CN113805815B - 一种用于闪存的数据恢复方法、装置及系统 - Google Patents

一种用于闪存的数据恢复方法、装置及系统 Download PDF

Info

Publication number
CN113805815B
CN113805815B CN202111110006.0A CN202111110006A CN113805815B CN 113805815 B CN113805815 B CN 113805815B CN 202111110006 A CN202111110006 A CN 202111110006A CN 113805815 B CN113805815 B CN 113805815B
Authority
CN
China
Prior art keywords
data
read voltage
voltage
read
error correction
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
CN202111110006.0A
Other languages
English (en)
Other versions
CN113805815A (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.)
Institute of Microelectronics of CAS
Original Assignee
Institute of Microelectronics of CAS
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 Institute of Microelectronics of CAS filed Critical Institute of Microelectronics of CAS
Priority to CN202111110006.0A priority Critical patent/CN113805815B/zh
Publication of CN113805815A publication Critical patent/CN113805815A/zh
Application granted granted Critical
Publication of CN113805815B publication Critical patent/CN113805815B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/1048Adding 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/26Sensing or reading circuits; Data output circuits
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • 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

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 Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本申请公开了一种用于闪存的数据恢复方法、装置及系统,闪存中存储有存储数据和校验信息,其中在闪存中写入数据之前,可以对存储数据进行分解得到分解数据,根据分解数据可以得到校验信息。在进行数据的读取时,可以基于第一读电压对闪存进行读取得到第一原始数据,对第一原始数据进行ECC译码和纠错得到第一纠错数据,利用第一原始数据和第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,无需传统重读纠错方法所需的额外读操作即可确定闪存读操作所需要的读电压,有效降低了原始误码率。

Description

