BIOS存取系统及方法[发明专利]

(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)发明名称
BIOS 存取系统及方法
(57)摘要
一种BIOS 存取系统,应用于服务器的中间控
制设备中,该服务器包括第一BIOS 芯片以及第
二BIOS 芯片,该系统通过并行读取的方式对第一
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

本文发布于:2024-09-22 20:25:52,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/432180.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   芯片   服务器   系统   读取   校验码
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议