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

啟動物理設(shè)備的方法和使能裝置與流程

文檔序號:11635218閱讀:460來源:國知局
啟動物理設(shè)備的方法和使能裝置與流程

本發(fā)明實(shí)施例涉及處理器領(lǐng)域,尤其涉及一種啟動物理設(shè)備的方法和使能裝置。



背景技術(shù):

物理設(shè)備(例如服務(wù)器)具有多個中央處理單元(centralprocessingunit,cpu)。物理設(shè)備的多個cpu可以通過緩存一致性(cachecoherence)總線互連,緩存一致性總線可以是快速通道互連(quickpathinterconnect,qpi)總線。物理設(shè)備的多個cpu中有一個cpu為主cpu。主cpu在啟動物理設(shè)備時搭建多個cpu之間的通信連接。另外,主cpu可以在啟動物理設(shè)備后在多個cpu中進(jìn)行工作分配。

現(xiàn)有技術(shù)中,物理設(shè)備僅具有一個平臺控制中心(platformcontrollerhub,pch)。并且該pch僅與主cpu之間電性連接。例如,在圖1a提供的包含4個cpu的物理設(shè)備中或者在圖1b提供的包含8個cpu的物理設(shè)備中均僅具有一個pch。該pch僅與cpu0相連,cpu0為主cpu。

以圖1a為例,在啟動物理設(shè)備的初始階段,cpu0與pch合作并使用pch中的資源來建立4個cpu(cpu0、cpu1、cpu2和cpu3)之間的通信連接。若cpu0發(fā)生故障,4個cpu之間的通信連接無法建立。進(jìn)而,cpu1、cpu2和cpu3,均無法依次通過cpu0和pch讀取flash存儲器中的基本輸入輸出系統(tǒng)(basicinputoutputsystem,bios)程序,從而執(zhí)行bios程序來啟動物理設(shè)備,從而物理設(shè)備啟動失敗。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本申請?zhí)峁┝艘环N啟動物理設(shè)備的方法和使能裝置,避免因當(dāng)前的主cpu發(fā)生故障而導(dǎo)致物理設(shè)備啟動失敗。

第一方面,本申請?zhí)峁┮环N啟動物理設(shè)備的方法。

該物理設(shè)備具有m個cpu,m為大于或等于2的正整數(shù)。其中,所述m個cpu中的n個cpu屬于cpu集合,m大于或等于n,n為大于或等于2的正整數(shù);cpu集合中的所有cpu各自與一個pch具有電性連接。這樣,可以從cpu集合選擇任一cpu來作為主cpu,通過主cpu與pch的合作來啟動物理設(shè)備。

應(yīng)知,本申請對從cpu集合選擇主cpu的場景不做限定,例如在主cpu未發(fā)生故障時可以切換主cpu并重啟物理設(shè)備,再例如在主cpu發(fā)生故障時切換主cpu并重啟物理設(shè)備。

具體地,第一cpu發(fā)生故障,所述第一cpu是所述cpu集合中的一個cpu,所述第一cpu是在所述第一cpu發(fā)生故障前用于啟動所述物理設(shè)備的主cpu。在確定第一cpu發(fā)生故障時,從cpu集合確定第二cpu作為主cpu,第二cpu為cpu集合中的一個cpu,并且該第二cpu與第一cpu是不同的cpu。這樣,在主cpu發(fā)生故障時實(shí)現(xiàn)主cpu的切換。

確定所述第二cpu為主cpu后,觸發(fā)所述第二cpu以主cpu的角色通過與第一pch之間的合作啟動所述物理設(shè)備;其中,所述第一pch與所述第二cpu之間具有電性連接。這樣,在第一cpu發(fā)生故障后,可以由第二cpu作為新的主cpu與第一pch之間的合作啟動物理設(shè)備,有效保證了物理設(shè)備能夠在再次重啟。

一種可能設(shè)計,即使主cpu未發(fā)生故障,可以在預(yù)設(shè)條件滿足時重啟物理設(shè)備并從cpu集合選擇另一cpu作為主cpu。預(yù)設(shè)條件可以是預(yù)先設(shè)定的時間,人為操作器件觸發(fā)的重啟信號,或者其他預(yù)先設(shè)定的條件;例如,物理設(shè)備上設(shè)置有物理按鍵,可以人為按下該物理按鍵(為人為可操作的器件中的一種)觸發(fā)電信號,該電信號用于觸發(fā)使能裝置中的復(fù)雜可編程邏輯器件(complexprogrammablelogicdevice,cpld)向該電信號指定的cpu發(fā)送使能信號,該使能信號用于指定新的cpu。這樣,在預(yù)設(shè)條件滿足時實(shí)現(xiàn)主cpu的切換,并以新的主cpu與pch合作來啟動物理設(shè)備。

一種可能設(shè)計,備選的cpu集合包括所述cpu集合中除所述第一cpu以外的所有cpu。在確定第一cpu發(fā)生故障后,從備選的cpu集合任選一個cpu作為第二cpu。這樣可以保證重新選擇的主cpu是未發(fā)生故障的cpu。

一種可能設(shè)計,若所述備選的cpu集合包括的cpu的數(shù)量為一個,則該個cpu為所述第二cpu??梢?,cpu集合可以只包括第一cpu和第二cpu,當(dāng)?shù)谝籧pu發(fā)生故障時,選擇第二cpu作為主cpu。

一種可能設(shè)計,若所述備選的cpu集合包括的cpu的數(shù)量為p個,則從該p個cpu中確定一個cpu為第二cpu,p為大于1的正整數(shù)??梢姡瑐溥x的cpu集合包括的cpu不止一個,當(dāng)?shù)谝籧pu發(fā)生故障時,可以從p個cpu中選擇一個cpu作為主cpu。

一種可能設(shè)計,所述備選的cpu集合包括p個cpu,p為大于1的正整數(shù)。選擇第二cpu的方式如下:若第一跳數(shù)小于或等于第二跳數(shù),則確定第三cpu為第二cpu。

其中,物理設(shè)備具有m個cpu,m為大于或等于n的正整數(shù),所述m個cpu包括所述n個cpu。所述m個cpu之間具有q個電性連接,q為正整數(shù);具體地,所述m個cpu中的任意一個cpu,與所述m個cpu中的其他cpu中的至少一個cpu之間具有電性連接。第一拓?fù)浒╩個節(jié)點(diǎn)以及q個鏈路,所述m個cpu與所述m個節(jié)點(diǎn)一一對應(yīng),所述q個鏈路和所述q個電性連接一一對應(yīng)。所述第一跳數(shù)是指:所述m個cpu中除所述第一cpu和第三cpu以外的所有cpu根據(jù)所述第一拓?fù)涞剿龅谌齝pu的最短路徑包含的跳數(shù)的總和。所述第二跳數(shù)是指:所述m個cpu中除所述第一cpu和第四cpu以外的所有cpu根據(jù)所述第一拓?fù)涞剿龅谒腸pu的最短路徑包含的跳數(shù)的總和。所述第四cpu為所述備選的cpu集合包括的所述p個cpu中除所述第三cpu之外的任一cpu。

本可能設(shè)計基于cpu的拓?fù)浣Y(jié)構(gòu),選擇出的第二cpu作為主cpu。以第二cpu作為主cpu啟動物理設(shè)備或者運(yùn)行物理設(shè)備給cpu的沖擊是最小的;以第二cpu作為主cpu,還保證了各個cpu的效率。

一種可能設(shè)計,所述備選的cpu集合包括p個cpu。選擇第二cpu的方式如下:若所述備選的cpu集合中的所述p個cpu構(gòu)成一個串行鏈路,確定串行鏈路中的一個中間節(jié)點(diǎn)對應(yīng)的一個cpu為所述第二cpu。

其中,所述串行鏈路包括p個節(jié)點(diǎn)以及p-1個子鏈路。所述p個cpu與所述p個節(jié)點(diǎn)一一對應(yīng)。所述p個cpu之間具有p-1個電性連接,具體地,所述p個cpu中的任意一個cpu與所述p個cpu中的其他cpu中的至少一個cpu之間具有電性連接;所述p-1個電性連接與所述p-1個子鏈路一一對應(yīng)。

本可能設(shè)計基于cpu的串行鏈路這種拓?fù)浣Y(jié)構(gòu),選擇出的第二cpu作為主cpu。以第二cpu作為主cpu啟動物理設(shè)備或者運(yùn)行物理設(shè)備給cpu的拓?fù)涞臎_擊是最小的;并且,以第二cpu作為主cpu,還保證了各個cpu的效率。

