新四季網

用於多處理器系統的加權處理器選擇設備和方法

2023-09-11 22:36:45

專利名稱:用於多處理器系統的加權處理器選擇設備和方法
技術領域:
本發明總體上涉及多處理器系統,更具體而言,涉及一種用於多處理器系統的加權處理器選擇設備和方法。
相關技術說明多處理器系統內部的早期固件執行(例如啟動或引導過程)特別有問題。在多處理器系統內部的固件執行的早期階段期間(例如,像在系統復位之後),在啟動或引導過程期間執行的許多功能不是多處理器安全的。具體來講,在固件執行的早期階段期間,未充分地發揮出系統存儲器和高速緩存的作用,由此存儲器相干性機制是不可操作的,而且無法維護存儲器相干性。其結果是,多處理器系統內部的早期固件執行可能會導致兩個或多個處理器同時嘗試訪問一個資源。例如,兩個或多個處理器可以同時嘗試對寄存器進行寫,這會導致存儲資源中的不正確數據或過時數據的存儲。
將與多處理器系統內部的固件執行的早期階段相關聯的難度減到最低的一種常見手段就是,選擇單個處理器來起到自引導處理器(bootstrap processor,BSP)的作用。眾所周知,單個BSP的選擇使BSP能執行為充分操作(例如,作業系統的執行)而準備多處理器系統的功能,這包括建立存儲器相干性模式,與此同時多處理器系統內部的其它處理器保持空閒狀態。照此,單個處理器(例如,BSP)的選擇使多處理器系統能僅僅使用單個處理器向前推進通過尚未確立存儲器相干性的早期固件階段,並且消除把過時數據寫入到可能會由多處理器系統內部的處理器共享的資源中的可能性。
在一些例如就像Intel公司的基於IA-32的系統這樣的多處理器系統內,BSP的選擇是自動地利用前端總線(FSB)協議來執行的。利用FSB協議,多處理器系統內的每個處理器都包括連接或搭接到系統總線上的多個信號輸入端或管腳,以便根據FSB上處理器的物理位置來為每個處理器建立唯一的二進位碼或標識符。當系統復位時,每個處理器就對其管腳進行採樣,並且讀取且內部地存儲其唯一標識符。
利用FSB協議,當系統復位時,就把具有特定的預定標識符的處理器之一指定為BSP。典型地,指定的BSP經由處理器間中斷(IPI)來產生系統管理中斷。具體來講,BSP利用其它處理器的唯一標識符來指揮位於這些處理器上的IPI,以便使它們強行設為已知的空閒狀態。如果其它處理器處於空閒狀態,那麼BSP具有對引導過程的完全控制,直到已經充分地發揮了系統存儲器和高速緩存的作用以使多處理器能安全工作為止。
一些微處理器體系結構,例如就像Intel ItaniumTM系列處理器所採用的體系結構,並未利用諸如上述FSB協議之類的硬體技術提供BSP的自動選擇。反而,不為BSP的選擇而提供基於硬體的機制的處理器卻通常依靠多處理器安全固件來選擇BSP。
在作業系統執行期間,多處理器系統通常採用諸如(例如)cmpxchg之類的原子(即,不可中斷的)讀/比較/寫指令來創建基於存儲器的信號量,所述信號量實現了從多處理器系統內部的多個處理器中選擇單個處理器。令人遺憾的是,雖然在後來的固件執行階段期間可以採用這類基於固件的處理器選擇技術,但是當相干的存儲器是不可用之時,在早期的固件執行階段期間就不能使用那些技術。
在易於選擇多處理器系統內部的單個處理器(例如,BSP)的另一種手段當中,同系統一起使用的晶片組包含當第一次讀取時返回一個特定值而對於所有後續的讀取返回一個不同值的專用寄存器。照此,讀取該專用寄存器的第一處理器將根據從寄存器中檢索出的值來認定它是BSP,而隨後讀取寄存器並檢索出不同值的其餘的處理器認定它們要保持空閒狀態。雖然這個專用寄存器提供了一種用於從多個處理器中選擇單個處理器的機制,但是這種選擇是任意的,由此不考慮多處理器系統內部的可用處理器的狀況良好(health)或工作條件。
附圖簡要說明

圖1是使用這裡所述的處理器選擇技術的多處理器系統示例的框圖;圖2a-c是描繪這樣一種方式的示例的流程圖,採用所述方式,可以在圖1中所示的多處理器系統內使用這裡所述的處理器選擇技術;和圖3是描繪這樣一種方式的流程圖,採用所述方式,可以對圖1中所示的處理器進行編程以產生它們的加權值。
詳細說明圖1是使用這裡所述的示例性處理器選擇技術的多處理器系統10的示例的框圖。如圖1所示,多處理器系統10包括經由互連總線或網絡18而彼此相耦合的多個處理器12、14和16。處理器12-16可以是任何適合的處理器、處理單元或微處理器,例如就像Intel ItaniumTM處理器、Intel X-ScaleTM處理器、Intel PentiumTM處理器、等等。
處理器12-16還耦合於晶片組20,所述晶片組包括存儲器控制器22、輸入/輸出(I/O)控制器24和共享資源26。眾所周知,晶片組典型地提供I/O和存儲管理功能以及多個通用和/或專用寄存器、定時器等等,它們可由耦合於該晶片組的一個或多個處理器訪問或使用。存儲器控制器22執行使處理器12-16能訪問系統存儲器28的功能,所述系統存儲器可以包括任何期望類型的易失性存儲器,例如就像靜態隨機存取存儲器(SRAM)、動態隨機存取存儲器(DRAM)等等。I/O控制器24執行使處理器12-16能經由I/O總線30而與外圍設備(未示出)相通信的功能。雖然在圖1中把存儲器控制器22和I/O控制器24描繪成了晶片組20內的獨立功能塊,但是可以在單個半導體電路內集成由這些塊所執行的功能或者可以利用兩個或多個獨立的集成電路來實現由這些塊所執行的功能。
在圖1中所示的示例中,共享資源26是可由所有處理器12-16訪問的晶片組20內的寄存器。儘管在圖1中把共享資源26描繪成是獨立於存儲器控制器22和I/O控制器24的,但是共享資源26也可以是存儲器控制器22或I/O控制器24內部的寄存器。供共享資源26使用的寄存器是可讀且可寫的寄存器,在系統10復位之後,所述寄存器具有已知預設值,例如零值。
在處理器12-16是Intel TitaniumTM處理器的情況下,可以將Intel 870晶片組用作為晶片組20。正如這裡更詳細描述的那樣,Intel870晶片組提供了多個暫存寄存器,其中任何一個暫存寄存器都能夠執行共享資源26的功能。然而,應當認識到的是,雖然諸如由870晶片組提供的那些寄存器之類的暫存寄存器都非常適合於用作為共享資源26,但是也可以代替使用任何其它具有可容許的副作用(side-effect)的寄存器。換言之,可以同下面結合圖2a-2c所描述的技術一起使用的、對系統10的操作沒有不利影響的任何寄存器,都是適合的備選方案。由此,如果處理器12-16對那個寄存器的訪問(即,從那個寄存器中讀取,和/或向那個寄存器寫入)不會致使不良的後果或副作用,則可以把任何寄存器都用作為共享資源26。例如,可以把與固定的外設部件互連(PCI)裝置相關聯的基址寄存器用作為共享資源26,當執行這裡所述的處理器選擇技術的同時,所述外設部件互連裝置不為系統10所使用。
正如同樣在圖1中描繪的那樣,處理器12-16包括各自的以已知頻率進行計數的時間間隔定時器/計數器(ITC)寄存器38-42。例如,在處理器12-16是Intel ItaniumTM處理器的情況下,ITC寄存器38-42是能被復位且繼而從零開始以每秒10億次計數速率連續向上計數的64位的寄存器。由於Intel itanium處理器內的ITC寄存器的大尺寸(即,計數器位數),這些ITC寄存器能夠在不翻轉(rollover)的情況下連續計數達580年以上。
另外,所述系統10包括存儲用於執行這裡所述的處理器選擇技術的計算機代碼(例如,軟體或固件)的非易失性存儲器32。如圖1所示,所述非易失性存儲器32可以耦合於晶片組20,由此可以由處理器12-16經由晶片組20來加以訪問。附加地,或者備選地,非易失性存儲器32可以位於晶片組20內部,和/或可以經由I/O總線30而耦合於處理器12-16。在分配非易失性存儲器32(例如,存儲器32的一部分32經由I/O總線30而耦合於如圖1所示的晶片組20,而該存儲器的另一個部分也耦合於該晶片組20)的情況下,可以在存儲器32的這些不同部分之間分配用於執行這裡所述的處理器選擇技術的計算機代碼。
在下面圖2a-2c中所示的示例性處理器選擇技術是一種基於軟體或固件的技術,該技術使諸如圖1中所示的系統10之類的多處理器系統能根據與處理器相關聯的加權值的比較從多個處理器(例如,處理器12-16)中選擇一個處理器(例如,處理器14),或者如果期望的話則能從中選擇一組處理器(例如,處理器12和和14)。更具體而言,每個加權值都對應於其中一個處理器12-16,並且每個加權值都可表示相對應的那個處理器的屬性或者多個屬性。例如,所述加權值可以表示多處理器系統內的處理器的相對的狀況良好、條件或性能。具體來講,可以利用一個或多個處理器執行速度、處理器殼體溫度、內嵌的自測試結果、處理器抽象層(PAL)移交的狀態、局部快閃記憶體狀態等等來產生每個處理器12-16的加權值。另外,加權值還可以併入與處理器12-16的狀況良好、條件或性能無關的信息,例如像數值標識符,每個數值標識符都唯一地與其中一個處理器12-16相關聯。
圖2a-c中所示的處理器選擇技術不要求使用多處理器安全資源,因此特別適用於選擇單個處理器(例如,處理器12)以便在早期的固件(即,在相干存儲器和高速緩存都可用之前)執行期間執行非多處理器安全的功能。例如,可以有利地在多處理器系統內,特別是在採用未給BSP選擇提供基於硬體的機制且由此依賴軟體或固件來執行BSP的選擇的處理器的多處理器系統中,應用圖2a-c中所示的處理器選擇技術,以便選擇自引導處理器(BSP)。
當然,圖2a-c中所示的處理器選擇技術還可以用於選擇單個處理器以便在後來的固件執行階段(例如,像在作業系統執行期間)期間執行非多處理器安全的功能。例如,要求訪問互補型金屬氧化物半導體(CMOS)隨機存取存儲器(RAM)的處理器操作不是多處理器安全的。因此,圖2a-c中所示的處理器選擇技術能用來從多個處理器中選擇單個處理器以執行要求訪問CMOS RAM的操作。然而,實際上,典型地利用原子指令或基於存儲器的信號量來確保在一個給定的時間多處理器系統內只有一個處理器訪問CMOS RAM。
圖2a-c中所示的處理器選擇技術包括三個明顯不同的階段或例程。在圖2a中所示的第一階段或例程期間,通過在各自的等待循環中收集和捕獲(trapping)處理器12-16(塊58-62),然後在基本上相同的時間從處理器12-16各自的等待循環中釋放處理器12-16,來基本上使多處理器系統10內的多個處理器12-16的操作同步。因為多處理器系統內的處理器通常以稍微不同的速率執行指令,多處理器系統內的每個處理器開始執行圖2a-c中所示的選擇技術的時間是可以變化的。因此,為了確保多處理器系統10內的所有12-16處理器在它們的等待循環內都被捕獲且由此基本上在正被釋放之前得以同步,第一階段或例程延遲處理器12-16中的第一個,以便其等待循環中開始執行第一階段或例程(圖2a),至少直到多處理器系統10內的所有其餘的處理器都已經開始執行第一階段或例程(圖2a)並且進入了它們各自的等待循環(塊58-62)為止。
在圖2b中所示的第二階段和例程期間,示例性處理器選擇技術(圖2a-c)給多處理器系統10內的所有處理器12-16提供了一個時機,來把它們各自的加權值與存儲在共享資源26中的值進行比較,並且如果它們的加權值優於當前存儲在共享資源26中的值,則把它們的加權值寫入到共享資源26。為了確保具有最佳加權值的處理器已於第二階段或例程結束(圖2b)時、在共享資源26中存儲了它的加權值,所有處理器12-16都以基本上同步的方式(即,大約同時地)為多處理器系統10中的每個處理器執行一次第二階段或例程。換言之,因為在多處理器系統10中存在三個處理器,所以三個處理器12-16以基本上同時的方式執行三次第二階段或例程(圖2b)。其結果是,即使共享資源26並非多處理器安全的,最終也把最佳加權值寫入到共享資源26。例如,如果處理器12-16具有三個不同的加權值,並且第一次執行第二例程,每個處理器12-16可以同時判定它們的加權值優於當前存儲在共享資源26中的值,因此所有處理器12-16都將通過嘗試把它們的加權值寫入到共享資源26中來競爭共享資源26。當然,因為共享資源26並非多處理器安全的(即,不是作為相干存儲器來維護的),所以最終寫入到共享資源26中的值可能是與處理器12-16中任何一個相關聯的加權值,並且最終寫入到共享資源26中的值未必就是嘗試對共享資源26進行寫的處理器12-16中的最佳加權值。如果寫入共享資源26中的值是第三個最佳值(即,最壞的值),那麼在下次或第二次執行第二階段或例程(圖2b)期間,處理器12-16中只有兩個將嘗試把它們的加權值寫入到共享資源26中,因為處理器12-16中只有兩個將判定它們的加權值優於當前存儲在共享資源26中的值。從上文中容易領會到的是,如果每當執行第二階段或例程時,具有最壞加權值的處理器都在處理器12-16當中贏得了對共享資源26的競爭,那麼將為具有N個處理器的多處理器系統執行至少N次的第二例程,以確保具有最佳加權值的處理器最終能把它的加權值寫入到共享資源中。
在圖2c中所示的第三階段或例程期間,處理器選擇技術使多處理器系統10內的每一個處理器12-16都能判斷是否已經為執行諸如像執行BSP活動之類的特定任務而選擇了它。具體來講,在第二階段或例程的最後一次迭代結束時,每個處理器12-16都將它的加權值同存儲在共享資源26中的最佳加權值進行比較(圖2b)。如果處理器判定它的加權值等於存儲在共享資源26中的值,那麼那個處理器就認為是已經從處理器12-16中被選出的。
多處理器系統內的每個處理器基本上以同步(即,近似同時)的方式來執行上述處理器選擇技術。在下面結合圖2a-2c更詳細描述的示例中,所述技術是利用非易失性存儲器32內存儲的固件來實現的。另外,應當認識到的是,儘管把圖1中所示的多處理器系統10描繪成具有三個處理器,但是如果期望的話,則下面結合圖2a-2c所描述的技術也可以同具有兩個處理器或三個以上的處理器的多處理器系統一起使用。
圖2a-2c描繪了這樣一種方式的示例,採用該方式,圖1中所示的多處理器系統10能夠被配置成能在初期的固件執行期間選擇其中一個處理器12-16來起BSP的作用,或者執行非多處理器安全的其它功能。圖2a描繪了通過在各個等待循環中收集和捕獲處理器12-16然後基本上同時地從它們的等待循環中釋放該處理器12-16來基本使多處理器系統10內的處理器12-16同步的第一階段例程的示例。更具體而言,隨著每個處理器12-16開始執行第一階段或例程,它們利用它們各個的ITC寄存器38-42來建立定時器(塊56)以便測量這樣一個時間,所述時間大於或等於最壞情況下處理器12-16中第一個開始執行第一階段或例程的第一時間與處理器12-16中最後一個開始執行第一階段或例程的稍後第二時間之間的時間差。具體來講,因為處理器12-16可以以不同的速率執行指令,所以處理器12-16將在不同的時間建立它們的定時器。例如,在使用圖2a-c中所示的處理器選擇技術來為系統10選擇BSP的情況下,處理器12-16可以開始執行第二階段或例程,由此在系統10復位後的不同時間建立它們的定時器(塊56)。
正如下面結合塊58-64更詳細論述的那樣,在每個處理器12-16內建立定時器,以便當定時器首次到期的處理器執行塊64所表示的活動時,使所有處理器12-16都能於基本上同時在被釋放之前、在它們各自的等待循環(塊58-62)中被收集或捕獲,所述定時器等於第一處理器開始執行第一階段或例程的時間與最後一個的處理器開始執行第一階段或例程的時間之間的最壞情況的延遲。
在處理器12-16是Intel ItaniumTM處理器的情況下,處理器12-16優選地利用其中所提供的ITC寄存器來建立它們的定時器。具體來講,處理器12-16可以通過讀取ITC寄存器的當前值(塊56)然後稍後根據ITC寄存器的已知時鐘同步速率判斷ITC寄存器對應於未來時間的未來計數值來建立它們的定時器,所述未來時間是最壞情況的時間延遲。當然,其中處理器12-16建立它們的定時器的特定方式將會變化,以適合系統10所使用的特定硬體平臺或處理器類型。
在建立每個處理器12-16的定時器之後,每個處理器12-16都對共享資源26進行讀(塊58),並且返回由一個數字字來表示的值,所述數字字所具有的位的數目等於用以表示與處理器12-16相關聯的加權值的最大位數。然後,每個處理器12-16判斷共享資源26所返回的值是否等於預設值(塊60)。如上所述,優選地,共享資源26是晶片組20內的寄存器等,該寄存器例如具有像系統10復位後的零值之類的已知預設值。然後,每個處理器12-16判斷(在塊56設定的)它的定時器是否已經到期(塊62)。在處理器12-16是Intel itaniumTM處理器的情況下,當到達了所計算的未來計數值時,發生定時器到期。當然,取決於多處理器系統10內使用的特定硬體平臺(例如,處理器類型),定時器滿期可能會以不同的方式發生。在任何情況下,如果處理器12-16中的任何一個處理器判定它的定時器已經到期,那麼它就把最壞情況的加權值(該值不等於預設值)寫入到共享資源26(塊64)中,然後將它的循環計數器初始化為零(塊66),以供由圖2b中描繪的第二階段或例程使用。否則,具有未到期定時器的處理器再次對共享資源26進行讀,並且判斷共享資源26所返回的值是否等於預設值(塊58和60)。如果存儲在共享資源26中的值不等於預設值,那麼所有具有未到期定時器的處理器就都退出它們的等待循環並且初始化它們各自的循環計數器(塊66)。雖然這裡所述的示例性實施例將最壞情況加權值寫入到共享資源(塊64)中,但是在塊64,處理器也可以替代地把它自己的加權值寫入到共享資源中,以便執行這裡所述的系統和方法而且能得到相同或相似的結果。
因此,在執行圖2a中所示的第一階段或例程期間,如果與處理器12-16中的任何一個相關聯的定時器到期,則那個處理器就把存儲在共享資源26中的值從預設值改變為最壞情況的加權值,藉此從這些處理器各自的等待循環中釋放所有具有未到期定時器的處理器(即塊58-62)。照此,圖2a-c中所示的處理器選擇技術的第一階段或例程使所有處理器12-16都能基本上被同步,以便近乎同時地開始執行圖2b中所示的第二階段或例程。
然而,應當認識到的是,處理器12-16通常在圖1中所示的第一階段或例程結束時未被極佳地同步。具體地說,與首次建立其定時器的處理器相關聯的定時器將首次到期,藉此使那個處理器能先於其它處理器繼續執行第二階段或例程。另外,具有未到期定時器的處理器將典型地必須執行幾條附加指令以判定共享資源26中的值已被定時器首次到期的處理器改變。
圖2b描繪了能夠由圖2a-c的處理器選擇技術使用以使具有最佳加權值的處理器能在共享資源26中存儲那個加權值的第二階段或例程的示例。在圖2a中所示的第一階段或例程的執行之後,處理器12-16開始以基本上同步的方式來執行第二階段或例程(即,所有處理器12-16近乎同時地開始執行第二階段或例程)。如圖2b所示,每個處理器12-16都建立定時器以便測量預定的時間周期,所述時間周期大於或等於處理器12-16中的任何一個(即最慢慢的處理器)執行與圖2b中所示的第二階段或例程相關聯的計算機代碼或固件所要求的最長的(即,最壞情況的)時間周期。
然後,處理器12-16對共享資源26進行讀(塊70),並且將它們的加權值同存儲在共享資源26中的值進行比較(塊72)。圖1中所示的示例中的每個處理器12-16所使用的加權值都是用代表處理器的狀況良好或工作狀況的數值連接成的、關聯於處理器的唯一數值標識符。
圖3描繪了這樣一種方式,採用該方式,可以對處理器12-16進行編程以產生它們各自的加權值。利用圖3中所示的示例性技術,每個處理器12-16都產生唯一的數值標識符(塊100)。每個處理器12-16的唯一標識符都是從處理器12-16內的各個通用寄存器或任何其它類似的存儲裝置或存儲器中取出的。例如,在處理器12-16是IntelItaniumTM處理器的情況下,每個處理器12-16內的處理器抽象層(PAL)為其各自的處理器提供唯一標識符。例如,處理器12-16可以具有各自的唯一數值標識符1、2和3。
處理器12-16根據處理器的一個或多個屬性-諸如像處理器執行速度、處理器殼體溫度或任何其它期望的參數或屬性或參數與屬性的組合來產生它們各自的狀況良好值(塊102)。例如,在一個更大的數值對應於最佳相對狀況良好的情況下,處理器的相對狀況良好可以從1-9這個範圍變化。
然後,每個處理器12-16都將它的唯一標識符與它的狀況良好值連接起來(塊104),以形成那個處理器的加權值。因此,在唯一標識符從1到3這個範圍變化、而可能的狀況良好從1到9這個範圍變化的情況下,處理器12-16的可能加權值就從11到93到變化,在其中加權值的10位置代表處理器的相對狀況良好,而1位置表示唯一處理器標識符。然後,每個處理器12-16在寄存器等等內本地存儲它的加權值(塊106)。
再次參照圖2b,如果處理器的加權值(例如,與其唯一標識符相連接的其狀況良好值)優於(例如,數值上大於)當前存儲在共享資源26中的值,那麼該處理器就嘗試對共享資源26進行寫(塊74)。對於圖2b中所示的例程的第一次迭代而言,存儲在共享資源26的值等於預先由第一例程或階段存儲的最壞情況的加權值(塊64),所述最壞情況的加權值在上面的示例中是″11″。當然,最壞情況的值將依可能的狀況良好值的範圍以及唯一標識符而變。
因為處理器12-16基本上同時地執行圖2b中所示的第二例程或階段,一個固有的競爭條件存在於如下的處理器當中,這些處理器確定它們比當前存儲在共享資源內的值具有更好的加權值但是尚未把它們的值寫入到共享資源中。其結果是,一個或多個處理器12-16可以嘗試以大致相同時間將它們的加權值寫入到共享資源26中,不過最終只有其中一個處理器12-16將會成功地完成這一操作。然而,正如下面更詳細描述的那樣,圖2b中所示的第二階段或例程的每一次連續迭代都減少了參與競爭條件的處理器的數目,以使得確保該具有最佳加權值的處理器最終能夠將其值寫入到共享資源26。如圖2b所示,判定它們的加權值不優於當前存儲在共享資源26中的值的處理器不會嘗試對共享資源26進行寫。
在嘗試將它們的加權值寫入到共享資源26或者判定不應該做這類嘗試之後,處理器12-16判斷它們的定時器是否已經到期(塊76)。如果處理器判定它的定時器尚未到期,則它就繼續檢查它的定時器(塊76),並由此在一個循環中等待。因為處理器12-16已經都用相同的值建立或設置它們的定時器(塊68)來測量如下這樣的一個時間,所述時間大於或等於處理器12-16中最慢的一個處理器執行由塊70、72和74代表的活動所要求的時間,所以所有處理器12-16最終都將在同時處於它們各自的等待循環中(塊76)。換言之,最快的處理器將只是要比其它處理器更加長久地保持在其等待循環中。然而,所有處理器定時器都將基本上同時地到期,而且因為當定時器到期時所有處理器都處於它們的等待循環中(塊76),所以所有處理器都將基本上同時地繼續遞增它們的循環計數器(塊78)。
處理器12-16在遞增它們的循環計數器後,就判斷它們的循環計數器是否小於或等於處理器的數目,這一數目在圖1中所示的示例中是3。如果循環計數器小於或等於3,則處理器12-16就重建它們的定時器(塊68),並且重複與塊68-80相關聯的活動。在另一方面,如果循環計數器大於3(即,等於4),處理器12-16執行與圖2c中所示的第三階段或例程相關聯的活動。正如能夠從上文中認識到的是,第二階段或例程內的等待循環(塊76)確保處理器12-16以基本上同步的方式來執行與塊68-80相關聯的活動。此外,應當認識到的是,處理器12-16可能難以交換與系統10內當前活動的(或存在的)處理器的數目有關的信息,在處理器間通信受限或無法通信時的早期的固件階段期間更是如此。因此,如果不能確實地知道將在多處理器系統內使用多少處理器的話,就可以將循環計數器設置成對等於特定硬體平臺支持來執行這裡所述的處理器選擇技術的最大處理器數目的迭代次數進行計數。
圖2c描繪了能用於使具有最佳加權值的處理器能把它自身視作為所選處理器的第三階段或例程的示例。如圖2c所示,每個處理器12-16對共享資源26進行讀(塊82),並且判斷存儲在共享資源26中的值是否等於它的加權值(塊84)。如果處理器(例如,處理器16)判定它的加權值等於存儲在共享資源26中的值,則那個處理器(例如,處理器16)就認定它已經被選定執行諸如系統10的引導過程之類的活動。在另一方面,如果處理器(例如,處理器16)判定它的加權值不等於存儲在共享資源26中的值,則那個處理器(例如,處理器16)就認定它尚未被選定(塊88),並且例如可以進入空閒狀態。
雖然結合圖2a-2c示出並描述的示例性處理器選擇技術導致選擇單一處理器,但是還能修改所述技術以從多個處理器中選擇一組處理器。舉例來說,貫穿圖2a-2c中所示的示例使用的唯一標識符的消除,就使得能選擇一組具有相同狀況良好值的處理器。具體來講,如果圖1中所示的處理器12-16具有各個狀況良好值7、7和2,那麼這類選擇技術就會導致選擇處理器12和14,因為它們具有相同的最高狀況良好值。
儘管依照這裡已經描述的本發明的教導實現了確定的方法和設備,但是本專利的覆蓋範圍不限於此。相反,本專利涵蓋了字面上或根據等效原則而明確落入所附權利要求的範圍內的本發明的教導的所有實施例。
權利要求
1.一種從多處理器系統內的多個處理器中選擇處理器的方法,包括將加權值與多個處理器中的每一個相關聯;比較加權值;以及根據加權值的比較,從多個處理器中選擇至少其中一個處理器。
2.如權利要求1所述的方法,其中將加權值與多個處理器相關聯包括利用可表示與每個加權值相關聯的處理器的相對狀況良好的參數來產生加權值。
3.如權利要求2所述的方法,其中產生加權值包括使用與處理器相關聯的唯一標識符以致每個加權值都不同於其它的加權值,並且每個加權值都唯一地只與多個處理器中的其中一個相關聯。
4.如權利要求1所述的方法,進一步包括在比較加權值之前先基本上使多個處理器的操作同步。
5.如權利要求4所述的方法,其中在比較加權值之前先基本上使處理器的操作同步包括讀取多處理器系統內的共享資源以判斷與多個處理器相關聯的多個定時器中的任何一個是否已經到期。
6.如權利要求5所述的方法,其中讀取共享資源以判斷多個定時器中的任何一個是否已經到期包括讀取非多處理器安全的寄存器,以及建立每個定時器以測量這樣一個時間,所述時間大於或等於多個處理器中的第一個建立多個定時器中的一個的第一時間與多個處理器中的最後一個建立多個定時器中的另一個的稍後的第二時間之間的時間差。
7.如權利要求1所述的方法,其中比較加權值包括讀取多處理器系統內的共享資源,以及判斷存儲在共享資源中的值是否優於加權值。
8.如權利要求7所述的方法,其中判斷存儲在共享資源中的值是否優於加權值包括判斷存儲在共享資源中的值在數值上是否大於加權值。
9.如權利要求7所述的方法,進一步包括如果至少其中一個加權值優於存儲在共享資源中的值,則對共享資源進行寫。
10.如權利要求7所述的方法,其中由多個處理器中的每一個重複對共享資源進行讀取以及判斷存儲在共享資源中的值是否優於加權值多次,所述次數等於多個處理器中的處理器的數目。
11.如權利要求10所述的方法,進一步包括設置與多個處理器相關聯的定時器,以測量大於或等於與多個處理器相關聯的最壞情況的執行時間的時間。
12.如權利要求11所述的方法,進一步包括利用定時器和等待循環來保持多個處理器在重複地對共享資源進行讀取以及判斷加權值是否優於存儲在共享資源中的值上基本上同步。
13.如權利要求1所述的方法,其中根據加權值的比較從多個處理器中選擇至少其中一個處理器包括選擇具有最佳加權值的處理器。
14.如權利要求13所述的方法,其中選擇具有最佳加權值的處理器包括選擇具有數值最大的加權值的處理器。
15.如權利要求1所述的方法,其中根據加權值的比較從多個處理器中選擇至少其中一個處理器包括選擇其加權值存儲在共享資源中的處理器。
16.一種多處理器系統,包括互連網絡;耦合於該互連網絡的共享資源;和耦合於該互連網絡的多個處理器,其中所述處理器被編程以將加權值與多個處理器中的每一個相關聯,比較加權值並且根據加權值的比較從多個處理器中選擇至少其中一個處理器。
17.如權利要求16所述的方法,其中所述處理器被編程以利用可表示與每個加權值相關聯的處理器的相對狀況良好的參數來產生每個加權值。
18.如權利要求17所述的系統,其中所述處理器被編程以利用與處理器相關聯的唯一標識符來產生加權值,以使得每個加權值都不同於其它的加權值,並且每個加權值都唯一地只與多個處理器中的其中一個相關聯。
19.如權利要求16所述的系統,其中所述處理器被編程以在比較加權值之前先基本上使彼此同步。
20.如權利要求16所述的系統,其中所述處理器被編程以通過讀取多處理器系統內的共享資源來比較加權值,並判斷存儲在共享資源中的值是否優於加權值。
21.如權利要求16所述的系統,其中所述處理器被編程以根據加權值的比較、通過選擇具有最佳加權值的處理器來從多個處理器中選擇至少其中一個處理器。
22.一種處理器選擇系統,包括計算機可讀介質;和存儲在計算機可讀介質上的計算機代碼,其適合於被處理器執行以便將加權值與處理器相關聯;將該處理器的加權值和與其它處理器相關聯的其它加權值進行比較;以及如果該處理器的加權值優於其它加權值,則選擇該處理器。
23.如權利要求22所述的系統,其中所述計算機代碼適合於被處理器執行以便如果該處理器的加權值在數值上大於其它加權值則選擇該處理器。
24.如權利要求22所述的系統,其中所述計算機代碼適合於被處理器執行以便利用可表示處理器的相對狀況良好的參數來產生與處理器相關聯的加權值。
25.如權利要求24所述的系統,其中所述計算機代碼適合於被處理器執行以便利用與處理器相關聯的唯一標識符來產生加權值。
26.一種用於多處理器系統的、從多個處理器中選擇處理器的方法,包括基本上使多個處理器同步;比較與多個處理器相關聯的加權值;以及識別多個處理器中具有最佳加權值的一個。
27.如權利要求26所述的方法,其中識別多個處理器中具有最佳加權值的一個包括識別具有數值最大的加權值的處理器。
28.如權利要求26所述的方法,包括將多個處理器中所識別的一個指定為多處理器系統的自引導處理器。
29.如權利要求26所述的方法,其中比較與多個處理器相關聯的加權值包括重複地讀取存儲在共享資源中的值,並且如果至少其中一個加權值在數值上大於存儲在共享資源中的值,則在共享資源中存儲這個加權值。
30.一種多處理器系統,包括經由互連網絡而彼此耦合的多個處理器,其中所述處理器被編程以使基本上使彼此同步;比較與多個處理器相關聯的加權值;以及識別多個處理器中具有最佳加權值的一個。
31.如權利要求30所述的多處理器系統,其中所述處理器被編程以通過識別多個處理器中具有數值最大的加權值的一個來識別多個處理器中具有最佳加權值的一個。
32.如權利要求30所述的多處理器系統,其中所述處理器被編程以將多個處理器中所識別的一個選擇為多處理器系統的自引導處理器。
33.一種用於多處理器系統的處理器,包括計算機可讀介質;和存儲在計算機可讀介質上的計算機代碼,其適合於被處理器執行以使該處理器基本上與另一個處理器同步,將與該處理器相關聯的第一加權值和與另一個處理器相關聯的第二加權值進行比較,並且如果第一加權值優於第二加權值則選該擇處理器。
34.如權利要求33所述的處理器,其中第一加權值和第二加權值都與每個處理器各自的狀況良好相關聯。
35.一種引導具有多個處理器的系統的方法,包括在結束系統的引導過程之前,先基本上使處理器的操作同步;以及根據處理器的相對性能特性,將多個處理器中的一個選擇為自引導處理器。
36.如權利要求35所述的方法,其中根據處理器的相對性能特性將多個處理器中的一個選擇為自引導處理器包括選擇多個處理器中具有最佳加權值的一個。
37.如權利要求36所述的方法,其中選擇多個處理器中具有最佳加權值的一個包括選擇多個處理器中具有數值最大的值的一個。
38.如權利要求35所述的方法,其中根據處理器的相對性能特性將多個處理器中的一個選擇為自引導處理器包括根據至少其中一個處理器指令執行速度、處理器殼體溫度和處理器抽象層信息,將多個處理器中的一個選擇為自引導處理器。
39.如權利要求35所述的方法,其中根據處理器的相對性能特性將多個處理器中的一個選擇為自引導處理器包括讀取非多處理器安全的共享資源中存儲的加權值。
40.一種選擇自引導處理器的方法,包括將狀況良好值分配給處理器組內的每個處理器;以及通過重複對共享資源進行讀和寫來比較引導操作期間的狀況良好值。
41.如權利要求41所述的方法,其中通過重複對共享資源進行讀和寫來比較引導操作期間的狀況良好值包括將最佳狀況良好值寫入到共享資源中。
42.如權利要求41所述的方法,其中將最佳狀況良好值寫入到共享資源中包括將數值最大的值寫入到共享資源中。
42.如權利要求41所述的方法,其中所述共享資源不是多處理器安全的。
43.一種選擇自引導處理器的方法,包括在復位操作之後,基本上使多個處理器同步;使處理器多次競爭共享資源;以及讀取共享資源中的數據以便選擇自引導處理器。
44.如權利要求43所述的方法,其中所述共享資源不是多處理器安全的。
45.如權利要求43所述的方法,其中讀取共享資源中的數據以便選擇自引導處理器包括讀取共享資源中的加權值。
全文摘要
一種多處理器系統(10),包括互連網絡(18)、耦合於該互連網絡的共享資源(26)以及彼此耦合且經由該互連網絡而耦合於共享資源的多個處理器(12、14、16)。對處理器進行編程以將加權值與多個處理器中的每一個相關聯,比較加權值,並且根據加權值的比較,從多個處理器中選擇至少其中一個處理器。
文檔編號G06F15/177GK1659516SQ03813629
公開日2005年8月24日 申請日期2003年6月13日 優先權日2002年6月13日
發明者T·謝林 申請人:英特爾公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