本发明涉及数据存储,具体涉及备用校验纠错方法、装置、服务器及存储介质。
背景技术:
1、闪存flash中存储了静态随机存取存储码sram code、主机引导程序hostboot代码,及其对应的内存纠错ecc(error check and correct)校验数据。由于flash存在bit翻转的可能,因此,在引导装载bootloader阶段将固件fw数据搬出过程中需要进行一次ecc校验。ecc校验是保证固件数据可靠的重要工具
2、相关技术中,由于纠错内存eccengine有可靠性失效的风险,在eccengine可靠性失效时,缺乏针对eccengine可靠性失效的情况下的备用校验方法,无法对固件数据搬运流程进行纠错校验,进而导致固件数据的安全性与可靠性失去保障。
技术实现思路
1、有鉴于此,本发明提供了备用校验纠错方法、装置、服务器及存储介质,以解决缺乏针对eccengine可靠性失效的情况下的备用校验方法的问题。
2、第一方面,本发明提供了一种备用校验纠错方法,方法包括:
3、在闪存中设置固件数据与第一纠错数据;
4、对待测纠错内存进行纠错测试;
5、在待测纠错内存未通过纠错测试时,基于固件数据,生成固件数据对应的第二纠错数据;
6、将第二纠错数据与第一纠错数据进行对比,判断第二纠错数据与第一纠错数据是否存在差异;
7、在第二纠错数据与第一纠错数据不存在差异时,确认固件数据通过纠错校验,将固件数据搬运至存储器。
8、在本发明中,通过对纠错内存eccengine进行纠错测试,保证了eccengine的可靠性,使得固件数据在搬运过程中更为有效且安全。在eccengine的可靠性失效,eccengine无法正常进行ecc校验的情况下,通过备用的ecc校验过程,采用软件校验的方式,保证了bootloader引导装载阶段固件数据的搬运,保障了固件数据的可靠性与有效性,进一步保证了服务器的安全启动,提升了服务器的可靠性及稳定性。
9、在一种可选的实施方式中,对待测纠错内存进行纠错测试,包括:
10、在闪存中设置验证数据,验证数据与第一纠错数据相对应;
11、对第一纠错数据或验证数据进行注错;
12、基于注错后的验证数据与第一纠错数据,对待测纠错内存进行纠错测试。
13、在该方式中,通过增加纠错测试ecc engine test,对注错后的纠错数据与验证数据对待测纠错内存进行纠错测试,能够实时、有效且可重复地验证ecc engine的可靠性,保证固件数据fw data搬运的有效性、安全性。
14、在一种可选的实施方式中,在待测纠错内存通过纠错测试时,利用待测纠错内存,对固件数进行纠错校验,在固件数据通过纠错校验时,将固件数据搬运至存储器。
15、在该方式中,在纠错测试成功时,利用eccengine对固件数据进行ecc校验,在固件数据通过了ecc校验的情况下再进行固件数据搬运,保证了搬运至存储器的固件数据的有效性与安全性。
16、在一种可选的实施方式中,在固件数据未通过纠错校验时,中断对固件数据的搬运,并对固件数据未通过纠错校验进行上报。
17、在该方式中,在固件数据未通过ecc校验的情况下,进行中断上报,进一步保证了搬运至存储器的固件数据是具备有效性与安全性的固件数据。
18、在一种可选的实施方式中,基于固件数据,生成固件数据对应的第二纠错数据,包括:
19、将固件数据转化为二进制的固件数据;
20、对二进制的固件数据进行异或操作,生成固件数据对应的第二纠错数据。
21、在该方式中,在eccengine失去可靠性时,通过软件生成固件数据对应的第二ecc数据,便于后续利用第二ecc数据进行ecc校验,替代了出现故障的eccengine进行ecc校验,保障了在eccengine出现状况下的固件数据的有效性与可靠性。
22、在一种可选的实施方式中,在第二纠错数据与第一纠错数据存在差异时,判断第二纠错数据与第一纠错数据之间的差异是单bit错误还是双bit错误;
23、在第二纠错数据与第一纠错数据之间的差异是单bit错误时,对固件数据进行纠错,得到纠错后的固件数据;
24、将纠错后的固件数据搬运至存储器。
25、在该方式中,由于ecc校验算法中,单bit错误是可以修正的,因此,在检测到第一次与第二次不同情况下生成的ecc数据之间存在的差异是单bit错误的情况下,进行对应的修正,即可将纠错后的固件数据搬运至存储器,保证搬运至存储器的固件数据是有效且安全的。
26、在一种可选的实施方式中,在第二纠错数据与第一纠错数据之间的差异是双bit错误时,停止将固件数据搬运至存储器,触发中断并进行中断上报。
27、在该方式中,由于ecc校验算法中,双bit错误只能被检测出来,无法进行修正,因此在ecc数据之间出现双bit错误的情况下,需要中断固件数据的搬运流程,进行中断上报,进一步保障了搬运至存储器的固件数据是具备有效性与安全性的数据,避免了错误数据对存储器可能造成的危害。
28、第二方面,本发明提供了一种备用校验纠错装置,装置包括:
29、数据存储模块,用于在闪存中设置固件数据与第一纠错数据;
30、纠错测试模块,用于对待测纠错内存进行纠错测试;
31、备用纠错模块,用于在待测纠错内存未通过纠错测试时,基于固件数据,生成固件数据对应的第二纠错数据;
32、数据对比模块,用于将第二纠错数据与第一纠错数据进行对比,判断第二纠错数据与第一纠错数据是否存在差异;
33、数据搬运模块,用于在第二纠错数据与第一纠错数据不存在差异时,确认固件数据通过纠错校验,将固件数据搬运至存储器。
34、第三方面,本发明提供了一种服务器,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的备用校验纠错方法。
35、第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的备用校验纠错方法。
1.一种备用校验纠错方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述对待测纠错内存进行纠错测试,包括:
3.根据权利要求1所述的方法,其特征在于,在所述待测纠错内存通过纠错测试时,利用所述待测纠错内存,对所述固件数进行纠错校验,在所述固件数据通过纠错校验时,将所述固件数据搬运至所述存储器。
4.根据权利要求3所述的方法,其特征在于,在所述固件数据未通过纠错校验时,中断对所述固件数据的搬运,并对所述固件数据未通过纠错校验进行上报。
5.根据权利要求1所述的方法,其特征在于,所述基于所述固件数据,生成所述固件数据对应的第二纠错数据,包括:
6.根据权利要求1所述的方法,其特征在于,在所述第二纠错数据与所述第一纠错数据存在差异时,判断所述第二纠错数据与所述第一纠错数据之间的差异是单bit错误还是双bit错误;
7.根据权利要求6所述的方法,其特征在于,在所述第二纠错数据与所述第一纠错数据之间的差异是双bit错误时,停止将所述固件数据搬运至所述存储器,触发中断并进行中断上报。
8.一种备用校验纠错装置,其特征在于,所述装置包括:
9.一种服务器,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的备用校验纠错方法。