CN117112287A - 备用校验纠错方法、装置、服务器及存储介质 - Google Patents
备用校验纠错方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN117112287A CN117112287A CN202311154292.XA CN202311154292A CN117112287A CN 117112287 A CN117112287 A CN 117112287A CN 202311154292 A CN202311154292 A CN 202311154292A CN 117112287 A CN117112287 A CN 117112287A
- Authority
- CN
- China
- Prior art keywords
- error correction
- data
- memory
- firmware
- firmware data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012937 correction Methods 0.000 title claims abstract description 281
- 238000012795 verification Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000015654 memory Effects 0.000 claims abstract description 125
- 238000012360 testing method Methods 0.000 claims abstract description 53
- 238000013500 data storage Methods 0.000 claims abstract description 5
- 238000002347 injection Methods 0.000 claims description 10
- 239000007924 injection Substances 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 239000007787 solid Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及数据存储技术领域,公开了备用校验纠错方法、装置、服务器及存储介质,包括:在闪存中设置固件数据与第一纠错数据;对待测纠错内存进行纠错测试;在待测纠错内存未通过纠错测试时,基于固件数据,生成固件数据对应的第二纠错数据;将第二纠错数据与第一纠错数据进行对比,判断第二纠错数据与第一纠错数据是否存在差异;在第二纠错数据与第一纠错数据不存在差异时,确认固件数据通过纠错校验,将固件数据搬运至存储器,本发明在eccengine无法正常进行ecc校验的情况下,通过备用的ecc校验过程,保障了固件数据的可靠性与有效性,进一步保证了服务器的安全启动,提升了服务器的可靠性及稳定性。
Description
技术领域
本发明涉及数据存储技术领域,具体涉及备用校验纠错方法、装置、服务器及存储介质。
背景技术
闪存Flash中存储了静态随机存取存储码sram code、主机引导程序hostboot代码,及其对应的内存纠错ecc(Error Check and Correct)校验数据。由于flash存在bit翻转的可能,因此,在引导装载Bootloader阶段将固件fw数据搬出过程中需要进行一次ecc校验。Ecc校验是保证固件数据可靠的重要工具
相关技术中,由于纠错内存eccengine有可靠性失效的风险,在eccengine可靠性失效时,缺乏针对eccengine可靠性失效的情况下的备用校验方法,无法对固件数据搬运流程进行纠错校验,进而导致固件数据的安全性与可靠性失去保障。
发明内容
有鉴于此,本发明提供了备用校验纠错方法、装置、服务器及存储介质,以解决缺乏针对eccengine可靠性失效的情况下的备用校验方法的问题。
第一方面,本发明提供了一种备用校验纠错方法,方法包括:
在闪存中设置固件数据与第一纠错数据;
对待测纠错内存进行纠错测试;
在待测纠错内存未通过纠错测试时,基于固件数据,生成固件数据对应的第二纠错数据;
将第二纠错数据与第一纠错数据进行对比,判断第二纠错数据与第一纠错数据是否存在差异;
在第二纠错数据与第一纠错数据不存在差异时,确认固件数据通过纠错校验,将固件数据搬运至存储器。
在本发明中,通过对纠错内存eccengine进行纠错测试,保证了eccengine的可靠性,使得固件数据在搬运过程中更为有效且安全。在eccengine的可靠性失效,eccengine无法正常进行ecc校验的情况下,通过备用的ecc校验过程,采用软件校验的方式,保证了BootLoader引导装载阶段固件数据的搬运,保障了固件数据的可靠性与有效性,进一步保证了服务器的安全启动,提升了服务器的可靠性及稳定性。
在一种可选的实施方式中,对待测纠错内存进行纠错测试,包括:
在闪存中设置验证数据,验证数据与第一纠错数据相对应;
对第一纠错数据或验证数据进行注错;
基于注错后的验证数据与第一纠错数据,对待测纠错内存进行纠错测试。
在该方式中,通过增加纠错测试ecc engine test,对注错后的纠错数据与验证数据对待测纠错内存进行纠错测试,能够实时、有效且可重复地验证ecc engine的可靠性,保证固件数据fw data搬运的有效性、安全性。
在一种可选的实施方式中,在待测纠错内存通过纠错测试时,利用待测纠错内存,对固件数进行纠错校验,在固件数据通过纠错校验时,将固件数据搬运至存储器。
在该方式中,在纠错测试成功时,利用eccengine对固件数据进行ecc校验,在固件数据通过了ecc校验的情况下再进行固件数据搬运,保证了搬运至存储器的固件数据的有效性与安全性。
在一种可选的实施方式中,在固件数据未通过纠错校验时,中断对固件数据的搬运,并对固件数据未通过纠错校验进行上报。
在该方式中,在固件数据未通过ecc校验的情况下,进行中断上报,进一步保证了搬运至存储器的固件数据是具备有效性与安全性的固件数据。
在一种可选的实施方式中,基于固件数据,生成固件数据对应的第二纠错数据,包括:
将固件数据转化为二进制的固件数据;
对二进制的固件数据进行异或操作,生成固件数据对应的第二纠错数据。
在该方式中,在eccengine失去可靠性时,通过软件生成固件数据对应的第二ecc数据,便于后续利用第二ecc数据进行ecc校验,替代了出现故障的eccengine进行ecc校验,保障了在eccengine出现状况下的固件数据的有效性与可靠性。
在一种可选的实施方式中,在第二纠错数据与第一纠错数据存在差异时,判断第二纠错数据与第一纠错数据之间的差异是单bit错误还是双bit错误;
在第二纠错数据与第一纠错数据之间的差异是单bit错误时,对固件数据进行纠错,得到纠错后的固件数据;
将纠错后的固件数据搬运至存储器。
在该方式中,由于ecc校验算法中,单bit错误是可以修正的,因此,在检测到第一次与第二次不同情况下生成的ecc数据之间存在的差异是单bit错误的情况下,进行对应的修正,即可将纠错后的固件数据搬运至存储器,保证搬运至存储器的固件数据是有效且安全的。
在一种可选的实施方式中,在第二纠错数据与第一纠错数据之间的差异是双bit错误时,停止将固件数据搬运至存储器,触发中断并进行中断上报。
在该方式中,由于ecc校验算法中,双bit错误只能被检测出来,无法进行修正,因此在ecc数据之间出现双bit错误的情况下,需要中断固件数据的搬运流程,进行中断上报,进一步保障了搬运至存储器的固件数据是具备有效性与安全性的数据,避免了错误数据对存储器可能造成的危害。
第二方面,本发明提供了一种备用校验纠错装置,装置包括:
数据存储模块,用于在闪存中设置固件数据与第一纠错数据;
纠错测试模块,用于对待测纠错内存进行纠错测试;
备用纠错模块,用于在待测纠错内存未通过纠错测试时,基于固件数据,生成固件数据对应的第二纠错数据;
数据对比模块,用于将第二纠错数据与第一纠错数据进行对比,判断第二纠错数据与第一纠错数据是否存在差异;
数据搬运模块,用于在第二纠错数据与第一纠错数据不存在差异时,确认固件数据通过纠错校验,将固件数据搬运至存储器。
第三方面,本发明提供了一种服务器,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的备用校验纠错方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的备用校验纠错方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的备用校验纠错方法的流程示意图。
图2是根据本发明实施例的在bootloader阶段fwdata固件数据的搬运流程示意图。
图3是根据本发明实施例的软件方式的备用ecc校验的流程示意图。
图4是根据本发明实施例的另一备用校验纠错方法的流程示意图。
图5是根据本发明实施例的又一备用校验纠错方法的流程示意图。
图6是根据本发明实施例的fwdata与eccdata在flash中的存储方式示意图。
图7是根据本发明实施例的备用校验纠错装置的结构框图。
图8是本发明实施例的服务器的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,由于纠错内存eccengine有可靠性失效的风险,在eccengine可靠性失效时,缺乏针对eccengine可靠性失效的情况下的备用校验方法,无法对固件数据搬运流程进行纠错校验,进而导致固件数据的安全性与可靠性失去保障。
为解决上述问题,本发明实施例中提供一种备用校验纠错方法,用于服务器中,需要说明的是,其执行主体可以是备用校验纠错装置,该装置可以通过软件、硬件或者软硬件结合的方式实现成为服务器的部分或者全部,其中,该服务器可以是终端或客户端或服务器,服务器可以是一台服务器,也可以为由多台服务器组成的服务器集群,本申请实施例中的终端可以是智能手机、个人电脑、平板电脑等其他智能硬件设备。下述方法实施例中,均以执行主体是服务器为例来进行说明。
本实施例中的服务器,适用于在bootloader阶段fwdata的搬运流程过程中,利用eccengine进行校验以保障服务器的大小core的安全启动的使用场景。通过本发明提供备用校验纠错方法,通过对纠错内存eccengine进行纠错测试,保证了eccengine的可靠性,使得固件数据在搬运过程中更为有效且安全。在eccengine的可靠性失效,eccengine无法正常进行ecc校验的情况下,通过备用的ecc校验过程,采用软件校验的方式,保证了BootLoader引导装载阶段固件数据的搬运,保障了固件数据的可靠性与有效性,进一步保证了服务器的安全启动,提升了服务器的可靠性及稳定性。
根据本发明实施例,提供了一种备用校验纠错方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种备用校验纠错方法,可用于上述的具备闪存及eccengine的服务器,图1是根据本发明实施例的备用校验纠错方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,在闪存中设置固件数据与第一纠错数据。
在一示例中,由于闪存flash中存放的数据具有无法被外部恶意修改的特性,因此将固件数据fwdata与固件数据fwdata对应的ecc数据ECC_DATA_ORIGIN(即第一纠错数据)存放至闪存中,保证二者的可靠性。
步骤S102,对待测纠错内存进行纠错测试。
在一示例中,在正式进行fwdata搬运之前,需要先对eccengine进行可靠性验证,由此可以知道eccengine是否可靠。
步骤S103,在待测纠错内存未通过纠错测试时,基于固件数据,生成固件数据对应的第二纠错数据。
在一示例中,在eccengine不可靠的情况下,需要进入备用的软件方式的ecc校验方法。因此需要通过软件方式,基于闪存中的固件数据fwdata生成第二ecc校验数据ECC_DATA_SOFT,即第二纠错数据。
步骤S104,将第二纠错数据与第一纠错数据进行对比,判断第二纠错数据与第一纠错数据是否存在差异。
在一示例中,通过比较ecc data:第二纠错数据ECC_DATA_SOFT和第一纠错数据ECC_DATA_ORIGIN是否存在差异,进行软件ecc校验。
步骤S105,在第二纠错数据与第一纠错数据不存在差异时,确认固件数据通过纠错校验,将固件数据搬运至存储器。
在一示例中,在第二纠错数据ECC_DATA_SOFT和第一纠错数据ECC_DATA_ORIGIN不存在差异时,确认固件数据fwdata通过ecc校验,可以将固件数据fwdata搬运至静态随机存取存储器sram区域。
在一实施场景中,Flash中存储了sram code以及hostboot代码,及其相应的ecc校验数据。由于flash存在bit翻转的可能,因此Bootloader阶段将fw搬出过程中需要进行一次ecc校验。Ecc校验是保证fw数据可靠的重要工具,如果ecc engine的可靠性失效,将无法保证fw数据的安全性和可靠性。图2是根据本发明实施例的在bootloader阶段fwdata固件数据的搬运流程示意图。如图2所示,通过在flash中存放一份验证data及其相应的ecc数据,在正式搬运fw之前,先进行一次ECC engine可靠性验证,由此可以知道ecc engine是否可靠,如果可靠性验证通过,则走正常flow进行fw搬运,使用硬件ECC engine进行ecccheck工作;如果不可靠则进入备用ECC校验方法,即ECC软件校验方案。
图3是根据本发明实施例的软件方式的备用ecc校验的流程示意图。如图3所示,在ECC engine可靠性失效的情况下,则进入soft ecc check flow,备用ECC校验方案(即软件ECC校验方案)的流程包括:从fw data区域顺序读取4bytes data(即fwdata固件数据);采用软件方法生成1byte eccdata:ECC_DATA_SOFT(即第二纠错数据),其中,ECC_DATA_SOFT的bit 0-6为有效数据,bit7置0。其次从ecc data区域顺序读取1byte ecc data:ECC_DATA_ORIGIN(即第一纠错数据);然后比较ecc data:ECC_DATA_SOFT和ECC_DATA_ORIGIN是否存在差异,如果没有差异,则说明该4bytesfwdata通过ECC校验,可以将该4bytes fwdata搬运至sram区域;如果有差异,则利用ecc软件算法计算出是单bit错误还是双bit错误,单bit错误进行纠错,纠错后将fw data搬运至sram;双bit错误则触发中断进行中断上报。
本实施例提供的备用校验纠错方法,通过对纠错内存eccengine进行纠错测试,保证了eccengine的可靠性,使得固件数据在搬运过程中更为有效且安全。在eccengine的可靠性失效,eccengine无法正常进行ecc校验的情况下,通过备用的ecc校验过程,采用软件校验的方式,保证了BootLoader引导装载阶段固件数据的搬运,保障了固件数据的可靠性与有效性,进一步保证了服务器的安全启动,提升了服务器的可靠性及稳定性。
在本实施例中提供了一种备用校验纠错方法,可用于上述的具备闪存及eccengine的服务器,图4是根据本发明实施例的另一备用校验纠错方法的流程图,如图4所示,该流程包括如下步骤:
步骤S401,在闪存中设置固件数据与第一纠错数据。详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S402,对待测纠错内存进行纠错测试。
具体地,上述步骤S402包括:
步骤S4021,在闪存中设置验证数据。
在本发明实施例中,验证数据与第一纠错数据相对应。
步骤S4022,对第一纠错数据或验证数据进行注错。
步骤S4023,基于注错后的验证数据与第一纠错数据,对待测纠错内存进行纠错测试。
在该方式中,通过增加纠错测试ecc engine test,对注错后的纠错数据与验证数据对待测纠错内存进行纠错测试,能够实时、有效且可重复地验证ecc engine的可靠性,保证固件数据fw data搬运的有效性、安全性。
步骤S4024,在待测纠错内存通过纠错测试时,利用待测纠错内存,对固件数进行纠错校验,在固件数据通过纠错校验时,将固件数据搬运至存储器。
在该方式中,在纠错测试成功时,利用eccengine对固件数据进行ecc校验,在固件数据通过了ecc校验的情况下再进行固件数据搬运,保证了搬运至存储器的固件数据的有效性与安全性。
步骤S4025,在固件数据未通过纠错校验时,中断对固件数据的搬运,并对固件数据未通过纠错校验进行上报。
在该方式中,在固件数据未通过ecc校验的情况下,进行中断上报,进一步保证了搬运至存储器的固件数据是具备有效性与安全性的固件数据。
在一示例中,对待测ECC engine可靠性进行验证可以包括:通过软件方式将存储的fwdata数据0x30修改为0x33(即双bit修改),得到testdata,之后将该数据搬运至ECCengine的data cache中,并将对应的ecc数据ECC_DATA_ORIGIN搬运至ecc cache中,此时数据已经发生修改。从data cache中读取test data,由于数据发生了修改,如果触发中断且中断显示为双bit错误,错误位置也符合修改位置,则说明ecc engine具有可靠性,反之则说明ecc engine不具备可靠性。如果ecc engine具有可靠性,则进行下一步:开始搬运fw并进行ecc check,如果ecc check通过,则将fw搬运至sram;未通过则中断上报进行相应的处理。
步骤S403,在待测纠错内存未通过纠错测试时,基于固件数据,生成固件数据对应的第二纠错数据。详细请参见图1所示实施例的步骤S103,在此不再赘述。
步骤S404,将第二纠错数据与第一纠错数据进行对比,判断第二纠错数据与第一纠错数据是否存在差异。详细请参见图1所示实施例的步骤S104,在此不再赘述。
步骤S405,在第二纠错数据与第一纠错数据不存在差异时,确认固件数据通过纠错校验,将固件数据搬运至存储器。详细请参见图1所示实施例的步骤S105,在此不再赘述。
本实施例提供的备用校验纠错方法,通过增加纠错测试ecc engine test,对注错后的纠错数据与验证数据对待测纠错内存进行纠错测试,能够实时、有效且可重复地验证ecc engine的可靠性,保证固件数据fw data搬运的有效性、安全性。在纠错测试成功时,利用eccengine对固件数据进行ecc校验,在固件数据通过了ecc校验的情况下再进行固件数据搬运,保证了搬运至存储器的固件数据的有效性与安全性。在固件数据未通过ecc校验的情况下,进行中断上报,进一步保证了搬运至存储器的固件数据是具备有效性与安全性的固件数据。
在本实施例中提供了一种备用校验纠错方法,可用于上述的具备闪存及eccengine的服务器,图5是根据本发明实施例的备用校验纠错方法的流程图,如图5所示,该流程包括如下步骤:
步骤S501,在闪存中设置固件数据与第一纠错数据。详细请参见图4所示实施例的步骤S401,在此不再赘述。
步骤S502,对待测纠错内存进行纠错测试。详细请参见图4所示实施例的步骤S402,在此不再赘述。
步骤S503,在待测纠错内存未通过纠错测试时,基于固件数据,生成固件数据对应的第二纠错数据。
具体地,上述步骤S503包括:
步骤S5031,将固件数据转化为二进制的固件数据。
步骤S5032,对二进制的固件数据进行异或操作,生成固件数据对应的第二纠错数据。
在一示例中,首先从fw data区域顺序读取4bytes data,采用软件方法生成1byteecc data:ECC_DATA_SOFT,其中只有bit 0-6为有效数据,bit7置0。
具体地,ECC_DATA_SOFT的生成方式包括:首先将4byte data转为32位二进制数据;其次,将这32位数据进行异或操作及组合计算;最后,异或后将会生成7bits数据,这7bits数据即为ecc数据ECC_DATA_SOFT。
以4byte data:0x30060000为例,
1、4byte data转为二进制:0011 0000 0000 0110 0000 0000 0000 0000
2、将上面生成的二进制数据的bit0、1、2、3、4、5、6、7、14、19、22、24、30、31进行异或计算得到bit0;
将上面生成的二进制数据的bit1、4、7、8、9、10、11、12、13、14、15、18、21、21、29进行异或计算得到bit1;
将上面生成的二进制数据的bit2、3、11、16、17、18、19、20、21、22、23、26、27、29、30进行异或计算得到bit2;
将上面生成的二进制数据的bit3、2、6、10、13、15、16、24、25、26、27、28、29、30、31进行异或计算得到bit3;
将上面生成的二进制数据的bit4、1、2、5、7、9、12、15、20、21、22、23、25、26、28进行异或计算得到bit4;
将上面生成的二进制数据的bit5、0、5、6、8、12、13、14、16、17、18、19、20、28进行异或计算得到bit5;
将上面生成的二进制数据的bit6、0、1、3、4、8、9、10、11、17、23、25、27、31进行异或计算得到bit6;
最后得到data1=bit3bit2bit1bit0,data0=0bit6bit5bit4;将data0data进行拼接:ecc data=(data0<<4)|data1;
由此即可得到32bit数据生成的7bitecc数据,最后组合成1byte ecc data,即ECC_DATA_SOFT。
在该方式中,在eccengine失去可靠性时,通过软件生成固件数据对应的第二ecc数据,便于后续利用第二ecc数据进行ecc校验,替代了出现故障的eccengine进行ecc校验,保障了在eccengine出现状况下的固件数据的有效性与可靠性。
步骤S504,将第二纠错数据与第一纠错数据进行对比,判断第二纠错数据与第一纠错数据是否存在差异。
在一示例中,由于origin ecc data是由32:7的ecc算法生成,所以,soft eccdata也必须由软件算法按32:7生成,这样就保证了origin ecc data和soft ecc data一致。图6是根据本发明实施例的data与eccdata在flash中的存储方式示意图。如图6所示,Byte1-byte4即32bits数据对应byte1即7bits校验数据(这里ecc生成是校验数据是bit0-bit6,共7bits,为保证1byte对齐,bit7置0)。所以在软件ecc校验算法中先读取4bytes数据,由该4bytes生成1byte ecc数据即soft ecc data,再将flash中对应的1byte ecc data即origin ecc data读取出来,这两者即为对应关系,能够保持一致。
步骤S505,在第二纠错数据与第一纠错数据不存在差异时,确认固件数据通过纠错校验,将固件数据搬运至存储器。
具体地,上述步骤S505的同时,备用校验纠错方法还包括:
步骤S506,在第二纠错数据与第一纠错数据存在差异时,判断第二纠错数据与第一纠错数据之间的差异是单bit错误还是双bit错误。
步骤S507,在第二纠错数据与第一纠错数据之间的差异是单bit错误时,对固件数据进行纠错,得到纠错后的固件数据。
步骤S508,将纠错后的固件数据搬运至存储器。
步骤S509,在第二纠错数据与第一纠错数据之间的差异是双bit错误时,停止将固件数据搬运至存储器,触发中断并进行中断上报。
在一示例中,在ECC_DATA_SOFT和ECC_DATA_ORIGIN存在差异时,利用ecc软件算法,计算得到ECC_DATA_SOFT和ECC_DATA_ORIGIN存在的差异是单bit错误还是双bit错误,单bit错误则进行纠错,纠错后将fw data搬运至sram;双bit错误则触发中断进行中断上报。
在该方式中,由于ecc校验算法中,单bit错误是可以修正的,因此,在检测到第一次与第二次不同情况下生成的ecc数据之间存在的差异是单bit错误的情况下,进行对应的修正,即可将纠错后的固件数据搬运至存储器,保证搬运至存储器的固件数据是有效且安全的。由于ecc校验算法中,双bit错误只能被检测出来,无法进行修正,因此在ecc数据之间出现双bit错误的情况下,需要中断固件数据的搬运流程,进行中断上报,进一步保障了搬运至存储器的固件数据是具备有效性与安全性的数据,避免了错误数据对存储器可能造成的危害。
本实施例提供的备用校验纠错方法,在eccengine失去可靠性时,通过软件生成固件数据对应的第二ecc数据,便于后续利用第二ecc数据进行ecc校验,替代了出现故障的eccengine进行ecc校验,保障了在eccengine出现状况下的固件数据的有效性与可靠性。由于ecc校验算法中,单bit错误是可以修正的,因此,在检测到第一次与第二次不同情况下生成的ecc数据之间存在的差异是单bit错误的情况下,进行对应的修正,即可将纠错后的固件数据搬运至存储器,保证搬运至存储器的固件数据是有效且安全的。由于ecc校验算法中,双bit错误只能被检测出来,无法进行修正,因此在ecc数据之间出现双bit错误的情况下,需要中断固件数据的搬运流程,进行中断上报,进一步保障了搬运至存储器的固件数据是具备有效性与安全性的数据,避免了错误数据对存储器可能造成的危害。
在本实施例中还提供了一种备用校验纠错装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种备用校验纠错装置,如图7所示,包括:
数据存储模块701,用于在闪存中设置固件数据与第一纠错数据。详细请参见图1所示实施例的步骤S101,在此不再赘述。
纠错测试模块702,用于对待测纠错内存进行纠错测试。详细请参见图1所示实施例的步骤S102,在此不再赘述。
备用纠错模块703,用于在待测纠错内存未通过纠错测试时,基于固件数据,生成固件数据对应的第二纠错数据。详细请参见图1所示实施例的步骤S103,在此不再赘述。
数据对比模块704,用于将第二纠错数据与第一纠错数据进行对比,判断第二纠错数据与第一纠错数据是否存在差异。详细请参见图1所示实施例的步骤S104,在此不再赘述。
数据搬运模块705,用于在第二纠错数据与第一纠错数据不存在差异时,确认固件数据通过纠错校验,将固件数据搬运至存储器。详细请参见图1所示实施例的步骤S105,在此不再赘述。
在一些可选的实施方式中,纠错测试模块702包括:
验证数据设置单元,用于在闪存中设置验证数据,验证数据与第一纠错数据相对应。
数据注错单元,用于对第一纠错数据或验证数据进行注错。
纠错测试单元,用于基于注错后的验证数据与第一纠错数据,对待测纠错内存进行纠错测试。
在一些可选的实施方式中,备用校验纠错装置还包括:
纠错校验单元,用于在待测纠错内存通过纠错测试时,利用待测纠错内存,对固件数进行纠错校验,在固件数据通过纠错校验时,将固件数据搬运至存储器。
在一些可选的实施方式中,纠错校验单元包括:
纠错校验未通过单元,用于在固件数据未通过纠错校验时,中断对固件数据的搬运,并对固件数据未通过纠错校验进行上报。
在一些可选的实施方式中,备用纠错模块703包括:
数据转化单元,用于将固件数据转化为二进制的固件数据。
纠错数据生成单元,用于对二进制的固件数据进行异或操作,生成固件数据对应的第二纠错数据。
在一些可选的实施方式中,备用校验纠错装置还包括:
差异判断单元,用于在第二纠错数据与第一纠错数据存在差异时,判断第二纠错数据与第一纠错数据之间的差异是单bit错误还是双bit错误。
数据纠错单元,用于在第二纠错数据与第一纠错数据之间的差异是单bit错误时,对固件数据进行纠错,得到纠错后的固件数据。
数据搬运单元,用于将纠错后的固件数据搬运至存储器。
在一些可选的实施方式中,备用校验纠错装置还包括:
中断上报单元,用于在第二纠错数据与第一纠错数据之间的差异是双bit错误时,停止将固件数据搬运至存储器,触发中断并进行中断上报。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的备用校验纠错装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种服务器,具有上述图7所示的备用校验纠错装置。
请参阅图8,图8是本发明可选实施例提供的一种服务器的结构示意图,如图8所示,该服务器包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在服务器内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个服务器,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图8中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该服务器还包括通信接口30,用于该服务器与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种备用校验纠错方法,其特征在于,所述方法包括:
在闪存中设置固件数据与第一纠错数据;
对待测纠错内存进行纠错测试;
在所述待测纠错内存未通过纠错测试时,基于所述固件数据,生成所述固件数据对应的第二纠错数据;
将所述第二纠错数据与所述第一纠错数据进行对比,判断所述第二纠错数据与所述第一纠错数据是否存在差异;
在所述第二纠错数据与所述第一纠错数据不存在差异时,确认所述固件数据通过纠错校验,将所述固件数据搬运至存储器。
2.根据权利要求1所述的方法,其特征在于,所述对待测纠错内存进行纠错测试,包括:
在所述闪存中设置验证数据,所述验证数据与所述第一纠错数据相对应;
对所述第一纠错数据或所述验证数据进行注错;
基于注错后的验证数据与第一纠错数据,对待测纠错内存进行纠错测试。
3.根据权利要求1所述的方法,其特征在于,在所述待测纠错内存通过纠错测试时,利用所述待测纠错内存,对所述固件数进行纠错校验,在所述固件数据通过纠错校验时,将所述固件数据搬运至所述存储器。
4.根据权利要求3所述的方法,其特征在于,在所述固件数据未通过纠错校验时,中断对所述固件数据的搬运,并对所述固件数据未通过纠错校验进行上报。
5.根据权利要求1所述的方法,其特征在于,所述基于所述固件数据,生成所述固件数据对应的第二纠错数据,包括:
将所述固件数据转化为二进制的固件数据;
对所述二进制的固件数据进行异或操作,生成所述固件数据对应的第二纠错数据。
6.根据权利要求1所述的方法,其特征在于,在所述第二纠错数据与所述第一纠错数据存在差异时,判断所述第二纠错数据与所述第一纠错数据之间的差异是单bit错误还是双bit错误;
在所述第二纠错数据与所述第一纠错数据之间的差异是单bit错误时,对所述固件数据进行纠错,得到纠错后的固件数据;
将所述纠错后的固件数据搬运至所述存储器。
7.根据权利要求6所述的方法,其特征在于,在所述第二纠错数据与所述第一纠错数据之间的差异是双bit错误时,停止将所述固件数据搬运至所述存储器,触发中断并进行中断上报。
8.一种备用校验纠错装置,其特征在于,所述装置包括:
数据存储模块,用于在闪存中设置固件数据与第一纠错数据;
纠错测试模块,用于对待测纠错内存进行纠错测试;
备用纠错模块,用于在所述待测纠错内存未通过纠错测试时,基于所述固件数据,生成所述固件数据对应的第二纠错数据;
数据对比模块,用于将所述第二纠错数据与所述第一纠错数据进行对比,判断所述第二纠错数据与所述第一纠错数据是否存在差异;
数据搬运模块,用于在所述第二纠错数据与所述第一纠错数据不存在差异时,确认所述固件数据通过纠错校验,将所述固件数据搬运至存储器。
9.一种服务器,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的备用校验纠错方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的备用校验纠错方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311154292.XA CN117112287A (zh) | 2023-09-07 | 2023-09-07 | 备用校验纠错方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311154292.XA CN117112287A (zh) | 2023-09-07 | 2023-09-07 | 备用校验纠错方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117112287A true CN117112287A (zh) | 2023-11-24 |
Family
ID=88796286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311154292.XA Pending CN117112287A (zh) | 2023-09-07 | 2023-09-07 | 备用校验纠错方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117112287A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010042230A1 (en) * | 2000-05-10 | 2001-11-15 | Seagate Technology Llc | Sector validation for use in ECC engine validation |
TW200407901A (en) * | 2002-04-30 | 2004-05-16 | Ibm | Testing of ecc memories |
KR20080007806A (ko) * | 2006-07-18 | 2008-01-23 | 삼성전자주식회사 | Ecc엔진을 이용한 병렬 비트 테스트 방법 및 그 장치 |
US20140195867A1 (en) * | 2013-01-04 | 2014-07-10 | International Business Machines Corporation | Memory testing with selective use of an error correction code decoder |
KR20170002053A (ko) * | 2015-06-29 | 2017-01-06 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
CN109542666A (zh) * | 2017-09-21 | 2019-03-29 | 三星电子株式会社 | 用于支持纠错码的装置及其测试方法 |
TW201921245A (zh) * | 2017-09-21 | 2019-06-01 | 南韓商三星電子股份有限公司 | 用於支持錯誤更正碼的裝置及其測試方法 |
CN111354397A (zh) * | 2018-12-21 | 2020-06-30 | 三星电子株式会社 | 重写存储器设备的方法、存储器控制器及其控制方法 |
US11170869B1 (en) * | 2020-06-04 | 2021-11-09 | Western Digital Technologies, Inc. | Dual data protection in storage devices |
CN115497550A (zh) * | 2021-06-17 | 2022-12-20 | 三星电子株式会社 | 半导体存储器装置 |
CN115862721A (zh) * | 2021-09-24 | 2023-03-28 | 桑迪士克科技有限责任公司 | 用于mram混合读取方案的可编程ecc |
-
2023
- 2023-09-07 CN CN202311154292.XA patent/CN117112287A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010042230A1 (en) * | 2000-05-10 | 2001-11-15 | Seagate Technology Llc | Sector validation for use in ECC engine validation |
TW200407901A (en) * | 2002-04-30 | 2004-05-16 | Ibm | Testing of ecc memories |
KR20080007806A (ko) * | 2006-07-18 | 2008-01-23 | 삼성전자주식회사 | Ecc엔진을 이용한 병렬 비트 테스트 방법 및 그 장치 |
US20140195867A1 (en) * | 2013-01-04 | 2014-07-10 | International Business Machines Corporation | Memory testing with selective use of an error correction code decoder |
KR20170002053A (ko) * | 2015-06-29 | 2017-01-06 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
CN109542666A (zh) * | 2017-09-21 | 2019-03-29 | 三星电子株式会社 | 用于支持纠错码的装置及其测试方法 |
TW201921245A (zh) * | 2017-09-21 | 2019-06-01 | 南韓商三星電子股份有限公司 | 用於支持錯誤更正碼的裝置及其測試方法 |
CN111354397A (zh) * | 2018-12-21 | 2020-06-30 | 三星电子株式会社 | 重写存储器设备的方法、存储器控制器及其控制方法 |
US11170869B1 (en) * | 2020-06-04 | 2021-11-09 | Western Digital Technologies, Inc. | Dual data protection in storage devices |
CN115497550A (zh) * | 2021-06-17 | 2022-12-20 | 三星电子株式会社 | 半导体存储器装置 |
CN115862721A (zh) * | 2021-09-24 | 2023-03-28 | 桑迪士克科技有限责任公司 | 用于mram混合读取方案的可编程ecc |
Non-Patent Citations (1)
Title |
---|
BLAZEJEWSKI, TJ;DIPILATO, NM;FEHN, TP;GALLI, EJ;THOME, RE;VANBOGELEN, DW: "IBM Technical Disclosure Bulletin", vol. 12, 20 February 2005, JOURNAL PAPER, pages: 4871 - 7 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9703633B2 (en) | Circuits, apparatuses, and methods for correcting data errors | |
US8527840B2 (en) | System and method for restoring damaged data programmed on a flash device | |
EP1160987B1 (en) | Method and apparatus for verifying error correcting codes | |
US20120030531A1 (en) | Safe Memory Storage By Internal Operation Verification | |
US8176391B2 (en) | System to improve miscorrection rates in error control code through buffering and associated methods | |
US8181094B2 (en) | System to improve error correction using variable latency and associated methods | |
US8984379B2 (en) | MRAM field disturb detection and recovery | |
US8949694B2 (en) | Address error detection | |
CN111104246B (zh) | 提升dram的错误检测与纠错的验证效率的方法、装置、计算机设备及存储介质 | |
CN112506730A (zh) | 适用于网络交换芯片ecc功能验证的验证平台及验证方法 | |
US20070260962A1 (en) | Methods and apparatus for a memory device with self-healing reference bits | |
CN109671466B (zh) | 一种阈值电压调试方法、装置及电子设备 | |
CN111625199A (zh) | 提升固态硬盘数据通路可靠性的方法、装置、计算机设备及存储介质 | |
US20230214295A1 (en) | Error rates for memory with built in error correction and detection | |
CN115904798A (zh) | 存储器的纠错检错方法、***以及控制器 | |
CN117112287A (zh) | 备用校验纠错方法、装置、服务器及存储介质 | |
US9417957B2 (en) | Method of detecting bit errors, an electronic circuit for detecting bit errors, and a data storage device | |
CN109753369A (zh) | 一种寄存器及内存中顺序数组的数据编码及校验方法 | |
CN117234789B (zh) | 校验纠错方法、装置、电子设备及存储介质 | |
TWI789453B (zh) | 記憶體和操作該記憶體的方法 | |
US11809272B2 (en) | Error correction code offload for a serially-attached memory device | |
JP4213814B2 (ja) | エラー訂正回路のチェック方法およびチェック機能付きエラー訂正回路 | |
US10719390B2 (en) | Memory system, controller, memory and reading method thereof | |
JP2023005919A (ja) | 半導体装置および誤り検出方法 | |
CN111949433A (zh) | 非易失性存储器工作参数的处理方法、控制装置及存储器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |