一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

非易失性存储器的试错表的生成方法及装置与流程

2021-02-05 14:19:00 来源:中国专利 TAG:
[0001]本申请涉及存储设备领域,具体而言,涉及一种非易失性存储器的试错表的生成方法及装置。
背景技术
::[0002]当读nandflash出现uecc(uncorrectableerrorcheckingandcorrecting)时,第一步就是用试错表(retrytable)纠正,通过尝试不同的retrytable值来纠正读出错的数据。[0003]现有的重试方式是查询nandflash厂家提供的固定retrytable,依次使用retrytable提供的条目尝试读取nandflash。如果数据纠回来就停止查表;如果数据纠正不过来会一直查retrytable直到把整个表查询完。[0004]现有的重试方式主要存在以下缺点:[0005]1)因为要逐条查询retrytable,当纠正不回来会尝试表中的下一个条目,这样势必会增加试错的次数,增加处理写命令的延迟,这样固态硬盘(solidstatedisk,ssd)处理数据就会变得异常缓慢,给客户带来糟糕的用户体验。[0006]2)nandflash厂家提供的retrytable只是一些特定环境变量下的retry值,而ssd的使用场景千变万化,厂家提供的retrytable有很多场景都覆盖不到,这样可能把表项都试完数据也纠正不回来,结果白白浪费了很多处理命令的时间。[0007]针对上述的问题,目前尚未提出有效的解决方案。技术实现要素:[0008]本申请实施例提供了一种非易失性存储器的试错表的生成方法及装置,以至少解决当读nandflash出现uecc时,利用nandflash厂家提供的固定试错表(retrytable)纠正读出错的数据,导致纠错效率较低,而且厂家提供的固定试错表覆盖的使用场景较少的技术问题。[0009]根据本申请实施例的一个方面,提供了一种非易失性存储器的试错表的生成方法,包括:获取导致非易失性存储器的读数据出错的环境变量;确定环境变量的定量描述数值,定量描述数值用于通过精确的数据描述环境变量;分别在不同的环境变量的定量描述数值下,读取非易失性存储器的数据;依据从非易失性存储器读取的数据生成非易失性存储器的试错表。[0010]可选地,环境变量至少包括:非易失性存储器使用环境的外界温度、非易失性存储器的数据保存时间是否达到预设期限、非易失性存储器的擦写次数、从非易失性存储器读取的数据的当前温度、非易失性存储器的字线层数以及非易失性存储器的电压状态。[0011]可选地,确定环境变量的定量描述数值,包括:按照第一预设间隔区间将非易失性存储器使用温度范围划分为多个温度区间,在每个温度区间中分别为非易失性存储器使用环境的外界温度和从非易失性存储器读取的数据的当前温度设定一个测量值,将测量值作为非易失性存储器使用环境的外界温度和从非易失性存储器读取的数据的当前温度的定量描述数值;按照第二预设间隔区间将非易失性存储器的最大擦写次数划分为多个擦写次数区间,在每个擦写次数区间中统计一个非易失性存储器的擦写次数的定量描述数值;按照第三预设间隔区间将非易失性存储器的字线层数划分为多个字线层数区间,在每个字线层数区间中统计一个非易失性存储器的字线层数的定量描述数值;用真和假两个布尔类型的值作为非易失性存储器的数据保存时间是否达到预设期限的定量描述数值;设定预设数量需要校准的电压点作为非易失性存储器的电压状态的定量描述数值。[0012]可选地,分别在不同的环境变量的定量描述数值下,读取非易失性存储器的数据,包括:步骤s1,分别在不同的定量描述数值下,向非易失性存储器发送读命令,以读取非易失性存储器的数据;步骤s2,如果数据中存在通过错误检查与纠正技术纠正回来的数据,观察纠正回来数据的原始错误比特数,从纠正回来数据中选择原始错误比特数最小的数据作为当前环境变量对应的试错值,试错值用于对数据中的出错数据进行纠正处理时代替出错数据;步骤s3,如果数据中不存在通过错误检查与纠正技术纠正回来的数据,放弃本次尝试。[0013]可选地,分别在不同的环境变量的定量描述数值下,读取非易失性存储器的数据,还包括:重复执行步骤s1至步骤s3预设次数,得到每个环境变量对应的预设数量的试错值,其中,预设数量与预设次数相同。[0014]可选地,依据从非易失性存储器读取的数据生成非易失性存储器的试错表,包括:基于模糊c均值-聚类算法对每个环境变量对应的预设数量的试错值进行处理,得到每个环境变量对应的最优试错值;依据每个环境变量对应的最优试错值生成非易失性存储器的试错表,其中,试错表中存储有每个环境变量的定量描述数值与每个环境变量对应的最优试错值之间的对应关系。[0015]可选地,依据从非易失性存储器读取的数据生成非易失性存储器的试错表之后,上述方法还包括:如果非易失性存储器无法通过错误检查与纠正技术纠正出错数据,确定非易失性存储器当前的环境变量;通过非易失性存储器当前的环境变量的定量描述数值从试错表中查找当前的环境变量对应的最优试错值;基于最优试错值对非易失性存储器的出错数据进行纠错处理。[0016]根据本申请实施例的另一方面,还提供了一种非易失性存储器的试错表的生成装置,包括:获取模块,用获取导致非易失性存储器的读数据出错的环境变量;确定模块,用于确定环境变量的定量描述数值,定量描述数值用于通过精确的数据描述环境变量;读取模块,用于分别在不同的环境变量的定量描述数值下,读取非易失性存储器的数据;生成模块,用于依据从非易失性存储器读取的数据生成非易失性存储器的试错表。[0017]根据本申请实施例的再一方面,还提供了一种非易失性存储介质,其特征在于,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的非易失性存储器的试错表的生成方法。[0018]根据本申请实施例的再一方面,还提供了一种处理器,其特征在于,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的非易失性存储器的试错表的生成方法。[0019]在本申请实施例中,采用获取导致非易失性存储器的读数据出错的环境变量;确定环境变量的定量描述数值,定量描述数值用于通过精确的数据描述环境变量;分别在不同的环境变量的定量描述数值下,读取非易失性存储器的数据;依据从非易失性存储器读取的数据生成非易失性存储器的试错表的方式,通过针对不同的nandflash,不同的产品定位,可以定制化符合自身要求的最优试错表,摆脱对nandflash厂家提供试错表的依赖,达到了改进非易失性存储器的纠错流程,减少纠错的试错次数。如果纠错不回来数据,及时进入下一个错误处理流程的目的,从而实现了减少命令处理的延迟,提高了非易失性存储器的纠错效率,提升用户的使用体验的技术效果,进而解决了当读nandflash出现uecc时,利用nandflash厂家提供的固定试错表(retrytable)纠正读出错的数据,导致纠错效率较低,而且厂家提供的固定试错表覆盖的使用场景较少技术问题。附图说明[0020]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:[0021]图1是根据本申请实施例的一种非易失性存储器的试错表的生成方法的流程图;[0022]图2是根据本申请实施例的一种非易失性存储器的试错表的生成装置的结构图。具体实施方式[0023]为了使本
技术领域
:的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。[0024]需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。[0025]首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:[0026]nandflash:nandflash是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。[0027]ssd,solidstatedisk,俗称固态硬盘,是用固态电子存储芯片阵列制成的硬盘。[0028]ecc,errorcheckingandcorrecting,是一种能够实现“错误检查与纠正”的技术。[0029]uecc,不可实现错误检查与纠正。[0030]根据本申请实施例,提供了一种非易失性存储器的试错表的生成方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。[0031]图1是根据本申请实施例的一种非易失性存储器的试错表的生成方法的流程图,如图1所示,该方法包括如下步骤:[0032]步骤s102,获取导致非易失性存储器的读数据出错的环境变量;[0033]根据本申请的一个可选的实施例,上述环境变量至少包括:非易失性存储器使用环境的外界温度、非易失性存储器的数据保存时间(dateretention)是否达到预设期限、非易失性存储器的擦写次数(pecycle)、从非易失性存储器读取的数据的当前温度、非易失性存储器的字线层数(wordline层数)以及非易失性存储器的电压状态。[0034]dateretention,任何存储技术,存储的数据都不能永远保存,有个保持时间。闪存中,数据保存时间问题叫做dateretention。到了期限,数据就会出错,标志就是从闪存读出来的数据无法用ecc纠错成功(一般dateretention的期限是一年)。[0035]在nandflash中,最小的数据写单元为wordline(也可命名为page)。[0036]步骤s104,确定环境变量的定量描述数值,定量描述数值用于通过精确的数据描述环境变量;[0037]步骤s106,分别在不同的环境变量的定量描述数值下,读取非易失性存储器的数据;[0038]步骤s108,依据从非易失性存储器读取的数据生成非易失性存储器的试错表。[0039]通过上述步骤,通过针对不同的nandflash,不同的产品定位,可以定制化符合自身要求的最优试错表,摆脱对nandflash厂家提供试错表的依赖,达到了改进非易失性存储器的纠错流程,减少纠错的试错次数。如果纠错不回来数据,及时进入下一个错误处理流程的目的,从而实现了减少命令处理的延迟,提高了非易失性存储器的纠错效率,提升用户的使用体验的技术效果。[0040]根据本申请的一个可选的实施例,步骤s104通过以下方法实现:按照第一预设间隔区间将非易失性存储器使用温度范围划分为多个温度区间,在每个温度区间中分别为非易失性存储器使用环境的外界温度和从非易失性存储器读取的数据的当前温度设定一个测量值,将测量值作为非易失性存储器使用环境的外界温度和从非易失性存储器读取的数据的当前温度的定量描述数值;按照第二预设间隔区间将非易失性存储器的最大擦写次数划分为多个擦写次数区间,在每个擦写次数区间中统计一个非易失性存储器的擦写次数的定量描述数值;按照第三预设间隔区间将非易失性存储器的字线层数划分为多个字线层数区间,在每个字线层数区间中统计一个非易失性存储器的字线层数的定量描述数值;用真和假两个布尔类型的值作为非易失性存储器的数据保存时间是否达到预设期限的定量描述数值;设定预设数量需要校准的电压点作为非易失性存储器的电压状态的定量描述数值。[0041]影响nandflashreaderror的主要因素有外界温度、dateretention、pecycle、读取数据的当前温度、wordline层数、电压状态。[0042]把上述变量记录如下:[0043][0044]对上述环境变量建模,定量描述如下:[0045]假设ssd的使用温度是宽温:-40~ 85℃,对温度细分,每隔20℃设定一个测量值,et和rt就有7个值。[0046]假设最大的pec是4000,每隔400统计一个值,那么pec就有11个值。[0047]是否dataretention可以定义为bool值,那么irt就有2个值。[0048]假设wordline层数是64,每8层统计,那么cl就有8个值。[0049]假设是tlc,那个要校准的电压点有7个,那么s就有7个值。[0050]根据本申请的一个可选的实施例,步骤s106通过以下方法实现:步骤s1,分别在不同的定量描述数值下,向非易失性存储器发送读命令,以读取非易失性存储器的数据;步骤s2,如果数据中存在通过错误检查与纠正技术纠正回来的数据,观察纠正回来数据的原始错误比特数,从纠正回来数据中选择原始错误比特数最小的数据作为当前环境变量对应的试错值,试错值用于对数据中的出错数据进行纠正处理时代替出错数据;步骤s3,如果数据中不存在通过错误检查与纠正技术纠正回来的数据,放弃本次尝试。[0051]在本申请的一些可选的实施例,在执行步骤s106时,重复执行步骤s1至步骤s3预设次数,得到每个环境变量对应的预设数量的试错值,其中,预设数量与预设次数相同。[0052]本步骤中,在不同的et,不同的irt,不同的pec,不同的rt,不同的cl,不同的s下,发读命令读取nandflash数据,如果出现uecc观察纠正回来数据的ecc数,找到一个最小的ecc值就能作为当前环境下的最优retry值。如果没有出现uecc观察纠正回来数据的ecc数,不对获取的数据做任何处理(即上文中提到的放弃本次尝试)。[0053]重复上述步骤10次,获取每个特定条件下的10组实验数据。[0054]在本申请的一些可选的实施例中,步骤s108通过以下方法实现:基于模糊c均值-聚类算法对每个环境变量对应的预设数量的试错值进行处理,得到每个环境变量对应的最优试错值;依据每个环境变量对应的最优试错值生成非易失性存储器的试错表,其中,试错表中存储有每个环境变量的定量描述数值与每个环境变量对应的最优试错值之间的对应关系。[0055]通过上述方法基于模糊c均值算法收敛实验数据:[0056]记上述10组数据为xi;[0057]记聚类数目为c,设c值为2;[0058]记控制算法的柔性参数为m,设m值为2;[0059]记隶属矩阵为uij;[0060]记阈值为vth,设vth=0x40;[0061]第一步:用值在0,1间的随机数初始化隶属矩阵u,矩阵值之和为1;即满足如下条件:[0062][0063]第二步:计算c个聚类中心ci,公式如下:[0064][0065]第三步:计算价值函数。[0066][0067]其中,dij=||ci-xj||;[0068]看其值j是否小于阈值vth,如果是,则停止。[0069]如果不是,计算隶属度如下:[0070][0071]第四步:返回步骤2计算。[0072]经过上述收敛算法的处理可以得到一张最优的retrytable值。[0073]在本申请的另一个可选的实施例中,步骤s108执行完成之后,如果非易失性存储器无法通过错误检查与纠正技术纠正出错数据,确定非易失性存储器当前的环境变量;通过非易失性存储器当前的环境变量的定量描述数值从试错表中查找当前的环境变量对应的最优试错值;基于最优试错值对非易失性存储器的出错数据进行纠错处理。[0074]当出现uecc需要做retry操作时,根据当前page的et、irt、pec、rt、cl、s值,通过上述的最优表找到一组retry值去做retry,进而提高retry的效率。已经在工业级产品上应用了该方案,大大提高了retry效率。[0075]图2是根据本申请实施例的一种非易失性存储器的试错表的生成装置的结构图,如图2所示,该装置包括:[0076]获取模块20,用获取导致非易失性存储器的读数据出错的环境变量;[0077]确定模块22,用于确定环境变量的定量描述数值,定量描述数值用于通过精确的数据描述环境变量;[0078]读取模块24,用于分别在不同的环境变量的定量描述数值下,读取非易失性存储器的数据;[0079]生成模块26,用于依据从非易失性存储器读取的数据生成非易失性存储器的试错表。[0080]需要说明的,图2所示实施例的优选实施方式可以参见图1所示实施例的相关描述,此处不再赘述。[0081]本申请实施例的再一方面,还提供了一种非易失性存储介质,其特征在于,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的非易失性存储器的试错表的生成方法。[0082]非易失性存储介质用于存储执行以下功能程序:获取导致非易失性存储器的读数据出错的环境变量;确定环境变量的定量描述数值,定量描述数值用于通过精确的数据描述环境变量;分别在不同的环境变量的定量描述数值下,读取非易失性存储器的数据;依据从非易失性存储器读取的数据生成非易失性存储器的试错表。[0083]本申请实施例还提供了一种处理器,其特征在于,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的非易失性存储器的试错表的生成方法。[0084]处理器用于处理执行以下功能的程序:获取导致非易失性存储器的读数据出错的环境变量;确定环境变量的定量描述数值,定量描述数值用于通过精确的数据描述环境变量;分别在不同的环境变量的定量描述数值下,读取非易失性存储器的数据;依据从非易失性存储器读取的数据生成非易失性存储器的试错表。[0085]上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。[0086]在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。[0087]在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。[0088]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0089]另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。[0090]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,rebjzskjd-onlymemory)、随机存取存储器(rbjzskjm,rbjzskjndombjzskjccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。[0091]以上所述仅是本申请的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。当前第1页1 2 3 当前第1页1 2 3 
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