CN108257642B - 读阈值设置方法与装置 - Google Patents

读阈值设置方法与装置 Download PDF

Info

Publication number
CN108257642B
CN108257642B CN201611245228.2A CN201611245228A CN108257642B CN 108257642 B CN108257642 B CN 108257642B CN 201611245228 A CN201611245228 A CN 201611245228A CN 108257642 B CN108257642 B CN 108257642B
Authority
CN
China
Prior art keywords
threshold
value
memory cells
data state
state
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
CN201611245228.2A
Other languages
English (en)
Other versions
CN108257642A (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.)
Beijing Memblaze Technology Co Ltd
Original Assignee
Beijing Memblaze 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 Beijing Memblaze Technology Co Ltd filed Critical Beijing Memblaze Technology Co Ltd
Priority to CN201611245228.2A priority Critical patent/CN108257642B/zh
Publication of CN108257642A publication Critical patent/CN108257642A/zh
Application granted granted Critical
Publication of CN108257642B publication Critical patent/CN108257642B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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

Landscapes

  • Read Only Memory (AREA)

Abstract

提供了读阈值设置方法与装置。公开的设置阈值的方法,包括:读取第一字线上的多个页;确定第一字线上多个存储单元的数据状态;依据第一字线上多个存储单元的数据状态,获取与第一阈值相关的第一多个存储单元;依据第一多个存储单元的比特错误率,获取第一阈值的最佳值;以及用第一阈值的最佳值更新第一阈值。

Description

读阈值设置方法与装置
技术领域
本申请涉及固态硬存储设备,具体地,涉及识别从NVM芯片中读取数据的最佳阈值电压的方法与装置。
背景技术
闪存通过在存储单元中保持电荷量来存储信息。存储单元中的电荷量决定了存储单元的读出电压。在读取闪存数据时,比较存储单元的读出电压与阈值电压来识别存储单元所存储的信息。但是由于存储单元的电荷量受存储单元的质量、寿命、时间等多种因素的影响,以及从多个存储单元到敏感放大器的信号传输路径的非均一性,导致存储单元的读出电压发生变化,进而导致从存储单元读取的数据存在一些偏差,无法正确体现原始向存储单元写入的信息。阈值电压可包括用于读操作的读阈值与用于写操作的写阈值。
现有技术中采用一些手段来预防或应对因存储单元的电荷量等因素的变化而导致读取的数据无法正确体现写入的数据的问题,例如,在美国专利US9070454B1中,根据存储单元的擦写次数、保持时间等因素计算阈值电压(从存储单元中读取数据或向存储单元中写入数据时使用的阈值电压或判决电压),并使用计算出的阈值电压向存储单元写入数据。
在闪存芯片中,通过为读操作指示不同的参数,来选择读操作时所使用的阈值电压。通过具有不同阈值电压的读操作,从存储单元读出的数据会有不同的结果。有些结果具有较低的比特错误率(Bit Error Ratio,错误比特与传输的总比特数的百分比),而有些结果具有较高的比特错误率。结合使用ECC(Error Correction Code,错误校正码)技术,具有较低的比特错误率的读取结果被ECC技术纠正的几率较高。从而通过尝试不同参数,来应对读操作中遇到的错误。参数可以合并在读操作中提供给闪存芯片。或者,在闪存芯片中设置用于读操作的参数,而在闪存芯片处理读操作时,使用所设置的参数。
存储介质上通常按页来存储和读取数据,而按块来擦除数据。通常,块包含多个页,存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节,当然,物理页也可以具有其他的尺寸。在读出或写入数据时,一般为每个页的所有存储单元设置相同的阈值电压。
图1展示了现有技术的闪存存储介质的结构。闪存块包括多条字线与位线。字线耦合了多个用于存储信息的晶体管,每个晶体管提供一个存储单元(Cn,Cn-1,…,C1,C0)。每个存储单元能存储1比特或多比特数据。每条字线中的多个存储单元提供一个或多个物理页。构成一个物理页的比特存储在耦合到同一条字线的晶体管中。
发明内容
对于每个存储单元中存储了多比特信息的新型存储单元,以及3D结构的新型闪存,传统的阈值电压获取方法不能满足需求。
根据本申请第一方面,提供了根据本申请第一方面的第一设置阈值的方法,包括:读取第一字线上的多个页;确定第一字线上多个存储单元的数据状态;依据第一字线上多个存储单元的数据状态,获取与第一阈值相关的第一多个存储单元;依据第一多个存储单元的比特错误率,获取第一阈值的最佳值;以及用第一阈值的最佳值更新第一阈值。
根据本申请第一方面的第一设置阈值的方法,提供了根据本申请第一方面的第二设置阈值的方法,还包括:响应于数据读取命令,用更新后的第一阈值读取同第一字线属于相同逻辑单元或管芯的页。
根据本申请第一方面的第一或第二设置阈值的方法,提供了根据本申请第一方面的第三设置阈值的方法,其中所述第一多个存储单元是具有第一数据状态与第二数据状态之一的存储单元,第一数据状态与第二数据状态是由第一阈值所区分的读出电压分布相邻的状态。
根据本申请第一方面的第一至第三设置阈值的方法之一,提供了根据本申请第一方面的第四设置阈值的方法,还包括:依据第一字线上的多个存储单元的数据状态,获取与第二阈值相关的第二多个存储单元;依据第二多个存储单元的比特错误率,搜索第二阈值的最佳值;以及用第二阈值的最佳值更新第二阈值。
根据本申请第一方面的第四设置阈值的方法,提供了根据本申请第一方面的第五设置阈值的方法,其中所述第二多个存储单元是具有第三数据状态与第四数据状态之一的存储单元,第三数据状态与第四数据状态是由第二阈值所区分的读出电压分布相邻的状态。
根据本申请第一方面的第一至第五设置阈值的方法之一,提供了根据本申请第一方面的第六设置阈值的方法,其中获取第一阈值的最佳值包括:用第一阈值的多个可选值读取第一字线上的多个页;计算第一多个存储单元的多个比特错误率;以及将得到最低比特错误率的第一阈值的可选值,作为第一阈值的最佳值。
根据本申请第一方面的第一至第六设置阈值的方法之一,提供了根据本申请第一方面的第七设置阈值的方法,其中获取第一阈值的最佳值包括:用第一阈值的多个可选值读取第一字线上的多个页;计算第一多个存储单元的属于所述多个页第一页的比特的多个比特错误率;其中,所述第一页是第一数据状态与第二数据状态中发生变化的比特所对应的页;以及将得到最低比特错误率的第一阈值的可选值,作为第一阈值的最佳值。
根据本申请第一方面的第一至第七设置阈值的方法之一,提供了根据本申请第一方面的第八设置阈值的方法,其中所述第一字线上的多个页被写入指定的数据;以及通过比较写入的指定数据与读出的原始数据获取比特错误率。
根据本申请第一方面的第一至第七设置阈值的方法之一,提供了根据本申请第一方面的第九设置阈值的方法,其中通过比较读出的原始数据与对原始数据进行错误校正得到的数据来获取比特错误率。
根据本申请的第二方面,提供了一种设置阈值的装置,包括:读取模块,用于读取第一字线上的多个页;数据状态识别模块,用于确定第一字线上多个存储单元的数据状态;存储单元识别模块,用于依据第一字线上多个存储单元的数据状态,获取与第一阈值相关的第一多个存储单元;最佳阈值获取模块,用于依据第一多个存储单元的比特错误率,获取第一阈值的最佳值;以及阈值更新模块,用于用第一阈值的最佳值更新第一阈值。
根据本申请第三方面,提供了根据本申请第三方面的第一设置阈值的方法,包括:读取第一字线上的多个页;确定第一字线上多个存储单元的数据状态;依据存储单元的被写入的第一数据状态与读出的第二数据状态识别第一阈值以及第一阈值的调整方向值;累计从所述多个存储单元识别的第一阈值的调整方向值,得到第一阈值的调整值;以及用第一阈值的调整值更新第一阈值。
根据本申请第三方面的第一设置阈值的方法,提供了根据本申请第三方面的第二设置阈值的方法,还包括:依据存储单元的被写入的第三数据状态与读出的第四数据状态识别第二阈值以及第二阈值的调整方向值;累计从所述多个存储单元识别的第二阈值的调整方向值,得到第二阈值的调整值;以及用第二阈值的调整值更新第二阈值。
根据本申请第三方面的第一或第二设置阈值的方法,提供了根据本申请第三方面的第三设置阈值的方法,其中当第一数据状态与第二数据状态是读出电压分布相邻的状态时,确定第一阈值是区分第一数据状态与第二数据状态的阈值,以及第一阈值的调整方向值指示从第一数据状态的电压分布区域到第二数据状态的电压分布区域的方向。
根据本申请第三方面的第一或第二设置阈值的方法,提供了根据本申请第三方面的第四设置阈值的方法,其中当第一存储单元的第一数据状态与第二数据状态是阈值电压分布相同的状态时,所述第一存储单元不影响所述第一阈值的调整值。
根据本申请第三方面的第一或第二设置阈值的方法,提供了根据本申请第三方面的第五设置阈值的方法,其中当第一存储单元的第一数据状态与第二数据状态是读出电压分布不相同且不相邻的状态时,所述第一存储单元不影响所述第一阈值的调整值。
根据本申请第三方面的第二设置阈值的方法,提供了根据本申请第三方面的第六设置阈值的方法,其中当第三数据状态与第四数据状态是读出电压分布相邻的状态时,确定第二阈值是区分第三数据状态与第四数据状态的阈值,以及第二阈值的调整方向值指示从第三数据状态的电压分布区域到第四数据状态的电压分布区域的方向。
根据本申请第三方面的第一至第六设置阈值的方法之一,提供了根据本申请第三方面的第七设置阈值的方法,其中若第一阈值的调整值大于第一参考值,使第一阈值递增来更新第一阈值;或者若第一阈值的调整值小于第二参考值,使第一阈值递减来更新第一阈值。
根据本申请第三方面的第七设置阈值的方法之一,提供了根据本申请第三方面的第八设置阈值的方法,还包括:读取第一字线上的多个页;确定第一字线上多个存储单元的数据状态;依据存储单元的被写入的第一数据状态与读出的第二数据状态识别第一阈值以及第一阈值的调整方向值;累计从所述多个存储单元识别的第一阈值的调整方向值,得到第一阈值的调整值;以及用第一阈值的调整值更新第一阈值。
根据本申请第三方面的第一至第八设置阈值的方法之一,提供了根据本申请第三方面的第九设置阈值的方法,其中若第一阈值的调整值介于第一参考值与第二参考值之间,记录第一阈值。
根据本申请第三方面的第一至第九设置阈值的方法之一,提供了根据本申请第三方面的第十设置阈值的方法,其中所述第一字线上的多个页被写入指定的数据。
根据本申请第三方面的第一至第九设置阈值的方法之一,提供了根据本申请第三方面的第十一设置阈值的方法其中对从所述第一字线上的多个页读出的数据进行错误校正译码得到第二数据状态。
根据本申请第三方面的第一至第十设置阈值的方法之一,提供了根据本申请第三方面的第十二设置阈值的方法,还包括:响应于数据读取命令,用更新后的第一阈值读取同第一字线属于相同逻辑单元或管芯的页。
根据本申请的第四方面,提供了一种设置阈值的装置,包括:读取模块,用于读取第一字线上的多个页;数据状态识别模块,用于确定第一字线上多个存储单元的数据状态;调整方向值计算模块,用于依据存储单元的被写入的第一数据状态与读出的第二数据状态识别第一阈值以及第一阈值的调整方向值;调整值计算模块,用于累计从所述多个存储单元识别的第一阈值的调整方向值,得到第一阈值的调整值;以及阈值更新模块,用于用第一阈值的调整值更新第一阈值。
根据本申请的第五方面,提供了一种固态存储设备,包括,控制器与非易失存储器;所述控制器中的处理器通过运行程序来执行如根据本申请第一方面与第二方面的设置阈值的方法的任何一种。
附图说明
当连同附图阅读时,通过参考后面对示出性的实施例的详细描述,将最佳地理解本申请以及优选的使用模式和其进一步的目的和优点,其中附图包括:
图1展示了现有技术的闪存存储介质的结构;
图2为存储单元的读出电压分布曲线图;
图3A为又一例子的存储单元的读出电压分布曲线图;
图3B展示了存储单元的状态与存储的比特的对应关系;
图3C展示了存储单元存储的3个比特与物理页的对应关系;
图4展示了根据本申请实施例的阈值与存储单元的状态的对应关系;
图5展示了根据本申请实施例的设置阈值的流程图;
图6A展示了根据本申请又一实施例的设置阈值的流程图;以及
图6B中展示了与存储单元的被写入状态与读出状态的组合相关的阈值。
具体实施方式
图2为存储单元的读出电压分布曲线图。存储单元被编程后,依据被编程的值,在存储单元中存储了电荷。读存储单元时,从存储了不同电荷的存储单元会得到不同的读出电压。参看图2,钟形线L0是具有“1”状态的存储单元的读出电压分布,钟形线L1是具有“0”状态的存储单元的读出电压分布。当使用阈值电压Vt2时,在阈值电压Vt2右侧的具有“1”状态的存储单元被误读并成为错误比特。类似地,当使用阈值电压Vt1时,在阈值电压Vt1左侧的具有“0”状态的存储单元被误读并成为错误比特。阈值电压Vt3是又一可选的用于从存储单元读出数据的阈值电压。
通过比较多个阈值电压对应的错误比特的数量,选择错误比特的数量最小的阈值电压作为最佳阈值电压。或者,从读出电压分布中,确定最佳阈值电压(例如,选择Vt,使得钟形线L0在Vt右侧部分的面积与钟形线L1在Vt左侧部分的面积之和最小)。
图3A为又一例子的存储单元的读出电压分布曲线图。在图3A的例子中,存储单元的类型是TLC(Triple Level Cell,三值存储单元)。TLC存储单元的读出电压被分组为代表8种不同的状态,每种状态对应3比特组合之一。由“L0”到“L7”来指示存储单元的8种不同的状态,“L0”为存储单元被擦除后的状态,而“L7”为存储单元被充分编程后的状态。参看图3A,从“L0”到“L7”,存储单元的读出电压单调变化。
用多个阈值来区分存储单元的状态。继续参看图3A,用阈值TH1区分状态“L3”与“L4”;用阈值TH2区分状态“L1”与“L2”;用阈值TH3区分状态“L5”与“L6”;用阈值TH4区分状态“L0”与“L1”;用阈值TH5区分状态“L2”与“L3”;用阈值TH6区分状态“L4”与“L5”;用阈值TH7区分状态“L6”与“L7”。作为举例,为每个阈值提供寄存器来存储阈值的值。以及通过比较器比较阈值的值与存储单元的读出电压,来识别存储单元所处的状态。
为存储单元的每个状态提供编码,编码代表了TLC存储单元所存储的三比特。图3B展示了存储单元的状态与存储的比特的对应关系。作为举例,参看图3B,状态“L0”代表三比特“111”,状态“L1”代表三比特“011”。图3B中,使任意相邻的两个状态,所对应的两个三比特值,仅存在一比特变化,而另外两比特相同。
图3C展示了存储单元存储的3个比特与物理页的对应关系。为提升物理页访问的并行性,每个存储单元中存储的3个比特分别属于不同的物理页。例如,图3C中,存储单元存储了3比特“101”,按从左到右的顺序分别称为MSB(最高有效位,Most Significant Bit)、CSB(中间有效位,Central Significant Bit)和LSB(最低有效位,Least SignificantBit)。将由多个存储单元的MSB构成的物理页称为MSB页,将由多个存储单元的CSB构成的物理页称为CSB页,以及将由多个存储单元的LSB构成的物理页称为LSB页。
TLC存储单元存储的3个比特具有不同的可靠度。返回参看图3A,要识别存储单元的LSB,仅需将存储单元的读出电压与阈值TH1比较,从而在存储的3个比特中,LSB具有较好的可靠度。要识别存储单元的CSB,需要将存储单元的读出电压与阈值TH2和/或TH3比较。而要识别存储单元的MSB,需要将存储单元的读出电压与阈值TH4、TH5、TH6和/或TH7进行比较。
从而,改变存储单元的阈值,对从存储单元的读出结果的影响依赖于存储单元的状态。例如,若存储单元处于“L7”状态,通过改变阈值TH1的值,将几乎不会影响存储单元的读出结果。作为另一个例子,改变阈值TH6的值,读出数据时,非处于“L4”与“L5”状态的存储单元的读出结果几乎不会被影响。
若存储单元的读出结果受某阈值的变化的影响很小,则无法通过改变该阈值的值来寻找适合该存储单元的该阈值的最佳值。一般地,向物理页写入的数据被加扰,使得写入物理页的数据是随机数序列。然而,对于MLC(Multi Level Cell)存储单元或TLC存储单元,由于其中存储了来自多个页的数据,传统加扰算法并非总能确保提供物理页的多个存储单元的状态是随机分布的。
图4展示了根据本申请实施例的阈值与存储单元的状态的对应关系。闪存的字线包括存储单元,这些存储单元提供了构成多个物理页的数据。
图4展示了,用阈值TH1区分状态“L3”与“L4”,用阈值TH2区分状态“L1”与“L2”,用阈值TH3区分状态“L5”与“L6”,用阈值TH4区分状态“L0”与“L1”,用阈值TH5区分状态“L2”与“L3”,用阈值TH6区分状态“L4”与“L5”,以及用阈值TH7区分状态“L6”与“L7”。
对于一条字线上的存储单元,其中处于“L3”与“L4”状态的存储单元构成集合{C10,C11,C12,…,C1m},用集合元素的下标的第1个数字“1”指示该集合与具有相同序号“1”的阈值TH1有关,其中集合元素C10,C11,C12,…,C1m的每个指示处于“L3”与“L4”状态的存储单元之一。集合{C10,C11,C12,…,C1m}与阈值TH1有关,是因为改变阈值TH1的值,会以较大几率影响对处于“L3”与“L4”状态的存储单元的状态的判决,例如,将处于“L3”状态的存储单元识别为处于“L4”状态,或将处于“L4”状态的存储单元识别为处于“L3”状态。
图4中还展示了同阈值相关的比特错误率。作为举例,对于阈值TH1的每个取值,存储单元集合{C10,C11,C12,…,C1m}的读出结果具有比特错误率e1的一个值(表示为e10,e11,e12,…),用比特错误率e下标的第1个数字“1”指示该比特错误率与具有相同序号“1”的阈值TH1有关。
通过阈值TH1的多个取值,得到对应的多个比特错误率(表示为e10,e11,e12,…)。以及得到值最小的比特错误率的阈值TH1的取值,是阈值TH1的最佳值。
类似地,参看图4,对于阈值TH2,其响应从处于“L1”与“L2”状态的存储单元中读出的结果的比特错误率e2。处于“L1”与“L2”状态的存储单元构成集合{C20,C21,C22,…,C1n}。对于阈值TH2的多个取值,从处于“L1”与“L2”状态的存储单元中读出的结果得到多个比特错误率(表示为e20,e21,e22,…)。以及得到值最小的比特错误率的阈值TH2的取值,是阈值TH2的最佳值。
可以理解的,对应于每个阈值的存储单元集合,例如存储单元集合{C10,C11,C12,…,C1m}与{C20,C21,C22,…,C1n},其所包含的存储单元数量可以不同。
因而,需要识别字线的存储单元的状态,并依据具有指定状态的存储单元的比特错误率,来识别同指定状态相关的阈值的最佳值。以及使用阈值的最佳值从存储单元读出数据,来降低读出数据的比特错误率。可选地,识别存储单元的多个阈值(例如,对于TLC存储单元,有7个阈值)的每个的最佳值。以及使用所有阈值的最佳值来从存储单元读出数据,来降低读出数据的比特错误率。或者在读出指定类型的物理页(例如,MSB页、CSB页或LBS页)时,使用与指定类型的物理页相关的阈值的最佳值来从存储单元读出数据,来降低读出数据的比特错误率。例如,要读出LSB页时,参看图3A,相关的阈值为TH1,使用阈值TH1的最佳值来从存储单元读出数据。当要读出CSB时,相关阈值为TH2与TH3,使用阈值TH2与阈值TH3的最佳值来从存储单元读出数据。当要读出MSB时,相关阈值为TH4、TH5、TH6与TH7,使用阈值TH4、TH5、TH6与TH7的最佳值来从存储单元读出数据。
进一步地,若闪存介质的多个字线的均一性不好,还将多个字线分组,为每组字线设置在读出数据时所使用的一个或多个阈值的最佳值。
图5展示了根据本申请实施例的设置阈值的流程图。为设置阈值,读取字线上的多个物理页(510),并依据读出结果获取字线上的存储单元的状态(520)。对于MLC类型的存储单元,每个存储单元存储的两个比特(MSB与LSB)分别对应两个物理页(MSB页与LSB页)。一条字线上的多个MLC存储单元提供了至少两个物理页。读出这两个物理页,并将两个物理页的对应比特组合,以得到字线上的存储单元的状态。例如,从(包括4个存储单元的)字线的MSB页读出的数据是“1010”,而从LSB页读出的数据是“1100”,组合两个物理页的对应比特,得到字线的4个存储单元(C1、C2、C3与C4)的状态分别是“11”、“01”、“10”与“00”。对于TLC类型的存储单元,每个存储单元存储的三个比特(MSB、CSB与LSB)分别对应三个物理页(MSB页、CSB页与LSB页)。一条字线上的多个TLC存储单元提供了至少三个物理页。读出这三个物理页,并将三个物理页的对应比特组合,以得到字线上的存储单元的状态。例如,从(包括4个存储单元的)字线的MSB页读出的数据是“1010”,从CSB页读出的数据是“0011”,而从LSB页读出的数据是“1100”,组合三个物理页的对应比特,得到字线的4个存储单元(C1、C2、C3与C4)的状态分别是“101”、“001”、“110”与“010”。
可选地,为获得存储单元的状态,对从存储单元读出的物理页的数据进行错误校正译码,以得到物理页中正确的数据。一般地,物理页所包含的数据量为4KB、8KB或16KB,因而一条字线上的存储单元的数量是巨大的。对于TLC闪存,其可能的状态有8种。而一条字线上的大量的存储单元中,具有每种状态的存储单元的数量都可以较多。
在另一个例子中,为了避免一些情况下,一条字线上的存储单元中,状态分布不均匀,具有某些状态的存储单元的数量过少;可向字线的多个物理页写入已知的数据,并使字线上具有每种状态的存储单元的数量都达到较高的水平。
为了获得一个阈值(例如,TH1)的最佳值,从字线上的存储单元中识别具有与阈值相关的状态的多个存储单元(530)。与阈值相关的状态,是由阈值所区分的存储单元的读出电压分布相邻的两个状态。在图4中示出了与各阈值(TH1、TH2、…、TH7)相关的状态(L3/L4、L1/L2、…、L6/L7)。由于步骤520获得了字线上各个存储单元的状态,在步骤530,对于阈值TH1,从字线上的多个存储单元中,识别出具有“L3”与“L4”状态的存储单元。例如,参看图4,存储单元集合{C10,C11,C12,…C1m}中的存储单元都是具有“L3”与“L4”状态的存储单元。在根据本发明的实施例中,为获得阈值的最佳值,仅依据具有阈值相关的状态的存储单元的比特错误率,从而避免了其他状态的存储单元的多种比特错误原因给统计结果带来的干扰。
统计在阈值取不同值时,步骤530所识别的存储单元集合的多个比特错误率,得到最低比特错误率的阈值的取值,为该阈值当前的最佳值(540)。例如,在阈值(例如,TH1)的取值范围内,设置阈值(例如,TH1)的不同值。对于阈值(例如,TH1)的每个取值,从字线上读出与阈值相关的存储单元所在的物理页,并识别出与阈值相关的多个存储单元(例如,{C10,C11,C12,…C1m})的每个的状态。进而得到对于阈值(TH1)的每个取值,与阈值相关的多个存储单元(例如,{C10,C11,C12,…C1m})的比特错误率。以及得到值最小的比特错误率的阈值(例如,TH1)的取值,是阈值的最佳值。
在一个例子中,存储单元是TLC存储单元,每个存储单元中存储3比特数据。为计算存储单元的比特错误率,仅统计与阈值相关的多个存储单元中与被搜索的阈值(例如,TH1)相关的比特(参看图3A,与阈值TH1相关的比特是LSB)的错误率。类似地,也参看图3A,与阈值TH2或TH3相关的比特是CSB,而与阈值TH4、TH5、TH6或TH7相关的比特是MSB。
在另一个例子中,为计算存储单元的比特错误率,统计与阈值相关的存储单元的所有比特的总计的比特错误率。
记录所得到的阈值的最佳值,并使用阈值的最佳值读取NVM芯片其他物理页(550)。
可以理解地,通过步骤510到步骤540获得了阈值的最佳值。而步骤550利用所获得的阈值的最佳值读取NVM芯片。步骤510到步骤540,与步骤550不必同时发生或一起发生,也不必在同一处理过程中实施。
可选地,通过反复执行步骤530与步骤540,以获得多个阈值的每个的最佳值。例如,在步骤530,获得与阈值TH2相关的存储单元集合{C20,C21,C22,…,C2n}。在步骤540,将阈值TH2设置为第一值,从NVM芯片中读出包括存储单元集合{C20,C21,C22,…,C2n}的多个物理页,并识别出存储单元集合{C20,C21,C22,…,C2n}中每个存储单元的状态,以及在存储单元集合{C20,C21,C22,…,C2n}的比特错误率。以及在步骤540,还改变阈值TH2的取值,并统计出存储单元集合{C20,C21,C22,…,C2n}的比特错误率。在获得了阈值TH2的最佳值后,重复步骤530与步骤540,以识别例如阈值TH3的最佳值。
图6A展示了根据本申请又一实施例的设置阈值的流程图。
为设置阈值,读取字线上的多个物理页(610),并依据读出结果获取字线上的存储单元的状态(620)。对于MLC类型的存储单元,每个存储单元存储的两个比特(MSB与LSB)分别对应两个物理页(MSB页与LSB页)。一条字线上的多个MLC存储单元提供了至少两个物理页。读出这两个物理页,并将两个物理页的对应比特组合,以得到字线上的存储单元的状态。
可选地,为获得存储单元的状态,对从存储单元读出的物理页的数据进行错误校正译码,以得到物理页中正确的数据。一般地,物理页所包含的数据量为4KB、8KB或16KB,因而一条字线上的存储单元的数量是巨大的。对于TLC闪存,其可能的状态有8种。而一条字线上的大量的存储单元中,具有每种状态的存储单元的数量都可以较多。
在图6A的实施例中,要获得存储单元被写入的状态与从存储单元读出的状态。在一个例子中,向存储单元对应的多个物理页写入已知数据,从而依据已知数据可获得存储单元被写入的状态,以及依据从存储单元对应的多个物理页读出数据,可获得从存储单元读出的状态。在另一个例子中,对从存储单元对应的多个物理页读出的数据做错误校正译码,依据错误校正译码结果得到存储单元被写入的状态;而依据从存储单元对应的多个物理页读出的数据,得到从存储单元读出的状态。
确定存储单元被写入状态与从存储单元读出的状态二者相关的阈值(630)。当存储单元错在错误,被写入状态与读出的状态不同时,依据被写入状态与读出状态能确定相关的阈值。
参看图6B,图6B中展示了与存储单元的被写入状态与读出状态的组合相关的阈值。在存储单元的被写入状态与读出状态相邻时,意味着存储单元存在错误,且该错误与该相关的阈值有关。通过调整阈值,有助于降低或消除同该被写入状态与该读出状态相关的错误。
例如,当被写入状态是“L0”而读出状态是“L1”时,与被写入状态和读出状态相关的阈值是TH4。也参看图3A,与阈值相关的状态,是由阈值所区分的存储单元的读出电压分布相邻的两个状态。同具有相邻电压分布的两个状态的组合相关的阈值,是用于区分这两个状态的电压分布的阈值。返回参看图6B,若存储单元被写入状态是“L3”,而从存储单元读出的状态是“L4”,那么相关阈值是“TH1”。
继续参看图6B,若存储单元被写入的状态与从存储单元读出的状态不相邻(包括被写入的状态与从存储单元读出的状态相同,或图6B中由“其他”所指示的情况),则不考虑该存储单元对阈值的影响。
对于被考虑的每个存储单元,确定与同该存储单元相关的阈值相关的调整方向值(640)。再次参看图6B,例如,当被写入状态是“L0”而读出状态是“L1”时,与被写入状态和读出状态相关的阈值是TH4,以及对应的“调整方向值”是“+1”,意味着阈值的调整方向是向右移动(增大阈值的取值,有助于降低或消除被写入状态与读出状态的差异)。图6B中给出了对于TLC类型的存储单元,存储单元被写入状态与读出状态相邻时,同被写入状态与读出状态的组合对应的阈值以及调整方向值。
可选地,存储单元被写入的状态与读出状态不相邻时,不考虑该存储单元对阈值的影响。依然可选地,存储单元被写入的状态与读出状态不相邻时,将该存储单元对一个、多个或每个阈值的影响(对调整方向值的影响)设为0。
对于每个存储单元,累计与阈值相关的调整方向值(650)。例如,第一存储单元的被写入状态是“L0”,读出状态是“L1”,与该存储单元相关的阈值是“TH4”,相关的调整方向值是“+1”。第二存储单元的被写入状态是“L1”,读出状态是“L0”,与该存储单元相关的阈值是“TH4”,相关的调整方向值是“-1”。第三存储单元的被写入状态是“L1”,读出状态是“L0”,与该存储单元相关的阈值是“TH4”,相关的调整方向值是“-1”。第四存储单元的被写入状态是“L4”,读出状态是“L5”,与该存储单元相关的阈值是“TH6”,相关的调整方向值是“+1”。那么,累计对阈值TH4相关的调整方向值为对从上面第一、第二、第三存储单元得出的调整方向值求和,得到“-1”。累计对阈值TH6相关的调整方向值为从上面第四存储单元得出的调整方向值,得到“+1”。
对于字线上的多个存储单元,对每个存储单元,获得与其状态相关的阈值与调整方向值,并对每个阈值累计其调整方向值,得到每个阈值的调整方向值的和,用来确定阈值的调整方向,或阈值的调整值(660)。
在一个例子中,阈值的调整值的取值为-1、0、+1。将累计的调整方向值映射到阈值的调整值的三种取值之一。例如,若阈值TH1的累计的调整方向值大于5,对应的阈值TH1的调整值为+1;若阈值TH1的累计的调整方向值小于-5,对应的阈值TH1的调整值为-1;若阈值TH1的累计的调整方向值在-5到+5之间,对应的阈值TH1的调整值为。显然所属领域技术人员可以理解,“+5”与“-5”仅是举例,可以采用其他的值来实现从累计的调整方向值到阈值的调整值的映射。以及有多种映射方式,来将累计的调整方向值映射为阈值的调整值的三种取值之一。
阈值的调整值为+1时,意味着要将该阈值的值增加一个单位。类似的,阈值调整值为-1时,意味着要将该阈值的值减少一个单位。而阈值调整值为0时,保持该阈值的值不变。
在图6A的实施例中,对阈值的调整是持续的过程,每次可以只调节例如一个单位。若阈值的调整值不为0(665),意味着对阈值的调整可能尚未完成,需要进一步的调整,因而返回步骤610,并重复执行阈值的调整过程。
在一个例子中,要调整的阈值有多个(例如,7个,也参看图3A),则当要调整的多个阈值的任何一个的调整值不为0时,都返回步骤610,并重复执行阈值调整过程。
可选地,针对指定的一个或多个阈值进行调整。在步骤665,指定的阈值的任何一个的调整值不为0时,返回步骤610。
若要调整的阈值的调整值都为0,表明已经得到每个阈值的最佳值。记录当前每个阈值的值作为阈值的最佳值(670)。
使用阈值的最佳值读取NVM芯片其他物理页(680)。
可以理解地,通过步骤610到步骤670获得了阈值的最佳值。而步骤680利用所获得的阈值的最佳值读取NVM芯片。步骤610到步骤670,与步骤680不必同时发生或一起发生,也不必在同一处理过程中实施。
图7是固态存储设备的框图。根据本申请的实施例可由图7所展示的固态存储设备中实施。固态存储设备702同主机相耦合,用于为主机提供存储能力。主机同固态存储设备702之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial AdvancedTechnology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机系统接口)、SAS(Serial Attached SCSI,串行连接SCSI)、IDE(IntegratedDrive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,PCIe,高速外围组件互联)、NVMe(NVMExpress,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备702。主机可以是能够通过上述方式同固态存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备702包括接口703、控制部件704、一个或多个NVM芯片705以及DRAM(DynamicRandom Access Memory,动态随机访问存储器)710。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)等是常见的NVM。
接口703可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件704用于控制在接口703、NVM芯片705以及DRAM710之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。如本申请图5或图6A所展示的实施例由控制部件704实施。控制部件704可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件704可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application Specific Integrated Circuit,应用专用集成电路)或者其组合的形式;控制部件704也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件704的硬件来处理IO(Input/Output)命令;控制部件704还可以耦合到DRAM710,并可访问DRAM710的数据;在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件704包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片705,并以遵循NVM芯片705的接口协议的方式向NVM芯片705发出命令,以操作NVM芯片705,并接收从NVM芯片705输出的命令执行结果。NVM芯片705的接口协议包括“Toggle”、“ONFI”等公知的接口协议或标准。
在控制部件704中运行的软件和/或固件(下面统称为“固件”)可被存储在NVM芯片705或另外的固件存储器中。在固态存储设备702上电时,从固件存储器将固件加载到DRAM710和/或控制部件704内部的存储器中。可选地,通过接口703或调试接口接收并加载固件。
根据本发明实施例的阈值设置方法可应用于基于NVM芯片的固态存储设备,包括但不限于固态硬盘、U盘、SD卡,还可以应用于手机、平板电脑等便携式电子设备,以及其他多种使用NVM芯片(诸如NAND闪存)的需要存储信息的电子设备。
虽然当前发明参考的示例被描述,其只是为了解释的目的而不是对本发明的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本发明的范围。
这些实施方式所涉及的、从上面描述和相关联的附图中呈现的教导获益的领域中的技术人员将认识到这里记载的本发明的很多修改和其他实施方式。因此,应该理解,本发明不限于公开的具体实施方式,旨在将修改和其他实施方式包括在所附权利要求书的范围内。尽管在这里采用了特定的术语,但是仅在一般意义和描述意义上使用它们并且不是为了限制的目的而使用。

Claims (9)

1.一种设置阈值的方法,包括:
读取第一字线上的多个页;
确定第一字线上多个存储单元的数据状态;
依据第一字线上多个存储单元的数据状态,从所述多个存储单元中获取与第一阈值相关的第一多个存储单元;
依据第一多个存储单元的比特错误率,获取第一阈值的最佳值;以及
用第一阈值的最佳值更新第一阈值;
其中所述第一多个存储单元是具有第一数据状态与第二数据状态之一的存储单元,第一数据状态与第二数据状态是由第一阈值所区分的读出电压分布相邻的状态。
2.根据权利要求1所述的方法,还包括:
用更新后的第一阈值读取同第一字线属于相同逻辑单元或管芯的页。
3.一种设置阈值的装置,包括:
读取模块,用于读取第一字线上的多个页;
数据状态识别模块,用于确定第一字线上多个存储单元的数据状态;
存储单元识别模块,用于依据第一字线上多个存储单元的数据状态,从所述多个存储单元中获取与第一阈值相关的第一多个存储单元;
最佳阈值获取模块,用于依据第一多个存储单元的比特错误率,获取第一阈值的最佳值;以及
阈值更新模块,用于用第一阈值的最佳值更新第一阈值;
其中所述第一多个存储单元是具有第一数据状态与第二数据状态之一的存储单元,第一数据状态与第二数据状态是由第一阈值所区分的读出电压分布相邻的状态。
4.一种设置阈值的方法,包括:
读取第一字线上的多个页;
确定第一字线上多个存储单元的数据状态;
依据存储单元的被写入的第一数据状态与读出的第二数据状态识别第一阈值以及第一阈值的调整方向值;
其中第一数据状态与第二数据状态是由第一阈值所区分的读出电压分布相邻的状态;
累计从所述多个存储单元识别的第一阈值的调整方向值,得到第一阈值的调整值;以及
用第一阈值的调整值更新第一阈值。
5.根据权利要求4所述的方法,还包括:
依据存储单元的被写入的第三数据状态与读出的第四数据状态识别第二阈值以及第二阈值的调整方向值;
其中第三数据状态与第三数据状态是由第二阈值所区分的读出电压分布相邻的状态;
累计从所述多个存储单元识别的第二阈值的调整方向值,得到第二阈值的调整值;以及
用第二阈值的调整值更新第二阈值。
6.根据权利要求4-5之一所述的方法,其中
当第一数据状态与第二数据状态是读出电压分布相邻的状态时,确定第一阈值是区分第一数据状态与第二数据状态的阈值,以及第一阈值的调整方向值指示从第一数据状态的电压分布区域到第二数据状态的电压分布区域的方向。
7.根据权利要求4-5之一所述的方法,还包括:
用更新后的第一阈值读取同第一字线属于相同逻辑单元或管芯的页。
8.一种设置阈值的装置,包括:
读取模块,用于读取第一字线上的多个页;
数据状态识别模块,用于确定第一字线上多个存储单元的数据状态;
调整方向值计算模块,用于依据存储单元的被写入的第一数据状态与读出的第二数据状态识别第一阈值以及第一阈值的调整方向值;
其中第一数据状态与第二数据状态是由第一阈值所区分的读出电压分布相邻的状态;
调整值计算模块,用于累计从所述多个存储单元识别的第一阈值的调整方向值,得到第一阈值的调整值;以及
阈值更新模块,用于用第一阈值的调整值更新第一阈值。
9.一种固态存储设备,包括,控制器与非易失存储器;
所述控制器中的处理器通过运行程序来执行如权利要求1-2、4-7中任一项所述的方法。
CN201611245228.2A 2016-12-29 2016-12-29 读阈值设置方法与装置 Active CN108257642B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611245228.2A CN108257642B (zh) 2016-12-29 2016-12-29 读阈值设置方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611245228.2A CN108257642B (zh) 2016-12-29 2016-12-29 读阈值设置方法与装置

