[发明专利]基于NAND FLASH存储器的校验方法、终端设备及存储介质有效
申请号: | 201910461388.8 | 申请日: | 2019-05-30 |
公开(公告)号: | CN110277131B | 公开(公告)日: | 2021-03-23 |
发明(设计)人: | 董时舫 | 申请(专利权)人: | 百富计算机技术(深圳)有限公司 |
主分类号: | G11C29/42 | 分类号: | G11C29/42;G11C16/10 |
代理公司: | 深圳中一联合知识产权代理有限公司 44414 | 代理人: | 王善娜 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 nand flash 存储器 校验 方法 终端设备 存储 介质 | ||
1.一种基于NAND FLASH存储器的校验方法,其特征在于,包括:
在数据写入时,获取原始数据,并基于所述原始数据生成矩阵;
基于所述矩阵生成原始纠错码;所述原始纠错码包括横向子纠错码、纵向子纠错码、左斜向子纠错码和右斜向子纠错码;
将所述原始数据和所述原始纠错码写入所述NAND FLASH存储器中;
在数据读出时,从所述NAND FLASH存储器中读取与所述原始数据对应的读出数据和与所述原始纠错码对应的校验纠错码;
基于生成所述原始数据的原始纠错码的方式,生成所述读出数据的计算纠错码;
将所述读出数据的计算纠错码与所述校验纠错码进行比较,获得校验结果,并在所述校验结果为所述读出数据出现错误时,对所述读出数据进行纠错处理,包括:将所述计算纠错码和所述校验纠错码中对应位置的位元进行异或运算,获得校验数据串;若所述校验数据串中的位元均为0,则确定所述读出数据和所述校验纠错码正确;若所述校验数据串中的位元存在非0,则所述读出数据或所述校验纠错码码错误,并在所述读出数据错误时对所述读出数据进行纠错处理;
所述校验数据串包括横向校验子串、纵向校验子串、左斜向校验子串和右斜向校验子串;
相应的,若所述校验数据串中的位元包括非0,则所述读出数据或所述校验纠错码错误,并在所述读出数据错误时对所述读出数据进行纠错处理,包括:
当Wx=Wy=Wl=Wr=1且所述矩阵中存在一个四线交点时,所述读出数据中有一个位元发生错误,将所述矩阵中对应的四线交点处的位元取反;
当Wx=Wy=Wl=Wr=2且所述矩阵中存在两个四线交点时,所述读出数据中有两个位元发生错误,将所述矩阵中对应的两个四线交点处的位元取反;
当Wx=Wy=Wl=2,Wr=0且靠左的左斜线经过T1,靠右的左斜线经过T4时,所述读出数据中有两个位元发生错误,将所述矩阵中T1和T4处的位元取反;
当Wx=Wy=Wr=2,Wl=0且靠右的右斜线经过T2,靠左的右斜线经过T3时,所述读出数据中有两个位元发生错误,将所述矩阵中T2和T3处的位元取反;
当Wy=Wl=Wr=2,Wx=0且靠左的左斜线、靠右的右斜线和靠上的横线相交于第一三线交点,靠右的左斜线、靠左的右斜线和靠下的横线相交于第二三线交点时,所述读出数据中有两个位元发生错误,将所述矩阵中第一三线交点和第二三线交点处的位元取反;
当Wx=Wl=Wr=2,Wy=0且靠左的左斜线、靠左的右斜线和靠左的纵线相交于第三三线交点,靠右的左斜线、靠右的右斜线和靠右的纵线相交于第四三线交点时,所述读出数据中有两个位元发生错误,将所述矩阵中第三三线交点和第四三线交点处的位元取反;
当Wx=Wy=Wl=Wr=3且所述矩阵中存在三个四线交点时,所述读出数据中有三个位元发生错误,将所述矩阵中对应的三个四线交点处的位元取反;
当Wx=Wy=Wl=3,Wr=1时,所述读出数据中有三个位元发生错误,将所述矩阵中对应的四线交点处的位元取反;在除构成四线交点以外的两条横线和两条纵线构成的四个交点中,选取对应的T1和T4,将所述矩阵中对应的T1和T4处的位元取反;
当Wx=Wy=Wr=3,Wl=1时,所述读出数据中有三个位元发生错误,将所述矩阵中对应的四线交点处的位元取反;在除构成四线交点以外的两条横线和两条纵线构成的四个交点中,选取对应的T2和T3,将所述矩阵中对应的T2和T3处的位元取反;
当Wy=Wl=Wr=3,Wx=1时,所述读出数据中有三个位元发生错误,将所述矩阵中对应的四线交点处的位元取反;在除构成四线交点以外的两条横线和两条左斜线中,选取靠上的横线和靠左的左斜线相交构成的第五三线交点,以及靠下的横线和靠右的左斜线相交构成的第六三线交点,将所述矩阵中第五三线交点和第六三线交点处的位元取反;
当Wx=Wl=Wr=3,Wy=1时,所述读出数据中有三个位元发生错误,将所述矩阵中对应的四线交点处的位元取反;在除构成四线交点以外的两条纵线和两条左斜线中,选取靠左的纵线和靠左的左斜线相交构成的第七三线交点,以及靠右的纵线和靠右的左斜线相交构成的第八三线交点,将所述矩阵中第七三线交点和第八三线交点处的位元取反;
当Wx=Wy=3,Wl=Wr=1时,所述读出数据中有三个位元发生错误;根据对应的一条左斜线和一条右斜线确定对应的辅助交点P0,并根据对应的辅助交点P0确定三个目标交点,将所述矩阵中对应的三个目标交点处的位元取反;
当Wx=Wl=3,Wy=Wr=1时,所述读出数据中有三个位元发生错误;根据对应的一条右斜线和三条纵线确定对应的临时交点Q1,并根据对应的临时交点Q1确定对应的临时交点Q2和临时交点Q3;当临时交点Q2和临时交点Q3位于同一条右斜线上时,确定临时交点Q1、临时交点Q2和临时交点Q3为三个目标交点,将所述矩阵中对应的三个目标交点处的位元取反;
当Wx=Wr=3,Wy=Wl=1时,所述读出数据中有三个位元发生错误;根据对应的一条左斜线和三条纵线确定对应的临时交点Q1’,并根据对应的临时交点Q1’确定对应的临时交点Q2’和临时交点Q3’;当临时交点Q2’和临时交点Q3’位于同一条左斜线上时,确定临时交点Q1’、临时交点Q2’和临时交点Q3’为三个目标交点,将所述矩阵中对应的三个目标交点处的位元取反;
当Wy=Wl=3,Wx=Wr=1时,所述读出数据中有三个位元发生错误;根据对应的一条右斜线和三条横线确定对应的临时交点Q1”,并根据对应的临时交点Q1”确定对应的临时交点Q2”和临时交点Q3”;当临时交点Q2”和临时交点Q3”位于同一条右斜线上时,确定临时交点Q1”、临时交点Q2”和临时交点Q3”为三个目标交点,将所述矩阵中对应的三个目标交点处的位元取反;
当Wy=Wr=3,Wx=Wl=1时,所述读出数据中有三个位元发生错误;根据对应的一条左斜线和三条横线确定对应的临时交点Q1”’,并根据对应的临时交点Q1”’确定对应的临时交点Q2”’和临时交点Q3”’;当临时交点Q2”’和临时交点Q3”’位于同一条左斜线上时,确定临时交点Q1”’、临时交点Q2”’和临时交点Q3”’为三个目标交点,将所述矩阵中对应的三个目标交点处的位元取反;
当Wx=3,Wy=Wl=Wr=1时,所述读出数据中有三个位元发生错误;确定对应的三条纵线中中间位置的纵线为第一对称轴,并根据第一对称轴确定辅助交点P1;计算辅助交点P1的虚拟左斜线序号,并根据辅助交点P1的虚拟左斜线序号确定对应的辅助交点P2和辅助交点P3;确定辅助交点P1、辅助交点P2和辅助交点P3为三个目标交点,将所述矩阵中对应的三个目标交点处的位元取反;
当Wy=3,Wx=Wl=Wr=1时,所述读出数据中有三个位元发生错误;确定对应的三条横线中中间位置的横线为第二对称轴,并根据第二对称轴确定辅助交点P1’;计算辅助交点P1’的虚拟左斜线序号,并根据辅助交点P1’的虚拟左斜线序号确定对应的辅助交点P2’和辅助交点P3’;确定辅助交点P1’、辅助交点P2’和辅助交点P3’为三个目标交点,将所述矩阵中对应的三个目标交点处的位元取反;
当Wx=1,Wy=1时,根据所对应的一条横线和一条纵线确定对应的辅助交点P1”;计算辅助交点P1”的虚拟左斜线序号和虚拟右斜线序号,并根据辅助交点P1”的虚拟左斜线序号和虚拟右斜线序号确定对应的三个目标交点,将所述矩阵中对应的三个目标交点处的位元取反;
当Wx、Wy、Wl或Wr中有任意三者为1、其余为0,且所述矩阵中存在一个三线交点时,则判断读出数据有一位误码且校验纠错码中有一位误码,将所述矩阵中对应的三线交点处的位元取反;
当Wx、Wy、Wl或Wr均为1,且所述矩阵中无四线交点,但所述矩阵中存在一个三线交点时,则判断校验纠错码中有两位误码,读出数据有一位误码,将所述矩阵中对应的三线交点处的位元取反;
当Wx、Wy、Wl或Wr中有一者为2、其余为1,且所述矩阵中存在一个四线交点时,则判断校验纠错码中有一位误码,读出数据中有一位误码,将所述矩阵中对应的四线交点处的位元取反;
当Wx、Wy、Wl或Wr中有两者为2、其余为1,且所述矩阵中存在一个四线交点时,则判断校验纠错码中有两位误码,读出数据有一位误码,将所述矩阵中对应的四线交点处的位元取反;
当Wx、Wy、Wl或Wr中有一者为2、一者为0、其余为1,且所述矩阵中存在一个三线交点时,则判断校验纠错码中有两位误码,读出数据有一位误码,将所述矩阵中对应的四线交点处的位元取反;
若Wx、Wy、Wl或Wr中有三者为2、一者为1,且T1和T4中一个为三线交点、另一个为四线交点,或者,T2和T3中一个为三线交点、另一个为四线交点时,则判断读出数据中有两位误码,校验纠错码中有一位误码,将所述矩阵中对应的三线交点和四线交点处的位元取反;
若Wx、Wy、Wl或Wr中有一者为3、其余均为2,且T1和T4两点均为四线交点,或者,T2和T3两点均为四线交点时,则判断读出数据中有两位误码,校验纠错码中有一位误码,将所述矩阵中对应的两个四线交点处的位元取反;
若Wl=0,Wx、Wy和Wr中有两者为2、一者为1,且T2和T3中一个为二线交点、另一个为三线交点时,则判断读出数据中有两位误码,校验纠错码中有一位误码,将所述矩阵中对应的三线交点及其对角的二线交点处的位元取反;
若Wl=0,Wx、Wy和Wr中有二者为2、一者为3,且T2和T3均为三线交点时,或者,若Wl=1,Wx、Wy和Wr均为2,且T2和T3均为横线、纵线和右斜线所形成的三线交点时,则判断读出数据中有两位误码,校验纠错码中有一位误码,将所述矩阵中对应的三线交点处的位元取反;
若Wr=0,Wx、Wy和Wl中有两者为2、一者为1,且T1和T4中一个为二线交点、另一个为三线交点时,则判断读出数据中有两位误码,校验纠错码中有一位误码,将所述矩阵中对应的三线交点及其对角的二线交点处的位元取反;
若Wr=0,Wx、Wy和Wl中有二者为2、一者为3,且T1和T4均为三线交点时,或者,若Wr=1,Wx、Wy和Wl均为2,且T1和T4均为横线、纵线和左斜线所形成的三线交点时,则判断读出数据中有两位误码,校验纠错码中有一位误码,将所述矩阵中对应的三线交点处的位元取反;
若Wx=0,Wy、Wl和Wr中有两者为2、一者为1,且所述矩阵中存在一个二线交点和一个三线交点时,则判断读出数据中有两位误码,校验纠错码中有一位误码,将所述矩阵中对应的三线交点及其对角的二线交点处的位元取反;
若Wx=0,Wy、Wl和Wr中有两者为2、一者为3,且所述矩阵中存在两个纵向排列的三线交点时,或者,若Wx=1,Wy、Wl和Wr均为2,且所述矩阵中存在两个纵向排列的三线交点时,则判断读出数据中有两位误码,校验纠错码中有一位误码,将所述矩阵中对应的纵向排列的三线交点处的位元取反;
若Wy=0,Wx、Wl和Wr中有两者为2、一者为1,且所述矩阵中存在一个二线交点和一个三线交点时,则判断读出数据中有两位误码,校验纠错码中有一位误码,将所述矩阵中对应的三线交点及二线交点处的位元取反;
若Wy=0,Wx、Wl和Wr中有两者为2、一者为3,且所述矩阵中存在两个横向排列的三线交点时,或者,若Wy=1,Wx、Wl和Wr均为2,且所述矩阵中存在两个横向排列的三线交点时,则判断读出数据中有两位误码,校验纠错码中有一位误码,将所述矩阵中对应的横向排列的三线交点处的位元取反;
其中,Wx为所述横向校验子串中位元1的个数,Wy为所述纵向校验子串中位元1的个数,Wl为所述左斜向校验子串中位元1的个数,Wr为所述右斜向校验子串中位元1的个数;
在所述矩阵的任意两行中划两条横线、任意两列中划两条纵线,得到四个交点,其中,T1是左上角交点、T2是右上角交点、T3是左下角交点、T4是右下角交点;
所述四线交点为横线、纵线、左斜线和右斜线相交的交点;所述三线交点为横线、纵线、左斜线和右斜线中任意三条线相交的交点;所述二线交点为横线、纵线、左斜线和右斜线中任意两条线相交的交点;
所述横线为所述横向校验子串中的位元1在所述矩阵中对应行所在的横线,所述纵线为所述纵向校验子串中的位元1在所述矩阵中对应列所在的纵线,所述左斜线为所述左斜向校验子串中的位元1对应的所述矩阵中的左预设斜向所在的斜线;所述右斜线为所述右斜向校验子串中的位元1对应的所述矩阵中的右预设斜向所在的斜线。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百富计算机技术(深圳)有限公司,未经百富计算机技术(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910461388.8/1.html,转载请声明来源钻瓜专利网。