CN116521432B - 一种提高闪存可靠性的方法、控制器和计算机存储介质 - Google Patents

一种提高闪存可靠性的方法、控制器和计算机存储介质 Download PDF

Info

Publication number
CN116521432B
CN116521432B CN202310366662.XA CN202310366662A CN116521432B CN 116521432 B CN116521432 B CN 116521432B CN 202310366662 A CN202310366662 A CN 202310366662A CN 116521432 B CN116521432 B CN 116521432B
Authority
CN
China
Prior art keywords
data
user data
column
flash memory
nand flash
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
CN202310366662.XA
Other languages
English (en)
Other versions
CN116521432A (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.)
Zhuhai Miaocun Technology Co ltd
Original Assignee
Zhuhai Miaocun Technology Co ltd
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 Zhuhai Miaocun Technology Co ltd filed Critical Zhuhai Miaocun Technology Co ltd
Priority to CN202310366662.XA priority Critical patent/CN116521432B/zh
Publication of CN116521432A publication Critical patent/CN116521432A/zh
Application granted granted Critical
Publication of CN116521432B publication Critical patent/CN116521432B/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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

Abstract

本发明实施例提供了一种提高闪存可靠性的方法、控制器和计算机存储介质,该方法包括:接收写入用户数据指令,写入用户数据指令表征将第一用户数据写入至NAND闪存;根据写入用户数据指令通过ECC编码模块对第一用户数据进行编码纠错处理,得到第二用户数据;通过随机化模块将第二用户数据进行数据随机化处理,得到第三用户数据;通过列管理模块将第三用户数据写入至NAND闪存存储阵列的可插入列中,列管理模块配置有固件初始化配置列映射表,固件初始化配置列映射表表征指定写入时可插入列数据。在本实施例中技术方案中,通过软硬件结合有效过滤错误的存储单元,把ECC纠错模块纠错能力最大化,保证数据的可靠性和稳定性,从而有效提高闪存可靠性。

Description

