Bios存取系统及方法

文档序号:6493030阅读:348来源:国知局
Bios存取系统及方法
【专利摘要】一种BIOS存取系统,应用于服务器的中间控制设备中,该服务器包括第一BIOS芯片以及第二BIOS芯片,该系统通过并行读取的方式对第一BIOS芯片的奇数数据块中的数据以及第二BIOS芯片的偶数数据块中的数据分别进行读取,然后存入中间控制设备的缓存中。当服务器开机初始化之后,服务器的处理器可根据该缓存中存储的数据进行BIOS的存取操作。此外,该系统在读取的过程中,若发现数据块中的数据发生异常时,自动对该数据块中的数据进行修复。本发明还提供一种BIOS存取方法。本发明可提高服务器的运行稳定性。
【专利说明】BIOS存取系统及方法
【技术领域】
[0001]本发明涉及一种BIOS存取系统及方法。
【背景技术】
[0002]BIOS (Basic Input Output System,基本输入输出系统)是计算机设备在系统初始化时运行的重要程序。在系统初始化时,计算机设备的大部分硬件资源都不能工作。在服务器上,一般会有独立于服务器主机的中间控制设备,如FPGA (Field Programmable GateArray,现场可编程门阵列)控制器和BMC (Baseboard Management Control,基板管理控制器)等,用于给服务器提供额外的功能性支持。传统的服务器对BIOS的存取方法均是在系统初始化之后,由服务器的处理器对一 BIOS芯片进行BIOS存取操作,存取的效率较低,并且在读取的BIOS数据发生错误时,不能及时对错误的数据进行修复,可能给服务器系统的运行稳定性带来隐患。

【发明内容】

[0003]鉴于以上内容,有必要提供一种BIOS存取系统,应用于服务器的中间控制设备中,该服务器包括第一 BIOS芯片以及第二 BIOS芯片。该系统包括:B10S读取模块,用于从第一 BIOS芯片中依次读取奇数的第一数据块中的数据以及从第二 BIOS芯片中依次读取偶数的第一数据块中的数据,然后根据从每个第一数据块Bn中读取的数据为该第一数据块Bn计算一个CRC校验码;校验码比较模块,用于比较为每个第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码是否相同;缓存模块,用于当为第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码相同时,将从该第一数据块Bn中读取的数据存入中间控制设备的缓存中;及修复模块,用于当为第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码不同且该第一数据块Bn为奇数的第一数据块时,根据所述第二 BIOS芯片的第一数据块Bn中的数据和CRC校验码修复第一 BIOS芯片中该第一数据块Bn中的数据和CRC校验码,以及将修复后的第一 BIOS芯片中第一数据块Bn中的数据读取出来并存入所述缓存中,或当为第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码不同且该第一数据块Bn为偶数的第一数据块时,根据所述第一 BIOS芯片的第一数据块Bn中的数据和CRC校验码修复第二 BIOS芯片中该第一数据块Bn中的数据和CRC校验码,以及将修复后的第二BIOS芯片的第一数据块Bn中的数据读取出来并存入所述缓存中。
[0004]还有必要提供一种应用于所述中间控制设备的BIOS存取方法,该方法包括:B10S读取步骤,从第一 BIOS芯片中依次读取奇数的第一数据块中的数据以及从第二 BIOS芯片中依次读取偶数的第一数据块中的数据,然后根据从每个第一数据块Bn中读取的数据为该第一数据块Bn计算一个CRC校验码;校验码比较步骤,比较为每个第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码是否相同;缓存步骤,当为第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码相同时,将从该第一数据块Bn中读取的数据存入中间控制设备的缓存中;及修复步骤,当为第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码不同且该第一数据块Bn为奇数的第一数据块时,根据所述第二 BIOS芯片的第一数据块Bn中的数据和CRC校验码修复第一 BIOS芯片中该第一数据块Bn中的数据和CRC校验码,以及将修复后的第一 BIOS芯片中第一数据块Bn中的数据读取出来并存入所述缓存中,或当为第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码不同且该第一数据块Bn为偶数的第一数据块时,根据所述第一 BIOS芯片的第一数据块Bn中的数据和CRC校验码修复第二 BIOS芯片中该第一数据块Bn中的数据和CRC校验码,以及将修复后的第二BIOS芯片的第一数据块Bn中的数据读取出来并存入所述缓存中。
[0005]相较于现有技术,本发明的BIOS存取系统及方法,通过服务器的中间控制设备辅助实现BIOS的存取。由于该中间控制设备可独立运行,在服务器开机初始化的过程中,该中间控制设备即可通过对服务器的双BIOS进行并行存取操作,且在存取过程中可及时发现BIOS的数据错误并进行自动修复,提高了服务器的稳定性。
【专利附图】

