專利名稱:用于冗余控制器固件更新的裝置、系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式處理系統(tǒng),特別涉及用于更新冗余嵌入式控制器中的固件的系統(tǒng)和方法。
背景技術(shù):
數(shù)據(jù)處理系統(tǒng)常常利用分布式處理器來執(zhí)行多種操作、管理和控制功能。例如,服務(wù)器類數(shù)據(jù)處理系統(tǒng)可包含主服務(wù)器處理器和一個(gè)或多個(gè)嵌入式控制器。主服務(wù)器處理器與嵌入式控制器通信并指導(dǎo)嵌入式控制器的活動(dòng),而嵌入式控制器又與其它附屬裝置例如存儲(chǔ)裝置等等通信并指導(dǎo)其操作。
在如圖1的框圖所示的一個(gè)這樣的數(shù)據(jù)處理系統(tǒng)10中,經(jīng)由共享通信路徑16,主服務(wù)處理器12通過主要嵌入式控制器的輸入/輸出接口15a與主要嵌入式控制器14通信。在本示例中,共享的通信路徑16為常規(guī)的RS485總線,但可包括現(xiàn)有技術(shù)中已知的任何數(shù)據(jù)通信通道。主服務(wù)處理器12管理主要嵌入式控制器14,包括配置主要嵌入式控制器14、監(jiān)視主要嵌入式控制器14的狀態(tài)、按照需要更新位于存儲(chǔ)裝置20a中的、主要嵌入式控制器的固件18a。存儲(chǔ)裝置20a可包括靜態(tài)隨機(jī)存取存儲(chǔ)裝置、閃存裝置、動(dòng)態(tài)存儲(chǔ)裝置或其它類似的數(shù)據(jù)存儲(chǔ)裝置。固件18a可包括操作系統(tǒng)22a,該操作系統(tǒng)包括由處理器24a執(zhí)行以管理例如數(shù)據(jù)存儲(chǔ)裝置等附屬裝置26的指令代碼。
為了提供冗余,通過共享通信路徑16,輔助嵌入式控制器28通過輔助嵌入式控制器的輸入/輸出接口15b與主服務(wù)處理器12通信。輔助嵌入式控制器28與主服務(wù)處理器12通信并在主要嵌入式控制器14發(fā)生故障或變得不可用的情況下管理附屬裝置26。在這種示例性數(shù)據(jù)處理系統(tǒng)10中,在任何給定時(shí)刻,主要嵌入式控制器14或者輔助嵌入式控制器28是有效的(“有效的嵌入式控制器”),但不是二者都有效。無論哪個(gè)嵌入式控制器當(dāng)前不是有效的,則采取備用狀態(tài)(“備用控制器”)。
主要嵌入式控制器14與輔助嵌入式控制器28可通過控制器間的通信路徑30相互通信。這種通信可包括交換數(shù)據(jù)和其它信息。另外,每一嵌入式控制器可利用控制器間的通信路徑30查詢另一嵌入式控制器的有效/備用狀態(tài)。盡管本示例示出了主要嵌入式控制器14和輔助嵌入式控制器28,任何數(shù)量的嵌入式控制器可附加于同一個(gè)控制器間通信路徑30。
在這一示例性系統(tǒng)中,主要嵌入式控制器14采取默認(rèn)的有效狀態(tài),而輔助嵌入式控制器28采取默認(rèn)的備用狀態(tài)。如果主要嵌入式控制器14發(fā)生故障或變?yōu)闊o效,則輔助嵌入式控制器28通過控制器間的通信路徑30檢測到這種狀態(tài)變化,并在附屬裝置26的管理以及與主服務(wù)處理器的通信中承擔(dān)有效角色。當(dāng)主要嵌入式控制器14重新變?yōu)榭捎脮r(shí),主要嵌入式控制器14經(jīng)由控制器間通信路徑30通知輔助嵌入式控制器28,并重新確立對(duì)附屬裝置以及與主服務(wù)處理器12的通信的控制。
主服務(wù)處理器12通過傳送包括主要嵌入式控制器的地址的消息與主要嵌入式控制器14通信。為了提供真正的冗余,輔助嵌入式控制器28包括與主要嵌入式控制器14的地址相同的地址。使備用嵌入式控制器的輸入/輸出接口無效以防止與主服務(wù)護(hù)理器12的通信。通過這種方法,無論哪一嵌入式控制器當(dāng)前處于備用模式對(duì)于主服務(wù)處理器12來說是透明的。
如上所述,主服務(wù)處理器12負(fù)責(zé)更新有效的嵌入式控制器的固件。某些嵌入式控制器利用第三存儲(chǔ)裝置32,例如電可擦除可編程只讀存儲(chǔ)器(“EEPROM”)來保持固件更新的映像34。在缺少這樣的第三存儲(chǔ)裝置32的情況下,更新有效的嵌入式控制器變得成問題。因?yàn)椴僮飨到y(tǒng)22a、22b是固件18a、18b的組成部分并包括由處理器24a、24b執(zhí)行的指令,嵌入式控制器的運(yùn)行在其固件被更新時(shí)必須被掛起(suspend)。因此,正在經(jīng)歷固件更新的嵌入式控制器可進(jìn)入備用模式,而允許其冗余嵌入式控制器承擔(dān)附屬裝置26的管理。然而,由于主服務(wù)處理器發(fā)起固件更新,冗余嵌入式控制器在此過程中不能與主服務(wù)處理器12通信。
為了使備用嵌入式控制器與有效嵌入式控制器一樣地發(fā)揮功能,備用嵌入式控制器的固件也必須更新。然而,由于備用嵌入式控制器對(duì)于主服務(wù)處理器12來說是透明的,存在著透明地向兩個(gè)嵌入式控制器14、28下載固件的需要。
更新多個(gè)嵌入式控制器上的固件的傳統(tǒng)方法對(duì)主服務(wù)處理器通常不是透明的。例如,美國專利6,247,168介紹了一種用于對(duì)多個(gè)計(jì)算裝置編程的可編程工具。然而,該可編程工具知道有待編程的各個(gè)計(jì)算裝置,因此冗余裝置的編程對(duì)該編程工具來說不是透明的。
當(dāng)前的數(shù)據(jù)處理系統(tǒng)的另一種設(shè)計(jì)考慮是對(duì)嵌入式控制器固件進(jìn)行更新所需要的存儲(chǔ)裝置個(gè)數(shù)。例如,美國公開2004/0030877介紹了將操作系統(tǒng)復(fù)制到計(jì)算裝置的BIOS中。接著,操作系統(tǒng)從BIOS被復(fù)制到計(jì)算裝置的固件中。然而,這種方法需要額外的存儲(chǔ)裝置-計(jì)算裝置的BIOS-來幫助更新計(jì)算裝置的固件。
從上面的討論應(yīng)當(dāng)清楚地看到,需要一種用于更新嵌入式控制器和冗余嵌入式控制器上的固件的裝置、系統(tǒng)和方法,其中,冗余嵌入式控制器的固件的更新對(duì)主服務(wù)處理器來說是透明的。這樣的裝置、系統(tǒng)和方法可有利地完成這一任務(wù)而不需要單獨(dú)的存儲(chǔ)裝置來在更新被裝載到嵌入式控制器的固件時(shí)保持它。
發(fā)明內(nèi)容
針對(duì)本技術(shù)領(lǐng)域的當(dāng)前狀態(tài),特別是針對(duì)本技術(shù)領(lǐng)域中通過當(dāng)前可用的數(shù)據(jù)處理系統(tǒng)未能完全解決的問題和需要開發(fā)出本發(fā)明。因此,開發(fā)本發(fā)明以提供一種用于更新冗余嵌入式控制器上的固件的裝置、系統(tǒng)和方法,其克服了本技術(shù)領(lǐng)域中的上述許多或所有缺點(diǎn)。
更新冗余控制器上的固件的裝置具有多個(gè)模塊,這些模塊被配置為功能性地執(zhí)行以下必要步驟將固件更新寫到位于主要控制器上的存儲(chǔ)裝置并將固件更新復(fù)制到位于輔助控制器上的另一存儲(chǔ)裝置,其中,主要控制器與輔助控制器互為冗余。所介紹的實(shí)施例中的這些模塊包括管理模塊和更新模塊。
在一個(gè)實(shí)施例中,該裝置被配置為檢測由管理模塊寫到主要控制器的第一存儲(chǔ)裝置的固件映像,并以對(duì)管理模塊透明的方式將固件映像的副本寫到輔助控制器中的第二存儲(chǔ)裝置。
在一個(gè)實(shí)施例中,該裝置進(jìn)一步被配置為從主要控制器到輔助控制器復(fù)制固件而不利用用于在將固件映像副本寫到輔助控制器的第二存儲(chǔ)裝置之前存儲(chǔ)固件映像副本的第三存儲(chǔ)裝置。
還提出了本發(fā)明的系統(tǒng)以便更新多個(gè)冗余控制器上的固件。該系統(tǒng)可體現(xiàn)為數(shù)據(jù)處理系統(tǒng)。特別地,在一個(gè)實(shí)施例中,該系統(tǒng)包括包含服務(wù)處理器的管理模塊、包含第一存儲(chǔ)裝置并具有第一通信路徑地址的主要控制器、包含第二存儲(chǔ)裝置并具有與第一通信路徑地址相同的第二存儲(chǔ)路徑地址的輔助控制器、用于將管理模塊連接到主要控制器以及輔助控制器的共用通信路徑,其中,管理模塊適用于將固件映像寫到第一存儲(chǔ)裝置,主要控制器適用于以對(duì)管理模塊透明的方式將固件映像的副本寫到第二存儲(chǔ)裝置。
該系統(tǒng)可還包含主要控制器,該主要控制器進(jìn)一步適用于將固件映像的副本寫到第二存儲(chǔ)裝置而不需要利用存儲(chǔ)固件映像的第三存儲(chǔ)裝置。
還提出了本發(fā)明的方法,以便更新多個(gè)冗余控制器上的固件。所公開實(shí)施例中的方法基本包括執(zhí)行上面關(guān)于所述裝置和系統(tǒng)的操作所提出的功能的必要步驟。在一個(gè)實(shí)施例中,該方法包括從管理模塊向主要控制器的第一存儲(chǔ)裝置寫固件映像;以及以對(duì)管理模塊透明的方式將固件映像復(fù)制到輔助控制器的第二存儲(chǔ)裝置。該方法還包括在將固件映像寫到主要控制器的第一存儲(chǔ)裝置之前將主要控制器置于備用模式。
在進(jìn)一步的實(shí)施例中,該方法包括在向輔助控制器的第二存儲(chǔ)裝置復(fù)制固件映像之前將輔助控制器置于掛起模式。
貫穿本說明書全文對(duì)特征、優(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)地介紹的具體特征、優(yōu)點(diǎn)或特性被包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,貫穿本說明書對(duì)特征和優(yōu)點(diǎn)的討論以及類似的措辭可以但不是必須指同一實(shí)施例。
另外,所介紹的本發(fā)明的特征、優(yōu)點(diǎn)和特性可以以任何適當(dāng)?shù)姆绞浇M合在一個(gè)或多個(gè)實(shí)施例中。本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,可以實(shí)踐本發(fā)明而無需特定實(shí)施例的一個(gè)或多個(gè)具體特征或優(yōu)點(diǎn)。在其他的情況中,可以某些實(shí)施例中看到可能不是在本發(fā)明的全部實(shí)施例中存在的額外特征和優(yōu)點(diǎn)。
通過下面的介紹和所附權(quán)利要求可更充分明了本發(fā)明的這些特征和優(yōu)點(diǎn),或者通過下面給出的本發(fā)明的實(shí)踐,可以獲知本發(fā)明的這些特征和優(yōu)點(diǎn)。
為容易理解本發(fā)明的優(yōu)點(diǎn),將參照附圖中示出的具體實(shí)施例給出對(duì)上面簡單介紹的本發(fā)明的詳細(xì)介紹。理解到附圖僅示出了本發(fā)明的典型實(shí)施例,因此不應(yīng)被認(rèn)為是對(duì)其范圍的限制,將使用附圖更加具體詳細(xì)地介紹和闡釋本發(fā)明。在附圖中圖1為示出了根據(jù)現(xiàn)有技術(shù)的數(shù)據(jù)處理系統(tǒng)的原理框圖;圖2為示出了根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的一個(gè)實(shí)施例的原理框圖;圖3為示出了根據(jù)本發(fā)明的控制器的一個(gè)實(shí)施例的原理框圖;以及圖4為示出了根據(jù)本發(fā)明一實(shí)施例用于更新冗余控制器上的固件的過程的框圖。
具體實(shí)施例方式
本說明書中介紹的某些功能單元被標(biāo)識(shí)為模塊,以便更為特別地強(qiáng)調(diào)其實(shí)現(xiàn)獨(dú)立性。例如,模塊可被實(shí)現(xiàn)為硬件電路,包括定制的VLSI電路或門陣列、例如邏輯芯片、晶體管或其他分立部件等成品半導(dǎo)體。模塊還可在可編程硬件裝置例如現(xiàn)場可編程門陣列、可編程陣列邏輯、可編程邏輯裝置等中實(shí)現(xiàn)。
模塊還可在由各種類型的處理器執(zhí)行的軟件中實(shí)現(xiàn)。例如,可執(zhí)行代碼的被識(shí)別模塊可包括計(jì)算機(jī)指令的一個(gè)或多個(gè)物理或邏輯塊,所述指令可被組織為例如對(duì)象、過程或函數(shù)。然而,被識(shí)別模塊的可執(zhí)行代碼不需要物理地位于一起,而是可包含存儲(chǔ)在不同位置上的不同指令,這些指令在被連接在一起時(shí)構(gòu)成該模塊并實(shí)現(xiàn)該模塊的規(guī)定目的。
事實(shí)上,可執(zhí)行代碼的模塊可以是單個(gè)指令或者是許多個(gè)指令,甚至可以分布在幾個(gè)不同的代碼片段上、不同的程序中以及幾個(gè)存儲(chǔ)裝置上。類似地,操作數(shù)據(jù)可在這里被識(shí)別為或示為在模塊中,并可以體現(xiàn)為任何合適的形式以及組織在任何合適類型的數(shù)據(jù)結(jié)構(gòu)中。操作數(shù)據(jù)可被匯集為單個(gè)數(shù)據(jù)集,或可分布在不同的位置上、包括在不同的存儲(chǔ)裝置上,并可以至少部分地僅作為系統(tǒng)或網(wǎng)絡(luò)上的電子信號(hào)存在。
貫穿本說明書談到“一個(gè)實(shí)施例”、“一實(shí)施例”或類似的措辭意味著與實(shí)施例相關(guān)描述的特定特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至少一個(gè)實(shí)施例中。因此,貫穿本說明書,短語“在一個(gè)實(shí)施例中”、“在一實(shí)施例中”以及類似的措辭的出現(xiàn)可能但不必全部指同一實(shí)施例。
通過使用產(chǎn)生軟件、固件、硬件或其任意組合的標(biāo)準(zhǔn)編程或工程技術(shù),可以將這里公開的發(fā)明實(shí)現(xiàn)為方法、裝置或信號(hào)承載介質(zhì)。信號(hào)承載介質(zhì)可以采用任何能夠產(chǎn)生信號(hào)、使信號(hào)被產(chǎn)生或使機(jī)器可讀指令的程序在數(shù)字處理裝置上執(zhí)行的形式。信號(hào)承載介質(zhì)可由傳輸線、光盤、數(shù)字視頻盤、磁帶、伯努利驅(qū)動(dòng)器、磁盤、穿孔卡片、閃存、集成電路、光存儲(chǔ)裝置、軟盤、電可擦除可編程只讀存儲(chǔ)器(“EEPROM”)、易失性存儲(chǔ)裝置、非易失性存儲(chǔ)裝置、現(xiàn)場可編程門陣列(“FPGA”)、專用集成電路(“ASIC”)、復(fù)雜可編程邏輯裝置(“CPLD”)、可編程邏輯陣列(“PLA”)、微處理器(“uP”)、可編程邏輯裝置(“PLD”)或其他數(shù)字處理裝置體現(xiàn)。
另外,所介紹的本發(fā)明特征、結(jié)構(gòu)或特性可以用任何合適的方式組合在一個(gè)或多個(gè)實(shí)施例中。在下面的介紹中,為提供對(duì)本發(fā)明實(shí)施例的充分理解,提供了大量的特定細(xì)節(jié),例如編程、軟件模塊、用戶選擇、網(wǎng)絡(luò)事務(wù)、數(shù)據(jù)庫查詢、數(shù)據(jù)庫結(jié)構(gòu)、硬件模塊、硬件電路、硬件芯片等等的示例。然而,相關(guān)領(lǐng)域的技術(shù)人員將明了,可實(shí)踐本發(fā)明而不采用一個(gè)或多個(gè)所述特定細(xì)節(jié),或采用其他方法、部件、材料等等。在其他的情況中,為了避免混淆本發(fā)明的方面,沒有示出或介紹公知的結(jié)構(gòu)、材料或操作。
圖2示出了根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)處理系統(tǒng)100的原理性框圖,該系統(tǒng)包含經(jīng)由共享通信路徑108與主要控制器104以及輔助控制器106通信的管理模塊102。在本發(fā)明的這一實(shí)施例中,共享的通信路徑108包括RS 485總線。然而,本發(fā)明不限于使用RS485總線,而是可包括任何通信路徑,包括局域網(wǎng)(“LAN”)、廣域網(wǎng)(“WAN”)、無線網(wǎng)絡(luò)、光纖通道網(wǎng)絡(luò)、交換網(wǎng)絡(luò)、PCI總線等等在內(nèi)。主要控制器104和輔助控制器相互通過控制器間的通信路徑110彼此通信。本發(fā)明的這一示例性實(shí)施例示出主要控制器104負(fù)責(zé)指導(dǎo)包括數(shù)據(jù)存儲(chǔ)裝置116-其可包括硬盤驅(qū)動(dòng)器、磁帶盒等等-在內(nèi)的附屬裝置114的活動(dòng)。如果主要控制器104發(fā)生故障或變?yōu)椴豢捎?,其角色可由輔助控制器106承擔(dān)。
管理模塊102可包括例如服務(wù)處理器等數(shù)字?jǐn)?shù)據(jù)處理裝置,而該數(shù)字?jǐn)?shù)據(jù)處理裝置又可包括現(xiàn)場可編程門陣列(“FPGA”)、專用集成電路(“ASIC”)、復(fù)雜可編程邏輯裝置(“CPLD”)、可編程邏輯陣列(“PLA”)、微處理器(“uP”)、可編程邏輯裝置(“PLD”)或其他類似的數(shù)字處理裝置。管理模塊102負(fù)責(zé)配置主要控制器104、管理主要控制器104并更新主要控制器的操作系統(tǒng)。
主要控制器104和輔助控制器106可包括數(shù)字?jǐn)?shù)據(jù)處理裝置,例如現(xiàn)場可編程門陣列(“FPGA”)、專用集成電路(“ASIC”)、復(fù)雜可編程邏輯裝置(“CPLD”)、可編程邏輯陣列(“PLA”)、微處理器(“uP”)、可編程邏輯裝置(“PLD”)、嵌入式控制器或其他類似的數(shù)字處理裝置。
圖3示出了主要控制器104的原理性框圖,該主要控制器包含用于將主要控制器104接口到共享通信路徑108的輸入/輸出接口112。輸入/輸出接口112包括通信路徑地址113。該地址為主要控制器104利用,以識(shí)別從管理模塊102到來的消息。在本發(fā)明的這一示例性實(shí)施例中,主要控制器104被配置為負(fù)責(zé)與管理模塊102通信并管理包括數(shù)據(jù)存儲(chǔ)裝置116在內(nèi)的附屬裝置114的主要裝置。在執(zhí)行這些功能時(shí),主要控制器104在有效模式中運(yùn)行。
圖3的原理性框圖還示出了輔助控制器106的元件,主要控制器104與輔助控制器106之間的主要不同在于主要控制器被配置為默認(rèn)為有效狀態(tài)而輔助控制器被配置為默認(rèn)為備用狀態(tài)。這里,輔助控制器106被配置為主要控制器104的冗余裝置。輔助控制器106的輸入/輸出接口的通信路徑地址113與主要控制器104的相同。因此,主要控制器104與輔助控制器的通信路徑地址113可被視為共有的通信路徑地址。
輔助控制器106在大多數(shù)情況下運(yùn)行在備用模式,表示其當(dāng)前在與管理模塊102的通信中不是有效的且其當(dāng)前不管理附屬裝置114。盡管本發(fā)明的該實(shí)施例被示為具有僅僅兩個(gè)控制器104、106,任何數(shù)量的控制器可以與管理模塊通信以及相互通信以便提供附屬裝置114的冗余控制。
輔助控制器106包括共享通信路徑108上的地址,該地址與主要控制器104的相同。這樣,如果主要控制器104發(fā)生故障或變?yōu)椴豢捎?,輔助控制器106可變?yōu)橛行?,與管理模塊102通信以及管理附屬裝置114。
由于主要控制器104與輔助控制器106共用同一地址,冗余控制器的存在對(duì)于管理模塊102來說是透明的。為了防止管理模塊同時(shí)與主要控制器104以及輔助控制器106通信,暫時(shí)使當(dāng)前處于備用模式的無論哪一控制器的輸入/輸出接口無效。如果一控制器將其狀態(tài)從備用模式改變?yōu)橛行J剑瑒t其輸入/輸出接口開啟,從而允許其與管理模塊102通信。
每個(gè)控制器104、106包括包含固件120的存儲(chǔ)裝置118,例如閃存裝置、靜態(tài)隨機(jī)存取存儲(chǔ)(“SRAM”)裝置、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)(“DRAM”)裝置或類似物。固件120、120包含用于其對(duì)應(yīng)的控制器104、106的操作系統(tǒng)122,該操作系統(tǒng)包括被裝載到控制器處理器124并由控制器處理器124執(zhí)行的操作指令。
在本發(fā)明的這一實(shí)施例中,各個(gè)控制器104、106在其被加電或復(fù)位時(shí)利用引導(dǎo)過程。在這種引導(dǎo)過程期間,各控制器104、106查詢連接到控制器間通信路徑的其他控制器。如果主要控制器104檢測到其他有效的控制器,它通知該有效的控制器主控制器104將變?yōu)橛行Р⑶以撈渌行У目刂破鲬?yīng)當(dāng)進(jìn)入備用模式?;蛘撸谝龑?dǎo)時(shí),主要控制器104可變?yōu)橛行?,而任何其他有效的控制器必須檢測主要控制器當(dāng)前是有效的。如果輔助控制器106在其引導(dǎo)過程中檢測到其他有效控制器,它進(jìn)入備用模式?;蛘?,如果沒有檢測到其他的有效控制器,輔助控制器106進(jìn)入有效模式,與主模塊102通信,并管理附屬裝置114。
數(shù)據(jù)處理系統(tǒng)100包含負(fù)責(zé)管理輔助控制器106的固件更新的更新模塊126(圖2)。管理模塊102負(fù)責(zé)更新主要控制器104的固件,而更新模塊126負(fù)責(zé)更新輔助控制器106的固件。這一點(diǎn)是必要的,因?yàn)楫?dāng)主要控制器104有效時(shí)輔助控制器106對(duì)于管理模塊102來說是透明的。盡管更新模塊126在本發(fā)明的這一實(shí)施例中被示為位于主要控制器104之中,更新模塊的功能可分布在主要控制器104和輔助控制器106兩者上。另外,更新模塊126可作為算法存在于信號(hào)承載介質(zhì)128上,如上面提到的那樣。
圖4中的框圖示出了固件更新算法200。所示出的順序和所標(biāo)示的步驟表示本方法的一個(gè)實(shí)施例??梢韵氲皆诠δ堋⑦壿嫽蜃饔蒙吓c所示出的方法的一個(gè)或多個(gè)步驟或其部分等同的其他步驟和方法。另外,所采用的形式和符號(hào)用于闡釋本方法的邏輯步驟,并可被理解為并非對(duì)本方法的范圍進(jìn)行限制。盡管在流程圖中可能采用多種箭頭類型和線條類型,可理解它們并非限制相應(yīng)的方法的范圍。事實(shí)上,某些箭頭或其他連接物可用于僅僅表示方法的邏輯流程。例如,箭頭可表示所示方法的所列步驟之間未指定持續(xù)時(shí)間的等待或監(jiān)視階段。另外,特定方法發(fā)生的順序可嚴(yán)格按照或者不嚴(yán)格按照所示對(duì)應(yīng)步驟的順序。
當(dāng)管理模塊102通過將主要控制器104置于202備用模式而發(fā)起固件更新時(shí),固件更新算法200開始。為了防止主要控制器104在固件120被更新的同時(shí)管理附屬裝置114,這一點(diǎn)是有必要的。在主要控制器104處于備用模式的同時(shí),輔助控制器106暫時(shí)變?yōu)橛行В瑥亩晒芾砀綄傺b置114。然而,輔助控制器106的輸入/輸出接口112保持無效,以便防止輔助控制器與管理模塊102通信。
接著,管理模塊102用新的固件映像改寫204主要控制器104的存儲(chǔ)裝置118中已有的固件120。由于主要控制器不包括用于在將固件映像復(fù)制到主要控制器的存儲(chǔ)裝置118之前存儲(chǔ)固件映像的第三存儲(chǔ)裝置,新的固件映像被直接寫到存儲(chǔ)裝置118中。
一旦更新后的固件映像被寫到主要控制器中,主要控制器將輔助控制器置于206掛起模式。這防止輔助控制器在其固件被更新的同時(shí)管理附屬裝置。于是,主要控制器104將固件映像從主要控制器的存儲(chǔ)裝置復(fù)制208到輔助控制器106。由于主要控制器也不包括用于存儲(chǔ)固件映像的第三存儲(chǔ)裝置,固件映像的副本被直接寫到輔助控制器的存儲(chǔ)裝置118中。應(yīng)當(dāng)注意的是,主要控制器從主要控制器的存儲(chǔ)裝置118中讀取用于在主要控制器的控制器處理器124上執(zhí)行的操作指令,同時(shí)從同一存儲(chǔ)裝置118讀取用于傳送到輔助控制器106的固件映像120。
一旦固件映像已經(jīng)被復(fù)制到輔助控制器的存儲(chǔ)裝置118中,輔助控制器106的控制器處理器124被重新引導(dǎo)。在該重新引導(dǎo)過程中,輔助控制器106查詢主要控制器104。該查詢通知212主要控制器104輔助控制器106的固件更新已經(jīng)成功。主要控制器104返回214有效模式,并通知216管理模塊102由管理模塊102發(fā)起的固件更新已經(jīng)成功。
本發(fā)明還可體現(xiàn)在其他具體的形式中,而不脫離本發(fā)明的精神或?qū)嵸|(zhì)特性。所介紹的實(shí)施例在所有方面都應(yīng)被看作說明性而不是限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求而不是前面的說明書表示。屬于權(quán)利要求的等同物的含義以及范圍的所有改變將屬于權(quán)利要求的范圍。
權(quán)利要求
1.一種復(fù)制固件的裝置,該裝置包含主要控制器,其具有第一存儲(chǔ)裝置和第一通信地址;輔助控制器,其具有第二存儲(chǔ)裝置和第二通信地址,所述第二通信地址與所述第一通信地址相同;以及與所述主要控制器以及輔助控制器通信的更新模塊,其中,所述更新模塊被配置為檢測由管理模塊寫到所述第一存儲(chǔ)裝置的固件映像并以對(duì)所述管理模塊透明的方式將所述固件映像的副本寫到所述第二存儲(chǔ)裝置。
2.根據(jù)權(quán)利要求1的裝置,進(jìn)一步包含用于將所述主要控制器和所述輔助控制器連接到所述管理模塊的共享通信路徑。
3.根據(jù)權(quán)利要求1的裝置,其中,所述更新模塊進(jìn)一步被配置為從所述主要控制器向所述輔助控制器復(fù)制固件而不利用用于在將所述固件映像副本寫到所述輔助控制器的所述第二存儲(chǔ)裝置之前存儲(chǔ)所述固件映像副本的第三存儲(chǔ)裝置。
4.根據(jù)權(quán)利要求1的裝置,其中,所述輔助控制器對(duì)所述主要控制器是冗余的。
5.一種更新多個(gè)控制器上的固件的系統(tǒng),該系統(tǒng)包含管理模塊,其包含服務(wù)處理器;主要控制器,其包含第一存儲(chǔ)裝置并具有第一通信地址;輔助控制器,其包含第二存儲(chǔ)裝置并具有第二通信地址,所述第二通信地址與所述第一通信地址相同;以及共享通信路徑,其用于將所述管理模塊連接到所述主要控制器和所述輔助控制器;其中,所述管理模塊適用于將固件映像寫到所述第一存儲(chǔ)裝置,并且所述主要控制器適用于以對(duì)所述管理模塊透明的方式將所述固件映像的副本寫到所述第二存儲(chǔ)裝置。
6.根據(jù)權(quán)利要求5的系統(tǒng),其中,所述主要控制器進(jìn)一步適用于將所述固件映像的副本寫到所述第二存儲(chǔ)裝置而不利用第三存儲(chǔ)裝置存儲(chǔ)所述固件映像。
7.根據(jù)權(quán)利要求5的系統(tǒng),還包含控制器間的通信路徑,所述通信路徑適用于幫助所述主要控制器向所述第二存儲(chǔ)裝置寫入所述固件映像。
8.一種用于從主要控制器向輔助控制器復(fù)制固件的方法,其中,所述主要控制器具有第一通信地址,所述輔助控制器具有第二通信地址,所述第二通信地址與所述第一通信地址相同,該方法包括從管理模塊向所述主要控制器的第一存儲(chǔ)裝置寫固件映像;以及以對(duì)所述管理模塊透明的方式向所述輔助控制器的第二存儲(chǔ)裝置復(fù)制所述固件映像。
9.根據(jù)權(quán)利要求8的方法,其中,該方法還包括在向所述主要控制器的所述第一存儲(chǔ)裝置寫所述固件映像之前,將所述主要控制器置于備用模式。
10.根據(jù)權(quán)利要求8的方法,其中,該方法還包括將所述固件映像復(fù)制到所述輔助控制器的所述第二存儲(chǔ)裝置之前,將所述輔助控制器置于掛起模式。
11.根據(jù)權(quán)利要求8的方法,其中,該方法還包括通知所述主要控制器所述固件映像已被成功復(fù)制到所述輔助控制器的所述第二存儲(chǔ)裝置。
12.根據(jù)權(quán)利要求8的方法,其中,該方法還包括通知所述管理模塊所述固件映像已被成功寫入所述主要控制器的所述第一存儲(chǔ)裝置。
13.根據(jù)權(quán)利要求9的方法,其中,該方法還包括將所述主要控制器返回到有效狀態(tài)。
全文摘要
公開了用于向位于不同控制器上的多個(gè)存儲(chǔ)裝置更新固件的裝置、系統(tǒng)和方法,其中,各控制器包括相同的通信路徑地址。管理模塊將固件映像寫到位于主要控制器中的存儲(chǔ)裝置。主要控制器又將固件映像復(fù)制到位于輔助控制器上的另一存儲(chǔ)裝置。通過這種方式,該裝置、系統(tǒng)和方法可更新多個(gè)存儲(chǔ)裝置上的固件。由于主要控制器負(fù)責(zé)更新輔助存儲(chǔ)器,管理模塊僅知道主要控制器的固件已被更新。通過這種方式,在輔助控制器上的固件的更新對(duì)管理模塊來說是透明的。
文檔編號(hào)G06F9/445GK1996254SQ200710001510
公開日2007年7月11日 申請(qǐng)日期2007年1月4日 優(yōu)先權(quán)日2006年1月3日
發(fā)明者D·C·道格拉斯, 劉磊, 寺下善彥, K·D·里奇森, J·J·格拉韋斯 申請(qǐng)人:國際商業(yè)機(jī)器公司