CN107391299B - 一种提升闪存存储系统读性能的方法 - Google Patents

一种提升闪存存储系统读性能的方法 Download PDF

Info

Publication number
CN107391299B
CN107391299B CN201710578508.3A CN201710578508A CN107391299B CN 107391299 B CN107391299 B CN 107391299B CN 201710578508 A CN201710578508 A CN 201710578508A CN 107391299 B CN107391299 B CN 107391299B
Authority
CN
China
Prior art keywords
lsb
sequence
msb
code word
bit
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
Application number
CN201710578508.3A
Other languages
English (en)
Other versions
CN107391299A (zh
Inventor
吴非
谢长生
张猛
崔兰兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201710578508.3A priority Critical patent/CN107391299B/zh
Publication of CN107391299A publication Critical patent/CN107391299A/zh
Application granted granted Critical
Publication of CN107391299B publication Critical patent/CN107391299B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix

Abstract

本发明公开了一种提升闪存存储系统读性能的方法。NAND闪存被广泛应用,读性能是闪存的重要性能之一,它的提升对于NAND闪存更广泛的应用与发展有着至关重要的作用。然而传统的数据读取方法读操作时间开销较大,会造成译码延迟高,系统读性能低。因此,为了提高存储系统的读性能,本发明先将原始比特数据与受到编程干扰后的比特数据进行对比得出比特错误位置信息,继而利用此信息,在对比特错误进行LDPC译码之前对页面寄存器中数据的错误位置先进行比特翻转,降低一部分比特错误,然后再执行译码操作译码,以此减小译码延迟,从而提高闪存存储系统读性能。

Description

一种提升闪存存储系统读性能的方法
技术领域
本发明属于固态盘存储技术领域,更具体地,涉及一种提升闪存存储系统读性能的方法。
背景技术
现如今,多级单元(Multi-Level Cell,简称MLC)NAND闪存由于其低能耗,低价格,非易失性,抗震性强等特性而被广泛应用于计算机存储系统和消费级电子产品中。
MLC NAND闪存每单元存储两比特,基本的操作有写操作,读操作和擦除操作,在写操作的过程,两比特被写入不同的页中,两比特中的左比特被写入最高有效比特(MostSignificant bit,简称MSB)页,两比特中的右比特被写入最低有效比特(LeastSignificant bit,简称LSB)页。读性能是闪存的重要性能之一,它的提升对于MLC NAND闪存更广泛的应用与发展有着至关重要的作用。因此,需要寻找一种更快捷有效的数据读取方法,来提高读性能。
然而,传统的数据读取方法在保证NAND闪存的数据可靠性方面存在一个不可忽略的问题,即在执行读操作的过程中,会执行译码操作,从而带来高的译码延迟,造成读操作时间开销较大,读性能较低。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种提升闪存存储系统读性能的方法和系统,其目的在于,通过分析MLC NAND闪存存储过程中编程干扰的特征,将受到编程干扰后的比特的位置信息进行存储,在对数据进行纠错之前,利用所记录的错误比特位置为译码提供有利信息,将所写入的数据暂时存储在一个缓存中,之后将受到编程干扰之后的数据读出,与之前缓存中的数据进行比较,将比特错误位置进行存储,当进行LDPC译码的时候,根据该存储的比特错误位置,预先对错误的比特进行翻转以降低比特错误率,比特错误率对译码有直接的影响,比特错误率一旦降低,译码延迟会很大程度上降低,译码过程占据着闪存读过程大部分的时间,降低译码延迟,从而能够解决传统读操作时间开销较大,读性能低的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种提升闪存存储系统读性能的方法,其是应用在闪存系统中,且包括以下步骤:
(1)发出顺序写命令,根据该顺序写命令使用LDPC编码器对闪存系统中的部分比特数据进行编码,并将编码后所得到的码字传输到页面寄存器,其中n表示码字长度;
(2)将页面寄存器中的码字写入MLC NAND闪存的第一MSB页,对闪存系统中剩余的部分比特数据执行步骤(1)的处理,将处理得到的码字写入MLCNAND闪存的第一LSB页,并将第一MSB页中的码字以及第一LSB中的码字存放于第一缓存器中。
(3)分别对闪存系统中剩余的比特数据执行步骤(1)的处理,并将得到的新的码字序列分别写入第二MSB页和第二LSB页。
(4)获取分别存储在第一MSB页和第一LSB中的码字由于编程干扰而发生比特错误所形成的新比特序列并将二者分别与存放于第一缓存器中的码字进行比较,以分别获得新比特序列中的比特错误位置信息并将所获得的比特错误位置信息记录在第二缓存器中。
(5)使用检测电平提取新比特序列对应的初始MSB软判决信息以及新比特序列对应的初始LSB软判决信息并将传输到页面寄存器中。
(6)根据步骤(4)中获得的比特错误位置信息分别对步骤(5)提取的初始MSB软判决信息和初始LSB软判决信息进行处理。
(7)使用标准最小和算法(即Normalized min-sum)对步骤(6)中获得的新的第一MSB页和第一LSB软信息进行LDPC译码,对译码延迟进行统计,并将译码延迟和译码得到的结果发送到主机端。
优选地,步骤(1)中使用的编码算法是高斯消去算法。
优选地,步骤(5)中使用检测电平提取初始的MSB和LSB软判决信息是通过如下公式(1)和(2)计算获得:
其中LLR(MSB)和LLR(LSB)分别表示初始MSB软判决信息和初始软LSB判决信息,表示是MLC NAND闪存单元的阈值电压的概率密度分布,且服从正态分布,V1和V2分别表示检测电平的参考电压下限值和上限值,CE代表状态‘11’,C1代表状态‘10’,C2代表状态‘00’,C3代表状态‘01’。
优选地,对初始MSB软判决信息和初始LSB软判决信息进行处理的过程包括如下步骤:
(6-1)将第一缓存器中的码字和存储在第一MSB页中的新比特序列进行对比,将第一缓存器中的码字和存储在第一LSB页中的新比特序列进行对比,若对应位置数据相同的,则将该位置记为0,若对应位置数据不同的,则将该位置记为1,得到一组第一MSB页错误位置序列和第一LSB页错误位置序列并将这两个序列存放于第二缓存器中;
(6-2)根据步骤(7-1)中的获得的错误位置序列对页面寄存器中的初始MSB软判决信息进行处理:若第一MSB页错误位置序列中某位置的i值为1,则将对应的位置数据Ti=1进行翻转,若序列中某位置j值为0,则数据不做改变,经过处理之后得到一组新的第一MSB页软信息其中1≤i≤n,1≤j≤n。
(6-3)根据步骤(6-1)中的获得的错误位置序列对页面寄存器中的初始LSB软判决信息进行处理:若第一LSB页错误位置序列中某位置i值为1,则将对应的位置数据ti=1进行翻转;若序列中某位置j值为0,则数据不做改变,经过处理之后得到一组新的第一LSB页软信息
按照本发明的另一方面,提供了一种提升闪存存储系统读性能的系统,其是应用在闪存系统中,所述系统包括:
第一模块,用于发出顺序写命令,根据该顺序写命令使用LDPC编码器对闪存系统中的部分比特数据进行编码,并将编码后所得到的码字传输到页面寄存器,其中n表示码字长度;
第二模块,用于将页面寄存器中的码字写入MLC NAND闪存的第一MSB页,对闪存系统中剩余的部分比特数据执行步骤(1)的处理,将处理得到的码字写入MLC NAND闪存的第一LSB页,并将第一MSB页中的码字以及第一LSB中的码字存放于第一缓存器中。
第三模块,用于分别对闪存系统中剩余的比特数据执行步骤(1)的处理,并将得到的新的码字序列分别写入第二MSB页和第二LSB页。
第四模块,用于获取分别存储在第一MSB页和第一LSB中的码字由于编程干扰而发生比特错误所形成的新比特序列并将二者分别与存放于第一缓存器中的码字进行比较,以分别获得新比特序列中的比特错误位置信息并将所获得的比特错误位置信息记录在第二缓存器中。
第五模块,用于使用检测电平提取新比特序列对应的初始MSB软判决信息以及新比特序列对应的初始LSB软判决信息并将传输到页面寄存器中。
第六模块,用于根据第四模块中获得的比特错误位置信息分别对步骤(5)提取的初始MSB软判决信息和初始LSB软判决信息进行处理。
第七模块,用于使用标准最小和算法对步骤(6)中获得的新的第一MSB页和第一LSB软信息进行LDPC译码,对译码延迟进行统计,并将译码延迟和译码得到的结果发送到主机端。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明的方法通过步骤(4)到步骤(6),其能够分析MLC NAND闪存存储系统读操作过程,通过对比原始比特数据与受编程干扰后的比特数据得出错误位置信息,继而对页面寄存器中数据的错误位置进行比特翻转,之后再译码,从而能够解决传统读操作时间开销较大,会造成译码性能低,译码延迟高的技术问题。
(2)本发明的方法通过步骤(6-1)和(6-3),其能够在译码之前先进行纠错操作,减少译码时的错误率,降低译码时延,很好地提高系统的读性能。
(3)本发明的方法能够降低比特错误率,降低LDPC译码延迟,提高闪存读性能。
附图说明
图1是本发明提升MLC NAND闪存存储系统读性能的方法的设计结构图。
图2是本发明提升MLC NAND闪存存储系统读性能的方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的整体思路在于,通过分析MLC NAND闪存存储过程中编程干扰的特征,将受到编程干扰后的比特的位置信息进行存储,在对数据进行纠错之前,利用所记录的错误比特位置为译码提供有利信息,具体地,将所写入的数据暂时存储在一个缓存中,之后将受到编程干扰之后的数据读出,与之前缓存中的数据进行比较,将比特错误位置进行存储,当进行LDPC译码的时候,根据该存储的比特错误位置,预先对错误的比特进行翻转以降低比特错误率,比特错误率对译码有直接的影响,比特错误率一旦降低,译码延迟会很大程度上降低,译码过程占据着闪存读过程大部分的时间,降低译码延迟,能够解决传统读操作时间开销较大,读性能低的技术问题。
本发明的设计结构图如图1所示,比特数据经过低密度奇偶检验码(Low DensityParity Check,简称LDPC)编码器编码之后,将获得的码字传输到页面寄存器中,首先写到MLC NAND闪存的第一MSB页中,另外获得的码字被写到第一LSB页中。将写入到第一MSB页和第一LSB页中的码字存储在一个第一缓存器中,将另外获得的码字写入第二MSB页和第二LSB页,当对第二MSB页和第二LSB页执行写操作时,会对之前写入的第一MSB页和第一LSB页的数据造成编程干扰,因此第一MSB页和第一LSB页中的数据会发生编程干扰错误造成比特翻转,此时将第一MSB页和第一LSB页中的数据读出与第一缓存器中的数据进行对比,记录比特错误位置信息,当对第一MSB页与第一LSB页中的数据执行译码操作时,根据第一缓存器中所记录的比特错误位置信息,先对第一MSB页与第一LSB页中的数据的错误比特进行翻转,以降低一部分比特错误率,然后在执行LDPC译码操作,以此降低LDPC译码延迟,进而提高MLC NAND闪存读性能。
如图2所示,本发明提升闪存存储系统读性能的方法,其是应用在闪存系统中,且包括以下步骤:
(1)发出顺序写命令,根据该顺序写命令使用LDPC编码器对闪存系统中的部分比特数据进行编码,并将编码后所得到的码字传输到页面寄存器,其中n表示码字长度;
具体而言,本步骤中使用的编码算法是高斯消去算法(Gaussian eliminationalgorithm)。
本步骤的优点在于:闪存系统发出顺序写命令时,编码之后获得的码字以顺序写的方式首先写入MLC NAND闪存的第一MSB页,其次是第一LSB页,顺序写入有利于降低MLCNAND闪存信道噪音干扰,从而降低比特错误率。
(2)将页面寄存器中的码字写入MLC NAND闪存的第一MSB页,对闪存系统中剩余的部分比特数据执行步骤(1)的处理,将处理得到的码字写入MLCNAND闪存的第一LSB页,并将第一MSB页中的码字以及第一LSB中的码字存放于第一缓存器中。
本步骤的优点在于:先将码字写入寄存器中以降低写拥堵的带来的等待延迟开销;此外,能够很好的执行闪存系统发出的顺序写命令,将数据依次写入闪存页中。
(3)分别对闪存系统中剩余的比特数据执行步骤(1)的处理,并将得到的新的码字序列分别写入第二MSB页和第二LSB页。
本步骤的优点在于:依次将码字序列分别写入第二MSB页和第二LSB页能够很好地统计第一MSB页和第二MSB页中的比特数据受到的编程干扰错误。
(4)获取分别存储在第一MSB页和第一LSB中的码字由于编程干扰而发生比特错误所形成的新比特序列并将二者分别与存放于第一缓存器中的码字进行比较,以分别获得新比特序列中的比特错误位置信息并将所获得的比特错误位置信息记录在第二缓存器中。
本步骤的优点在于:在执行LDPC译码操作之前,根据所记录的比特错误位置信息,能够很大程度上降低比特错误率,从而降低译码延迟,进而提升闪存系统读性能。
(5)使用检测电平提取新比特序列对应的初始MSB软判决信息以及新比特序列对应的初始LSB软判决信息并将传输到页面寄存器中。
具体地,使用检测电平提取初始的MSB和LSB软判决信息是通过如下公式(1)和(2)计算获得:
其中LLR(MSB)和LLR(LSB)分别表示初始MSB软判决信息和初始软LSB判决信息,表示是MLC NAND闪存单元的阈值电压的概率密度分布,且服从正态分布,V1和V2分别表示检测电平的参考电压下限值和上限值,CE代表状态‘11’,C1代表状态‘10’,C2代表状态‘00’,C3代表状态‘01’。如果初始软判决信息为正数,则对应的比特值为1。如果初始软判决信息为负数,则比特值为0。
(6)根据步骤(4)中获得的比特错误位置信息分别对步骤(5)提取的初始MSB软判决信息和初始LSB软判决信息进行处理。
本步骤的优点在于:通过对比原始MSB和LSB比特序列与受到编程干扰后的比特序列得出错误位置信息,继而对页面寄存器中数据的错误位置处进行比特翻转,减少译码时的错误率,降低译码时延,很好地提升系统的读性能。
具体地,对初始MSB软判决信息和初始LSB软判决信息进行处理的过程包括如下步骤:
(6-1)将第一缓存器中的码字和存储在第一MSB页中的新比特序列进行对比,将第一缓存器中的码字和存储在第一LSB页中的新比特序列进行对比,对应位置数据相同的(即未发生比特错误),将该位置记为0,对应位置数据不同的(即发生了比特错误),将该位置记为1,得到一组第一MSB页错误位置序列和第一LSB页错误位置序列并将这两个序列存放于第二缓存器中;
(6-2)根据步骤(7-1)中的获得的错误位置序列对页面寄存器中的初始MSB软判决信息进行处理:若第一MSB页错误位置序列中某位置的i值为1(即其中1≤i≤n),则将对应的位置数据Ti=1进行翻转(即如果原始的Ti是负数,现在Ti是正数,如果原始的Ti是正数,现在Ti是负数),若序列中某位置j值为0(其中1≤j≤n),则数据不做改变,经过处理之后得到一组新的第一MSB页软信息
(6-3)根据步骤(6-1)中的获得的错误位置序列对页面寄存器中的初始LSB软判决信息进行处理:若第一LSB页错误位置序列中某位置i值为1(即),则将对应的位置数据ti=1进行翻转(即如果原始的ti是负数,现在ti是正数,如果原始的ti是正数,现在ti是负数);若序列中某位置j值为0,则数据不做改变,经过处理之后得到一组新的第一LSB页软信息
(7)使用标准最小和算法(即Normalized min-sum)对步骤(6)中获得的新的第一MSB页和第一LSB软信息进行LDPC译码,对译码延迟进行统计,并将译码延迟和译码得到的结果发送到主机端。
本步骤的优点在于:译码操作是在错误比特位置翻转之后,这样做有利于提高译码速度和性能,统计译码延迟能够很好地反映出闪存读性能。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种提升闪存存储系统读性能的方法,其是应用在闪存系统中,其特征在于,所述方法包括以下步骤:
(1)发出顺序写命令,根据该顺序写命令使用LDPC编码器对闪存系统中的部分比特数据进行编码,并将编码后所得到的码字传输到页面寄存器,其中n表示码字长度;
(2)将页面寄存器中的码字写入MLC NAND闪存的第一MSB页,对闪存系统中剩余的部分比特数据执行步骤(1)的处理,将处理得到的码字写入MLC NAND闪存的第一LSB页,并将第一MSB页中的码字以及第一LSB中的码字存放于第一缓存器中;
(3)分别对闪存系统中剩余的比特数据执行步骤(1)的处理,并将得到的新的码字序列分别写入第二MSB页和第二LSB页;
(4)获取分别存储在第一MSB页和第一LSB中的码字由于编程干扰而发生比特错误所形成的新比特序列并将二者分别与存放于第一缓存器中的码字进行比较,以分别获得新比特序列中的比特错误位置信息并将所获得的比特错误位置信息记录在第二缓存器中;
(5)使用检测电平提取新比特序列对应的初始MSB软判决信息以及新比特序列对应的初始LSB软判决信息并将传输到页面寄存器中;
(6)根据步骤(4)中获得的比特错误位置信息分别对步骤(5)提取的初始MSB软判决信息和初始LSB软判决信息进行处理;其中对初始MSB软判决信息和初始LSB软判决信息进行处理的过程包括如下步骤:
(6-1)将第一缓存器中的码字和存储在第一MSB页中的新比特序列进行对比,将第一缓存器中的码字和存储在第一LSB页中的新比特序列进行对比,若对应位置数据相同的,则将该位置记为0,若对应位置数据不同的,则将该位置记为1,得到一组第一MSB页错误位置序列和第一LSB页错误位置序列并将这两个序列存放于第二缓存器中;
(6-2)根据步骤(6-1)中的获得的错误位置序列对页面寄存器中的初始MSB软判决信息进行处理:若第一MSB页错误位置序列中某位置的i值为1,则将对应的位置数据Ti=1进行翻转,若序列中某位置j值为0,则数据不做改变,经过处理之后得到一组新的第一MSB页软信息其中1≤i≤n,1≤j≤n;
(6-3)根据步骤(6-1)中的获得的错误位置序列对页面寄存器中的初始LSB软判决信息进行处理:若第一LSB页错误位置序列中某位置i值为1,则将对应的位置数据ti=1进行翻转;若序列中某位置j值为0,则数据不做改变,经过处理之后得到一组新的第一LSB页软信息
(7)使用标准最小和算法对步骤(6)中获得的新的第一MSB页和第一LSB软信息进行LDPC译码,对译码延迟进行统计,并将译码延迟和译码得到的结果发送到主机端。
2.根据权利要求1所述的方法,其特征在于,步骤(1)中使用的编码算法是高斯消去算法。
3.根据权利要求1所述的方法,其特征在于,步骤(5)中使用检测电平提取初始的MSB和LSB软判决信息是通过如下公式(1)和(2)计算获得:
其中LLR(MSB)和LLR(LSB)分别表示初始MSB软判决信息和初始软LSB判决信息,表示是MLC NAND闪存单元的阈值电压的概率密度分布,且服从正态分布,V1和V2分别表示检测电平的参考电压下限值和上限值,CE代表状态‘11’,C1代表状态‘10’,C2代表状态‘00’,C3代表状态‘01’。
4.一种提升闪存存储系统读性能的系统,其是应用在闪存系统中,其特征在于,所述系统包括:
第一模块,用于发出顺序写命令,根据该顺序写命令使用LDPC编码器对闪存系统中的部分比特数据进行编码,并将编码后所得到的码字传输到页面寄存器,其中n表示码字长度;
第二模块,用于将页面寄存器中的码字写入MLC NAND闪存的第一MSB页,对闪存系统中剩余的部分比特数据执行步骤(1)的处理,将处理得到的码字写入MLC NAND闪存的第一LSB页,并将第一MSB页中的码字以及第一LSB中的码字存放于第一缓存器中;
第三模块,用于分别对闪存系统中剩余的比特数据执行步骤(1)的处理,并将得到的新的码字序列分别写入第二MSB页和第二LSB页;
第四模块,用于获取分别存储在第一MSB页和第一LSB中的码字由于编程干扰而发生比特错误所形成的新比特序列并将二者分别与存放于第一缓存器中的码字进行比较,以分别获得新比特序列中的比特错误位置信息并将所获得的比特错误位置信息记录在第二缓存器中;
第五模块,用于使用检测电平提取新比特序列对应的初始MSB软判决信息以及新比特序列对应的初始LSB软判决信息并将传输到页面寄存器中;
第六模块,用于根据第四模块中获得的比特错误位置信息分别对步骤(5)提取的初始MSB软判决信息和初始LSB软判决信息进行处理;其中对初始MSB软判决信息和初始LSB软判决信息进行处理的过程包括如下子模块:
第一子模块,用于将第一缓存器中的码字和存储在第一MSB页中的新比特序列进行对比,将第一缓存器中的码字和存储在第一LSB页中的新比特序列进行对比,若对应位置数据相同的,则将该位置记为0,若对应位置数据不同的,则将该位置记为1,得到一组第一MSB页错误位置序列和第一LSB页错误位置序列并将这两个序列存放于第二缓存器中;
第二子模块,用于根据第一子模块中的获得的错误位置序列对页面寄存器中的初始MSB软判决信息进行处理:若第一MSB页错误位置序列中某位置的i值为1,则将对应的位置数据Ti=1进行翻转,若序列中某位置j值为0,则数据不做改变,经过处理之后得到一组新的第一MSB页软信息其中1≤i≤n,1≤j≤n;
第三子模块,用于根据第一子模块中获得的错误位置序列对页面寄存器中的初始LSB软判决信息进行处理:若第一LSB页错误位置序列中某位置i值为1,则将对应的位置数据ti=1进行翻转;若序列中某位置j值为0,则数据不做改变,经过处理之后得到一组新的第一LSB页软信息
第七模块,用于使用标准最小和算法对步骤(6)中获得的新的第一MSB页和第一LSB软信息进行LDPC译码,对译码延迟进行统计,并将译码延迟和译码得到的结果发送到主机端。
CN201710578508.3A 2017-07-17 2017-07-17 一种提升闪存存储系统读性能的方法 Active CN107391299B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710578508.3A CN107391299B (zh) 2017-07-17 2017-07-17 一种提升闪存存储系统读性能的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710578508.3A CN107391299B (zh) 2017-07-17 2017-07-17 一种提升闪存存储系统读性能的方法

Publications (2)

Publication Number Publication Date
CN107391299A CN107391299A (zh) 2017-11-24
CN107391299B true CN107391299B (zh) 2019-06-18

Family

ID=60340752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710578508.3A Active CN107391299B (zh) 2017-07-17 2017-07-17 一种提升闪存存储系统读性能的方法

Country Status (1)

Country Link
CN (1) CN107391299B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110232002A (zh) * 2019-08-09 2019-09-13 深圳市硅格半导体有限公司 一种提升闪存读取准确性的方法、系统及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101345601A (zh) * 2007-07-13 2009-01-14 华为技术有限公司 一种译码方法和译码器
CN101361137A (zh) * 2006-01-16 2009-02-04 汤姆森许可贸易公司 用于将高速输入数据记录到存储器器件矩阵中的方法和装置
CN102279803A (zh) * 2011-04-13 2011-12-14 西安交通大学 一种提高多层单元NAND-Flash存储可靠性的备用区分配方法
CN102394113A (zh) * 2011-11-14 2012-03-28 清华大学 一种应用于快闪存储器中的动态ldpc纠错码方法
CN102682848A (zh) * 2011-03-16 2012-09-19 三星电子株式会社 存储器装置、存储器卡、固态驱动器、系统及其操作方法
CN106685431A (zh) * 2016-12-05 2017-05-17 华南理工大学 基于Nand Flash的LDPC获取软信息译码方法及编译码器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9407294B2 (en) * 2014-07-07 2016-08-02 Kabushi Kaisha Toshiba. Non-volatile memory controller with error correction (ECC) tuning via error statistics collection

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101361137A (zh) * 2006-01-16 2009-02-04 汤姆森许可贸易公司 用于将高速输入数据记录到存储器器件矩阵中的方法和装置
CN101345601A (zh) * 2007-07-13 2009-01-14 华为技术有限公司 一种译码方法和译码器
CN102682848A (zh) * 2011-03-16 2012-09-19 三星电子株式会社 存储器装置、存储器卡、固态驱动器、系统及其操作方法
CN102279803A (zh) * 2011-04-13 2011-12-14 西安交通大学 一种提高多层单元NAND-Flash存储可靠性的备用区分配方法
CN102394113A (zh) * 2011-11-14 2012-03-28 清华大学 一种应用于快闪存储器中的动态ldpc纠错码方法
CN106685431A (zh) * 2016-12-05 2017-05-17 华南理工大学 基于Nand Flash的LDPC获取软信息译码方法及编译码器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A Retention Error Aware LDPC Decoding Scheme to Improve NAND Flash Read Performance;zhang meng;《IEEE:2016 32nd Symposium on Mass Storage Systems and Technologies》;20170413;第1-13页

Also Published As

Publication number Publication date
CN107391299A (zh) 2017-11-24

Similar Documents

Publication Publication Date Title
CN103544073B (zh) 读取闪存中区块的数据的方法及相关的记忆装置
CN107590021B (zh) 一种降低闪存误码率的编、解码器和编、解码方法
US20110286271A1 (en) Memory systems and methods for reading data stored in a memory cell of a memory device
TWI618078B (zh) 在固態記憶體系統中基於延遲的資料再利用的系統及方法
WO2011146364A2 (en) Joint encoding of logical pages in multi-page memory architecture
US8996793B1 (en) System, method and computer readable medium for generating soft information
TW200828328A (en) Method of improving accessing reliability of flash memory
CN103187104A (zh) 存储器的纠错方法
CN103594120B (zh) 以读代写的存储器纠错方法
CN107395214B (zh) 一种基于闪存页错误特性降低ldpc译码延迟的方法
US11636009B2 (en) Enhanced error correcting code capability using variable logical to physical associations of a data block
TW201346923A (zh) 使用單一錯誤偵測奇偶校驗的抹除修正
WO2011146355A1 (en) Iterative demodulation and decoding for multi-page memory architecture
TWI725368B (zh) 解碼方法、記憶體控制電路單元以及記憶體儲存裝置
CN111061592A (zh) 一种通用的Nand Flash比特位反转纠错方法
CN114792546A (zh) 存储器装置的基于深度学习的编程验证建模和电压估计
CN104467871A (zh) 提高NAND Flash存储可靠性的数据存储方法
CN107391299B (zh) 一种提升闪存存储系统读性能的方法
CN107146638A (zh) 译码方法、内存储存装置及内存控制电路单元
US20200091937A1 (en) Generating hamming weights for data
CN105095011B (zh) 数据处理方法、存储器控制电路单元以及存储器存储装置
US10372377B2 (en) Memory controller, memory system, and control method
CN105027084B (zh) 在移动通信系统中控制存储器的装置和方法
CN114765047A (zh) 非易失性存储器装置中的软读取阈值估计的高斯建模
US10713160B1 (en) Data writing method, memory control circuit unit and memory storage device

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