Publications (2)

Publication Number Publication Date
CN108257642A CN108257642A (zh) 2018-07-06
CN108257642B true CN108257642B (zh) 2021-08-17

Family

ID=62719889

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611245228.2A Active CN108257642B (zh) 2016-12-29 2016-12-29 读阈值设置方法与装置

Country Status (1)

Country Link
CN (1) CN108257642B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076218B (zh) * 2020-07-03 2022-03-25 北京忆芯科技有限公司 Nvm芯片读数据错误快速处理方法及其控制器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104282339A (zh) * 2013-07-08 2015-01-14 群联电子股份有限公司 读取电压设定方法、控制电路与存储器储存装置
CN105074831A (zh) * 2013-05-31 2015-11-18 桑迪士克科技股份有限公司 更新读取电压
CN105989891A (zh) * 2015-03-20 2016-10-05 Hgst荷兰有限公司 用于增强的闪存性能的读取级别分组

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105074831A (zh) * 2013-05-31 2015-11-18 桑迪士克科技股份有限公司 更新读取电压
CN104282339A (zh) * 2013-07-08 2015-01-14 群联电子股份有限公司 读取电压设定方法、控制电路与存储器储存装置
CN105989891A (zh) * 2015-03-20 2016-10-05 Hgst荷兰有限公司 用于增强的闪存性能的读取级别分组

