CN110928725B - 闪存中基于矩阵表示的多重置换码的构造及译码方法 - Google Patents
闪存中基于矩阵表示的多重置换码的构造及译码方法 Download PDFInfo
- Publication number
- CN110928725B CN110928725B CN201911298104.4A CN201911298104A CN110928725B CN 110928725 B CN110928725 B CN 110928725B CN 201911298104 A CN201911298104 A CN 201911298104A CN 110928725 B CN110928725 B CN 110928725B
- Authority
- CN
- China
- Prior art keywords
- permutation
- code
- error
- matrix
- code word
- 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
Images
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/1068—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 in sector programmable memories, e.g. flash disk
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2703—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
- H03M13/2707—Simple row-column interleaver, i.e. pure block interleaving
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明公开一种闪存中基于矩阵表示的多重置换码的构造及译码方法,多重置换码的构造步骤为:构造纠正1个SID错误的置换码;构造纠正1个PID错误的置换码;交织置换码字构造多重置换码字;交织置换码构造多重置换码。多重置换码的译码方法步骤为:产生闪存中的单元状态向量;从闪存中提取单元状态向量;判断是否发生单个BUD错误,若未发生则逐行等级解调单元状态向量矩阵得到多重置换码字矩阵,否则获得遭受1‑PID错误的置换码字,然后通过签名恢复置换码字,最后对置换码字逐行排列得到多重置换码字矩阵。本发明提高了纠单个BUD错误的多重置换码的码率,并简化了其译码方法。
Description
技术领域
本发明属于计算机科学与技术领域,更进一步涉及闪存信道编码技术领域中一种闪存中基于矩阵表示的多重置换码的构造及译码方法。本发明可用于构造纠正闪存中单个突发不稳定删除BUD(burst unstable deletion)错误的多重置换码,以及实现对所构造的多重置换码进行纠正单个BUD错误的译码。
背景技术
随着MLC型闪存芯片存储容量的不断增长和封装尺寸的不断缩小,读/写干扰、电荷泄漏、单元间干扰和数据保持噪声等问题使得闪存中所存储的数据遭到损坏,从而导致闪速存储系统的可靠性问题更加突出。利用单元电荷间的相对值来存储信息,等级调制方案(Rank Modulation Scheme)可以避免闪存单元的过度编程(Cell Over-Programming)问题,并且降低闪存中非对称错误(Asymmetric Error)的影响,从而提高闪存数据存储的可靠性。因此,面向闪存的等级调制纠错码的构造及其译码方法已经成为近年来闪存信道编码领域广泛关注的研究热点。
与置换相比较,等级调制方案下多重置换的能够达到更高的信息速率。目前,针对纠正长度为t的单个突发不稳定删除(BUD)错误的多重置换码的主要研究工作如下。
Chee等人在其发表的论文“Burst-deletion-correcting codes forpermutations and multipermutations”(IEEE Trans.Inf.Theory,2019,PP.1-1.DOI:10.1109/TIT.2019.2933819)中提出一种能够纠正单个长度为t的BUD错误的多重置换码的构造及译码方法。该方法利用三类不同的同余类来约束多重置换码字的符号使得不稳定删除错误可以转化为稳定删除错误;然后,约束多重置换码字矩阵表示的第一行来确定单个突发删除错误发生的位置范围;最后,利用多重置换码字矩阵表示的相邻列约束来纠正单个长度为t的BUD错误。该方法存在的不足之处是,其构造过程中选择的多重置换码字必须同时满足同余类约束、多重置换码字矩阵表示的第一行约束和矩阵表示的相邻列约束这三重约束条件,从而限制了多重置换码的码字数量,使得该方法所构造的多重置换码的码率较低,而且其译码过程中需要逐条检测多重置换码字满足的约束条件,使得该多重置换码的译码方法比较复杂。
发明内容
本发明的目的在于针对上述已有技术的不足,提出一种闪存中基于矩阵表示的多重置换码的构造及译码方法,用于解决多重置换码的码率低,以及译码方法比较复杂的问题。
为了实现上述目的,本发明的思路是:将多重置换中一个长度为t的单个BUD问题分解为置换中单个置换不变删除PID的t个子问题,通过交织t个相同的纠单个PID错误的置换码,使得矩阵表示的多重置换码字中每一行为一个纠正单个PID错误的置换码字,从而增加了多重置换码的码字数量,提高了纠正单个BUD错误的多重置换码的码率,同时将纠正单个长度为t的BUD错误的多重置换码的译码分解为t个纠正1个PID错误的置换码的译码,从而将逐条检测多重置换码字满足的约束条件分解为检测置换码字满足的约束条件,大大简化了现有技术的纠正单个BUD错误的多重置换码的译码方法。
本发明的一种闪存中基于矩阵表示的多重置换码的构造方法的实现步骤如下所示:
步骤1,利用置换码构造公式,构造纠正1个符号不变删除SID错误的Levenshtein置换码;
步骤2,利用Levenshtein置换码构造纠正1个PID错误的置换码;
步骤3,交织置换码字构造t-平衡多重置换码字:
第一步,按照下式,确定待交织的t个纠单个PID错误置换码字中的每个元素在长度为tn的t-平衡多重置换码字中的位置:
其中,βj表示长度为tn的t-平衡多重置换码字中的第j个元素,t表示单个BUD错误的长度,n表示待交织的置换码字的长度,j的取值范围为偶数集合[1,nt],表示待交织的纠单个PID错误置换码字中第i个置换码字πi的第个元素,表示向上取整操作,i≡j(modt),i的取值范围为集合[1,t],mod表示取模操作,πi表示置换码C(n,a)中的置换码字;
第二步,按照下式,构造长度为tn的t-平衡多重置换码字:
第三步,将构造的长度为tn的t-平衡多重置换码字以矩阵形式表示:
步骤4,按照下式,通过交织t个相同的纠单个PID错误的置换码构造t-平衡多重置换码:
本发明的一种闪存中基于矩阵表示的多重置换码的译码方法的实现步骤如下所示:
步骤1,产生闪存中的单元状态向量:
第一步,等级调制t-平衡多重置换码字,产生闪存中一个包含tn个单元的单元状态向量;
第二步,将单元状态向量按列表示为如下矩阵:
其中,M(c)表示单元状态向量的按列表示的t×n矩阵,c表示闪存中的一个单元状态向量,ct表示闪存中的一个单元状态向量中的第t个元素;
步骤2,从闪存中提取单元状态向量;
步骤3,判断提取的单元状态向量是否发生长度为t的单个BUD错误,若是,则执行步骤5,否则,执行步骤4;
步骤4,逐行等级解调单元状态向量按列表示的矩阵,得到与步骤1中单元状态向量所对应的t-平衡多重置换码字按列表示的矩阵后执行步骤10:
步骤5,获得初始迭代时遭受1-PID错误的t个置换码字:
第一步,将获得的单元状态向量按列表示为如下矩阵:
第二步,逐行等级解调矩阵表示的单元状态向量,得到如下遭受1-PID错误的置换码字的矩阵表示形式:
步骤6,恢复正确置换码字的签名:
第一步,按照下式,确定遭受1-PID错误置换码字的签名:
步骤7,恢复遭受1-PID错误的置换码字:
第一步,取当前迭代时遭受1-PID错误的置换码字的中间元素若中间元素左半部分元素为偶数时将该元素的值加1,若中间元素右半部分元素为奇数时将该元素的值加1,得到恢复当前迭代时遭受1-PID错误的置换码字的除中间元素外其他所有元素后的结果序列其中,x表示结果序列中左半部分的元素序列,表示结果序列的中间元素,y表示结果序列中右半部分的元素序列;
第二步,若结果序列中的左半部分的元素序列x或右半部分的元素序列y中至少含有一个元素的值等于中间元素的值,则将中间元素的值加1得到序列找到序列中不存在但在集合{1,2,…,n}中存在的元素,将该元素称为删除元素,根据当前迭代时正确置换码字的签名μ(πi),将删除元素插入到序列中得到正确的置换码字;否则,找到序列中不存在但在集合{1,2,…,n}中存在的元素d,若根据当前迭代时正确置换码字的签名μ(πi),将元素d插入到序列中得到正确的置换码字;若根据当前迭代时正确置换码字的签名μ(πi),将元素d插入到序列中,若插入后的序列满足左半部分所有元素为奇数且右半部分所有元素为偶数的条件,则得到正确的置换码字,否则,将中间元素与元素d交换位置后得到正确的置换码字;
步骤8,判断当前迭代的次数是否等于单个BUD错误的长度,若是,则执行步骤9,否则,执行步骤6;
步骤9,对所有正确的置换码字逐行排列,得到与步骤1中单元状态向量所对应的t-平衡多重置换码字按列表示的矩阵;
步骤10,译码成功。
本发明与现有技术相比具有以下优点:
第一,本发明的一种闪存中基于矩阵表示的多重置换码的构造方法,通过交织t个相同的纠单个PID错误的置换码构造t-平衡多重置换码,使得矩阵表示的多重置换码字中每一行为一个纠正单个PID错误的置换码字,克服了现有技术在构造t-平衡多重置换码过程中选择的多重置换码字必须同时满足同余类约束、多重置换码字矩阵表示的第一行约束和矩阵表示的相邻列约束这三重约束条件的缺点,使得本发明增加了纠正闪存中单个BUD错误的多重置换码的码字数量,提高了多重置换码的码率。
第二,本发明的一种闪存中基于矩阵表示的多重置换码的译码方法,通过获得初始迭代时遭受1-PID错误的t个置换码字,将多重置换中长度为t的单个BUD问题分解为置换中单个置换不变删除PID的t个子问题,克服了现有技术在对多重置换码译码过程中需要逐条检测多重置换码字满足的约束条件的缺点,使得本发明将逐条检测多重置换码字满足的约束条件分解为检测置换码字满足的约束条件,大大简化了纠正单个长度为t的BUD错误的多重置换码的译码方法。
附图说明
图1是本发明的一种闪存中基于矩阵表示的多重置换码的构造方法流程图;
图2是本发明的一种闪存中基于矩阵表示的多重置换码的译码方法流程图;
图3是本发明与现有方法所构造的纠正3-BUD错误的多重置换码的码率对比图。
具体实施方式
下面结合附图和实施例对本发明的具体步骤做进一步的描述。
参照附图1,对本发明的一种闪存中基于矩阵表示的多重置换码的构造方法的具体步骤做进一步的描述。
步骤1,利用下述置换码构造公式,构造纠正1个符号不变删除SID错误的Levenshtein置换码;
其中,表示码长为n的线性同余方程值为a的纠正1个符号不变删除SID错误的Levenshtein置换码,n的取值范围为[1,∞),a的取值范围为{0,1,…,n-1},σ表示长度等于码长n的一个置换,∈表示属于符号,表示集合{1,2,…,n}上所有置换的集合,:表示中满足特定条件的置换σ,表示Levenshtein置换码中码字满足的线性同余方程,Σ表示求和操作,i表示线性同余方程的权值,·表示相乘操作,μ(σ)i表示μ(σ)的第i个分量,μ(σ)表示置换σ的签名,≡表示同余关系,mod表示取模操作。
步骤2,利用Levenshtein置换码构造纠正1个PID错误的置换码;
所述的构造纠正1个PID错误的置换码是按照下式构造的:
其中,C(n,a)表示纠正1个PID错误的置换码,n表示置换码C(n,a)的码长,n的取值范围为偶数集合任意一个数,a表示Levenshtein置换码中的参数,表示步骤1构造的纠正1个SID错误的Levenshtein置换码,σ1表示C1中的一个置换码字,C1表示集合A1上所有置换的集合,A1表示集合{1,2,…,n}中所有奇数的集合,||表示置换码字的级联操作,σ2表示C2中的一个置换码字,C2表示集合A2上所有置换的集合,A2表示集合{1,2,…,n}中所有偶数的集合。
步骤3,交织置换码字构造t-平衡多重置换码字:
第一步,按照下式,确定待交织的t个纠单个PID错误置换码字中的每个元素在长度为tn的t-平衡多重置换码字中的位置:
其中,βj表示长度为tn的t-平衡多重置换码字中的第j个元素,t表示单个BUD错误的长度,n表示待交织的置换码字的长度,j的取值范围为偶数集合[1,nt],表示待交织的纠单个PID错误置换码字中第i个置换码字πi的第个元素,表示向上取整操作,i≡j(modt),i的取值范围为集合[1,t],mod表示取模操作,πi表示置换码C(n,a)中的置换码字。
第二步,按照下式,构造长度为tn的t-平衡多重置换码字:
第三步,将构造的长度为tn的t-平衡多重置换码字以矩阵形式表示:
步骤4,按照下式,通过交织t个相同的纠单个PID错误的置换码构造t-平衡多重置换码:
参照附图2,对本发明的一种闪存中基于矩阵表示的多重置换码的译码方法的具体步骤做进一步的描述。
步骤1,产生闪存中的单元状态向量。
第一步,等级调制t-平衡多重置换码字,产生闪存中一个包含tn个单元的单元状态向量。
第二步,将单元状态向量按列表示为如下矩阵:
其中,M(c)表示单元状态向量的按列表示的t×n矩阵,c表示闪存中的一个单元状态向量,ct表示闪存中的一个单元状态向量中的第t个元素。
步骤2,从闪存中提取单元状态向量。
步骤3,判断提取的单元状态向量是否发生长度为t的单个BUD错误,若是,则执行步骤5,否则,执行步骤4。
步骤4,逐行等级解调单元状态向量按列表示的矩阵,得到与步骤1中单元状态向量所对应的t-平衡多重置换码字按列表示的矩阵后执行步骤10。
步骤5,获得初始迭代时遭受1-PID错误的t个置换码字。
第一步,将获得的单元状态向量按列表示为如下矩阵:
第二步,逐行等级解调矩阵表示的单元状态向量,得到如下遭受1-PID错误的置换码字的矩阵表示形式:
步骤6,恢复正确置换码字的签名。
第一步,按照下式,确定遭受1-PID错误置换码字的签名:
所述的置换码构造公式如下:
其中,表示码长为n的线性同余方程值为a的纠正1个符号不变删除SID错误的Levenshtein置换码,n的取值范围为[1,∞),a的取值范围为{0,1,…,n-1},σ表示长度等于码长n的一个置换,∈表示属于符号,表示集合{1,2,…,n}上所有置换的集合,:表示中满足特定条件的置换σ,表示Levenshtein置换码中码字满足的线性同余方程,Σ表示求和操作,i表示线性同余方程的权值,·表示相乘操作,μ(σ)i表示μ(σ)的第i个分量,μ(σ)表示置换σ的签名,≡表示同余关系,mod表示取模操作。
步骤7,恢复遭受1-PID错误的置换码字。
第一步,取当前迭代时遭受1-PID错误的置换码字的中间元素若中间元素左半部分元素为偶数时将该元素的值加1,若中间元素右半部分元素为奇数时将该元素的值加1,得到恢复当前迭代时遭受1-PID错误的置换码字的除中间元素外其他所有元素后的结果序列其中,x表示结果序列中左半部分的元素序列,表示结果序列的中间元素,y表示结果序列中右半部分的元素序列。
第二步,若结果序列中的左半部分的元素序列x或右半部分的元素序列y中至少含有一个元素的值等于中间元素的值,则将中间元素的值加1得到序列找到序列中不存在但在集合{1,2,…,n}中存在的元素,将该元素称为删除元素,根据当前迭代时正确置换码字的签名μ(πi),将删除元素插入到序列中得到正确的置换码字;否则,找到序列中不存在但在集合{1,2,…,n}中存在的元素d,若根据当前迭代时正确置换码字的签名μ(πi),将元素d插入到序列中得到正确的置换码字;若根据当前迭代时正确置换码字的签名μ(πi),将元素d插入到序列中,若插入后的序列满足左半部分所有元素为奇数且右半部分所有元素为偶数的条件,则得到正确的置换码字,否则,将中间元素与元素d交换位置后得到正确的置换码字。
步骤8,判断当前迭代的次数是否等于单个BUD错误的长度,若是,则执行步骤9,否则,执行步骤6。
步骤9,对所有正确的置换码字逐行排列,得到与步骤1中单元状态向量所对应的t-平衡多重置换码字按列表示的矩阵。
步骤10,译码成功。
下面结合本发明的实施例,对本发明的效果做进一步的描述。
步骤1,利用如下公式,构造纠正1个SID错误的Levenshtein置换码:
其中,表示码长为8的线性同余方程值为0的纠正1个符号不变删除SID错误的Levenshtein置换码,σ表示长度等于8的一个置换,∈表示属于符号,表示集合{1,2,3,4,5,6,7,8}上所有置换的集合,:表示中满足特定条件的置换σ,表示Levenshtein置换码中码字满足的线性同余方程,Σ表示求和操作,i表示线性同余方程的权值,·表示相乘操作,μ(σ)i表示μ(σ)的第i个分量,μ(σ)表示置换σ的签名,≡表示同余关系,mod表示取模操作。
步骤2,按照下式,构造纠正1个PID错误的置换码:
其中,C(8,0)表示纠正1个PID错误的码长为8的置换码,σ1表示C1中的一个置换码字,C1表示集合{1,3,5,7}上所有置换的集合,||表示置换码字的级联操作,σ2表示C2中的一个置换码字,C2表示集合{2,4,6,8}上所有置换的集合。
步骤3,交织置换码字构造4-平衡多重置换码字:
第一步,按照下式,确定待交织的4个纠单个PID错误置换码字中的每个元素在长度为32的4-平衡多重置换码字中的位置:
其中,βj表示长度为32的纠单个长度为4的BUD错误的4-平衡多重置换码字中的第j个元素,j的取值范围为集合[1,32],表示待交织的纠单个PID错误置换码字中第i个置换码字πi的第个元素,表示向上取整操作,i≡j(mod4),i的取值范围为集合[1,4],mod表示取模操作,πi表示置换码C(8,0)中的置换码字。
第二步,按照下式,通过交织4个置换码字构造长度为32的4-平衡多重置换码字:
其中,β表示通过交替按序放置4个置换码字π1,π2,π3,π4的元素而交织产生的长度为32的4-平衡多重置换码字,π1=(1,3,5,7,2,4,6,8)、π2=(1,3,7,5,4,2,6,8)、π3=(5,3,1,7,6,2,4,8)和π4=(1,5,3,7,8,6,4,2)均为C(8,0)中的置换码字,表示置换交织操作。
第三步,将构造的长度为32的4-平衡多重置换码字以按列的矩阵形式表示:
步骤4,按照下式,通过交织4个相同的纠单个PID错误的置换码构造4-平衡多重置换码:
步骤5,产生闪存中的单元状态向量:
第一步,等级调制步骤3中的4-平衡多重置换码字β,产生闪存中一个包含32个单元的单元状态向量(0.83,0.81,0.41,0.83,0.62,0.61,0.63,0.43,0.41,0.22,0.80,0.64,0.24,0.42,0.20,0.22,0.73,0.53,0.33,0.12,0.54,0.71,0.70,0.33,0.32,0.31,0.51,0.52,0.12,0.11,0.11,0.72)。
第二步,将所得单元状态向量按列表示为如下矩阵:
其中,M4,8(c)表示单元状态向量按列表示的4×8矩阵,c表示闪存中的一个单元状态向量。
步骤6,从闪存中提取单元状态向量。
步骤7,假设提取的单元状态向量在下划线处发生单个长度为4的BUD错误,执行步骤8。
步骤8,获得初始迭代时遭受1-PID错误的4个置换码字。
第一步,将将获得的单元状态向量按列表示为如下矩阵:
第二步,逐行等级解调矩阵表示的单元状态向量,得到如下遭受1-PID错误的置换码字的矩阵表示形式:
步骤9,恢复正确置换码字的签名。
现在以恢复遭受了1-PID错误的置换码字为例说明恢复过程。首先确定遭受了1-PID错误的置换码字的签名为(1,1,0,1,1,1),利用纠正1个SID错误的Levenshtein置换码的构造公式和遭受了1-PID错误的置换码字的签名,确定正确置换码字的签名μ(π1)为(1,1,1,0,1,1,1)。
步骤10,恢复遭受1-PID错误的置换码字。
第一步,取当前迭代遭受1-PID错误的置换码字的中间元素2,若中间元素2左半部分元素为偶数时将该元素的值加1,若中间元素2右半部分元素为奇数时将该元素的值加1,得到恢复当前迭代时遭受1-PID错误的置换码字的除中间元素外其他所有元素后的结果序列(1,3,7,2,4,6,8)。
第二步,结果序列(1,3,7,2,4,6,8)中的左半部分的元素序列或右半部分的元素序列中未含有一个元素的值等于中间元素2,因此,找到序列(1,3,7,2,4,6,8)中不存在但在集合{1,2,3,4,5,6,7,8}中存在的元素5,满足|5-2|≥2的条件,根据正确置换码字的签名μ(π1)=(1,1,1,0,1,1,1),将元素5插入到序列(1,3,7,2,4,6,8)中得到正确的置换码字π1=(1,3,5,7,2,4,6,8)。
步骤11,与恢复遭受了1-PID错误的置换码字的过程一样,分别恢复遭受了1-PID错误的置换码字得到正确的置换码字π2=(1,3,7,5,4,2,6,8),π3=(5,3,1,7,6,2,4,8)和π4=(1,5,3,7,8,6,4,2)。
步骤12,对所有正确的置换码字π1,π2,π3,π4逐行排列,得到与步骤5中单元状态向量所对应的4-平衡多重置换码字按列表示的矩阵。
下面结合仿真实验对本发明的效果做进一步的说明:
1.仿真实验条件:
本发明的仿真实验的硬件平台为:处理器为Intel i7 5930k CPU,主频为3.5GH,内存16GB。
本发明的仿真实验的软件平台为:Windows 7操作系统,MATLAB 2017。
2.仿真内容及其结果分析:
本发明仿真实验是采用本发明和现有技术方法分别针对单个BUD错误长度为3时构造多重置换码,然后根据本发明与现有方法所构造的纠正3-BUD错误的多重置换码分别计算出13个不同码长的多重置换码的码率,再分别根据多重置换码的码率画出码率随码长变化的曲线图,最后获得码率结果对比图如图3所示。
在仿真实验中,采用的一个现有技术是指:
Chee等人在其发表的论文“Burst-deletion-correcting codes forpermutations and multipermutations”(IEEE Trans.Inf.Theory,2019,DOI:10.1109/TIT.2019.2933819)中提出了一种能够纠正单个长度为t的BUD错误的多重置换码的构造方法。
下面结合图3对本发明的效果做进一步的描述。
图3是本发明与现有方法所构造的纠正3-BUD错误的多重置换码的码率对比图。图3表示针对单个BUD错误长度为3时,现有技术所构造的纠3-BUD错误的多重置换码与本发明所构造的纠3-BUD错误的多重置换码的码率结果对比图。图3中的横坐标表示纠3-BUD错误的多重置换码长,对应的码长范围为[10,90],纵坐标表示由两种构造方法得到的多重置换码的码率。图3中根据本发明与现有方法所构造的纠正3-BUD错误的多重置换码分别计算出13个不同码长的多重置换码的码率,然后分别根据多重置换码的码率画出码率随码长变化的曲线图,图3中以三角形标示的曲线表示现有方法所构造的纠3-BUD错误的多重置换码的码率随码长变化的曲线。图3中以圆圈标示的曲线表示本发明所构造的纠3-BUD错误的多重置换码的码率随码长变化的曲线。
由图3可以看出,与现有技术构造的纠3-BUD错误的多重置换码相比,本发明提出的构造方法所构造的纠3-BUD错误的多重置换码在码长小于90时可以达到更高的码率。
Claims (2)
1.一种闪存中基于矩阵表示的多重置换码的构造方法,其特征在于,通过交织t个相同的纠单个PID错误的置换码构造t-平衡多重置换码,该方法的步骤包括如下:
步骤1,利用下述置换码构造公式,构造纠正1个符号不变删除SID错误的Levenshtein置换码:
其中,表示码长为n的线性同余方程值为a的纠正1个符号不变删除SID错误的Levenshtein置换码,n的取值范围为[1,∞),a的取值范围为{0,1,…,n-1},σ表示长度等于码长n的一个置换,∈表示属于符号,表示集合{1,2,…,n}上所有置换的集合,:表示中满足特定条件的置换σ,表示Levenshtein置换码中码字满足的线性同余方程,Σ表示求和操作,i表示线性同余方程的权值,·表示相乘操作,μ(σ)i表示μ(σ)的第i个分量,μ(σ)表示置换σ的签名,≡表示同余关系,mod表示取模操作;
步骤2,利用Levenshtein置换码构造纠正1个PID错误的置换码;
所述的构造纠正1个PID错误的置换码是按照下式构造的:
其中,C(n,a)表示纠正1个PID错误的置换码,n表示置换码C(n,a)的码长,n的取值范围为偶数集合任意一个数,a表示Levenshtein置换码中的参数,表示步骤1构造的纠正1个SID错误的Levenshtein置换码,σ1表示C1中的一个置换码字,C1表示集合A1上所有置换的集合,A1表示集合{1,2,…,n}中所有奇数的集合,||表示置换码字的级联操作,σ2表示C2中的一个置换码字,C2表示集合A2上所有置换的集合,A2表示集合{1,2,…,n}中所有偶数的集合;
步骤3,交织置换码字构造t-平衡多重置换码字:
第一步,按照下式,确定待交织的t个纠单个PID错误置换码字中的每个元素在长度为tn的t-平衡多重置换码字中的位置:
其中,βj表示长度为tn的t-平衡多重置换码字中的第j个元素,t表示单个BUD错误的长度,n表示待交织的置换码字的长度,j的取值范围为偶数集合[1,nt],表示待交织的纠单个PID错误置换码字中第i个置换码字πi的第个元素,表示向上取整操作,i≡j(modt),i的取值范围为集合[1,t],mod表示取模操作,πi表示置换码C(n,a)中的置换码字;
第二步,按照下式,构造长度为tn的t-平衡多重置换码字:
第三步,将构造的长度为tn的t-平衡多重置换码字以矩阵形式表示:
步骤4,按照下式,通过交织t个相同的纠单个PID错误的置换码构造t-平衡多重置换码:
2.根据权利要求1所述方法构造的一种闪存中基于矩阵表示的多重置换码的译码方法,其步骤包括如下:
步骤1,产生闪存中的单元状态向量:
第一步,等级调制t-平衡多重置换码字,产生闪存中一个包含tn个单元的单元状态向量;
第二步,将单元状态向量按列表示为如下矩阵:
其中,M(c)表示单元状态向量的按列表示的t×n矩阵,c表示闪存中的一个单元状态向量,ct表示闪存中的一个单元状态向量中的第t个元素;
步骤2,从闪存中提取单元状态向量;
步骤3,判断提取的单元状态向量是否发生长度为t的单个BUD错误,若是,则执行步骤5,否则,执行步骤4;
步骤4,逐行等级解调单元状态向量按列表示的矩阵,得到与步骤1中单元状态向量所对应的t-平衡多重置换码字按列表示的矩阵后执行步骤10:
步骤5,获得初始迭代时遭受1-PID错误的t个置换码字:
第一步,将获得的单元状态向量按列表示为如下矩阵:
第二步,逐行等级解调矩阵表示的单元状态向量,得到如下遭受1-PID错误的置换码字的矩阵表示形式:
步骤6,恢复正确置换码字的签名:
第一步,按照下式,确定遭受1-PID错误置换码字的签名:
步骤7,恢复遭受1-PID错误的置换码字:
第一步,取当前迭代时遭受1-PID错误的置换码字的中间元素若中间元素左半部分元素为偶数时将该元素的值加1,若中间元素右半部分元素为奇数时将该元素的值加1,得到恢复当前迭代时遭受1-PID错误的置换码字的除中间元素外其他所有元素后的结果序列其中,x表示结果序列中左半部分的元素序列,表示结果序列的中间元素,y表示结果序列中右半部分的元素序列;
第二步,若结果序列中的左半部分的元素序列x或右半部分的元素序列y中至少含有一个元素的值等于中间元素的值,则将中间元素的值加1得到序列找到序列中不存在但在集合{1,2,…,n}中存在的元素,将该元素称为删除元素,根据当前迭代时正确置换码字的签名μ(πi),将删除元素插入到序列中得到正确的置换码字;否则,找到序列中不存在但在集合{1,2,…,n}中存在的元素d,若根据当前迭代时正确置换码字的签名μ(πi),将元素d插入到序列中得到正确的置换码字;若根据当前迭代时正确置换码字的签名μ(πi),将元素d插入到序列中,若插入后的序列满足左半部分所有元素为奇数且右半部分所有元素为偶数的条件,则得到正确的置换码字,否则,将中间元素与元素d交换位置后得到正确的置换码字;
步骤8,判断当前迭代的次数是否等于单个BUD错误的长度,若是,则执行步骤9,否则,执行步骤6;
步骤9,对所有正确的置换码字逐行排列,得到与步骤1中单元状态向量所对应的t-平衡多重置换码字按列表示的矩阵;
步骤10,译码成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911298104.4A CN110928725B (zh) | 2019-12-17 | 2019-12-17 | 闪存中基于矩阵表示的多重置换码的构造及译码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911298104.4A CN110928725B (zh) | 2019-12-17 | 2019-12-17 | 闪存中基于矩阵表示的多重置换码的构造及译码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928725A CN110928725A (zh) | 2020-03-27 |
CN110928725B true CN110928725B (zh) | 2021-06-25 |
Family
ID=69862865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911298104.4A Active CN110928725B (zh) | 2019-12-17 | 2019-12-17 | 闪存中基于矩阵表示的多重置换码的构造及译码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928725B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107545066A (zh) * | 2011-12-08 | 2018-01-05 | 甲骨文国际公司 | 用于在易失性存储器内保持关系型数据的列向量的技术 |
CN110557125A (zh) * | 2018-06-04 | 2019-12-10 | 爱思开海力士有限公司 | 奇偶校验矩阵生成器、其操作方法和错误校正电路 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7599348B2 (en) * | 2003-11-04 | 2009-10-06 | Lg Electronics Inc. | Digital E8-VSB reception system and E8-VSB data demultiplexing method |
CA2928051C (en) * | 2005-07-15 | 2018-07-24 | Indxit Systems, Inc. | Systems and methods for data indexing and processing |
US9558101B2 (en) * | 2014-08-08 | 2017-01-31 | Raytheon Company | Preprocessor directive symbol analyzer devices and methods |
CN105680992B (zh) * | 2016-01-26 | 2019-05-03 | 华中科技大学 | 一种通信信道编码方法及置换码集合产生器 |
-
2019
- 2019-12-17 CN CN201911298104.4A patent/CN110928725B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107545066A (zh) * | 2011-12-08 | 2018-01-05 | 甲骨文国际公司 | 用于在易失性存储器内保持关系型数据的列向量的技术 |
CN110557125A (zh) * | 2018-06-04 | 2019-12-10 | 爱思开海力士有限公司 | 奇偶校验矩阵生成器、其操作方法和错误校正电路 |
Non-Patent Citations (3)
Title |
---|
切比雪夫距离下系统置换码的编译码算法;慕建君等;《西安电子科技大学学报(自然科学版)》;20181231;全文 * |
切比雪夫距离度量下多重置换码的新构造方法;慕建君等;《西安电子科技大学学报(自然科学版)》;20181231;全文 * |
面向闪存的等级调制纠错码构造与译码方法研究;赵鹏;《中国博士学位论文全文数据库(信息科技辑)》;20180115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110928725A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10146618B2 (en) | Distributed data storage with reduced storage overhead using reduced-dependency erasure codes | |
CN103888148B (zh) | 一种动态阈值比特翻转的ldpc码硬判决译码方法 | |
EP0426657B1 (en) | Method and apparatus for decoding error correction code | |
TWI613674B (zh) | 在具有選擇性二元及非二元解碼之快閃記憶體中之偵測及解碼 | |
CN1040698A (zh) | 错误校正电路 | |
CN101946230B (zh) | 用于检测和校正所接收的符号串中的定相突发差错、删除、符号差错和位差错的方法和系统 | |
US9419651B2 (en) | Non-polynomial processing unit for soft-decision error correction coding | |
US8566679B2 (en) | Error-correcting encoding method with total parity bits, and method for detecting multiple errors | |
JP2011198253A (ja) | メモリシステム及びメモリシステムのデータ書き込み・読み出し方法 | |
CN100512020C (zh) | 一种译码方法及译码装置 | |
CN114328000B (zh) | 1型2型分段纠错内码的dna存储级联编码与解码方法 | |
JPS6349245B2 (zh) | ||
KR101562606B1 (ko) | 이진 데이터의 오류 정정 및 오류 검출 방법 | |
CN110928725B (zh) | 闪存中基于矩阵表示的多重置换码的构造及译码方法 | |
US20060010363A1 (en) | Method and system for correcting low latency errors in read and write non volatile memories, particularly of the flash type | |
US20170161141A1 (en) | Method and apparatus for correcting data in multiple ecc blocks of raid memory | |
CN103151078A (zh) | 一种存储器检错纠错码生成方法 | |
Wolf | An introduction to tensor product codes and applications to digital storage systems | |
CN109935263A (zh) | 非易失性存储器的编译码方法及存储系统 | |
CN112000509B (zh) | 一种基于向量指令的纠删码编码方法、系统及装置 | |
CN109379088B (zh) | 一种并行Turbo码迭代译码的方法及系统 | |
CN113300723A (zh) | 基于最大似然删除位置搜索的mgc码快速译码方法 | |
CN113114273B (zh) | Ldpc码的校验矩阵提取方法及系统、设备 | |
RU2297030C2 (ru) | Самокорректирующееся устройство хранения информации | |
CN117609488B (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 |