本发明属于数据存储领域,特别涉及一种计算机中存储数据的方法。
背景技术:
现有的计算机中存储数据的方式主要有两种,一种是计算机加载操作系统后的数据,该类数据通常是存储在内存中的,这样的存储方式的缺点是断电之后数据会丢失;另一种是将一些数据存储在BIOS(基本输入输出系统)芯片中,该类数据需要使用时从BIOS芯片中读出到内存中存储,这种方式存在两个问题:第一,每次断电后内存中的数据都会丢失,所以每次上电开机后都需要再从BIOS芯片中将数据读取到内存中,这必然会增加总线上的开销;第二,BIOS芯片自身数据需要的空间就很大,同时还要划分空间来保存前述的数据,这会造成存储空间紧张。
技术实现要素:
本发明要解决的技术问题是为了克服现有技术中计算机中存储数据的方式存在掉电易丢失、会造成BIOS芯片存储空间紧张以及总线开销大的缺陷,提供一种空间利用方便、掉电不丢失、安全性高且操作便利的计算机中存储数据的方法。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供了一种计算机中存储数据的方法,所述计算机包括中央处理单元,基本输入输出系统芯片和超级输入输出芯片,所述超级输入输出芯片为内部集成SPI(Serial Peripheral Interface,串行外设接口)Flash(编码型快闪记忆体)的嵌入式控制器芯片,所述嵌入式控制器芯片通过LPC(Low pin count Bus,一种计算机中的总线)总线与所述中央处理单元通信连接,所述基本输入输出系统芯片通过SPI总线与中央处理单元通信连接,所述方法包括以下步骤:
将掉电易丢失的所述数据存储至所述SPI Flash中;
所述数据包括产品序列号,所述产品序列号用于唯一的识别所述计算机的身份;
所述基本输入输出系统芯片在所述计算机开机时通过所述嵌入式控制器芯片获取所述产品序列号,所述基本输入输出系统芯片使用所述产品序列号识别所述计算机的身份。
较佳地,所述数据还包括设备的状态信息,所述设备包括键盘、鼠标、串口、电源中的至少一种。
较佳地,所述设备的状态信息包括所述设备关机前的状态信息。
较佳地,所述状态信息包括开启状态和/或关闭状态。
较佳地,所述方法包括以下步骤:
在所述计算机生产时,将所述产品序列号通过所述LPC总线传输至所述嵌入式控制器芯片,所述嵌入式控制器芯片通过内部的固件将所述产品序列号写入所述SPI Flash中;
在所述计算机开机时,所述基本输入输出系统芯片通过所述嵌入式控制器芯片读出所述SPI Flash中的所述产品序列号。
较佳地,所述数据还包括加密数据、密钥和密码中的至少一种。
较佳地,当所述数据为密钥时,所述密钥为非对称加密算法中的私钥;
所述方法还包括以下步骤:
将所述私钥存储至所述SPI Flash中的预设的地址空间;
当需要解密时,所述嵌入式控制器芯片通过内部的固件读取所述SPI Flash中存储的所述私钥并传输至所述中央处理单元。
较佳地,所述方法还包括以下步骤:
将所述嵌入式控制器芯片设置为写保护状态,以使得所述SPI Flash不可擦除。
本发明的积极进步效果在于:
本发明提供的计算机中存储数据的方法在不改变计算机内部硬件架构的情况下,通过将掉电易丢失的重要的数据存储至EC(嵌入式控制器芯片)内部集成的SPI Flash中,实现了一次写入,永久存储,通过利用EC芯片内部的存储空间,解决了BIOS芯片空间紧张的问题,同时读写操作相对便捷,另外也解决了数据掉电易丢失的问题,提高了数据的安全性。
附图说明
图1为本发明实施例1的一种计算机中存储数据的方法中的计算机的结构示意图。
图2为本发明实施例1的一种计算机中存储数据的方法的流程图。
图3为本发明实施例3的一种计算机中存储数据的方法的流程图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供了一种计算机中存储数据的方法,如图1所示,计算机包括CPU(中央处理单元)、BIOS芯片和超级输入输出芯片,所述超级输入输出芯片为内部集成SPI Flash和SRAM(静态随机存取存储器)的EC(嵌入式控制器)芯片,EC芯片通过LPC总线与CPU通信连接,BIOS芯片通过SPI总线与CPU通信连接,所述方法包括以下步骤:
将掉电易丢失的所述数据存储至所述SPI Flash中。其中,数据包括产品序列号,该产品序列号用于唯一的识别所述计算机的身份。BIOS芯片在所述计算机开机时通过EC芯片获取所述产品序列号,所述BIOS芯片使用所述产品序列号识别所述计算机的身份。
如图2所示,本方法具体包括以下步骤:
步骤101、在计算机生产时,将所述产品序列号通过所述LPC总线传输至EC芯片。
步骤102、EC芯片通过内部的固件将所述产品序列号写入所述SPI Flash中。
步骤103、在所述计算机开机时,BIOS芯片通过EC芯片读出所述SPI Flash中的所述产品序列号,供其使用。
本实施例中,EC芯片通过内部的SPI写指令,把产品序列号保存到SPI Flash中;在需要的时候,再通过读指令,将数据从SPI Flash中读出来。
本实施例中,除了EC芯片可以访问内部的SPI Flash外,上层的BIOS芯片以及操作系统层的应用程式也可以通过LPC接口把数据传递给EC芯片,EC芯片再完成保存。
具体实施时,在计算机生产过程中,可以通过软件工具把产品序列号经LPC接口传输至EC芯片,EC芯片内部的固件再通过SPI接口写入芯片内部的SPI Flash中。当开机时,BIOS芯片通过LPC接口告知EC芯片,现在需要产品序列号,EC芯片再通过SPI接口将产品序列号读出来,再通过LPC接口传输给BIOS芯片,BIOS芯片再将产品序列号显示出来。也就是说,不需要每次都用软件工具写产品序列号,本实施例中,产品序列号被写入EC芯片内部的SPI Flash之后就可以永久保存,以用于识别该计算机,该计算机到了终端用户之后,如果出现问题,通过该产品序列号即可追查问题。
本实施例提供的计算机中存储数据的方法,在不改变计算机内部硬件架构的情况下,通过将掉电易丢失的重要的数据存储至EC内部集成的SPI Flash中,实现了一次写入,永久存储,通过利用EC内部的存储空间,解决了BIOS空间紧张的问题,同时读写操作相对便捷,另外也解决了数据掉电易丢失的问题,提高了数据的安全性。
实施例2
本实施例提供的计算机中存储数据的方法是对实施例1的进一步改进,具体地:
本实施例中,所述数据还包括设备的状态信息,所述设备包括键盘、鼠标、串口、电源中的至少一种。所述设备的状态信息包括所述设备关机前的状态信息,该状态信息用于表示设备是开启状态还是关闭状态。具体地,所述状态信息包括开启状态和/或关闭状态。
本实施例中,通过将设备的状态信息也存储至EC内部的SPI Flash中,使得计算机在关机前能够将已经设置好的键盘、鼠标、串口、电源的设备的状态信息保存下来,待下次开机时直接读取EC芯片内部集成的SPI Flash中的设备的状态信息,使得设备能够快速的恢复至之前保存的状态,由此解决了设备的状态信息掉电丢失的问题。
实施例3
本实施例提供的计算机中存储数据的方法是对实施例1的进一步改进,具体地:
本实施例中,所述数据还包括密钥,所述密钥为非对称加密算法中的私钥。
如图3所示,本实施例提供的计算机中存储数据的方法还包括以下步骤:
步骤301、将所述私钥存储至所述SPI Flash中的预设的地址空间。
步骤302、将EC芯片设置为写保护状态,以使得写入私钥后的SPI Flash不可擦除。
步骤303、当需要解密时,EC芯片通过内部的固件读取SPI Flash中存储的所述私钥并传输至CPU。
在非对称加密算法中通常会用到公私钥对,其中私钥需要保密。现有将私钥存储在内存中掉电会丢失,私钥一旦丢失就无法再解密。本实施例中,针对非对称加密算法的私钥需要保密的情况提出了一种安全的存储方案。具体为在EC芯片内部的SPI Flash中预先设置一段存储空间,例如1024字节专门用于存放私钥。为了保证该私钥不被擦除掉,再将EC芯片设置为写保护状态,具体可以通过设置EC芯片的相应的配置引脚实现。随后,在需要运行解密算法时,EC芯片内部的固件通过其芯片内部的SPI接口读取SPI Flash中已经存储的私钥,然后再运行解密算法进行解密。
需要说明的是,本发明中,所述数据还可以是要求在掉电后不丢失的加密数据或者密码等。
本实施例提供的计算机中存储数据的方法通过对EC芯片的写保护,使得SPI Flash内部存储的数据不会被误擦除或者重写,从而提高了数据的安全性。另外,本实施例充分利用了EC芯片内部的SPI Flash的空间,在不增加硬件成本的前提下提高了计算机中存储空间的利用率,同时对于这些存储在SPI Flash中的重要的数据的读写也是基于原有的硬件和软件架构,读写操作十分便捷。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。