【附图说明】
[0006]图1是本发明提供的一服务器的方框示意图。
[0007]图2是图1中第一 BIOS芯片以及第二 BIOS芯片的BIOS存储空间由多个数据块组成的示意图。
[0008]图3是图1中的中间控制设备的功能架构图。
[0009]图4是本发明BIOS存取方法的流程图。
[0010]主要元件符号说明
【权利要求】
1.一种BIOS存取系统,应用于服务器的中间控制设备中,该服务器包括第一 BIOS芯片以及第二 BIOS芯片,该第一 BIOS芯片以及第二 BIOS芯片的BIOS存储空间包括多个用于存储BIOS的第一数据块,其特征在于,该系统包括: BIOS读取模块,用于从第一 BIOS芯片中依次读取奇数的第一数据块中的数据以及从第二 BIOS芯片中依次读取偶数的第一数据块中的数据,然后根据从每个第一数据块Bn中读取的数据为该第一数据块Bn计算一个CRC校验码; 校验码比较模块,用于比较为每个第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码是否相同; 缓存模块,用于当为第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码相同时,将从该第一数据块Bn中读取的数据存入中间控制设备的缓存中;及 修复模块,用于当为第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码不同且该第一数据块Bn为奇数的第一数据块时,根据所述第二 BIOS芯片的第一数据块Bn中的数据和CRC校验码修复第一 BIOS芯片中该第一数据块Bn中的数据和CRC校验码,以及将修复后的第一 BIOS芯片中第一数据块Bn中的数据读取出来并存入所述缓存中,或当为第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码不同且该第一数据块Bn为偶数的第一数据块时,根据所述第一 BIOS芯片的第一数据块Bn中的数据和CRC校验码修复第二 BIOS芯片中该第一数据块Bn中的数据和CRC校验码,以及 将修复后的第二 BIOS芯片的第一数据块Bn中的数据读取出来并存入所述缓存中。
2.如权利要求1所述的BIOS存取系统,其特征在于,当服务器完成初始化后,所述服务器的处理器根据所述缓存中存储的数据进行BIOS的存取操作。
3.如权利要求1所述的BIOS存取系统,其特征在于,所述第一BIOS芯片以及第二 BIOS芯片的BIOS存储空间还包括一第二数据块,用于存储关于BIOS的描述的元数据,该元数据包括一时间戳,该时间戳代表第一 BIOS芯片以及第二 BIOS芯片中存储的BIOS镜像文件的写入时间。
4.如权利要求3所述的BIOS存取系统,其特征在于,所述第一BIOS芯片以及第二 BIOS芯片中存储的元数据还包括一签名信息以及一数据长度信息,该签名信息指示第一 BIOS芯片以及第二 BIOS芯片中存储的BIOS镜像文件的格式,该长度信息指示第一 BIOS芯片以及第二 BIOS芯片中存储的BIOS镜像文件的数据长度或大小。
5.如权利要求3所述的BIOS存取系统,其特征在于,该系统还包括: 元数据读取模块,用于当服务器开机时,读取第一 BIOS芯片以及第二 BIOS芯片的第二数据块中存储的元数据,并从读取的元数据中获取第一 BIOS芯片的时间戳与第二 BIOS芯片的时间戳;及 数据更新模块,用于比较第一BIOS芯片的时间戳与第二BIOS芯片的时间戳是否相同,若第一 BIOS芯片的时间戳与第二 BIOS芯片的时间戳不同,使用较晚的时间戳对应的BIOS芯片的BIOS镜像文件和元数据对较早的时间戳对应的BIOS芯片的BIOS镜像文件和元数据进行更新。
6.如权利要求5所述的BIOS存取系统,其特征在于,所述数据更新模块还用于当所述第一 BIOS芯片未存储有BIOS镜像文件或者存储的BIOS镜像文件被损坏而无法读取时,将第二 BIOS芯片中存储的镜像文件复制到第一 BIOS芯片中,以及当所述第二 BIOS芯片未存储有BIOS镜像文件或者存储的BIOS镜像文件被损坏而无法读取时,将第一 BIOS芯片中存储的镜像文件复制到第二 BIOS芯片中。
7.如权利要求1所述的BIOS存取系统,其特征在于,所述中间控制设备为现场可编程门阵列控制器或基板管理控制器。
8.—种BIOS存取方法,应用于服务器的中间控制设备中,该服务器包括第一BIOS芯片以及第二 BIOS芯片,该第一 BIOS芯片以及第二 BIOS芯片的BIOS存储空间包括多个用于存储BIOS的第一数据块,其特征在于,该方法包括: BIOS读取步骤,从第一 BIOS芯片中依次读取奇数的第一数据块中的数据以及从第二BIOS芯片中依次读取偶数的第一数据块中的数据,然后根据从每个第一数据块Bn中读取的数据为该第一数据块Bn计算一个CRC校验码; 校验码比较步骤,比较为每个第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码是否相同; 缓存步骤,当为第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码相同时,将从该第一数据块Bn中读取的数据存入中间控制设备的缓存中 '及 修复步骤,当为第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码不同且该第一数据块Bn为奇数的第一数据块时,根据所述第二 BIOS芯片的第一数据块Bn中的数据和CRC校验码修复第一 BIOS芯片中该第一数据块Bn中的数据和CRC校验码,以及将修复后的第一 BIOS芯片中第一数据块Bn中的数据读取出来并存入所述缓存中,或当为第一数据块Bn计算得到的CRC校验码与该第一数据块Bn中原始存储的CRC校验码不同且该第一数据块Bn为偶数的第一数据块时,根据所述第一 BIOS芯片的第一数据块Bn中的数据和CRC校验码修复第二` BIOS芯片中该第一数据块Bn中的数据和CRC校验码,以及将修复后的第二 BIOS芯片的第一数据块Bn中的数据读取出来并存入所述缓存中。
9.如权利要求8所述的BIOS存取方法,其特征在于,当服务器完成初始化后,所述服务器的处理器根据所述缓存中存储的数据进行BIOS的存取操作。
10.如权利要求8所述的BIOS存取方法,其特征在于,所述第一BIOS芯片以及第二BIOS芯片的BIOS存储空间还包括一第二数据块,用于存储关于BIOS的描述的元数据,该元数据包括一时间戳,该时间戳代表第一 BIOS芯片以及第二 BIOS芯片中存储的BIOS镜像文件的写入时间。
11.如权利要求10所述的BIOS存取方法,其特征在于,所述第一BIOS芯片以及第二BIOS芯片中存储的元数据还包括一签名信息以及一数据长度信息,该签名信息指示第一BIOS芯片以及第二 BIOS芯片中存储的BIOS镜像文件的格式,该长度信息指示第一 BIOS芯片以及第二 BIOS芯片中存储的BIOS镜像文件的数据长度或大小。
12.如权利要求10所述的BIOS存取方法,其特征在于,该方法还包括: 元数据读取步骤,当服务器开机时,读取第一 BIOS芯片以及第二 BIOS芯片中存储的元数据,并从读取的元数据中获取第一 BIOS芯片的时间戳与第二 BIOS芯片的时间戳时间戳;及数据更新步骤,比较第一BIOS芯片的时间戳与第二BIOS芯片的时间戳是否相同,若第一 BIOS芯片的时间戳与第二 BIOS芯片的时间戳不同,使用较晚的时间戳对应的BIOS芯片的BIOS镜像文件和元数据对较早的时间戳对应的BIOS芯片的BIOS镜像文件和元数据进行更新。
13.如权利要求12所述的BIOS存取方法,其特征在于,该方法还包括: 当所述第一 BIOS芯片未存储有BIOS镜像文件或者存储的BIOS镜像文件被损坏而无法读取时,将第二 BIOS芯片中存储的镜像文件复制到第一 BIOS芯片中;及 当所述第二 BIOS芯片未存储有BIOS镜像文件或者存储的BIOS镜像文件被损坏而无法读取时,将第一 BIOS芯片中存储的镜像文件复制到第二 BIOS芯片中。
14.如权利要求8所述的BIOS存取方法,其特征在于,所述中间控制设备为现场可编程门阵列控制器或基板管理控`制器。
【文档编号】G06F11/10GK103870355SQ201210547226
【公开日】2014年6月18日 申请日期:2012年12月17日 优先权日:2012年12月17日
【发明者】邱佳琅 申请人:鸿富锦精密工业(深圳)有限公司, 鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1