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