TWI668636B - 伺服器韌體更新方法 - Google Patents
伺服器韌體更新方法 Download PDFInfo
- Publication number
- TWI668636B TWI668636B TW107126741A TW107126741A TWI668636B TW I668636 B TWI668636 B TW I668636B TW 107126741 A TW107126741 A TW 107126741A TW 107126741 A TW107126741 A TW 107126741A TW I668636 B TWI668636 B TW I668636B
- Authority
- TW
- Taiwan
- Prior art keywords
- firmware
- difference
- server
- computing device
- update
- Prior art date
Links
Landscapes
- Stored Programmes (AREA)
Abstract
一種伺服器韌體更新方法,適用於運行第一韌體的伺服器,包括:伺服器的運算裝置接收第二韌體並儲存,運算裝置執行比對程式獲得第一韌體及第二韌體之差異比例值,若差異比例值屬於一局部更新數值區間,運算裝置依據第一韌體及第二韌體之差異產生差異片段,並據以修改第一韌體,否則,運算裝置將第二韌體覆寫第一韌體。
Description
本發明係關於一種韌體更新方法,特別是一種伺服器上的韌體更新方法。
現今伺服器的韌體,大多儲存於電子抹除式可複寫唯讀記憶體(Electrically-Erasable Programmable Read-Only Memory,EEPROM)這類的儲存裝置中。常見的韌體更新方式係先抹除整個儲存裝置的儲存空間,然後將新版韌體寫入到儲存裝置中。
舉例來說:更新一個16MB的EEPROM上儲存的韌體,大約需使用6分鐘的時間;在這段時間內,用戶無法連線到此伺服器操作,造成許多不便。提高到系統層面而言,目前蓬勃發展的資料中心的機房內裝設了數量龐大的伺服器,因此單一伺服器的韌體更新時間提高,將連帶使得整個資料中心中所有伺服器不間斷提供服務的時間下降。更何況新版韌體的檔案大小通常只有可能逐漸遞增,如此將導致更新韌體時所花費的時間同步提高,進一步地影響到伺服器能正常服務運作的時間。同時,新版韌體檔案的大小愈大也代表在寫入新版韌體的過程中,失敗的風險跟著增高。另一方面,為了最佳化地發揮伺服器硬體的效能,客製化韌體更新的速度愈來愈頻繁。從儲存裝置的角度觀之,重複的寫入動作容易造成儲存裝置的毀損,使得韌體讀取失敗,進而導致伺服器無法正常運行。
有鑑於此,本發明提出一種伺服器韌體更新方法,藉此解決上述因為韌體更新頻繁及韌體大小提升所導致的問題。
依據本發明一實施例所敘述的一種伺服器韌體更新方法,適用於具有運算裝置及儲存裝置的伺服器且此伺服器用以運行第一韌體,所述的伺服器韌體更新方 法包括:運算裝置接收第二韌體並儲存第二韌體於儲存裝置;運算裝置執行比對程式,比對程式用以獲得第一韌體及第二韌體之差異比例值;以及運算裝置判斷差異比例值是否屬於一局部更新數值區間並根據判斷結果更新該第一韌體;其中當差異比例值屬於局部更新數值區間,運算裝置依據第一韌體及第二韌體之差異產生一差異片段,且運算裝置根據差異片段修改第一韌體;當差異比例值不屬於局部更新數值區間,運算裝置以第二韌體覆寫第一韌體。
依據本發明一實施例所敘述的一種伺服器韌體更新方法,其中局部更新數值區間係為大於0%且小於75%的數值區間。
依據本發明另一實施例所敘述的一種伺服器韌體更新方法,其中局部更新數值區間係為大於0%且不大於75%的數值區間。
依據本發明一實施例所敘述的一種伺服器韌體更新方法,其中以運算裝置根據差異片段修改第一韌體係包括:運算裝置儲存差異片段及執行碼於另一儲存裝置,並以運算裝置運行執行碼以修改第一韌體。
依據本發明一實施例所敘述的一種伺服器韌體更新方法,其中運算裝置包括中央處理器及基板管理控制器,中央處理器用於接收第二韌體、執行比對程式、判斷差異比例值是否屬於局部更新數值區間以及產生差異片段;且基板管理控制器係用於根據差異片段修改第一韌體以及以第二韌體覆寫第一韌體。
藉由上述架構,本發明所揭露的伺服器韌體更新方法,透過比對原始版本韌體與新版本韌體之間的差異,僅針對新舊版本間的差異部分進行更新。因而可避免對儲存裝置進行不必要的抹除和寫入的動作,同時可加快韌體更新的速度,並提高伺服器的可靠度。
以上之關於本揭露內容之說明及以下之實施方式之說明係用以示範與解釋本發明之精神與原理,並且提供本發明之專利申請範圍更進一步之解釋。
以下在實施方式中詳細敘述本發明之詳細特徵以及優點,其內容足以使任何熟習相關技藝者了解本發明之技術內容並據以實施,且根據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本發明相關之目的及優點。以下之實施例係進一步詳細說明本發明之觀點,但非以任何觀點限制本發明之範疇。
本發明一實施例所述的伺服器韌體更新方法係適用於伺服器,此伺服器具有一運算裝置及一儲存裝置。運算裝置例如係中央處理器(Central Processing Unit,CPU)或基板管理控制器(Baseboard Manageament Controller,BMC),儲存裝置例如係電子抹除式可複寫唯讀記憶體(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、可程式化唯讀記憶體(Programmable read-only Memory,PROM)、快閃記憶體(Flash Memory)等。然而在本發明的各個實施例中,對於伺服器的運算裝置以及儲存裝置的硬體種類並不以上述類型為限。
請參考圖1,其係繪示本發明之一實施例的伺服器韌體更新方法的流程圖。須事先說明的是:在執行本發明之一實施例的伺服器韌體更新方法之前,伺服器原本運行的韌體係第一韌體,所欲更新的韌體係第二韌體。
請繼續參考圖1的步驟S1:接收第二韌體。具體來說,伺服器的運算裝置例如係透過網路下載第二韌體,並將此第二韌體暫存於儲存裝置中。
請繼續參考圖1的步驟S2:執行比對程式。詳言之,運算裝置根據第一韌體及第二韌體兩者的內容執行比對程式,以獲得兩者的一差異比例值。比對方式例如係採用區塊式比對:將兩個韌體的二進位檔案(Binary File)分為若干區塊,並依序比對第一韌體及第二韌體中的每個對應區塊。若區塊內的二進位檔案有至少一個bit的差異,則判定此區塊具有差異。按照如上方式,運算裝置所執行的比對程式將第二韌體的所有區塊與第一韌體的所有區塊逐一判斷,並將具有差異的區塊數除以所有區塊數以獲得差異比例值。值得注意的是:區塊的大小可根據韌體所用的儲存裝置而決定,最小可設定為 1 bit。實務上則可依據儲存裝置的硬體類型決定區塊大小,例如若第一韌體儲存於具有串列周邊界面的快閃記體體(Serial Peripheral Interface Flash Memory,SPI Flash),則區塊大小可設定為4K 位元組(Byte)。
在運算裝置執行完比對程式後,運算裝置判斷第一韌體及第二韌體之間的差異比例值是否屬於一局部更新數值區間,並根據判斷結果更新第一韌體;其中,若差異比例值屬於此局部更新數值區間,則運算裝置依據第一韌體及第二韌體之間的差異產生一差異片段,並根據此差異片段修改第一韌體。若差異比例值不屬於此局部更新數值區間,則運算裝置以第二韌體直接寫入至第一韌體的儲存空間。即運算裝置以更新的第二韌體覆寫原本運行在伺服器的第一韌體。
關於運算裝置判斷第一韌體及第二韌體之間的差異比例值是否屬於一局部更新數值區間的具體實現方式,請繼續參考圖1的步驟S3:差異比例值為0%,代表第二韌體與第一韌體之間並無任何差異,因此無須更新伺服器韌體,結束本發明一實施例所敘述的伺服器韌體更新方法,如步驟S10所示。
承步驟S3,若差異比例值不為0%,則請繼續參考圖1的步驟S4:運算裝置判斷第一韌體及第二韌體的差異比例值是否大於75%。若差異比例值確實大於75%,則運算裝置直接以第二韌體覆寫第一韌體,如步驟S5所示,並且在第二韌體覆寫完成後結束本發明一實施例的伺服器韌體更新方法,如步驟S9所示。
承步驟S4,若差異比例值大於0%但小於或等於75%,則請繼續參考圖1的步驟S6:產生差異片段。當第一韌體及第二韌體之間的差異比例值屬於局部更新數值區間時,代表第二韌體的更新幅度較少,因此僅需針對第二韌體與第一韌體之間的差異處進行微幅更新。實務上,運算裝置依據第一韌體及第二韌體之間的差異產生一差異片段,並且將差異片段及一執行碼儲存於另一儲存裝置,此另一儲存裝置係相對於第一韌體所儲存的儲存裝置,故此另一儲存裝置可以沿用儲存第二韌體的儲存裝置,或是其他可暫存用的儲存裝置,本發明對此不予限制。
請繼續參考圖1的步驟S7:選擇差異片段的一區塊並寫入。實務上,在運算裝置執行比對程式時,除了計算具有差異的區塊的數量,同時亦可記錄第二韌體中的哪些區塊相較於第一韌體的區塊具有差異以及這些差異區塊對應的儲存位址。因此,在步驟S7時,運算裝置從已記錄的多個差異區塊選擇一個區塊開始寫入到儲存第一韌體的儲存裝置中。運算裝置運行執行碼以將差異片段的每個區塊搭配各自的寫入位址逐一寫入第一韌體的儲存位置。
請繼續參考圖1的步驟S8,運算裝置確認當前區塊的寫入操作是否成功。如果成功,則可移至步驟S9;如果當前區塊寫入失敗,則移至步驟S10,結束本發明一實施例所述的伺服器韌體更新方法。
請繼續參考圖1的步驟S9:運算裝置判斷是否尚有第二韌體的區塊尚未寫入到第一韌體的儲存位置。如果有,則回到步驟S7,由根據執行碼運作的運算裝置選擇下一個要被寫入的差異片段的區塊;反過來說,如果差異片段的所有區塊皆已寫入至第一韌體的儲存空間,則代表韌體更新已經完成,因此移至步驟S10,結束本發明一實施例所述的伺服器韌體更新方法。
於此必須特別說明的是:前述的局部更新數值區間例如係大於0%且小於75%的數值區間,或是大於0%且不大於75%的數值區間。實務上,由於運算裝置執行比對程式所需時間大約是以第二韌體覆寫第一韌體所需時間的25%,因此若差異比例值超過75%將會導致「執行比對程式、產生差異片段以及根據此差異片段修改第一韌體」的總時間大於「以第二韌體覆寫第一韌體」的時間。換句話說,在一般的硬體及韌體程式的配合下,當差異比例值小於或等於75%時,以差異片段更新第一韌體的速度比直接以第二韌體覆寫的速度來得快;而當差異比例值大於75%時,以第二韌體覆寫的速度比起以差異片段更新第一韌體的速度來得快。然而,上述更新數值區間的上下界設定值並非用以限制本發明,實務上0%跟75%的數值設定可根據實際需求做調整。
另外需補充說明的是,前述提及伺服器的運算裝置包括中央處理器及基板管理控制器。實務上,中央處理器係用於接收第二韌體、執行比對程式、判斷差異比例是否屬於局部更新數值區間以及產生差異片段。基板管理控制器係用於以差異片段修改第一韌體或者以第二韌體覆寫第一韌體。
綜合以上所述,本發明一實施例所揭露的伺服器韌體更新方法,可適用於伺服器上的所有硬體的韌體更新。例如基本輸入輸出系統(Basic Input/Output System,BIOS)、基板管理控制器(Baseboard Management Controller,BMC)、管理引擎(Management Engine,ME)或非揮發性隨機存取記憶體(Non-Volatile Random Access Memory,NVRAM)等。其次,本發明一實施例所揭露的伺服器韌體更新方法,僅需針對新舊版本韌體之間的差異進行更新,因此更新速度較傳統更新方式快,可減少伺服器於更新韌體的過程中無法正常提供服務的時間。再者,採用差異片段的更新方式可減少對於儲存裝置抹除和寫入的次數,延長了韌體儲存裝置的使用壽命,同時亦可避免除存裝置內的資料毀損,導致伺服器無法正常開機。最後,本發明一實施例所揭露的伺服器韌體更新方法,其更新速度取決於新舊版本韌體間差異程度,由於愈趨成熟之產品其韌體修改幅度愈小,使用本發明所揭露的伺服器韌體更新方法進行韌體更新將更有效率。即使新舊韌體版本間的差異程度太大,則亦可透過差異比例值的判斷而改回一次性更新之方式,避免差異片段中的韌體資料因過度破碎而拖累更新速度。整體而言,本發明在減少韌體更新負擔的同時,仍保有採用傳統韌體更新方式的彈性。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明。在不脫離本發明之精神和範圍內,所為之更動與潤飾,均屬本發明之專利保護範圍。關於本發明所界定之保護範圍請參考所附之申請專利範圍。
S1-S10‧‧‧步驟
圖1係依據本發明一實施例所繪示的伺服器韌體更新方法的流程圖。
Claims (5)
- 一種伺服器韌體更新方法,適用於具有一運算裝置及一儲存裝置的一伺服器且該伺服器用以運行一第一韌體,所述的伺服器韌體更新方法包括:以該運算裝置接收一第二韌體並儲存該第二韌體於該儲存裝置;以該運算裝置執行一比對程式,該比對程式用以獲得該第一韌體及該第二韌體之一差異比例值;以及以該運算裝置判斷該差異比例值是否屬於一局部更新數值區間並根據判斷結果更新該第一韌體;其中當該差異比例值屬於該局部更新數值區間,以該運算裝置依據該第一韌體及該第二韌體之差異產生一差異片段,並以該運算裝置根據該差異片段修改該第一韌體; 當該差異比例值不屬於該局部更新數值區間,以該運算裝置以該第二韌體覆寫該第一韌體。
- 如請求項1所述的伺服器韌體更新方法,其中該局部更新數值區間係為大於0%且小於75%的數值區間。
- 如請求項1所述的伺服器韌體更新方法,其中該局部更新數值區間係為大於0%且不大於75%的數值區間。
- 如請求項1所述的伺服器韌體更新方法,其中以該運算裝置根據該差異片段修改該第一韌體係包括:以該運算裝置儲存該差異片段及一執行碼於另一儲存裝置,並以該運算裝置運行該執行碼以修改該第一韌體。
- 如請求項1所述的伺服器韌體更新方法,其中該運算裝置包括一中央處理器及一基板管理控制器,該中央處理器用於接收該第二韌體、執行該比對程式、判斷該差異比例值是否屬於該局部更新數值區間以及產生該差異片段;且該基板管理控制器係用於以該差異片段修改該第一韌體以及以該第二韌體覆寫該第一韌體。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107126741A TWI668636B (zh) | 2018-08-01 | 2018-08-01 | 伺服器韌體更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107126741A TWI668636B (zh) | 2018-08-01 | 2018-08-01 | 伺服器韌體更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI668636B true TWI668636B (zh) | 2019-08-11 |
TW202008156A TW202008156A (zh) | 2020-02-16 |
Family
ID=68316505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107126741A TWI668636B (zh) | 2018-08-01 | 2018-08-01 | 伺服器韌體更新方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI668636B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI718642B (zh) * | 2019-08-27 | 2021-02-11 | 點序科技股份有限公司 | 記憶體裝置管理方法及記憶體裝置管理系統 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070260790A1 (en) * | 2006-04-03 | 2007-11-08 | Jerry Chen | Embedded controller and method for updating the firmware thereof |
TWM381231U (en) * | 2009-12-01 | 2010-05-21 | Inxtron Inc | Network device for remote firmware update |
KR20120041384A (ko) * | 2010-10-21 | 2012-05-02 | 삼성전자주식회사 | 모바일 디바이스의 펌웨어 업데이트 방법 및 장치 |
TWI486877B (zh) * | 2013-09-26 | 2015-06-01 | Wistron Corp | 韌體更新方法 |
US20150193399A1 (en) * | 2014-01-09 | 2015-07-09 | Nokia Corporation | Method and apparatus for determining partial updates for a document object model |
-
2018
- 2018-08-01 TW TW107126741A patent/TWI668636B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070260790A1 (en) * | 2006-04-03 | 2007-11-08 | Jerry Chen | Embedded controller and method for updating the firmware thereof |
TWM381231U (en) * | 2009-12-01 | 2010-05-21 | Inxtron Inc | Network device for remote firmware update |
KR20120041384A (ko) * | 2010-10-21 | 2012-05-02 | 삼성전자주식회사 | 모바일 디바이스의 펌웨어 업데이트 방법 및 장치 |
TWI486877B (zh) * | 2013-09-26 | 2015-06-01 | Wistron Corp | 韌體更新方法 |
US20150193399A1 (en) * | 2014-01-09 | 2015-07-09 | Nokia Corporation | Method and apparatus for determining partial updates for a document object model |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI718642B (zh) * | 2019-08-27 | 2021-02-11 | 點序科技股份有限公司 | 記憶體裝置管理方法及記憶體裝置管理系統 |
Also Published As
Publication number | Publication date |
---|---|
TW202008156A (zh) | 2020-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7322029B2 (en) | Method and system for recovering program code in a computer system | |
TWI515660B (zh) | 韌體變量更新方法 | |
US8549271B1 (en) | Method, system, and computer readable medium for updating and utilizing the contents of a non-essential region of a memory device | |
JP6013626B2 (ja) | 不揮発性メモリ書込み機構 | |
US20040260919A1 (en) | Computer system and method therefor to bootup the system quickly after initialization | |
WO2013103023A1 (ja) | 情報処理装置、情報処理方法、およびコンピュータプログラム | |
US20110320794A1 (en) | Flash System And Method For Updating The Flash System | |
TW201337561A (zh) | 資料可得性之掛接時間重新調整 | |
US20140372560A1 (en) | Maintaining system firmware images remotely using a distribute file system protocol | |
US8788800B2 (en) | OS processing method, system and non-transitory computer readable storage medium thereof | |
TWI668636B (zh) | 伺服器韌體更新方法 | |
US10620867B2 (en) | System and method for performing wear leveling at a non-volatile firmware memory | |
US8990589B1 (en) | System and method for robust full-drive encryption | |
US8261133B1 (en) | Protection and recovery of non-redundant information stored in a memory | |
CN112835601A (zh) | 一种固件更新方法、装置、设备及存储介质 | |
JP2019074950A (ja) | 情報処理装置、制御装置、制御方法及び制御プログラム | |
TWI716969B (zh) | 經由資料塊段之復原影像下載技術 | |
TWI726524B (zh) | 電子處理裝置及記憶體控制方法 | |
CN110795131A (zh) | 服务器固件更新方法 | |
JP4572205B2 (ja) | フラッシュメモリドライブ装置、その制御方法及びそのプログラム | |
US11507385B1 (en) | Embedded electronic device, boot method, and embedded electronic device readable recording medium with stored program | |
US10185653B2 (en) | Integrated systems and methods for the transactional management of main memory and data storage | |
WO2015181923A1 (ja) | 情報処理装置、制御方法及び制御プログラム | |
JP2023031907A (ja) | 情報処理装置および情報処理装置の制御方法 | |
US8555020B2 (en) | Reclaiming space occupied by an expired variable record in a non-volatile record storage |