一種可能設(shè)計,使能裝置在確定第二cpu為主cpu后,確定與第二cpu電性連接的pch為第一pch,并指示該第一pch工作。

一種可能設(shè)計,使能裝置在確定第一cpu發(fā)生故障后,禁止所述第一cpu參與啟動物理設(shè)備。這樣可以避免第一cpu影響物理設(shè)備的啟動。

可選地,使能裝置從電氣角度禁止所述第一cpu參與啟動物理設(shè)備,例如使能裝置斷開對第一cpu的供電。

可選地,若在啟動物理設(shè)備的過程中已建立第一cpu與其它c(diǎn)pu的通信連接,則使能裝置從通信角度禁止所述第一cpu參與啟動物理設(shè)備,例如斷開第一cpu與其它c(diǎn)pu的通信連接。

一種可能設(shè)計,所述物理設(shè)備包括第一存儲器,所述第一存儲器存儲有用于啟動物理設(shè)備的基本輸入輸出系統(tǒng)bios程序。

在第二cpu與第一pch合作啟動物理設(shè)備的過程中,第二cpu通過第一pch訪問第一存儲器從而執(zhí)行bios程序。

一種可能設(shè)計,物理設(shè)備還包括選通器。選通器分別與所述cpu集合中的n個cpu具有電性連接。并且,選通器還與第一pch之間具有電性連接。

使能裝置觸發(fā)第二cpu以主cpu的角色通過與第一pch之間的合作啟動物理設(shè)備之前,指示選通器建立第二cpu與第一pch的通信連接?;诘诙pu與第一pch的通信連接,第二cpu能夠以主cpu的角色訪問第一pch并與第一pch合作來啟動物理設(shè)備。

可選地,使能裝置指示選通器不建立cpu集合中除了第二cpu以外的cpu與第一pch的通信連接。這樣可以避免其他cpu同時對第一pch進(jìn)行訪問而影響第二cpu與第一pch的合作。

一種可能設(shè)計,所述選通器基于第一總線協(xié)議與所述第二cpu通信連接,所述選通器基于第二總線協(xié)議與所述第一pch通信連接。其中,第一總線協(xié)議與第二總線協(xié)議為不同的總線協(xié)議,因此該第二cpu與該第一pch之間傳輸?shù)臄?shù)據(jù)都需要經(jīng)過所述選通器對該數(shù)據(jù)進(jìn)行轉(zhuǎn)換和轉(zhuǎn)發(fā)。

在所述選通器轉(zhuǎn)發(fā)該第二cpu向該第一pch發(fā)送的數(shù)據(jù)時,所述選通器將接收到的來自第二cpu的符合所述第一總線協(xié)議的數(shù)據(jù)轉(zhuǎn)換為符合所述第二總線協(xié)議的數(shù)據(jù),并將所述符合所述第二總線協(xié)議的數(shù)據(jù)發(fā)送給所述第一pch。

在所述選通器轉(zhuǎn)發(fā)該第一pch向該第二cpu發(fā)送的數(shù)據(jù)時,所述選通器將接收到的來自第一pch的符合所述第二總線協(xié)議的數(shù)據(jù)轉(zhuǎn)換為符合所述第一總線協(xié)議的數(shù)據(jù),并將所述符合所述第一總線協(xié)議的數(shù)據(jù)發(fā)送給所述第二cpu。

一種可能設(shè)計,所述物理設(shè)備具有n個pch,所述cpu集合中的n個cpu與所述n個pch之間具有n個電性連接,所述n個cpu與所述n個pch一一對應(yīng),其中,所述第二cpu與所述第一pch之間具有電性連接。這樣可以實(shí)現(xiàn)cpu集合中的每個cpu獨(dú)占一個pch,即使存在故障的pch,也可以選擇與未故障的pch電性連接的cpu作為主cpu(即第二cpu)。

一種可能設(shè)計,所述物理設(shè)備包括n個存儲器,所述n個存儲器與所述n個pch之間具有n個電性連接,所述n個存儲器與所述n個pch一一對應(yīng),第一存儲器為所述n個存儲器中與所述第一pch連接的存儲器。這樣可以實(shí)現(xiàn)cpu集合中的每個cpu獨(dú)占一個存儲器,例如第二cpu通過第一pch獨(dú)占第一存儲器。

可選地,n個存儲器中的不同存儲器,可以存儲可以不同bios程序。在不同時間啟動物理設(shè)備時,主cpu可能為備選的cpu集合中的不同cpu;不同cpu是執(zhí)行不同bios程序來啟動物理設(shè)備,從而實(shí)現(xiàn)針對不同需要對動物理設(shè)備進(jìn)行區(qū)別化配置。

可選地,n個存儲器中的不同存儲器,可以存儲相同的bios程序。在不同時間啟動物理設(shè)備時,主cpu可能為備選的cpu集合中的不同cpu;但不同cpu仍然執(zhí)行相同bios程序來啟動物理設(shè)備,保證了物理設(shè)備每次啟動的配置一致性。

一種可能設(shè)計,物理設(shè)備具有多個pch。物理設(shè)備包括片選器,所述片選器分別與所述多個pch之間具有電性連接,所述片選器與存儲器之間具有電性連接。

使能裝置觸發(fā)所述第二cpu以主cpu的角色通過與第一pch之間的合作啟動所述物理設(shè)備之前,指示所述片選器建立所述第一pch與所述第一存儲器的電性連接;基于第一pch與第一存儲器的電性連接,該第一pch通過該片選器建立與第一存儲器的通信連接,以便第二cpu通過第一pch訪問第一存儲器從而讀取第一存儲器中的bios程序。

可選地,使能裝置指示選通器不建立多個pch中除了第一pch以外的pch與第一存儲器的電性連接。這樣可以避免其他pch影響第一pch對第一存儲器的訪問。

一種可能設(shè)計,第一方面或者第一方面的各種可能設(shè)計提供的啟動物理設(shè)備的方法,由物理設(shè)備上部署的使能裝置執(zhí)行。

第二方面,本申請?zhí)峁┮环N啟動物理設(shè)備的使能裝置,該使能裝置包括實(shí)現(xiàn)第一方面或者第一方面的各種可能設(shè)計提供的啟動物理設(shè)備的方法的各功能單元。

第三方面,本申請?zhí)峁┮环N基板管理控制器(baseboardmanagementcontroller,bmc),部署有實(shí)現(xiàn)第一方面或者第一方面的各種可能設(shè)計提供的啟動物理設(shè)備的方法的各功能單元。

第四方面,本申請?zhí)峁┮环N計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)中存儲有計算機(jī)執(zhí)行指令。當(dāng)物理設(shè)備中的使能裝置(具體可以是bmc)執(zhí)行該計算機(jī)執(zhí)行指令時,使能裝置執(zhí)行上述第一方面或者第一方面的各種可能設(shè)計提供的啟動物理設(shè)備的方法。

第五方面,本申請?zhí)峁┮环N計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品包括計算機(jī)執(zhí)行指令,該計算機(jī)執(zhí)行指令存儲在計算機(jī)可讀存儲介質(zhì)中。使能裝置(具體可以是bmc)可以從計算機(jī)可讀存儲介質(zhì)讀取該計算機(jī)執(zhí)行指令,并執(zhí)行該計算機(jī)執(zhí)行指令,從而實(shí)施上述第一方面或者第一方面的各種可能設(shè)計提供的啟動物理設(shè)備的方法。

附圖說明

圖1a為現(xiàn)有技術(shù)的包含4個cpu的物理設(shè)備的一種系統(tǒng)架構(gòu)示意圖;

圖1b為現(xiàn)有技術(shù)的包含8個cpu的物理設(shè)備的一種系統(tǒng)架構(gòu)示意圖;

圖2為本發(fā)明實(shí)施例提供的物理設(shè)備的一種系統(tǒng)架構(gòu)示意圖;

圖3為本發(fā)明實(shí)施例提供的啟動物理設(shè)備的方法的一種流程示意圖;

圖4a為本發(fā)明實(shí)施例提供的物理設(shè)備的一種系統(tǒng)架構(gòu)示意圖;

圖4b為本發(fā)明實(shí)施例提供的4個cpu的一種拓?fù)浣Y(jié)構(gòu)圖;

圖4c為本發(fā)明實(shí)施例提供的4個cpu的一種拓?fù)浣Y(jié)構(gòu)圖;

圖5為本發(fā)明實(shí)施例提供的物理設(shè)備的一種系統(tǒng)架構(gòu)示意圖;

圖6為本發(fā)明實(shí)施例提供的4個cpu的一種拓?fù)浣Y(jié)構(gòu)圖;

圖7a為本發(fā)明實(shí)施例提供的物理設(shè)備的一種系統(tǒng)架構(gòu)示意圖;

圖7b為本發(fā)明實(shí)施例提供的物理設(shè)備的一種構(gòu)示意圖;

圖8為本發(fā)明實(shí)施例提供的物理設(shè)備的一種系統(tǒng)架構(gòu)示意圖;

圖9為本發(fā)明實(shí)施例提供的物理設(shè)備的一種系統(tǒng)架構(gòu)示意圖;

圖10為本發(fā)明實(shí)施例提供的使能裝置的一種邏輯結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例提供的技術(shù)方案進(jìn)行描述。

物理設(shè)備實(shí)施例

參見圖2,物理設(shè)備具有存儲器、平臺控制中心(platformcontrollerhub,pch)、中央處理單元(centralprocessingunit,cpu)和使能裝置。

物理設(shè)備具有的存儲器為一個或多個,物理設(shè)備的存儲器屬于圖2中的存儲器集合。其中,該存儲器可以是非易失性存儲器,例如flash存儲器。該存儲器存儲有啟動物理設(shè)備所需的基本輸入輸出系統(tǒng)(basicinputoutputsystem,bios)程序。可選地,存儲器集合中的不同存儲器可以存儲相同的bios程序。這樣,cpu每次啟動物理設(shè)備時均執(zhí)行相同的bios程序?qū)ξ锢碓O(shè)備進(jìn)行相同配置,例如進(jìn)行相同的輸入輸出配置。可選地,存儲器集合中的不同存儲器也可以存儲不同的bios程序,cpu在不同時間啟動物理設(shè)備時可能執(zhí)行該不同存儲器的不同bios程序?qū)ξ锢碓O(shè)備進(jìn)行不同配置,例如在不同時間啟動物理設(shè)備時進(jìn)行不同的輸入輸出配置。

物理設(shè)備具有的pch為一個或多個,物理設(shè)備中的pch屬于圖2中的pch集合。pch集合中的任一pch與存儲器集合的存儲器具有電性連接,例如pch集合中的每個pch各自連接一個存儲器,再例如pch集合中的每個pch連接同一個存儲器;這樣cpu可以通過pch從存儲器讀取bios程序,并執(zhí)行bios程序來啟動物理設(shè)備。

物理設(shè)備具有的cpu的個數(shù)為m個,該m為大于或等于2的正整數(shù)。

物理設(shè)備的m個cpu中,有n個cpu屬于圖2中的cpu集合,該n為大于或等于2的正整數(shù),該m大于或等于該n。該cpu集合中的所有cpu各自與pch集合中的一個pch具有電性連接;其中,該cpu集合中的不同cpu,可以與同一個pch具有電性連接,或者分別與不同pch具有電性連接。由于該cpu集合中的任一cpu均可以直接訪問pch,該cpu集合中的任一cpu均可以被選擇為主cpu。

若該m等于該n,則不存在圖2中的虛線框的cpu。這種情況下,物理設(shè)備的m個cpu均屬于該cpu集合,物理設(shè)備的所有cpu均與pch具有電性連接。

若該m大于該n,則存在圖2中的虛線框的cpu。虛線框的cpu為物理設(shè)備中不與pch電性連接的cpu,因此虛線框的cpu不屬于該cpu集合(如圖2所示),該cpu不可以被選擇為主cpu。在啟動物理設(shè)備的過程中,待主cpu建立與虛線框的cpu的通信連接后,虛線框的cpu才可以通過主cpu訪問pch,以及通過主cpu和pch訪問存儲器并執(zhí)行存儲器中的bios程序。

物理設(shè)備中的m個cpu之間具有電性連接。具體地,在物理設(shè)備的m個cpu中,每個cpu與至少一個其它c(diǎn)pu具有電性連接??蛇x地,在物理設(shè)備的m個cpu中,每個cpu與至少兩個其它c(diǎn)pu具有電性連接;這樣在m個cpu中的任一cpu出現(xiàn)故障后,與該出現(xiàn)故障的cpu電性連接的cpu,還可以基于電性連接與另外的cpu建立通信連接。

可選地,m個cpu通過緩存一致性(cachecoherence)總線實(shí)現(xiàn)電性連接;緩存一致性總線可以是快速通道互連(quickpathinterconnect,qpi)總線,還可以是超級通道互連(ultrapathinterconnect,upi)。

物理設(shè)備具有使能裝置。該使能裝置與該cpu集合中的每個cpu均電性連接,該使能裝置可以向該cpu集合的任一個cpu發(fā)送指定主cpu的使能信號,使得收到該使能信號的該個cpu確定自己為主cpu。應(yīng)知,該使能裝置還可以與物理設(shè)備中的其他需要使能控制的器件電性連接,以便該器件收到該使能裝置的使能信號時根據(jù)自身設(shè)置確定待執(zhí)行的動作,例如該使能裝置還與圖2中的虛線框的cpu電性連接(圖2未示意出),以便該使能裝置可以向虛線框的cpu發(fā)送指定從cpu的使能信號。

本發(fā)明實(shí)施例所述的器件包括cpu、pch、片選器和選通器等。

該使能裝置可以是硬件實(shí)現(xiàn),具體可以是采用電路實(shí)現(xiàn)。

該使能裝置也可以是軟件運(yùn)行在硬件的基礎(chǔ)上并指示該硬件動作的方式實(shí)現(xiàn)。一種可選實(shí)現(xiàn)方式,該使能裝置包括基板管理控制器(baseboardmanagementcontroller,bmc)和復(fù)雜可編程邏輯器件(complexprogrammablelogicdevice,cpld);其中,cpld與物理設(shè)備中需要使能控制的器件電性連接,例如cpu集合中的cpu;bmc可以指示cpld向哪個器件發(fā)送使能信號。

本發(fā)明實(shí)施例中,物理設(shè)備中電性連接的兩個器件,可以相互發(fā)送電信號。例如,使能裝置與cpu電性連接,使能裝置便可向cpu發(fā)送使能信號。再例如,cpu與pch電性連接,cpu便可在啟動物理設(shè)備時通過電信號與pch建立通信連接以便訪問pch中的資源。再例如,電性連接的兩個cpu,該兩個cpu之間可以通過電信號的交互來建立通信連接。

通信連接的兩個器件,可以相互發(fā)送數(shù)據(jù)。本發(fā)明實(shí)施例中,基于電性連接可以建立通信連接;例如,總線連接的兩個器件(例如兩個cpu,或者cpu與pch),可以基于該總線支持的協(xié)議建立通信連接,通信連接后,可以基于該協(xié)議相互發(fā)送數(shù)據(jù)。

在現(xiàn)有技術(shù)中,與pch連接的cpu的數(shù)量僅有一個,因此僅能由該cpu作為啟動物理設(shè)備的主cpu,若該cpu出現(xiàn)故障,則啟動物理設(shè)備失敗。

為解決現(xiàn)有技術(shù)存在的問題,本發(fā)明實(shí)施例提供了上述的物理設(shè)備,該物理設(shè)備中至少有兩個cpu與pch電性連接,即cpu集合中的所有cpu各自電性連接有pch,如圖2所示;在該物理設(shè)備的基礎(chǔ)上,本發(fā)明實(shí)施例提供一種啟動該物理設(shè)備的方法,該使能裝置執(zhí)行該方法可以克服現(xiàn)有技術(shù)的問題。

方法實(shí)施例

本發(fā)明實(shí)施例提供的一種啟動物理設(shè)備的方法,參見圖3,該方法包括步驟s301、s302和s303。

可選地,在執(zhí)行步驟s301,需要得到表征主cpu是否故障的信息,該信息可以通過執(zhí)行步驟s311檢測得到。

步驟s311,檢測主cpu是否故障。

步驟s311可以是在物理設(shè)備上電啟動時執(zhí)行,也可以在物理設(shè)備啟動后執(zhí)行。

主cpu可能出現(xiàn)的故障包括三類,第一類故障是電氣故障,第二類故障是與其他cpu通信連接的故障,第三類故障是其它可能的故障。

