CN117112289B - 内存纠错方法、装置、设备及可读存储介质 - Google Patents
内存纠错方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN117112289B CN117112289B CN202311345124.9A CN202311345124A CN117112289B CN 117112289 B CN117112289 B CN 117112289B CN 202311345124 A CN202311345124 A CN 202311345124A CN 117112289 B CN117112289 B CN 117112289B
- Authority
- CN
- China
- Prior art keywords
- memory
- target
- error rate
- error correction
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 577
- 238000012937 correction Methods 0.000 title claims abstract description 274
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000012545 processing Methods 0.000 claims abstract description 63
- 239000012634 fragment Substances 0.000 claims abstract description 11
- 238000012795 verification Methods 0.000 claims description 34
- 239000008187 granular material Substances 0.000 claims description 30
- 239000002245 particle Substances 0.000 claims description 23
- 230000000875 corresponding effect Effects 0.000 description 75
- 238000005192 partition Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000005291 magnetic effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 235000019580 granularity Nutrition 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 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/1012—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 using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本申请提供了一种内存纠错方法、装置、设备及可读存储介质,涉及数据处理技术领域,方法应用于内存控制器,方法包括:获取目标内存片区中存储数据的目标错误率,以供处理器根据所述目标错误率确定对应的目标错误率范围;接收目标错误率对应的目标错误率范围;根据目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,每个预设的内存纠错算法具备对应的错误率范围;基于目标内存纠错算法对所述存储数据进行纠错处理。基于本方法,可以确定出满足处理器要求的目标内存纠错算法。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种内存纠错方法、装置、设备及可读存储介质。
背景技术
在实际应用中,内存中存储的数据可能存在错误,处理器搭载的软件从内存中读取数据时,需要通过内存控制器对内存中存储的数据进行纠错处理,然后将纠错处理后的数据发送至处理器。
在先技术中,内存控制器基于固定的纠错算法,对内存中的存储数据进行纠错处理,并将纠错处理后的数据发送至处理器。
但是,基于固定的纠错算法对内存中的存储数据进行纠错处理,可能不满足处理器对纠错处理结果的要求。
发明内容
本申请实施例提供一种内存纠错方法、装置、设备及可读存储介质,以解决在先技术中内存纠错算法不满足要求的问题。
第一方面,本申请实施例提供了内存纠错方法,所述方法应用于内存控制器,所述方法包括:
获取目标内存片区中存储数据的目标错误率,以供处理器根据所述目标错误率确定对应的目标错误率范围;
接收所述目标错误率对应的目标错误率范围;
根据所述目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,每个预设的内存纠错算法具备对应的错误率范围;
基于所述目标内存纠错算法对所述存储数据进行纠错处理。
第二方面,本申请实施例提供了一种内存纠错方法,所述方法应用于处理器,所述方法包括:
获取目标内存片区中存储数据的目标错误率;
根据所述目标错误率,确定所述目标错误率的目标错误率范围;
将所述目标错误率范围发送至内存控制器,以供所述内存控制器根据所述目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,并基于所述目标内存纠错算法对所述存储数据进行纠错处理,每个预设的内存纠错算法具备对应的目标错误率范围。
第三方面,本申请实施例提供了一种内存纠错装置,所述装置位于内存控制器,所述装置包括:
第一获取模块,用于获取目标内存片区中存储数据的目标错误率,以供处理器根据所述目标错误率确定对应的目标错误率范围
第二获取模块,用于接收所述目标错误率对应的目标错误率范围;
第一确定模块,用于根据所述目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,每个预设的内存纠错算法具备对应的错误率范围;
第一处理模块,用于基于所述目标内存纠错算法对所述存储数据进行纠错处理。
第四方面,本申请实施例提供了一种内存纠错装置,所述装置位于处理器,所述装置包括:
第三获取模块,用于获取目标内存片区中存储数据的目标错误率;
第二确定模块,用于根据所述目标错误率,确定所述目标错误率的目标错误率范围;
第三确定模块,用于将所述目标错误率范围发送至内存控制器,以供所述内存控制器根据所述目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,并基于所述目标内存纠错算法对所述存储数据进行纠错处理,每个预设的内存纠错算法具备对应的错误率范围。
第五方面,本申请实施例还提供了一种电子设备,包括处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现所述第一方面或第二方面的方法。
第六方面,本申请实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行所述第一方面或第二方面的方法。
综上,获取目标内存片区中存储数据的目标错误率,以供内存控制器根据目标错误率确定对应的目标错误率范围,然后接收目标错误率对应的目标错误率范围,根据目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,基于目标内存纠错算法对存储数据进行纠错处理。相对于相关技术中使用固定的内存纠错算法,对目标内存片区中的存储数据进行纠错的方法,本实施例根据目标内存片区中存储数据的目标错误率,动态的确定对应的目标内存纠错算法,由此得到的目标内存纠错算法,基于该目标内存纠错算法对存储数据进行纠错处理,可以确保纠错处理结果满足控制器的纠错要求。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获取其他的附图。
图1是本发明实施例提供的一种内存纠错方法的应用场景示意图;
图2是本发明实施例提供的一种内存纠错方法的步骤流程图;
图3是本发明实施例提供的另一种内存纠错方法的步骤流程图;
图4是本发明实施例提供的另一种内存纠错方法的步骤流程图;
图5是本发明实施例提供的又一种内存纠错方法的步骤流程图;
图6是本发明实施例提供的一种内存纠错方法的步骤流程图;
图7是本发明实施例提供的一种内存纠错装置的结构框图;
图8是本发明实施例提供的另一种内存纠错装置的结构框图;
图9是本发明实施例提供的一种电子设备的框图;
图10是本发明实施例提供的另一种电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
本申请的内存纠错方法的应用场景示意图,参照图1,应用场景中包括处理器10、内存控制器20和目标内存30。其中,处理器10和内存控制器20通信连接,内存控制器20和内存30 通信连接。
控制器从目标内存中获取存储数据时,需要通过内存控制器对目标内存中的数据进行纠错处理。具体的,控制器获取目标内存中存储数据的目标错误率,根据目标错误率,确定目标错误率的目标错误率范围,将目标错误率范围发送至内存控制器,以供内存控制器根据目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,并基于目标内存纠错算法,对存储数据进行纠错处理。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的内存纠错方法进行详细地说明。
参照图2,本实施例提供了一种内存纠错方法,方法应用于内存控制器,方法可以包括如下步骤:
步骤101,获取目标内存片区中存储数据的目标错误率,以供处理器根据目标错误率确定对应的目标错误率范围。
其中,目标错误率为目标内存片区中存储数据的错误率。
示例地,内存控制器获取目标错误率后,将目标错误率存储在内存控制器的寄存器中,处理器从该寄存器中获取目标错误率,并根据目标错误率,以及预设的多个错误率范围,确定目标错误率所属的错误率范围,该错误率范围即为目标错误率对应的目标错误率范围。
在本步骤中,目标错误率范围是处理器根据获取的存储数据的目标错误率得到的,目标内存片区为目标内存颗粒中的内存片区,目标内存颗粒为目标内存中的内存颗粒。
步骤102,接收目标错误率对应的目标错误率范围。
示例地,处理器根据目标错误率确定与目标错误率对应的目标错误率范围,并将该目标错误率范围发送至内存控制器,内存控制器接收处理器发送的目标错误率范围。
步骤103,根据目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法。
其中,每个预设的内存纠错算法具备对应的错误率范围。
示例地,从每个预设的内存纠错算法对应的错误率范围中,确定出与目标错误率范围相同的错误率范围,并将该错误率范围对应的内存纠错算法,作为目标内存纠错算法。
步骤104,基于目标内存纠错算法对存储数据进行纠错处理。
示例地,预设的内存纠错算法可以为差错检测和修正的算法(Error Checkingand Correction,ECC)纠错算法、奇偶校验法、Chipkill纠错算法,或者其他可用于对目标内存片区中存储数据进行纠错的算法。
比如,在一个实施例中,根据目标错误率确定出的目标错误率范围较大,与较大的错误率范围对应的纠错算法为ECC算法,则基于ECC算法,对目标内存片区中存储的数据进行纠错。其中,目标错误范围较大,是指目标错误率范围所包括的错误率,大于较小目标错误率范围所包括的错误率。
比如,基于ECC算法生成存储数据的校验数据,在内存控制器获取存储数据时,基于ECC算法对存储数据和校验数据进行比对,根据比结果确定存储数据是否正确,并在存储数据不正确的情况下,基于ECC算法和对应的校验数据,对错误的存储数据进行纠错处理。
综上,内存控制器获取目标内存片区中存储数据的目标错误率,以供处理器根据目标错误率确定对应的目标错误率范围,然后接收目标错误率对应的目标错误率范围,根据目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,基于目标内存纠错算法对存储数据进行纠错处理。相对于相关技术中使用固定的内存纠错算法,对目标内存片区中的存储数据进行纠错的方法,本实施例根据目标内存片区中存储数据的目标错误率,动态的确定对应的目标内存纠错算法,由此得到的目标内存纠错算法,基于该目标内存纠错算法对存储数据进行纠错处理,可以确保纠错处理结果满足控制器的纠错要求。
图3是本申请提供的另一种内存纠错方法的步骤流程图,参照图3,方法包括如下步骤:
步骤201,获取目标内存片区中的存储数据,以及用于确定存储数据是否正确的校验数据。
在本步骤中,校验数据为写入目标内存中校验位的数据。控制器从校验位中获取校验数据。
示例地,校验数据是根据内存控制器当前使用的内存纠错算法确定的数据。例如,控制器当前使用的内存纠错算法为ECC算法,ECC算法根据目标内存片区中的存储数据生成冗余数据,并将这些冗余数据添加到要存储或传输的数据中,在存储数据的传输和存储过程中,ECC算法根据这些冗余数据,确定存储数据是否正确,并在控制器读取存储数据时,确定存储数据错误的情况下,对错误的存储数据进行纠错处理。ECC算法生成的冗余数据,即为本步骤中用于确定存储数据是否正确的校验数据。
步骤202,比对存储数据和校验数据,获取比对结果。
在本步骤中,校验数据是根据内存控制器当前使用的纠错算法生成的,对应的,根据内存控制器当前使用的纠错算法中的比对规则,比对存储数据和校验数据,并获取比对结果。
其中,比对结果包括:存储数据和校验数据相匹配,存储数据正确,或者,存储数据和校验数据不匹配,存储数据不正确。
示例地,控制器当前使用的纠错算法为奇偶校验算法,在读取存储数据时,获取存储数据二进制表示中“1”的个数,并确定该个数为奇数还是偶数,并将该结果和校验数据进行比对,根据比对结果确定存储数据是否正确。
比如,目标内存片区中存储数据的正确值为31,其二进制的表示为00011111,二进制表示中“1”的个数为奇数,与该正确值对应的校验数据可以为1,对应的校验数据为1。需要说明的是,校验数据为1,表示存储数据的二进制表示中,“1”的个数为奇数,校验数据为0,表示存储数据的二进制表示中,“1”的个数为偶数。如果在目标内存片区中写入该存储数据时发生了错误,将该存储数据写为10011111,则存储数据中“1”的个数为偶数,而与该存储数据对应的校验数据为1,根据该校验数据,正确存储数据的二进制表示中“1”的个数应该为奇数。通过比对存储数据和校验数据,目标内存片区中实际存入的存储数据和校验数据不匹配,说明目标内存片区中的存储数据 出现了错误。
步骤203,根据比对结果,获取目标内存片区中存储数据的目标错误率。
示例地,根据比对结果,确定目标内存片区中错误存储数据的数量,根据错误存储数据的数量在所有存储数据中的占比,得到存储数据的目标错误率。
在一个实施例中,目标错误率是内存控制器根据存储数据,以及用于确定存储数据是否正确的校验数据得到的,校验数据存储在第一内存片区中。
步骤204,接收目标错误率对应的目标错误率范围。
本步骤的方法,在前述步骤102中已作说明,此处不再赘述。
步骤205,根据目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,每个预设的内存纠错算法具备对应的错误率范围;
本步骤的方法,在前述步骤103中已做说明,此处不再赘述。
步骤206,基于目标内存纠错算法对存储数据进行纠错处理。
本步骤的方法,在前述步骤104中已做说明,此处不再赘述。
综上,在本实施例中,比对校验数据和存储数据,根据比对结果,可以准确获取目标内存片区中存储数据的目标错误率,获取目标错误率对应的目标错误率范围,根据目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法。目标内存纠错算法是根据目标错误范围确定出的,而目标错误率范围是处理器根据获取的存储数据的目标错误率得到的,因此,基于该目标内存纠错算法对存储数据进行纠错处理,可以得到满足处理器要求的纠错结果。
在一个实施例中,步骤205可以包括如下子步骤:
子步骤2051,根据目标错误率范围,以及错误率范围与错误率等级的对应关系,确定与目标错误率范围对应的目标错误率等级。
其中,目标错误率和目标错误率等级正相关。
具体的,错误率范围与错误率等级的对应关系包括:多个错误率范围,以及分别与每个错误率范围对应的错误率等级。
对应的,确定错误率范围与错误率等级的对应关系中,与目标错误率范围匹配的错误率范围,该错误率范围对应的错误率等级,即为与目标错误率范围对应的目标错误率等级。
示例地,目标错误率范围和错误率等级的对应关系,可以根据处理器当前运行的程序对纠错结果的要求设定,或者根据处理器对从内存中获取数据的读写速度的要求设定。
示例地,错误率范围与错误率等级的对应关系中,与每个错误率等级对应的目标错误率范围,是根据处理器当前运行的程序确定的。其中,程序运行过程中需要从目标内存片区获取存储数据,不同程序对存储数据的要求不同,对应的,对目标内存的纠错算法的要求也不同。
具体的,根据程序对纠错结果的要求,设定与每个错误率等级对应的目标错误率范围,或者根据程序对从内存中获取数据的读写速度的需求,设定与每个错误对等级对应的目标错误率范围。
比如,处理器当前运行的程序,是根据用户查询数据的查询指令,从目标内存片区中获取存储数据,在这种情况下,处理器对获取数据对获取数据的读写速度的要求比较高,而对纠错结果的需求比较低。在这种情况下,可以将较低的错误率等级对应的目标错误率范围设置的大一些,对较高的错误率等级对应的目标错误率范围设置的小一些。进一步的,将较低的错误率等级对应的目标错误率范围的上限值设置的大一些,对较高的错误率等级对应的目标错误率范围的下限值设置的大一些。
示例地,目标内存片区中存储数据的目标错误率为10%。如果处理器当前运行的程序对读写速度的要求比较高,则该目标错误率可能落入较低的错误率等级所对应的错误率范围内,在这种情况下,确定与该目标错误率对应的错误率等级比较低。如果处理器当前运行的程序对获取数据的纠错结果要求比较高,则该目标错误率可能落入较高的错误率等级所对应的错误率范围内,在这种情况下,确定与该目标错误率对应的错误率等级比较高。
子步骤2052,根据目标错误率等级,以及错误率等级和内存纠错算法的对应关系,确定与目标错误率等级对应的目标内存纠错算法。
示例地,错误率等级和内存纠错算法的对应关系包括:多个错误率等级,以及分别与每个错误率等级对应的内存纠错算法,其中,错误率等级越高,内存纠错算法的纠错等级越高。
进一步的,从错误率等级和内存纠错算法的对应关系中,确定出与目标错误率等级匹配的错误率等级,与该错误率等级对应的内存纠错算法,即为目标错误率等级对应的目标内存纠错算法。
在一个实施例中,步骤201中获取用于确定存储数据是否正确的校验数据的方法,可以包括如下子步骤:
子步骤2011,获取校验数据在目标内存中的存储地址。
在本步骤中,校验数据和存储数据都存储在目标内存中。进一步的,校验数据可以和对应的存储数据存储在目标内存的同一个内存颗粒的不同内存片区中,也可以存储在不同的内存颗粒中。
示例地,通过控制器中的操作系统,获取校验数据在目标内存中的存储地址。
子步骤2012,根据存储地址,从与存储地址对应的第一内存片区中提取校验数据。
示例地,根据存储地址确定校验数据在目标内存中的存储位置,进而获取校验数据。
示例地,第一内存片区和目标内存片区,可以是同一个内存颗粒中的不同内存片区,也可以是不同内存颗粒中的不同内存片区。
在相关技术中,校验数据和存储数据需要存放在两个内存颗粒的相同位置,这种处理方法对内存颗粒的内存容量的要求高,以免内存颗粒的内存容量不足,导致校验数据的存储错误,使得无法对存储数据进行纠错处理,即,相关技术中的校验数据存储方法灵活度低。基于本实施例的方法,根据存储地址,从与存储地址对应的第一内存片区中,可以提取校验数据,由此,不需要将校验数据和存储数据存在不同内存颗粒的相同位置,可以将校验数据存放在目标内存中的任意位置,不需要和存储数据的目标内存片区之间建立对应关系,减少了对目标内存的额外需求,且配置方法灵活,在目标内存空间有限的情况下,也能高可靠性的对校验数据进行保存。
在一个实施例中,在步骤204之后,还包括:
步骤207,获取校验数据写入请求,并根据校验数据写入请求,将校验数据写入第二内存片区中;
示例地,处理器生成校验数据写入请求后,将写入请求发送至内存控制器,内存控制器校验数据写入请求,并响应于校验数据写入请求,将校验数据写入第二内存片区中,将校验数据写入第二内存片区中。
示例的,写入请求中包括用于写入校验数据的地址,该地址为第二内存片区中的地址,内存控制器根据写入请求中的地址,将校验数据写入第二内存片区中。
步骤208,获取校验数据删除请求,并根据校验数据删除请求,将校验数据从第一内存片区中删除。
其中,校验数据写入请求和校验数据删除请求,是处理器在确定第一内存片区的剩余内存小于预设剩余内存阈值的情况下,确定出第二内存片区后生成的指令。
对应地,在步骤203之后,还包括:
步骤209,获取校验数据写入请求,并根据校验数据写入请求,将校验数据写入第二内存片区中。
在本步骤中,校验数据写入请求,是处理器在在确定第一内存片区的剩余内存小于预设剩余内存阈值的情况下,确定出第二内存片区后生成的请求。
步骤210,获取校验数据删除请求,并根据校验数据删除请求,将校验数据从第一内存片区中删除。
在本步骤中,校验数据删除请求,是处理器在在确定第一内存片区的剩余内存小于预设剩余内存阈值的情况下,确定出第二内存片区后生成的请求。
图4是本申请实施例提供的一种内存纠错方法的步骤流程图,如图4所示,该方法可以包括:
步骤301,获取目标内存片区中存储数据的目标错误率。
在本步骤中,目标内存片区为存储有处理器需要读取的存储数据的内存片区。
示例地,内存控制器判断目标内存片区中的各存储数据是否存在错误,并根据错误存储数据在目标内存片区中所有存储数据中的占比,获取目标错误率,并将目标错误率存储在内存控制器的寄存器中。
对应地,处理器从内存控制器的寄存器中,读取目标内存片区中存储数据的目标错误率。具体的,通过控制器中的软件程序,从内存控制器寄存器中读取存储数据的目标错误率。进一步的,通过控制器中的软件程序,从寄存器中用于存储目标错误率的地址中读取存储目标错误率。
步骤302,根据目标错误率,确定目标错误率的目标错误率范围。
示例地,根据目标错误率,从多个预设的错误率范围中确定出目标错误率范围。
进一步的,比对目标错误率和多个预设的目标错误率范围,在目标错误率落入某个预设的目标错误率范围的情况下,将该预设的目标错误率范围,作为目标错误率所属的目标错误率范围。
步骤303,将目标错误率范围发送至内存控制器,以供内存控制器根据目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,并基于目标内存纠错算法对存储数据进行纠错处理。
其中,每个预设的内存纠错算法具备对应的错误率范围。
在本步骤中,不同的目标错误率范围具备对应不同的预设内存纠错算法。处理器将目标错误率范围发送至内存控制器,内存控制器根据目标错误率范围,从多个预设的内存纠错算法中,确定出与目标错误率范围对应的目标内存纠错算法。
示例的,预设的内存纠错算法可以包括以下至少部分:奇偶校验算法、ECC算法、内存支持四位纠错算法(Chipkill)算法。
示例地,可以根据不同预设内存纠错算法对存储数据进行纠错处理时的历史处理结果,确定不同预设内存纠错算法的错误率范围。具体的,纠错处理结果的准确度越高,对应的内存纠错算法的纠错范围越大。例如,在实际使用中,使用一位奇偶校验算法进行数据纠错处理是,纠错处理结果的准确度,低于使用ECC算法进行数据纠错处理的纠错结果的准确度,对应的,一位奇偶校验算法的错误率范围比ECC算法的纠错范围小,具体的,一位奇偶校验算法的错误率范围包括的错误率小于ECC算法的错误率范围所包括的错误率。
示例地,在控制器当前已经有针对目标内存片区中存储数据的纠错算法的情况下,使用根据目标错误范围确定出的目标内存纠错算法,替换控制器当前使用的纠错算法,使用目标内存纠错算法对存储数据进行纠错处理,而不再使用控制器之前使用的纠错算法进行纠错处理。
综上,在实施例中,获取目标内存片区中存储数据的目标错误率,根据目标错误率,确定目标错误率的目标错误率范围,将目标错误率范围发送至内存控制器,以供内存控制器根据目标错误率范围,从预设的内存纠错算法中,确定出用于对存储数据进行纠错处理的目标内存纠错算法。相对于相关技术中使用固定的内存纠错算法,对目标内存片区中的存储数据进行纠错的方法,本实施例根据目标内存片区中存储数据的目标错误率,动态的确定对应的目标内存纠错算法,由此得到的目标内存纠错算法,基于该目标内存纠错算法对存储数据进行纠错处理,可以确保纠错处理结果满足控制器的纠错要求。
在一个实施例中,目标错误率是内存控制器比对存储数据,以及从第一内存片区中提取的校验数据,根据比对结果得到的。
在步骤301之后,还可以包括:
步骤304,在确定第一内存片区的剩余内存小于预设剩余内存阈值的情况下,确定第二内存片区。
需要说明的是,预设剩余内存阈值可以根据第一内存片区的剩余内存需求确定。
在本步骤中,剩余内存为第一内存片区的内存中,未被使用的内存。示例地,第一内存片区和第二内存片区,可以为同一内存颗粒中的不同内存片区,也可以为不同内存颗粒中的内存片区。其中,内存颗粒为目标内存中的内存颗粒。
示例地,通过比对剩余内存和预设剩余内存阈值,确定剩余内存是否小于预设剩余内存阈值。
在本步骤中,确定第二内存片区可以包括如下步骤:针对每个其他内存颗粒,获取目标内存中其他内存颗粒的剩余内存,确定若写入校验数据,内存颗粒的剩余内存是否大于或等于对应的预设剩余内存阈值,若是,则确定该内存颗粒为备用第二内存片区。在确定出的备用第二内存片区有多个的情况下,可以随机选择一个作为用于写入校验数据的第二内存片区。
步骤305,生成校验数据写入请求,以供内存控制器根据写入请求,将校验数据写入第二内存片区中。
在一个实施例中,在步骤304之后,还包括:
步骤306,生成校验数据删除请求,以供内存控制删除第一内存片区中的校验数据。
在本实施例中,目标内存片区为写入存储数据的内存片区。
在一些实施例中,目标内存片区为目标内存颗粒中的部分内存片区,或者,目标内存片区包括至少部分目标内存颗粒中的全部内存片区;其中,目标内存颗粒为目标内存中的内存颗粒。
相关技术中,针对整个内存使用一个固定的内存纠错算法,对存储数据进行纠错处理,这会导致内存纠错算法不够灵活,且可能无法满足纠错需求。在本实施例中,目标内存片区为目标内存颗粒中的部分内存片区,则不同的存储数据可以存储在不同内存颗粒的部分内存片区中,也可以存储在同一内存颗粒的不同内存片区中。由此,针对不同存储数据确定目标内存纠错算法,相当于针对不同内存片区确定目标内存纠错算法,提高了确定目标内存纠错算法的精度和灵活度,进而提高了数据纠错的精度和灵活度。在本实施例中,目标内存片区还可以包括至少部分目标内存颗粒中的全部内存片区,由此,针对不同内存颗粒,可以确定出不同的目标内存纠错算法进行纠错处理,提高了确定目标内存纠错算法的精度和灵活度,进而提高了数据纠错的精度和灵活度。
另外,在相关技术中,针对整个内存使用一个固定的内存纠错算法,在这种情况下,需要从整个内存中确定出预设大小占比的内存片区,以存储校验数据,这会使得用于存储校验数据的内存片区较大,存在开销大的缺点。在本实施例中,目标内存片区为目标内存颗粒中的部分内存片区,或者,目标内存片区包括至少部分目标内存颗粒中的全部内存片区,而非相关技术中的整个内存,由此,在按照目标内存片区预设大小占比确定存储校验数据的内存片区时,内存片区比较小,解决了在相关技术中,用于存储校验数据的内存片区较大所导致的开销大的问题。
图5是本发明实施例提供的又一种内存纠错方法的步骤流程图,参照图5,方法包括如下步骤:
步骤401,内存控制器获取目标内存片区中存储数据的目标错误率。
本步骤的方法,在前述步骤101中已作说明,此处不再赘述。
步骤402,处理器根据目标错误率,确定目标错误率的目标错误率范围。
本步骤的方法,在前述步骤302中已作说明,此处不再赘述。
步骤403,内存控制器根据目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法。
其中,每个预设的内存纠错算法具备对应的错误率范围。
本步骤的方法,在前述步骤103中已作说明,此处不再赘述。
步骤404,内存控制器基于目标内存纠错算法对存储数据进行纠错处理。
本步骤的方法,在前述步骤104中已作说明,此处不再赘述。
图6是本发明实施例提供的又一种内存纠错方法步骤流程图,参照图6,方法可以包括如下步骤:
步骤S1,通过处理器的软件程序,从用于存储目标错误率的地址处,读取目标错误率,目标错误率是根据校验数据得到的。
其中,目标错误率可用于表示目标内存片区中,存储数据的出错概率和比例。
在一个实施例中,通过处理器的软件程序,从内存控制器的寄存器中读取目标错误率。
步骤S2,通过处理器的软件程序,根据目标错误率确定目标错误率范围,并生成写请求,以供内存控制器根据写请求,从多个预设的内存纠错算法中确定出目标内存纠错算法。
具体的,软件程序读取到目标错误率后,根据针对存储数据要执行的操作对获取存储数据的读写速度,以及对存储数据纠错结果的要求,确定不同目标错误率对应的错误率范围。
示例地,在处理器的软件程序对某个目标内存片区中的存储数据的性能要求比较高的情况下,说明软件程序对该目标内存片区中存储数据的读写速度要求比较高,可以为该目标内存片区配置纠错能力比较低的目标内存纠错算法,从而提高从该目标内存片区获取存储数据的效率。
示例地,在处理器的软件程序对某个目标内存片区中的存储数据的安全要求比较高的情况下,说明软件程序对该目标内存片区中存储数据的正确率要求比较高,可以为该目标内存片区配置纠错能力比较高的目标内存纠错算法,从而提高从该目标内存片区获取存储数据的可靠度。
在本实施例中,目标内存纠错算法是从多个预设的内存纠错算法中确定出的纠错算法,预设的内存纠错算法可以包括分别和不同错误率范围对应的内存纠错算法。
在另一个实施例中,不同存储数据可以存放在目标内存的不同目标内存片区中,基于本实施例确定的针对不同存储数据的目标内存纠错算法可能不同,由此,内存控制器为目标内存中不同目标内存片区配置的纠错算法可以不同。在一个实施例中,不同的存储数据可以存放在同一内存颗粒的不同目标内存片区中。基于本实施例,通过存储数据的目标错误率,得到的针对不同存储数据的目标内存纠错算法也可能不同,由此,内存控制器为同一内存颗粒中不同目标内存片区配置的纠错算法可能不同。即,基于本实施例的方法,可以为不同内存粒度的内存配置不同的目标内存纠错算法,可以确保基于目标内存纠错算法对存储数据进行纠错处理所得到的纠错处理结果,能够满足从不同内存粒度获取存储数据的处理器的纠错需求。
在一个实施例中,确定用于存放存储数据的目标内存片区所在的内存颗粒,并获取该内存颗粒的类型,根据内存颗粒的类型,确定针对该内存颗粒的目标内存纠错算法。
例如,系统中包括两个内存条,同一个内存条中内存颗粒的类型相同。具体的,其中一个内存条中的内存颗粒,是性能高且数据出错概率较低的动态随机存取(DynamicRandom Access Memory,DRAM)内存颗粒,其中,性能高表示在该内存颗粒中获取存储数据的读写速度快,数据出错概率较低,表示在该内存颗粒中的存储数据的目标错误率较低。对于该内存条的目标内存片区,可以配置纠错性能较低的一位奇偶校验算法。
另一个内存条中的内存颗粒,是性能较低且数据出错概率较高的非易失性(Non-Volatile Memory,NVM)颗粒。对于该内存条的目标内存片区,可以配置较为复杂的ECC纠错算法。
由此,针对同一个系统中不同的内存颗粒,配置不同的纠错算法,可以在不损失DRAM颗粒的性能的前提下,确保了NVM颗粒较高的系统稳定性。
步骤S3,通过处理器的软件程序在确定当前存储校验数据的第一内存片区的剩余内存小于预设剩余内存阈值的情况下,生成数据写入请求,以供内存控制器将校验数据写入第二内存片区,并生成数据删除请求,以供内存控制器将第一内存片区中的校验数据删除。
具体的,第一内存片区和第二内存片区可以为不同的内存颗粒,也可以为相同内存颗粒中的不同内存片区。需要说明的是,对于ECC算法,校验数据为ECC算法针对存储数据生成的冗余数据。示例地,可基于独立内存冗余阵列(Redundant Array of IndependentMemory,RAIM),确定冗余数据和存储数据的对应关系。
基于本实施例的方法,可以将校验数据存在不同的内存片区中,而不限定于存放在不同的内存颗粒中,由此,避免了现有技术中对校验数据必须存放在不同内存颗粒中的限定。
在一个实施例中,某个系统上运行的软件程序包含重要数据,该数据存储在目标内存片区中,需要基于数据冗余技术,对存储数据进行容错保护。可以在目标内存中划分出一个用于存储冗余数据的内存片区,存放用于保护存储数据的冗余数据。基于本实施例,可以根据存放冗余数据的内存片区的剩余内存,确定该内存片区是否适用于存储冗余数据,并基于判断结果,灵活配置保存冗余数据的内存片区,以满足保存冗余数据的内存片区的剩余内存不足时,对冗余数据的安全存储,进而确保使用冗余数据对存储数据进行纠错容错处理的可靠性。
参考图7,其示出了本申请实施例提供的一种内存纠错装置内存纠错装置位于处理器,内存纠错装置50包括:
第一获取模块501,用于获取目标内存片区中存储数据的目标错误率,以供处理器根据目标错误率确定对应的目标错误率范围
第二获取模块502,用于接收目标错误率对应的目标错误率范围;
第一确定模块503,用于根据目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,每个预设的内存纠错算法具备对应的错误率范围;
第一处理模块504,用于基于目标内存纠错算法对存储数据进行纠错处理。
可选地,第一确定模块503,可以包括:
第一确定子模块,用于根据目标错误率范围,以及错误率范围与错误率等级的对应关系,确定与目标错误率范围对应的目标错误率等级;
第二确定子模块,用于根据目标错误率等级,以及错误率等级和内存纠错算法的对应关系,确定与目标错误率等级对应的目标内存纠错算法。
可选地,第一获取模块501,可以包括:
第一获取子模块,用于获取目标内存片区中的存储数据,以及用于确定存储数据是否正确的校验数据;
第二获取子模块,用于比对存储数据和校验数据,获取比对结果;
第三获取子模块,用于根据比对结果,获取目标内存片区中存储数据的目标错误率。
可选地,第一获取子模块,可以包括:
第一获取单元,用于获取校验数据在目标内存中的存储地址;
第一提取单元,用于根据存储地址,从与存储地址对应的第一内存片区中提取校验数据。
可选地, 内存纠错装置还包括:
第三获取模块,用于在获取目标错误率对应的目标错误率范围之后,获取校验数据写入请求,并根据校验数据写入请求,将校验数据写入第二内存片区中;
第四获取模块,用于获取校验数据删除请求,并根据校验数据删除请求,将校验数据从第一内存片区中删除;其中,校验数据写入请求和校验数据删除请求,是处理器在在确定第一内存片区的剩余内存小于预设剩余内存阈值的情况下,确定出第二内存片区后生成的指令。
参照图8,本申请提供了另一种内存纠错装置,内存纠错装置60应用于内存控制器,内存纠错装置60包括:
第三获取模块601,用于获取目标内存片区中存储数据的目标错误率;
第二确定模块602,用于根据目标错误率,确定目标错误率的目标错误率范围;
第三确定模块603,用于将目标错误率范围发送至内存控制器,以供内存控制器根据目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,并基于目标内存纠错算法对存储数据进行纠错处理,每个预设的内存纠错算法具备对应的错误率范围。
可选地,目标错误率是内存控制器比对存储数据,以及从第一内存片区中提取的校验数据,根据比对结果得到的;
对应地,内存纠错装置还包括:
在获取目标内存片区中存储数据的目标错误率之后,还包括:
第四确定模块,用于在确定第一内存片区的剩余内存小于预设剩余内存阈值的情况下,确定第二内存片区;
第一生成模块,用于生成校验数据写入请求,以供内存控制器根据写入请求,将校验数据写入第二内存片区中。
可选地,内存纠错装置还包括:
第二生成模块,用于在确定第二内存片区之后,生成校验数据删除请求,以供内存控制删除第一内存片区中的校验数据。
可选地,目标内存片区为目标内存颗粒中的部分内存片区,或者,目标内存片区包括至少部分目标内存颗粒中的全部内存片区;其中,目标内存颗粒为目标内存中的内存颗粒。
综上,在实施例中,获取目标内存片区中存储数据的目标错误率,根据目标错误率,确定目标错误率的目标错误率等级,将目标错误率等级发送至内存控制器,以供内存控制器根据目标错误率等级,从预设的内存纠错算法中,确定出用于对存储数据进行纠错处理的目标内存纠错算法。相对于相关技术中使用固定的内存纠错算法,对目标内存片区中的存储数据进行纠错的方法,本实施例根据目标内存片区中存储数据的目标错误率,动态的确定对应的目标内存纠错算法,由此得到的目标内存纠错算法,基于该目标内存纠错算法对存储数据进行纠错处理,可以确保纠错处理结果满足控制器的纠错要求。
图9是本申请实施例提供的一种电子设备700的框图。例如,电子设备700可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图9,电子设备700可以包括以下一个或多个组件:处理组件702,存储器704,电源组件706,多媒体组件708,音频组件710,输入/输出(I/ O)的接口712,传感器组件714,以及通信组件716。
处理组件702通常控制电子设备700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件702可以包括一个或多个处理器720来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。例如,处理组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。
存储器704用于存储各种类型的数据以支持在电子设备700的操作。这些数据的示例包括用于在电子设备700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,多媒体等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件706为电子设备700的各种组件提供电力。电源组件706可以包括电源管理系统,一个或多个电源,及其他与为电子设备700生成、管理和分配电力相关联的组件。
多媒体组件708包括在电子设备700和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的分界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件408包括一个前置摄像头和/或后置摄像头。当电子设备400处于操作模式,如拍摄模式或多媒体模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件710用于输出和/或输入音频信号。例如,音频组件710包括一个麦克风(MIC),当电子设备700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括一个扬声器,用于输出音频信号。
I/ O接口712为处理组件702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件714包括一个或多个传感器,用于为电子设备700提供各个方面的状态评估。例如,传感器组件714可以检测到电子设备700的打开/关闭状态,组件的相对定位,例如组件为电子设备700的显示器和小键盘,传感器组件714还可以检测电子设备700或电子设备700一个组件的位置改变,用户与电子设备700接触的存在或不存在,电子设备700方位或加速/减速和电子设备700的温度变化。传感器组件714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件714还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件714还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件716用于便于电子设备700和其他设备之间有线或无线方式的通信。电子设备700可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件716还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于实现本申请实施例提供的一种内存纠错方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器704,上述指令可由电子设备700的处理器720执行以完成上述方法。例如,非临时性存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图10是根据一示例性实施例示出的一种电子设备800的框图。例如,电子设备800可以被提供为一服务器。参照图10,电子设备800包括处理组件822,其进一步包括一个或多个处理器,以及由存储器832所代表的存储器资源,用于存储可由处理组件822的执行的指令,例如应用程序。存储器832中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件822被配置为执行指令,以执行本申请实施例提供的一种内存纠错方法。
电子设备800还可以包括一个电源组件826被配置为执行电子设备800的电源管理,一个有线或无线网络接口850被配置为将电子设备800连接到网络,和一个输入输出(I/O)接口858。电子设备800可以操作基于存储在存储器832的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请实施例还提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现的一种内存纠错方法。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
以上对本申请所提供的一种内存纠错方法、装置、电子设备及计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种内存纠错方法,其特征在于,所述方法应用于内存控制器,所述方法包括:
获取目标内存片区中存储数据的目标错误率,以供处理器根据所述目标错误率确定对应的目标错误率范围;
接收所述目标错误率对应的目标错误率范围;
根据所述目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,每个预设的内存纠错算法具备对应的错误率范围;
基于所述目标纠错算法对所述存储数据进行纠错处理;
在获取目标错误率对应的目标错误率范围之后,还包括:
获取校验数据写入请求,并根据所述校验数据写入请求,将所述校验数据写入第二内存片区中;
所述校验数据用于确定所述存储数据是否正确,所述校验数据存储在第一内存片区中。
2.根据权利要求1所述的方法,其特征在于,根据所述目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,包括:
根据所述目标错误率范围,以及错误率范围与错误率等级的对应关系,确定与所述目标错误率范围对应的目标错误率等级;
根据所述目标错误率等级,以及错误率等级和内存纠错算法的对应关系,确定与所述目标错误率等级对应的目标内存纠错算法。
3.根据权利要求1所述的方法,其特征在于,所述获取目标内存片区中存储数据的目标错误率,包括:
获取所述目标内存片区中的存储数据,以及用于确定所述存储数据是否正确的校验数据;
比对所述存储数据和所述校验数据,获取比对结果;
根据所述比对结果,获取所述目标内存片区中存储数据的目标错误率。
4.根据权利要求3所述的方法,其特征在于,获取用于确定所述存储数据是否正确的校验数据,包括:
获取所述校验数据在目标内存中的存储地址;
根据所述存储地址,从与所述存储地址对应的第一内存片区中提取所述校验数据。
5.根据权利要求4所述的方法,其特征在于, 在获取目标错误率对应的目标错误率范围之后,还包括:
获取校验数据删除请求,并根据所述校验数据删除请求,将所述校验数据从所述第一内存片区中删除;
其中,所述校验数据写入请求和所述校验数据删除请求,是所述处理器在确定所述第一内存片区的剩余内存小于预设剩余内存阈值的情况下,确定出第二内存片区后生成的指令。
6.一种内存纠错方法,其特征在于,所述方法应用于处理器,所述方法包括:
获取目标内存片区中存储数据的目标错误率;
根据所述目标错误率,确定所述目标错误率的目标错误率范围;
将所述目标错误率范围发送至内存控制器,以供所述内存控制器根据所述目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,并基于所述目标内存纠错算法对所述存储数据进行纠错处理,每个预设的内存纠错算法具备对应的目标错误率范围;
在获取目标内存片区中存储数据的目标错误率之后,还包括:
生成校验数据写入请求,以供所述内存控制器根据所述写入请求,将所述校验数据写入第二内存片区中;
所述校验数据用于确定所述存储数据是否正确,所述校验数据存储在第一内存片区中。
7.根据权利要求6所述的方法,其特征在于,所述目标错误率是所述内存控制器比对所述存储数据,以及从第一内存片区中提取的校验数据,根据比对结果得到的;
在获取目标内存片区中存储数据的目标错误率之后,还包括:
在确定所述第一内存片区的剩余内存小于预设剩余内存阈值的情况下,确定第二内存片区。
8.根据权利要求7所述的方法,其特征在于,在确定第二内存片区之后,还包括:
生成校验数据删除请求,以供所述内存控制删除所述第一内存片区中的所述校验数据。
9.根据权利要求6所述的方法,其特征在于,所述目标内存片区为目标内存颗粒中的部分内存片区,或者,所述目标内存片区包括至少部分目标内存颗粒中的全部内存片区;
其中,所述目标内存颗粒为目标内存中的内存颗粒。
10.一种内存纠错装置,其特征在于,所述装置位于内存控制器,所述装置包括:
第一获取模块,用于获取目标内存片区中存储数据的目标错误率,以供处理器根据所述目标错误率确定对应的目标错误率范围;
第二获取模块,用于接收所述目标错误率对应的目标错误率范围;
第一确定模块,用于根据所述目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,每个预设的内存纠错算法具备对应的错误率范围;
第一处理模块,用于基于所述目标纠错算法对所述存储数据进行纠错处理;
在获取目标错误率对应的目标错误率范围之后,还包括:获取校验数据写入请求,并根据所述校验数据写入请求,将所述校验数据写入第二内存片区中;
所述校验数据用于确定所述存储数据是否正确,所述校验数据存储在第一内存片区中。
11.一种内存纠错装置,其特征在于,所述装置位于处理器,所述装置包括:
第三获取模块,用于获取目标内存片区中存储数据的目标错误率;
第二确定模块,用于根据所述目标错误率,确定所述目标错误率的目标错误率范围;
第三确定模块,用于将所述目标错误率范围发送至内存控制器,以供所述内存控制器根据所述目标错误率范围,从多个预设的内存纠错算法中确定出目标内存纠错算法,并基于所述目标内存纠错算法对所述存储数据进行纠错处理,每个预设的内存纠错算法具备对应的错误率范围;
第一生成模块,用于生成校验数据写入请求,以供所述内存控制器根据所述写入请求,将所述校验数据写入第二内存片区中;
所述校验数据用于确定所述存储数据是否正确,所述校验数据存储在第一内存片区中。
12.一种电子设备,其特征在于,包括:处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至9中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311345124.9A CN117112289B (zh) | 2023-10-17 | 2023-10-17 | 内存纠错方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311345124.9A CN117112289B (zh) | 2023-10-17 | 2023-10-17 | 内存纠错方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117112289A CN117112289A (zh) | 2023-11-24 |
CN117112289B true CN117112289B (zh) | 2024-02-02 |
Family
ID=88800399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311345124.9A Active CN117112289B (zh) | 2023-10-17 | 2023-10-17 | 内存纠错方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117112289B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003224617A (ja) * | 2002-01-29 | 2003-08-08 | Matsushita Electric Ind Co Ltd | 通信装置及び通信方法 |
CN103077095A (zh) * | 2012-12-28 | 2013-05-01 | 华为技术有限公司 | 内存数据的纠错方法及装置及计算机系统 |
CN104464822A (zh) * | 2014-11-21 | 2015-03-25 | 湖南大学 | 一种基于闪存错误区间的ldpc纠错编码方法 |
CN106415502A (zh) * | 2014-12-12 | 2017-02-15 | 华为技术有限公司 | 数据存储的方法和装置 |
CN108073470A (zh) * | 2016-11-07 | 2018-05-25 | 三星电子株式会社 | 执行地址映射表的纠错的存储器系统及其控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102415974B1 (ko) * | 2017-12-14 | 2022-07-04 | 삼성전자주식회사 | 에러 정정 장치, 에러 정정 장치의 동작 방법, 그리고 에러 정정 장치를 포함하는 제어기 |
-
2023
- 2023-10-17 CN CN202311345124.9A patent/CN117112289B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003224617A (ja) * | 2002-01-29 | 2003-08-08 | Matsushita Electric Ind Co Ltd | 通信装置及び通信方法 |
CN103077095A (zh) * | 2012-12-28 | 2013-05-01 | 华为技术有限公司 | 内存数据的纠错方法及装置及计算机系统 |
CN104464822A (zh) * | 2014-11-21 | 2015-03-25 | 湖南大学 | 一种基于闪存错误区间的ldpc纠错编码方法 |
CN106415502A (zh) * | 2014-12-12 | 2017-02-15 | 华为技术有限公司 | 数据存储的方法和装置 |
CN108073470A (zh) * | 2016-11-07 | 2018-05-25 | 三星电子株式会社 | 执行地址映射表的纠错的存储器系统及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117112289A (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10311296B2 (en) | Method of providing handwriting style correction function and electronic device adapted thereto | |
US10643054B2 (en) | Method and device for identity verification | |
CN106033397B (zh) | 内存缓冲区调整方法、装置及终端 | |
US10817355B2 (en) | Method and apparatus for communication between webpage and operating system | |
CN110489983B (zh) | 芯片访问方法、装置、芯片及终端 | |
CN111866885A (zh) | 验证信息共享方法、装置及电子设备 | |
CN106919283A (zh) | 终端的触摸事件处理方法、装置及终端 | |
KR20160059455A (ko) | 웹 페이지 인코딩 인식 방법, 인식 장치, 프로그램 및 저장매체 | |
CN108153540B (zh) | 系统升级的方法、装置、终端及存储介质 | |
CN108446226B (zh) | 应用异常的处理方法 | |
CN117112289B (zh) | 内存纠错方法、装置、设备及可读存储介质 | |
CN110673753A (zh) | 按键误触纠错方法及装置 | |
CN113778687B (zh) | 内存分配信息处理方法、装置、电子设备及存储介质 | |
WO2019001427A1 (zh) | 账户管理方法及装置 | |
CN111083279A (zh) | 一种截屏处理方法、装置、电子设备及存储介质 | |
CN113903034A (zh) | 一种基于公式的数据处理方法及装置 | |
CN110008135B (zh) | 一种信息处理方法、装置及电子设备 | |
CN107526683B (zh) | 应用程序功能冗余度的检测方法、装置及存储介质 | |
CN117111857B (zh) | 读取数据信息的方法、装置、设备及存储介质 | |
CN112925423B (zh) | 一种动态纠错方法、装置和用于动态纠错的装置 | |
CN112200783B (zh) | 一种商品图像的处理方法及装置 | |
CN111443938B (zh) | 系统更新方法、装置、存储介质及移动终端 | |
CN116303101B (zh) | 测试案例生成方法、装置和设备 | |
CN118427166A (zh) | 文件修复方法、装置、电子设备及存储介质 | |
CN117520283A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |