一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

服务器装置及其避免韧体无法再次更新之方法与流程

2021-12-07 20:22:00 来源:中国专利 TAG:


1.本案是关于一种服务器装置,且特别是具有可程序化逻辑设备之服务器装置。


背景技术:

2.一般来说,服务器装置中会设置可程序化逻辑设备,用以在服务器装置的开机过程控制上电流程、讯号的控制、或参数的传递等等,因此,可程序化逻辑设备中的韧体程序常有更新的需求,通常,可程序化逻辑设备具有联合测试行动群组(joint test action group;jtag)接口及串行外围接口(serial peripheral interface;spi)接口,可程序化逻辑设备可借由jtag接口、i2c接口或spi接口更新其韧体程序。
3.其中,可程序化逻辑设备借由jtag接口与spi接口连接于服务器装置的其他单元时,至少需要六根脚位始符合jtag接口与spi接口之规范,且jtag接口与spi接口之总线走线的长度也有一定限制。考虑服务器装置内之布局(layout)空间与连接器成本,jtag接口与spi接口较难以符合现今对于服务器装置之价格及轻薄之需求,因此,目前可程序化逻辑设备更新其韧体程序之主要总线接口为i2c接口。
4.然而,i2c接口系默认为关闭,服务器装置需额外启用i2c接口才能使可程序化逻辑设备更新其韧体。当韧体具有错误或在韧体的更新过程中发生错误时,若此时重启服务器装置之电源将造成i2c接口单元在服务器装置重新启动或上电后为关闭,服务器装置之维护者则无法借由i2c接口再次地更新可程序化逻辑设备之韧体,进而导致服务器装置无法成功地开机,若欲使用jtag接口再次更新可程序化逻辑设备之韧体程序时,必须打开服务器装置之机壳或机箱盖,由外部装置直接联机至jtag接口的脚位始能更新可程序化逻辑设备的韧体程序,造成服务器装置之维护者之不便。


技术实现要素:

