CN110716824B - 编码方法及使用所述编码方法的存储器存储装置 - Google Patents
编码方法及使用所述编码方法的存储器存储装置 Download PDFInfo
- Publication number
- CN110716824B CN110716824B CN201910630198.4A CN201910630198A CN110716824B CN 110716824 B CN110716824 B CN 110716824B CN 201910630198 A CN201910630198 A CN 201910630198A CN 110716824 B CN110716824 B CN 110716824B
- Authority
- CN
- China
- Prior art keywords
- bits
- codeword
- new
- new codeword
- existing
- 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
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/1048—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 arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
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
技术领域
本发明涉及一种存储器存储装置,且更具体来说涉及一种编码方法及一种使用所述编码方法的存储器存储装置。
背景技术
一般来说,可根据错误校正码(error correcting code,ECC)将待写入到可重写非易失性存储器(non-volatile memory,NVM)的数据编码成码字。也可通过对应的解码程序来处理从可重写非易失性存储器读取的码字以恢复所述数据。码字通常是数据本身与根据以下产生的奇偶校验数据的组合:博斯-乔杜里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、汉明码(hamming code)、具有额外奇偶校验的汉明码(SECDED)、里德-索罗门(Reed-Solomon)码、萧氏(Hsiao)码、或利恩(Lien)码等。
为改善NVM写入功率、写入时间及循环可靠性,需要一种方法及一种芯片上ECC算法来实现低功率设计及页面写入时间减少并改善装置可靠性。
发明内容
因此,本发明涉及一种编码方法及一种使用所述编码方法的存储器存储装置,其中利用ECC算法来实作NVM翻转位写入功能,以减少写入时间、写入功率并改善可靠性。
本发明的示例性实施例提供一种用于采用错误校正码(ECC)算法的存储器存储装置的编码方法。所述编码方法包括:接收包含写入地址及写入数据的写入命令;读取现***字;将翻转位附加到所述写入数据;由ECC编码器基于默认ECC对所述写入数据及所述翻转位进行编码以产生多个奇偶校验位,并将所述写入数据及所述翻转位附加到所述多个奇偶校验位以产生新码字;基于所选位中从所述现***字成为所述新码字需要改变的位数目来翻转所述新码字;以及将所述新码字及经翻转的所述新码字中的一者写入到所述写入地址。
本发明的另一示例性实施例提供一种采用ECC算法的存储器存储装置。所述存储器存储装置包括连接接口、存储器阵列及存储器控制电路。所述连接接口被配置成耦合到主机***。所述存储器控制电路耦合到所述连接接口及所述存储器阵列且被配置成响应于接收到包含写入地址及写入数据的写入命令而基于所述ECC算法来执行编码操作。所述编码操作包括:读取现***字;将翻转位附加到所述写入数据;由ECC编码器基于所述ECC算法来对所述写入数据及所述翻转位进行编码以产生多个奇偶校验位,并将所述写入数据及所述翻转位附加到所述多个奇偶校验位以产生新码字;基于所选位中从所述现***字成为所述新码字需要改变的位数目来翻转所述新码字;以及将所述新码字及经翻转的所述新码字中的一者写入到所述写入地址。
基于以上内容,通过采用本发明中所提供的编码方法及存储器存储装置,响应于接收到写入命令,对写入数据进行编码并与写入地址中的或具有预定义模式的现***字进行比较以确定写入时需要改变的位数目。基于所确定数目来选择性地翻转经编码码字的位,并将指示位翻转的至少一个翻转位添加到码字。因此,写入时的位改变数目可减少,且写入时间及功率可减少。
为使本发明的上述特征及优点更易理解,下面结合附图详细地阐述若干实施例。
附图说明
包含附图是为了提供对本发明的进一步理解,并且附图并入本说明书中并构成本说明书的一部分。附图示出了本发明的实施例,并且与本说明一起用于解释本发明的原理。
图1是示出根据本发明实施例的存储器存储装置的示意性框图。
图2是示出根据本发明实施例用于存储器存储装置的编码方法的流程图。
图3是示出根据本发明另一实施例采用通过BCH(51,33,7)修改的ECC算法的编码方法的示意图。
图4是示出根据本发明另一实施例采用通过BCH(51,33,7)修改的ECC算法的编码方法的示意图。
图5是示出根据本发明另一实施例采用通过BCH(51,33,7)修改的ECC算法的编码方法的示意图。
图6是示出根据本发明另一实施例采用通过BCH(51,33,7)修改的ECC算法的编码方法的示意图。
图7是示出根据本发明实施例用于存储器存储装置的编码方法的流程图。
图8是示出根据本发明另一实施例采用通过BCH(52,34,7)修改的ECC算法的编码方法的示意图。
符号的说明
100:存储器存储装置
110:连接接口
130:存储器控制电路/存储器控制电路单元
131:错误校正码(ECC)编码器
150:存储器阵列
CW:51位码字/51位新码字
EC1、EC2、EC4:51位现***字/现***字
EC3:现***字
EC3a:现***字的偶数位
EC3b:现***字的奇数位
f1:翻转位
m1~m32:写入数据
Mp:矩阵
NC1、NC2、NC4:51位新码字/新码字
NC1’、NC2’、NC3a’、NC3b’、NC4’:经翻转新码字
NC3:52位新码字/新码字
NC3a:新码字的偶数位
NC3b:新码字的奇数位
OD:33位数据
p1~p18:元素
PD:18位奇偶校验数据
S202、S204、S206、S208、S702、S704、S706、S708、S710、S712、S714、S716、S718、S720、S722:步骤
具体实施方式
现在将详细参照本发明的优选实施例,在附图中示出所述优选实施例的实例。在附图及说明中,尽可能地使用相同参考编号来指代相同或类似的部件。
参照图1,存储器存储装置100包括连接接口110、存储器控制电路130及存储器阵列150。在一个实施例中,存储器存储装置100是可重写非易失性存储器,且存储器阵列150包括多个可重写非易失性存储器胞元。
在一个实施例中,连接接口110被配置成通过串行高级技术附件(SerialAdvanced Technology Attachment,SATA)标准耦合到主机***(图中未示出)。在其他实施例中,连接接口110可符合并行高级技术附件(Parallel Advanced TechnologyAttachment,PATA)标准、电气与电子工程师学会(Institute of Electrical andElectronic Engineers,IEEE)1394标准、或其他适合的标准,这在本发明并不受限。在一个实施例中,连接接口110可与存储器控制电路单元130封装在一个芯片中,或者被放置在具有存储器控制电路单元130的芯片之外。
存储器控制电路130耦合到连接接口110及存储器阵列150,且被配置成执行多个逻辑门或控制命令,所述逻辑门或控制命令是以硬件形式或以固件形式来实作并根据主机***的命令而在存储器阵列150中执行例如数据写入、读取或擦除等操作。
在一个实施例中,存储器存储装置100是采用ECC算法的可重写NVM,其中存储器控制电路130进一步包括ECC编码器131,ECC编码器131使用所述ECC算法来对通过连接接口110接收的数据进行编码以产生码字并将所述码字写入到存储器阵列150中。应注意,在本发明中,通过所述ECC算法产生的码字的一的补数(one’s complement)仍为另一码字。所述ECC算法例如是通过利恩码、博斯-乔杜里-霍昆格姆(BCH)码、汉明码、具有额外奇偶校验的汉明码(SECDED)、里德-索罗门码、或萧氏码等修改的ECC,这在本文并不受限。
存储器阵列150耦合到存储器控制电路130,且包括多个存储器胞元(例如,可重写非易失性存储器胞元)。在一个实施例中,主机***向存储器存储装置100传送要将数据写入到存储器存储装置100的写入命令,且接着,存储器控制电路130响应于所述写入命令而将写入数据编码成码字并将所述码字存储在存储器阵列150中。
图2是示出根据本发明实施例用于存储器存储装置的编码方法的流程图。所述编码方法可由图1所示实施例的存储器存储装置100执行。因此,在本实施例中,将通过参照前述存储器存储装置100来说明所述编码方法。
参照图2,存储器控制电路130通过连接接口110接收包含写入地址及写入数据的写入命令(步骤S202)。响应于所接收的写入命令,存储器控制电路130的ECC编码器131预先读取现***字(步骤S204)。在一个实施例中,现***字是预先存储在写入地址中的码字,且在另一实施例中,现***字是具有预定义数据模式(例如,000000…、或者FFFFFF…)的码字,这在本文并不受限。
同时,ECC编码器131基于以上所述的ECC算法将写入数据编码成新码字,并基于从现***字成为新码字需要改变的位数目来翻转所述新码字的多个位(步骤S206)。具体来说,在步骤S206中,ECC编码器131可将翻转位附加到写入数据,基于ECC算法来计算写入数据及翻转位的奇偶校验数据,并将奇偶校验数据、写入数据及翻转位组合以产生新码字。接着,ECC编码器131将新码字的多个所选位与现***字的多个所选位进行比较以确定从现***字成为新码字需要改变的位数目,并判断需要改变的所确定位数目是否超过预定阈值。应注意,在本发明中,经编码新码字的一的补数也为码字。
在一些实施例中,所述预定阈值是数据位及奇偶校验位的总数目的一半,这在本文并不受限。
如果所确定位数目被确定为超过预定阈值,则ECC编码器131翻转包括数据位、奇偶校验位及翻转位的新码字的位。另一方面,如果所确定位数目被确定为低于预定阈值,则ECC编码器131不对新码字的位执行位翻转。应注意,如果预定阈值等于码字位的数目的一半且所确定位数目被确定为等于预定阈值,也就是说,将改变的位数目与将不改变的位数目相同,则ECC编码器131也不对经编码新码字的位执行位翻转。
最终,ECC编码器131将新码字及经翻转新码字中的一者写入到写入地址(步骤S208)。
基于以上内容,由于通过选择性地翻转将写入的码字的位而将从现***字成为新码字而改变的位数目减少至小于码字位数目的一半,因此写入时间及功率可减少,且可靠性及耐久性可改善。
举例来说,图3是示出根据本发明另一实施例采用通过BCH(51,33,7)修改的ECC算法的编码方法的示意图。
参照图3,基于通过BCH(51,33,7)修改的ECC算法,ECC编码器131将包括32位写入数据m1至m32及一个翻转位f1的33位数据OD编码成51位码字CW,且矩阵Mp是计算33位OD的18位奇偶校验数据PD时所使用的18*33矩阵。具体来说,当存储器存储装置100接收到32位写入数据时,ECC编码器131首先将翻转位f1附加到所述32位写入数据。接着,可将包括所述32位写入数据及翻转位f1的33位数据OD写入单列向量中。接着,将33位数据OD乘以矩阵Mp,以便获得具有18个元素p1至p18的单列向量,所述18个元素p1至p18各自表示18位奇偶校验数据PD的一个位。接着,ECC编码器131将33位数据OD附加到18位奇偶校验数据PD,以产生51位新码字CW。
在一些实施例中,翻转位f1指示对码字的位翻转。在一些实施例中,以第一值(即,逻辑1)来设定所附加的翻转位f1,所述第一值指示未对码字进行位翻转。当对码字执行位翻转时,翻转位f1也被翻转成第二值(即,逻辑0),所述第二值指示对码字进行了位翻转。
基于以上所述的编码方法,由ECC编码器131从写入数据产生包括翻转位的新码字。应注意,在一个实施例中,从自写入地址读取的现***字成为新码字而改变的位被减至最少,且在另一实施例中,从具有预定义数据模式的现***字成为新码字而改变的位被减至最少。以下给出示例性实施例来进行进一步说明。
图4是示出根据本发明另一实施例采用通过BCH(51,33,7)修改的ECC算法的编码方法的示意图。参照图4,当接收到写入数据时,ECC编码器131通过使用在图3所示实施例中所述的ECC算法将写入数据编码成51位新码字NC1。ECC编码器131还从写入地址读出51位现***字EC1。接着,ECC编码器131将新码字NC1的多个位与现***字EC1的多个位进行比较,以确定从现***字EC1成为新码字NC1需要改变的位数目。最终,ECC编码器131基于所确定数目来翻转包括写入数据、奇偶校验位及翻转位的新码字NC1的位,并将新码字NC1及经翻转新码字NC1’中的一者写入到写入地址。具体来说,ECC编码器131判断所确定数目是否超过码字位的数目的一半。如果是,则ECC编码器131翻转新码字NC1的所有位并将包括翻转位的经翻转新码字NC1’写入到写入地址。如果判断结果为否,则ECC编码器131不对新码字NC1执行位翻转,并将新码字NC1写入到写入地址。
另一方面,图5是示出根据本发明另一实施例采用通过BCH(51,33,7)修改的ECC算法的编码方法的示意图。参照图5,当接收到写入数据时,ECC编码器131通过使用图3所示实施例中所述的ECC算法将写入数据编码成51位新码字NC2。ECC编码器131还读出具有预定义数据模式(例如000000…)的51位现***字EC2。接着,ECC编码器131将新码字NC2的多个位与现***字EC2的多个位进行比较,以确定从现***字EC2成为新码字NC2需要改变的位数目。最终,ECC编码器131基于所确定数目来翻转包括写入数据、奇偶校验位及翻转位的新码字NC2的位,并将新码字NC2及经翻转新码字NC2’中的一者写入到写入地址。具体来说,ECC编码器131判断所确定数目是否超过码字位的数目的一半。如果是,则ECC编码器131翻转新码字NC2的所有位并将包括翻转位的经翻转新码字NC2’写入到写入地址。如果判断结果为否,则ECC编码器131不对新码字NC2执行位翻转,并将新码字NC2写入到写入地址。
应注意,由于通过ECC算法产生的奇偶校验位(例如,图3中的奇偶校验位p1至p18)始终随着写入数据的改变(甚至单位(one-bit)改变)而改变,因此预期会频繁地写入那些奇偶校验位、接着写入所述写入数据(例如,图3中的写入数据)。在此种情形中,即使奇偶校验位中需要改变的位数目是大的,因写入数据中需要改变的位较少(即,需要改变的总位数目小于码字位的数目的一半),码字可能不被翻转。因此,如果通过数据位与奇偶校验位的总数目来确定位翻转,则无法有效地减少奇偶校验位的循环次数。因此,在以下实施例中,编码方法可仅基于从现***字成为新码字需要改变的奇偶校验位来确定位翻转,以进一步改善位写入耐久性,但本发明并非仅限于此。
举例来说,图6是示出根据本发明另一实施例采用通过BCH(51,33,7)修改的ECC算法的编码方法的示意图。参照图6,当接收到写入数据时,ECC编码器131通过使用在图3所示实施例中所述的ECC算法将写入数据编码成51位新码字NC4。ECC编码器131还从写入地址读出51位现***字EC4。接着,ECC编码器131将新码字NC4的多个奇偶校验位p1至p18与现***字EC4的多个奇偶校验位p1至p18进行比较,以确定奇偶校验位中从现***字EC4成为新码字NC4需要改变的位数目。最终,ECC编码器131基于所确定数目来翻转新码字NC4的位,并将新码字NC4及经翻转新码字NC4’中的一者写入到写入地址。具体来说,ECC编码器131判断所确定数目是否超过奇偶校验位的数目的一半。如果是,则ECC编码器131翻转新码字NC4的所有位并将包括翻转位的经翻转新码字NC4’写入到写入地址。如果判断结果为否,则ECC编码器131不对新码字NC4执行位翻转,并将新码字NC4写入到写入地址。
为进一步减少写入时间及功率,在一些实施例中,采用多个翻转位以分别指示对码字的不同部分的位翻转,且在一些实施例中,所述翻转位还包含在码字的不同部位中,这在本文并不受限。在一个实施例中,翻转位包括:第一翻转位,包含在码字的多个偶数位中的一者中以用于指示对偶数位的位翻转;以及第二翻转位,包含在码字的多个奇数位中的一者中以用于指示对奇数位的位翻转。
图7是示出根据本发明实施例用于存储器存储装置的编码方法的流程图。所述编码方法可由图1所示实施例的存储器存储装置100执行。因此,在本实施例中,将通过参照前述存储器存储装置100来说明所述编码方法。
参照图7,存储器控制电路130接收包含写入地址及写入数据的写入命令(步骤S702)。响应于所接收的写入命令,存储器控制电路130的ECC编码器131预先读取现***字(步骤S704)。在一个实施例中,现***字是预先存储在写入地址中的码字,且在另一实施例中,现***字是具有预定义数据模式(例如,000000…、或者FFFFFF…)的码字,这在本文并不受限。
同时,ECC编码器131基于ECC算法将写入数据编码成新码字而不翻转新码字的位,并将新码字加载到写入缓冲器(步骤S706)。具体来说,在步骤S706中,ECC编码器131可将两个翻转位附加到写入数据,基于ECC算法来计算写入数据及翻转位的奇偶校验数据,将奇偶校验数据、写入数据及翻转位组合以产生新码字,并将新码字加载到写入缓冲器。在此实施例中,所附加的翻转位包括用于指示对偶数位的位翻转的第一翻转位、及用于指示对奇数位的位翻转的第二翻转位。
接着,ECC编码器131并行或连续地执行步骤S708及S714。应注意,在本发明中,经编码新码字的一的补数也为码字。
在步骤S708中,ECC编码器131将新码字的偶数位与现***字的偶数位进行比较以确定从现***字的所有偶数位成为新码字的所有偶数位需要改变的位数目,并接着判断所确定数目是否超过码字位的数目的四分之一(步骤S710)。如果是,则ECC编码器131翻转码字的所有偶数位,并将经翻转偶数位加载到写入缓冲器中(步骤S712)。
相似地,在步骤S714中,ECC编码器131将新码字的奇数位与现***字的奇数位进行比较以确定从现***字的所有奇数位成为新码字的所有奇数位需要改变的位数目,并接着判断所确定数目是否超过码字位的数目的四分之一(步骤S716)。如果是,则ECC编码器131翻转码字的所有奇数位并将经翻转奇数位加载到写入缓冲器中(步骤S718)。
应注意,在步骤S710及S716中,如果判断结果为否,则ECC编码器131不对码字执行位翻转(步骤S720),且因此,写入缓冲器中不存在改变。应注意,在偶数位及奇数位中的每一部分中,如果将改变的位数目与将不改变的位数目相同,则ECC编码器131不执行位翻转。
最终,ECC编码器131执行码字写入,以将写入缓冲器中的码字写入到写入地址(步骤S722)。
基于以上内容,由于通过选择性地且分别地翻转将写入的码字的偶数位及奇数位而减少从现***字成为新码字改变的位数目,因此写入时间及功率可进一步减少且可靠性可进一步改善。
举例来说,图8是示出根据本发明另一实施例采用通过BCH(52,34,7)修改的ECC算法的编码方法的示意图。参照图8,当接收到写入数据时,ECC编码器131通过使用与图3所示实施例中所述的ECC算法相似的ECC算法将写入数据编码成52位新码字NC3。应注意,在此实施例中,ECC编码器131首先将两个翻转位附加到写入数据,并将数据位及翻转位编码成52位新码字。在一些实施例中,所述两个翻转位单独地指示对码字中所有偶数数据位及所有奇数数据位的位翻转。在一些实施例中,以第一值(即,逻辑1)来设定所附加的所述两个翻转位,所述第一值指示未对码字进行位翻转。当对码字的偶数位或奇数位执行位翻转时,对应的翻转位也被翻转成第二值(即,逻辑0),所述第二值指示对码字进行了位翻转。
在一些实施例中,响应于接收到写入命令,ECC编码器131还读出包括两个翻转位的52位现***字EC3。
接着,ECC编码器131将新码字NC3的多个偶数位NC3a与现***字EC3的多个偶数位EC3a进行比较,以确定所有偶数位中从现***字EC3成为新码字NC3需要改变的位数目。同时,ECC编码器131还将新码字NC3的多个奇数位NC3b与现***字EC3的多个奇数位EC3b进行比较,以确定所有奇数位中从现***字EC3成为新码字NC3需要改变的位数目。此外,应注意,在本发明中,经编码新码字的任一部分(即,偶数位或奇数位)的一的补数也为码字。
最终,ECC编码器131基于偶数位中需要改变的所确定位数目来翻转新码字NC3的偶数位NC3a,基于奇数位中需要改变的所确定位数目来翻转新码字NC3的奇数位NC3b,并将包括所述两个翻转位的整个新码字写入到写入地址。具体来说,ECC编码器131判断偶数位中需要改变的所确定位数目是否超过码字位的数目的四分之一。如果是,则ECC编码器131翻转新码字NC3的所有偶数位NC3a并将包括翻转位的经翻转新码字NC3a’加载到写入缓冲器。如果否,则ECC编码器131不对新码字NC3的偶数位NC3a执行位翻转。相似地,ECC编码器131判断奇数位中需要改变的所确定位数目是否超过码字位的数目的四分之一。如果是,则ECC编码器131翻转新码字NC3的所有奇数NC3b位并将包括翻转位的经翻转新码字NC3b’加载到写入缓冲器。如果否,则ECC编码器131不对新码字NC3的奇数位NC3b执行位翻转。接着,将写入缓冲器中包括所有偶数位及所有奇数位的整个码字写入到存储器阵列150中。
在前述实施例中,基于本发明的编码方法,从现***字成为经编码码字而改变的偶数位及奇数位被减至最少。然而,在一些实施例中,基于本发明中所提供的编码方法,第一部分或第二部分中的奇偶校验位中改变的位被减至最少,但本发明并非仅限于此。
综上所述,在本发明中所提供的编码方法及存储器存储装置中,引入一种利用BCHECC算法来实作NVM翻转位写入功能的ECC算法,其中采用一个或多个翻转位来指示码字位的不同部分上的码字位翻转。因此,写入时的位改变数目可减少,且写入时间及功率可减少。此外,存储器装置的耐久性得以改善。
对于所属领域中的技术人员来说将显而易见,在不背离本发明的范围或精神的条件下,可对本发明的结构作出各种修改及变化。鉴于上述内容,本发明旨在涵盖本发明的修改及变化,只要所述修改及变化归属于以上权利要求及其等效内容的范围内即可。
Claims (10)
1.一种用于采用错误校正码算法的存储器存储装置的编码方法,包括:
接收包含写入地址及写入数据的写入命令;
读取现***字;
将翻转位附加到所述写入数据;
由错误校正码编码器基于所述错误校正码算法对所述写入数据及所述翻转位进行编码以产生多个奇偶校验位,并将所述写入数据及所述翻转位附加到所述多个奇偶校验位以产生新码字;
将所述新码字的所述多个奇偶校验位与所述现***字的多个奇偶校验位进行比较,以确定所述多个奇偶校验位从所述现***字成为所述新码字需要改变的位数目,并基于所确定的所述位数目来翻转所述新码字;以及
将所述新码字及经翻转的所述新码字中的一者写入到所述写入地址。
2.根据权利要求1所述的编码方法,其中如果将改变的所述位数目与将不改变的位数目相同,则不执行位翻转。
3.根据权利要求1所述的编码方法,其中所述现***字及所述新码字中的任一码字的一的补数也为码字。
4.根据权利要求1所述的编码方法,其中所述现***字及所述新码字中的每一码字包括第一翻转位且进一步包括第二翻转位,所述第一翻转位包含在所述码字的第一部分中,所述第二翻转位包含在所述码字的第二部分中。
5.根据权利要求4所述的编码方法,其中所述新码字及所述现***字中的任一码字的所述第一部分或所述第二部分的一的补数也为码字。
6.根据权利要求4所述的编码方法,其中在所述第一部分及所述第二部分中的每一部分中,如果将改变的所述位数目与将不改变的位数目相同,则不执行位翻转。
7.一种采用错误校正码算法的存储器存储装置,包括:
连接接口,被配置成耦合到主机***;
存储器阵列;以及
存储器控制电路,耦合到所述连接接口及所述存储器阵列,且被配置成响应于接收到包含写入地址及写入数据的写入命令而基于所述错误校正码算法来执行编码操作,其中所述编码操作包括:
读取现***字;
将翻转位附加到所述写入数据;
由错误校正码编码器基于所述错误校正码算法来对所述写入数据及所述翻转位进行编码以产生多个奇偶校验位,并将所述写入数据及所述翻转位附加到所述多个奇偶校验位以产生新码字;
将所述新码字的所述多个奇偶校验位与所述现***字的多个奇偶校验位进行比较,以确定所述多个奇偶校验位从所述现***字成为所述新码字需要改变的位数目,并基于所确定的所述位数目来翻转所述新码字;以及
将所述新码字及经翻转的所述新码字中的一者写入到所述写入地址。
8.根据权利要求7所述的存储器存储装置,其中所述存储器控制电路被配置成:如果将改变的所述位数目与将不改变的位数目相同,则不执行位翻转。
9.根据权利要求7所述的存储器存储装置,其中所述现***字及所述新码字中的每一码字包括第一翻转位且进一步包括第二翻转位,所述第一翻转位包含在所述码字的第一部分中,所述第二翻转位包含在所述码字的第二部分中。
10.根据权利要求9所述的存储器存储装置,其中在所述第一部分及所述第二部分中的每一部分中,所述存储器控制电路被配置成:如果将改变的所述位数目与将不改变的位数目相同,则不执行位翻转。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/034,365 | 2018-07-13 | ||
US16/034,365 US20190294497A1 (en) | 2018-03-22 | 2018-07-13 | Method of implementing error correction code used by memory storage apparatus and memory storage apparatus using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110716824A CN110716824A (zh) | 2020-01-21 |
CN110716824B true CN110716824B (zh) | 2023-08-15 |
Family
ID=69210128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910630198.4A Active CN110716824B (zh) | 2018-07-13 | 2019-07-12 | 编码方法及使用所述编码方法的存储器存储装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110716824B (zh) |
TW (1) | TWI698881B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115443504A (zh) * | 2020-03-03 | 2022-12-06 | 美光科技公司 | 用于存储器单元的基于计数器的感测放大器方法 |
CN111679932B (zh) * | 2020-06-01 | 2021-03-09 | 北京和德宇航技术有限公司 | 一种误码数据生成方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9384144B1 (en) * | 2014-03-25 | 2016-07-05 | SK Hynix Inc. | Error detection using a logical address key |
CN110299182A (zh) * | 2018-03-22 | 2019-10-01 | 华邦电子股份有限公司 | 采用连氏错误校正码设计的存储器存储装置及其编码方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7069494B2 (en) * | 2003-04-17 | 2006-06-27 | International Business Machines Corporation | Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism |
US7904793B2 (en) * | 2007-03-29 | 2011-03-08 | Sandisk Corporation | Method for decoding data in non-volatile storage using reliability metrics based on multiple reads |
US9419651B2 (en) * | 2008-12-31 | 2016-08-16 | Stmicroelectronics, Inc. | Non-polynomial processing unit for soft-decision error correction coding |
US8572460B2 (en) * | 2009-03-17 | 2013-10-29 | Broadcom Corporation | Communication device employing binary product coding with selective additional cyclic redundancy check (CRC) therein |
US20140344643A1 (en) * | 2013-05-14 | 2014-11-20 | John H. Hughes, Jr. | Hybrid memory protection method and apparatus |
TWI543178B (zh) * | 2014-06-10 | 2016-07-21 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
US9614547B2 (en) * | 2014-06-30 | 2017-04-04 | Sandisk Technologies Llc | Multi-stage decoder |
CN104932951B (zh) * | 2015-07-12 | 2017-09-05 | 符方晓 | 一种nand闪存出现ecc无法纠错时的数据恢复方法 |
US9811418B2 (en) * | 2015-10-26 | 2017-11-07 | Sandisk Technologies Llc | Syndrome-based codeword decoding |
US9785502B2 (en) * | 2015-10-27 | 2017-10-10 | Sandisk Technologies Llc | Pipelined decoder with syndrome feedback path |
US10198313B2 (en) * | 2016-03-11 | 2019-02-05 | Western Digital Technologies, Inc. | Redundancy of error correction encoded data in a storage system |
US10108512B2 (en) * | 2016-04-01 | 2018-10-23 | Intel Corporation | Validation of memory on-die error correction code |
-
2019
- 2019-07-12 TW TW108124718A patent/TWI698881B/zh active
- 2019-07-12 CN CN201910630198.4A patent/CN110716824B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9384144B1 (en) * | 2014-03-25 | 2016-07-05 | SK Hynix Inc. | Error detection using a logical address key |
CN110299182A (zh) * | 2018-03-22 | 2019-10-01 | 华邦电子股份有限公司 | 采用连氏错误校正码设计的存储器存储装置及其编码方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202006735A (zh) | 2020-02-01 |
CN110716824A (zh) | 2020-01-21 |
TWI698881B (zh) | 2020-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100845529B1 (ko) | 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템 | |
KR101267183B1 (ko) | 반도체 기억 장치 | |
KR101645906B1 (ko) | 계층적 반복 에러 교정을 위한 종료 기준 | |
KR100856129B1 (ko) | 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치 | |
KR100842680B1 (ko) | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 | |
US10333558B2 (en) | Decoding device and decoding method | |
US11003529B2 (en) | Encoding method and memory storage apparatus using the same | |
US20160164543A1 (en) | Turbo product codes for nand flash | |
US9471421B2 (en) | Data accessing method, memory storage device and memory controlling circuit unit | |
EP3368984B1 (en) | Temperature dependent multiple mode error correction | |
JP6540703B2 (ja) | メモリコントローラおよびメモリコントローラの制御方法 | |
US10514980B2 (en) | Encoding method and memory storage apparatus using the same | |
US10191801B2 (en) | Error correction code management of write-once memory codes | |
US10243588B2 (en) | Error correction code (ECC) decoders sharing logic operations, memory controllers including the error correction code decoders, and methods of decoding error correction codes | |
JP2019057752A (ja) | メモリシステム | |
CN110716824B (zh) | 编码方法及使用所述编码方法的存储器存储装置 | |
US20190294497A1 (en) | Method of implementing error correction code used by memory storage apparatus and memory storage apparatus using the same | |
CN111796774B (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
TWI392239B (zh) | Encoders, Decoders and Access Systems with Reed Solomon Error Correction Mechanism |
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 |