對于第一類故障,主cpu會向使能裝置反饋。主cpu在發(fā)生電氣故障時會通過電信號的形式向使能裝置反饋,使能裝置根據(jù)該電信號確定主cpu發(fā)生故障。例如,使能裝置的cpld在接收到該電信號時在cpld的寄存器中標(biāo)識主cpu發(fā)生的故障,使能裝置的bmc根據(jù)該寄存器的標(biāo)識確定主cpu已發(fā)生第一類故障。

對于第二類故障,由使能裝置或者bios檢測。具體的檢測方法可以是,比較物理設(shè)備中上電的cpu的個數(shù)與上電后bios檢測到的cpu的個數(shù)是否存在差異,以及進(jìn)一步確定存在差異的原因是否是主cpu發(fā)生第二類故障導(dǎo)致。舉例說明,使能裝置在物理設(shè)備中的所有cpu上電時,記錄上電的cpu的個數(shù);bios在cpu上電后檢測cpu,并記錄檢測到的cpu的個數(shù);使能裝置的bmc或者bios,比較上電時cpu的個數(shù)與上電后bios檢測到的cpu的個數(shù),如果比較結(jié)果為個數(shù)不同,并進(jìn)一步查詢到主cpu與其它c(diǎn)pu互連的總線上的錯誤碼,根據(jù)該錯誤碼可以確定主cpu是否發(fā)生第二類故障;如果是由bios根據(jù)該錯誤碼確定主cpu發(fā)生第二類故障,bios還需要通知bmc主cpu發(fā)生第二類故障。

對于第三類故障,由主cpu使用機(jī)器檢查架構(gòu)(machinecheckarchitecture,mca)機(jī)制檢測。若主cpu通過mca機(jī)制檢測到主cpu發(fā)生第三類故障,主cpu通過bios將該第三類故障上報使能裝置,或者主cpu直接上報使能裝置,以便使能裝置確定主cpu發(fā)生故障;主cpu將該第三類故障上報使能裝置,具體可以是將該第三類故障上報給使能裝置的bmc,以便bmc確定主cpu發(fā)生故障。

如果是在物理設(shè)備上電啟動時執(zhí)行步驟s311,并且未檢測到主cpu發(fā)生故障,則主cpu繼續(xù)啟動物理設(shè)備。

無論是在物理設(shè)備上電啟動時還是在物理設(shè)備啟動后執(zhí)行步驟s311檢測到主cpu發(fā)生故障,使能裝置均獲取根據(jù)步驟s311的檢測結(jié)果。例如對于第一類故障,使能裝置直接獲取該cpld的寄存器中表征主cpu發(fā)生第一類故障的標(biāo)識。例如對于第二類故障,使能裝置直接獲取錯誤碼或者接收bios的通知,通知內(nèi)容為主cpu發(fā)生第二類故障。再例如對于第三類故障,使能裝置接收主cpu上報的表征第三類故障的信息。

應(yīng)知,執(zhí)行步驟s311得到的檢測結(jié)果,為表征主cpu是否故障的信息的一種表現(xiàn)形式。

應(yīng)知,步驟s311為步驟s301獲取表征主cpu是否故障的信息的一種可能實(shí)現(xiàn)方式,也可以采用其它獲取表征主cpu是否故障的信息的可能實(shí)現(xiàn)方式替代步驟s311,例如采用現(xiàn)有技術(shù)提供的獲取表征主cpu是否故障的信息的可能實(shí)現(xiàn)方式。

步驟s301,確定主cpu故障。

使能裝置獲取到根據(jù)表征主cpu是否故障的信息(例如步驟s311的檢測結(jié)果),根據(jù)該表征主cpu是否故障的信息確定主cpu是否發(fā)生故障;如果使能裝置確定為主cpu發(fā)生故障,記錄發(fā)生故障的主cpu的標(biāo)識,主cpu的標(biāo)識可以是主cpu的id(identity)或者其它可用于唯一識別cpu的特征。若使能裝置包括bmc,則是由bmc獲取到根據(jù)該表征主cpu是否故障的信息確定主cpu是否發(fā)生故障。

本發(fā)明實(shí)施例中,根據(jù)表征主cpu是否故障的信息(例如步驟s311的檢測結(jié)果)確定為發(fā)生故障的主cpu,被稱為第一cpu;因此該第一cpu是指在該第一cpu發(fā)生故障之前用于啟動物理設(shè)備的主cpu。應(yīng)知,該第一cpu為cpu集合中的一個cpu。

步驟s302,物理設(shè)備重啟,重新選擇主cpu。

步驟s301確定主cpu故障后,物理設(shè)備重新啟動;重新啟動的方式,可以是對物理設(shè)備重新上電啟動,或者可以是物理設(shè)備熱重啟。重新啟動物理設(shè)備時,使能裝置根據(jù)記錄的發(fā)生故障的主cpu的標(biāo)識,從cpu集合選擇未發(fā)生故障的一個cpu作為新的主cpu,本發(fā)明實(shí)施例將cpu集合中扮演新的主cpu的角色的cpu稱為第二cpu。

一種可能實(shí)現(xiàn)方式,使能裝置僅記錄最近一次發(fā)生故障的主cpu的標(biāo)識(即第一cpu的標(biāo)識)。使能裝置根據(jù)記錄的最近一次發(fā)生故障的主cpu的標(biāo)識,確定備選的cpu集合,該備選的cpu集合是指cpu集合中除所述第一cpu以外的所有cpu。進(jìn)而在步驟s302中,使能裝置從備選的cpu集合中選擇一個cpu(即第二cpu)作為新的主cpu。

一種可能實(shí)現(xiàn)方式,步驟s302之前每次啟動物理設(shè)備所確定的所有已發(fā)生故障的主cpu的標(biāo)識(包括第一cpu的標(biāo)識),使能裝置都會記錄。使能裝置根據(jù)記錄的所有已發(fā)生故障的主cpu的標(biāo)識,確定備選的cpu集合,該備選的cpu集合是指cpu集合中除所有已發(fā)生故障的主cpu以外的所有cpu。進(jìn)而在步驟s302中,使能裝置從備選的cpu集合中選擇一個cpu作為新的主cpu(即第二cpu)。

應(yīng)理解,在步驟s302中使能裝置從該備選的cpu集合選擇第二cpu,分為實(shí)現(xiàn)情況:

第一種情況,若該備選的cpu集合包括的cpu的數(shù)量為一個,則該個cpu為該第二cpu;

第二種情況,該備選的cpu集合包括的cpu的數(shù)量為p個,p為大于1的正整數(shù),則從該備選的cpu集合包括的p個cpu中確定一個cpu為該第二cpu。

可選地,對于第二種實(shí)現(xiàn)情況,使能裝置可以從備選的cpu集合中任意確定一個cpu作為該第二cpu。

可選地,對于第二種實(shí)現(xiàn)情況,使能裝置可以選擇對該備選的cpu集合的性能沖擊最小的cpu作為第二cpu。

一種可能實(shí)現(xiàn)方式中,性能沖擊最小可以是指所述物理設(shè)備中除該第一cpu和新的主cpu以外的所有cpu各自以最短路徑到該新的主cpu所需跳數(shù)的總和最??;這樣,所述物理設(shè)備中除該第一cpu和該新的主cpu以外的所有cpu通過該新的主cpu訪問pch時需要的跳數(shù)的總和也是最小的。該最短路徑是指根據(jù)最短路徑算法確定的路徑,此處對最短路徑算法不做限定。應(yīng)知,如果物理設(shè)備包括圖2中的虛線框的cpu,則所述物理設(shè)備中除該第一cpu和新的主cpu以外的所有cpu,包括圖2中的虛線框的cpu,即包括物理設(shè)備中未電性連接任何pch的cpu。

假設(shè)該物理設(shè)備的cpu集合只有第一cpu發(fā)生故障,使能裝置通過比較跳數(shù)來確定第二cpu的實(shí)現(xiàn)方式如下兩步。

第一步,使能裝置計算在該備選的cpu集合中每個cpu依次作為主cpu時該物理設(shè)備中除了該第一cpu和該主cpu以外的所有cpu各自以最短路徑到該主cpu所需跳數(shù)的總和。

使能裝置計算在第三cpu作為主cpu時的第一跳數(shù)。計算該第一跳數(shù)的計算方法可以是:計算該物理設(shè)備中除該第一cpu和第三cpu以外的所有cpu各自以最短路徑到該第三cpu所需跳數(shù)的總和。該第三cpu為該備選的cpu集合中一個cpu。使能裝置計算在第四cpu作為主cpu時的第二跳數(shù)。計算該第二跳數(shù)的計算方法可以是:計算該物理設(shè)備中除該第一cpu和第四cpu以外的所有cpu各自以最短路徑到該第四cpu所需跳數(shù)的總和。其中,該第四cpu為該備選的cpu集合中不同于該第三cpu的任一cpu。

作為第一步計算第一跳數(shù)和計算第二跳數(shù)的替代方案,或者作為第一步計算第一跳數(shù)和計算第二跳數(shù)的一種具體計算方法的舉例,該物理設(shè)備具有m個cpu,m為大于或等于n的正整數(shù),該m個cpu包括該n個cpu。該m個cpu之間具有q個電性連接,q為正整數(shù),具體地,該m個cpu中的任意一個cpu與該m個cpu中的其他cpu中的至少一個cpu之間具有電性連接。第一拓?fù)浒╩個節(jié)點(diǎn)以及q個鏈路,該m個cpu與該m個節(jié)點(diǎn)一一對應(yīng),即m個cpu中的每個cpu作為一個節(jié)點(diǎn);該q個電性連接與該q個鏈路一一對應(yīng),即q個電性連接中的每個電性連接作為一個鏈路。該第一跳數(shù)具體是指該m個cpu中除該第一cpu和第三cpu以外的所有cpu根據(jù)該第一拓?fù)涞皆摰谌齝pu的最短路徑包含的跳數(shù)的總和。該第二跳數(shù)具體是指該m個cpu中除該第一cpu和第四cpu以外的所有cpu根據(jù)該第一拓?fù)涞皆摰谒腸pu的最短路徑包含的跳數(shù)的總和。

第二步,若該第一跳數(shù)小于或等于該第二跳數(shù),則使能裝置將第三cpu作為該第二cpu。

可選地,如果該物理設(shè)備的cpu集合只有第一cpu發(fā)生故障,使能裝置可以直接執(zhí)行上述的第一步來在計算該第一跳數(shù)和該第二跳數(shù)。如果該物理設(shè)備的cpu集合發(fā)生故障的cpu不只第一cpu時,因所有已發(fā)生故障的cpu均不再用于啟動物理設(shè)備(不會通過主cpu訪問pch),則使能裝置在計算該第一跳數(shù)和該第二跳數(shù)時不考慮所有已發(fā)生故障的cpu。

一種可能實(shí)現(xiàn)方式中,性能沖擊最小根據(jù)該備選的cpu集合的拓?fù)浼軜?gòu)確定。具體地,使能裝置選擇位于該cpu集合的拓?fù)浼軜?gòu)的中心位置的cpu作為主cpu,可以實(shí)現(xiàn)對該備選的cpu集合的性能沖擊最小。

舉例說明,該備選的cpu集合包括p個cpu,并且該p個cpu串行連接,使得該p個cpu構(gòu)成一個串行鏈路。該串行鏈路包括p個節(jié)點(diǎn)以及p-1個子鏈路。該p個cpu與該p個節(jié)點(diǎn)一一對應(yīng),即p個cpu中的每個cpu作為一個節(jié)點(diǎn);該p個cpu之間具有p-1個電性連接,具體地,該p個cpu中的任意一個cpu與該p個cpu中的其他cpu中的至少一個cpu之間具有電性連接。該p-1個電性連接與該p-1個子鏈路一一對應(yīng),即p-1個電性連接中的每個電性連接作為一個子鏈路。在該p個cpu構(gòu)成一個串行鏈路的場景中,使能裝置確定串行鏈路中的一個中間節(jié)點(diǎn)對應(yīng)的一個cpu為該第二cpu。

可選地,若使能裝置包括bmc,由bmc執(zhí)行步驟s302中選擇新的主cpu的動作,例如由bmc選擇對該備選的cpu集合的性能沖擊最小的第二cpu作為新的主cpu。

步驟s303,觸發(fā)新的cpu與pch合作來啟動物理設(shè)備。

使能裝置在步驟s302中確定該第二cpu為新的主cpu后,通過向該第二cpu發(fā)送使能信號來觸發(fā)所述第二cpu以主cpu的角色通過與第一pch之間的合作啟動所述物理設(shè)備。

具體地,使能裝置向該第二cpu發(fā)送使能信號,該使能信號指示該第二cpu為新的主cpu。舉例說明,使能裝置的bmc在步驟s302中確定該第二cpu為新的主cpu,并指示使能裝置的cpld向該第二cpu發(fā)送使能信號。該第二cpu接收到該使能信號,并根據(jù)該使能信號的指示確定自己為新的主cpu。

該第二cpu在確定自己為新的主cpu后,該第二cpu以主cpu的角色(也可以稱作主cpu的身份),并通過與第一pch之間的合作啟動所述物理設(shè)備;其中,該第一pch為與該第二cpu電性連接的pch。

啟動物理設(shè)備的過程可以包括:

該第二cpu以主cpu的身份,從第一pch獲取cpu拓?fù)浼軜?gòu)的配置信息,該pch中的配置信息可以包括cpu的配置信息和用于cpu之間互連的總線的總線協(xié)議;該第二cpu根據(jù)該配置信息配置物理設(shè)備中除已發(fā)生故障的cpu以外的所有cpu,以及建立物理設(shè)備中除已發(fā)生故障的cpu以外的所有cpu之間的通信連接,實(shí)現(xiàn)根據(jù)配置信息組建cpu的拓?fù)浼軜?gòu);

物理設(shè)備中除已發(fā)生故障的cpu以外的所有cpu通過該第一pch訪問存儲器,執(zhí)行存儲器中的bios程序;可選地,物理設(shè)備中除已發(fā)生故障的cpu和第二cpu以外的所有cpu是通過該第二cpu間接訪問存儲器的。

應(yīng)知,如果物理設(shè)備包括圖2中的虛線框的cpu,則該物理設(shè)備中除已發(fā)生故障的cpu以外的所有cpu,包括圖2中的虛線框的cpu,即包括物理設(shè)備中未電性連接任何pch的cpu。

一種可選實(shí)現(xiàn)方式,人為觸發(fā)步驟303和步驟304的執(zhí)行。舉例說明,人為觸發(fā)物理設(shè)備上電重啟或者熱重啟,手動操作器件(例如由按鍵構(gòu)成的觸發(fā)電路)選擇第二cpu為主cpu,觸發(fā)cpld向第二cpu發(fā)送使能信號。

一種可選實(shí)現(xiàn)方式,使能裝置指示第二cpu配置成本地存儲訪問模式,并指示該物理設(shè)備的cpu集合中除已發(fā)生故障的cpu和該第二cpu以外的所有cpu配置成遠(yuǎn)端存儲訪問模式;舉例說明,如果存儲器為flash存儲器,則本地存儲訪問模式具體是指localflash模式,遠(yuǎn)端存儲訪問模式具體是指remoteflash模式。

一種可能實(shí)現(xiàn)方式中,使能裝置在步驟s302中確定該第二cpu為新的主cpu后,確定與該第二cpu電性連接的pch為第一pch;使能裝置向該第一pch發(fā)送使能信號,該使能信號指示第一pch工作,以便第二cpu與該第一pch合作來啟動物理設(shè)備。舉例說明,使能裝置的bmc在步驟s302中確定該第二cpu為新的主cpu,并控制使能裝置的cpld向該第一pch發(fā)送使能信號,該使能信號可以使得該第一pch釋放復(fù)位態(tài),釋放復(fù)位態(tài)的該第一pch工作。

一種可選實(shí)現(xiàn)方式,若pch集合具有多個pch。第二cpu與第一pch合作啟動物理設(shè)備的過程中,在第二cpu建立了物理設(shè)備的cpu集合中除第一cpu以外的所有cpu之間的通信連接后,備選的cpu集合中除第二cpu以外的所有cpu僅基于第一pch中的資源做配置(例如對各自連接的pci-e總線作配置)。

