CN110795131A - 服务器固件更新方法 - Google Patents

服务器固件更新方法 Download PDF

Info

Publication number
CN110795131A
CN110795131A CN201810865412.XA CN201810865412A CN110795131A CN 110795131 A CN110795131 A CN 110795131A CN 201810865412 A CN201810865412 A CN 201810865412A CN 110795131 A CN110795131 A CN 110795131A
Authority
CN
China
Prior art keywords
firmware
difference
server
arithmetic device
local update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810865412.XA
Other languages
English (en)
Inventor
王绍宇
孙佩杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Technical Steel Technology Co ltd
Original Assignee
Giga Byte Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Giga Byte Technology Co Ltd filed Critical Giga Byte Technology Co Ltd
Priority to CN201810865412.XA priority Critical patent/CN110795131A/zh
Publication of CN110795131A publication Critical patent/CN110795131A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种服务器固件更新方法,适用于运行第一固件的服务器,包括:服务器的运算装置接收第二固件并存储,运算装置执行比对程序获得第一固件及第二固件的差异比例值,若差异比例值属于一局部更新数值区间,运算装置依据第一固件及第二固件的差异产生差异片段,并据以修改第一固件,否则,运算装置将第二固件覆写第一固件。

Description

服务器固件更新方法
技术领域
本发明涉及一种固件更新方法,特别是一种服务器上的固件更新方法。
背景技术
现今服务器的固件,大多存储于电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)这类的存储装置中。常见的固件更新方式是先抹除整个存储装置的存储空间,然后将新版固件写入到存储装置中。
举例来说:更新一个16MB的EEPROM上存储的固件,大约需使用6分钟的时间;在这段时间内,用户无法连线到此服务器操作,造成许多不便。提高到系统层面而言,目前蓬勃发展的数据中心的机房内装设了数量庞大的服务器,因此单一服务器的固件更新时间提高,将连带使得整个数据中心中所有服务器不间断提供服务的时间下降。更何况新版固件的文件大小通常只有可能逐渐递增,如此将导致更新固件时所花费的时间同步提高,进一步地影响到服务器能正常服务运行的时间。同时,新版固件文件的大小愈大也代表在写入新版固件的过程中,失败的风险跟着增高。另一方面,为了最佳化地发挥服务器硬件的效能,客制化固件更新的速度愈来愈频繁。从存储装置的角度观之,重复的写入动作容易造成存储装置的毁损,使得固件读取失败,进而导致服务器无法正常运行。
发明内容
有鉴于此,本发明提出一种服务器固件更新方法,借此解决上述因为固件更新频繁及固件大小提升所导致的问题。
依据本发明一实施例所叙述的一种服务器固件更新方法,适用于具有运算装置及存储装置的服务器且此服务器用以运行第一固件,服务器固件更新方法包括:运算装置接收第二固件并存储第二固件于存储装置;运算装置执行比对程序,比对程序用以获得第一固件及第二固件的差异比例值;以及运算装置判断差异比例值是否属于一局部更新数值区间并根据判断结果更新第一固件;其中当差异比例值属于局部更新数值区间,运算装置依据第一固件及第二固件的差异产生一差异片段,且运算装置根据差异片段修改第一固件;当差异比例值不属于局部更新数值区间,运算装置以第二固件覆写第一固件。
依据本发明一实施例所叙述的一种服务器固件更新方法,其中局部更新数值区间为大于0%且小于75%的数值区间。
依据本发明另一实施例所叙述的一种服务器固件更新方法,其中局部更新数值区间为大于0%且不大于75%的数值区间。
依据本发明一实施例所叙述的一种服务器固件更新方法,其中以运算装置根据差异片段修改第一固件包括:运算装置存储差异片段及执行码于另一存储装置,并以运算装置运行执行码以修改第一固件。
依据本发明一实施例所叙述的一种服务器固件更新方法,其中运算装置包括中央处理器及基板管理控制器,中央处理器用于接收第二固件、执行比对程序、判断差异比例值是否属于局部更新数值区间以及产生差异片段;且基板管理控制器用于根据差异片段修改第一固件以及以第二固件覆写第一固件。
通过上述架构,本发明所公开的服务器固件更新方法,通过比对原始版本固件与新版本固件之间的差异,仅针对新旧版本间的差异部分进行更新。因而可避免对存储装置进行不必要的抹除和写入的动作,同时可加快固件更新的速度,并提高服务器的可靠度。
以上的关于本公开内容的说明及以下的实施方式的说明是用以示范与解释本发明的构思与原理,并且提供本发明的专利申请范围更进一步的解释。
附图说明
图1是依据本发明一实施例所示出的服务器固件更新方法的流程图。
附图标记说明:
S1-S10 步骤
具体实施方式
以下在实施方式中详细叙述本发明的详细特征以及优点,其内容足以使任何熟习相关技艺者了解本发明的技术内容并据以实施,且根据本说明书所公开的内容、权利要求及附图,任何熟习相关技艺者可轻易地理解本发明相关的目的及优点。以下的实施例是进一步详细说明本发明的观点,但非以任何观点限制本发明的范围。
本发明一实施例的服务器固件更新方法是适用于服务器,此服务器具有一运算装置及一存储装置。运算装置例如是中央处理器(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的差异,则判定此区块具有差异。按照如上方式,运算装置所执行的比对程序将第二固件的所有区块与第一固件的所有区块逐一判断,并将具有差异的区块数除以所有区块数以获得差异比例值。值得注意的是:区块的大小可根据固件所用的存储装置而决定,最小可设定为1bit。实务上则可依据存储装置的硬件类型决定区块大小,例如若第一固件存储于具有串行的周边界面的快闪记体体(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)、管理引擎(ManagementEngine,ME)或非挥发性随机存取存储器(Non-Volatile Random Access Memory,NVRAM)等。其次,本发明一实施例所公开的服务器固件更新方法,仅需针对新旧版本固件之间的差异进行更新,因此更新速度较传统更新方式快,可减少服务器于更新固件的过程中无法正常提供服务的时间。再者,采用差异片段的更新方式可减少对于存储装置抹除和写入的次数,延长了固件存储装置的使用寿命,同时亦可避免除存装置内的数据毁损,导致服务器无法正常开机。最后,本发明一实施例所公开的服务器固件更新方法,其更新速度取决于新旧版本固件间差异程度,由于愈趋成熟的产品其固件修改幅度愈小,使用本发明所公开的服务器固件更新方法进行固件更新将更有效率。即使新旧固件版本间的差异程度太大,则亦可通过差异比例值的判断而改回一次性更新的方式,避免差异片段中的固件数据因过度破碎而拖累更新速度。整体而言,本发明在减少固件更新负担的同时,仍保有采用传统固件更新方式的弹性。
虽然本发明以前述的实施例公开如上,然其并非用以限定本发明。在不脱离本发明的构思和范围内,所为的变动与润饰,均属本发明的专利保护范围。关于本发明所界定的保护范围请参考权利要求。

Claims (5)

1.一种服务器固件更新方法,适用于具有一运算装置及一存储装置的一服务器且该服务器用以运行一第一固件,其特征在于,所述的服务器固件更新方法包括:
以该运算装置接收一第二固件并存储该第二固件于该存储装置;
以该运算装置执行一比对程序,该比对程序用以获得该第一固件及该第二固件的一差异比例值;以及
以该运算装置判断该差异比例值是否属于一局部更新数值区间并根据判断结果更新该第一固件;其中
当该差异比例值属于该局部更新数值区间,以该运算装置依据该第一固件及该第二固件的差异产生一差异片段,并以该运算装置根据该差异片段修改该第一固件;
当该差异比例值不属于该局部更新数值区间,以该运算装置以该第二固件覆写该第一固件。
2.如权利要求1所述的服务器固件更新方法,其特征在于,该局部更新数值区间为大于0%且小于75%的数值区间。
3.如权利要求1所述的服务器固件更新方法,其特征在于,该局部更新数值区间为大于0%且不大于75%的数值区间。
4.如权利要求1所述的服务器固件更新方法,其特征在于,以该运算装置根据该差异片段修改该第一固件包括:以该运算装置存储该差异片段及一执行码于另一存储装置,并以该运算装置运行该执行码以修改该第一固件。
5.如权利要求1所述的服务器固件更新方法,其特征在于,该运算装置包括一中央处理器及一基板管理控制器,该中央处理器用于接收该第二固件、执行该比对程序、判断该差异比例值是否属于该局部更新数值区间以及产生该差异片段;且该基板管理控制器用于以该差异片段修改该第一固件以及以该第二固件覆写该第一固件。
CN201810865412.XA 2018-08-01 2018-08-01 服务器固件更新方法 Pending CN110795131A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810865412.XA CN110795131A (zh) 2018-08-01 2018-08-01 服务器固件更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810865412.XA CN110795131A (zh) 2018-08-01 2018-08-01 服务器固件更新方法

Publications (1)

Publication Number Publication Date
CN110795131A true CN110795131A (zh) 2020-02-14

Family

ID=69425072

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810865412.XA Pending CN110795131A (zh) 2018-08-01 2018-08-01 服务器固件更新方法

Country Status (1)

Country Link
CN (1) CN110795131A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555750B1 (en) * 2002-08-22 2009-06-30 Hewlett-Packard Development Company, L.P. Update package generator employing partial predictive mapping techniques for generating update packages for mobile handsets
CN103645910A (zh) * 2012-06-27 2014-03-19 谷歌公司 用于更新应用程序的方法
CN104932909A (zh) * 2014-03-17 2015-09-23 中兴通讯股份有限公司 一种终端软件升级方法及装置
CN106997302A (zh) * 2017-03-31 2017-08-01 广东欧珀移动通信有限公司 固件升级方法、装置及音频播放设备
CN108279922A (zh) * 2018-01-03 2018-07-13 深圳市泰比特科技有限公司 差分文件生成方法、基于该差分文件的升级方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555750B1 (en) * 2002-08-22 2009-06-30 Hewlett-Packard Development Company, L.P. Update package generator employing partial predictive mapping techniques for generating update packages for mobile handsets
CN103645910A (zh) * 2012-06-27 2014-03-19 谷歌公司 用于更新应用程序的方法
CN104932909A (zh) * 2014-03-17 2015-09-23 中兴通讯股份有限公司 一种终端软件升级方法及装置
CN106997302A (zh) * 2017-03-31 2017-08-01 广东欧珀移动通信有限公司 固件升级方法、装置及音频播放设备
CN108279922A (zh) * 2018-01-03 2018-07-13 深圳市泰比特科技有限公司 差分文件生成方法、基于该差分文件的升级方法及系统

Similar Documents

Publication Publication Date Title
JP5831271B2 (ja) 半導体不揮発性メモリ装置のリフレッシュ操作開始方法およびシステム
CN106155915B (zh) 数据存储的处理方法及装置
KR20050028173A (ko) 소프트웨어 업데이트 방법 및 시스템
US9710340B2 (en) Replacement of a corrupt driver variable record
TWI778811B (zh) 升級方法,電腦系統和遠端升級設備
CN101807152A (zh) 自我验证选择只读存储器的基本输出入系统及其验证方法
CN112540725A (zh) 非易失性数据存储方法、嵌入式系统以及存储介质
CN106325911A (zh) 一种实现bootrom升级的方法及装置
US8990589B1 (en) System and method for robust full-drive encryption
CN109375953B (zh) 一种操作系统启动方法及装置
CN110888769B (zh) 数据处理方法及计算机设备
CN109491951B (zh) 一种配置数据的方法以及计算设备
TWI668636B (zh) 伺服器韌體更新方法
JP2019074950A (ja) 情報処理装置、制御装置、制御方法及び制御プログラム
CN110795131A (zh) 服务器固件更新方法
EP3355184A1 (en) A method for generating a delta file for in-place updating of memory content and a method for memory updating
CN114003174A (zh) 一种纠删码存储方法、系统及电子设备
US11314603B2 (en) Recovery image downloads via data chunks
CN113766554A (zh) 获取WiFi校准数据的方法、装置及WiFi设备校准测试系统
US20210326125A1 (en) Installing application program code on a vehicle control system
CN114510256B (zh) 固件升级方法、电能表、计算机设备和存储介质
CN118093275B (zh) 数据保护方法、电子设备及计算机可读存储介质
US20240256178A1 (en) Information processor and information processing method
CN112732309B (zh) Flash存储器的更新方法、装置和电子设备
CN113934370B (zh) 非易失性存储器的耗损均衡方法、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230222

Address after: Chinese Taiwan New Taipei City

Applicant after: Technical Steel Technology Co.,Ltd.

Address before: Chinese Taiwan New Taipei City

Applicant before: GIGA-BYTE TECHNOLOGY Co.,Ltd.