一种提高闪存可靠性的方法、控制器和计算机存储介质
技术领域
本发明实施例涉及但不限于闪存领域,尤其涉及一种提高闪存可靠性的方法、控制器和计算机存储介质。
背景技术
闪存是一种电子系统中用于存储数据掉电非易失器件。闪存的内部存储结构是金属-氧化层-半导体-场效晶体管(MOSFET),里面有一个浮置栅极(Floating Gate),它便是真正存储数据的单元。数据在闪存的存储单元中是以电荷(Electrical Charge)形式存储的。存储电荷的多少,取决于图中的控制栅极(Controlgate)所被施加的电压,其控制向存储单元中冲入电荷还是使其释放电荷。
然而,对于基于NAND Flash的闪存产品,例如:eMMC、UFS等嵌入式存储产品和SSD、SD、U盘等移动式存储产品,其中NAND Flash单个存储单元会因晶圆厂制造工艺、场效晶体管老化、产品使用场景温度、电源纹波不稳定、强磁场等因素导致其存储单元无法充放电或电荷逃逸,最终体现在产品上就是存储的数据在固定位置出错或随机位置出错。当前业界对于随机错误的解决方法是在存储器主控端增加ECC纠错模块提高其纠错能力(如BCH纠错码,LDPC纠错码),对于固定错误,虽然也可以使用ECC纠错模块解决错误,但ECC纠错模块纠错能力是一定的,将ECC纠错模块的部分资源用于纠正固定错误,会导致ECC纠错模块对随机错误纠错能力下降。
发明内容
本发明实施例提供了一种提高闪存可靠性的方法、控制器和计算机存储介质,可以提高闪存可靠性。
为达到上述目的,本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供了一种提高闪存可靠性的方法,应用于控制器,所述控制器包括ECC编码模块、随机化模块、列管理模块以及NAND闪存存储阵列,所述方法包括:
接收写入用户数据指令,所述写入用户数据指令表征将第一用户数据写入至NAND闪存;
根据所述写入用户数据指令通过所述ECC编码模块对所述第一用户数据进行编码纠错处理,得到第二用户数据,所述第二用户数据为对所述第一用户数据纠错后的数据;
通过所述随机化模块将所述第二用户数据进行数据随机化处理,得到第三用户数据,所述第三用户数据为对所述第二用户数据随机化处理后的数据;
通过所述列管理模块将所述第三用户数据写入至所述NAND闪存存储阵列的可插入列中,所述列管理模块配置有固件初始化配置列映射表,所述固件初始化配置列映射表表征指定写入时可插入列数据。
在一实施例中,所述固件初始化配置列映射表包括第一可插入列数据,所述第一可插入列数据根据所述ECC编码模块在所述NAND闪存读写过程中记录的纠错数据所对应的列数据和第二可插入列数据得到,所述第二可插入列数据为对于同一生产批次的NAND闪存在出厂前测试得到的列数据。
在一实施例中,所述第一可插入列数据的生成方法包括:
在对所述NAND闪存写入或者读取数据过程中,记录所述ECC编码模块对所述用户数据的纠错结果;
根据所述纠错结果确定存在问题的候选列数据;
在所述NAND闪存达到使用阈值的情况下,获取所述候选列数据的错误记录次数,所述使用阈值包括至少如下之一:所述NAND闪存使用的时间长度;所述NAND闪存读写次数;
根据所述错误记录次数从所述候选列数据中确定目标问题列数据;
从所述第二可插入列数据中剔除所述目标问题列数据确定所述第一可插入列数据。
在一实施例中,所述随机化模块和所述NAND闪存存储阵列之间设置有第一DMA通道和第二DMA通道,所述列管理模块设置在所述第二DMA通道上,在所述通过所述随机化模块将所述第二用户数据进行数据随机化处理,得到第三用户数据之后,所述方法包括:
在所述第三用户数据所写入的NAND闪存的写入块中不存在问题列数据的情况下,通过所述第一DMA通道将所述用户数据写入至所述NAND闪存存储阵列的可插入列中;
在所述第三用户数据所写入的NAND闪存的写入块中存在问题列数据的情况下,通过所述第二DMA通道的所述列管理模块中获取固件初始化配置列映射表,根据所述固件初始化配置列映射表将所述第三用户数据写入至所述NAND闪存存储阵列的可插入列中。
第二方面,本发明实施例还提供了一种提高闪存可靠性的方法,应用于控制器,所述控制器包括ECC解码模块、反随机化模块、列管理模块以及NAND闪存存储阵列,所述方法包括:
接收读取用户数据指令;
根据所述读取用户数据指令从所述NAND闪存存储阵列中读取用户数据,并通过所述列管理模块对所述NAND闪存存储阵列中的问题列对应的用户数据进行过滤,得到第四用户数据,所述固件初始化配置列映射表表征指定读操作过滤的列数据;
通过所述反随机化模块将所述第四用户数据进行数据反随机化处理,得到第五用户数据,所述第五用户数据为对所述第四用户数据反随机化处理后的数据;
通过所述ECC编码模块对所述第五用户数据进行解码纠错处理,得到第六用户数据,所述第六用户数据为对所述第五用户数据纠错后的数据;
输出所述第六用户数据。
在一实施例中,所述固件初始化配置列映射表包括第一过滤列数据,所述第一过滤列数据根据所述ECC编码模块在所述NAND闪存读写过程中记录的纠错数据所对应的列数据和第二过滤列数据得到,所述第二过滤列数据为对于同一生产批次的NAND闪存在出厂前测试得到的列数据。
在一实施例中,所述第一过滤列数据的生成方法包括:
在对所述NAND闪存读取或者写入用户数据过程中,记录所述ECC编码模块对所述用户数据的纠错结果;
根据所述纠错结果确定存在问题的候选列数据;
在所述NAND闪存达到使用阈值的情况下,获取所述候选列数据的错误记录次数,所述使用阈值包括至少如下之一:所述NAND闪存使用的时间长度;所述NAND闪存读写次数;
根据所述错误记录次数从所述候选列数据中确定目标问题列数据;
从所述第二过滤列数据中增加所述目标问题列数据确定所述第一过滤列数据。
在一实施例中,所述反随机化模块和所述NAND闪存存储阵列之间设置有第一DMA通道和第二DMA通道,所述列管理模块设置在所述第二DMA通道上,在所述通过所述反随机化模块将所述第四用户数据进行数据反随机化处理,得到第五用户数据之前,所述方法还包括:
在需要读取所述第四用户数据所对应的NAND闪存的读取块中不存在问题列数据的情况下,通过所述第一DMA通道从所述NAND闪存存储阵列中读取所述第四用户数据;
在需要读取所述第四用户数据所对应的NAND闪存的读取块中存在问题列数据的情况下,通过所述第二DMA通道的所述列管理模块将从所述NAND闪存存储阵列获取的用户数据进行过滤处理,得到所述第四用户数据。
本发明实施例还提供了一种控制器,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行上述第一方面或者第二方面的提高闪存可靠性的方法的步骤。
本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面或者第二方面的提高闪存可靠性的方法的步骤。
本发明实施例提供一种提高闪存可靠性的方法、控制器和计算机存储介质中,当用户需要将第一用户数据存储至NAND闪存时,控制器会接收到写入用户数据指令,然后控制器根据存储指令获取需要存储的第一用户数据,然后将第一用户数据传输至ECC编码模块,通过ECC编码模块对所述第一用户数据进行编码纠错处理,得到纠错后的第二用户数据,能够有效纠正用户数据处理过程中所出现的错误,然后将第二用户数据传输至随机化模块中,通过随机化模块将第二用户数据进行数据随机化处理,得到第三用户数据,在纠错后的第二用户数据的基础上进行随机化处理,能够得到数据稳定性更好的第三用户数据,在得到第三用户数据之后,通过所述列管理模块将所述第三用户数据写入至所述NAND闪存存储阵列的可插入列中,所述列管理模块配置有固件初始化配置列映射表,所述固件初始化配置列映射表表征指定写入时可插入列数据,能够有效避免将第三用户数据写入问题列中的问题;即通过ECC编码模块、随机化模块以及列管理模块的相互作用,能够使得闪存的纠错能力最大化、数据稳定性更好,从而有效提高闪存可靠性。
附图说明
图1为本发明一个实施例提供的在写入操作的情况下用于执行提高闪存可靠性的方法的的控制器示意图;
图2为本发明另一个实施例提供的在写入操作的情况下用于执行提高闪存可靠性的方法的控制器示意图;
图3为本发明一个实施例提供的在读取操作的情况下用于执行提高闪存可靠性的方法的控制器示意图;
图4为本发明另一个实施例提供的在读取操作的情况下用于执行提高闪存可靠性的方法的控制器示意图;
图5为本发明一个实施例提供的提高闪存可靠性的方法的流程图;
图6为本发明另一个实施例提供的提高闪存可靠性的方法的流程图;
图7为本发明实施例的控制器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书、权利要求书或上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
闪存是一种电子系统中用于存储数据掉电非易失器件。闪存的内部存储结构是金属-氧化层-半导体-场效晶体管(MOSFET),里面有一个浮置栅极(Floating Gate),它便是真正存储数据的单元。数据在闪存的存储单元中是以电荷(Electrical Charge)形式存储的。存储电荷的多少,取决于图中的控制栅极(Controlgate)所被施加的电压,其控制向存储单元中冲入电荷还是使其释放电荷。
然而,对于基于NAND Flash的闪存产品,例如:eMMC、UFS等嵌入式存储产品和SSD、SD、U盘等移动式存储产品,其中NAND Flash单个存储单元会因晶圆厂制造工艺、场效晶体管老化、产品使用场景温度、电源纹波不稳定、强磁场等因素导致其存储单元无法充放电或电荷逃逸,最终体现在产品上就是存储的数据在固定位置出错或随机位置出错。当前业界对于随机错误的解决方法是在存储器主控端增加ECC纠错模块提高其纠错能力(如BCH纠错码,LDPC纠错码),对于固定错误,虽然也可以使用ECC纠错模块解决错误,但ECC纠错模块纠错能力是一定的,将ECC纠错模块的部分资源用于纠正固定错误,会导致ECC纠错模块对随机错误纠错能力下降,导致闪存的可靠性下降的问题。
为了解决上述闪存的可靠性下降的问题,本发明实施例提供了一种提高闪存可靠性的方法、控制器和计算机存储介质中,当用户需要将第一用户数据存储至NAND闪存时,控制器会接收到写入用户数据指令,然后控制器根据存储指令获取需要存储的第一用户数据,然后将第一用户数据传输至ECC编码模块,通过ECC编码模块对第一用户数据进行编码纠错处理,得到纠错后的第二用户数据,能够有效纠正用户数据处理过程中所出现的错误,然后将第二用户数据传输至随机化模块中,通过随机化模块将第二用户数据进行数据随机化处理,得到第三用户数据,在纠错后的第二用户数据的基础上进行随机化处理,能够得到数据稳定性更好的第三用户数据,在得到第三用户数据之后,通过列管理模块将第三用户数据写入至NAND闪存存储阵列的可插入列中,列管理模块配置有固件初始化配置列映射表,固件初始化配置列映射表表征指定写入时可插入列数据,由于在固件初始化配置列映射表中为已经剔除存在问题的列数据而得到的指定写入时可插入列数据,那么通过列管理模块将第三用户数据写入至NAND闪存存储阵列的可插入列中,能够有效避免将第三用户数据写入问题列中的问题;即通过ECC编码模块、随机化模块以及列管理模块的相互作用,通过上述功能硬件IP化,以最小的硬件开销,软硬件结合有效过滤错误的存储单元,把控制器的硬件ECC纠错模块最大程度地应用于随机错误,保证数据的可靠性和读写稳定性,最大程度保证了数据的纠错能力,确保产品在生命末期的数据可读性,从而有效提高闪存可靠性。
下面结合附图,对本发明实施例作进一步阐述。
如图1所示,图1是本发明一个实施例提供的在写入操作的情况下用于执行提高闪存可靠性的方法的的控制器示意图。
在图1的示例中,控制器包括通过DMA通道进行连接的ECC编码模块、随机化模块、列管理模块以及NAND闪存存储阵列,其中,ECC编码模块用于对用户数据存在的错误进行纠正;随机化模块用于对用户进行随机化处理以提高用户数据的稳定性;列管理模块配置有固件初始化配置列映射表,在该表征指定写入时可插入列数据;NAND闪存存储阵列用于存储用户数据。
需要说明的是,参照图2,在随机化模块与NAND闪存存储阵列之间还可以设置两条DMA通道,分别为第一DMA通道和第二DMA通道,其中列管理模块设置在第二DMA通道上,第一DMA通道用于将用户数据传输至NAND闪存存储阵列中不存在问题列的写入块,第二DMA通道用于将用户数据传输至NAND闪存存储阵列中存在问题列的写入块。
如图3所示,图3是本发明一个实施例提供的在读取操作的情况下用于执行提高闪存可靠性的方法的的控制器示意图。
在图3的示例中,控制器包括通过DMA通道进行连接的NAND闪存存储阵列、列管理模块、反随机化模块以及ECC编码模块,其中,ECC编码模块用于对用户数据存在的错误进行纠正;反随机化模块用于对NAND闪存存储阵列中读取的用户数据进行反随机化处理;列管理模块配置有固件初始化配置列映射表,在该表征指定读操作过滤的列数据;NAND闪存存储阵列用于存储用户数据。
需要说明的是,参照图4,在随机化模块与NAND闪存存储阵列之间还可以设置两条DMA通道,分别为第一DMA通道和第二DMA通道,其中列管理模块设置在第二DMA通道上,第一DMA通道用于传输从NAND闪存存储阵列中的不存在问题列的读取块所读取的用户数据,第二DMA通道用于传输从NAND闪存存储阵列中存在问题列的读取块所读取的用户数据。
需要说明的是,ECC编码模块和ECC解码模块可以是同一个ECC纠错模块,是ECC纠错模块在不同读写操作下的功能性不同的描述。
本领域技术人员可以理解的是,图1-4中示出的控制器并不构成对本发明实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
基于上述图1-4中示出的控制器示意图,下面提出本发明的提高闪存可靠性的方法的各个实施例。
如图5所示,图5是本发明一个实施例提供的提高闪存可靠性的方法的流程图,本发明实施例的提高闪存可靠性的方法可以包括但不限于包括步骤S100、步骤S200、步骤S300和步骤S400。
步骤S100,接收写入用户数据指令,写入用户数据指令表征将第一用户数据写入至NAND闪存;
步骤S200,根据写入用户数据指令通过ECC编码模块对第一用户数据进行编码纠错处理,得到第二用户数据,第二用户数据为对第一用户数据纠错后的数据;
步骤S300,通过随机化模块将第二用户数据进行数据随机化处理,得到第三用户数据,第三用户数据为对第二用户数据随机化处理后的数据;
步骤S400,通过列管理模块将第三用户数据写入至NAND闪存存储阵列的可插入列中,列管理模块配置有固件初始化配置列映射表,固件初始化配置列映射表表征指定写入时可插入列数据。
具体地,本实施例的提高闪存可靠性的方法应用于图1的控制器,当用户需要将第一用户数据存储至NAND闪存时,控制器会接收到写入用户数据指令,然后控制器根据存储指令获取需要存储的第一用户数据,然后将第一用户数据传输至ECC编码模块,通过ECC编码模块对第一用户数据进行编码纠错处理,得到纠错后的第二用户数据,能够有效纠正用户数据处理过程中所出现的错误,然后将第二用户数据传输至随机化模块中,通过随机化模块将第二用户数据进行数据随机化处理,得到第三用户数据,在纠错后的第二用户数据的基础上进行随机化处理,能够得到数据稳定性更好的第三用户数据,在得到第三用户数据之后,通过列管理模块将第三用户数据写入至NAND闪存存储阵列的可插入列中,列管理模块配置有固件初始化配置列映射表,固件初始化配置列映射表表征指定写入时可插入列数据,由于在固件初始化配置列映射表中为已经剔除存在问题的列数据而得到的指定写入时可插入列数据,那么通过列管理模块将第三用户数据写入至NAND闪存存储阵列的可插入列中,能够有效避免将第三用户数据写入问题列中的问题;即通过ECC编码模块、随机化模块以及列管理模块的相互作用,通过上述功能硬件IP化,以最小的硬件开销,软硬件结合有效过滤错误的存储单元,把控制器的硬件ECC纠错模块最大程度地应用于随机错误,保证数据的可靠性和写操作稳定性,最大程度保证了数据的纠错能力,确保产品在生命周期中的数据可读性,从而有效提高闪存可靠性。
需要说明的是,列管理模块中的固件初始化配置列映射表是通过固件流程配置,在产品固件上电配置一次即可使用。
需要说明的是,列管理模块中的固件初始化配置列映射表可以包括第一可插入列数据,可以包括第二可插入列数据,其中第一可插入列数据为根据ECC纠错模块在NAND闪存读写过程中记录的纠错数据所对应的列数据和第二可插入列数据得到的数据,第二可插入列数据为对于同一生产批次的NAND闪存在出厂前测试得到的列数据。
可以理解的是,同一生产批次的NAND闪存所使用的制作所使用的材料、制作工艺、制作所使用的器械等条件一样,那么对于同一生产批次的NAND闪存所存在的问题具有普遍性,出问题的位线大概率是一样的,可以将同一生产批次在出厂前抽检测试,得到问题列数据,然后可以根据问题列数据确定第二可插入列数据,即从该NAND闪存的所有列数据中剔除问题列数据,从而得到第二可插入列数据,在写操作的过程中,只将用户数据写入至第二可插入列数据对应的列中。
在一些可选的实施例中,列管理模块中的固件初始化配置列映射表可以包括第一可插入列数据,其中,第一可插入列数据的生成方法包括:先在对NAND闪存写入或者读取数据过程中,记录ECC编码模块对用户数据的纠错结果,纠错结果包括出现错误数据所对应的列数据,然后根据纠错结果确定存在问题的候选列数据,即将所有存在问题的列数据均定义为候选列数据,接着在NAND闪存达到使用阈值的情况下,使用阈值包括至少如下之一:NAND闪存使用的时间长度;NAND闪存读写次数,即NAND闪存到达了生命后期,在NAND闪存的生命后期出现问题的列必然会增加,出厂时所测试得到的第二可插入列数据已经无法确保现阶段的NAND闪存的可靠,那么,此时需要获取候选列数据的错误记录次数,再根据错误记录次数从候选列数据中确定目标问题列数据,将错误记录次数大于的次数阈值的候选列确定目标问题列数据,然后结合第二可插入列数据,从第二可插入列数据中剔除目标问题列数据确定第一可插入列数据,从而可以在NAND闪存在生命周期的前中后期均可满足用户的可靠性要求。
在一些可选的实施例中,本实施例的提高闪存可靠性的方法应用于图2的控制器,与图1的控制器区别在于随机化模块和NAND闪存存储阵列之间设置有第一DMA通道和第二DMA通道,列管理模块设置在第二DMA通道上,那么在第三用户数据所写入的NAND闪存的写入块中不存在问题列数据的情况下,可以通过第一DMA通道将用户数据写入至NAND闪存存储阵列的可插入列中;而在第三用户数据所写入的NAND闪存的写入块中存在问题列数据的情况下,通过第二DMA通道的列管理模块将第三用户数据写入至NAND闪存存储阵列的可插入列中。在本实施例的技术方案中,根据不同的目标写入块的情况,分别通过第一DMA通道和第二DMA通道对第三用户数据进行传输,在目标写入块不存在问题列的情况下,无需执行列管理模块的处理步骤,可以进一步提高NAND闪存的写入速度。
如图6所示,图6是本发明另一个实施例提供的提高闪存可靠性的方法的流程图,本发明实施例的提高闪存可靠性的方法可以包括但不限于包括步骤S610、步骤S620、步骤S630、步骤S640和步骤S650。
步骤S610,接收读取用户数据指令;
步骤S620,根据读取用户数据指令从NAND闪存存储阵列中读取用户数据,并通过列管理模块对NAND闪存存储阵列中的问题列对应的用户数据进行过滤,得到第四用户数据,固件初始化配置列映射表表征指定读操作过滤的列数据;
步骤S630,通过反随机化模块将第四用户数据进行数据反随机化处理,得到第五用户数据,第五用户数据为对第四用户数据反随机化处理后的数据;
步骤S640,通过ECC编码模块对第五用户数据进行解码纠错处理,得到第六用户数据,第六用户数据为对第五用户数据纠错后的数据;
步骤S650,输出第六用户数据。
具体地,本实施例的提高闪存可靠性的方法应用于图3的控制器,当用户需要从NAND闪存读取用户数据时,控制器会接收到读取用户数据指令,然后根据读取用户数据指令从NAND闪存存储阵列中读取用户数据,并通过列管理模块对NAND闪存存储阵列中的问题列对应的用户数据进行过滤,得到第四用户数据,固件初始化配置列映射表表征指定读操作过滤的列数据,再通过反随机化模块将第四用户数据进行数据反随机化处理,得到第五用户数据(第五用户数据为对第四用户数据反随机化处理后的数据),反随机化处理能够还原得到真实的第五用户数据,然后将第五用户数据传输至ECC解码模块,通过ECC解码模块对第五用户数据进行解码纠错处理,得到纠错后的第六用户数据,能够有效纠正用户数据读操作处理过程中所出现的错误,并输出第六用户数据。即通过ECC解码模块、反随机化模块以及列管理模块的相互作用,通过上述功能硬件IP化,以最小的硬件开销,软硬件结合有效过滤错误的存储单元,把控制器的硬件ECC纠错模块最大程度地应用于随机错误,保证数据的可靠性和读操作的稳定性,最大程度保证了数据的纠错能力,确保产品在生命周期中的数据可读性,从而有效提高闪存可靠性。
需要说明的是,列管理模块中的固件初始化配置列映射表是通过固件流程配置,在产品固件上电配置一次即可使用。
需要说明的是,列管理模块中的固件初始化配置列映射表可以包括第一过滤列数据,可以包括第二过滤列数据,其中第一过滤列数据为根据ECC解码模块在NAND闪存读操作过程中记录的纠错数据所对应的列数据和第二过滤列数据得到的数据,第二过滤列数据为对于同一生产批次的NAND闪存在出厂前测试得到的列数据。
可以理解的是,同一生产批次的NAND闪存所使用的制作所使用的材料、制作工艺、制作所使用的器械等条件一样,那么对于同一生产批次的NAND闪存所存在的问题具有普遍性,出问题的位线大概率是一样的,可以将同一生产批次在出厂前抽检测试,得到问题列数据,然后可以将问题列数据确定第二过滤列数据,在写操作的过程中,不将读取的第二过滤列数据对应的列中数据传输至ECC解码模块进行纠错处理,以最小的硬件开销,软硬件结合有效过滤错误的存储单元,把控制器的硬件ECC纠错模块最大程度地应用于随机错误。
在一些可选的实施例中,列管理模块中的固件初始化配置列映射表包括第一过滤列数据,其中,第一过滤列数据的生成方法包括:先在对NAND闪存写入或者读取数据过程中,记录ECC纠错模块对用户数据的纠错结果,纠错结果包括出现错误数据所对应的列数据,然后根据纠错结果确定存在问题的候选列数据,即将所有存在问题的列数据均定义为候选列数据,接着在NAND闪存达到使用阈值的情况下,使用阈值包括至少如下之一:NAND闪存使用的时间长度;NAND闪存读写次数,即NAND闪存到达了生命后期,在NAND闪存的生命后期出现问题的列必然会增加,出厂时所测试得到的第二过滤列数据已经无法确保现阶段的NAND闪存的可靠,那么,此时需要获取候选列数据的错误记录次数,再根据错误记录次数从候选列数据中确定目标问题列数据,将错误记录次数大于的次数阈值的候选列确定目标问题列数据,然后结合第二过滤列数据,第二过滤列数据数据中添加目标问题列数据确定第一过滤列数据,从而可以在NAND闪存在生命周期的前中后期均可满足用户的可靠性要求。
在一些可选的实施例中,本实施例的提高闪存可靠性的方法应用于图4的控制器,与图1的控制器区别在于随机化模块和NAND闪存存储阵列之间设置有第一DMA通道和第二DMA通道,列管理模块设置在第二DMA通道上,那么在需要读取的用户数据所存储的NAND闪存的读取块中不存在问题列数据的情况下,可以通过第一DMA通道从NAND闪存存储阵列中读取用户数据;而在用户数据所存储的NAND闪存的读取块中存在问题列数据的情况下,可以通过第二DMA通道的列管理模块中固件初始化配置列映射表,将从NAND闪存存储阵列所读取的用户数据进行过滤处理,得到第四用户数据。在本实施例的技术方案中,根据不同的目标读取块的情况,分别通过第一DMA通道和第二DMA通道对用户数据进行读取,在读取块不存在问题列的情况下,无需执行列管理模块的处理步骤,可以进一步提高NAND闪存的读取速度。
另外,本发明的一个实施例提供了一种控制器,该控制器700设置有处理器710和存储器720,其中,处理器710和存储器720可以通过总线或者其他方式连接,图1中以通过总线连接为例。
存储器720作为一种非暂态计算机本发明一个实施例提供的用于执行提高闪存可靠性的方法的系统平台架构的示意图可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器720可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器720可选包括相对于处理器710远程设置的存储器。
控制器700能够实现上述实施例的提高闪存可靠性的方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例的提高闪存可靠性的方法,例如,执行以上描述的图5中的方法步骤S100至S400、图6中的方法步骤S610至S650。
此外,本发明的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,当计算机可执行指令用于执行上述控制器的提高闪存可靠性的方法,例如,执行以上描述的图5中的方法步骤S100至S400、图6中的方法步骤S610至S650。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本发明权利要求所限定的范围内。

