CN117130822A - 一种用于预测nand闪存数据出错的方法及系统 - Google Patents
一种用于预测nand闪存数据出错的方法及系统 Download PDFInfo
- Publication number
- CN117130822A CN117130822A CN202311380568.6A CN202311380568A CN117130822A CN 117130822 A CN117130822 A CN 117130822A CN 202311380568 A CN202311380568 A CN 202311380568A CN 117130822 A CN117130822 A CN 117130822A
- Authority
- CN
- China
- Prior art keywords
- channel model
- data
- nand flash
- data unit
- voltage distribution
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000015654 memory Effects 0.000 claims abstract description 91
- 238000009826 distribution Methods 0.000 claims abstract description 61
- 238000012360 testing method Methods 0.000 claims abstract description 45
- 238000012549 training Methods 0.000 claims abstract description 44
- 238000010586 diagram Methods 0.000 claims abstract description 26
- 238000006243 chemical reaction Methods 0.000 claims abstract description 8
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000013500 data storage Methods 0.000 claims description 11
- 238000005299 abrasion Methods 0.000 claims description 6
- 238000004321 preservation Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 238000009827 uniform distribution Methods 0.000 claims description 4
- 230000007704 transition Effects 0.000 claims description 2
- 230000007306 turnover Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 10
- 239000010410 layer Substances 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 4
- 230000001186 cumulative effect Effects 0.000 description 4
- 238000005315 distribution function Methods 0.000 description 4
- 230000014759 maintenance of location Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 125000003275 alpha amino acid group Chemical group 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 235000011868 grain product Nutrition 0.000 description 1
- 229940095686 granule product Drugs 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/1044—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 with specific ECC/EDC distribution
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种用于预测NAND闪存数据出错的方法及系统,方法包括:S1、对于每一个数据单元,通过NAND闪存上板测试获得每一个数据单元的BER和电压分布信息;S2、将BER作为一级信道模型的训练样本,训练得到一级信道模型,并计算每一个数据单元的硬判决错误率;S3、将电压分布信息作为二级信道模型的训练样本,训练得到二级信道模型,通过二级信道模型计算获得每一个数据单元的软判决信息;S4、根据电压分布图的实际情况,对二级信道模型调整,加入实际电压分布中的非相邻状态之间变换的信息,得到符合NAND闪存特性的软判决信息。本发明能预测闪存错误率,使闪存的寿命预测与实际更加契合。
Description
技术领域
本发明涉及闪存存储技术领域,尤其涉及一种用于预测NAND闪存数据出错的方法及系统。
背景技术
近年来,闪存存储快速发展,市场出现了多种闪存颗粒产品,包括SLC(单层存储单元)、MLC(双层存储单元)、TLC(三层存储单元)和QLC(四层存储单元)等产品。每一种闪存颗粒产品的存储页容量也不尽相同,有1KB(1024 字节),也有2KB(2048字节),4KB(4096字节)和8KB(8192字节)以及具有更高效率的16KB(16384字节)等等,还有一个主要的区别就在于OOB(out of band)数据区的容量会有比较大的差别,一般情况下,页面容量越大,分配给该页面的OOB数据区的容量就会越大。OOB数据区的大部分容量都会用来存放存储主控中ECC(Error Checking and Correction,错误检查和纠正)算法的检验码字。
闪存具有存储数据非掉电易失的特性,它的内部存储结构是金属层-氧化层-半导体-场效应晶体管(MOSFET),里面的FG(Floating Gate,浮置栅极)就是真正数据的存储单元。数据在闪存中是以EC(Electrical Charge,电荷)的形式存储的,根据电荷的多少来判断这个存储单元中的数据是0或者1,而电荷的多少取决于CG(Control Gate,控制栅极)被施加的电压的高低,其控制着向存储单元中冲入电荷或者释放电荷。
对于基于NAND闪存的一些闪存产品,比如 SSD、SD、U盘等存储产品,闪存的单个存储单元会因为场效应管老化,产品使用环境温度,电压不稳定,强磁场等一些原因导致无法如预期的充入电荷或者释放电荷,从而导致存储产品上存储的数据出现一些固定位置或者随机位置的出错。为了保证NAND闪存中存储数据的安全,就需要对NAND闪存寿命进行预测,在使用NAND闪存的过程中,还需要配置适配的ECC算法。这些都需要一个能够真实准确反映NAND闪存数据出错的信道模型来支撑。
现有的闪存数据出错模型中,数据要么来自于NAND闪存上板测试收集到的数据,要么是来自于应用一些通用模型(比如BSC,AWGNC信道模型等)生成的随机数据。然而,这两种方法都存在一些问题,利用上板测试的数据,往往需要做大量的实验,并且花费很长时间才能收集到需要的原始数据;而利用通用模型生成随机数的方法,虽然可以快速的获得仿真需要的数据,但是却缺失了NAND闪存本身的一些出错特性,这样的数据出错模型,往往跟NAND闪存的实际结果相差甚远。
发明内容
本发明为了克服以上技术的不足,提供了一种用于预测NAND闪存数据出错的方法及系统。
本发明所提供的一种用于预测NAND闪存数据出错的方法及系统包含了一种非常实用地且在计算机和FPGA上都非常容易实现的两级数据出错模型,其中一级信道模型决定数据单元的硬判决错误率,二级信道模型生成调档读提供的软判决信息。采用本发明所述的方法及系统不仅可以预测NAND闪存错误率,使NAND闪存的寿命预测与实际的NAND闪存更加契合,也可以为ECC方案提供NAND闪存出错模型,进而优化ECC算法,改进ECC设计方案。
术语解释:
1、BER:Bit Error Rate,位出错概率。
2、BSC:Binary Symmetric Channel,二元对称信道。
3、AWGNC:Additive White Gaussian Noise Channel,加性高斯白噪声信道。
4、LLR:Loglikelihood Ratio,对数似然比。
5、ECC:Error Checking and Correcting,错误检查和纠正。
6、P/E:Program/Erase,编程/擦除。
7、PMF:probability mass function,概率质量函数。
8、CDF:Cumulative Distribution Function,累积分布函数。
9、RNG:Random Number Generator,随机数据发生器。
本发明克服其技术问题所采用的技术方案是:
一种用于预测NAND闪存数据出错的方法,包括步骤如下:
S1、对于每一个数据单元,通过NAND闪存上板测试获得每一个数据单元的BER和电压分布信息;
S2、将步骤S1中获取的BER作为一级信道模型的训练样本,通过训练得到一级信道模型,通过一级信道模型计算每一个数据单元的硬判决错误率;
S3、将步骤S1中的电压分布信息作为二级信道模型的训练样本,通过训练得到二级信道模型,并将步骤S2中获取的每一个数据单元的硬判决错误率作为二级信道模型中数据单元中的所有位置硬判决读取错误率,通过二级信道模型计算获得每一个数据单元的软判决信息;
S4、根据电压分布图的实际情况,对二级信道模型进行调整,加入实际电压分布中的非相邻状态之间变换的信息,得到符合NAND闪存特性的软判决信息。
进一步地,步骤S1中,数据单元至少为NAND闪存的一个块或NAND闪存的一个页面或ECC算法的一个码字。
进一步地,步骤S1具体包括:
S1.1、根据厂商的出厂坏块表,找出待测试对象的NAND 闪存中的若干个好块;
S1.2、确定测试参数,测试参数至少包括P/E磨损点和数据保存时间点;
S1.3、根据P/E磨损点,确定每一个好块的目标P/E值,并对所有好块进行人工磨损;
S1.4、数据保存时间测试:利用温箱对数据保存时间测试进行加速,根据步骤S1.2中设定的测试参数,设定温箱的运行时间和温度;
S1.5、在每一个数据保存时间点时,读取所有好块中的数据,对比写数据和读数据,获得每一个数据保存时间点的每一个数据单元的BER;通过多次调档读,然后收集每个电压档位下的数据,并与写数据比较、计算,获得每一个数据保存时间点的每一个数据单元的电压分布信息。
进一步地,步骤S2具体包括:
S2.1、将步骤S1获取的BER作为一级信道模型的训练样本,通过训练得到一级信道模型;
S2.2、将一级信道模型建模后得到的PMF 转换成逆向CDF,生成的逆向CDF将[0,1]区间的均匀分布值映射成相应的错误率;
S2.3、使用RNG生成[0,1]区间上的均匀分布值,最终获得该数据单元的硬判决错误率。
进一步地,步骤S3具体包括:
S3.1、将步骤S1中的电压分布信息作为二级信道模型的训练样本,通过训练得到二级信道模型;
S3.2、根据实际应用确定软判决中的读取次数,其中,读取次数小于等于NAND闪存厂商设定的最大电压阈值调档次数;
S3.3、二级信道建模后,获得多次读取把电压分布图分成的若干区域的概率,根据步骤S2中获取的每一个数据单元的硬判决错误率对软判决的每一个区域的概率进行缩放,并计算每一个区域对应的LLR值;
S3.4、利用步骤S2中每一个数据单元的硬判决错误率以获取该数据单元的每一位的翻转信息,然后使用RNG生成[0,1]区间上的均匀分布值,根据步骤S3.3中得到的软判决的每一个区域的概率和LLR值,最终获得该数据单元的软判决信息。
进一步地,步骤S4具体包括:
S4.1、利用步骤S1中使用的NAND闪存上板测试数据,获得存储单元的电压分布图;
S4.2、计算出电压分布图中非相邻状态之间的变换的概率,并设定为“被保留的存储单元”的概率;
S4.3、按照“被保留的存储单元”的概率,将该数据单元中的这些位强制赋值成最容易出错的区域的LLR值,即最大LLR值。
本发明还公开了一种用于预测NAND闪存数据出错的系统,包括:
NAND测试计算单元,对于每一个数据单元,用于通过NAND闪存上板测试获得每一个数据单元的BER和电压分布信息;
一级信道模型,用于将获取的BER作为一级信道模型的训练样本,通过训练得到一级信道模型,通过一级信道模型计算每一个数据单元的硬判决错误率;
二级信道模型,用于将获取的电压分布信息作为二级信道模型的训练样本,通过训练得到二级信道模型,并将获取的每一个数据单元的硬判决错误率作为二级信道模型中数据单元中的所有位置硬判决读取错误率,通过二级信道模型计算获得每一个数据单元的软判决信息;
微调单元,用于根据电压分布图的实际情况,对二级信道模型进行调整,加入实际电压分布中的非相邻状态之间变换的信息,得到符合NAND闪存特性的软判决信息。
本发明的有益效果是:
本发明利用两级信道模型,分别生成硬判决错误率和软判决信息,能够更好的拟合真实NAND闪存的实际出错行为,不仅仅统计了平均出错率,还考虑到NAND闪存的结构和出错特性,对出错率的统计进一步细分,统计出每个页面(page)的出错率,甚至细分到ECC算法的一个码字的出错率分布,能够更好的模拟真实的NAND闪存出错,了解NAND闪存的出错行为,不仅对NAND闪存寿命的预测更加准确,可以提供寿命预警信息,还可以为ECC方案提供NAND闪存出错模型,对ECC算法进行优化,进而改进ECC的设计方案。
附图说明
图1为本发明实施例1所述的用于预测NAND闪存数据出错的方法的流程示意图。
图2为本发明实施例1所述的基于非中心卡方分布的模型与NAND闪存测试数据之间的对比示意图。
图3为本发明实施例1所述的遵循格雷码映射为[111,110,100,000,010,011,001,101]的一款每个元胞3位的某种TLC NAND闪存的实测电压分布示意图。
图4为本发明实施例1所述的不同信道模型下的LDPC算法仿真对比图。
具体实施方式
为了便于本领域人员更好的理解本发明,下面结合附图和具体实施例对本发明做进一步详细说明,下述仅是示例性的不限定本发明的保护范围。
实施例1
如图1所示,本发明所述的一种用于预测NAND闪存数据出错的方法,包括步骤如下:
S1、对于每一个数据单元,通过NAND闪存上板测试获得每一个数据单元的BER和电压分布信息;
S2、将步骤S1中获取的BER作为一级信道模型的训练样本,通过训练得到一级信道模型,通过一级信道模型计算每一个数据单元的硬判决错误率;
S3、将步骤S1中的电压分布信息作为二级信道模型的训练样本,通过训练得到二级信道模型,并将步骤S2中获取的每一个数据单元的硬判决错误率作为二级信道模型中数据单元中的所有位置硬判决读取错误率,通过二级信道模型计算获得每一个数据单元的软判决信息;
S4、根据电压分布图的实际情况,对二级信道模型进行调整,加入实际电压分布中的非相邻状态之间变换的信息,得到符合NAND闪存特性的软判决信息。
如图1所示,本实施例所述的一种用于预测NAND闪存数据出错的方法具体过程如下:
本实施例不限制闪存颗粒的类型,即SLC(单层存储单元)、MLC(双层存储单元)、TLC(三层存储单元)和QLC(四层存储单元)都可适用;同样对收集的数据样本量也不做要求,一般来说,样本量越大,经过信道拟合之后的结果也会更加精确。
步骤S1、对于每一个数据单元,通过NAND闪存上板测试获得每一个数据单元的BER和电压分布信息。
具体地,对于每一个数据单元,本实施例中,数据单元可以是任意长度的一个数据块,例如可以是NAND闪存的一个块(block),可以是NAND闪存的一个页面(page),也可以是ECC算法的一个码字,当然也并不局限于列举的这三种。其中,ECC算法的一个码字是1KB或2KB或4KB的数据,NAND闪存的一个页面(page)是4KB或8KB或16KB的数据,NAND闪存的一个块包括多个page,不同的NAND闪存会不同。然后,为每一个数据单元,通过NAND闪存的测试数据获得BER(Bit Error Rate,位出错概率)和电压分布信息。
本发明实施例中,采用少量的NAND闪存测试数据,比如每一个P/E点一个块。具体地,通过NAND闪存的上板测试获得BER的方法步骤,具体如下。
首先,根据厂商的出厂坏块表(bad block table),在测试盘中找出待测试对象的NAND 闪存中的若干个好块(block)。
确定测试参数,本实施例中所述的测试参数至少包括P/E磨损点和数据保存时间(retention time)点。
根据P/E磨损点,确定每一个好块的目标P/E值,并对所有好块进行人工磨损以磨损到目标P/E值。所述的人工磨损就是对块进行擦写操作,磨损次数就是对应的目标P/E值,例如,一个块的目标P/E值是1000,那么就需要对该块进行人工擦写1000次。
数据保存时间测试:因为一般数据保存时间测试的时间比较久,所以需要对数据保存时间测试进行加速实验,加速实验一般是通过温箱进行的,加速后数据保存时间测试的时间就会变短,可以节约大量时间,根据上述设定的测试参数,设定温箱的运行时间和温度。例如,正常的数据保存时间一般是3个月,但实际操作过程中不会把NAND闪存芯片放置3个月后再读数据,而是利用温箱进行加速,设25℃(室温)下需要3个月的时间,Ea值为1,放置在80℃的温箱中只需要2小时45分钟,放置在60℃的温箱只需要24小时,具体根据实际情况设定相应的温度以达到所需要的时间。
本实施例中,加速实验中用到的加速因子的计算公式为:
(1)
式(1)中,是加速因子;/>是激活能,不同的产品的激活能是不一样的,由闪存厂商提供;/>是玻尔兹曼常数,其值为8.617385*10-5;/>是使用条件下非加速状态下的温度值,此处的温度值为绝对温度值,以/>(开尔文)做单位;/>是测试条件下加速状态下的温度值,此处的温度值是绝对温度值,以/>(开尔文)做单位。
S2、将步骤S1中获取的BER作为一级信道模型的训练样本,通过训练得到一级信道模型,通过一级信道模型计算每一个数据单元的硬判决错误率。
具体地,步骤S2具体包括如下:
将步骤S1中获取的BER作为一级信道模型的训练样本,经过训练,得到与训练样本最接近的参数,然后得到一级信道模型。
将一级信道模型建模后得到的 PMF(概率质量函数)转换成逆向CDF(累积分布函数),生成的逆向CDF将[0,1]区间的均匀分布值映射成相应的错误率。
本实施例中,逆向CDF函数是以下形式:
(2)
式(2)中,表示位出错数为/>的数据单位的概率,/>表示数据单元的最大错误位数,/>表示位出错数大于/>的数据单元的概率。
在本发明的实施例中,一级信道模型使用的是基于非中心卡方分布的模型,图2中显示了基于非中心卡方分布的模型与NAND闪存测试数据之间的比较,图2中,曲线“chModel”代表本发明中的信道模型,“NAND measured”代表NAND闪存上板测试结果,从图2中可以看出,基于非中心卡方分布的模型与本实施例的测量数据非常匹配,所以基于非中心卡方分布的模型非常适合本实施例的测量数据。
一级信道模型使用的PMF(概率质量函数)具有以下形式:
(3)
式(3)中,,/>表示自由度参数,/>表示非中心性参数;/>表示PMF的测量值或者经过平滑处理之后的值。/>是一个比例因子。/>表示尺度参数,取值范围为0~1。/>是一个常量,取值范围为/>。
然后,使用RNG(随机数据发生器)生成[0,1]区间上的均匀分布值,最终获得该数据单元的硬判决错误率。
对每一个P/E磨损点+数据保存时间的测试数据进行训练建模,最终生成一个量化的逆向CDF(累积分布函数)查找表,以便能够在使用该信道模型时将均匀分布转换成误差概率。使用本发明中的一级信道模型生成的数据的出错分布,跟BSC信道相比,与NAND闪存测试结果的吻合度提升了69%左右,如表1所示,本发明中的一级信道模型与BSC信道模型生成的数据的出错分布相比,可以看出本发明的一级信道模型生成的数据的出错平均偏差为6.9%,而BSC信道模型生成的数据的出错平均偏差为75.9%,两者相差69%。
表1 本发明中的一级信道模型与BSC信道生成的数据的出错分布对比
步骤S3、将步骤S1中的电压分布信息作为二级信道模型的训练样本,通过训练得到二级信道模型,并将步骤S2中获取的每一个数据单元的硬判决错误率作为二级信道模型中数据单元中的所有位置硬判决读取错误率,通过二级信道模型计算获得每一个数据单元的软判决信息。
具体地,本实施例以LDPC的软判决信息来说明,对于具有n次调档多次读取的LDPC的软判决信息,每一个数据单元的BER都会链接到n+1个阈值,这些阈值会将[0,1]区间划分为n+2个区域,这些区域也都是由二级信道模型来定义的。具体的,LDPC的软判决信息需要多读几次来获取,考虑到具有给定状态的存储单元的电压分布的整个范围,硬判决读取将其分为两个区域,另外的多次的调档读进一步将这两个区域分为若干区域,每一个区域的概率只取决于该区域中的PDF(probability density function概率密度函数)或者PMF(probability mass function概率质量函数)的积分或者求和。这里读的次数可根据实际需求来设定,范围为该NAND闪存厂商设定的最大电压阈值调档次数。以2次调档读的LDPC的软判决信息来举例说明,LDPC要求的软判决信息不止包含了2次调档读将电压分布曲线分成的4个区域分别对应的概率,也包含了每一个区域对应的LLR值。一旦每一个区域的概率确定了,那么它们对应的LLR值也就可以计算出来。这里确定每一个区域的概率可以通过给定的P/E磨损点+数据保存时间点下的上板测试数据的电压分布曲线的信息,对于不同的电压阈值偏移,可以确定相应区域的概率,然后根据一级信道模型确定的硬判决错误率来进行缩放该概率,假设一级信道模型的硬判决错误率为p,二级信道模型的多次读取确定的每一个区域的概率,如果判断该数据块中当前位是需要翻转的,那么就是将[0,1]的概率缩到[0,p],如果判断该数据块中当前位是不需要翻转的,那么就是将[0,1]的概率缩到[0,1-p]。这里,假设每一个数据单元中的所有位置都具有相同的硬判决读取错误率,这个值的大小由一级信道模型来确定。使用RNG(随机数据发生器)生成[0,1]区间上的均匀分布值,最终获得该数据单元的软判决信息。
步骤S4、根据电压分布图的实际情况,对二级信道模型进行调整,加入实际电压分布中的非相邻状态之间变换的信息,得到符合NAND闪存特性的软判决信息。
由于本发明所述的方法是从复杂的存储单元的电压分布中提取了一个简单的二级信道模型,因此可能无法获取到电压分布的非相邻的状态之间的变换信息,比如图3中所示的遵循格雷码映射为[111,110,100,000,010,011,001,101]的一款每个元胞3位的某种TLC NAND闪存的实测电压分布图示例中,有一些存储单元的电压下降,由状态“111”变换成了“101”,这样的不规则信息通过本实施例所述的二级信道模型是无法模拟仿真出来的。可以通过设置一些“被保留的存储单元”的方法来模拟这种不规则信息的行为。首先选择一个概率或者“被保留的存储单元”的个数的范围,然后将一些位错误强行转换为“最强”错误,还是以LDPC的软判决信息来说明,对于LDPC的软判决信息而言,是强制进入最大LLR量级的错误区域。所述的“被保留的存储单元”的个数可以通过研究存储单元的电压分布来确定,具体方法为:利用NAND闪存的测试数据,得到该芯片的电压分布图,可以统计出非相邻的两个状态之间的变换的存储单元的个数,比如说状态“111”变换成状态“101”的个数占整个数据的比例,在所述的二级信道模型中可以根据这个比例来确定“被保留的存错单元”的个数,并将这个信息体现到所述的信二级道模型中,使得它更加符合实际NAND闪存的出错。如图4所示,使用本发明中的两级信道模型,LDPC算法仿真出来的结果,跟BSC信道相比,与NAND闪存实测结果的吻合度更高,图4中,纵坐标“SFR”的英文全称是Sector FailureRate,表示LDPC没有纠正过来的数据单元的比例;横坐标“BER”的英文全称是Bit ErrorRate,表示位出错概率;曲线“LDPC,chModel”代表本发明中的信道模型;曲线“LDPC,BSC”代表BSC信道模型;曲线“LDPC,NAND measured”代表NAND闪存上板测试结果。
本发明的关键点在于可以利用少量的NAND闪存测试数据,进行两级模型的数据出错模型拟合,生成比较贴合于NAND闪存实际出错行为的数据出错模型,本发明利用两级信道模型,分别生成硬判决错误率和软判决信息,能够更好的拟合真实NAND闪存的实际出错行为,不仅统计了平均出错率,还考虑到NAND闪存的结构和出错特性,对出错率的统计进一步细分,统计出每个页面(page)的出错率,甚至细分到ECC算法的一个码字的出错率分布,能够更好的模拟真实的NAND闪存出错,了解NAND闪存的出错行为,不仅对NAND闪存寿命的预测更加准确,可以提供寿命预警信息,还可以为ECC方案提供NAND闪存出错模型,对ECC算法进行优化,进而改进ECC的设计方案。
实施例2
本实施例还公开了一种用于预测NAND闪存数据出错的系统,包括:
NAND测试计算单元,对于每一个数据单元,用于通过NAND闪存上板测试获得每一个数据单元的BER和电压分布信息;
一级信道模型,用于将获取的BER作为一级信道模型的训练样本,通过训练得到一级信道模型,通过一级信道模型计算每一个数据单元的硬判决错误率;
二级信道模型,用于将获取的电压分布信息作为二级信道模型的训练样本,通过训练得到二级信道模型,并将获取的每一个数据单元的硬判决错误率作为二级信道模型中数据单元中的所有位置硬判决读取错误率,通过二级信道模型计算获得每一个数据单元的软判决信息;
微调单元,用于根据电压分布图的实际情况,对二级信道模型进行调整,加入实际电压分布中的非相邻状态之间变换的信息,得到符合NAND闪存特性的软判决信息。
上述系统中各个单元或模型的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。
以上仅描述了本发明的基本原理和优选实施方式,本领域人员可以根据上述描述做出许多变化和改进,这些变化和改进应该属于本发明的保护范围。
Claims (7)
1.一种用于预测NAND闪存数据出错的方法,其特征在于,包括步骤如下:
S1、对于每一个数据单元,通过NAND闪存上板测试获得每一个数据单元的BER和电压分布信息;
S2、将步骤S1中获取的BER作为一级信道模型的训练样本,通过训练得到一级信道模型,通过一级信道模型计算每一个数据单元的硬判决错误率;
S3、将步骤S1中的电压分布信息作为二级信道模型的训练样本,通过训练得到二级信道模型,并将步骤S2中获取的每一个数据单元的硬判决错误率作为二级信道模型中数据单元中的所有位置硬判决读取错误率,通过二级信道模型计算获得每一个数据单元的软判决信息;
S4、根据电压分布图的实际情况,对二级信道模型进行调整,加入实际电压分布中的非相邻状态之间变换的信息,得到符合NAND闪存特性的软判决信息。
2.根据权利要求1所述的用于预测NAND闪存数据出错的方法,其特征在于,步骤S1中,数据单元至少为NAND闪存的一个块或NAND闪存的一个页面或ECC算法的一个码字。
3.根据权利要求1所述的用于预测NAND闪存数据出错的方法,其特征在于,步骤S1具体包括:
S1.1、根据厂商的出厂坏块表,找出待测试对象的NAND 闪存中的若干个好块;
S1.2、确定测试参数,测试参数至少包括P/E磨损点和数据保存时间点;
S1.3、根据P/E磨损点,确定每一个好块的目标P/E值,并对所有好块进行人工磨损;
S1.4、数据保存时间测试:利用温箱对数据保存时间测试进行加速,根据步骤S1.2中设定的测试参数,设定温箱的运行时间和温度;
S1.5、在每一个数据保存时间点时,读取所有好块中的数据,对比写数据和读数据,获得每一个数据保存时间点的每一个数据单元的BER;通过多次调档读,然后收集每个电压档位下的数据,并与写数据比较、计算,获得每一个数据保存时间点的每一个数据单元的电压分布信息。
4.根据权利要求1所述的用于预测NAND闪存数据出错的方法,其特征在于,步骤S2具体包括:
S2.1、将步骤S1获取的BER作为一级信道模型的训练样本,通过训练得到一级信道模型;
S2.2、将一级信道模型建模后得到的PMF 转换成逆向CDF,生成的逆向CDF将[0,1]区间的均匀分布值映射成相应的错误率;
S2.3、使用RNG生成[0,1]区间上的均匀分布值,最终获得该数据单元的硬判决错误率。
5.根据权利要求1所述的用于预测NAND闪存数据出错的方法,其特征在于,步骤S3具体包括:
S3.1、将步骤S1中的电压分布信息作为二级信道模型的训练样本,通过训练得到二级信道模型;
S3.2、根据实际应用确定软判决中的读取次数,其中,读取次数小于等于NAND闪存厂商设定的最大电压阈值调档次数;
S3.3、二级信道建模后,获得多次读取把电压分布图分成的若干区域的概率,根据步骤S2中获取的每一个数据单元的硬判决错误率对软判决的每一个区域的概率进行缩放,并计算每一个区域对应的LLR值;
S3.4、利用步骤S2中每一个数据单元的硬判决错误率以获取该数据单元的每一位的翻转信息,然后使用RNG生成[0,1]区间上的均匀分布值,根据步骤S3.3中得到的软判决的每一个区域的概率和LLR值,最终获得该数据单元的软判决信息。
6.根据权利要求1所述的用于预测NAND闪存数据出错的方法,其特征在于,步骤S4具体包括:
S4.1、利用步骤S1中使用的NAND闪存上板测试数据,获得存储单元的电压分布图;
S4.2、计算出电压分布图中非相邻状态之间的变换的概率,并设定为“被保留的存储单元”的概率;
S4.3、按照“被保留的存储单元”的概率,将该数据单元中的这些位强制赋值成最容易出错的区域的LLR值,即最大LLR值。
7.一种用于预测NAND闪存数据出错的系统,其特征在于,包括:
NAND测试计算单元,对于每一个数据单元,用于通过NAND闪存上板测试获得每一个数据单元的BER和电压分布信息;
一级信道模型,用于将获取的BER作为一级信道模型的训练样本,通过训练得到一级信道模型,通过一级信道模型计算每一个数据单元的硬判决错误率;
二级信道模型,用于将获取的电压分布信息作为二级信道模型的训练样本,通过训练得到二级信道模型,并将获取的每一个数据单元的硬判决错误率作为二级信道模型中数据单元中的所有位置硬判决读取错误率,通过二级信道模型计算获得每一个数据单元的软判决信息;
微调单元,用于根据电压分布图的实际情况,对二级信道模型进行调整,加入实际电压分布中的非相邻状态之间变换的信息,得到符合NAND闪存特性的软判决信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311380568.6A CN117130822A (zh) | 2023-10-24 | 2023-10-24 | 一种用于预测nand闪存数据出错的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311380568.6A CN117130822A (zh) | 2023-10-24 | 2023-10-24 | 一种用于预测nand闪存数据出错的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117130822A true CN117130822A (zh) | 2023-11-28 |
Family
ID=88854876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311380568.6A Pending CN117130822A (zh) | 2023-10-24 | 2023-10-24 | 一种用于预测nand闪存数据出错的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117130822A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117393025A (zh) * | 2023-12-08 | 2024-01-12 | 杭州阿姆科技有限公司 | 生成符合nand数据特征带软判决信息的数据的方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104575618A (zh) * | 2015-01-13 | 2015-04-29 | 重庆大学 | 一种基于闪存错误校验的读写调制技术 |
CN105159840A (zh) * | 2015-10-16 | 2015-12-16 | 华中科技大学 | 一种闪存器件的软信息提取方法 |
CN108154902A (zh) * | 2017-12-22 | 2018-06-12 | 联芸科技(杭州)有限公司 | 存储器的高可靠性错误检测方法、读取控制方法及装置 |
CN110515760A (zh) * | 2019-08-29 | 2019-11-29 | 北京计算机技术及应用研究所 | 一种基于机器学习的ldpc闪存纠错方法 |
US20200177209A1 (en) * | 2018-11-30 | 2020-06-04 | Kabushiki Kaisha Toshiba | Novel dynamic detection for flash memory |
US20200234772A1 (en) * | 2019-01-22 | 2020-07-23 | Samsung Electronics Co., Ltd. | Threshold estimation in nand flash devices |
CN111459706A (zh) * | 2020-01-16 | 2020-07-28 | 华中科技大学 | 一种nand闪存错误率预测方法及系统 |
US20200250030A1 (en) * | 2019-02-05 | 2020-08-06 | Kabushiki Kaisha Toshiba | Method and device for generating soft decision detection parameters |
CN112929033A (zh) * | 2021-01-26 | 2021-06-08 | 福州大学 | 基于深度学习的MLC型NAND闪存Polar-RNNA量化器的优化方法 |
CN113257332A (zh) * | 2021-04-08 | 2021-08-13 | 置富科技(深圳)股份有限公司 | 一种闪存的有效性预测方法、装置及存储介质 |
CN116434813A (zh) * | 2023-03-14 | 2023-07-14 | 瑞芯微电子股份有限公司 | 闪存检测方法、电子设备和存储介质 |
-
2023
- 2023-10-24 CN CN202311380568.6A patent/CN117130822A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104575618A (zh) * | 2015-01-13 | 2015-04-29 | 重庆大学 | 一种基于闪存错误校验的读写调制技术 |
CN105159840A (zh) * | 2015-10-16 | 2015-12-16 | 华中科技大学 | 一种闪存器件的软信息提取方法 |
CN108154902A (zh) * | 2017-12-22 | 2018-06-12 | 联芸科技(杭州)有限公司 | 存储器的高可靠性错误检测方法、读取控制方法及装置 |
US20200177209A1 (en) * | 2018-11-30 | 2020-06-04 | Kabushiki Kaisha Toshiba | Novel dynamic detection for flash memory |
US20200234772A1 (en) * | 2019-01-22 | 2020-07-23 | Samsung Electronics Co., Ltd. | Threshold estimation in nand flash devices |
US20200250030A1 (en) * | 2019-02-05 | 2020-08-06 | Kabushiki Kaisha Toshiba | Method and device for generating soft decision detection parameters |
CN110515760A (zh) * | 2019-08-29 | 2019-11-29 | 北京计算机技术及应用研究所 | 一种基于机器学习的ldpc闪存纠错方法 |
CN111459706A (zh) * | 2020-01-16 | 2020-07-28 | 华中科技大学 | 一种nand闪存错误率预测方法及系统 |
CN112929033A (zh) * | 2021-01-26 | 2021-06-08 | 福州大学 | 基于深度学习的MLC型NAND闪存Polar-RNNA量化器的优化方法 |
WO2022160847A1 (zh) * | 2021-01-26 | 2022-08-04 | 福州大学 | 基于深度学习的MLC型NAND闪存Polar-RNNA量化器的优化方法 |
CN113257332A (zh) * | 2021-04-08 | 2021-08-13 | 置富科技(深圳)股份有限公司 | 一种闪存的有效性预测方法、装置及存储介质 |
CN116434813A (zh) * | 2023-03-14 | 2023-07-14 | 瑞芯微电子股份有限公司 | 闪存检测方法、电子设备和存储介质 |
Non-Patent Citations (3)
Title |
---|
GUO, JIE: "Improving reliability and performance of NAND flash based storage system", 《PROQUEST》 * |
张旋;余娟;: "基于加权比特翻转的MLC型NAND闪存系统", 微电子学与计算机, no. 02 * |
阳小珊;朱立谷;张猛;张伟;: "NAND闪存编程干扰错误研究", 中国传媒大学学报(自然科学版), no. 03 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117393025A (zh) * | 2023-12-08 | 2024-01-12 | 杭州阿姆科技有限公司 | 生成符合nand数据特征带软判决信息的数据的方法 |
CN117393025B (zh) * | 2023-12-08 | 2024-03-15 | 杭州阿姆科技有限公司 | 生成符合nand数据特征带软判决信息的数据的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934666B2 (en) | Memory device with dynamic program-verify voltage calibration | |
US20220276930A1 (en) | Memory device with dynamic processing level calibration | |
US10402272B2 (en) | Memory device with dynamic programming calibration | |
US9104550B2 (en) | Physical levels deterioration based determination of thresholds useful for converting cell physical levels into cell logical values in an array of digital memory cells | |
US9153336B1 (en) | Decoder parameter estimation using multiple memory reads | |
US7983082B2 (en) | Apparatus and method of multi-bit programming | |
CN117130822A (zh) | 一种用于预测nand闪存数据出错的方法及系统 | |
Taranalli et al. | Channel models for multi-level cell flash memories based on empirical error analysis | |
CN111341375B (zh) | 一种面向TLC型NAND Flash的阈值电压获取方法 | |
CN109830255B (zh) | 一种基于特征量的闪存寿命预测方法、系统及存储介质 | |
CN107748722A (zh) | 一种保证固态硬盘中数据持续性的自适应数据刷新方法 | |
CN111813591A (zh) | Nand Flash的数据纠错方法、装置、电子设备及存储介质 | |
CN110837477A (zh) | 一种基于寿命预测的存储系统损耗均衡方法及装置 | |
CN110706735A (zh) | 一种NAND Flash存储器读阈值电压修复方法 | |
CN109871594A (zh) | 一种NAND Flash特性模型建立方法 | |
CN116259348A (zh) | 闪存最优读电压的预测方法及装置 | |
US11430529B2 (en) | Capacitance coupling parameter estimation in flash memories | |
CN111767165A (zh) | 数据处理方法、装置及控制设备 | |
CN117393025B (zh) | 生成符合nand数据特征带软判决信息的数据的方法 | |
CN109936374B (zh) | 一种基于原模图外信息转移的纠错性能评估方法 | |
CN117524284B (zh) | 编程校验电压设定方法、编程方法、装置、芯片及设备 | |
CN116092568A (zh) | 闪存llr的预测方法及装置 | |
Zedaka et al. | Neural Modulation for Flash Memory: An Unsupervised Learning Framework for Improved Reliability | |
CN116521402A (zh) | 一种高精度闪存芯片可靠性预测模型构建方法及装置 | |
Ramos | Multivariate joint tail modelling and score tests of independence |
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 |