亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

配置在多重處理器核心之間的分散式電源管理的制作方法

文檔序號(hào):6442731閱讀:535來源:國(guó)知局
專利名稱:配置在多重處理器核心之間的分散式電源管理的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及多核心微處理器設(shè)計(jì)的領(lǐng)域,特別是涉及供多核心及多核心處理器的多核心域(domain)用的受限制的操作狀態(tài)的管理與實(shí)現(xiàn)。
背景技術(shù)
現(xiàn)代化的微處理器減少它們的電源消耗的一種主要方式,是減少微處理器操作時(shí)的頻率和/或電壓。此外,在某些實(shí)例中,微處理器可能允許時(shí)鐘信號(hào)對(duì)于其電路的多個(gè)部分禁能。最后,在某些實(shí)例中,微處理器可能甚至對(duì)于其電路的多個(gè)部分一起移除電源。再者,有時(shí)候微處理器需要尖峰性能,以使其需要于其最高電壓及頻率下操作。微處理器采取電源管理動(dòng)作以控制微處理器的電壓與頻率電平以及時(shí)鐘與電源禁能。典型地,微處理器采取電源管理動(dòng)作,以因應(yīng)來自操作系統(tǒng)的指導(dǎo)(direction)。熟知的x86MWAIT指令為一種讓操作系統(tǒng)可能執(zhí)行以要求進(jìn)入至一從屬于實(shí)現(xiàn)的最佳化狀態(tài)的指令的一例子,此操作系統(tǒng)使用此狀態(tài)以執(zhí)行進(jìn)階的電源管理。最佳化狀態(tài)可能是休眠或閑置狀態(tài)。熟知的進(jìn)階配置電源接口(ACPI)規(guī)格,藉由界定操作或電源管理相關(guān)的狀態(tài)(例如"C-狀態(tài)" 及"P-狀態(tài)")以促進(jìn)操作系統(tǒng)導(dǎo)向的電源管理。因?yàn)槎鄶?shù)的現(xiàn)代化微處理器是多核心處理器(其中多重處理核心共用一個(gè)或多個(gè)電源管理相關(guān)的資源)的事實(shí),所以執(zhí)行電源管理動(dòng)作是復(fù)雜的。舉例而言,多個(gè)核心可能共用電壓源和/或時(shí)鐘源。再者,包含一多核心處理器的計(jì)算系統(tǒng)亦典型地包含一芯片組,其包含多個(gè)用以橋接處理器總線至系統(tǒng)的其他總線(例如,至周邊I/O總線)的總線橋,并包含一個(gè)用以連接多核心處理器至一系統(tǒng)存儲(chǔ)器的存儲(chǔ)器控制器。芯片組可能密切地參與各種電源管理動(dòng)作,且在本身與多核心處理器之間可能需要協(xié)調(diào)。更明確而言,于某些系統(tǒng)中,利用多核心處理器的允許,芯片組可能禁能一個(gè)位于處理器總線上的時(shí)鐘信號(hào),處理器接收并使用此時(shí)鐘信號(hào)以產(chǎn)生其本身的內(nèi)部時(shí)鐘信號(hào)的大部分。在多核心處理器的情況下,所有使用總線時(shí)鐘的核心必須備妥芯片組以禁能總線時(shí)鐘。亦即,直到為芯片組準(zhǔn)備好所有核心以這樣做,芯片組才能給予允許以禁能總線時(shí)鐘。另外,芯片組正常地窺探處理器總線上的快取存儲(chǔ)器。舉例而言,當(dāng)一周邊裝置于一周邊總線上產(chǎn)生一存儲(chǔ)器存取時(shí),芯片組附和于處理器總線上的存儲(chǔ)器存取,能使處理器可窺探其快取存儲(chǔ)器以判定其是否支持于窺探地址的數(shù)據(jù)。舉例而言,眾人皆知USB裝置是用以定期地輪詢存儲(chǔ)器位置,這會(huì)于處理器總線上產(chǎn)生周期性的窺探循環(huán)。在某些系統(tǒng)中,多核心處理器可能進(jìn)入一深休眠狀態(tài),于其中其刷新其快取存儲(chǔ)器并對(duì)快取禁能時(shí)鐘信號(hào),以便節(jié)省電源。于此情況下,對(duì)多核心處理器而言,喚醒以因應(yīng)處理器總線上的窺探循環(huán)以窺探其快取(因?yàn)樗鼈兪强盏?,所以其將不?huì)傳回一擊中),然后回到休眠時(shí)是浪費(fèi)的。因此,利用多核心處理器的允許,芯片組可能被授權(quán)不要產(chǎn)生處理器總線上的窺探循環(huán),以便達(dá)成額外的電源節(jié)約。然而,再者,所有的核心必須備妥芯片組以關(guān)閉窺探。亦即, 直到為芯片組準(zhǔn)備好所有核心以這樣做為止,芯片組才能給予允許以關(guān)閉窺探。
發(fā)證給Naveh等人(以下以Naveh代表)的美國(guó)專利第7,451,333號(hào)揭示一種包含多重處理核心的多核心微處理器。每一個(gè)核心能檢測(cè)一個(gè)要求核心轉(zhuǎn)變成一閑置狀態(tài)的命令。多核心處理器亦包含硬件協(xié)調(diào)邏輯(HCL)。HCL接收來自核心的閑置狀態(tài)狀況,并基于命令與核心的閑置狀態(tài)狀況管理核心的電源消耗。更明確而言,HCL決定是否所有核心已檢測(cè)一項(xiàng)要求對(duì)一共通狀態(tài)的一轉(zhuǎn)變的命令。如果不是的話,則HCL選擇在命令的閑置狀態(tài)之間的一最淺狀態(tài)以作為每個(gè)核心的閑置狀態(tài)。然而,如果HCL檢測(cè)一項(xiàng)要求轉(zhuǎn)變成一共通狀態(tài)的命令,則HCL可以開始共用的電源節(jié)約特征,例如性能狀態(tài)減少、一共用的鎖相回路(PLL)的關(guān)閉或處理器的一執(zhí)行情況的節(jié)省。HCL亦可防止外部中斷事件到達(dá)核心, 并可將所有核心轉(zhuǎn)變成共通狀態(tài)。尤其,HCL可利用芯片組實(shí)施一握手順序以將核心轉(zhuǎn)變成共通狀態(tài)。在由Alon Naveh等人所寫的論文中,名稱為"英特爾酷睿核心處理器中的電源及熱管理(Power and Thermal Managment in the Intel Core Duo Processor)“,其出現(xiàn)在 2006年5月15日發(fā)行的英特爾科技期刊中,Naveh等人說明一種使用設(shè)置于晶?;蚱脚_(tái)的共用區(qū)域中的非核心硬件協(xié)調(diào)邏輯(HCL)的相容C-狀態(tài)控制結(jié)構(gòu),其作為在個(gè)別核心與晶粒及平臺(tái)上的共用資源之間的一層。HCL基于核心的個(gè)別需求決定所需要的CPU的C-狀態(tài), 控制共用資源的狀態(tài),并模仿一傳統(tǒng)的(legacy)單核心處理器,用以利用芯片組實(shí)現(xiàn)C-狀態(tài)進(jìn)入?yún)f(xié)定。在由Naveh參考文獻(xiàn)兩者所揭示的機(jī)制中,HCL是集中在核心它們自己外部的非核心邏輯,其執(zhí)行代表所有核心的電源管理動(dòng)作。這種集中化非核心邏輯解決方法可能是不利的,特別是如果因要大晶粒尺寸而可能高良率致使HCL被要求存在于與核心相同的晶粒上,尤其在期望在晶粒上包含多數(shù)核心的組態(tài)中。

