在数据处理系统中保持固件版本的方法和系统的制作方法

文档序号:6364687阅读:197来源:国知局
专利名称:在数据处理系统中保持固件版本的方法和系统的制作方法
技术领域
一般地说,本发明涉及数据处理系统领域,更具体地说,涉及利用分区盘的数据处理系统,该分区盘能存储固件版本以保持该系统的基于固件的部件的修正水平。
基于微处理器的系统所用外围设备的提供商们可以在他们的设备中包括固件和/或BIOS扩展,以提供扩展功能。BIOS(基本I/O系统)是一个众所周知的术语,它通常指系统加电后立即执行的代码,它使系统能控制各种I/O设备,包括键盘、显示屏、盘驱动器、串行通信等。BIOS代码通常还完成初始程序加载(IPL),它把操作系统代码(或其一些部分)从系统盘或其他外围设备复制到系统存储器中。如它的名称暗示的那样,BIOS扩展使适配器制造商定义针对设备的代码,它通常在执行加电自检(POST)之后和在IPL之前经由系统BIOS被调用。BIOS扩展可以经由外围设备上的可选的ROM设备提供。外围设备固件是指专为该适配器设计的代码。例如,固件可以包括告诉适配器卡如何执行来自设备驱动器的命令的代码。
外围设备固件、BIOS扩展以及设备驱动器都可以随时被修正、更新或者修改。当一个固件的修正水平被修改时,对这些修改必须验证其功能。如果固件修正水平、BIOS版本或设备驱动器被相继修改成不相容的水平,该系统可能不像期望的那样工作。在一个最坏的情况中,固件、BIOS和设备驱动器的组合将不显示出明显的故障,但可能在将来的某一点造成故障和/或数据丢失。
这些相容性问题在现场服务事件之后往往会显现出来,这种现场服务事件包括现场替换一个或多个外围设备,这里也称作现场可替换单元(FRU)。训练服务技术人员以保证在任何现场服务之后系统的固件、BIOS以及设备驱动器全部是相容的。不幸的是,这一水平的验证没有被严格遵守,因为有许多因素,包括在不适当的时间进行现场服务活动,在现场服务期间缺少对因特网的访问,以及在对时间很敏感的环境中处置大量系统时的人为错误。所以,特别希望实现一种方法和系统,它能在替换或更新一个或多个外围设备的现场服务之后保证各种系统软件部件之间的相容性。如果所实现的解决方案能自动操作而无需与现场服务技术人员进行任何实质性的交互作用,则更是人们所希望的。
尽管本发明允许各种修改和替代形式,但这里将详细描述本发明的一些具体实施例,它们作为举例示于附图中。然而,应该理解,这里展现的附图和详细描述不是要把本发明限制于所公开的特定实施例,相反,本发明要覆盖落入所附权利要求定义的本发明的精神和范围的所有修改、等效物和替换物。
含有系统BIOS代码的非易失存储器(NVM)设备103连接于系统总线104。NVM103通常是作为闪速存储器卡或其他电可擦和可编程存储器来实现的。此外,系统存储器106可由每个处理器102经由系统总线104通过中介存储器控制器105进行访问。因为每个处理器102对系统存储器106有基本相同的访问权限,使得存储器访问时间基本上与处理器无关,所描绘的系统实施例100是对称多处理器(SMP)系统的实例。然而,应该理解,本发明可以适合在具有不同体系结构的系统上实现,例如单处理系统和非均匀存储器访问(NUMA)多处理器系统。
在所描绘的系统实施例100中,总线桥108提供系统总线104和连接一个或多个外围设备的I/O总线110之间的接口。I/O总线110通常遵循若干工业标准I/O总线规程之一,包括例如由PCI特别兴趣工作组在PCI局部总线规程修订版2.2中规定的外围部件接口(PCI)总线(www.pcisig.com)。总线桥108和存储器控制器105可以由专为用于处理器102和系统总线104设计的芯片组实现。
连到I/O总线110的外围设备可以包括例如,高速网络适配器或网络接口卡(NIC)114,系统100通过它连接到一个数据处理网络,如局域网(它本身可以与一广域网如因特网连接);DASD控制器116,DASD120与它相连;以及,通用I/O适配器112,服务处理器113与它相连。
在一个实施例中,DASD控制器116和DASD120是遵循AT嵌入式接口(ATA)的设备,一般还称作IDE设备,如ANSI信息技术标准化国家委员会(NCITS)317-1998中规定的那样。ATA硬盘包含绝大多数桌面和膝上类个人计算机中的主引导设备。在其他实施例中,DASD120可以作为由SCSI主机适配器控制的SCSI硬盘或作为廉价冗余磁盘阵列(RAID)来实现,在RAID的情况中,DASD控制器116代表一个RAID控制器。
现在参考