一種可選實(shí)現(xiàn)方式,若pch集合具有多個pch。第二cpu與第一pch合作啟動物理設(shè)備的過程中,在第二cpu建立了物理設(shè)備的cpu集合中除第一cpu以外的所有cpu之間的通信連接后,備選的cpu集合中除第二cpu以外的所有cpu不但可以基于第一pch中的資源做配置,還可以訪問各自電性連接的pch來做配置(例如對各自連接的pci-e總線作配置)??蛇x地,備選的cpu集合中除第二cpu以外的所有cpu在基于第一pch中的資源做配置的基礎(chǔ)上,再以各自電性連接的pch中的資源來做補(bǔ)充配置。

一種可能實(shí)現(xiàn)方式中,使能裝置在步驟s302中確定該第二cpu為新的主cpu后,使能裝置在步驟s302中確定該第二cpu為新的主cpu后,禁止所述第一cpu參與啟動物理設(shè)備。另外,使能裝置禁止物理設(shè)備的cpu集合中已發(fā)生故障的其他cpu參與啟動物理設(shè)備。

本可選方式對禁止cpu參與啟動物理設(shè)備的實(shí)現(xiàn)方式不做限定,例如可以是停止對該cpu供電,例如可以是斷開該第二cpu與該cpu的通信連接,再例如還可以是停止對該cpu供電的同時還斷開該第二cpu與該cpu的通信連接,再例如將該cpu設(shè)置為無效,被置為無效的cpu不用于啟動物理設(shè)備。

一種可能實(shí)現(xiàn)方式中,參見圖4a,在圖2所示的物理設(shè)備中增加了選通器,該選通器可以是任何具有選通功能的、能夠建立cpu與pch之間的通信連接的器件。

該選通器分別與該備選的cpu集合中的每個cpu之間具有電性連接,還與pch集合中的至少一個pch之間具有電性連接。該選通器用于選通該備選的cpu集合中的一個cpu,以及用于選通pch集合中的一個pch,從而建立起被選通的cpu與被選通的pch之間的通信連接。具體在本可能實(shí)現(xiàn)方式中,該選通器用于根據(jù)使能裝置的指示建立該第二cpu與該第一pch的通信連接。

在本發(fā)明實(shí)施例中,選通是指建立通信連接。例如,該選通器選通cpu具體是指,選通器基于其與該cpu互聯(lián)的總線所支持的總線協(xié)議建立其與該cpu的通信連接;同理,選通器選通pch是指,選通器基于其與該pch互聯(lián)的總線所支持的總線協(xié)議建立其與該pch的通信連接。

可選地,pch集合僅具有一個pch,即僅具有第一pch。在pch集合僅具有第一pch的場景下,該選通器電性連接在該備選的cpu集合中的每個cpu與第一pch之間的拓?fù)浼軜?gòu)有多種,在此不做限定;下面提供兩種可能的拓?fù)浼軜?gòu),參見圖4b和圖4c。

圖4b示意了以4個cpu為例的一種拓?fù)浼軜?gòu),4個cpu(包括第一cpu和第二cpu)之間互相具有電性連接,4個cpu通過和第一pch分別與選通器之間具有電性連接。可選地,圖4b中的選通器可以是pci-eswitch,pci-eswitch與4個cpu之間分別通過直接媒體接口(directmediainterface,dmi)總線實(shí)現(xiàn)電性連接;該使能裝置可以指示pci-eswitch選通連接該第二cpu的dmi總線,實(shí)現(xiàn)該第二cpu與該第一pch之間的通信連接的建立。

圖4c示意了以4個cpu為例的又一種拓?fù)浼軜?gòu),4個cpu通過選通器實(shí)現(xiàn)建立通信連接,4個cpu之間可以直接通過總線(例如qpi總線)互聯(lián)或者不互聯(lián),例如第一cpu與一個cpu通過總線互聯(lián),但第一cpu與第二cpu是沒有互聯(lián)的;另外,4個cpu與第一pch分別與選通器具有電性連接。可選地,圖4c中的選通器可以是節(jié)點(diǎn)控制器(nodecontroller,nc),nc與4個cpu之間分別通過總線實(shí)現(xiàn)電性連接;該使能裝置可以指示nc選通連接該第二cpu的總線,實(shí)現(xiàn)該第二cpu與該第一pch之間的通信連接的建立。

在物理設(shè)備增加了選通器的場景,使能裝置在確定第一cpu發(fā)生故障后,在執(zhí)行圖3中的步驟s303時,會指示所述選通器建立所述第二cpu與所述第一pch的通信連接。具體地,使能裝置不但向該第二cpu發(fā)送指示第二cpu為新的cpu的使能信號,和向該第一pch發(fā)送指示pch工作的使能信號,還需要向選通器發(fā)送選通該第二cpu的使能信號。選通器根據(jù)接收的使能信號建立該第二cpu與該第一pch的通信連接,以便該第二cpu通過該選通器與該第一pch合作來啟動物理設(shè)備。

可選地,選通器基于相同的總線協(xié)議分別與第二cpu和第一pch建立通信連接。這樣,無論在啟動物理設(shè)備階段還是在物理設(shè)備啟動后,對于該第二cpu與該第一pch之間傳輸?shù)臄?shù)據(jù),所述選通器都直接轉(zhuǎn)發(fā)。

舉例說明,在圖4b所示的4個cpu的拓?fù)浼軜?gòu)為例,假設(shè)選通器為pci-eswitch;pci-eswitch與第二cpu之間,pci-eswitch與第一pch之間,均通過dmi總線連接。這樣,pci-eswitch采用dmi總線支持的協(xié)議分別與該第二cpu與該第一pch建立通信連接,建立通信連接后,pci-eswitch在轉(zhuǎn)發(fā)該第二cpu與該第一pch之間傳輸?shù)臄?shù)據(jù)時不需要對該數(shù)據(jù)進(jìn)行協(xié)議轉(zhuǎn)換。

舉例說明,在圖4c所示的4個cpu的拓?fù)浼軜?gòu)為例,假設(shè)選通器為nc;nc與第二cpu之間,不但通過qpi總線連接(圖4c示意為nc與第二cpu之間連接的實(shí)線),還通過dmi總線連接(圖4c示意為nc與第二cpu之間連接的虛線);nc與第一pch之間通過dmi總線連接。這樣,4個cpu之間通過nc建立通信連接時是基于qpi總線支持的協(xié)議;nc建立4個cpu與第一pch之間的通信連接時是基于dmi總線支持的協(xié)議。nc采用dmi總線支持的協(xié)議分別與該第二cpu與該第一pch建立通信連接后,nc在轉(zhuǎn)發(fā)該第二cpu與該第一pch之間傳輸?shù)臄?shù)據(jù)時不需要對該數(shù)據(jù)進(jìn)行協(xié)議轉(zhuǎn)換。

可選地,選通器基于第一總線協(xié)議與所述第二cpu通信連接,選通器基于第二總線協(xié)議與所述第一pch通信連接。該第一總線協(xié)議與該第二總線協(xié)議為不同的總線協(xié)議。該第一總線協(xié)議為選通器與第二cpu之間連接的總線所支持的總線協(xié)議。該第二總線協(xié)議為選通器與第一pch之間連接的總線所支持的總線協(xié)議。無論在啟動物理設(shè)備階段還是在物理設(shè)備啟動后,該第二cpu與該第一pch之間傳輸?shù)臄?shù)據(jù)都需要經(jīng)過所述選通器對該數(shù)據(jù)進(jìn)行轉(zhuǎn)換和轉(zhuǎn)發(fā)。

在所述選通器轉(zhuǎn)發(fā)該第二cpu向該第一pch發(fā)送的數(shù)據(jù)時,所述選通器將接收到的來自第二cpu的符合所述第一總線協(xié)議的數(shù)據(jù)轉(zhuǎn)換為符合所述第二總線協(xié)議的數(shù)據(jù),并將所述符合所述第二總線協(xié)議的數(shù)據(jù)發(fā)送給所述第一pch。

在所述選通器轉(zhuǎn)發(fā)該第一pch向該第二cpu發(fā)送的數(shù)據(jù)時,所述選通器將接收到的來自第一pch的符合所述第二總線協(xié)議的數(shù)據(jù)轉(zhuǎn)換為符合所述第一總線協(xié)議的數(shù)據(jù),并將所述符合所述第一總線協(xié)議的數(shù)據(jù)發(fā)送給所述第二cpu。