一种用于闪存的数据恢复方法、装置及系统
技术领域
本申请数据处理技术领域,尤其涉及一种用于闪存的数据恢复方法、装置及系统。
背景技术
闪存(Flash)尤其是NAND闪存是非挥发存储器的一种,被广泛的应用于手机、笔记本电脑、云存储等存储领域,闪存的基本功能是保存数据,保证写入的数据和读出的数据的一致性是存储系统的基本要求。差错控制编码(Error Correcting Code,ECC)可以纠正读出数据的错误,是保证写入数据和读出数据的一致性,提高存储系统可靠性的重要手段。但ECC也有一定的纠错范围,如果读出数据的原始误码率较高,将会超出差错控制编码的纠错能力,无法正确的恢复出写入的数据。
数据保持特性是影响NAND闪存数据存储可靠性的重要特征,在数据存储过程中,闪存会受到数据保持噪声的影响,当数据在闪存中存储一段时间后,存储在存储单元的电荷将会泄漏,闪存的阈值电压分布态(state)将会向阈值电压较小的一侧偏移,如果使用在数据存储初期使用的读电压进行读取操作,将会出现读出数据的误码率超过ECC纠错能力的问题。
参考图1所示,为目前一种数据存储示意图,横坐标为电压(VT),纵坐标为存储单元的数量,虚线表示数据写入到闪存中的零时刻存储单元的阈值电压所形成的阈值电压分布态,实线表示经过一段存储时间后,闪存的阈值电压分布态的变化,从图中可以看出,经过一段存储时间后,由于存储单元所保持的电荷泄漏,导致闪存的阈值电压分布态向阈值电压较小的一侧偏移,即分布态左移,如果这时候使用数据写入零时刻所使用的读电压Rread对闪存进行读操作,将会导致读出数据的误码率较高(图中阴影部分)。很有可能无法通过ECC校验,无法得到正确的存储数据。
数据重读纠错(read retry)是解决NAND闪存数据分布态左移的有效方法之一。重读纠错算法通过调整闪存的读电压来降低读出数据的原始误码率,放置一段时间以后由于分布态左移Rread不再是有效的读电压,改变Rread这个读电压,例如改变为RO,能够将数据正确的读出。
但传统重读纠错算法需要在闪存正常读出数据所需要的读操作的基础上额外增加读操作来查找最佳读电压,额外增加的读操作将会降低存储系统的读出数据的性能。因此,如何在不需要额外增加读操作的前提下有效的对闪存数据进行恢复,以降低原始误码率是一项亟待解决的问题。
发明内容
有鉴于此,本申请提供了一种用于闪存的数据恢复方法及系统,无需传统重读纠错方法所需的额外读操作即可确定闪存读操作所需要的读电压,从而对闪存数据进行恢复,有效降低了原始误码率。
本申请提供了一种用于闪存的数据恢复方法,所述闪存中存储有存储数据和校验信息,所述校验信息与所述存储数据的分解数据一一对应,且所述校验信息根据对应的所述分解数据得到,所述分解数据通过对所述存储数据分解得到,且与所述阈值电压分布态一一对应;
所述方法包括:
基于第一读电压对所述闪存进行读取,得到第一原始数据;
对所述第一原始数据进行差错控制编码ECC译码和纠错得到第一纠错数据,所述第一纠错数据包括第一信息数据和第一校验数据;所述第一信息数据对应多个所述分解数据中的一个,所述第一校验数据对应多个所述校验信息中的一个;
利用所述第一原始数据和所述第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压;所述第一读电压和所述第三读电压为所述闪存的两个读电压,且所述第一读电压小于所述第三读电压。
可选的,所述第一读电压、第二读电压、所述第三读电压为依次相邻的四个阈值电压分布态两两之间的读电压;所述第一读电压小于所述第二读电压,所述第二读电压小于所述第三读电压;所述利用所述第一原始数据和所述第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,包括:
基于第二读电压对所述闪存进行读取,得到第二原始数据;
对所述第二原始数据进行ECC译码和纠错得到第二纠错数据,所述第二纠错数据包括第二信息数据和第二校验数据;所述第二信息数据对应多个所述分解数据中的不同于所述第一信息数据的一个,所述第二校验数据对应多个所述校验信息中不同于所述第一校验数据的一个;
利用所述第一原始数据、所述第一纠错数据和所述第二纠错数据,对第三读电压进行补偿得到第三理论最佳读电压。
可选的,所述利用所述第一原始数据、所述第一纠错数据和所述第二纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,包括:
利用所述第一原始数据、所述第一纠错数据和所述第二纠错数据,计算得到所述第一读电压对应的第一实际最佳读电压;
根据所述第一读电压的第一偏移量,确定第三读电压的第三偏移量;所述第一偏移量为所述第一读电压与所述第一实际最佳读电压的差值;
基于所述第三偏移量对所述第三读电压进行补偿,得到第三理论最佳读电压。
可选的,所述利用所述第一原始数据、所述第一纠错数据和所述第二纠错数据,计算得到所述第一读电压对应的第一实际最佳读电压,包括:
根据第一原始数据、第一纠错数据、所述第二纠错数据,确定阈值电压介于所述第一读电压和所述第二读电压之间的第一部分存储单元的误码状态;
根据所述误码状态确定所述第一读电压对应的第一实际最佳读电压,以降低所述第一部分存储单元的误码率。
可选的,所述第一读电压和所述第三读电压为依次相邻的三个阈值电压分布态两两之间的读电压;所述利用所述第一原始数据和所述第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,包括:
根据所述第一原始数据和所述第一纠错数据,得到所述第一读电压两侧的阈值电压分布态之间的交叠错误的误码率;
根据所述第一读电压两侧的阈值电压分布态之间的交叠错误的误码率与所述第三读电压的第三偏移量之间的函数关系,确定所述第三读电压的第三偏移量;
基于所述第三偏移量对所述第三读电压进行补偿,得到第三理论最佳读电压。
可选的,所述方法还包括:
基于第三理论最佳读电压对所述闪存进行读取,得到第三原始数据;
对所述第三原始数据进行ECC译码和纠错得到第三纠错数据,所述第三纠错数据包括第三信息数据和第三校验信息;所述第三信息数据对应多个所述分解数据中不同于所述第一信息数据和所述第二信息数据的一个,所述第三校验信息对应多个所述校验信息中不同于所述第一校验数据和所述第二校验数据的一个;
利用所述第一原始数据、所述第二纠错数据和所述第三纠错数据,对第四读电压进行补偿得到第四理论最佳读电压;所述第三读电压、所述第四读电压为依次相邻的三个阈值电压分布态两两之间的读电压,所述第三读电压小于所述第四读电压。
可选的,所述第二读电压通过对第二原始读电压补偿得到;或,所述第一读电压通过对第一原始读电压补偿得到,且所述第二读电压通过对第二原始读电压补偿得到。
本申请实施例还提供了一种用于闪存的数据恢复装置,所述闪存中存储有存储数据和校验信息,所述校验信息与所述存储数据的分解数据一一对应,且所述校验信息根据对应的所述分解数据得到,所述分解数据通过对所述存储数据分解得到,且与所述阈值电压分布态一一对应;
所述装置包括:
数据读取单元,用于基于第一读电压对所述闪存进行读取,得到第一原始数据;
ECC译码纠错单元,用于对所述第一原始数据进行差错控制编码ECC译码和纠错得到第一纠错数据,所述第一纠错数据包括第一信息数据和第一校验数据;所述第一信息数据对应多个所述分解数据中的一个,所述第一校验数据对应多个所述校验信息中的一个;
补偿单元,用于利用所述第一原始数据和所述第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压;所述第一读电压和所述第三读电压为所述闪存的两个读电压,且所述第一读电压小于所述第三读电压。
可选的,
所述数据读取单元,还用于基于第二读电压对所述闪存进行读取,得到第二原始数据;
所述ECC译码纠错单元,还用于对所述第二原始数据进行ECC译码和纠错得到第二纠错数据,所述第二纠错数据包括第二信息数据和第二校验数据;所述第二信息数据对应多个所述分解数据中的不同于所述第一信息数据的一个,所述第二校验数据对应多个所述校验信息中不同于所述第一校验数据的一个;
所述补偿单元,具体用于利用所述第一原始数据、所述第一纠错数据和所述第二纠错数据,对第三读电压进行补偿得到第三理论最佳读电压。
可选的,所述补偿单元包括:
读电压计算单元,用于利用所述第一原始数据、所述第一纠错数据和所述第二纠错数据,计算得到所述第一读电压对应的第一实际最佳读电压;
偏移量计算单元,用于根据所述第一读电压的第一偏移量,确定第三读电压的第三偏移量;所述第一偏移量为所述第一读电压与所述第一实际最佳读电压的差值;
补偿子单元,用于基于所述第三偏移量对所述第三读电压进行补偿,得到第三理论最佳读电压。
可选的,所述读电压计算单元包括:
误码状态确定单元,用于根据第一原始数据、第一纠错数据、所述第二纠错数据,确定阈值电压介于所述第一读电压和所述第二读电压之间的第一部分存储单元的误码状态;
读电压计算子单元,用于根据所述误码状态确定所述第一读电压对应的第一实际最佳读电压,以降低所述第一部分存储单元的误码率。
可选的,所述补偿单元包括:
误码率确定单元,用于根据所述第一原始数据和所述第一纠错数据,得到所述第一读电压两侧的阈值电压分布态之间的交叠错误的误码率;
偏移量计算单元,用于根据所述第一读电压两侧的阈值电压分布态之间的交叠错误的误码率与所述第三读电压的第三偏移量之间的函数关系,确定所述第三读电压的第三偏移量;所述第一读电压和所述第三读电压为依次相邻的三个阈值电压分布态两两之间的读电压;
补偿子单元,用于基于所述第三偏移量对所述第三读电压进行补偿,得到第三理论最佳读电压。
可选的,
所述数据读取单元,还用于基于第三理论最佳读电压对所述闪存进行读取,得到第三原始数据;
所述ECC译码纠错单元,还用于对所述第三原始数据进行ECC译码和纠错得到第三纠错数据,所述第三纠错数据包括第三信息数据和第三校验信息;所述第三信息数据对应多个所述分解数据中不同于所述第一信息数据和所述第二信息数据的一个,所述第三校验信息对应多个所述校验信息中不同于所述第一校验数据和所述第二校验数据的一个;
所述补偿单元,还用于利用所述第一原始数据、所述第二纠错数据和所述第三纠错数据,对第四读电压进行补偿得到第四理论最佳读电压;所述第三读电压、所述第四读电压为依次相邻的三个阈值电压分布态两两之间的读电压,所述第三读电压小于所述第四读电压。
可选的,所述第二读电压通过对第二原始读电压补偿得到;或,所述第一读电压通过对第一原始读电压补偿得到,且所述第二读电压通过对第二原始读电压补偿得到。
本申请实施例提供了一种用于闪存的数据恢复系统,包括闪存和所述的用于闪存的数据恢复装置。
综上所述,本申请公开了一种用于闪存的数据恢复方法、装置及系统,闪存中存储有存储数据和校验信息,其中在闪存中写入数据之前,可以对存储数据进行分解得到分解数据,分解数据与阈值电压分布态一一对应,根据分解数据可以得到与分解数据对应的校验信息,校验信息与分解数据一一对应,这样可以将得到的存储数据和校验信息存到闪存中。
在进行数据的读取时,可以基于第一读电压对闪存进行读取,得到第一原始数据,对第一原始数据进行ECC译码和纠错得到第一纠错数据,第一纠错数据包括第一信息数据和第一校验数据,第一信息数据对应多个分解数据中的一个,第一校验数据对应多个校验信息中的一个,利用第一原始数据和第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,第一读电压和第三读电压为闪存的两个读电压,且第一读电压小于第三读电压。
也就是说,第一原始数据和第一纠错数据可以体现第一原始数据的误码率,结合第二纠错数据可以体现第一读电压的偏移量,第三读电压的偏移量可以根据第一读电压的偏移量确定,因此可以利用第一原始数据和第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,从而减小第三读电压的偏移量,本申请实施例通过数据编码存储和纠错实现读电压的补偿,无需传统重读纠错方法所需的额外读操作即可确定闪存读操作所需要的读电压,从而对闪存数据进行恢复,相对于现有技术有效降低了原始误码率,节省了从闪存中读取数据的时间,提高读取数据的性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为目前的一种数据存储示意图;
图2为本申请实施例提供的一种存储数据的示意图;
图3为本申请实施例中格雷码的示意图;
图4为本申请实施例中分解数据d1-d7的示意图;
图5为本申请实施例中奇偶校验矩阵H的示意图;
图6为本申请实施例中分解数据和校验信息的示意图;
图7为本申请实施例中组合数据的示意图;
图8为本申请实施例提供的一种用于闪存的数据恢复方法的流程图;
图9为本申请实施例中高斯分布的示意图;
图10为本申请实施例中一种误码率和电压差值之间的函数关系示意图;
图11为本申请实施例中第一偏差值和第三偏差值之间的函数关系示意图;
图12为本申请实施例提供的一种阈值电压分布的交叠示意图;
图13为本申请实施例中另一种误码率和电压差值之间的函数关系示意图;
图14为本申请实施例中数据恢复的效果示意图;
图15为本申请实施例提供的一种用于闪存的数据恢复装置的结构框图;
图16为本申请实施例提供的一种用于闪存的数据恢复系统的结构框图;
图17为本申请实施例提供的另一种用于闪存的数据恢复系统的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解本申请实施例提供的读取方法,首先介绍本申请实施例的具体应用场景。非易失存储器包括多个以阵列排列的用于存储数据的存储单元。其中,存储单元分为若干个块(block),每个块又分为若干个页(page),对非易失性存储器的读写、验证、清除等操作均可以以页为单位进行。
非易失性存储器包括存储单元阵列、控制逻辑、页缓存器(Page Buffer,PB)、字线电压产生器和字线译码器,存储单元阵列中的每列存储单元通过一条位线(Bit Line,BL)连接页缓存器,每行存储单元的栅极通过一条字线(Word Line,WL)连接字线译码器。控制逻辑通过控制字线电压产生器和页缓存器。在进行读取操作时,控制逻辑通过控制字线电压产生器在选中的字线上施加读取电压,在未选中的字线上施加读通过电压后,控制页缓存器根据不同的读取操作方法对相应位线上存储单元存储的数据进行感测,从而读取出非易失性存储器存储的数据。
非易失性存储器主要分为SLC(Single-Level Cell)、MLC(Milti-Level Cell)和TLC(Trinary-Level Cell)三种类型,SLC即1bit/cell,每个存储单元存储1比特数据,存储单元只存在两种存储状态:“0”和“1”。MLC,即2bit/cell,每个存储单元存储2比特数据,存储单元存在四种存储状态:“00”、“01”、“10”、“11”。TLC,即3bit/cell,每个存储单元存储3比特数据,存储单元存在八种存储状态:“000”、“001”、“010”、“011”、“100”、“101”、“110”、“111”。可以理解非易失性存储器的存储单元也可以存储多余3比特数据。
为了确定存储单元的存储状态,从而读出其存储的数据,对SLC型的非易失性存储器而言,在选中的字线上执行一次读取操作在字线上施加一次读取电压后感测数据,即可将对应的存储单元中存储的数据读出。但对于MLC和TLC等每存储单元存储多比特数据的非易失性存储器而言,由于每个存储单元的存储状态不止两种,因此需要对同一存储单元进行连续多次的读取操作在字线上施加多个不同大小的读取电压后感测存储的数据,才可以确定存储单元的实际存储状态,将该非易失性存储器存储的数据读出。
然而在数据存储过程中,当数据在闪存中存储一段时间后,存储在存储单元的电荷将会泄露,闪存中的阈值电压分布态将会向阈值电压较小的一侧偏移,如果使用在数据存储初期使用的读电压进行读取操作,将会出现读出数据的误码率较高,甚至超过ECC纠错能力的问题。
数据重读纠错是解决NAND闪存数据分布态左移的有效方法之一,重读纠错算法通过调整闪存的读电压来降低读出数据的原始误码率,参考图1所示,放置一段时间以后由于分布态左移,读电压可以改变为RO,能够将数据正确的读出。
但是传统重读纠错算法需要在闪存正常读出数据所需要的读操作的基础上额外增加读操作来查找最佳读电压,额外增加的读操作将会降低存储系统的读出数据的性能。例如通过阶梯式下降的读电压进行数据的读取,从而确定出最佳读电压,因此需要增加额外的读操作。
如何在不需要额外增加读操作的前提下确定准确的最佳读电压,从而有效的对闪存数据进行恢复,以降低原始误码率是一项亟待解决的问题。
为了解决以上技术问题,本申请实施例提供了一种用于闪存的数据恢复方法及系统,闪存中存储有存储数据和校验信息,其中在闪存中写入数据之前,可以对存储数据进行分解得到分解数据,分解数据与阈值电压分布态一一对应,根据分解数据可以得到与分解数据对应的校验信息,校验信息与分解数据一一对应,这样可以将得到的存储数据和校验信息存到闪存中。
在进行数据的读取时,可以基于第一读电压对闪存进行读取,得到第一原始数据,对第一原始数据进行ECC译码和纠错得到第一纠错数据,第一纠错数据包括第一信息数据和第一校验数据,第一信息数据对应多个分解数据中的一个,第一校验数据对应多个校验信息中的一个,利用第一原始数据和第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,第一读电压和第三读电压为闪存的两个读电压,且第一读电压小于第三读电压。
也就是说,第一原始数据和第一纠错数据可以体现第一原始数据的误码率,结合第二纠错数据可以体现第一读电压的偏移量,第三读电压的偏移量可以根据第一读电压的偏移量确定,因此可以利用第一原始数据和第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,从而减小第三读电压的偏移量,本申请实施例通过数据编码存储和纠错实现读电压的补偿,无需传统重读纠错方法所需的额外读操作即可确定闪存读操作所需要的读电压,从而对闪存数据进行恢复,相对于现有技术有效降低了原始误码率,节省了从闪存中读取数据的时间,提高读取数据的性能。
基于以上思想,为使本申请的上述目的、特征、优点能够更加明显易懂,下面结合附图对本申请的具体实施方式进行详细说明。
首先,需要说明的是,本申请实施例提供的非易失性存储器的读取方法、装置及相关设备,不仅适用于NAND闪存存储器,还适用于磁阻存储器(Magnetoresistive RandomAccess Memory,MRAM)、相变存储器(Phase-Change Random Access Memory,PCRAM)、相变存储器和开关(Phase-Change Random Access Memory and a switch,PCMS)、阻性存储器、铁电存储器(ferroelectric RAM,FRAM)、自旋转移转矩存储器(Spin Torque Transfer,STT)、热辅助的开关存储器(TAS)、千足虫存储器(Millipede memory)、浮动结栅存储器(FJG RAM)、电池备份RAM等其他非易失性存储器。该非易失性存储器中每个存储单元可存储3比特甚至更多数据。
闪存中存储有待读取数据,待读取数据可以包括存储数据和校验信息,存储数据为需要存储到闪存中且需要读取的数据,校验信息用于对存储数据进行恢复。存储数据可以分解得到分解数据,具体的,可以对存储数据进行编码得到多个分解数据,编码方式与闪存的存储类型相关,分解数据的数量也与闪存的存储类型相关,分解数据与闪存的阈值电压分布态一一对应。分解数据通过单次读操作即可读出。
根据分解数据可以得到多个校验信息,校验信息与分解数据一一对应。也就是说,在对闪存进行读取后,利用与编码方式对应的译码方式,可以得到与分解数据对应的读取数据,以及与校验信息对应的读取数据,从而可以利用校验信息对于其对应的分解数据进行纠错,在每次得到读取数据后,可以单独进行纠错得到该部分数据的纠错结果,进而根据纠错结果确定后续的最佳读电压。
下面以TLC NAND闪存中的数据为例对存储数据和校验信息进行示例性说明。
TLC NAND闪存中的数据可以包括(dL,dM,dU)对应的3个页(page)的数据,参考图2所示,为本申请实施例提供的一种存储数据的示意图,其中dL中的数据包括“11000011111”,dM中的数据包括“01100111001”,dU中的数据包括“11010110100”。
由于TLC NAND中可以包括八种存储状态,对应七个阈值电压分布态(P1,P2,…,P7),可以顺利读取这八种存储状态,因此可以对存储数据进行分解,得到与阈值电压分布态对应的七组分解数据(d1,d2,…,d7)。
举例来说,可以利用格雷码(Gray Code)的编码方式确定分解数据,并按照既定的方式写入TLC闪存中,参考图3所示,为本申请实施例中格雷码的示意图,其中七个阈值电压分布态(P1,P2,…,P7)分别可以利用七个读电压(R1,R2,…,R7)的对应的七次读操作得到,将七个阈值电压分布态(P1,P2,…,P7)以及基态E(P0)对应到存储数据中,利用(E,P1,P2,…,P7)态(state)对应表示存储数据,参考图2所示。
利用格雷码编码得到七个分解数据后,需要在利用七个读电压(R1,R2,…,R7)进行七次读操作均未发生读错误的话,七组分解数据(d1,d2,…,d7)可以通过七个读电压(R1,R2,…,R7)的对应的七次读操作得到。也就是说,如果读电压Ri对应的读操作不发生读错误的话,经过该读操作可以得到di,其中,i=1,2,…,7。
这样,d1可以通过读电压R1读出,如果图2中的存储数据(dL,dM,dU)用阈值电压分布位于R1左侧的E态表示,则在d1中被分解为1,如果图2中的存储数据(dL,dM,dU)用阈值电压分布位于R1右侧的(P1,P2,…,P7)表示,则在d1中被分解为0,则存储数据(dL,dM,dU)中第2个和第7个数据用E态表示,则d1可以表示为“01000010000”;d3可以通过读电压R3读出,如果图3中的存储数据(dL,dM,dU)用阈值电压位于R3左侧的(E,P1,P2)表示,则在d3中被分解为1,如果图2中的存储数据(dL,dM,dU)用阈值电压位于R3右侧的(P3,P4,…,P7)表示,则在d3中被分解为0,则d3可以表示为“01010110000”。参考图4所示,为本申请实施例中分解数据d1-d7的示意图。
利用d1-d7可以还原存储数据(dL,dM,dU),利用以上计算方式得到的d1-d7,其还原为存储数据(dL,dM,dU)的方式可以具体为:
在得到分解数据后,可以为分解数据生成对应的校验信息(c1,c2,…,c7),可以通过编码矩阵与分解数据的乘积得到对应的校验信息,即(di,ci)=GT·di,而编码矩阵GT可以表示为其中,A可以通过线性分组码的奇偶校验矩阵H确定,参考图5所示,为本申请实施例中奇偶校验矩阵H的示意图。得到的(di,ci)为7行15列的矩阵,其中,第i行为(di,ci),参考图6所示,为本申请实施例中分解数据和校验信息的示意图,其中,di为分解数据,ci为校验信息。
在得到校验信息后,可以将存储数据(dL,dM,dU)和校验信息(c1,c2,…,c7)组合,得到组合数据(DL,DM,DU),其中,令ci中的1存储在E态(格雷码是111),将ci中的0存储在P7态(格雷码是101),便于后续校验信息的获取,参考图7所示,为本申请实施例中组合数据的示意图。得到的组合数据可以写入TLC NAND闪存中,作为待读取数据,以便后续读取。
参考图8所示,为本申请实施例提供的一种用于闪存的数据恢复方法的流程图,闪存中存储有存储数据和校验信息,则该方法可以包括:
S101,基于第一读电压对闪存进行读取,得到第一原始数据。
在对闪存进行读取时,可以先利用第一读电压对闪存进行读取,得到第一原始数据,由于闪存中存储有存储数据和校验信息,读取到的第一原始数据中包括可能存在错误的码字,且可以利用校验信息进行恢复。
其中,第一读电压可以为闪存的多个阈值电压分布态中相邻的两个阈值电压分布态之间的读电压,在闪存中包括依次相邻的n个阈值电压分布态时,读电压也可以包括依次相邻的n个,则第一读电压可以表示为n个依次相邻的n个读电压中的第i个,表示为Ri,i可以为1至n-1,n为大于或等于3的自然数。举例来说,TLC NAND闪存中的七个阈值电压分布态P1-P7对应读电压R1-R7,则第一读电压Ri可以为R1-R6中的任意一个。
第一读电压可以为闪存厂商提供的原始读电压,也可以是通过对第一原始读电压补偿得到的最佳读电压,补偿的方式可以参考以下S105。以TLC NAND闪存为例,第一读电压可以为未经补偿的R1-R6中的任意一个,或经过补偿的R3-R6中的任意一个。
当利用第一读电压读取各存储单元时,阈值电压高于第一读电压的存储单元将呈现关闭状态,阈值电压低于第一读电压的存储单元将呈现打开状态,页缓存器可以感测这些不同的状态,并且被控制逻辑读取。
举例来说,在第一读电压为E(P0)态和P1态之间的读电压R1时,对闪存进行读取可以得到第一原始数据(d′1,c′1),其中第一原始数据的d′1对应第一分解数据,c′1对应第一校验信息。
S102,对第一原始数据进行ECC译码和纠错得到第一纠错数据。
由于闪存中的存储数据通过单次读取可以被读取出分解数据,分解数据又对应有校验信息,则可以利用读取出的校验信息对第一原始数据进行解码和纠错,从而得到第一纠错数据。第一纠错数据包括第一信息数据和第一校验数据,第一信息数据对应多个分解数据中的一个,第一校验数据对应对多个校验信息中的一个。
在第一原始数据为(d′1,c′1)时,对第一原始数据(d′1,c′1)进行译码和纠错得到的第一纠错数据可以为(d1,c1),其中d1与第一分解数据一致,c1与第一校验信息一致。其中第一原始数据为带有错误码字的数据,而第一纠错数据为不带有错误码字的数据,为准确的读取信息,第一原始数据和第二纠错数据可以体现第一读电压两侧的相邻的两个阈值电压分布态的错误信息。
S103,利用第一原始数据和第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压。
本申请实施例中,第一读电压和第三读电压可以为闪存的两个读电压,且第一读电压小于第三读电压,第一读电压和第三读电压可以为相邻的读电压,也可以为不相邻的读电压。在第一读电压为第i个读电压,表示为Ri时,第三读电压可以为Ri+1、Ri+2等,例如第一读电压为闪存的第一个读电压,表示为R1时,第三读电压可以为第二个读电压R2,也可以为R3、R4、R5、R6、R7等,第一读电压为闪存的第二个读电压R2时,第三读电压为第三个读电压R3,也可以为其他读电压,以此类推。
作为一种可能的实施方式,在第一读电压和第三读电压为不相邻的读电压,且第一读电压、第二读电压、第三读电压为依次相邻的四个阈值电压分布态两两之间的读电压,且第一读电压小于第二读电压,第二读电压小于第三读电压时,也就是说,第一读电压和第三读电压之间可以间隔一个读电压,则TLC NAND闪存中的七个阈值电压分布态P1-P7对应读电压R1-R7中,第一读电压Ri可以为R1-R5中的任意一个,第二读电压Ri+1可以为R2-R6中的任意一个,第三读电压Ri+2可以为R3-R7中的任意一个。此时,S103可以具体为:
S1031,基于第二读电压对闪存进行读取,得到第二原始数据;
S1032,对第二原始数据进行ECC译码和纠错得到第二纠错数据;
S1033,利用第一原始数据、第一纠错数据和第二纠错数据,对第三读电压进行补偿得到第三理论最佳读电压。
在S1031中,在利用第一读电压进行读取后,可以利用第二读电压对闪存进行读取,得到第二原始数据,由于闪存中存储有存储数据和校验信息,读取到的第二原始数据中包括可能存在错误的码字,且可以利用校验信息进行恢复。
其中,第二读电压可以为闪存中多个阈值电压分布态中相邻的两个阈值电压分布态之间的读电压,第二读电压与第一读电压可以为相邻的三个阈值电压分布态中两两之间的读电压,且第二读电压大于第一读电压,也就是说,第一读电压和第二读电压的读操作,是对闪存的读电压依次增加的读操作。在闪存中包括依次相邻的n个阈值电压分布态时,读电压也可以包括依次相邻的n个,则第二读电压可以表示为n个依次相邻的n个读电压中的第i+1个,表示为Ri+1,i可以为1至n-2,n为大于或等于3的自然数。举例来说,TLC NAND闪存中的七个阈值电压分布态P1-P7对应读电压R1-R7,第二读电压Ri+1可以为R2-R6中的任意一个。
第二读电压可以为闪存厂商提供的原始读电压,也可以是通过对第二原始读电压补偿得到的最佳读电压,补偿的方式可以参考以下S1033。以TLC NAND闪存为例,第二读电压可以为未经补偿的R2-R6中的任意一个,或经过补偿的R4-R6中的任意一个。在第一读电压为经过补偿的最佳读电压时,第二读电压也为经过补偿的最佳读电压。
当利用第二读电压读取各存储单元时,阈值电压高于第二读电压的存储单元将呈现关闭状态,阈值电压低于第二读电压的存储单元将呈现打开状态,页缓存器可以感测这些不同的状态,并且被控制逻辑读取。
举例来说,在第二读电压为P1态和P2态之间的读电压R2时,对闪存进行读取可以得到第二原始数据(d′2,c′2),其中d′2对应第一分解数据,c′2对应第一校验信息。
在S1032中,由于闪存中的存储数据通过单次读取可以被读取出分解数据,分解数据又对应有校验信息,则可以利用读取出的校验信息对第二原始数据进行解码和纠错,从而得到第二纠错数据。第二纠错数据包括第二信息数据和第二校验数据,第二信息数据对应多个分解数据中不同于第一信息数据的一个,第二校验数据对应对多个校验信息中不同于第一校验数据的一个。
在第二原始数据为(d′2,c′2)时,对第二原始数据(d′2,c′2)进行译码和纠错得到的第二纠错数据可以为(d2,c2),其中d2与第二分解数据一致,c2与第二校验信息一致。其中第二原始数据为带有错误码字的数据,而第二纠错数据为不带有错误码字的数据,为准确的读出数据,第二原始数据和第二纠错数据可以体现第二读电压两侧的相邻的两个阈值电压分布态的错误信息。
在S1033中,在利用第一读电压和第二读电压对闪存进行读取后,可以利用对第一读电压的读取结果和纠错结果,以及第二读电压的读取结果和纠错结果,对第三读电压进行补偿得到第三理论最佳读电压,这是因为第一读电压读取得到的第一原始数据和第一纠错数据,可以体现第一读电压的误码信息,结合第二纠错数据可以第一读电压和第二读电压之间的阈值电压分布态的偏移情况,从而确定第一读电压的偏移情况,并推断第三读电压的偏移情况,进而补偿第三读电压,得到第三理论最佳读电压。
第三理论最佳读电压是经过优化的读电压,因此利用第三理论最佳读电压对闪存进行读取,可以得到具有较低的误码率的读取结果,从而使原本会超出ECC译码范围的读取结果变为可以进行ECC译码,在不增加额外的读取操作的前提下得到较低误码率的读取结果,有利于ECC译码。
其中,第三读电压可以为闪存中多个阈值电压分布态中相邻的两个阈值电压分布态之间的读电压,第三读电压与第二读电压可以为相邻的三个阈值电压分布态中两两之间的读电压,且第三读电压大于第二读电压,也就是说,第一读电压、第二读电压和第三读电压的读操作,是对闪存的读电压依次增加的读操作,第一读电压、第二读电压、第三读电压为依次相邻的四个阈值电压分布态中两两之间的读电压,且第一读电压小于第二读电压,第二读电压小于第三读电压。
在闪存中包括依次相邻的n个阈值电压分布态时,读电压也可以包括依次相邻的n个,则第三读电压可以表示为n个依次相邻的n个读电压中的第i+2个,可以表示为Ri+2,i可以为1至n-2,n为大于或等于3的自然数。举例来说,TLC NAND闪存中的七个阈值电压分布态P1-P7对应读电压R1-R7,第三读电压Ri+2可以为R3-R7中的任意一个。第三读电压可以为闪存厂商提供的原始读电压。
也就是说,本申请实施例中,可以利用n个依次相邻的n个读电压中的第i个读电压读取的原始数据和译码结果,以及第i+1读电压读取的原始数据和译码结果,确定Pi+1和Pi+2阈值电压分布态之间的理论最佳读电压Ri+2,从而可以利用理论最佳读电压Ri+2对闪存进行读操作和ECC译码。
之后,可以利用第三理论最佳读电压对闪存进行读取得到第三原始数据,对第三原始数据进行ECC译码和纠错得到第三纠错数据,第三纠错数据可以包括第三信息数据和第三校验信息,第三信息数据为多个分解数据中不同于第一信息数据和第二信息数据的数据,第三校验信息为多个校验信息中不同于第一校验信息和第二校验信息的信息。
举例来说,在第三理论最佳读电压为P2态和P3态之间的最佳读电压R3O,利用理论最佳读电压R3O对闪存进行读取,得到第三原始数据(d′3,c′3),其中,d′3对应第三分解数据,c′3对应第三校验信息。第三原始数据包括可能存在的错误的码字,经过ECC译码和纠错可以得到第三纠错数据(d3,c3),其中d3与第三分解数据一致,c3与第三校验信息一致,第三纠错数据具有较低的原始误码率。
若闪存具有大于第三读电压的第四读电压,则还可以利用第二原始数据、第二纠错数据、第三纠错数据,对第四读电压进行补偿得到第四理论最佳读电压,其中第四读电压可以为闪存中多个阈值电压分布态中相邻的两个阈值电压分布态之间的读电压,第三读电压、第四读电压为相邻的三个阈值电压分布态中两两之间的读电压,第三读电压小于第四读电压。
在闪存中包括依次相邻的n个阈值电压分布态时,读电压也可以包括依次相邻的n个,则第四读电压可以表示为n个依次相邻的n个读电压中的第i+3个,i可以为1至n-2,n为大于或等于3的自然数。举例来说,TLC NAND闪存中的七个阈值电压分布态P1-P7对应读电压R1-R7,第四读电压可以为R4-R7中的任意一个。第四读电压可以为闪存厂商提供的原始读电压。
综上,在对闪存进行读取时,可以从低阈值电压分布态到高阈值电压分布态依次读取闪存中的数据并进行ECC译码,利用低阈值电压分布态的译码结果对高阈值电压分布态的理论最佳读电压进行预测,利用理论最佳读电压进行高阈值电压分布态的读取,直到完成所有的读取闪存的读操作,从而可以利用多个读取结果还原数据。而高阈值电压分布态的偏移相较低阈值电压分布态更加明显,因此利用理论最佳读电压进行高阈值分布态的读取,可以降低读取结果的原始误码率,从而可以利用ECC译码恢复数据,且无需增加额外的读操作即可实现存储数据的读取。
需要说明的是,本申请实施例不限定对n个依次相邻的n个读电压中的第几个读电压进行预测,可以利用第1个读电压和第2个读电压对第3个理论最佳读电压进行预测,而后逐个预测其后的各个读电压,也可以不进行第3个理论最佳读电压进行预测,而是利用第3个和第4个读电压对第5个理论最佳读电压进行预测,即对至少一个读电压的理论最佳读电压进行预测即可。
下面对利用对第一读电压的读取结果和纠错结果,以及第二读电压的读取结果和纠错结果,对第三读电压进行补偿得到第三理论最佳读电压的具体方式进行说明。
本申请实施例中,可以利用第一原始数据、第一纠错数据、第二纠错数据,计算得到第一读电压对应的第一实际最佳读电压Roi1,其中第一实际最佳读电压Roi1为根据第一读电压的读取结果对第一读电压补偿后得到的最佳电压,但是第一实际最佳读电压Roi1可以不再用于读取数据,而是作为对第三读电压进行补偿的依据。
具体的,可以根据第一原始数据、第一纠错数据、第二纠错数据,确定阈值电压介于第一读电压和第二读电压之间的第一部分存储单元的误码状态,根据误码状态确定第一读电压对应的第一实际最佳读电压,以降低第一部分存储单元的误码率。
其中,可以根据第一纠错数据(di,ci)和第二纠错数据(di+1,ci+1)确定第一读电压左侧的阈值电压分布态Pi-1的存储总数Si-1,以及第二读电压左侧的阈值电压分布态Pi的存储总数Si,Si-1等于(di,ci)中1的个数减去(di-1,ci-1)中1的个数;Si等于(di+1,ci+1)中1的个数减去(di,ci)中1的个数,即:
Si-1=∑(di,ci)-∑(di-1,ci-1);
Si=∑(di+1,ci+1)-∑(di,ci)。
特别地,S0代表E(P0)态存储单元的个数,S0等于(d1,c1)中1的个数。
之后,可以利用第一原始数据和第一纠错数据,确定(di′,c′i)中1被错读成0的个数SAi,以及(di′,c′i)中0被错读成1的个数SBi。利用SAi和Si-1确定SAi的误码率,利用SBi和Si确定SBi的误码率,即:
将闪存的各个阈值电压分布建模成高斯分布,根据高斯部分的累积分布函数,可以根据PAi和PAi的值计算第一读电压与其左侧的阈值电压分布态的交点右侧的第一电压差值(也称为第一电压距离)LAi,以及第一读电压与其右侧的阈值电压分布态的较低左侧的第二电压差值(也可称为第二电压距离)LBi,在Pi左移的情况下,LBi大于LAi,说明第一读电压偏大,更靠近Pi的分布态。参考图9所示,为本申请实施例中高斯分布的示意图,参考图10所示,为本申请实施例中一种误码率和电压差值之间的函数关系示意图,具体为PBi与LBi或者PAi与LAi的函数关系示意图,其横坐标为误码率(Error Rate)PAi或PAi(即PAi or PAi),纵坐标为电压距离(Voltege Distance)LBi或LAi(即LAi or LAi),其中,以高斯分布函数中的σ为0.2724和0.1290进行图示说明,实际操作中,高斯分布的参数根据闪存类型确定。
之后,可以根据第一电压差值LAi和第二电压差值LBi计算第一实际最佳读电压Roi1,以降低第一读电压产生的原始误码率。举例来说,第一实际最佳读电压Roi1可以根据以下公式确定:
本申请实施例中,在确定第一实际最佳读电压Roi1后,第一实际最佳读电压Roi1与第一读电压Ri具有一定的差值,可以将第一读电压Ri与第一实际最佳读电压Roi1的差值作为第一偏差值△Vi,即△Vi=Ri-Roi1
发明人经过研究发现,第一偏差值△Vi和第三偏差值△Vi+2具有函数关系,函数关系根据NAND闪存的特性确定,因此可以根据第一偏差值△Vi确定第三读电压的第三偏差值△Vi+2。以TLC为例,第三偏差值△Vi+2与第一偏差值△Vi呈现一次函数,参考图11所示,为本申请实施例中第一偏差值和第三偏差值之间的函数关系示意图,横坐标为第i个最佳读出电压偏差值(△Vi),即第一偏差值,纵坐标为第i+2个最佳读出电压偏差值(△Vi+2),即第三偏差值,其中,第三偏差值△Vi+2与第一偏差值△Vi呈现一次函数,可以表示为:
△Vi+2=ki·△Vi+bi,
其中,ki为第i个第一偏差值△Vi的系数,bi为第i个第一偏差值△Vi对应的常数。
本申请实施例中,在确定第三偏差值△Vi+2后,可以基于第三偏差值△Vi+2对第三读电压Ri+2进行补偿,得到第三理论最佳读电压第三理论最佳读电压/>可以为第三读电压Ri+2和第三偏差值△Vi+2的差值,即/>
作为另一种可能的实施方式,在第一读电压和第三读电压为依次相邻的三个阈值电压分布态两两之间的读电压时,第一读电压和第三读电压的读操作,是对闪存的读电压依次增加的读操作,这里的第三读电压可以类比与前述示例中的第二读电压。在闪存中包括依次相邻的n个阈值电压分布态时,读电压也可以包括依次相邻的n个,则第三读电压可以表示为n个依次相邻的n个读电压中的第i+1个,表示为Ri+1,i可以为1至n-2,n为大于或等于3的自然数。举例来说,TLC NAND闪存中的七个阈值电压分布态P1-P7对应读电压R1-R7,第一读电压Ri可以为R1-R6中的任意一个,第三读电压Ri+1可以为R2-R7中的任意一个。则S103可以具体为:
利用第一原始数据和第一纠错数据确定第一读电压两侧的相邻的两个阈值电压分布态之间的交叠错误的误码率OBERi,并根据第一读电压两侧的相邻的两个阈值电压分布态之间的交叠错误的误码率OBERi与第三偏差值△Vi+1的函数关系确定第三偏差值△Vi+1,利用第三偏差值△Vi+1对第三读电压Ri+1进行补偿,得到第三理论最佳读电压第三理论最佳读电压/>可以为第三读电压Ri+1和第三偏差值△Vi+1的差值,即参考图12所示,为本申请实施例提供的一种阈值电压分布的交叠示意图,其中灰色区域为OBERi,其中,OBERi根据第一原始数据和第一纠错数据的比对结果确定,可以为第一原始数据和第一纠错数据中不同的数据量与第一纠错数据总量的比值,表达第三理论最佳读电压,R(i+1)表示第三读电压,△V(i+1)表示第三偏差值,P(i+1)与Pi+1相同。
第一读电压两侧的相邻的两个阈值电压分布态之间的交叠错误的误码率OBERi与第三偏差值△Vi+1的函数关系可以利用如下公式表示:
其中,OBERi是交叠错误的误码率,BER0代表的是数据保持时间为0时候的交叠错误的误码率,BERr表示的是单位数据保持时间增加的误码率,a、b、n都是函数的拟合常数。BER0和BERr可以通过预先对闪存进行测试得到。
第一读电压利用Ri表示时,第一读电压Ri两侧的相邻的两个阈值电压分布态利用Pi-1和Pi表示。参考图13所示,为本申请实施例中另一种误码率和电压差值之间的函数关系示意图,横坐标为Pi-1和Pi态之间交叠错误的误码率(OBERi),纵坐标为Pi+1和Pi态之间最佳读出电压偏差值(△Vi+1)。
本申请实施例中,通过纠正闪存中两个相邻的阈值电压分布态的交叠错误,根据较低阈值电压分布态中重叠误差的误码率,预测和计算下一个较高的两个阈值电压分布态之间的最佳读电压。参考图14所示,为本申请实施例中数据恢复的效果示意图,图中的IRV曲线所表示的是使用数据写入零时刻所使用的读电压读出数据的原始误码率(Raw BitError Rate,RBER),其原始误码率都在ECC可纠正错误的上限以上,NRRM是本专利提出的不增加额外读操作的方法确定的读电压读出数据的原始误码率,采用本方法调整读电压以后,能够将读出数据的原始误码率降低到ECC的上限以下,即在ECC纠错能力之内,可以采用ECC将读取到的错误纠正。
本申请公开了一种用于闪存的数据恢复方法,闪存中存储有存储数据和校验信息,其中在闪存中写入数据之前,可以对存储数据进行分解得到分解数据,分解数据与阈值电压分布态一一对应,根据分解数据可以得到与分解数据对应的校验信息,校验信息与分解数据一一对应,这样可以将得到的存储数据和校验信息存到闪存中。
在进行数据的读取时,可以基于第一读电压对闪存进行读取,得到第一原始数据,对第一原始数据进行ECC译码和纠错得到第一纠错数据,第一纠错数据包括第一信息数据和第一校验数据,第一信息数据对应多个分解数据中的一个,第一校验数据对应多个校验信息中的一个,利用第一原始数据和第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,第一读电压和第三读电压为闪存的两个读电压,且第一读电压小于第三读电压。
也就是说,第一原始数据和第一纠错数据可以体现第一原始数据的误码率,结合第二纠错数据可以体现第一读电压的偏移量,第三读电压的偏移量可以根据第一读电压的偏移量确定,因此可以利用第一原始数据和第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,从而减小第三读电压的偏移量,本申请实施例通过数据编码存储和纠错实现读电压的补偿,无需传统重读纠错方法所需的额外读操作即可确定闪存读操作所需要的读电压,从而对闪存数据进行恢复,相对于现有技术有效降低了原始误码率,节省了从闪存中读取数据的时间,提高读取数据的性能。
参考图15所示,为本申请实施例提供的一种用于闪存的数据恢复装置的结构框图,所述闪存中存储有存储数据和校验信息,所述校验信息与所述存储数据的分解数据一一对应,且所述校验信息根据对应的所述分解数据得到,所述分解数据通过对所述存储数据分解得到,且与所述阈值电压分布态一一对应;该装置可以包括:
数据读取单元110,用于基于第一读电压对所述闪存进行读取,得到第一原始数据;
ECC译码纠错单元120,用于对所述第一原始数据进行差错控制编码ECC译码和纠错得到第一纠错数据,所述第一纠错数据包括第一信息数据和第一校验数据;所述第一信息数据对应多个所述分解数据中的一个,所述第一校验数据对应多个所述校验信息中的一个;
补偿单元,用于利用所述第一原始数据和所述第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压;所述第一读电压和所述第三读电压为所述闪存的两个读电压,且所述第一读电压小于所述第三读电压。
可选的,
所述数据读取单元,还用于基于第二读电压对所述闪存进行读取,得到第二原始数据;
所述ECC译码纠错单元,还用于对所述第二原始数据进行ECC译码和纠错得到第二纠错数据,所述第二纠错数据包括第二信息数据和第二校验数据;所述第二信息数据对应多个所述分解数据中的不同于所述第一信息数据的一个,所述第二校验数据对应多个所述校验信息中不同于所述第一校验数据的一个;
所述补偿单元,具体用于利用所述第一原始数据、所述第一纠错数据和所述第二纠错数据,对第三读电压进行补偿得到第三理论最佳读电压。
可选的,所述补偿单元包括:
读电压计算单元,用于利用所述第一原始数据、所述第一纠错数据和所述第二纠错数据,计算得到所述第一读电压对应的第一实际最佳读电压;
偏移量计算单元,用于根据所述第一读电压的第一偏移量,确定第三读电压的第三偏移量;所述第一偏移量为所述第一读电压与所述第一实际最佳读电压的差值;
补偿子单元,用于基于所述第三偏移量对所述第三读电压进行补偿,得到第三理论最佳读电压。
可选的,所述读电压计算单元包括:
误码状态确定单元,用于根据第一原始数据、第一纠错数据、所述第二纠错数据,确定阈值电压介于所述第一读电压和所述第二读电压之间的第一部分存储单元的误码状态;
读电压计算子单元,用于根据所述误码状态确定所述第一读电压对应的第一实际最佳读电压,以降低所述第一部分存储单元的误码率。
可选的,所述补偿单元包括:
误码率确定单元,用于根据所述第一原始数据和所述第一纠错数据,得到所述第一读电压两侧的阈值电压分布态之间的交叠错误的误码率;
偏移量计算单元,用于根据所述第一读电压两侧的阈值电压分布态之间的交叠错误的误码率与所述第三读电压的第三偏移量之间的函数关系,确定所述第三读电压的第三偏移量;所述第一读电压和所述第三读电压为依次相邻的三个阈值电压分布态两两之间的读电压;
补偿子单元,用于基于所述第三偏移量对所述第三读电压进行补偿,得到第三理论最佳读电压。
可选的,
所述数据读取单元,还用于基于第三理论最佳读电压对所述闪存进行读取,得到第三原始数据;
所述ECC译码纠错单元,还用于对所述第三原始数据进行ECC译码和纠错得到第三纠错数据,所述第三纠错数据包括第三信息数据和第三校验信息;所述第三信息数据对应多个所述分解数据中不同于所述第一信息数据和所述第二信息数据的一个,所述第三校验信息对应多个所述校验信息中不同于所述第一校验数据和所述第二校验数据的一个;
所述补偿单元,还用于利用所述第一原始数据、所述第二纠错数据和所述第三纠错数据,对第四读电压进行补偿得到第四理论最佳读电压;所述第三读电压、所述第四读电压为依次相邻的三个阈值电压分布态两两之间的读电压,所述第三读电压小于所述第四读电压。
可选的,所述第二读电压通过对第二原始读电压补偿得到;或,所述第一读电压通过对第一原始读电压补偿得到,且所述第二读电压通过对第二原始读电压补偿得到。
本申请公开了一种用于闪存的数据恢复装置,闪存中存储有存储数据和校验信息,其中在闪存中写入数据之前,可以对存储数据进行分解得到分解数据,分解数据与阈值电压分布态一一对应,根据分解数据可以得到与分解数据对应的校验信息,校验信息与分解数据一一对应,这样可以将得到的存储数据和校验信息存到闪存中。
在进行数据的读取时,可以基于第一读电压对闪存进行读取,得到第一原始数据,对第一原始数据进行ECC译码和纠错得到第一纠错数据,第一纠错数据包括第一信息数据和第一校验数据,第一信息数据对应多个分解数据中的一个,第一校验数据对应多个校验信息中的一个,利用第一原始数据和第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,第一读电压和第三读电压为闪存的两个读电压,且第一读电压小于第三读电压。
也就是说,第一原始数据和第一纠错数据可以体现第一原始数据的误码率,结合第二纠错数据可以体现第一读电压的偏移量,第三读电压的偏移量可以根据第一读电压的偏移量确定,因此可以利用第一原始数据和第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,从而减小第三读电压的偏移量,本申请实施例通过数据编码存储和纠错实现读电压的补偿,无需传统重读纠错方法所需的额外读操作即可确定闪存读操作所需要的读电压,从而对闪存数据进行恢复,相对于现有技术有效降低了原始误码率,节省了从闪存中读取数据的时间,提高读取数据的性能。
本申请实施例还提供了一种用于闪存的数据恢复系统,用于闪存的数据恢复系统可以包括闪存以及用于闪存的数据恢复装置,其中闪存包括存储阵列,用于闪存的数据恢复装置可以位于闪存内部,也可以设置于闪存外部,用于实现闪存的数据恢复。
参考图16所示,为本申请实施例提供的一种用于闪存的数据恢复系统的结构框图,其中用于闪存的数据恢复装置位于闪存内部,闪存中还包括存储阵列,用于闪存的数据恢复装置可以包括算法控制电路,读电压计算电路,差错控制编码编码器,差错控制编码译码器,读电压计算电路和存储阵列之间还可以连接有读电压控制寄存器和读电压产生电路,差错控制编码编码器和存储阵列之间还连接有页缓存器,页缓存器也连接在差错控制编码译码器和存储阵列之间。
其中,数据读取单元可以包括读电压产生电路、页缓存器,ECC译码纠错单元可以包括差错控制编码译码器,补偿单元包括读电压计算电路。
具体的,算法控制电路可以控制读电压计算电路、差错控制编码编码器、差错控制编码译码器的计算逻辑;差错控制编码编码器用于对存储数据进行分解得到分解数据,以及根据分解数据得到对应的校验信息,以使闪存的存储阵列中存储有存储数据和校验信息;差错控制编码译码器用于获取对存储阵列进行读取得到的原始数据,并对原始数据进行译码和纠错得到纠错数据;读电压计算电路用于根据原始数据和纠错初始对理论最佳读电压进行计算,确定的理论最佳读电压用于通过读电压寄存器和读电压产生电路驱动存储阵列,以得到该电压下的读取信息。各个部件的实现方式可以参考方法实施例中的细节,在此不再赘述。
参考图17所示,为本申请实施例提供的另一种用于闪存的数据恢复系统的结构框图,其中用于闪存的数据恢复装置位于闪存外部,闪存中包括存储阵列,用于闪存的数据恢复装置也可以成为闪存控制器,其可以包括算法控制电路,读电压计算电路,差错控制编码编码器,差错控制编码译码器,读电压计算电路、差错控制编码编码器、差错控制编码译码器分别连接算法控制电路以及闪存控制指令,闪存控制器通过闪存控制指令连接闪存器件的闪存控制接口,从而利用闪存控制接口与闪存器件交互,完成读电压的调整、数据写入、数据的读出等操作。闪存中还包括读电压控制寄存器。
其中,数据读取单元可以包括读电压控制寄存器ECC译码纠错单元可以包括差错控制编码译码器,补偿单元包括读电压计算电路。
具体的,算法控制电路可以控制读电压计算电路、差错控制编码编码器、差错控制编码译码器的计算逻辑;差错控制编码编码器用于对存储数据进行分解得到分解数据,以及根据分解数据得到对应的校验信息,以使闪存的存储阵列中存储有存储数据和校验信息;差错控制编码译码器用于获取对存储阵列进行读取得到的原始数据,并对原始数据进行译码和纠错得到纠错数据;读电压计算电路用于根据原始数据和纠错初始对理论最佳读电压进行计算,确定的理论最佳读电压用于通过读电压寄存器和读电压产生电路驱动存储阵列,以得到该电压下的读取信息。各个部件的实现方式可以参考方法实施例中的细节,在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,
而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (15)

