本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種熱添加中央處理器CPU的配置方法及系統(tǒng)。
背景技術(shù):
目前,為了提高服務(wù)器的容錯(cuò)能力,中央處理器(CPU,Central Processing Unit)熱插拔已經(jīng)成為很多服務(wù)器的不可或缺的特性,即:在服務(wù)器系統(tǒng)中,由于服務(wù)器由多個(gè)CPU組成,當(dāng)其中一個(gè)或多個(gè)CPU發(fā)生故障需要移除時(shí),CPU熱插拔特性可以保證業(yè)務(wù)不中斷,從而不影響整個(gè)服務(wù)器系統(tǒng)的業(yè)務(wù)運(yùn)行。在CPU熱插拔過程中,發(fā)生故障的CPU被移除,新的CPU(又稱“熱添加CPU”)需要重新配置并添加到服務(wù)器系統(tǒng)中,這導(dǎo)致了服務(wù)器系統(tǒng)的拓?fù)浒l(fā)生變化,因此,服務(wù)器系統(tǒng)的拓?fù)浒l(fā)現(xiàn)是整個(gè)CPU熱插拔方案實(shí)現(xiàn)的基礎(chǔ)與關(guān)鍵。
對(duì)于基于節(jié)點(diǎn)控制器(NC,Node Controller)的服務(wù)器系統(tǒng)來說,如圖1所示,圖1是現(xiàn)有技術(shù)公開的一種基于NC的服務(wù)器系統(tǒng)的結(jié)構(gòu)示意圖。圖1中的服務(wù)器系統(tǒng)為16P服務(wù)器系統(tǒng),其由16個(gè)CPU組成且以節(jié)點(diǎn)作為相對(duì)獨(dú)立的單元,節(jié)點(diǎn)之間通過NC相連,多個(gè)節(jié)點(diǎn)組成一個(gè)完整的服務(wù)器系統(tǒng),其中,每4個(gè)CPU組成一個(gè)節(jié)點(diǎn)且屬于同一個(gè)快速路徑互聯(lián)(QPI,Quick Path Interconnect)域,CPU之間以及CPU與NC之間通過QPI總線相連。在實(shí)際應(yīng)用中,當(dāng)熱添加CPU與主CPU在同一個(gè)QPI域時(shí),相鄰熱添加CPU之間上電后可以自動(dòng)建立鏈路,主CPU可直接配置與其相鄰的熱添加CPU并通過配置好的CPU配置與主CPU不相鄰的熱添加CPU,以使熱添加CPU加入整個(gè)系統(tǒng)拓?fù)?;?dāng)熱添加CPU與主CPU未在同一個(gè)QPI域時(shí),主CPU可以通過至少一個(gè)NC的中轉(zhuǎn)來配置熱添加CPU,以使熱添加CPU加入整個(gè)系統(tǒng)拓?fù)洌藭r(shí),該方案依賴于熱添加CPU必須在上電后自動(dòng)與相應(yīng)的NC建立鏈路,否則主CPU須通過至 少一個(gè)NC以及配置好的CPU的中轉(zhuǎn)來配置熱添加CPU。當(dāng)前的熱添加CPU的拓?fù)浒l(fā)現(xiàn)方案由主CPU實(shí)現(xiàn),熱添加CPU與主CPU的距離越遠(yuǎn),該方案的實(shí)現(xiàn)越復(fù)雜,不利于服務(wù)器系統(tǒng)的拓?fù)鋽U(kuò)展,且依賴于NC和/或配置好的CPU的中轉(zhuǎn),增加了熱添加CPU的拓?fù)浒l(fā)現(xiàn)時(shí)間。可見,當(dāng)前的熱添加CPU的拓?fù)浒l(fā)現(xiàn)方案存在效率低以及不利于拓?fù)鋽U(kuò)展的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例公開了一種熱添加中央處理器CPU的配置方法及系統(tǒng),能夠提高熱添加CPU的拓?fù)浒l(fā)現(xiàn)效率且有利于拓?fù)鋽U(kuò)展。
本發(fā)明實(shí)施例第一方面公開了一種熱添加中央處理器CPU的配置方法,所述方法可以應(yīng)用于由多個(gè)CPU組成的服務(wù)器系統(tǒng)中,所述方法包括:
主CPU確定與第一熱添加CPU相鄰的在位CPU,其中,所述相鄰的在位CPU為在硬件結(jié)構(gòu)中與所述第一熱添加CPU的插槽存在直接QPI連線且能夠正常工作的CPU,且所述在位CPU的數(shù)量可以為一個(gè),也可以為兩個(gè);
所述在位CPU建立與所述第一熱添加CPU間的第一快速路徑互聯(lián)QPI鏈路;
所述在位CPU建立所述第一熱添加CPU與節(jié)點(diǎn)控制器NC間的第二QPI鏈路,所述NC為與所述在位CPU相連的NC;
所述在位CPU配置所述第一熱添加CPU的路由寄存器信息,其中,所述路由寄存器信息包括所述第一熱添加CPU的所有QPI端口中用于訪問所述在位CPU的QPI端口的端口標(biāo)識(shí)、用于訪問所述NC的QPI端口的端口標(biāo)識(shí)以及所述第一熱添加CPU作為中轉(zhuǎn)CPU時(shí)的源QPI端口的端口標(biāo)識(shí)與目的QPI端口的端口標(biāo)識(shí)。
在本發(fā)明實(shí)施例第一方面的第一種可能的實(shí)現(xiàn)方式中,所述在位CPU建立與所述第一熱添加CPUU間的第一快速路徑互聯(lián)QPI鏈路,包括:
所述在位CPU確定所述第一熱添加CPU的第一QPI端口的端口參數(shù),其中,所述第一熱添加CPU的第一QPI端口為所述第一熱添加CPU的所有QPI端口中用于與所述在位CPU建立第一QPI鏈路的QPI端口,即所述第一熱添加 CPU的第一QPI端口為在硬件結(jié)構(gòu)中與所述在位CPU存在直接QPI連線的QPI接口;
所述在位CPU將所述在位CPU的第一QPI端口的端口參數(shù)配置為所述第一熱添加CPU的第一QPI端口的端口參數(shù),其中,所述在位CPU的第一QPI端口為所述在位CPU的所有QPI端口中用于與所述熱添加CPU建立所述第一QPI鏈路的QPI端口,即所述在位CPU的第一QPI端口為硬件結(jié)構(gòu)中與所述第一熱添加CPU存在直接QPI連線的QPI端口,所述在位CPU將其第一QPI端口的端口參數(shù)配置為第一熱添加CPU的第一QPI端口的端口參數(shù)即可建立與所述第一熱添加CPU間的所述第一QPI鏈路。
結(jié)合本發(fā)明實(shí)施例第一方面或本發(fā)明實(shí)施例第一方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明實(shí)施例第一方面的第二種可能的實(shí)現(xiàn)方式中,所述在位CPU建立所述第一熱添加CPU與節(jié)點(diǎn)控制器NC間的第二QPI鏈路,包括:
當(dāng)NC不支持自動(dòng)與所述第一熱添加CPU建立第二QPI鏈路時(shí),所述在位CPU根據(jù)所述NC的第一QPI端口的端口參數(shù)配置所述第一熱添加CPU的第二QPI端口的端口參數(shù),所述熱添加CPU的第二QPI端口為所述第一熱添加CPU的所有QPI端口中用于與所述NC的第一QPI端口建立所述第二QPI鏈路的QPI端口,其中,所述NC的第一QPI端口為在硬件結(jié)構(gòu)中與所述第一熱添加CPU存在直接QPI連線的QPI端口;
其中,當(dāng)所述NC支持自動(dòng)與第一所述熱添加CPU建立所述第二QPI鏈路時(shí),可以直接通過所述NC建立所述第一熱添加CPU與所述NC間的所述第二QPI鏈路。
結(jié)合本發(fā)明實(shí)施例第一方面、第一方面的第一種可能的實(shí)現(xiàn)方式或第一方面的第二種可能的實(shí)現(xiàn)方式,在本發(fā)明實(shí)施例第一方面的第三種可能的實(shí)現(xiàn)方式中,所述在位CPU建立所述第一熱添加CPU與所述在位CPU間的第一快速路徑互聯(lián)QPI鏈路之前,所述方法還包括:
第一熱添加CPU建立與其相鄰第二熱添加CPU間的第三QPI鏈路,即當(dāng)存在與第一熱添加CPU相鄰的第二熱添加CPU時(shí),第一熱添加CPU先與第二熱添加CPU建立第三QPI鏈路,此時(shí),與第一熱添加CPU相鄰的在位CPU的個(gè)數(shù)為 一。
結(jié)合本發(fā)明實(shí)施例第一方面的第三種可能的實(shí)現(xiàn)方式,在本發(fā)明實(shí)施例第一方面的第四種可能的實(shí)現(xiàn)方式中,所述在位CPU建立所述第一熱添加CPU與節(jié)點(diǎn)控制器NC間的第二QPI鏈路之后,所述在位CPU配置所述第一熱添加CPU的路由寄存器信息之前,所述方法還包括:
所述在位CPU檢測(cè)所述第一QPI鏈路、所述第二QPI鏈路以及所述第三QPI鏈路是否建立完畢,若是,則觸發(fā)執(zhí)行所述在位CPU配置所述第一熱添加CPU的路由寄存器的操作,這樣可以保證將第一熱添加CPU添加到拓?fù)湎到y(tǒng)的準(zhǔn)確性。
本發(fā)明實(shí)施例第二方面公開了一種熱添加中央處理器CPU的配置系統(tǒng),所述系統(tǒng)包括主CPU、第一熱添加CPU、與所述第一熱添加CPU相鄰的在位CPU以及與所述在位CPU相連的NC,其中:
所述主CPU,用于確定與所述第一熱添加CPU相鄰的所述在位CPU,其中,所述相鄰的在位CPU為在硬件結(jié)構(gòu)中與所述第一熱添加CPU的插槽存在直接QPI連線且能夠正常工作的CPU,且所述在位CPU的數(shù)量可以為一個(gè),也可以為兩個(gè);
所述在位CPU,用于建立與所述第一熱添加CPU間的第一QPI鏈路,以及建立所述第一熱添加CPU與所述NC間的第二QPI鏈路,并配置所述第一熱添加CPU的路由寄存器信息,其中,所述路由寄存器信息包括所述第一熱添加CPU的所有QPI端口中用于訪問所述在位CPU的QPI端口的端口標(biāo)識(shí)、用于訪問所述NC的QPI端口的端口標(biāo)識(shí)以及所述第一熱添加CPU作為中轉(zhuǎn)CPU時(shí)的源QPI端口的端口標(biāo)識(shí)與目的QPI端口的端口標(biāo)識(shí)。
在本發(fā)明實(shí)施例第二方面的第一種可能的實(shí)現(xiàn)方式中,所述在位CPU建立與所述第一熱添加CPU間的第一快速路徑互聯(lián)QPI鏈路的具體方式為:
確定所述第一熱添加CPU的第一QPI端口的端口參數(shù),其中,所述第一熱添加CPU的第一QPI端口為所述第一熱添加CPU的所有QPI端口中用于與所述在位CPU建立第一QPI鏈路的QPI端口,即所述第一熱添加CPU的第一QPI端口為在硬件結(jié)構(gòu)中與所述在位CPU存在直接QPI連線的QPI接口;
將所述在位CPU的第一QPI端口的端口參數(shù)配置為所述第一熱添加CPU的第一QPI端口的端口參數(shù),其中,所述在位CPU的第一QPI端口為所述在位CPU的所有QPI端口中用于與所述第一熱添加CPU建立所述第一QPI鏈路的QPI端口,即所述在位CPU的第一QPI端口為硬件結(jié)構(gòu)中與所述第一熱添加CPU存在直接QPI連線的QPI端口,所述在位CPU將其第一QPI端口的端口參數(shù)配置為第一熱添加CPU的第一QPI端口的端口參數(shù)即可建立與所述第一熱添加CPU間的所述第一QPI鏈路。
結(jié)合本發(fā)明實(shí)施例第二方面或本發(fā)明實(shí)施例第二方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明實(shí)施例第二方面的第二種可能的實(shí)現(xiàn)方式中,所述在位CPU建立所述第一熱添加CPU與所述NC間的第二QPI鏈路的具體方式為:
當(dāng)所述NC不支持自動(dòng)與所述第一熱添加CPU建立第二QPI鏈路時(shí),根據(jù)所述NC的第一QPI端口的端口參數(shù)配置所述第一熱添加CPU的第二QPI端口的端口參數(shù),所述第一熱添加CPU的第二QPI端口為所述第一熱添加CPU的所有QPI端口中用于與所述NC建立所述第二QPI鏈路的QPI端口,其中,所述NC的第一QPI端口為在硬件結(jié)構(gòu)中與所述第一熱添加CPU存在直接QPI連線的QPI端口;
其中,當(dāng)所述NC支持自動(dòng)與所述第一熱添加CPU建立所述第二QPI鏈路時(shí),可以直接通過所述NC建立所述第一熱添加CPU與所述NC間的所述第二QPI鏈路。
結(jié)合本發(fā)明實(shí)施例第二方面、第二方面的第一種可能的實(shí)現(xiàn)方式或第二方面的第二種可能的實(shí)現(xiàn)方式,在本發(fā)明實(shí)施例第二方面的第三種可能的實(shí)現(xiàn)方式中,所述第一熱添加CPU,用于在所述在位CPU建立所述第一QPI鏈路之前,建立與其相鄰的第二熱添加CPU間的第三QPI鏈路。
結(jié)合本發(fā)明實(shí)施例第二方面的第三種可能的實(shí)現(xiàn)方式,在本發(fā)明實(shí)施例第二方面的第四種可能的實(shí)現(xiàn)方式中,所述在位CPU,還用于在建立所述第一熱添加CPU與所述NC間的所述第二QPI鏈路之后且配置所述第一熱添加CPU的路由寄存器信息之前,檢測(cè)所述第一QPI鏈路、所述第二QPI鏈路以及所述第三QPI鏈路是否建立完畢,若是,則觸發(fā)執(zhí)行所述配置所述第一熱添加 CPU的路由寄存器信息的操作。
本發(fā)明實(shí)施例中,主CPU確定與第一熱添加CPU相鄰的在位CPU,在位CPU建立與第一熱添加CPU間的第一QPI鏈路并建立第一熱添加CPU與NC間的第二QPI鏈路,其中,該NC為與在位CPU相連的NC,在位CPU配置熱添加CPU的路由寄存器信息,其中,該路由寄存器信息包括第一熱添加CPU的所有QPI端口中用于訪問在位CPU的QPI端口的端口標(biāo)識(shí)、用于訪問NC的QPI端口的端口標(biāo)識(shí)以及第一熱添加CPU作為中轉(zhuǎn)CPU時(shí)的源QPI端口的端口標(biāo)識(shí)與目的QPI端口的端口標(biāo)識(shí)。本發(fā)明實(shí)施例能夠通過與熱添加CPU相鄰的在位CPU實(shí)現(xiàn)對(duì)熱添加CPU的配置,不依賴于熱添加CPU與主CPU之間的距離,有利于拓?fù)鋽U(kuò)展,且無需再通過NC和/或其它CPU的中轉(zhuǎn),提高了拓?fù)浒l(fā)現(xiàn)效率,進(jìn)而快速的恢復(fù)業(yè)務(wù)??梢?,實(shí)施本發(fā)明實(shí)施例能夠提高熱添加CPU的拓?fù)浒l(fā)現(xiàn)效率且有利于拓?fù)鋽U(kuò)展,提高了用戶的使用體驗(yàn)。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是現(xiàn)有技術(shù)公開的一種基于NC的服務(wù)器系統(tǒng)的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實(shí)施例公開的一種熱添加中央處理器CPU的配置方法的流程示意圖;
圖3是本發(fā)明實(shí)施例公開的另一種熱添加中央處理器CPU的配置方法的流程示意圖;
圖4是本發(fā)明實(shí)施例公開的一種熱添加中央處理器CPU的配置裝置的結(jié)構(gòu)示意圖;
圖5是本發(fā)明實(shí)施例公開的另一種熱添加中央處理器CPU的配置裝置的結(jié)構(gòu)示意圖;
圖6是本發(fā)明實(shí)施例公開的又一種熱添加中央處理器CPU的配置裝置的 結(jié)構(gòu)示意圖;
圖7是本發(fā)明實(shí)施例公開的一種熱添加中央處理器CPU的配置系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例公開了一種熱添加中央處理器CPU的配置方法及系統(tǒng),能夠提高熱添加CPU的拓?fù)浒l(fā)現(xiàn)效率且有利于拓?fù)鋽U(kuò)展。以下分別進(jìn)行詳細(xì)說明。
請(qǐng)參閱圖2,圖2是本發(fā)明實(shí)施例公開的一種熱添加中央處理器CPU的配置方法的流程示意圖。其中,圖2所示的方法可以應(yīng)用于在熱添加CPU添加初期無法被直接訪問的應(yīng)用場(chǎng)景中,如圖1中的服務(wù)器系統(tǒng)等,本發(fā)明實(shí)施例不做限定。如圖2所示,該方法可以包括以下步驟:
S201、主CPU確定與第一熱添加CPU相鄰的在位CPU。
本發(fā)明實(shí)施例中,在執(zhí)行步驟S201之前,可以先運(yùn)行統(tǒng)一的可擴(kuò)展固件接口基本輸入輸出系統(tǒng)(UEFI BIOS,Unified Extensible Firmware Interface Basic Input Output System)將熱插拔代碼加入運(yùn)行時(shí)服務(wù)Runtime Service,并通過UEFI BIOS將熱插拔代碼引導(dǎo)至操作系統(tǒng),在操作系統(tǒng)下觸發(fā)針對(duì)服務(wù)器系統(tǒng)中出現(xiàn)故障的CPU的熱移除流程以及觸發(fā)(通過軟件觸發(fā)或通過硬件觸發(fā))針對(duì)熱添加CPU的熱添加流程(即圖2中所示的熱添加CPU的配置方法的流程)。
本發(fā)明實(shí)施例中,具體的,主CPU可以通過系統(tǒng)啟動(dòng)線程(SBSP,System Boot Strap Processor)確定與第一熱添加CPU相鄰的在位CPU,其中,相鄰的在位CPU為在服務(wù)器系統(tǒng)的硬件結(jié)構(gòu)中與第一熱添加CPU的插槽存在直接QPI連線的CPU,且第一熱添加CPU可以是為了提高服務(wù)器系統(tǒng)的業(yè)務(wù)處理性 能而添加的新的CPU,也可以是當(dāng)服務(wù)器系統(tǒng)中的某個(gè)或某些CPU發(fā)生故障后將發(fā)生故障的CPU移除并向服務(wù)器系統(tǒng)中添加的新的CPU。在服務(wù)器系統(tǒng)中,每個(gè)熱添加CPU都存在與其相鄰的在位CPU,當(dāng)熱添加CPU的數(shù)量為一個(gè)時(shí),與該熱添加CPU相鄰的在位CPU的數(shù)量為兩個(gè),如當(dāng)熱添加CPU為圖1中的CPU1時(shí),與CPU1相鄰的在位CPU為CPU0以及CPU2,當(dāng)熱添加CPU為圖1中的CPU3時(shí),與CPU3相鄰的在位CPU為CPU2以及CPU0;當(dāng)熱添加CPU為兩個(gè)相鄰的CPU時(shí),與每個(gè)熱添加CPU分別相鄰的在位CPU的數(shù)量為一個(gè),如當(dāng)熱添加CPU為圖1中的CPU1以及CPU2時(shí),與CPU1相鄰的在位CPU為CPU0且與CPU2相鄰的在位CPU為CPU3,當(dāng)熱添加CPU為圖1中的CPU5以及CPU6時(shí),與CPU5相鄰的在位CPU為CPU4,與CPU6相鄰的在位CPU為CPU7,當(dāng)熱添加CPU為圖1中的CPU13以及CPU14時(shí),與CPU13相鄰的在位CPU為CPU12,與CPU14相鄰的在位CPU為CPU15。
其中,主CPU確定出的在位CPU可以是根據(jù)配置人員輸入的相鄰的在位CPU的信息確定,本發(fā)明實(shí)施例不做限定。
S202、在位CPU建立與上述第一熱添加CPU間的第一快速路徑互聯(lián)QPI鏈路。
本發(fā)明實(shí)施例中,每個(gè)熱添加CPU(如第一熱添加CPU)上存在三個(gè)QPI端口,其中兩個(gè)QPI端口用于分別建立與兩個(gè)相鄰的在位CPU間的QPI鏈路,或用于分別建立與一個(gè)相鄰的在位CPU間的QPI鏈路以及與一個(gè)相鄰的熱添加CPU間的QPI鏈路,剩下的一個(gè)QPI端口用于建立與NC間的QPI鏈路,其中,該NC為與上述在位CPU相連的NC。
本發(fā)明實(shí)施例中,作為一種可選的實(shí)施方式,在位CPU建立與上述第一熱添加CPU間的第一快速路徑互聯(lián)QPI鏈路可以包括:
確定上述第一熱添加CPU的第一QPI端口的端口參數(shù),其中,上述第一熱添加CPU的第一QPI端口為上述第一熱添加CPU的所有QPI端口中用于與上述在位CPU建立第一QPI鏈路的QPI端口;
將上述在位CPU的第一QPI端口的端口參數(shù)設(shè)置為上述第一熱添加CPU的第一QPI端口的端口參數(shù),以建立上述第一QPI鏈路,其中,上述在位CPU 的第一QPI端口為上述在位CPU的所有QPI端口中用于與上述第一熱添加CPU建立第一QPI鏈路的QPI端口,即在位CPU的第一QPI端口為硬件結(jié)構(gòu)中與上述第一熱添加CPU存在直接QPI連線的QPI端口,且在位CPU將其第一QPI端口的端口參數(shù)配置為第一熱添加CPU的第一QPI端口的端口參數(shù)即可打通與上述第一熱添加CPU間的第一QPI鏈路。
本發(fā)明實(shí)施例中,由于剛上電的第一熱添加CPU的第一QPI端口的端口參數(shù)為默認(rèn)參數(shù),則只需將第一熱添加CPU對(duì)應(yīng)相鄰的在位CPU的第一QPI端口的端口參數(shù)設(shè)置為熱添加CPU的第一QPI端口的默認(rèn)參數(shù)即可建立上述第一QPI鏈路,且在位CPU建立與上述第一熱添加CPU間的第一QPI鏈路即是建立每個(gè)第一熱添加CPU與其對(duì)應(yīng)相鄰的在位CPU間的第一QPI鏈路。此外,每個(gè)第一熱添加CPU與其對(duì)應(yīng)相鄰的在位CPU之間的第一QPI鏈路的建立除了由對(duì)應(yīng)相鄰的在位CPU完成之外,還可以由上述SBSP完成,也可以由每個(gè)第一熱添加CPU對(duì)應(yīng)相鄰的在位CPU完成,本發(fā)明實(shí)施例不做限定。
S203、在位CPU建立上述第一熱添加CPU與節(jié)點(diǎn)控制器NC間的第二QPI鏈路。
本發(fā)明實(shí)施例中,作為一種可選的實(shí)施方式,在位CPU建立上述第一熱添加CPU與節(jié)點(diǎn)控制器NC間的第二QPI鏈路可以包括:
當(dāng)NC不支持自動(dòng)與第一熱添加CPU建立第二QPI鏈路時(shí),根據(jù)NC的第一QPI端口的端口參數(shù)配置第一熱添加CPU的第二QPI端口的端口參數(shù),以建立NC與第一熱添加CPU間的第二QPI鏈路,其中,第一熱添加CPU的第二QPI端口為該熱添加CPU的所有QPI端口中用于與NC建立第二QPI鏈路的端口,即NC的第一QPI端口為在硬件結(jié)構(gòu)中與第一熱添加CPU存在直接QPI連線的QPI端口。
其中,當(dāng)NC支持自動(dòng)與第一熱添加CPU建立第二QPI鏈路時(shí),可以直接通過NC建立第一熱添加CPU與NC間的第二QPI鏈路。
在該可選的實(shí)施方式中,具體的,通過UEFI BOIS提供的多線程復(fù)位服務(wù)(MP Service,Multiple Processor Service),由SBSP激活與熱添加CPU相鄰的在位CPU對(duì)熱添加CPU的第二QPI端口的端口參數(shù)進(jìn)行配置,其中,MP Service 為與熱添加CPU相鄰的在位CPU的第一個(gè)線程。
需要說明的是,在位CPU根據(jù)NC的第一QPI端口的端口參數(shù)配置第一熱添加CPU的第二QPI端口的端口參數(shù)既可以是將第一熱添加CPU的第二QPI端口的端口參數(shù)配置為NC的第一QPI端口的端口參數(shù),也可以根據(jù)實(shí)際的業(yè)務(wù)需求以及NC的第一QPI端口的端口參數(shù)對(duì)第一熱添加CPU的第二QPI端口的端口參數(shù)實(shí)現(xiàn)差異化配置,如當(dāng)NC的第一QPI端口的端口參數(shù)用于指示NC的第一QPI端口不支持特性A時(shí),在位CPU可以直接配置第一熱添加CPU的第二QPI端口的端口參數(shù),以使第一熱添加CPU關(guān)閉特性A。
S204、在位CPU配置上述第一熱添加CPU的路由寄存器信息。
本發(fā)明實(shí)施例中,該路由寄存器信息可以包括上述第一熱添加CPU的所有QPI端口中用于訪問上述在位CPU的QPI端口的端口標(biāo)識(shí)、用于訪問上述NC的QPI端口的端口標(biāo)識(shí)以及上述第一熱添加CPU作為中轉(zhuǎn)CPU時(shí)的源QPI端口的端口標(biāo)識(shí)與目的QPI端口的端口標(biāo)識(shí)。
以第一熱添加CPU為圖1中的CPU1且CPU1相鄰的在位CPU為CPU2為例,CPU2將CPU1的端口1配置為用于訪問CPU0的QPI端口的端口標(biāo)識(shí),CPU2將CPU1的端口2配置為用于訪問CPU2的QPI端口的端口標(biāo)識(shí),CPU2將CPU1的端口3配置為用于訪問與CPU2直接相連的NC的QPI端口的端口標(biāo)識(shí),CPU2將CPU1的端口1配置為CPU1作為中轉(zhuǎn)CPU時(shí)的源QPI端口的端口標(biāo)識(shí),且將CPU1的端口2配置為CPU1作為中轉(zhuǎn)CPU時(shí)的目的QPI端口的端口標(biāo)識(shí),即當(dāng)CPU1作為中轉(zhuǎn)CPU時(shí),CPU1內(nèi)部的業(yè)務(wù)流流向?yàn)橛啥丝?流向端口2。
本發(fā)明實(shí)施例中,具體的,由SBSP激活與第一熱添加CPU相鄰的在位CPU的第一個(gè)線程配置第一熱添加CPU的路由寄存器信息。且當(dāng)與第一熱添加CPU相鄰的在位CPU有兩個(gè)時(shí),由SBSP激活與第一熱添加CPU相鄰的其中一個(gè)在位CPU的第一個(gè)線程來配置第一熱添加CPU的路由寄存器信息。
本發(fā)明實(shí)施例中,在執(zhí)行完畢步驟S204之后,不僅建立了第一熱添加CPU與其對(duì)應(yīng)相鄰的在位CPU間的QPI鏈路以及第一熱添加CPU與對(duì)應(yīng)NC間的QPI鏈路,而且完成了對(duì)熱添加CPU的路由寄存器信息的配置,這樣熱添加CPU就被添加到服務(wù)器系統(tǒng)的系統(tǒng)拓?fù)渲校碨BSP可以訪問整個(gè)服務(wù)器系統(tǒng) 中的任意一個(gè)CPU。此外,根據(jù)實(shí)際的業(yè)務(wù)需求,針對(duì)CPU的其它配置(如地址解碼以及配置與緩存相關(guān)的寄存器等)也可以由SBSP完成。
在一個(gè)可選的實(shí)施例中,在執(zhí)行步驟S202之前,還可以執(zhí)行以下操作:
第一熱添加CPU建立與其相鄰的第二熱添加CPU間的第三QPI鏈路。
在該可選的實(shí)施例中,由于剛上電的第一熱添加CPU以及第二熱添加CPU的每個(gè)QPI端口的端口參數(shù)均為默認(rèn)參數(shù),當(dāng)?shù)谝粺崽砑覥PU的數(shù)量為多個(gè)且存在相鄰的熱添加CPU時(shí),相鄰的熱添加CPU可以通過第一熱添加CPU的第三QPI端口自動(dòng)建立第三QPI鏈路。
在該可選的實(shí)施例中,進(jìn)一步可選的,在執(zhí)行步驟S203之后以及執(zhí)行步驟S204之前,還可以執(zhí)行以下操作:
在位CPU檢測(cè)上述第一QPI鏈路、上述第二QPI鏈路以及上述第三QPI鏈路是否建立完畢,若是,則觸發(fā)執(zhí)行步驟S204,若否,則可以結(jié)束本次流程,也可以重新觸發(fā)執(zhí)行步驟S202,本發(fā)明實(shí)施例不做限定。具體的,由SBSP激活與第一熱添加CPU相鄰的在位CPU檢測(cè)第一熱添加CPU的所有QPI端口是否處于正常狀態(tài),這樣能夠保證將第一熱添加CPU添加到拓?fù)湎到y(tǒng)的準(zhǔn)確性。
本發(fā)明實(shí)施例將第一熱添加CPU添加到應(yīng)用場(chǎng)景(例如圖1所示的基于NC的服務(wù)器系統(tǒng))的拓?fù)湎到y(tǒng)中的具體方式為:通過在位CPU建立與第一熱添加CPU相鄰的在位CPU以及相鄰的NC間的QPI鏈路并配置第一熱添加CPU的路由寄存器信息。
本發(fā)明實(shí)施例中,主CPU確定與第一熱添加CPU相鄰的在位CPU,在位CPU建立與第一熱添加CPU間的第一QPI鏈路并建立第一熱添加CPU與NC間的第二QPI鏈路,其中,該NC為與在位CPU相連的NC,在位CPU配置第一熱添加CPU的路由寄存器信息,其中,該路由寄存器信息包括第一熱添加CPU的所有QPI端口中用于訪問在位CPU的QPI端口的端口標(biāo)識(shí)、用于訪問NC的QPI端口的端口標(biāo)識(shí)以及第一熱添加CPU作為中轉(zhuǎn)CPU時(shí)的源QPI端口的端口標(biāo)識(shí)與目的QPI端口的端口標(biāo)識(shí)。本發(fā)明實(shí)施例能夠通過與第一熱添加CPU相鄰的在位CPU實(shí)現(xiàn)對(duì)第一熱添加CPU的配置,不依賴于熱添加CPU與主CPU之間的距離,有利于拓?fù)鋽U(kuò)展,且無需再通過NC和/或其它CPU的中轉(zhuǎn),實(shí)現(xiàn) 簡(jiǎn)單且提高了拓?fù)浒l(fā)現(xiàn)效率,進(jìn)而能夠快速的恢復(fù)業(yè)務(wù),提高了用戶的使用體驗(yàn)。
圖3是本發(fā)明實(shí)施例公開的另一種熱添加中央處理器CPU的配置方法的流程示意圖。其中,圖3是當(dāng)?shù)谝粺崽砑覥PU為圖1中的CPU5以及CPU6時(shí)針對(duì)CPU5的配置方法的流程示意圖,其中,上電后,CPU5可以自動(dòng)與CPU6建立第三QPI鏈路。如圖3所示,該熱添加CPU的配置方法可以包括以下步驟:
S301、SBSP確定與CPU5相鄰的在位CPU為CPU4。
S302、SBSP確定CPU5的第一QPI端口的端口參數(shù)。
其中,CPU5的第一QPI端口為CPU5的所有QPI端口中用于與CPU4建立第一QPI鏈路的QPI端口。
S303、SBSP將CPU4的第一QPI端口的端口參數(shù)設(shè)置為CPU5的第一QPI端口的端口參數(shù),以建立CPU5與CPU4間的第一QPI鏈路。
S304、CPU4根據(jù)NC的第一QPI端口的端口參數(shù)配置CPU5的第二QPI端口的端口參數(shù),以建立CPU5與NC間的第二QPI鏈路。
其中,NC為與CPU4相連的NC,且CPU5的第二QPI端口為CPU5的所有QPI端口中用于與NC的第一QPI端口建立第二QPI鏈路的QPI端口。
其中,CPU4根據(jù)NC的第一QPI端口的端口參數(shù)配置CPU5的第二QPI端口的端口參數(shù)既可以是將CPU5的第二QPI端口的端口參數(shù)配置為NC的第一QPI端口的端口參數(shù),也可以根據(jù)實(shí)際的業(yè)務(wù)需求以及NC的第一QPI端口的端口參數(shù)對(duì)CPU5的第二QPI端口的端口參數(shù)實(shí)現(xiàn)差異化配置。
S305、CPU4檢測(cè)第一QPI鏈路、第二QPI鏈路以及第三QPI鏈路是否建立完畢。
本發(fā)明實(shí)施例中,當(dāng)步驟S305的檢測(cè)結(jié)果為是時(shí),觸發(fā)執(zhí)行步驟S306;當(dāng)步驟S305的檢測(cè)結(jié)果為否時(shí),可以結(jié)束本次流程,也可以重新觸發(fā)執(zhí)行步驟S303,本發(fā)明實(shí)施例不做限定。
S306、CPU4配置CPU5的路由寄存器信息。
其中,該路由寄存器信息可以包括上述第一熱添加CPU的所有QPI端口中 用于訪問上述在位CPU的QPI端口的端口標(biāo)識(shí)、用于訪問上述NC的QPI端口的端口標(biāo)識(shí)以及上述第一熱添加CPU作為中轉(zhuǎn)CPU時(shí)的源QPI端口的端口標(biāo)識(shí)與目的QPI端口的端口標(biāo)識(shí)。
本發(fā)明實(shí)施例中,在執(zhí)行完畢步驟S306之后,SBSP還可以完成針對(duì)CPU的其它配置,如CPU5的地址解碼以及配置與緩存相關(guān)的寄存器等。
可見,實(shí)施本發(fā)明實(shí)施例能夠有利于拓?fù)鋽U(kuò)展,且無需再通過NC和/或其它CPU的中轉(zhuǎn),實(shí)現(xiàn)簡(jiǎn)單且提高了拓?fù)浒l(fā)現(xiàn)效率,進(jìn)而能夠使服務(wù)器系統(tǒng)快速的恢復(fù)業(yè)務(wù),提高了用戶的使用體驗(yàn)。
請(qǐng)參閱圖4,圖4是本發(fā)明實(shí)施例公開的一種熱添加中央處理器CPU的配置裝置的結(jié)構(gòu)示意圖。如圖4所示,該裝置可以包括確定模塊401、第一建立模塊402、第二建立模塊403以及配置模塊404,其中:
確定模塊401用于確定與第一熱添加CPU相鄰的在位CPU。
第一建立模塊402用于建立與上述第一熱添加CPU間的第一QPI鏈路。
第二建立模塊403用于建立上述第一熱添加CPU與NC間的第二QPI鏈路。
本發(fā)明實(shí)施例中,該NC為與確定模塊401確定出的在位CPU相連的NC。
配置模塊404用于通過確定模塊401確定出的在位CPU配置上述第一熱添加CPU的路由寄存器信息。
其中,該路由寄存器信息可以包括上述第一熱添加CPU的所有QPI端口中用于訪問上述在位CPU的QPI端口的端口標(biāo)識(shí)、用于訪問上述NC的QPI端口的端口標(biāo)識(shí)以及上述第一熱添加CPU作為中轉(zhuǎn)CPU時(shí)的源QPI端口的端口標(biāo)識(shí)與目的QPI端口的端口標(biāo)識(shí)。
本發(fā)明實(shí)施例中,在第一建立模塊402建立上述第一QPI鏈路、第二建立模塊403建立上述第二QPI鏈路且配置模塊404通過上述在位CPU配置完畢上述第一熱添加CPU的路由寄存器信息后,第一熱添加CPU就被添加到了系統(tǒng)拓?fù)渲小?/p>
在一個(gè)可選的實(shí)施例中,第一建立模塊402可以包括確定子模塊4021以及設(shè)置子模塊4022,此時(shí),該熱添加中央處理器CPU的配置裝置的結(jié)構(gòu)可以如 圖5所示,圖5是本發(fā)明實(shí)施例公開的另一種熱添加中央處理器CPU的配置裝置的結(jié)構(gòu)示意圖。其中:
確定子模塊4021用于確定上述第一熱添加CPU的第一QPI端口的端口參數(shù),其中,上述第一熱添加CPU的第一QPI端口為上述第一熱添加CPU的所有QPI端口中用于與確定模塊401確定出的在位CPU建立第一QPI鏈路的QPI端口。
設(shè)置子模塊4022用于將確定模塊401確定出的在位CPU的第一QPI端口的端口參數(shù)配置為上述第一熱添加CPU的第一QPI端口的端口參數(shù),以建立上述第一QPI鏈路,其中,上述在位CPU的第一QPI端口為上述在位CPU的所有QPI端口中用于與上述第一熱添加CPU建立上述第一QPI鏈路的QPI端口。
在另一個(gè)可選的實(shí)施例中,第二建立模塊403建立第一熱添加CPU與NC間的第二QPI鏈路的具體方式可以為:
當(dāng)NC不支持自動(dòng)與上述第一熱添加CPU建立第二QPI鏈路時(shí),通過確定模塊401確定出的在位CPU配置上述第一熱添加CPU的第二QPI端口的端口參數(shù),以建立上述第二QPI鏈路,其中,第一熱添加CPU的第二QPI端口為第一熱添加CPU的所有QPI端口中用于與NC建立第二QPI鏈路的QPI端口;
當(dāng)NC支持自動(dòng)與第一熱添加CPU建立第二QPI鏈路時(shí),通過NC建立上述第一熱添加CPU與NC間的第二QPI鏈路。
在又一個(gè)可選的實(shí)施例中,在圖5所示的裝置結(jié)構(gòu)基礎(chǔ)上,該裝置還可以包括第三建立模塊405以及檢測(cè)模塊406,此時(shí),該裝置的結(jié)構(gòu)可以如圖6所示,圖6是本發(fā)明實(shí)施例公開的又一種熱添加中央處理器CPU的配置裝置的結(jié)構(gòu)示意圖。其中:
第三建立模塊405用于在第一建立模塊402建立與上述第一熱添加CPU間的第一QPI鏈路之前,建立與第一熱添加CPU相鄰的第二熱添加CPU間的第三QPI鏈路。
檢測(cè)模塊406用于在第二建立模塊403建立第一熱添加CPU與NC間的第二QPI鏈路之后且在配置模塊404通過在位CPU配置第一熱添加CPU的路由寄存器信息之前,檢測(cè)上述第一QPI鏈路、第二QPI鏈路以及第三QPI鏈路是否建立 完畢,當(dāng)檢測(cè)模塊406的檢測(cè)結(jié)果為是時(shí),觸發(fā)配置模塊404通過在位CPU配置熱添加CPU的路由寄存器信息。
可見,實(shí)施本發(fā)明實(shí)施例能夠通過與熱添加CPU相鄰的在位CPU實(shí)現(xiàn)對(duì)熱添加CPU的配置,不依賴于熱添加CPU與主CPU之間的距離,有利于拓?fù)鋽U(kuò)展,且無需再通過NC和/或其它CPU的中轉(zhuǎn),提高了拓?fù)浒l(fā)現(xiàn)效率,進(jìn)而能夠使服務(wù)器系統(tǒng)快速的恢復(fù)業(yè)務(wù),提高了用戶的使用體驗(yàn)。
請(qǐng)參閱圖7,圖7是本發(fā)明實(shí)施例公開的一種熱添加中央處理器CPU的配置系統(tǒng)的結(jié)構(gòu)示意圖。如圖7所示,該系統(tǒng)可以包括主CPU、第一熱添加CPU、與第一熱添加CPU相鄰的在位CPU以及與該在位CPU相連的NC,其中:
主CPU用于確定與第一熱添加CPU相鄰的在位CPU。
在位CPU用于建立與第一熱添加CPU間的第一QPI鏈路,以及建立第一熱添加CPU與NC間的第二QPI鏈路,并配置第一熱添加CPU的路由寄存器信息,其中,該路由寄存器信息包括第一熱添加CPU的所有QPI端口中用于訪問在位CPU的QPI端口的端口標(biāo)識(shí)、用于訪問NC的QPI端口的端口標(biāo)識(shí)以及第一熱添加CPU作為中轉(zhuǎn)CPU時(shí)的源QPI端口的端口標(biāo)識(shí)與目的QPI端口的端口標(biāo)識(shí)。
可選的,在位CPU建立與第一熱添加CPU間的第一快速路徑互聯(lián)QPI鏈路的具體方式為:
確定第一熱添加CPU的第一QPI端口的端口參數(shù),其中,該第一熱添加CPU的第一QPI端口為第一熱添加CPU的所有QPI端口中用于與在位CPU建立第一QPI鏈路的QPI端口;
將在位CPU的第一QPI端口的端口參數(shù)配置為第一熱添加CPU的第一QPI端口的端口參數(shù),其中,該在位CPU的第一QPI端口為在位CPU的所有QPI端口中用于與第一熱添加CPU建立第一QPI鏈路的QPI端口。
可選的,在位CPU建立第一熱添加CPU與NC間的第二QPI鏈路的具體方式 為:
當(dāng)NC不支持自動(dòng)與第一熱添加CPU建立第二QPI鏈路時(shí),根據(jù)NC的第一QPI端口的端口參數(shù)配置第一熱添加CPU的第二QPI端口的端口參數(shù),第一熱添加CPU的第二QPI端口為第一熱添加CPU的所有QPI端口中用于與NC的第一QPI端口建立第二QPI鏈路的QPI端口。
其中,當(dāng)NC支持自動(dòng)與第一熱添加CPU建立第二QPI鏈路時(shí),可以直接通過NC建立第一熱添加CPU與NC間的第二QPI鏈路。
可選的,第一熱添加CPU可以用于在在位CPU建立上述第一QPI鏈路之前,建立與其相鄰的第二熱添加CPU間的第三QPI鏈路。
可選的,在位CPU還可以用于在建立第一熱添加CPU與NC間的第二QPI鏈路之后且在配置第一熱添加CPU的路由寄存器信息之前,檢測(cè)上述第一QPI鏈路、上述第二QPI鏈路以及上述第三QPI鏈路是否建立完畢,若是,則觸發(fā)在位CPU執(zhí)行配置第一熱添加CPU的路由寄存器信息的操作。
需要說明的是,上述第一熱添加CPU的數(shù)量至少為一個(gè),且每個(gè)第一熱添加CPU的相鄰在位CPU的數(shù)量可以為一個(gè),也可以為兩個(gè)。
可見,本發(fā)明實(shí)施例能夠通過與第一熱添加CPU相鄰的在位CPU實(shí)現(xiàn)對(duì)第一熱添加CPU的配置,不依賴于熱添加CPU與主CPU之間的距離,有利于拓?fù)鋽U(kuò)展,且無需再通過NC和/或其它CPU的中轉(zhuǎn),實(shí)現(xiàn)簡(jiǎn)單且提高了拓?fù)浒l(fā)現(xiàn)效率,進(jìn)而能夠快速的恢復(fù)業(yè)務(wù),提高了用戶的使用體驗(yàn)。
需要說明的是,在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳細(xì)描述的部分,可以參見其他實(shí)施例的相關(guān)描述。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作、模塊和子模塊并不一定是本發(fā)明所必須的,且本發(fā)明實(shí)施例中的思想可以應(yīng)用到其它熱添加場(chǎng)景中,如內(nèi)存和PCI-E設(shè)備組成的熱添加場(chǎng)景中。
本發(fā)明實(shí)施例方法中的步驟可以根據(jù)實(shí)際需要進(jìn)行順序調(diào)整、合并和刪減。
本發(fā)明實(shí)施例裝置中的模塊以及子模塊可以根據(jù)實(shí)際需要進(jìn)行順序調(diào) 整、合并和刪減。
本發(fā)明實(shí)施例中所述模塊以及子模塊可以通過通用集成電路,例如CPU(Central Processing Unit,中央處理器),或通過ASIC(Application Specific Integrated Circuit,專用集成電路)來實(shí)現(xiàn)。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:閃存盤、只讀存儲(chǔ)器(Read-Only Memory,ROM)、隨機(jī)存取器(Random Access Memory,RAM)、磁盤或光盤等。
以上對(duì)本發(fā)明實(shí)施例所提供的一種熱添加中央處理器CPU的配置方法及系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。