舉例說明,以圖4b所示的4個cpu的拓?fù)浼軜?gòu)為例,并假設(shè)選通器為nc,若圖4c不存在nc與第二cpu之間連接的虛線,nc與第二cpu之間通過qpi總線連接(圖4c示意為nc與第二cpu之間連接的實(shí)線);nc與第一pch之間通過dmi總線連接。這樣,4個cpu與nc之間的通信連接是基于qpi總線支持的協(xié)議,nc與第一pch之間的通信連接是基于dmi總線支持的協(xié)議。nc轉(zhuǎn)發(fā)該第二cpu向該第一pch發(fā)送的數(shù)據(jù)時,需要將滿足qpi總線支持的協(xié)議的數(shù)據(jù)轉(zhuǎn)換為滿足dmi總線支持的協(xié)議的數(shù)據(jù),再向第一pch發(fā)送協(xié)議轉(zhuǎn)換后的數(shù)據(jù)。nc轉(zhuǎn)發(fā)該第一pch向該第二cpu發(fā)送的數(shù)據(jù)時,需要將滿足dmi總線支持的協(xié)議的數(shù)據(jù)轉(zhuǎn)換為滿足qpi總線支持的協(xié)議的該數(shù)據(jù),再向第二cpu發(fā)送協(xié)議轉(zhuǎn)換后的數(shù)據(jù)。

一種可能實(shí)現(xiàn)方式中,參見圖5,cpu集合有n個cpu,pch集合有j個pch,j和n均為大于或等于2的正整數(shù)。圖5中,該pch集合中的所有pch分別與存儲器集合中的存儲器之間具有電性連接。

若j等于n,則不存在圖5中的虛線框的pch。cpu集合的n個cpu與pch集合中的j個pch之間具有一一對應(yīng)的電性連接;其中,該第二cpu與該第一pch之間具有電性連接。這樣可以實(shí)現(xiàn)每個cpu獨(dú)占一個pch。

若j大于n,則存在圖5中的虛線框的pch,圖5僅虛線示意了一個該pch。cpu集合的n個cpu與pch集合中的n個pch之間具有一一對應(yīng)的電性連接;其中,第二cpu與第一pch之間具有電性連接。pch集合中除該n個pch以外的cpu,可以不與cpu集合的任何cpu之間具有電性連接,這樣可以作為備用的pch。

cpu集合的n個cpu各自連接一個pch;若一個或多個pch發(fā)生故障,使能裝置可以將未發(fā)生故障的、電性連接的cpu和pch確定為第二cpu和第一pch??梢?,使能裝置確定第二cpu和第一pch時,第二cpu是從未發(fā)生故障的備選的cpu集合中選擇的,第一pch是從未發(fā)生故障的pch中選擇的,并且該第二cpu和該第一pch是電信連接的??蛇x地,使能裝置會記錄出現(xiàn)故障的pch的標(biāo)識,例如pch的id。

可選地,存儲器集合具有j個存儲器,即該存儲器集合包括的存儲器的個數(shù)與該pch集合包括的pch的個數(shù)相同。該存儲器集合中的j個存儲器與pch集合中的j個pch之間具有一一對應(yīng)的電性連接。其中,該第一pch與一個存儲器之間具有電性連接,該個存儲器稱為第一存儲器。舉例說明,在圖6示意的4個cpu的架構(gòu)中,j等于3,3個pch各自電性連接一個存儲器。應(yīng)知,電性連接的pch和存儲器之間,該pch可以與該存儲器建立通信連接;建立通信連接后,該pch可以訪問該存儲器中的數(shù)據(jù),例如bios程序。

可選地,pch與存儲器是電性連接的,例如圖6所示的4個cpu的架構(gòu)中即是如此。pch與存儲器的電性連接具體可以通過總線實(shí)現(xiàn),例如該總線可以是串行外設(shè)接口(serialperipheralinterface,spi)總線。pch可以通過與存儲器互聯(lián)的總線建立通信連接。

可選地,參見圖7a,在圖5所示的物理設(shè)備的基礎(chǔ)上,該物理設(shè)備還包括片選器。該片選器分別與該pch集合中的j個pch之間具有電性連接,還與存儲器集合中的存儲器之間具有電性連接。該片選器與pch的電性連接,以及該片選器與存儲器的電性連接,可以通過總線實(shí)現(xiàn);例如,該總線可以是串行外設(shè)接口(serialperipheralinterface,spi)總線。pch可以基于該總線支持的協(xié)議與存儲器建立通信連接。舉例說明,在圖7b示意的4個cpu的架構(gòu)中,j等于3;并且,圖7b僅示意了一個存儲器。

該片選器用于選擇j個pch中的任一個pch,被選擇的pch可以通過片選器訪問存儲器。如果該片選器電性連接的存儲器的數(shù)量為一個,該片選器選擇與其電性連接的該個存儲器。如果該片選器電性連接的存儲器的數(shù)量為多個,該片選器用于選擇存儲器集合中的任一個存儲器。應(yīng)知,被選擇的pch與被選擇的存儲器,通過片選器是電性連接的,這樣被選擇的pch可以通過片選器建立與被選擇的存儲器的通信連接。

在物理設(shè)備增加了片選器的場景,使能裝置在確定第一cpu發(fā)生故障后,在執(zhí)行圖3中的步驟s303時,會指示片選器建立第一pch與第一存儲器之間的電性連接。該片選器可以根據(jù)使能裝置的指示,分別選擇該第一pch與該第一存儲器,從而建立第一pch與第一存儲器之間的電性連接;舉例說明,使能裝置中的bmc控制使能裝置中的cpld,向該片選器發(fā)送使能信號,該使能信號指示該片選器選擇該第一pch與該第一存儲器。

第一pch與第一存儲器的電性連接建立之后,該第一pch通過該片選器建立與該第一存儲器通信連接。該第一pch與該第一存儲器通信連接后,該第一pch可以直接訪問第一存儲器;該第一pch與該第一存儲器的通信連接后,第二cpu可以通過該第一pch訪問第一存儲器,執(zhí)行第一存儲器中的bios程序。

應(yīng)知,該片選器的數(shù)量可以是一個或多個。如果是該片選器的數(shù)量是多個,多個片選器各自負(fù)責(zé)不同pch的選擇,還可以各自負(fù)責(zé)存儲器的選擇。

一種可能實(shí)現(xiàn)方式中,參見圖8,在圖2所示的物理設(shè)備的基礎(chǔ)上,該物理設(shè)備還包括選通器和片選器。選通器用于選通cpu集合中的任一cpu,還用于選通與被選通的cpu對應(yīng)的pch,以便cpu通過選通器建立與pch的通信連接。片選器用于選通pch集合中的任一pch,還用于選通與被選通的pch對應(yīng)的存儲器,以便pch通過片選器建立與存儲器的通信連接。本實(shí)施方式中,若選通器選通第二cph,則選通器和片選器均選通同一個pch,即第一pch;這樣,第二cpu才能通過第一pch訪問存儲器,執(zhí)行存儲器中的bios程序。另外,選通器和片選器的具體實(shí)現(xiàn)和在本發(fā)明實(shí)施例的工作原理可以分別參見上述對圖4a中的選通器的描述和上述對圖7a中的片選器的描述,在此不再贅述。

裝置實(shí)施例

裝置實(shí)施例一

本發(fā)明實(shí)施例提供一種啟動物理設(shè)備的使能裝置,參見圖9,該使能裝置包括bmc和cpld。

上述方法實(shí)施例提供的啟動物理設(shè)備的方法,具體可以由該使能裝置的bmc執(zhí)行;例如,bmc執(zhí)行步驟s311檢測主cpu是否故障,執(zhí)行步驟s301確定主cpu故障,在物理設(shè)備重啟后執(zhí)行步驟s302重新選擇主cpu,以及執(zhí)行步驟s303觸發(fā)新的cpu與pch合作來啟動物理設(shè)備。

bmc在步驟s303中觸發(fā)新的cpu與pch合作來啟動物理設(shè)備的具體實(shí)現(xiàn)可以是:使能裝置在步驟s302中確定新的主cpu后,指示cpld向該新的cpu發(fā)送使能信號;接收到該使能信號的cpu會根據(jù)該使能信號確定自己為主cpu,以及以主cpu的角色與第一pch合作來啟動所述物理設(shè)備。

可選地,bmc需要觸發(fā)物理設(shè)備中的器件時,可以控制cpld向該器件發(fā)送使能信號,通過不同的使能信號指示不同器件工作。

舉例說明,bmc確定第二cpu為新的主cpu后,可以控制cpld向第二cpu發(fā)送指示第二cpu為主cpu的使能信號。

