CN106816179A - 一种闪存纠错方法和装置 - Google Patents
一种闪存纠错方法和装置 Download PDFInfo
- Publication number
- CN106816179A CN106816179A CN201510852721.XA CN201510852721A CN106816179A CN 106816179 A CN106816179 A CN 106816179A CN 201510852721 A CN201510852721 A CN 201510852721A CN 106816179 A CN106816179 A CN 106816179A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- threshold value
- memory pages
- voltage threshold
- 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.)
- Granted
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/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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- 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
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
- H03M13/255—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Probability & Statistics with Applications (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种闪存纠错方法和装置,包括:确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第一数据位,第一数据位为采用第n+1读电压阈值读取闪存页得到的数据中与采用第m读电压阈值读取闪存页得到的数据中相同数据位对应的数据不同的数据位,进而降低采用第n+1读电压阈值读取闪存页得到的数据中的第一数据位的可信度;根据调整后的第一数据位的可信度,对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码。其中,联合使用两次读取的同一闪存页得到的数据,降低数据位不同的数据对应的数据位的可信度,从而有效提高了纠错译码的成功率,使得SSD存储系统的性能大幅提升。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种闪存纠错方法和装置。
背景技术
随着闪存技术的不断成熟,其被广泛应用于固态存储领域。但是闪存中保存的数据,可能存在若干比特位的错误,如果直接将闪存物理页中读出的数据返回给上层业务,就可能造成业务失败。
为了保证返回给上层业务的数据是正确有效的,需要对业务数据进行错误检查和纠正(Error Correcting Code,简称为:ECC)保护,即对业务数据进行ECC编码,然后将ECC编码后的数据写入闪存。每当读取数据时,对从闪存中读取出来的数据进行错误检查和纠正,从而提升业务数据的可靠性。
但ECC保护的纠错能力有一定的范围,只能在页面数据中出现比特位错误数量不超过一定的上限时才有效。如果所读取的介质颗粒中发生错误的比特的个数超过了ECC纠错码的纠错能力,则纠错码将无法恢复原始存储的数据信息,导致存储信息的丢失。
为了避免存储信息的丢失,现有技术中常用的解决方案是Read retry,即如果用默认的读电压阈值读取介质颗粒的状态后用纠错码无法恢复原始信息时,通过调整读电压阈值,再次进行读取介质颗粒的状态并用纠错码恢复原始信息的机制。
现有技术需要多次调整读电压阈值进行尝试性的读取数据,从而造成了读时延的成倍增加(通常从微秒量级增加到毫秒量级),导致SSD存储系统性能的大幅降低。
发明内容
本发明实施例提供一种闪存纠错方法和装置,以克服现有技术中由于读时延的成倍增加而导致的SSD存储系统大幅降低的问题。
第一方面,本发明实施例提供一种闪存纠错方法,包括:步骤101:在对采用第n读电压阈值读取的闪存页数据进行纠错译码失败后,采用第n+1读电压阈值读取闪存页的数据,其中,第n+1读取电压阈值与第n读电压阈值不同,n为大于等于1的正整数;步骤102:确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第一数据位,第一数据位为采用第n+1读电压阈值读取闪存页得到的数据中与采用第m读电压阈值读取闪存页得到的数据中相同数据位对应的数据不同的数据位,m为大于等于1且小于等于n的正整数;步骤103:降低采用第n+1读电压阈值读取闪存页得到的数据中的第一数据位的可信度,可信度为第一数据位对应的置信度的绝对值;步骤104:根据调整后的第一数据位的可信度,对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码。
在本实施例中,联合使用两次读取的同一闪存页得到的数据,降低数据位不同的数据对应的数据位的可信度,从而有效提高了纠错译码的成功率,减小了读时延,使得SSD存储系统的性能大幅提升。
在前述第一方面的一些实施例中,还可以包括:确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第二数据位,第二数据位为采用第n+1读电压阈值读取闪存页得到的数据中与采用第m读电压阈值读取闪存页得到的数据中相同数据位对应的数据相同的数据位;然后,提高采用第n+1读电压阈值读取闪存页得到的数据中的第二数据位的可信度。
在本实施例中,通过联合使用两次读取的同一闪存页得到的数据,在降低降低数据位不同的数据对应的数据位可信度的同时,提高数据位相同的数据对应的数据位的可信度,从而可以进一步的提高纠错译码的成功率。
在前述第一方面的一些实施例中,确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第一数据位,具体包括:将采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据进行异或运算得到联合数据;若联合数据中的数据位的值为1,则确定该数据位为第一数据位。
在本实施例中,通过异或的方法可快速得到数据不同的数据位,有效减小了纠错译码的时延。
进一步的,在上述实施例的基础上,根据调整后的第一数据位的可信度,对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码之后,还包括:如果纠错译码成功,则将第n+1读电压阈值修改为预设读电压阈值;如果纠错译码不成功,则将n递增1,并重新执行上述第一方面中步骤101至步骤104。
本实施例中,当译码不成功时,则重新循环执行上述第一方面中的步骤101至步骤104,从而有效提高了纠错译码的成功率。
进一步的,重新执行上述第一方面中步骤101至步骤104之前还需要判断n递增后的的值是否大于预设阈值,若不大于,则重新执行上述第一方面中步骤101至步骤104;若大于,则确定闪存页所在的数据块为坏块。
本实施例中,当多次执行上述各个实施例的步骤后,如果译码均不成功,则终止译码过程,且上报错误,从而避免下次继续使用该数据块。
进一步的,根据调整后的第一数据位的可信度,对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码,包括:采用低密度奇偶校验码LDPC对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码。
第二方面,本发明实施例提供一种闪存纠错装置,包括:读取模块、确定模块、可信度调整模块和译码模块,具体的:
读取模块,用于在对采用第n读电压阈值读取的闪存页数据进行纠错译码失败后,采用第n+1读电压阈值读取闪存页的数据,第n+1读取电压阈值与第n读电压阈值不同,n为大于等于1的正整数;
确定模块,用于确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第一数据位,第一数据位为采用第n+1读电压阈值读取闪存页得到的数据中与采用第m读电压阈值读取闪存页得到的数据中相同数据位对应的数据不同的数据位,m为大于等于1且小于等于n的正整数;
可信度调整模块,用于降低采用第n+1读电压阈值读取闪存页得到的数据中的第一数据位的可信度,可信度为第一数据位对应的置信度的绝对值
译码模块,用于根据调整后的第一数据位的可信度,对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码。
本实施例的装置,用于执行第一方面提供的闪存纠错方法,其实现原理和有益效果类似,此处不再赘述。
进一步的,确定模块,还用于确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第二数据位,第二数据位为采用第n+1读电压阈值读取闪存页得到的数据中与采用第m读电压阈值读取闪存页得到的数据中相同数据位对应的数据相同的数据位;
可信度调整模块,还用于提高采用第n+1读电压阈值读取闪存页得到的数据中的第二数据位的可信度。
进一步的,确定模块具体用于:
将采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据进行异或运算得到联合数据;
若联合数据中的数据位的值为1,则确定该数据位为第一数据位。
进一步的,还包括:修正模块,
修正模块用于判断译码模块纠错译码是否成功,
若成功,则修正模块还用于将第n+1读电压阈值修改为预设读电压阈值;
若不成功,则修正模块还用于向读取模块发送指示消息,指示消息用于指示读取模块再次读取闪存页的数据,其中,n递增1。。
进一步的,修正模块具体用于:
向读取模块发送指示消息之前,修正模块还用于判断n递增后的值是否大于预设阈值,
若不大于,则修正模块用于向读取模块发送指示消息;
若大于,则修正模块用于确定闪存页所在的数据块为坏块。
进一步的,译码模块,具体用于:
采用低密度奇偶校验码LDPC对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码。
本发明实施例提供一种闪存纠错方法和装置,该方法包括:首先,在对采用第n读电压阈值读取的闪存页数据进行纠错译码失败后,采用第n+1读电压阈值读取闪存页的数据,第n+1读取电压阈值与第n读电压阈值不同,n为大于等于1的正整数;然后,确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第一数据位,第一数据位为采用第n+1读电压阈值读取闪存页得到的数据中与采用第m读电压阈值读取闪存页得到的数据中相同数据位对应的数据不同的数据位,m为大于等于1且小于等于n的正整数;进而,降低采用第n+1读电压阈值读取闪存页得到的数据中的第一数据位的可信度,可信度为第一数据位对应的置信度的绝对值;最后,根据调整后的第一数据位的可信度,对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码。
其中,联合使用两次读取的同一闪存页得到的数据,降低数据位不同的数据对应的数据位的可信度,从而有效提高了纠错译码的成功率,减小了读时延,使得SSD存储系统的性能大幅提升。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1所示为SSD控制器的一个基本功能模块示意图;
图2所示为介质颗粒中理想的电压分布状态;
图3所示为介质颗粒中实际的电压分布状态一;
图4所示为介质颗粒中实际的电压分布状态二;
图5所示为现有技术基于Read Retry的纠错方案流程图;
图6所示为本发明实施例提供的闪存纠错方法的流程图;
图7所示为本发明实施例一提供的的闪存纠错装置的结构示意图一;
图8所示为本发明实施例一提供的的闪存纠错装置的结构示意图二。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
固态存储很早就被应用于企业高价值数据的存储,以及消费电子产品中的存储。但随着企业级存储应用的日趋复杂,传统存储阵列逐渐在以下几个方面面临挑战:
(1)可靠性。受限于硬盘驱动器(Hard Disk Drive,简称为:HDD)的机械部件,单块HDD的年失效率难以继续有效降低,这阻碍了存储阵列可靠性的进一步提升。
(2)性能。传统阵列依靠堆积大量的HDD来获取较高的读写速度,但是并不能有效降低读写时延;同时随着数据中心虚拟化的不断扩展,传统阵列所接收到的读写数据模型越来越随机,越来越难以作针对性的优化。
(3)成本。企业一般通过堆积HDD来获取所需的读写速度,实际上,这导致了很多额外的容量成本,以及为了支撑这些大量的HDD的空间、能耗成本。
基于上述问题,闪存应运而生,且为解决上述问题提供了可能。当前因为闪存在价格、容量、可靠性等多方面达到了相对领先的平衡,因此被广泛应用于固态存储领域。
基于闪存的固态硬盘(Solid State Drive,简称为:SSD)的核心部件为:闪存和主控制器。闪存是基本存储单元,而主控制器则是SSD的心脏,负责运算和任务分配,两者的结合才是一款SSD性能的真正体现。如果主控制器能力不足,会无法完全发挥闪存高速存取的特性,而如果闪存品质较低,那么主控再强也无济于事。
图1所示为SSD控制器的一个基本功能模块示意图,如图1所示,SSD控制器由写数据处理模块、读数据处理模块以及读/写/擦除闪存控制模块组成。其中写数据处理模块完成对数据流的压缩、加密、加绕以及ECC编码等处理操作;读数据处理模块是写处理模块的逆过程,它完成对从闪存中读取的数据的ECC译码、解扰、解密以及解压缩等处理操作;读/写/擦除闪存控制模块完成从闪存颗粒读取数据的控制、写入数据的控制和擦除数据的控制功能。SSD控制器普遍都将ECC编码器和解码器作为必选功能,其目的是提升数据的可靠性和闪存颗粒的寿命。
但是,闪存中保存的数据,经过一段时间后,可能存在若干bit位的错误。如果直接将闪存物理页中读出的数据返回给上层业务,就可能造成业务失败。为了保证返回给上层业务的数据是正确有效的,SSD控制器会对业务数据进行ECC保护,即对业务数据进行ECC编码,然后将ECC编码后的数据写入闪存。每当读取数据时,SSD控制器会对从闪存中读取出来的数据进行错误检查和纠正,从而提升业务数据的可靠性。传统的SSD控制器受限于计算能力,所使用的ECC编码和译码都是非常简单的纠错码,比如BCH码,其纠错能力有限,只能在页面数据中出现bit位错误数量不超过一定的上限时才有效。举例来讲,传统的SSD控制器通常使用纠错能为24bit/1KB的BCH码,即每1KB数据(包含业务数据和校验数据)内出现了bit位错误不超过24个时,控制器可以通过计算的方式得出正确有效的业务数据。当某个页中的bit位错误数超过控制器的计算能力后,该页的业务数据无法被正确读出,此时便产生一个不可纠(uncorrectable)错误。
当前,大容量高速闪存(Nand Flash)存储系统是业界的主打产品。但在当前产品应用中Nand Flash存储介质主要有两方面的缺点:
(1)由于Nand Flash物理特性的原因导致存储数据出错的现象;
(2)用于Nand Flash频繁擦写导致介质颗粒磨损老化,进而寿命受限的现象;
因此在面向企业级高可靠性存储产品的应用中,提升Nand Flash的可靠性和寿命是最核心的技术挑战。
图2所示为介质颗粒中理想的电压分布状态,正常情况下介质颗粒中的电压分布应该为如图2所示的形态,其中T1,T2,T3分别是读电压阈值。
但由于一些原因,介质颗粒中的电压分布状态会发生错误,通常来讲,Nand Flash介质发生错误的原因主导的有两方面:
(1)随着介质颗粒擦写次数的不断增加,编程过程中介质颗粒之间的编程干扰等,会导致介质的电压分布发生偏移,如图3所示,由于编程干扰,导致介质颗粒中的电压分布状态相对于图2所示的介质颗粒中理想的电压分布状态向右偏移,此时如果用理想情况下的读电压阈值读取介质颗粒,会造成读取介质颗粒状态判决错误的大量增加。
(2)随着介质颗粒放置时间的增加,介质颗粒中存储的电子发生了泄露,因此也会导致介质的电压分布发生偏移,如图4所示,由于长时间方式,导致介质颗粒中的电压分布状态相对于图2所示的介质颗粒中理想的电压分布状态向右偏移,同理也会造成读取介质颗粒状态判决错误的大量增加。
由于以上两个物理机制导致的电压分布的偏移现象,在用固定的读电压阈值读取介质颗粒的状态时,就会发生判决错误。如果所读取的介质颗粒中发生错误的介质颗粒的个数超过了ECC纠错码的纠错能力,则纠错码将无法恢复原始存储的数据信息,导致存储信息的丢失。数据的丢失在面向企业级的存储产品中是灾难性的,因此业界都通过各种技术手段提升SSD存储产品的数据可靠性,尽可能的将发生数据丢失的概率降低。
针对发生错误的两种原因,闪存介质厂商提供的纠错解决方案是Readretry,即用默认的读电压阈值读取介质颗粒的状态后用纠错码无法恢复原始信息时,通过调整读电压阈值,再次进行读取介质颗粒的状态并用纠错码恢复原始信息的机制。
在现有技术中,SSD控制器可以通过Read Retry命令,多次调整介质颗粒的读电压阈值,从而逐次逼近真实的介质颗粒电压阈值。该方案的一个致命缺点是Read Retry的过程增加了读取介质颗粒的次数,从而造成读时延的大幅下降,最终导致SSD存储系统性能的急剧下降。
具体的,图5所示为现有技术基于Read Retry的纠错方案流程图,如图5所示:
第一步:用默认的读电压阈值读取闪存介质的每一个页(page),并进行ECC纠错译码,如果译码成功,则反馈译码成功,ECC译码设备输出正确的原始信息,如果译码失败,则执行第二步;
第二步:在第一步中如果ECC纠错失败并报错,则按照表1中的顺序(该表是美光(Micron)给出的默认读阈值调整顺序,用户也可以根据实际的应用场景自行定义)调整读电压阈值到读电压阈值选项1(01h)后,再次读取出错的页(page),并进行ECC纠错译码,如果译码成功,则将读电压阈值重新设置成默认的读电压阈值选项0),然后反馈译码成功,ECC译码设备输出正确的原始信息,如果译码失败,则执行第三步;
第三步:在第二步中如果ECC译码设备再次纠错失败,则按照表1的顺序调整读电压阈值到读电压阈值选项2(02h)后,再次读取出错的页(page),并进行ECC纠错译码,如果译码成功,则将读电压阈值重新设置成默认的读电压阈值(选项0),然后反馈译码成功,ECC译码设备输出正确的原始信息,如果译码失败,则执行第四步;
第四步:如果第三步再次译码失败,则按照表1列出的读阈值选择顺序依次调整读电压阈值,再次读取出错的页(page),并进行ECC纠错译码,直到ECC译码成功后,反馈译码成功,ECC译码设备输出正确的原始信息。
如果SSD控制器尝试完上表中列出的所有选项后,ECC译码仍然失败,则反馈译码失败,该页(page)所在的块(block)(闪存介质的block包含很多个page)被SSD控制器中的上层管理系统标记为坏块。
表1
采用现有技术方案中存在以下问题:
(1)现有技术是通过遍历读阈值的方式来逐步降低读取介质页(page)的出错个数,试图通过这样的方法使得介质(page)中出错的个数满足ECC纠错设备的纠错能力,但是这样做并没从本质上提升ECC纠错设备的纠错能力;
举例来讲,假设ECC纠错设备的纠错能力是1KB/40bit(即1KB数据中可以纠40个比特的错误),Read Retry的纠错机制希望通过调整读电压阈值的方式使得1KB数据中出错的个数少于40bit。
(2)由于现有技术方案没有在本质上提升ECC纠错设备的纠错能力,因此需要多次调整读电压阈值进行尝试性的读取数据,从而造成了读时延的成倍增加(通常从微秒量级增加到毫秒量级),导致SSD存储系统性能的大幅降低。
针对这一问题,本发明给出了一种增强Read Retry纠错能力的纠错机制,本方案在现有技术的基础上,联合利用两次读取的介质颗粒判决信息,从联合两次处理后得到的数据,并从中获得‘软信息’,进而提升了ECC纠错码的纠错能力,最终减少Read Retry的读取次数,降低了读时延。
下面通过具体实施例介绍本发明的方案:
图6所示为本发明实施例提供的闪存纠错方法的流程图,如图6所示,本实施例的方法可以包括:
步骤101、在对采用第n读电压阈值读取的闪存页数据进行纠错译码失败后,采用第n+1读电压阈值读取闪存页的数据,第n+1读取电压阈值与第n读电压阈值不同,n为大于等于1的正整数。
上述的读电压阈值的值可以根据现有技术中已有的读电压阈值表进行调整,也可以为用户自己设定,本发明不对其加以限制。
当采用第n读电压阈值读取的闪存页数据进行纠错译码失败后,将采用与第n读电压阈值不同的第n+1读电压阈值继续读取该闪存页的数据。
步骤102、确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第一数据位,第一数据位为采用第n+1读电压阈值读取闪存页得到的数据中与采用第m读电压阈值读取闪存页得到的数据中相同数据位对应的数据不同的数据位,m为大于等于1且小于等于n的正整数。
步骤103:降低采用第n+1读电压阈值读取闪存页得到的数据中的第一数据位的可信度,可信度为第一数据位对应的置信度的绝对值。
例如:置信度为0、±1、±2、±3、±4,则对应的可信度为0、1、2、3、4。
在本发明实施例中,为了描述简单,将采用第m读电压阈值读取闪存页得到的数据称为第m数据;将采用第n+1读电压阈值读取闪存页得到的数据称为第n+1数据。值得注意的是,上述的第m数据和第n+1数据均是未经过纠错译码的数据。
具体的:
判断第m数据和第n+1数据中哪些比特位对应的数据不同,并降低该些比特位对应的可信度;
例如:原数据为10101010,第m数据为10111010且该数据经纠错译码后没有恢复出原数据,第n+1数据为10101010,则确定第m数据和第n+1数据中的第4比特位的数据不同,其他比特位的数据均相同,则可将第4比特位对应的可信度降低。
继续上述例子,假如第n+1数据中第4比特位对应的可信度为3(置信度为-3),则可将第n+1数据中第4比特位对应的可信度降低为任一个可信度,只要该可信度小于3且大于等于系统规定的最小的可信度即可,例如可以为1或2等,但是,在实际应用中,可以将可信度逐渐减低,也即,将此时的第4比特位对应的置信度3降低为2。
上述的置信度可以通过置信度映射获得,具体的:
置信度通常定义为逻辑值判断为0的概率和逻辑值判断为1的概率的对数似然比值。举例来讲,逻辑值判断为0的概率为p,则逻辑值判断为1的概率为1-p,据此置信度定义为置信度映射将逻辑值映射为置信度的定量值。置信度的定量值根据需求可用自定义的量化比特位数表示。比如,如果采用4比特量化,其中1比特表示符号位,其余3比特表示绝对值,则置信度的定量值可以表示0,±1,±2,±3,±4,±5,±6,±7的一组取值集合。置信度映射可以使用查表等各种方便的方式完成从逻辑值到置信度取值的映射。需要说明的,置信度的绝对值越大,表示其可信度越高,因此置信度是描述判决值可信性的定量指标,此处也说明了由于上述例子中第4比特位对应的数据可信度低,因此要将该比特位对应的置信度降低,从而提高纠错译码的成功率。
在实际应用中,如果使用一一比对的方法获取第m数据和第n+1数据中数据不同的比特位会增大系统的延时,因此,可采用将第m数据和第n+1数据进行异或运算得到联合数据,从而根据联合数据即可直接确定哪些比特位对应的数据相同,哪些比特位对应的数据不同,也即,联合数据中的数据位的值如果是1,则表明第m数据和第n+1数据中该数据位对应的数据不同,联合数据中的数据位的值如果是0,则表明第m数据和第n+1数据中该数据位对应的数据相同。
继续按照上述的例子,第m数据为10111010,第n+1数据为10101010,将第m数据和第n+1数据进行异或运算,即:10111010⊕10101010=00010000,由于异或运算中如果进行异或的两个值不相同,则异或结果为1,如果进行异或的两个值相同,异或结果为0,因此,根据上述异或结果00010000,可以很容易得知第4比特位的数据不同,其他比特位的数据均相同,从而提高了系统的处理效率,减小了系统的处理时延。
步骤104、根据调整后的第一数据位的可信度,对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码。
纠错设备根据调整后的第一数据位的可信度对第n+1数据数据进行纠错译码,如果纠错译码成功,则将此时的第n+1读电压阈值重新设置成预设的读电压阈值(也即为默认的读电压阈值),然后反馈纠错译码成功,纠错译码设备输出正确的原始信息。
如果纠错译码不成功,则按照预设规则修改读电压阈值,也即将步骤101至步骤104中的n递增为n+1,并重新执行上述步骤101到104所示的步骤。
进一步的,在循环执行上述步骤101-步骤104之前,还需判断n递增后的值是否大于预设阈值,若不大于,此时则重新执行上述步骤101至步骤104,若大于,则确定当前的闪存页所在的数据块为坏块。
此处的预设阈值可以为用户自定义设置,也可以为系统预置,本发明不对其加以限制。
为了进一步的提高纠错译码的成功率,在本发明中,还可以提高所述采用第n+1读电压阈值读取所述闪存页得到的数据和所述采用第m读电压阈值读取所述闪存页得到的数据中的第二数据位的可信度,其中,所述第二数据位为所述采用第n+1读电压阈值读取所述闪存页得到的数据中与所述采用第m读电压阈值读取所述闪存页得到的数据中相同数据位对应的数据相同的数据位。
继续按照上述的例子,将采用第m读电压阈值读取闪存页得到的数据称为第m数据;将采用第n+1读电压阈值读取闪存页得到的数据称为第n+1数据。值得注意的是,上述的第m数据和第n+1数据均是未经过纠错译码的数据。
具体的,确定第m数据和第n+1数据中哪些比特位对应的数据相同,并提高该些比特位对应的可信度。
在提高该些比特位对应的可信度之前,还可以包括,先判断该些比特位对应的可信度是否为最高可信度,如果是最高可信度,则不提高该些比特位对应的可信度,如果不是最高可信度,则提高该些比特位对应的可信度。
例如:原数据为10101010,第m数据为10111010且该数据经纠错译码后没有恢复出原数据,第n+1数据为10101010,则确定第m数据和第n+1数据中除第4比特位的数据不同外,其他比特位的数据均相同,则在降低第4比特位对应的可信度降低的同时,提高其他比特位对应的可信度。
进一步的,需要判断第1比特位、第2比特位、第3比特位、第5比特位、第6比特位、第7比特位、第8比特位对应的可信度是否为最高可信度,假如此时第6比特位和第8比特位对应的可信度为最高可信度,则无需提高该比特位的可信度,而提高第1比特位、第2比特位、第3比特位、第5比特位和第7比特位对应的可信度。
同样可以采样将第m数据和第n+1数据进行异或运算的方法求得其中哪些比特位对应的数据相同,其实现方式与上述实施例中描述第m数据和第n+1数据中哪些比特位对应的数据不同的方法相同,此处不再赘述。
表2是对美光Nand Flash颗粒进行实测的统计结果,从表中可以看出在擦写次数分别为30K~36K下,本发明的技术方案的译码成功频率都大幅高于现有技术方案基于单次读信息的译码成功频率。本发明的技术方案译码成功频率的提升,将减少SSD控制器进行Read Retry的次数,降低读时延,从而提升SSD存储系统的性能。
表2
理论推导和仿真结果表明:通过联合利用两次读取的同一闪存页的数据,并对两次的数据进行运算可以获取额外的软信息,纠错设备利用软信息后进行译码纠错,其纠错能力可提升1倍以上。
举例来讲,对于一个码长为4KByte字节,码率为94.57%的LDPC,在单次读取下的纠错能力近似为4KB/65bit(即4KB数据中可以纠65个比特的错误),而通过联合利用两次读取的软信息后,其纠错能力可以提升到近似为4KB/144bit(即4KB数据中可以纠144个比特的错误),因此联合两次的纠错能力是单次纠错能力的2.2倍。
本实施例提供的闪存纠错方法,包括:在对采用第n读电压阈值读取的闪存页数据进行纠错译码失败后,采用第n+1读电压阈值读取闪存页的数据,第n+1读取电压阈值与第n读电压阈值不同,n为大于等于1的正整数;确定采用第n+1读电压阈值读取闪存页得到的数据和采用第m读电压阈值读取闪存页得到的数据中的第一数据位,第一数据位为采用第n+1读电压阈值读取闪存页得到的数据中与采用第m读电压阈值读取闪存页得到的数据中相同数据位对应的数据不同的数据位,m为大于等于1且小于等于n的正整数;降低采用第n+1读电压阈值读取闪存页得到的数据中的第一数据位的可信度,可信度为第一数据位对应的置信度的绝对值;根据调整后的第一数据位的可信度,对采用第n+1读电压阈值读取闪存页得到的数据进行纠错译码。其中,联合使用两次读取的同一闪存页得到的数据,降低数据位不同的数据对应的数据位的可信度,从而有效提高了纠错译码的成功率,减小了读时延,使得SSD存储系统的性能大幅提升。
图7所示为本发明实施例一提供的的闪存纠错装置的结构示意图,如图7所示,本实施例的装置可以包括:读取模块11、确定模块12、可信度调整模块13和译码模块14,其中,
读取模块11,用于在对采用第n读电压阈值读取的闪存页数据进行纠错译码失败后,采用第n+1读电压阈值读取闪存页的数据,所述第n+1读取电压阈值与所述第n读电压阈值不同,n为大于等于1的正整数;
确定模块12,用于确定所述采用第n+1读电压阈值读取所述闪存页得到的数据和采用第m读电压阈值读取所述闪存页得到的数据中的第一数据位,所述第一数据位为所述采用第n+1读电压阈值读取所述闪存页得到的数据中与所述采用第m读电压阈值读取所述闪存页得到的数据中相同数据位对应的数据不同的数据位,m为大于等于1且小于等于n的正整数;
可信度调整模块13,用于降低所述采用第n+1读电压阈值读取所述闪存页得到的数据中的所述第一数据位的可信度,所述可信度为所述第一数据位对应的置信度的绝对值
译码模块14,用于根据调整后的所述第一数据位的可信度,对所述采用第n+1读电压阈值读取所述闪存页得到的数据进行纠错译码。
可选地,在图7所示实施例的基础上,所述确定模块12还用于:
还用于确定所述采用第n+1读电压阈值读取所述闪存页得到的数据和所述采用第m读电压阈值读取所述闪存页得到的数据中的第二数据位,所述第二数据位为所述采用第n+1读电压阈值读取所述闪存页得到的数据中与所述采用第m读电压阈值读取所述闪存页得到的数据中相同数据位对应的数据相同的数据位;
所述可信度调整模块,还用于提高所述采用第n+1读电压阈值读取所述闪存页得到的数据中的所述第二数据位的可信度。
进一步的,所述确定模块12具体用于:
将所述采用第n+1读电压阈值读取所述闪存页得到的数据和所述采用第m读电压阈值读取所述闪存页得到的数据进行异或运算得到联合数据;
若所述联合数据中的数据位的值为1,则确定该数据位为所述第一数据位。
可选地,在图7所示实施例的基础上,如图8所示,上述的装置,还包括:修正模块15,
所述修正模块15用于判断所述译码模块纠错译码是否成功,
若成功,则所述修正模块15还用于将所述第n+1读电压阈值修改为预设读电压阈值;
若不成功,则所述修正模块15还用于向所述读取模块发送指示消息,所述指示消息用于指示所述读取模块再次读取所述闪存页的数据,其中,所述n递增1。
可选地,所述修正模块具体用于:
向所述读取模块发送指示消息之前,所述修正模块还用于判断所述n递增后的值是否大于预设阈值,
若不大于,则所述修正模块用于向所述读取模块发送所述指示消息;
若大于,则所述修正模块用于确定所述闪存页所在的数据块为坏块。
可选的,所述译码模块14,具体用于:
采用低密度奇偶校验码LDPC对所述采用第n+1读电压阈值读取所述闪存页得到的数据进行纠错译码。
本实施例的装置,可以用于执行图6所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读存储记忆体(Read-Only Memory,简称为:ROM)、随机存储记忆体(Random Access Memory,简称为:RAM)、磁碟、光盘、寄存器、内存等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种闪存纠错方法,其特征在于,包括:
步骤101:在对采用第n读电压阈值读取的闪存页数据进行纠错译码失败后,采用第n+1读电压阈值读取闪存页的数据,所述第n+1读取电压阈值与所述第n读电压阈值不同,n为大于等于1的正整数;
步骤102:确定所述采用第n+1读电压阈值读取所述闪存页得到的数据和采用第m读电压阈值读取所述闪存页得到的数据中的第一数据位,所述第一数据位为所述采用第n+1读电压阈值读取所述闪存页得到的数据中与所述采用第m读电压阈值读取所述闪存页得到的数据中相同数据位对应的数据不同的数据位,m为大于等于1且小于等于n的正整数;
步骤103:降低所述采用第n+1读电压阈值读取所述闪存页得到的数据中的所述第一数据位的可信度,所述可信度为所述第一数据位对应的置信度的绝对值;
步骤104:根据调整后的所述第一数据位的可信度,对所述采用第n+1读电压阈值读取所述闪存页得到的数据进行纠错译码。
2.根据权利要求1所述的方法,其特征在于,还包括:
确定所述采用第n+1读电压阈值读取所述闪存页得到的数据和所述采用第m读电压阈值读取所述闪存页得到的数据中的第二数据位,所述第二数据位为所述采用第n+1读电压阈值读取所述闪存页得到的数据中与所述采用第m读电压阈值读取所述闪存页得到的数据中相同数据位对应的数据相同的数据位;
提高所述采用第n+1读电压阈值读取所述闪存页得到的数据中的所述第二数据位的可信度。
3.根据权利要求1或2所述的方法,其特征在于,所述确定所述采用第n+1读电压阈值读取所述闪存页得到的数据和所述采用第m读电压阈值读取所述闪存页得到的数据中的第一数据位,包括:
将所述采用第n+1读电压阈值读取所述闪存页得到的数据和所述采用第m读电压阈值读取所述闪存页得到的数据进行异或运算得到联合数据;
若所述联合数据中的数据位的值为1,则确定该数据位为所述第一数据位。
4.根据权利要求1-3任一项所述的方法,其特征在于,根据调整后的所述第一数据位的可信度,对所述采用第n+1读电压阈值读取所述闪存页得到的数据进行纠错译码之后,还包括:
若纠错译码成功,
则将所述第n+1读电压阈值修改为预设读电压阈值;
若纠错译码不成功,
则将所述n递增1,并重新执行上述步骤101至步骤104。
5.根据权利要求4所述的方法,其特征在于,所述重新执行上述步骤101至步骤104之前还包括:
判断所述n递增后的的值是否大于预设阈值,
若不大于,则重新执行上述步骤101至步骤104;
若大于,则确定所述闪存页所在的数据块为坏块。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据调整后的所述第一数据位的可信度,对所述采用第n+1读电压阈值读取所述闪存页得到的数据进行纠错译码,包括:
采用低密度奇偶校验码LDPC对所述采用第n+1读电压阈值读取所述闪存页得到的数据进行纠错译码。
7.一种闪存纠错装置,其特征在于,包括:
读取模块,用于在对采用第n读电压阈值读取的闪存页数据进行纠错译码失败后,采用第n+1读电压阈值读取闪存页的数据,所述第n+1读取电压阈值与所述第n读电压阈值不同,n为大于等于1的正整数;
确定模块,用于确定所述采用第n+1读电压阈值读取所述闪存页得到的数据和采用第m读电压阈值读取所述闪存页得到的数据中的第一数据位,所述第一数据位为所述采用第n+1读电压阈值读取所述闪存页得到的数据中与所述采用第m读电压阈值读取所述闪存页得到的数据中相同数据位对应的数据不同的数据位,m为大于等于1且小于等于n的正整数;
可信度调整模块,用于降低所述采用第n+1读电压阈值读取所述闪存页得到的数据中的所述第一数据位的可信度,所述可信度为所述第一数据位对应的置信度的绝对值。
译码模块,用于根据调整后的所述第一数据位的可信度,对所述采用第n+1读电压阈值读取所述闪存页得到的数据进行纠错译码。
8.根据权利要求7所述的装置,其特征在于,
所述确定模块,还用于确定所述采用第n+1读电压阈值读取所述闪存页得到的数据和所述采用第m读电压阈值读取所述闪存页得到的数据中的第二数据位,所述第二数据位为所述采用第n+1读电压阈值读取所述闪存页得到的数据中与所述采用第m读电压阈值读取所述闪存页得到的数据中相同数据位对应的数据相同的数据位;
所述可信度调整模块,还用于提高所述采用第n+1读电压阈值读取所述闪存页得到的数据中的所述第二数据位的可信度。
9.根据权利要求7或8所述的装置,其特征在于,所述确定模块具体用于:
将所述采用第n+1读电压阈值读取所述闪存页得到的数据和所述采用第m读电压阈值读取所述闪存页得到的数据进行异或运算得到联合数据;
若所述联合数据中的数据位的值为1,则确定该数据位为所述第一数据位。
10.根据权利要求7-9任一项所述的装置,其特征在于,还包括:修正模块,
所述修正模块用于判断所述译码模块纠错译码是否成功,
若成功,则所述修正模块还用于将所述第n+1读电压阈值修改为预设读电压阈值;
若不成功,则所述修正模块还用于向所述读取模块发送指示消息,所述指示消息用于指示所述读取模块再次读取所述闪存页的数据,其中,所述n递增1。
11.根据权利要求10所述的装置,其特征在于,所述修正模块具体用于:
向所述读取模块发送指示消息之前,所述修正模块还用于判断所述n递增后的值是否大于预设阈值,
若不大于,则所述修正模块用于向所述读取模块发送所述指示消息;
若大于,则所述修正模块用于确定所述闪存页所在的数据块为坏块。
12.根据权利要求7-11任一项所述的装置,其特征在于,所述译码模块,具体用于:
采用低密度奇偶校验码LDPC对所述采用第n+1读电压阈值读取所述闪存页得到的数据进行纠错译码。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510852721.XA CN106816179B (zh) | 2015-11-30 | 2015-11-30 | 一种闪存纠错方法和装置 |
PCT/CN2016/081723 WO2017092239A1 (zh) | 2015-11-30 | 2016-05-11 | 一种闪存纠错方法和装置 |
EP16869553.4A EP3358569B1 (en) | 2015-11-30 | 2016-05-11 | Flash memory error correction method and device thereof |
US15/965,424 US10691535B2 (en) | 2015-11-30 | 2018-04-27 | Flash memory error correction method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510852721.XA CN106816179B (zh) | 2015-11-30 | 2015-11-30 | 一种闪存纠错方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106816179A true CN106816179A (zh) | 2017-06-09 |
CN106816179B CN106816179B (zh) | 2020-12-25 |
Family
ID=58796224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510852721.XA Active CN106816179B (zh) | 2015-11-30 | 2015-11-30 | 一种闪存纠错方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10691535B2 (zh) |
EP (1) | EP3358569B1 (zh) |
CN (1) | CN106816179B (zh) |
WO (1) | WO2017092239A1 (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107153507A (zh) * | 2016-03-03 | 2017-09-12 | 北京兆易创新科技股份有限公司 | 一种基于NAND Flash的数据读取装置和方法 |
CN107861834A (zh) * | 2017-11-06 | 2018-03-30 | 华中科技大学 | 一种基于错误预检测技术提升固态硬盘读性能的方法 |
CN108052414A (zh) * | 2017-12-28 | 2018-05-18 | 湖南国科微电子股份有限公司 | 一种提升ssd工作温度范围的方法及系统 |
CN109032524A (zh) * | 2018-07-26 | 2018-12-18 | 浪潮电子信息产业股份有限公司 | 一种坏块标记的方法以及相关装置 |
CN109240615A (zh) * | 2018-08-30 | 2019-01-18 | 浪潮电子信息产业股份有限公司 | 一种固态硬盘的数据读取方法、装置及设备 |
CN111858137A (zh) * | 2020-07-08 | 2020-10-30 | 上海威固信息技术股份有限公司 | 一种原始比特错误率感知的读电平施加方法 |
CN113168882A (zh) * | 2018-11-29 | 2021-07-23 | 华为技术有限公司 | 一种编码方法、译码方法以及存储控制器 |
CN113409837A (zh) * | 2021-06-28 | 2021-09-17 | 芯天下技术股份有限公司 | 调整读操作电压值的方法、装置、电子设备及存储介质 |
CN113571113A (zh) * | 2021-07-14 | 2021-10-29 | 深圳宏芯宇电子股份有限公司 | 目标数据的解码方法、装置、电子设备和存储装置 |
CN113805815A (zh) * | 2021-09-18 | 2021-12-17 | 中国科学院微电子研究所 | 一种用于闪存的数据恢复方法、装置及系统 |
CN114047887A (zh) * | 2022-01-13 | 2022-02-15 | 苏州浪潮智能科技有限公司 | 一种提高数据读取的成功率的方法、装置及介质 |
CN114078560A (zh) * | 2021-10-22 | 2022-02-22 | 北京得瑞领新科技有限公司 | Nand闪存芯片的纠错译码方法、存储介质及ssd设备 |
CN114356217A (zh) * | 2021-12-07 | 2022-04-15 | 广州致存科技有限责任公司 | 数据读取方法、存储设备和存储介质 |
CN114407810A (zh) * | 2021-12-23 | 2022-04-29 | 惠州市德赛西威汽车电子股份有限公司 | 一种防止Flash数据读取失败的方法 |
CN116431382A (zh) * | 2023-06-12 | 2023-07-14 | 深圳大普微电子科技有限公司 | 纠错单元管理方法、存储控制芯片及闪存设备 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108038023B (zh) * | 2017-12-26 | 2021-01-29 | 广东工业大学 | 一种多级闪存的信号处理方法、装置、设备及存储介质 |
CN110246533B (zh) * | 2018-03-09 | 2020-11-13 | 建兴储存科技(广州)有限公司 | 固态储存装置的失败模式检测方法及错误更正方法 |
KR102648618B1 (ko) * | 2018-03-28 | 2024-03-19 | 에스케이하이닉스 주식회사 | 컨트롤러, 그것의 동작방법 및 컨트롤러를 포함하는 메모리 시스템 |
KR102567314B1 (ko) * | 2018-04-27 | 2023-08-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US11120882B2 (en) * | 2018-08-24 | 2021-09-14 | International Business Machines Corporation | Error recovery of data in non-volatile memory during read |
US11610116B2 (en) | 2018-12-31 | 2023-03-21 | SK Hynix Inc. | Storage device performance optimization using deep learning |
US12087382B2 (en) * | 2019-04-11 | 2024-09-10 | Pure Storage, Inc. | Adaptive threshold for bad flash memory blocks |
CN110058957A (zh) * | 2019-04-22 | 2019-07-26 | 湖南国科微电子股份有限公司 | 一种固态硬盘纠错能力提升方法与固态硬盘 |
US11127471B2 (en) | 2019-07-23 | 2021-09-21 | SK Hynix Inc. | Read retry threshold voltage selection |
CN111459413B (zh) * | 2020-03-31 | 2024-04-02 | 深圳忆联信息系统有限公司 | 提升ssd性能的方法、装置、计算机设备及存储介质 |
US11960989B2 (en) | 2020-07-24 | 2024-04-16 | SK Hynix Inc. | Read threshold estimation systems and methods using deep learning |
US11393539B2 (en) * | 2020-11-20 | 2022-07-19 | SK Hynix Inc. | Systems and methods for determining change of read threshold voltage |
CN112558871B (zh) * | 2020-12-11 | 2022-12-20 | 成都佰维存储科技有限公司 | 闪存数据保存分析方法、装置、可读存储介质及电子设备 |
CN112634971B (zh) * | 2020-12-28 | 2024-10-11 | 合肥大唐存储科技有限公司 | 一种确定nand闪存读取电压的方法及装置 |
KR20220103227A (ko) | 2021-01-14 | 2022-07-22 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 저장 장치, 및 그것의 리드 방법 |
TWI777519B (zh) * | 2021-04-26 | 2022-09-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
CN117393025B (zh) * | 2023-12-08 | 2024-03-15 | 杭州阿姆科技有限公司 | 生成符合nand数据特征带软判决信息的数据的方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080059868A1 (en) * | 2004-12-21 | 2008-03-06 | Tyco Telecommunications (Us) Inc. | System and Method for Forward Error Correction Decoding Using Soft Information |
WO2008121577A1 (en) * | 2007-03-31 | 2008-10-09 | Sandisk Corporation | Soft bit data transmission for error correction control in non-volatile memory |
CN102034547A (zh) * | 2009-10-05 | 2011-04-27 | 株式会社东芝 | 存储器系统以及对存储器系统的控制方法 |
CN102394113A (zh) * | 2011-11-14 | 2012-03-28 | 清华大学 | 一种应用于快闪存储器中的动态ldpc纠错码方法 |
US20140208189A1 (en) * | 2013-01-21 | 2014-07-24 | Micron Technology, Inc. | Determining soft data using a classification code |
CN104052498A (zh) * | 2013-03-15 | 2014-09-17 | 三星电子株式会社 | 最优化对数似然比的方法以及纠错方法和设备 |
CN104750571A (zh) * | 2013-12-30 | 2015-07-01 | 慧荣科技股份有限公司 | 用以进行错误纠正的方法、存储装置与存储装置的控制器 |
CN104937667A (zh) * | 2012-12-19 | 2015-09-23 | 西部数据技术公司 | 对数似然比和针对数据存储系统的集中的对数似然比生成 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8947929B1 (en) * | 2008-11-06 | 2015-02-03 | Marvell International Ltd. | Flash-based soft information generation |
KR101605381B1 (ko) * | 2009-09-28 | 2016-03-23 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이를 구비하는 비휘발성 메모리 시스템 |
US8627175B2 (en) * | 2010-09-27 | 2014-01-07 | Seagate Technology Llc | Opportunistic decoding in memory systems |
US8665650B2 (en) * | 2011-02-18 | 2014-03-04 | Marvell World Trade Ltd. | Reliability metrics management for soft decoding |
US8713380B2 (en) * | 2011-05-03 | 2014-04-29 | SanDisk Technologies, Inc. | Non-volatile memory and method having efficient on-chip block-copying with controlled error rate |
US8838883B2 (en) * | 2012-04-13 | 2014-09-16 | Sandisk Technologies Inc. | System and method of adjusting a programming step size for a block of a memory |
US9645177B2 (en) * | 2012-05-04 | 2017-05-09 | Seagate Technology Llc | Retention-drift-history-based non-volatile memory read threshold optimization |
US9235346B2 (en) | 2012-05-04 | 2016-01-12 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Dynamic map pre-fetching for improved sequential reads of a solid-state media |
US9209835B2 (en) * | 2013-11-27 | 2015-12-08 | Seagate Technology Llc | Read retry for non-volatile memories |
US9176815B2 (en) * | 2013-11-28 | 2015-11-03 | Seagate Technology Llc | Flash channel with selective decoder likelihood dampening |
US9633740B1 (en) * | 2016-02-11 | 2017-04-25 | Seagate Technology Llc | Read retry operations where likelihood value assignments change sign at different read voltages for each read retry |
US9252817B2 (en) * | 2014-01-10 | 2016-02-02 | SanDisk Technologies, Inc. | Dynamic log-likelihood ratio mapping for error correcting code decoding |
KR102285994B1 (ko) * | 2014-05-13 | 2021-08-06 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법 |
US9329935B2 (en) * | 2014-05-19 | 2016-05-03 | Seagate Technology Llc | Method to dynamically update LLRs in an SSD drive and/or controller |
US9406377B2 (en) * | 2014-12-08 | 2016-08-02 | Sandisk Technologies Llc | Rewritable multibit non-volatile memory with soft decode optimization |
US10290358B2 (en) * | 2016-07-08 | 2019-05-14 | Seagate Technology Llc | Independent read threshold voltage tracking for multiple dependent read threshold voltages using syndrome weights |
US10388368B2 (en) * | 2017-10-31 | 2019-08-20 | Seagate Technology Llc | Adaptive read threshold voltage tracking with charge leakage mitigation using charge leakage settling time |
-
2015
- 2015-11-30 CN CN201510852721.XA patent/CN106816179B/zh active Active
-
2016
- 2016-05-11 EP EP16869553.4A patent/EP3358569B1/en active Active
- 2016-05-11 WO PCT/CN2016/081723 patent/WO2017092239A1/zh unknown
-
2018
- 2018-04-27 US US15/965,424 patent/US10691535B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080059868A1 (en) * | 2004-12-21 | 2008-03-06 | Tyco Telecommunications (Us) Inc. | System and Method for Forward Error Correction Decoding Using Soft Information |
WO2008121577A1 (en) * | 2007-03-31 | 2008-10-09 | Sandisk Corporation | Soft bit data transmission for error correction control in non-volatile memory |
CN102034547A (zh) * | 2009-10-05 | 2011-04-27 | 株式会社东芝 | 存储器系统以及对存储器系统的控制方法 |
CN102394113A (zh) * | 2011-11-14 | 2012-03-28 | 清华大学 | 一种应用于快闪存储器中的动态ldpc纠错码方法 |
CN104937667A (zh) * | 2012-12-19 | 2015-09-23 | 西部数据技术公司 | 对数似然比和针对数据存储系统的集中的对数似然比生成 |
US20140208189A1 (en) * | 2013-01-21 | 2014-07-24 | Micron Technology, Inc. | Determining soft data using a classification code |
CN104052498A (zh) * | 2013-03-15 | 2014-09-17 | 三星电子株式会社 | 最优化对数似然比的方法以及纠错方法和设备 |
CN104750571A (zh) * | 2013-12-30 | 2015-07-01 | 慧荣科技股份有限公司 | 用以进行错误纠正的方法、存储装置与存储装置的控制器 |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107153507A (zh) * | 2016-03-03 | 2017-09-12 | 北京兆易创新科技股份有限公司 | 一种基于NAND Flash的数据读取装置和方法 |
CN107861834A (zh) * | 2017-11-06 | 2018-03-30 | 华中科技大学 | 一种基于错误预检测技术提升固态硬盘读性能的方法 |
CN108052414A (zh) * | 2017-12-28 | 2018-05-18 | 湖南国科微电子股份有限公司 | 一种提升ssd工作温度范围的方法及系统 |
CN109032524A (zh) * | 2018-07-26 | 2018-12-18 | 浪潮电子信息产业股份有限公司 | 一种坏块标记的方法以及相关装置 |
CN109240615B (zh) * | 2018-08-30 | 2021-10-15 | 浪潮电子信息产业股份有限公司 | 一种固态硬盘的数据读取方法、装置及设备 |
CN109240615A (zh) * | 2018-08-30 | 2019-01-18 | 浪潮电子信息产业股份有限公司 | 一种固态硬盘的数据读取方法、装置及设备 |
CN113168882A (zh) * | 2018-11-29 | 2021-07-23 | 华为技术有限公司 | 一种编码方法、译码方法以及存储控制器 |
CN111858137A (zh) * | 2020-07-08 | 2020-10-30 | 上海威固信息技术股份有限公司 | 一种原始比特错误率感知的读电平施加方法 |
CN111858137B (zh) * | 2020-07-08 | 2023-12-22 | 上海威固信息技术股份有限公司 | 一种原始比特错误率感知的读电平施加方法 |
CN113409837A (zh) * | 2021-06-28 | 2021-09-17 | 芯天下技术股份有限公司 | 调整读操作电压值的方法、装置、电子设备及存储介质 |
CN113571113B (zh) * | 2021-07-14 | 2023-05-09 | 深圳宏芯宇电子股份有限公司 | 目标数据的解码方法、装置、电子设备和存储装置 |
CN113571113A (zh) * | 2021-07-14 | 2021-10-29 | 深圳宏芯宇电子股份有限公司 | 目标数据的解码方法、装置、电子设备和存储装置 |
CN113805815A (zh) * | 2021-09-18 | 2021-12-17 | 中国科学院微电子研究所 | 一种用于闪存的数据恢复方法、装置及系统 |
CN113805815B (zh) * | 2021-09-18 | 2024-03-01 | 中国科学院微电子研究所 | 一种用于闪存的数据恢复方法、装置及系统 |
CN114078560A (zh) * | 2021-10-22 | 2022-02-22 | 北京得瑞领新科技有限公司 | Nand闪存芯片的纠错译码方法、存储介质及ssd设备 |
CN114078560B (zh) * | 2021-10-22 | 2022-06-17 | 北京得瑞领新科技有限公司 | Nand闪存芯片的纠错译码方法、存储介质及ssd设备 |
CN114356217A (zh) * | 2021-12-07 | 2022-04-15 | 广州致存科技有限责任公司 | 数据读取方法、存储设备和存储介质 |
CN114356217B (zh) * | 2021-12-07 | 2024-04-19 | 广州致存科技有限责任公司 | 数据读取方法、存储设备和存储介质 |
CN114407810A (zh) * | 2021-12-23 | 2022-04-29 | 惠州市德赛西威汽车电子股份有限公司 | 一种防止Flash数据读取失败的方法 |
CN114407810B (zh) * | 2021-12-23 | 2023-12-29 | 惠州市德赛西威汽车电子股份有限公司 | 一种防止Flash数据读取失败的方法 |
WO2023134132A1 (zh) * | 2022-01-13 | 2023-07-20 | 苏州浪潮智能科技有限公司 | 一种提高数据读取的成功率的方法、装置及介质 |
CN114047887A (zh) * | 2022-01-13 | 2022-02-15 | 苏州浪潮智能科技有限公司 | 一种提高数据读取的成功率的方法、装置及介质 |
CN116431382A (zh) * | 2023-06-12 | 2023-07-14 | 深圳大普微电子科技有限公司 | 纠错单元管理方法、存储控制芯片及闪存设备 |
CN116431382B (zh) * | 2023-06-12 | 2023-09-29 | 深圳大普微电子科技有限公司 | 纠错单元管理方法、存储控制芯片及闪存设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3358569B1 (en) | 2021-07-28 |
EP3358569A1 (en) | 2018-08-08 |
WO2017092239A1 (zh) | 2017-06-08 |
US20180246782A1 (en) | 2018-08-30 |
CN106816179B (zh) | 2020-12-25 |
EP3358569A4 (en) | 2018-11-21 |
US10691535B2 (en) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106816179A (zh) | 一种闪存纠错方法和装置 | |
US7797611B2 (en) | Creating an error correction coding scheme and reducing data loss | |
US10521292B2 (en) | Error correction code unit, self-test method and associated controller applied to flash memory device for generating soft information | |
CN101635158B (zh) | 编码和/或解码系统数据的方法、装置、系统和体系结构 | |
US10447301B2 (en) | Optimal LDPC bit flip decision | |
KR101618925B1 (ko) | 고착 고장을 갖는 메모리 셀에 비트를 저장하기 위한 기법 | |
US8930798B2 (en) | Data encoding in solid state storage devices | |
US8656263B2 (en) | Trellis-coded modulation in a multi-level cell flash memory device | |
US10860420B2 (en) | Method and system for mitigating read disturb impact on persistent memory | |
CN106874140B (zh) | 数据存储方法及装置 | |
CN102394114B (zh) | 具有自适应纠错能力的bch码纠错方法 | |
CN103336727B (zh) | 对nand闪存存储设备进行数据操作的方法 | |
JP2013524609A5 (zh) | ||
CN112068778B (zh) | 用于保持从存储阵列中读取的数据的完整性的方法和设备 | |
US20190138390A1 (en) | Data protection techniques for a non-volatile memory array | |
US20180203625A1 (en) | Storage system with multi-dimensional data protection mechanism and method of operation thereof | |
CN102982849B (zh) | 用于数据存储的ecc解码控制方法 | |
US8386882B2 (en) | Set partitioning and multilevel coding | |
US20170161141A1 (en) | Method and apparatus for correcting data in multiple ecc blocks of raid memory | |
US8937778B1 (en) | Methods and apparatus for performing track-level based data coding | |
US10783035B1 (en) | Method and system for improving throughput and reliability of storage media with high raw-error-rate | |
CN112256473A (zh) | 一种分布式存储系统自适应纠错方法 | |
CN108170554B (zh) | 一种nand的数据编码方法和装置 | |
US6615384B1 (en) | Encoding/decoding method and apparatus and disk storage device | |
CN112133362A (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 |