本發(fā)明涉及計算機技術領域,具體地說是一種多分區(qū)服務器系統(tǒng)的pcie子系統(tǒng)電源控制系統(tǒng)及方法。
背景技術:
在服務器設計中,除了內存、cpu互聯(lián)外,其他外圍設備基本都通過pcie總線接入到服務器系統(tǒng),包括網(wǎng)卡,raid卡,hba卡等。pcie設備大多通過pcie插槽接到系統(tǒng)。在服務器設計中,經(jīng)常有把多個pcie插槽集成在一個板卡上,作為一個pcie子系統(tǒng)。在現(xiàn)有技術中,pcie子系統(tǒng)和計算節(jié)點是一一對應的,如圖1所示。
但是在有些多分區(qū)服務器的設計中,也可以選擇將多個分區(qū)對應連接同一個pcie板卡,每個節(jié)點都連接pcie板卡的部分pcie插槽,如圖2所示。
對于pcie板卡有如下要求:計算節(jié)點開關機時,會發(fā)送信號將pcie板卡的電源也打開或關斷,在操作執(zhí)行完成后,pcie板卡向計算節(jié)點反饋操作完成信號。
在上述第一種框圖設計中,這一要求易于實現(xiàn)。但是在第二種設計中,pcie板卡的電源需要滿足:計算節(jié)點1和計算節(jié)點2都關機時,pcie板卡電源關斷,其他情況下電源開啟。pcie板卡需要綜合兩個計算節(jié)點發(fā)來的電源控制信號進行板卡的電源控制,并反饋操作完成信號。
因此在第二種設計方案中如何實現(xiàn)對pcie子系統(tǒng)進行電源管理是本領域亟需解決的技術問題,基于此,本發(fā)明提供一種多分區(qū)服務器系統(tǒng)的pcie子系統(tǒng)電源控制系統(tǒng)及方法。
技術實現(xiàn)要素:
本發(fā)明的技術任務是針對以上不足之處,提供一種多分區(qū)服務器系統(tǒng)的pcie子系統(tǒng)電源控制系統(tǒng)及方法。
一種多分區(qū)服務器系統(tǒng)的pcie子系統(tǒng)電源控制系統(tǒng),其結構包括若干計算節(jié)點、pcie板卡,該pcie板卡上集成配置有管理控制器、cpld和電源電路,其中管理控制器網(wǎng)絡連接計算節(jié)點,并接收來自計算節(jié)點的開關機信息;cpld通過gpio接口連接到管理控制器,并通過獲取來自管理控制器的上電信號,控制電源電路開關,控制完成后發(fā)送對應的完成信號給管理控制器。
管理控制器網(wǎng)絡連接計算節(jié)點是指計算節(jié)點以網(wǎng)絡數(shù)據(jù)包的形式將節(jié)點的開關機信息發(fā)送給管理控制器。
管理控制器將2n個gpio接口連接到cpld,這里的n為計算節(jié)點的數(shù)量,即每兩個gpio接口對應一個計算節(jié)點,且兩個gpio接口分別傳輸上電信號和完成信號,上電信號用于向cpld傳遞其對應計算節(jié)點的開機情況,該計算節(jié)點開機時對應的上電信號為高,計算節(jié)點關機時對應的上電信號為低;每當上電信號發(fā)生變化時,cpld檢測到此變化并進行相關處理,處理完成后向管理控制器發(fā)送完成信號,來指示操作完成。
所述電源電路為向pcie板卡供電的電源模塊,cpld通過向電源電路發(fā)送上電控制信號控制電源電路的開關,并讀取電源電路發(fā)送的上電完成信號來確認電源電路是上電狀態(tài)還是斷電狀態(tài)。
所述cpld內配置2n位用于電源管理的寄存器來完成對上電信號的管理,這里的n為計算節(jié)點的數(shù)量,該寄存器用于指示cpld目前的相關信號處理狀況,其中寄存器定義如下:前n位分別用于指示n個計算節(jié)點的開關機狀態(tài),1為開機,0為關機;后n位分別用于指示對應節(jié)點是否有癥狀處理的計算節(jié)點信號,是為1,否為0。
一種多分區(qū)服務器系統(tǒng)的pcie子系統(tǒng)電源控制方法,基于上述系統(tǒng),其實現(xiàn)過程為,將所有計算節(jié)點連接到pcie板卡中,并由pcie板卡電源供電,當所有計算節(jié)點都關機時,該pcie板卡電源供電關斷,其它情況,即非所有計算節(jié)點都關機時則電源開啟,這里的pcie板卡電源為系統(tǒng)中的電源電路。
其具體實現(xiàn)過程為:
首先計算節(jié)點以網(wǎng)絡數(shù)據(jù)包的形式將節(jié)點的開關機信息發(fā)送給管理控制器;
管理控制器將上電信號發(fā)送給cpld,cpld通過檢測上電信號是否跳變來檢測從管理控制器發(fā)過來的節(jié)點開關機信號;
當所有計算節(jié)點都關機時,cpld控制電源電路關斷,不再進行供電,其它情況則電源開啟。
所述上電信號是否跳變是指配置在cpld內的寄存器狀態(tài)是否變化,該寄存器內的狀態(tài)包括2n位,n為計算節(jié)點的數(shù)量,前n位分別用于指示n個計算節(jié)點的開關機狀態(tài),1為開機,0為關機;后n位分別用于指示對應節(jié)點是否有癥狀處理的計算節(jié)點信號,是為1,否為0。
所述cpld通過檢測上電信號是否跳變來檢測從管理控制器發(fā)過來的節(jié)點開關機信號,對節(jié)點的關機信號處理流程如下:
cpld檢測到節(jié)點1關機信號后,先判斷是否有其它節(jié)點的開關機信號在處理中,如果有則等待直至其它節(jié)點的信號處理完成;
然后設置寄存器,在寄存器的對應位指示節(jié)點1有信號在處理中;
判斷其它節(jié)點是否開機,如果有節(jié)點開機則不關閉板卡電源,僅僅設置節(jié)點1的關機狀態(tài),并指示節(jié)點1信號處理完成;當其它所有節(jié)點均關機時,向電源發(fā)送關閉信號,關閉完成后再設置節(jié)點1的關機狀態(tài),并指示節(jié)點1信號處理完成;
至此完成對節(jié)點1關機動作的處理。
所述cpld通過檢測上電信號是否跳變來檢測從管理控制器發(fā)過來的節(jié)點開關機信號,對節(jié)點的開機信號處理流程如下:
cpld檢測到節(jié)點1開機信號后,先判斷是否有其它節(jié)點的開關機信號在處理中,如果有則等待直至其它節(jié)點的信號處理完成;
之后設置寄存器指示節(jié)點1有信號在處理中;
判斷其它節(jié)點是否開機,當有節(jié)點開機時,表示板卡電源已經(jīng)開啟,此時設置節(jié)點1為開機狀態(tài),并指示節(jié)點1信號處理完成;當其它節(jié)點均關機時,向電源發(fā)送開啟信號,開啟完成后再設置節(jié)點1的開機狀態(tài),并指示節(jié)點1信號處理完成;
至此完成對節(jié)點1開機動作的處理。
本發(fā)明的一種多分區(qū)服務器系統(tǒng)的pcie子系統(tǒng)電源控制系統(tǒng)及方法和現(xiàn)有技術相比,具有以下有益效果:
本發(fā)明的一種多分區(qū)服務器系統(tǒng)的pcie子系統(tǒng)電源控制系統(tǒng)及方法,應用到多個計算節(jié)點連接到同一個pcie板卡時的電源管理場景,通過cpld綜合各個節(jié)點的開關機情況進行處理,實現(xiàn)了pcie板卡根據(jù)計算節(jié)點的情況進行上下電,并向計算節(jié)點反饋處理完成信號,實現(xiàn)了pcie子系統(tǒng)工作的穩(wěn)定可靠,實用性強,適用范圍廣泛,具有很好的推廣應用價值。
附圖說明
附圖1為現(xiàn)有技術中計算節(jié)點與pcie板卡一一對應連接圖。
附圖2為現(xiàn)有技術中多個計算節(jié)點與pcie板卡對應連接圖。
附圖3為本發(fā)明的系統(tǒng)實現(xiàn)示意圖。
附圖4為本發(fā)明實施例中節(jié)點1關機處理流程圖。
附圖5為本發(fā)明實施例中節(jié)點1開機處理流程圖。
具體實施方式
下面結合附圖及具體實施例對本發(fā)明作進一步說明。
如附圖3所示,一種多分區(qū)服務器系統(tǒng)的pcie子系統(tǒng)電源控制系統(tǒng),其結構包括若干計算節(jié)點、pcie板卡,該pcie板卡上集成配置有管理控制器、cpld和電源電路,其中管理控制器網(wǎng)絡連接計算節(jié)點,并接收來自計算節(jié)點的開關機信息;cpld通過gpio接口連接到管理控制器,并通過獲取來自管理控制器的上電信號,控制電源電路開關,控制完成后發(fā)送對應的完成信號給管理控制器。
管理控制器網(wǎng)絡連接計算節(jié)點是指計算節(jié)點以網(wǎng)絡數(shù)據(jù)包的形式將節(jié)點的開關機信息發(fā)送給管理控制器。
管理控制器將2n個gpio接口連接到cpld,這里的n為計算節(jié)點的數(shù)量,即每兩個gpio接口對應一個計算節(jié)點,且兩個gpio接口分別傳輸上電信號和完成信號,上電信號用于向cpld傳遞其對應計算節(jié)點的開機情況,該計算節(jié)點開機時對應的上電信號為高,計算節(jié)點關機時對應的上電信號為低;每當上電信號發(fā)生變化時,cpld檢測到此變化并進行相關處理,處理完成后向管理控制器發(fā)送完成信號,來指示操作完成。
所述電源電路為向pcie板卡供電的電源模塊,cpld通過向電源電路發(fā)送上電控制信號控制電源電路的開關,并讀取電源電路發(fā)送的上電完成信號來確認電源電路是上電狀態(tài)還是斷電狀態(tài)。
所述cpld內配置2n位用于電源管理的寄存器來完成對上電信號的管理,這里的n為計算節(jié)點的數(shù)量,該寄存器用于指示cpld目前的相關信號處理狀況,其中寄存器定義如下:前n位分別用于指示n個計算節(jié)點的開關機狀態(tài),1為開機,0為關機;后n位分別用于指示對應節(jié)點是否有癥狀處理的計算節(jié)點信號,是為1,否為0。
一種多分區(qū)服務器系統(tǒng)的pcie子系統(tǒng)電源控制方法,基于上述系統(tǒng),其實現(xiàn)過程為,將所有計算節(jié)點連接到pcie板卡中,并由pcie板卡電源供電,當所有計算節(jié)點都關機時,該pcie板卡電源供電關斷,其它情況,即非所有計算節(jié)點都關機時則電源開啟,這里的pcie板卡電源為系統(tǒng)中的電源電路。
pcie板卡需要綜合兩個計算節(jié)點發(fā)來的電源控制信號進行板卡的電源控制,并反饋操作完成信號。
所述非所有計算節(jié)點都關機時舉例如下:計算節(jié)點1和計算節(jié)點2都處于開機狀態(tài)時,計算節(jié)點1關機,并向pcie板卡發(fā)送關機指示信號。此時由于節(jié)點2還在工作,需要pcie板卡為節(jié)點2對應的pcie設備供電,因此pcie板卡應該不斷電,只是記錄計算節(jié)點1已關機的狀態(tài),并向計算節(jié)點1反饋操作完成信號來指示計算節(jié)點1的命令已經(jīng)被處理。
本發(fā)明的方法的具體實現(xiàn)過程為:
首先計算節(jié)點以網(wǎng)絡數(shù)據(jù)包的形式將節(jié)點的開關機信息發(fā)送給管理控制器;
管理控制器將上電信號發(fā)送給cpld,cpld通過檢測上電信號是否跳變來檢測從管理控制器發(fā)過來的節(jié)點開關機信號;
當所有計算節(jié)點都關機時,cpld控制電源電路關斷,不再進行供電,其它情況則電源開啟。
所述上電信號是否跳變是指配置在cpld內的寄存器狀態(tài)是否變化,該寄存器內的狀態(tài)包括2n位,n為計算節(jié)點的數(shù)量,前n位分別用于指示n個計算節(jié)點的開關機狀態(tài),1為開機,0為關機;后n位分別用于指示對應節(jié)點是否有癥狀處理的計算節(jié)點信號,是為1,否為0。
所述cpld通過檢測上電信號是否跳變來檢測從管理控制器發(fā)過來的節(jié)點開關機信號,對節(jié)點的關機信號處理流程如下:
cpld檢測到節(jié)點1關機信號后,先判斷是否有其它節(jié)點的開關機信號在處理中,如果有則等待直至其它節(jié)點的信號處理完成;
然后設置寄存器,在寄存器的對應位指示節(jié)點1有信號在處理中;
判斷其它節(jié)點是否開機,如果有節(jié)點開機則不關閉板卡電源,僅僅設置節(jié)點1的關機狀態(tài),并指示節(jié)點1信號處理完成;當其它所有節(jié)點均關機時,向電源發(fā)送關閉信號,關閉完成后再設置節(jié)點1的關機狀態(tài),并指示節(jié)點1信號處理完成;
至此完成對節(jié)點1關機動作的處理。
所述cpld通過檢測上電信號是否跳變來檢測從管理控制器發(fā)過來的節(jié)點開關機信號,對節(jié)點的開機信號處理流程如下:
cpld檢測到節(jié)點1開機信號后,先判斷是否有其它節(jié)點的開關機信號在處理中,如果有則等待直至其它節(jié)點的信號處理完成;
之后設置寄存器指示節(jié)點1有信號在處理中。
判斷其它節(jié)點是否開機,當有節(jié)點開機時,表示板卡電源已經(jīng)開啟,此時設置節(jié)點1為開機狀態(tài),并指示節(jié)點1信號處理完成;當其它節(jié)點均關機時,向電源發(fā)送開啟信號,開啟完成后再設置節(jié)點1的開機狀態(tài),并指示節(jié)點1信號處理完成;
至此完成對節(jié)點1開機動作的處理。
實施例:如附圖3所示,節(jié)點1、節(jié)點2是兩個獨立工作的計算節(jié)點,它們將pcie信號連接到pcie板卡上進行擴展。管理控制器、cpld、電源電路均為pcie子系統(tǒng)的一部分,其中電源電路/cpld都集成在pcie板卡上,管理控制器可以集成在pcie板卡上,也可以集成在獨立板卡上,通過連接器、線纜等連接pcie板卡。
節(jié)點1和節(jié)點2通過網(wǎng)絡信號連接管理控制器,以網(wǎng)絡數(shù)據(jù)包的形式將節(jié)點的開關機信息發(fā)送給管理控制器。
管理控制器將4個gpio連接到cpld,其中上電信號1向cpld傳遞節(jié)點1的開機情況,節(jié)點1開機時上電信號1為高,節(jié)點1關機時上電信號1為低。每當上電信號發(fā)生變化時,cpld檢測到此變出并進行相關處理,處理完成后向管理控制器發(fā)送完成信號1,來指示操作完成。上電信號2、完成信號2對應節(jié)點2,其功能同理。
cpld為了完成對上電信號的管理,在內部設置了4位的用于電源管理的寄存器,以下簡稱寄存器,來指示cpld目前的相關信號處理狀況。
寄存器定義如下:
位0:指示節(jié)點1的開關機狀態(tài),1為開機,0為關機。
位1:指示節(jié)點2的開關機狀態(tài),1為開機,0為關機。
位2:指示是否有節(jié)點1的信號正在處理中,是為1,否為0。
位3:指示是否有節(jié)點2的信號正在處理中,是為1,否為0。
如附圖4所示,對節(jié)點的關機信號處理流程如下所示,以節(jié)點1為例,節(jié)點2同理:
cpld檢測到節(jié)點1關機信號后,先判斷是否有節(jié)點2的開關機信號在處理中,如果有則等待直至節(jié)點2的信號處理完成(這么做是為了防止發(fā)生電源管理混亂)。
之后設置寄存器指示節(jié)點1有信號在處理中。
判斷當節(jié)點2開機時,不關閉板卡電源,僅僅是設置節(jié)點1的關機狀態(tài),并指示節(jié)點1信號處理完成;當節(jié)點2關機時,向電源發(fā)送關閉信號,關閉完成后再設置節(jié)點1的關機狀態(tài),并指示節(jié)點1信號處理完成。
至此完成對節(jié)點1關機動作的處理。
如附圖5所示,節(jié)點1開機處理流程如下,以節(jié)點1為例,節(jié)點2同理:
cpld檢測到節(jié)點1開機信號后,先判斷是否有節(jié)點2的開關機信號在處理中,如果有則等待直至節(jié)點2的信號處理完成。
之后設置寄存器指示節(jié)點1有信號在處理中。
判斷當節(jié)點2開機時,表示板卡電源已經(jīng)開啟了,此時設置節(jié)點1為開機狀態(tài),并指示節(jié)點1信號處理完成;當節(jié)點2關機時,向電源發(fā)送開啟信號,開啟完成后再設置節(jié)點1的開機狀態(tài),并指示節(jié)點1信號處理完成。
至此完成對節(jié)點1開機動作的處理。
通過上面具體實施方式,所述技術領域的技術人員可容易的實現(xiàn)本發(fā)明。但是應當理解,本發(fā)明并不限于上述的具體實施方式。在公開的實施方式的基礎上,所述技術領域的技術人員可任意組合不同的技術特征,從而實現(xiàn)不同的技術方案。
除說明書所述的技術特征外,均為本專業(yè)技術人員的已知技術。