Also Published As

Publication number Publication date
CN108257642A (zh) 2018-07-06

Similar Documents

Publication Publication Date Title
CN106448737B (zh) 读取闪存数据的方法、装置以及固态驱动器
US9672942B2 (en) Data decoding method of non-volatile memory device and apparatus for performing the method
US10249383B2 (en) Data storage device and operating method thereof
US10102059B2 (en) Data storage device capable of preventing a data retention fail of a nonvolatile memory device and operating method thereof
US9740425B2 (en) Tag-based wear leveling for a data storage device
US8281061B2 (en) Data conditioning to improve flash memory reliability
CN108461107B (zh) 读阈值跟踪方法与装置
US8255643B2 (en) Memory system and data processing method thereof
US7596021B2 (en) Memory system including MLC flash memory
US10170201B2 (en) Data storage device and operating method thereof
US20140173172A1 (en) System and method to update read voltages in a non-volatile memory in response to tracking data
US10902924B2 (en) Memory system varying pass voltage based on erase count of target memory block and operating method thereof
CN106920575B (zh) 数据存储装置及其操作方法
CN110120234B (zh) 固态存储设备及其最优读出阈值电压的搜索方法
US10503433B2 (en) Memory management method, memory control circuit unit and memory storage device
US11086717B2 (en) Random selection of code words for read voltage calibration
US20230266884A1 (en) Operating method for storage controller and storage system including same
CN113076218B (zh) Nvm芯片读数据错误快速处理方法及其控制器
KR102157570B1 (ko) 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스
KR20220056919A (ko) 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 저장 장치, 및 그것의 리드 방법
US9837145B2 (en) Multi-level flash storage device with minimal read latency
CN108257642B (zh) 读阈值设置方法与装置
US20200409579A1 (en) Adjusting code rates to mitigate cross-temperature effects in a non-volatile memory (nvm)
US20160322087A1 (en) Data storage device and operating method thereof
US9952981B2 (en) Read cache management in multi-level cell (MLC) non-volatile memory

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
CB02 Change of applicant information

Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Applicant after: Beijing yihengchuangyuan Technology Co.,Ltd.

Address before: 100192 Room 302, 3 / F, building B-2, Dongsheng Science Park, 66 xixiaokou Road, Haidian District, Beijing

Applicant before: MEMBLAZE TECHNOLOGY (BEIJING) Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant