開(kāi)機(jī)控制方法、裝置和服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù),特別涉及一種開(kāi)機(jī)控制方法、裝置和服務(wù)器。
【背景技術(shù)】
[0002]在目前的服務(wù)器中,對(duì)于開(kāi)機(jī)處理,通常是由CPU進(jìn)行控制的,比如CPU控制各個(gè)功能模塊的開(kāi)機(jī)啟動(dòng)順序。
[0003]但是,隨著業(yè)務(wù)的不斷發(fā)展,僅僅由CPU控制開(kāi)機(jī)的過(guò)程已經(jīng)不能滿足業(yè)務(wù)需求,從而不能更為有效地進(jìn)行開(kāi)機(jī)控制。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種開(kāi)機(jī)控制方法、裝置以及服務(wù)器,能夠更為有效地進(jìn)行開(kāi)機(jī)控制。
[0005]—種開(kāi)機(jī)控制方法,包括:
[0006]接收開(kāi)機(jī)指令;
[0007]確定當(dāng)前是否滿足BMC開(kāi)機(jī)控制條件,如果是,則控制將開(kāi)機(jī)指令發(fā)送給BMC,否則控制將開(kāi)機(jī)指令發(fā)送給CPU ;
[0008]當(dāng)BMC接收到開(kāi)機(jī)指令后,進(jìn)行BMC的預(yù)設(shè)開(kāi)機(jī)處理;
[0009]當(dāng)CPU接收到開(kāi)機(jī)指令后,進(jìn)行CPU主板的預(yù)設(shè)開(kāi)機(jī)處理。
[0010]所述確定當(dāng)前是否滿足BMC開(kāi)機(jī)控制條件包括:
[0011]確定當(dāng)前BMC是否發(fā)生故障,如果發(fā)生故障,則確定當(dāng)前不滿足BMC開(kāi)機(jī)控制條件,如果未發(fā)生故障,則確定當(dāng)前滿足BMC開(kāi)機(jī)控制條件;
[0012]和/ 或,
[0013]確定當(dāng)前BMC是否需要進(jìn)行代碼更新,如果需要,則確定當(dāng)前不滿足BMC開(kāi)機(jī)控制條件,如果不需要,則確定當(dāng)前滿足BMC開(kāi)機(jī)控制條件。
[0014]預(yù)先將所述BMC與開(kāi)機(jī)按鍵相連、將預(yù)設(shè)的跳線槽連接在所述開(kāi)機(jī)按鍵與所述CPU之間;
[0015]所述接收開(kāi)機(jī)指令包括:接收通過(guò)所述開(kāi)機(jī)按鍵發(fā)送的開(kāi)機(jī)指令;
[0016]在所述確定當(dāng)前滿足BMC開(kāi)機(jī)控制條件后,并在控制將開(kāi)機(jī)指令發(fā)送給BMC之前,進(jìn)一步包括:控制所述跳線槽斷開(kāi)與所述CPU的連接;
[0017]在所述確定當(dāng)前不滿足BMC開(kāi)機(jī)控制條件后,并在控制將開(kāi)機(jī)指令發(fā)送給CPU之前,進(jìn)一步包括:控制所述跳線槽接通與所述CPU的連接。
[0018]該方法應(yīng)用于包括GPU背板和CPU主板的服務(wù)器中,
[0019]所述進(jìn)行BMC的預(yù)設(shè)開(kāi)機(jī)處理包括:所述BMC控制GPU背板上電,待GPU背板上電完畢后,發(fā)出開(kāi)機(jī)控制信號(hào)控制CPU主板上電。
[0020]一種開(kāi)機(jī)控制裝置,包括:
[0021]開(kāi)機(jī)觸發(fā)單元,接收開(kāi)機(jī)指令;
[0022]開(kāi)機(jī)指令發(fā)送控制單元,用于確定當(dāng)前是否滿足BMC開(kāi)機(jī)控制條件,如果是,則控制將開(kāi)機(jī)指令發(fā)送給BMC,否則控制將開(kāi)機(jī)指令發(fā)送給CPU ;
[0023]BMC,用于在接收到開(kāi)機(jī)指令后,進(jìn)行BMC的預(yù)設(shè)開(kāi)機(jī)處理;
[0024]CPU,用于在接收到開(kāi)機(jī)指令后,進(jìn)行CPU主板的預(yù)設(shè)開(kāi)機(jī)處理。
[0025]所述開(kāi)機(jī)指令發(fā)送控制單元中包括:
[0026]第一判斷子單元,用于確定當(dāng)前BMC是否發(fā)生故障,如果發(fā)生故障,則確定當(dāng)前不滿足BMC開(kāi)機(jī)控制條件,如果未發(fā)生故障,則確定當(dāng)前滿足BMC開(kāi)機(jī)控制條件;
[0027]和/ 或,
[0028]第二判斷子單元,用于確定當(dāng)前BMC是否需要進(jìn)行代碼更新,如果需要,則確定當(dāng)前不滿足BMC開(kāi)機(jī)控制條件,如果不需要,則確定當(dāng)前滿足BMC開(kāi)機(jī)控制條件。
[0029]所述開(kāi)機(jī)觸發(fā)單元包括:開(kāi)機(jī)按鍵;所述開(kāi)機(jī)指令發(fā)送控制單元中包括:跳線槽;
[0030]所述BMC與所述開(kāi)機(jī)按鍵相連,所述跳線槽連接在所述開(kāi)機(jī)按鍵與所述CPU之間;
[0031 ] 所述開(kāi)機(jī)按鍵被按壓后發(fā)送所述開(kāi)機(jī)指令;
[0032]所述跳線槽可處于斷開(kāi)與所述CPU的連接的第一狀態(tài),以禁止來(lái)自所述開(kāi)機(jī)按鍵的開(kāi)機(jī)指令發(fā)送到CPU ;
[0033]所述跳線槽可處于接通與所述CPU的連接的第二狀態(tài),以使來(lái)自所述開(kāi)機(jī)按鍵的開(kāi)機(jī)指令發(fā)送到CPU。
[0034]所述開(kāi)機(jī)指令發(fā)送控制單元位于背板。
[0035]該裝置位于包括GPU背板和CPU主板的服務(wù)器中,
[0036]所述BMC,在進(jìn)行預(yù)設(shè)開(kāi)機(jī)處理時(shí),具體為控制GPU背板上電,待GPU背板上電完畢后,發(fā)出開(kāi)機(jī)控制信號(hào)控制CPU主板上電。
[0037]—種服務(wù)器,包括至少一個(gè)機(jī)箱、背板以及機(jī)柜;
[0038]所述至少一個(gè)機(jī)箱連接在所述背板上;所述機(jī)柜裝容所述至少一個(gè)機(jī)箱以及背板,每一個(gè)所述機(jī)箱中包括上述任意一種開(kāi)機(jī)控制裝置。
[0039]本發(fā)明實(shí)施例提供的開(kāi)機(jī)控制方法、裝置和服務(wù)器,能夠根據(jù)預(yù)先設(shè)置的BMC開(kāi)機(jī)控制條件,來(lái)判斷后續(xù)是由BMC來(lái)控制開(kāi)機(jī)還是由CPU進(jìn)行控制開(kāi)機(jī),從而相應(yīng)地執(zhí)行后續(xù)BMC對(duì)應(yīng)的預(yù)設(shè)開(kāi)機(jī)處理,或執(zhí)行CPU主板對(duì)應(yīng)的預(yù)設(shè)開(kāi)機(jī)處理,增加了業(yè)務(wù)實(shí)現(xiàn)的靈活性,能夠更為有效地進(jìn)行開(kāi)機(jī)控制。
【附圖說(shuō)明】
[0040]圖1是本發(fā)明一個(gè)實(shí)施例中開(kāi)機(jī)控制方法的流程圖。
[0041]圖2是本發(fā)明另一個(gè)實(shí)施例中開(kāi)機(jī)控制方法的流程圖。
[0042]圖3是本發(fā)明一個(gè)實(shí)施例中開(kāi)機(jī)控制裝置的結(jié)構(gòu)示意圖。
[0043]圖4是本發(fā)明一個(gè)實(shí)施例中服務(wù)器的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0044]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0045]本發(fā)明一個(gè)實(shí)施例提出了一種開(kāi)機(jī)控制方法,參見(jiàn)圖1,包括:
[0046]步驟101:接收開(kāi)機(jī)指令;
[0047]步驟102:確定當(dāng)前是否滿足基板管理控制器(BMC,Baseboard ManagementController)開(kāi)機(jī)控制條件,如果是,執(zhí)行步驟103,否則執(zhí)行步驟105 ;
[0048]步驟103:控制將開(kāi)機(jī)指令發(fā)送給BMC ;
[0049]步驟104:當(dāng)BMC接收到開(kāi)機(jī)指令后,進(jìn)行BMC的預(yù)設(shè)開(kāi)機(jī)處理,結(jié)束當(dāng)前流程;
[0050]步驟105:控制將開(kāi)機(jī)指令發(fā)送給CPU ;
[0051]步驟106:當(dāng)CPU接收到開(kāi)機(jī)指令后,進(jìn)行CPU主板的預(yù)設(shè)開(kāi)機(jī)處理。
[0052]本發(fā)明實(shí)施例提供的開(kāi)機(jī)控制方法、裝置和服務(wù)器,能夠根據(jù)預(yù)先設(shè)置的BMC開(kāi)機(jī)控制條件,來(lái)判斷后續(xù)是由BMC來(lái)控制開(kāi)機(jī)還是由CPU進(jìn)行控制開(kāi)機(jī),從而相應(yīng)地執(zhí)行后續(xù)BMC對(duì)應(yīng)的預(yù)設(shè)開(kāi)機(jī)處理,或執(zhí)行CPU主板對(duì)應(yīng)的預(yù)設(shè)開(kāi)機(jī)處理,增加了業(yè)務(wù)實(shí)現(xiàn)的靈活性,能夠更為有效地進(jìn)行開(kāi)機(jī)控制。
[0053]在本發(fā)明一個(gè)實(shí)施例中,步驟102中確定當(dāng)前是否滿足BMC開(kāi)機(jī)控制條件包括:
[0054]確定當(dāng)前BMC是否發(fā)生故障,如果發(fā)生故障,則確定當(dāng)前不滿足BMC開(kāi)機(jī)控制條件,如果未發(fā)生故障,則確定當(dāng)前滿足BMC開(kāi)機(jī)控制條件;
[0055]在本發(fā)明一個(gè)實(shí)施例中,步驟102中確定當(dāng)前是否滿足BMC開(kāi)機(jī)控制條件還可以包括:
[0056]確定當(dāng)前BMC是否需要進(jìn)行代碼更新(比如進(jìn)行首次代碼燒錄或者后續(xù)代碼升級(jí)等)如果需要,則確定當(dāng)前不滿足BMC開(kāi)機(jī)控制條件,如果不需要,則確定當(dāng)前滿足BMC開(kāi)機(jī)控制條件。
[0057]在本發(fā)明一個(gè)實(shí)施例中,為了實(shí)現(xiàn)靈活控制開(kāi)機(jī)方式,可以預(yù)先將所述BMC與開(kāi)機(jī)按鍵相連、將預(yù)設(shè)的跳線槽連接在所述開(kāi)機(jī)按鍵與所述CPU之間;在此種方式下,可以通過(guò)控制跳線槽,來(lái)控制開(kāi)機(jī)指令首先發(fā)給BMC還是CPU,從而實(shí)現(xiàn)BMC開(kāi)機(jī)控制或者CPU開(kāi)機(jī)控制。具體地,步驟101中所述接收開(kāi)機(jī)指令包括:接收通過(guò)所述開(kāi)機(jī)按鍵發(fā)送的開(kāi)機(jī)指令;相應(yīng)地,在執(zhí)行步驟103之前,即在所述確定當(dāng)前滿足BMC開(kāi)機(jī)控制條件后,并在控制將開(kāi)機(jī)指令發(fā)送給BMC之前,進(jìn)一步包括:控制所述跳線槽斷開(kāi)與所述CPU的連接;或者,在執(zhí)行步驟105之前,即在所述確定當(dāng)前不滿足BMC開(kāi)機(jī)控制條件后,并在控制將開(kāi)機(jī)指令發(fā)送給CPU之前,進(jìn)一步包括:控制所述跳線槽接通與所述CPU的連接。
[0058]在本發(fā)明一個(gè)實(shí)施例中,也可以不由上述跳線槽來(lái)控制開(kāi)機(jī)指令的走向,而是該方法應(yīng)用于包括GPU背板和CPU主板的服務(wù)器中,
[0059]所述進(jìn)行BMC的預(yù)設(shè)開(kāi)機(jī)處理包括:所述BMC控制GPU背板上電,待GPU背板上電完畢后,發(fā)出開(kāi)機(jī)控制信號(hào)控制CPU主板上電。
[0060]圖2是本發(fā)明另一個(gè)實(shí)施例中實(shí)現(xiàn)開(kāi)機(jī)控制的流程圖。參見(jiàn)圖2,在本發(fā)明另一個(gè)實(shí)施例中,實(shí)現(xiàn)開(kāi)機(jī)控制的服務(wù)器中包括GPU背板和CPU主板,通過(guò)硬件方式實(shí)現(xiàn)開(kāi)機(jī)控制的過(guò)程,包括:
[0061]步驟201:預(yù)先將BMC與開(kāi)機(jī)按鍵相連。
[0062]步驟202:在開(kāi)機(jī)按鍵與CPU之間設(shè)置跳線槽,將跳線槽與開(kāi)機(jī)按鍵和CPU分別相連。
[0063]步驟203:當(dāng)需要開(kāi)機(jī)時(shí),用戶按下開(kāi)機(jī)按鍵。
[0064]步驟204:接收通過(guò)開(kāi)機(jī)按鍵發(fā)送的開(kāi)機(jī)指令。
[0065]步驟205:確定當(dāng)前BMC是否發(fā)生故障或者當(dāng)前BMC是否需要進(jìn)行代碼更新,如果是,則確定不滿足BMC開(kāi)機(jī)控制條件,執(zhí)行步驟206,如果否,則確定滿足BMC開(kāi)機(jī)控制條件,執(zhí)行步驟209。
[0066]本步驟中,如果BMC當(dāng)前發(fā)生故障,則無(wú)法完成后續(xù)控制開(kāi)機(jī)的過(guò)程,應(yīng)該由CPU先開(kāi)機(jī),并對(duì)BMC重新燒錄程序或修復(fù)BMC,因此,執(zhí)行后續(xù)CPU控制開(kāi)機(jī)的過(guò)程。否則,BMC正常運(yùn)行,可以執(zhí)行由BMC控制開(kāi)機(jī)過(guò)程。
[0067]步驟206:控制跳線槽接通與CPU的連接。
[0068]這里,跳線槽與開(kāi)機(jī)按鍵相連,跳線槽接通與CPU的連接后,就可以保證開(kāi)機(jī)按鍵發(fā)送的開(kāi)機(jī)指令能夠通過(guò)跳線槽被傳輸給CPU。
[0069]步驟207:通過(guò)開(kāi)機(jī)按鍵發(fā)送的開(kāi)機(jī)指令被傳輸?shù)紺PU。
[0070]步驟208:CPU執(zhí)行CPU主板的預(yù)設(shè)開(kāi)機(jī)處理,結(jié)束當(dāng)前流程。
[0071 ] 步驟209:控制跳線槽斷開(kāi)與CPU的連接。
[0072]這里,跳線槽與開(kāi)機(jī)按鍵相連,跳線槽斷開(kāi)與CPU的連接后,就可以保證開(kāi)機(jī)按鍵發(fā)送的開(kāi)機(jī)指令不會(huì)通過(guò)跳線槽被傳輸給CPU。
[0073]步