本发明涉及计算机,具体涉及一种eeprom数据管理方法、装置、设备及存储介质。
背景技术:
1、eeprom(electrically erasable programmable read only memory,带电可擦可编程只读存储器)广泛应用于对数据存储安全性及可靠性要求高的应用场合,如门禁考勤系统,测量和医疗仪表,非接触式智能卡,税控收款机等等。随着编程次数的增加,eeprom存在损坏的概率,同时存储的数据也会因震荡、噪声、遇磁等发生错误。
2、在服务器上eeprom用来存储mac(mediaaccesscontrol,媒体访问控制)地址、fru(field replace unit,现场可更换单元)信息、串口切换信息、登录验证秘钥、账户密码以及其它用户可以定制化的信息,此部分信息关系到服务器系统正常运行以及用户服务正常提供,若是数据出现异常容易导致服务器宕机,用户无法登陆管理,以及设备运行异常报警等状态,从而对数据可靠性要求很高。因此,在服务器应用上需要eeprom在出现故障或者数据跳变后能自动对数据进行纠错的功能,从而保证服务器运行稳定可靠。
3、相关技术通过对eeprom存储的数据进行冗余编码,保证数据自身拥有纠错能力。但是相关技术都是对数据进行编码后将纠错码与数据一同存储到eeprom,bmc(boardmanagement controller,基板控制器)中的读写软件在读取数据时重新计算一遍纠错码,如果纠错码与eeprom中保存的纠错码一致则将数据读到bmc缓存,当host(服务器主机)系统向bmc请求数据时,再将bmc缓存中的数据转发给host。此方式因为需要额外空间存储纠错码会导致eeprom有效数据容量变低,这使得本身容量较低的eeprom存储空间利用率大打折扣,另外数据与纠错码一起存储需要对数据编码,存储编码后的数据,需要读写软件必须配套使用解码软件解码后才能拿到可用数据。从而存在eeprom存储空间占用过多、设备不够精简、系统运行不够稳定的问题。
技术实现思路
1、有鉴于此,本发明提供了一种eeprom数据管理方法、装置、设备及存储介质,以解决相关技术管理eeprom数据时存在存储空间占用过多、设备不够精简、系统运行不够稳定的问题。
2、第一方面,本发明提供了一种eeprom数据管理方法,方法应用于bmc,包括:通过读写模块发送读取消息到预设的纠错模块;通过纠错模块接收读取消息,并响应于读取消息分别从eeprom和目标闪存中获取目标数据和纠错码;通过纠错模块利用纠错码对目标数据的完整性进行验证;当验证通过时,通过纠错模块反馈数据正常信息到读写模块;通过读写模块接收数据正常信息,并响应于数据正常信息从eeprom中读取目标数据到bmc缓存。
3、根据上述技术手段,本实施例通过单独的目标闪存保存纠错码,并将读写模块和纠错模块独立部署。当读写模块需要读取数据到bmc缓存时,纠错模块会首先到eeprom中查看数据,并利用从目标闪存获取的纠错码对数据的完整性进行验证,当验证通过时才告知纠错模块eeprom中的目标数据正常,可以进行读取,从而读写模块再从eeprom中将目标数据读取到bmc缓存,以供服务器主机调用。一方面,纠错码不再与目标数据同时保存,减少了eeprom存储空间的占用,另一方面,纠错码与目标数据不再需要编码保存,为读写模块去除了编码解码软件,降低了读写模块的复杂度,提升设备精简程度。另外,纠错模块与读写模块分为两个独立的进程各自运行,读写不与纠错耦合,提高了系统运行的稳定性。
4、在一种可选地实施方式中,通过读写模块发送读取消息到预设的纠错模块包括:当bmc上电启动时,通过读写模块检测eeprom是否初始化;当eeprom未初始化时,通过读写模块将默认配置数据写入eeprom,并标记eeprom已初始化;当eeprom已初始化时,通过读写模块发送已初始化消息到纠错模块,其中已初始化消息作为读取消息。
5、在一种可选地实施方式中,响应于读取消息分别从eeprom和目标闪存中获取目标数据和纠错码,包括:当bmc上电启动时,通过纠错模块检测目标闪存的纠错码区是否可用,其中当目标闪存中存储的纠错码能够纠错目标数据时纠错码区被标记为可用;当纠错码区可用时,通过纠错模块判断是否已接收到已初始化消息;当接收到已初始化消息时,通过纠错模块分别从eeprom和目标闪存中获取目标数据和纠错码。
6、在一种可选地实施方式中,方法还包括:当纠错码区不可用时,通过纠错模块等待已初始化消息;当通过纠错模块接收到已初始化消息时,响应于已初始化消息从eeprom中获取目标数据,并计算目标数据对应的纠错码;通过纠错模块将纠错码写入目标闪存,并标记目标闪存的纠错码区为可用。
7、根据上述技术手段,本实施例提供的纠错模块和读写模块都在bmc上电启动时自动运行,各自执行任务,并在执行任务的过程中互相配合。首先在bmc上电时,读写模块会检测eeprom是否初始化,如果初始化则告知自身已经准备就绪,纠错模块可以随时开始执行纠错功能,如果没有初始化则读写模块对eeprom进行初始化。在同一时间,bmc一上电纠错模块会立即启动并检测目标闪存中的纠错码是否可用,如果可用则等到读写模块发送的已初始化消息到来立刻开始进行数据的完整性验证,如果不可用则等待初始化消息到来,从而确认eeprom已经有数据,重新计算纠错码保存到目标闪存,并默认纠错码是正确的,将其标记为可用,进而重新执行数据完整性验证的流程。通过这一方式,读写模块与纠错模块是并行运行的两个进程,只需在需要对方数据的条件下进行等待,与相关技术通过读写模块读取数据之后再进行纠错的方案相比,不仅减少了任务执行时间,而且在数据和纠错码发生错误的情况下也不需要读取流程重复多遍执行,纠错模块会在读写模块读取数据之前将纠错码和数据整理准确,保证数据的完整性。
8、在一种可选地实施方式中,方法还包括:当验证不通过时,通过纠错模块利用纠错码对目标数据进行纠错;当纠错失败时,通过纠错模块标记目标闪存的纠错码区为不可用;通过纠错模块反馈重新初始化信息到读写模块;通过读写模块接收重新初始化信息,并响应于重新初始化信息对eeprom重新初始化;当纠错成功时,通过纠错模块将纠错后的目标数据写入eeprom,以更新eeprom中的目标数据;通过纠错模块反馈重新读取信息到读写模块;通过读写模块接收重新读取信息,并响应于重新读取信息重新执行发送读取消息到预设的纠错模块的步骤。
9、在一种可选地实施方式中,方法还包括:通过读写模块接收服务器主机反馈的第二目标数据;通过读写模块将第二目标数据写入eeprom;在第二目标数据写入eeprom时,通过纠错模块检测第二目标数据和目标数据是否相同;若数据不相同,则通过纠错模块计算第二目标数据的第二纠错码;通过纠错模块将第二纠错码写入目标闪存,以更新目标闪存中的纠错码。
10、在一种可选地实施方式中,通过纠错模块利用纠错码对目标数据的完整性进行验证,包括:利用crc纠错码验证目标数据的各个位是否出现错误;当目标数据的各个位均验证正确时,判定目标数据的完整性验证通过;当目标数据的至少一位验证错误时,判定目标数据的完整性验证不通过。
11、第二方面,本发明提供了一种eeprom数据管理装置,装置应用于bmc,包括:纠错通知模块,用于通过读写模块发送读取消息到预设的纠错模块;纠错数据获取模块,用于通过纠错模块接收读取消息,并响应于读取消息分别从eeprom和目标闪存中获取目标数据和纠错码;验证模块,用于通过纠错模块利用纠错码对目标数据的完整性进行验证;正常反馈模块,用于当验证通过时,通过纠错模块反馈数据正常信息到读写模块;数据读取模块,用于通过读写模块接收数据正常信息,并响应于数据正常信息从eeprom中读取目标数据到bmc缓存。
12、第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的方法。
13、第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的方法。