Claims (8)

1.一种提高闪存可靠性的方法,其特征在于,应用于控制器,所述控制器包括ECC编码模块、随机化模块、列管理模块以及NAND闪存存储阵列,所述方法包括:
接收写入用户数据指令,所述写入用户数据指令表征将第一用户数据写入至NAND闪存;
根据所述写入用户数据指令通过所述ECC编码模块对所述第一用户数据进行编码纠错处理,得到第二用户数据,所述第二用户数据为对所述第一用户数据纠错后的数据;
通过所述随机化模块将所述第二用户数据进行数据随机化处理,得到第三用户数据,所述第三用户数据为对所述第二用户数据随机化处理后的数据;
通过所述列管理模块将所述第三用户数据写入至所述NAND闪存存储阵列的可插入列中,所述列管理模块配置有固件初始化配置列映射表,所述固件初始化配置列映射表表征指定写入时可插入列数据;
所述固件初始化配置列映射表包括第一可插入列数据,所述第一可插入列数据根据ECC纠错模块在NAND闪存读写过程中记录的纠错数据所对应的列数据和第二可插入列数据得到,所述第二可插入列数据为对于同一生产批次的NAND闪存在出厂前测试得到的列数据,所述ECC纠错模块包括ECC编码模块和ECC解码模块。
2.根据权利要求1所述的方法,其特征在于,所述第一可插入列数据的生成方法包括:
在对所述NAND闪存写入或者读取数据过程中,记录所述ECC编码模块对所述用户数据的纠错结果;
根据所述纠错结果确定存在问题的候选列数据;
在所述NAND闪存达到使用阈值的情况下,获取所述候选列数据的错误记录次数,所述使用阈值包括至少如下之一:所述NAND闪存使用的时间长度;所述NAND闪存读写次数;
根据所述错误记录次数从所述候选列数据中确定目标问题列数据;
从所述第二可插入列数据中剔除所述目标问题列数据确定所述第一可插入列数据。
3.根据权利要求1所述的方法,其特征在于,所述随机化模块和所述NAND闪存存储阵列之间设置有第一DMA通道和第二DMA通道,所述列管理模块设置在所述第二DMA通道上,在所述通过所述随机化模块将所述第二用户数据进行数据随机化处理,得到第三用户数据之后,所述方法包括:
在所述第三用户数据所写入的NAND闪存的写入块中不存在问题列数据的情况下,通过所述第一DMA通道将所述用户数据写入至所述NAND闪存存储阵列的可插入列中;
在所述第三用户数据所写入的NAND闪存的写入块中存在问题列数据的情况下,通过所述第二DMA通道的所述列管理模块将所述第三用户数据写入至所述NAND闪存存储阵列的可插入列中。
4.一种提高闪存可靠性的方法,其特征在于,应用于控制器,所述控制器包括ECC解码模块、反随机化模块、列管理模块以及NAND闪存存储阵列,所述方法包括:
接收读取用户数据指令;
根据所述读取用户数据指令从所述NAND闪存存储阵列中读取用户数据,并通过所述列管理模块对所述NAND闪存存储阵列中的问题列对应的用户数据进行过滤,得到第四用户数据,所述列管理模块配置有固件初始化配置列映射表,所述固件初始化配置列映射表表征指定读操作过滤的列数据;
通过所述反随机化模块将所述第四用户数据进行数据反随机化处理,得到第五用户数据,所述第五用户数据为对所述第四用户数据反随机化处理后的数据;
通过所述ECC解码模块对所述第五用户数据进行解码纠错处理,得到第六用户数据,所述第六用户数据为对所述第五用户数据纠错后的数据;
输出所述第六用户数据;
所述固件初始化配置列映射表包括第一过滤列数据,所述第一过滤列数据根据ECC纠错模块在NAND闪存读写过程中记录的纠错数据所对应的列数据和第二过滤列数据得到,所述第二过滤列数据为对于同一生产批次的NAND闪存在出厂前测试得到的列数据,所述ECC纠错模块包括ECC编码模块和ECC解码模块。
5.根据权利要求4所述的方法,其特征在于,所述第一过滤列数据的生成方法包括:
在对所述NAND闪存读取或者写入用户数据过程中,记录所述ECC编码模块对所述用户数据的纠错结果;
根据所述纠错结果确定存在问题的候选列数据;
在所述NAND闪存达到使用阈值的情况下,获取所述候选列数据的错误记录次数,所述使用阈值包括至少如下之一:所述NAND闪存使用的时间长度;所述NAND闪存读写次数;
根据所述错误记录次数从所述候选列数据中确定目标问题列数据;
从所述第二过滤列数据中增加所述目标问题列数据确定所述第一过滤列数据。
6.根据权利要求4所述的方法,其特征在于,所述反随机化模块和所述NAND闪存存储阵列之间设置有第一DMA通道和第二DMA通道,所述列管理模块设置在所述第二DMA通道上,在所述通过所述反随机化模块将所述第四用户数据进行数据反随机化处理,得到第五用户数据之前,所述方法还包括:
在需要读取所述用户数据所对应的NAND闪存的读取块中不存在问题列数据的情况下,通过所述第一DMA通道从所述NAND闪存存储阵列中读取所述用户数据;
在需要读取所述用户数据所对应的NAND闪存的读取块中存在问题列数据的情况下,通过所述第二DMA通道的所述列管理模块将从所述NAND闪存存储阵列获取的用户数据进行过滤处理,得到所述第四用户数据。
7.一种控制器,其特征在于,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行权利要求1至6任一项所述方法的步骤。
8.一种计算机存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6任一项所述方法的步骤。
CN202310366662.XA 2023-04-06 2023-04-06 一种提高闪存可靠性的方法、控制器和计算机存储介质 Active CN116521432B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310366662.XA CN116521432B (zh) 2023-04-06 2023-04-06 一种提高闪存可靠性的方法、控制器和计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310366662.XA CN116521432B (zh) 2023-04-06 2023-04-06 一种提高闪存可靠性的方法、控制器和计算机存储介质

