(10)申请公布号 (43)申请公布日 2014.06.18
C N 103870355
A (21)申请号 201210547226.4
(22)申请日 2012.12.17
G06F 11/10(2006.01)
(71)申请人鸿富锦精密工业(深圳)有限公司
地址518109 广东省深圳市宝安区龙华镇油
松第十工业区东环二路2号
申请人鸿海精密工业股份有限公司
(72)发明人
邱佳琅
(54)发明名称
(57)摘要
BIOS 芯片的奇数数据块中的数据以及第二BIOS 芯片的偶数数据块中的数据分别进行读取,然后
存入中间控制设备的缓存中。当服务器开机初始
化之后,服务器的处理器可根据该缓存中存储的
数据进行BIOS 的存取操作。此外,该系统在读取
的过程中,若发现数据块中的数据发生异常时,自
动对该数据块中的数据进行修复。本发明还提供
一种BIOS 存取方法。本发明可提高服务器的运行
稳定性。
(51)Int.Cl.
权利要求书3页 说明书5页 附图4页
(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书3页 说明书5页 附图4页(10)申请公布号CN 103870355 A
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中的数据和CR
C校验码修复第一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存取方法,其特征在于,所述中间控制设备为现场可编程门阵列控制器或基板管理控制器。
1/5页
BIOS 存取系统及方法技术领域
[0001] 本发明涉及一种BIOS 存取系统及方法。
背景技术
[0002]
BIOS (Basic Input Output System ,基本输入输出系统)是计算机设备在系统初
始化时运行的重要程序。在系统初始化时,计算机设备的大部分硬件资源都不能工作。在服务器上,一般会有独立于服务器主机的中间控制设备,如FPGA (Field Programmable Gate Array ,现场可编程门阵列)控制器和BMC (Baseboard Management Control ,基板管理控制器)等,用于给服务器提供额外的功能性支持。传统的服务器对BIOS 的存取方法均是在系统初始化之后,由服务器的处理器对一BIOS 芯片进行BIOS 存取操作,存取的效率较低,并且在读取的BIOS 数据发生错误时,不能及时对错误的数据进行修复,可能给服务器系统的运行稳定性带来隐患。发明内容
[0003]
鉴于以上内容,有必要提供一种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 中的数据读取出来并存入所述缓存中。
[0004] 还有必要提供一种应用于所述中间控制设备的BIOS 存取方法,该方法包括:BIOS 读取步骤,从第一BIOS 芯片中依次读取奇数的第一数据块中的数据以及从第二BIOS 芯片中依次读取偶数的第一数据块中的数据,然后根据从每个第一数据块Bn 中读取的数据为该第一数据块Bn 计算一个CRC 校验码;校验码比较步骤,比较为每个第一数据块Bn 计算得到的CRC 校验码与该第一数据块Bn 中原始存储的CRC 校验码是否相同;缓存步骤,当为第一数据块Bn 计算得到的CRC 校验码与该第一数据块Bn 中原始存储的CRC 校验码相同时,说 明 书CN 103870355 A