一種節(jié)點(diǎn)的處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種節(jié)點(diǎn)的處理方法及裝置。
【背景技術(shù)】
[0002]目前,為了維持操作系統(tǒng)中承載關(guān)鍵業(yè)務(wù)的服務(wù)器能夠長時(shí)間保持正常運(yùn)行,需要對服務(wù)器中的處理器和內(nèi)存進(jìn)行熱添加操作,從而使服務(wù)器中出現(xiàn)不可糾正錯(cuò)誤的頻率小于等于正常值。
[0003]現(xiàn)有的對處理器和內(nèi)存進(jìn)行熱添加的操作都是在SMM(System Management Mode,系統(tǒng)管理模式)中完成的。在進(jìn)行熱添加操作時(shí),SMM Monarch (System Management ModeMonarch,系統(tǒng)管理模式主邏輯處理器)來負(fù)責(zé)執(zhí)行處理器熱添加操作和內(nèi)存熱添加操作(下述統(tǒng)一稱為熱添加操作),在此過程中,服務(wù)器中的其他邏輯處理器在SMM中等待SMMMonarch完成熱添加操作后一起退出SMM。然而,在所有的邏輯處理器退出SMM之前,服務(wù)器中的操作系統(tǒng)會因?yàn)楸婚L時(shí)間掛起而失去響應(yīng)。
[0004]現(xiàn)有的時(shí)間分片技術(shù)將熱添加操作切分為若干熱添加操作片段(每個(gè)熱添加操作片段的執(zhí)行時(shí)間至多只有幾十毫秒),使得在執(zhí)行熱添加操作時(shí)服務(wù)器處于SMM和保護(hù)模式兩種。在SMM下SMM Monarch執(zhí)行至少一個(gè)熱添加操作片段的熱添加操作,在保護(hù)模式下服務(wù)器中的所有處理器退出SMM,然后通過狀態(tài)機(jī)記錄熱添加操作的當(dāng)前狀態(tài),使得下一次熱添加操作從記錄的當(dāng)前狀態(tài)繼續(xù)進(jìn)行。通過時(shí)間分片技術(shù)可以將熱添加操作分成一個(gè)個(gè)獨(dú)立的時(shí)間段與保護(hù)狀態(tài)穿插運(yùn)行來保證操作系統(tǒng)不會長時(shí)間失去響應(yīng)。
[0005]但是,對于現(xiàn)有技術(shù)而言,在SMM Monarch執(zhí)行熱添加操作中的初始化時(shí),需要對待添加節(jié)點(diǎn)內(nèi)的處理器逐個(gè)進(jìn)行QPI (Quick Path Interconnect,快速通道互聯(lián))初始化和對待添加節(jié)點(diǎn)內(nèi)的內(nèi)存逐個(gè)進(jìn)行內(nèi)存初始化,當(dāng)需要添加的處理器數(shù)量較多時(shí),例如需要一次性增加一整個(gè)節(jié)點(diǎn)時(shí),執(zhí)行QPI初始化和內(nèi)存初始化的耗時(shí)過長,從而導(dǎo)致了操作系統(tǒng)長時(shí)間處于處理性能低下的狀態(tài)。這里的待添加節(jié)點(diǎn)可以看作QPI域。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的實(shí)施例提供一種節(jié)點(diǎn)的處理方法及裝置,可以解決在執(zhí)行處理器熱添加操作和內(nèi)存熱添加操作時(shí),操作系統(tǒng)長時(shí)間處理性能較低的問題。
[0007]第一方面,本發(fā)明的實(shí)施例提供一種節(jié)點(diǎn)的處理方法,所述方法應(yīng)用于待添加節(jié)點(diǎn),所述待添加節(jié)點(diǎn)為向多處理器系統(tǒng)進(jìn)行熱添加操作的節(jié)點(diǎn),所述多處理器系統(tǒng)包括已用節(jié)點(diǎn),所述待添加節(jié)點(diǎn)內(nèi)包括通過快速通道互聯(lián)QPI鏈路互聯(lián)的處理器,所述已用節(jié)點(diǎn)內(nèi)包括通過QPI鏈路互聯(lián)的已運(yùn)行的處理器,所述方法包括:
[0008]上電之后的待添加節(jié)點(diǎn)從Flash芯片中獲取熱添加代碼;
[0009]所述待添加節(jié)點(diǎn)通過運(yùn)行所述熱添加代碼執(zhí)行QPI初始化,得到QPI初始化數(shù)據(jù),其中所述QPI初始化包括建立所述待添加節(jié)點(diǎn)中的各個(gè)處理器的互聯(lián)配置;
[0010]所述待添加節(jié)點(diǎn)將所述QPI初始化數(shù)據(jù)提供給系統(tǒng)管理模式主邏輯處理器SMMMonarch,所述SMM Monarch為所述已用節(jié)點(diǎn)中的邏輯處理器;
[0011 ] 所述待添加節(jié)點(diǎn)接收到所述SMM Monarch發(fā)送的內(nèi)存初始化命令后執(zhí)行內(nèi)存初始化,得到內(nèi)存初始化數(shù)據(jù),所述內(nèi)存初始化包括對所述待添加節(jié)點(diǎn)內(nèi)各個(gè)內(nèi)存的上電自檢和內(nèi)存配置;
[0012]所述待添加節(jié)點(diǎn)將所述內(nèi)存初始化數(shù)據(jù)提供給所述SMM Monarch。
[0013]在第一種可能的實(shí)施例中,結(jié)合第一方面,所述待添加節(jié)點(diǎn)包括系統(tǒng)啟動處理器SBSP和至少一個(gè)包啟動處理器PBSP,其中,所述SBSP為任意一個(gè)PBSP進(jìn)化得到的邏輯處理器;
[0014]在所述待添加節(jié)點(diǎn)從Flash芯片中獲取熱添加代碼之后,所述方法還包括:
[0015]所述PBSP通過運(yùn)行所述熱添加代碼進(jìn)行處理器初始化,所述處理器初始化包括對所述待添加節(jié)點(diǎn)內(nèi)各個(gè)處理器的上電自檢和初始化配置;
[0016]所述待添加節(jié)點(diǎn)通過運(yùn)行所述熱添加代碼執(zhí)行QPI初始化,得到QPI初始化數(shù)據(jù),包括:
[0017]所述SBSP通過運(yùn)行所述熱添加代碼執(zhí)行所述QPI初始化,得到所述QPI初始化數(shù)據(jù)。
[0018]在第二種可能的實(shí)施例中,結(jié)合第一方面中的第一種可能的實(shí)施例,所述待添加節(jié)點(diǎn)從Flash芯片中獲取熱添加代碼,包括:
[0019]所述PBSP從所述待添加節(jié)點(diǎn)對應(yīng)的Flash芯片中獲取各自的熱添加代碼;或者,
[0020]所述PBSP從與處理器連接設(shè)備連接的Flash芯片中獲取所述處理器連接設(shè)備對應(yīng)的熱添加代碼,所述處理器連接設(shè)備為將所述多處理器系統(tǒng)中的所述已用節(jié)點(diǎn)和所述待添加節(jié)點(diǎn)進(jìn)行互連的設(shè)備。
[0021 ] 在第三種可能的實(shí)施例中,結(jié)合第一方面中的第一種可能的實(shí)施例或第一方面中的第二種可能的實(shí)施例,在所述待添加節(jié)點(diǎn)將進(jìn)行所述QPI初始化的QPI初始化數(shù)據(jù)發(fā)送給系統(tǒng)管理模式主邏輯處理器SMM Monarch之后,所述方法還包括:
[0022]所述SBSP退化成進(jìn)化之前的PBSP ;
[0023]所述待添加節(jié)點(diǎn)接收所述SMM Monarch發(fā)送的內(nèi)存初始化命令;根據(jù)所述內(nèi)存初始化命令執(zhí)行內(nèi)存初始化,得到內(nèi)存初始化數(shù)據(jù),包括:
[0024]所述待添加節(jié)點(diǎn)中的每個(gè)PBSP分別接收所述SMM Monarch發(fā)送的所述內(nèi)存初始化命令;
[0025]所述待添加節(jié)點(diǎn)中的每個(gè)PBSP根據(jù)所述內(nèi)存初始化命令執(zhí)行各自的內(nèi)存初始化,得到各自的內(nèi)存初始化數(shù)據(jù)。
[0026]第二方面,本發(fā)明的實(shí)施例提供一種節(jié)點(diǎn)的處理方法,包括:
[0027]所述方法應(yīng)用于系統(tǒng)管理模式主邏輯處理器SMM Monarch,所述SMM Monarch為已用節(jié)點(diǎn)中的邏輯處理器,所述已用節(jié)點(diǎn)處于多處理器系統(tǒng)中,所述方法包括:
[0028]所述SMM Monarch接收系統(tǒng)管理中斷SMI指示,所述SMI指示用于指示向所述多處理器系統(tǒng)中熱添加待添加節(jié)點(diǎn),所述待添加節(jié)點(diǎn)內(nèi)包括通過快速通道互聯(lián)QPI鏈路互聯(lián)的處理器;
[0029]所述SMM Monarch獲取所述待添加節(jié)點(diǎn)提供的QPI初始化數(shù)據(jù),所述QPI初始化數(shù)據(jù)為所述待添加節(jié)點(diǎn)通過QPI初始化得到的數(shù)據(jù),所述QPI初始化包括建立所述待添加節(jié)點(diǎn)中的各個(gè)處理器間的互聯(lián)配置;
[0030]所述SMM Monarch向所述待添加節(jié)點(diǎn)發(fā)送內(nèi)存初始化命令,所述內(nèi)存初始化命令用于指示所述待添加節(jié)點(diǎn)執(zhí)行內(nèi)存初始化,所述內(nèi)存初始化包括對所述待添加節(jié)點(diǎn)內(nèi)各個(gè)內(nèi)存的上電自檢和內(nèi)存配置;
[0031]所述SMM Monarch獲取所述待添加節(jié)點(diǎn)提供的內(nèi)存初始化數(shù)據(jù)。
[0032]在第一種可能的實(shí)施例中,結(jié)合第二方面,所述待添加節(jié)點(diǎn)包括系統(tǒng)啟動處理器SBSP和至少一個(gè)包啟動處理器PBSP,其中,所述SBSP為任意一個(gè)PBSP進(jìn)化得到的邏輯處理器;
[0033]所述SMM Monarch獲取所述待添加節(jié)點(diǎn)提供的QPI初始化數(shù)據(jù),包括:
[0034]所述SMM Monarch檢測到所述待添加節(jié)點(diǎn)完成所述QPI初始化之后,獲取所述SBSP提供的QPI初始化數(shù)據(jù)。
[0035]在第二種可能的實(shí)施例中,結(jié)合第二方面中的第一種可能的實(shí)施例,所述SMMMonarch獲取所述待添加節(jié)點(diǎn)提供的內(nèi)存初始化數(shù)據(jù),包括:
[0036]所述SMM Monarch檢測到所述待添加節(jié)點(diǎn)完成所述內(nèi)存初始化之后,獲取所述待添加節(jié)點(diǎn)的每個(gè)PBSP提供的內(nèi)存初始化數(shù)據(jù)。
[0037]第三方面,本發(fā)明的實(shí)施例提供一種節(jié)點(diǎn)的處理裝置,所述裝置應(yīng)用于待添加節(jié)點(diǎn),所述待添加節(jié)點(diǎn)為向多處理器系統(tǒng)進(jìn)行熱添加操作的節(jié)點(diǎn),所述多處理器系統(tǒng)包括已用節(jié)點(diǎn),所述待添加節(jié)點(diǎn)內(nèi)包括通過快速通道互聯(lián)QPI鏈路互聯(lián)的處理器,所述已用節(jié)點(diǎn)內(nèi)包括通過QPI鏈路互聯(lián)的已運(yùn)行的處理器,所述裝置包括:
[0038]獲取模塊,用于從Flash芯片中獲取熱添加代碼,并將所述熱添加代碼提供給第一初始化模塊;
[0039]所述第一初始化模塊,用于通過運(yùn)行所述熱添加代碼執(zhí)行QPI初始化,得到QPI初始化數(shù)據(jù),并將所述QPI初始化數(shù)據(jù)提供給共享模塊,其中所述QPI初始化包括建立所述待添加節(jié)點(diǎn)中的各個(gè)處理器的互聯(lián)配置;
[0040]所述共享模塊,用于將所述QPI初始化數(shù)據(jù)提供給系統(tǒng)管理模式主邏輯處理器SMM Monarch,所述SMM Monarch為所述已用節(jié)點(diǎn)中的邏輯處理器;
[0041]接收模塊,用于接收所述SMM Monarch發(fā)送的內(nèi)存初始化命令,并將所述內(nèi)存初始化命令提供給第二初始化模塊;
[0042]所述第二初始化模塊,用于通過所述內(nèi)存初始化命令執(zhí)行內(nèi)存初始化,得到內(nèi)存初始化數(shù)據(jù),并將所述內(nèi)存初始化數(shù)據(jù)提供給所述共享模塊,所述內(nèi)存初始化包括對所述待添加節(jié)點(diǎn)內(nèi)各個(gè)內(nèi)存模塊的上電自檢和內(nèi)存配置;
[0043]所述共享模塊,還用于將所述內(nèi)存初始化數(shù)據(jù)提供給所述SMM Monarch。
[0044]在第一種可能的實(shí)施例中,結(jié)合第三方面,所述第二初始化模塊,還用于通過所述熱添加代碼進(jìn)行處理器初始化,所述處理器初始化包括對所述待添加節(jié)點(diǎn)內(nèi)各個(gè)處理器的上電自檢和初始化配置。
[0045]在第二種可能的實(shí)施例中,結(jié)合第三方面中的第一種可能的實(shí)施例,所述獲取模塊,具體用于從所在裝置對應(yīng)的Flash芯片中獲取所述熱添加代碼;或者,用于從與處理器連接設(shè)備連接的Flash芯片中獲取所述熱添加代碼,所述處理器連接設(shè)備為將所述多處理器系統(tǒng)中的所述已用節(jié)點(diǎn)和所述待添加節(jié)點(diǎn)進(jìn)行互連的設(shè)備。
[0046]第四方面,本發(fā)明的實(shí)施例提供一種節(jié)點(diǎn)的處理裝置,包括:
[0047]所述裝置應(yīng)用于系統(tǒng)管理模式主邏輯處理器SMM Monarch,所述SMM Monarch為已用節(jié)點(diǎn)中的邏輯處理器,所述已用節(jié)點(diǎn)處于多處理器系統(tǒng)中,所述裝置包括:
[0048]接收模塊,用于接收系統(tǒng)管理中斷SMI指示,所述SMI指示用于指示向所述多處理器系統(tǒng)中熱添加待添加節(jié)點(diǎn),所述待添加節(jié)點(diǎn)內(nèi)包括通過快速通道互聯(lián)QPI鏈路互聯(lián)的處理器;
[0049]獲取模塊,用于獲取所述待添加節(jié)點(diǎn)提供的QPI初始化數(shù)據(jù),所述QPI初始化數(shù)據(jù)為所述待添加節(jié)點(diǎn)通過QPI初始化得到的數(shù)據(jù),所述QPI初始化包括建立所述待添加節(jié)點(diǎn)中的各個(gè)處理器間的互聯(lián)配置;
[0050]發(fā)送模塊,用于向所述待添加節(jié)點(diǎn)發(fā)送內(nèi)存初始化命令,所述內(nèi)存初始化命令用于指示所述待添加節(jié)點(diǎn)執(zhí)行內(nèi)存初始化,所述內(nèi)存初始化包括對所述待添加節(jié)點(diǎn)內(nèi)各個(gè)內(nèi)存模塊的上電自檢和內(nèi)存配置;
[0051]所述獲取模塊,還用于獲取所述待添加節(jié)點(diǎn)提供的內(nèi)存初始化數(shù)據(jù)。
[0052]在第一種可