發(fā)明內(nèi)容
在本發(fā)明的一個(gè)實(shí)施樣態(tài)中,提供一種多核心處理器,其包含多個(gè)實(shí)體處理核心以及在每個(gè)核心中的核心間狀態(tài)發(fā)現(xiàn)微碼。核心間狀態(tài)發(fā)現(xiàn)微碼可使核心參與一分散式核心間電源狀態(tài)發(fā)現(xiàn)過程。與此相關(guān)的,一分散式微碼實(shí)現(xiàn)方法提供發(fā)現(xiàn)一多核心處理器的電源狀態(tài),多核心處理器包含參與一分散式核心間狀態(tài)發(fā)現(xiàn)過程的至少兩個(gè)核心。核心間狀態(tài)發(fā)現(xiàn)過程經(jīng)由在每個(gè)參與核心上執(zhí)行的微碼以及通過旁帶非系統(tǒng)總線通訊配線在核心之間交換的信號(hào)的組合而被實(shí)現(xiàn)。發(fā)現(xiàn)過程是不通過任何集中式非核心邏輯。此外,在多數(shù)實(shí)施例中,核心間狀態(tài)發(fā)現(xiàn)過程依據(jù)一種使用鏈鎖式核心間通訊的適當(dāng)?shù)幕蜻x擇的階層式協(xié)調(diào)系統(tǒng)而被實(shí)現(xiàn)。在其他實(shí)施樣態(tài)中,提供核心間狀態(tài)發(fā)現(xiàn)過程,以供微處理器組態(tài)(包含促使核心啟動(dòng)及多少核心被啟動(dòng)的資源的利用率與分布)以及微處理器的階層式協(xié)調(diào)構(gòu)造與系統(tǒng)(包含域與域主識(shí)別)的發(fā)現(xiàn)用。在本發(fā)明的另一實(shí)施樣態(tài)中,提供一種多核心處理器,其包含多個(gè)致能的實(shí)體處理核心,以及一由兩個(gè)以上的核心共用的可配置的資源,其中資源的組態(tài)影響共享資源的核心利用其能夠運(yùn)作的電源、速度或效率。對(duì)每個(gè)核心而言,處理器還包含設(shè)定每個(gè)核心的組態(tài)的內(nèi)部核心電源狀態(tài)管理邏輯,用以參與在核心之間被實(shí)現(xiàn)的一種分散式核心間電源狀態(tài)發(fā)現(xiàn)過程,而無須集中式非核心邏輯的協(xié)助。如果核心為了設(shè)定共用資源的組態(tài)的目的而被指定為一主控核心,且復(fù)合目標(biāo)電源狀態(tài)經(jīng)由分散式核心間電源狀態(tài)發(fā)現(xiàn)過程而被發(fā)現(xiàn),則內(nèi)部核心電源管理邏輯設(shè)定核心的組態(tài)以唆使設(shè)定共用資源的組態(tài)的一復(fù)合目標(biāo)電源狀態(tài)的實(shí)現(xiàn)。對(duì)共用資源而言,復(fù)合目標(biāo)電源狀態(tài)為一種最節(jié)能型的電源狀態(tài),其將不會(huì)干涉共享資源的每個(gè)核心的任何對(duì)應(yīng)的目標(biāo)電源狀態(tài)。在一個(gè)相關(guān)的實(shí)施樣態(tài)中,提供一種供一多核心處理器用的管理電源狀態(tài)的分散方法。一核心接收影響在本身及至少一其他核心之間所共用的一可配置的資源的一目標(biāo)電源狀態(tài),其中目標(biāo)電源狀態(tài)定義將影響共享資源的核心利用其能夠運(yùn)作的電源、速度或效率的資源的組態(tài)。核心參與一核心間電源狀態(tài)發(fā)現(xiàn)過程,其包含不通過任何集中式非核心邏輯而與共享該資源的至少一其他核心的電源狀態(tài)的一交換。如果核心是為了設(shè)定共用資源的組態(tài)的目的而被指定為一主控核心,且復(fù)合目標(biāo)電源狀態(tài)經(jīng)由分散式核心間電源狀態(tài)發(fā)現(xiàn)過程而被發(fā)現(xiàn),則核心唆使用以設(shè)定共用資源的組態(tài)的一復(fù)合目標(biāo)電源狀態(tài)的實(shí)現(xiàn)。在另一實(shí)施樣態(tài)中,本發(fā)明提供一多核心處理器。多核心處理器的每個(gè)核心包含電源狀態(tài)管理微碼,用以設(shè)定那個(gè)核心的組態(tài)以參與一分散式核心間復(fù)合電源狀態(tài)發(fā)現(xiàn)過程。電源狀態(tài)管理微碼可使每個(gè)核心接收一狀態(tài)轉(zhuǎn)變要求,用以依據(jù)多個(gè)預(yù)定電源狀態(tài) (包含一有效操作狀態(tài)及一個(gè)或多個(gè)漸進(jìn)地較不敏感的狀態(tài))的任何要求的目標(biāo)的其中一個(gè)設(shè)定其設(shè)成為本身的組態(tài)。當(dāng)一核心接收一要求以轉(zhuǎn)變成為一受限制的電源狀態(tài)(例如會(huì)干涉由其他核心所共用的資源的一電源狀態(tài))時(shí),則其電源狀態(tài)管理微碼開始一分散式核心間復(fù)合電源狀態(tài)發(fā)現(xiàn)過程,用以決定是否所有其他受影響的核心做好那個(gè)受限制的電源狀態(tài)的準(zhǔn)備。如果參與發(fā)現(xiàn)過程的核心確認(rèn)受限制的電源狀態(tài)為復(fù)合電源狀態(tài),則授權(quán)的其中一個(gè)核心經(jīng)由其電源狀態(tài)管理微碼實(shí)現(xiàn)或啟動(dòng)受限制的電源狀態(tài)的植入。具體而言,授權(quán)核心將實(shí)現(xiàn)最限制的或節(jié)能型的操作狀態(tài),其可藉由核心而被實(shí)現(xiàn),而不會(huì)干涉其他核心的對(duì)應(yīng)的目標(biāo)操作狀態(tài)。在另一實(shí)施樣態(tài)中,每個(gè)核心的電源管理微碼的一部分或常式為同步邏輯,其組態(tài)被設(shè)計(jì)成用以與其他節(jié)點(diǎn)地連接核心交換電源狀態(tài)信息來決定混合電源狀態(tài)。同步邏輯的每個(gè)實(shí)施實(shí)例(instance)被設(shè)計(jì)成用以在尚未同步節(jié)點(diǎn)地連接的核心(其為節(jié)點(diǎn)地連接至本身的核心,且同步邏輯的一同步化實(shí)例尚未為其實(shí)施)中至少有條件地產(chǎn)生同步邏輯的從屬實(shí)例,以作為一復(fù)合電源狀態(tài)發(fā)現(xiàn)過程的一部分。于一實(shí)施例中,核心的電源管理微碼被設(shè)計(jì)成用以實(shí)現(xiàn);一目標(biāo)電源狀態(tài),而無須實(shí)施其同步邏輯的一原生性實(shí)例,如果核心的目標(biāo)電源狀態(tài)并非一種不需要與其他核心協(xié)調(diào)的受限制的電源狀態(tài)核心。否則,電源管理邏輯設(shè)定核心的組態(tài)以實(shí)現(xiàn)目標(biāo)電源狀態(tài)的非限制實(shí)施樣態(tài)或一附屬電源狀態(tài)的非限制實(shí)施樣態(tài)(例如局部電源節(jié)約動(dòng)作)于核心上,且亦實(shí)施其同步邏輯的一原生性實(shí)例,以為受限制的電源狀態(tài)所應(yīng)用到的核心的最大域開始復(fù)合電源狀態(tài)發(fā)現(xiàn)過程。在發(fā)現(xiàn)對(duì)應(yīng)到目標(biāo)受限制的電源狀態(tài)的一復(fù)合電源狀態(tài)時(shí),授權(quán)以實(shí)現(xiàn)復(fù)合電源狀態(tài)的一核心(典型地最大影響范圍的主控核心)的電源管理微碼啟動(dòng)和/或進(jìn)行復(fù)合電源狀態(tài)的實(shí)現(xiàn)。在另一實(shí)施樣態(tài)中,本發(fā)明提供一種供一多核心處理器(例如,如上所述地被設(shè)計(jì)的處理器)用的管理電源的分散方法。此方法包含接收針對(duì)任一種核心的一狀態(tài)轉(zhuǎn)變要求,以依據(jù)一目標(biāo)電源狀態(tài)設(shè)定那個(gè)核心(“原生性核心")的組態(tài)。如果目標(biāo)電源狀態(tài)為一受限制的電源狀態(tài),則執(zhí)行于原生性核心上的電源管理邏輯實(shí)施同步邏輯的一原生性實(shí)例以開始一分散式核心間復(fù)合電源狀態(tài)發(fā)現(xiàn)過程,于其中此核心與其他核心交換電源狀態(tài)。此方法還包含評(píng)估發(fā)現(xiàn)的電源狀態(tài),以及回應(yīng)地有條件地實(shí)現(xiàn)或啟動(dòng)受限制的電源狀態(tài)的實(shí)現(xiàn)。同步邏輯的每個(gè)原生性實(shí)例產(chǎn)生在一個(gè)或多個(gè)節(jié)點(diǎn)地連接核心上的同步邏輯的一個(gè)或多個(gè)從屬實(shí)例。這些從屬實(shí)例因而可操作的以產(chǎn)生它們的同步邏輯的額外從屬實(shí)例。同步邏輯的每個(gè)實(shí)例決定至少一混合電源狀態(tài),及遞歸地產(chǎn)生(除非由一終止條件所終止,如果有個(gè)話)同步邏輯的又更進(jìn)一步的從屬實(shí)例邏輯于尚未同步的節(jié)點(diǎn)地遠(yuǎn)端核心上,直到有同步邏輯的同步化實(shí)例位于核心潛在地沖擊域的每一個(gè)核心為止。在發(fā)現(xiàn)復(fù)合電源狀態(tài)等于受限制的電源狀態(tài)時(shí),執(zhí)行于一授權(quán)核心上的電源管理邏輯啟動(dòng)和/或進(jìn)行實(shí)現(xiàn)。在另一實(shí)施樣態(tài)中,本發(fā)明提供微碼,其被編碼在包含分散式核心間狀態(tài)發(fā)現(xiàn)與上述的電源管理邏輯的一多核心處理器的一實(shí)體核心的一計(jì)算機(jī)可讀取的儲(chǔ)存媒體中。


圖1為顯示一計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一雙晶粒四核心微處理器的多重處理核心之間的分散式電源管理。圖2為詳細(xì)顯示圖1的代表的其中一個(gè)核心的方塊圖。圖3為顯示執(zhí)行分配在多核心微處理器的多重處理核心之間的分散式電源管理的一系統(tǒng)的一電源狀態(tài)管理常式的一個(gè)實(shí)施例的藉由一核心的操作的流程圖。圖4A-圖4C為顯示整合至圖3的系統(tǒng)的復(fù)合電源狀態(tài)發(fā)現(xiàn)過程的一電源狀態(tài)同步常式的一個(gè)實(shí)施例的藉由一核心的操作的流程圖。圖5為顯示一喚起與重新開始常式以因應(yīng)從一休眠狀態(tài)將其喚醒的一事件的一個(gè)實(shí)施例的藉由一核心的操作的流程圖。圖6為顯示一核心間中斷處理常式以因應(yīng)接收一核心間中斷的藉由一核心的操作的流程圖。圖7為顯示依據(jù)圖3至6的說明的一復(fù)合電源狀態(tài)發(fā)現(xiàn)過程的操作的一例子的流程圖。圖8為顯示依據(jù)圖3至6的說明的一復(fù)合電源狀態(tài)發(fā)現(xiàn)過程的操作的另一個(gè)例子的流程圖。圖9為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一種八核心微處理器(其在單一封裝上具有四個(gè)雙核心晶粒)的多重處理核心之間的分散式電源管理。圖IOA-圖IOC為顯示整合至圖9的系統(tǒng)的一復(fù)合電源狀態(tài)發(fā)現(xiàn)過程的一電源狀態(tài)同步常式的一個(gè)實(shí)施例的藉由一核心的操作的流程圖。圖11為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一種八核心微處理器的多重處理核心之間的分散式電源管理,八核心微處理器具有四個(gè)雙核心晶粒,其使用圖10的電源狀態(tài)同步常式而分配在兩個(gè)封裝上。圖12為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一種八核心微處理器的多重處理核心之間的分散式電源管理,依據(jù)一較深的階層式協(xié)調(diào)系統(tǒng), 八核心微處理器像圖11具有四個(gè)雙核心晶粒,但其核心不像圖11而是彼此相互關(guān)連的。圖13A-圖13D為顯示整合至圖12的系統(tǒng)的一復(fù)合電源狀態(tài)發(fā)現(xiàn)過程的一電源狀態(tài)同步常式的一個(gè)實(shí)施例的藉由一核心的操作的流程圖。圖14為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一種八核心微處理器的多重處理核心之間的分散式電源管理,依據(jù)一較深的階層式協(xié)調(diào)系統(tǒng), 八核心微處理器像圖9在單一封裝上具有四個(gè)雙核心晶粒,但其核心不像圖9而是彼此相互關(guān)連的。圖15為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一種八核心微處理器(其在單一封裝上具有兩個(gè)四核心晶粒)的多重處理核心之間的分散式電
源管理。圖16為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一種八核心微處理器的多重處理核心之間的分散式電源管理。圖17A-圖17C為顯示整合至圖16的系統(tǒng)的一復(fù)合電源狀態(tài)發(fā)現(xiàn)過程的一電源狀態(tài)同步常式的一個(gè)實(shí)施例的藉由一核心的操作的流程圖。圖18為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一種雙核心、單一晶粒微處理器的核心之間的分散式電源管理。圖19為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在具有兩個(gè)單核心晶粒的一種雙核心微處理器的核心之間的分散式電源管理。圖20為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在具有兩個(gè)單核心、單一晶粒封裝的一雙核心微處理器的核心之間的分散式電源管理。圖21為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一種八核心微處理器的核心之間的分散式電源管理,八核心微處理器具有兩個(gè)封裝,其中一個(gè)具有三個(gè)雙核心晶粒,而其另一個(gè)具有單一雙核心晶粒。圖22為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一種八核心微處理器的核心之間的分散式電源管理,八核心微處理器類似于圖21,但具有一較深的階層式協(xié)調(diào)系統(tǒng)。圖23為顯示在一核心上實(shí)現(xiàn)的操作狀態(tài)同步邏輯的另一實(shí)施例的流程圖,其支持一種域區(qū)別的(domain-differentiated)操作狀態(tài)層次協(xié)調(diào)系統(tǒng)且對(duì)于不同的域深度是可計(jì)量的。附圖符號(hào)說明P、P1-P8:接腳100 計(jì)算機(jī)系統(tǒng)102 多核心微處理器/封裝104 單核心晶粒/封裝106 核心108 焊墊112:核心間通訊配線114:芯片組
116:總線118:通訊配線202 指令快取204 指令譯碼器206 微序列器207 微碼存儲(chǔ)器208 微碼212 注冊(cè)別名表(RAT)214 保留站216 執(zhí)行單元218 撤退單元222 數(shù)據(jù)快取M4 總線接口單元(BIU)226 鎖相回路(PLL)228 =BSP 指示器232 主控指示器234 =CSR236 =CSR238 特別模塊寄存器(MSR)M2 核心時(shí)鐘信號(hào)900 計(jì)算機(jī)系統(tǒng)902 多核心微處理器/封裝1100:計(jì)算機(jī)系統(tǒng)1102:四核心微處理器1133:封裝間通訊配線1200 計(jì)算機(jī)系統(tǒng)1201 第二封裝1202 多核心微處理器/封裝1400 計(jì)算機(jī)系統(tǒng)1402 多核心微處理器/封裝1500 計(jì)算機(jī)系統(tǒng)1502 多核心微處理器/封裝1504 晶粒1600 計(jì)算機(jī)系統(tǒng)1602 多核心微處理器1802 雙核心微處理器1902 雙核心微處理器2002 雙核心微處理器2202 八核心處理器
2300:邏輯2302 :sync_state
具體實(shí)施例方式于此所說明的為藉由使用固有的且被復(fù)制在每個(gè)核心上的分散式的分配邏輯,用以協(xié)調(diào)、同步、管理以及實(shí)現(xiàn)一多核心處理器上的電源、休眠或操作狀態(tài)的系統(tǒng)與方法的實(shí)施例。在說明表示詳細(xì)的實(shí)施例的每一張圖之前,先將本發(fā)明的更一般的適用概念介紹于下。I.多層多核心處理器概念如于此所使用的,一種多核心處理器通常表示一個(gè)包含多個(gè)致能的實(shí)體核心的處理器,每個(gè)致能的實(shí)體核心被設(shè)計(jì)成用以提取、解碼并執(zhí)行遵循一指令集架構(gòu)的指令。一般而言,多核心處理器藉由一系統(tǒng)總線(最后由所有核心所共用)而耦接至一芯片組,藉以提供存取至周邊總線到達(dá)各種裝置。在某些實(shí)施例中,系統(tǒng)總線為一前側(cè)總線,其為從處理器至其余計(jì)算機(jī)系統(tǒng)的一外部接口。在某些實(shí)施例中,芯片組亦集中存取至一共用的主存儲(chǔ)器以及一共用的圖形控制器。多核心處理器的核心可能被封裝在包含多重核心的一個(gè)或多個(gè)晶粒中,如說明于申請(qǐng)案序號(hào)61/似6,470的段落中,其申請(qǐng)日為2010年12月22日,名稱為〃多核心處理器內(nèi)部旁通總線(Multi-Core Processor Internal Bypass Bus)",以及其同時(shí)申請(qǐng)的非臨時(shí)(nonprovisional)申請(qǐng)案(CNTR. 2503),其于此并入作參考。如于其中所提出的,一種典型的晶粒為已被切成或切割為單一物理實(shí)體的一片半導(dǎo)體晶圓,且一般具有至少一組的實(shí)體1/0軟性著陸焊墊。例如,某些雙核心晶粒具有兩組1/0焊墊,一組供其核心的每一個(gè)用。其他雙核心晶粒具有單一組的1/0焊墊,其是在其雙核心之間被共用。某些四核心晶粒具有兩組1/0焊墊,一組供兩組雙核心的每一個(gè)用。多重組態(tài)是可能的。再者,一種多核心處理器亦可能提供一種主宰多重晶粒的一封裝。一種〃封裝〃 為上面存在或安裝有晶粒的一基板。此"封裝"可能提供單一組的接腳,以供連接至一主機(jī)板以及相關(guān)的處理器總線。封裝的基板包含將晶粒的焊墊連接至封裝的共用接腳的配線網(wǎng)或線路。更進(jìn)一步的分層的層次是可能的。舉例而言,于此說明為一"平臺(tái)"的一額外層, 可能設(shè)置在安裝于那個(gè)平臺(tái)的多重封裝以及一下層主機(jī)板之間。平臺(tái)依多數(shù)方式可能像上述的封裝,其包含一個(gè)基板,此基板具有連接每個(gè)封裝的接腳與平臺(tái)的共用接腳的配線網(wǎng)或線路。應(yīng)用上述概念,在一個(gè)例子中,一種多封裝處理器可被視為N2個(gè)封裝的一平臺(tái), 每個(gè)封裝具有W個(gè)晶粒,且每個(gè)晶粒具有NO個(gè)核心,于此N2、Nl以及NO每個(gè)大于或等于 1,且N2、N1以及NO的至少一者大于或等于2。II.核心間通訊構(gòu)造如上所述,非核心但晶粒上的硬件協(xié)調(diào)邏輯(HCL)的使用以實(shí)現(xiàn)要求核心間協(xié)調(diào)的限制活動(dòng)的一些缺點(diǎn)包含更復(fù)雜的、較不對(duì)稱的且較低良率的晶粒設(shè)計(jì)以及縮放挑戰(zhàn)。 一替代方式是藉由使用芯片組本身來執(zhí)行所有這種協(xié)調(diào),但這潛在地需要在每個(gè)核心與系統(tǒng)總線上的芯片組之間的傳輸,以便傳遞適合數(shù)值給芯片組。這種協(xié)調(diào)典型地亦需要經(jīng)由例如BIOS的系統(tǒng)軟件來實(shí)現(xiàn),通過它制造商可能受限制或根本無法控制。為了克服兩種習(xí)知方法的缺點(diǎn),本發(fā)明的某些實(shí)施例利用在多核心處理器的核心之間的旁帶連接。這些旁帶連接并未連接至封裝的實(shí)體接腳;因此,它們并未從封裝傳送信號(hào);經(jīng)由它們交換的通訊也不會(huì)要求系統(tǒng)總線上的對(duì)應(yīng)的傳輸。舉例而言,如說明于CNTR. 2503,每個(gè)晶粒可能提供一條在晶粒的核心之間的旁通總線。旁通總線并未連接至晶粒的實(shí)體焊墊;因此其并未傳送信號(hào)離開雙核心晶粒。旁通總線亦提供在核心之間的改善的品質(zhì)信號(hào),并可使核心彼此傳遞或協(xié)調(diào)而無須使用系統(tǒng)總線??煽紤]多重變化。舉例而言,如說明于CNTR. 2503,一種四核心晶粒可能提供一條在兩組雙核心之間的旁通總線。或者,如說明于以下的一個(gè)實(shí)施例,一種四核心晶??赡芴峁┰谝痪Я5膬山M核心的每一個(gè)之間的旁通總線,以及在從兩組選擇的核心之間的另一條旁通總線。在另一實(shí)施例中,一種四核心晶??赡芴峁┰诿恳粋€(gè)核心之間的核心間旁通總線,如下關(guān)于圖16所述。另外,在另一實(shí)施例中,一種四核心晶??赡芴峁┰诘谝慌c第二核心、第二核心與第三核心、第三與第四核心以及第一與第四核心之間的核心間旁通總線,而無須提供在第一與第三核心之間或在第二與第四核心之間的核心間旁通總線。一種類似的旁帶組態(tài)(即使在分配在兩個(gè)雙核心晶粒上的核心之間)是顯示于申請(qǐng)案序號(hào) 61/似6,470的段落中,申請(qǐng)日為2010年12月22日,名稱為〃共用電源對(duì)多核心微處理器白勺分配 (Distributed Management of a Shared Power Source to a Multi-Core Microprocessor)“,以及其同時(shí)申請(qǐng)的非臨時(shí)(nonprovisional)申請(qǐng)案(CNTR. 25;34),其是于此并入作參考。另外,本發(fā)明考慮到比CNTR. 2503的旁通總線較不廣泛的核心間通訊配線組, 例如說明于申請(qǐng)案序號(hào)61/4 ,470的段落中的替代實(shí)施例,申請(qǐng)日為2010年12月22 日,名稱為〃光罩設(shè)置修改以產(chǎn)生多核心晶粒(Reticle Set Modification to Produce Multi-Core Dies)“,以及其同時(shí)申請(qǐng)的非臨時(shí)(nonprovisional)申請(qǐng)案(CNTR. 25 ), 其是于此并入作參考。核心間通訊配線的一種較不廣泛組的一個(gè)例子顯示于CNTR. 2534,其是于此并入作參考。核心間通訊配線組在包含配線的數(shù)目上,視需要盡可能小,用以啟動(dòng)如于此所說明的協(xié)調(diào)活動(dòng)。核心間通訊配線亦可能依一種類似于以下更進(jìn)一步說明的晶粒間通訊線的方式而被設(shè)計(jì)并介設(shè)在核心之間。再者,一封裝可能提供在一封裝的晶粒之間的晶粒間通訊線,而一平臺(tái)可能提供在平臺(tái)的封裝之間的封裝間通訊線。如以下將更完全說明的,晶粒間通訊線的實(shí)現(xiàn)可能需要每個(gè)晶粒上的至少一額外實(shí)體輸出焊墊。同樣地,封裝間通訊線的實(shí)現(xiàn)可能需要每個(gè)封裝上的至少一額外實(shí)體輸出焊墊。另外,如以下更進(jìn)一步說明的,某些實(shí)現(xiàn)提供超過一最低限度足夠數(shù)目的輸出焊墊的額外輸出焊墊,用以在協(xié)調(diào)核心中允許更大的撓性。為了任何這些各種可能的核心間通訊實(shí)現(xiàn),較好是他們不需要任何一個(gè)核心外部的有效邏輯 (active logic)。如此,期望本發(fā)明的各種實(shí)施例的實(shí)現(xiàn)通過使用一種非核心HCL或其他有效非核心邏輯以協(xié)調(diào)核心的實(shí)現(xiàn)提供某些優(yōu)點(diǎn),如于此明顯做出的。III.階層式概念再次重申,本發(fā)明說明除非另有規(guī)定,否則并未受限于多核心多處理器的數(shù)個(gè)實(shí)施例,其提供旁帶通訊配線且通過系統(tǒng)總線優(yōu)先使用這種配線以協(xié)調(diào)核心,以便實(shí)現(xiàn)或允許某些構(gòu)造或限制活動(dòng)的實(shí)現(xiàn)。在多數(shù)這些實(shí)施例中,這些實(shí)體實(shí)現(xiàn)是與階層式協(xié)調(diào)系統(tǒng)相關(guān)聯(lián)地被使用,以執(zhí)行期望的硬件協(xié)調(diào)。于此所說明的某些階層式協(xié)調(diào)系統(tǒng)是非常復(fù)雜的。舉例而言,圖1、9、11、12、14、15、16、18、19、20、21以及22說明具有組織并促進(jìn)例如電源狀態(tài)管理的核心間協(xié)調(diào)活動(dòng)的各種階層式協(xié)調(diào)系統(tǒng)的多核心處理器的實(shí)施例。此說明書亦提供數(shù)個(gè)階層式協(xié)調(diào)系統(tǒng)的漸進(jìn)更抽象的特性記述,以及甚至更精巧及復(fù)雜的階層式協(xié)調(diào)系統(tǒng)的例子。因此,在進(jìn)入用以允許一構(gòu)造或限制活動(dòng)的實(shí)現(xiàn)的核心間協(xié)調(diào)過程的高度特定例子之前,說明于此考慮到的各種階層式協(xié)調(diào)系統(tǒng)的各種實(shí)施樣態(tài)是有益的。如于此所使用的,一種階層式協(xié)調(diào)系統(tǒng)表示一種為了某些恰當(dāng)或預(yù)定活動(dòng)或目的,將核心設(shè)計(jì)成用以以一種至少局部受限或組織的階層式方式彼此協(xié)調(diào)的系統(tǒng)。于此,這與一相等的端對(duì)端(peer-to-peer)協(xié)調(diào)系統(tǒng)(于其中,每個(gè)核心同等享有特權(quán)并可直接與任何其他核心(以及與芯片組)協(xié)調(diào)以執(zhí)行一恰當(dāng)活動(dòng))有所區(qū)別。舉例而言,一種節(jié)點(diǎn)樹構(gòu)造(于其中,為了某些限制活動(dòng),核心僅與優(yōu)越的排名或下方的排名的節(jié)點(diǎn)連接核心協(xié)調(diào),以及關(guān)于節(jié)點(diǎn)樹構(gòu)造,在任何兩個(gè)節(jié)點(diǎn)之間只存在有一條單一路徑)將構(gòu)成一嚴(yán)密的階層式協(xié)調(diào)系統(tǒng)。如于此所使用的,除非更嚴(yán)格地定義,否則一階層式協(xié)調(diào)系統(tǒng)亦包含較為松散的階層式的協(xié)調(diào)系統(tǒng),例如一種允許在至少一群組的核心之內(nèi)的對(duì)等協(xié)調(diào)的系統(tǒng), 但要求在至少兩個(gè)核心群組之間的階層式協(xié)調(diào)。于此呈現(xiàn)嚴(yán)格及松松的階層式協(xié)調(diào)系統(tǒng)兩者的例子。于一實(shí)施例中,假設(shè)一種階層式協(xié)調(diào)系統(tǒng)對(duì)應(yīng)至一微處理器中的核心的一配置, 微處理器具有多個(gè)封裝,每個(gè)封裝具有多個(gè)晶粒,且每個(gè)晶粒具有多個(gè)核心。將每層視為一"域(domain)"時(shí)是有用的。舉例而言,一種雙核心晶??杀灰暈橛善浜诵乃M成的域, 一種雙晶粒封裝可被視為由其晶粒所組成的一域,以及一雙封裝平臺(tái)或微處理器可被視為由其封裝所組成的一域。將核心本身說明為一域亦是有用的。這種"域"的概念化在表示例如一快取、一電壓源或一時(shí)鐘源的一資源上亦是有用的,此資源由一域的核心所共用,但此資源以別的方法位于那個(gè)域的近端(亦即,并未由那個(gè)域的外部的核心所共用)。當(dāng)然, 適合于任何既定的多核心處理器的域深度以及每個(gè)域的成份的數(shù)目(例如,于此,一晶粒為一域,封裝為一域,等等)可依據(jù)核心的數(shù)目、它們的分層以及各種資源由核心所共用的方式改變并放大或縮小。為不同型式的域之間的關(guān)系命名亦是有用的。如于此所使用的,在一種多核心晶粒上的所有致能的實(shí)體核心被視為那個(gè)晶粒的"成份(constituents)"以及彼此的"共同成份(co-constituents)“。同樣地,在一多晶粒封裝上的所有致能的實(shí)體晶粒被視為那個(gè)封裝的成份以及彼此的共同成份。同樣地,在一種多封裝處理器上的所有致能的實(shí)體封裝將被視為那個(gè)處理器的成份以及彼此的共同成份。再者,這種表現(xiàn)可能延伸至像設(shè)有多核心處理器一樣的域深度的多數(shù)層次。一般而言,每個(gè)非終端域?qū)哟问怯梢粋€(gè)或多個(gè)成份所定義,每一個(gè)成份包含階層式構(gòu)造的下一個(gè)較低的域?qū)哟巍T谀承┒嗪诵奶幚砥鲗?shí)施例中,對(duì)每個(gè)多核心域(例如,對(duì)每個(gè)晶粒,對(duì)每個(gè)封裝,對(duì)每個(gè)平臺(tái)等等)而言,其的唯一一個(gè)核心被指定為并設(shè)有供那個(gè)域用的一"主控 (master)“的一對(duì)應(yīng)的功能把關(guān)或協(xié)調(diào)角色。舉例而言,每個(gè)多核心晶粒的單一核心(如果有的話)被指定為那個(gè)晶粒的一"晶粒主控",每個(gè)封裝的單一核心被指定為那個(gè)封裝的一"封裝主控"(PM),以及(對(duì)如此成層的一處理器而言)每個(gè)平臺(tái)的單一核心是被指定為供那個(gè)平臺(tái)用的"平臺(tái)主控"等等。一般而言,此階層的最高域的主控核心作為多核心處理器的唯一的"總線服務(wù)處理器"(BSP)核心,其中只有BSP被授權(quán)以使某些型式的活動(dòng)與芯片組協(xié)調(diào)??勺⒁獾剑瑸榱吮憷?,于此采用例如"主控"的專門用語,且除"主控"之外的標(biāo)簽(例如"委派(delegate)")可被應(yīng)用以說明這種功能角色。更進(jìn)一步的關(guān)系定義在每個(gè)域主控核心與核心之間,為預(yù)定目的或活動(dòng)(為其所標(biāo)示的),利用核心允許其直接協(xié)調(diào)。于最低域?qū)哟?例如,一晶粒),對(duì)于那個(gè)晶粒的致能的非主控核心的每一個(gè),一種多核心晶粒的晶粒主控核心可能被視為一"朋友(pal)"。一般而言,對(duì)于相同晶粒的其他核心的任何一個(gè),一晶粒的每一個(gè)核心是被視為一朋友。但在一替代特性記述中,朋友指定被限定為在晶粒主控核心與一種多核心晶粒的其他核心之間的附屬關(guān)系。將這種替代特性記述應(yīng)用至一種四核心晶粒,晶粒主控核心將具有三個(gè)朋友, 但其他核心的每一個(gè)將被視為只具有單一朋友(晶粒主控核心)。于下一個(gè)域?qū)哟?例如封裝),對(duì)于相同封裝上的其他主控核心的每一個(gè),一封裝的PM核心可能被視為一"伙伴(buddy)"。一般而言,對(duì)于相同封裝的彼此晶粒主控核心, 一封裝的每一個(gè)晶粒主控核心被視為一伙伴。但在一替代特性記述中,伙伴指定限定于一封裝主控核心與那個(gè)封裝的其他主控核心之間的附屬關(guān)系。將這種替代特性記述應(yīng)用至一種四晶粒封裝,PM核心將具有三個(gè)朋友,但其他晶粒主控核心的每一個(gè)將被視為只具有單一朋友(PM核心)。在另一種替代特性記述(例如在圖11中所提出的)中,對(duì)于處理器中的其他主控核心的每一個(gè)(包含在處理器的一不同封裝上的主控核心),一主控核心被視為一〃伙伴"。于下一個(gè)域?qū)哟?例如,具有這種深度的一種多核心處理器的平臺(tái)),對(duì)于平臺(tái)的其他PM核心的每一個(gè),BSP(或平臺(tái)主控(master))核心被視為一〃好友(chum) 〃。一般而言,對(duì)于相同平臺(tái)的彼此PM核心,每一個(gè)PM核心是關(guān)于一好友。但在一替代特性記述中, 好友指定是限定于在一 BSP封裝主控核心與一平臺(tái)的其他PM核心之間的附屬關(guān)系。將這種替代特性記述應(yīng)用至一種四封裝平臺(tái),BSP核心將具有三個(gè)朋友,但其他PM核心的每一個(gè)將被視為只具有單一朋友(BSP)。上述的朋友/伙伴/好友關(guān)系于此一般更被視為〃同屬性(kinship)丨'關(guān)系。每個(gè)"朋友"核心屬于一個(gè)同屬性群組,每個(gè)"伙伴"核心屬于一較高層次的同屬性群組, 以及每個(gè)"好友"核心屬于又更高層次的同屬性群組。換言之,上述階層式協(xié)調(diào)系統(tǒng)的各種域定義對(duì)應(yīng)的"同屬性"群組(例如,朋友的一個(gè)或多個(gè)群組、伙伴的群組以及好友的群組)。此外,一特定核心的每個(gè)"朋友"、“伙伴"以及"好友"核心(如果有的話)一般可更被視為一〃家族(kin)“核心。如于此所使用的,一同屬性群組的概念是略不同于一域的概念。如上所述,一域是由在其域中的所有核心所組成。舉例而言,一封裝域一般是由封裝上的所有核心所組成。相較之下,一同屬性群組相較之下一般是由相對(duì)應(yīng)的域的選擇組成核心所組成。例如,一封裝域一般將定義一對(duì)應(yīng)的同屬性群組,其由封裝上的只有由主控核心(其中一個(gè)亦為一封裝主控核心)所構(gòu)成,而非任何一個(gè)朋友核心所構(gòu)成。一般而言,只有終端多核心域(亦即, 不具有組成域的域)將定義包含所有其核心的一對(duì)應(yīng)的同屬性群組。舉例而言,一雙核心晶粒一般將定義一終端多核心域,其具有包含晶粒的核心兩者的一對(duì)應(yīng)的同屬性群組。將注意到把每個(gè)核心看成界定其自己的域亦是適當(dāng)?shù)?,因?yàn)槊總€(gè)核心一般包含位于在本身的近端且未被其他核心所共用的資源,其可能藉由各種操作狀態(tài)而被設(shè)計(jì)。
將明白在上述的朋友/伙伴/好友階層,非一主控核心的每個(gè)核心只是一朋友,并屬于只由相同晶粒上的核心所構(gòu)成的單一同屬性群組。每個(gè)晶粒主控核心第一屬于由相同晶粒上的朋友核心所組成的最低層次同屬性群組,而第二屬于由相同封裝上的伙伴核心所組成的一同屬性群組。每個(gè)封裝主控核心第一屬于由相同晶粒上的朋友核心所組成的一最低層次同屬性群組,第二屬于由相同封裝上的伙伴核心所組成的一同屬性群組,而第三屬于由相同平臺(tái)上的好友核心所組成的一同屬性群組。簡(jiǎn)言之,每個(gè)核心屬于W同屬性群組, 于此W等于同屬性群組(那核心是一主控核心)的數(shù)目加上1。為了更進(jìn)一步敘述同屬性群組的階層式本質(zhì)的特征,任何既定核心的"最接近的"或"最直接的"同屬性群組對(duì)應(yīng)至那個(gè)核心為其的一部分的最低層次多核心域。在一個(gè)例子中,無論一特定核心具有多少主控指定核心,其最直接的同屬性群組包含其在相同晶粒上的朋友。一主控核心亦將具有一第二接近的同屬性群組,其包含在相同封裝上的核心的伙伴或伙伴們。一封裝主控核心亦將具有包含核心的好友的一第三接近的同屬性群組。值得注意的是,上述的同屬性群組對(duì)于一多層次多核心處理器(其中至少兩個(gè)層次Nx具有多重成份)將是半獨(dú)占的。亦即,對(duì)這種處理器而言,沒有既定的同屬性群組將包含那個(gè)處理器的所有核心。上述的同屬性群組概念甚至可更進(jìn)一步藉由不同的協(xié)調(diào)模型而被特征化,一同屬性群組可能采用在其組成核心之間。如于此所使用的,在一"主控仲裁的"同屬性群組中,在核心之間的直接協(xié)調(diào)被限定為在主控核心及其非主控核心之間的協(xié)調(diào)。在同屬性群組之內(nèi)的非主控核心無法彼此直接協(xié)調(diào),但只間接地經(jīng)由主控核心。在一"同儕合作"同屬性群組中,相較之下,同屬性群組的任何兩個(gè)核心可能彼此直接協(xié)調(diào),而無須主控核心的仲裁。在一同儕合作同屬性群組中,對(duì)于主控的一種更功能性地相容專門用語將是一"委派",因?yàn)槠渥鳛橐粎f(xié)調(diào)看門人,只為了與較高層次域協(xié)調(diào),而不為了與在同屬性群組織同儕之間協(xié)調(diào)。應(yīng)注意到,于此定義在一"主控仲裁"及"同儕合作"同屬性群組之間的區(qū)另|J,只有對(duì)于具有三個(gè)或三個(gè)以上的核心的同屬性群組是有意義的。一般而言,對(duì)某些預(yù)定活動(dòng)而言,任何既定核心只可與其同屬性群組的成份或共同成份協(xié)調(diào),及相關(guān)于其的任何主控仲裁的同屬性群組,其為一部分,只適合地具有其較優(yōu)的"共同成份"或較差成份。從一節(jié)點(diǎn)階層的節(jié)點(diǎn)與節(jié)點(diǎn)連接的角度說明上面的階層式協(xié)調(diào)系統(tǒng)亦是適當(dāng)?shù)?。如于此所使用的,一?jié)點(diǎn)階層為每個(gè)節(jié)點(diǎn)是多核心處理器的核心的唯一的一個(gè),其中一個(gè)核心(例如,BSP核心)為根節(jié)點(diǎn),且在任兩個(gè)節(jié)點(diǎn)之間存在有一連續(xù)不斷的協(xié)調(diào)" 路徑"(包含中間節(jié)點(diǎn),如果適合的話)。每個(gè)節(jié)點(diǎn)是"節(jié)點(diǎn)連接"至至少一另一個(gè)節(jié)點(diǎn), 而非所有其他節(jié)點(diǎn),且為了為協(xié)調(diào)系統(tǒng)所應(yīng)用到的活動(dòng)的目的,只可與"節(jié)點(diǎn)連接的"核心協(xié)調(diào)。為了更進(jìn)一步區(qū)別這些節(jié)點(diǎn)連接,于此將把一主控核心的附屬節(jié)點(diǎn)地連接核心看成〃成份"核心或者看成"附屬家族"核心,“附屬家族"核心是與一核心的節(jié)點(diǎn)地連接的"共同成份核心"有所區(qū)別,而"共同成份核心"為并非附屬于本身的節(jié)點(diǎn)地連接核心。更進(jìn)一步說清楚,一核心的節(jié)點(diǎn)地連接的"共同成份"核心包含其主控核心(如果有的話),以及其是節(jié)點(diǎn)地連接的任何同等階級(jí)的核心(例如,在其的一同儕協(xié)調(diào)同屬性群組,核心為一部分)。另外,不具有附屬家族核心的任何核心于此亦被稱為"終端"節(jié)點(diǎn)或〃終端〃核心。
直到這一點(diǎn),為了清楚的目的,已說明階層式協(xié)調(diào)系統(tǒng),于其中這些域?qū)?yīng)至核心的一實(shí)體上清楚的巢狀配置(例如,一清楚的域?qū)?yīng)至每個(gè)適合的核心、晶粒、封裝以及平臺(tái))。舉例而言,圖1、9、12、16以及22,所有顯示的階層式協(xié)調(diào)系統(tǒng)相容于處理器所顯示的核心的實(shí)體上清楚的巢狀封裝。圖22為一有興趣的相容例子。其顯示具有多個(gè)不對(duì)稱封裝的八核心處理器2202,其中一個(gè)具有三個(gè)雙核心晶粒而其余具有單核心晶粒。然而,與利用其封裝核心的實(shí)體上清楚的巢狀方式相符,假設(shè)旁帶配線定義一對(duì)應(yīng)的三個(gè)層次階層式協(xié)調(diào)系統(tǒng),其具有相關(guān)作為好友的封裝主控,相關(guān)作為伙伴的晶粒主控,以及相關(guān)作為朋友的晶粒核心。但是,依據(jù)一處理器的核心間、晶粒間以及封裝間旁帶配線(如果有的話)的組態(tài),在核心之間的階層式協(xié)調(diào)系統(tǒng)可能被建立,相較在處理器的核心中的巢狀實(shí)體配置是被封裝,其具有一不同深度及分層。數(shù)個(gè)這種例子是設(shè)置于圖11、14、15以及21中。圖11 顯示具有兩個(gè)封裝的八核心處理器,其中每個(gè)封裝具有兩個(gè)晶粒,而每個(gè)晶粒具有兩個(gè)核心。在圖11中,設(shè)置促進(jìn)二階階層式協(xié)調(diào)系統(tǒng)的多條旁帶配線,能使所有的主控核心可能是最高層次同屬性群組的一部分,且每個(gè)主控核心亦屬于包含本身及其朋友的一不同的最低層次同屬性群組。圖14顯示具有在單一封裝上的四個(gè)雙核心晶粒的八核心處理器。在圖14中,設(shè)置需要朋友、伙伴以及好友的三層次階層式協(xié)調(diào)系統(tǒng)的多條旁帶配線。圖15顯示具有兩個(gè)四核心晶粒的一處理器,于此在每個(gè)晶粒之內(nèi)的核心間配線需要在它們之間的二階階層式協(xié)調(diào)系統(tǒng),以及多條晶粒間配線,假使一第三階層式層次的協(xié)調(diào)設(shè)置在每個(gè)晶粒的主控(亦即,好友)之間。圖21顯示像圖22具有兩個(gè)不對(duì)稱封裝的另一種八核心處理器,其中一個(gè)不對(duì)稱封裝具有三個(gè)雙核心晶粒而另一個(gè)具有單一雙核心晶粒。但是,像圖 11 一樣,晶粒間及封裝間旁帶配線是假設(shè)促進(jìn)在核心之間的二階階層式協(xié)調(diào)系統(tǒng),其中兩個(gè)封裝上的所有的主控核心為相同的同屬性群組的一部分。如上所述,不同深度與協(xié)調(diào)模型的階層式協(xié)調(diào)系統(tǒng),可依期望被應(yīng)用或適用于提供作為一多核心處理器的共用資源的分布,假若其與多核心處理器的構(gòu)造能力與限制相符的話。為了更進(jìn)一步說明,圖16顯示一種設(shè)置足夠的旁帶通訊配線以促進(jìn)在每個(gè)四核心晶粒的所有核心之間的一同儕合作協(xié)調(diào)模型的處理器。然而,在圖17中,更多限制的主控仲裁協(xié)調(diào)模型為每個(gè)四核心晶粒的核心而建立。此外,如圖15所顯示的,具有兩個(gè)朋友同屬性群組以及一個(gè)主控同屬性群組的一多層次協(xié)調(diào)階層,如果需要的話,亦可只藉由使用 (為了為協(xié)調(diào)系統(tǒng)所應(yīng)用的活動(dòng)的目的)少于所有可得到的核心間配線而為圖16的四核心微處理器的核心而建立。因?yàn)閳D16中的每個(gè)四核心晶粒提供在每一個(gè)其核心之間的旁帶配線,所以晶粒是能夠促進(jìn)階層式協(xié)調(diào)系統(tǒng)的所有三種型式。一般而言,不管域、同屬性群組以及一多核心處理器的節(jié)點(diǎn)的本質(zhì)與數(shù)目為何,每個(gè)域的核心的唯一一個(gè)以及每個(gè)對(duì)應(yīng)的同屬性群組將被指定為那個(gè)域的主控以及對(duì)應(yīng)的同屬性群組。域可具有組成的域,再者,每個(gè)域的核心的一個(gè)且只有一個(gè)以及對(duì)應(yīng)的同屬性群組將被指定為那個(gè)域的主控。協(xié)調(diào)系統(tǒng)的最高級(jí)核心亦被稱為一"根節(jié)點(diǎn)"。IV.電源狀態(tài)管理在介紹關(guān)于多核心組態(tài)、旁帶通訊能力以及階層式關(guān)系的各種概念以后,現(xiàn)在此說明書介紹關(guān)于電源狀態(tài)管理系統(tǒng)的特定考慮的實(shí)施例的某些概念。然而,應(yīng)該明白到,本發(fā)明適用于除電源狀態(tài)管理以外的多樣化活動(dòng)的協(xié)調(diào)。
在于此所說明的分配式多核心電源管理實(shí)施例中,多核心處理器的每個(gè)核心包含分散式與分配式可計(jì)量電源管理邏輯,復(fù)制于常駐在每個(gè)核心上的一個(gè)或多個(gè)微碼常式中。電源管理邏輯是可操作以接收一目標(biāo)電源狀態(tài),確定其是否為一受限制的電源狀態(tài),開始包含核心間協(xié)調(diào)的一復(fù)合電源狀態(tài)發(fā)現(xiàn)過程,并適當(dāng)?shù)胤磻?yīng)。一般而言,一目標(biāo)狀態(tài)為任何需求或期望的預(yù)定操作狀態(tài)(例如C-狀態(tài)、P-狀態(tài)、 電壓ID(VID)值或時(shí)鐘比率值)的其中一個(gè)一等級(jí)。一般而言,一預(yù)定群組的操作狀態(tài)界定包含多個(gè)處理器操作狀態(tài),其基于一個(gè)或多個(gè)電源、電壓、頻率、性能、操作、響應(yīng)性、共用資源或限制實(shí)現(xiàn)特征而可訂定。相對(duì)于一處理器的其他期望的操作特征,操作狀態(tài)可能被提供以最佳地管理電源。于一實(shí)施例中,預(yù)定操作狀態(tài)包含一有效操作狀態(tài)(例如CO狀態(tài))及多個(gè)漸進(jìn)地較不有效或敏感的狀態(tài)(例如C1,C2,C3等狀態(tài))。如于此使用的,一漸進(jìn)地較不敏感的或有效狀態(tài)表示一種相對(duì)于更有效或敏感的狀態(tài)的節(jié)省電源的配置或操作狀態(tài),或不知何故地相對(duì)不太敏感的(例如,較慢、較不完全致能、受到例如存取例如快取存儲(chǔ)器的資源的某種障礙、或較易休眠及較難喚醒)。于某些實(shí)施例中,基于衍生自或兼容于ACPI規(guī)格,預(yù)定操作狀態(tài)構(gòu)成但并非需要受限于C-狀態(tài)或休眠狀態(tài)。于其他實(shí)施例中,預(yù)定操作狀態(tài)構(gòu)成或包含各種電壓及頻率狀態(tài)(例如,漸進(jìn)地較低電壓和/或較低頻率狀態(tài)),或兩者。另外, 一組預(yù)定操作狀態(tài)可能包含或包含各種可程序化操作配置,例如待執(zhí)行于程序順序的強(qiáng)制指令,強(qiáng)制只有一個(gè)指令待發(fā)布于每時(shí)鐘周期,每時(shí)鐘周期格式化只有單一指令,每時(shí)鐘周期轉(zhuǎn)換只有單一的微指令,每時(shí)鐘周期收回只有單一的指令,和/或以串聯(lián)形式存取各種快取存儲(chǔ)器,使用的技術(shù)例如那些說明于美國(guó)申請(qǐng)案序號(hào)61/469,515,申請(qǐng)日為2011年3 月30日,名稱為〃經(jīng)由每時(shí)鐘操作的減少的指令執(zhí)行狀態(tài)電源節(jié)約(Running State Power Saving Via Reduced Instructions Per Clock Operation) " (CNTR. 2550),其于此并入作參考。將理解到,一種微處理器可能依據(jù)不同及獨(dú)立組或部分獨(dú)立組的操作狀態(tài)而可配置的。影響電源消耗、性能和/或響應(yīng)性的各種操作配置可被分配到不同等級(jí)的電源狀態(tài), 其的每個(gè)等級(jí)可能依據(jù)一對(duì)應(yīng)的階層式協(xié)調(diào)系統(tǒng)而獨(dú)立實(shí)施,其每個(gè)具有其本身的獨(dú)立界定的域、域主控及同屬性群組協(xié)調(diào)模型。一般而言,一個(gè)等級(jí)的預(yù)定操作狀態(tài)可被分成至少兩個(gè)類別(1)主近端操作狀態(tài),其影響到只有位于核心的近端的資源,或者,相關(guān)于共同的實(shí)際應(yīng)用,主要只影響到特定核心的性能;及( 受限制的操作狀態(tài),其沖擊一個(gè)或多個(gè)由其他核心共用的資源,或者,相關(guān)于共同的實(shí)際應(yīng)用,其相對(duì)地更有可能干涉其他核心的性能。沖擊共用資源的操作狀態(tài)是相關(guān)于干涉共享那資源的其他核心電源、性能,效率或響應(yīng)性的相對(duì)較大的可能性。 主近端操作狀態(tài)的實(shí)現(xiàn)一般而言并不值得與其他核心協(xié)調(diào),或早于來自其他核心協(xié)調(diào)的允許。相較之下,限制操作狀態(tài)的實(shí)現(xiàn)值得與其他核心協(xié)調(diào)及備妥性。在更進(jìn)階的實(shí)施例中,預(yù)定操作狀態(tài)可被分成更多階層式類別,取決于各種資源是如何共用及共用的程度。例如,一第一組操作狀態(tài)可能界定位于一核心的近端的資源的配置,一第二組操作狀態(tài)可能界定由一晶粒的核心共用但不像那樣位于那晶粒的近端的資源的配置,一第三組操作狀態(tài)可能界定由一封裝的核心等等共用的資源的配置。一操作狀態(tài)的實(shí)現(xiàn)值得與其他核心共享一個(gè)由適合的操作狀態(tài)配置的資源協(xié)調(diào)及備妥性質(zhì)。
一般而言,一種關(guān)于任何既定域的復(fù)合操作狀態(tài)為一個(gè)屬于那個(gè)域的每個(gè)致能的實(shí)體核心的適合的操作狀態(tài)的極值(亦即最大或最小值)。于一實(shí)施例中,一實(shí)體核心的適合的操作狀態(tài)為核心的最近且及仍然正確的目標(biāo)或需求的操作狀態(tài),如果有的話,或者,如果核心并不具有一最近的正確的目標(biāo)或需求的操作狀態(tài)的話,實(shí)體核心的適合的操作狀態(tài)為某些預(yù)設(shè)值。預(yù)設(shè)值可能是零(例如,復(fù)合操作狀態(tài)被計(jì)算為最小值的狀況),預(yù)定操作狀態(tài)的最大值(例如,復(fù)合操作狀態(tài)被計(jì)算為最大值的狀況),或者核心的目前實(shí)施的操作狀態(tài)。于一例子中,一核心的適合的操作狀態(tài)為一電源或操作狀態(tài),例如核心所期望的或需求的電壓ID(VID)或時(shí)鐘比率值。于另一例子中,一核心的適合的操作狀態(tài)為核心已經(jīng)從適合的系統(tǒng)軟件接收的最近的正確的C-狀態(tài)。在另一實(shí)施例中,一實(shí)體核心的適合的操作狀態(tài)為核心的最近的及仍然正確的目標(biāo)或需求的操作狀態(tài)的一極值(如果有的話),以及將影響位于最高域(如果有的話,核心為此最高域具有主控憑據(jù))的近端的資源的最極端操作狀態(tài)。因此,關(guān)于處理器的復(fù)合操作狀態(tài)整體看來將是那處理器的所有的致能的實(shí)體核心的適合的電源狀態(tài)的最大值或最小值。一種封裝的復(fù)合電源狀態(tài)將是那封裝的所有致能的實(shí)體核心適合的電源狀態(tài)的最大值或最小值。一種晶粒的復(fù)合電源狀態(tài)將是那晶粒的所有的致能的實(shí)體核心的適合的電源狀態(tài)的最大值或最小值。在說明于此的分散式電源狀態(tài)管理實(shí)施例中,每個(gè)核心的電源管理邏輯的一部分或常式為同步邏輯,其被設(shè)計(jì)成用以至少有條件地與其他節(jié)點(diǎn)地連接核心(亦即,同一同屬性群組的其他核心)交換電源狀態(tài)信息,以決定一混合電源狀態(tài)。一種混合電源狀態(tài)為對(duì)應(yīng)于原生性及同步邏輯的至少一節(jié)點(diǎn)地連結(jié)實(shí)例的核心的至少適合的電源狀態(tài)的一極值。在某些而非必要所有情況之下,由一同步常式計(jì)算及傳回的一混合電源狀態(tài)將準(zhǔn)確地對(duì)應(yīng)至關(guān)于一適合范圍的一復(fù)合電源狀態(tài)。每個(gè)同步邏輯的實(shí)施的實(shí)例被設(shè)計(jì)成用以在尚未同步節(jié)點(diǎn)地連接的核心中,至少有條件地產(chǎn)生同步邏輯的從屬實(shí)例,開始于最立即同屬性群組的節(jié)點(diǎn)地連接核心,繼續(xù)至漸進(jìn)地較高層次同屬性群組的節(jié)點(diǎn)地連接核心(如果有的話,而同步邏輯實(shí)例屬于于其上的核心)。尚未同步的節(jié)點(diǎn)地連接核心為節(jié)點(diǎn)地連接至本身(關(guān)于其的同步邏輯同步化實(shí)例尚未被實(shí)施為一復(fù)合電源狀態(tài)發(fā)現(xiàn)過程的一部分)的核心。此種發(fā)現(xiàn)過程進(jìn)行至同步邏輯的每個(gè)實(shí)例,其遞歸地產(chǎn)生(至少有條件地)同步邏輯的又更進(jìn)一步的從屬實(shí)例于尚未同步的節(jié)點(diǎn)地遠(yuǎn)端核心,直到有同步邏輯的同步化的實(shí)例執(zhí)行于適合潛在地沖擊域的每一個(gè)核心上為止。在發(fā)現(xiàn)關(guān)于適合范圍的一復(fù)合電源狀態(tài)時(shí),執(zhí)行于一核心上的電源管理邏輯的一實(shí)例(被指定為被授權(quán)以致能或執(zhí)行關(guān)于那范圍的復(fù)合電源狀態(tài)的實(shí)現(xiàn))可致能/或進(jìn)行實(shí)現(xiàn)。V.特定說明的實(shí)施例現(xiàn)在將注意力轉(zhuǎn)至圖所顯示的特定實(shí)施例。于一實(shí)施例中,同步邏輯的每個(gè)實(shí)例經(jīng)由與系統(tǒng)總線不同的旁帶通訊或旁通總線線(核心間通訊配線112、晶粒間通訊配線118以及封裝間通訊配線1133)而與其他核心上的邏輯的同步化實(shí)例相通,用以利用一種分散式的分配方式執(zhí)行電源管理。這可允許核心實(shí)體上設(shè)置在多重晶粒上或甚至在多重封裝上,藉以可能地降低晶粒尺寸并改善良率,且提供系統(tǒng)中的核心數(shù)的高度的可量測(cè)性,而無須對(duì)現(xiàn)代化的微處理器晶粒與封裝的焊墊與接腳限制施加不當(dāng)壓力?,F(xiàn)在參考圖1所顯示的方塊圖,其顯示依據(jù)本發(fā)明執(zhí)行分配在一多核心微處理器 102的多重處理核心106之間的分散式電源管理的一計(jì)算機(jī)系統(tǒng)100的一實(shí)施例。系統(tǒng)100 包含藉由一系統(tǒng)總線116耦接至多核心微處理器102的單一芯片組114。多核心微處理器 102封裝包含兩個(gè)以晶粒0及晶粒1表示的雙核心晶粒104。晶粒104安裝于封裝的一基板上。基板包含配線網(wǎng)(或只簡(jiǎn)單稱為"配線")或者線路,其將晶粒104的焊墊連接至封裝102的接腳。除其他因素以外,接腳可能連接至總線116?;迮渚€亦包含互連晶粒 104的晶粒間通訊配線118(以下討論更多的)以促進(jìn)它們之間的通訊,用以執(zhí)行分配在多核心微處理器102的核心106之間的分散式電源管理。每一個(gè)雙核心晶粒104包含兩個(gè)處理核心106。晶粒0包含核心0及核心1,而晶粒1包含核心2及核心3。每個(gè)晶粒104具有一標(biāo)示的主控核心106。于圖1的本實(shí)施例中,核心0為晶粒0的主控核心106,而核心2為晶粒1的主控核心106。于一實(shí)施例中,每個(gè)核心106包含配置熔絲(configuration fuses)。晶粒104的制造商可能吹制配置熔絲以標(biāo)示核心106何者為晶粒104的主控核心。此外,晶粒104的制造商可能吹制配置熔絲以標(biāo)示其實(shí)例至每個(gè)核心106,亦即,核心106是否為核心0、核心1、核心2或核心3。如上所述, 專門用語"朋友"用以表示在彼此溝通的相同晶粒104上的核心106 ;因此,于圖1的本實(shí)施例中,核心0及核心1為朋友,而核心2及核心3為朋友。專門用語"伙伴"于此用以表示在彼此溝通的不同晶粒104上的主控核心106 ;因此,于圖1的本實(shí)施例中,核心0及核心 2為伙伴。依據(jù)一個(gè)實(shí)施例,偶數(shù)核心106為每個(gè)晶粒104的主控核心。依據(jù)一個(gè)實(shí)施例, 核心0標(biāo)示為多核心微處理器102的啟動(dòng)服務(wù)處理器(boot service processor (BSP))。 其單獨(dú)被授權(quán)以與芯片組114協(xié)調(diào)某些限制活動(dòng),包含允許某些復(fù)合電源狀態(tài)的實(shí)現(xiàn)。依據(jù)一個(gè)實(shí)施例,BSP核心106通知芯片組114其可能需求移除總線116時(shí)鐘的允許以減少電源消耗和/或避免在總線116上產(chǎn)生窺探循環(huán),如以下相關(guān)于圖3的方塊322所討論的。 于一實(shí)施例中,BSP為核心106,其總線需求輸出是耦接至總線116上的BREQO信號(hào)。在每個(gè)晶粒104之內(nèi)的兩個(gè)核心106經(jīng)由位于晶粒104內(nèi)部的核心間通訊配線 112溝通。更明確而言,核心間通訊配線112允許在一晶粒104之內(nèi)的核心106彼此中斷并彼此傳遞訊息,用以執(zhí)行分配在多核心微處理器102的核心106之間的分散式電源管理。 于一實(shí)施例中,核心間通訊配線112包含平行總線。于一實(shí)施例中,核心間通訊配線112是類似于說明于CNTR. 2528的那些。此外,核心106經(jīng)由晶粒間通訊配線118溝通。更明確而言,晶粒間通訊配線118 允許個(gè)別的晶粒104上的主控核心106彼此中斷并彼此傳遞訊息,用以執(zhí)行分配在多核心微處理器102的核心106之間的分散式電源管理。于一實(shí)施例中,晶粒間通訊配線118以總線116時(shí)鐘頻率執(zhí)行。于一實(shí)施例中,核心106傳輸32位訊息至彼此。傳送或廣播的核心106設(shè)立其供一個(gè)總線116時(shí)鐘用的單一配線晶粒間通訊配線118,用以表示其即將傳輸一訊息,然后,傳遞在下一個(gè)各自的31個(gè)總線116時(shí)鐘上的31位的一序列。于每個(gè)晶粒間通訊配線118的末端為一 32位移位寄存器,其累積被接收成為32位訊息的單一位。于一實(shí)施例中,32位訊息包含多個(gè)信息字段(field)。一個(gè)信息字段載明依據(jù)說明于CNTR. 2534 中的所共用的VRM分配式管理機(jī)制而使用的一 7位需求的VID值。其他信息字段包含關(guān)于電源狀態(tài)(例如C-狀態(tài))同步的訊息,例如C-狀態(tài)需求值與回報(bào),其在核心106之間交換,如于此所討論的。此外,一特殊訊息值可使一傳送的核心106中斷一接收的核心106。于圖1的本實(shí)施例中,每個(gè)晶粒104包含耦接至四個(gè)各自的接腳 (以〃 Pl"、“ P2"、“ P3"以及〃 P4"表示)的四個(gè)焊墊108。關(guān)于四個(gè)焊墊108,其中一個(gè)為一輸出焊墊(以〃 OUT"表示),而另外三個(gè)為輸入焊墊(以IN U IN 2以及IN 3表示)。晶粒間通訊配線118被設(shè)計(jì)如下。晶粒0的OUT焊墊與晶粒1的IN 1焊墊經(jīng)由單一配線網(wǎng)耦接至接腳Pl ;晶粒1的OUT焊墊與晶粒0的IN 3焊墊經(jīng)由單一配線網(wǎng)耦接至接腳P2;晶粒0的IN 2焊墊與晶粒1的IN 3焊墊經(jīng)由單一配線網(wǎng)耦接至接腳P 3 ;而晶粒0的IN 1焊墊與晶粒1的IN 2焊墊經(jīng)由單一配線網(wǎng)耦接至接腳P4。于一實(shí)施例中,核心106包含在每個(gè)訊息中的一識(shí)別符,其傳輸離開在其晶粒間通訊配線118(或以下相關(guān)于圖11所說明的封裝間通訊配線1133)上的其OUT焊墊108。此識(shí)別符獨(dú)特地確認(rèn)此訊息預(yù)定到達(dá)的目標(biāo)核心106,其在于此所說明的實(shí)施例(其中此訊息被廣播至多重接受者核心 106)中是有用的。于一實(shí)施例中,每個(gè)晶粒104是基于在多核心微處理器102的制造期間吹制的一配置熔絲,而將四個(gè)焊墊108的其中一個(gè)指定為其輸出焊墊(OUT)。當(dāng)晶粒0的主控核心0想要與晶粒1的主控核心2溝通時(shí),其將在其OUT焊墊上的信息傳輸至晶粒ι的IN 1焊墊;同樣地,當(dāng)晶粒1的主控核心2想要與晶粒0的主控核心0溝通時(shí),其將在其OUT焊墊上的信息傳輸至晶粒0的IN 3焊墊。因此,于圖1的本實(shí)施例中,每個(gè)晶粒104只需要一個(gè)輸入焊墊108而非三個(gè)。然而,制造具有三個(gè)輸入焊墊108 的晶粒104的一項(xiàng)優(yōu)點(diǎn)為其允許相同的晶粒104在圖1的四核心多核心微處理器102以及例如圖9所示的八核心多核心微處理器902兩者中被被設(shè)計(jì)。此外,于圖1的本實(shí)施例中, 兩個(gè)接腳P是不需要的。然而,制造具有四個(gè)接腳P的晶粒104的一項(xiàng)優(yōu)點(diǎn)為其允許相同的四核心微處理器102在圖1的單一四核心微處理器102以及在例如圖11所示的具有兩個(gè)四核心微處理器1102的八核心系統(tǒng)1100兩者中被被設(shè)計(jì)。然而,考慮四核心實(shí)施例,于其中可能移除未使用的接腳P與焊墊108以在需要時(shí)減少焊墊以及接腳數(shù),例如顯示于圖 12與14至16的本實(shí)施例中。此外,考慮例如顯示于圖19與20的本實(shí)施例中的雙核心實(shí)施例,于其中可能移除未使用的接腳P與焊墊108以減少焊墊以及接腳數(shù),或在需要時(shí)為另一個(gè)目的而被部署。依據(jù)一個(gè)實(shí)施例,總線116包含允許芯片組114與多核心微處理器102經(jīng)由類似于熟知的Pentium 4總線協(xié)定的一總線協(xié)定傳遞的數(shù)個(gè)信號(hào)??偩€116包含由芯片組114 提供給多核心微處理器102的一總線時(shí)鐘信號(hào),核心106使用其以產(chǎn)生它們的內(nèi)部核心時(shí)鐘信號(hào),其頻率一般為總線方塊頻率的比率??偩€116亦包含一 STPCLK信號(hào)(被芯片組 114設(shè)立),以需求來自核心106的允許以移除總線時(shí)鐘信號(hào),亦即,允許以停止提供總線時(shí)鐘信號(hào)。多核心微處理器102以從一預(yù)先決定的1/0連接端口地址執(zhí)行在總線116上的一 1/0讀取傳輸,表示其可能設(shè)立STPCLK至芯片組114,只有其中一個(gè)核心106執(zhí)行它。如以下所討論的,較佳的是,多重核心106經(jīng)由核心間通訊配線112與晶粒間通訊配線118而彼此溝通,用以決定單一核心106何時(shí)可執(zhí)行1/0讀取傳輸。依據(jù)一個(gè)實(shí)施例,在芯片組114 設(shè)立STPCLK之后,每一個(gè)核心106發(fā)布一 STOP GRANT訊息給芯片組114 ;一旦每個(gè)核心106 已發(fā)布一 STOP GRANT訊息,芯片組114就可能移除總線時(shí)鐘。在另一實(shí)施例中,芯片組114 具有一配置選擇,以使其在其移除總線時(shí)鐘之前只期望來自多核心微處理器102的單一的STOP GRANT 訊息。 現(xiàn)在參考圖2所顯示的方塊圖,其詳細(xì)顯示依據(jù)本發(fā)明的圖1的核心106的其中一個(gè)代表。依據(jù)一個(gè)實(shí)施例,核心106微結(jié)構(gòu)包含功能單元的一超標(biāo)量(superscalar)、亂序執(zhí)行管線。一指令快取202快取從一系統(tǒng)存儲(chǔ)器提取的指令(未顯示)。一指令譯碼器204耦接以接收來自指令快取202的指令(例如x86指令集架構(gòu)指令)。一注冊(cè)別名表 (RAT) 212耦接以接收來自指令譯碼器204及來自一微序列器206的譯碼微指令,并產(chǎn)生譯碼微指令的依存信息。保留站214耦接以接收來自RAT 212的譯碼微指令以及依存信息。 執(zhí)行單元216耦接以接收來自保留站214的譯碼微指令并接收供譯碼微指令用的指令運(yùn)算元。運(yùn)算元可能來自核心106的寄存器(例如通用寄存器及可讀取且可寫入的特別模塊寄存器(MSR) 238,以及來自耦接至執(zhí)行單元216的一數(shù)據(jù)快取222。一撤退單元218耦接以接收起因于執(zhí)行單元216的指令,使結(jié)果撤退至核心106的架構(gòu)狀態(tài)。數(shù)據(jù)快取222耦接至一總線接口單元(BIU) 224,其使核心106接口連接至圖1的總線116。一鎖相回路(PLL) 2 接收來自總線116的總線時(shí)鐘信號(hào),以及從其產(chǎn)生一核心時(shí)鐘信號(hào)242至核心106的各種功能單元。PLL 2 可能經(jīng)由執(zhí)行單元216而受控制,例如被禁能。
執(zhí)行單元216接收一 BSP指示器228以及一主控指示器232,其分別表示核心106 是否為晶粒104的主控核心與多核心微處理器102的BSP核心。如上所述,BSP指示器228 與主控指示器232可能包含可程序化熔絲。于一實(shí)施例中,BSP指示器228與主控指示器 232儲(chǔ)存于一特別模塊寄存器(MSR) 238中,其首先填充有可程序化熔絲值,但其可能藉由軟件寫入至MSR238而被更新。執(zhí)行單元216亦讀取并寫入控制與狀態(tài)寄存器(CSR) 234與 236,用以與其他核心106溝通。尤其,核心106使用CSR 236,用以經(jīng)由核心間通訊配線112 而與相同晶粒104上的核心106溝通,且核心106使用CSR 234,用以通過焊墊108經(jīng)由晶粒間通訊配線118而與其他晶粒104上的核心106溝通,如以下詳細(xì)說明的。微序列器206包含設(shè)計(jì)成用以儲(chǔ)存包含電源管理邏輯微碼208的微碼的一微碼存儲(chǔ)器207。為本說明書的目的,于此所使用的專門用語"微碼"表示由相同的核心106所執(zhí)行的指令,其執(zhí)行通知核心106轉(zhuǎn)變成一電源管理相關(guān)的狀態(tài)(于此稱為一休眠狀態(tài)、閑置狀態(tài)、C-狀態(tài)或電源狀態(tài))的架構(gòu)指令(例如MWAIT指令)。亦即,一狀態(tài)轉(zhuǎn)變指令的實(shí)例是核心106特有的,且為因應(yīng)狀態(tài)轉(zhuǎn)變指令實(shí)例所執(zhí)行的微碼208在那個(gè)核心106上執(zhí)行。處理核心106是對(duì)稱的,因?yàn)樗鼈兠總€(gè)具有相同的指令集架構(gòu)并被設(shè)計(jì)以執(zhí)行包含來自指令集架構(gòu)的指令的使用者程序。除了核心106以外,多核心微處理器102可能包含一附屬或服務(wù)處理器(未顯示),其并不具有與核心106相同的指令集架構(gòu)。然而,依據(jù)本發(fā)明,核心106它們本身(而非附屬或服務(wù)處理器且而非任何其他非核心邏輯元件)執(zhí)行分配在多核心微處理器102的多重處理核心106之間的分散式電源管理,以因應(yīng)狀態(tài)轉(zhuǎn)變指令,其可能勝過一種具有代表核心執(zhí)行電源管理的專用硬件的設(shè)計(jì)而有利地提供提高的可調(diào)(尺寸的)能力、可重組性、良率特性、電源減少和/或晶粒實(shí)際地區(qū)減少。電源管理邏輯微碼208指令因應(yīng)至少兩個(gè)條件而被實(shí)施。首先,可能實(shí)施電源管理邏輯微碼208以實(shí)行核心106的指令集架構(gòu)的一指令。于一實(shí)施例中,X86MWAIT與IN 指令等實(shí)行在微碼208中。亦即,當(dāng)指令譯碼器204遇到一 X86MWAIT或IN指令時(shí),指令譯碼器204中止提取目前執(zhí)行的使用者程序指令,并將控制傳送至微序列器206以開始提取實(shí)行X86MWAIT或IN指令的電源管理邏輯微碼208中的一常式。其次,電源管理邏輯微碼208可能被實(shí)施以因應(yīng)一中斷事件。亦即,當(dāng)一中斷事件產(chǎn)生時(shí),核心106中止提取目前的使用者程序指令,并將控制傳送至微序列器206以開始提取操縱中斷事件的電源管理邏輯微碼208中的一常式。中斷事件包含架構(gòu)中斷、例外、錯(cuò)誤或捕捉(t rap s),例如由x86指令集架構(gòu)所界定的那些。一中斷事件的一例子為總線116上的一 I/O讀取傳輸對(duì)于與電源管理相關(guān)的一些預(yù)先決定的I/O地址的其中一個(gè)的檢測(cè)。中斷事件亦包含非架構(gòu)界定的事件。于一實(shí)施例中,非架構(gòu)界定的中斷事件包含經(jīng)由圖1的核心間通訊配線118發(fā)送信號(hào)或經(jīng)由圖1的晶粒間通訊配線118發(fā)送信號(hào)(或經(jīng)由圖11的封裝間通訊配線1133發(fā)送信號(hào),以下所討論的)的一核心間中斷需求(例如與圖5與6相關(guān)所說明的);以及藉由芯片組的一 STPCLK設(shè)立或解除設(shè)立的檢測(cè)。于一實(shí)施例中,電源管理邏輯微碼208指令為核心 106的微架構(gòu)指令組的指令。在另一實(shí)施例中,微碼208指令為不同的指令組的指令,其取得轉(zhuǎn)變成為核心106的微架構(gòu)指令組的指令。圖1的系統(tǒng)100執(zhí)行分配在多重處理核心106之間的分散式電源管理。更明確而言,每個(gè)核心實(shí)施其原生性電源管理邏輯微碼208以響應(yīng)對(duì)轉(zhuǎn)變成一目標(biāo)電源狀態(tài)的一狀態(tài)轉(zhuǎn)變需求。一目標(biāo)電源狀態(tài)為多個(gè)預(yù)定電源狀態(tài)(例如C-狀態(tài))的任何需求的其中一個(gè)。預(yù)定電源狀態(tài)包含一參考或主動(dòng)操作狀態(tài)(例如ACPI的CO狀態(tài))以及多個(gè)漸進(jìn)地且相對(duì)不太敏感的狀態(tài)(例如ACP I的Cl、C2、C3等狀態(tài))。現(xiàn)在參考圖3所顯示的流程圖,其依據(jù)本發(fā)明顯示圖1的系統(tǒng)100的操作,用以執(zhí)行分配在多核心微處理器102的多重處理核心106之間的分散式電源管理。具體而言,流程圖顯示電源管理邏輯微碼208的一部分的操作,因應(yīng)于遭遇一 MWAI T指令或類似的命令, 以轉(zhuǎn)變成一新電源狀態(tài)。更明確而言,圖3所顯示的電源管理邏輯微碼208的部分為電源管理邏輯的一狀態(tài)轉(zhuǎn)變需求處理邏輯(STRHL)常式。為了促進(jìn)對(duì)圖3的更佳理解,MWAIT指令與C-狀態(tài)架構(gòu)的實(shí)施樣態(tài)是在說明每一個(gè)圖3的個(gè)別方塊之前被說明。MWAIT指令可能包含在操作系統(tǒng)(例如, Windows 、Linux 、MacOS )或其他系統(tǒng)軟件中。舉例而言,如果系統(tǒng)軟件知道系統(tǒng)上的工作量目前是低或不存在的,則系統(tǒng)軟件可能執(zhí)行一 MWAIT指令以允許核心106進(jìn)入一低電源狀態(tài),直到一事件(例如從一周邊裝置的一中斷)要求由核心106服務(wù)為止。關(guān)于另一例子,在核心106上執(zhí)行的軟件可能是與在另一核心106上執(zhí)行的軟件的共享數(shù)據(jù), 以需要在存取至由兩個(gè)核心106所共用的數(shù)據(jù)之間的經(jīng)由例如一信號(hào)機(jī)(semaphore)的同步;如果可能一段顯著的時(shí)間量可能在另一核心106執(zhí)行儲(chǔ)存至信號(hào)機(jī)之前通過,則在瞬間核心106上執(zhí)行的軟件允許瞬間核心106經(jīng)由MWAIT指令進(jìn)入低電源狀態(tài),直到儲(chǔ)存至信號(hào)機(jī)發(fā)生為止。MWAIT指令詳細(xì)說明于2009年3月的^itelR 64與IA-32架構(gòu)軟件開發(fā)人員手冊(cè) (Architectures Software Deve loper' s Manual),卷 2A 指令集參考(A-M)的第 3-761 至3764頁,而監(jiān)視(MONITOR)指令詳細(xì)說明于相同的第3-637至3-639頁,其為所有目的全部藉此并入作參考。MWAIT指令可能指定一目標(biāo)C-狀態(tài)。依據(jù)一個(gè)實(shí)施例,C-狀態(tài)0為一執(zhí)行狀態(tài), 而大于O的C-狀態(tài)為休眠狀態(tài);1及較高的C-狀態(tài)為停止?fàn)顟B(tài),于其中核心106不做提取并執(zhí)行指令;以及2及較高的C-狀態(tài)為核心106可能執(zhí)行額外動(dòng)作以減少其電源消耗,例如禁能其快取存儲(chǔ)器并降低其電壓和/或頻率的狀態(tài)。
依據(jù)一個(gè)實(shí)施例,2或較高的C-狀態(tài)被視為并預(yù)先決定成為一受限制的電源狀態(tài)。在2或較高的C-狀態(tài)中,芯片組114可能移除總線116時(shí)鐘,藉以有效地禁能核心106 時(shí)鐘,以便大幅地減少由核心106的電源消耗。關(guān)于每個(gè)后段較高的C-狀態(tài),允許核心106 執(zhí)行個(gè)別需要較長(zhǎng)的時(shí)間(由其恢復(fù)至執(zhí)行狀態(tài))的更積極的電源節(jié)約動(dòng)作??赡苁购诵?106退出低電源狀態(tài)的事件的例子為一中斷及藉由另一處理器儲(chǔ)存至由一以前執(zhí)行的監(jiān)視 (MONITOR)指令而特別指定的一地址范圍。明顯地,對(duì)C-狀態(tài)的ACP I編號(hào)機(jī)制使用較高的C號(hào)碼以表示漸進(jìn)地較不敏感、 較深的休眠狀態(tài)。藉由使用這種編號(hào)機(jī)制,任何既定的主顧群組(亦即晶粒、封裝、平臺(tái)) 的復(fù)合電源狀態(tài)將是那個(gè)主顧群組的所有致能核心的適合的C-狀態(tài)的最小值,于此如果核心并不具有一正確最近的有效要求的C-狀態(tài),則每個(gè)核心的適合C-狀態(tài)是其最近有效要求的C-狀態(tài)(如果有的話)與零。然而,其他等級(jí)的電源狀態(tài)使用漸進(jìn)較高的號(hào)碼以表示漸進(jìn)更敏感的狀態(tài)。舉例而言,CNTR. 2534說明一種指示一期望的電壓識(shí)別符(VID)至一電壓調(diào)節(jié)器模組(VRM)的協(xié)調(diào)系統(tǒng)。較高的VID對(duì)應(yīng)至較高電壓電平,其因而對(duì)應(yīng)至較快的(因而是更敏感的)性能狀態(tài)。但協(xié)調(diào)一復(fù)合VID涉及決定核心的需求的VID值的最大值。因?yàn)橐浑娫礌顟B(tài)編號(hào)機(jī)制可依上升或下降次序被指定,所以此說明書的部分將復(fù)合電源狀態(tài)界定為一"極值",其相關(guān)核心的適合電源狀態(tài)的最小值或最大值。然而,將明白即使需求的VID及時(shí)鐘比率值是朝與它們的已知的順序相反的一方向"可訂定"(譬如使用負(fù)的原始值);因此不管它們傳統(tǒng)上界定的方向?yàn)楹危踔粮貏e界定的階層式協(xié)調(diào)系統(tǒng),于此通常適合于電源狀態(tài)。雖然圖3說明一實(shí)施例,于其中核心106響應(yīng)一 MWAIT指令以執(zhí)行分散式電源管理,但是核心106亦可能響應(yīng)通知核心106其可能進(jìn)入一低電源狀態(tài)的其他形式的輸入。舉例而言,總線接口單元2M可能產(chǎn)生一信號(hào),用以使核心106捕捉微碼208以因應(yīng)檢測(cè)在總線116上的一 I/O讀取傳輸至一預(yù)先決定的I/O端口范圍。再者,考慮到核心106捕捉微碼208以因應(yīng)由核心106所接收的其他外部信號(hào)的實(shí)施例,且實(shí)施例并未受限于x86指令集架構(gòu)實(shí)施例或受限于包含一 Pentium 4型式處理器總線的系統(tǒng)的實(shí)施例。再者,一核心 106的既定目標(biāo)狀態(tài)可能內(nèi)部地被產(chǎn)生,如經(jīng)常出現(xiàn)具有期望的電壓與時(shí)鐘數(shù)值的情況?,F(xiàn)在焦點(diǎn)放在圖3的個(gè)別的功能方塊,流程于方塊302開始。于方塊302,圖2的指令譯碼器204遇到一MWAIT指令并捕捉電源管理邏輯微碼208,且特別是實(shí)現(xiàn)MWAIT指令的STRHL常式。MWAIT指令載明以〃 X"表示的一目標(biāo)C-狀態(tài),并通知核心106其可能進(jìn)入一最佳化狀態(tài)同時(shí)等待一事件發(fā)生。具體而言,最佳化狀態(tài)可能是一低電源狀態(tài),于其中核心106消耗比核心106遇到MWAIT指令的執(zhí)行狀態(tài)更少的電源。流程繼續(xù)至方塊303。微碼將"X"儲(chǔ)存成為核心的適合的或最近的有效要求的電源狀態(tài),以"Y"表示。可注意到,如果核心106尚未遇到一MWAIT指令,或如果因?yàn)閺哪菚r(shí)起那指令已被取代或變成陳舊的(譬如藉由一后來的STPCLK解除設(shè)立)且核心是處于一正常執(zhí)行狀態(tài),則儲(chǔ)存為核心的適合或最近的有效要求的電源狀態(tài)的數(shù)值"Y"為0。流程繼續(xù)至方塊304。于方塊304,微碼208(更詳細(xì)而言是STRHL常式)檢驗(yàn)"X",其為對(duì)應(yīng)于目標(biāo)C-狀態(tài)的一數(shù)值。如果"X"小于2(亦即,目標(biāo)C-狀態(tài)為1), 則流程繼續(xù)至方塊306;而,如果目標(biāo)C-狀態(tài)大于或等于2(亦即,“X"對(duì)應(yīng)至一受限制的電源狀態(tài)),則流程繼續(xù)至方塊308。于方塊306,微碼208將核心106置于休眠。亦即,微碼208的STRHL常式將控制寄存器寫入在核心106之內(nèi),用以使其終止提取并執(zhí)行指令。 因此,核心106消耗比當(dāng)其正處于一執(zhí)行狀態(tài)時(shí)更少的電源。最好是,當(dāng)核心106正休眠時(shí), 微序列器206亦沒有提取并執(zhí)行微碼208指令。流程于方塊306結(jié)束。圖5說明為因應(yīng)從休眠被喚醒的核心106的操作。方塊308表示一條路徑,微碼208的STRHL常式判斷〃 X"是否為對(duì)應(yīng)于一受限制的電源狀態(tài)的2或更多。如上所述,于一實(shí)施例中,2或更多的一種C-狀態(tài)涉及移除總線116時(shí)鐘。總線116時(shí)鐘為由核心106所共用的一資源。因此,當(dāng)一核心設(shè)有2或較高的一目標(biāo)C-狀態(tài)時(shí),核心106較佳是如于此所說明的以一種分配式與協(xié)調(diào)方式溝通,用以確認(rèn)每個(gè)核心106已被通知其可能在連接至芯片組114(其可能移除總線116時(shí)鐘)之前轉(zhuǎn)變成2或更大的一 C-狀態(tài)。在方塊308中,微碼208的STRHL常式基于由于方塊302所遇到的MWAIT指令而特別指定的目標(biāo)C-狀態(tài),執(zhí)行相關(guān)的電源節(jié)約動(dòng)作(PSA)。一般而言,由核心106所采取的 PSA包含獨(dú)立于其他核心106的動(dòng)作。舉例而言,每個(gè)核心106包含其自己的快取存儲(chǔ)器, 其是位于核心106本身(例如,指令快取202與數(shù)據(jù)快取22 的近端,而PSA包含刷新局部快取、移除它們的時(shí)鐘以及使它們斷電。在另一實(shí)施例中,多核心微處理器102可能亦包含由多重核心106所共用的快取。于本實(shí)施例中,共用的快取無法被刷新,使它們的時(shí)鐘被移除,或被斷電,直到核心106彼此溝通以決定所有核心106已接收指定一適當(dāng)?shù)哪繕?biāo)C-狀態(tài)的一 MWAIT為止,在這種情況下,它們可能在通知芯片組114其可能需求移除總線116時(shí)鐘和/或抑制在總線116上產(chǎn)生窺探循環(huán)的允許之前,刷新共用的快取、移除它們的時(shí)鐘并使它們斷電(參見方塊322)。于一實(shí)施例中,核心106共用一電壓調(diào)節(jié)器模組(VRM)。 CNTR. 2534說明一種利用一種分配式的分散方式以管理由多重核心所共用的一 VRM的設(shè)備及方法。于一實(shí)施例中,每個(gè)核心106具有其本身的PLL 226,如于圖2的本實(shí)施例中,以使核心106可減少其頻率或禁能PLL 226以節(jié)省電源而不會(huì)影響其他核心106。然而,在其他實(shí)施例中,一晶粒104上的核心106可能共用一 PLL。CNTR. 2534說明一種利用一種分配式的分散方式以管理由多重核心所共用的一 PLL的設(shè)備及方法。于此所說明的電源狀態(tài)管理與相關(guān)的同步邏輯的實(shí)施例亦可能(或選擇地)被應(yīng)用,以利用一種分配式的分散方式來管理由多重核心所共用的一 PLL。流程繼續(xù)至方塊312。于方塊312,電源狀態(tài)管理微碼208的STRHL常式呼叫以 sync_C-狀態(tài)表示的另一電源狀態(tài)管理微碼208常式(其相關(guān)于圖4而詳細(xì)說明的),用以與其他節(jié)點(diǎn)地連接核心106溝通并為多核心微處理器102獲得一合成的C-狀態(tài),在圖3 中以Z表示。相對(duì)于正在核心上執(zhí)行的實(shí)例,Sync_C-狀態(tài)常式的每個(gè)實(shí)施實(shí)例于此稱為 synC_C-狀態(tài)常式的一〃原生〃實(shí)例。微碼208的STRHL常式實(shí)施具有一輸入?yún)?shù)或探測(cè)(probe)電源狀態(tài)數(shù)值的 synC_C-狀態(tài)常式,探測(cè)電源狀態(tài)數(shù)值等于核心的適合電源狀態(tài)(亦即,其最近的有效要求的目標(biāo)電源狀態(tài)),其為于由MWAIT指令所特別指定的方塊302所接收的"X"的數(shù)值。實(shí)施synC_C-狀態(tài)常式開始一復(fù)合電源狀態(tài)發(fā)現(xiàn)過程,如與圖4相關(guān)而更進(jìn)一步說明的。每個(gè)實(shí)施的synC_C-狀態(tài)常式計(jì)算一〃混合〃 C-狀態(tài)并使〃混合〃 C-狀態(tài)回復(fù)至呼叫或?qū)嵤┧?于此是STRHL常式)的任何過程。"混合"C-狀態(tài)為探測(cè)C-狀態(tài)數(shù)值 (其由實(shí)施過程所接收)、其上執(zhí)行sync_C-狀態(tài)常式的核心的適合的C-狀態(tài),以及任何混合C-狀態(tài)(其由sync_C-狀態(tài)常式的任何從屬產(chǎn)生的實(shí)例所接收)的最小值。在說明于下的某些情況下,混合C-狀態(tài)為共通于原生性sync_c-狀態(tài)常式與同步化sync_c-狀態(tài)常式(其所依附)兩者的域的復(fù)合電源狀態(tài)。在說明于下的其他情況中,混合C-狀態(tài)可能只是域的一局部合成的C-狀態(tài)。一般而言,一域的一復(fù)合電源狀態(tài)為那個(gè)域的所有核心的適合的電源狀態(tài)的一極值(在ACPI電源狀態(tài)機(jī)制中是最小值)。舉例而言,一晶粒104的合成的C-狀態(tài)為晶粒的所有核心106的適合的C-狀態(tài)(例如,最近的有效要求的C-狀態(tài),如果所有核心具有這樣的數(shù)值的話)的最小值。整體看來,供多核心微處理器102用的合成的C-狀態(tài)為多核心微處理器102的所有核心106的適合的C-狀態(tài)的最小值。然而,一種混合電源狀態(tài)可能是供一適合域用的一復(fù)合電源狀態(tài),或正好是一局部的復(fù)合電源狀態(tài)。一局部的復(fù)合電源狀態(tài)將是兩個(gè)以上但小于全部的一適合域的核心的適合電源狀態(tài)的一極值。在一些部分中,此說明書表示一種"至少局部合成的電源狀態(tài)" 以包含任何變化的計(jì)算的混合電源狀態(tài)。在一混合電源狀態(tài)與一復(fù)合電源狀態(tài)之間的電位 (即使是細(xì)微的)區(qū)別將相關(guān)于圖4C、10及17關(guān)而變得更顯清楚。預(yù)先注意到,供一多核心微處理器102用的一非零數(shù)值合成的C-狀態(tài)表示每個(gè)核心106已看見載明一非執(zhí)行C-狀態(tài)(亦即,具有1或更大的數(shù)值的C-狀態(tài))的MWAIT ;而一零數(shù)值合成的C-狀態(tài)表示并非每個(gè)核心106已看到MWAIT。再者,大于或等于2的數(shù)值表示多核心微處理器102的所有核心106已接收載明2或更大的C-狀態(tài)的MWAIT指令。流程繼續(xù)至決定方塊314。于決定方塊314中,微碼208的STRHL常式檢查于方塊 312所決定的混合C-狀態(tài)〃 Z"。如果〃 Z"大于或等于2,則流程繼續(xù)至決定方塊318。 否則,流程繼續(xù)至方塊316。于方塊316,微碼208的STRHL常式將核心106置于休眠。流程于方塊316結(jié)束。于決定方塊318,微碼208的STRHL常式?jīng)Q定核心106是否為BSP。如果是,則流程繼續(xù)至方塊322 ;否則,流程繼續(xù)至方塊324。于方塊322,BSP 106通知芯片組114其可能需求移除總線116時(shí)鐘和/或抑制在總線116上產(chǎn)生窺探循環(huán)的允許。于一實(shí)施例中,依據(jù)熟知的Pentium 4總線協(xié)定,唯一被授權(quán)以允許較高的電源管理狀態(tài)的BSP 106,通知芯片組114其可能需求藉由開始在總線116上的一 I/O讀取傳輸至一預(yù)先決定的I/O端口,來移除總線116時(shí)鐘和/或抑制在總線116上產(chǎn)生窺探循環(huán)的允許。然后,芯片組114設(shè)立在總線116上的STPCLK信號(hào)以需求移除總線116時(shí)鐘的允許。于一實(shí)施例中,在通知芯片組114其可于方塊322(或方塊608)設(shè)立STPCLK之后,執(zhí)行于BSP核心106上的微碼208的STRHL常式等待芯片組114以設(shè)立STPCLK,而非前進(jìn)至休眠(于方塊3 或方塊614),然后,通知其他核心106有關(guān)此STPCLK設(shè)立(assertion), 發(fā)布其STOP GRANT訊息,然后進(jìn)行到休眠。依據(jù)由I/O讀取傳輸而特別指定的預(yù)先決定的 I/O連接端口地址,芯片組114可能接著抑制在總線116上產(chǎn)生窺探循環(huán)。流程繼續(xù)至方塊324。于方塊324,微碼208將核心106置于休眠。流程于方塊 324結(jié)束?,F(xiàn)在參考圖4,一流程圖顯示用以執(zhí)行分配在多核心微處理器102的多重處理核心106之間的分散式電源管理的圖1的系統(tǒng)100的另一元件的操作。更明確而言,流程圖顯示圖3(與圖6)的電源狀態(tài)管理微碼208的synC_C-狀態(tài)常式的一實(shí)例的操作。雖然圖 4為顯示微碼208的synC_C-狀態(tài)常式的單一實(shí)例的功能性的流程圖,但將從下面理解到其經(jīng)由那個(gè)常式的多重同步化實(shí)例實(shí)現(xiàn)一合成C-狀態(tài)發(fā)現(xiàn)過程。流程于方塊402開始。于方塊402,一核心106上的微碼208 (〃 sync_C_狀態(tài)微碼208 〃)的sync_C-狀態(tài)常式的一實(shí)例被實(shí)施,并接收一輸入探測(cè)C-狀態(tài),在圖4中以"A"表示。synC_C-狀態(tài)常式的一實(shí)例可能從MWAIT指令微碼208被原生地實(shí)施,如相關(guān)于圖3所說明,在這種情況下,sync_C-狀態(tài)常式構(gòu)成synC_C-狀態(tài)常式的一初始實(shí)例。此外,sync_C-狀態(tài)常式的一實(shí)例可能藉由源自另一核心的一同步需求(于此稱為一外部地產(chǎn)生的同步需求)而產(chǎn)生, 在這種情況下,sync_C-狀態(tài)常式構(gòu)成synC_C-狀態(tài)常式的一從屬實(shí)例。尤其,執(zhí)行于另一個(gè)節(jié)點(diǎn)地連接核心上的Sync_C-狀態(tài)常式的一原有的實(shí)例,可能藉由將一適當(dāng)?shù)暮诵拈g中斷傳送至原生性核心來產(chǎn)生Sync_C-狀態(tài)常式的原生性實(shí)例。如相關(guān)于圖6更詳細(xì)說明的, 電源聲明管理微碼208的一核心間中斷處理常式(ICIH)操縱由節(jié)點(diǎn)地連接核心106所接收的核心間中斷。流程繼續(xù)至決定方塊404。于決定方塊404,如果synC_C-狀態(tài)常式的這個(gè)實(shí)例 (亦即,"原生性實(shí)例")為一初始實(shí)例,亦即,如果其是從圖3的MWAIT指令微碼208被實(shí)施,則流程繼續(xù)至方塊406。否則,原生性實(shí)例為藉由執(zhí)行于一節(jié)點(diǎn)地連接核心上的synC_ C-狀態(tài)常式的一外部或非原生性實(shí)例產(chǎn)生的一從屬實(shí)例,而流程繼續(xù)至決定方塊432。于方塊406,sync_C-狀態(tài)微碼208藉由程序化圖2的CSR 236來產(chǎn)生在其朋友核心上的一從屬Sync_C-狀態(tài)常式,用以將于方塊402所接收的"A"值傳送至其朋友并用以中斷朋友。這要求朋友計(jì)算一混合C-狀態(tài)并將其傳回至原生性核心106,如以下更詳細(xì)說明的。流程繼續(xù)至方塊408。于方塊408,synC_C-狀態(tài)微碼208程序化CSR 236,用以檢測(cè)朋友已傳回一混合C-狀態(tài)至核心106,如果是,則獲得朋友的混合C-狀態(tài),在圖4中以"B"表示??勺⒁獾?,如果朋友位于其最有效執(zhí)行狀態(tài),則"B"的數(shù)值將是零。于一實(shí)施例中,微碼208等待朋友以響應(yīng)在一回圈中于方塊406做出的請(qǐng)求,此回圈為一預(yù)先決定的數(shù)值輪詢CSR 236,用以檢測(cè)朋友已傳回一混合C-狀態(tài)。于一實(shí)施例中,此回圈包含一逾時(shí)計(jì)數(shù)器;如果逾時(shí)計(jì)數(shù)器到期,則微碼208假設(shè)朋友核心106不再被啟動(dòng)且可使用,在任何后來的Sync_C-狀態(tài)計(jì)算中并不包含供那個(gè)朋友用的一適合或假設(shè)C-狀態(tài),以及接著并未試圖與朋友核心106溝通。再者,在與其他核心106(亦即,伙伴核心與好友核心)通訊方面,微碼208以類似方式操作,不管其是否經(jīng)由核心間通訊配線112或晶粒間通訊配線 118(或于下所說明的封裝間通訊配線113 而與另一個(gè)核心106相通。流程繼續(xù)至方塊412。于方塊412,synC_C-狀態(tài)微碼208藉由計(jì)算〃 A"與〃 B" 值的最小值,而為核心106屬于其的一部分的晶粒104計(jì)算一混合C-狀態(tài),其以"C"表示。在一雙核心晶粒中,〃 C"將必定是合成C-狀態(tài),因?yàn)椤?A"及〃 B"值表示晶粒上的所有(兩個(gè))核心的適合的C-狀態(tài)。流程繼續(xù)至決定方塊414。于決定方塊414,如果于方塊412所計(jì)算的"C"值小于2,或原生性核心106并非是主控核心106,則流程繼續(xù)至方塊416。否則,‘‘C"值至少是2且原生性核心106為一主控核心,而流程繼續(xù)至方塊422。于方塊416,常式回復(fù)至喚起其(于此是STRHL常式)于方塊412所計(jì)算的"C"值的呼叫過程。流程于方塊416結(jié)束。于方塊422,sync_C-狀態(tài)微碼208藉由程序化圖2的CSR 234產(chǎn)生在其伙伴核心上的synC_C-狀態(tài)常式的一從屬實(shí)例,用以將于方塊412所計(jì)算的"C"值傳送至其伙伴并用以中斷伙伴。這要求伙伴計(jì)算并傳回一混合C-狀態(tài),并提供其回到這個(gè)核心106,如以下更詳細(xì)說明的。在這一點(diǎn)上,應(yīng)注意到synC_C-狀態(tài)微碼208并未在伙伴核心中產(chǎn)生synC_C-狀態(tài)常式的從屬實(shí)例,直到其已經(jīng)決定其自己的晶粒的合成的C-狀態(tài)為止。的確,于本說明書中所說明的所有的sync_C-狀態(tài)常式依據(jù)一相容巢狀域走訪順序操作。亦即,每個(gè)synC_ C-狀態(tài)常式漸進(jìn)地且有條件地發(fā)現(xiàn)合成的C-狀態(tài),有關(guān)其最低域的第一者,其為一部分 (例如,晶粒),然后,是否其為下一個(gè)較高層次域(于其中它被巢狀化)(例如,在圖1的情況下是處理器本身)的那個(gè)域的主控等等。隨后討論的圖13,更進(jìn)一步顯示這種走訪順序, 其中synC_C-狀態(tài)常式有條件地且漸進(jìn)地首先發(fā)現(xiàn)核心為晶粒的合成的C-狀態(tài)的一部分, 接著發(fā)現(xiàn)它為封裝的(是否核心亦為那個(gè)晶粒的一主控)的一部分,最后發(fā)現(xiàn)整個(gè)處理器或系統(tǒng)的(是否核心亦為處理器的BSP)。流程繼續(xù)至方塊424。于方塊424,synC_C-狀態(tài)微碼208程序化CSR 234以檢測(cè)伙伴已傳回一混合C-狀態(tài),并獲得混合C-狀態(tài),在圖4中以"D"表示。在某些情況下,“D"將會(huì)但并不需要全部(如以下與圖C中的一對(duì)應(yīng)的數(shù)值"L"相關(guān)的說明)構(gòu)成伙伴的晶粒合成的C-狀態(tài)。流程繼續(xù)至方塊426。于方塊426,synC_C-狀態(tài)微碼208藉由計(jì)算〃 C"及〃 D" 值的最小值而為多核心微處理器102計(jì)算一混合C-狀態(tài),其以"E"表示。假設(shè)"D"為伙伴的晶粒合成的C-狀態(tài),則"E"將需要構(gòu)成處理器的合成的C-狀態(tài),因?yàn)?E"將是"C"(如上所述,我們知道的這種晶粒的合成的C-狀態(tài))及"D"(伙伴的晶粒合成的 C-狀態(tài))的最小值,且在處理器上沒有已從計(jì)算中被省略的核心。如果不是的話,則"E" 可能構(gòu)成處理器的只有一部分的合成的C-狀態(tài)(亦即,這個(gè)晶粒上的核心與伙伴核心的適合的C-狀態(tài)的最小值,而非亦屬于伙伴的朋友)。流程繼續(xù)至決定方塊428。于方塊428,常式使于方塊似6所計(jì)算的"E"值傳回至其呼叫者。流程于方塊 428結(jié)束。于決定方塊432,如果圖6的核心間中斷處理常式實(shí)施synC_C-狀態(tài)常式以因應(yīng)從核心的朋友的一中斷(亦即,一朋友實(shí)施此常式),則流程繼續(xù)至方塊434。否則,核心間中斷處理常式實(shí)施Sync_C-狀態(tài)常式以因應(yīng)從核心的伙伴的一中斷(亦即,伙伴產(chǎn)生此常式),而流程繼續(xù)至方塊466。于方塊434,核心106被其朋友所中斷,所以Sync_C-狀態(tài)微碼208程序化CSR 236,用以獲得由朋友所遞送的探測(cè)C-狀態(tài)以及其產(chǎn)生常式,在圖4中以"F"表示。流程繼續(xù)至方塊436。于方塊436,Sync_C-狀態(tài)微碼208藉由計(jì)算其本身適合的C-狀態(tài)〃 Y"與探測(cè) C-狀態(tài)"F"(其由其朋友所接收)的最小值而為其晶粒104計(jì)算一混合C-狀態(tài),其結(jié)果以〃 G"表示。在一雙核心晶粒中,“G"將需要是供包含核心106的晶粒104用的合成的C-狀態(tài),因?yàn)樵谀欠N情況下,“Y"及"F"必須表示供那個(gè)晶粒的所有(兩個(gè))核心用的各個(gè)適合的C-狀態(tài)。
流程繼續(xù)至決定方塊438。于決定方塊438,如果于方塊436所計(jì)算的"G"值小于2或核心106并非是主控核心106,則流程繼續(xù)至方塊442。否則,如果〃 G"為至少2且核心為一主控核心,則流程繼續(xù)至方塊446。于方塊442,為因應(yīng)經(jīng)由從其朋友的核心間中斷的請(qǐng)求,synC_C-狀態(tài)微碼208程序化CSR 236,用以將于方塊436所計(jì)算的"G"值傳送至其朋友。流程繼續(xù)至方塊444。 于方塊444,synC_C-狀態(tài)微碼208將于方塊436所計(jì)算的〃 G"值傳回至實(shí)施其的過程。 流程于方塊444結(jié)束。于方塊446,sync_C-狀態(tài)微碼208藉由程序化圖2的CSR 234而在其伙伴核心上產(chǎn)生synC_C-狀態(tài)常式的一從屬實(shí)例,用以將于方塊436所計(jì)算的"G"值傳送至其伙伴, 并用以中斷伙伴。這要求伙伴計(jì)算一混合C-狀態(tài)并將其傳回至這個(gè)核心106,如以下更詳細(xì)說明的。流程繼續(xù)至方塊448。于方塊448,synC_C-狀態(tài)微碼208程序化CSR 234以檢測(cè)伙伴已傳回一混合C-狀態(tài)至核心106,并獲得混合C-狀態(tài),在圖4中以"H"表示。在至少某些而不需要全部的情況(如與圖4C中的對(duì)應(yīng)的數(shù)值"L"相關(guān)的說明)中,“H"將構(gòu)成伙伴的晶粒的合成的 C-狀態(tài)。流程繼續(xù)至方塊452。于方塊452,synC_C-狀態(tài)微碼208藉由計(jì)算〃 G"及〃 H"值的最小值為多核心微處理器102計(jì)算一混合C-狀態(tài),以"J"表示。假設(shè)"H"為伙伴的晶粒合成的C-狀態(tài), 貝U" J"將需要構(gòu)成處理器的合成的C-狀態(tài),因?yàn)?J"將是"G"(如上所述,我們知道的這種晶粒的合成的C-狀態(tài))及"H"(伙伴的晶粒合成的C-狀態(tài))的最小值,且在處理器上沒有已從計(jì)算被省略的核心。如果不是的話,則"J"可能構(gòu)成處理器的只有一部分的合成的C-狀態(tài)(亦即,這個(gè)晶粒上的核心與伙伴核心的適合的C-狀態(tài)的最小值,而非亦屬于伙伴的朋友)。因此,“H"構(gòu)成處理器的"至少局部地合成的"C-狀態(tài)。流程繼續(xù)至方塊454。于方塊454,為因應(yīng)經(jīng)由從其朋友的核心間中斷的請(qǐng)求, synC_C-狀態(tài)微碼208程序化CSR 236,用以將于方塊452所計(jì)算的〃 J"值傳送至其朋友。 流程繼續(xù)至方塊456。于方塊456,常式將于方塊452所計(jì)算的"J"值傳回至實(shí)施其的過程。流程于方塊456結(jié)束。于方塊466,核心106被其伙伴所中斷,所以Sync_C-狀態(tài)微碼208程序化CSR 234,用以獲得由伙伴所遞送的輸入探測(cè)C-狀態(tài)于產(chǎn)生常式中,在圖4中以"K"表示。由于synC_C-狀態(tài)常式的階層式走訪順序,伙伴將不會(huì)中斷此種核心,除非其已經(jīng)發(fā)現(xiàn)其晶粒的合成的C-狀態(tài),所以"K"必定是產(chǎn)生伙伴的合成的C-狀態(tài)。另外,可注意到因?yàn)槠浔灰换锇樗袛?,所以這就表示核心106為其晶粒104的主控核心106。流程繼續(xù)至方塊468。于方塊468,sync_C-狀態(tài)微碼208藉由計(jì)算其本身適合的 C-狀態(tài)"Y"與所接收的伙伴合成的C-狀態(tài)"K"值的最小值來計(jì)算處理器的一至少局部的合成的C-狀態(tài),其結(jié)果以"L"表示。如果"L"為1,則"L"無法是處理器的合成的C-狀態(tài),因?yàn)槠洳⑽春喜⑵渑笥训倪m合的C-狀態(tài)。如果其朋友的適合的C-狀態(tài)為0,則(未被精確發(fā)現(xiàn))供處理器用的合成的C-狀態(tài)必定是0。然而,縱使不需要被精確發(fā)現(xiàn),處理器的合成的C-狀態(tài)可以不大于〃 L"。在揭示于這個(gè)特定的閾值觸發(fā)實(shí)施例的電源管理邏輯中,一旦發(fā)現(xiàn)一混合C-狀態(tài)小于2,就知道處理器的合成的C-狀態(tài)亦小于2。小于2的C-狀態(tài)的實(shí)現(xiàn)將只具有主要地局部效果,所以更精確的判定合成的C-狀態(tài)并非理所當(dāng)然的。因此合成的C-狀態(tài)發(fā)現(xiàn)過程可能逐漸結(jié)束并終止,如于此所顯示的。然而,如果"L"為0,則其必然是處理器的合成的C-狀態(tài),因?yàn)?如上所述)處理器的合成的C-狀態(tài)無法超過處理器的任何混合C-狀態(tài)。承認(rèn)這種微妙的處在于規(guī)格的部分表示sync_c-狀態(tài)常式成為計(jì)算一"至少局部的合成數(shù)值"。流程繼續(xù)至決定方塊472。于決定方塊472,如果于方塊468所計(jì)算的"L"值小于2,則流程繼續(xù)至方塊 474。否則,流程繼續(xù)至方塊478。應(yīng)注意到本發(fā)明的其他實(shí)施例可能省略這種閾值條件(例如,L < 2 ?)用以繼續(xù)一合成的C-狀態(tài)發(fā)現(xiàn)過程。在這樣的實(shí)施例中,處理器的每個(gè)致能的核心將無條件地決定處理器的合成的C-狀態(tài)。于方塊474,為因應(yīng)經(jīng)由從其伙伴的核心間中斷的請(qǐng)求,sync_C-狀態(tài)微碼208程序化CSR 234,用以將于方塊468所計(jì)算的"L"值傳送至其伙伴。再者,可注意到當(dāng)伙伴接收"L"時(shí),其正接收可能構(gòu)成處理器的只有一局部的合成數(shù)值。然而,因?yàn)?L"小于 2,所以處理器的合成數(shù)值亦必定小于2,藉以為了處理器的合成數(shù)值的一更精確判定排除任何刺激(如果"L"為1)。流程繼續(xù)至方塊476。于方塊476,常式將于方塊468所計(jì)算的〃 L"值傳回至其呼叫者。流程于方塊476結(jié)束。于方塊478,sync_C-狀態(tài)微碼208藉由程序化CSR 236在其朋友核心上實(shí)施一從屬synC_C-狀態(tài)常式,用以將于方塊468所計(jì)算的"L"值傳送至其朋友并用以中斷朋友。 這要求朋友計(jì)算一混合C-狀態(tài)并將其提供給核心106??勺⒁獾皆趫D1的四核心實(shí)施例 (圖4的synC_C-狀態(tài)微碼208為其而作說明)中,這將相當(dāng)于請(qǐng)求朋友提供其最近的需求的C-狀態(tài),如果有的話。流程繼續(xù)至方塊482。于方塊482,sync_C-狀態(tài)微碼208程序化CSR 236以檢測(cè)朋友已傳回一混合C-狀態(tài)至核心106,并獲得朋友的混合C-狀態(tài),在圖4中以〃 M"表示。 可注意到如果朋友處于其最有效執(zhí)行狀態(tài),則"M"的數(shù)值將是零。流程繼續(xù)至方塊484。于方塊484,synC_C-狀態(tài)微碼208藉由計(jì)算〃 L"及〃 M"值的最小值而為多核心微處理器102計(jì)算一混合C-狀態(tài),以"N"表示??勺⒁獾剑趫D1的四核心實(shí)施例(圖 4的synC_C-狀態(tài)微碼208為其而作說明)中,"N"必定是處理器的合成的C-狀態(tài),因?yàn)槠浒锇榈木Я:铣傻腃-狀態(tài)K、核心的自己適合的C-狀態(tài)A以及朋友的適合的C-狀態(tài)(后者是并入由朋友所傳回的混合電源狀態(tài)M)的最小值,這三個(gè)狀態(tài)一起包含所有四個(gè)核心的適合的C-狀態(tài)。流程繼續(xù)至方塊486。于方塊486,為因應(yīng)經(jīng)由從其伙伴的核心間中斷的請(qǐng)求, synC_C-狀態(tài)微碼208程序化CSR 234,用以將于方塊484所計(jì)算的〃 N"值傳送至其伙伴。 流程繼續(xù)至方塊488。于方塊488,常式將于方塊484所計(jì)算的"N"值傳回至其呼叫者。 流程于方塊488結(jié)束。現(xiàn)在參考圖5所顯示的流程圖,其顯示依據(jù)本發(fā)明的用以執(zhí)行分配在多核心微處理器102的多重處理核心106之間的分散式電源管理的圖1的系統(tǒng)100的操作。更明確而言,此流程圖顯示藉由電源狀態(tài)管理微碼208的一喚起與重新開始常式的一核心以因應(yīng)從一休眠狀態(tài)(例如從圖3的方塊306、316或324,或從圖6的方塊614進(jìn)入)喚醒核心106 的一事件的操作。流程于方塊502開始。于方塊502,核心106從其休眠狀態(tài)醒來以因應(yīng)一事件,并藉由提取及執(zhí)行微碼208的一指令處理程序而重新開始。事件可能包含但并未受限于一核心間中斷,亦即,經(jīng)由核心間通訊配線112或晶粒間通訊配線118(或圖11的實(shí)施例的封裝間通訊配線1133) 從另一核心106的中斷;藉由芯片組114的總線116上的STPCLK信號(hào)的設(shè)立;藉由芯片組 114的總線116上的STPCLK信號(hào)的解除設(shè)立(deassertion);以及另一型式的中斷,例如一外部中斷要求信號(hào)的設(shè)立,例如可能藉由一周邊裝置(例如USB裝置)而產(chǎn)生。流程繼續(xù)至決定方塊504。于決定方塊504,喚起與重新開始常式?jīng)Q定核心106是否被從另一核心106的中斷所喚起。如果是,則流程繼續(xù)至方塊506 ;否則,流程繼續(xù)至決定方塊508。于方塊506,一核心間中斷常式操縱核心間中斷,如相關(guān)于圖6所詳細(xì)說明的。流程于方塊506結(jié)束。于決定方塊508,喚起與重新開始常式?jīng)Q定核心106是否被藉由芯片組114的總線 116上的STPCLK信號(hào)的設(shè)立所喚起。如果是,則流程繼續(xù)至方塊512 ;否則,流程繼續(xù)至決定方塊516。于方塊512,為因應(yīng)于圖3的方塊322或于圖6的方塊608所執(zhí)行的I/O讀取傳輸,芯片組114已設(shè)立STPCLK需求移除總線116時(shí)鐘的允許?;貞?yīng)于此,核心106微碼208 發(fā)布在總線116上的一 STOP GRANT訊息,以通知芯片組114其可能移除總線116時(shí)鐘。如上所述,于一實(shí)施例中,芯片組114等待,直到所有核心106已發(fā)布直到其移除總線116時(shí)鐘為止的一 ST0PGRANT訊息,而在另一實(shí)施例中,在單一核心106已發(fā)布STOP GRANT訊息之后,芯片組114移除總線116時(shí)鐘。流程繼續(xù)至方塊514。于方塊514,核心106返回至休眠。最近地,芯片組114將移除總線116時(shí)鐘,以便減少因多核心微處理器102的電源消耗,如上所述。最后,芯片組114將恢復(fù)總線116時(shí)鐘,然后,解除設(shè)立STPCLK,以便使核心106回復(fù)至它們的執(zhí)行狀態(tài),能使它們可以執(zhí)行使用者指令。流程于方塊514結(jié)束。于決定方塊516,喚起與重新開始常式?jīng)Q定核心106是否被藉由芯片組114的總線 116上的STPCLK信號(hào)的解除設(shè)立所喚起。如果是,則流程繼續(xù)至方塊518 ;否則,流程繼續(xù)至方塊M6。于方塊518,為因應(yīng)一事件(例如系統(tǒng)計(jì)時(shí)器中斷或周邊中斷),芯片組114已恢復(fù)總線116時(shí)鐘并解除設(shè)立STPCLK以使核心106再開始執(zhí)行?;貞?yīng)于此,喚起與重新開始常式復(fù)原于方塊308所執(zhí)行的電源節(jié)約動(dòng)作。舉例而言,微碼208可能使電源恢復(fù)至核心 106局部快取,增加核心106時(shí)鐘頻率,或增加核心106操作電壓。此外,核心106可能使電源恢復(fù)至共用快取,舉例而言,如果核心106為BSP。流程繼續(xù)至方塊522。于方塊522,喚起與重新開始常式讀取并寫入CSR 234與236,用以通知所有其他核心106這個(gè)核心106醒著且再執(zhí)行。喚起與重新開始常式可能亦儲(chǔ)存"0"以作為核心的適合的或者最新的有效要求的C-狀態(tài)。流程繼續(xù)至方塊524。于方塊524,喚起與重新開始常式離去并恢復(fù)控制返回至指令譯碼器204,以重新開始譯碼提取的使用者程序指令(例如,x86指令)。具體而言,典型的使用者指令提取與執(zhí)行將在MWAIT指令之后于指令下重新開始。流程于方塊5M結(jié)束。于方塊526,喚起與重新開始常式操縱其他中斷事件,例如上述相關(guān)于方塊502的那些。流程于方塊526結(jié)束。
現(xiàn)在參考圖6所顯示的流程圖,其顯示依據(jù)本發(fā)明的用以執(zhí)行分配在多核心微處理器102的多重處理核心106之間的分散式電源管理的圖1的系統(tǒng)100的操作。更明確而言,此流程圖顯示微碼208的一核心間中斷處理常式(ICIHR)的操作以因應(yīng)接收一核心間中斷,亦即,經(jīng)由核心間通訊配線112或晶粒間通訊配線118(例如可能于圖4的方塊406、 422、446或478所產(chǎn)生的)從另一核心106的中斷。微碼208可能藉由輪詢(如果微碼208 已經(jīng)執(zhí)行)采取一核心間中斷,或者微碼208可能采取一核心間中斷以作為在使用者程序指令之間的一真正的中斷,或者中斷可能使微碼208從核心106正休眠的狀態(tài)喚醒。流程于方塊604開始。于方塊604,中斷核心106的ICIHR依據(jù)圖4呼叫一原生性 synC_C-狀態(tài)常式,以繼續(xù)在另一核心開始的一同步化電源狀態(tài)發(fā)現(xiàn)過程。回應(yīng)于此,其獲得供多核心微處理器102用的一至少局部合成C-狀態(tài),圖6中以"PC"表示。ICIHR呼叫具有一輸入值"Y"的sync_C-狀態(tài)微碼208,其為由外部synC_C-狀態(tài)常式所遞送的探測(cè) C-狀態(tài),而原生性Sync_C-狀態(tài)常式將依附于外部synC_C-狀態(tài)常式。另外,大于或等于2 的數(shù)值表示"PC"為一種多核心微處理器102的所有核心106的完全且非僅局部的合成 C-狀態(tài),并表示處理器的所有核心106已接收指定"PC"的一 C-狀態(tài)或更大的一 MWAIT 指令。流程繼續(xù)至方塊606。于方塊606,微碼208決定于方塊604所獲得的〃 PC"的數(shù)值是否大于或等于2,以及核心106是否被授權(quán)以實(shí)現(xiàn)或允許"PC" C-狀態(tài)的實(shí)現(xiàn)(例如,核心106為BSP)。如果是,則流程繼續(xù)至方塊608 ;否則,流程繼續(xù)至決定方塊612。于方塊608,核心106 (例如,當(dāng)BSP核心106被授權(quán)如此做時(shí))通知芯片組114其可能需求移除總線116時(shí)鐘的允許,如于上述的方塊322。流程繼續(xù)至決定方塊612。于決定方塊612,微碼208決定其是否從休眠被喚起。如果是,則流程繼續(xù)至方塊 614 ;否則,流程繼續(xù)至方塊616。于方塊614,微碼208返回至休眠。流程于方塊614結(jié)束。于方塊616,微碼208離去并恢復(fù)控制返回至指令譯碼器204,以重新開始譯碼提取的使用者程序指令。流程于方塊616結(jié)束?,F(xiàn)在參考圖7所顯示的流程圖,其顯示依據(jù)本發(fā)明的依據(jù)圖3至6的說明的圖1 的系統(tǒng)100的操作的一例子。在圖7的例子中,使用者程序同時(shí)有效地在核心106上執(zhí)行, 每個(gè)執(zhí)行一 MWAI T指令。相較之下,在圖8的例子中,使用者程序有效地在核心106上執(zhí)行,每個(gè)于不同的時(shí)間執(zhí)行一 MWAIT指令,亦即在另一核心已在執(zhí)行一 MWAIT指令之后進(jìn)入休眠之后。這些例子一起顯示核心106的微碼208的特征以及它們的能力,以操縱各種核心106上的不同順序的MWAIT指令。圖7包含四行,每行對(duì)應(yīng)于圖1的四個(gè)核心106的每一個(gè)。如所顯示的以及如上相關(guān)于圖1所述的,核心0與核心2為它們的晶粒104的主控核心,而核心0為多核心微處理器102的BSP。圖7的每行表示由各個(gè)核心106所采取的動(dòng)作。圖7的每列中的動(dòng)作的向下流程表示時(shí)間的經(jīng)過。首先,每個(gè)核心106遇到一個(gè)具有所載明的各種C-狀態(tài)的MWAIT指令(于方塊 302)。在圖7的例子中,至核心0與至核心3的MWAIT指令指定4的C-狀態(tài),而至核心1 與至核心2的MWAIT指令指定5的C-狀態(tài)。每一個(gè)核心106回應(yīng)地執(zhí)行其相關(guān)的電源節(jié)約動(dòng)作(于方塊308),并將接收的目標(biāo)C-狀態(tài)(“X")儲(chǔ)存為其適合且最近的有效要求的C-狀態(tài)〃 Y"。
其次,每個(gè)核心106將其適合的C-狀態(tài)"Y"作為一探測(cè)C-狀態(tài)傳送至其朋友 (于方塊406),如以具有"A"的標(biāo)記值的箭號(hào)表示。每個(gè)核心106接著接收其朋友的探測(cè) C-狀態(tài)(于方塊408),并計(jì)算其晶粒104合成的C-狀態(tài)"C"(于方塊412)。在此例子中,由每個(gè)核心106所計(jì)算的〃 C"值為4。因?yàn)楹诵?及核心3并非是主控核心,所以它們兩者前進(jìn)至休眠(于方塊324)。因?yàn)楹诵?與核心2為主控核心,所以它們彼此(亦即,它們的伙伴)傳送它們各自的"C"值(于方塊422),如以具有"C"的標(biāo)記值的箭號(hào)所表示。它們每個(gè)接收它們的伙伴的晶粒合成的C-狀態(tài)(于方塊424),并計(jì)算多核心微處理器102合成的C-狀態(tài)〃 E〃(于方塊426)。在此例子中,由每一個(gè)核心0與核心2所計(jì)算的〃 E〃值為4。因?yàn)楹诵?并非是BSP核心106,所以其進(jìn)行到休眠(于方塊324)。因?yàn)楹诵?為BSP,所以其通知芯片組114可能需求移除總線116時(shí)鐘的允許(于方塊322),例如,以設(shè)立STPCLK。更明確而言,核心0通知芯片組114有關(guān)多核心微處理器 102合成的C-狀態(tài)為4。然后,核心0進(jìn)行到休眠(于方塊324)。依據(jù)由于方塊322開始的I/O讀取傳輸而特別指定的預(yù)先決定的I/O連接端口地址,芯片組114可能接著抑制在總線116上產(chǎn)生窺探循環(huán)。雖然所有的核心106正休眠,但芯片組114設(shè)立STPCLK,其喚醒每一個(gè)核心 106 (于方塊502)。每一個(gè)核心106回應(yīng)地發(fā)布一 STOP GRANT訊息給芯片組114 (于方塊 512),并返回至休眠(于方塊514)。核心106可能休眠持續(xù)一段不明確的時(shí)間量,在沒有電源節(jié)約動(dòng)作與休眠的益處的情況下,較佳是消耗比它們正常來得更少的電源。最后,發(fā)生一喚醒事件。在此例子中,芯片組114解除設(shè)立STPCLK,其喚醒每一個(gè)核心106(于方塊502)。每一個(gè)核心106回應(yīng)地恢復(fù)其先前的電源節(jié)約動(dòng)作(于方塊518), 并離去其微碼208且回復(fù)至提取并執(zhí)行使用者碼(于方塊524)?,F(xiàn)在參考圖8所顯示的流程圖,其顯示依據(jù)本發(fā)明依據(jù)圖3至6的說明的圖1的系統(tǒng)100的操作的一第二例子。圖8的流程圖類似于圖7 ;然而,在圖8的例子中,每個(gè)有效地在核心106上執(zhí)行的使用者程序于不同的時(shí)間執(zhí)行一 MWAIT指令,亦即在另一個(gè)核心在執(zhí)行一 MWAIT指令之后已前進(jìn)至休眠之后。核心3首先遇到具有4的一特定目標(biāo)C-狀態(tài)〃 X"的一 MWAIT指令(于方塊302)。 核心3回應(yīng)地執(zhí)行其相關(guān)的電源節(jié)約動(dòng)作(于方塊308),并將"X"儲(chǔ)存為其適合的C-狀態(tài),以下更進(jìn)一步以"Y"表示。核心3接著將其適合的C-狀態(tài)作為一探測(cè)C-狀態(tài)傳送至其朋友,核心2,(于方塊406),如以具有"A"的標(biāo)記值的箭號(hào)所表示,其中斷核心2。核心2是被其朋友核心3所中斷(于方塊604)。因?yàn)楹诵?仍然處于一執(zhí)行狀態(tài),所以其自己適合的C-狀態(tài)為0,以"Y"表示(在方塊604中)。核心2接收核心3的探測(cè)C-狀態(tài)(于方塊434),以"F"表示并具有4的數(shù)值。核心2接著計(jì)算其晶粒104合成的C-狀態(tài)"G"(于方塊436),并將0的"G"值傳回至其朋友核心3 (于方塊442)。然后,核心2離去其微碼208并回復(fù)至使用者碼(于方塊616)。核心3接收其朋友核心2的0的同步C-狀態(tài)〃 B"(于方塊408)。核心3接著又計(jì)算其晶粒104合成的C-狀態(tài)"C"(于方塊412)。因?yàn)?C"的數(shù)值為0,所以核心 3進(jìn)行到休眠(于方塊316)。核心2隨后遇到具有5的一特定目標(biāo)C-狀態(tài)〃 X"的一 MWAIT指令(于方塊302)。核心2回應(yīng)地執(zhí)行其相關(guān)的電源節(jié)約動(dòng)作(于方塊308),并將"X"儲(chǔ)存為其適合的C-狀態(tài),后來對(duì)核心2以"Y"表示。核心2接著將"Y"(其為幻作為一探測(cè)C-狀態(tài)傳送至其朋友,核心3,(于方塊406),如以具有"A"的標(biāo)記值的箭號(hào)所表示,其中斷核心3。核心3是被喚醒核心3的其朋友核心2所中斷(于方塊502)。因?yàn)楹诵?以前遇到載明4的一 C-狀態(tài)的一 MWAIT指令,且那個(gè)數(shù)值仍然是正確的,其適合的C-狀態(tài)為4, 以"Y"表示(在方塊604中)。核心3接收核心2的探測(cè)C-狀態(tài)(于方塊434),以"F" 表示并具有5的數(shù)值。核心3接著計(jì)算其晶粒104合成的C-狀態(tài)"G"(于方塊436)以作為探測(cè)C-狀態(tài)(亦即,5)與其自己適合的C-狀態(tài)(亦即,5)的一最小值,并將4的"G" 值作為一混合C-狀態(tài)傳回至其朋友核心2 (于方塊442)。核心3接著返回至休眠(于方塊 444)。核心2接收其朋友核心3的混合C-狀態(tài)(于方塊408),以〃 B"表示并具有4的數(shù)值,然后,計(jì)算其晶粒104合成的C-狀態(tài)"C"值(于方塊412)作為混合C-狀態(tài)(亦艮口,4)與其自己適合的C-狀態(tài)(亦即,4)的一最小值。因?yàn)楹诵?已發(fā)現(xiàn)供其最低層次域用的至少2的一合成的C-狀態(tài),但作為那個(gè)域的一主控的核心2亦屬于一較高層次的同屬性群組,所以其接著將其4的"C"值傳送至其伙伴核心0(于方塊42 ,其中斷核心0。核心0是被其伙伴核心2所中斷(于方塊604)。因?yàn)楹诵?是處于一執(zhí)行狀態(tài),所以其適合的C-狀態(tài)為0,以〃 Y"表示(在方塊604中)。核心0接收核心2的探測(cè)C-狀態(tài) (于方塊466),以"K"表示并具有4的數(shù)值。然后,核心0計(jì)算其混合C-狀態(tài)"L"(于方塊468),并將0的“L"值傳送至其伙伴核心2 (于方塊474)。接著,核心0離去其微碼 208并回復(fù)至使用者碼(于方塊616)。核心2接收其伙伴核心0的混合C-狀態(tài)(于方塊424),以〃 D"表示并具有0的數(shù)值,然后,計(jì)算其自己混合C-狀態(tài)(于方塊426),其以"E"表示。因?yàn)?E"值為0,所以核心2進(jìn)行到休眠(于方塊316)。核心0接著遇到具有4的一特定目標(biāo)C-狀態(tài)〃 X"的一MWAIT指令(于方塊302)。 核心0回應(yīng)地執(zhí)行其相關(guān)的電源節(jié)約動(dòng)作(于方塊308),并將"X"儲(chǔ)存為其適合的C-狀態(tài),以"Y"表示。然后,核心0將"Y"(其為4)作為一探測(cè)C-狀態(tài)傳送至其朋友,核心 1,(于方塊406),以具有"A"的標(biāo)記值的箭號(hào)表示,其中斷核心1。核心1是被其朋友核心0所中斷(于方塊604)。因?yàn)楹诵?仍然處于一執(zhí)行狀態(tài),所以其適合的C-狀態(tài)為0,以"Y"表示(在方塊604中)。核心1接收核心0的探測(cè) C-狀態(tài)(于方塊434),以"F"表示并具有4的數(shù)值。核心1接著計(jì)算其晶粒104合成的 C-狀態(tài)〃 G〃(于方塊436),并將0的〃 G"值傳回至其朋友核心0(于方塊442)。然后, 核心1離去其微碼208并回復(fù)至使用者碼(于方塊616)。核心0接收其朋友核心1的0的混合C-狀態(tài)〃 B"(于方塊408)。核心0接著計(jì)算其晶粒104合成的C-狀態(tài)"C"(于方塊412)。因?yàn)?C"的數(shù)值為0,所以核心0 進(jìn)行到休眠(于方塊316)。核心1隨后遇到具有3的一特定目標(biāo)C-狀態(tài)〃 X"的一 MWAIT指令(于方塊 302)。核心1回應(yīng)地將"X"儲(chǔ)存為其適合的電源狀態(tài)"Y",并執(zhí)行其相關(guān)的電源節(jié)約動(dòng)作(于方塊308)。然后,核心1將其適合的3的C-狀態(tài)"Y"傳送至其朋友,核心0,(于方塊406),如以具有"A"的標(biāo)記值的箭號(hào)表示,其中斷核心0。
核心0被喚醒核心0的其朋友核心1所中斷(于方塊502)。因?yàn)楹诵?以前遇到載明4的一目標(biāo)C-狀態(tài)的一 MWAIT指令,所以其適合的C-狀態(tài)為4,以"Y"表示(在方塊604中)。核心0接收核心1的探測(cè)C-狀態(tài)(于方塊434),以"F"表示并具有3的數(shù)值。核心0接著計(jì)算其晶粒104合成的C-狀態(tài)"G"(于方塊436),并將3的"G"值傳送至其伙伴核心2 (于方塊446),其中斷核心2。核心2是被其伙伴核心0所中斷(于方塊604),伙伴核心0喚醒核心2 (于方塊 502)。因?yàn)楹诵?以前遇到載明5的一 C-狀態(tài)的一 MWAIT指令,所以其適合的C-狀態(tài)為5,以"Y"表示(在方塊604中)。核心2接收核心0的探測(cè)C-狀態(tài)(于方塊466), 以〃 K〃表示并具有3的數(shù)值。核心2接著計(jì)算一〃混合〃 C-狀態(tài)〃 L〃(于方塊468), 并將3的"L"值傳送至其朋友核心3 (于方塊474),其中斷核心3。核心3是被喚醒核心3的其朋友核心2所中斷(于方塊502)。因?yàn)楹诵?以前遇到載明4的一 C-狀態(tài)的一 MWAIT指令,所以其適合的C-狀態(tài)為4,以"Y"表示(在方塊604中)。核心3接收核心2的C-狀態(tài)(于方塊434),以"F"表示并具有3的數(shù)值。 核心3接著計(jì)算一混合C-狀態(tài)〃 G〃(于方塊436),并將3的〃 G"值傳送至其朋友核心 2(于方塊442)。因?yàn)椤?G"現(xiàn)在負(fù)責(zé)每一個(gè)核心的適合的C-狀態(tài),所以〃 G"構(gòu)成多核心處理器102合成的C-狀態(tài)。然而,因?yàn)楹诵?并非是BSP且從休眠被喚起,所以核心3返回至休眠(于方塊614)。核心2接收其朋友核心3的3的混合C-狀態(tài)〃 M〃(于方塊482)。核心2接著計(jì)算一混合C-狀態(tài)〃 N"(于方塊484)。然后,核心2將3的〃 N"值傳送至其伙伴核心 0(于方塊486)。再者,因?yàn)?N"負(fù)責(zé)每一個(gè)核心的適合的C-狀態(tài),所以"N"亦需要構(gòu)成多核心處理器102合成的C-狀態(tài)。然而,因?yàn)楹诵?并非是BSP且從休眠被喚起,所以核心2返回至休眠(于方塊614)。核心0接收其伙伴核心2的3的C-狀態(tài)〃 H"(于方塊448)。核心0接著又計(jì)算 3的一混合C-狀態(tài)"J"(于方塊452),并將其傳送至其朋友核心1(于方塊454)。再者, 因?yàn)?J"負(fù)責(zé)每一個(gè)核心的適合的C-狀態(tài),所以"J"亦需要構(gòu)成多核心處理器102合成的C-狀態(tài)。又因?yàn)楹诵?為BSP,所以其通知芯片組114可能需求移除總線116時(shí)鐘的允許(于方塊608)。更明確而言,核心0通知芯片組114多核心微處理器102合成的C-狀態(tài)為3。然后,核心0進(jìn)行到休眠(于方塊614)。核心1接收其朋友核心0的3的C-狀態(tài)〃 B"(于方塊408)。核心1亦計(jì)算一混合C-狀態(tài)"C"(于方塊412),其為3且其亦構(gòu)成多核心處理器102合成的C-狀態(tài)。因?yàn)楹诵?并非是BSP,所以核心1進(jìn)行到休眠(于方塊316)?,F(xiàn)在所有核心106就像它們?cè)趫D7的例子中的在休眠,且事件類似于相關(guān)于圖7 所說明的方式,從那里進(jìn)行,亦即,芯片組114設(shè)立STPCLK并喚醒核心106,等等。明顯地,藉由這個(gè)最終同步化電源狀態(tài)發(fā)現(xiàn)過程已完成的這段時(shí)間,所有的核心已各別計(jì)算多核心處理器102合成的C-狀態(tài)。于一實(shí)施例中,微碼208被設(shè)計(jì)成使其無法被中斷。因此,在圖7的例子中,當(dāng)每個(gè)核心106的微碼208被實(shí)施以處理其各個(gè)MWAIT指令時(shí),微碼208并未在另一個(gè)核心106 試圖中斷它時(shí)被中斷。取而代的的是,舉例而言,核心0看到核心1已送出其C-狀態(tài),并于方塊408獲得來自核心1的C-狀態(tài),料想核心1于方塊406送出其C-狀態(tài)以因應(yīng)核心0中斷核心1。同樣地,核心1看到核心0已送出其C-狀態(tài),并于方塊408獲得來自核心1的 C-狀態(tài),料想核心0于方塊406送出其C-狀態(tài)以因應(yīng)核心1中斷核心0。因?yàn)楹诵?與核心1每個(gè)在其計(jì)算一至少局部合成的C-狀態(tài)時(shí)將其他核心106的C-狀態(tài)納入考量,所以每個(gè)核心106計(jì)算一至少局部合成的C-狀態(tài)。因此,舉例而言,核心1計(jì)算一至少局部合成的C-狀態(tài),無論核心0是否將其C-狀態(tài)送出至核心1以因應(yīng)接收來自核心1的一中斷或者以因應(yīng)遇到一 MWAIT指令,在這種情況下,兩個(gè)C-狀態(tài)或許同時(shí)跨越核心間通訊配線 112(或跨越晶粒間通訊配線118,或跨越封裝間通訊配線1133,于圖11的本實(shí)施例中)。因此,微碼208最好是適當(dāng)?shù)夭僮鳎靡詧?zhí)行在多核心微處理器102的核心106之間的分散式電源管理,而不管相關(guān)于藉由各種核心106接收MWAIT指令的事件的順序。如可從前文觀察到的,廣義來說,當(dāng)一核心106遇到一MWAI T指令時(shí),其首先與其朋友交換C-狀態(tài)信息,且兩個(gè)核心106基于兩個(gè)核心106的C-狀態(tài)而為晶粒104計(jì)算一至少局部合成的C-狀態(tài),在一雙核心晶粒的情況下,其譬如將是相同的數(shù)值。主控核心106 只在計(jì)算晶粒104合成的C-狀態(tài)之后,接著與它們的伙伴交換C-狀態(tài)信息,且兩者基于兩個(gè)晶粒104的合成的C-狀態(tài)而為多核心微處理器102計(jì)算一合成的C-狀態(tài),其將是相同的數(shù)值。依據(jù)此種方法,較佳是,不管核心106接收它們的MWAIT指令的順序?yàn)楹?,所有核?06計(jì)算相同的合成的C-狀態(tài)。再者,較佳是,不管核心106接收它們的MWAIT指令的順序?yàn)楹?,它們以一種分配式方式彼此協(xié)調(diào),以使多核心微處理器102作為單一實(shí)體而與芯片組114溝通有關(guān)其可能需求參與相對(duì)于多核心微處理器102是全域性的電源節(jié)約動(dòng)作的允許,例如移除總線116時(shí)鐘。較佳是,這種分配式C-狀態(tài)同步以達(dá)成電源管理的一實(shí)施樣態(tài),是在不需要用以執(zhí)行電源管理的核心106外部的晶粒104上的專用硬件的情況下被執(zhí)行,其可能提供下述優(yōu)點(diǎn)可調(diào)(尺寸的)能力、可重組性、良率特性、電源減少以和/ 或晶粒實(shí)際地區(qū)減少??勺⒁獾剑哂胁煌瑪?shù)目及配置的核心106的其他多核心微處理器實(shí)施例的每個(gè)核心106可能采用類似的微碼208,如相關(guān)于圖3至6所說明的。舉例而言,一種在單一晶粒104(例如圖18所示)中具有兩個(gè)核心106的雙核心微處理器1802實(shí)施例的每個(gè)核心 106可能采用類似的微碼208,如相關(guān)于認(rèn)定每個(gè)核心106只具有一朋友且沒有伙伴的圖3 至6所所說明的。同樣地,一種具有兩個(gè)單核心晶粒104(例如圖19所示)的雙核心微處理器1902實(shí)施例的每個(gè)核心106可能采用類似的微碼208,如相關(guān)于認(rèn)定每個(gè)核心106只具有一伙伴且沒有朋友(或者再指派核心106為伙伴)的圖3至6所說明的。同樣地,一種具有單核心單一晶粒封裝104(例如圖20所示)的雙核心微處理器2002實(shí)施例的每個(gè)核心106可能采用類似的微碼208,如相關(guān)于認(rèn)定每個(gè)核心106只具有一好友且沒有伙伴或朋友(或或者再指派核心106為伙伴)的圖3至6所說明的。再者,其他具有核心106的不對(duì)稱配置(例如圖21及22所顯示那些)的多核心微處理器實(shí)施例的每個(gè)核心106,可能采用相對(duì)于圖3至6改變的類似的微碼208,例如以下相關(guān)于圖10、13以及17所述。再者,考慮除于此所說明的具有不同數(shù)目及配置的核心106 和/或封裝(其采用以下相關(guān)于圖3至6以及10、13與17所說明的核心106和(?)微碼208的操作的組合)的那些之外的系統(tǒng)實(shí)施例?,F(xiàn)在參考圖9所顯示的方塊圖,其顯示依據(jù)本發(fā)明的執(zhí)行分配在一多核心微處理器902的多重處理核心106之間的分散式電源管理的一計(jì)算機(jī)系統(tǒng)900的一替代實(shí)施例。系統(tǒng)900類似于圖1的系統(tǒng),而多核心微處理器902類似于圖1的多核心微處理器102 ;然而,多核心微處理器902為一種八核心微處理器902,其包含組織在單一微處理器封裝上的四個(gè)雙核心晶粒104,以晶粒0、晶粒1、晶粒2以及晶粒3表示。晶粒0包含核心0與核心 1,而晶粒1包含核心2與核心3,類似于圖1 ;此外,晶粒2包含核心4與核心5,而晶粒3包含核心6與核心7。在每個(gè)晶粒之內(nèi),核心為彼此的朋友,但每個(gè)晶粒的一選擇核心被標(biāo)示為那個(gè)晶粒的主控。封裝上的晶粒主控具有多條將每個(gè)晶粒連接至每隔一個(gè)晶粒的晶粒間通訊配線。 這允許一協(xié)調(diào)系統(tǒng)的實(shí)現(xiàn),于其中晶粒主控包含一同儕合作同屬性群組的構(gòu)件;亦即,每個(gè)晶粒主控能夠與封裝上的任何其他晶粒主控協(xié)調(diào)。晶粒間通訊配線118被設(shè)計(jì)如下。晶粒 0的OUT焊墊、晶粒1的IN 1焊墊、晶粒2的IN 2接腳以及晶粒3的IN 3接腳經(jīng)由單一配線網(wǎng)耦接至接腳Pl ;晶粒1的OUT焊墊、晶粒2的IN 1焊墊、晶粒3的IN 2焊墊以及晶粒0的IN 3焊墊經(jīng)由單一配線網(wǎng)耦接至接腳P2 ;晶粒2的OUT焊墊、晶粒3的1附焊墊、 晶粒0的IN 2焊墊以及晶粒1的IN 3焊墊經(jīng)由單一配線網(wǎng)耦接至接腳P 3;晶粒3的OUT 焊墊、晶粒0的IN 1焊墊、晶粒1的IN 2焊墊以及晶粒2的IN 3焊墊經(jīng)由單一配線網(wǎng)耦接至接腳P4。當(dāng)每一個(gè)主控核心106想要與其他晶粒104溝通時(shí),其傳輸其OUT焊墊108上的信息,且此信息廣播至其他晶粒104,并藉由它們各自的主控核心106而經(jīng)由適當(dāng)?shù)腎N焊墊 108被接收。如可從圖9觀察到的,較佳是每個(gè)晶粒104上的焊墊108的數(shù)目與封裝902上的接腳P的數(shù)目(亦即,關(guān)于分配在于此所說明的多重核心之間的分散式電源管理的焊墊與接腳;而,當(dāng)然多核心微處理器102包含用于其他目的的其他焊墊與接腳,例如數(shù)據(jù)、地址以及控制總線)為不大于晶粒104的數(shù)目,其為一相當(dāng)小的數(shù)目。這在一焊墊有限的和 /或接腳有限的設(shè)計(jì)上特別有利,其可能是共通的,其乃因?yàn)闃?biāo)準(zhǔn)焊墊/接腳計(jì)算存在于標(biāo)準(zhǔn)晶粒/封裝上,且其對(duì)于試圖遵循標(biāo)準(zhǔn)值的微處理器制造商而言是經(jīng)濟(jì)有效的,且可能已經(jīng)使用大部分的焊墊/接腳。再者,替代實(shí)施例說明于下,于其中每個(gè)晶粒104上的焊墊 108的數(shù)目為或可能為小于晶粒104的數(shù)目?,F(xiàn)在參考圖10所顯示的流程圖,其顯示依據(jù)本發(fā)明的用以執(zhí)行分配在八核心微處理器902的多重處理核心106之間的分散式電源管理的圖9的系統(tǒng)900的操作。更明確而言,圖10的流程圖顯示圖3 (與圖6)的synC_C-狀態(tài)微碼208的操作,類似于圖4的流程圖,其在許多方面是相似的,且相同號(hào)碼的方塊是類似的。然而,在圖10的流程圖中所說明的核心106的synC_C-狀態(tài)微碼208負(fù)責(zé)八個(gè)核心106的存在而非于圖1的本實(shí)施例中的四個(gè)核心106,而現(xiàn)在說明差異。尤其,一晶粒104的每個(gè)主控核心106具有三個(gè)伙伴核心106而非一個(gè)伙伴核心106。此外,主控核心106 —起界定一同儕合作同屬性群組,于其中任何伙伴可以直接地與任何其他伙伴協(xié)調(diào),而無須藉由封裝主控或BSP來仲裁。流程開始于圖10中的方塊402,并繼續(xù)經(jīng)由方塊416,如相關(guān)于圖4所說明的。然而,圖10并不包含方塊422、424、似6或428。反之,流程繼續(xù)從決定方塊414離開〃 N0" 分支至決定方塊1018。于決定方塊1018,Sync_C-狀態(tài)微碼208決定所有其伙伴是否已被造訪,亦即,核心106是否已經(jīng)經(jīng)由方塊1022與10M而與其的每一個(gè)伙伴交換一 C-狀態(tài)。如果是,則流程繼續(xù)至方塊416 ;否則,流程繼續(xù)至方塊1022。
于方塊1022,synC_C-狀態(tài)微碼208藉由程序化圖2的CSR 234在其下一個(gè)伙伴上產(chǎn)生Sync_C-狀態(tài)的新實(shí)例,用以將"C"值傳送至其下一個(gè)伙伴,并用以中斷伙伴。在第一伙伴的情況下,送出的"C"值是于方塊412被計(jì)算出;在剩下的伙伴的情況下,"C"值是于方塊10 被計(jì)算出。在包含方塊414、1018、1022、10M以及10 的回圈中,微碼208 掌握其已造訪的伙伴的行蹤,用以確保其造訪它們每一個(gè)(除非于決定方塊414被發(fā)現(xiàn)是真實(shí)的狀況)。流程繼續(xù)至方塊ΙΟΜ。于方塊1024,sync_C-狀態(tài)微碼208程序化CSR234以檢測(cè)下一個(gè)伙伴已傳回一混合C-狀態(tài),并獲得混合C-狀態(tài),以"D"表示。流程繼續(xù)至方塊1(^6。于方塊1(^6,synC_C-狀態(tài)微碼208藉由計(jì)算〃 C" 與〃 D"值的最小值,來計(jì)算一最近計(jì)算的原生性混合C-狀態(tài),以"C"表示。流程回復(fù)至決定方塊414。流程繼續(xù)從圖10中的方塊434,并繼續(xù)經(jīng)由方塊444,如相關(guān)于圖4所說明的。 然而,圖10并不包含方塊446、448、452、454或456。反之,流程繼續(xù)從決定方塊438離開〃 NO"分支至決定方塊1045。于決定方塊1045,Sync_C-狀態(tài)微碼208決定所有其伙伴是否已被造訪,亦即,核心106是否已經(jīng)經(jīng)由方塊1046與1048而與其的每一個(gè)伙伴交換一 C-狀態(tài)。如果是,則流程繼續(xù)至方塊442 ;否則,流程繼續(xù)至方塊1046。于方塊1046,sync_C-狀態(tài)微碼208藉由程序化CSR 234在其下一個(gè)伙伴上產(chǎn)生 synC_C-狀態(tài)常式的新實(shí)例,用以將"G"值傳送至其下一個(gè)伙伴,并用以中斷伙伴。在第一伙伴的情況下,送出的"G"值是于方塊436所計(jì)算;在剩下的伙伴的情況下,“G"值是于方塊1052被計(jì)算出。流程繼續(xù)至方塊1048。于方塊1048,微碼208程序化CSR 234以檢測(cè)下一個(gè)伙伴已傳回一混合C-狀態(tài)至核心106,并獲得混合C-狀態(tài),以〃 H"表示。流程繼續(xù)至方塊1052。于方塊1052,synC_C-狀態(tài)微碼208藉由計(jì)算〃 G" 與〃 H"值的最小值來計(jì)算一最近計(jì)算的原生性混合C-狀態(tài),以"G"表示。流程回復(fù)至決定方塊438。流程繼續(xù)從圖10中的方塊466,并繼續(xù)經(jīng)由方塊476,如相關(guān)于圖4所說明。可注意到于方塊474,伙伴(核心106傳送"L"值給它)為中斷核心106的伙伴。此外,流程繼續(xù)從圖10中的決定方塊472離開"NO"分支,并繼續(xù)經(jīng)由方塊484,如相關(guān)于圖4所說明的。然而,圖10并不包含方塊486或488。反之,流程繼續(xù)從方塊484至決定方塊1085。于決定方塊1085,如果〃 L"值小于2,則流程繼續(xù)至方塊474 ;否則,流程繼續(xù)至決定方塊1087。在流程從方塊484繼續(xù)至決定方塊1085的情況下,“L"值是于方塊484 被計(jì)算出;在流程從方塊1093繼續(xù)至決定方塊1085的情況下,“L"值是于方塊1093被計(jì)算出。流程繼續(xù)至決定方塊1087。于決定方塊1087,synch_C-狀態(tài)微碼208決定所有其伙伴是否已被造訪,亦即,核心106是否已經(jīng)與其的每一個(gè)伙伴交換一 C-狀態(tài)或從其的每一個(gè)伙伴接收一 C-狀態(tài)。在中斷伙伴的情況下,C-狀態(tài)經(jīng)由方塊466被接收(且將經(jīng)由方塊474被送出);因此,中斷的伙伴被視為已經(jīng)被造訪;在剩下的伙伴的情況下,C-狀態(tài)經(jīng)由方塊1089與1091被交換。 如果所有其伙伴已被造訪,則流程繼續(xù)至方塊474 ;否則,流程繼續(xù)至方塊1089。
于方塊1089,微碼208藉由程序化CSR 234在其下一個(gè)伙伴上產(chǎn)生sync_C-狀態(tài)常式的一新實(shí)例,用以將"L"值傳送至其下一個(gè)伙伴,并用以中斷伙伴。在第一伙伴的情況下,送出的"L"值是于方塊484被計(jì)算出;在剩下的伙伴的情況下,“L"值是于方塊 1093被計(jì)算出。流程繼續(xù)至方塊1091。于方塊1091,微碼208程序化CSR 234以檢測(cè)下一個(gè)伙伴已傳回一混合C-狀態(tài)至核心106,并獲得混合C-狀態(tài),以〃 M"表示。流程繼續(xù)至方塊1093。于方塊1093,sync_C-狀態(tài)微碼208藉由計(jì)算〃 L “ 與〃 M"值的最小值來計(jì)算原生性混合C-狀態(tài)的一最近計(jì)算的數(shù)值,以"L"表示。流程回復(fù)至決定方塊1085?,F(xiàn)在參考圖11所顯示的方塊圖,其顯示依據(jù)本發(fā)明的執(zhí)行分配在兩個(gè)多核心微處理器102的多重處理核心106之間的分散式電源管理的一計(jì)算機(jī)系統(tǒng)1100的一種替代實(shí)施例。系統(tǒng)1100類似于圖1的系統(tǒng)100,且兩個(gè)多核心微處理器102每個(gè)類似于圖1的多核心微處理器102 ;然而,此系統(tǒng)包含耦接在一起的兩個(gè)多核心微處理器102,用以提供一種八核心系統(tǒng)1100。因此,圖11的系統(tǒng)1100亦類似于圖9的系統(tǒng)900在于其包含四個(gè)雙核心晶粒104,以晶粒0、晶粒1、晶粒2以及晶粒3表示。晶粒0包含核心0與核心1,晶粒1包含核心2與核心3,晶粒2包含核心4與核心5,而晶粒3包含核心6與核心7。然而,晶粒0與晶粒1包含在第一多核心微處理器封裝102中,而晶粒2與晶粒3包含在第二多核心微處理器封裝102中。因此,雖然核心106被分配在圖11的本實(shí)施例中的多重多核心微處理器封裝102之間,然而核心106共用某些電源管理相關(guān)的資源,亦即由芯片組114 與芯片組114的政策所提供用以窺探或不窺探的總線116時(shí)鐘在處理器總線上快取,以使芯片組114由預(yù)先決定的I/O連接端口地址,期望總線116上的單一 I/O讀取傳輸。此外, 兩個(gè)封裝102的核心106潛在地共用一 VRM,以及一晶粒104的核心106可能共用一 PLL, 如上所述。較佳是,圖11的系統(tǒng)1100的核心106(尤其核心106的微碼208)被設(shè)計(jì)成與彼此溝通,用以如于此所說明的,藉由使用核心間通訊配線112、晶粒間通訊配線118以及封裝間通訊配線1133(說明于下)而以一種分散方式,以及在CNTR. 2534中協(xié)調(diào)共用電源管理相關(guān)的資源的控制。第一多核心微處理器102的晶粒間通訊配線118如在圖1中被設(shè)計(jì)。然而,第二多核心微處理器102的接腳以〃 P5"、“ P6"、“ VT'以及〃 P8"表示,且第二多核心微處理器102的晶粒間通訊配線118被設(shè)計(jì)如下。晶粒2的IN 2焊墊與晶粒3的IN 3焊墊經(jīng)由單一配線網(wǎng)耦接至接腳P5;晶粒2的IN 1焊墊與晶粒3的IN 2焊墊經(jīng)由單一配線網(wǎng)耦接至接腳P6 ;晶粒2的OUT焊墊與晶粒3的IN 1焊墊經(jīng)由單一配線網(wǎng)耦接至接腳P7 ; 晶粒3的OUT焊墊與晶粒2的IN 3焊墊經(jīng)由單一配線網(wǎng)耦接至接腳P8。再者,經(jīng)由系統(tǒng) 1100的一主機(jī)板的封裝間通訊配線1133,第一多核心微處理器102的接腳Pl耦接至第二多核心微處理器102的接腳P7,以使晶粒0的OUT焊墊、晶粒1的IN 1焊墊、晶粒2的IN 2焊墊,以及晶粒3的IN 3焊墊經(jīng)由單一配線網(wǎng)而全部耦接在一起;第一多核心微處理器 102的接腳P2耦接至第二多核心微處理器102的接腳P8,以使晶粒1的OUT焊墊、晶粒2 的IN 1焊墊、晶粒3的IN 2焊墊,以及晶粒0的IN 3焊墊經(jīng)由單一配線網(wǎng)而全部耦接在一起;第一多核心微處理器102的接腳P3耦接至第二多核心微處理器102的接腳P5,以使晶粒0的OUT焊墊、晶粒1的IN 1焊墊、晶粒2的IN 2焊墊,以及晶粒3的IN 3焊墊經(jīng)由單一配線網(wǎng)而全部耦接在一起;而第一多核心微處理器102的接腳P4耦接至第二多核心微處理器102的接腳P6,以使晶粒0的OUT焊墊、晶粒1的IN 1焊墊、晶粒2的IN 2焊墊, 以及晶粒3的IN 3焊墊經(jīng)由單一配線網(wǎng)而全部耦接在一起。圖2的CSR 234亦耦接至封裝間通訊配線1133,用以允許微碼208又程序化CSR 234以經(jīng)由封裝間通訊配線1133而與其他核心106溝通。因此,每個(gè)晶粒104的主控核心106被致能以經(jīng)由封裝間通訊配線 1133與晶粒間通訊配線118而與彼此晶粒104的主控核心106(亦即,其伙伴)溝通。當(dāng)每一個(gè)主控核心106想要與其他晶粒104溝通時(shí),其傳輸在其OUT焊墊108上的信息,且此信息廣播至其他晶粒104并藉由它們各自的主控核心106而經(jīng)由適當(dāng)?shù)腎N焊墊108被接收。 如可能從圖11觀察到的,較佳是,相關(guān)于每個(gè)多核心微處理器102,每個(gè)晶粒104上的焊墊 108的數(shù)目與封裝102上的接腳P的數(shù)目不大于晶粒104的數(shù)目,其為相當(dāng)小的數(shù)目。再者,請(qǐng)注意到對(duì)于一晶粒104的一既定主控核心106而言,每隔一個(gè)晶粒104的主控核心106為既定主控核心106的一〃伙伴〃核心106,可能從圖11觀察到核心0、核心 2、核心4以及核心6為類似于圖9中的配置的伙伴,縱使在圖9中,所有的四個(gè)晶粒104包含于單一個(gè)八核心微處理器封裝902中,而在圖11中,四個(gè)晶粒104包含于兩個(gè)分離的四核心微處理器封裝102中。因此,相關(guān)于圖10所說明的微碼208被設(shè)計(jì)成用以又在圖11 的系統(tǒng)1100中操作。此外,所有四個(gè)伙伴核心106—起形成一同儕合作同屬性群組,其中每個(gè)伙伴核心106在沒有仲裁的情況下被致能,以藉由無論哪一個(gè)伙伴核心106被指定為 BSP核心都可直接與任何其他的伙伴核心106協(xié)調(diào)。更進(jìn)一步注意到,雖然接腳P在多處理器實(shí)施例(例如圖11與圖12的那些)中是需要的,但如果必要的話,接腳可能在單一多核心微處理器102實(shí)施例中被省略,雖然它們對(duì)于除錯(cuò)目的是有益的。現(xiàn)在參考圖12所顯示的方塊圖,其顯示依據(jù)本發(fā)明的執(zhí)行分配在兩個(gè)多核心微處理器1202的多重處理核心106之間的分散式電源管理的一計(jì)算機(jī)系統(tǒng)1200的一替代實(shí)施例。系統(tǒng)1200類似于圖11的系統(tǒng)1100,而多核心微處理器1202類似于圖11的多核心微處理器102。然而,系統(tǒng)1200的八個(gè)核心依據(jù)一較深的階層式協(xié)調(diào)系統(tǒng)而藉由旁帶配線被組織并在實(shí)體上連接。每個(gè)晶粒104只具有三個(gè)焊墊108 (OUT、IN 1以及IN 2),用以耦合至晶粒間通訊配線118 ;每個(gè)封裝1202只具有兩個(gè)接腳,在第一多核心微處理器1202上以Pl與P2表示, 以及在第二多核心微處理器1202上以P3與P4表示;而連接圖12的兩個(gè)多核心微處理器 1202的晶粒間通訊配線118與封裝間通訊配線1133具有不同于圖11的它們的相對(duì)物的配置。在圖12的系統(tǒng)1200中,核心0與核心4被指定為它們各自的多核心微處理器1202 的"封裝主控"或“P主控"。再者,除非另有說明,否則專門用語"好友"于此用以表示彼此溝通的不同封裝1202上的主控核心106 ;因此,于圖12的本實(shí)施例中,核心0與核心4為好友。第一多核心微處理器1202的晶粒間通訊配線118被設(shè)計(jì)如下。在第一封裝 1202之內(nèi),晶粒0的OUT焊墊與晶粒1的IN 1焊墊經(jīng)由單一配線網(wǎng)耦接至接腳Pl ;晶粒1 的OUT焊墊與晶粒0的IN 1焊墊經(jīng)由單一配線網(wǎng)耦接;而晶粒0的IN 2焊墊耦接至接腳 P2。在第二封裝1201之內(nèi),晶粒2的OUT焊墊與晶粒3的IN 1焊墊經(jīng)由單一配線網(wǎng)耦接至接腳P3;晶粒3的OUT焊墊與晶粒2的IN 1焊墊經(jīng)由單一配線網(wǎng)耦接;而晶粒2的IN 2焊墊耦接至接腳P4。再者,經(jīng)由系統(tǒng)1200的主機(jī)板的封裝間通訊配線1133,接腳Pl耦接至接腳P4,以使晶粒0的OUT焊墊、晶粒1的IN 1焊墊,而晶粒2的IN 2焊墊經(jīng)由單一配線網(wǎng)而全部耦接在一起;以及接腳P2耦接至接腳P3,以使晶粒2的OUT焊墊、晶粒3的IN 1焊墊,以及晶粒0的IN 2焊墊經(jīng)由單一配線網(wǎng)而全部耦接在一起。因此,不像在圖9的系統(tǒng)900中以及在圖11的系統(tǒng)1100中,于其中每個(gè)主控核心106可與每隔一個(gè)主控核心106溝通,在圖12的系統(tǒng)1200中,只有主控核心0與主控核心4可與彼此溝通(亦即,是經(jīng)由于此所說明的旁帶配線之間)。圖12的實(shí)施例勝過圖11 的一項(xiàng)優(yōu)點(diǎn)為相關(guān)于每個(gè)多核心微處理器1202,每個(gè)晶粒104上的焊墊108的數(shù)目比晶粒 104的數(shù)目小(1),以及每個(gè)封裝1202上的接腳P的數(shù)目比晶粒104的數(shù)目小0),其為一相當(dāng)小的數(shù)目。此外,在核心106之間的C-狀態(tài)交換的數(shù)目可能更少。于一實(shí)施例中,為了除錯(cuò)的目的,第一多核心微處理器1202亦包含耦接至晶粒1的OUT焊墊108的一第三接腳,而第二多核心微處理器1202亦包含耦接至晶粒3的OUT焊墊108的一第三接腳?,F(xiàn)在參考圖13所顯示的流程圖,其顯示依據(jù)本發(fā)明的用以執(zhí)行分配在雙四核心微處理器1202(八個(gè)核心)系統(tǒng)1200的多重處理核心106之間的分散式電源管理的圖12 的系統(tǒng)1200的操作。更明確而言,圖13的流程圖顯示圖3(與圖6)的Sync_C-狀態(tài)微碼 208的操作,類似于圖4與10的流程圖,其在許多方面是相似的,且相同號(hào)碼的方塊是類似的。然而,在圖13的流程圖中所說明的核心106的Sync_C-狀態(tài)微碼208負(fù)責(zé)晶粒間通訊配線118及封裝間通訊配線1133的配置在圖12的系統(tǒng)1200與圖11的系統(tǒng)1100之間是不同的事實(shí),特別是某些主控核心106(亦即核心2及核心4)并未被設(shè)計(jì)成用以與系統(tǒng)1200 的所有其他主控核心106直接溝通,但取而代的的是好友(核心0及核心4)以一種階層式方式向下傳遞至它們的伙伴(分別為核心2與核心6),其依序向下傳遞至它們的朋友核心 106?,F(xiàn)在說明這些差異。流程開始于圖13中的方塊402,并繼續(xù)經(jīng)由方塊424,如相關(guān)于圖4所說明的。然而,圖10并未包含方塊似6或428。反之,流程繼續(xù)從方塊似4至方塊13沈。此外,于決定方塊432,如果中斷的核心106為一好友而非一朋友或伙伴,則流程繼續(xù)至方塊1301。于方塊1326,synC_C-狀態(tài)微碼208藉由計(jì)算〃 C"與〃 D"值的最小值來計(jì)算 (原生性)混合C-狀態(tài)的一最近計(jì)算的數(shù)值,以"C"表示。流程繼續(xù)至決定方塊1327。于決定方塊1327,如果于方塊13 所計(jì)算的〃 C"值小于2或核心106并非是封裝主控核心106,則流程繼續(xù)至方塊416 ;否則,流程繼續(xù)至方塊 1329 ο于方塊1329,sync_C_狀態(tài)微碼208藉由程序化CSR 234在其好友上產(chǎn)生sync_ C-狀態(tài)的新實(shí)例,用以將于方塊13 所計(jì)算的"C"值傳送至其好友并用以中斷好友。這要求好友計(jì)算并傳回一混合C-狀態(tài)(其在類似于上述與圖4相關(guān)說明的情況下可能構(gòu)成整個(gè)處理器的合成的C-狀態(tài)),并要求好友將其提供回到這個(gè)核心106。流程繼續(xù)至方塊1331。于方塊1331,sync_C-狀態(tài)微碼208程序化CSR2;34以檢測(cè)好友已傳回一混合C-狀態(tài)至核心106,并獲得混合C-狀態(tài),以〃 D"表示。流程繼續(xù)至方塊1333。于方塊1333,synC_C-狀態(tài)微碼208藉由計(jì)算〃 C" 與〃 D"值的最小值來計(jì)算一最近計(jì)算的混合C-狀態(tài),以"C"表示。可注意到,假設(shè)D 至少2,然后,一旦流程繼續(xù)至方塊1333,就會(huì)于方塊1333,在"C"值的合成的C-狀態(tài)計(jì)算中已考量系統(tǒng)1200中的每個(gè)核心106的C-狀態(tài);因此,合成的C-狀態(tài)于此被稱為系統(tǒng) 1200合成的C-狀態(tài)。流程繼續(xù)至方塊416。流程繼續(xù)從圖13中的方塊434,并繼續(xù)經(jīng)由方塊444與448,如相關(guān)于圖4所說明的。然而,圖13并不包含方塊452、妨4或456。反之,流程繼續(xù)從方塊448至方塊1352。于方塊1352,synC_C-狀態(tài)微碼208藉由計(jì)算〃 G"與〃 H"值的最小值來計(jì)算一最近計(jì)算的原生性混合C-狀態(tài),以"G"表示。流程繼續(xù)至決定方塊1353。于決定方塊1353,如果于方塊1352所計(jì)算的〃 G"值小于2或核心106并非是封裝主控核心106,則流程繼續(xù)至方塊442 ;否則,流程繼續(xù)至方塊 1355。于方塊1355,sync_C-狀態(tài)微碼208藉由程序化CSR 234在其好友上產(chǎn)生sync_ C-狀態(tài)的新實(shí)例,用以將于方塊1352所計(jì)算的"G"值傳送至其好友,并用以中斷好友。這要求好友計(jì)算并傳回一混合C-狀態(tài)回到這個(gè)核心106。流程繼續(xù)至方塊1357。于方塊1357,sync_C_狀態(tài)微碼208程序化CSR234以檢測(cè)好友已傳回一混合C-狀態(tài)至核心106,并獲得混合C-狀態(tài),以"H"表示。流程繼續(xù)至方塊1359。于方塊1359,synC_C-狀態(tài)微碼208藉由計(jì)算〃 G"與〃 H"值的最小值來計(jì)算一最近計(jì)算的原生性混合C-狀態(tài),以"G"表示??勺⒁獾?,假設(shè)H至少為2,則一旦流程繼續(xù)至方塊1359,就會(huì)于方塊1359,在"G"值的合成的C-狀態(tài)計(jì)算中已考量系統(tǒng)1200中的每個(gè)核心106的C-狀態(tài);因此,合成的C-狀態(tài)于此被稱為系統(tǒng)1200合成的C-狀態(tài)。流程繼續(xù)至方塊442。流程繼續(xù)從圖13中的方塊466,并繼續(xù)經(jīng)由方塊476與482,如相關(guān)于圖4所說明的。然而,圖13并不包含方塊484、486或488。反之,流程繼續(xù)從方塊482至方塊1381。于方塊1381,synC_C-狀態(tài)微碼208藉由計(jì)算〃 L"與〃 M"值的最小值來計(jì)算一最近計(jì)算的原生性混合C-狀態(tài),以"L"表示。流程繼續(xù)至決定方塊1383。于決定方塊1383,如果于方塊1381所計(jì)算的〃 L"值小于2或核心106并非是封裝主控核心106,則流程繼續(xù)至方塊474 ;否則,流程繼續(xù)至方塊 1385。于方塊1385,sync_C-狀態(tài)微碼208藉由程序化CSR 234在其好友上產(chǎn)生sync_ C-狀態(tài)的新實(shí)例,用以將于方塊1381所計(jì)算的"L"值傳送至其好友,并用以中斷好友。這要求好友計(jì)算并傳回一混合C-狀態(tài)回到這個(gè)核心106。流程繼續(xù)至方塊1387。于方塊1387,sync_C_狀態(tài)微碼208程序化CSR234以檢測(cè)好友已傳回一混合C-狀態(tài)至核心106,并獲得混合C-狀態(tài),以"M"表示。流程繼續(xù)至方塊1389。于方塊1389,synC_C-狀態(tài)微碼208藉由計(jì)算〃 L"與〃 M"值的最小值來計(jì)算一最近計(jì)算的原生性synced C-狀態(tài),以〃 L"表示??勺⒁獾?,假設(shè)M是至少2,則一旦流程繼續(xù)至方塊1389,就會(huì)于方塊1389,在"L"值的合成的C-狀態(tài)計(jì)算中已考量系統(tǒng)1200中的每個(gè)核心106的C-狀態(tài);因此,合成的C-狀態(tài)于此被稱為系統(tǒng)1200合成的C-狀態(tài)。流程繼續(xù)至方塊474。如上所述,于決定方塊432,如果中斷的核心106為一好友而非一朋友或伙伴,則流程繼續(xù)至方塊1301。
于方塊1301,核心106被其好友所中斷,所以微碼208程序化CSR 234,用以從其好友獲得好友的合成的C-狀態(tài),在圖13中以"Q"表示??勺⒁獾?,好友不會(huì)已實(shí)施 synch_C-狀態(tài)的這種實(shí)例,如果其尚未為至少2的其封裝決定一合成的C-狀態(tài)的話。流程繼續(xù)至方塊1303。于方塊1303,sync_C-狀態(tài)微碼208計(jì)算一原生性混合 C-狀態(tài)(以〃 R"表示)作為其適合的于方塊1301所接收的C-狀態(tài)〃 Y"值與〃 Q〃值的最小值。流程繼續(xù)至決定方塊1305。于決定方塊1305,如果于方塊1303所計(jì)算的〃 R"值小于2,則流程繼續(xù)至方塊1307 ;否則,流程繼續(xù)至方塊1311。于方塊1307,為因應(yīng)經(jīng)由核心間中斷來自其好友的請(qǐng)求,微碼208程序化CSR 234 以將于方塊1303所計(jì)算的"R"值傳送至其好友。流程繼續(xù)至方塊1309。于方塊1309,常式將于方塊1303所計(jì)算的"R"值傳回至其呼叫者。流程于方塊1309結(jié)束。于方塊1311,sync_C-狀態(tài)微碼208藉由程序化CSR 236在其朋友上產(chǎn)生sync_ C-狀態(tài)的新實(shí)例,用以將于方塊1303所計(jì)算的"R"值傳送至其朋友,并用以中斷朋友。這要求朋友計(jì)算并傳回一混合C-狀態(tài)至核心106。流程繼續(xù)至方塊1313。于方塊1313,sync_C-狀態(tài)微碼208程序化CSR236以檢測(cè)朋友已傳回一混合C-狀態(tài)至核心106,并獲得朋友混合C-狀態(tài),在圖13中以〃 S"表示。流程繼續(xù)至方塊1315。于方塊1315,synC_C-狀態(tài)微碼208藉由計(jì)算〃 R" 與〃 S"值的最小值來計(jì)算一最近計(jì)算的原生性混合C-狀態(tài),以"R"表示。流程繼續(xù)至決定方塊1317。于決定方塊1317,如果于方塊1315所計(jì)算的〃 R"值小于2,則流程繼續(xù)至方塊1307 ;否則,流程繼續(xù)至方塊1319。于方塊1319,sync_C-狀態(tài)微碼208藉由程序化CSR 234在其伙伴上產(chǎn)生sync_ C-狀態(tài)的新實(shí)例,用以將于方塊1315所計(jì)算的"R"值傳送至其伙伴,并用以中斷伙伴。這要求伙伴計(jì)算并傳回一混合C-狀態(tài)至這個(gè)核心106。流程繼續(xù)至方塊1321。于方塊1321,sync_C-狀態(tài)微碼208程序化CSR2;34以檢測(cè)伙伴已傳回一混合C-狀態(tài)至核心106,并獲得混合C-狀態(tài),以〃 S"表示。流程繼續(xù)至方塊1323。于方塊1323,synC_C-狀態(tài)微碼208藉由計(jì)算〃 R" 與〃 S"值的最小值來計(jì)算一最近計(jì)算的原生性混合C-狀態(tài),以"R"表示??勺⒁獾剑僭O(shè)S是至少2,然后,一旦流程繼續(xù)至方塊1323,就會(huì)于方塊1323,在"R"值的計(jì)算中已考量系統(tǒng)1200中的每個(gè)核心106的C-狀態(tài);因此,丨‘R〃構(gòu)成系統(tǒng)1200的合成的C-狀態(tài)。 流程繼續(xù)至方塊1307。現(xiàn)在參考圖14所顯示的方塊圖,其顯示依據(jù)本發(fā)明的執(zhí)行分配在一多核心微處理器1402的多重處理核心106之間的分散式電源管理的一計(jì)算機(jī)系統(tǒng)1400的一替代實(shí)施例。系統(tǒng)1400在某些方法上類似于圖9的系統(tǒng)900,因?yàn)槠浒趩我环庋b上具有經(jīng)由晶粒間通訊配線118耦接在一起的四個(gè)雙核心晶粒104的單一八核心微處理器1402。然而, 系統(tǒng)1400的八個(gè)核心是依據(jù)一較深的三層的階層式協(xié)調(diào)系統(tǒng)而藉由旁帶配線被組織且實(shí)體上被連接。首先,晶粒間通訊配線118的配置與圖9不同,如下所述。值得注意的,系統(tǒng)1400 在某些方法上類似于圖12的系統(tǒng)1200,于其中核心依據(jù)一種三層的階層式協(xié)調(diào)系統(tǒng)而又被組織且實(shí)體上被連接。四個(gè)晶粒104的每一個(gè)包含用以耦接至晶粒間通訊配線118的三個(gè)焊墊108,亦即OUT焊墊、IN 1焊墊以及IN 2焊墊。圖14的多核心微處理器1402包含以〃 Pl"、“ P2"、“ P3"以及〃 P4"表示的四個(gè)接腳。圖14的多核心微處理器1402 的晶粒間通訊配線118的配置如下。晶粒0的OUT焊墊、晶粒1的IN 1焊墊,以及晶粒2 的IN 2焊墊經(jīng)由耦接至接腳Pl的單一配線網(wǎng)而全部耦接在一起;晶粒1的OUT焊墊與晶粒0的IN 1焊墊經(jīng)由耦接至接腳P2的單一配線網(wǎng)而耦接在一起;晶粒2的OUT焊墊、晶粒 3的IN 1焊墊以及晶粒0的IN 2焊墊經(jīng)由耦接至接腳P 3的單一配線網(wǎng)而全部耦接在一起;晶粒3的OUT焊墊與晶粒2的mi焊墊經(jīng)由耦接至接腳P4的單一配線網(wǎng)而耦接在一起。對(duì)核心0與核心4縱使它們位于相同的封裝1402(與上述相關(guān)于圖12所規(guī)定的專門用語"好友"的意思相反)仍被視為好友,以及好友于圖14的本實(shí)施例中經(jīng)由晶粒間通訊配線118而非經(jīng)由圖12的封裝間通訊配線1133而彼此溝通的理解,圖14的核心106 被設(shè)計(jì)成用以依據(jù)圖13的說明操作。于此注意到除處理器的實(shí)體模型以外,核心依據(jù)一種較深的且具有三個(gè)層次的域的階層式協(xié)調(diào)系統(tǒng)而被設(shè)計(jì)。現(xiàn)在參考圖15所顯示的方塊圖,其顯示依據(jù)本發(fā)明的執(zhí)行分配在一種多核心微處理器1502的多重處理核心106之間的分散式電源管理的一計(jì)算機(jī)系統(tǒng)1500的一替代實(shí)施例。系統(tǒng)1500在某些方法上類似于圖14的系統(tǒng)1400,因?yàn)槠浒瑔我粋€(gè)八核心微處理器1502,其具有以核心0至核心7表示的八個(gè)核心106。然而,多核心微處理器1502包含經(jīng)由晶粒間通訊配線118耦接在一起的兩個(gè)四核心晶粒1504。兩個(gè)晶粒1504的每一個(gè)包含用以耦接至晶粒間通訊配線118的兩個(gè)焊墊108,亦即一 OUT焊墊以及IN 1、IN 2和IN 3焊墊。多核心微處理器1502包含以〃 Pl"與〃 P2"表示的兩個(gè)接腳。多核心微處理器 1502的晶粒間通訊配線118的配置如下。晶粒0的OUT焊墊與晶粒1的IN 1焊墊經(jīng)由耦接至接腳P2的單一配線網(wǎng)而耦接在一起,而晶粒1的OUT焊墊與晶粒0的IN 1焊墊經(jīng)由耦接至接腳Pl的單一配線網(wǎng)而耦接在一起。此外,四核心晶粒1504的核心間通訊配線112將每個(gè)核心106耦接至晶粒1504的其他核心106,用以促進(jìn)分配在一種多核心微處理器1502 的多重處理核心106之間的分散式電源管理。對(duì)下述的理解,圖15的核心106被設(shè)計(jì)成用以依據(jù)圖13的說明操作。首先,每個(gè)晶粒本身具有其核心,其依據(jù)一雙層的階層式協(xié)調(diào)系統(tǒng)藉由旁帶配線而被組織且實(shí)體上被連接。晶粒O具有兩個(gè)朋友同屬性群組(核心0與核心1 ;核心2與核心幻以及一個(gè)伙伴同屬性群組(核心0與核心2、。同樣地,晶粒1具有兩個(gè)朋友同屬性群組(核心4與核心 5 ;核心6與核心7)以及一個(gè)伙伴同屬性群組(核心4與核心6)。于此注意到伙伴核心縱使它們是位于相同的晶粒(與上述相關(guān)于圖1所規(guī)定的的"伙伴"的特性記述相反)仍被視為伙伴。此外,伙伴于圖15的本實(shí)施例中經(jīng)由核心間通訊配線112而非經(jīng)由圖12的晶粒間通訊配線118而彼此溝通。其次,封裝本身界定一第三階層式范圍及對(duì)應(yīng)的好友同屬性群組。換言之,核心0 及核心4縱使它們位于相同的封裝1502(與上述相關(guān)于圖12所規(guī)定的專門用語"好友" 的意思相反),仍被視為好友。另外,好友于圖15的本實(shí)施例中經(jīng)由晶粒間通訊配線118而非經(jīng)由圖12的封裝間通訊配線1133而彼此溝通?,F(xiàn)在參考圖16所顯示的方塊圖,其顯示依據(jù)本發(fā)明的執(zhí)行分配在一種多核心微處理器1602的多重處理核心106之間的分散式電源管理的一計(jì)算機(jī)系統(tǒng)1600的一替代實(shí)施例。系統(tǒng)1600在某些方法上類似于圖15的系統(tǒng)1500,因?yàn)槠浒瑔我粋€(gè)八核心微處理器1602,其具有以核心0至核心7所表示的八個(gè)核心106。然而,每個(gè)晶粒104包含多條在每一個(gè)核心106之間的核心間通訊配線112,用以允許每個(gè)核心106與晶粒104中的彼此核心106溝通。因此,為圖16的每個(gè)核心106的微碼208的操作的說明的目的(1)核心 0、核心1、核心2以及核心3被視為朋友,而核心4、核心5、核心6以及核心7被視為朋友; (2)核心0及核心4被視為伙伴。因此,系統(tǒng)1600是依據(jù)由朋友與伙伴同屬性群組所組成的一雙層階層式協(xié)調(diào)系統(tǒng)而藉由旁帶配線被組織且實(shí)體上被連接。此外,在晶粒的每一個(gè)核心之間的核心間通訊配線112的存在,促進(jìn)供晶粒所界定的朋友同屬性群組用的一同儕合作協(xié)調(diào)模型。雖然能夠依據(jù)一同儕合作協(xié)調(diào)模型操作,但圖17說明一種供核心之間的分散式電源管理用的主控合作協(xié)調(diào)模型。現(xiàn)在參考圖17所顯示的流程圖,其顯示依據(jù)本發(fā)明的用以執(zhí)行分配在多核心微處理器102的多重處理核心106之間的分散式電源管理的圖16的系統(tǒng)1600的操作。更明確而言,圖17的流程圖顯示圖3 (與圖6)的Sync_C-狀態(tài)微碼208的操作,類似于圖4的流程圖,其在許多方面是相似的,且相同號(hào)碼的方塊是類似的。然而,在圖17的流程圖中所說明的核心106的微碼208負(fù)責(zé)八個(gè)核心106的存在而非于圖1的本實(shí)施例中的四個(gè)核心 106,具體地說四個(gè)核心106的存在為兩個(gè)晶粒104的每一個(gè),而現(xiàn)在說明差異。尤其,一晶粒104的每個(gè)主控核心106具有三個(gè)朋友核心106而非一個(gè)朋友核心106。流程開始于圖17中的方塊402,并繼續(xù)經(jīng)由決定方塊404且離開決定方塊404 的"NO"分支至決定方塊432,如相關(guān)于圖4所說明的。然而,圖17并不包含方塊406至 418。反之,流程繼續(xù)從決定方塊404離開〃 YES〃分支至方塊1706。于方塊1706,sync_C-狀態(tài)微碼208藉由程序化圖2的CSR 236在一朋友上產(chǎn)生 sync_C-狀態(tài)常式的新實(shí)例,用以將于方塊402所接收或于方塊1712所產(chǎn)生(討論于下) 的"A"值傳送至其下一個(gè)朋友,并用以中斷朋友。這要求朋友計(jì)算并傳回一混合C-狀態(tài)至核心106。在包含方塊1706、1708、1712、414以及1717的回圈中,微碼208掌握其已造訪的朋友的行蹤,用以確保其造訪它們每一個(gè)(除非于決定方塊414被發(fā)現(xiàn)是真實(shí)的狀況)。 流程繼續(xù)至方塊1708。于方塊1708,sync_C-狀態(tài)微碼208程序化CSR 236以檢測(cè)下一個(gè)朋友已傳回一混合C-狀態(tài)至核心106,并獲得朋友的混合C-狀態(tài),在圖17以"B"表示。流程繼續(xù)至方塊 1712。于方塊1712,s ync_C-狀態(tài)微碼208藉由計(jì)算〃 A"及〃 B"值的最小值來計(jì)算一最近計(jì)算的原生性混合C-狀態(tài),其以"A"表示。流程繼續(xù)至決定方塊1714。于決定方塊1714,如果于方塊1712所計(jì)算的〃 A"值小于2或核心106并非是主控核心106,則流程繼續(xù)至方塊1716 ;否則,流程繼續(xù)至決定方塊1717。于方塊1716,synC_C-狀態(tài)微碼208將于方塊1712所計(jì)算的〃 A"值傳回至其呼叫者。流程于方塊1716結(jié)束。于決定方塊1717,Sync_C-狀態(tài)微碼208決定所有其朋友是否已被造訪,亦即,核心106是否已經(jīng)經(jīng)由方塊1706與1708而與每一個(gè)其朋友交換混合C-狀態(tài)。如果是,則流程繼續(xù)至方塊1719 ;否則,流程回復(fù)至方塊1706。于方塊1719,synC_C-狀態(tài)微碼208決定于方塊1712所計(jì)算的〃 A"值成為其晶粒合成的C-狀態(tài),其以"C"表示,且流程繼續(xù)至方塊422并繼續(xù)進(jìn)行經(jīng)由至方塊428,如上相關(guān)于圖4所述。流程繼續(xù)從決定方塊438的〃 NO 〃分支至決定方塊1739。于決定方塊1739,Sync_C-狀態(tài)微碼208決定所有其朋友是否已被造訪,亦即,核心106是否已經(jīng)經(jīng)由方塊1741及1743(討論于下)而與每一個(gè)其朋友交換一混合C-狀態(tài)。 如果是,流程繼續(xù)至方塊446,并繼續(xù)進(jìn)行經(jīng)由至方塊456,如上相關(guān)于圖4所述;否則,流程繼續(xù)至方塊1741。于方塊1741,sync_C-狀態(tài)微碼208藉由程序化圖2的CSR 236在其下一個(gè)朋友上產(chǎn)生synC_C-狀態(tài)常式的新實(shí)例,用以將于方塊436或于方塊1745 (討論于下)所計(jì)算的"G"值傳送至其下一個(gè)朋友,并用以中斷朋友。這要求朋友計(jì)算并傳回一混合C-狀態(tài)至核心106。在包含方塊438、1739、1741、1743以及1745的回圈中,微碼208掌握其已造訪的朋友的行蹤,用以確保其造訪它們每一個(gè)(除非于決定方塊438被發(fā)現(xiàn)是真實(shí)的狀況)。 流程繼續(xù)至方塊1743。于方塊1743,sync_C-狀態(tài)微碼208程序化CSR 236以檢測(cè)下一個(gè)朋友已傳回一混合C-狀態(tài)至核心106,并獲得朋友的混合C-狀態(tài),在圖17中以"F"表示。流程繼續(xù)至方塊1745。于方塊1745,synC_C-狀態(tài)微碼208藉由計(jì)算〃 F"及〃 G"值的最小值來計(jì)算一最近計(jì)算的原生性混合C-狀態(tài),其以"G"表示。流程回復(fù)至決定方塊438。圖17并不包含方塊478至方塊488。取而代的的是,流程繼續(xù)離開決定方塊472 的〃 NO"分支至決定方塊1777。于決定方塊1777,Sync_C-狀態(tài)微碼208決定所有其朋友是否已被造訪,亦即,核心106是否已經(jīng)經(jīng)由方塊1778及1782 (討論于下)而與每一個(gè)其朋友交換一混合C-狀態(tài)。 如果是,流程繼續(xù)至方塊474并繼續(xù)進(jìn)行經(jīng)由至方塊476,如上相關(guān)于圖4所述;否則,流程繼續(xù)至方塊1778。于方塊1778,sync_C-狀態(tài)微碼208藉由程序化圖2的CSR 236在下一個(gè)朋友上產(chǎn)生synC_C-狀態(tài)常式的新實(shí)例,用以將于方塊468或于方塊1784 (討論于下)所計(jì)算的"L"值傳送至其下一個(gè)朋友,并用以中斷朋友。這要求朋友計(jì)算并傳回一混合C-狀態(tài)至核心106。在包含方塊472、1777、1778、1782以及1784的回圈中,微碼208掌握其已造訪的朋友的行蹤,用以確保其造訪它們每一個(gè)(除非于決定方塊472被發(fā)現(xiàn)是真實(shí)的狀況)。 流程繼續(xù)至方塊1782。于方塊1782,sync_C-狀態(tài)微碼208程序化CSR 236以檢測(cè)下一個(gè)朋友已傳回一混合C-狀態(tài)至核心106,并獲得朋友的混合C-狀態(tài),在圖17以"M"表示。流程繼續(xù)至方塊 1784。于方塊1784,s ync_C-狀態(tài)微碼208藉由計(jì)算〃 L"及〃 M"值的最小值來計(jì)算一最近計(jì)算的原生性混合C-狀態(tài),其以"L"表示。流程回復(fù)至決定方塊472。如較早所陳述的,如應(yīng)用至圖16的圖17顯示一主控仲裁的階層式協(xié)調(diào)模型至一微處理器1602的應(yīng)用,其旁帶配線促進(jìn)對(duì)于至少某些的核心同屬性群組的一同儕合作協(xié)調(diào)模型。這種組合提供各種優(yōu)點(diǎn)。在一方面,微處理器1602的實(shí)體構(gòu)造提供在界定與再界定階層式域以及指定與再指定域主控上的撓性,如與申請(qǐng)案序號(hào)61/似6,470的段落相關(guān)所說明的,前述申請(qǐng)案的申請(qǐng)日為2010年12月22日,名稱為"在一多核心處理器中的動(dòng)態(tài)及選擇性核心禁能(Dynamic and Selective Core Disablement)“,及其同時(shí)申請(qǐng)的非臨時(shí)申請(qǐng)案(CNTR. 2536),其于此并入作參考。此外,在提供這種核心間協(xié)調(diào)撓性的一微處理器上,可能利用一個(gè)以上的協(xié)調(diào)模式提供依據(jù)預(yù)定情況或配置設(shè)定可以行動(dòng)的一階層式協(xié)調(diào)系統(tǒng)。舉例而言,一階層式協(xié)調(diào)系統(tǒng)可藉由使用供一既定同屬性群組用的標(biāo)示的主控核心而優(yōu)先地采用協(xié)調(diào)的一主控仲裁的模型,但是在某些預(yù)定或檢測(cè)條件下,將一不同的核心標(biāo)示為供那個(gè)同屬性群組用的一暫時(shí)主控,或者切換成供一既定同屬性群組用的一同儕合作協(xié)調(diào)模型。可能的模型切換條件的例子包含無反應(yīng)或禁能的標(biāo)示的主控核心,處于基于它們的狀態(tài)或緊急性限制中斷的一限制中斷模式的標(biāo)示的主控,或處于將某些把關(guān)或協(xié)調(diào)角色的委派授權(quán)給一個(gè)或多個(gè)其成份的一狀態(tài)的標(biāo)示的主控。在上述圖中,已顯示受限制的電源狀態(tài)(例如C-狀態(tài)>=2),只有等于供處理器用的復(fù)合電源狀態(tài)時(shí)其是可實(shí)施的。在諸如此類的情況下,已說明可操作以在實(shí)施受限制的電源狀態(tài)之前負(fù)責(zé)處理器中的每個(gè)核心的適合的電源狀態(tài)的復(fù)合電源狀態(tài)發(fā)現(xiàn)過程。然而且如較早在規(guī)格中所陳述的,將理解到可考慮可訂定電源狀態(tài)的不同配置與等級(jí)。此外,亦考慮包含多重域-特定層次的受限制的電源狀態(tài)的電源狀態(tài)的非常進(jìn)階的設(shè)定,于此漸進(jìn)較高層次的受限制的電源狀態(tài)將適合于處理器的漸進(jìn)較高的域。舉例而言,在具有多重多核心晶粒的一多核心多處理器中,每個(gè)晶粒提供在晶粒的核心之間被共用的一 PLL,但由微處理器的所有核心所共用的單一 VRM,如譬如在 CNTR. 2534中所說明的,一域-受限制的電源狀態(tài)階層可被界定包含尤其適合于一核心內(nèi)部(且非外部被共用)的資源的第一組電源狀態(tài),尤其適合于由晶粒上的核心所共用,而非以別的方法被晶粒的外部所共用的資源(例如PLL與快取)的下一組的電源狀態(tài),且特別適合于整個(gè)微處理器的另一組的電源狀態(tài)(例如電壓值與總線時(shí)鐘)。因此,于一實(shí)施例中,每個(gè)域具有其本身的復(fù)合電源狀態(tài)。另外,對(duì)每個(gè)域而言,存在有單一適當(dāng)憑據(jù)的核心(例如那個(gè)域的主控),其具有實(shí)施或允許一受限制的電源狀態(tài)的實(shí)現(xiàn)的授權(quán),其如由一對(duì)應(yīng)的域-區(qū)別的電源狀態(tài)階層協(xié)調(diào)系統(tǒng)所界定的,受限在其對(duì)那個(gè)域的沖擊上。這種進(jìn)階配置尤其相當(dāng)適合包含譬如CNTR. 2534所顯示的那些實(shí)施例, 于其中副群組的處理器的核心共用快取、PLL等等。亦考慮數(shù)個(gè)實(shí)施例,于其中一分散式同步過程用以利用一種不需要喚醒所有核心的方式來不僅管理一受限制的電源狀態(tài)的實(shí)現(xiàn),而且選擇性地實(shí)施一受限制的電源狀態(tài)的一喚起狀態(tài)或撤銷。這種進(jìn)階實(shí)施例與像圖5的系統(tǒng)形成對(duì)比,于其中一芯片組STPCLK解除設(shè)立可能完全喚醒所有核心。現(xiàn)在移到圖23,一方塊圖描繪出譬如在微碼中實(shí)施的用以有條件地實(shí)施并選擇性地撤銷一限制操作狀態(tài)的synC_State邏輯2300的一個(gè)實(shí)施例。如下所述,sync_state邏輯2300支持一種域-區(qū)別的電源狀態(tài)階層協(xié)調(diào)系統(tǒng)的實(shí)現(xiàn)。較佳是,sync_state邏輯2300 是相當(dāng)可計(jì)量的,因?yàn)槠淇杀谎由熘翆?shí)際地任何期望的域-層次深度的階層式協(xié)調(diào)系統(tǒng)。 另外,邏輯2300可能整體看來不僅以對(duì)一微處理器的一全域方式,而且以只對(duì)在一微處理器之內(nèi)的特定群組的核心(例如,只對(duì)一晶粒的核心,如以下譬如關(guān)于方塊2342所說明的) 的更多限制的方式被實(shí)施。此外,synC_state邏輯2300可能利用不同的相應(yīng)地界定的階層式協(xié)調(diào)系統(tǒng)、適合的操作狀態(tài)以及域?qū)哟伍撝?,而?dú)立應(yīng)用至不同群組的操作狀態(tài)。
在類似于synC_C-狀態(tài)微碼208的較早顯示的實(shí)施例的實(shí)施樣態(tài)中,sync_state 邏輯2300可能在遞送一探測(cè)狀態(tài)值"P"的一常式中原生或外部地被實(shí)施及被實(shí)行。例如,一電源狀態(tài)管理微碼常式可接收由一 MWAIT指令所遞送,或如與CNTR. 2534相關(guān)所討論的一目標(biāo)操作狀態(tài),利用供核心用的原生性核心邏輯產(chǎn)生一目標(biāo)操作狀態(tài)(例如一要求的 VID或頻率比率值)。接著,電源狀態(tài)管理微碼常式可將目標(biāo)值儲(chǔ)存為核心的目標(biāo)操作狀態(tài) 0TARGET,然后,藉由將0TARGET遞送成為探測(cè)狀態(tài)值〃 P"來實(shí)施ync_state邏輯2300。 或者,在類似于先前實(shí)施例所討論的那些實(shí)施樣態(tài),sync_state邏輯2300可能藉由響應(yīng)一外部產(chǎn)生的同步需求一中斷常式而被實(shí)施。為簡(jiǎn)化之便,這種實(shí)例被稱為sync_state邏輯 2300的外部實(shí)施的實(shí)例。在更進(jìn)一步繼續(xù)前進(jìn)以前,應(yīng)注意到,再為簡(jiǎn)化之便,圖23顯示以一種適合管理操作狀態(tài)的形式的SynC_State邏輯2300,操作狀態(tài)是以漸進(jìn)地較高需求的狀態(tài)(舉例而言,如適合于C-狀態(tài))要求漸進(jìn)地更大程度的核心間協(xié)調(diào)的這樣的方式被界定或被命令。 將理解本領(lǐng)域技術(shù)人員可利用謹(jǐn)慎應(yīng)用的邏輯來修改s ync_state邏輯2300以支援一操作狀態(tài)階層(例如VID或頻率比率狀態(tài)),于其中操作狀態(tài)朝相反方向被界定。或者,因傳統(tǒng)或選擇而朝一個(gè)方向被界定的操作狀態(tài)會(huì)根據(jù)定義而一般"可訂定"在相反方向中。因此,sync_state邏輯2300可能只藉由重新命令它們,并施加相反指示的基準(zhǔn)值(例如負(fù)的原始值)而被應(yīng)用至操作狀態(tài)(例如需求的VID與頻率比率狀態(tài))。亦注意到圖23顯示sync_state邏輯2300是尤其為一嚴(yán)格地階層式協(xié)調(diào)系統(tǒng)而設(shè)計(jì),于其中所有包含的同屬性群組依據(jù)一主控仲裁協(xié)調(diào)模型操作。如相關(guān)于順應(yīng)某些程度的對(duì)等合作的較早顯示的同步邏輯實(shí)施例所證明的,本發(fā)明不應(yīng)被理解成受限于嚴(yán)格地階層式協(xié)調(diào)系統(tǒng),除非并到達(dá)明確指出的程度。流程于方塊2302開始,于此sync_state邏輯2300接收探測(cè)狀態(tài)值〃 P"。流程繼續(xù)至方塊2304,于此sync_state邏輯2300亦獲得原生性核心的目標(biāo)操作狀態(tài)0TARGET、 可由原生性核心實(shí)行的最大的操作狀態(tài)0ΜΑΧ、由原生性核心所控制的最大的域?qū)哟蜠MAX, 以及并未涉及或干涉一既定域D的外部資源的最大可利用的域-特定狀態(tài)MD。應(yīng)注意到, sync_state邏輯2300獲得或計(jì)算方塊2304的值的方式或年表(chronology)并不重要。 在流程圖中的方塊2304的位置僅對(duì)介紹適合于sync_state邏輯2300的重要變數(shù)有用。在一個(gè)例示的但非限制的實(shí)施例中,域?qū)哟蜠被界定如下單一核心為0 ;多核心晶粒為1 ;多晶粒封裝為2,等等。0與1的操作狀態(tài)是不受限制的(意指一核心可能實(shí)施它們而無須與其他核心協(xié)調(diào)),2與3的操作狀態(tài)是相關(guān)于相同晶粒的核心而受限(意指它們可能在一晶粒的核心上被實(shí)施以與其他晶粒上的核心協(xié)調(diào),但不需要與在其他晶粒上的其他核心協(xié)調(diào)),而4與5的操作狀態(tài)相關(guān)于相同封裝的核心而受限(意指它們可能在與那個(gè)封裝的核心協(xié)調(diào)之后而在那個(gè)封裝上被實(shí)施,但不需要與其他封裝上的其他核心協(xié)調(diào), 如果有的話),等等。因此,相對(duì)應(yīng)的最大可利用的域-特定狀態(tài)MD為MO = 1 ;M1 = 3 ;以及M2 = 5。再者,由一核心所控制的最大的域?qū)哟蜠MAX與可由核心實(shí)行的最大的操作狀態(tài) 0ΜΑΧ,兩者為那個(gè)核心的主控憑據(jù)(如果有的話)的函數(shù)。因此,于此例子中,一非主控核心將具有0的一 DMAX以及1的一對(duì)應(yīng)的最大的可自我實(shí)行的操作狀態(tài)OMAX ; —晶粒主控核心將具有1的DMAX以及3的一對(duì)應(yīng)的最大的可自我實(shí)行的操作狀態(tài)OMAX ;以及一封裝主控或BSP核心將具有2的DMAX以及5的一對(duì)應(yīng)的最大的可自我實(shí)行的操作狀態(tài)0ΜΑΧ。
流程繼續(xù)至方塊2306,于此sync_state邏輯2300計(jì)算等于探測(cè)值〃 P"與原生性核心的目標(biāo)操作狀態(tài)0TARGET的最小值的初始混合值"B"。另外,如果P是由一附屬家族核心所接收,且其值小于或等于最大可利用的域-特定操作狀態(tài)MD (家族核心據(jù)以為憑據(jù)來實(shí)施),則基于這里所說明的邏輯,這一般表示一附屬家族核心對(duì)撤銷由原生性或一較高階級(jí)的核心所實(shí)行的任何潛在干涉的較易休眠的狀態(tài)的需求。此乃因?yàn)樵谝话闩渲弥校?附屬家族核心已經(jīng)實(shí)行相對(duì)更清醒的P狀態(tài)至其所能夠的程度,但其無法在沒有較高層次協(xié)調(diào)的情況下,單方面地撤銷經(jīng)由一個(gè)其不能控制的域所實(shí)行的一干涉較易休眠狀態(tài)。流程繼續(xù)至方塊2308,于此一域?qū)哟巫償?shù)D被初始化為零。在上述所顯示的例子中,一個(gè)0的D表示一個(gè)核心。流程繼續(xù)至決定方塊2310。如果D等于DMAX,則流程繼續(xù)至方塊2340。否則,流程繼續(xù)至決定方塊2312。舉例而言,在沒有實(shí)行顯示在方塊2312-2320之間的任何一邏輯的情況下,在一非主控核心上實(shí)施的一 synC_State常式將總是繼續(xù)至方塊2340。此乃因?yàn)轱@示在方塊2312-2320之間的邏輯被提供給一主控核心的有條件地同步化附屬家族核心。 關(guān)于另一例子,如果一晶粒主控核心不具有其他主控憑據(jù),則其DMAX等于1。首先,D為0, 所以一條件同步過程可能依據(jù)方塊2312-2320而在晶粒的其他核心上被實(shí)現(xiàn)。但在完成任何這種同步(假設(shè)依據(jù)決定方塊2312,其并非有條件地越早被終止)且已將D增加1(方塊 2316)之后,流程將繼續(xù)(經(jīng)由決定方塊2310)至方塊2340?,F(xiàn)在移到?jīng)Q定方塊2312,如果B > MD,則流程繼續(xù)至決定方塊2314。否則,流程繼續(xù)至方塊2340。為了以另一種方式陳述,如果原生性核心目前計(jì)算的混合值B將不會(huì)涉及或干涉由變數(shù)D所界定的域的外部資源,則不需要與任何更進(jìn)一步的附屬家族核心同步。 舉例而言,如果目前計(jì)算的混合值B為1,則需要沒有更進(jìn)一步與附屬家族核心同步的只沖擊位于一既定核心的近端的資源的數(shù)值。關(guān)于另一例子,假設(shè)原生性核心為一好友核心,其具有足夠憑據(jù)以關(guān)閉或沖擊共通于多重晶粒的資源。但亦假設(shè)好友的目前計(jì)算的混合值B 為3,其為一個(gè)將只沖擊位于好友的晶粒而非好友所主宰的其他晶粒的近端的資源的數(shù)值。 又假設(shè)好友已依據(jù)方塊2314、2318以及2320而完成與其本身晶粒上的每一個(gè)核心的同步, 藉以使變數(shù)D增加至1 (方塊2316),并使新的MD = Ml = 3納入考量(方塊2312)。在這些情況之下,好友并不需要更進(jìn)一步與其他晶粒上的附屬家族核心(例如伙伴)同步,因?yàn)?3或更少的數(shù)值的好友的實(shí)現(xiàn)無論如何將不會(huì)影響其他晶粒?,F(xiàn)在移到?jīng)Q定方塊2314,sync_state邏輯2300評(píng)估在由D+1所界定的域中是否有任何(更多)不同步的附屬家族核心。如果有任何這種核心,則流程繼續(xù)至方塊2318。 如果不是的話,則流程首先繼續(xù)至方塊2316 (于此D被增加),然后至決定方塊2310,于此再次評(píng)估目前增加的D的值,如上所述?,F(xiàn)在移到方塊2318,因?yàn)橐环N不同步的附屬家族核心已被檢測(cè)(方塊2318),所以其可能受目前計(jì)算的混合值"B"的實(shí)現(xiàn)(方塊231 影響,因?yàn)槠鋵⒂绊懹筛綄偌易搴诵乃灿玫馁Y源,所以sync_state邏輯2300的原生性實(shí)例在不同步的附屬家族核心上實(shí)施一種syncjtate邏輯2300的新的從屬實(shí)例。原生性實(shí)例遞送其目前計(jì)算的混合值〃 B" 以作為對(duì)于sync_state邏輯2300的從屬實(shí)例的一探測(cè)值。如由sync_state邏輯2300的邏輯所顯而易見的,從屬實(shí)例最后將傳回不大于"B"的原生性值(方塊2306)且不小于附屬家族核心的最大可利用的域-特定狀態(tài)MD (方塊2346)的數(shù)值,其為將不會(huì)干涉在原生性與附屬家族核心之間所共用的任何資源的最大值。因此,當(dāng)流程繼續(xù)至方塊2320時(shí), SynC_State邏輯2300的原生性實(shí)例采用由從屬實(shí)例所傳回的數(shù)值作為其本身的"B"值。到現(xiàn)在為止,已將焦點(diǎn)指向用以有條件地同步化附屬家族核心的SynC_State邏輯2300的一部分?,F(xiàn)在,將聚焦于方塊2340-2348,其說明用以執(zhí)行一目標(biāo)和/或同步化狀態(tài)的邏輯,包含與較優(yōu)的家族核心(亦即,較高層次主控)有條件地協(xié)調(diào)。現(xiàn)在移到方塊2340,原生性核心實(shí)施其目前混合值"B"至其可以的程度。尤其, 其實(shí)行B及OMAX的最小值,可由原生性核心實(shí)行的最大狀態(tài)??勺⒁獾剑嚓P(guān)于屬于域主控的核心,方塊2340設(shè)成為這種核心以實(shí)行或允許供其域用的一復(fù)合電源狀態(tài)的最小值(方塊2306或2320的"B")與適合于其域的最大受限制的電源狀態(tài)(亦即0ΜΑΧ)的實(shí)現(xiàn)。流程繼續(xù)至決定方塊2342,于此syncjtate邏輯2300評(píng)估原生性核心是否為供微處理器用的BSP。如果是,則沒有較優(yōu)的核心以協(xié)調(diào),且流程繼續(xù)至方塊2348。如果否, 則流程繼續(xù)至決定方塊2344。應(yīng)注意到,在sync_state邏輯2300以對(duì)微處理器較不全域方式地被應(yīng)用至控制操作狀態(tài)的實(shí)施例中,方塊2342藉由以預(yù)定組的操作狀態(tài)所屬的" 最高適合的域主控〃置換〃 BSP"而改變。舉例而言,如果sync_state邏輯2300僅應(yīng)用至對(duì)由CNTR. 2534中所說明的一晶粒所共用的一 PLL的期望的頻率時(shí)鐘比率的采用,則將以"晶粒主控〃置換〃 BSP"。在決定方塊2344中,sync_state邏輯2300評(píng)估sync_state的原生性實(shí)例是否藉由一主控核心而實(shí)施。如果是,則原生性核心根據(jù)定義已經(jīng)與其主控同步,所以流程繼續(xù)至方塊2348。如果否,則流程繼續(xù)至方塊2346?,F(xiàn)在移到方塊2346,sync_state邏輯2300在其主控核心上實(shí)施一個(gè)sync_state 的從屬實(shí)例。其將核心的最終混合值B與核心的最大可利用的域-特定狀態(tài)MD的最大值遞送作無探測(cè)值P。提供說明選擇這個(gè)探測(cè)值P的兩個(gè)例子。在第一例子中,假設(shè)B高于原生性核心的最大可自我實(shí)行的操作狀態(tài)OMAX(方塊 2340)。換言之,在沒有較高層次協(xié)調(diào)的情況下,原生性核心無法單方面導(dǎo)致B的完全實(shí)現(xiàn)。 在這樣的情況下,方塊2346表示原生性核心對(duì)其主控核心的一懇求,要求其更完全實(shí)施B, 如果可能的話。將明白依據(jù)圖23所提出的邏輯,主控核心如果其并非與其本身的目標(biāo)狀態(tài)與其他潛在影響的核心的適合狀態(tài)相符的話,將婉拒懇求。否則,主控核心將實(shí)施此懇求到達(dá)其與那些狀態(tài)相符的程度,上達(dá)其本身最大的可自我實(shí)行的狀態(tài)OMAX的一最大值(方塊 2340)。依據(jù)方塊2346,如果有的話,主控核心亦將懇求其本身具有原始核心的B值等等的混合以及可能等于原始核心的B值的數(shù)值的較優(yōu)的核心,所有方式通過此階層。依此方式, 如果滿足數(shù)個(gè)適合條件,則sync_state邏輯2300完全實(shí)施原生性核心的最終混合值B。在第二例子中,假設(shè)B小于原生性核心的最大可自我實(shí)行的操作狀態(tài)OMAX(方塊 2340)。假設(shè)沒有影響原生性核心的控制的外部資源的較高的干涉操作狀態(tài)在實(shí)施中,而后在方塊2340中,原生性核心已完全實(shí)行B。但是如果較高的干涉的操作狀態(tài)生效,而后原生性核心無法單方面地撤銷干涉操作狀態(tài)。在這種情況,方塊2346表示原生性核心對(duì)其主控核心的一懇求,要求其撤銷一既存的干涉操作狀態(tài)到達(dá)不再干涉B的完整實(shí)現(xiàn)的一層次 (亦即,原生性核心最大可利用的域-特定狀態(tài)MD)。將明白到,依據(jù)圖23所提出的邏輯, 主控核心將遵從那個(gè)懇求,藉以實(shí)行不大于且將可能小于原生性核心的MD的狀態(tài)。應(yīng)注意至IJ,方塊2346可能或者懇求主控只實(shí)行B。但如果B < MD,則這可能使主控核心實(shí)行一種比為原生性核心完全實(shí)行B所需要的更清醒的狀態(tài)。因此,使用等于原生性核心的最終混合值B與原生性核心的最大可利用的域-特定狀態(tài)MD的最大值的一探測(cè)值是較佳的。因此,將明白sync_state 2302支持一種對(duì)于實(shí)現(xiàn)休眠狀態(tài)及喚起狀態(tài)兩者的極簡(jiǎn)方法。
現(xiàn)在移到方塊2348, sync_state邏輯2300將一數(shù)值傳回至呼叫或?qū)嵤┑扔诤诵牡淖罱K混合值B與核心的最大可利用的域-特定狀態(tài)MD的最大值的過程。如以方塊2346 作說明,應(yīng)注意到方塊2348可能或者剛好傳回B的數(shù)值。但如果B < MD,則這可能使一實(shí)施的主控核心(方塊2318)實(shí)行一種比本身所需要更清醒的狀態(tài)。因此,傳回核心的最終混合值B與核心的最大可利用的域-特定狀態(tài)MD的最大值是較佳的。再者,將明白依此方式,sync_state 2302支持一種對(duì)于實(shí)現(xiàn)休眠狀態(tài)與喚起狀態(tài)兩者的極簡(jiǎn)方法。
在另一實(shí)施例中,一個(gè)或多個(gè)額外決定方塊介設(shè)于方塊2344與2346之間,更進(jìn)一步調(diào)整一從屬sync_state常式的方塊2346的實(shí)施。舉例而言,在一個(gè)適合條件之下,如果 B > 0MAX,則流程將繼續(xù)至方塊2346。在另一個(gè)適合條件下,如果只有于一較高域?qū)哟慰沙蜂N的一干涉操作狀態(tài)目前正被應(yīng)用至原生性核心,則流程將繼續(xù)至方塊2346。如果所應(yīng)用的這兩個(gè)替代條件都不是,則流程將繼續(xù)至方塊2346。依此方式,synC_state 2302將支持一種對(duì)于實(shí)現(xiàn)喚起狀態(tài)甚至更極簡(jiǎn)的方法。然而,應(yīng)該觀察到這個(gè)替代實(shí)施例假設(shè)原生性核心可檢測(cè)一干涉操作狀態(tài)是否正被應(yīng)用。在原生性核心不一定能檢測(cè)一干涉操作狀態(tài)的存在的一實(shí)施例中,則圖23所描繪出的較少條件的實(shí)施方法是較佳的。
亦將明白在圖23中,當(dāng)為了實(shí)行一目標(biāo)的較深操作狀態(tài)(或其的較淺型式)的目的所需要時(shí),復(fù)合操作狀態(tài)發(fā)現(xiàn)過程藉由使用一種依最低至最高(或最靠近至最遠(yuǎn)離的同屬性群組)順序漸進(jìn)地橫越核心的走訪順序,而只橫越共用受目標(biāo)的操作狀態(tài)影響的資源的最高層次域(其包含其巢狀域)的核心(也不需要所有的核心)。另外,當(dāng)為實(shí)行一較淺的操作狀態(tài)的目的所需要時(shí),復(fù)合操作狀態(tài)發(fā)現(xiàn)過程只橫越經(jīng)由相繼較高的主控。此外,在上述直接說明的替代實(shí)施例中,這種橫越延伸只要是撤銷一目前實(shí)行的干涉操作狀態(tài)所需要的。
因此,在將一較早的示范圖例應(yīng)用至圖23,2或3的目標(biāo)受限制的電源狀態(tài)將只觸發(fā)在適合晶粒中的核心的一復(fù)合電源狀態(tài)發(fā)現(xiàn)過程。4或5的目標(biāo)受限制的電源狀態(tài)將只觸發(fā)在適合封裝中的核心的一復(fù)合電源狀態(tài)發(fā)現(xiàn)過程。
圖23可更進(jìn)一步以一種域-特定(除了核心-特定以外)方式敘述其特征。繼續(xù)上述的例示圖例,一晶粒將具有2與3的適合的域-特定電源狀態(tài)。舉例而言,如果晶粒主控核心發(fā)現(xiàn)只有I的供其晶粒用的復(fù)合電源狀態(tài)作為一種原生或外部開始的復(fù)合電源狀態(tài)發(fā)現(xiàn)過程的一部分,則因?yàn)镮并非是適合的域-特定電源狀態(tài),所以晶粒主控核心將不會(huì)實(shí)施它。如果晶粒主控核心發(fā)現(xiàn)5的供其晶粒用的復(fù)合電源狀態(tài)(或晶粒的復(fù)合電源狀態(tài)與一節(jié)點(diǎn)地連接的核心的探測(cè)電源狀態(tài)數(shù)值的混合等于5)作為一替代例子,以及如果晶粒主控核心并不具有任何較高的主控憑據(jù),則(假設(shè)其沒有這樣做)晶粒主控核心將實(shí)行或允許3的電源狀態(tài)的實(shí)現(xiàn),其為3 (晶粒的最大適合的域-特定電源狀態(tài))與5(晶粒的復(fù)合電源狀態(tài)或其的一混合)的最小值。再者,可注意到于此例子中,晶粒主控核心將繼續(xù)至為其晶粒實(shí)施或允許3的電源狀態(tài)的實(shí)現(xiàn),而不用管任何適合于一較高域(它為較高域的一部分)的實(shí)際或局部的復(fù)合電源狀態(tài)(例如,2或4或5)。
進(jìn)行上述的圖例,于此一晶粒主控發(fā)現(xiàn)5的一晶粒復(fù)合電源狀態(tài)或其的混合,與其伙伴相關(guān)聯(lián)的晶粒主控將著手一復(fù)合電源狀態(tài)發(fā)現(xiàn)過程,如果有的話,其將需要包含獨(dú)立于供其晶粒用的3的電源狀態(tài)的晶粒主控的中間實(shí)現(xiàn)以外的橫越下一個(gè)較高層次域(例如,封裝或整個(gè)處理器)。這是因?yàn)?大于3,晶粒的最大適合的域-特定電源狀態(tài),所以一較高受限制的電源狀態(tài)的實(shí)現(xiàn)將需要取決于適合于一個(gè)或多個(gè)較高域的電源狀態(tài)。此外, 下一個(gè)較高層次域特有的一較高受限制的電源狀態(tài)的實(shí)現(xiàn)可能只藉由那個(gè)域的主控而被致能和/或被實(shí)現(xiàn)(例如,一多封裝處理器的封裝主控或單一封裝處理器的BSP)。值得提醒的是,晶粒主控可能亦同時(shí)保持相關(guān)的封裝主控或BSP憑據(jù)。
因此,在上述例子中,在發(fā)現(xiàn)過程中于某些點(diǎn),晶粒主控核心將與一伙伴交換其晶粒復(fù)合電源狀態(tài)(或其的混合)。在某些條件之下,這個(gè)發(fā)現(xiàn)過程將供較高域(例如封裝) 用的一至少局部的復(fù)合電源狀態(tài)(其小于2)傳回至晶粒主控核心。另外,這將不會(huì)導(dǎo)致3 的電源狀態(tài)的撤銷,其為晶粒主控核心已為晶粒而實(shí)施。在其他條件之下,此種發(fā)現(xiàn)過程將產(chǎn)生一復(fù)合電源狀態(tài)(例如4或更多),其對(duì)應(yīng)至4或更多的受限制的電源狀態(tài)。如果是, 則那個(gè)域的主控(例如封裝主控)將實(shí)施一較高受限制的電源狀態(tài),其為較高層次域的復(fù)合電源狀態(tài)(例如4或5)與適合于較高層次域的最大的受限制的電源狀態(tài)(于此是5)的最小值。如果適合的發(fā)現(xiàn)過程正測(cè)試一甚至更高的受限制的電源狀態(tài),則此種附有條件的域-特定電源-狀態(tài)實(shí)現(xiàn)過程將延伸至又更高的域?qū)哟?,如果有的話?br> 如由上述內(nèi)容可看見的,圖23顯示一種可操作以合并域-從屬受限制的電源狀態(tài)及相關(guān)閾值的階層式域-特定受限制的電源狀態(tài)管理協(xié)調(diào)系統(tǒng)。據(jù)此,其適合于對(duì)于個(gè)別核心及群組的核心的電源狀態(tài)管理的微調(diào)域-特定分散方法。
將注意到圖23顯示以一種分散式分配方式提供轉(zhuǎn)變成更清醒的狀態(tài)的電源狀態(tài)協(xié)調(diào)邏輯。然而,將明白某些電源狀態(tài)實(shí)施例包含數(shù)個(gè)電源狀態(tài),在缺乏藉由芯片組或其他核心的先前電源-狀態(tài)-撤銷動(dòng)作之下,一特定核心可能不能從此等電源狀態(tài)喚起。舉例而言,在上述C-狀態(tài)結(jié)構(gòu)中,2或更高的C-狀態(tài)可能與移除總線時(shí)鐘相關(guān),其可能使一既定核心不能響應(yīng)通過系統(tǒng)總線被傳送的一指令,用以轉(zhuǎn)變成為一更清醒的狀態(tài)。電源或時(shí)鐘源可能選擇性地從一核心或一晶粒被移除的其他微處理器配置可以被考慮。圖5說明覺醒邏輯的一實(shí)施例,其藉由喚醒所有核心以因應(yīng)一 STPCLK解除設(shè)立來適應(yīng)于這些情況。然而, 覺醒邏輯的更多選擇性實(shí)施例可被考慮。在一個(gè)例子中,考慮由系統(tǒng)軟件(例如操作系統(tǒng)或BIOS)所實(shí)施的覺醒邏輯,其中系統(tǒng)軟件將首先發(fā)布一喚起或覺醒需求給一特定核心, 且如果在一段期望時(shí)間間隔之內(nèi),并未接收一響應(yīng),或核心并不遵從,則邏輯依需要遞回地發(fā)布喚起或覺醒需求給相繼較高的主控及潛在地芯片組,直到接收到一期望的響應(yīng)或檢測(cè)到適當(dāng)?shù)捻槒臑橹?。覺醒邏輯所實(shí)行的這種軟件系統(tǒng)將以一種優(yōu)先分散方式(于此每個(gè)目標(biāo)的核心藉由使用其本身的微碼開始轉(zhuǎn)變)而使用于與圖23的電源狀態(tài)協(xié)調(diào)邏輯協(xié)調(diào)以轉(zhuǎn)變成更清醒的狀態(tài),到達(dá)核心是可操作以這樣做的程度,以及當(dāng)抑制核心這樣做時(shí),以一種中心協(xié)調(diào)的方式完成。覺醒邏輯的本實(shí)施例僅是用以選擇性地喚起無法喚起它們自己的核心的數(shù)個(gè)可能的實(shí)施例的說明與例示的實(shí)施例。
VI.延伸實(shí)施例及應(yīng)用
雖然已說明具有一特定數(shù)目的核心106的實(shí)施例,但可考慮具有其他數(shù)目的核心 106的其他實(shí)施例。舉例而言,雖然圖10、13以及17所說明的微碼208是被設(shè)計(jì)用以執(zhí)行在八個(gè)核心之間的分配式電源管理,但微碼208藉由包含檢查核心106的存在或缺乏而在一種具有更少核心106的系統(tǒng)中適當(dāng)?shù)匕l(fā)生效用,例如相關(guān)于申請(qǐng)案序號(hào)61/426,470的段落所說明的,前述申請(qǐng)案的申請(qǐng)日為2010年12月22日,名稱為"動(dòng)態(tài)多核心微處理器配置(Dynamic MuLTi-Core Microprocessor Configuration)",及其同時(shí)申請(qǐng)的非臨時(shí)申請(qǐng)案(CNTR. 2533),其說明書附屬于此。亦即,如果一核心106是缺席的,則微碼208并未與缺席核心106交換C-狀態(tài)信息,并有效地假設(shè)缺席核心的C-狀態(tài)將是最高可能的C-狀態(tài) (例如5的C-狀態(tài))。因此,為了制造能力的效率的目的,核心106可能被制造成具有微碼 208,其被設(shè)計(jì)用以執(zhí)行在八個(gè)核心之間的分配式電源管理,縱使核心106可能包含在具有更少核心106的系統(tǒng)中。再者,考慮到此系統(tǒng)包含八個(gè)以上的核心,且于此所說明的微碼被延伸以利用一種類似于已經(jīng)說明的那些的方式與附加核心106溝通的實(shí)施例。關(guān)于實(shí)例, 圖9及11的系統(tǒng)可能被擴(kuò)增以包含具有八個(gè)伙伴的16個(gè)核心106,而圖12、14及15的系統(tǒng)可能被擴(kuò)增以包含具有四個(gè)好友的16個(gè)核心106,類似于圖9及11的系統(tǒng)同步化在四個(gè)伙伴之間的C-狀態(tài)的方法,且圖16的系統(tǒng)可能藉由具有16個(gè)朋友(每個(gè)晶粒八個(gè)核心乘以兩個(gè)晶粒,或每個(gè)晶粒四個(gè)核心乘以四個(gè)晶粒)而被擴(kuò)增以包含16個(gè)核心106,藉以綜合圖4、10、13以及17的方法的相關(guān)特征。
亦可考慮獨(dú)立實(shí)現(xiàn)不同等級(jí)的電源狀態(tài)(例如,C-狀態(tài)、P-狀態(tài)、需求的VID、需求的頻率比率,等)的協(xié)調(diào)的實(shí)施例。舉例而言,每個(gè)核心可為每個(gè)等級(jí)的電源狀態(tài)(例如, 各別適合的VID、頻率比率、C-狀態(tài)以及P-狀態(tài))而具有不同的適合電源狀態(tài),具有應(yīng)用至此的不同的域-特定限制,以及具有用以計(jì)算混合狀態(tài)并發(fā)現(xiàn)復(fù)合狀態(tài)(例如,C-狀態(tài)的最小值對(duì)需求的VID的最大值)的不同的極值。不同的階層式協(xié)調(diào)系統(tǒng)(例如,不同的域深度、不同的域主顧(domain constituencies)、不同標(biāo)示的域主控和/或不同的同屬性群組協(xié)調(diào)模型)可能為不同等級(jí)的電源狀態(tài)而建立。此外,某些電源狀態(tài)可能只需要頂多與一域(例如晶粒)上的其他核心協(xié)調(diào),此域只包含微處理器上的所有核心的一子集。對(duì)于這種電源狀態(tài),可考慮只有節(jié)點(diǎn)地連結(jié)那個(gè)域、協(xié)調(diào)在那個(gè)域之內(nèi)的核心、以及發(fā)現(xiàn)適合于那個(gè)域或在那個(gè)域之內(nèi)的復(fù)合電源狀態(tài)的階層式協(xié)調(diào)系統(tǒng)。
一般而言,已顯示所有的操作狀態(tài)是依一種漸進(jìn)地上升或下降基礎(chǔ)而可嚴(yán)格且線性地訂定的實(shí)施例。但是,可考慮操作狀態(tài)被排成層列且沿著每個(gè)層(tier)以上升或下降方式可訂定的其他實(shí)施例(包含數(shù)層可獨(dú)立于其他層訂定的實(shí)施例)。舉例而言,一預(yù)定組的電源狀態(tài)可能以可分離層A. B,A. B. C,等的復(fù)合形式敘述其特征,于此每一層A、B、C等關(guān)于一不同的特征或特征的等級(jí)。舉例而言,一電源狀態(tài)可能以C. P或P. C的復(fù)合形式敘述其特征,于此P表示一種ACPI P-狀態(tài),而C表示一種ACPI C-狀態(tài)。再者,受限制的電源狀態(tài)的等級(jí)可能由混合界定的電源狀態(tài)的特定組成(例如A或B或C)的數(shù)值所界定,以及受限制的電源狀態(tài)的另一等級(jí)可能由混合界定的電源狀態(tài)的另一組成的數(shù)值所界定。此外,在受限制的電源狀態(tài)的任何既定層之內(nèi),于此一層表示混合界定的電源狀態(tài)的其中一個(gè)組成的數(shù)值(例如C.P),除施加至此層的限制以外,對(duì)一既定核心而言,另一種組成的數(shù)值(例如C.P中的P)可能不受限制,或受到不同等級(jí)的限制。舉例而言,一個(gè)具有C. P的目標(biāo)的電源狀態(tài)的核心可能受到相關(guān)于其目標(biāo)的電源狀態(tài)的C及P部分的實(shí)現(xiàn)的獨(dú)立限制及協(xié)調(diào)需求,于此P表不其P-狀態(tài),而C表不其需求的C-狀態(tài)。在復(fù)合電源狀態(tài)實(shí)施例中,任何兩個(gè)電源狀態(tài)的一"極值"對(duì)計(jì)算極值的一既定核心而言,可能表示復(fù)合電源狀態(tài)的組成部分的極值的一復(fù)合,或復(fù)合電源狀態(tài)的少于所有組成部分的極值的一復(fù)合,而對(duì)其他組成部分而言,以別的方法選擇的或確定的數(shù)值。
另外,考慮在一系統(tǒng)中的多重核心106執(zhí)行分配式分散式電源管理以明確地執(zhí)行電源信貸(power credit)功能性的實(shí)施例,如說明于美國(guó)申請(qǐng)案13/157,436 (CNTR. 2517) 中,申請(qǐng)日為2011年6月10日,其為所有目的全部藉此并入作參考,但是使用核心間通訊配線112、晶粒間通訊配線118以及封裝間通訊配線1133,而非使用如CNTR. 2517所說明的一共用的存儲(chǔ)器區(qū)域。這種實(shí)施例的優(yōu)點(diǎn)為其對(duì)于系統(tǒng)韌體(例如BIOS)及系統(tǒng)軟件是透明的,且并不需要信賴系統(tǒng)韌體或軟件以提供一共用的存儲(chǔ)器區(qū)域,因?yàn)槲⑻幚砥髦圃焐炭赡芪幢鼐哂锌刂葡到y(tǒng)韌體或軟件的發(fā)布的能力,所以其是受歡迎的。
另外,考慮除了一探測(cè)值以外遞送其他值的同步邏輯的實(shí)施例。于一實(shí)施例中,相關(guān)于任何其他同時(shí)操作發(fā)現(xiàn)過程,一同步常式遞送區(qū)別地確認(rèn)發(fā)現(xiàn)過程的一數(shù)值(其為發(fā)現(xiàn)過程的一部分)。在另一實(shí)施例中,同步常式遞送一數(shù)值,藉由此數(shù)值可能識(shí)別同步或尚未同步的核心。舉例而言,一種八核心實(shí)施例可能遞送一 8位值,于此每個(gè)位代表八核心處理器的一特定核心,且每個(gè)位表示核心是否已被同步成為瞬間發(fā)現(xiàn)過程的一部分。同步常式亦可能遞送確認(rèn)開始瞬間發(fā)現(xiàn)過程的核心的一數(shù)值。
亦考慮促進(jìn)執(zhí)行核心的有規(guī)則的橫越的同步化發(fā)現(xiàn)過程的額外實(shí)施例。在一個(gè)例子中,每個(gè)核心儲(chǔ)存確認(rèn)成員的位遮蔽的同屬性群組(它為其的一部分)。舉例而言,在一種利用三個(gè)層次深的階層式協(xié)調(diào)構(gòu)造的八核心實(shí)施例中,每個(gè)核心儲(chǔ)存三個(gè)8位"同屬性"遮蔽、一"最接近"同屬性遮蔽、一第二層同屬性遮蔽以及一頂端層同屬性遮蔽,于此每個(gè)遮蔽的位值確認(rèn)屬于以遮蔽表示的同屬性群組中的核心的家族,如果有的話。在另一例子中,每個(gè)核心儲(chǔ)存一地圖、一G6de I號(hào)碼或其的組合,由其可正確地及唯一地決定核心的節(jié)點(diǎn)階層,包含確認(rèn)每個(gè)域主控。在另一種例子中,此核心儲(chǔ)存確認(rèn)共用資源(例如,電壓源、時(shí)鐘源以及快取),以及它們所屬且共用的特定核心或?qū)?yīng)的域的信息。
另外,雖然此說明書的焦點(diǎn)主要放在電源狀態(tài)管理,但將明白上述階層式協(xié)調(diào)系統(tǒng)的各種實(shí)施例可能被應(yīng)用以協(xié)調(diào)其他型式的操作與限制活動(dòng),而非只是電源狀態(tài)或電源相關(guān)的狀態(tài)信息。舉例而言,在某些實(shí)施例中,上述的各種階層式協(xié)調(diào)系統(tǒng)是利用與復(fù)制在每個(gè)核心上的分散邏輯協(xié)調(diào),來用于動(dòng)態(tài)發(fā)現(xiàn)譬如在CNTR. 2533中的一多核心微處理器的配置,例如如上所述。
此外,應(yīng)注意到除非有特別聲明,否則本發(fā)明并不需要使用上述任何一個(gè)階層式協(xié)調(diào)系統(tǒng)以便執(zhí)行預(yù)定限制活動(dòng)。的確,除非另有特別規(guī)定至某種程度,否則本發(fā)明適合于在核心之間的純粹對(duì)等協(xié)調(diào)系統(tǒng)。然而,如本說明書可明顯看出,一種階層式協(xié)調(diào)系統(tǒng)的使用尤其在依賴旁帶通訊(于此,微處理器的旁帶通訊線的構(gòu)造并不允許一完全相等的對(duì)等協(xié)調(diào)系統(tǒng))時(shí),可提供數(shù)個(gè)優(yōu)點(diǎn)。
如可能從上文觀察到,相較于例如上述包含集中化非核心硬件協(xié)調(diào)邏輯(HCL)的 Naveh的解決方法,將電源管理功能同等分配在于此所說明的核心106之間的分散實(shí)施例, 較佳是不需要額外的非核心邏輯。雖然非核心邏輯可被包含在一晶粒104中,但于所說明的實(shí)施例中,所需要的為實(shí)施分散分配式電源管理機(jī)制是硬件及微碼與多核心-每晶粒實(shí)施例中的核心間通訊配線112、多晶粒實(shí)施例中的晶粒間通訊配線118以及多封裝實(shí)施例中的封裝間通訊配線1133在一起地、完全地實(shí)體上及邏輯地在它們本身的核心106之內(nèi)。因?yàn)橛诖怂f明的執(zhí)行分配在多重處理核心106之間的電源管理的分散實(shí)施例的結(jié)果,核心106可能位于各別晶?;蛏踔粮鲃e封裝上。這潛在地降低晶粒尺寸并改善良率,提供更多配置彈性,以及提供一高層次的系統(tǒng)中的核心數(shù)的可調(diào)(尺寸的)能力。
在其他實(shí)施例中,核心106在各種實(shí)施樣態(tài)方面與圖2的代表實(shí)施例不同,并提供一種取代或附加的高度平行的構(gòu)造,例如適合于一圖形處理單元(GPU)的構(gòu)造,如于此所說明的供活動(dòng)(例如電源狀態(tài)管理、核心配置發(fā)現(xiàn)以及核心重新規(guī)劃)用的協(xié)調(diào)系統(tǒng)被應(yīng)用至圖形處理單元。
雖然于此已說明本發(fā)明的各種實(shí)施例,但應(yīng)理解到已經(jīng)由舉例而非限制地提出它們。本領(lǐng)域的技術(shù)人員將明白在不背離本發(fā)明的范疇之下,可作出各種在形式及細(xì)節(jié)方面的改變。舉例而言,軟件可允許于此所說明的設(shè)備及方法的譬如功能、制造、模擬試驗(yàn)、模擬、說明和/或測(cè)試。這可經(jīng)由使用一般程序設(shè)計(jì)語言(例如C、C++),包含Verilog HDL、 VHDL等等的硬件記述語言(HDL),或其他可利用的程序來達(dá)成。這種軟件可被配置在任何已知的計(jì)算機(jī)可用媒體中,例如半導(dǎo)體、磁盤或光盤(例如,⑶-ROM、DVD-ROM等)。于此所說明的設(shè)備及方法的實(shí)施例可能包含在例如一微處理器核心的半導(dǎo)體知識(shí)產(chǎn)權(quán)核心(例如,具體化在HDL中),并改變成在集成電路的產(chǎn)品中的硬件。此外,于此所說明的設(shè)備及方法可能具體化為硬件及軟件的組合。因此,本發(fā)明不應(yīng)被任何一個(gè)于此所說明的例示實(shí)施例所限制,但應(yīng)該只依據(jù)以下申請(qǐng)專利范圍及它們的等效設(shè)計(jì)而被界定。具體而言,本發(fā)明可能在可能使用于通用計(jì)算機(jī)的微處理器裝置之內(nèi)被實(shí)現(xiàn)。最后,本領(lǐng)域的技術(shù)人員應(yīng)明白他們可輕易地使用所揭示的概念及具體的實(shí)施例作為用以設(shè)計(jì)或修改其他構(gòu)造的基礎(chǔ), 用以在不背離由本發(fā)明的權(quán)利要求所界定的本發(fā)明的范疇之下完成本發(fā)明的相同目的。
權(quán)利要求
1 一種多核心處理器,包含 多個(gè)致能的實(shí)體處理核心;一可配置的資源,由兩個(gè)以上的所述核心共用,其中該共用資源的組態(tài)影響共享該資源的該核心利用其能夠運(yùn)作的電源、速度或效率;對(duì)每個(gè)核心而言,內(nèi)部核心電源狀態(tài)管理邏輯設(shè)定該核心的組態(tài),用以參與在該核心之間被實(shí)現(xiàn)的一種分散式核心間電源狀態(tài)發(fā)現(xiàn)過程,而無須集中式非核心邏輯的協(xié)助; 其中,該內(nèi)部核心電源管理邏輯被復(fù)制于每個(gè)核心中;其中,如果該核心為了設(shè)定該共用資源的組態(tài)的目的而被指定為一主控核心,且該復(fù)合目標(biāo)電源狀態(tài)經(jīng)由該分散式核心間電源狀態(tài)發(fā)現(xiàn)過程而被發(fā)現(xiàn),則該內(nèi)部核心電源管理邏輯設(shè)定該核心的組態(tài)以唆使設(shè)定該共用資源的組態(tài)的一復(fù)合目標(biāo)電源狀態(tài)的實(shí)現(xiàn);其中,對(duì)該共用資源而言,該復(fù)合目標(biāo)電源狀態(tài)為一種最節(jié)能型的電源狀態(tài),其將不會(huì)干涉共享該資源的每個(gè)核心的任何對(duì)應(yīng)的目標(biāo)電源狀態(tài)。
2.如權(quán)利要求1所述的多核心處理器,還包含多條旁帶通訊配線,其不同于連接這些核心至一芯片組的一系統(tǒng)總線,并在這些核心之間,且其中,多個(gè)分散式核心間電源狀態(tài)發(fā)現(xiàn)過程是通過這些旁帶通訊配線而攜帶有在這些核心之間被交換的多個(gè)電源狀態(tài)值。
3 如權(quán)利要求1所述的多核心處理器,其中 這些目標(biāo)電源狀態(tài)為C-狀態(tài);該共用資源為由所有核心所共用并連接至一芯片組的一系統(tǒng)總線;以及該主控核心獲得與該芯片組協(xié)調(diào)的獨(dú)占權(quán),以實(shí)行影響該總線的操作的一 C-狀態(tài)。
4.如權(quán)利要求1所述的多核心處理器,其中該共用資源為由這些核心的至少某些所共用的一電壓源; 一目標(biāo)電源狀態(tài)是以一需求的電壓改變需求信號(hào)表示;以及該主控核心獨(dú)占多個(gè)電壓改變需求信號(hào),其被送至該電壓源,其要求被提供至共享該電壓源的這些核心的一電壓電平的一改變。
5.如權(quán)利要求1所述的多核心處理器,其中該共用資源為由這些核心的至少某些所共用的一時(shí)鐘源; 一目標(biāo)電源狀態(tài)是以一需求的時(shí)鐘比率信號(hào)表示;以及該主控核心獨(dú)占多個(gè)時(shí)鐘比率需求信號(hào),其被送至該時(shí)鐘源,其將導(dǎo)致藉由該時(shí)鐘源提供給共享該時(shí)鐘源的這些核心的時(shí)鐘頻率的一改變。
6.如權(quán)利要求1所述的多核心處理器,其中共享該資源的這些核心的只有單一一個(gè)為了唆使該復(fù)合目標(biāo)電源狀態(tài)的實(shí)現(xiàn)的目的而被指定為該主控核心;以及這些核心包含可程序化邏輯,其經(jīng)由系統(tǒng)軟件允許其被設(shè)定組態(tài),用以為了設(shè)定該共用資源的組態(tài)的目的增加或移除一主控指定。
7.如權(quán)利要求6所述的多核心處理器,其中該內(nèi)部核心電源管理邏輯被設(shè)計(jì)成用以評(píng)估該可程序化邏輯,用以決定其核心是否為了唆使該復(fù)合目標(biāo)電源狀態(tài)的實(shí)現(xiàn)的目的而被標(biāo)示為主控。
8.如權(quán)利要求1所述的多核心處理器,其中一目標(biāo)電源狀態(tài)為多個(gè)預(yù)定電源狀態(tài)的其中一個(gè),該電源狀態(tài)管理邏輯為其被設(shè)計(jì)成用以唆使一實(shí)現(xiàn),其中該多個(gè)預(yù)定電源狀態(tài)包含于該核心的內(nèi)部影響一未共用資源的至少一不受限制的電源狀態(tài),且每個(gè)核心的該內(nèi)部核心電源管理邏輯被設(shè)計(jì)成用以在沒有核心間協(xié)調(diào)的情況下實(shí)施一原生性核心目標(biāo)電源狀態(tài),如果其為一不受限制的電源狀態(tài)的話。
9.如權(quán)利要求1所述的多核心處理器,其中該電源狀態(tài)管理邏輯設(shè)定每個(gè)核心的組態(tài)以實(shí)施該分散式核心間電源狀態(tài)發(fā)現(xiàn)過程,以因應(yīng)接收轉(zhuǎn)變成為將設(shè)定該共用資源的組態(tài)的一目標(biāo)電源狀態(tài)的一需求。
10.如權(quán)利要求1所述的多核心處理器,其中該電源狀態(tài)管理邏輯設(shè)定每個(gè)核心的組態(tài)以參與一種外部實(shí)施的分散式核心間電源狀態(tài)發(fā)現(xiàn)過程。
11.如權(quán)利要求1所述的多核心處理器,其中一分散式核心間電源狀態(tài)發(fā)現(xiàn)過程包含相同的核心間電源狀態(tài)發(fā)現(xiàn)微碼的多個(gè)同步化實(shí)例,其參與交換多個(gè)電源狀態(tài)的過程而在各該核心被執(zhí)行。
12.如權(quán)利要求11所述的多核心處理器,其中一既定核心與生俱來的核心間電源狀態(tài)發(fā)現(xiàn)微碼的每個(gè)實(shí)例與另一個(gè)核心交換一電源狀態(tài);且其中該原生性實(shí)例按照下述值的至少兩個(gè)計(jì)算一混合電源狀態(tài)該原生性核心目標(biāo)電源狀態(tài),如果有的話;由一實(shí)施過程所接收的一探測(cè)電源狀態(tài)數(shù)值;以及由該核心間電源狀態(tài)發(fā)現(xiàn)微碼的一從屬實(shí)施的實(shí)例傳回的一電源狀態(tài)值。
13.如權(quán)利要求11所述的多核心處理器,其中該分散式核心間電源狀態(tài)發(fā)現(xiàn)過程包含該核心間電源狀態(tài)發(fā)現(xiàn)微碼的多個(gè)實(shí)例,其在經(jīng)由一條互相連接核心的階層式路徑共享該共用資源的其他核心上,遞歸地實(shí)施該核心間電源狀態(tài)發(fā)現(xiàn)微碼的從屬實(shí)例且與其同步。
14.一種供一多核心處理器用的管理電源狀態(tài)的分散方法,該多核心處理器具有多個(gè)致能的實(shí)體核心以及由這些核心的至少某些所共用的一資源,該方法包含一核心接收影響在本身及至少一其他核心之間所共用的一可配置的資源的一原生性核心目標(biāo)電源狀態(tài),其中該原生性核心目標(biāo)電源狀態(tài)定義將影響共享該資源的這些核心利用其能夠運(yùn)作的電源、速度或效率的該資源的一組態(tài);該核心參與一核心間電源狀態(tài)發(fā)現(xiàn)過程,其包含不通過任何集中式非核心邏輯而與共享該資源的至少一其他核心的電源狀態(tài)的一交換;以及如果該核心為了設(shè)定該共用資源的組態(tài)的目的而被指定為一主控核心,且該復(fù)合目標(biāo)電源狀態(tài)經(jīng)由該分散式核心間電源狀態(tài)發(fā)現(xiàn)過程而被發(fā)現(xiàn),則該核心為了設(shè)定該共用資源的組態(tài)的目的唆使一復(fù)合目標(biāo)電源狀態(tài)的實(shí)現(xiàn);其中,對(duì)該共用資源而言,該復(fù)合目標(biāo)電源狀態(tài)為一種最節(jié)能型的電源狀態(tài),其將不會(huì)干涉共享該資源的每個(gè)核心的任何對(duì)應(yīng)的目標(biāo)電源狀態(tài)。
15.如權(quán)利要求14所述的方法,還包含經(jīng)由在這些核心之間的多條旁帶通訊配線參與該核心間電源狀態(tài)發(fā)現(xiàn)過程,其中這些旁帶通訊配線是與將這些核心連接至一芯片組的一系統(tǒng)總線不同,且其中,在這些核心之間交換的多個(gè)電源狀態(tài)通過這些旁帶通訊配線而交換。
16.如權(quán)利要求14所述的方法,其中這些目標(biāo)電源狀態(tài)為C-狀態(tài);該共用資源為由所有核心所共用并連接至一芯片組的一系統(tǒng)總線;以及該主控核心獲得與該芯片組協(xié)調(diào)的獨(dú)占權(quán)以實(shí)行影響該總線的操作的一 C-狀態(tài)。CN 102541237 A
17.如權(quán)利要求14所述的方法,其中該共用資源為由這些核心的至少某些所共用的一電壓源; 一目標(biāo)電源狀態(tài)是以一需求的電壓改變需求信號(hào)表示;以及該主控核心獨(dú)占多個(gè)電壓改變需求信號(hào),其被送至該電壓源,其要求被提供至共享該電壓源的這些核心的一電壓電平的一改變。
18.如權(quán)利要求14所述的方法,其中該共用資源為由這些核心的至少某些所共用的一時(shí)鐘源; 一目標(biāo)電源狀態(tài)是以一需求的時(shí)鐘比率信號(hào)表示;以及該主控核心獨(dú)占多個(gè)時(shí)鐘比率需求信號(hào),其被送至該時(shí)鐘源,其將導(dǎo)致藉由該時(shí)鐘源提供給共享該時(shí)鐘源的這些核心的時(shí)鐘頻率的一改變。
19.如權(quán)利要求14所述的方法,還包含經(jīng)由參與由另一個(gè)核心所實(shí)施的一核心間電源狀態(tài)發(fā)現(xiàn)過程,該主控核心發(fā)現(xiàn)并唆使用以設(shè)定該共用資源的組態(tài)的一復(fù)合目標(biāo)電源狀態(tài)的實(shí)現(xiàn)。
20.在一多核心處理器的一實(shí)體核心的一計(jì)算機(jī)可讀取的儲(chǔ)存媒體中被編碼的微碼, 該微碼包含用以執(zhí)行下述碼接收設(shè)定由兩個(gè)以上的這些核心所共用的一可配置資源的組態(tài)的一需求,其中該共用資源的多個(gè)組態(tài)影響共享該資源的這些核心利用其能夠運(yùn)作的該電源、速度或效率;參與在這些核心之間被實(shí)現(xiàn)的一種分散式核心間電源狀態(tài)發(fā)現(xiàn)過程,而無須集中式非核心邏輯的協(xié)助;以及如果該核心為了設(shè)定該共用資源的組態(tài)的目的而被指定為一主控核心,且該復(fù)合目標(biāo)電源狀態(tài)經(jīng)由該分散式核心間電源狀態(tài)發(fā)現(xiàn)過程而被發(fā)現(xiàn),則設(shè)定該核心的組態(tài)以為了設(shè)定該共用資源的組態(tài)唆使一復(fù)合目標(biāo)電源狀態(tài)的實(shí)現(xiàn);其中,對(duì)于該共用資源而言,該復(fù)合目標(biāo)電源狀態(tài)為一種最節(jié)能型的電源狀態(tài),其將不會(huì)干涉共享該資源的每個(gè)核心的任何對(duì)應(yīng)的目標(biāo)電源狀態(tài)。
21.一種多核心處理器,包含 多個(gè)實(shí)體處理核心;以及核心間狀態(tài)發(fā)現(xiàn)微碼,在各所述核心中致能該核心,用以經(jīng)由不通過任何集中式非核心邏輯、而從其他核心接收或傳送至其他核心的信號(hào)來參與分散式核心間狀態(tài)發(fā)現(xiàn)過程。
22.如權(quán)利要求21所述的多核心處理器,其中該核心間狀態(tài)發(fā)現(xiàn)微碼,經(jīng)由獨(dú)立于將該多核心處理器連接至一芯片組的一系統(tǒng)總線的多條旁帶通訊配線來與其他核心交換信號(hào);以及該核心間狀態(tài)發(fā)現(xiàn)微碼,無任何集中式非核心邏輯的協(xié)助下判斷一可用的狀態(tài)值,其是一功能,至少是另一核心的一狀態(tài)。
23.如權(quán)利要求21所述的多核心處理器,其中該核心間狀態(tài)發(fā)現(xiàn)微碼包括同步邏輯,提供至每個(gè)核心,其具有的同步實(shí)例為了一核心間狀態(tài)發(fā)現(xiàn)過程的多個(gè)目的是可操作的以在多核心上實(shí)施;以及其中每個(gè)原生性實(shí)例是可操作的以在其他核心上實(shí)施該同步邏輯的多個(gè)新實(shí)例,及響應(yīng)實(shí)施于該原生性實(shí)例的另一核心上該同步邏輯的任何先前實(shí)例。
24.如權(quán)利要求23所述的多核心處理器,其中每個(gè)核心具有一目標(biāo)操作狀態(tài);該處理器包含一領(lǐng)域,其包括該微處理器的核心的至少其中的二; 該處理器提供一資源至該領(lǐng)域,其資源是由該領(lǐng)域的所述核心所共用; 該同步邏輯是組態(tài)成用以發(fā)現(xiàn)是否該領(lǐng)域是準(zhǔn)備于實(shí)現(xiàn)一受限電源節(jié)能操作狀態(tài)供該資源將限制共享該資源的這些核心利用其能夠運(yùn)作的電源、速度或效率;以及其中該領(lǐng)域是準(zhǔn)備于實(shí)現(xiàn)該受限電源節(jié)能操作狀態(tài)若且為若在該領(lǐng)域共享該資源的每個(gè)致能核心具有至少限制性的作為該受限操作狀態(tài)的一目標(biāo)操作狀態(tài)。
25.如權(quán)利要求M所述的多核心處理器,其中 該共享資源連接至一芯片組的一系統(tǒng)總線;該領(lǐng)域包含該多核心處理器的全部的致能核心;以及該受限操作狀態(tài)是一 C-狀態(tài),其是禁能該系統(tǒng)總線的一總線時(shí)鐘。
26.如權(quán)利要求M所述的多核心處理器,其中該共享資源是在該微處理器的一多核心晶粒上的一鎖相回路;該領(lǐng)域包含全部的致能核心,其時(shí)鐘信號(hào)由該鎖相回路供應(yīng);以及該受限操作狀態(tài)是可共享該鎖相回路的所述核心所使用的一低于最大效能頻率比。
27.如權(quán)利要求M所述的多核心處理器,其中 該共享資源是一電壓資源;該領(lǐng)域包含全部并限于共享該電壓資源的該微處理器的致能核心;以及該受限操作狀態(tài)是可共享該電壓資源的所述核心所使用的一低于最大效能電壓電平。
28.如權(quán)利要求M所述的多核心處理器,其中同步邏輯的每個(gè)實(shí)例組態(tài)為,除非由一終止條件早先地終止,用以遞歸地在其他核心上實(shí)施該同步邏輯的多個(gè)實(shí)例,直到該同步邏輯的同步實(shí)例已經(jīng)實(shí)施在該處理器的一可用的領(lǐng)域的全部核心;以及其中該同步邏輯組態(tài)為隨一終止條件用以停止在其他尚未同步核心上同步邏輯的實(shí)例的實(shí)施,如果其發(fā)現(xiàn)一核心具有的一目標(biāo)操作狀態(tài)是較低限制性于該受限電源節(jié)能操作狀態(tài);其中該同步邏輯組態(tài)為協(xié)調(diào)一最低限度足夠數(shù)目的其他核心用以發(fā)現(xiàn)是否該可用的領(lǐng)域是準(zhǔn)備于實(shí)現(xiàn)一受限電源節(jié)能操作狀態(tài)。
29.如權(quán)利要求23所述的多核心處理器,其中 每個(gè)核心具有一目標(biāo)操作狀態(tài);該處理器包含一領(lǐng)域,其包括該微處理器的核心的至少其中的二; 該處理器提供一資源至該領(lǐng)域,其資源是由該領(lǐng)域的所述核心所共用; 該同步邏輯組態(tài)成用以發(fā)現(xiàn)是否該領(lǐng)域共享該資源的其中一個(gè)該致能核心具有一目標(biāo)操作狀態(tài)較低限制性于一目前實(shí)現(xiàn)電源節(jié)能操作狀態(tài);致能該核心,如果其授權(quán)以協(xié)調(diào)其資源,以撤銷對(duì)該資源的一電源節(jié)能操作狀態(tài),若該同步邏輯已經(jīng)發(fā)現(xiàn)該領(lǐng)域的一致能核心具有一目標(biāo)操作狀態(tài)較低限制性于一目前實(shí)現(xiàn)電源節(jié)能操作狀態(tài)。
30.如權(quán)利要求23所述的多核心處理器,其中該同步邏輯的每個(gè)實(shí)例組態(tài)成根據(jù)在一階層式方式組織核心間協(xié)調(diào)的一階層式協(xié)調(diào)系統(tǒng)用以在該多核心處理器的其他核心上實(shí)施該同步邏輯的從屬實(shí)例。
31.如權(quán)利要求23所述的多核心處理器,其中該階層式協(xié)調(diào)系統(tǒng)是根據(jù)在所述領(lǐng)域內(nèi)所述核心所共享的資源將所述核心聚集至所述領(lǐng)域,其中對(duì)每個(gè)領(lǐng)域而言,為了所述資源的一協(xié)調(diào)組態(tài)的目的,一個(gè)單一核心被指定為那個(gè)域的主控。
32.如權(quán)利要求23所述的多核心處理器,其中該階層式協(xié)調(diào)系統(tǒng)是將所述核心聚集至多個(gè)領(lǐng)域?qū)蛹?jí),至少包含 一最高地位的首要層級(jí)領(lǐng)域,具有全部的所述核心;以及二個(gè)或二個(gè)以上對(duì)等次一地位的第二層級(jí)領(lǐng)域,最緊接于該最高地位,其是該首要層級(jí)領(lǐng)域的成分并成巢于內(nèi),每個(gè)第二層級(jí)領(lǐng)域群組分別包括所述核心的獨(dú)占副群組; 對(duì)每個(gè)多核心領(lǐng)域?qū)蛹?jí),一個(gè)單一核心是被指定為該領(lǐng)域的一主控; 該最低層級(jí)多核心領(lǐng)域以外的每個(gè)多核心領(lǐng)域是定義一同屬性群組,其是由最緊隨以下地位的成分領(lǐng)域的主控核心所組成;每個(gè)最低層級(jí)多核心領(lǐng)域定義一同屬性群組,其是由其全部的核心所組成; 每個(gè)核心屬于至少一同屬性群組;以及該同步邏輯的每個(gè)原生性實(shí)例是受限于將該同步邏輯的新實(shí)例實(shí)施至非屬于一原生性核心同屬性群組的多個(gè)核心。
33.如權(quán)利要求23所述的多核心處理器,其中該多核心處理器的多個(gè)核心的其中一個(gè)指定為對(duì)該階層式協(xié)調(diào)系統(tǒng)的每個(gè)多核心領(lǐng)域的一主控。
34.如權(quán)利要求23所述的多核心處理器,其中每個(gè)核心組態(tài)為用以采用其分散式核心間狀態(tài)發(fā)現(xiàn)微碼來發(fā)現(xiàn)是否該多核心處理器的其他核心為禁能。
35.如權(quán)利要求23所述的多核心處理器,其中每個(gè)核心組態(tài)為用以采用其分散式核心間狀態(tài)發(fā)現(xiàn)微碼來發(fā)現(xiàn)該多核心處理器具有多少個(gè)致能核心。
36.如權(quán)利要求23所述的多核心處理器,其中每個(gè)核心組態(tài)為用以采用其分散式核心間狀態(tài)發(fā)現(xiàn)微碼來發(fā)現(xiàn)該多核心處理器的一階層式協(xié)調(diào)系統(tǒng)。
37.一種多核心處理器的發(fā)現(xiàn)狀態(tài)的分散式微碼實(shí)現(xiàn)方法,該多核心處理器包括多個(gè)實(shí)體處理核心,該方法包括至少二核心經(jīng)由不通過任何集中式非核心邏輯、而由核心交換的信號(hào)來參與一分散式核心間狀態(tài)發(fā)現(xiàn)過程。
38.如權(quán)利要求37所述的方法,其中該方法施行于發(fā)現(xiàn)下述狀態(tài)的至少其中之一 對(duì)該處理器的一復(fù)合電源狀態(tài);對(duì)該處理器的一領(lǐng)域的一復(fù)合電源狀態(tài),該領(lǐng)域包括多個(gè)核心的一群組,其根據(jù)多個(gè)組態(tài)的其中的一為了電源節(jié)能的目的而共享可操作地被組態(tài)的一可組態(tài)資源; 另一核心的一目標(biāo)電源狀態(tài);共享一可組態(tài)資源的多個(gè)核心的一群組任一者的一最低限制性目標(biāo)電源狀態(tài); 一最高限制性目標(biāo)電源狀態(tài),其是由不妨礙其他核心的對(duì)應(yīng)目標(biāo)操作狀態(tài)的一核心所實(shí)現(xiàn);一核心是否致能或禁能;該多核心處理器具有多少個(gè)核心為致能;共享資源及多個(gè)核心的領(lǐng)域的一識(shí)別,在其中各樣的可組態(tài)資源被共享;所述核心的一階層式協(xié)調(diào)系統(tǒng),用于經(jīng)營(yíng)共享資源;在多核心處理器內(nèi)多條旁帶通訊配線以協(xié)調(diào)核心的一利用率,其旁帶通訊配線是獨(dú)立于將該多核心處理器連接至一芯片組的一系統(tǒng)總線;以及所述核心的一階層式協(xié)調(diào)系統(tǒng),施行于旁帶通訊配線上的核心間通訊,旁帶通訊配線獨(dú)立于將該多核心處理器連接至一芯片組的一系統(tǒng)總線。
39.如權(quán)利要求38所述的方法,其中每個(gè)參與的核心使用旁帶通訊配線與另一參與的核心交換狀態(tài)相關(guān)信號(hào),旁帶通訊配線是獨(dú)立于將該多核心處理器連接至一芯片組的一系統(tǒng)總線。
40.如權(quán)利要求38所述的方法,還包括參與該分散式核心間狀態(tài)發(fā)現(xiàn)過程來發(fā)現(xiàn)另一核心的一目標(biāo)電源狀態(tài)。
41.如權(quán)利要求38所述的方法,還包括參與該分散式核心間狀態(tài)發(fā)現(xiàn)過程來發(fā)現(xiàn)核心的群組的一復(fù)合電源狀態(tài)。
42.如權(quán)利要求38所述的方法,還包括有關(guān)一限制其是該資源的組態(tài)將影響該電源、 速度、或效率隨共享資源能夠操作的一核心,參與該分散式核心間狀態(tài)發(fā)現(xiàn)過程來限制操作狀態(tài)的實(shí)現(xiàn)供組態(tài)一共享資源至一操作狀態(tài),其是不再限制于共享該資源的任何核心的該最低限制目標(biāo)操作狀態(tài)。
43.如權(quán)利要求38所述的方法,還包括每個(gè)核心接收一目標(biāo)操作狀態(tài);每個(gè)核心,回應(yīng)于接收該目標(biāo)操作狀態(tài),實(shí)施同步邏輯的一原生性實(shí)例,具體化于該核心的微碼,用以發(fā)現(xiàn)一可用的狀態(tài);其中該可用的狀態(tài)是不大于該核心所擁有的目標(biāo)操作狀態(tài)的一最高限制性操作狀態(tài), 其是由不妨礙其他核心的對(duì)應(yīng)目標(biāo)操作狀態(tài)的該核心所實(shí)現(xiàn);同步邏輯的該原生性實(shí)例在另一核心實(shí)施該同步邏輯讀至少一新的從屬實(shí)例,及遞送該原生性核心的目標(biāo)操作狀態(tài)至該其他核心;以及該從屬實(shí)例計(jì)算一混合操作狀態(tài)為至少是目標(biāo)操作狀態(tài)可用于自身及從其他原生性核心接收的該目標(biāo)操作狀態(tài)的一功能,及傳回該混合操作狀態(tài)至該原生性核心。
44.如權(quán)利要求43所述的方法,還包括同步邏輯的每個(gè)實(shí)例,除非由一終止條件早先地終止,遞歸地在其他仍未同步的核心上實(shí)施該同步邏輯的多個(gè)實(shí)例,直到該同步邏輯的同步實(shí)例已經(jīng)實(shí)施在該處理器的一可用的領(lǐng)域的全部核心。
45.如權(quán)利要求44所述的方法,還包括同步邏輯的每個(gè)實(shí)例條件性地防止同步邏輯的從屬實(shí)例更在其他尚未同步的核心上實(shí)施,如果其實(shí)例發(fā)現(xiàn)一核心具有的一目標(biāo)操作狀態(tài)是非較多限制性于該資源的最低受限操作狀態(tài);其中該同步邏輯組態(tài)為協(xié)調(diào)一最低限度足夠數(shù)目的其他核心用以發(fā)現(xiàn)是否一受限操作狀態(tài)能施行于該共享資源。
46.一種微碼常式被編碼在一多核心處理器的一實(shí)體處理核心的一計(jì)算機(jī)可讀取的儲(chǔ)存媒體中,該微碼常式包括碼供經(jīng)由不通過任何集中式非核心邏輯、而由核心交換的信號(hào)來使用一分散式核心間狀態(tài)發(fā)現(xiàn)過程,用以發(fā)現(xiàn)該多核心處理器的一可用的狀態(tài); 其中該可用的狀態(tài)為下述狀態(tài)的其中之一 對(duì)該處理器的一復(fù)合電源狀態(tài);對(duì)該處理器的一領(lǐng)域的一復(fù)合電源狀態(tài),該領(lǐng)域包括多個(gè)核心的一群組,其根據(jù)多個(gè)組態(tài)的其中的一為了電源節(jié)能的目的而共享可操作地被組態(tài)的一可組態(tài)資源; 另一核心的一目標(biāo)電源狀態(tài);共享一可組態(tài)資源的多個(gè)核心的一群組任一者的一最低限制性目標(biāo)電源狀態(tài); 一最高限制性目標(biāo)電源狀態(tài),其是由不妨礙其他核心的對(duì)應(yīng)目標(biāo)操作狀態(tài)的一核心所實(shí)現(xiàn);一核心是否致能或禁能;該多核心處理器具有多少個(gè)核心為致能;共享資源及多個(gè)核心的領(lǐng)域的一識(shí)別,在其中各樣的可組態(tài)資源被共享; 所述核心的一階層式協(xié)調(diào)系統(tǒng),用于經(jīng)營(yíng)共享資源;在多核心處理器內(nèi)多條旁帶通訊配線以協(xié)調(diào)核心的一利用率,其旁帶通訊配線是獨(dú)立于將該多核心處理器連接至一芯片組的一系統(tǒng)總線;以及所述核心的一階層式協(xié)調(diào)系統(tǒng),施行于旁帶通訊配線上的核心間通訊,旁帶通訊配線是獨(dú)立于將該多核心處理器連接至一芯片組的一系統(tǒng)總線。
全文摘要
一種配置在多重處理器核心之間的分散式電源管理。多核心處理器提供由兩個(gè)以上的核心所共用的可配置的資源,資源的組態(tài)影響共享資源的核心利用其能夠運(yùn)作的電源、速度或效率。內(nèi)部核心電源狀態(tài)管理邏輯設(shè)定每個(gè)核心的組態(tài)以參與一分散式核心間電源狀態(tài)發(fā)現(xiàn)過程,用以發(fā)現(xiàn)對(duì)于共用資源而言是一種最受限制的或最節(jié)能型的狀態(tài)的復(fù)合目標(biāo)電源狀態(tài),其將不會(huì)干涉共享資源的每個(gè)核心的任何一個(gè)相對(duì)應(yīng)的目標(biāo)電源狀態(tài)。內(nèi)部核心電源狀態(tài)管理邏輯決定核心是否為被授權(quán)以設(shè)定資源的組態(tài)的一主控核心,且若有,設(shè)定在發(fā)現(xiàn)的復(fù)合電源狀態(tài)中的那個(gè)資源的組態(tài)。分散式電源狀態(tài)發(fā)現(xiàn)過程是在旁帶的非系統(tǒng)總線線上的核心之間被實(shí)現(xiàn),而無須集中式非核心邏輯的協(xié)助。
文檔編號(hào)G06F1/32GK102541237SQ201110436098
公開日2012年7月4日 申請(qǐng)日期2011年12月22日 優(yōu)先權(quán)日2010年12月22日
發(fā)明者G.葛蘭.亨利, 達(dá)魯斯.D.嘉斯金斯 申請(qǐng)人:威盛電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1