Publications (2)

Publication Number Publication Date
CN116521432A CN116521432A (zh) 2023-08-01
CN116521432B true CN116521432B (zh) 2024-01-09

Family

ID=87389473

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310366662.XA Active CN116521432B (zh) 2023-04-06 2023-04-06 一种提高闪存可靠性的方法、控制器和计算机存储介质

Country Status (1)

Country Link
CN (1) CN116521432B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257714B1 (en) * 1999-10-19 2007-08-14 Super Talent Electronics, Inc. Electronic data storage medium with fingerprint verification capability
CN101622674A (zh) * 2006-12-24 2010-01-06 晟碟以色列有限公司 利用随机化抑制错误的闪存装置、系统和方法
CN109542667A (zh) * 2018-10-26 2019-03-29 珠海妙存科技有限公司 一种提高nand闪存数据可靠性的方法及装置
CN111813591A (zh) * 2020-07-03 2020-10-23 深圳市国微电子有限公司 Nand Flash的数据纠错方法、装置、电子设备及存储介质
CN115904798A (zh) * 2023-03-09 2023-04-04 苏州萨沙迈半导体有限公司 存储器的纠错检错方法、系统以及控制器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257714B1 (en) * 1999-10-19 2007-08-14 Super Talent Electronics, Inc. Electronic data storage medium with fingerprint verification capability
CN101622674A (zh) * 2006-12-24 2010-01-06 晟碟以色列有限公司 利用随机化抑制错误的闪存装置、系统和方法
CN109542667A (zh) * 2018-10-26 2019-03-29 珠海妙存科技有限公司 一种提高nand闪存数据可靠性的方法及装置
CN111813591A (zh) * 2020-07-03 2020-10-23 深圳市国微电子有限公司 Nand Flash的数据纠错方法、装置、电子设备及存储介质
CN115904798A (zh) * 2023-03-09 2023-04-04 苏州萨沙迈半导体有限公司 存储器的纠错检错方法、系统以及控制器

