配置在多重處理器核心之間的分散式電源管理的制作方法
【專利摘要】一種多核心處理器提供由兩個(gè)以上的核心所共用的可配置的資源,其中資源的組態(tài)影響共享資源的核心利用其能夠運(yùn)作的電源、速度或效率。內(nèi)部核心電源狀態(tài)管理邏輯設(shè)定每個(gè)核心的組態(tài)以參與一分散式核心間電源狀態(tài)發(fā)現(xiàn)過(guò)程,用以發(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)中的該資源的組態(tài)。分散式電源狀態(tài)發(fā)現(xiàn)過(guò)程是在旁路的非系統(tǒng)總線線上的核心之間被實(shí)現(xiàn),而無(wú)須集中式非核心邏輯的協(xié)助。
【專利說(shuō)明】配置在多重處理器核心之間的分散式電源管理
[0001] 本申請(qǐng)為申請(qǐng)日為2011年12月22日、申請(qǐng)?zhí)枮?01110436098. 1的發(fā)明名稱為 "配置在多重處理器核心之間的分散式電源管理"的申請(qǐng)案的分案申請(qǐng)。
【技術(shù)領(lǐng)域】
[0002] 本發(fā)明涉及多核心微處理器設(shè)計(jì)的領(lǐng)域,特別是涉及多核心的特定操作及多核心 處理器的多核心域(domain)的管理與實(shí)現(xiàn)。
【背景技術(shù)】
[0003] 現(xiàn)代微處理器減少它們的電源消耗的主要方式,是減少微處理器操作時(shí)的頻率和 /或電壓。此外,在某些實(shí)例中,微處理器可能允許時(shí)鐘信號(hào)對(duì)于其電路的多個(gè)部分禁能。 最后,在某些實(shí)例中,微處理器可能對(duì)于其電路的多個(gè)部分一起移除電源。再者,有時(shí)候微 處理器需要尖峰性能,使其需要于其最高電壓及頻率下操作。微處理器采取電源管理動(dòng)作 以控制微處理器的電壓與頻率電平以及時(shí)鐘與電源禁能。基本上,微處理器因應(yīng)來(lái)自操作 系統(tǒng)的指導(dǎo)(direction)而采取電源管理的動(dòng)作。熟知的x86 MWAIT指令為一種讓操作系 統(tǒng)執(zhí)行以要求進(jìn)入至一個(gè)與實(shí)際狀況相關(guān)的最佳化狀態(tài)的實(shí)例,操作系統(tǒng)可使用此狀態(tài)以 執(zhí)行進(jìn)階的電源管理。最佳化狀態(tài)可能是休眠(sle印ing)或閑置(idle)狀態(tài)。熟知的進(jìn) 階配置電源接口(ACPI)規(guī)格,是藉由界定操作或電源管理相關(guān)的狀態(tài)(例如"C-狀態(tài)"及 〃P _狀態(tài)〃)以方便操作系統(tǒng)導(dǎo)向(operating system-directed)的電源管理。
[0004] 因?yàn)槎鄶?shù)的現(xiàn)代化微處理器為多核心處理器,其中許多處理核心共用一個(gè)或多個(gè) 電源管理相關(guān)的資源,所以執(zhí)行電源管理動(dòng)作是復(fù)雜的。舉例而言,多個(gè)核心可能共用電壓 源和/或時(shí)鐘源。再者,包含一多核心處理器的計(jì)算系統(tǒng)亦基本上包含一晶片組,其包含多 個(gè)用以橋接處理器總線至系統(tǒng)的其他總線(例如,至周邊I/O總線)的總線橋,并包含一個(gè) 做為多核心處理器與系統(tǒng)存儲(chǔ)器的接口的存儲(chǔ)器控制器。晶片組可密切地參與各種電源管 理動(dòng)作,且在本身與多核心處理器間可能需要協(xié)調(diào)機(jī)制。
[0005] 更明確而言,于某些系統(tǒng)中,在多核心處理器的允許下,晶片組可能禁能一個(gè)處理 器總線上的時(shí)鐘信號(hào),處理器接收并使用此時(shí)鐘信號(hào)以產(chǎn)生其本身的內(nèi)部時(shí)鐘信號(hào)的大部 分。在多核心處理器的情況下,所有使用總線時(shí)鐘的核心必須準(zhǔn)備讓晶片組禁能其總線時(shí) 鐘。亦即,直到所有核心準(zhǔn)備好之后,晶片組才被允許禁能總線時(shí)鐘。
[0006] 再者,在正常情形下,晶片組會(huì)窺探(snoop)處理器總線上的快取存儲(chǔ)器。舉例而 言,當(dāng)一周邊裝置于一周邊總線上產(chǎn)生一存儲(chǔ)器存取時(shí),晶片組會(huì)將此存儲(chǔ)器存取傳送至 處理器總線上,俾能使處理器可窺探其快取存儲(chǔ)器以判定其是否持有(hold)所窺探地址 的數(shù)據(jù)。舉例而言,眾人皆知USB裝置會(huì)定期輪詢存儲(chǔ)器位置,這會(huì)于處理器總線上產(chǎn)生周 期性的窺探循環(huán)(snoop cycle)。在某些系統(tǒng)中,多核心處理器可能進(jìn)入一深休眠狀態(tài),此 時(shí)將清除其快取存儲(chǔ)器的內(nèi)容且禁能快取的時(shí)鐘信號(hào)以便節(jié)省電源。于此情況下,對(duì)多核 心處理器而言,為了因應(yīng)處理器總線上的窺探循環(huán)以窺探其快取(因?yàn)樗鼈兪强盏?,所?永遠(yuǎn)不會(huì)傳回?fù)糁校╤it)訊息)而被喚醒,然后再回到休眠狀態(tài)無(wú)疑是種浪費(fèi)。因此,在多 核心處理器的允許下,晶片組可被授權(quán)不要產(chǎn)生處理器總線上的窺探循環(huán)以達(dá)成額外的電 源節(jié)約。然而,必須再次提醒的是,所有的核心必須準(zhǔn)備好之后晶片組才能關(guān)閉窺探功能, 亦即晶片組不能關(guān)閉窺探功能,除非所有核心皆準(zhǔn)備好才行。
[0007] 發(fā)證給Naveh等人(以下以Naveh代表)的美國(guó)專利第7, 451,333號(hào)揭示一種包 含多重處理核心的多核心微處理器,每一個(gè)核心能檢測(cè)一個(gè)要求核心轉(zhuǎn)變成一閑置狀態(tài)的 命令。多核心處理器亦包含硬件協(xié)調(diào)邏輯(Hardware Coordination Logic, HCL),HCL接收 來(lái)自核心的閑置狀態(tài)狀況,并基于命令與核心的閑置狀態(tài)狀況來(lái)管理核心的電源消耗。更 明確而言,HCL決定是否所有核心已檢測(cè)一項(xiàng)要求轉(zhuǎn)換至一共通狀態(tài)的命令。如果不是的 話,則HCL選擇在命令的閑置狀態(tài)間的一最淺狀態(tài)(shallowest state)以作為每個(gè)核心的 閑置狀態(tài)。然而,如果HCL檢測(cè)一項(xiàng)要求轉(zhuǎn)換成一共通狀態(tài)的命令,則HCL可以啟動(dòng)共用 的電源節(jié)約特征,例如性能狀態(tài)減少(performance state reduction)、一共用的鎖相回路 (PLL)的關(guān)閉、或處理器的執(zhí)行情況的節(jié)省。HCL亦可防止外部中斷(break)事件傳送到達(dá) 核心,以將所有核心轉(zhuǎn)變成共通狀態(tài)。此外,HCL可與晶片組實(shí)施一交握順序(handshake sequence)以將核心轉(zhuǎn)變成共通狀態(tài)。
[0008] 在由Alon Naveh等人所寫的論文中,名稱為〃英特爾酷睿核心處理器中的電源及 熱管理(Power and Thermal Managment in the Intel Core Duo Processor) 〃,其出版于 2006年5月15日發(fā)行的英特爾科技期刊中,Naveh等人說(shuō)明一種使用設(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é)定。
[0009] 在由Naveh參考文獻(xiàn)兩者所揭示的機(jī)制中,HCL是集中在核心外部的非核心邏輯, 并代表所有核心執(zhí)行電源管理的操作。然而這種集中化非核心邏輯解決方法有其弊病,特 別是在HCL被要求包含在與核心相同的晶片時(shí),過(guò)大的晶片尺寸將是難以令人接受的,尤 其對(duì)希望在晶片上包含更多核心的架構(gòu)下,這個(gè)弊病將更加明顯。
【發(fā)明內(nèi)容】
[0010] 在本發(fā)明的一個(gè)實(shí)施樣態(tài)中,提供一種多核心處理器,其包含多個(gè)實(shí)體處理核心 以及在每個(gè)核心中的核心間狀態(tài)發(fā)現(xiàn)微碼單元,核心間狀態(tài)發(fā)現(xiàn)微碼單元可使核心參與一 分散式核心間電源狀態(tài)發(fā)現(xiàn)過(guò)程。與此相關(guān)的,是一提供發(fā)現(xiàn)一多核心處理器的電源狀態(tài) 的分散式電源管理實(shí)現(xiàn)方法,此多核心處理器包含參與一分散式核心間狀態(tài)發(fā)現(xiàn)過(guò)程的至 少兩個(gè)核心。核心間狀態(tài)發(fā)現(xiàn)過(guò)程是經(jīng)由在每個(gè)參與核心上執(zhí)行的微碼、以及通過(guò)旁路非 系統(tǒng)總線通訊配線在核心之間交換的信號(hào)的組合而被實(shí)現(xiàn)。發(fā)現(xiàn)過(guò)程是不通過(guò)任何集中式 非核心邏輯。此外,在多數(shù)實(shí)施例中,核心間狀態(tài)發(fā)現(xiàn)過(guò)程是依據(jù)一種使用鏈鎖式核心間通 訊的適當(dāng)?shù)幕蜻x擇的階層式協(xié)調(diào)系統(tǒng)而被實(shí)現(xiàn)。
[0011] 在其他實(shí)施樣態(tài)中,提供核心間狀態(tài)發(fā)現(xiàn)過(guò)程是提供微處理器組態(tài),包含促使核 心啟動(dòng)及多少核心被啟動(dòng)的資源的利用率與分布、以及微處理器的階層式協(xié)調(diào)構(gòu)造與系 統(tǒng),包含域與域主識(shí)別的確認(rèn)。
[0012] 在本發(fā)明的另一實(shí)施樣態(tài)中,提供一種多核心處理器,其包含多個(gè)已啟動(dòng)的實(shí)體 處理核心以及一由兩個(gè)以上的核心共用的可配置的資源,其中資源的組態(tài)影響共享資源的 核心利用其能夠操作的電源、速度或效率。對(duì)每個(gè)核心而言,處理器還包含設(shè)定每個(gè)核心的 組態(tài)的內(nèi)部核心電源狀態(tài)管理邏輯,用以參與在核心之間被實(shí)現(xiàn)的一種分散式核心間電源 狀態(tài)發(fā)現(xiàn)過(guò)程,而無(wú)須集中式非核心邏輯的協(xié)助。如果核心為了設(shè)定共用資源的組態(tài)與復(fù) 合目標(biāo)電源狀態(tài)是經(jīng)由分散式核心間電源狀態(tài)發(fā)現(xiàn)過(guò)程被發(fā)現(xiàn)的目的而被指定為一管理 者核心,則內(nèi)部核心電源管理邏輯設(shè)定核心的組態(tài)以驅(qū)使設(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)。
[0013] 在一個(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)過(guò)程,其包含不通過(guò)任何集中式非核心 邏輯而與共享該資源的至少一其他核心的電源狀態(tài)的交換。如果核心為了設(shè)定共用資源的 組態(tài)與復(fù)合目標(biāo)電源狀態(tài)是經(jīng)由分散式核心間電源狀態(tài)發(fā)現(xiàn)過(guò)程而被發(fā)現(xiàn)的目的而被指 定為一管理者核心,則核心驅(qū)使用以設(shè)定共用資源的組態(tài)的復(fù)合目標(biāo)電源狀態(tài)的實(shí)現(xiàn)。
[0014] 在又另一實(shí)施樣態(tài)中,本發(fā)明提供一多核心處理器。多核心處理器的每個(gè)核心包 含電源狀態(tài)管理微碼,用以設(shè)定該核心的組態(tài)以參與一分散式核心間復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò) 程。電源狀態(tài)管理微碼可使每個(gè)核心接收一狀態(tài)轉(zhuǎn)變要求,用以依據(jù)多個(gè)預(yù)定電源狀態(tài) (包含一主動(dòng)操作狀態(tài)及一個(gè)或多個(gè)漸進(jìn)地較不敏感的狀態(tài))的任何要求的目標(biāo)的其中一 個(gè)設(shè)定其成為本身的組態(tài)。當(dāng)一核心接收一要求以轉(zhuǎn)變成為一受限制的電源狀態(tài)(例如會(huì) 干涉由其他核心所共用資源的一電源狀態(tài))時(shí),則其電源狀態(tài)管理微碼啟動(dòng)一分散式核心 間復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程,用以決定是否所有其他受影響的核心已做好該受限制的電源狀 態(tài)的準(zhǔn)備。
[0015] 如果參與發(fā)現(xiàn)過(guò)程的核心確認(rèn)受限制的電源狀態(tài)為復(fù)合電源狀態(tài),則核心中的被 授權(quán)者經(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)。
[0016] 在另一實(shí)施樣態(tài)中,每個(gè)核心的電源管理微碼的一部分或常式為同步邏輯,其被 組態(tài)而被設(shè)計(jì)成用以與其他以節(jié)點(diǎn)地連接(nodally connected)的核心交換電源狀態(tài)信息 來(lái)決定混合電源狀態(tài)。同步邏輯的每個(gè)被喚起的實(shí)例(invoked instance)是被設(shè)計(jì)成至 少有條件地在尚未同步節(jié)點(diǎn)地連接的核心(其為節(jié)點(diǎn)地連接至本身的核心,且同步邏輯的 一同步化實(shí)例尚未被喚起)中產(chǎn)生同步邏輯的從屬實(shí)例,以作為一復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程 的一部分。
[0017] 于一實(shí)施例中,核心的電源管理微碼是被設(shè)計(jì)成無(wú)須啟用其同步邏輯的一本地實(shí) 例即可實(shí)現(xiàn)一目標(biāo)電源狀態(tài),如果核心的目標(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í)例,做為受限制的電源狀態(tài)所應(yīng)用到的核心的最大域開始復(fù)合 電源狀態(tài)發(fā)現(xiàn)過(guò)程。在發(fā)現(xiàn)對(duì)應(yīng)到目標(biāo)受限制的電源狀態(tài)的一復(fù)合電源狀態(tài)中,被授權(quán)以 實(shí)現(xiàn)復(fù)合電源狀態(tài)的一核心電源管理微碼啟動(dòng)(典型上是具最大影響范圍的管理者核心) 和/或進(jìn)行復(fù)合電源狀態(tài)的實(shí)現(xiàn)。
[0018] 在另一實(shí)施樣態(tài)中,本發(fā)明提供一種供一多核心處理器(例如上述的處理器)使 用的管理電源的分散方法。此方法包含接收針對(duì)任一核心的一狀態(tài)轉(zhuǎn)變要求,以依據(jù)一目 標(biāo)電源狀態(tài)設(shè)定該核心("本地核心")的組態(tài)。如果目標(biāo)電源狀態(tài)為一受限制的電源狀 態(tài),則執(zhí)行于本地核心上的電源管理邏輯實(shí)施同步邏輯的一本地實(shí)例以啟動(dòng)一分散式核心 間復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程,以使此核心與其他核心交換電源狀態(tài)。此方法還包含評(píng)估發(fā)現(xiàn) 的電源狀態(tài),以及有條件地回應(yīng)受限制的電源狀態(tài)的實(shí)現(xiàn)或啟動(dòng)。
[0019] 同步邏輯的每個(gè)本地實(shí)例產(chǎn)生在一個(gè)或多個(gè)節(jié)點(diǎn)地連接核心上的同步邏輯的一 個(gè)或多個(gè)從屬實(shí)例,這些從屬實(shí)例是依序操作,以產(chǎn)生它們的同步邏輯的額外從屬實(shí)例。同 步邏輯的每個(gè)實(shí)例決定至少一混合電源狀態(tài),及遞歸地(除非由一終止條件所終止,如果 有的話)在同步邏輯的尚未同步的節(jié)點(diǎn)地遠(yuǎn)端核心上更進(jìn)一步的喚起從屬實(shí)例邏輯,直到 可能被影響的域中的每一個(gè)核心都有同步邏輯的同步實(shí)例為止。在發(fā)現(xiàn)復(fù)合電源狀態(tài)等于 受限制的電源狀態(tài)時(shí),于一授權(quán)核心上執(zhí)行電源管理邏輯以啟動(dòng)和/或加以實(shí)現(xiàn)。
[0020] 在又另一實(shí)施樣態(tài)中,本發(fā)明提供微碼,其被編碼在包含分散式核心間狀態(tài)發(fā)現(xiàn) 與上述電源管理邏輯的多核心處理器的實(shí)體核心的計(jì)算機(jī)可讀取的儲(chǔ)存媒體中。
【專利附圖】
【附圖說(shuō)明】
[0021] 圖1為顯示一計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一雙晶 片四核心微處理器的多重處理核心之間的分散式電源管理。
[0022] 圖2為詳細(xì)顯示圖1的代表的其中一個(gè)核心的方塊圖。
[0023] 圖3為顯示執(zhí)行分配在多核心微處理器的多重處理核心之間的分散式電源管理 的一系統(tǒng)的一電源狀態(tài)管理常式的一個(gè)實(shí)施例的藉由一核心的操作的流程圖。
[0024] 圖4A-圖4C為顯示整合至圖3的系統(tǒng)的復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程的一電源狀態(tài)同 步常式的一個(gè)實(shí)施例的藉由一核心的操作的流程圖。
[0025] 圖5為顯示一喚起與重新開始常式以因應(yīng)從一休眠狀態(tài)將其喚醒的一事件的一 個(gè)實(shí)施例的藉由一核心的操作的流程圖。
[0026] 圖6為顯示一核心間中斷處理常式以因應(yīng)接收一核心間中斷的藉由一核心的操 作的流程圖。
[0027] 圖7為顯示依據(jù)圖3至6的說(shuō)明的一復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程的操作的一例子的流 程圖。
[0028] 圖8為顯示依據(jù)圖3至6的說(shuō)明的一復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程的操作的另一個(gè)例子 的流程圖。
[0029] 圖9為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一種八 核心微處理器(其在單一封裝體上具有四個(gè)雙核心晶片)的多重處理核心之間的分散式電 源管理。
[0030] 圖10A-圖10C為顯示整合至圖9的系統(tǒng)的一復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程的一電源狀 態(tài)同步常式的一個(gè)實(shí)施例的藉由一核心的操作的流程圖。
[0031] 圖11為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一種 八核心微處理器的多重處理核心之間的分散式電源管理,八核心微處理器具有四個(gè)雙核心 晶片,其使用圖10的電源狀態(tài)同步常式而分配在兩個(gè)封裝體上。
[0032] 圖12為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一種 八核心微處理器的多重處理核心之間的分散式電源管理,依據(jù)一較深的階層式協(xié)調(diào)系統(tǒng), 八核心微處理器像圖11具有四個(gè)雙核心晶片,但其核心不像圖11而是彼此相互關(guān)連的。
[0033] 圖13A-圖13D為顯示整合至圖12的系統(tǒng)的一復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程的一電源狀 態(tài)同步常式的一個(gè)實(shí)施例的藉由一核心的操作的流程圖。
[0034] 圖14為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一種 八核心微處理器的多重處理核心之間的分散式電源管理,依據(jù)一較深的階層式協(xié)調(diào)系統(tǒng), 八核心微處理器像圖9在單一封裝體上具有四個(gè)雙核心晶片,但其核心不像圖9而是彼此 相互關(guān)連的。
[0035] 圖15為顯示一計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一種 八核心微處理器(其在單一封裝體上具有兩個(gè)四核心晶片)的多重處理核心之間的分散式 電源管理。
[0036] 圖16為顯示一計(jì)算機(jī)系統(tǒng)的又另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一 種八核心微處理器的多重處理核心之間的分散式電源管理。
[0037] 圖17A-圖17C為顯示整合至圖16的系統(tǒng)的一復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程的一電源狀 態(tài)同步常式的一個(gè)實(shí)施例的藉由一核心的操作的流程圖。
[0038] 圖18為顯示一計(jì)算機(jī)系統(tǒng)的又另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一 種雙核心、單一晶片微處理器的核心之間的分散式電源管理。
[0039] 圖19為顯示一計(jì)算機(jī)系統(tǒng)的又另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在具 有兩個(gè)單核心晶片的一種雙核心微處理器的核心之間的分散式電源管理。
[0040] 圖20為顯示一計(jì)算機(jī)系統(tǒng)的又另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在具 有兩個(gè)單核心、單一晶片封裝體的一雙核心微處理器的核心之間的分散式電源管理。
[0041] 圖21為顯示一計(jì)算機(jī)系統(tǒng)的又另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一 種八核心微處理器的核心之間的分散式電源管理,八核心微處理器具有兩個(gè)封裝體,其中 一個(gè)具有三個(gè)雙核心晶片,而其另一個(gè)具有單一雙核心晶片。
[0042] 圖22為顯示一計(jì)算機(jī)系統(tǒng)的又另一實(shí)施例的方塊圖,計(jì)算機(jī)系統(tǒng)執(zhí)行分配在一 種八核心微處理器的核心之間的分散式電源管理,八核心微處理器類似于圖21,但具有一 較深的階層式協(xié)調(diào)系統(tǒng)。
[0043] 圖23為顯示在一核心上實(shí)現(xiàn)的操作狀態(tài)同步邏輯的另一實(shí)施例的流程圖,其支 持一種域區(qū)別的(domain-differentiated)操作狀態(tài)層次協(xié)調(diào)系統(tǒng)且對(duì)于不同的域深度 是可計(jì)量的。
[0044] 附圖符號(hào)說(shuō)明
[0045] P、P1-P8:接腳
[0046] 100、900、1100、1200、1400、1500、1600 :計(jì)算機(jī)系統(tǒng)
[0047] 102、902、1202、1402、1502 :多核心微處理器/封裝體
[0048] 104 :單核心晶片/封裝體
[0049] 106 :核心
[0050] 108 :接觸墊
[0051] 112:核心間通訊配線
[0052] 114:晶片組
[0053] 116:總線
[0054] 118:通訊配線
[0055] 202 :指令快取
[0056] 204 :指令譯碼器
[0057] 206 :微序列器
[0058] 207 :微碼存儲(chǔ)器
[0059] 208 :微碼
[0060] 212 :注冊(cè)別名表(RAT)
[0061] 214:保留站
[0062] 216 :執(zhí)行單元
[0063] 218 :撤退單元
[0064] 222 :數(shù)據(jù)快取
[0065] 224 :總線接口單元(BIU)
[0066] 226 :鎖相回路(PLL)
[0067] 228 :BSP 指示器
[0068] 232 :管理者指示器
[0069] 234,236 :CSR
[0070] 238 :特別模塊寄存器(MSR)
[0071] 242 :核心時(shí)鐘信號(hào)
[0072] 1102:四核心微處理器
[0073] 1133 :封裝體間通訊配線
[0074] 1201 :第二封裝體
[0075] 1504:晶片
[0076] 1602 :多核心微處理器
[0077] 1802、1902、2002 :雙核心微處理器
[0078] 2202 :八核心處理器
[0079] 2300 :邏輯
[0080] 2302 :sync_state
【具體實(shí)施方式】
[0081] 于此所說(shuō)明的為藉由使用固有的且被復(fù)制在每個(gè)核心上的分散式分配邏輯,用以 協(xié)調(diào)、同步、管理以及實(shí)現(xiàn)一多核心處理器上的電源、休眠或操作狀態(tài)的系統(tǒng)與方法的實(shí)施 例。在說(shuō)明表示詳細(xì)的實(shí)施例的每一張圖之前,先將本發(fā)明的更一般的適用概念介紹于下。
[0082] I.多層多核心處理器概念
[0083] 如于此所使用的,一種多核心處理器通常表示一個(gè)包含多個(gè)啟動(dòng)的實(shí)體核心的處 理器,每個(gè)啟動(dòng)的實(shí)體核心被設(shè)計(jì)成用以提取、解碼并執(zhí)行遵循一指令集架構(gòu)的指令。一般 而言,多核心處理器是藉由一系統(tǒng)總線(最后由所有核心所共用)而耦接至一晶片組,藉以 提供至周邊總線到達(dá)各種裝置的存取操作。在某些實(shí)施例中,系統(tǒng)總線為一前端總線,其為 從處理器至其余計(jì)算機(jī)系統(tǒng)的一外部接口。在某些實(shí)施例中,晶片組亦對(duì)一共用的主存儲(chǔ) 器以及一共用的圖形控制器進(jìn)行集中存取。
[0084] 多核心處理器的核心可能被封裝在包含多重核心的一個(gè)或多個(gè)晶片中,如說(shuō)明于 申請(qǐng)案序號(hào)61/426, 470的段落中,其申請(qǐng)日為2010年12月22日,名稱為〃多核心處理器 內(nèi)部旁路總線(Multi-Core Processor Internal Bypass Bus) 〃,以及其同時(shí)申請(qǐng)的正式 (nonprovisional)申請(qǐng)案(CNTR. 2503),其是于此并入作參考。如于其中所提出的,一種典 型的晶片為已被切成或切割為單一物理實(shí)體的一片半導(dǎo)體晶圓,且一般具有至少一組的實(shí) 體1/0接觸墊。例如,某些雙核心晶片具有兩組1/0接觸墊,每一組供其核心的每一個(gè)使用。 其他雙核心晶片具有單一組的1/0接觸墊,其是在其雙核心之間被共用。某些四核心晶片 具有兩組1/0接觸墊,一組供兩組雙核心的每一個(gè)用。多重組態(tài)是可能的。
[0085] 再者,一種多核心處理器亦可能提供一種承載多重晶片的一封裝體。一種〃封裝 體〃為上面置放或安裝有晶片的一基板,此〃封裝體〃可能提供單一組的接腳,以供連接至 一主機(jī)板以及相關(guān)的處理器總線。封裝體的基板包含將晶片的接觸墊連接至封裝體的共用 接腳的連線網(wǎng)或布線(wire nets or traces)。
[0086] 更進(jìn)一步的分層的層次是可能的。舉例而言,在封裝體與位于下方的主機(jī)板之間 可提供一個(gè)額外的層板(以下稱為平臺(tái)(platform)),而多個(gè)封裝體設(shè)置于此平臺(tái)上。平臺(tái) 可能像上述的封裝體,其包含一個(gè)基板,此基板具有連接每個(gè)封裝體的接腳與平臺(tái)的共用 接腳的連線網(wǎng)或布線。
[0087] 應(yīng)用上述概念,在一實(shí)施例中,一種多封體裝處理器可視為將N2個(gè)封裝體設(shè)置在 一平臺(tái)上,每個(gè)封裝體具有N1個(gè)晶片,且每個(gè)晶片具有N0個(gè)核心。于此數(shù)字N2、N1以及N0 每個(gè)大于或等于1,且N2、N1以及NO的至少一者大于或等于2。
[0088] II.核心間傳輸結(jié)構(gòu)
[0089] 如上所述,非核心但晶片上的硬件協(xié)調(diào)邏輯(HCL)的使用以實(shí)現(xiàn)要求核心間協(xié)調(diào) 的限制活動(dòng)的一些缺點(diǎn),包含更復(fù)雜的、較不對(duì)稱的且較低良率的晶片設(shè)計(jì)以及縮放挑戰(zhàn) (scalling chanllenge)。一替代方式是藉由使用晶片組本身來(lái)執(zhí)行所有這種協(xié)調(diào),但這種 方式極可能需要在每個(gè)核心與系統(tǒng)總線上的晶片組間進(jìn)行傳輸,以便傳遞適合數(shù)值給晶片 組。這種協(xié)調(diào)基本上亦需要經(jīng)由例如BIOS的系統(tǒng)軟件來(lái)實(shí)現(xiàn),但這種做法對(duì)制造商而言是 有所限制或根本無(wú)法控制的。為了克服兩種習(xí)知方法的缺點(diǎn),本發(fā)明的某些實(shí)施例利用在 多核心處理器的核心間的旁路連接。這些旁路連接并未連接至封裝體的實(shí)體接腳;因此, 它們不會(huì)傳送信號(hào)至封裝體外部;經(jīng)由它們交換的通訊也不會(huì)要求系統(tǒng)總線上的對(duì)應(yīng)的傳 輸。
[0090] 舉例而言,如說(shuō)明于CNTR. 2503,每個(gè)晶片可能提供一條在晶片核心間的旁路總 線,旁路總線并未連接至晶片的實(shí)體接觸墊;因此其并未傳送信號(hào)離開雙核心晶片。旁路 總線亦提供核心間的信號(hào)的品質(zhì)改善,并可使核心彼此的傳遞或協(xié)調(diào)無(wú)須使用系統(tǒng)總線。 多重變化亦在考量之內(nèi)。舉例而言,如說(shuō)明于CNTR. 2503 -案中,一種四核心晶片可能提 供一條在兩組雙核心間的旁路總線。或者,如說(shuō)明于以下的一個(gè)實(shí)施例,一種四核心晶片 可能在一晶片的兩組核心的每一個(gè)之間提供旁路總線,以及在從兩組所選擇的核心間提 供另一條旁路總線。在另一實(shí)施例中,一種四核心晶片可能提供在每一個(gè)核心間的核心 間旁路總線,如下圖16所述。又,在另一實(shí)施例中,一種四核心晶片可能在第一與第二核 心、第二核心與第三核心、第三與第四核心以及第一與第四核心之間的核心間提供旁路總 線,而無(wú)須提供在第一與第三核心之間或在第二與第四核心之間的核心間旁路總線。一種 類似的旁路組態(tài)(即使所述者是分配在兩個(gè)雙核心晶片上的核心間)揭示于申請(qǐng)案序號(hào) 61/426, 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. 2534),亦 于此并入作參考。
[0091] 又,本發(fā)明考慮到比CNTR. 2503的旁路總線較不廣泛的核心間通訊配線組,例如 說(shuō)明于申請(qǐng)案序號(hào)61/426, 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. 2528),亦于此并入作 參考。核心間通訊配線的一種較不龐大的例子是顯示于CNTR. 2534,亦于此并入作參考。核 心間通訊配線組在包含配線的數(shù)目上要盡可能小,只要能用以啟動(dòng)如于此所說(shuō)明的協(xié)調(diào)活 動(dòng)即可。構(gòu)筑在核心之間的核心間通訊配線,亦可能依一種類似于以下更進(jìn)一步說(shuō)明的晶 片間通訊線的方式被設(shè)計(jì)或配置在核心之間。
[0092] 再者,一封裝體可能提供在一封裝體晶片片間的晶片間通訊線,而一平臺(tái)可能提 供在平臺(tái)的封裝體間的封裝體間通訊線。如以下將更完全說(shuō)明的,晶片間通訊線的實(shí)施可 能需要每個(gè)晶片上的至少一額外實(shí)體輸出接觸墊。同樣地,封裝體間通訊線的實(shí)施可能需 要每個(gè)封裝體上的至少一額外實(shí)體輸出接觸墊。又,如以下更進(jìn)一步說(shuō)明的,某些實(shí)施例提 供超過(guò)一最低限度足夠數(shù)目的輸出接觸墊的額外輸出接觸墊,用以在協(xié)調(diào)核心中提供更大 的彈性。為了讓各種可能的核心間通訊得以實(shí)施,較好的方式是他們都不需要任何一個(gè)核 心外部的主動(dòng)邏輯(active logic)。如此,本發(fā)明各種實(shí)施例可通過(guò)使用一種非核心HCL 或其他主動(dòng)非核心邏輯以協(xié)調(diào)核心的實(shí)施方式,來(lái)提供本發(fā)明于此所述的優(yōu)點(diǎn)。
[0093] III.階層式概念
[0094] 再次重申,本發(fā)明的說(shuō)明除非另有規(guī)定,否則并未受限于多核心多處理器的數(shù)個(gè) 實(shí)施例,其提供旁路通訊配線且通過(guò)系統(tǒng)總線優(yōu)先使用這種配線以協(xié)調(diào)核心,以便實(shí)施或 允許某些構(gòu)造或限制活動(dòng)的實(shí)施。在許多實(shí)施例中,這些實(shí)體實(shí)施方式是與階層式協(xié)調(diào)系 統(tǒng)相互搭配,以執(zhí)行所需的硬件協(xié)調(diào)。于此所說(shuō)明的某些階層式協(xié)調(diào)系統(tǒng)是非常復(fù)雜的。舉 例而言,圖1、9、11、12、14、15、16、18、19、20、21以及22描述各種階層式協(xié)調(diào)系統(tǒng)的多核心 處理器實(shí)施例,其是架構(gòu)并用來(lái)促進(jìn)例如電源狀態(tài)管理的核心間協(xié)調(diào)活動(dòng)。此說(shuō)明書亦提 供數(shù)個(gè)對(duì)階層式協(xié)調(diào)系統(tǒng)的更深入且抽象的特性記述,以及甚至更詳盡且復(fù)雜的階層式協(xié) 調(diào)系統(tǒng)的例子。因此,在進(jìn)入用以啟動(dòng)一構(gòu)造或限制活動(dòng)的實(shí)施的核心間協(xié)調(diào)過(guò)程的特定 實(shí)例的說(shuō)明前,先說(shuō)明于此考慮到的各種階層式協(xié)調(diào)系統(tǒng)的各種實(shí)施樣態(tài)是有益的。
[0095] 如于此所使用的,一種階層式協(xié)調(diào)系統(tǒng)表示一種為了某些恰當(dāng)或預(yù)定活動(dòng)或目 的,將核心設(shè)計(jì)成以一種至少局部受限或組織的階層式方式而彼此協(xié)調(diào)的系統(tǒng)。這種架構(gòu) 即與一相等的點(diǎn)對(duì)點(diǎn)(peer-to-peer)協(xié)調(diào)系統(tǒng)有所區(qū)別,因?yàn)槠渲械拿總€(gè)核心皆享有同 等特權(quán),并可直接與任何其他核心(以及與晶片組)協(xié)調(diào)以執(zhí)行一恰當(dāng)活動(dòng)。舉例而言,節(jié) 點(diǎn)樹架構(gòu)下的核心是在某些具限制的活動(dòng)下,僅與上層或下層的節(jié)點(diǎn)連接核心進(jìn)行協(xié)調(diào), 其中的任兩個(gè)節(jié)點(diǎn)間只存在有一條單一路徑,于是這種節(jié)點(diǎn)樹架構(gòu)可構(gòu)成一嚴(yán)密的階層式 協(xié)調(diào)系統(tǒng)。如于此所使用的,除非更嚴(yán)格地定義,否則一階層式協(xié)調(diào)系統(tǒng)亦包含較為松散的 階層式的協(xié)調(diào)系統(tǒng),例如一種允許在至少一群組的核心內(nèi)的點(diǎn)對(duì)點(diǎn)協(xié)調(diào)的系統(tǒng),其是在至 少兩個(gè)核心群組間進(jìn)行階層式協(xié)調(diào)。于此呈現(xiàn)嚴(yán)密及松散的階層式協(xié)調(diào)系統(tǒng)兩者的例子。
[0096] 于一實(shí)施例中,一種階層式協(xié)調(diào)系統(tǒng)對(duì)應(yīng)至一微處理器中的核心的一配置,微處 理器具有多個(gè)封裝體,每個(gè)封裝體具有多個(gè)晶片,且每個(gè)晶片具有多個(gè)核心。將每層視為一 〃域(domain)"時(shí)是有用的。舉例而言,一種雙核心晶片可被視為由其核心所組成的域,一 種雙晶片封裝體可被視為由其晶片所組成的一域,以及一雙封裝體平臺(tái)或微處理器可被視 為由其封裝體所組成的一域。將核心本身說(shuō)明為一域亦是有用的。這種〃域〃的概念化在 表示例如一快取、一電壓源或一時(shí)鐘源的一資源上亦是有用的,此資源是由一域的核心所 共用,但此資源以別的方法位于該域的近端(亦即,并未由該域的外部核心所共用)。當(dāng)然, 適合于任何既定的多核心處理器的域深度以及每個(gè)域的組成者的數(shù)目(例如,以一晶片為 一域,以封裝體為一域,等等)可依據(jù)核心的數(shù)目、它們的分層以及各種資源由核心所共用 的方式改變并放大或縮小。
[0097] 為不同型式的域之間的關(guān)是命名亦是有用的。如于此所使用的,在一種多核心晶 片上的所有啟動(dòng)的實(shí)體核心是被視為該晶片的〃組成者(constituents) 〃以及彼此的〃共 同組成者(co-constituents)"。同樣地,在一多晶片封裝體上的所有啟動(dòng)的實(shí)體晶片被視 為該封裝體的組成者以及彼此的共同組成者。又同樣地,在一種多封裝體處理器上的所有 啟動(dòng)的實(shí)體封裝體將被視為該處理器的組成者以及彼此的共同組成者。再者,這種表示方 式可能延伸至像設(shè)有多核心處理器一樣的域深度的多數(shù)層次。一般而言,每個(gè)非終端域?qū)?次是由一個(gè)或多個(gè)組成者所定義,每一個(gè)組成者包含階層式構(gòu)造的下一個(gè)較低的域?qū)哟巍?br>
[0098] 在某些多核心處理器實(shí)施例中,對(duì)每個(gè)多核心域(例如,對(duì)每個(gè)晶片,對(duì)每個(gè)封 裝體,對(duì)每個(gè)平臺(tái)等等)而言,其唯一一個(gè)核心被指定為并設(shè)有供該域使用的一"管理者 (master)"的一對(duì)應(yīng)的功能把關(guān)或協(xié)調(diào)角色。舉例而言,每個(gè)多核心晶片的單一核心(如果 有的話)被指定為該晶片的一"晶片管理者",每個(gè)封裝體的單一核心被指定為該封裝體的 一〃封裝體管理者"(PM),以及(對(duì)如此成層的一處理器而言)每個(gè)平臺(tái)的單一核心是被 指定為供該平臺(tái)用的〃平臺(tái)管理者〃等等。一般而言,此階層的最高域的管理者核心作為 多核心處理器的唯一的〃總線服務(wù)處理器〃 (BSP)核心,其中只有BSP被授權(quán)以使某些型式 的活動(dòng)與晶片組協(xié)調(diào)??勺⒁獾剑瑸榱吮憷?,于此采用例如"管理者"的專門用語(yǔ),且除 〃管理者〃之外的標(biāo)簽(例如〃委派(delegate) 〃)可被應(yīng)用以說(shuō)明這種功能角色。
[0099] 更進(jìn)一步的關(guān)是是定義在每個(gè)域管理者核心與核心之間,為預(yù)定目的或活動(dòng)(為 其所標(biāo)示的),利用核心允許其直接協(xié)調(diào)。于最低域?qū)哟危ɡ?,一晶片),?duì)于該晶片的 啟動(dòng)的非管理者核心的每一個(gè),一種多核心晶片的晶片管理者核心可能被視為一 〃伙伴 (pal)"。一般而言,對(duì)于相同晶片的其他核心的任何一個(gè),一晶片的每一個(gè)核心被視為一伙 伴。但在一替代特性記述中,伙伴指定是被限定為在晶片管理者核心與一種多核心晶片的 其他核心之間的附屬關(guān)是。將這種替代特性記述應(yīng)用至一種四核心晶片,晶片管理者核心 將具有三個(gè)伙伴,但其他核心的每一個(gè)將被視為只具有單一伙伴(晶片管理者核心)。 [0100] 于下一個(gè)域?qū)哟危ɡ绶庋b體),對(duì)于相同封裝體上的其他管理者核心的每一個(gè), 一封裝體的PM核心可能被視為一〃同伴(buddy)"。一般而言,對(duì)于相同封裝體的彼此晶片 管理者核心,一封裝體的每一個(gè)晶片管理者核心是被視為一同伴。但在一替代特性記述中, 同伴指定是限定于一封裝體管理者核心與該封裝體的其他管理者核心之間的附屬關(guān)是。將 這種替代特性記述應(yīng)用至一種四晶片封裝體,PM核心將具有三個(gè)伙伴,但其他晶片管理者 核心的每一個(gè)將被視為只具有單一伙伴(PM核心)。在又另一種替代特性記述(例如在圖 11中所提出的)中,對(duì)于處理器中的其他管理者核心的每一個(gè)(包含在處理器的一不同封 裝體上的管理者核心),一管理者核心是被視為一 〃同伴〃。
[0101] 于下一個(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)。
[0102] 上述的伙伴/同伴/好友關(guān)是于此一般更被視為〃同屬性(kinship) 〃關(guān)是。每個(gè) 〃伙伴〃核心屬于一個(gè)同屬性群組,每個(gè)〃同伴〃核心屬于一較高層級(jí)的同屬性群組,以及 每個(gè)"好友"核心屬于又更高層級(jí)的同屬性群組。換言之,上述階層式協(xié)調(diào)系統(tǒng)的各種域 定義對(duì)應(yīng)的"同屬性"群組(例如,伙伴的一個(gè)或多個(gè)群組、同伴的群組以及好友的群組)。 此外,一特定核心的每個(gè)〃伙伴〃、〃同伴〃以及〃好友〃核心(如果有的話)一般可更被 視為一 〃家族(kin) 〃核心。
[0103] 如于此所使用的,一同屬性群組的概念是略不同于一域的概念。如上所述,一域是 由在其域中的所有核心所組成,舉例而言,一封裝體域一般是由封裝體上的所有核心所組 成。相較之下,一同屬性群組一般是由相對(duì)應(yīng)的域所選擇核心組成,例如,一封裝體域的對(duì) 應(yīng)的同屬性群組僅由封裝體上的管理者核心(其中一個(gè)亦為封裝體管理者核心)所構(gòu)成, 而非封裝體上任何一個(gè)伙伴核心所構(gòu)成。一般而言,只有終端多核心域(亦即,不具有組成 域的域)將定義一個(gè)包含所有核心的對(duì)應(yīng)同屬性群組。舉例而言,一雙核心晶片一般將定 義一終端多核心域,其具有包含晶片的兩核心的對(duì)應(yīng)同屬性群組。注意到把每個(gè)核心看成 界定其自己的域亦是適當(dāng)?shù)?,因?yàn)槊總€(gè)核心一般包含位于在本身的近端且未被其他核心所 共用的資源,其可藉由各種操作狀態(tài)而被設(shè)置。
[0104] 將明白在上述的伙伴/同伴/好友階層,任一非管理者核心的每個(gè)核心只是一伙 伴,并屬于只由相同晶片上的核心所構(gòu)成的單一同屬性群組。每個(gè)晶片管理者核心,第一, 屬于由相同晶片上的伙伴核心所組成的最低層次同屬性群組;第二,屬于由相同封裝體上 的同伴核心所組成的一同屬性群組。每個(gè)封裝體管理者核心,第一,屬于由相同晶片上的伙 伴核心所組成的一最低層次同屬性群組;第二,屬于由相同封裝體上的同伴核心所組成的 一同屬性群組;而第三,屬于由相同平臺(tái)上的好友核心所組成的一同屬性群組。簡(jiǎn)言之,每 個(gè)核心屬于W同屬性群組,于此W等于同屬性群組(該核心是一管理者核心)的數(shù)目加上 1〇
[0105] 為了更進(jìn)一步敘述同屬性群組的階層式本質(zhì)的特征,任何既定核心的"最接近的 〃或〃最直接的〃同屬性群組是對(duì)應(yīng)至該核心為其的一部分的最低層次多核心域。在一個(gè) 例子中,無(wú)論一特定核心具有多少管理者指定核心,其最直接的同屬性群組包含其在相同 晶片上的伙伴。一管理者核心亦將具有一第二接近的同屬性群組,其包含在相同封裝體上 的核心的同伴或同伴們。一封裝體管理者核心亦將具有包含核心的好友的一第三接近的同 屬性群組。
[0106] 值得注意的是,上述的同屬性群組對(duì)于一多層次多核心處理器(其中至少兩個(gè)層 次Nx具有多重組成者)將是半獨(dú)占的。亦即,對(duì)這種處理器而言,沒有既定的同屬性群組 將包含該處理器的所有核心。
[0107] 上述的同屬性群組概念甚至可更進(jìn)一步藉由不同的協(xié)調(diào)模型而被特征化,一同屬 性群組可能采用在其組成核心之間。如于此所使用的,在一 〃管理者仲裁的〃同屬性群組 中,在核心之間的直接協(xié)調(diào)是被限定為在管理者核心及其非管理者核心之間的協(xié)調(diào)。在同 屬性群組之內(nèi)的非管理者核心無(wú)法彼此直接協(xié)調(diào),只能間接地經(jīng)由管理者核心為的。在一 〃同濟(jì)合作(Peer-collaborative) 〃同屬性群組中,相較之下,同屬性群組的任何兩個(gè)核心 可能彼此直接協(xié)調(diào),而無(wú)須管理者核心的仲裁。在一同儕合作同屬性群組中,對(duì)于管理者的 一種更功能性地相容專門用語(yǔ)將是"委派",因?yàn)槠渥鳛橐粎f(xié)調(diào)看守者,只為了與較高層級(jí) 域協(xié)調(diào),而不為了與在同屬性群組織同儕之間協(xié)調(diào)。應(yīng)注意到,于此定義在一 〃管理者仲裁 〃及〃同儕合作〃同屬性群組之間的區(qū)別,只有對(duì)于具有三個(gè)或三個(gè)以上的核心的同屬性群 組是有意義的。一般而言,對(duì)某些預(yù)定活動(dòng)而言,任何既定核心只可與其同屬性群組的組成 者或共同組成者進(jìn)行協(xié)調(diào),而且對(duì)于任何管理者仲裁的同屬性群組而言,僅有一部分,例如 較優(yōu)的"共同組成者"或較差組成者,得以適用。
[0108] 從一節(jié)點(diǎn)階層的節(jié)點(diǎn)與節(jié)點(diǎn)連接的角度說(shuō)明上面的階層式協(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)一步的說(shuō),一核心的節(jié)點(diǎn)地連接的〃共同組成者〃核心包含其管理者核心(如果 有的話)、以及其是節(jié)點(diǎn)地連接的任何同等階級(jí)的核心(例如,在其的一同儕協(xié)調(diào)同屬性群 組,核心為一部分)。又,不具有附屬家族核心的任何核心于此亦被稱為〃終端〃節(jié)點(diǎn)或〃 終端〃核心。
[0109] 到目前為止,階層式協(xié)調(diào)系統(tǒng)于這些域?qū)?yīng)至核心的一實(shí)體不同的巢狀配置已清 楚地說(shuō)明(例如,不同的域?qū)?yīng)至每個(gè)適合的核心、晶片、封裝體以及平臺(tái))。舉例而言,圖 1、9、12、16以及22所顯示的階層式協(xié)調(diào)系統(tǒng)皆與處理器所顯示的核心的實(shí)體上不同的巢 狀封裝體一致。圖22為一有趣的一致性實(shí)例,其顯示具有多個(gè)不對(duì)稱封裝體的八核心處理 器2202,其中一個(gè)具有三個(gè)雙核心晶片而其余具有單核心晶片。然而,與封裝體核心的實(shí)體 上不同的巢狀方式相符,旁路配線定義一對(duì)應(yīng)的三個(gè)層次階層式協(xié)調(diào)系統(tǒng),其具有相關(guān)作 為好友的封裝體管理者,相關(guān)作為同伴的晶片管理者,以及相關(guān)作為伙伴的晶片核心。
[0110] 但是,依據(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)的多條旁路配線,以使所有的管理者核心 可以是最高層級(jí)同屬性群組的一部分,且每個(gè)管理者核心亦屬于包含本身及其伙伴的一不 同的最低層次同屬性群組。圖14顯示在單一封裝體上的具有四個(gè)雙核心晶片的八核心處 理器。在圖14中,將設(shè)置所需的伙伴、同伴以及好友的三層次階層式協(xié)調(diào)系統(tǒng)的多條旁路 配線。圖15顯示具有兩個(gè)四核心晶片的處理器,于此在每個(gè)晶片內(nèi)的核心間配線需要一二 階階層式協(xié)調(diào)系統(tǒng),以及在每個(gè)晶片的管理者(亦即,好友)之間提供多條晶片間配線來(lái)作 為第三階層式層次的協(xié)調(diào)。圖21顯示類似圖22具有兩個(gè)不對(duì)稱封裝體的另一種八核心處 理器,其中一個(gè)不對(duì)稱封裝體具有三個(gè)雙核心晶片而另一個(gè)具有單一雙核心晶片。但是,如 同圖11,晶片間及封裝體間旁路配線是提供以協(xié)助核心間的二階階層式協(xié)調(diào)系統(tǒng),其中兩 個(gè)封裝體上的所有的管理者核心為相同的同屬性群組的一部分。
[0111] 如上所述,不同深度與協(xié)調(diào)模型的階層式協(xié)調(diào)系統(tǒng),可依期望被應(yīng)用或適用于提 供作為一多核心處理器的共用資源的分布,假若其與多核心處理器的構(gòu)造能力與限制相符 的話。為了更進(jìn)一步說(shuō)明,圖16顯示一種設(shè)置足夠的旁路通訊配線以協(xié)助每個(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è)其核心之間的旁路 配線,所以晶片是能夠協(xié)助階層式協(xié)調(diào)系統(tǒng)的所有三種型式。
[0112] 一般而言,不管域、同屬性群組以及多核心處理器節(jié)點(diǎn)的本質(zhì)與數(shù)目為何,每個(gè)域 中只有唯一一個(gè)核心可被指定為該域以及對(duì)應(yīng)的同屬性群組的管理者。域可具有組成域 (constituent domain),再者,每個(gè)域以及對(duì)應(yīng)的同屬性群組中只有一個(gè)核心將被指定為 該域的管理者。協(xié)調(diào)系統(tǒng)的最高級(jí)核心亦被稱為一"根節(jié)點(diǎn)〃。
[0113] IV.電源狀態(tài)管理
[0114] 在介紹關(guān)于多核心組態(tài)、旁路通訊能力以及階層式關(guān)是的各種概念以后,現(xiàn)在此 說(shuō)明書介紹關(guān)于電源狀態(tài)管理系統(tǒng)的特定考慮的實(shí)施例的某些概念。然而,應(yīng)該明白到,本 發(fā)明適用于除了電源狀態(tài)管理以外的多樣化活動(dòng)的協(xié)調(diào)。
[0115] 在此所說(shuō)明的分配式多核心電源管理實(shí)施例中,多核心處理器的每個(gè)核心包含分 散式與分配式可計(jì)量電源管理邏輯,其復(fù)制于每個(gè)核心上的一個(gè)或多個(gè)微碼常駐常式中。 電源管理邏輯是可操作以接收一目標(biāo)電源狀態(tài),確定其是否為一受限制的電源狀態(tài),啟動(dòng) 包含核心間協(xié)調(diào)的一復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程,并適當(dāng)?shù)胤磻?yīng)。
[0116] 一般而言,一目標(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)可能被提供 以最佳地管理電源。
[0117] 于一實(shí)施例中,預(yù)定操作狀態(tài)包含一有效操作狀態(tài)(例如C0狀態(tài))及多個(gè)漸進(jìn)地 較不有效或敏感的狀態(tài)(例如C1,C2,C3等狀態(tài))。如于此使用的,一漸進(jìn)地較不敏感的或 有效狀態(tài)表示一種相對(duì)于更有效或敏感的狀態(tài)的節(jié)省電源的配置或操作狀態(tài),或相對(duì)不太 敏感的(例如,較慢、較不完全啟動(dòng)、無(wú)法執(zhí)行例如存取例如快取存儲(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) 可能包含各種可程式化操作配置(或由其組成),例如強(qiáng)迫指令依據(jù)執(zhí)程式順序來(lái)執(zhí)行、強(qiáng) 制每時(shí)鐘周期只能發(fā)出一個(gè)指令、每時(shí)鐘周期中只格式化單一指令、每時(shí)鐘周期只轉(zhuǎn)換單 一微指令、每時(shí)鐘周期只引退單一指令、和/或以串列形式存取各種快取存儲(chǔ)器,使用的技 術(shù)例如說(shuō)明于美國(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),其于此并入作參考。
[0118] 可理解,微處理器可能依據(jù)不同的、及獨(dú)立組或部分獨(dú)立的操作狀態(tài)集合而配置。 影響電源消耗、性能和/或響應(yīng)性的各種操作配置可被分配到不同等級(jí)的電源狀態(tài),每個(gè) 等級(jí)可依據(jù)一對(duì)應(yīng)的階層式協(xié)調(diào)系統(tǒng)而獨(dú)立實(shí)施,而每個(gè)系統(tǒng)具有其本身的獨(dú)立界定的 域、域管理者及同屬性群組協(xié)調(diào)模型。
[0119] 一般而言,一個(gè)預(yù)定操作狀態(tài)的等級(jí)可被分成至少兩個(gè)類別:(1)主要的本地 操作狀態(tài)(predominantly local operating states),其只影響到位于核心本地的資 源,或在一般的實(shí)際應(yīng)用下,主要只影響到特定核心的性能;及(2)受限制的操作狀態(tài) (restricted operating states),其將沖擊一個(gè)或多個(gè)由其他核心共用的資源,或在一般 的實(shí)際應(yīng)用下,其相對(duì)地更有可能干擾其他核心的性能。沖擊共用資源的操作狀態(tài)是相關(guān) 于干擾共享該資源的其他核心的電源、性能,效率或響應(yīng)性的相對(duì)較大的可能性。近端操作 狀態(tài)的實(shí)現(xiàn)一般而言并不需要與其他核心協(xié)調(diào),或獲得來(lái)自其他核心協(xié)調(diào)的允許才進(jìn)行。 相較之下,限制操作狀態(tài)的實(shí)現(xiàn)便需要與其他核心進(jìn)行協(xié)調(diào)及許可。
[0120] 在更進(jìn)階的實(shí)施例中,預(yù)定操作狀態(tài)可被分成更多階層式類別,取決于各種資源 是如何共用及共用的程度。例如,一第一組操作狀態(tài)可能定義位于一核心的本地資源的配 置、一第二組操作狀態(tài)可能定義由一晶片的核心共用但不位于該晶片本地資源配置、一第 三組操作狀態(tài)可能定義由一封裝體的核心共用的資源的配置…等。一操作狀態(tài)的實(shí)現(xiàn)需要 與在應(yīng)用的操作狀態(tài)組態(tài)下共享資源的核心進(jìn)行協(xié)調(diào)并取得其許可。
[0121] 一般而言,一種關(guān)于任何既定域的復(fù)合操作狀態(tài)為一個(gè)屬于該域的每個(gè)啟動(dòng)實(shí)體 核心的應(yīng)用操作狀態(tài)的極值(亦即最大或最小值)。于一實(shí)施例中,一實(shí)體核心的應(yīng)用操 作狀態(tài)為核心的最近且仍然正確的目標(biāo)或需求的操作狀態(tài)(如果有的話),或者,如果核心 并不具有一最近的正確的目標(biāo)或需求的操作狀態(tài)的話,實(shí)體核心的應(yīng)用操作狀態(tài)為某些預(yù) 設(shè)值。預(yù)設(shè)值可能是零(例如復(fù)合操作狀態(tài)被計(jì)算為最小值的狀況)、預(yù)定操作狀態(tài)的最 大值(例如復(fù)合操作狀態(tài)被計(jì)算為最大值的狀況)、或者核心的目前實(shí)施的操作狀態(tài)。于 一實(shí)施例中,一核心的應(yīng)用操作狀態(tài)為一電源或操作狀態(tài),例如核心所期望的或需求的電 壓ID(VID)或時(shí)鐘比率值。于另一實(shí)施例中,一核心的應(yīng)用操作狀態(tài)為核心已經(jīng)從所應(yīng)用 的系統(tǒng)軟件接收的最近的有效C-狀態(tài)。
[0122] 在另一實(shí)施例中,一實(shí)體核心的應(yīng)用操作狀態(tài)為核心的最近的仍然正確的目標(biāo)或 需求的操作狀態(tài)的極值(如果有的話),以及將影響位于最高域(如果有的話,核心為此最 高域具有管理者憑證)的本地資源的最極端操作狀態(tài)。
[0123] 因此,關(guān)于處理器的復(fù)合操作狀態(tài)整體看來(lái)將是該處理器的所有的啟動(dòng)實(shí)體核心 的應(yīng)用電源狀態(tài)的最大值或最小值。一種封裝體的復(fù)合電源狀態(tài)將是該封裝體的所有啟動(dòng) 實(shí)體核心所應(yīng)用的電源狀態(tài)的最大值或最小值。一種晶片的復(fù)合電源狀態(tài)將是該晶片的所 有啟動(dòng)實(shí)體核心的應(yīng)用電源狀態(tài)的最大值或最小值。
[0124] 說(shuō)明于此的分散式電源狀態(tài)管理實(shí)施例中,每個(gè)核心的電源管理邏輯的一部分或 常式為同步邏輯,其被設(shè)計(jì)成至少有條件地與其他節(jié)點(diǎn)地連接核心(亦即,同一同屬性群 組的其他核心)交換電源狀態(tài)信息,以決定一混合電源狀態(tài)。一種混合電源狀態(tài)為對(duì)應(yīng)于 本地(native)及同步邏輯的至少一節(jié)點(diǎn)地連結(jié)實(shí)例的核心的應(yīng)用電源狀態(tài)的一極值。在 某些非必要的情況下,由一同步常式計(jì)算及傳回的一混合電源狀態(tài)將準(zhǔn)確地對(duì)應(yīng)至關(guān)于一 應(yīng)用域的復(fù)合電源狀態(tài)。
[0125] 每個(gè)同步邏輯的被喚醒實(shí)例(invoked instance)是被設(shè)計(jì)成在尚未同步的節(jié)點(diǎn) 地連接的核心中至少有條件地產(chǎn)生同步邏輯的從屬實(shí)例,此是開始于最立即同屬性群組的 節(jié)點(diǎn)地連接核心,并繼續(xù)漸進(jìn)地較高層級(jí)同屬性群組的節(jié)點(diǎn)地連接核心(如果有的話,將 進(jìn)行至同步邏輯實(shí)例所屬的核心)。尚未同步的節(jié)點(diǎn)地連接核心為節(jié)點(diǎn)地連接至本身的核 心,其同步邏輯同步化實(shí)例尚未被實(shí)施為一復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程的一部分。
[0126] 此種在同步邏輯的每個(gè)實(shí)例所進(jìn)行的發(fā)現(xiàn)過(guò)程,將遞歸地于尚未同步的節(jié)點(diǎn)地遠(yuǎn) 端核心,更進(jìn)一步地產(chǎn)生(至少有條件地)同步邏輯的從屬實(shí)例,直到所應(yīng)用的潛在被沖擊 域(applicable potentially impact domain)的每一個(gè)核心上,皆有同步邏輯的同步化的 實(shí)例在執(zhí)行為止。在關(guān)于所應(yīng)用域的復(fù)合電源狀態(tài)的發(fā)現(xiàn)程序中,執(zhí)行于一核心上的電源 管理邏輯的實(shí)例,被指定為授權(quán)予啟動(dòng)或執(zhí)行關(guān)于該域的復(fù)合電源狀態(tài)的實(shí)現(xiàn)、且可啟動(dòng)/ 或進(jìn)行實(shí)現(xiàn)的能力。
[0127] V.特定說(shuō)明的實(shí)施例
[0128] 現(xiàn)在將注意力轉(zhuǎn)至附圖所顯示的特定實(shí)施例。
[0129] 于一實(shí)施例中,同步邏輯的每個(gè)實(shí)例經(jīng)由與系統(tǒng)總線不同的旁路通訊或旁通總線 線(核心間通訊配線112、晶片間通訊配線118以及封裝體間通訊配線1133)與其他核心上 的邏輯的同步化實(shí)例進(jìn)行通訊,用以利用一種分散式的分配方式執(zhí)行電源管理。這允許核 心可實(shí)體地設(shè)置在多重晶片上或在多重封裝體上,藉以可能地降低晶片尺寸并改善良率, 且提供系統(tǒng)中的核心數(shù)的高度擴(kuò)充性(scalability),而不會(huì)對(duì)現(xiàn)代的微處理器的晶片與 封裝體的接觸墊與接腳限制造成影響。
[0130] 現(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間的分散式電源管理。
[0131] 每一個(gè)雙核心晶片104包含兩個(gè)處理核心106,晶片0包含核心0及核心1,而晶 片1包含核心2及核心3。每個(gè)晶片104具有一被指定的管理者核心106。于圖1的本實(shí)施 例中,核心〇為晶片〇的管理者核心106,而核心2為晶片1的管理者核心106。于一實(shí)施 例中,每個(gè)核心106包含配置烙絲(configuration fuses),晶片104的制造商可能燒斷配置 熔絲以標(biāo)示核心106何者為晶片104的管理者核心。此外,晶片104的制造商可能燒斷配 置熔絲以對(duì)每個(gè)核心106指定其實(shí)例,亦即,核心106中哪一個(gè)為核心0、核心1、核心2或 核心3。如上所述,專門用語(yǔ)〃伙伴〃是表示在相同晶片104上且彼此溝通的的核心106 ; 因此,于圖1的本實(shí)施例中,核心0及核心1為伙伴,而核心2及核心3為伙伴。專門用語(yǔ) 〃同伴〃于此是表示在不同晶片104上且彼此溝通的管理者核心106 ;因此,于圖1的本實(shí) 施例中,核心0及核心2為同伴。在一實(shí)施例中,偶數(shù)核心106為每個(gè)晶片104的管理者核 心。在一實(shí)施例中,核心0是標(biāo)不為多核心微處理器102的啟動(dòng)服務(wù)處理器(boot service pr〇CeSS〇r(BSP)),其單獨(dú)被授權(quán)以與晶片組114協(xié)調(diào)某些限制活動(dòng),包含允許某些復(fù)合電 源狀態(tài)的實(shí)現(xiàn)。在一實(shí)施例中,BSP核心106通知晶片組114并要求其允許總線116時(shí)鐘的 移除以減少電源消耗、和/或避免在總線116上產(chǎn)生窺探周期,一如后續(xù)于圖3的方塊322 所討論的。于一實(shí)施例中,BSP為核心106,其總線要求輸出是耦接至總線116上的BREQ0 信號(hào)。
[0132] 在每個(gè)晶片104之內(nèi)的兩個(gè)核心106經(jīng)由位于晶片104內(nèi)部的核心間通訊配線 112進(jìn)行通訊。更明確而言,核心間通訊配線112允許在一晶片104之內(nèi)的核心106彼此中 斷,并彼此傳遞訊息用以執(zhí)行分配在多核心微處理器102的核心106間的分散式電源管理。 于一實(shí)施例中,核心間通訊配線112包含平行總線。于一實(shí)施例中,核心間通訊配線112是 類似于說(shuō)明于CNTR. 2528者。
[0133] 此外,核心106經(jīng)由晶片間通訊配線118進(jìn)行通訊。更明確而言,晶片間通訊配線 118允許個(gè)別的晶片104上的管理者核心106彼此中斷,并彼此傳遞訊息以執(zhí)行分配在多核 心微處理器102的核心106間的分散式電源管理。于一實(shí)施例中,晶片間通訊配線118以總 線116時(shí)鐘頻率執(zhí)行。于一實(shí)施例中,核心106傳輸32位訊息至彼此。在傳送或廣播時(shí), 核心106在一總線116周期中于晶片間通訊配線118的單一配線上進(jìn)行設(shè)置,用以表示其 即將傳輸一訊息,然后在接下來(lái)的31個(gè)總線116周期上傳送31位的序列。于每個(gè)晶片間 通訊配線118的末端為一 32位移位寄存器,其累積所接收的單一位而成32位的訊息。于 一實(shí)施例中,32位訊息包含多個(gè)信息欄(field)。一個(gè)信息欄載明依據(jù)說(shuō)明于CNTR. 2534中 的所共用的VRM分配式管理機(jī)制而使用的一 7位需求的VID值。其他信息欄包含關(guān)于電源 狀態(tài)(例如C-狀態(tài))同步的訊息,例如C-狀態(tài)要求值與確認(rèn),其是在核心106之間交換, 如于此所討論的。此外,一特殊訊息值可使一傳送其值的核心106中斷一接收其值的核心 106。
[0134] 于圖1的實(shí)施例中,每個(gè)晶片104包含分別耦接至四個(gè)接腳(以〃ΡΓ、〃Ρ2〃、〃Ρ3〃 以及〃Ρ4〃表示)的四個(gè)接觸墊108。關(guān)于四個(gè)接觸墊108,其中一個(gè)為輸出接觸墊(以 〃0UT〃表示),而另外三個(gè)為輸入接觸墊(以IN 1、IN 2以及IN 3表示)。晶片間通訊配 線118是被設(shè)計(jì)如下。晶片0的OUT接觸墊與晶片1的IN 1接觸墊經(jīng)由單一配線網(wǎng)耦接 至接腳P1 ;晶片1的OUT接觸墊與晶片0的IN 3接觸墊經(jīng)由單一配線網(wǎng)耦接至接腳P2 ;晶 片0的IN2接觸墊與晶片1的IN 3接觸墊經(jīng)由單一配線網(wǎng)耦接至接腳P3 ;而晶片0的IN 1接觸墊與晶片1的IN 2接觸墊經(jīng)由單一配線網(wǎng)耦接至接腳P4。于一實(shí)施例中,核心106 在其所傳輸?shù)碾x開OUT接觸墊108至晶片間通訊配線118 (或如以下于圖11所說(shuō)明的封裝 體間通訊配線1133)的每個(gè)訊息里包含一識(shí)別碼。此識(shí)別碼獨(dú)特地確認(rèn)此訊息預(yù)定到達(dá)的 目標(biāo)核心106,在此所說(shuō)明的實(shí)施例(其中此訊息被廣播至多重接受者核心106)中是有用 的。于一實(shí)施例中,每個(gè)晶片104是依據(jù)在多核心微處理器102制造期間所燒斷的配置熔 絲,而將四個(gè)接觸墊108的其中一個(gè)指定為輸出接觸墊(OUT)。
[0135] 當(dāng)晶片0的管理者核心0想要與晶片1的管理者核心2進(jìn)行通訊時(shí),將在其OUT接 觸墊上的信息傳輸至晶片1的IN 1接觸墊;同樣地,當(dāng)晶片1的管理者核心2想要與晶片 0的管理者核心0進(jìn)行通訊時(shí),將在其OUT接觸墊上的信息傳輸至晶片0的IN 3接觸墊。 因此,于圖1的實(shí)施例中,每個(gè)晶片104只需要一個(gè)輸入接觸墊108而非三個(gè)。然而,制造 具有三個(gè)輸入接觸墊108的晶片104的一項(xiàng)優(yōu)點(diǎn)為其允許在圖1的四核心多核心微處理器 102以及例如圖9所示的八核心多核心微處理器902中的相同晶片104得以被設(shè)計(jì)。此外, 于圖1的本實(shí)施例中,兩個(gè)接腳P是不需要的。然而,制造具有四個(gè)接腳P的晶片104的一 項(xiàng)優(yōu)點(diǎn)為其允許在圖一的相同四核心微處理器102被設(shè)計(jì)成單一四核心微處理器102、而 例如圖11所示的具有兩個(gè)四核心微處理器1102可被設(shè)計(jì)為的八核心系統(tǒng)1100。然而,如 顯示于圖12與14至16的四核心實(shí)施例中,可考慮移除未使用的接腳P與接觸墊108,以在 需要時(shí)減少接觸墊以及接腳數(shù)。此外,例如顯示于圖19與20的本實(shí)施例中的雙核心實(shí)施 例,亦可依據(jù)需要而考慮移除未使用的接腳P與接觸墊108以減少接觸墊以及接腳數(shù)、或?yàn)?其他目的而被部署。
[0136] 在一實(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),其頻 率一般為總線區(qū)塊頻率的比率??偩€116亦包含一 STPCLK信號(hào)(被晶片組114設(shè)置),以要 求核心106允許以移除總線時(shí)鐘信號(hào),亦即允許以停止提供總線時(shí)鐘信號(hào)。多核心微處理 器102從一預(yù)先決定的I/O連接端口地址執(zhí)行在總線116上的一 I/O讀取傳輸(只有其中 一個(gè)核心106執(zhí)行它),以指示晶片組114可設(shè)置STPCLK。如以下所討論的,多重核心106 經(jīng)由核心間通訊配線112與晶片間通訊配線118而彼此溝通,用以決定單一核心106何時(shí) 可執(zhí)行I/O讀取傳輸是有好處的。在一實(shí)施例中,在晶片組114設(shè)置STPCLK后,每一個(gè)核 心106發(fā)布一 STOP GRANT訊息給晶片組114 ;一旦每個(gè)核心106已發(fā)布一 STOP GRANT訊 息后,晶片組114就可移除總線時(shí)鐘。在另一實(shí)施例中,晶片組114具有一配置選擇,以使 其在其移除總線時(shí)鐘之前只期望來(lái)自多核心微處理器102的單一的STOP GRANT訊息。
[0137] 現(xiàn)在參考圖2所顯示的方塊圖,其詳細(xì)顯示依據(jù)本發(fā)明圖1的核心106的其中一 個(gè)典型實(shí)例。依據(jù)一個(gè)實(shí)施例,核心106微結(jié)構(gòu)包含功能單元的一超純量(superscalar)、 非循序執(zhí)行管線。一指令快取202快取從一系統(tǒng)存儲(chǔ)器提取的指令(未顯示)。一指令譯 碼器204是耦接以接收來(lái)自指令快取202的指令(例如x86指令集架構(gòu)指令)。一注冊(cè)別 名表(RAT) 212是耦接以接收來(lái)自指令譯碼器204及來(lái)自一微序列器206的譯碼微指令,并 產(chǎn)生譯碼微指令的依存信息。保留站214是耦接以接收來(lái)自RAT 212的譯碼微指令以及依 存信息。執(zhí)行單元216是耦接以接收來(lái)自保留站214的譯碼微指令并接收供譯碼微指令所 使用的指令運(yùn)算元。運(yùn)算元可能來(lái)自核心106的寄存器(例如通用寄存器及可讀取且可寫 入的特別模塊寄存器(MSR) 238,以及來(lái)自耦接至執(zhí)行單元216的一數(shù)據(jù)快取222。一引退 單元218是耦接以接收由執(zhí)行單元216傳來(lái)的指令執(zhí)行結(jié)果,并將該執(zhí)行結(jié)果引退至核心 106的架構(gòu)狀態(tài)。數(shù)據(jù)快取222是耦接至一總線接口單元(BIU) 224,作為核心106連接至 圖1總線116的接口。一鎖相回路(PLL) 226接收來(lái)自總線116的總線時(shí)鐘信號(hào),并據(jù)以產(chǎn) 生一核心時(shí)鐘信號(hào)242予核心106的各種功能單元。PLL 226可經(jīng)由執(zhí)行單元216而受控 制,例如被禁能。
[0138] 執(zhí)行單元216接收一 BSP指示碼228以及一管理者指示碼232,其分別表示核心 106是否為晶片104的管理者核心與多核心微處理器102的BSP核心。如上所述,BSP指示 碼228與管理者指示碼232可能包含可程式化熔絲。于一實(shí)施例中,BSP指示碼228與管 理者指示碼232是儲(chǔ)存于一特別模塊寄存器(MSR) 238中,其首先由可程式化熔絲值取出, 但其可能藉由軟件寫入至MSR 238而被更新。執(zhí)行單元216亦讀取并寫入控制與狀態(tài)寄存 器(CSR) 234與236,用以與其他核心106溝通。尤其,核心106使用CSR 236,用以經(jīng)由核 心間通訊配線112而與相同晶片104上的核心106溝通,且核心106使用CSR 234,用以通 過(guò)接觸墊108經(jīng)由晶片間通訊配線118而與其他晶片104上的核心106溝通,如以下詳細(xì) 說(shuō)明的。
[0139] 微序列器206包含一微碼存儲(chǔ)器207,其被設(shè)計(jì)以儲(chǔ)存包含電源管理邏輯微碼208 的微碼。為本揭示的目的,于此所使用的專門用語(yǔ)〃微碼〃表示由相同的核心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是在該核心106上執(zhí)行。 處理核心106是對(duì)稱的,因?yàn)樗鼈兠總€(gè)具有相同的指令集架構(gòu)并被設(shè)計(jì)以執(zhí)行包含來(lái)自指 令集架構(gòu)指令的使用者程式。除了核心106以外,多核心微處理器102可能包含一附屬或 服務(wù)處理器(未顯示),其并不具有與核心106相同的指令集架構(gòu)。然而,在本發(fā)明中,核心 106本身(并非附屬或服務(wù)處理器且非任何其他非核心邏輯元件)執(zhí)行分配在多核心微處 理器102的多重處理核心106間的分散式電源管理,以因應(yīng)狀態(tài)轉(zhuǎn)變指令,其較一種代表核 心執(zhí)行電源管理的專用硬件設(shè)計(jì)更有利地提供更強(qiáng)的可調(diào)(尺寸的)能力、可重組性、良率 特性、電源減少和/或晶片實(shí)際面積的減少等優(yōu)點(diǎn)。
[0140] 電源管理邏輯微碼208指令是因應(yīng)至少兩個(gè)條件而被實(shí)施。首先,電源管理邏輯 微碼208可被喚起以實(shí)行核心106的指令集架構(gòu)的一指令。于一實(shí)施例中,x86 MWAIT與 IN指令等可實(shí)行在微碼208中。亦即,當(dāng)指令譯碼器204遇到一 x86 MWAIT或IN指令時(shí), 指令譯碼器204停止提取目前執(zhí)行的使用者程式指令,并將控制權(quán)傳送至微序列器206以 開始提取實(shí)行X86MWAIT或IN指令的電源管理邏輯微碼208中的一常式。其次,電源管理 邏輯微碼208可能因應(yīng)一中斷事件而被喚起。亦即,當(dāng)一中斷事件產(chǎn)生時(shí),核心106停止提 取目前的使用者程式指令,并將控制權(quán)傳送至微序列器206以開始提取掌控中斷事件的電 源管理邏輯微碼208中的一常式。中斷事件包含架構(gòu)中斷、例外、錯(cuò)誤或陷阱(traps),例如 由x86指令集架構(gòu)所界定者。一中斷事件的例子為總線116上的一個(gè)對(duì)于與電源管理相關(guān) 的一些預(yù)設(shè)I/O地址其中一者的I/O讀取傳輸檢測(cè)。中斷事件亦包含非架構(gòu)界定的事件。 于一實(shí)施例中,非架構(gòu)界定的中斷事件包含:經(jīng)由圖1的核心間通訊配線118(例如圖5、6 所描述的連結(jié))發(fā)送信號(hào)或經(jīng)由圖1的晶片間通訊配線118發(fā)送信號(hào)(或經(jīng)由圖11的封 裝體間通訊配線1133發(fā)送信號(hào),以下所討論的)的一核心間中斷需求(例如與圖5與6相 關(guān)所說(shuō)明的);以及藉由晶片組的一 STPCLK設(shè)置或解除設(shè)置的檢測(cè)。于一實(shí)施例中,電源 管理邏輯微碼208指令為核心106微架構(gòu)指令組的指令。在另一實(shí)施例中,微碼208指令 為不同的指令組的指令,其將轉(zhuǎn)變成核心106的微架構(gòu)指令組的指令。
[0141] 圖1的系統(tǒng)100執(zhí)行分配在多重處理核心106之間的分散式電源管理。更明確而 言,每個(gè)核心實(shí)施其本地電源管理邏輯微碼208以響應(yīng)一狀態(tài)轉(zhuǎn)變需求,并轉(zhuǎn)變成目標(biāo)電 源狀態(tài)。目標(biāo)電源狀態(tài)為多個(gè)預(yù)定電源狀態(tài)(例如C-狀態(tài))的任何一個(gè)所需求者。預(yù)定 電源狀態(tài)包含一參考或主動(dòng)操作狀態(tài)(例如ACPI的C0狀態(tài))以及多個(gè)漸進(jìn)地且相對(duì)不太 敏感的狀態(tài)(例如ACPI的Cl、C2、C3等狀態(tài))。
[0142] 現(xiàn)在參考圖3所顯示的流程圖,其依據(jù)本發(fā)明顯示圖1的系統(tǒng)100的操作,用以執(zhí) 行分配在多核心微處理器102的多重處理核心106間的分散式電源管理。具體言之,流程 圖顯示電源管理邏輯微碼208的一部分操作,是因應(yīng)于遭遇一MWAIT指令或類似的命令,以 轉(zhuǎn)變成一新電源狀態(tài)。更明確而言,圖3所顯示的電源管理邏輯微碼208的部分為電源管 理邏輯的一狀態(tài)轉(zhuǎn)變需求處理邏輯(STRHL)常式。
[0143] 為了促進(jìn)對(duì)圖3的更佳理解,MWAIT指令與C-狀態(tài)架構(gòu)的實(shí)施樣態(tài)是 在說(shuō)明每一個(gè)圖3的個(gè)別方塊前被說(shuō)明。MWAIT指令可包含在操作系統(tǒng)(例如, Windows?、Linux?、Mac.OS? )或其他系統(tǒng)軟件中。舉例而言,如果系統(tǒng)軟件知道系 統(tǒng)上的工作量目前是低或不存在的,則系統(tǒng)軟件可能執(zhí)行一 MWAIT指令以允許核心106進(jìn) 入一低電源狀態(tài),直到一事件(例如從一周邊裝置的中斷)要求由核心106服務(wù)為止。另 一例子為,在核心106上執(zhí)行的軟件可能與在另一核心106上執(zhí)行的軟件的共享數(shù)據(jù),是以 在存取由兩個(gè)核心106所共用數(shù)據(jù)時(shí)便需要經(jīng)由例如一信號(hào)(semaphore)的同步;如果在 另一核心106所執(zhí)行的儲(chǔ)存至信號(hào)(store to semaphore)前已經(jīng)過(guò)一段顯著的時(shí)間量時(shí), 則在目前核心106上執(zhí)行的軟件將致使目前核心106經(jīng)由MWAIT指令進(jìn)入低電源狀態(tài),直 到儲(chǔ)存至信號(hào)發(fā)生為止。
[0144] MWAIT指令詳細(xì)說(shuō)明于2009年3月的IntelR 64與IA-32架構(gòu)軟件開發(fā)人員手冊(cè) (Architectures Software Developer's Manual),卷 2A :指令集參考(A-M)的第 3-761 至 3-764頁(yè),而監(jiān)視(MONITOR)指令是詳細(xì)說(shuō)明于相同文件的第3-637經(jīng)由3-639頁(yè),其全部 在此皆并入作參考。
[0145] MWAIT指令可能指定一目標(biāo)C-狀態(tài)。依據(jù)一個(gè)實(shí)施例,C-狀態(tài)0為一執(zhí)行狀態(tài), 而大于〇的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)。
[0146] 依據(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í)行更積極的電源節(jié)約動(dòng)作,雖然個(gè)別皆需要較長(zhǎng)的時(shí)間恢復(fù)至執(zhí)行狀態(tài)??赡苁购诵?106退出低電源狀態(tài)的事件的實(shí)例為一中斷以及藉由另一處理器的儲(chǔ)存至一特別指定的地 址范圍(由先前所執(zhí)行的監(jiān)視(MONITOR)指令所指定)。
[0147] 明顯地,對(duì)C-狀態(tài)的ACPI編號(hào)機(jī)制使用較高的C號(hào)碼以表示漸進(jìn)地較不敏感、較 深的休眠狀態(tài)。藉由使用這種編號(hào)機(jī)制,任何既定的主顧群組(亦即:晶片、封裝體、平臺(tái)) 的復(fù)合電源狀態(tài)將是該組成群組的所有啟動(dòng)核心的應(yīng)用C-狀態(tài)最小值,每個(gè)核心的應(yīng)用 C-狀態(tài)最小值是最近的有效要求C-狀態(tài)(如果有的話)、或是零(如果核心不具備有效的 最近要求應(yīng)用C-狀態(tài)的話。
[0148] 然而,其他等級(jí)的電源狀態(tài)使用漸進(jìn)較高的號(hào)碼以表示漸進(jìn)更敏感的狀態(tài)。舉例 而言,CNTR. 2534說(shuō)明一種指示一期望的電壓識(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涉及決定核心所請(qǐng)求VID值的最大值。因?yàn)橐浑娫礌顟B(tài)編號(hào)機(jī)制可 依上升或下降次序被指定,所以此說(shuō)明書的部分將復(fù)合電源狀態(tài)界定為一"極值",其是相 關(guān)核心的應(yīng)用電源狀態(tài)的最小值或最大值。然而,應(yīng)明白即使所請(qǐng)求的VID及時(shí)鐘比率值 是朝與習(xí)知順序相反的方向"予以訂定(orderable)"(譬如使用從原始值開始的負(fù)計(jì)數(shù)); 因此不管傳統(tǒng)上界定的方向?yàn)楹?,描述于此的更特殊界定的階層式協(xié)調(diào)系統(tǒng)通常亦適用這 些電源狀態(tài)。
[0149] 雖然圖3說(shuō)明一實(shí)施例,于其中核心106響應(yīng)一 MWAIT指令以執(zhí)行分散式電源管 理,但是核心106亦可能響應(yīng)其他形式的輸入而通知核心106其可能進(jìn)入一低電源狀態(tài)。舉 例而言,總線接口單元224可能產(chǎn)生一信號(hào),以因應(yīng)檢測(cè)到總線116上的一 I/O讀取傳輸至 一預(yù)先決定的I/O端口范圍時(shí),用以使核心106進(jìn)入陷阱而執(zhí)行微碼208。再者,核心106 因應(yīng)所接收的其他外部信號(hào)而進(jìn)入陷阱執(zhí)行微碼208的實(shí)施例亦被本發(fā)明所考量,且實(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ù)值的情況。
[0150] 現(xiàn)在把焦點(diǎn)放在圖3的個(gè)別功能方塊上,流程于方塊302開始。于方塊302,圖2 的指令譯碼器204遇到一MWAIT指令并進(jìn)入陷阱而執(zhí)行電源管理邏輯微碼208,且特別是實(shí) 現(xiàn)MWAIT指令的STRHL常式。MWAIT指令載明以"X"表示的一目標(biāo)C-狀態(tài),并在核心106 等待一事件發(fā)生的同時(shí)通知其可能進(jìn)入一最佳化狀態(tài)。具體言之,最佳化狀態(tài)可能是一低 電源狀態(tài),于其中核心106將消耗比核心106遇到MWAIT指令的執(zhí)行狀態(tài)下更少的電源。
[0151] 流程繼續(xù)至方塊303。微碼將"X"儲(chǔ)存成為核心的應(yīng)用或最近的有效要求的電源 狀態(tài),以"Y〃表示??勺⒁獾?,如果核心106尚未遇到一 MWAIT指令、或如果因?yàn)閺哪菚r(shí)起 該指令已被取代或變成陳舊的(譬如藉由一后來(lái)的STPCLK解除設(shè)置)且核心是處于一正 常執(zhí)行狀態(tài),則儲(chǔ)存為核心的應(yīng)用或最近的有效要求電源狀態(tài)的數(shù)值"Y"為0。
[0152] 流程繼續(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消 耗比其處于執(zhí)行狀態(tài)時(shí)更少的電源。最好的狀況是,當(dāng)核心106正休眠時(shí),微序列器206亦 沒有提取并執(zhí)行微碼208指令。流程于方塊306結(jié)束。圖5說(shuō)明為因應(yīng)從休眠被喚醒的核 心106的操作。
[0153] 方塊308表示一條路徑,其是"X"為2或更多的對(duì)應(yīng)于一受限制的電源狀態(tài)時(shí),微 碼208的STRHL常式所執(zhí)行的操作。如上所述,于一實(shí)施例中,2或更多的一種C-狀態(tài)涉 及移除總線116時(shí)鐘??偩€116時(shí)鐘是由核心106所共用的一資源,因此當(dāng)一核心設(shè)有2 或較高的一目標(biāo)C-狀態(tài)時(shí),較佳的方式是核心106通過(guò)于此所說(shuō)明的以一種分配式與協(xié)調(diào) 方式進(jìn)行通訊,用以確認(rèn)每個(gè)核心106已被通知其可以在通知晶片組114 (其可能移除總線 116時(shí)鐘)之前轉(zhuǎn)變成2或更大的C-狀態(tài)。
[0154] 在方塊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ù)快取222)的近端,而PSA包含刷新局部快 取、移除它們的時(shí)鐘以及使它們斷電。在另一實(shí)施例中,多核心微處理器102可能包含由多 重核心106所共用的快取。于本實(shí)施例中,共用的快取無(wú)法被刷新、使它們的時(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 說(shuō)明一種利用一種分配式的分散方式以管理由多重核心所共用的一 VRM的設(shè)備及方法。于 一實(shí)施例中,每個(gè)核心106具有其本身的PLL 226,如于圖2的本實(shí)施例中,以使核心106可 減少其頻率或禁能PLL 226以節(jié)省電源而不會(huì)影響其他核心106。然而,在其他實(shí)施例中, 一晶片104上的核心106可能共用一 PLL。CNTR. 2534說(shuō)明一種利用一種分配式的分散方 式以管理由多重核心所共用的PLL的裝置及方法。于此所說(shuō)明的電源狀態(tài)管理與相關(guān)的同 步邏輯的實(shí)施例,亦可能(或選擇地)被應(yīng)用以利用一種分配式的分散方式來(lái)管理由多重 核心所共用的一 PLL。
[0155] 流程繼續(xù)至方塊312。于方塊312,電源狀態(tài)管理微碼208的STRHL常式呼叫以 sync_C-狀態(tài)表示的另一電源狀態(tài)管理微碼208常式(其是相關(guān)于圖4而詳細(xì)說(shuō)明的),用 以與其他節(jié)點(diǎn)地連接核心106溝通并為多核心微處理器102獲得一合成C-狀態(tài),在圖3中 以Z表示。相對(duì)于正在核心上執(zhí)行的實(shí)例,sync_C-狀態(tài)常式的每個(gè)被喚醒實(shí)例于此稱為 sync_C-狀態(tài)常式的一 〃本地〃實(shí)例。
[0156] 微碼208的STRHL常式喚起具有一輸入?yún)?shù)或探測(cè)(probe)電源狀態(tài)數(shù)值的 sync_C-狀態(tài)常式,探測(cè)電源狀態(tài)數(shù)值等于核心的應(yīng)用電源狀態(tài)(亦即,其最近的有效要求 的目標(biāo)電源狀態(tài)),其是由MWAIT指令所特別指定的在方塊302中所接收的"X"的數(shù)值。喚 起sync_C-狀態(tài)常式開始一復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程,如與圖4相關(guān)而做更進(jìn)一步說(shuō)明者。
[0157] 每個(gè)被喚醒sync_C-狀態(tài)常式計(jì)算一 〃混合"C-狀態(tài)并使〃混合"C-狀態(tài)回復(fù)至 呼叫或?qū)嵤┧ㄓ诖耸荢TRHL常式)的任何程序?!ɑ旌?C-狀態(tài)為所探測(cè)C-狀態(tài)數(shù)值中 的最小值,而所探測(cè)C-狀態(tài)數(shù)值是由被喚醒程序所接收、在核心上執(zhí)行sync_C-狀態(tài)常式 的應(yīng)用C-狀態(tài)、以及由與sync_C-狀態(tài)常式的相關(guān)被引發(fā)實(shí)例所接收的C-狀態(tài)數(shù)值。以下 將說(shuō)明在某些情況之下,混合C-狀態(tài)為共通于本地sync_C-狀態(tài)常式與同步化sync_C-狀 態(tài)常式兩者的域的復(fù)合電源狀態(tài)相關(guān)。以下亦說(shuō)明在其他情況中,混合C-狀態(tài)可能只是域 的一局部合成C-狀態(tài)。
[0158] 一般而言,一域的復(fù)合電源狀態(tài)為該域的所有核心的應(yīng)用電源狀態(tài)的極值(在 ACPI電源狀態(tài)機(jī)制中是最小值)。舉例而言,一晶片104的合成C-狀態(tài)為晶片的所有核心 106的應(yīng)用C-狀態(tài)(例如,最近的有效要求的C-狀態(tài),如果所有核心皆具有這樣的數(shù)值的 話)的最小值。整體看來(lái),多核心微處理器102的合成C-狀態(tài)為多核心微處理器102的所 有核心106的應(yīng)用C-狀態(tài)的最小值。
[0159] 然而,一種混合電源狀態(tài)可能是一應(yīng)用域的復(fù)合電源狀態(tài),或只是局部的復(fù)合電 源狀態(tài)。一局部的復(fù)合電源狀態(tài)將是兩個(gè)以上但小于全部的一應(yīng)用域的核心應(yīng)用電源狀態(tài) 的極值。在一些部分中,此說(shuō)明書表示一種〃至少局部合成電源狀態(tài)〃以包含任何變化的 計(jì)算而得的混合電源狀態(tài)。在一混合電源狀態(tài)與一復(fù)合電源狀態(tài)之間的電位(即使是細(xì)微 的)區(qū)別將通過(guò)圖4C、10及17的說(shuō)明而變得更顯清楚。
[0160] 預(yù)先注意到,多核心微處理器102的一非零的合成C-狀態(tài)表示每個(gè)核心106已看 見載明一非執(zhí)行c-狀態(tài)(亦即,具有1或更大的數(shù)值的C-狀態(tài))的MWAIT ;而一零值的合 成C-狀態(tài)表示并非每個(gè)核心106已看到MWAIT。再者,大于或等于2的數(shù)值表示多核心微 處理器102的所有核心106已接收載明2或更大的C-狀態(tài)MWAIT指令。
[0161] 流程繼續(xù)至決定方塊314。于決定方塊314中,微碼208的STRHL常式檢查于方 塊312所決定的混合C-狀態(tài)〃Z"。如果"Z〃大于或等于2,則流程繼續(xù)至決定方塊318。否 貝1J,流程繼續(xù)至方塊316。
[0162] 于方塊316,微碼208的STRHL常式將核心106置于休眠。流程于方塊316結(jié)束。
[0163] 于決定方塊318,微碼208的STRHL常式判斷核心106是否為BSP。如果是,則流 程繼續(xù)至方塊322 ;否則,流程繼續(xù)至方塊324。
[0164] 于方塊322,BSP 106通知晶片組114其可能要求移除總線116時(shí)鐘和/或抑制在 總線116上產(chǎn)生窺探循環(huán)的允許。
[0165] 于一實(shí)施例中,依據(jù)熟知的Pentium 4總線協(xié)定,唯一被授權(quán)以允許較高的電源 管理狀態(tài)的BSP 106,將通知晶片組114其可能藉由初始化總線116上的一 I/O讀取傳輸至 一預(yù)先決定的I/O端口,來(lái)要求移除總線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)至 休眠狀態(tài)(于方塊324或方塊614),然后通知其他核心106有關(guān)此STPCLK的設(shè)置、發(fā)布其 STOP GRANT訊息,然后進(jìn)行到休眠狀態(tài)。依據(jù)由I/O讀取傳輸而特別指定的預(yù)先決定的1/ 0連接端口地址,晶片組114可隨后抑制在總線116上廣生窺探循環(huán)。
[0166] 流程繼續(xù)至方塊324。于方塊324,微碼208將核心106置于休眠狀態(tài)。流程于方 塊324結(jié)束。
[0167] 現(xiàn)在參考圖4, 一流程圖顯示圖1的系統(tǒng)100的另一元件的操作,其執(zhí)行分配在多 核心微處理器102的多重處理核心106之間的分散式電源管理。更明確而言,流程圖顯示 圖3(與圖6)的電源狀態(tài)管理微碼208的sync_C-狀態(tài)常式的一實(shí)例的操作。雖然圖4為 顯示微碼208的sync_C-狀態(tài)常式的單一實(shí)例的功能性流程圖,但將從下面理解到其經(jīng)由 該常式的多重同步實(shí)例實(shí)現(xiàn)一合成C-狀態(tài)發(fā)現(xiàn)過(guò)程。流程于方塊402開始。
[0168] 于方塊402, 一核心106上的微碼208 (〃sync_C_狀態(tài)微碼208〃)的sync_C_狀態(tài)常 式的一實(shí)例被喚醒并接收一輸入探測(cè)C-狀態(tài),在圖4中以"A"表示。sync_C-狀態(tài)常式的 一實(shí)例可能從MWAIT指令微碼208所執(zhí)行處被喚醒,如相關(guān)于圖3所說(shuō)明,在這種情況下, 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í)例(dependent instance)。 尤其當(dāng)執(zhí)行于另一個(gè)節(jié)點(diǎn)地連接核心上的sync_C_狀態(tài)常式的一本地實(shí)例,可能藉由將一 適當(dāng)?shù)暮诵拈g中斷傳送至本地核心來(lái)產(chǎn)生sync_C-狀態(tài)常式的本地實(shí)例。如相關(guān)于圖6更 詳細(xì)說(shuō)明的,電源狀態(tài)管理微碼208的一核心間中斷處理常式(ICIH)將處理由節(jié)點(diǎn)地連接 核心106所接收的核心間中斷。
[0169] 流程繼續(xù)至決定方塊404。于決定方塊404,如果sync_C_狀態(tài)常式的這個(gè)實(shí)例 (亦即,"本地實(shí)例")是一初始實(shí)例,亦即,如果其是從圖3的MWAIT指令微碼208被喚醒, 則流程繼續(xù)至方塊406。否則,本地實(shí)例是藉由執(zhí)行于一節(jié)點(diǎn)地連接核心上的sync_C-狀態(tài) 常式的外部或本地實(shí)例所產(chǎn)生的一從屬實(shí)例,而流程繼續(xù)至決定方塊432。
[0170] 于方塊406, sync_C-狀態(tài)微碼208藉由程式化圖2的CSR 236來(lái)產(chǎn)生在其伙伴核 心上的一從屬Sync_C-狀態(tài)常式,用以將于方塊402所接收的〃A〃值傳送至其伙伴并用以 中斷伙伴。這將要求伙伴計(jì)算一混合C-狀態(tài)并將其傳回至本地核心106,以下將對(duì)此做更 詳細(xì)的說(shuō)明。
[0171] 流程繼續(xù)至方塊408。于方塊408, sync_C-狀態(tài)微碼208程式化CSR 236,用以檢 測(cè)伙伴已傳回一混合C-狀態(tài)至核心106,如果是,則獲得伙伴的混合C-狀態(tài),在圖4中以 〃B〃表示。應(yīng)注意的是,如果伙伴位于其最活躍的執(zhí)行狀態(tài)(most active running state), 則"B〃的數(shù)值將是零。于一實(shí)施例中,微碼208等待伙伴以響應(yīng)在一回圈中于方塊406做 出的請(qǐng)求,此回圈為一預(yù)先決定的數(shù)值來(lái)輪詢CSR 236,用以檢測(cè)伙伴是否已傳回一混合 C-狀態(tài)。于一實(shí)施例中,此回圈包含一逾時(shí)計(jì)數(shù)器;如果逾時(shí)計(jì)數(shù)器到期,則微碼208假設(shè) 伙伴核心106不再被啟動(dòng)且可被使用、在任何后續(xù)的sync_C-狀態(tài)計(jì)算中并不包含供該伙 伴用的應(yīng)用或假設(shè)C-狀態(tài)、以及隨后也未試圖與伙伴核心106進(jìn)行通訊。再者,在與其他核 心106(亦即,同伴核心與好友核心)的通訊方面,微碼208皆以類似方式操作,不管其是否 經(jīng)由核心間通訊配線112或晶片間通訊配線118 (或于下所說(shuō)明的封裝體間通訊配線1133) 與另一個(gè)核心106相通。
[0172] 流程繼續(xù)至方塊412。于方塊412, sync_C_狀態(tài)微碼208為核心106屬于其的一 部分的晶片104,通過(guò)計(jì)算"A〃與"B〃值的最小值來(lái)算出一混合C-狀態(tài),并以〃C〃做表示。 在一雙核心晶片中,〃C〃將必定是合成C-狀態(tài),因?yàn)椤ˋ〃及〃B〃值表示晶片上的所有(兩 個(gè))核心的應(yīng)用C-狀態(tài)。
[0173] 流程繼續(xù)至決定方塊414。于決定方塊414,如果于方塊412所計(jì)算的〃C"值小于 2,或本地核心106并非是管理者核心106,則流程繼續(xù)至方塊416。否則,"C〃值至少是2且 本地核心106為管理者核心,而流程繼續(xù)至方塊422。
[0174] 于方塊416,常式對(duì)于在方塊412喚起其(于此是STRHL常式)以計(jì)算〃C〃值的呼 叫程序進(jìn)行回復(fù)。流程于方塊416結(jié)束。
[0175] 于方塊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,如以 下更對(duì)此做更詳細(xì)的說(shuō)明。
[0176] 在這一點(diǎn)上,應(yīng)注意sync_C_狀態(tài)微碼208并未在同伴核心中產(chǎn)生sync_C_狀態(tài) 常式的從屬實(shí)例,直到其已經(jīng)決定其自己的晶片本身的合成C-狀態(tài)為止。事實(shí)上,于本說(shuō) 明書中所說(shuō)明的所有的sync_C_狀態(tài)常式皆依據(jù)一相容巢狀域走訪順序進(jìn)行操作。亦即, 每個(gè)sync_C-狀態(tài)常式漸進(jìn)地且有條件地發(fā)現(xiàn)合成C-狀態(tài),首先是在其為一部分(例如, 晶片)的最低域開始,然后,若它是該域的管理者,則以巢狀方式往下一個(gè)較高層級(jí)域進(jìn)行 (例如,在圖1的情況下是處理器本身)的,等等。隨后討論的圖13,將更進(jìn)一步顯示這種尋 訪順序,其中sync_C-狀態(tài)常式有條件地且漸進(jìn)地首先發(fā)現(xiàn)核心為晶片一部分的合成C-狀 態(tài),接著尋訪它為封裝體的一部分(若核心亦為該晶片的管理者),最后尋訪整個(gè)處理器或 系統(tǒng)的(若核心亦為處理器的BSP)。
[0177] 流程繼續(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)的說(shuō)明) 構(gòu)成同伴的晶片合成C-狀態(tài)。
[0178] 流程繼續(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è)晶片上的核心與同伴核心的應(yīng)用C-狀態(tài)的最小值,而非亦屬于同伴的 伙伴的應(yīng)用C-狀態(tài)的最小值)。流程繼續(xù)至決定方塊428。
[0179] 于方塊428,常式將于方塊426所計(jì)算的〃E〃值傳回至其呼叫者。流程于方塊428 結(jié)束。
[0180] 于決定方塊432,如果圖6的核心間中斷處理常式喚醒sync_C-狀態(tài)常式以因應(yīng) 從核心的伙伴的一中斷(亦即,一伙伴喚醒此常式),則流程繼續(xù)至方塊434。否則,核心間 中斷處理常式喚醒sync_C-狀態(tài)常式以因應(yīng)從核心的同伴的一中斷(亦即,同伴產(chǎn)生此常 式),而流程繼續(xù)至方塊466。
[0181] 于方塊434,核心106被其伙伴所中斷,所以sync_C_狀態(tài)微碼208程式化CSR 236,用以獲得由伙伴及其所產(chǎn)生常式所遞送的探測(cè)C-狀態(tài),在圖4中以"F〃表示。流程繼 續(xù)至方塊436。
[0182] 于方塊436, sync_C-狀態(tài)微碼208藉由計(jì)算其本身的應(yīng)用C-狀態(tài)〃Y〃與探測(cè) C-狀態(tài)"F〃(由其伙伴所接收)的最小值來(lái)為其晶片104本身計(jì)算一混合C-狀態(tài),其結(jié)果 是以"G〃表示。在一雙核心晶片中,〃G〃將會(huì)是包含核心106的晶片104的合成C-狀態(tài), 因?yàn)樵谀欠N情況下,"Y"及"F"將分別表示該晶片的所有(兩個(gè))核心的應(yīng)用C-狀態(tài)。
[0183] 流程繼續(xù)至決定方塊438。于決定方塊438,如果于方塊436所計(jì)算的〃G"值小于 2或核心106并非是管理者核心106,則流程繼續(xù)至方塊442。否則,如果〃G〃為至少2且核 心為管理者核心,則流程繼續(xù)至方塊446。
[0184] 于方塊442,為因應(yīng)從其伙伴核心間而來(lái)的中斷請(qǐng)求,sync_C-狀態(tài)微碼208程式 化CSR 236,用以將于方塊436所計(jì)算的"G〃值傳送至其伙伴。流程繼續(xù)至方塊444。于方 塊444, sync_C-狀態(tài)微碼208將于方塊436所計(jì)算的〃G〃值傳回至喚醒它的程序。流程于 方塊444結(jié)束。
[0185] 于方塊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,以下將對(duì)此 做更詳細(xì)說(shuō)明。流程繼續(xù)至方塊448。
[0186] 于方塊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)的說(shuō)明),"H"將構(gòu)成同伴的晶片的合成C-狀態(tài)。 流程繼續(xù)至方塊452。
[0187] 于方塊452, sync_C-狀態(tài)微碼208藉由計(jì)算〃G〃及〃Η〃值的最小值為多核心微 處理器102計(jì)算一混合C-狀態(tài),并以〃J〃來(lái)表示。假設(shè)"Η〃為同伴的晶片合成C-狀態(tài),則 "J"將構(gòu)成處理器的合成C-狀態(tài),因?yàn)?J〃將是"G〃(如上所述,我們知道這是該晶片的合 成C-狀態(tài))及〃Η〃(同伴的晶片合成C-狀態(tài))的最小值,且在處理器上沒有核心被從計(jì)算 所省略的話。如果不是的話,則"J〃可能構(gòu)成處理器的只有一部分的合成C-狀態(tài)(亦即,這 個(gè)晶片上的核心與同伴核心的應(yīng)用C-狀態(tài)的最小值,而非亦屬于同伴的伙伴的應(yīng)用C-狀 態(tài)的最小值)。因此,〃Η〃構(gòu)成處理器的〃至少局部的合成"C-狀態(tài)。
[0188] 流程繼續(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〃值傳回至喚醒它的程序。流 程于方塊456結(jié)束。
[0189] 于方塊466,核心106被其同伴所中斷,所以sync_C_狀態(tài)微碼208程式化CSR 234,用以獲得由同伴所產(chǎn)生常式遞送的輸入探測(cè)C-狀態(tài)于,在圖4中以〃K"表示。
[0190] 由于sync_C-狀態(tài)常式的階層式尋訪順序,同伴將不會(huì)中斷此種核心,除非其已 經(jīng)發(fā)現(xiàn)其晶片的合成C-狀態(tài),所以"K〃會(huì)是所產(chǎn)生同伴的合成C-狀態(tài)。又,應(yīng)注意到因?yàn)?其被一同伴所中斷,這就表示核心106為晶片104的管理者核心106。
[0191] 流程繼續(xù)至方塊468。于方塊468, sync_C_狀態(tài)微碼208藉由計(jì)算其本身的應(yīng)用 C-狀態(tài)〃 Y"與所接收的同伴合成C-狀態(tài)"K〃值的最小值,來(lái)計(jì)算處理器的至少局部的合成 C-狀態(tài),其結(jié)果是以"L"表示。
[0192] 如果"L〃為1,則〃L"無(wú)法是處理器的合成C-狀態(tài),因?yàn)槠洳⑽春喜⑵浠锇榈膽?yīng)用 C-狀態(tài)。如果其伙伴的應(yīng)用C-狀態(tài)為0,則(未被精確發(fā)現(xiàn)下)供處理器用的合成C-狀 態(tài)將是〇。然而,縱使不需要被精確發(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)并非必要。因此合成C-狀態(tài)發(fā)現(xiàn)過(guò)程可能逐漸放松并終止,如于此所顯示的。
[0193] 然而,如果"L〃為0,則其必然是處理器的合成C-狀態(tài),因?yàn)椋ㄈ缟纤觯┨幚砥?的合成C-狀態(tài)無(wú)法超過(guò)處理器的任何一個(gè)混合C-狀態(tài)。于部分說(shuō)明書提到sync_C-狀態(tài) 常式為計(jì)算一 〃至少局部的合成數(shù)值〃的微妙處是有好處的。流程繼續(xù)至決定方塊472。
[0194] 于決定方塊472,如果于方塊468所計(jì)算的〃L"值小于2,則流程繼續(xù)至方塊474。 否則,流程繼續(xù)至方塊478。應(yīng)注意的是本發(fā)明的其他實(shí)施例可省略這種臨界值條件(例 如,L〈2?)以繼續(xù)一合成C-狀態(tài)發(fā)現(xiàn)過(guò)程。在這樣的實(shí)施例中,處理器的每個(gè)啟動(dòng)核心 將無(wú)條件地決定處理器的合成C-狀態(tài)。
[0195] 于方塊474,為因應(yīng)由其同伴而來(lái)的核心間中斷請(qǐng)求,sync_C-狀態(tài)微碼208程式 化CSR 234,用以將于方塊468所計(jì)算的"L〃值傳送至其同伴。再者,應(yīng)注意當(dāng)同伴接收〃L〃 時(shí),其正接收可能構(gòu)成處理器的局部合成數(shù)值。然而,因?yàn)椤↙〃小于2,所以處理器的合成數(shù) 值亦必定小于2,將排除任何更進(jìn)一步判斷處理器的合成數(shù)值的行動(dòng)(如果"L〃為1)。流 程繼續(xù)至方塊476。于方塊476,常式將于方塊468所計(jì)算的"L〃值傳回至其呼叫者。流程 于方塊476結(jié)束。
[0196] 于方塊478, sync_C_狀態(tài)微碼208藉由程式化CSR 236在其伙伴核心上喚醒一 從屬sync_C-狀態(tài)常式,用以將于方塊468所計(jì)算的"L"值傳送至其伙伴并用以中斷伙伴。 這將要求伙伴計(jì)算一混合C-狀態(tài)并將其提供給核心106??勺⒁獾皆趫D1的四核心實(shí)施例 并以圖4的sync_C-狀態(tài)微碼208作說(shuō)明的架構(gòu)中,這將相當(dāng)于請(qǐng)求伙伴提供其最近的請(qǐng) 求C-狀態(tài)(如果有的話)。
[0197] 流程繼續(xù)至方塊482。于方塊482, sync_C-狀態(tài)微碼208程式化CSR 236以檢測(cè) 伙伴已傳回一混合C-狀態(tài)至核心106,并獲得伙伴的混合C-狀態(tài),在圖4中以"M〃表示。可 注意到如果伙伴處于其最活躍的執(zhí)行狀態(tài)時(shí),則"M"的數(shù)值將是零。流程繼續(xù)至方塊484。
[0198] 于方塊484, sync_C-狀態(tài)微碼208藉由計(jì)算"L〃及"M〃值的最小值而為多核心微 處理器102計(jì)算一混合C-狀態(tài),以"N〃表示??勺⒁獾?,在圖1的四核心實(shí)施例并以圖4的 sync_C-狀態(tài)微碼208作說(shuō)明的架構(gòu)中,〃N"必定是處理器的合成C-狀態(tài),因?yàn)槠浒?的晶片合成C-狀態(tài)K、核心自己的應(yīng)用C-狀態(tài)A、以及伙伴的應(yīng)用C-狀態(tài)(后者是并入由 伙伴所傳回的混合電源狀態(tài)M)的最小值,這三個(gè)狀態(tài)一起包含所有四個(gè)核心的應(yīng)用C-狀 態(tài)。
[0199] 流程繼續(xù)至方塊486。于方塊486,為因應(yīng)經(jīng)由其同伴而來(lái)的核心間中斷請(qǐng)求, sync_C-狀態(tài)微碼208程式化CSR 234,用以將于方塊484所計(jì)算的"N〃值傳送至其同伴。 流程繼續(xù)至方塊488。于方塊488,常式將于方塊484所計(jì)算的"N〃值傳回至其呼叫者。流 程于方塊488結(jié)束。
[0200] 現(xiàn)在參考圖5所顯示的流程圖,其顯示依據(jù)本發(fā)明圖1的系統(tǒng)100,用以執(zhí)行分配 在多核心微處理器102的多重處理核心106間的分散式電源管理的操作。更明確而言,此流 程圖顯示藉由電源狀態(tài)管理微碼208的喚起與重新開始(wake-and-resume)常式的核心, 以因應(yīng)核心106被一事件從一休眠狀態(tài)(例如從圖3的方塊306、316或324,或從圖6的方 塊614進(jìn)入)喚醒后的操作。流程于方塊502開始。
[0201] 于方塊502,核心106因應(yīng)一事件而從其休眠狀態(tài)醒來(lái),并藉由提取及執(zhí)行微碼 208的一指令處理程序而重新開始。事件可能包含但并未受限于:一核心間中斷,亦即經(jīng)由 核心間通訊配線112或晶片間通訊配線118 (或圖11實(shí)施例的封裝體間通訊配線1133)從 另一核心106而來(lái)的中斷;藉由晶片組114的總線116上的STPCLK信號(hào)的設(shè)置;藉由晶片 組114在總線116上對(duì)STPCLK信號(hào)解除設(shè)置(deassertion);以及另一型式的中斷,例如 一外部中斷要求信號(hào)的設(shè)置,例如可能藉由一周邊裝置(例如USB裝置)而產(chǎn)生。流程繼 續(xù)至決定方塊504。
[0202] 于決定方塊504,喚起與重新開始常式判斷核心106是否被另一核心106的中斷所 喚起。如果是,則流程繼續(xù)至方塊506 ;否則,流程繼續(xù)至決定方塊508。
[0203] 于方塊506,一核心間中斷常式掌控核心間中斷,如相關(guān)于圖6所詳細(xì)說(shuō)明的。流 程于方塊506結(jié)束。
[0204] 于決定方塊508,喚起與重新開始常式判斷核心106是否被藉由晶片組114在總線 116上設(shè)置STPCLK信號(hào)置所喚起。如果是,則流程繼續(xù)至方塊512 ;否則,流程繼續(xù)至決定 方塊516。
[0205] 于方塊512,為因應(yīng)于圖3的方塊322或于圖6的方塊608所執(zhí)行的I/O讀取傳輸, 晶片組114已設(shè)置STPCLK請(qǐng)求移除總線116時(shí)鐘的允許?;貞?yīng)于此,核心106微碼208在 總線116上發(fā)布一 STOP GRANT訊息,以通知晶片組114其可能移除總線116時(shí)鐘。如上所 述,于一實(shí)施例中,晶片組114將持續(xù)等待,直到所有核心106已發(fā)布STOP GRANT訊息后再 移除總線116時(shí)鐘。而在另一實(shí)施例中,可在單一核心106已發(fā)布STOP GRANT訊息之后, 由晶片組114移除總線116時(shí)鐘。流程繼續(xù)至方塊514。
[0206] 于方塊514,核心106返回至休眠。而晶片組114將移除總線116時(shí)鐘,以便減少 因多核心微處理器102的電源消耗,如上所述。最后,晶片組114將恢復(fù)總線116時(shí)鐘,然 后解除設(shè)置STPCLK,以便使核心106回復(fù)至它們的執(zhí)行狀態(tài),俾能使它們可以執(zhí)行使用者 指令。流程于方塊514結(jié)束。
[0207] 于決定方塊516,喚起與重新開始常式判斷核心106是否藉由晶片組114于總線 116上的STPCLK信號(hào)的解除設(shè)置所喚起。如果是,則流程繼續(xù)至方塊518 ;否則,流程繼續(xù) 至方塊526。
[0208] 于方塊518,為因應(yīng)一事件(例如系統(tǒng)計(jì)時(shí)器中斷或周邊中斷),晶片組114已恢 復(fù)總線116時(shí)鐘并解除設(shè)置STPCLK以使核心106再開始執(zhí)行?;貞?yīng)于此,喚起與重新開始 常式解除于方塊308所執(zhí)行的電源節(jié)約動(dòng)作。舉例而言,微碼208可能使電源恢復(fù)予核心 106局部快取、增加核心106時(shí)鐘頻率、或增加核心106操作電壓。此外,核心106可能使電 源恢復(fù)予共用快取,舉例而言,如果核心106為BSP。流程繼續(xù)至方塊522。
[0209] 于方塊522,喚起與重新開始常式讀取并寫入CSR 234與236,用以通知所有其他 核心106這個(gè)核心106已醒來(lái)且再度執(zhí)行。喚起與重新開始常式可儲(chǔ)存〃0〃以作為核心的 應(yīng)用或者最新的有效要求C-狀態(tài)。流程繼續(xù)至方塊524。
[0210] 于方塊524,喚起與重新開始常式終止并將控制返回至指令譯碼器204,以重新開 始譯碼提取的使用者程式指令(例如,x86指令)。具體言之,典型的使用者指令提取與執(zhí) 行將在MWAIT指令之后的指令重新開始。流程于方塊524結(jié)束。
[0211] 于方塊526,喚起與重新開始常式處理其他中斷事件,例如上述相關(guān)于方塊502 者。流程于方塊526結(jié)束。
[0212] 現(xiàn)在參考圖6所顯示的流程圖,其顯示本發(fā)明圖1的系統(tǒng)100用以執(zhí)行分配在多 核心微處理器102的多重處理核心106之間的分散式電源管理操作。更明確而言,此流程 圖顯示微碼208的核心間中斷處理常式(ICIHR)的操作,其是因應(yīng)接收一核心間中斷,亦即 經(jīng)由核心間通訊配線112或晶片間通訊配線118(例如可能于圖4的方塊406、422、446或 478所產(chǎn)生的)從另一核心106的中斷所執(zhí)行的操作。微碼208可能藉由輪詢(如果微碼 208已經(jīng)執(zhí)行)采取一核心間中斷、或者微碼208可能采取一核心間中斷以作為在使用者程 式指令之間的一真正的中斷、或者中斷可能使微碼208從核心106正休眠的狀態(tài)喚醒。
[0213] 流程于方塊604開始。于方塊604,中斷核心106的ICIHR依據(jù)圖4呼叫一本地 sync_C-狀態(tài)常式,以繼續(xù)由另一核心所開始的同步化電源狀態(tài)發(fā)現(xiàn)過(guò)程?;貞?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)常式將依附(will depend)于外部sync_C_狀態(tài)常式。又,大于或 等于2的數(shù)值表示"PC〃為一種多核心微處理器102的所有核心106的完全且非僅是局部 的合成C-狀態(tài),并表示處理器的所有核心106已接收指定"PC〃或更大的C-狀態(tài)數(shù)值的一 MWAIT指令。
[0214] 流程繼續(xù)至方塊606。于方塊606,微碼208決定于方塊604所獲得的"PC〃的數(shù) 值是否大于或等于2,以及核心106是否被授權(quán)以執(zhí)行或允許"PC"C-狀態(tài)的執(zhí)行(例如,核 心106為BSP)。如果是,則流程繼續(xù)至方塊608 ;否則,流程繼續(xù)至決定方塊612。
[0215] 于方塊608,核心106 (例如,當(dāng)BSP核心106被授權(quán)如此做時(shí))通知晶片組114其 可能要求移除總線116時(shí)鐘的許可,如于上述的方塊322。流程繼續(xù)至決定方塊612。
[0216] 于決定方塊612,微碼208決定其是否從休眠被喚起。如果是,則流程繼續(xù)至方塊 614 ;否則,流程繼續(xù)至方塊616。
[0217] 于方塊614,微碼208返回至休眠。流程于方塊614結(jié)束。
[0218] 于方塊616,微碼208離開并歸還控制權(quán)返回至指令譯碼器204,并重新開始對(duì)所 提取的使用者程式指令進(jìn)行解譯。流程于方塊616結(jié)束。
[0219] 現(xiàn)在參考圖7所顯示的流程圖,其顯示本發(fā)明圖1的系統(tǒng)100依據(jù)圖3至6所說(shuō) 明流程的操作實(shí)例。在圖7的例子中,使用者程式同時(shí)有效地在核心106上執(zhí)行,每個(gè)執(zhí)行 一 MWAIT指令。相較之下,在圖8的例子中,使用者程式有效地在核心106上執(zhí)行,每個(gè)于 不同的時(shí)間執(zhí)行一 MWAIT指令,亦即在另一核心已執(zhí)行一 MWAIT指令而進(jìn)入休眠之后才執(zhí) 行。這些例子一起顯示核心106的微碼208的特征,以及它們?cè)诟鞣N核心106上處理不同 順序MWAIT指令的能力。圖7包含四行,每行對(duì)應(yīng)于圖1的四個(gè)核心106的每一個(gè)。如以 上相關(guān)于圖1所顯示與所述者,核心〇與核心2為它們的晶片104的管理者核心,而核心0 為多核心微處理器102的BSP。圖7的每行表示由各個(gè)核心106所采取的動(dòng)作。圖7每列 的動(dòng)作向下流程則表示時(shí)間的經(jīng)過(guò)。
[0220] 首先,每個(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ǔ)存為其所應(yīng)用的以及最近的有效要求C-狀 態(tài)"Y"。
[0221] 其次,每個(gè)核心106將其應(yīng)用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)。
[0222] 因?yàn)楹诵?與核心2是管理者核心,所以它們彼此(亦即,它們的同伴)傳送各自 的"C"值給對(duì)方(于方塊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)。
[0223] 因?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)。
[0224] 當(dāng)所有的核心106休眠時(shí),晶片組114設(shè)置STPCLK將喚醒每個(gè)核心106 (于方塊 502)。每一個(gè)核心106回應(yīng)地發(fā)布一 STOP GRANT訊息給晶片組114 (于方塊512),然后返 回至休眠(于方塊514)。核心106可能休眠持續(xù)一段不明確的時(shí)間量,在沒有電源節(jié)約動(dòng) 作與休眠的益處下,仍可比它們正常操作時(shí)消耗更少的電源。
[0225] 最后,發(fā)生一喚醒事件。在此例子中,晶片組114解除設(shè)置STPCLK,其喚醒每一個(gè) 核心106 (于方塊502)。每一個(gè)核心106回應(yīng)地解除其先前的電源節(jié)約動(dòng)作(于方塊518), 并離開其微碼208且恢復(fù)至提取并執(zhí)行使用者碼(于方塊524)。
[0226] 現(xiàn)在參考圖8所顯示的流程圖,其顯示依據(jù)本發(fā)明圖1的系統(tǒng)100依據(jù)圖3至6 所說(shuō)明操作流程的第二實(shí)例。圖8的流程圖類似于圖7 ;然而,在圖8的例子中,每個(gè)有效 地在核心106上執(zhí)行的使用者程式于不同的時(shí)間執(zhí)行一 MWAIT指令,亦即在另一個(gè)核心在 執(zhí)行一 MWAIT指令且已前進(jìn)至休眠之后才執(zhí)行。
[0227] 核心3首先遇到一個(gè)具有特定目標(biāo)C-狀態(tài)"X"為4的MWAIT指令(于方塊302)。 核心3回應(yīng)地執(zhí)行其相關(guān)的電源節(jié)約動(dòng)作(于方塊308),并將"X"儲(chǔ)存為其應(yīng)用C-狀態(tài), 以下更進(jìn)一步以"Y〃表示。核心3接著將其應(yīng)用C-狀態(tài)作為一探測(cè)C-狀態(tài)傳送至其伙伴, 核心2,(于方塊406),如以具有"A"標(biāo)記值的箭號(hào)所表示,其將中斷核心2。
[0228] 核心2被其伙伴核心3所中斷(于方塊604)。因?yàn)楹诵?仍然處于一執(zhí)行狀態(tài), 所以其自己的應(yīng)用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)。
[0229] 核心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)。
[0230] 核心2隨后遇到一個(gè)具有特定目標(biāo)C-狀態(tài)"X"為5的MWAIT指令(于方塊302)。 核心2回應(yīng)地執(zhí)行相關(guān)的電源節(jié)約動(dòng)作(于方塊308),并將"X"儲(chǔ)存為其應(yīng)用C-狀態(tài),隨 后對(duì)核心2以"Y"表示。核心2接著將"Y"(其為5)作為一探測(cè)C-狀態(tài)傳送至其伙伴,核 心3,(于方塊406),如以具有"A"標(biāo)記值的箭號(hào)所表示,其將中斷核心3。
[0231] 核心3是被喚醒核心3的其伙伴核心2所中斷(于方塊502)。因?yàn)楹诵?之前遇 到C-狀態(tài)為4的MWAIT指令,且該數(shù)值仍然是正確的,其應(yīng)用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)、以及自己的應(yīng)用C-狀態(tài)(亦即,5),并將4的〃G"值作為一混合C-狀態(tài)傳回 至其伙伴核心2 (于方塊442)。核心3接著返回至休眠(于方塊444)。
[0232] 核心2接收其伙伴核心3的混合C-狀態(tài)(于方塊408),以"B〃表示并具有4的 數(shù)值,然后計(jì)算其晶片104合成C-狀態(tài)"C〃值(于方塊412)作為混合C-狀態(tài)的一最小 值(亦即,4)、以及自己的應(yīng)用C-狀態(tài)(亦即,4)。因?yàn)楹诵?已發(fā)現(xiàn)其最低層次域的合成 C-狀態(tài)是至少為2的數(shù)值,但作為該域的管理者的核心2則屬于一較高層級(jí)的同屬性群組, 所以其(核心2)接著將自己的"C〃值(為4)傳送至其同伴核心0(于方塊422),其將中斷 核心0。
[0233] 核心0是被其同伴核心2所中斷(于方塊604)。因?yàn)楹诵?處于一執(zhí)行狀態(tài),所 以其應(yīng)用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)。
[0234] 核心2接收其同伴核心0的混合C-狀態(tài)(于方塊424),以"D〃表示并具有0的數(shù) 值,然后計(jì)算其自己混合C-狀態(tài)(于方塊426),其是以"E〃表示。因?yàn)?E〃值為0,所以核 心2進(jìn)行到休眠(于方塊316)。
[0235] 核心0接著遇到一個(gè)特定目標(biāo)C-狀態(tài)〃X〃為4的MWAIT指令(于方塊302)。核 心0回應(yīng)地執(zhí)行相關(guān)的電源節(jié)約動(dòng)作(于方塊308),并將"X"儲(chǔ)存為其應(yīng)用C-狀態(tài),以 〃Y〃表示。然后,核心〇將〃Y"(其為4)作為一探測(cè)C-狀態(tài)傳送至其伙伴,核心1,(于方 塊406),以具有"Α"標(biāo)記值的箭號(hào)表示,其將中斷核心1。
[0236] 核心1是被其伙伴核心0所中斷(于方塊604)。因?yàn)楹诵?仍然處于一執(zhí)行狀 態(tài),所以其應(yīng)用C-狀態(tài)為0,以〃Υ"表示(在方塊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)。
[0237] 核心0接收其伙伴核心1的數(shù)值為0的混合C-狀態(tài)"Β〃(于方塊408)。核心0接 著計(jì)算其晶片104合成C-狀態(tài)"C〃(于方塊412)。因?yàn)?C〃的數(shù)值為0,所以核心0進(jìn)行 到休眠(于方塊316)。
[0238] 核心1隨后遇到一個(gè)具有特定目標(biāo)C-狀態(tài)"X"為3的MWAIT指令(于方塊302)。 核心1回應(yīng)地將"X"儲(chǔ)存為其應(yīng)用電源狀態(tài)"Υ",并執(zhí)行相關(guān)的電源節(jié)約動(dòng)作(于方塊 308)。然后,核心1將其應(yīng)用C-狀態(tài)"Υ〃(為3)傳送至其伙伴,核心0,(于方塊406),如 以具有"Α"標(biāo)記值的箭號(hào)表示,其將中斷核心0。
[0239] 核心0是被喚醒核心0的伙伴核心1所中斷(于方塊502)。因?yàn)楹诵?以前遇 到目標(biāo)C-狀態(tài)為4的MWAIT指令,所以其應(yīng)用C-狀態(tài)為4,以"Υ〃表示(在方塊604中)。 核心0接收核心1的探測(cè)C-狀態(tài)(于方塊434),以"F"表示并具有3的數(shù)值。核心0接著 計(jì)算其晶片104合成C-狀態(tài)"G〃(于方塊436),并將3的〃G"值傳送至其同伴核心2 (于方 塊446),其將中斷核心2。
[0240] 核心2是被其同伴核心0所中斷(于方塊604),同伴核心0喚醒核心2 (于方塊 502)。因?yàn)楹诵?之前遇到C-狀態(tài)為5的MWAIT指令,所以其應(yīng)用C-狀態(tài)為5,以〃Y〃表 示(在方塊604中)。核心2接收核心0的探測(cè)C-狀態(tài)(于方塊466),以"Κ"表示并具有 3的數(shù)值。核心2接著計(jì)算一 〃混合"C-狀態(tài)"L〃(于方塊468),并將3的"L〃值傳送至其 伙伴核心3 (于方塊474),其將中斷核心3。
[0241] 核心3是被喚醒核心3的伙伴核心2所中斷(于方塊502)。因?yàn)楹诵?之前遇到 C-狀態(tài)為4的MWAIT指令,所以其應(yīng)用C-狀態(tài)為4,以"Υ〃表示(在方塊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è)核心的應(yīng)用C-狀態(tài),所以"G〃構(gòu)成多核心處理器102合成C-狀態(tài)。然而,因 為核心3并非是BSP且從休眠被喚起,所以核心3返回至休眠(于方塊614)。
[0242] 核心2接收其伙伴核心3的數(shù)值為3的混合C-狀態(tài)"Μ〃(于方塊482)。核心2 接著計(jì)算一混合C-狀態(tài)"Ν〃(于方塊484)。然后,核心2將3的〃Ν"值傳送至其同伴核心 〇(于方塊486)。再者,因?yàn)?Ν"負(fù)責(zé)每一個(gè)核心的應(yīng)用C-狀態(tài),所以"Ν"亦需要構(gòu)成多核 心處理器102合成C-狀態(tài)。然而,因?yàn)楹诵?并非是BSP且從休眠被喚起,所以核心2返 回至休眠(于方塊614)。
[0243] 核心0接收其同伴核心2的數(shù)值為3的C-狀態(tài)"Η"(于方塊448)。核心0接著又 計(jì)算混合C-狀態(tài)"J〃(數(shù)值為3)(于方塊452),并將其傳送至伙伴核心1 (于方塊454)。再 者,因?yàn)?J〃負(fù)責(zé)每一個(gè)核心的應(yīng)用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)。
[0244] 核心1接收其伙伴核心0的數(shù)值為3的C-狀態(tài)"Β〃(于方塊408)。核心1亦計(jì) 算一混合C-狀態(tài)"C〃(于方塊412),其為3且其亦構(gòu)成多核心處理器102合成的C-狀態(tài)。 因?yàn)楹诵?并非是BSP,所以核心1進(jìn)行到休眠(于方塊316)。
[0245] 現(xiàn)在所有核心106就像它們?cè)趫D7的例子般是處于休眠狀態(tài),且事件的進(jìn)行方式 亦類似于圖7所說(shuō)明的方式,亦即,晶片組114設(shè)置STPCLK并喚醒核心106,等等。
[0246] 明顯地,藉由這個(gè)最終同步化電源狀態(tài)發(fā)現(xiàn)過(guò)程完成的期間,所有的核心已各別 計(jì)算多核心處理器102合成C-狀態(tài)。
[0247] 于一實(shí)施例中,微碼208被設(shè)計(jì)成無(wú)法被中斷。因此,在圖7的例子中,當(dāng)每個(gè)核 心106的微碼208被喚醒以處理其各個(gè)MWAIT指令時(shí),當(dāng)另一個(gè)核心106試圖中斷微碼208 時(shí)它并未被中斷。取而代的的是,舉例而言,核心〇看到核心1已送出其C-狀態(tài),并于方塊 408獲得來(lái)自核心1的C-狀態(tài),認(rèn)為核心1于方塊406送出其C-狀態(tài)以因應(yīng)核心0中斷核 心1。同樣地,核心1看到核心0已送出其C-狀態(tài),并于方塊408獲得來(lái)自核心1的C-狀 態(tài),認(rèn)為核心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),無(wú)論核心0是否將其C-狀態(tài)送出至核心1以因應(yīng)接收來(lái)自核心1的一中斷或者因 應(yīng)遇到一 MWAIT指令,在這種情況下,兩個(gè)C-狀態(tài)可同時(shí)跨越核心間通訊配線112 (或跨越 晶片間通訊配線118,或跨越封裝體間通訊配線1133,于圖11的本實(shí)施例中)而傳送。因 此,有利的是,微碼208可適當(dāng)?shù)夭僮饕詧?zhí)行多核心微處理器102的核心106間的分散式電 源管理,而不管由各種核心106所接收MWAIT指令的事件的順序?yàn)楹巍?br>
[0248] 如可從前文觀察到的,廣義來(lái)說(shuō),當(dāng)一核心106遇到一 MWAIT指令時(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)楹?,?有核心106計(jì)算相同的合成C-狀態(tài)。再者,較佳是,不管核心106接收它們的MWAIT指令 的順序?yàn)楹危鼈円砸环N分配式方式彼此協(xié)調(diào),以使多核心微處理器102可作為單一實(shí)體 與晶片組114溝通有關(guān)要求參與相對(duì)于多核心微處理器102是全域性的電源節(jié)約動(dòng)作的許 可,例如移除總線116時(shí)鐘。有利的是,這種分配式C-狀態(tài)同步以達(dá)成電源管理的實(shí)施樣 態(tài),是在不需要使用位于的晶片104上但位于核心106外部的執(zhí)行電源管理的專用硬件的 情形下被執(zhí)行,其可能提供下述優(yōu)點(diǎn):可調(diào)(尺寸的)能力、可重組性、良率特性、電源減少 以和/或晶片實(shí)際尺寸減少。
[0249] 可注意到,具有不同數(shù)目及配置的核心106的其他多核心微處理器實(shí)施例的每個(gè) 核心106可能采用類似的微碼208,如相關(guān)于圖3至6所說(shuō)明的。舉例而言,一種在單一晶 片104 (例如圖18所示)中具有兩個(gè)核心106的雙核心微處理器1802實(shí)施例的每個(gè)核心 106可能采用類似的微碼208,如相關(guān)于認(rèn)定每個(gè)核心106只具有一伙伴且沒有同伴的圖3 至6所說(shuō)明的。同樣地,一種具有兩個(gè)單核心晶片104(例如圖19所示)的雙核心微處理 器1902實(shí)施例的每個(gè)核心106可能采用類似的微碼208,如相關(guān)于認(rèn)定每個(gè)核心106只具 有一同伴且沒有伙伴(或者重新指派核心106為同伴)的圖3至6所說(shuō)明的。同樣地,一 種具有單核心單一晶片封裝體104 (例如圖20所示)的雙核心微處理器2002實(shí)施例的每 個(gè)核心106可能采用類似的微碼208,如相關(guān)于認(rèn)定每個(gè)核心106只具有一好友且沒有同伴 或伙伴(或者重新指派核心106為同伴)的圖3至6所說(shuō)明的。
[0250] 再者,其他具有核心106的不對(duì)稱配置(例如圖21及22所顯示者)的多核心微 處理器實(shí)施例的每個(gè)核心106,可能采用相對(duì)于圖3至6而改變的類似微碼208,例如以下 相關(guān)于圖10、13以及17所述。再者,除于此所說(shuō)明的具有不同數(shù)目及配置的核心106和/ 或封裝體(其采用以下相關(guān)于圖3至6以及10、13與17所說(shuō)明的核心106的微碼208的 操作組合)之外的系統(tǒng)實(shí)施例等,亦被本發(fā)明所考慮在內(nèi)并得以依實(shí)際應(yīng)用做等效修飾。
[0251] 現(xiàn)在參考圖9所顯示的方塊圖,其顯示本發(fā)明的計(jì)算機(jī)系統(tǒng)900執(zhí)行分配在一多 核心微處理器902的多重處理核心106間的分散式電源管理的一替代實(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)示為該 晶片的管理者。
[0252] 封裝體上的晶片管理者具有多條將每個(gè)晶片連接至每隔一個(gè)晶片的晶 片間通訊配線。這允許一協(xié)調(diào)系統(tǒng)的實(shí)現(xiàn),于其中晶片管理者包含一同儕合作 (peer-collaborative)同屬性群組的成員;亦即,每個(gè)晶片管理者是能夠與封裝體上的任 何其他晶片管理者協(xié)調(diào)。晶片間通訊配線118是被設(shè)計(jì)如下。晶片0的OUT接觸墊、晶片 1的IN 1接觸墊、晶片2的IN 2接腳以及晶片3的IN 3接腳是經(jīng)由單一配線網(wǎng)耦接至接 腳P1 ;晶片1的OUT接觸墊、晶片2的IN 1接觸墊、晶片3的IN 2接觸墊以及晶片0的IN 3接觸墊是經(jīng)由單一配線網(wǎng)耦接至接腳P2 ;晶片2的OUT接觸墊、晶片3的IN 1接觸墊、晶 片0的IN 2接觸墊以及晶片1的IN 3接觸墊是經(jīng)由單一配線網(wǎng)耦接至接腳P3 ;晶片3的 OUT接觸墊、晶片0的IN 1接觸墊、晶片1的IN 2接觸墊以及晶片2的IN 3接觸墊是經(jīng)由 單一配線網(wǎng)耦接至接腳P4。
[0253] 當(dāng)每一個(gè)管理者核心106想要與其他晶片104溝通時(shí),將傳輸其OUT接觸墊108 上的信息,且此信息廣播至其他晶片104,并經(jīng)由適當(dāng)?shù)腎N接觸墊108被各自的管理者核心 106所接收。如可從圖9觀察到的,有利的是每個(gè)晶片104上的接觸墊108的數(shù)目與封裝 體902上接腳P的數(shù)目(亦即,關(guān)于分配在于此所說(shuō)明的多重核心之間的分散式電源管理 的接觸墊與接腳;而,多核心微處理器102當(dāng)然可包含用于其他目的的其他接觸墊與接腳, 例如數(shù)據(jù)、地址以及控制總線)是不大于晶片104的數(shù)目,其為一相當(dāng)小的數(shù)目。這在一接 觸墊有限的和/或接腳有限的設(shè)計(jì)上特別有利,而這可能是共通的,因?yàn)闃?biāo)準(zhǔn)晶片/封裝體 上的接觸墊/接腳數(shù)目是有規(guī)范的,對(duì)于微處理器制造商而言嘗試去遵循這些標(biāo)準(zhǔn)數(shù)值有 其經(jīng)濟(jì)效益,而在這種情形下可能已使用大部分的接觸墊/接腳。再者,說(shuō)明于下的替代實(shí) 施例,其每個(gè)晶片104上的接觸墊108的數(shù)目為或可能為小于晶片104的數(shù)目。
[0254] 現(xiàn)在參考圖10所顯示的流程圖,其顯示依據(jù)本發(fā)明圖9的系統(tǒng)900執(zhí)行分配在八 核心微處理器902的多重處理核心106間的分散式電源管理的操作流程。更明確而言,圖 10的流程圖顯示圖3 (與圖6) sync_C-狀態(tài)微碼208的操作,類似于圖4的流程圖,其在許 多方面是相似的,且相同號(hào)碼的方塊是類似的。然而,在圖10的流程圖中所說(shuō)明的核心106 的sync_C-狀態(tài)微碼208負(fù)責(zé)八個(gè)核心106存在的情形而非于圖1的本實(shí)施例中的四個(gè)核 心106,而現(xiàn)在說(shuō)明差異。尤其,晶片104的每個(gè)管理者核心106具有三個(gè)同伴核心106而 非一個(gè)同伴核心106。此外,管理者核心106 -起界定一同儕合作同屬性群組,于其中任何 同伴可以直接任何其他同伴協(xié)調(diào),無(wú)須藉由封裝體管理者或BSP來(lái)仲裁。
[0255] 流程開始于圖10中的方塊402,并繼續(xù)經(jīng)由方塊416,如相關(guān)于圖4所說(shuō)明者。然 而,圖10并不包含方塊422、424、426或428。反之,流程繼續(xù)從決定方塊414離開〃N0〃分 支至決定方塊1018。
[0256] 于決定方塊1018,sync_C_狀態(tài)微碼208決定所有其同伴是否已被造訪,亦即,核 心106是否已經(jīng)由方塊1022與1024與每一個(gè)同伴交換C-狀態(tài)。如果是,則流程繼續(xù)至方 塊416 ;否則,流程繼續(xù)至方塊1022。
[0257] 于方塊1022, sync_C-狀態(tài)微碼208藉由程式化圖2的CSR 234在其下一個(gè)同伴 上產(chǎn)生sync_C-狀態(tài)的新實(shí)例,用以將"C〃值傳送至其下一個(gè)同伴,并用以中斷同伴。在第 一同伴的情況中,所送出的"C"值是于方塊412被計(jì)算出;在剩下的同伴的情況中,〃C"值 是于方塊1026被計(jì)算出。在包含方塊414、1018、1022、1024以及1026的回圈中,微碼208 追蹤已造訪的同伴,以確保其已造訪它們每一個(gè)(除非于決定方塊414被發(fā)現(xiàn)是真實(shí)的狀 況)。
[0258] 流程繼續(xù)至方塊1024。于方塊1024, sync_C-狀態(tài)微碼208程式化CSR234以檢 測(cè)下一個(gè)同伴已傳回一混合C-狀態(tài),并獲得混合C-狀態(tài),以〃D"表示。
[0259] 流程繼續(xù)至方塊1026。于方塊1026, sync_C_狀態(tài)微碼208藉由計(jì)算〃C〃與〃D〃 值的最小值,來(lái)計(jì)算一最近計(jì)算的本地混合C-狀態(tài),以〃C〃表示。流程回復(fù)至決定方塊414。
[0260] 流程繼續(xù)從圖10中的方塊434,并繼續(xù)經(jīng)由方塊444,如相關(guān)于圖4所說(shuō)明的。然 而,圖10并不包含方塊446、448、452、454或456。反之,流程繼續(xù)從決定方塊438離開〃N0〃 分支至決定方塊1045。
[0261] 于決定方塊1045,sync_C_狀態(tài)微碼208決定所有其同伴是否已被造訪,亦即,核 心106是否已經(jīng)由方塊1046與1048與每一個(gè)同伴交換C-狀態(tài)。如果是,則流程繼續(xù)至方 塊442 ;否則,流程繼續(xù)至方塊1046。
[0262] 于方塊1046, sync_C_狀態(tài)微碼208藉由程式化CSR 234在其下一個(gè)同伴上產(chǎn)生 sync_C-狀態(tài)常式的新實(shí)例,用以將"G"值傳送至其下一個(gè)同伴,并用以中斷同伴。在第一 同伴的情況中,所送出的"G"值是于方塊436所計(jì)算;在剩下的同伴的情況中,"G"值是于 方塊1052被計(jì)算出。
[0263] 流程繼續(xù)至方塊1048。于方塊1048,微碼208程式化CSR 234以檢測(cè)下一個(gè)同伴 已傳回一混合C-狀態(tài)至核心106,并獲得混合C-狀態(tài),以〃H"表示。
[0264] 流程繼續(xù)至方塊1052。于方塊1052, sync_C-狀態(tài)微碼208藉由計(jì)算"G〃與〃H〃 值的最小值來(lái)計(jì)算一最近計(jì)算的本地混合C-狀態(tài),以〃G〃表示。流程回復(fù)至決定方塊438。
[0265] 流程繼續(xù)從圖10中的方塊466,并繼續(xù)經(jīng)由方塊476,如相關(guān)于圖4所說(shuō)明者???注意到于方塊474中,同伴(核心106傳送〃L"值給它)是中斷核心106的同伴。此外,流 程繼續(xù)從圖10中的決定方塊472離開"N0〃分支,并繼續(xù)經(jīng)由方塊484,如相關(guān)于圖4所說(shuō) 明者。然而,圖10并不包含方塊486或488。反之,流程繼續(xù)從方塊484至決定方塊1085。
[0266] 于決定方塊1085,如果〃L"值小于2,則流程繼續(xù)至方塊474 ;否則,流程繼續(xù)至決 定方塊1087。在流程從方塊484繼續(xù)至決定方塊1085的情況中,〃L〃值是于方塊484被計(jì) 算出;在流程從方塊1093繼續(xù)至決定方塊1085的情況中,"L〃值是于方塊1093被計(jì)算出。 流程繼續(xù)至決定方塊1087。
[0267] 于決定方塊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。
[0268] 于方塊1089,微碼208藉由程式化CSR 234在其下一個(gè)同伴上產(chǎn)生sync_C_狀態(tài) 常式的一新實(shí)例,用以將"L"值傳送至其下一個(gè)同伴,并用以中斷同伴。在第一同伴的情況 中,所送出的"L〃值是于方塊484被計(jì)算出;在剩下的同伴的情況中,"L〃值是于方塊1093 被計(jì)算出。
[0269] 流程繼續(xù)至方塊1091。于方塊1091,微碼208程式化CSR 234以檢測(cè)下一個(gè)同伴 已傳回一混合C-狀態(tài)至核心106,并獲得混合C-狀態(tài),以〃M"表不。
[0270] 流程繼續(xù)至方塊1093。于方塊1093, sync_C-狀態(tài)微碼208藉由計(jì)算"L〃與〃M〃 值的最小值來(lái)計(jì)算本地混合C-狀態(tài)的最近計(jì)算的數(shù)值,以"L"表示。流程回復(fù)至決定方塊 1085。
[0271] 現(xiàn)在參考圖11所顯示的方塊圖,其顯示本發(fā)明的計(jì)算機(jī)系統(tǒng)1100執(zhí)行分配在兩 個(gè)多核心微處理器102的多重處理核心106間的分散式電源管理的一種替代實(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, 以晶片〇、晶片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ì)成 與彼此溝通,用以如于此以及CNTR. 2534中所說(shuō)明的,藉由使用核心間通訊配線112、晶片 間通訊配線118以及封裝體間通訊配線1133(說(shuō)明于下),以分散方式在協(xié)調(diào)共用電源管理 相關(guān)的資源的控制。
[0272] 第一多核心微處理器102的晶片間通訊配線118是如圖1中的設(shè)計(jì)。然而,第二 多核心微處理器102的接腳是以〃P5〃、〃P6〃、〃P7〃以及〃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的接腳P1 耦接至第二多核心微處理器102的接腳P7,以使晶片0的OUT接觸墊、晶片1的IN 1接觸 墊、晶片的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,用以啟動(dòng)微碼 208以程式化CSR 234而經(jīng)由封裝體間通訊配線1133與其他核心106溝通。因此,每個(gè)晶 片104的管理者核心106是被啟動(dòng)以經(jīng)由封裝體間通訊配線1133與晶片間通訊配線118 而與其他晶片104的管理者核心106 (亦即,其同伴)溝通。當(dāng)每一個(gè)管理者核心106想要 與其他晶片104溝通時(shí),其傳輸在其OUT接觸墊108上的信息,且此信息是廣播至其他晶片 104并藉由經(jīng)由適當(dāng)?shù)腎N接觸墊108被各自管理者核心106所接收。如可能從圖11觀察 到的,有利的是,相對(duì)于每個(gè)多核心微處理器102,每個(gè)晶片104上的接觸墊108的數(shù)目與封 裝體102上的接腳P的數(shù)目不大于晶片104的數(shù)目,其為相當(dāng)小的數(shù)目。
[0273] 再者,請(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所說(shuō)明的微碼208是被設(shè)計(jì)成如在圖11 的系統(tǒng)1100中操作。此外,所有四個(gè)同伴核心106 -起形成一同儕合作同屬性群組,其中 每個(gè)同伴核心106是在沒有仲裁的情況下被啟動(dòng),以在無(wú)論哪一個(gè)同伴核心106被指定為 BSP核心都可直接與任何其他的同伴核心106進(jìn)行協(xié)調(diào)。
[0274] 更進(jìn)一步注意到,雖然接腳P在多處理器實(shí)施例(例如圖11與圖12的所示者) 中是需要的,但如果必要的話,接腳可能在單一多核心微處理器102實(shí)施例中被省略,雖然 它們對(duì)于除錯(cuò)目的是有益的。
[0275] 現(xiàn)在參考圖12所顯示的方塊圖,其顯示依據(jù)本發(fā)明計(jì)算機(jī)系統(tǒng)1200執(zhí)行分配在 兩個(gè)多核心微處理器1202的多重處理核心106間的分散式電源管理的一替代實(shí)施例。系 統(tǒng)1200是類似于圖11的系統(tǒng)1100,而多核心微處理器1202是類似于圖11的多核心微處 理器102。然而,系統(tǒng)1200的八個(gè)核心是依據(jù)一較深的階層式協(xié)調(diào)系統(tǒng)并藉由旁路配線被 組織且以實(shí)體連接。
[0276] 每個(gè)晶片104只具有三個(gè)接觸墊108 (OUT、IN 1以及IN 2),用以耦合至晶片間通 訊配線118 ;每個(gè)封裝體1202只具有兩個(gè)接腳,在第一多核心微處理器1202上以P1與P2 表示,以及在第二多核心微處理器1202上以P3與P4表示;而連接圖12的兩個(gè)多核心微處 理器1202的晶片間通訊配線118與封裝體間通訊配線1133具有不同于圖11中對(duì)應(yīng)元件 的配置。
[0277] 在圖12的系統(tǒng)1200中,核心0與核心4被指定為它們各自的多核心微處理器1202 的〃封裝體管理者〃或"P管理者〃。再者,除非另有說(shuō)明,否則專門用語(yǔ)〃好友〃于此是 用以表示彼此通訊的不同封裝體1202上的管理者核心106 ;因此,于圖12的本實(shí)施例中, 核心0與核心4為好友。第一多核心微處理器1202的晶片間通訊配線118是被設(shè)計(jì)如下。 在第一封裝體1202之內(nèi),晶片0的OUT接觸墊與晶片1的IN 1接觸墊經(jīng)由單一配線網(wǎng)耦 接至接腳P1 ;晶片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,接腳P1是耦接至接腳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)而全部f禹接在一起。
[0278] 因此,不像在圖9的系統(tǒng)900中以及在圖11的系統(tǒng)1100中,于其中每個(gè)管理者核 心106可與其他管理者核心106通訊,在圖12的系統(tǒng)1200中,只有管理者核心0與管理者 核心4可彼此溝通(亦即,經(jīng)由于此所說(shuō)明的旁路配線)。圖12的實(shí)施例勝過(guò)圖11的一 項(xiàng)優(yōu)點(diǎn)為相關(guān)于每個(gè)多核心微處理器1202,每個(gè)晶片104上的接觸墊108數(shù)目(1)比晶片 104的數(shù)目小,以及每個(gè)封裝體1202上的接腳P數(shù)目⑵比晶片104的數(shù)目小,其為一相 當(dāng)小的數(shù)目。此外,在核心106之間的C-狀態(tài)交換的數(shù)目可能更少。于一實(shí)施例中,為了 除錯(cuò)的目的,第一多核心微處理器1202亦包含耦接至晶片1的OUT接觸墊108的一第三接 腳,而第二多核心微處理器1202亦包含耦接至晶片3的OUT接觸墊108的一第三接腳。
[0279] 現(xiàn)在參考圖13所顯示的流程圖,其顯示依據(jù)本發(fā)明圖12的系統(tǒng)1200用以執(zhí)行分 配在雙四核心微處理器1202 (八個(gè)核心)系統(tǒng)1200的多重處理核心106間的分散式電源 管理操作。更明確而言,圖13的流程圖顯示圖3 (與圖6) sync_C-狀態(tài)微碼208的操作,類 似于圖4與10的流程圖,其在許多方面是相似的,且相同號(hào)碼的方塊是類似的。然而,在圖 13的流程圖中所說(shuō)明的核心106的sync_C-狀態(tài)微碼208所負(fù)責(zé)的晶片間通訊配線118及 封裝體間通訊配線1133的配置在圖12的系統(tǒng)1200與圖11的系統(tǒng)1100兩者之間是不同 的,特別是某些管理者核心106 (亦即核心2及核心4)并未被設(shè)計(jì)成與系統(tǒng)1200的所有其 他管理者核心106直接溝通,但取而代的的是好友(核心0及核心4)以一種階層式方式向 下傳遞至它們的同伴(分別為核心2與核心6),其再依序向下傳遞至它們的伙伴核心106。 現(xiàn)在說(shuō)明這些差異。
[0280] 流程開始于圖13中的方塊402,并繼續(xù)前進(jìn)至方塊424,如相關(guān)于圖4所說(shuō)明者。 然而,圖10并未包含方塊426或428。反之,流程繼續(xù)從方塊424前進(jìn)至方塊1326。此外, 于決定方塊432,如果被中斷的核心106為一好友而非一伙伴或同伴,則流程繼續(xù)至方塊 1301。
[0281] 于方塊1326, sync_C-狀態(tài)微碼208藉由計(jì)算〃C〃與〃D〃值的最小值來(lái)計(jì)算(本 地)混合C-狀態(tài)的一最近計(jì)算的數(shù)值,以〃C"表示。
[0282] 流程繼續(xù)至決定方塊1327。于決定方塊1327,如果于方塊1326所計(jì)算的"C〃值 小于2或核心106并非是封裝體管理者核心106,則流程繼續(xù)至方塊416 ;否則,流程繼續(xù)至 方塊1329。
[0283] 于方塊1329, sync_C_狀態(tài)微碼208藉由程式化CSR 234在其好友上產(chǎn)生sync_ C_狀態(tài)的新實(shí)例,用以將于方塊1326所計(jì)算的〃C〃值傳送至其好友并用以中斷好友。這要 求好友計(jì)算并傳回一混合C-狀態(tài)(這種情形類似上述與圖4相關(guān)的說(shuō)明,可能構(gòu)成整個(gè)處 理器的合成C-狀態(tài)),并要求好友將其提供回到這個(gè)核心106。
[0284] 流程繼續(xù)至方塊1331。于方塊1331,sync_C_狀態(tài)微碼208程式化CSR234以檢 測(cè)好友已傳回一混合C-狀態(tài)至核心106,并獲得混合C-狀態(tài),以〃D"表示。
[0285] 流程繼續(xù)至方塊1333。于方塊1333, sync_C-狀態(tài)微碼208藉由計(jì)算〃C〃與〃D〃 值的最小值來(lái)計(jì)算一最近計(jì)算的混合C-狀態(tài),以〃C〃表示??勺⒁獾?,假設(shè)D至少為2,于 是一旦流程繼續(xù)至方塊1333,就會(huì)于方塊1333中,在〃C〃值的合成的C-狀態(tài)計(jì)算時(shí),考量 系統(tǒng)1200中的每個(gè)核心106的C-狀態(tài);因此,合成的C-狀態(tài)于此被稱為系統(tǒng)1200合成的 C-狀態(tài)。流程繼續(xù)至方塊416。
[0286] 流程繼續(xù)從圖13中的方塊434,并繼續(xù)前進(jìn)至方塊444與448,如相關(guān)于圖4所說(shuō) 明的。然而,圖13并不包含方塊452、454或456。反之,流程繼續(xù)從方塊448至方塊1352。
[0287] 于方塊1352, sync_C-狀態(tài)微碼208藉由計(jì)算〃G〃與〃Η〃值的最小值來(lái)計(jì)算一最 近計(jì)算的本地混合c-狀態(tài),以〃G〃表示。
[0288] 流程繼續(xù)至決定方塊1353。于決定方塊1353,如果于方塊1352所計(jì)算的"G〃值 小于2或核心106并非是封裝體管理者核心106,則流程繼續(xù)至方塊442 ;否則,流程繼續(xù)至 方塊1355。
[0289] 于方塊1355, sync_C_狀態(tài)微碼208藉由程式化CSR 234在其好友上產(chǎn)生sync_ C_狀態(tài)的新實(shí)例,用以將于方塊1352所計(jì)算的"G"值傳送至其好友,并用以中斷好友。這 要求好友計(jì)算并傳回一混合C-狀態(tài)到這個(gè)核心106。
[0290] 流程繼續(xù)至方塊1357。于方塊1357, sync_C-狀態(tài)微碼208程式化CSR234以檢 測(cè)好友已傳回一混合C-狀態(tài)至核心106,并獲得混合C-狀態(tài),以"H〃表示。流程繼續(xù)至方 塊 1359。
[0291] 于方塊1359, sync_C-狀態(tài)微碼208藉由計(jì)算〃G〃與〃Η〃值的最小值來(lái)計(jì)算一最 近計(jì)算的本地混合C-狀態(tài),以〃G〃表示??勺⒁獾?,假設(shè)Η至少為2,則一旦流程繼續(xù)至方 塊1359,就會(huì)于方塊1359中,在"G"值的合成C-狀態(tài)計(jì)算時(shí)考量系統(tǒng)1200中的每個(gè)核心 106的C-狀態(tài);因此,合成的C-狀態(tài)于此被稱為系統(tǒng)1200合成C-狀態(tài)。流程繼續(xù)至方塊 442。
[0292] 流程繼續(xù)從圖13中的方塊466,并繼續(xù)經(jīng)由方塊476與482,如相關(guān)于圖4所說(shuō)明 的。然而,圖13并不包含方塊484、486或488。反之,流程繼續(xù)從方塊482至方塊1381。
[0293] 于方塊1381,sync_C-狀態(tài)微碼208藉由計(jì)算"L"與"Μ"值的最小值來(lái)計(jì)算一最 近計(jì)算的本地混合C-狀態(tài),以〃L"表示。
[0294] 流程繼續(xù)至決定方塊1383。于決定方塊1383,如果于方塊1381所計(jì)算的"L〃值 小于2或核心106并非是封裝體管理者核心106,則流程繼續(xù)至方塊474 ;否則,流程繼續(xù)至 方塊1385。
[0295] 于方塊1385, sync_C_狀態(tài)微碼208藉由程式化CSR 234在其好友上產(chǎn)生sync_ C_狀態(tài)的新實(shí)例,用以將于方塊1381所計(jì)算的〃L〃值傳送至其好友,并用以中斷好友。這 要求好友計(jì)算并傳回一混合C-狀態(tài)到這個(gè)核心106。
[0296] 流程繼續(xù)至方塊1387。于方塊1387中,sync_C_狀態(tài)微碼208程式化CSR 234以 檢測(cè)好友已傳回一混合C-狀態(tài)至核心106,并獲得混合C-狀態(tài),以"M〃表示。流程繼續(xù)至 方塊1389。
[0297] 于方塊1389, sync_C-狀態(tài)微碼208藉由計(jì)算"L"與"M"值的最小值來(lái)計(jì)算一最 近計(jì)算的本地synced C-狀態(tài),以〃 L 〃表示。可注意到,假設(shè)Μ是至少2,則一旦流程繼續(xù)至 方塊1389,就會(huì)于方塊1389中,在"L"值的合成C-狀態(tài)計(jì)算時(shí)考量系統(tǒng)1200中的每個(gè)核 心106的C-狀態(tài);因此,合成C-狀態(tài)于此被稱為系統(tǒng)1200合成C-狀態(tài)。流程繼續(xù)至方塊 474。如上所述,于決定方塊432中,如果中斷的核心106為一好友而非一伙伴或同伴,則流 程繼續(xù)至方塊i301。
[0298] 于方塊1301,核心106被其好友所中斷,所以微碼208程式化CSR 234,用以從其 好友獲得好友的合成C-狀態(tài),在圖13中以"Q"表示。應(yīng)注意的是,好友不會(huì)喚醒synch_ C_狀態(tài)的實(shí)例,如果其尚未為其封裝體確認(rèn)合成C-狀態(tài)至少為2的話。
[0299] 流程繼續(xù)至方塊1303。于方塊1303, sync_C_狀態(tài)微碼208計(jì)算一本地混合C-狀 態(tài)(以"R"表示)作為其應(yīng)用于方塊1301所接收的C-狀態(tài)"Y"值與"Q"值的最小值。
[0300] 流程繼續(xù)至決定方塊1305。于決定方塊1305,如果于方塊1303所計(jì)算的〃R〃值 小于2,則流程繼續(xù)至方塊1307 ;否則,流程繼續(xù)至方塊1311。
[0301] 于方塊1307,為因應(yīng)來(lái)自其好友請(qǐng)求的核心間中斷,微碼208程式化CSR 234以將 于方塊1303所計(jì)算的〃R〃值傳送至其好友。流程繼續(xù)至方塊1309。于方塊1309中,常式 將于方塊1303所計(jì)算的"R〃值傳回至其呼叫者。流程于方塊1309結(jié)束。
[0302] 于方塊1311,sync_C_狀態(tài)微碼208藉由程式化CSR 236在其伙伴上產(chǎn)生sync_ C_狀態(tài)的新實(shí)例,用以將于方塊1303所計(jì)算的〃R〃值傳送至其伙伴,并用以中斷伙伴。這 要求伙伴計(jì)算并傳回一混合C-狀態(tài)至核心106。
[0303] 流程繼續(xù)至方塊1313。于方塊1313中,sync_C-狀態(tài)微碼208程式化CSR 236以 檢測(cè)伙伴已傳回一混合C-狀態(tài)至核心106,并獲得伙伴混合C-狀態(tài),在圖13中以〃S〃表 /_J、1 〇
[0304] 流程繼續(xù)至方塊1315。于方塊1315, sync_C-狀態(tài)微碼208藉由計(jì)算〃R〃與〃S〃 值的最小值來(lái)計(jì)算一最近計(jì)算的本地混合C-狀態(tài),以"R"表示。
[0305] 流程繼續(xù)至決定方塊1317。于決定方塊1317中,如果于方塊1315所計(jì)算的〃R〃 值小于2,則流程繼續(xù)至方塊1307 ;否則,流程繼續(xù)至方塊1319。
[0306] 于方塊1319, sync_C_狀態(tài)微碼208藉由程式化CSR 234在其同伴上產(chǎn)生sync_ C_狀態(tài)的新實(shí)例,用以將于方塊1315所計(jì)算的"R"值傳送至其同伴,并用以中斷同伴。這 要求同伴計(jì)算并傳回一混合C-狀態(tài)至這個(gè)核心106。
[0307] 流程繼續(xù)至方塊1321。于方塊1321,sync_C-狀態(tài)微碼208程式化CSR234以檢 測(cè)同伴已傳回一混合C-狀態(tài)至核心106,并獲得混合C-狀態(tài),以〃S"表示。
[0308] 流程繼續(xù)至方塊1323。于方塊1323, sync_C-狀態(tài)微碼208藉由計(jì)算〃R〃與〃S〃 值的最小值來(lái)計(jì)算一最近計(jì)算的本地混合C-狀態(tài),以"R"表示??勺⒁獾剑僭O(shè)S是至少 2,于是一旦流程前進(jìn)至方塊1323,就會(huì)于方塊1323中,在〃R〃值的計(jì)算時(shí)考量系統(tǒng)1200中 的每個(gè)核心106的C-狀態(tài);因此,〃R〃將構(gòu)成系統(tǒng)1200的合成C-狀態(tài)。流程繼續(xù)至方塊 1307。
[0309] 現(xiàn)在參考圖14所顯示的方塊圖,其顯示依據(jù)本發(fā)明計(jì)算機(jī)系統(tǒng)1400執(zhí)行分配在 一多核心微處理器1402的多重處理核心106間的分散式電源管理的一替代實(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í)體連接。
[0310] 首先,晶片間通訊配線118的配置是與圖9不同,如下所述。值得注意的,系統(tǒng)1400 在某些方面類似于圖12的系統(tǒng)1200,于其中核心依據(jù)一種三層的階層式協(xié)調(diào)系統(tǒng)被組織 在一起且實(shí)體連接。四個(gè)晶片104的每一者包含用以耦接至晶片間通訊配線118的三個(gè)接 觸墊108,亦即OUT接觸墊、IN1接觸墊以及IN 2接觸墊。圖14的多核心微處理器1402包 含以〃 ?1〃、〃?2〃、叩3〃以及叩4〃表示的四個(gè)接腳。圖14的多核心微處理器1402的晶片間 通訊配線118的配置如下。晶片0的OUT接觸墊、晶片1的IN 1接觸墊,以及晶片2的IN 2接觸墊經(jīng)由耦接至接腳P1的單一配線網(wǎng)而全部耦接在一起;晶片1的OUT接觸墊與晶片 〇的IN 1接觸墊經(jīng)由耦接至接腳P2的單一配線網(wǎng)而耦接在一起;晶片2的OUT接觸墊、晶 片3的IN 1接觸墊以及晶片0的IN 2接觸墊是經(jīng)由耦接至接腳P3的單一配線網(wǎng)而全部 耦接在一起;晶片3的OUT接觸墊與晶片2的IN 1接觸墊經(jīng)由耦接至接腳P4的單一配線 網(wǎng)而f禹接在一起。
[0311] 圖14的核心106是被設(shè)計(jì)成用以依據(jù)圖13的說(shuō)明操作,對(duì)核心0與核心4而言, 即使它們位于相同的封裝體1402(與上述相關(guān)于圖12所規(guī)定的專門用語(yǔ)〃好友〃的意思 相反)仍被視為好友,而這兩個(gè)好友于圖14的實(shí)施例中經(jīng)由晶片間通訊配線118而非經(jīng)由 圖12的封裝體間通訊配線1133做彼此溝通,。于此應(yīng)注意的是,除了處理器的實(shí)體模型以 夕卜,核心是依據(jù)一種較深的且具有三個(gè)層次的域的階層式協(xié)調(diào)系統(tǒng)而設(shè)計(jì)。
[0312] 現(xiàn)在參考圖15所顯示的方塊圖,其顯示依據(jù)本發(fā)明計(jì)算機(jī)系統(tǒng)1500執(zhí)行分配在 一種多核心微處理器1502的多重處理核心106間的分散式電源管理的一替代實(shí)施例。系 統(tǒng)1500在某些方面類似于圖14的系統(tǒng)1400,因?yàn)槠浒瑔我粋€(gè)八核心微處理器1502,其 具有以核心〇至核心7表示的八個(gè)核心106。然而,多核心微處理器1502包含經(jīng)由晶片間 通訊配線118耦接在一起的兩個(gè)四核心晶片1504。兩個(gè)晶片1504的每一者包含用以耦接 至晶片間通訊配線118的兩個(gè)接觸墊108,亦即一 OUT接觸墊以及IN 1、IN 2和IN 3接觸 墊。多核心微處理器1502包含以〃ΡΓ與〃P2〃表示的兩個(gè)接腳。多核心微處理器1502的 晶片間通訊配線118的配置如下。晶片0的OUT接觸墊與晶片1的IN 1接觸墊經(jīng)由耦接 至接腳P2的單一配線網(wǎng)而耦接在一起,而晶片1的OUT接觸墊與晶片0的IN 1接觸墊經(jīng) 由耦接至接腳P1的單一配線網(wǎng)而耦接在一起。此外,四核心晶片1504的核心間通訊配線 112將每個(gè)核心106耦接至晶片1504的其他核心106,用以促進(jìn)分配在一種多核心微處理 器1502的多重處理核心106間的分散式電源管理。
[0313] 圖15的核心106被設(shè)計(jì)成用以依據(jù)圖13的說(shuō)明操作,并通過(guò)以下敘述獲得理解。 首先,每個(gè)晶片本身所具有的核心是依據(jù)一雙層的階層式協(xié)調(diào)系統(tǒng),并藉由旁路配線而被 組織且實(shí)體連接。晶片〇具有兩個(gè)伙伴同屬性群組(核心〇與核心1 ;核心2與核心3)以 及一個(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進(jìn)行彼此的通訊。
[0314] 其次,封裝體本身界定一第三階層式范圍及對(duì)應(yīng)的好友同屬性群組。換言之,核心 0及核心4縱使它們位于相同的封裝體1502上(與上述相關(guān)于圖12所規(guī)定的專門用語(yǔ)〃 好友〃的意思相反)仍被視為好友。又,好友于圖15的實(shí)施例中經(jīng)由晶片間通訊配線118 而非經(jīng)由圖12的封裝體間通訊配線1133進(jìn)行彼此的通訊。
[0315] 現(xiàn)在參考圖16所顯示的方塊圖,其顯示依據(jù)本發(fā)明的計(jì)算機(jī)系統(tǒng)1600執(zhí)行分配 在一種多核心微處理器1602的多重處理核心106間的分散式電源管理的一替代實(shí)施例。系 統(tǒng)1600在某些方面類似于圖15的系統(tǒng)1500,因?yàn)槠浒瑔我粋€(gè)八核心微處理器1602,其 具有以核心〇至核心7所表不的八個(gè)核心106。然而,每個(gè)晶片104包含多條在每一個(gè)核心 106之間的核心間通訊配線112,用以允許每個(gè)核心106與晶片104中的其他核心106進(jìn)行 通訊。因此,為說(shuō)明圖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說(shuō)明一種供核心之間的分散式電源管理使用的管理者 合作協(xié)調(diào)模型。
[0316] 現(xiàn)在參考圖17所顯示的流程圖,其顯示依據(jù)本發(fā)明圖16的系統(tǒng)1600用以執(zhí)行分 配在多核心微處理器102的多重處理核心106間的分散式電源管理的操作。更明確而言, 圖17的流程圖顯示圖3(與圖6)的sync_C-狀態(tài)微碼208的操作,類似于圖4的流程圖, 其在許多方面是相似的,且相同號(hào)碼的方塊是類似的。然而,在圖17的流程圖中所說(shuō)明的 核心106的微碼208負(fù)責(zé)存在八個(gè)核心106的情形而非于圖1的實(shí)施例中的四個(gè)核心106, 具體地說(shuō)四個(gè)核心106是兩個(gè)雙晶片104的方式而存在,而現(xiàn)在說(shuō)明其差異。尤其,一晶片 104的每個(gè)管理者核心106具有三個(gè)伙伴核心106而非一個(gè)伙伴核心106。
[0317] 流程開始于圖17中的方塊402,并繼續(xù)經(jīng)由決定方塊404且離開決定方塊404的 〃N0〃分支至決定方塊432,如相關(guān)于圖4所說(shuō)明者。然而,圖17并不包含方塊406至418。 反之,流程繼續(xù)從決定方塊404離開"YES〃分支至方塊1706。
[0318] 于方塊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ù)至方塊 17〇8。
[0319] 于方塊1708, sync_C_狀態(tài)微碼208程式化CSR 236以檢測(cè)下一個(gè)伙伴已傳回一 混合C-狀態(tài)至核心106,并獲得伙伴的混合C-狀態(tài),在圖17以"B〃表示。流程繼續(xù)至方塊 1712。
[0320] 于方塊1712, sync_C-狀態(tài)微碼208藉由計(jì)算"A"及"B"值的最小值來(lái)計(jì)算一最 近計(jì)算的本地混合C-狀態(tài),其是以"A〃表示。流程繼續(xù)至決定方塊1714。
[0321] 于決定方塊1714,如果于方塊1712所計(jì)算的〃A"值小于2或核心106并非是管理 者核心106,則流程繼續(xù)至方塊1716 ;否則,流程繼續(xù)至決定方塊1717。
[0322] 于方塊1716, sync_C_狀態(tài)微碼208將于方塊1712所計(jì)算的"A〃值傳回至其呼叫 者。流程于方塊1716結(jié)束。
[0323] 于決定方塊1717, sync_C_狀態(tài)微碼208決定所有其伙伴是否已被造訪,亦即核心 106是否已經(jīng)由方塊1706與1708而與每一個(gè)其伙伴交換混合C-狀態(tài)。如果是,則流程繼 續(xù)至方塊1719 ;否則,流程回復(fù)至方塊1706。
[0324] 于方塊1719, sync_C-狀態(tài)微碼208決定于方塊1712所計(jì)算的〃A"值成為其晶片 合成C-狀態(tài),其是以〃C〃表示,且流程繼續(xù)至方塊422并繼續(xù)進(jìn)行至方塊428,如上相關(guān)于 圖4所述。
[0325] 流程繼續(xù)從決定方塊438的〃N0〃分支至決定方塊1739。
[0326] 于決定方塊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。
[0327] 于方塊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。
[0328] 于方塊1743, sync_C-狀態(tài)微碼208程式化CSR 236以檢測(cè)下一個(gè)伙伴已傳回一 混合C-狀態(tài)至核心106,并獲得伙伴的混合C-狀態(tài),在圖17中以"F〃表示。流程繼續(xù)至方 塊 1745。
[0329] 于方塊1745, sync_C-狀態(tài)微碼208藉由計(jì)算"F"及"G"值的最小值來(lái)計(jì)算一最 近計(jì)算的本地混合C-狀態(tài),其是以"G〃表示。流程回復(fù)至決定方塊438。
[0330] 圖17并不包含方塊478至方塊488。取而代的的是,流程繼續(xù)離開決定方塊472 的〃 N0 〃分支至決定方塊1777。
[0331] 于決定方塊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。
[0332] 于方塊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。
[0333] 于方塊1782, sync_C-狀態(tài)微碼208程式化CSR 236以檢測(cè)下一個(gè)伙伴已傳回一 混合C-狀態(tài)至核心106,并獲得伙伴的混合C-狀態(tài),在圖17以"M〃表示。流程繼續(xù)至方塊 1784。
[0334] 于方塊1784, sync_C-狀態(tài)微碼208藉由計(jì)算"L"及"M"值的最小值來(lái)計(jì)算一最 近計(jì)算的本地混合C-狀態(tài),其是以"L〃表示。流程回復(fù)至決定方塊472。
[0335] 如較早所陳述的,如應(yīng)用至圖16的圖17顯示一管理者仲裁的階層式協(xié)調(diào)模型至 一微處理器1602的應(yīng)用,其旁路配線促進(jìn)對(duì)于至少某些的核心同屬性群組的一同儕合作 協(xié)調(diào)模型。這種組合提供各種優(yōu)點(diǎn)。就另一方面而言,微處理器1602的實(shí)體架構(gòu)提供在 界定與再界定(defining and redefining)階層式域以及指定與再指定(designating and redesignating)域管理者上的彈性,如與申請(qǐng)案序號(hào)61/426, 470的段落相關(guān)所說(shuō)明的,前 述申請(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)彈性的微處理器上,可依 據(jù)預(yù)定情況或配置設(shè)定而在一個(gè)以上的協(xié)調(diào)模式中提供可以行動(dòng)的一階層式協(xié)調(diào)系統(tǒng)。舉 例而言,一階層式協(xié)調(diào)系統(tǒng)可使用所指定的管理者核心而優(yōu)先地采用協(xié)調(diào)的管理者仲裁模 型,但是在某些預(yù)定或檢測(cè)條件之下,可將一不同的核心標(biāo)示為供該同屬性群組用的一暫 時(shí)管理者、或者切換成供一既定同屬性群組使用的一同儕合作協(xié)調(diào)模型。可能的模型切換 條件的例子包含所指定的管理者核心無(wú)反應(yīng)或禁能、所指定管理者核心基于它們的狀態(tài)或 緊急性而處于一限制中斷模式中、或所指定的管理者核心處于將某些把關(guān)或協(xié)調(diào)角色委派 授權(quán)給一個(gè)或多個(gè)其成員。
[0336] 在上述圖中,已顯示受限制的電源狀態(tài)(例如C-狀態(tài)> =2),只有在等于處理器 的復(fù)合電源狀態(tài)時(shí)是可實(shí)施的。在諸如此情況下,已說(shuō)明的電源狀態(tài)復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò) 程可在實(shí)施受限制的電源狀態(tài)之前進(jìn)行操作,以負(fù)責(zé)處理器中每個(gè)核心的應(yīng)用電源狀態(tài)。
[0337] 然而如較早在說(shuō)明書中所敘述者,有順序的電源狀態(tài)的不同配置與等級(jí)亦屬本發(fā) 明所考量的。此外,本發(fā)明亦考慮包含多重特定域?qū)哟蔚氖芟拗齐娫礌顟B(tài)的電源狀態(tài)的非 常進(jìn)階的設(shè)定,于此漸進(jìn)較高層級(jí)的受限制電源狀態(tài)將應(yīng)用于處理器的漸進(jìn)較高的域中。
[0338] 舉例而目,在具有多重多核心晶片的一多核心多處理器中,每個(gè)晶片提供在晶片 的核心間被共用的一 PLL,但由微處理器的所有核心所共用的單一 VRM,譬如在CNTR. 2534 中所說(shuō)明的,一受限制域的電源狀態(tài)階層可被定義而包含尤其適合于一核心內(nèi)部(且非外 部被共用)資源的第一組電源狀態(tài)、尤其適合于由晶片上的核心所共用,而不能被晶片外 部所共用的資源(例如PLL與快?。┑南乱唤M電源狀態(tài)、且特別適合于整個(gè)微處理器的又 另一組電源狀態(tài)(例如電壓值與總線時(shí)鐘)。
[0339] 因此,于一實(shí)施例中,每個(gè)域具有其本身的復(fù)合電源狀態(tài)。又,對(duì)每個(gè)域而言,存在 有單一適當(dāng)?shù)氖苷J(rèn)證核心(例如該域的管理者),其具有實(shí)施或啟動(dòng)一受限制電源狀態(tài)的 實(shí)施的授權(quán),如由一對(duì)應(yīng)的區(qū)別域的電源狀態(tài)階層協(xié)調(diào)系統(tǒng)所界定者,是受限在受沖擊的 域上。這種進(jìn)階配置尤其適合包含譬如CNTR. 2534所顯示的實(shí)施例,于其中子群組的處理 器核心共用快取、PLL等等。
[0340] 本發(fā)明亦考慮數(shù)個(gè)實(shí)施例,于其中一分散式同步過(guò)程是利用一種不需要喚醒所有 核心的方式來(lái)不僅管理一受限制電源狀態(tài)的實(shí)現(xiàn),而且選擇性地實(shí)施一受限制電源狀態(tài)的 一喚起狀態(tài)或撤銷。這種進(jìn)階實(shí)施例與類似圖5的系統(tǒng)形成對(duì)比,于其中一晶片組STPCLK 的解除設(shè)置可完全喚醒所有核心。
[0341] 現(xiàn)在參考圖23,其描繪sync_state邏輯2300的一個(gè)實(shí)施例,以顯示譬如在微碼中 進(jìn)行有條件地實(shí)施與選擇性地撤銷一限制操作狀態(tài)兩者的情形。如下所述,sync_ State邏 輯2300支持一種域-區(qū)別(domain-differentiated)的電源狀態(tài)階層協(xié)調(diào)系統(tǒng)的實(shí)現(xiàn)。有 利的是,syn C_State邏輯2300的可計(jì)量性相當(dāng)好,因?yàn)槠淇杀谎由熘翆?shí)際上是任何想要的 域-層次深度(domain-level depth)的階層式協(xié)調(diào)系統(tǒng)。又,邏輯2300不僅可用對(duì)微處 理器整體看來(lái)是全域的方式、而且對(duì)在微處理器之內(nèi)的特定群組核心(例如,只對(duì)一晶片 的核心,如以下關(guān)于方塊2342所說(shuō)明的)以更多限制的方式被實(shí)施。此外,syn C_State邏 輯2300可利用不同且具相關(guān)定義的階層式協(xié)調(diào)系統(tǒng)、應(yīng)用的操作狀態(tài)以及域?qū)哟闻R界值, 而獨(dú)立應(yīng)用至不同操作狀態(tài)的群組中。
[0342] 在類似于sync_C_狀態(tài)微碼208的較早顯示的實(shí)施例的實(shí)施樣態(tài)中,sync_state 邏輯2300可能在本地或外部地被產(chǎn)生,并在傳送一探測(cè)狀態(tài)值〃P〃的一常式中執(zhí)行。例如, 一電源狀態(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)〇TAIffiET, 然后藉由將〇TAK;ET傳送成為探測(cè)狀態(tài)值〃p〃來(lái)喚醒sync_state邏輯2300?;蛘撸陬愃朴?先前實(shí)施例所討論的實(shí)施樣態(tài),sync_state邏輯2300可能藉由一中斷常式響應(yīng)一外部產(chǎn) 生的同步需求被喚醒。為簡(jiǎn)化之便,這種實(shí)例被稱為sync_state邏輯2300的外部喚醒實(shí) 例。
[0343] 在更進(jìn)一步繼續(xù)前進(jìn)以前,應(yīng)注意到,再為簡(jiǎn)化之便,圖23顯示以一種適合管理 操作狀態(tài)的形式的sync_state邏輯2300,操作狀態(tài)是在要求漸進(jìn)地更大程度的核心間協(xié) 調(diào)予漸進(jìn)地較高需求的狀態(tài)(舉例而言,如應(yīng)用于C-狀態(tài))的方式被界定或被安排。將理 解具有通常知識(shí)者可利用謹(jǐn)慎地應(yīng)用邏輯來(lái)修改 Sync_State邏輯2300以支援一操作狀態(tài) 階層(例如VID或頻率比率狀態(tài)),于其中操作狀態(tài)是朝相反方向被界定。或者,因傳統(tǒng)或 選擇而朝一個(gè)方向被界定的操作狀態(tài),可根據(jù)定義而一般的"安排"在相反方向中。因此, synC_State邏輯2300可只藉由重新安排它們,并施加相反指示的基準(zhǔn)值(例如負(fù)的原始 值)而被應(yīng)用至操作狀態(tài)(例如需求的VID與頻率比率狀態(tài))。
[0344] 亦注意到圖23顯示sync_state邏輯2300是特別為一嚴(yán)格地階層式協(xié)調(diào)系統(tǒng)而 設(shè)計(jì),于其中所有包含的同屬性群組依據(jù)一管理者仲裁協(xié)調(diào)模型操作。如關(guān)于先前所顯示 的可某些程度協(xié)調(diào)對(duì)等合作的同步邏輯實(shí)施例所證明的,本發(fā)明不應(yīng)被理解成受限于嚴(yán)格 地階層式協(xié)調(diào)系統(tǒng)(除非到達(dá)明確指出的程度)。
[0345] 流程于方塊2302開始,于此SynC_State邏輯2300接收探測(cè)狀態(tài)值〃P〃。流程繼 續(xù)至方塊2304,于此syn C_state邏輯2300亦獲得本地核心的目標(biāo)操作狀態(tài)0TAffi;ET、可由本 地核心實(shí)行的最大的操作狀態(tài)〇 MX、由本地核心所控制的最大的域?qū)哟蜠MX,以及并未涉及 或干涉一特定域D的外部資源的最大可利用的域-特定狀態(tài)M D。應(yīng)注意到,synC_State邏 輯2300獲得或計(jì)算方塊2304的值的方式或年表(chronology)并不重要。在流程圖中的 方塊2304僅用來(lái)介紹適用于sync_state邏輯2300的重要變數(shù)。
[0346] 在一個(gè)例示的但非限制的實(shí)施例中,域?qū)哟蜠是被界定如下:?jiǎn)我缓诵臑? ;多核 心晶片為1 ;多晶片封裝體為2,等等。0與1的操作狀態(tài)是不受限制的(意指一核心可實(shí)施 它們而無(wú)須與其他核心協(xié)調(diào)),2與3的操作狀態(tài)是相關(guān)于相同晶片的核心而受限(意指它 們可能在一晶片的核心上被實(shí)施以與其他晶片上的核心協(xié)調(diào),但不需要與在其他晶片上的 其他核心協(xié)調(diào)),而4與5的操作狀態(tài)是相關(guān)于相同封裝體的核心而受限(意指它們可能在 與該封裝體的核心協(xié)調(diào)之后而在該封裝體上被實(shí)施,但不需要與其他封裝體上的其他核心 協(xié)調(diào),如果有的話),等等。因此,相對(duì)應(yīng)的最大可應(yīng)用的域-特定狀態(tài)M D為:1 % = 3 ;以及M2 = 5。再者,由一核心所控制的最大域?qū)哟蜠mx與可由核心實(shí)行的最大操作狀態(tài) 〇"?,兩者為該核心的管理者憑證(如果有的話)的函數(shù)。因此,于此例子中,一非管理者核 心將具有〇的D MX以及1的對(duì)應(yīng)的最大可自我實(shí)行的操作狀態(tài)0ΜΧ ;晶片管理者核心將具有 1的DMX以及3的對(duì)應(yīng)的最大可自我實(shí)行的操作狀態(tài)(Vx ;以及封裝體管理者或BSP核心將 具有2的DMX以及5的對(duì)應(yīng)的最大可自我實(shí)行的操作狀態(tài)0MX。
[0347] 流程繼續(xù)至方塊2306,于此sync_state邏輯2300計(jì)算一初始混合值〃B〃,其等于 探測(cè)值"P"與本地核心的目標(biāo)操作狀態(tài)〇 TAK;ET的最小值。又,如果P是由一附屬家族核心 所接收,且其值小于或等于最大可應(yīng)用的域-特定操作狀態(tài)M D (家族核心據(jù)此為憑證來(lái)實(shí) 施),則基于這里所說(shuō)明的邏輯,這一般表示一附屬家族核心請(qǐng)求撤銷由本地或一較高階級(jí) 的核心所實(shí)行的任何潛在的干涉較易休眠狀態(tài)(interfering sleepier state)。此乃因?yàn)?在一般配置中,附屬家族核心已經(jīng)實(shí)行相對(duì)于其所能夠的程度下為更清醒的P狀態(tài),而其 無(wú)法在沒有較高層級(jí)協(xié)調(diào)的情況下,單方面地撤銷經(jīng)由一個(gè)其不能控制的域所實(shí)行的干涉 較易休眠狀態(tài)。
[0348] 流程繼續(xù)至方塊2308,于此一域?qū)哟巫償?shù)D被初始化為零。在上述所顯示的例子 中,一個(gè)為〇的D表示一個(gè)核心。
[0349] 流程繼續(xù)至決定方塊2310。如果D等于DMX,則流程繼續(xù)至方塊2340。否則,流程 繼續(xù)至決定方塊2312。舉例而言,在一非管理者核心上被喚醒的一 synC_State常式將總是 繼續(xù)至方塊2340,而不需執(zhí)行顯示在方塊2312-2320之間的任何一邏輯。此乃因?yàn)轱@示在 方塊2312-2320之間的邏輯是被提供給一管理者核心的有條件地同步化附屬家族核心。關(guān) 于另一例子,如果一晶片管理者核心不具有其他管理者憑證,則其D MX等于1。初始時(shí)D為 〇,所以一條件同步過(guò)程可能依據(jù)方塊2312-2320而在晶片的其他核心上被實(shí)施。但在完成 任何這種同步(假設(shè)依據(jù)決定方塊2312所述,其并非有條件地過(guò)早被終止)且已將D增加 1(方塊2316)之后,流程將繼續(xù)(經(jīng)由決定方塊2310)至方塊2340。
[0350] 現(xiàn)在移到?jīng)Q定方塊2312,如果B>MD,則流程繼續(xù)至決定方塊2314。否則,流程繼續(xù) 至方塊2340。以另一種方式陳述,如果本地核心目前所計(jì)算的混合值B不會(huì)涉及或干涉由 變數(shù)D所界定域的外部資源,則不需要與任何更多的附屬家族核心同步。舉例而言,如果目 前計(jì)算的混合值B為1,這樣的數(shù)值表示只沖擊到位于一既定核心的本地資源,因此不需要 與更多的附屬家族核心做同步。在另一例子中,假設(shè)本地核心為一好友核心,其具有足夠憑 證以關(guān)閉或沖擊共通于多重晶片的資源。但亦假設(shè)好友的目前計(jì)算的混合值B為3,其為一 個(gè)將只沖擊位于好友的晶片而非好友所管理的其他晶片的本地資源的數(shù)值。又假設(shè)好友已 依據(jù)方塊2314、2318以及2320而完成與其本身晶片上的每一個(gè)核心的同步,藉以使變數(shù)D 增加至1 (方塊2316),并使新的MD = ]^ = 3納入考量(方塊2312)。在這些情況之下,好 友并不需要更進(jìn)一步與其他晶片上的附屬家族核心(例如同伴)同步,因?yàn)?或更少的數(shù) 值的好友的實(shí)現(xiàn)無(wú)論如何都不會(huì)影響其他晶片。
[0351] 現(xiàn)在移到?jīng)Q定方塊2314, sync_state邏輯2300評(píng)估在由D+1所界定的域中是否 有任何(更多)尚未同步的附屬家族核心。如果有任何這種核心,則流程繼續(xù)至方塊2318。 如果不是的話,則流程首先繼續(xù)至方塊2316 (于此D被增加),然后至決定方塊2310,于此 再次評(píng)估目前增加的D的值,如上所述。
[0352] 現(xiàn)在移到方塊2318,因?yàn)橐晃赐降母綄偌易搴诵囊驯粰z測(cè)(方塊2318),所以其 可能受目前計(jì)算的混合值"B"的實(shí)現(xiàn)(方塊2312)所影響,因?yàn)槠鋵⒂绊懹筛綄偌易搴诵?所共用的資源,所以sync_ State邏輯2300的本地實(shí)例在未同步的附屬家族核心上喚醒一 synC_State邏輯2300的新的從屬實(shí)例。本地實(shí)例傳送其目前計(jì)算的混合值"B〃以作為對(duì) 于sync_state邏輯2300的從屬實(shí)例的一探測(cè)值。如由sync_state邏輯2300的邏輯所見 的,從屬實(shí)例最后將傳回一個(gè)不大于原有的〃B〃(方塊2306)、且不小于附屬家族核心的最 大可應(yīng)用的域-特定狀態(tài)M D (方塊2346)的數(shù)值,其為不會(huì)干涉在本地與附屬家族核心之 間所共用任何資源的最大值。因此,當(dāng)流程繼續(xù)至方塊2320時(shí), synC_state邏輯2300的 本地實(shí)例采用由從屬實(shí)例所傳回的數(shù)值作為其本身的"B"值。
[0353] 到現(xiàn)在為止,已將焦點(diǎn)指向用以有條件地同步化附屬家族核心的sync_state邏 輯2300的一部分。現(xiàn)在,將聚焦于方塊2340-2348,其說(shuō)明用以執(zhí)行一目標(biāo)和/或同步化狀 態(tài)的邏輯,包含與較高級(jí)的家族核心(亦即,較高層級(jí)管理者)進(jìn)行有條件地協(xié)調(diào)。
[0354] 現(xiàn)在移到方塊2340,本地核心執(zhí)行其目前混合值"B〃至其可接受的程度。尤其, 其執(zhí)行B及0 mx的最小值,而由本地核心執(zhí)行最大狀態(tài)??勺⒁獾剑嚓P(guān)于屬于域管理者的 核心,方塊2340設(shè)計(jì)這種核心以執(zhí)行或啟動(dòng)供其域使用的一復(fù)合電源狀態(tài)的最小值(方塊 2306或2320的〃B")與應(yīng)用于其域的最大受限制電源狀態(tài)(亦即0 MX)的實(shí)現(xiàn)。
[0355] 流程繼續(xù)至決定方塊2342,于此sync_state邏輯2300評(píng)估本地核心是否為微處 理器的BSP。如果是,則沒有更高級(jí)的核心需要協(xié)調(diào),且流程繼續(xù)至方塊2348。如果否,則 流程繼續(xù)至決定方塊2344。應(yīng)注意到,在實(shí)施例中的sync_state邏輯2300是以對(duì)微處理 器較不全域(less than a global way)的方式地被應(yīng)用以控制操作狀態(tài),方塊2342是以 預(yù)定組的操作狀態(tài)相關(guān)的〃最高應(yīng)用域管理者〃置換"BSP"而改變。舉例而言,如果sync_ state邏輯2300僅應(yīng)用至由CNTR. 2534中所說(shuō)明的由晶片所共用PLL的期望頻率時(shí)鐘比率 的中,則將以〃晶片管理者〃置換"BSP"。
[0356] 在決定方塊2344中,sync_state邏輯2300評(píng)估sync_state的本地實(shí)例是否被 一管理者核心所喚醒。如果是,則本地核心根據(jù)定義與其管理者同步,所以流程繼續(xù)至方塊 2348。如果否,則流程繼續(xù)至方塊2346。
[0357] 現(xiàn)在移到方塊2346, sync_state邏輯2300在其管理者核心上喚醒一個(gè)sync_ state的從屬實(shí)例。其將核心的最終混合值B與核心的最大可應(yīng)用的域-特定狀態(tài)M D的最 大值作為最后探測(cè)值P而傳送的。在此提供兩個(gè)例子以說(shuō)明探測(cè)值P的選擇。
[0358] 在第一例子中,假設(shè)B高于本地核心的最大可自我實(shí)行的操作狀態(tài)(方塊 2340)。換言之,在沒有較高層級(jí)協(xié)調(diào)的情況下,本地核心無(wú)法單方面導(dǎo)致B的完全實(shí)施。在 這樣的情況下,方塊2346表示本地核心對(duì)其管理者核心的一請(qǐng)求,要求其可更完全實(shí)施B, 如果可能的話。將明白依據(jù)圖23所提出的邏輯集合,如果該項(xiàng)請(qǐng)求并非與管理者核心本身 的目標(biāo)狀態(tài)以及與其他潛在影響的核心的應(yīng)用狀態(tài)相符的話,管理者核心將婉拒此請(qǐng)求。 否則,管理者核心將實(shí)施此請(qǐng)求并到達(dá)其與那些狀態(tài)相符的程度,直到其本身的最大可自 我實(shí)行的狀態(tài)〇 mx的最大值(方塊2340)為止。依據(jù)方塊2346的敘述,管理者核心亦將以 原始核心的B值混合(可能等于原始核心的B值)的數(shù)值來(lái)請(qǐng)求其本身的更高級(jí)核心(如 果有的話),這種請(qǐng)求方式將向上且通過(guò)階層而進(jìn)行。依此方式,如果應(yīng)用條件滿足的話,則 sync_state邏輯2300將完全實(shí)施本地核心的最終混合值B。
[0359] 在第二例子中,假設(shè)B小于本地核心的最大可自我實(shí)行操作狀態(tài)0MX (方塊2340)。 假設(shè)沒有影響本地核心所控制資源之外的較高的干涉操作狀態(tài)存在,而后在方塊2340中, 本地核心可完全實(shí)行B。但是如果較高的干涉的操作狀態(tài)生效,而本地核心將無(wú)法單方面地 撤銷干涉操作狀態(tài)。在這種情況下,方塊2346表示本地核心對(duì)其管理者核心的一請(qǐng)求,要 求其撤銷一既存的干涉操作狀態(tài)至不再干涉B的完整實(shí)現(xiàn)的層級(jí)(亦即,本地核心最大可 應(yīng)用的域-特定狀態(tài)MD)。將明白到,依據(jù)圖23所提出的邏輯集合,管理者核心將遵從該 項(xiàng)請(qǐng)求,藉以實(shí)行不大于且可能小于本地核心的M D的狀態(tài)。應(yīng)注意到,方塊2346可能或者 請(qǐng)求管理者只實(shí)行B。但如果B〈MD,則這可能使管理者核心執(zhí)行一種較本地核心完全實(shí)行B 所需要的更清醒的狀態(tài)。因此,使用等于本地核心的最終混合值B與本地核心的最大可應(yīng) 用的域-特定狀態(tài)M D的最大值的探測(cè)值是較佳的選擇。因此,將明白synC_State 2302支 持一種對(duì)于實(shí)現(xiàn)休眠狀態(tài)及喚起狀態(tài)兩者的極簡(jiǎn)方法。
[0360] 現(xiàn)在移到方塊2348, sync_state邏輯2300將一數(shù)值傳回至呼叫或執(zhí)行等于核心 的最終混合值B與核心的最大可應(yīng)用域-特定狀態(tài)MD的最大值的程序。如以方塊2346作 說(shuō)明,注意到方塊2348可能或者剛好傳回B的數(shù)值。但如果B〈M D,則這可能使一被喚醒的 管理者核心(方塊2318)執(zhí)行一種比本身所需要更清醒的狀態(tài)。因此,傳回核心的最終混 合值B與核心的最大可應(yīng)用的域-特定狀態(tài)M D的最大值是較佳的選擇。再者,將明白依此 方式,sync_state 2302支持一種對(duì)于實(shí)現(xiàn)休眠狀態(tài)與喚起狀態(tài)兩者的極簡(jiǎn)方法。
[0361] 在另一實(shí)施例中,一個(gè)或多個(gè)額外決定方塊是介設(shè)于方塊2344與2346之間,以更 進(jìn)一步設(shè)定方塊2346對(duì)從屬sync_state常式實(shí)施的條件。舉例而言,在一個(gè)適合條件下, 如果B>0 MX,則流程將繼續(xù)至方塊2346。在另一個(gè)適合條件之下,如果只有于一較高域?qū)哟?可撤銷的一干涉操作狀態(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í)施方法是較佳的。
[0362] 亦將明白在圖23中,當(dāng)需要實(shí)行一目標(biāo)較深的操作狀態(tài)(或其的較淺型式)時(shí), 復(fù)合操作狀態(tài)發(fā)現(xiàn)過(guò)程藉由使用一種依最低至最高(或最靠近至最遠(yuǎn)離的同屬性群組)的 順序以漸進(jìn)地橫越核心的尋訪順序,來(lái)尋訪最高層級(jí)域(其包含其巢狀域)的核心(也不 需要所有的核心),而這些核心的共用資源是受目標(biāo)操作狀態(tài)所影響。又,當(dāng)需要執(zhí)行一較 淺的操作狀態(tài)時(shí),復(fù)合操作狀態(tài)發(fā)現(xiàn)過(guò)程只需接續(xù)的尋訪較高的管理者即可。此外,在上述 說(shuō)明的替代實(shí)施例中,這種尋訪的延伸是要撤銷目前實(shí)施的干涉操作狀態(tài)(如果所需要的 話)。
[0363] 因此,在將一較早的示范實(shí)例應(yīng)用至圖23中,2或3的目標(biāo)受限制電源狀態(tài)將只觸 發(fā)應(yīng)用晶片中的核心的復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程。4或5的目標(biāo)受限制電源狀態(tài)將只觸發(fā)應(yīng) 用封裝體中的核心的復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程。
[0364] 圖23可更進(jìn)一步以一種域-特定(除了核心-特定以外)的方式敘述其特征。 繼續(xù)上述的例示圖例,一晶片可具有2與3的應(yīng)用域-特定電源狀態(tài)。舉例而言,如果晶片 管理者核心經(jīng)由一本地或外部啟始的復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程的一部分而發(fā)現(xiàn)其晶片本身 的復(fù)合電源狀態(tài)只有1時(shí),因?yàn)?并非是可應(yīng)用域-特定電源狀態(tài),所以晶片管理者核心將 不會(huì)實(shí)施它。如果晶片管理者核心發(fā)現(xiàn)其晶片本身的復(fù)合電源狀態(tài)為5(或晶片的復(fù)合電 源狀態(tài)與一節(jié)點(diǎn)地連接核心的探測(cè)電源狀態(tài)數(shù)值的混合狀態(tài)等于5)作為一替代例子,以 及如果晶片管理者核心并不具有任何較高的管理者憑證,則(假設(shè)其沒有這樣做)晶片管 理者核心將實(shí)施或啟動(dòng)3的電源狀態(tài)的實(shí)施,其為3 (晶片的最大應(yīng)用域-特定電源狀態(tài)) 與5(晶片的復(fù)合電源狀態(tài)或其的混合狀態(tài))的最小值。再者,可注意到于此例子中,晶片 管理者核心將繼續(xù)為其晶片實(shí)施或啟動(dòng)3的電源狀態(tài)的實(shí)施,而不管任何應(yīng)用于一較高域 (該核心為較高域的一部分)的實(shí)際或局部的復(fù)合電源狀態(tài)(例如,2或4或5)為何。
[0365] 繼續(xù)上述的圖例,于此晶片管理者發(fā)現(xiàn)晶片復(fù)合電源狀態(tài)或其的混合狀態(tài)為5,晶 片管理者將與其同伴著手一復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程,其將需要包含下一個(gè)較高層級(jí)域(例 如,封裝體或整個(gè)處理器)的尋訪,此復(fù)合電源狀態(tài)發(fā)現(xiàn)過(guò)程是獨(dú)立于晶片管理者的中間 實(shí)現(xiàn)(如果有的話)與晶片的為3的電源狀態(tài)之外。這是因?yàn)?大于3(晶片的最大應(yīng)用 域-特定電源狀態(tài)),所以一較高受限制電源狀態(tài)的實(shí)施需要取決于應(yīng)用于一個(gè)或多個(gè)較 高級(jí)域的電源狀態(tài)。此外,下一個(gè)較高層級(jí)域特有的一較高受限制電源狀態(tài)的實(shí)施可能只 藉由該域的管理者而被啟動(dòng)和/或被實(shí)現(xiàn)(例如,多封裝體處理器的封裝體管理者或單一 封裝體處理器的BSP)。值得提醒的是,晶片管理者可能亦同時(shí)保持相關(guān)的封裝體管理者或 BSP憑證。
[0366] 因此,在上述例子中,在發(fā)現(xiàn)過(guò)程中的某些點(diǎn),晶片管理者核心將與一同伴交換其 晶片復(fù)合電源狀態(tài)(或其的混合)。在某些條件之下,這個(gè)發(fā)現(xiàn)過(guò)程將較高域(例如封裝 體)的一至少局部的復(fù)合電源狀態(tài)(其小于2)傳回至晶片管理者核心。又,這將不會(huì)導(dǎo)致 3的電源狀態(tài)的撤銷,其為晶片管理者核心已為晶片而實(shí)施者。在其他條件之下,此種發(fā)現(xiàn) 過(guò)程將對(duì)封裝體或微處理器產(chǎn)生一復(fù)合電源狀態(tài)(例如4或更多),其對(duì)應(yīng)至4或更多的受 限制電源狀態(tài)。如果是,則該域的管理者(例如封裝體管理者)將實(shí)施一較高受限制的電 源狀態(tài),其為較高層級(jí)域的復(fù)合電源狀態(tài)(例如4或5)與應(yīng)用于較高層級(jí)域的最大受限制 的電源狀態(tài)(于此是5)的最小值。如果所應(yīng)用的發(fā)現(xiàn)過(guò)程正測(cè)試一更高級(jí)的受限制電源 狀態(tài),則此種附有條件的域-特定電源-狀態(tài)實(shí)現(xiàn)過(guò)程將延伸至更高級(jí)的域?qū)哟危ㄈ绻?的話)。
[0367] 如上述所述,圖23顯示一種可操作以合并域-相關(guān)(domain-dependent)受限 制電源狀態(tài)及相關(guān)臨界值的階層式域-特定受限制的電源狀態(tài)管理協(xié)調(diào)系統(tǒng)。據(jù)此,其 適用于對(duì)于個(gè)別核心及群組核心的電源狀態(tài)管理的微調(diào)式域-特定分散方法(fine-tuned domain-specific decentralized approach) 〇
[0368] 注意到圖23顯示以一種分散式分配方式提供轉(zhuǎn)變成更清醒的狀態(tài)的電源狀態(tài)協(xié) 調(diào)邏輯。然而,將明白某些電源狀態(tài)實(shí)施例包含數(shù)個(gè)電源狀態(tài),在缺乏藉由晶片組或其他核 心的先前電源-狀態(tài)-撤銷動(dòng)作之下,一特定核心可能無(wú)法從此等電源狀態(tài)被喚起。舉例 而言,在上述C-狀態(tài)結(jié)構(gòu)中,2或更高的C-狀態(tài)可能與移除總線時(shí)鐘相關(guān),其可能使一既 定核心不能響應(yīng)通過(guò)系統(tǒng)總線所傳送的一指令,以轉(zhuǎn)變成為一更清醒的狀態(tài)。電源或時(shí)鐘 源可選擇性地從一核心或一晶片被移除的其他微處理器配置亦被考慮。圖5說(shuō)明覺醒邏 輯的一實(shí)施例來(lái)適應(yīng)這些情況,其藉由喚醒所有核心以因應(yīng)STPCLK的解除設(shè)置。然而,覺 醒邏輯的更多選擇性實(shí)施例可被考慮。在一個(gè)例子中,考慮由系統(tǒng)軟件(例如操作系統(tǒng)或 BIOS)所實(shí)施的覺醒邏輯,其中系統(tǒng)軟件將首先發(fā)布一喚起或覺醒請(qǐng)求給一特定核心,且如 果在一段期望時(shí)間間隔之內(nèi)并未接收一響應(yīng)或核心并不遵從的話,則邏輯將視需要遞回地 發(fā)布喚起或覺醒請(qǐng)求給后續(xù)較高的管理者及晶片組(可能是),直到接收到一期望的響應(yīng) 或檢測(cè)到適當(dāng)?shù)淖駨臑橹?。這種由軟件系統(tǒng)所執(zhí)行的覺醒邏輯將與圖23的電源狀態(tài)協(xié)調(diào) 邏輯進(jìn)行協(xié)調(diào),并以一種優(yōu)先分散方式(于此每個(gè)目標(biāo)的核心藉由使用其本身的微碼開始 轉(zhuǎn)變)以轉(zhuǎn)變成更清醒的狀態(tài),以到達(dá)核心可操作以這樣做的程度,以及當(dāng)禁止核心這樣 做時(shí),以一種中心協(xié)調(diào)的方式完成。覺醒邏輯的實(shí)施例僅是用以選擇性地喚起無(wú)法喚起它 們自己核心的數(shù)個(gè)可能的實(shí)施例的說(shuō)明與例示。
[0369] VI.延伸實(shí)施例及應(yīng)用
[0370] 雖然已說(shuō)明具有一特定數(shù)目核心106的實(shí)施例,但可考慮具有其他數(shù)目核心106 的其他實(shí)施例。舉例而言,雖然圖1〇、13以及17所說(shuō)明的微碼208被設(shè)計(jì)用以執(zhí)行在八個(gè) 核心之間的分配式電源管理,但微碼208藉由包含檢查核心106的存在或缺席(presence or absence),而在一具有更少核心106的系統(tǒng)中適當(dāng)?shù)匕l(fā)生效用,例如相關(guān)于申請(qǐng)案序號(hào) 61/426,470的段落所說(shuō)明的,前述申請(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不會(huì)與缺席核心106交換C-狀態(tài)信息,并有效地假設(shè)缺席核心的C-狀態(tài)是最 高的可能C-狀態(tài)(例如5的C-狀態(tài))。因此,為了達(dá)到使制造能力有效率的目的,核心 106可能被制造成具有微碼208,其被設(shè)計(jì)可執(zhí)行在八個(gè)核心間的分配式電源管理,縱使核 心106可能包含在具有更少核心106的系統(tǒng)中。再者,考慮到此系統(tǒng)包含八個(gè)以上核心的 實(shí)施例,且于此所說(shuō)明的微碼是被延伸以利用一種類似于已經(jīng)說(shuō)明的那些方式與附加核心 106進(jìn)行通訊。經(jīng)由前述的描述,圖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)特征亦可獲得整合。
[0371] 獨(dú)立實(shí)現(xiàn)不同等級(jí)的電源狀態(tài)(例如,C-狀態(tài)、P-狀態(tài)、需求的VID、需求的頻率比 率,等)的協(xié)調(diào)的實(shí)施例亦被考量在內(nèi)。舉例而言,每個(gè)核心可為每個(gè)等級(jí)的電源狀態(tài)(例 如,各別的應(yīng)用VID、頻率比率、C-狀態(tài)以及P-狀態(tài))而具有不同的應(yīng)用電源狀態(tài),具有應(yīng) 用至不同特定域的限制,以及具有用以計(jì)算混合狀態(tài)并發(fā)現(xiàn)復(fù)合狀態(tài)(例如,C-狀態(tài)對(duì)所 請(qǐng)求VID最大值的的最小值)的不同極值。不同的階層式協(xié)調(diào)系統(tǒng)(例如,不同的域深度、 不同的域成員(domain constituencies)、不同的指定域管理者和/或不同的同屬性群組 協(xié)調(diào)模型)可能為不同等級(jí)的電源狀態(tài)而建立。此外,某些電源狀態(tài)可能只需要頂多與一 域(例如晶片)上的其他核心協(xié)調(diào),此域只包含微處理器上的所有核心的子集。對(duì)于這種 電源狀態(tài),所考慮的階層式協(xié)調(diào)系統(tǒng)可以是只有節(jié)點(diǎn)地連結(jié)該域、與在該域之內(nèi)的核心進(jìn) 行協(xié)調(diào)、以及發(fā)現(xiàn)應(yīng)用于該域或在該域之內(nèi)的復(fù)合電源狀態(tài)。
[0372] -般而言,實(shí)施利中顯示的所有操作狀態(tài)是依一種漸進(jìn)地上升或下降,而且是依 據(jù)嚴(yán)格且線性順序的基礎(chǔ)。但是,操作狀態(tài)是排成層列(tiered)且依順序沿著每個(gè)層 (tier)以上升或下降方式可訂定的其他實(shí)施例(數(shù)層的順序獨(dú)立于其他層的實(shí)施例亦包 含在內(nèi))亦被本發(fā)明所考量。舉例而言,一預(yù)定組的電源狀態(tài)可不同的層級(jí)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)的層級(jí)內(nèi),每一層對(duì)應(yīng)于混合 定義電源狀態(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í)施時(shí)各自的限制及協(xié)調(diào)需求,于此P表示其P-狀態(tài),而C表示其需求的C-狀態(tài)。在復(fù) 合電源狀態(tài)實(shí)施例中,對(duì)計(jì)算極值的一既定核心而言,任何兩個(gè)電源狀態(tài)的一"極值"可能 表示復(fù)合電源狀態(tài)的組成部分的極值的一復(fù)合狀態(tài)、或復(fù)合電源狀態(tài)的少于所有組成部分 的極值的一復(fù)合狀態(tài),與以別的方法選擇的或確定的數(shù)值(而對(duì)其他組成部分而言)。
[0373] 又,在一系統(tǒng)中的多重核心106執(zhí)行分配式分散式電源管理以明確地執(zhí) 行功率評(píng)價(jià)(power credit)功能性的實(shí)施例亦被考量在內(nèi),如說(shuō)明于美國(guó)申請(qǐng)案 13/157, 436(CNTR. 2517)中,申請(qǐng)日為2011年6月10日,其全部于此并入作參考,但是此實(shí) 施例使用核心間通訊配線112、晶片間通訊配線118以及封裝體間通訊配線1133,而非使用 如CNTR. 2517所說(shuō)明的一共用的存儲(chǔ)器區(qū)域。這種實(shí)施例的優(yōu)點(diǎn)為其對(duì)于系統(tǒng)韌體(例如 BIOS)及系統(tǒng)軟件是透明的,且并不需要依賴系統(tǒng)韌體或軟件以提供一共用的存儲(chǔ)器區(qū)域, 因?yàn)槲⑻幚砥髦圃焐炭赡芪幢鼐哂锌刂葡到y(tǒng)韌體或軟件的發(fā)布能力,所以其是受歡迎的。
[0374] 又,除了一探測(cè)值以外亦傳送其他值的同步邏輯實(shí)施例亦考量在內(nèi)。于一實(shí)施例 中,相關(guān)于任何其他同時(shí)操作發(fā)現(xiàn)過(guò)程,一同步常式傳送可區(qū)別地確認(rèn)發(fā)現(xiàn)過(guò)程的一數(shù)值 (其為發(fā)現(xiàn)過(guò)程的一部分)。在另一實(shí)施例中,同步常式傳送一數(shù)值,藉由此數(shù)值可識(shí)別同 步或尚未同步的核心。舉例而言,一種八核心實(shí)施例可能遞送一 8位值,于此每個(gè)位代表八 核心處理器的一特定核心,且每個(gè)位表示核心是否已被同步或是仍為該瞬間發(fā)現(xiàn)過(guò)程的一 部分。同步常式亦可能傳送確認(rèn)開始瞬間發(fā)現(xiàn)過(guò)程的核心的一數(shù)值。
[0375] 促進(jìn)執(zhí)行核心的依序?qū)ぴL同步化發(fā)現(xiàn)過(guò)程的額外實(shí)施例亦被考量。在一個(gè)例子 中,每個(gè)核心儲(chǔ)存確認(rèn)成員的位遮蔽的同屬性群組(它為其的一部分)。舉例而言,在一種 利用三個(gè)層級(jí)深的階層式協(xié)調(diào)構(gòu)造的八核心實(shí)施例中,每個(gè)核心儲(chǔ)存三個(gè)8位〃同屬性〃 遮蔽、一〃最接近〃同屬性遮蔽、一第二層同屬性遮蔽以及一頂端層同屬性遮蔽,于此每個(gè) 遮蔽的位值確認(rèn)屬于以遮蔽表示的同屬性群組中的核心家族(如果有的話)。在另一例子 中,每個(gè)核心儲(chǔ)存一地圖、一 G0de. 1號(hào)碼或其的組合,由其可正確地及唯一地決定核心的節(jié) 點(diǎn)階層,包含確認(rèn)每個(gè)域管理者。在又另一種例子中,此核心儲(chǔ)存確認(rèn)共用資源(例如,電 壓源、時(shí)鐘源以及快?。约八鼈兯鶎偾夜灿玫奶囟ê诵幕?qū)?yīng)域的信息。
[0376] 又,雖然此說(shuō)明書的焦點(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中的一多核心微處理器配置, 例如如上所述。
[0377] 此外,應(yīng)注意到除非有特別聲明,否則本發(fā)明并不需要使用上述任何一個(gè)階層式 協(xié)調(diào)系統(tǒng)以執(zhí)行預(yù)定的限制活動(dòng)。事實(shí)上,除非另有某種程度的特別規(guī)定,否則本發(fā)明適合 于在核心間的純粹對(duì)等協(xié)調(diào)系統(tǒng)。然而,如本說(shuō)明書可明顯看出,一種階層式協(xié)調(diào)系統(tǒng)的使 用可提供數(shù)個(gè)優(yōu)點(diǎn),尤其是在依賴旁路通訊時(shí),因?yàn)橛诖思軜?gòu)下,微處理器的旁路通訊線的 構(gòu)造并不允許一完全相等的對(duì)等協(xié)調(diào)系統(tǒng)。
[0378] 如可能從上文觀察到,相較于例如上述包含集中化非核心硬件協(xié)調(diào)邏輯(HCL)的 Naveh的解決方法,將電源管理功能同等分配在于此所說(shuō)明的核心106間的分散實(shí)施例, 好處是不需要額外非核心邏輯。雖然非核心邏輯可被包含在一晶片104里,但于所說(shuō)明的 實(shí)施例中,所需要的為實(shí)施分散分配式電源管理機(jī)制是:硬件及微碼是與多核心-每晶片 (multi-core-per-die)實(shí)施例中的核心間通訊配線112、多晶片實(shí)施例中的晶片間通訊配 線118以及多封裝體實(shí)施例中的封裝體間通訊配線1133在一起地、完全地實(shí)體上及邏輯地 在它們本身的核心106之內(nèi)。因?yàn)橛诖怂f(shuō)明的執(zhí)行分配在多重處理核心106間的電源管 理的分散實(shí)施例的結(jié)果,核心106可能位于各別晶片或各別封裝體上。這潛在地降低晶片 尺寸并改善良率,提供更多配置彈性,以及提供一高層級(jí)的系統(tǒng)中核心數(shù)的可調(diào)(尺寸的) 能力。
[0379] 在又其他實(shí)施例中,核心106在各種實(shí)施樣態(tài)方面與圖2的代表實(shí)施例不同,并提 供一種取代或附加的高度平行的構(gòu)造,例如應(yīng)用于一圖形處理單元(GPU)的構(gòu)造,而于此 所說(shuō)明的為各種操作(例如電源狀態(tài)管理、核心配置發(fā)現(xiàn)、以及核心重新規(guī)劃)所使用的協(xié) 調(diào)系統(tǒng)亦可被應(yīng)用。
[0380] 雖然于此已說(shuō)明本發(fā)明的各種實(shí)施例,但應(yīng)理解到已經(jīng)由舉例而非限制地提出它 們。本領(lǐng)域的技術(shù)人員將明白在不背離本發(fā)明的范疇之下,可作出各種在形式及細(xì)節(jié)方面 的改變。舉例而言,軟件可允許于此所說(shuō)明的設(shè)備及方法的譬如功能、制造、模擬試驗(yàn)、模 擬、說(shuō)明和/或測(cè)試。這可經(jīng)由使用一般程序設(shè)計(jì)語(yǔ)言(例如C、c++),包含Verilog HDL、 VHDL等等的硬件記述語(yǔ)言(HDL),或其他可利用的程序來(lái)達(dá)成。這種軟件可被配置在任何 已知的計(jì)算機(jī)可用媒體中,例如半導(dǎo)體、磁盤或光盤(例如,⑶-ROM、DVD-ROM等)。于此所 說(shuō)明的設(shè)備及方法的實(shí)施例可能包含在例如一微處理器核心的半導(dǎo)體知識(shí)產(chǎn)權(quán)核心(例 如,具體化在HDL中),并改變成在集成電路的產(chǎn)品中的硬件。此外,于此所說(shuō)明的設(shè)備及方 法可能具體化為硬件及軟件的組合。因此,本發(fā)明不應(yīng)被任何一個(gè)于此所說(shuō)明的例示實(shí)施 例所限制,但應(yīng)該只依據(jù)本發(fā)明的權(quán)利要求及它們的等效設(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ā)明的相同目的。
[0381] 相關(guān)申請(qǐng)案的參考文獻(xiàn)
[0382] 本申請(qǐng)案優(yōu)先權(quán)的申請(qǐng)是根據(jù)該美國(guó)專利臨時(shí)申請(qǐng)案,案號(hào):61/426, 470,申請(qǐng) 日:12/22/2010,名稱為多核心內(nèi)的旁路總線(MULTI-CORE INTERNAL BYPASS BUS),該案整 體皆納入本案參考。
[0383] 本申請(qǐng)案與下列同在申請(qǐng)中的美國(guó)專利申請(qǐng)案有關(guān),都具有相同的申請(qǐng)日,每一 申請(qǐng)案整體皆納入本案參考。
[0384]
【權(quán)利要求】
1. 一種多核心處理器,包含: 多個(gè)實(shí)體處理核心;以及 核心間狀態(tài)發(fā)現(xiàn)微碼單元,在各所述核心中啟動(dòng)該核心,用以經(jīng)由不通過(guò)任何集中式 非核心邏輯、而從其他核心接收或傳送至其他核心的信號(hào)來(lái)參與分散式核心間狀態(tài)發(fā)現(xiàn)過(guò) 程,該核心間狀態(tài)發(fā)現(xiàn)微碼單元包括同步邏輯,提供至每個(gè)核心,其具有的同步實(shí)例為了一 核心間狀態(tài)發(fā)現(xiàn)過(guò)程的多個(gè)目的是可操作的以在多核心上實(shí)施;其中每個(gè)本地實(shí)例是可操 作的以在其他核心上實(shí)施該同步邏輯的多個(gè)新實(shí)例,及響應(yīng)實(shí)施于該本地實(shí)例的另一核心 上該同步邏輯的任何先前實(shí)例, 其中每個(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è)啟動(dòng)核心具有至少限制性的作為該受限操作狀態(tài)的一目標(biāo)操作狀態(tài)。
2. 如權(quán)利要求1所述的多核心處理器,其中: 該核心間狀態(tài)發(fā)現(xiàn)微碼單元,經(jīng)由獨(dú)立于將該多核心處理器連接至一晶片組的一系統(tǒng) 總線的多條旁路通訊配線來(lái)與其他核心交換信號(hào);以及 該核心間狀態(tài)發(fā)現(xiàn)微碼單元,無(wú)任何集中式非核心邏輯的協(xié)助下判斷一可用的狀態(tài) 值,其是一功能,至少是另一核心的一狀態(tài)。
3. 如權(quán)利要求1所述的多核心處理器,其中: 該共享資源是連接至一晶片組的一系統(tǒng)總線; 該領(lǐng)域包含該多核心處理器的全部的啟動(dòng)核心;以及 該受限操作狀態(tài)是一 C-狀態(tài),其是禁能該系統(tǒng)總線的一總線時(shí)鐘。
4. 如權(quán)利要求1所述的多核心處理器,其中: 該共享資源是在該微處理器的一多核心晶片上的一鎖相回路; 該領(lǐng)域包含全部的啟動(dòng)核心,其時(shí)鐘信號(hào)由該鎖相回路供應(yīng);以及 該受限操作狀態(tài)是可共享該鎖相回路的所述核心所使用的一低于最大效能頻率比。
5. 如權(quán)利要求1所述的多核心處理器,其中: 該共享資源是一電壓資源; 該領(lǐng)域包含全部并限于共享該電壓資源的該微處理器的啟動(dòng)核心;以及 該受限操作狀態(tài)是可共享該電壓資源的所述核心所使用的一低于最大效能電壓電平。
6. 如權(quán)利要求1所述的多核心處理器,其中: 同步邏輯的每個(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)。
7. -種多核心處理器,包含: 多個(gè)實(shí)體處理核心;以及 核心間狀態(tài)發(fā)現(xiàn)微碼單元,在各所述核心中啟動(dòng)該核心,用以經(jīng)由不通過(guò)任何集中式 非核心邏輯、而從其他核心接收或傳送至其他核心的信號(hào)來(lái)參與分散式核心間狀態(tài)發(fā)現(xiàn)過(guò) 程,該核心間狀態(tài)發(fā)現(xiàn)微碼單元包括同步邏輯,提供至每個(gè)核心,其具有的同步實(shí)例為了一 核心間狀態(tài)發(fā)現(xiàn)過(guò)程的多個(gè)目的是可操作的以在多核心上實(shí)施;其中每個(gè)本地實(shí)例是可操 作的以在其他核心上實(shí)施該同步邏輯的多個(gè)新實(shí)例,及響應(yīng)實(shí)施于該本地實(shí)例的另一核心 上該同步邏輯的任何先前實(shí)例, 其中每個(gè)核心具有一目標(biāo)操作狀態(tài); 該處理器包含一領(lǐng)域,其包括該微處理器的核心的至少其中之二; 該處理器提供一資源至該領(lǐng)域,其資源是由該領(lǐng)域的所述核心所共用; 該同步邏輯是組態(tài)成用以: 發(fā)現(xiàn)是否該領(lǐng)域共享該資源的其中一個(gè)該啟動(dòng)核心具有一目標(biāo)操作狀態(tài)較低限制性 于一目前實(shí)現(xiàn)電源節(jié)能操作狀態(tài); 啟動(dòng)該核心,如果其是授權(quán)以協(xié)調(diào)其資源,以撤銷對(duì)該資源的一電源節(jié)能操作狀態(tài),若 該同步邏輯已經(jīng)發(fā)現(xiàn)該領(lǐng)域的一啟動(dòng)核心具有一目標(biāo)操作狀態(tài)較低限制性于一目前實(shí)現(xiàn) 電源節(jié)能操作狀態(tài)。
8. 如權(quán)利要求7所述的多核心處理器,其中該同步邏輯的每個(gè)實(shí)例是組態(tài)成根據(jù)在一 階層式方式組織核心間協(xié)調(diào)的一階層式協(xié)調(diào)系統(tǒng)用以在該多核心處理器的其他核心上實(shí) 施該同步邏輯的從屬實(shí)例。
9. 如權(quán)利要求7所述的多核心處理器,其中該階層式協(xié)調(diào)系統(tǒng)是根據(jù)在所述領(lǐng)域內(nèi)所 述核心所共享的資源將所述核心聚集至所述領(lǐng)域,其中對(duì)每個(gè)領(lǐng)域而言,為了所述資源的 一協(xié)調(diào)組態(tài)的目的,一個(gè)單一核心被指定為該域的管理者。
10. 如權(quán)利要求7所述的多核心處理器,其中: 該階層式協(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è)核心。
11. 如權(quán)利要求7所述的多核心處理器,其中該多核心處理器的多個(gè)核心的其中一個(gè) 指定為對(duì)該階層式協(xié)調(diào)系統(tǒng)的每個(gè)多核心領(lǐng)域的一管理者。
12. 如權(quán)利要求7所述的多核心處理器,其中每個(gè)核心是組態(tài)為用以采用其分散式核 心間狀態(tài)發(fā)現(xiàn)微碼單元來(lái)發(fā)現(xiàn)是否該多核心處理器的其他核心為禁能。
13. 如權(quán)利要求7所述的多核心處理器,其中每個(gè)核心組態(tài)為用以采用其分散式核心 間狀態(tài)發(fā)現(xiàn)微碼單元來(lái)發(fā)現(xiàn)該多核心處理器具有多少個(gè)啟動(dòng)核心。
14. 如權(quán)利要求7所述的多核心處理器,其中每個(gè)核心組態(tài)為用以采用其分散式核心 間狀態(tài)發(fā)現(xiàn)微碼單元來(lái)發(fā)現(xiàn)該多核心處理器的一階層式協(xié)調(diào)系統(tǒng)。
15. -種多核心處理器的發(fā)現(xiàn)狀態(tài)的分散式電源管理實(shí)現(xiàn)方法,該多核心處理器包括 多個(gè)實(shí)體處理核心,該方法包括: 至少二核心經(jīng)由不通過(guò)任何集中式非核心邏輯、而由核心交換的信號(hào)來(lái)參與一分散式 核心間狀態(tài)發(fā)現(xiàn)過(guò)程, 其中該方法施行于發(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); 一核心是否啟動(dòng)或禁能; 該多核心處理器具有多少個(gè)核心為啟動(dòng); 共享資源及多個(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)總線。
16. 如權(quán)利要求15所述的方法,其中每個(gè)參與的核心使用旁路通訊配線與另一參與的 核心交換狀態(tài)相關(guān)信號(hào),旁路通訊配線獨(dú)立于將該多核心處理器連接至一晶片組的一系統(tǒng) 總線。
17. 如權(quán)利要求15所述的方法,還包括參與該分散式核心間狀態(tài)發(fā)現(xiàn)過(guò)程來(lái)發(fā)現(xiàn)另一 核心的一目標(biāo)電源狀態(tài)。
18. 如權(quán)利要求15所述的方法,還包括參與該分散式核心間狀態(tài)發(fā)現(xiàn)過(guò)程來(lái)發(fā)現(xiàn)核心 的群組的一復(fù)合電源狀態(tài)。
19. 如權(quán)利要求15所述的方法,還包括有關(guān)一限制其是該資源的組態(tài)將影響該電源、 速度、或效率隨共享資源能夠操作的一核心,參與該分散式核心間狀態(tài)發(fā)現(xiàn)過(guò)程來(lái)限制操 作狀態(tài)的實(shí)現(xiàn)供組態(tài)一共享資源至一操作狀態(tài),其不再限制于共享該資源的任何核心的該 最低限制目標(biāo)操作狀態(tài)。
20. 如權(quán)利要求15所述的方法,還包括: 每個(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)至該本地核心。
21. 如權(quán)利要求20所述的方法,還包括: 同步邏輯的每個(gè)實(shí)例,除非由一終止條件早先地終止,遞歸地在其他仍未同步的核心 上實(shí)施該同步邏輯的多個(gè)實(shí)例,直到該同步邏輯的同步實(shí)例已經(jīng)實(shí)施在該處理器的一可用 的領(lǐng)域的全部核心。
22. 如權(quán)利要求21所述的方法,還包括: 同步邏輯的每個(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)能施行于該共享資源。
【文檔編號(hào)】G06F1/32GK104156055SQ201410408615
【公開日】2014年11月19日 申請(qǐng)日期:2011年12月22日 優(yōu)先權(quán)日:2010年12月22日
【發(fā)明者】G.葛蘭.亨利, 達(dá)魯斯.D.嘉斯金斯 申請(qǐng)人:威盛電子股份有限公司