国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      不間斷更新冗余硬件控制器上的固件的裝置、系統(tǒng)和方法

      文檔序號(hào):7643318閱讀:147來(lái)源:國(guó)知局
      專利名稱:不間斷更新冗余硬件控制器上的固件的裝置、系統(tǒng)和方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及這樣的主要硬件控制器,其被配置為與硬件更新相關(guān)聯(lián)的路由模塊;特別涉及向冗余硬件控制器轉(zhuǎn)發(fā)固件更新,以便避免中斷主要硬件控制器的運(yùn)行。
      背景技術(shù)
      在采用共用單個(gè)點(diǎn)到點(diǎn)連接的冗余硬件控制器的服務(wù)器環(huán)境中,一個(gè)控制器可被稱為主要硬件控制器,另一個(gè)控制器可被稱為輔助硬件控制器。主要硬件控制器和輔助硬件控制器可經(jīng)由共用的串行連接連接到服務(wù)處理器。
      主要硬件控制器執(zhí)行與冗余硬件控制器相關(guān)聯(lián)的所有操作,而輔助硬件控制器保持為空閑。專用的點(diǎn)到點(diǎn)連接被配置為從主要硬件控制器向輔助硬件控制器復(fù)制和傳送狀態(tài)信息和狀態(tài)變化。換言之,在正常運(yùn)行模式下,對(duì)主要硬件控制器的存儲(chǔ)器的所有寫(xiě)入經(jīng)由專用點(diǎn)到點(diǎn)連接被發(fā)送到輔助硬件控制器的存儲(chǔ)器,由此保持輔助硬件控制器的存儲(chǔ)器和寄存器為最新,使得輔助硬件控制器在需要時(shí)可立即承擔(dān)控制。
      共用的串行連接是由主要硬件控制器與輔助硬件控制器共用的連接。然而,到服務(wù)處理器的共用串行連接在任何給定時(shí)間通??捎梢粋€(gè)硬件控制器控制。有效控制到服務(wù)處理器的共用串行連接的硬件控制器為主要硬件控制器。
      在刀片服務(wù)器環(huán)境,例如IBMBladeCenter刀片服務(wù)器中,主要硬件控制器和輔助硬件控制器可以基本類似于BMC(基板管理控制器),這是一種與許多計(jì)算機(jī)的、特別是服務(wù)器的主板通信的專用微控制器。并且服務(wù)處理器可基本類似于MM(管理模塊)。
      輕薄、可熱替換的刀片服務(wù)器像書(shū)架上的書(shū)一樣裝在單個(gè)機(jī)架上,每個(gè)刀片服務(wù)器為一獨(dú)立的服務(wù)器,具有自己的處理器、存儲(chǔ)器、存儲(chǔ)設(shè)備、網(wǎng)絡(luò)控制器、操作系統(tǒng)和應(yīng)用。刀片服務(wù)器滑進(jìn)機(jī)架中的槽位之中,并插到中間背板(mid-plane)或背板(backplane)中,與其他刀片服務(wù)器共用電源、風(fēng)扇、軟驅(qū)、開(kāi)關(guān)以及端口。刀片服務(wù)器被設(shè)計(jì)為產(chǎn)生較少的熱,因此節(jié)約能量成本。由于共享開(kāi)關(guān)和電源單元,釋放出空間、且刀片服務(wù)器使更高的計(jì)算資源密度成為可能。
      刀片服務(wù)器有時(shí)稱作高密度服務(wù)器,并典型地用于專用于單個(gè)任務(wù)的服務(wù)器集群中,所述單個(gè)任務(wù)例如文件共享、網(wǎng)頁(yè)服務(wù)和高速緩存、web通信的SSL加密、用于較小顯示器的網(wǎng)頁(yè)內(nèi)容譯碼以及音頻與視頻內(nèi)容的流式傳輸?shù)鹊取5镀?wù)器可具有安裝在板上的操作系統(tǒng)以及主要應(yīng)用程序。
      BMC經(jīng)由共用串行連接管理MM的系統(tǒng)管理軟件與服務(wù)器平臺(tái)硬件之間的接口。內(nèi)置在計(jì)算機(jī)系統(tǒng)中的不同類型的傳感器向BMC報(bào)告例如溫度、冷卻風(fēng)扇速度、電源模式、操作系統(tǒng)(OS)狀態(tài)等參數(shù)。BMC監(jiān)測(cè)傳感器,并且如果任何參數(shù)沒(méi)有保持在預(yù)設(shè)置界限內(nèi),從而指示系統(tǒng)的潛在故障,則經(jīng)由通信網(wǎng)絡(luò)向系統(tǒng)管理員發(fā)送警報(bào)。系統(tǒng)管理員還可遠(yuǎn)程與BMC通信,以便采取例如對(duì)系統(tǒng)進(jìn)行重置或重新加電(power-cycling)等改正措施來(lái)使掛起(hung)的OS重新運(yùn)行。這些能力節(jié)省了系統(tǒng)的總體擁有成本。
      服務(wù)處理器或MM的功能之一是在主要硬件控制器上啟動(dòng)閃速更新(flash update)。為了啟動(dòng)閃速更新,服務(wù)處理器通過(guò)連接—實(shí)質(zhì)上為共用的串行連接—向主要硬件控制器發(fā)送閃速開(kāi)始命令。按照慣例,所有的閃速更新是通過(guò)共用的串行連接或更新連接下載的。響應(yīng)于接收到來(lái)自服務(wù)處理器的閃速開(kāi)始命令,主要硬件控制器停止執(zhí)行例行的硬件控制器代碼并開(kāi)始執(zhí)行引導(dǎo)塊代碼,所述引導(dǎo)塊代碼是對(duì)發(fā)送自服務(wù)處理器的、與閃速更新相關(guān)的所有閃速命令進(jìn)行響應(yīng)和處理的一段代碼。主要硬件控制器可完成或暫停所有當(dāng)前任務(wù),而所有未來(lái)的任務(wù)可被堆積在隊(duì)列中。
      在固件覆蓋過(guò)程期間中,更新連接必須保持為由目標(biāo)控制器獨(dú)占式擁有,以便傳送固件映像。在下載或覆蓋過(guò)程中,更新連接不能被共用或中斷。使問(wèn)題復(fù)雜的是,在固件映像下載時(shí),由于固件覆蓋過(guò)程需要主要硬件控制器執(zhí)行引導(dǎo)塊代碼,主要硬件控制器不能用于執(zhí)行其他任務(wù)。因此,由于主要硬件控制器代碼停止,所有硬件控制器操作停下來(lái)。
      因此,在固件覆蓋過(guò)程過(guò)程中,服務(wù)器設(shè)備失去有效的硬件控制器,這限制了具有冗余控制器的好處。除了失去冗余性以外,由于直到硬件覆蓋處理完成時(shí)所有任務(wù)被排入隊(duì)列,服務(wù)器管理正常運(yùn)行時(shí)間以及硬件控制器可用性受到損害。
      在日益進(jìn)步的信息時(shí)代,有一件事是不變的對(duì)任務(wù)關(guān)鍵性數(shù)據(jù)與應(yīng)用100%可用性的需求。無(wú)論是對(duì)于證券市場(chǎng)、公司工資單、電子商務(wù)、企業(yè)數(shù)據(jù)庫(kù)、醫(yī)療記錄、網(wǎng)上銀行或國(guó)家安全的原因,這些任務(wù)關(guān)鍵性資源的可用性直接取決于系統(tǒng)正常運(yùn)行時(shí)間。當(dāng)前,沒(méi)有一種傳統(tǒng)的過(guò)程能夠適當(dāng)?shù)亟鉀Q固件覆蓋過(guò)程過(guò)程中硬件控制器冗余性的喪失。
      從上面的討論可見(jiàn),顯然存在對(duì)克服傳統(tǒng)閃速更新方法局限性的裝置、系統(tǒng)和方法的需求。特別地,這樣裝置、系統(tǒng)和方法將有利地減少管理工作負(fù)荷,由此降低總體擁有成本。這種裝置、系統(tǒng)和方法也將有利地將管理性干預(yù)減到最小,并保持對(duì)任務(wù)關(guān)鍵性數(shù)據(jù)與應(yīng)用的高度可用性。

      發(fā)明內(nèi)容
      響應(yīng)于本技術(shù)領(lǐng)域的當(dāng)前狀態(tài)、特別是響應(yīng)于本技術(shù)中通過(guò)當(dāng)前可用的閃速更新方法未能完全解決的問(wèn)題和需求開(kāi)發(fā)出本發(fā)明的幾個(gè)實(shí)施例。因此,開(kāi)發(fā)本發(fā)明以提供一種用于不間斷更新冗余硬件控制器上的固件的裝置、系統(tǒng)和方法,其克服了本技術(shù)領(lǐng)域中的上述許多或所有缺點(diǎn)。
      對(duì)固件進(jìn)行更新的裝置具有包含多個(gè)模塊的邏輯單元,所述多個(gè)模塊被配置為在功能上與其他任務(wù)和操作并行地執(zhí)行用于不間斷固件更新的必要操作。所介紹的實(shí)施例中的這些模塊包含路由模塊、接收模塊和轉(zhuǎn)發(fā)模塊。進(jìn)一步的實(shí)施例包含判定模塊、實(shí)現(xiàn)模塊、驗(yàn)證模塊、確認(rèn)模塊和寫(xiě)入模塊。
      路由模塊在服務(wù)處理器與輔助硬件控制器之間路由與閃速更新相關(guān)的通信。路由模塊包含接收模塊、轉(zhuǎn)發(fā)模塊以及判定模塊。接收模塊可經(jīng)由硬件控制接口接收來(lái)自服務(wù)處理器的、與固件覆蓋過(guò)程相關(guān)聯(lián)的閃速更新命令。在一個(gè)實(shí)施例中,接收模塊可經(jīng)由狀態(tài)同步接口接收從主要硬件控制器轉(zhuǎn)發(fā)到輔助硬件控制器的閃速命令。本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,在本發(fā)明的范圍內(nèi),除與閃速更新相關(guān)的通信和命令以外,路由模塊可路由其他類型的通信和命令。
      轉(zhuǎn)發(fā)模塊從服務(wù)處理器向輔助硬件控制器轉(zhuǎn)發(fā)例如閃速命令的命令。當(dāng)接收模塊接收到例如來(lái)自服務(wù)控制器的閃速命令的命令時(shí),接收模塊信號(hào)通知轉(zhuǎn)發(fā)模塊,以經(jīng)由狀態(tài)同步接口向輔助硬件控制器轉(zhuǎn)發(fā)閃速命令。
      判定模塊根據(jù)主要硬件控制器控制(或擁有)硬件控制接口而判定第一硬件控制器為主要硬件控制器。在另一實(shí)施例中,判定模塊可響應(yīng)于接收到例如來(lái)自服務(wù)處理器的閃速命令的命令判定輔助硬件控制器是否可運(yùn)行。
      實(shí)現(xiàn)模塊可響應(yīng)于經(jīng)由狀態(tài)同步接口接收到閃速開(kāi)始命令執(zhí)行引導(dǎo)塊代碼。當(dāng)接收模塊接收到來(lái)自主要硬件控制器的閃速命令時(shí),接收模塊信號(hào)通知實(shí)現(xiàn)模塊在輔助硬件控制器上實(shí)現(xiàn)和執(zhí)行引導(dǎo)塊代碼。實(shí)現(xiàn)模塊包含驗(yàn)證模塊、確認(rèn)模塊和寫(xiě)入模塊。
      驗(yàn)證模塊驗(yàn)證與固件覆蓋過(guò)程相關(guān)聯(lián)的閃速命令。驗(yàn)證模塊可在閃速命令和/或與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊上執(zhí)行一個(gè)或多個(gè)循環(huán)冗余校驗(yàn)或校驗(yàn)和算法、重復(fù)校驗(yàn)法、奇偶校驗(yàn)法或任何其他類似的錯(cuò)誤檢測(cè)方法。
      一旦驗(yàn)證模塊驗(yàn)證了閃速命令以及任何相關(guān)聯(lián)的數(shù)據(jù)塊,確認(rèn)模塊可向服務(wù)處理器確認(rèn)接收到驗(yàn)證的閃速命令。在一個(gè)實(shí)施例中,確認(rèn)模塊可請(qǐng)求服務(wù)處理器重新發(fā)送無(wú)效的閃速命令。
      寫(xiě)入模塊向存儲(chǔ)裝置寫(xiě)入與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。在一個(gè)實(shí)施例中,寫(xiě)入模塊循序地將數(shù)據(jù)塊寫(xiě)入緩沖器,在緩沖器中完整的固件映像被組裝起來(lái)并在其后被裝載到固件中。
      故障模塊可向服務(wù)處理器發(fā)送與閃速更新命令相關(guān)的故障消息。當(dāng)判定模塊判定輔助硬件控制器不可運(yùn)行時(shí),故障模塊舍棄閃速更新命令。當(dāng)驗(yàn)證模塊判定閃速更新命令無(wú)效時(shí),故障模塊可經(jīng)由狀態(tài)同步接口向服務(wù)處理器發(fā)送否定確認(rèn)。
      終止模塊可響應(yīng)于輔助硬件控制器經(jīng)由狀態(tài)同步接口接收到閃速結(jié)束命令,完成固件覆蓋過(guò)程。在一個(gè)實(shí)施例中,終止模塊可將硬件控制接口的控制從主要硬件控制器切換到輔助硬件控制器,從而主要硬件控制器102與輔助硬件控制器102切換角色。
      還提出了本發(fā)明的一種在冗余硬件控制器上不間斷地更新固件的系統(tǒng)。該系統(tǒng)可在一冗余硬件控制器中實(shí)現(xiàn),該冗余硬件控制器被配置為執(zhí)行固件覆蓋過(guò)程。
      特別地,在一個(gè)實(shí)施例中,該系統(tǒng)可包含管理模塊,其被配置為執(zhí)行固件覆蓋過(guò)程;主要基板管理控制器,其被配置為響應(yīng)于管理模塊執(zhí)行固件覆蓋過(guò)程路由閃速更新并向冗余硬件控制器轉(zhuǎn)發(fā)閃速更新;輔助基板管理控制器,其被配置為通過(guò)點(diǎn)到點(diǎn)連接接收來(lái)自主要基板管理控制器的閃速更新。
      該系統(tǒng)還包含與主要基板管理控制器以及輔助基板管理控制器通信的更新模塊,該更新模塊被配置為不間斷地用閃速更新替換存儲(chǔ)在輔助基板管理控制器上的當(dāng)前固件映像。
      在進(jìn)一步的實(shí)施例中,該系統(tǒng)可包含存儲(chǔ)裝置,該存儲(chǔ)裝置可被配置為存儲(chǔ)與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。該系統(tǒng)還可包含連接管理模塊、主要基板管理控制器以及輔助基板管理控制器的間接路由連接,該間接路由連接被配置為通過(guò)主要基板管理控制器在管理模塊與輔助基板管理控制器之間發(fā)送和接收閃速命令。
      還提出了一種信號(hào)承載介質(zhì),用于存儲(chǔ)在被執(zhí)行時(shí)實(shí)現(xiàn)不間斷地更新冗余硬件控制器上的固件的操作、或向冗余硬件控制器發(fā)出控制命令的操作的程序。在一個(gè)實(shí)施例中,所述操作包括經(jīng)由間接路由連接從服務(wù)處理器接收閃速命令,響應(yīng)于接收到閃速命令判定輔助硬件控制器是否可運(yùn)行,以及經(jīng)由間接路由連接將閃速命令從服務(wù)處理器轉(zhuǎn)發(fā)到輔助硬件控制器。
      在另一實(shí)施例中,所述操作可包括響應(yīng)于經(jīng)由間接路由連接接收到包括閃速開(kāi)始命令的閃速命令執(zhí)行引導(dǎo)塊代碼,響應(yīng)于接收到閃速命令向服務(wù)處理器轉(zhuǎn)發(fā)來(lái)自輔助硬件控制器的確認(rèn),以及響應(yīng)于接收到包括閃速結(jié)束命令的閃速命令完成輔助硬件控制器的固件覆蓋過(guò)程。
      在進(jìn)一步的實(shí)施例中,操作可包括響應(yīng)于主要硬件控制器控制到服務(wù)處理器的共用串行連接判定一冗余硬件控制器為主要硬件控制器,驗(yàn)證閃速命令,向輔助硬件控制器上的固件存儲(chǔ)位置寫(xiě)入與閃速命令相關(guān)聯(lián)的、已驗(yàn)證的數(shù)據(jù)塊,確認(rèn)接收到閃速命令,響應(yīng)于確認(rèn)輔助硬件控制器不可運(yùn)行向服務(wù)處理器發(fā)送故障消息,以及響應(yīng)于判定閃速命令無(wú)效向服務(wù)處理器發(fā)送否定確認(rèn)。
      貫穿本說(shuō)明書(shū)談到的特征、優(yōu)點(diǎn)或類似的措辭并非暗示著采用本發(fā)明可實(shí)現(xiàn)的所有這些特征和優(yōu)點(diǎn)應(yīng)當(dāng)在或就是在本發(fā)明的任何單個(gè)實(shí)施例中。相反,提到特征和優(yōu)點(diǎn)的措辭應(yīng)被理解為意味著與一實(shí)施例相關(guān)聯(lián)地介紹的特定特征、優(yōu)點(diǎn)或特性被包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,貫穿本說(shuō)明書(shū)對(duì)特征和優(yōu)點(diǎn)的討論以及類似的措辭可以但不是必須指同一實(shí)施例。
      另外,所介紹的本發(fā)明的特征、優(yōu)點(diǎn)和特性可以用任何適當(dāng)?shù)姆绞皆谝粋€(gè)或多個(gè)實(shí)施例中結(jié)合。相關(guān)領(lǐng)域的技術(shù)人員將想到,可以實(shí)踐本發(fā)明而沒(méi)有特定實(shí)施例的一個(gè)或多個(gè)特定特征或優(yōu)點(diǎn)。在其他的情況中,可以想到某些實(shí)施例中的額外特征和優(yōu)點(diǎn)可不在本發(fā)明的全部實(shí)施例中存在。
      通過(guò)下面的介紹和所附權(quán)利要求可充分明了本發(fā)明的這些特征和優(yōu)點(diǎn),或者通過(guò)下面給出的本發(fā)明的實(shí)踐,可以獲知本發(fā)明的這些特征和優(yōu)點(diǎn)。


      為容易理解本發(fā)明的優(yōu)點(diǎn),參照附圖中示出的具體實(shí)施例將給出對(duì)上面簡(jiǎn)單介紹的本發(fā)明的詳細(xì)介紹。附圖僅示出了本發(fā)明的典型實(shí)施例,因此不應(yīng)被認(rèn)為是對(duì)其范圍的限制,將通過(guò)使用附圖更加具體詳細(xì)地介紹和闡釋本發(fā)明。在附圖中圖1為示出了計(jì)算機(jī)管理系統(tǒng)的一個(gè)實(shí)施例的原理框圖;圖2為示出了基板管理控制器的一個(gè)實(shí)施例的原理框圖;圖3為示出了更新模塊的一個(gè)實(shí)施例的原理框圖;圖4為示出了固件路由方法的一個(gè)實(shí)施例的原理流程圖;以及圖5為示出了固件更新方法的一個(gè)實(shí)施例的原理流程圖。
      具體實(shí)施例方式
      本說(shuō)明書(shū)中介紹的許多功能單元被標(biāo)識(shí)為模塊,以便更為特別地強(qiáng)調(diào)其實(shí)施獨(dú)立性。例如,模塊可被實(shí)現(xiàn)為硬件電路,包括定制的VLSI電路或門陣列、例如邏輯芯片、晶體管或其他分立部件等成品半導(dǎo)體。模塊還可在可編程硬件裝置例如現(xiàn)場(chǎng)可編程門陣列、可編程陣列邏輯、可編程邏輯裝置等中實(shí)現(xiàn)。
      模塊還可在由不同類型的處理器執(zhí)行的軟件中實(shí)現(xiàn)。例如,可執(zhí)行代碼的被標(biāo)識(shí)模塊可包括計(jì)算機(jī)指令的一個(gè)或多個(gè)物理或邏輯塊,所述計(jì)算機(jī)指令例如可被組織為例如對(duì)象、過(guò)程或函數(shù)。然而,一被標(biāo)識(shí)模塊的可執(zhí)行代碼不需要物理地位于一起,而是可包含存儲(chǔ)在不同位置上的不同指令,這些指令在被邏輯地連接在一起時(shí)構(gòu)成該模塊并實(shí)現(xiàn)該模塊的規(guī)定目的。
      事實(shí)上,可執(zhí)行代碼的模塊可以是單個(gè)指令或者是許多個(gè)指令,甚至可以分布在幾個(gè)不同的代碼片段上、不同的程序中以及幾個(gè)存儲(chǔ)裝置上。類似地,在這里操作數(shù)據(jù)可在模塊中被識(shí)別和說(shuō)明,并可以用任何合適的形式實(shí)現(xiàn)以及組織在任何合適類型的數(shù)據(jù)結(jié)構(gòu)中。運(yùn)行數(shù)據(jù)可被收集為單個(gè)數(shù)據(jù)集或分布在不同的位置包括不同的存儲(chǔ)裝置上,并可至少部分地僅作為系統(tǒng)或網(wǎng)絡(luò)上的電子信號(hào)存在。
      圖1示出了計(jì)算機(jī)管理系統(tǒng)100的一個(gè)實(shí)施例的原理框圖。計(jì)算機(jī)管理系統(tǒng)100監(jiān)測(cè)平臺(tái)硬件的狀態(tài),并提供遠(yuǎn)程訪問(wèn)以控制平臺(tái)硬件,檢索狀態(tài)信息以及接收關(guān)于關(guān)鍵錯(cuò)誤其他硬件狀態(tài)變化的通知。計(jì)算機(jī)管理系統(tǒng)100包含主要硬件控制器102、輔助硬件控制器104、服務(wù)處理器106、狀態(tài)同步接口108、硬件控制接口110以及間接路由連接116。計(jì)算機(jī)管理系統(tǒng)100可根據(jù)主要硬件控制器102、輔助硬件控制器104以及服務(wù)處理器106的管理操作來(lái)管理硬件部件的狀態(tài)。在一個(gè)實(shí)施例中,計(jì)算機(jī)管理系統(tǒng)100可包括兩個(gè)或兩個(gè)以上的硬件控制器。
      主要硬件控制器102經(jīng)由硬件控制接口110管理服務(wù)處理器106的系統(tǒng)管理軟件與平臺(tái)硬件之間的接口。主要硬件控制器102可監(jiān)測(cè)刀片服務(wù)器(未示出)的平臺(tái)硬件和系統(tǒng)參數(shù)。在一個(gè)實(shí)施例中,主要硬件控制器102可經(jīng)由狀態(tài)同步接口108路由閃速更新到輔助硬件控制器104。
      在一個(gè)實(shí)施例中,輔助硬件控制器104是主要硬件控制器102的冗余硬件控制器。輔助硬件控制器104可被配置為主要硬件控制器102的熱備份。或者,輔助硬件控制器104可被配置為與主要硬件控制器102分擔(dān)工作負(fù)荷的對(duì)等控制器。輔助硬件控制器104可以為被配置為主控制器的主要硬件控制器102的從控制器,輔助硬件控制器104執(zhí)行來(lái)自主要硬件控制器102的命令。在一個(gè)實(shí)施例中,輔助硬件控制器104經(jīng)由狀態(tài)同步接口108接收來(lái)自主要硬件控制器102的閃速更新。
      服務(wù)處理器106處理來(lái)自計(jì)算機(jī)管理系統(tǒng)100的請(qǐng)求。服務(wù)處理器106包括系統(tǒng)管理軟件,該系統(tǒng)管理軟件允許系統(tǒng)管理員經(jīng)由主要硬件控制器102和/或輔助硬件控制器104管理平臺(tái)硬件的運(yùn)行和狀態(tài)。服務(wù)處理器106可被配置為控制平臺(tái)硬件的管理以及計(jì)算機(jī)管理系統(tǒng)100的系統(tǒng)參數(shù)的監(jiān)測(cè)。
      在一個(gè)實(shí)施例中,服務(wù)處理器106可以為在遠(yuǎn)程計(jì)算機(jī)系統(tǒng)上執(zhí)行的命令行接口(CLI)應(yīng)用。優(yōu)選地,系統(tǒng)管理員可經(jīng)由服務(wù)處理器106啟動(dòng)閃速更新。服務(wù)處理器106可以對(duì)主要硬件控制器102以及輔助硬件控制器104來(lái)說(shuō)為本地的,或者可經(jīng)由硬件控制接口110遠(yuǎn)程連接。
      狀態(tài)同步接口108將計(jì)算機(jī)管理系統(tǒng)100的狀態(tài)信息和狀態(tài)變化從主要硬件控制器102復(fù)制和傳送到輔助硬件控制器104。狀態(tài)同步接口108將主要硬件控制器102互連到輔助硬件控制器104。在一個(gè)實(shí)施例中,狀態(tài)同步接口108可以為專用點(diǎn)到點(diǎn)連接。
      硬件控制接口110在主要硬件控制器102和/或輔助硬件控制器104以及服務(wù)處理器106之間傳送狀態(tài)管理消息。硬件控制接口110為在主要硬件控制器102與輔助硬件控制器104之間共享的共用連接。硬件控制接口110可包含串行或并行通信路徑。在某些實(shí)施例中,硬件控制接口110包含將服務(wù)處理器106物理連接到主要硬件控制器102以及輔助硬件控制器104的單條線。優(yōu)選地,服務(wù)處理器106與主要硬件控制器102或輔助硬件控制器104之間的通信遵循允許一個(gè)控制器擁有對(duì)硬件控制接口110的擁有權(quán)、同時(shí)另一控制器同意除非其為擁有者否則不通過(guò)硬件控制接口110發(fā)送任何消息的協(xié)議。以這種方式,主要硬件控制器102和輔助硬件控制器104可協(xié)同共享單個(gè)連接。
      硬件控制接口110包含主要硬件控制鏈路112和輔助硬件控制鏈路114。在一個(gè)實(shí)施例中,當(dāng)前控制硬件控制接口110的硬件控制器為主要硬件控制器112。主要硬件控制鏈路112示出了硬件控制器102、104中的哪一個(gè)當(dāng)前為主要硬件控制器102。輔助硬件控制鏈路114(用虛線示出)示出了硬件控制器102、104中的哪一個(gè)當(dāng)前為輔助硬件控制器104。
      主要硬件控制鏈路112經(jīng)由硬件控制接口110在主要硬件控制器102與服務(wù)處理器106之間傳送狀態(tài)管理消息。輔助硬件控制鏈路114提供到硬件控制器102、104的冗余路徑,從而輔助硬件控制器104在主要硬件控制器102發(fā)生故障時(shí)可接管。
      在某些實(shí)施例中,狀態(tài)同步接口108和/或硬件控制接口110可被實(shí)現(xiàn)為串行連接,例如集成電路間(I2C)總線、推薦標(biāo)準(zhǔn)232(RS232)、推薦標(biāo)準(zhǔn)422(RS422)、推薦標(biāo)準(zhǔn)423(RS423)、推薦標(biāo)準(zhǔn)485(RS485)、通用串行總線(USB)、電氣及電子工程師協(xié)會(huì)標(biāo)準(zhǔn)1394(IEEE 1394)或任何其它類似的接口。如本領(lǐng)域技術(shù)人員將會(huì)想到的那樣,狀態(tài)同步接口108和/或硬件控制接口110可在主機(jī)總線環(huán)境中實(shí)現(xiàn),所述主機(jī)總線環(huán)境例如小型計(jì)算機(jī)系統(tǒng)接口(SCSI)、互聯(lián)網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口(iSCSI)、串行高級(jí)技術(shù)附件(SATA)、通用互聯(lián)網(wǎng)文件系統(tǒng)(CIFS)、網(wǎng)絡(luò)文件系統(tǒng)(NFS/NetWFS)、光纖連接(FICON)、企業(yè)系統(tǒng)連接(ESCON)或任何其它類似的接口。
      傳統(tǒng)上,閃速更新通過(guò)硬件控制接口110被直接發(fā)送到主要硬件控制器102。然而,直接向主要硬件控制器102發(fā)送閃速更新具有使主要硬件控制器102離線、并在固件覆蓋過(guò)程持續(xù)時(shí)間內(nèi)中斷主要硬件控制器102的當(dāng)前以及未來(lái)任務(wù)的不利影響。間接路由連接116允許主要硬件控制器102在從服務(wù)處理器106向輔助硬件控制器104路由閃速更新的同時(shí)保持在線并處理其他任務(wù)。
      間接路由連接116為計(jì)算機(jī)管理系統(tǒng)100提供在輔助硬件控制器104與服務(wù)處理器106之間的間接連接。在一個(gè)實(shí)施例中,間接路由連接116可以為包含硬件控制接口110、主要硬件控制鏈路112、主要硬件控制器102、和狀態(tài)同步接口108的路徑。在一個(gè)實(shí)施例中,主要硬件控制器102可以經(jīng)由間接路由連接116從服務(wù)處理器106向輔助硬件控制器104路由與閃速更新相關(guān)聯(lián)的閃速命令。在某些實(shí)施例中,計(jì)算機(jī)管理系統(tǒng)100可將間接路由連接116用于輔助硬件控制器104的重新啟動(dòng)(power-cycling)或防護(hù)(fencing)以及除閃速更新以外的其它類似的管理過(guò)程。間接路由連接116允許服務(wù)處理器106并行地與主要硬件控制器102交互并在輔助硬件控制器104上執(zhí)行某些功能,盡管輔助硬件控制器104不擁有硬件控制接口110。
      通過(guò)間接路由連接116在控制器之一上進(jìn)行閃速更新的一個(gè)好處在于可在不改變裝載在服務(wù)處理器106上的當(dāng)前管理軟件的情況下執(zhí)行固件覆蓋過(guò)程。系統(tǒng)管理員可簡(jiǎn)單地需要知道發(fā)送到主要硬件控制器102的固件更新命令由該主要硬件控制器102動(dòng)態(tài)地再次路由到輔助硬件控制器104。因此,系統(tǒng)管理員可在輔助硬件控制器104上進(jìn)行閃速更新,接著切換硬件控制接口110的擁有權(quán),并在主要硬件控制器102—其由于切換已成為輔助硬件控制器104—上執(zhí)行閃速更新。
      與傳統(tǒng)更新路徑相比,間接路由連接116可以為到目標(biāo)硬件控制器的間接的、更長(zhǎng)的路徑。然而,間接路由連接116利用了主要硬件控制器102與輔助硬件控制器104的固有冗余性,從而允許計(jì)算機(jī)管理系統(tǒng)100保持狀態(tài)管理正常運(yùn)行時(shí)間,并釋放主要硬件控制器102以根據(jù)需要執(zhí)行其他任務(wù)。
      圖2示出了基板管理控制器200的一個(gè)實(shí)施例?;骞芾砜刂破?00包含存儲(chǔ)裝置202?;骞芾砜刂破?00可基本類似于圖1中的主要硬件控制器102與輔助硬件控制器104。存儲(chǔ)裝置202擔(dān)當(dāng)任務(wù)緩沖器以提高基板管理控制器200的任務(wù)執(zhí)行能力,并存儲(chǔ)被編程為運(yùn)行基板管理控制器200的微代碼。
      存儲(chǔ)裝置202包含固件204,其可被存儲(chǔ)在非易失性半導(dǎo)體或其它類似的存儲(chǔ)裝置上。存儲(chǔ)裝置202可包括一個(gè)或多個(gè)非易失性半導(dǎo)體裝置,例如閃存、靜態(tài)隨機(jī)讀取存儲(chǔ)器(SRAM)、非易失性隨機(jī)讀取存儲(chǔ)器(NVRAM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、可擦除可編程只讀存儲(chǔ)器(EPROM)、NAND/AND、NOR、分裂位線NOR(DINOR)或任何其他類似的存儲(chǔ)裝置。
      基板管理控制器200的許多操作由固件204的執(zhí)行決定。固件204包含固件映像206、引導(dǎo)塊代碼208、和更新模塊210。通常,更新模塊210可實(shí)現(xiàn)固件覆蓋過(guò)程。參照?qǐng)D3示出并更詳細(xì)介紹更新模塊210的一個(gè)示例。
      固件映像206可以為包含機(jī)器指令和數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),其可被裝載到基板管理控制器200上并被執(zhí)行。在一個(gè)實(shí)施例中,基板管理控制器200的正常操作功能由引導(dǎo)基板管理控制器200上的固件映像206得來(lái)。
      與固件映像206一樣,引導(dǎo)塊代碼208可以為包含機(jī)器指令和數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),其也可被裝載到基板管理控制器200上并被執(zhí)行。然而,固件映像包含用于基板管理控制器200的正常操作功能的機(jī)器指令和數(shù)據(jù),而引導(dǎo)塊代碼208可包含用于響應(yīng)和處理與發(fā)送自服務(wù)處理器106的閃速更新相關(guān)聯(lián)的閃速命令的專用機(jī)器指令和數(shù)據(jù)。
      服務(wù)處理器106可發(fā)送多個(gè)閃速命令。為了啟動(dòng)閃速更新,服務(wù)處理器106可發(fā)送閃速開(kāi)始命令。閃速開(kāi)始命令通知主要硬件控制器102新的固件映像206有待被下載并被閃速存儲(chǔ)到存儲(chǔ)器202上。在某些實(shí)施例中,新的固件映像206可以為當(dāng)前固件映像206的完整替代物,或者可以為當(dāng)前固件映像206的塊的補(bǔ)丁。在一個(gè)實(shí)施例中,服務(wù)處理器106可判定目標(biāo)基板管理控制器是否已裝載了最新的固件映像206。
      為了從管理控制器102向目標(biāo)基板管理控制器傳送數(shù)據(jù)塊,管理控制器102可發(fā)送閃速數(shù)據(jù)命令。數(shù)據(jù)塊是完整的固件映像206的一個(gè)可傳送部分。為了終止閃速更新,服務(wù)處理器106可發(fā)送閃速結(jié)束命令。閃速結(jié)束命令是通知主要硬件控制器102新固件映像206的最后數(shù)據(jù)塊已發(fā)送且固件覆蓋過(guò)程完成的命令。
      在一個(gè)實(shí)施例中,不是當(dāng)接收到來(lái)自服務(wù)處理器106的閃速開(kāi)始命令時(shí)主要硬件控制器102執(zhí)行引導(dǎo)塊代碼208,而是主要硬件控制器102可將來(lái)自服務(wù)處理器106的閃速命令發(fā)送到輔助硬件控制器104。以這種方式,主要硬件控制器102用作服務(wù)處理器106在向輔助硬件控制器104傳送或路由閃速更新時(shí)的代理。當(dāng)經(jīng)由狀態(tài)同步接口108接收到來(lái)自主要硬件控制器102的閃速命令時(shí),輔助硬件控制器104開(kāi)始執(zhí)行引導(dǎo)塊代碼208。
      一旦輔助硬件控制器104經(jīng)由狀態(tài)同步接口108接收到來(lái)自主要硬件控制器102的閃速結(jié)束命令,固件覆蓋過(guò)程完成,且輔助硬件控制器104確認(rèn)成功的閃速更新。于是,輔助硬件控制器104重新引導(dǎo),并開(kāi)始執(zhí)行新的固件映像206。
      于是,可進(jìn)行主要硬件控制器102與輔助硬件控制器104之間的切換。切換是主要硬件控制器102與輔助硬件控制器104之間在角色上的互換。這樣,硬件控制接口110的控制和利用可從主要硬件控制器102切換到輔助硬件控制器104。
      輔助硬件控制器104接管運(yùn)行以及主要硬件控制器102的其它任務(wù),并被給予對(duì)硬件控制接口110的有效擁有權(quán)。因此,輔助硬件控制器104成為主要硬件控制器102。主要硬件控制器102開(kāi)始經(jīng)由狀態(tài)同步接口108維持和接收冗余狀態(tài)管理,并因此成為輔助硬件控制器104。在一個(gè)實(shí)施例中,在輔助硬件控制器104上固件映像206成功的閃速更新完成之后,系統(tǒng)管理員可切換主要硬件控制器102與輔助硬件控制器104。
      一旦切換完成,新的輔助硬件控制器104可接收來(lái)自新的主要硬件控制器102的閃速開(kāi)始命令,其中,可用新的固件映像206替代新的輔助硬件控制器104中的固件映像206。這樣,完成兩個(gè)硬件控制器的閃速更新,同時(shí),主要硬件控制器102在固件覆蓋過(guò)程的整個(gè)過(guò)程中始終保持有效的狀態(tài)管理并且并行地執(zhí)行其他任務(wù)。一旦新輔助硬件控制器104的固件覆蓋過(guò)程完成,在一個(gè)實(shí)施例中,可再次執(zhí)行主要硬件控制器102與輔助硬件控制器104之間的切換,從而原始主要硬件控制器102于是可以在不中斷工作負(fù)荷或工作流的情況下用更新后的固件映像206運(yùn)行,并重新獲得對(duì)硬件控制接口110的控制。
      圖3示出了更新模塊300的一個(gè)實(shí)施例,其可以與圖2中的更新模塊210基本類似。更新模塊300包含路由模塊302,其在服務(wù)處理器106與輔助硬件控制器104之間路由通信;接收模塊303,其接收閃速更新命令;實(shí)現(xiàn)模塊304,其實(shí)現(xiàn)與輔助硬件控制器104相關(guān)的固件覆蓋過(guò)程;故障模塊306,其可信號(hào)通知與閃速更新命令相關(guān)的故障;以及終止模塊308,其終止固件覆蓋過(guò)程。
      可根據(jù)代理更新協(xié)議激活更新模塊300。代理更新協(xié)議可建立主要硬件控制器102可從服務(wù)處理器106接收和轉(zhuǎn)發(fā)閃速命令的方式、以及輔助硬件控制器104從主要硬件控制器102接收和執(zhí)行閃速命令的方式。
      路由模塊302在服務(wù)處理器106與輔助硬件控制器104之間路由與閃速更新相關(guān)聯(lián)的通信。路由模塊302包括轉(zhuǎn)發(fā)模塊312,其轉(zhuǎn)發(fā)閃速更新命令;以及判定模塊314,其判定是否可開(kāi)始閃速覆蓋處理。路由模塊302可在輔助硬件控制器104和服務(wù)處理器106之間路由與閃速更新相關(guān)的通信。
      接收模塊303經(jīng)由硬件控制接口110從服務(wù)處理器106接收與固件更新覆蓋處理相關(guān)聯(lián)的閃速更新命令。接收模塊303可經(jīng)由硬件控制接口110接收從服務(wù)處理器106發(fā)送到主要硬件控制器102的閃速命令。接收模塊303還可經(jīng)由狀態(tài)同步接口108接收從主要硬件控制器102轉(zhuǎn)發(fā)到輔助硬件控制器104的閃速命令。優(yōu)選地,接收模塊303被配置為監(jiān)聽(tīng)或響應(yīng)經(jīng)由硬件控制接口110或狀態(tài)同步接口108接收的閃速命令或其他類型的控制命令。
      轉(zhuǎn)發(fā)模塊312將來(lái)自服務(wù)處理器106的例如閃速命令的命令轉(zhuǎn)發(fā)給輔助硬件控制器104。當(dāng)接收模塊303經(jīng)由硬件控制接口110接收到來(lái)自服務(wù)處理器106的閃速命令時(shí),接收模塊303信號(hào)通知轉(zhuǎn)發(fā)模塊312,以便經(jīng)由狀態(tài)同步接口108向輔助硬件控制器104轉(zhuǎn)發(fā)閃速命令。輔助硬件控制器104的接收模塊303可通過(guò)狀態(tài)同步接口108識(shí)別和接收閃速命令。這樣,通過(guò)間接路由連接116,主要硬件控制器102將由服務(wù)處理器106發(fā)起的閃速命令接收和轉(zhuǎn)發(fā)到輔助硬件控制器104。
      判定模塊314響應(yīng)于主要硬件控制器102控制硬件控制接口110判定第一硬件控制器為主要硬件控制器102。在另一實(shí)施例中,判定模塊314可響應(yīng)于從服務(wù)處理器106接收到閃速命令判定輔助硬件控制器104是否可運(yùn)行。判定模塊314與轉(zhuǎn)發(fā)模塊312協(xié)作。在一個(gè)實(shí)施例中,如果包含判定模塊314的硬件控制器為主要硬件控制器102且輔助硬件控制器104可運(yùn)行,則判定模塊314信號(hào)通知轉(zhuǎn)發(fā)模塊312,以使例如閃速命令的命令被轉(zhuǎn)發(fā)。在某些實(shí)施例中,判定模塊314可簡(jiǎn)單地預(yù)期輔助硬件控制器104可運(yùn)行。
      實(shí)現(xiàn)模塊304響應(yīng)于經(jīng)由狀態(tài)同步接口108接收到閃速開(kāi)始命令實(shí)現(xiàn)引導(dǎo)塊代碼208。當(dāng)接收模塊303接收到來(lái)自主要硬件控制器102的閃速開(kāi)始命令時(shí),接收模塊303信號(hào)通知實(shí)現(xiàn)模塊304在輔助硬件控制器104上實(shí)現(xiàn)和執(zhí)行引導(dǎo)塊代碼208。實(shí)現(xiàn)模塊304可包含驗(yàn)證模塊316,其驗(yàn)證閃速更新命令;確認(rèn)模塊318,其確認(rèn)閃速更新命令;寫(xiě)入模塊320,其向存儲(chǔ)器寫(xiě)入與閃速更新命令相關(guān)聯(lián)的數(shù)據(jù)塊。
      驗(yàn)證模塊316驗(yàn)證與固件覆蓋過(guò)程相關(guān)聯(lián)的閃速命令。在一個(gè)實(shí)施例中,驗(yàn)證模塊316驗(yàn)證與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。驗(yàn)證模塊316可在閃速命令和/或與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊上執(zhí)行循環(huán)冗余校驗(yàn)或校驗(yàn)和算法、重復(fù)校驗(yàn)法、奇偶校驗(yàn)法或任何其他類似的錯(cuò)誤檢測(cè)方法中的一個(gè)或多個(gè)。
      一旦驗(yàn)證模塊316驗(yàn)證了例如閃速命令的命令或相關(guān)聯(lián)的數(shù)據(jù)塊,確認(rèn)模塊318可向服務(wù)處理器106確認(rèn)接收到已驗(yàn)證的閃速命令。在一個(gè)實(shí)施例中,確認(rèn)模塊318可確認(rèn)與閃速更新相關(guān)聯(lián)的每一閃速命令。在進(jìn)一步的實(shí)施例中,確認(rèn)模塊318可請(qǐng)求服務(wù)處理器106重新發(fā)送被發(fā)現(xiàn)為無(wú)效的閃速命令。
      在一個(gè)實(shí)施例中,寫(xiě)入模塊320寫(xiě)入與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。在一個(gè)實(shí)施例中,寫(xiě)入模塊320向存儲(chǔ)裝置202寫(xiě)入與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。在另一實(shí)施例中,寫(xiě)入模塊320循序地向緩沖器(未示出)寫(xiě)入數(shù)據(jù)塊,在緩沖器中,完整的固件映像206被組裝,并在之后被裝載到固件204中。
      故障模塊306可向服務(wù)處理器106發(fā)送與閃速更新命令相關(guān)的故障消息。當(dāng)判定模塊314判定為輔助硬件控制器104不可運(yùn)行時(shí),故障模塊306通過(guò)向服務(wù)處理器106發(fā)送故障消息來(lái)舍棄該閃速命令。主要硬件控制器102于是可等待輔助硬件控制器104恢復(fù)在線或者可舍棄該固件覆蓋過(guò)程。當(dāng)驗(yàn)證模塊316判定閃速更新命令無(wú)效時(shí),故障模塊306可經(jīng)由狀態(tài)同步接口108向服務(wù)處理器106發(fā)送否定確認(rèn)。服務(wù)處理器106于是可重新發(fā)送被舍棄的閃速更新命令。
      終止模塊308可響應(yīng)于輔助硬件控制器104經(jīng)由狀態(tài)同步接口108接收到閃速結(jié)束命令完成固件覆蓋過(guò)程。在一個(gè)實(shí)施例中,終止模塊308可將硬件控制接口110的控制從主要硬件控制器102切換到輔助硬件控制器104,從而主要硬件控制器102與輔助硬件控制器104切換角色。
      圖4為一原理流程圖,其示出了可由圖3中的更新模塊300實(shí)現(xiàn)的固件路由方法400的一個(gè)實(shí)施例。在這里參照?qǐng)D1中的計(jì)算機(jī)管理系統(tǒng)100介紹固件路由方法400。盡管為清楚起見(jiàn)以某種循序的順序示出固件路由方法400,計(jì)算機(jī)管理系統(tǒng)100可并行地和/或不必以所示出的順序執(zhí)行操作。在一個(gè)實(shí)施例中,與主要硬件控制器102相關(guān)地執(zhí)行固件路由方法400。
      固件路由方法400開(kāi)始,接收模塊303經(jīng)由硬件控制接口110從服務(wù)處理器106接收402閃速開(kāi)始命令。優(yōu)選地,硬件控制接口110是由主要硬件控制器102以及輔助硬件控制器104共用的接口。接著,判定模塊314判定404輔助硬件控制器104是否可運(yùn)行。如果判定模塊314判定404輔助硬件控制器104不可運(yùn)行,故障模塊306進(jìn)行到信號(hào)通知閃速開(kāi)始命令的故障406。
      反之,如果判定模塊314判定404輔助硬件控制器104可運(yùn)行,則轉(zhuǎn)發(fā)模塊312經(jīng)由狀態(tài)同步接口108向輔助硬件控制器104轉(zhuǎn)發(fā)408閃速開(kāi)始命令以及所有相關(guān)的參數(shù)。接著,接收模塊303接收410來(lái)自服務(wù)處理器106的下一閃速命令。
      響應(yīng)于接收模塊303接收到410下一閃速命令,判定模塊314可判定412閃速命令是否包含閃速結(jié)束命令。如果判定模塊314判定412閃速命令不包含閃速結(jié)束命令,轉(zhuǎn)發(fā)模塊312向輔助硬件控制器104轉(zhuǎn)發(fā)414閃速命令。相反,如果判定模塊314判定412閃速命令包含閃速結(jié)束命令,轉(zhuǎn)發(fā)模塊312向輔助硬件控制器104轉(zhuǎn)發(fā)416閃速結(jié)束命令。主要硬件控制器102于是可等待來(lái)自服務(wù)處理器106的另一命令。
      在一個(gè)實(shí)施例中,在輔助硬件控制器104接收到閃速結(jié)束命令之后,可將主要硬件控制器102與輔助硬件控制器104切換。換言之,從主要硬件控制器102取走硬件控制接口110的控制并將之給予輔助硬件控制器104。這樣,可重復(fù)固件覆蓋過(guò)程以更新主要硬件控制器102。
      圖5為一原理流程圖,其示出了可由圖3中的更新模塊300實(shí)現(xiàn)的固件更新方法500的一個(gè)實(shí)施例。這里參照?qǐng)D1中的計(jì)算機(jī)管理系統(tǒng)100介紹固件更新方法500。
      固件更新方法500包含以下操作接收502閃速開(kāi)始命令,實(shí)現(xiàn)504引導(dǎo)塊代碼208,接收506下一個(gè)閃速命令,判定508閃速命令是否有效,信號(hào)通知閃速命令的故障510,發(fā)送512確認(rèn),判定514閃速命令是否包含閃速結(jié)束命令,寫(xiě)入516與固件覆蓋過(guò)程相關(guān)聯(lián)的數(shù)據(jù)塊。
      固件更新方法500啟動(dòng)與輔助硬件控制器104相關(guān)聯(lián)的更新模塊300的固件更新能力。盡管為清楚起見(jiàn)以某種循序的順序示出固件更新方法500,計(jì)算機(jī)管理系統(tǒng)100可并行地和/或不必以所示出的順序執(zhí)行操作。在一個(gè)實(shí)施例中,與輔助硬件控制器104相關(guān)聯(lián)地執(zhí)行固件更新方法500。
      固件更新方法500開(kāi)始,且接收模塊303經(jīng)由狀態(tài)同步接口108接收閃速開(kāi)始命令。接著,實(shí)現(xiàn)模塊304在輔助硬件控制器104上執(zhí)行504引導(dǎo)塊代碼208。在一個(gè)實(shí)施例中,輔助硬件控制器104停止當(dāng)前執(zhí)行的被引導(dǎo)固件映像206,并開(kāi)始執(zhí)行引導(dǎo)塊代碼208。
      在引導(dǎo)塊代碼208的啟動(dòng)之后,接收模塊303經(jīng)由狀態(tài)同步接口108接收506下一個(gè)閃速命令。驗(yàn)證模塊316于是判定508閃速命令是否無(wú)效。如果固件更新方法500判定508閃速命令為無(wú)效,則故障模塊306信號(hào)通知510當(dāng)前閃速命令的故障。在一個(gè)實(shí)施例中,故障模塊306可發(fā)出請(qǐng)求,請(qǐng)求服務(wù)處理器106重新發(fā)送被驗(yàn)證模塊316判定508為無(wú)效的閃速命令。
      相反,如果固件更新方法500判定508閃速命令為有效,則確認(rèn)模塊318可發(fā)送512接收到有效閃速命令的確認(rèn)。
      接著,判定模塊314可判定514閃速命令是否包含閃速結(jié)束命令。如果判定模塊314判定514閃速命令不包含閃速結(jié)束命令,則寫(xiě)入模塊320向存儲(chǔ)裝置202寫(xiě)入516與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。
      相反,如果判定模塊314判定514閃速命令包含閃速結(jié)束命令,則終止模塊308可完成固件覆蓋過(guò)程。如上所述,在某些實(shí)施例中,終止模塊308于是可自動(dòng)將硬件控制接口110的控制從主要硬件控制器102切換到輔助硬件控制器104,以便對(duì)主要硬件控制器102重復(fù)固件覆蓋過(guò)程。
      本發(fā)明公開(kāi)的固件覆蓋過(guò)程可對(duì)總體系統(tǒng)性能具有正面影響。在某些實(shí)施例中,本發(fā)明改善了正常運(yùn)行時(shí)間、應(yīng)用可用性以及實(shí)時(shí)業(yè)務(wù)性能,所有這些引起總體擁有成本的降低。除了在冗余硬件控制器上更新固件映像206以外,本發(fā)明的實(shí)施例使系統(tǒng)管理員能夠更新固件映像206而不中斷主要硬件控制器102的任務(wù)。
      這里包含的原理流程圖通常作為邏輯流程圖給出。因此,所示出的順序和所標(biāo)識(shí)的操作表示本方法的一個(gè)實(shí)施例??梢韵氲皆诠δ堋⑦壿嫽蜃饔蒙吓c所示出的方法的一個(gè)或多個(gè)操作或其部分等同的其他操作和方法。另外,所采用的格式和符號(hào)用于闡釋本方法的邏輯操作,并可被理解為并非對(duì)本方法的范圍進(jìn)行限制。盡管在流程圖中可采用多種箭頭類型和線條類型,它們被理解為并非限制相應(yīng)的方法的范圍。事實(shí)上,某些箭頭或其他連接符可用于僅僅表示方法的邏輯流程。例如,箭頭可表示所述方法的所列操作之間未指定持續(xù)時(shí)間的等待或監(jiān)測(cè)期間。另外,特定方法發(fā)生的順序可嚴(yán)格按照或者不按照所示對(duì)應(yīng)操作的順序。
      貫穿本說(shuō)明書(shū)提及“一個(gè)實(shí)施例”、“一實(shí)施例”或類似的措辭意味著聯(lián)系實(shí)施例介紹的特定特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,貫穿本說(shuō)明書(shū)的短語(yǔ)“在一個(gè)實(shí)施例中”、“在一實(shí)施例中”以及類似的措辭的出現(xiàn)可以但不必全部指同一實(shí)施例。
      所提及的信號(hào)承載介質(zhì)可以采用能夠產(chǎn)生信號(hào)、使信號(hào)被產(chǎn)生或使機(jī)器可讀指令的程序在數(shù)字處理裝置上執(zhí)行的任何形式。信號(hào)承載介質(zhì)可由傳輸線、光盤、數(shù)字視頻盤、磁帶、伯努利驅(qū)動(dòng)器、磁盤、穿孔卡片、閃存、集成電路、或其他數(shù)字處理設(shè)備存儲(chǔ)裝置實(shí)現(xiàn)。
      另外,所介紹的本發(fā)明特征、結(jié)構(gòu)或特性可以用任何合適的方式結(jié)合在一個(gè)或多個(gè)實(shí)施例中。在下面的介紹中,為提供對(duì)本發(fā)明實(shí)施例的充分理解,提供了大量具體細(xì)節(jié),例如編程、軟件模塊、用戶選擇、網(wǎng)絡(luò)事務(wù)、數(shù)據(jù)庫(kù)查詢、數(shù)據(jù)庫(kù)結(jié)構(gòu)、硬件模塊、硬件電路、硬件芯片等等的示例。然而,相關(guān)領(lǐng)域技術(shù)人員將明了,可實(shí)踐本發(fā)明而沒(méi)有一個(gè)或多個(gè)具體細(xì)節(jié),或具有其他方法、部件、材料等等。在其他的情況中,為了避免遮掩本發(fā)明的方面,沒(méi)有示出或介紹公知的結(jié)構(gòu)、材料或操作。
      本發(fā)明還可用其他特定形式實(shí)現(xiàn),而不脫離本發(fā)明的精神或?qū)嵸|(zhì)特性。所介紹的實(shí)施例將在任何方面應(yīng)被看作說(shuō)明性而不是限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求而不是前面的說(shuō)明書(shū)表示。屬于權(quán)利要求的等同物的含義以及范圍的所有改變應(yīng)被看作屬于權(quán)利要求的范圍。
      權(quán)利要求
      1.一種用于不間斷更新冗余硬件控制器上的固件的裝置,該裝置包含路由模塊,其被配置為從服務(wù)處理器向冗余硬件控制器路由通信;接收模塊,其被連接到所述路由模塊,所述接收模塊被配置為經(jīng)由共用的串行連接接收來(lái)自所述服務(wù)處理器的命令;以及轉(zhuǎn)發(fā)模塊,其被連接到所述接收模塊,所述轉(zhuǎn)發(fā)模塊被配置為經(jīng)由專用點(diǎn)到點(diǎn)連接向所述冗余硬件控制器轉(zhuǎn)發(fā)所述命令,所述冗余硬件控制器被配置為通過(guò)所述點(diǎn)到點(diǎn)連接接收所述命令。
      2.根據(jù)權(quán)利要求1的裝置,其中,所述命令和通信與閃速更新相關(guān),該裝置還包含判定模塊,所述判定模塊被配置為響應(yīng)于主要硬件控制器控制所述共用串行連接判定第一硬件控制器為所述主要硬件控制器,并響應(yīng)于從所述服務(wù)處理器接收到所述閃速命令判定輔助硬件控制器是否可運(yùn)行。
      3.根據(jù)權(quán)利要求2的裝置,還包含實(shí)現(xiàn)模塊,所述實(shí)現(xiàn)模塊被配置為響應(yīng)于經(jīng)由所述專用點(diǎn)到點(diǎn)連接接收到包含閃速開(kāi)始命令的所述閃速命令執(zhí)行引導(dǎo)塊代碼。
      4.根據(jù)權(quán)利要求3的裝置,還包含連接到所述實(shí)現(xiàn)模塊的驗(yàn)證模塊,所述驗(yàn)證模塊被配置為驗(yàn)證所述閃速命令。
      5.根據(jù)權(quán)利要求4的裝置,還包含連接到所述驗(yàn)證模塊的寫(xiě)入模塊,所述寫(xiě)入模塊被配置為寫(xiě)入與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。
      6.根據(jù)權(quán)利要求5的裝置,還包含連接到所述寫(xiě)入模塊的確認(rèn)模塊,所述確認(rèn)模塊被配置為確認(rèn)接收到所述閃速命令。
      7.根據(jù)權(quán)利要求1的裝置,還包含故障模塊,所述故障模塊被配置為響應(yīng)于判定所述輔助硬件控制器不可運(yùn)行向所述服務(wù)處理器發(fā)送故障消息,以及響應(yīng)于判定所述命令無(wú)效向所述服務(wù)處理器發(fā)送否定確認(rèn)。
      8.根據(jù)權(quán)利要求2的裝置,還包含終止模塊,所述終止模塊被配置為響應(yīng)于接收到包含閃速結(jié)束命令的所述閃速命令完成固件覆蓋過(guò)程。
      9.一種用于不間斷更新冗余硬件控制器上的固件的系統(tǒng),該系統(tǒng)包含管理模塊,所述管理模塊被配置為執(zhí)行固件覆蓋過(guò)程;連接到所述管理模塊的主要基板管理控制器,該主要基板管理控制器被配置為響應(yīng)于所述管理模塊執(zhí)行所述固件覆蓋過(guò)程路由閃速更新,以及向冗余硬件控制器轉(zhuǎn)發(fā)所述閃速更新;連接到所述主要基板管理控制器的輔助基板管理控制器,所述輔助基板管理控制器被配置為通過(guò)點(diǎn)到點(diǎn)連接接收來(lái)自所述主要基板管理控制器的所述閃速更新;以及與所述主要基板管理控制器以及所述輔助基板管理控制器通信的更新模塊,所述更新模塊被配置為用所述閃速更新不間斷地替換存儲(chǔ)在所述輔助基板管理控制器上的當(dāng)前固件映像。
      10.根據(jù)權(quán)利要求9的系統(tǒng),其中,所述主要基板管理控制器和所述輔助基板管理控制器包含存儲(chǔ)裝置,所述存儲(chǔ)裝置被配置為存儲(chǔ)與閃速數(shù)據(jù)命令相關(guān)聯(lián)的數(shù)據(jù)塊。
      11.根據(jù)權(quán)利要求9的系統(tǒng),其中,所述更新模塊包含連接所述管理模塊、所述主要基板管理控制器以及所述輔助基板管理控制器的間接路由連接,所述間接路由連接被配置為在所述管理模塊與所述輔助基板管理控制器之間通過(guò)所述主要基板管理控制器發(fā)送和接收閃速命令。
      12.一種用于不間斷更新冗余硬件控制器上的固件的方法,包括經(jīng)由間接路由連接接收來(lái)自服務(wù)處理器的閃速命令;響應(yīng)于接收到所述閃速命令判定輔助硬件控制器是否可運(yùn)行;經(jīng)由所述間接路由連接向所述輔助硬件控制器轉(zhuǎn)發(fā)來(lái)自所述服務(wù)處理器的所述閃速命令;響應(yīng)于經(jīng)由所述間接路由連接接收到包含閃速開(kāi)始命令的所述閃速命令執(zhí)行引導(dǎo)塊代碼;響應(yīng)于接收到所述閃速命令從所述輔助硬件控制器向所述服務(wù)處理器轉(zhuǎn)發(fā)確認(rèn);以及響應(yīng)于接收到包含閃速結(jié)束命令的閃速命令完成所述輔助硬件控制器的固件覆蓋過(guò)程。
      13.根據(jù)權(quán)利要求12的方法,還包括響應(yīng)于主要硬件控制器控制到所述服務(wù)處理器的共用串行連接判定第一硬件控制器為所述主要硬件控制器。
      14.根據(jù)權(quán)利要求12的方法,還包括驗(yàn)證所述閃速命令。
      15.根據(jù)權(quán)利要求14的方法,還包括向所述輔助硬件控制器上的固件存儲(chǔ)位置寫(xiě)入與所述閃速命令相關(guān)聯(lián)的、驗(yàn)證后的數(shù)據(jù)塊。
      16.根據(jù)權(quán)利要求12的方法,還包括確認(rèn)接收到所述閃速命令。
      17.根據(jù)權(quán)利要求12的方法,還包括響應(yīng)于判定所述輔助硬件控制器不可運(yùn)行向所述服務(wù)處理器發(fā)送故障消息,以及響應(yīng)于判定所述閃速命令無(wú)效向所述服務(wù)處理器發(fā)送否定確認(rèn)。
      18.根據(jù)權(quán)利要求12的方法,其中,所述間接路由連接包含狀態(tài)同步接口,其經(jīng)由專用點(diǎn)到點(diǎn)連接將所述主要硬件控制器互連到所述輔助硬件控制器,并被配置為在所述主要硬件控制器與所述輔助硬件控制器之間傳送狀態(tài)信息;以及硬件控制接口,其經(jīng)由共用串行連接將所述主要硬件控制器以及所述輔助硬件控制器互連到所述服務(wù)處理器。
      19.根據(jù)權(quán)利要求12的方法,其中,所述固件覆蓋過(guò)程包括經(jīng)由所述主要硬件控制器與所述輔助硬件控制器之間的專用點(diǎn)到點(diǎn)連接,更新存儲(chǔ)在所述輔助硬件控制器上的固件映像;將共用串行連接的控制從所述主要硬件控制器切換到所述輔助硬件控制器;以及經(jīng)由所述主要硬件控制器與所述輔助硬件控制器之間的專用點(diǎn)到點(diǎn)連接,更新存儲(chǔ)在所述主要硬件控制器上的固件映像。
      20.一種用于部署計(jì)算基礎(chǔ)設(shè)施的方法,其包括將計(jì)算機(jī)可讀代碼集成在計(jì)算系統(tǒng)中,其中,結(jié)合所述計(jì)算系統(tǒng)的所述代碼能夠執(zhí)行以下操作確定包含以下各項(xiàng)的客戶端硬件配置;被配置為轉(zhuǎn)發(fā)閃速命令的主要硬件控制器;被配置為經(jīng)由到所述主要硬件控制器的專用點(diǎn)到點(diǎn)連接接收所述閃速命令的輔助硬件控制器;間接路由連接,其包含將所述主要硬件控制器以及所述輔助硬件控制器互連到服務(wù)處理器的共用串行連接以及將所述主要硬件控制器互連到所述輔助硬件控制器的專用點(diǎn)到點(diǎn)通信;以及對(duì)所述硬件配置執(zhí)行固件覆蓋過(guò)程,所述固件覆蓋過(guò)程被配置為執(zhí)行以下操作接收來(lái)自所述服務(wù)處理器的所述閃速命令;經(jīng)由所述間接路由連接向所述輔助硬件控制器轉(zhuǎn)發(fā)所述閃速命令;以及響應(yīng)于接收到所述閃速命令向所述服務(wù)處理器轉(zhuǎn)發(fā)確認(rèn)。
      全文摘要
      公開(kāi)了一種用于不間斷更新冗余硬件控制器上的固件的裝置、系統(tǒng)和方法。該裝置包含路由模塊、接收模塊和轉(zhuǎn)發(fā)模塊。路由模塊在與閃速更新相關(guān)聯(lián)的服務(wù)處理器與冗余硬件控制器之間路由通信。接收模塊經(jīng)由共用串行連接接收來(lái)自服務(wù)處理器的、用于閃速更新的閃速命令。轉(zhuǎn)發(fā)模塊經(jīng)由專用點(diǎn)到點(diǎn)連接向被配置為通過(guò)所述點(diǎn)到點(diǎn)連接接收閃速命令的冗余硬件控制器轉(zhuǎn)發(fā)閃速命令。這種裝置、系統(tǒng)和方法提供了對(duì)冗余硬件控制器上的固件映像的不間斷覆蓋,從而使系統(tǒng)停機(jī)時(shí)間和用戶干預(yù)減到最少。
      文檔編號(hào)H04L29/08GK1996253SQ200710001509
      公開(kāi)日2007年7月11日 申請(qǐng)日期2007年1月4日 優(yōu)先權(quán)日2006年1月3日
      發(fā)明者D·C·道格拉斯, 劉磊, D·M·莫頓, J·J·格拉維斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1