Also Published As

Publication number Publication date
CN116521432A (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
US11334413B2 (en) Estimating an error rate associated with memory
US11386952B2 (en) Memory access module for performing a plurality of sensing operations to generate digital values of a storage cell in order to perform decoding of the storage cell
KR102172893B1 (ko) 판독 레벨 캘리브레이션 기능을 갖는 메모리 디바이스
US10521292B2 (en) Error correction code unit, self-test method and associated controller applied to flash memory device for generating soft information
US9799405B1 (en) Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
US8578242B1 (en) Data storage device employing seed array for data path protection
US20170345489A1 (en) Solid state storage device using state prediction method
US20120317463A1 (en) Memory controller
US20100217919A1 (en) Memory controller, semiconductor memory device and control method thereof
CN105869675B (zh) 半导体器件及其操作方法
US9620227B1 (en) Characterizing and operating a non-volatile memory device
CN111813591B (zh) Nand Flash的数据纠错方法、装置、电子设备及存储介质
JP2012133865A (ja) Nandフラッシュメモリの劣化早期検知
CN112447255A (zh) 存储器子系统的读取电压辅助制造测试
US11532364B2 (en) Controller and operation method thereof
US20190227788A1 (en) Memory system and operating method thereof
KR102333140B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US8458562B1 (en) Secondary memory element for non-volatile memory
CN116521432B (zh) 一种提高闪存可靠性的方法、控制器和计算机存储介质
CN113625947B (zh) 一种数据纠错方法、装置、设备及计算机可读存储介质
CN104679441A (zh) 时间估测方法、存储器存储装置、存储器控制电路单元
US8612824B2 (en) Semiconductor memory device and controlling method
US10084487B2 (en) Apparatuses and methods for erasure-assisted ECC decoding
US11106531B2 (en) Flash memory controller, storage device and reading method thereof
CN112447241A (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