舉例說明,bmc確定第一pch(與該第二cpu電性連接的pch)后,可以控制cpld向第一pch發(fā)送指示第一pch工作的使能信號。

舉例說明,bmc可以控制cpld向選通器發(fā)送使能信號,通過該使能信號指示選通器選通第二cpu和第一pch。

舉例說明,bmc可以控制cpld向片選器發(fā)送使能信號,通過該使能信號指示片選器建立第一pch與第一存儲器的電性連接。

另外,bmc還可以更新存儲器中的bios程序,或者在不同存儲器寫入不同bios程序。

應(yīng)知,bmc和cpld合作執(zhí)行上述方法實(shí)施例提供的啟動物理設(shè)備的方法的具體實(shí)現(xiàn)細(xì)節(jié),可參見上述方法實(shí)施例中的對應(yīng)描述,在此不再贅述。

裝置實(shí)施例二

本發(fā)明實(shí)施例提供一種啟動物理設(shè)備的使能裝置,該使能裝置部署用于執(zhí)行上述方法實(shí)施例提供的啟動物理設(shè)備的方法的各功能單元;其中,對各功能單元的劃分方式在此不做限定。

該使能裝置適用的物理設(shè)備如上述物理設(shè)備實(shí)施例和方法實(shí)施例中的描述。所述物理設(shè)備包括n個cpu和至少一個pch,n為大于或等于2的正整數(shù);n個cpu中的每個cpu與所述至少一個pch之間具有電性連接。基于該物理設(shè)備,提供一種與上述方法實(shí)施例提供的啟動物理設(shè)備的方法對應(yīng)的一種功能單元的劃分舉例,參見圖10,所述使能裝置1000包括第一確定單元1001、第二確定單元1002和觸發(fā)單元1003。

具體地,所述第一確定單元1001,用于確定第一cpu發(fā)生故障,所述第一cpu是所述n個cpu中的一個cpu,所述第一cpu是在所述第一cpu發(fā)生故障前用于啟動所述物理設(shè)備的主cpu。

所述第二確定單元1002,用于在所述第一確定單元1001確定所述第一cpu發(fā)生故障后,確定所述n個cpu中的第二cpu為主cpu。

所述觸發(fā)單元1003,用于在所述第二確定單元1002確定所述第二cpu為主cpu后,觸發(fā)所述第二cpu以主cpu的角色通過與第一pch之間的合作啟動所述物理設(shè)備,所述第一pch與所述第二cpu之間具有電性連接,所述第一pch為所述至少一個pch中一個pch。

可選地,備選的cpu集合包括所述n個cpu中除所述第一cpu以外的所有cpu;

所述第二確定單元1002,用于若所述備選的cpu集合包括的cpu的數(shù)量為一個,則所述備選的cpu集合中的所述一個cpu為所述第二cpu;或者用于若所述備選的cpu集合包括的cpu的數(shù)量為p個,則從所述備選的cpu集合包括的所述p個cpu中確定一個cpu為所述第二cpu,p為大于1的正整數(shù)。

可選地,所述第二確定單元1002,用于若第一跳數(shù)小于或等于第二跳數(shù),則確定第三cpu為所述第二cpu;

其中,所述物理設(shè)備具有m個cpu,m為大于或等于n的正整數(shù),所述m個cpu包括所述n個cpu;所述m個cpu之間具有q個電性連接,q為正整數(shù),其中,所述m個cpu中的任意一個cpu與所述m個cpu中的其他cpu中的至少一個cpu之間具有電性連接;第一拓?fù)浒╩個節(jié)點(diǎn)以及q個鏈路,所述m個cpu與所述m個節(jié)點(diǎn)一一對應(yīng),所述q個鏈路和所述q個電性連接一一對應(yīng),所述第一跳數(shù)是指所述m個cpu中除所述第一cpu和第三cpu以外的所有cpu根據(jù)所述第一拓?fù)涞剿龅谌齝pu的最短路徑包含的跳數(shù)的總和,所述第二跳數(shù)是指所述m個cpu中除所述第一cpu和第四cpu以外的所有cpu根據(jù)所述第一拓?fù)涞剿龅谒腸pu的最短路徑包含的跳數(shù)的總和,所述第四cpu為所述備選的cpu集合包括的所述p個cpu中除所述第三cpu之外的任一cpu。

可選地,所述第二確定單元1002,用于若所述備選的cpu集合中的所述p個cpu構(gòu)成一個串行鏈路,所述串行鏈路包括p個節(jié)點(diǎn)以及p-1個子鏈路,所述p個cpu與所述p個節(jié)點(diǎn)一一對應(yīng),所述p個cpu之間具有p-1個電性連接,其中,所述p個cpu中的任意一個cpu與所述p個cpu中的其他cpu中的至少一個cpu之間具有電性連接,所述p-1個電性連接與所述p-1個子鏈路一一對應(yīng),則確定串行鏈路中的一個中間節(jié)點(diǎn)對應(yīng)的一個cpu為所述第二cpu。

可選地,所述觸發(fā)單元1003,用于在確定第一cpu發(fā)生故障后,禁止所述第一cpu參與啟動所述物理設(shè)備。

可選地,所述物理設(shè)備包括第一存儲器,所述第一存儲器存儲有用于啟動所述物理設(shè)備的基本輸入輸出系統(tǒng)bios程序;

所述第二cpu與所述第一pch合作啟動所述物理設(shè)備,包括:所述第二cpu通過所述第一pch訪問所述第一存儲器從而執(zhí)行所述bios程序。

可選地,所述物理設(shè)備還包括選通器,所述選通器分別與所述n個cpu之間具有電性連接,所述選通器與所述第一pch之間具有電性連接;

所述觸發(fā)單元1003,用于在觸發(fā)所述第二cpu以主cpu的角色通過與第一pch之間的合作啟動所述物理設(shè)備之前,指示所述選通器建立所述第二cpu與所述第一pch的通信連接。

可選地,所述選通器基于第一總線協(xié)議與所述第二cpu通信連接,所述選通器基于第二總線協(xié)議與所述第一pch通信連接;

所述選通器用于:將接收到的來自第二cpu的符合所述第一總線協(xié)議的數(shù)據(jù)轉(zhuǎn)換為符合所述第二總線協(xié)議的數(shù)據(jù),并將所述符合所述第二總線協(xié)議的數(shù)據(jù)發(fā)送給所述第一pch;或者,將接收到的來自第一pch的符合所述第二總線協(xié)議的數(shù)據(jù)轉(zhuǎn)換為符合所述第一總線協(xié)議的數(shù)據(jù),并將所述符合所述第一總線協(xié)議的數(shù)據(jù)發(fā)送給所述第二cpu。

可選地,所述至少一個pch為n個pch,所述n個cpu與所述n個pch之間具有n個電性連接,所述n個cpu與所述n個pch一一對應(yīng),其中,所述第二cpu與所述第一pch之間具有電性連接。

可選地,所述物理設(shè)備包括n個存儲器,所述n個存儲器與所述n個pch之間具有n個電性連接,所述n個存儲器與所述n個pch一一對應(yīng),第一存儲器為所述n個存儲器中與所述第一pch連接的存儲器。

可選地,所述至少一個pch為多個pch,所述物理設(shè)備包括片選器,所述片選器分別與所述多個pch之間具有電性連接,所述片選器與所述存儲器之間具有電性連接;

所述觸發(fā)單元1003,用于在觸發(fā)所述第二cpu以主cpu的角色通過與第一pch之間的合作啟動所述物理設(shè)備之前,指示所述片選器建立所述第一pch與所述第一存儲器的電性連接。

可選地,裝置實(shí)施例二提供的各功能單元具體可以部署在使能裝置的bmc中。與裝置實(shí)施例一類似,bmc部署的各功能單元需要觸發(fā)物理設(shè)備中的器件時,可以控制cpld向該器件發(fā)送使能信號,通過不同的使能信號指示不同器件工作。

裝置實(shí)施例三

本發(fā)明實(shí)施例提供一種啟動物理設(shè)備的使能裝置,該使能裝置包括cpld和其他器件。用戶在知道哪些cpu為已發(fā)生故障的cpu后,可以手動操作器件(例如由按鍵構(gòu)成的觸發(fā)電路)觸發(fā)cpld向第二cpu發(fā)送使能信號。

可選地,用戶可以從bmc獲知已故障的cpu的id,從而知道哪些cpu已發(fā)生故障。

最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的保護(hù)范圍。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1