5.本发明要解决的技术问题是提供一种服务器装置及其避免韧体无法再次更新之方法,其可避免韧体无法再次更新。
6.为解决上述技术问题,本发明服务器装置包含可程序化逻辑设备及基板管理控制器。可程序化逻辑设备包含韧体加载单元、i2c接口单元、非挥发性内存单元及控制单元。韧体加载单元用以加载一第一韧体程序,使可程序化逻辑设备由一设定模式切换至一工作模式且可程序化逻辑设备之一i2c接口写入功能锁定于启用,第一韧体程序包含锁定i2c接口写入功能之程序代码。i2c接口单元耦接基板管理控制器,i2c接口单元用以在工作模式中根据为启用之i2c接口写入功能自基板管理控制器接收一第二韧体程序。非挥发性内存单元耦接i2c接口单元,非挥发性内存单元用以经由i2c接口单元接收第二韧体程序并储存第二韧体程序。控制单元耦接基板管理控制器、韧体加载单元及非挥发性内存单元,控制单元用以在工作模式中自基板管理控制器接收到一韧体更新指令时,执行韧体加载单元之一清除动作,使可程序化逻辑设备由工作模式切换至设定模式,且i2c接口写入功能在设定模式中仍锁定在启用而未切换为关闭,且控制单元在接收到韧体更新指令时验证第二韧体程
序,当第二韧体程序未通过验证时,服务器装置在设定模式中输出一警示讯息表示第二韧体程序未加载韧体加载单元。
7.为解决上述技术问题,本发明一种避免韧体无法再次更新的方法包含可程序化逻辑设备之一韧体加载单元加载一第一韧体程序,使可程序化逻辑设备由一设定模式切换至一工作模式且i2c接口写入功能锁定于启用,服务器装置的一基板管理控制器在可程序化逻辑设备处于工作模式时发送一第二韧体程序,可程序化逻辑设备之一非挥发性内存单元在工作模式中根据已启用之i2c接口写入功能经由可程序化逻辑设备之一i2c接口单元接收并储存第二韧体程序,可程序化逻辑设备之一控制单元在工作模式中判断是否接收到来自基板管理控制器之一韧体更新指令,控制单元在接收到韧体更新指令时执行韧体加载单元之一清除动作,使可程序化逻辑设备由工作模式切换至设定模式,i2c接口写入功能在设定模式中仍锁定于启用而未切换为关闭,控制单元在接收到韧体更新指令时验证第二韧体程序,当第二韧体程序未通过验证时,服务器装置在设定模式中输出一警示讯息表示第二韧体程序未加载韧体加载单元。
8.相较于现有技术,本发明可程序化逻辑设备并不会因为韧体程序错误而操作在设定模式造成i2c接口写入功能关闭,导致除错后之韧体程序无法借由i2c接口单元更新于非挥发性内存单元之问题,且控制单元可发出错误讯息,以避免用户重启服务器装置之电源而造成i2c接口单元在服务器装置重新启动或上电后为关闭。可程序化逻辑设备之设计者或除错者在韧体程序错误时并不需要打开机箱盖以借由jtag接口更新韧体程序,设计者或除错者依然可借由i2c接口单元修复韧体程序,大幅地提升可程序化逻辑设备之韧体程序之除错之灵活性与便利性。并且,i2c接口单元仅需两根脚位,且i2c接口单元之总线走线的长度较长,i2c接口单元较jtag接口与spi接口更能符合现今对于服务器稳定且轻薄之需求。
9.【附图说明】图1 为根据本发明之服务器装置之一实施例之方块示意图。
10.图2 为根据本发明之避免韧体无法再次更新的方法之一实施例之流程图。
11.【具体实施方式】请参照图1,图1系为根据本发明之服务器装置之一实施例之方块示意图。服务器装置1包含可程序化逻辑设备(programmable logic device;pld)11及基板管理控制器13。基板管理控制器13耦接可程序化逻辑设备11。可程序化逻辑设备11包含集成电路间(inter-integrated circuit;i2c)接口单元111、非挥发性内存单元113、韧体加载单元114及控制单元115。非挥发性内存单元113耦接在i2c接口单元111与韧体加载单元114之间,控制单元115耦接非挥发性内存单元113及i2c接口单元111,且i2c接口单元111耦接在基板管理控制器13与非挥发性内存单元113之间。
12.在一实施例中,可程序化逻辑设备11可为复杂可程序逻辑装置(complex programmable logic device;cpld),韧体加载单元114可为实现可程序化逻辑设备11之硬件特殊功能(hardware feature)之内存装置,硬件特殊功能包含相应i2c接口单元111之i2c接口写入功能,韧体加载单元114可为随机存取内存(random access memory;ram)。非挥发性内存单元113可为闪存(flash memory)。
13.非挥发性内存单元113系储存欲使可程序化逻辑设备11执行之韧体程序,韧体加
载单元114系储存可程序化逻辑设备11当下执行之韧体程序。当可程序化逻辑设备11处于开机、重置或韧体更新程序中,可程序化逻辑设备11系操作在设定模式,韧体加载单元114并未加载任何韧体程序,控制单元115控制韧体程序自非挥发性内存单元113加载韧体加载单元114,使可程序化逻辑设备11由设定模式切换至工作模式,可程序化逻辑设备11在工作模式中即根据韧体加载单元114加载之韧体程序代码运作。于是,当非挥发性内存单元113储存有欲更新之韧体程序时,控制单元115可控制欲更新之韧体程序加载韧体加载单元114,使可程序化逻辑设备11根据更新后之韧体程序运作而完成韧体程序之更新程序。
14.非挥发性内存单元113储存之韧体程序可来自于i2c接口单元111,可程序化逻辑设备11具有对应i2c接口单元111之i2c接口写入功能,当可程序化逻辑设备11处于工作模式时,已加载韧体加载单元114之韧体程序包含启用i2c接口写入功能之韧体程序代码,使非挥发性内存单元113在工作模式中根据已为启用之i2c接口写入功能由i2c接口单元111接收欲更新之韧体程序;再者,当可程序化逻辑设备11处于工作模式时,已加载韧体加载单元114之韧体程序包含锁定i2c接口写入功能为启用之一锁定功能,当欲更新之韧体程序写入非挥发性内存单元113之后,可程序化逻辑设备11进入韧体更新程序,可程序化逻辑设备11由工作模式切换至设定模式,前述之锁定功能将迫使i2c接口写入功能不关闭而为持续地锁定在启用,当韧体更新失败时,非挥发性内存单元113在设定模式中即可根据为启用之i2c接口写入功能由i2c接口单元111重新接收欲更新之韧体程序或接收其他韧体程序。
15.在运作上,请合并参照图1及图2,图2系为根据本案之避免韧体无法再次更新的方法之一实施例之流程图,以服务器装置1上电后可程序化逻辑设备11处于设定模式为例,韧体加载单元114先加载尚未更新之第一韧体程序(步骤s01)使可程序化逻辑设备11由设定模式切换至工作模式(步骤s02),且第一韧体程序包含前述锁定i2c接口写入功能为启用之锁定功能,使i2c接口写入功能在第一韧体程序加载韧体加载单元114之后锁定于启用(步骤s03),接着,当可程序化逻辑设备11处于工作模式时,基板管理控制器13可发送欲更新之第二韧体程序至i2c接口单元111(步骤s04),根据锁定于启用之i2c接口写入功能,i2c接口单元111传递第二韧体程序,非挥发性内存单元113自i2c接口单元111接收第二韧体程序并储存第二韧体程序(步骤s05)。
16.待第二韧体程序储存在非挥发性内存单元113之后,基板管理控制器13可发送欲使第一韧体程序更新为第二韧体程序之韧体更新指令,控制单元115在可程序化逻辑设备11之工作模式中判断是否接收到前述韧体更新指令(步骤s06),当控制单元115接收到韧体更新指令时(判断结果为「是」),控制单元115执行韧体加载单元114之清除动作(步骤s07),使可程序化逻辑设备11切换至设定模式(步骤s08),且i2c接口写入功能在设定模式中仍锁定为启用(步骤s10),也就是i2c接口写入功能不因可程序化逻辑设备11自工作模式切换至设定模式而由启用切换至关闭。
17.再者,在接收到韧体更新指令之后,控制单元115验证储存在非挥发性内存单元113中之第二韧体程序,以判断第二韧体程序是否发生错误(步骤s11)。当第二韧体程序错误时,表示韧体更新程序无法完成,控制单元115在可程序化逻辑设备11的设定模式中产生加载失败讯号(步骤s12),使服务器装置1输出包含声音讯号及/或影像讯号之一警示讯息,表示第二韧体程序并未加载韧体加载单元114,也就是可程序化逻辑设备11仍处于设定模式,以警示服务器装置1之用户禁止移除服务器装置1之电源,也就是服务器装置1立即地通
知用户禁止系统层级的重启,使用者不可借由将其插头自插座移除又重新插回插座之方式重启服务器装置1,以避免服务器装置1因重启/重新上电而造成前述之锁定功能关闭,锁定功能关闭将导致i2c接口单元111处于默认为关闭之状态而除错者无法借由i2c接口单元111更新错误之第二韧体程序之问题。
18.基此,在可程序化逻辑设备11的设定模式中,虽然第二韧体程序之程序代码错误,为启用之i2c接口单元111可再次接收韧体程序,服务器装置1之设计者或除错者可将除错后之程序代码在设定模式中借由i2c接口单元111刻录至非挥发性内存单元113,以修复第二韧体程序之错误;或者,韧体更新失败是由于第二韧体程序自非挥发性内存单元113加载韧体加载单元114之过程发生传输错误,服务器装置1之设计者或除错者可在设定模式中设定第二韧体程序重新自i2c接口单元111重新刻录至非挥发性内存单元113,并控制重新刻录至非挥发性内存单元113之第二韧体程序加载韧体加载单元114。换言之,可程序化逻辑设备11并不会因为操作在设定模式而造成i2c接口写入功能关闭,导致韧体程序在更新失败时无法借由i2c接口单元111重新刻录至非挥发性内存单元113,且服务器装置1之设计者或除错者亦不需要打开服务器装置1之机壳以借由与非挥发性内存单元113连接之jtag接口单元112或spi接口单元116将韧体程序重新刻录至非挥发性内存单元113。(其中,图1仅系用以示意,jtag接口单元112及spi接口单元116系借由六根脚位连接非挥发性内存单元113)。
19.在一实施例中,控制单元115系以硬件电路之有限状态机(finite state machine;fsm)来实现,例如控制单元115可为特殊应用集成电路(application-specific integrated circuit;asic),控制单元115系根据以硬件描述语言(例如,verilog code)预先定义之硬件行为执行步骤s07、s11、s12中之清除动作、验证动作及讯号输出动作,也就是控制单元115并非是执行韧体程序代码而动作,在韧体加载单元114未加载任何韧体程序时,控制单元115亦可执行前述之清除动作、验证动作及讯号输出动作。
20.在一实施例中,服务器装置1之用户可借由基板管理控制器13的管理接口(console)在近端控制基板管理控制器13,使基板管理控制器13在步骤s04中发送第二韧体程序。并且,用户可在第二韧体程序储存至非挥发性内存单元113之后控制基板管理控制器13发出韧体更新指令,使控制单元115在步骤s06中判断出接收到韧体更新指令。在其他的实施例中,服务器装置1之用户亦可操作远程装置联机于基板管理控制器13的网络接口,以远程操控的方式控制基板管理控制器13发送前述之第二韧体程序及韧体更新指令。在其他的实施例中,服务器装置1亦可自动地侦测韧体版本,也就是基板管理控制器13可自动地判断出第二韧体程序的版本较新而自动地将第二韧体程序发送至可程序化逻辑设备11且自动地发出韧体更新指令。
21.在一实施例中,如图1所示,可程序化逻辑设备11更包含通用型输入输出脚位(general-purpose input/output;gpio)117耦接在基板管理控制器13与控制单元115之间。在步骤s12中,控制单元115在产生加载失败讯号之后可借由gpio脚位117发送加载失败讯号至基板管理控制器13,基板管理控制器13可根据加载失败讯号产生前述之警示讯息,并由前述之服务器装置1之声音或影像输出单元输出警示讯息表示第二韧体程序未加载韧体加载单元114,可程序化逻辑设备11系处于设定模式,以警示服务器装置1之用户不可移除服务器装置1之电源,以避免服务器装置1因重启而使前述锁定功能无效而无法对错误之
第二韧体程序进行除错或更新之问题。
22.进一步,在控制单元115发送加载失败讯号至基板管理控制器13之后,基板管理控制器13则可根据前述之加载失败讯号重新发送相同之一韧体程序至i2c接口单元111,或基板管理控制器13亦在接收到加载失败讯号之后发送除错后之其他韧体程序至i2c接口单元111(以下将基板管理控制器13在接收到加载失败讯号后发送之韧体程序称为第三韧体程序),非挥发性内存单元113在可程序化逻辑设备11的设定模式中根据为启用之i2c接口写入功能由i2c接口单元111接收基板管理控制器13发送之第三韧体程序,基板管理控制器13接着再发送另一韧体更新指令至控制单元115,使控制单元115在步骤s06产生为「是」之判断结果而执行后续之步骤s11,若控制单元115在步骤s11判断出基板管理控制器13重新发送之第二韧体程序或除错后之其他韧体程序未发生错误(判断结果为「否」),控制单元115则控制重新发送之第二韧体程序或除错后之其他韧体程序自非挥发性内存单元113加载韧体加载单元114(步骤s13),使可程序化逻辑设备11由设定模式切换至工作模式,且控制单元115可产生一加载成功讯号,加载成功讯号经由gpio脚位117发送至基板管理控制器13,使基板管理控制器13得知更新之韧体程序已加载韧体加载单元114。于是,韧体加载单元114加载重新发送之第二韧体程序或除错后之其他韧体程序之后,可程序化逻辑设备11即根据重新发送之第二韧体程序或除错后之其他韧体程序运作。
23.在一实施例中,加载失败讯号与加载成功讯号可具有不同的逻辑位准,例如加载成功讯号可具有高位准,加载失败讯号可具有低位准,基板管理控制器13可判断来自gpio脚位117之讯号位准为高位准或低位准,以判断为加载失败讯号或加载成功讯号。据此,基板管理控制器13可得知可程序化逻辑设备11是处于设定模式或工作模式,也就是基板管理控制器13在发出韧体更新指令之后可判断出韧体程序是否已加载韧体加载单元114。
24.综上所述,根据本案之避免韧体无法再次更新之方法之一实施例,可程序化逻辑设备并不会因为韧体程序错误而操作在设定模式造成i2c接口写入功能关闭,导致除错后之韧体程序无法借由i2c接口单元更新于非挥发性内存单元之问题,且控制单元可发出错误讯息,以避免用户重启服务器装置之电源而造成i2c接口单元在服务器装置重新启动或上电后为关闭。可程序化逻辑设备之设计者或除错者在韧体程序错误时并不需要打开机箱盖以借由jtag接口更新韧体程序,设计者或除错者依然可借由i2c接口单元修复韧体程序,大幅地提升可程序化逻辑设备之韧体程序之除错之灵活性与便利性。并且,i2c接口单元仅需两根脚位,且i2c接口单元之总线走线的长度较长,i2c接口单元较jtag接口与spi接口更能符合现今对于服务器稳定且轻薄之需求。
25.虽然本案已以实施例揭露如上然其并非用以限定本案,任何所属技术领域中具有通常知识者,在不脱离本案之精神和范围内,当可作些许之更动与润饰,故本案之保护范围当视后附之专利申请范围所界定者为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献