1.一种用于闪存的数据恢复方法,其特征在于,所述闪存中存储有存储数据和校验信息,所述校验信息与所述存储数据的分解数据一一对应,且所述校验信息根据对应的所述分解数据得到,所述分解数据通过对所述存储数据分解得到,且与阈值电压分布态一一对应;
所述方法包括:
基于第一读电压对所述闪存进行读取,得到第一原始数据;
对所述第一原始数据进行差错控制编码ECC译码和纠错得到第一纠错数据,所述第一纠错数据包括第一信息数据和第一校验数据;所述第一信息数据对应多个所述分解数据中的一个,所述第一校验数据对应多个所述校验信息中的一个;
利用所述第一原始数据和所述第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压;所述第一读电压和所述第三读电压为所述闪存的两个读电压,且所述第一读电压小于所述第三读电压。
2.根据权利要求1所述的方法,其特征在于,所述第一读电压、第二读电压、所述第三读电压为依次相邻的四个阈值电压分布态两两之间的读电压;所述第一读电压小于所述第二读电压,所述第二读电压小于所述第三读电压;所述利用所述第一原始数据和所述第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,包括:
基于第二读电压对所述闪存进行读取,得到第二原始数据;
对所述第二原始数据进行ECC译码和纠错得到第二纠错数据,所述第二纠错数据包括第二信息数据和第二校验数据;所述第二信息数据对应多个所述分解数据中的不同于所述第一信息数据的一个,所述第二校验数据对应多个所述校验信息中不同于所述第一校验数据的一个;
利用所述第一原始数据、所述第一纠错数据和所述第二纠错数据,对第三读电压进行补偿得到第三理论最佳读电压。
3.根据权利要求2所述的方法,其特征在于,所述利用所述第一原始数据、所述第一纠错数据和所述第二纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,包括:
利用所述第一原始数据、所述第一纠错数据和所述第二纠错数据,计算得到所述第一读电压对应的第一实际最佳读电压;
根据所述第一读电压的第一偏移量,确定第三读电压的第三偏移量;所述第一偏移量为所述第一读电压与所述第一实际最佳读电压的差值;
基于所述第三偏移量对所述第三读电压进行补偿,得到第三理论最佳读电压。
4.根据权利要求3所述的方法,其特征在于,所述利用所述第一原始数据、所述第一纠错数据和所述第二纠错数据,计算得到所述第一读电压对应的第一实际最佳读电压,包括:
根据第一原始数据、第一纠错数据、所述第二纠错数据,确定阈值电压介于所述第一读电压和所述第二读电压之间的第一部分存储单元的误码状态;
根据所述误码状态确定所述第一读电压对应的第一实际最佳读电压,以降低所述第一部分存储单元的误码率。
5.根据权利要求1所述的方法,其特征在于,所述第一读电压和所述第三读电压为依次相邻的三个阈值电压分布态两两之间的读电压;所述利用所述第一原始数据和所述第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压,包括:
根据所述第一原始数据和所述第一纠错数据,得到所述第一读电压两侧的阈值电压分布态之间的交叠错误的误码率;
根据所述第一读电压两侧的阈值电压分布态之间的交叠错误的误码率与所述第三读电压的第三偏移量之间的函数关系,确定所述第三读电压的第三偏移量;
基于所述第三偏移量对所述第三读电压进行补偿,得到第三理论最佳读电压。
6.根据权利要求1-4任意一项所述的方法,其特征在于,还包括:
基于第三理论最佳读电压对所述闪存进行读取,得到第三原始数据;
对所述第三原始数据进行ECC译码和纠错得到第三纠错数据,所述第三纠错数据包括第三信息数据和第三校验信息;所述第三信息数据对应多个所述分解数据中不同于所述第一信息数据和第二信息数据的一个,所述第三校验信息对应多个所述校验信息中不同于所述第一校验数据和第二校验数据的一个;
利用所述第一原始数据、第二纠错数据和所述第三纠错数据,对第四读电压进行补偿得到第四理论最佳读电压;所述第三读电压、所述第四读电压为依次相邻的三个阈值电压分布态两两之间的读电压,所述第三读电压小于所述第四读电压。
7.根据权利要求1-4任意一项所述的方法,其特征在于,第二读电压通过对第二原始读电压补偿得到;或,所述第一读电压通过对第一原始读电压补偿得到,且所述第二读电压通过对第二原始读电压补偿得到。
8.一种用于闪存的数据恢复装置,其特征在于,所述闪存中存储有存储数据和校验信息,所述校验信息与所述存储数据的分解数据一一对应,且所述校验信息根据对应的所述分解数据得到,所述分解数据通过对所述存储数据分解得到,且与阈值电压分布态一一对应;
所述装置包括:
数据读取单元,用于基于第一读电压对所述闪存进行读取,得到第一原始数据;
ECC译码纠错单元,用于对所述第一原始数据进行差错控制编码ECC译码和纠错得到第一纠错数据,所述第一纠错数据包括第一信息数据和第一校验数据;所述第一信息数据对应多个所述分解数据中的一个,所述第一校验数据对应多个所述校验信息中的一个;
补偿单元,用于利用所述第一原始数据和所述第一纠错数据,对第三读电压进行补偿得到第三理论最佳读电压;所述第一读电压和所述第三读电压为所述闪存的两个读电压,且所述第一读电压小于所述第三读电压。
9.根据权利要求8所述的装置,其特征在于,
所述数据读取单元,还用于基于第二读电压对所述闪存进行读取,得到第二原始数据;所述第一读电压、第二读电压、所述第三读电压为依次相邻的四个阈值电压分布态两两之间的读电压;所述第一读电压小于所述第二读电压,所述第二读电压小于所述第三读电压;
所述ECC译码纠错单元,还用于对所述第二原始数据进行ECC译码和纠错得到第二纠错数据,所述第二纠错数据包括第二信息数据和第二校验数据;所述第二信息数据对应多个所述分解数据中的不同于所述第一信息数据的一个,所述第二校验数据对应多个所述校验信息中不同于所述第一校验数据的一个;
所述补偿单元,具体用于利用所述第一原始数据、所述第一纠错数据和所述第二纠错数据,对第三读电压进行补偿得到第三理论最佳读电压。
10.根据权利要求9所述的装置,其特征在于,所述补偿单元包括:
读电压计算单元,用于利用所述第一原始数据、所述第一纠错数据和所述第二纠错数据,计算得到所述第一读电压对应的第一实际最佳读电压;
偏移量计算单元,用于根据所述第一读电压的第一偏移量,确定第三读电压的第三偏移量;所述第一偏移量为所述第一读电压与所述第一实际最佳读电压的差值;
补偿子单元,用于基于所述第三偏移量对所述第三读电压进行补偿,得到第三理论最佳读电压。
11.根据权利要求10所述的装置,其特征在于,所述读电压计算单元包括:
误码状态确定单元,用于根据第一原始数据、第一纠错数据、所述第二纠错数据,确定阈值电压介于所述第一读电压和所述第二读电压之间的第一部分存储单元的误码状态;
读电压计算子单元,用于根据所述误码状态确定所述第一读电压对应的第一实际最佳读电压,以降低所述第一部分存储单元的误码率。
12.根据权利要求8所述的装置,其特征在于,所述补偿单元包括:
误码率确定单元,用于根据所述第一原始数据和所述第一纠错数据,得到所述第一读电压两侧的阈值电压分布态之间的交叠错误的误码率;
偏移量计算单元,用于根据所述第一读电压两侧的阈值电压分布态之间的交叠错误的误码率与所述第三读电压的第三偏移量之间的函数关系,确定所述第三读电压的第三偏移量;所述第一读电压和所述第三读电压为依次相邻的三个阈值电压分布态两两之间的读电压;
补偿子单元,用于基于所述第三偏移量对所述第三读电压进行补偿,得到第三理论最佳读电压。
13.根据权利要求8-11任意一项所述的装置,其特征在于,
所述数据读取单元,还用于基于第三理论最佳读电压对所述闪存进行读取,得到第三原始数据;
所述ECC译码纠错单元,还用于对所述第三原始数据进行ECC译码和纠错得到第三纠错数据,所述第三纠错数据包括第三信息数据和第三校验信息;所述第三信息数据对应多个所述分解数据中不同于所述第一信息数据和第二信息数据的一个,所述第三校验信息对应多个所述校验信息中不同于所述第一校验数据和第二校验数据的一个;
所述补偿单元,还用于利用所述第一原始数据、第二纠错数据和所述第三纠错数据,对第四读电压进行补偿得到第四理论最佳读电压;所述第三读电压、所述第四读电压为依次相邻的三个阈值电压分布态两两之间的读电压,所述第三读电压小于所述第四读电压。
14.根据权利要求8-11任意一项所述的装置,其特征在于,第二读电压通过对第二原始读电压补偿得到;或,所述第一读电压通过对第一原始读电压补偿得到,且所述第二读电压通过对第二原始读电压补偿得到。
15.一种用于闪存的数据恢复系统,其特征在于,包括闪存和如权利要求8-14任意一项所述的用于闪存的数据恢复装置。
CN202111110006.0A 2021-09-18 2021-09-18 一种用于闪存的数据恢复方法、装置及系统 Active CN113805815B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111110006.0A CN113805815B (zh) 2021-09-18 2021-09-18 一种用于闪存的数据恢复方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111110006.0A CN113805815B (zh) 2021-09-18 2021-09-18 一种用于闪存的数据恢复方法、装置及系统

