CN115295057A - 一种快速获取nand最优读取数据的方法 - Google Patents
一种快速获取nand最优读取数据的方法 Download PDFInfo
- Publication number
- CN115295057A CN115295057A CN202211198514.3A CN202211198514A CN115295057A CN 115295057 A CN115295057 A CN 115295057A CN 202211198514 A CN202211198514 A CN 202211198514A CN 115295057 A CN115295057 A CN 115295057A
- Authority
- CN
- China
- Prior art keywords
- voltage threshold
- data
- optimal
- reading
- gear
- 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
Images
Classifications
-
- 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
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- 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
Landscapes
- Read Only Memory (AREA)
Abstract
本发明公开了一种快速获取NAND最优读取数据的方法,包括:S1、选取读数据的电压阈值偏移范围;S2、读取并存储数据;S3、依次计算每个电压阈值的最优电压阈值,组成最优电压阈值表;S4、逐比特判定最优电压阈值:判定要恢复的数据比特类型,判断出用哪个电压阈值读取当前比特数据,并确定出该电压阈值的最优电压阈值;S5、根据S4得到的该电压阈值的最优电压阈值,完成当前比特数据的恢复;S6、重复S4~S5,每次恢复一个比特数据,依次逐比特分析并恢复数据,最后恢复出NAND闪存颗粒对应最优电压阈值粒度的最优读数据。本发明能提高最优读取数据的准确性和精度;缩短数据读取的总时长,降低数据存储成本。
Description
技术领域
本发明涉及数据存储技术领域,具体涉及一种快速获取NAND最优读取数据的方法。
背景技术
固态硬盘(Solid State Drive,简称SSD),又称固态驱动器,是用固态电子存储芯片阵列制成的硬盘。
由于NAND闪存颗粒的性质决定,一个数据页(page)中数据不出错的概率是极低的,尤其是随着技术的演进,一个单元中存储的数据比特越来越多,在有一定的数据保存时间之后,几乎不怎么会遇到数据页中一个比特出错都没有的情况。获取到最优读取数据的意义在于,经过不断的写入和擦除数据以及在不同的使用条件下,仍能保证写入的数据在一定的保存时间后可以被正确的读取出来,这个正确的读取是指一个比特出错都没有。达到这个正确读取的目标的前提是,获取比较好的读取数据,再经过纠错算法把所有的错误比特都纠正过来。在经过纠错算法的时候,读取数据的出错比特数越少越容易被成功的纠正过来,并且纠错的时间开销也越小。所以在实际应用中需要获取一个出错比特尽可能少的读取数据。在SSD测试过程中,获取NAND闪存颗粒的最优读取数据至关重要,最优读取数据有助于分析NAND行为并做出预测,最优读取数据也有助于纠错算法提升数据纠错的速度,提高数据纠错的成功率,帮助改进纠错算法,以及在实际使用中如何获取最优读取数据等。在SSD测试和应用过程中,获取最优读数据一般需要经过调整读取的电压阈值来读取数据,算出NAND闪存颗粒最优电压阈值相对于预设电压阈值的偏移(最优偏移),使用最优电压阈值重新从SSD读取当时的最优读取数据。
现有方法获取最优读取数据需经过调节电压阈值的偏移,读取SSD数据,计算最优电压阈值的偏移,以及重新读取SSD最优读取数据。
NAND闪存颗粒的电压阈值出厂时,一般偏移为0,即最优电压阈值为出厂预设值。随着SSD的不断使用,影响电压阈值的主要因素有三个,擦写次数的增加,随着时间推移数据保存时间的增加,SSD存放环境温度的变化。这三个因素会同时影响着电压阈值的变化,在三个因素都影响微小的时候,此时最优电压阈值的偏移即为0。但是随着SSD的使用,大多数情况下,每个因素的影响都是不可忽略的。在对NAND闪存颗粒进行测试时,这些因素都必须考虑在内,因为要适应实际使用中的各种条件,每个因素都需要调整不同的值来覆盖应用场景,所以每个因素都会成倍的增加测试量及数据量。
NAND闪存颗粒按每个最小存储单元存储的bit数分类,可以分为SLC(Single-Level Cell)每个单元存储1比特,MLC(Multi-Level Cell)每个单元存储2比特,TLC(Trinary-Level Cell)每个单元存储3比特,以及QLC(Quad-Level Cell)每个单元存储4比特,一般分别叫做单层存储单元、双层存储单元、三层存储单元和四层存储单元。一个存储单元的每个比特会被划分在不同的数据页中,这样存储单元的几个比特对应数据页的不同类型。在SLC时代,这种获取最优数据的方法相对来说还比较容易,因为每个单元只存储1个比特,即只有一个电压阈值,将电压阈值偏移从左到右依次调节一遍(通常SLC有256档可调,其他的NAND闪存颗粒有128档可调),便可获取当前的最优电压阈值。一般情况下,不同的NAND闪存颗粒厂商会对测试有固定的测试温度要求,或者等效的测试温度和数据保存时间。再结合不同的擦写次数以及不同的数据保存时间,两两结合,会有不同的测试条件。最后,乘以SLC的读取次数,可以得到SLC的最终数据量。
MLC时代,一个单元有三个电压阈值,可以分别配置电压阈值的偏移。在实际测试过程中,虽然不用做到每一档偏移都遍历到,假设SLC时遍历30档,那么MLC时每个读取电压都遍历一次就需要读取30×30×30=27000次,测试量和数据量将急剧增加,将是SLC的900倍。在TLC上一个单元有7个电压阈值,QLC上有15个电压阈值,数据量将呈指数级增长,将来应用在PLC(Penta-Level Cell)及更多比特数的存储单元上时,数据量更加不可想象的增加。一种比较可行的方案是,每次只调一个读取偏移,找到当前调的这个电压阈值的最优电压阈值后,固定当前电压阈值的偏移,再调下一个电压阈值。这种方法的测试量和数据量相当于SLC时的测试数据量乘以一个存储单元电压阈值的个数,即MLC将是SLC数据读取量的3倍,TLC将是SLC的7倍,QLC将是SLC的15倍,闪存颗粒的单元存储比特数增加的话,而且随着单元存储比特数的增加可能需要更宽的偏移范围,这个因素也会增加获取最优读取数据的时间成本和数据存储成本。这种方法还有一个不利的因素是,需要在读取的同时,还要逐步对数据做分析,选取最优的读取偏移。
另一种可行的方法是,先在选取的电压阈值偏移范围内把所有的数据都读取并存储下来,然后计算每个电压阈值的最优偏移,然后利用这组最优偏移再去SSD上读取最优数据。这种方式同样有弊端,在做数据保存时间测试时,结合不同的擦写次数,单次的读取数据量也非常大,再花时间计算最优电压阈值,然后回到SSD上读最优数据,一方面,数据保存时间变化了,最优偏移会稍有影响,另一方面,整个测试流程会被拉长,数据保存时间也会随着中间的数据计算而暂停,会影响数据保存时间测试的时间准确性,整个测试时间的拉长也会引入其他的不确定因素,影响测试的稳定性。随着NAND闪存颗粒的单元存储比特数变多以及数据保存时间的变长,电压阈值的偏移范围也会被拉宽,需要存储的数据量将进一步变大,以获得比较精确的最优偏移,同时为了尽可能的缩短中间的暂停时间,又需要减少读取数据和处理数据的时间,平衡调节电压阈值偏移范围也变成一个重要的问题。
现有的NAND闪存颗粒最优数据获取方法需要经过相当多的测试,并获得相当大的数据量;或者需要暂停实验,等待数据分析结果,延长了测试时间。对于测试的时间开销和测试数据的存储成本都相当的大,并且由于测试周期的拉长,测试过程中发生其他风险的概率也会提高,存储单元的存储比特数越多,相应的这种风险就会越高,从而影响测试的准确性,甚至是导致某些测试失败。随着存储单元的存储比特数增多,这种测试方法测试中的读取次数不可避免的会增加,数据保存时间也会相应的增加,在最终读取到最优数据时,不可避免的会有一定的漂移,而且影响会越来越大。
发明内容
本发明为了克服以上技术的不足,提供了一种快速获取NAND最优读取数据的方法。
发明概述:
本发明采用的方法是,先选取电压阈值的偏移范围;接着调节电压阈值的偏移,逐档读取并存储每个电压阈值偏移下的数据,其中调节电压阈值的偏移时,同一个偏移指为所有的电压阈值设定相同的偏移,将偏移范围内的各个电压阈值偏移都读一遍;此时获取SSD的最优读取数据的原始数据已经获取完备,不再需要操作SSD,SSD可以继续完成后续测试或者执行其他测试;其次可通过计算并比较相邻两个偏移间的状态变换个数得到每个电压阈值的最优电压阈值,组成最优电压阈值表;然后开始逐比特的恢复数据,恢复的过程中先判定所恢复的数据比特的数据页类型,知道了数据页类型之后就可知道哪些电压阈值是属于这个数据页类型的读取电压,再根据该比特数据对应的其他数据页中对应比特的数据可进一步确定出该比特数据的读取电压阈值,然后从最优电压阈值表中取得最优电压阈值;接下来就可在最优电压阈值指向的读取数据文件提取该比特数据,作为该比特数据的最优读取数据,完成该比特数据的恢复;最后,只需重复上述恢复的流程,依次按比特分析并恢复数据,直到完成所有比特数据的恢复即得到NAND闪存颗粒对应最优电压阈值粒度下的最优读取数据。
本发明可简化最优读取数据的获取过程,省略在测试过程中的分析数据过程,跳过重新从SSD读取数据这个步骤,直接通过已有的读取数据恢复出最优电压阈值下的最优读取数据;同时缩短了获取最优读取数据的测试时间(因为计算电压阈值的最优偏移是为了获取最优读取数据,因此这里可以同时省去计算和重新读取的时间,这对测试来说非常重要,测试不必暂停等待,可继续进行测试,计算分析过程可和测试同时进行),降低测试的数据量,缩短的中间过程,也有助于获取更大的测试数据量,以得到更精确的分析结论。本发明具有更高的准确性和实时性。
本发明克服其技术问题所采用的技术方案是:
一种快速获取NAND最优读取数据的方法,包括步骤:
S1、选取读数据的电压阈值偏移范围;
S2、读取并存储数据:同一次读取过程中,每个电压阈值采用相同的偏移档位;然后调节不同的电压阈值偏移,按照预设的调档方法读取每个电压阈值的数据并存储;
S3、依次计算每个电压阈值的最优电压阈值,组成最优电压阈值表;
S4、逐比特判定最优电压阈值:判定要恢复的数据比特类型,判断出用哪个电压阈值读取当前比特数据,并确定出该电压阈值的最优电压阈值;
S5、根据步骤S4得到的该电压阈值的最优电压阈值,完成当前比特数据的恢复;
S6、重复步骤S4~步骤S5,每次恢复一个比特数据,依次逐比特分析并恢复数据,最后恢复出NAND闪存颗粒对应最优电压阈值粒度的最优读数据。
进一步地,步骤S1中,选取的读数据的电压阈值偏移范围为-m~0~n,预估的最优电压阈值处于该电压阈值偏移范围-m~0~n内,其中,m和n为偏移档位的端值且为正整数。
进一步地,步骤S2中,调节不同的电压阈值偏移具体是:
在出厂预设电压值的左侧偏移m档、右侧偏移n档。
进一步地,步骤S2中,预设的调档方法至少包括按照每次间隔相同的档位进行调档和按照预设的周期规律进行调档;其中,
(1)按照每次间隔相同的档位进行调档读取每个电压阈值的数据并存储,具体为:每次调档相同的档位进行读取,设每次调档的档位为a档,其中,0<a<17,则该读取方法所对应的每个电压阈值的读取次数为(m+n+1)/a次,存储的数据为(m+n+1)/a份;
(2)按照预设的周期规律进行调档读取每个电压阈值的数据并存储,具体为:每次调档按照周期规律进行读取,设按照每调节b1档、b2档、……、bx档作为周期进行循环读取y次,其中,0<x<17,0<bx<17,0<y<17,则该读取方法所对应的每个电压阈值的读取次数为(b1+b2+……+bx)*y次,存储的数据为(b1+b2+……+bx)*y份。
进一步地,步骤S3中,计算每个电压阈值的最优电压阈值具体包括:
根据闪存厂家提供的闪存颗粒的存储状态的顺序,利用存储的写数据以及步骤S2存储的数据,从档位-m到档位n,计算每个电压阈值两边两个状态在写入和读取之间的各自的状态变换个数之和,找出所有档位中状态变换个数之和的最小值,即为当前读取的电压阈值的最优电压阈值。
进一步地,步骤S3中,从档位-m到档位n,计算每个电压阈值两边两个状态在写入和读取之间的各自的状态变换个数之和,找出所有档位中状态变换个数之和的最小值,具体包括:
(1)设某个电压阈值两边的两个状态分别为状态Z1和状态Z2;
(2)分别计算从档位-m、档位-m+1、……、档位0、档位1、……、档位n-1、档位n时,写入状态Z1变换到读取状态Z2和写入状态Z2变换到读取状态Z1的状态变化个数之和,分别记为N-m、N-m+1、……、N0、N1、……、Nn-1、Nn 共m+n+1个值;
(3)找出N-m、N-m+1、……、N0、N1、……、Nn-1、Nn中最小的值。
进一步地,步骤(3)中,设Ni 为所有状态变化个数之和的最小值,其中,-m≤i≤n,则i处为取得状态变换个数之和最少的档位值,即为当前电压阈值的最优电压阈值。
进一步地,步骤S4具体包括:
S41、判定要恢复的数据比特类型;
S42、利用写数据中除要恢复的当前比特数据之外其他比特的值从而判断出用哪个电压阈值读取当前比特的数据;
S43、从步骤S3中得到的最优电压阈值表中获取对应步骤S42所述的电压阈值的最优电压阈值。
进一步地,步骤S5具体包括:
根据步骤S4得到的该电压阈值的最优电压阈值,从步骤S2得到的对应最优电压阈值的读数据文件中提取该比特数据,完成当前比特数据的恢复。
进一步地,步骤S6中:
当完成所有比特数据的恢复,最终得到与写入数据容量相同的数据,且该份数据等价于在时间节点为获取步骤S2调档读数据时,使用步骤S3中得到的最优电压阈值表在SSD上读取的数据。
本发明的有益效果是:
1、本发明能简化最优读取数据获取的上板测试流程,缩短上板测试时间,一定程度上提高了最优读取数据的准确性。
2、本发明能减少调档读数据的次数,缩短数据读取的总时长,降低数据存储成本。
在常规的最优读取数据获取流程中,第一种方法是按照设定的调档范围-m~0~n,每一个阈值电压都需要分别在范围内读取m+n+1次,计算并选取最优的阈值电压,逐个电压阈值进行调档读取数据并计算,总共需要读取次数是电压阈值个数乘以m+n+1次;而本发明总共需要读取次数为m+n+1次,第一种常规方法的读取次数是本发明读取次数的电压阈值个数倍,这个倍数在MLC NAND颗粒上是3倍,在TLC NAND颗粒上是7倍,在QLC NAND颗粒上是15倍,存储单元存储的比特数越多,这个倍数将越来越大。因此,读取数据次数的减少,大大缩短了数据读取的总时长,读取的数据次数少了,数据量自然降低了相同的倍数,数据存储成本自然而然降低了。
第二种方法的读取数据方式与本发明相同,在获得m+n+1份读取数据后,计算得到每个最优电压阈值后,重新上板读取该最优电压阈值的数据。这种方法一定程度上优化了第一种常规方法的缺陷,降低了数据读取量,缩短了数据读取的总时长;但是这种方法获取到的最优电压阈值是读取数据时的电压阈值,在数据处理过程中,最优电压阈值可能会有一定的偏移,重新读取时,数据比特翻转也会有变化。
3、本发明缩短测试时间,提高最优读取数据精度。
在某些测试中,需要穿插不同的操作流程,比如数据保存时间测试过程中,需要循环执行读取数据和高温加速保存时间两种操作,中间的数据读取时间应当尽量短,否则会影响保存时间的精度。上述第2条提到的两种常规方法中,均需要在两次高温加速之间完成最优读取数据的获取,而本发明仅需完成调档读取数据即可,相比第一种方法降低了读取次数,相比第二种方法省略了数据分析的时间及第二次读数据的时间。本发明是利用m+n+1次读数据,并从数据中直接恢复出当时的最优读取数据,不仅减少了数据读取次数,缩短数据读取总时长,得到的最优读取数据也是完全精确的,相比与第二种方法具有更高的实时性和准确性。
4、本发明降低因数据读取及数据分析时间引起的实验精度降低。
在数据保存时间测试中,每一次处理数据的时间都会对后续的数据保存时间测试产生累加的影响,为了弱化这种影响要求我们在调档读数据时尽量压缩调档的范围,以节省时间。
5、本发明节省的时间可用于获取更多有价值的数据。
在数据分析中要求绘制NAND颗粒的电压分布曲线的话,应当获取尽可能多的调档数据,以绘制完整的电压分布图,这与缩短数据读取时间相矛盾,但是本发明为数据读取和分析节省了大量的时间,可牺牲一部分优势来获取更多有价值的数据,用于绘制NAND颗粒的电压分布曲线,或用于其他NAND颗粒行为分析中。
6、本发明使得测试和数据分析更具灵活性。
在其他的测试中,完成收集数据后,可调整处理数据的优先级,不需要将计算最优电压阈值并获取最优读取数据放在最高的优先级上,使得数据分析有更大的灵活性。
7、本发明不受NAND闪存颗粒类型的限制,支持现有的所有单元存储比特数的NAND闪存颗粒(SLC、MLC、TLC或QLC),也向下兼容单元存储更多比特数的NAND闪存颗粒。
附图说明
图1为本发明实施例所述的快速获取NAND最优读取数据的方法的流程图。
图2为本发明实施例按照逐档调档读取电压阈值数据的示意图。
图3为本发明实施以MLC为例的每个存储单元的存储状态以及每个数据页的电压阈值的示意图。
图4为本发明实施以QLC为例的每个存储单元的存储状态以及每个数据页的电压阈值的示意图。
图5为本发明实施按照第一档调一档、第二档调两档为周期进行调档读取电压阈值数据的示意图。
具体实施方式
为了便于本领域人员更好的理解本发明,下面结合附图和具体实施例对本发明做进一步详细说明,下述仅是示例性的不限定本发明的保护范围。
本发明公开了一种快速获取NAND最优读取数据的方法,该方法在应用上不受NAND闪存颗粒的限制,不管是现在的SLC、MLC、TLC、QLC,还是以后推出的一个单元存储更多比特数的闪存颗粒,均可没有任何限制的使用本方法获取最优读数据。如图1所示,包括步骤:
步骤S1、选取读数据的电压阈值偏移范围。
步骤S2、读取并存储数据:同一次读取过程中,每个电压阈值采用相同的偏移档位;然后调节不同的电压阈值偏移,按照预设的调档方法读取每个电压阈值的数据并存储。
步骤S3、依次计算每个电压阈值的最优电压阈值,组成最优电压阈值表。
步骤S4、逐比特判定最优电压阈值:判定要恢复的数据比特类型,判断出用哪个电压阈值读取当前比特数据,并确定出该电压阈值的最优电压阈值。
步骤S5、根据步骤S4得到的该电压阈值的最优电压阈值,完成当前比特数据的恢复。
步骤S6、重复步骤S4~步骤S5,每次恢复一个比特数据,依次逐比特分析并恢复数据,最后恢复出NAND闪存颗粒对应最优电压阈值粒度的最优读数据。
为了更好地理解上述的技术方案,下面将参照图2~图5详细地描述本发明的示例性实施例,虽然附图中显示了本发明的示例性实施例,然而应当理解,还可以以各种形式实现本发明而并不局限于这里所述的实施例。这些实施例是为了使本领域技术人员更清楚和更透彻地理解本发明。
具体地,本实施例所述的一种快速获取NAND最优读取数据的方法,可利用测试时存储的写数据和读数据,通过计算恢复出NAND闪存颗粒对应位置的最优读数据。包括步骤:
步骤S1、选取读数据的电压阈值偏移范围。
选取的偏移范围为估计的最优电压阈值所在的区间,若最优电压阈值在区间内,则后面的流程中可通过计算获得最优电压阈值;若算出来的某个或者部分最优电压阈值在选定区间的边界上,说明选取的区间很可能不合适,这些最优电压阈值在区间边界上的电压阈值,它们的实际最优电压阈值在选定的区间外部。
设选取的读数据的电压阈值偏移范围为-m~0~n,预估的最优电压阈值处于该电压阈值偏移范围-m~0~n内,其中,m和n为偏移档位的端值且为正整数,即,m为往左侧偏移的端值,n为往右侧偏移的端值。
本实施例优选地,在电压阈值的预设值左右各64档偏移可调,即,m=n=64,因为后面的测试流程不受分析数据和重新读取最优数据的时间限制,有更充裕的时间分析数据,可以适当加宽电压阈值的调档区间,避免因选取的区间太窄而导致部分或全部最优电压阈值不在区间内。
步骤S2、读取并存储数据:同一次读取过程中,无论单元存储比特数为多少,每个电压阈值采用相同的偏移档位;然后调节不同的电压阈值偏移,按照预设的调档方法读取每个电压阈值的数据并存储。
具体地,调节不同的电压阈值偏移具体是:在出厂预设电压值的左侧偏移m档、右侧偏移n档,如图2和图5所示。
本实施例中,预设的调档方法至少包括按照每次间隔相同的档位进行调档和按照预设的周期规律进行调档;其中,
(1)按照每次间隔相同的档位进行调档读取每个电压阈值的数据并存储,具体为:每次调档相同的档位进行读取,设每次调档的档位为a档,其中,0<a<17,则该读取方法所对应的每个电压阈值的读取次数为(m+n+1)/a次,存储的数据为(m+n+1)/a份。
比如,可以按照每次一档一档进行调档读取每个电压阈值的数据,或者按照每次两档两档进行调档读取每个电压阈值的数据,或者,按照每次三档三档进行调档读取每个电压阈值的数据。每次调档的档位间隔越多,那么获取到的最优电压阈值精度会稍有降低。这里仅为举例说明,具体可以根据实际情况选择用哪种调档方法进行调档读取。
(2)按照预设的周期规律进行调档读取每个电压阈值的数据并存储,具体为:每次调档按照周期规律进行读取,设按照每调节b1档、b2档、……、bx档作为周期进行循环读取y次,其中,0<x<17,0<bx<17,0<y<17,则该读取方法所对应的每个电压阈值的读取次数为(b1+b2+……+bx)*y次,存储的数据为(b1+b2+……+bx)*y份。
比如,可以取x=2,按照第一档调一档、第二档调两档为周期进行调档,或者,按照第一档调两档、第二档调三档为周期进行调档;也可以取x=3,按照第一档调两档、第二档调三档、第三档调一档为周期进行调档。这里仅为举例说明,具体可以根据实际情况在不同的位置选取不同的档位间隔进行调档读取。
步骤S3、依次计算每个电压阈值的最优电压阈值,组成最优电压阈值表。
具体地,计算每个电压阈值的最优电压阈值具体包括:
根据闪存厂家提供的闪存颗粒的存储状态的顺序,利用存储的写数据(写数据到NAND Flash时可以把写的数据另存一份,写的数据是没有比特出错的,可以用来对比)以及步骤S2存储的数据,从档位-m到档位n,计算每个电压阈值两边两个状态在写入和读取之间的各自的状态变换个数之和,找出所有档位中状态变换个数之和的最小值,即为当前读取的电压阈值的最优电压阈值。
更具体地,从档位-m到档位n,计算每个电压阈值两边两个状态在写入和读取之间的各自的状态变换个数之和,找出所有档位中状态变换个数之和的最小值,具体包括:
(1)设某个电压阈值两边的两个状态分别为状态Z1和状态Z2;
(2)分别计算从档位-m、档位-m+1、……、档位0、档位1、……、档位n-1、档位n时,写入状态Z1变换到读取状态Z2和写入状态Z2变换到读取状态Z1的状态变化个数之和,分别记为N-m、N-m+1、……、N0、N1、……、Nn-1、Nn 共m+n+1个值;
(3)找出N-m、N-m+1、……、N0、N1、……、Nn-1、Nn中最小的值。
进一步地,步骤(3)中,设Ni 为所有状态变化个数之和的最小值,其中,-m≤i≤n,则i处为取得状态变换个数之和最少的档位值,即为当前电压阈值的最优电压阈值。如果状态变换个数之和最小的值不止一个,比如是两个或更多,那么这多个值均为当前电压阈值的最优电压阈值,取任意一个即可。
步骤S4、逐比特判定最优电压阈值:判定要恢复的数据比特类型,判断出用哪个电压阈值读取当前比特数据,并确定出该电压阈值的最优电压阈值。具体包括:
S41、判定要恢复的数据比特类型;
S42、一个单元中存储若干个比特,利用写数据中除要恢复的当前比特数据之外其他比特的值从而判断出用哪个电压阈值读取当前比特的数据,因为每个电压阈值只判定一个比特的值,所以除当前要恢复的比特外,单元中其余比特在电压阈值两边的值是相同,因此,找到其他比特的值就能按照NAND闪存颗粒厂商给的状态顺序找到对应的电压阈值;
S43、从步骤S3中得到的最优电压阈值表中获取对应步骤S42所述的电压阈值的最优电压阈值。
步骤S5、根据步骤S4得到的该电压阈值的最优电压阈值,完成当前比特数据的恢复。具体包括:
根据步骤S4得到的该电压阈值的最优电压阈值,从步骤S2得到的对应最优电压阈值的读数据文件中提取该比特数据,完成当前比特数据的恢复。
步骤S6、重复步骤S4~步骤S5,每次恢复一个比特数据,依次逐比特分析并恢复数据,最后恢复出NAND闪存颗粒对应最优电压阈值粒度的最优读数据。
当完成所有比特数据的恢复,最终得到与写入数据容量相同的数据,且该份数据等价于在时间节点为获取步骤S2调档读数据时,使用步骤S3中得到的最优电压阈值表在SSD上读取的数据。
为更加清晰的描述整个流程,下面其中一个具体实例以MLC NAND闪存颗粒为例,描述MLC的MSB页数据恢复流程。
步骤S1、选取读数据的电压阈值偏移范围:如图2所示,选取的偏移范围为-m~0~n,其中,0<m<65,0<n<65;如图3所示,MLC共有三个电压阈值,分别为A、B、C;同一次读取过程中,电压阈值A、B、C采用相同的偏移档位。
步骤S2、读取并存储数据:如图2所示,逐档调节读取并存储每个电压阈值的数据,共m+n+1份数据,得到如图2所示的数据。
步骤S3、计算每个电压阈值的最优电压阈值:如图3所示,该MLC NAND闪存颗粒的状态顺序分别是11、01、10、00,其中高比特位为MSB位,有两个电压阈值,分别为A和C,低比特位为LSB位,只有一个电压阈值,为B;从-m到n,计算电压阈值A两边两个状态(11,01),每两个相邻档位之间状态11变换到状态01和状态01变换到状态11的状态变换个数,比对写入数据和每个档位数据之间状态11变换到状态01和状态01变换到状态11的状态变换个数之和,取得状态变换个数之和最少的档位值,即为电压阈值A的最优电压阈值;按照同样的方法计算得到电压阈值B和电压阈值C的最优电压阈值,组成最优电压阈值表。
步骤S4、首先确定要恢复的数据页是MSB页,要恢复MLC的MSB页的数据,从第一比特开始逐比特恢复;先恢复第一个比特,查看写入数据的除本数据比特外其他比特的值,那么MLC只需查看LSB页对应第一比特的数据,从图3可知,若LSB页的第一比特数据为1,则用电压阈值A的最优电压阈值来恢复该比特的数据,若LSB页的第一比特数据为0,则用电压阈值C的最优电压阈值来恢复该比特的数据。
步骤S5、根据步骤S4获取的最优电压阈值,从对应电压阈值的文件中获取对应位置MSB页的数据,完成当前这一比特数据的恢复。
步骤S6、重复步骤S4~步骤S5,每次恢复一个比特数据,依次逐比特分析并恢复数据。如此,按照此流程可恢复出NAND闪存颗粒对应最优电压阈值粒度的最优读数据。
下面再以QLC NAND闪存颗粒为例,描述QLC的CSB页数据恢复流程:
步骤S1、选取读数据的电压阈值的偏移范围:如图5所示,选取的偏移范围为-m~0~n,其中,0<m<65,0<n<65;如图4所示,QLC共有15个电压阈值,分别为A、B、……、N、O;同一次读为图5中的一份数据,在同一份数据中,电压阈值A、B、……、N、O采用相同的偏移档位。
步骤S2、读取并存储数据:如图5所示,按照第一档调一档、第二档调两档为周期进行调档读取并存储每个电压阈值的数据得到如图5所示的数据。
步骤S3、计算每个电压阈值的最优电压阈值:如图4所示,该QLC NAND闪存颗粒的状态顺序分别是1111、1110、1010、1000、1001、0001、0000、0010、0110、0100、1100、1101、0101、0111、0011、1011,其中最高比特位为TSB位,有四个电压阈值,分别为E、J、L、O,次高比特位为MSB位,有三个电压阈值,分别为B、H、N,次低比特位为CSB位,有四个电压阈值,分别为C、G、I、M,低比特位为LSB位,有四个电压阈值,为A、D、F、K;从-m到n,计算电压阈值A两边两个状态(1111,1110),每个档位上从写入状态1111变换为读取状态1110和从写入状态1110变换为读取状态1111的状态变换个数之和,比如档位-m+i时状态变换个数之和为N-m+i,档位-m+i+1时的状态变换个数之和为N-m+i+1,档位-m+i+2时的状态变换个数之和为N-m+i+2,若N-m+i、N-m+i+1、N-m+i+中N-m+i+1为最小值,则N-m+i+1处为取得状态变换个数最少的档位值,即为电压阈值A的最优电压阈值为-m+i+1;按照同样的方法计算得到所有电压阈值的最优电压阈值,组成最优电压阈值表,如下表1所示。
表1 QLC NAND闪存颗粒组成的最优电压阈值表
步骤S4、首先确定要恢复的数据页是CSB页,要恢复QLC的CSB页的数据,从第一比特开始逐比特恢复;先恢复第一个比特,CSB页共有4个电压阈值,通过查看写入数据的除本数据比特外其他比特的值可确定使用那个最优电压阈值,那么QLC的CSB页需查看TSB、MSB、LSB页对应第一比特的数据,从图4可知,除去CSB页比特值后,其他三页在电压阈值两边的值为:电压阈值C两边为100,电压阈值G两边为000,电压阈值I两边为010,电压阈值M两边为011,在获取到其他三页数据对应比特位数据后,即可确定应该用哪个最优电压阈值来恢复CSB页该比特的数据。
步骤S5、根据步骤S4获取的最优电压阈值,从对应电压阈值的文件中获取对应位置CSB页的数据,完成当前这一比特数据的恢复。
步骤S6、重复步骤S4~步骤S5,每次恢复一个比特数据,依次逐比特分析并恢复数据。如此,按照此流程可恢复出NAND闪存颗粒对应最优电压阈值粒度的最优读数据。
以上所述的MLC和QLC示例仅为描述所用,并非此种方法仅限制在MLC或QLC上使用。
本发明所述的方法无论存储单元存储的比特数是多少,读取次数均与SLC的读取次数相同,或者随着单元存储比特数增加少量增加(这里的少量增加是由于调档读的范围m和n的取值可能适当的增加),并通过计算获得最优电压阈值偏移和最优数据。
以上仅描述了本发明的基本原理和优选实施方式,本领域人员可以根据上述描述做出许多变化和改进,这些变化和改进应该属于本发明的保护范围。
Claims (10)
1.一种快速获取NAND最优读取数据的方法,其特征在于,包括步骤:
S1、选取读数据的电压阈值偏移范围;
S2、读取并存储数据:同一次读取过程中,每个电压阈值采用相同的偏移档位;然后调节不同的电压阈值偏移,按照预设的调档方法读取每个电压阈值的数据并存储;
S3、依次计算每个电压阈值的最优电压阈值,组成最优电压阈值表;
S4、逐比特判定最优电压阈值:判定要恢复的数据比特类型,判断出用哪个电压阈值读取当前比特数据,并确定出该电压阈值的最优电压阈值;
S5、根据步骤S4得到的该电压阈值的最优电压阈值,完成当前比特数据的恢复;
S6、重复步骤S4~步骤S5,每次恢复一个比特数据,依次逐比特分析并恢复数据,最后恢复出NAND闪存颗粒对应最优电压阈值粒度的最优读数据。
2.根据权利要求1所述的快速获取NAND最优读取数据的方法,其特征在于,步骤S1中,选取的读数据的电压阈值偏移范围为-m~0~n,预估的最优电压阈值处于该电压阈值偏移范围-m~0~n内,其中,m和n为偏移档位的端值且为正整数。
3.根据权利要求2所述的快速获取NAND最优读取数据的方法,其特征在于,步骤S2中,调节不同的电压阈值偏移具体是:
在出厂预设电压值的左侧偏移m档、右侧偏移n档。
4.根据权利要求2或3所述的快速获取NAND最优读取数据的方法,其特征在于,步骤S2中,预设的调档方法至少包括按照每次间隔相同的档位进行调档和按照预设的周期规律进行调档;其中,
(1)按照每次间隔相同的档位进行调档读取每个电压阈值的数据并存储,具体为:每次调档相同的档位进行读取,设每次调档的档位为a档,其中,0<a<17,则该读取方法所对应的每个电压阈值的读取次数为(m+n+1)/a次,存储的数据为(m+n+1)/a份;
(2)按照预设的周期规律进行调档读取每个电压阈值的数据并存储,具体为:每次调档按照周期规律进行读取,设按照每调节b1档、b2档、……、bx档作为周期进行循环读取y次,其中,0<x<17,0<bx<17,0<y<17,则该读取方法所对应的每个电压阈值的读取次数为(b1+b2+……+bx)*y次,存储的数据为(b1+b2+……+bx)*y份。
5.根据权利要求2所述的快速获取NAND最优读取数据的方法,其特征在于,步骤S3中,计算每个电压阈值的最优电压阈值具体包括:
根据闪存厂家提供的闪存颗粒的存储状态的顺序,利用存储的写数据以及步骤S2存储的数据,从档位-m到档位n,计算每个电压阈值两边两个状态在写入和读取之间的各自的状态变换个数之和,找出所有档位中状态变换个数之和的最小值,即为当前读取的电压阈值的最优电压阈值。
6.根据权利要求5所述的快速获取NAND最优读取数据的方法,其特征在于,步骤S3中,从档位-m到档位n,计算每个电压阈值两边两个状态在写入和读取之间的各自的状态变换个数之和,找出所有档位中状态变换个数之和的最小值,具体包括:
(1)设某个电压阈值两边的两个状态分别为状态Z1和状态Z2;
(2)分别计算从档位-m、档位-m+1、……、档位0、档位1、……、档位n-1、档位n时,写入状态Z1变换到读取状态Z2和写入状态Z2变换到读取状态Z1的状态变化个数之和,分别记为N-m、N-m+1、……、N0、N1、……、Nn-1、Nn 共m+n+1个值;
(3)找出N-m、N-m+1、……、N0、N1、……、Nn-1、Nn中最小的值。
7.根据权利要求6所述的快速获取NAND最优读取数据的方法,其特征在于,步骤(3)中,设Ni 为所有状态变化个数之和的最小值,其中,-m≤i≤n,则i处为取得状态变换个数之和最少的档位值,即为当前电压阈值的最优电压阈值。
8.根据权利要求1所述的快速获取NAND最优读取数据的方法,其特征在于,步骤S4具体包括:
S41、判定要恢复的数据比特类型;
S42、利用写数据中除要恢复的当前比特数据之外其他比特的值从而判断出用哪个电压阈值读取当前比特的数据;
S43、从步骤S3中得到的最优电压阈值表中获取对应步骤S42所述的电压阈值的最优电压阈值。
9.根据权利要求1所述的快速获取NAND最优读取数据的方法,其特征在于,步骤S5具体包括:
根据步骤S4得到的该电压阈值的最优电压阈值,从步骤S2得到的对应最优电压阈值的读数据文件中提取该比特数据,完成当前比特数据的恢复。
10.根据权利要求8所述的快速获取NAND最优读取数据的方法,其特征在于,步骤S6中:
当完成所有比特数据的恢复,最终得到与写入数据容量相同的数据,且该份数据等价于在时间节点为获取步骤S2调档读数据时,使用步骤S3中得到的最优电压阈值表在SSD上读取的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211198514.3A CN115295057B (zh) | 2022-09-29 | 2022-09-29 | 一种快速获取nand最优读取数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211198514.3A CN115295057B (zh) | 2022-09-29 | 2022-09-29 | 一种快速获取nand最优读取数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115295057A true CN115295057A (zh) | 2022-11-04 |
CN115295057B CN115295057B (zh) | 2023-01-10 |
Family
ID=83833698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211198514.3A Active CN115295057B (zh) | 2022-09-29 | 2022-09-29 | 一种快速获取nand最优读取数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115295057B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483617A (zh) * | 2023-06-21 | 2023-07-25 | 鹏钛存储技术(南京)有限公司 | 快速在线查找nand闪存最优读偏移值的方法和装置 |
CN117393025A (zh) * | 2023-12-08 | 2024-01-12 | 杭州阿姆科技有限公司 | 生成符合nand数据特征带软判决信息的数据的方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103811072A (zh) * | 2012-11-15 | 2014-05-21 | 北京兆易创新科技股份有限公司 | 一种高可靠性NAND Flash的读取方法及其系统 |
US9224479B1 (en) * | 2013-12-18 | 2015-12-29 | Pmc-Sierra Us, Inc. | Threshold voltage adjustment in solid state memory |
CN108320774A (zh) * | 2018-01-18 | 2018-07-24 | 江苏华存电子科技有限公司 | 闪存存储装置用阈值电压参数排序方法及装置 |
EP3491648A1 (en) * | 2016-07-28 | 2019-06-05 | Microsemi Solutions (US), Inc. | Method and apparatus with background reference positioning and local reference positioning |
CN110120234A (zh) * | 2018-02-07 | 2019-08-13 | 北京忆芯科技有限公司 | 固态存储设备及其最优读出阈值电压的搜索方法 |
US20200066361A1 (en) * | 2018-08-22 | 2020-02-27 | International Business Machines Corporation | Methods for read threshold voltage shifting in non-volatile memory |
CN112599177A (zh) * | 2020-12-23 | 2021-04-02 | 深圳大普微电子科技有限公司 | 一种阈值电压的管理方法、读取闪存数据的方法 |
CN112992236A (zh) * | 2021-03-19 | 2021-06-18 | 深圳三地一芯电子有限责任公司 | 一种提高闪存读取速度的方法、系统、设备和存储介质 |
CN114639436A (zh) * | 2022-03-10 | 2022-06-17 | 山东大学 | 一种闪存芯片数据读取方法 |
-
2022
- 2022-09-29 CN CN202211198514.3A patent/CN115295057B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103811072A (zh) * | 2012-11-15 | 2014-05-21 | 北京兆易创新科技股份有限公司 | 一种高可靠性NAND Flash的读取方法及其系统 |
US9224479B1 (en) * | 2013-12-18 | 2015-12-29 | Pmc-Sierra Us, Inc. | Threshold voltage adjustment in solid state memory |
EP3491648A1 (en) * | 2016-07-28 | 2019-06-05 | Microsemi Solutions (US), Inc. | Method and apparatus with background reference positioning and local reference positioning |
CN108320774A (zh) * | 2018-01-18 | 2018-07-24 | 江苏华存电子科技有限公司 | 闪存存储装置用阈值电压参数排序方法及装置 |
CN110120234A (zh) * | 2018-02-07 | 2019-08-13 | 北京忆芯科技有限公司 | 固态存储设备及其最优读出阈值电压的搜索方法 |
US20200066361A1 (en) * | 2018-08-22 | 2020-02-27 | International Business Machines Corporation | Methods for read threshold voltage shifting in non-volatile memory |
CN112599177A (zh) * | 2020-12-23 | 2021-04-02 | 深圳大普微电子科技有限公司 | 一种阈值电压的管理方法、读取闪存数据的方法 |
WO2022134712A1 (zh) * | 2020-12-23 | 2022-06-30 | 深圳大普微电子科技有限公司 | 一种阈值电压的管理方法、读取闪存数据的方法 |
CN112992236A (zh) * | 2021-03-19 | 2021-06-18 | 深圳三地一芯电子有限责任公司 | 一种提高闪存读取速度的方法、系统、设备和存储介质 |
CN114639436A (zh) * | 2022-03-10 | 2022-06-17 | 山东大学 | 一种闪存芯片数据读取方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483617A (zh) * | 2023-06-21 | 2023-07-25 | 鹏钛存储技术(南京)有限公司 | 快速在线查找nand闪存最优读偏移值的方法和装置 |
CN116483617B (zh) * | 2023-06-21 | 2023-09-05 | 鹏钛存储技术(南京)有限公司 | 快速在线查找nand闪存最优读偏移值的方法和装置 |
CN117393025A (zh) * | 2023-12-08 | 2024-01-12 | 杭州阿姆科技有限公司 | 生成符合nand数据特征带软判决信息的数据的方法 |
CN117393025B (zh) * | 2023-12-08 | 2024-03-15 | 杭州阿姆科技有限公司 | 生成符合nand数据特征带软判决信息的数据的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115295057B (zh) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115295057B (zh) | 一种快速获取nand最优读取数据的方法 | |
US9922706B2 (en) | Solid state storage device using state prediction method | |
KR101981355B1 (ko) | 메모리 시스템들을 위한 소프트 정보 생성 | |
US8576625B1 (en) | Decoder parameter estimation using multiple memory reads | |
CN103843067B (zh) | 用于非易失性存储器的片上动态读取 | |
US8386860B2 (en) | Methods of calculating compensation voltage and adjusting threshold voltage and memory apparatus and controller | |
US9122626B2 (en) | Linearly related threshold voltage offsets | |
KR101662621B1 (ko) | 플래시 메모리 디바이스 프로그래밍 방법 및 시스템 | |
CN109599143B (zh) | 具有读阈值机制的存储系统及其操作方法 | |
US8276046B2 (en) | Apparatus for determining number of bits to be stored in memory cell | |
US9685243B2 (en) | Determining soft data from a hard read | |
CN102132350A (zh) | 用于闪存存储器中的软解映射和单元间干扰减轻的方法和设备 | |
US20110038209A1 (en) | Method and System for Adaptively Finding Reference Voltages for Reading Data from a MLC Flash Memory | |
CN111192620B (zh) | 一种SSD中优化NAND Flash读参考电压的方法 | |
US8386884B2 (en) | Memory apparatus with multi-level cells and operation method thereof | |
TW201508759A (zh) | 用來進行記憶體存取管理之方法以及記憶裝置及其控制器 | |
CN111341375B (zh) | 一种面向TLC型NAND Flash的阈值电压获取方法 | |
JP2014512063A (ja) | データセンシングのための方法、装置、およびシステム | |
CN110232947B (zh) | 用于决定非挥发性内存中位值的方法和系统 | |
US10628247B2 (en) | Flash memory testing according to error type pattern | |
US11763914B2 (en) | Adapting an error recovery process in a memory sub-system | |
US9779818B2 (en) | Adaptation of high-order read thresholds | |
US11374595B2 (en) | Method for selectively inverting words to be written to a memory and device for implementing same | |
KR102680953B1 (ko) | Ecc 회로를 포함하는 반도체 메모리 장치 및 이를 이용한 테스트 방법 | |
US11803312B2 (en) | Data storage device and selecting bad data block method thereof |
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 |