图1B,图中显示适用于数据处理系统100中的一个普通外围设备121的选定部件的简化方框图。外围设备121拟代表系统100中使用的任何特定外围设备。这样,外围设备121的选定部件对于DASD控制器116、NIC114以及服务处理器113是共同的,包括嵌入式控制器123、可随机访问的而且通常为易失的存储器(RAM)125以及标识成固件127的非易失代码。固件127代表由控制器123执行的针对设备的指令序列,它规定外围设备127与主机系统交互作用的方式。当系统100经由特定设备的驱动器发出一个I/O命令时,该设备的固件把该设备驱动器调用翻译成可由控制器123执行的一组命令。固件127通常存储在ROM或闪速存储器卡之类的非易失存储器中。除了设备的固件外,这个非易失设备还可以进一步包括内部存储的标识(ID)信息,它可经由I/O总线110被访问以识别该外围设备。
如已经针对固件127说明的那样,本发明的一些部分可以作为一组可由计算机执行的指令(软件)来实现,这些指令存储在计算机可读介质中,如系统存储器106、处理器102的高速缓冲存储器(未画出)、NVM103、软盘、硬盘、CD ROM、DVD、磁带或其他适用的存储部件中。
参考图2,图中显示可以构成系统100一部分的选定软件模块的概念描述。在所描述的实施例中,NVM103含有BIOS代码130,每次系统100加电或复位时它被调用或执行。BIOS代码130通常被配置成为操作系统建立到硬件接口的低水平抽象层,以执行系统的POST和至少把操作系统的一部分从DASD120复制到系统存储器106。些外,BIOS代码130被配置成借助其相应的设备标识信息(图2中用参考数字128代表)识别连到I/O总线110(示于图1A)的每个外围设备。
根据本发明的一个实施例,BIOS130被配置成在成功完成POST之后确定对每个被识别出的外围设备是否存在BIOS扩展文件。如果系统BIOS130检测到对应于一个被识别出的外围设备的BIOS扩展文件,BIOS130验证该文件并把有效扩展文件的一些部分复制到系统存储器106的一部分中。BIOS扩展文件的加载可以按美国专利申请“使用存储设备的隐藏分区存储BIOS扩展文件”(序列号10/050,032,2002年1月15日申请)中描述的方式来完成,该申请被转证给本申请的共同受让人。
BIOS130通常还包括一个初始程序装入(IPL)部件,它被配置成至少把部分操作系统130提取到系统存储器106。通常,IPL提取为建立分页表、段描述符和其他存储器管理模块所需要的操作系统130的核心或内核部分。此外,IPL可以被配置成提取一个或多个外围设备驱动器(由参考数字141a至141n标识)。系统100的每个外围设备通常需要设备驱动器141使操作系统能控制该外围设备。
图2进一步显示外围设备113、114和116的选定软件部件。更具体地说,在所示系统100实施例中的外围设备包括外围设备识别代码(由参考数字128a至128c标识)和外围设备固件(由参考数字127a至127c标识)。此外,图2显示存储在DASD120的服务分区124中的固件映像129a--129c以及存储在系统存储器106中的固件更新模块142和导向器144。下文中将更详地描述这些部件。
一般地说,本发明强调一个系统和方法,用于在局部存储器中保持最后的外围设备固件的映像或拷贝,更具体地说,是在系统的DASD的专用分区中保持它们。在替换一个或多个可替换设备的现场服务事件之后,系统能自动验证任何新安装的外围设备的固件版本。如果检测到一个固件版本不匹配,则系统能采取校正行动,由本机存储的映像更新该外围设备上的固件。如果一个外围设备固件被更新,则更新后的版本被映射到该专用分区供将来验证之用。以这种方式,使保持正确固件的任务自动化,从而使现场服务技术人员减轻了为每台机器上的每个外围设备保持正确的固件水平的责任。
为便于固件版本的本机存储,图2中描绘的DASD120的实施例在逻辑上分区为至少两个分区,在图中标识为用户分区122和服务分区124。如其名字暗含的意思那样,用户分区122标识DASD120的可为操作系统和应用程序使用的那一部分。服务分区124代表DASD120的“隐藏“部分,操作系统和在操作系统下运行的任何应用程序一般是不可访问它的。服务分区124可以通过调用SET MAX ADDRESS(设置最高地址)命令来配置,该命令配置可由操作系统访问的DASD120最高逻辑块地址。使用SETMAX ADDRESS命令对DASD120进行分区的一种方法在美国国家标准化委员会(ANSI)的内部工作报告“受保护区运行时接口扩展服务”(PARTIES)及其后续报告中有更充分的描述。BIOS130可以被配置成确定用户分区122(通常从逻辑块地址0到最高地址126)和服务分区124(通常从最高地址126向上)之间的边界。本发明的一个实施例使用DASD120中的服务分区124存储与系统100连接的一个或多个外围设备的固件本机拷贝。
为实现当前固件版本的本机存储和在现场服务事件之后自动验证固件,本发明纳入一个固件更新模块(由参考数字142标识)以及询问该系统上每个外围设备当前固件版本或水平的设施或手段。在一个实施例中,BIOS130在POST期间启动一个新的系统调用,使外围设备硬件能报告固件水平,以收集该系统上实际安装的全部硬件的固件水平。然后,将提取到的这些值与DASD中存储的固件映像的版本水平加以比较。如果POST检测到一个固件水平不匹配,则BIOS130可以迫使引导程序进入服务分区,通过对任何不匹配设备的固件重新编程或更新以及在可由管理应用访问的分区内保持更新日志来校正这个不匹配。当该系统在其后被重新引导时,在每个外围设备上的固件将与相应的设备驱动器版本一致。
现在参考图3,图中显示的流程图说明根据本发明的一个实施例在数据处理系统中保持外围设备固件版本的方法。在所描绘的实施例中,通常是响应加电、硬件复位事件或软重新启动(如操作系统重新启动或输入特定的键盘组合(例如CntlAltDel)),使系统BIOS启动(块152)。作为其执行的一部分,BIOS识别(块154)与系统I/O总线(一条或多条总线)相连的每个外围设备适配器并启动(块156)POST。作为POST的一部分,系统100使用一系统调用确定(块158)识别出的每个外围设备的固件版本,该系统调用被设计成使适配器能报告它们的固件版本水平。
然后,将从硬件设备本身中提取的固件版本水平与指出每个外围设备的当前被认可或被确认的固件版本水平的存档信息加以比较(块160)。在一个实施例中,这一存档的信息存储在系统DASD的一个分区(服务分区),它是专用于保存固件版本、设备驱动器等的。因为这些软件部件与当前技术水平的盘设备所提供的大存储容量相比通常是比较小的,预计专用存储区只占据整个盘空间的一小部分。
如果所安装的固件水平和存档的水平之间的比较揭示(块162)出没有固件版本不匹配的情况,则BIOS执行初始程序装入(IPL)以提取必要的操作系统部件,于是系统呈现一种操作状态直至下一个引导事件,如果检测到不匹配,则自动采取行动使硬件的固件版本与存档版本一致。在所描述的实施例中,这一校正行动包括引导进入存档固件驻留的服务分区(块164)。然后服务分区可以针对根据存档信息所应该的水平来验证全部设备的固件水平。然后这一验证代码将迫使进行固件更新(块166)到存储在任何不匹配的设备的服务分区上的正确水平,以保证在下一次系统引导之后固件将与驱动器版本匹配。在该优选实施例中,所执行的每个更新程序被记录(块168)在服务分区日志或IBM服务器事件日志中,可由管理应用,如IBM导向器应用(以参考数字144标识)访问。在固件被更新之后,执行系统重新引导(块170)。
当发生固件修改或更新时,使用更新模块(图2中用参考数字142标识)把新修改过的固件映射到服务分区中。更新模块142可以包含BIOS在系统引导期间调用的模块,以使该模块能访问服务分区124。由更新模块142进行的任何软件更新也被记录在可由管理应用访问的服务分区日志中。对于从本公开内容受益的那些本领域技术人员,显然本发明设想了一个系统和方法用于自动保存数据处理系统中外围设备的固件版本。应该理解,在详细描述和附图中所显示和描述的本发明的形式只是作为当前的优选实施例。下列权利要求应被广义地解释为包括所公开的优选实施例的全部变化。
权利要求
1.一种在数据处理系统中保持固件版本的方法,包含把与系统关联的至少一个外围设备的当前固件映像到可被系统访问的非易失存储器的一部分中;在引导序列期间,将至少一个外围设备中的每一个上的固件版本与映像在系统非易失存储器中的相应版本加以比较;以及响应检测到的设备固件版本与相应映像版本之间的不匹配,更新各外围设备的固件以与映像版本一致。
2.权利要求1的方法,其中映像当前固件包括把系统存储器分区成至少一个用户分区和一个服务分区并把固件映像存储到服务分区中。
3.权利要求2的方法,其中服务分区是系统的操作系统和应用所不能访问的。
4.权利要求2的方法,其中服务分区是根据PARTIES规程实现的。
5.权利要求2的方法,其中更新固件包括引导进入服务分区使得服务分区可以验证每个外围设备的固件版本。
6.权利要求1的方法,进一步包含把固件的每次更新记录在可由管理软件访问的日志中。
7.权利要求1的方法,其中外围设备包括从网络接口设备、DASD控制器以及服务处理器中选出的至少一个设备。
8.一种包含计算机可读介质的计算机程序产品,配置有计算机可执行指令,用于在数据处理系统中保持固件版本,该程序产品包含计算机代码单元,用于把与系统关联的至少一个外围设备的当前固件映像到可被系统访问的非易失存储器的一部分中;计算机代码单元,用于在引导序列期间,将至少一个外围设备中的每一个上的固件版本与映像在系统非易失存储器中的相应版本加以比较;以及计算机代码单元,用于响应检测到的设备固件版本与相应映像版本之间的不匹配,更新各外围设备的固件以与映像版本一致。
9.权利要求8的计算机程序产品,其中映像当前固件的代码单元包括用于把系统存储器分区成至少一个用户分区和一个服务分区并把固件映像存储到服务分区中的代码单元。
10.权利要求9的计算机程序产品,其中服务分区是系统的操作系统和应用所不能访问的。
11.权利要求9的计算机程序产品,其中服务分区是根据PARTIES规程实现的。
12.权利要求9的计算机程序产品,其中用于更新固件的代码单元包括用于引导进入服务分区使得服务分区可以验证每个外围设备的固件版本的代码单元。
13.权利要求9的计算机程序产品,进一步包含用于把固件的每次更新记录在可由管理软件访问的日志中的代码单元。
14.一个数据处理系统,包括至少一个与系统存储器连接的处理器和至少一个可由该处理器访问的外围设备,该系统进一步包含把与系统关联的至少一个外围设备的当前固件映像到可被系统访问的非易失存储器的一部分中的装置;在引导序列期间,将至少一个外围设备中的每一个上的固件版本与映像在系统非易失存储器中的相应版本加以比较的装置;以及响应检测到的设备固件版本与相应映像版本之间的不匹配,更新各外围设备的固件以与映像版本一致的装置。
15.权利要求14的系统,其中映像当前固件的装置包括把系统存储器分区成至少一个用户分区和一个服务分区并把固件映像存储到服务分区的装置。
16.权利要求15的系统,其中服务分区是系统的操作系统和应用所不能访问的。
17.权利要求15的系统,其中服务分区是根据PARTIES规程实现的。
18.权利要求15的系统,其中用于更新固件的装置包括用于引导进入服务分区使得服务分区可以验证每个外围设备的固件版本的装置。
19.权利要求14的系统,进一步包含用于把固件的每次更新记录在可由管理软件访问的日志中的装置。
20.权利要求14的系统,其中外围设备包括从网络接口设备、DASD控制器以及服务处理器中选出的至少一个设备。
全文摘要
本发明公开一种在数据处理系统中保持固件版本的方法和系统。在系统引导过程中,引导代码将启动一个报告该设备固件版本水平的外围设备调用,以把所有外围设备的固件版本与在服务分区中存储的存档固件版本加以比较。如果检测到不匹配,则系统引导通常将强行把该外围设备固件更新到它所知道的好的水平。任何这种固件更新都被记录在可由系统管理应用访问的日志中。对固件的任何修正可以被映像到该服务分区中,从而在接下来的下一次系统引导过程中此修正后的版本将被纳入该外围设备本身之中。
文档编号G06F3/06GK1469252SQ03137390
公开日2004年1月21日 申请日期2003年6月19日 优先权日2002年6月21日
发明者R·W·帕尔默, G·B·普鲁厄特, D·B·罗兹, I·维拉, R W 帕尔默, 普鲁厄特, 罗兹 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1