Publications (2)

Publication Number Publication Date
CN113805815A CN113805815A (zh) 2021-12-17
CN113805815B true CN113805815B (zh) 2024-03-01

Family

ID=78896222

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111110006.0A Active CN113805815B (zh) 2021-09-18 2021-09-18 一种用于闪存的数据恢复方法、装置及系统

Country Status (1)

Country Link
CN (1) CN113805815B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118280423B (zh) * 2024-05-30 2024-08-16 苏州元脑智能科技有限公司 闪存读取方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106816179A (zh) * 2015-11-30 2017-06-09 华为技术有限公司 一种闪存纠错方法和装置
CN107786305A (zh) * 2016-08-29 2018-03-09 海思光电子有限公司 一种前向纠错后的误码补偿方法和编解码处理装置
CN111145820A (zh) * 2019-12-11 2020-05-12 合肥大唐存储科技有限公司 一种数据读取方法及装置、存储介质和设备
CN111625394A (zh) * 2020-05-27 2020-09-04 成都信息工程大学 基于纠删码的数据恢复方法、装置、设备及存储介质
CN113192550A (zh) * 2021-04-27 2021-07-30 山东大学 一种存储器最佳读电压确定方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510637B2 (en) * 2010-04-14 2013-08-13 Phison Electronics Corp. Data reading method, memory storage apparatus and memory controller thereof
US9672102B2 (en) * 2014-06-25 2017-06-06 Intel Corporation NAND memory devices systems, and methods using pre-read error recovery protocols of upper and lower pages

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106816179A (zh) * 2015-11-30 2017-06-09 华为技术有限公司 一种闪存纠错方法和装置
CN107786305A (zh) * 2016-08-29 2018-03-09 海思光电子有限公司 一种前向纠错后的误码补偿方法和编解码处理装置
CN111145820A (zh) * 2019-12-11 2020-05-12 合肥大唐存储科技有限公司 一种数据读取方法及装置、存储介质和设备
CN111625394A (zh) * 2020-05-27 2020-09-04 成都信息工程大学 基于纠删码的数据恢复方法、装置、设备及存储介质
CN113192550A (zh) * 2021-04-27 2021-07-30 山东大学 一种存储器最佳读电压确定方法

Also Published As

Publication number Publication date
CN113805815A (zh) 2021-12-17

Similar Documents

Publication Publication Date Title
US11334413B2 (en) Estimating an error rate associated with memory
US8136014B2 (en) Non-volatile semiconductor memory device
US8112689B2 (en) ECC controller for use in flash memory device and memory system including the same
US9224489B2 (en) Flash memory devices having multi-bit memory cells therein with improved read reliability
JP5177991B2 (ja) 不揮発性半導体記憶装置
KR101635506B1 (ko) 데이터 저장 시스템 및 그것의 읽기 방법
US20120134207A1 (en) Non-Volatile Memory Device And Read Method Thereof
US20140169102A1 (en) Log-likelihood ratio and lumped log-likelihood ratio generation for data storage systems
JP7222148B2 (ja) 耐久性を高めた記憶デバイス
KR20140113190A (ko) 비휘발성 메모리 장치의 llr 최적화 방법 및 비휘발성 메모리 장치의 에러 정정 방법
KR20150044738A (ko) 더미 워드라인을 포함하는 불휘발성 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
US9984752B2 (en) Memory system and data encoding and decoding method to mitigate inter-cell interference
US20130061113A1 (en) Method of correcting errors and memory device using the same
US8498154B1 (en) Systems and methods for improving error distributions in multi-level cell memory systems
US11175983B2 (en) Soft-decision input generation for data storage systems
US10423484B2 (en) Memory controller, memory system, and control method
KR20150000358A (ko) 메모리 시스템 및 이의 독출 방법
US10340023B1 (en) Method and system for determining bit values in non-volatile memory
CN113805815B (zh) 一种用于闪存的数据恢复方法、装置及系统
US11770133B1 (en) Exact ber reporting in the presence of CRC termination
US10084487B2 (en) Apparatuses and methods for erasure-assisted ECC decoding
CN115482866A (zh) 基于存储器装置中先前读取尝试的参数估计
KR102714110B1 (ko) 메모리 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
TWI844591B (zh) 減少基於校驗子的準循環解碼器的延遲
EP4198988A1 (en) Storage controller using history data, method of operating the same, and method of operating storage device including the same

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