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

存储器系统及存储器控制器的制作方法

2021-08-03 14:29:00 来源:中国专利 TAG:
本发明涉及存储器装置,且特别是利用机器学习确定存储器系统的读取电压的存储器系统及存储器控制器。
背景技术
::一旦对数据存储装置(例如,存储器系统)中的存储单元进行编程,可将存储单元阈值电压(thresholdvoltage)与一或多个读取电压进行比较,以感测每个存储单元的编程状态,进而从存储单元读取数据。然而,存储单元阈值电压可能因一或多个因素(例如,读取干扰或数据保留)而改变,这可能使感测到的编程状态相异于写入的编程状态,并导致数据读取输出的错误位(failedbit)。技术实现要素:本公开描述了利用机器学习(ml,machinelearning)来确定存储器系统(例如,非易失性存储器(nvm)系统)的读取电压的系统与技术,其可减少存储器数据读取输出中的错误位计数(fbc,failbitcount)。本公开的一个方面提供一种存储器系统,该存储器系统包括存储器以及耦接至该存储器的存储器控制器,存储器控制器配置为:利用对应于与目标存储器数据相关的第一组参数的第一读取电压来获得存储器的目标存储器数据的第一读取输出;响应于确定第一读取输出未通过纠错码(ecc,error-correctingcode)测试,利用对应于与目标存储器数据相关的第二组参数的第二读取电压来获得目标存储器数据的第二读取输出,其中第二读取电压系利用基于第二组参数的至少一机器学习算法而产生,第二组参数包括第一组参数;以及响应于确定第二读取输出通过纠错码测试,输出第二读取输出以作为目标存储器数据的目标读取输出。在一些实施例中,存储器控制器利用基于该第一组参数的存储的读取电压数据(readvoltagedata)来产生第一读取电压。存储的读取电压数据可存储于存储器。在一些实施例中,存储的读取电压数据系基于使用与存储器及对应的多个最佳读取电压有关的多个输入的监督式机器学习训练(supervisedmltraining)所产生,各个最佳读取电压对应到在多个输入的个别输入之下,对应至存储器的个别页面的读取输出的最小错误位计数(minimumfailedbitcount),各个输入包括多个参数的相应值,多个参数包括第一组参数。在一些实施例中,各个参数对存储器的存储单元特性具有相应影响程度,并且多个输入的多个参数的数值间隔系依据多个参数的相应影响程度来确定。在制造存储器系统期间,可执行监督式机器学习训练。在一些实施例中,存储的读取电压数据报括转移函数(transferfunction),该转移函数依据监督式机器学习训练来产生,转移函数表示多个参数的输入与最佳读取电压之间的关系。转移函数可包括查找表(lookuptable)、哈希函数(hashfunction)或k-平均值。在一些实施例中,响应于确定第二读取输出通过纠错码测试,存储器控制器利用第二读取电压来更新存储的读取电压数据。存储器控制器可配置为:响应于确定目标存储器数据的存储单元状态的阈值电压(thresholdvoltage)在对应的预定范围内,以更新存储的读取电压数据。在一些实施例中,响应于确定第二读取输出通过纠错码测试且目标存储器数据的存储单元状态的至少一阈值电压超出了对应的预定范围,存储器控制器不使用第二读取电压来更新存储的读取电压数据。在一些实施例中,存储器控制器配置为:回应于确定第二读取输出未通过纠错码测试,调整第二组参数,并且利用基于调整后的第二组参数的至少一机器学习算法而产生新的第二读取电压。存储器控制器可添加目标存储器数据相关的一或多个新参数,以调整第二组参数。在一些实施例中,存储器控制器被配置为:确定第一读取输出的错误位计数是否超过第一预定阈值,以确定第一读取输出是否通过纠错码测试。在一些实施例中,存储器控制器配置为:响应于确定第一读取输出的错误位计数不超过第一预定阈值,确定第一读取输出的错误位计数是否超过第二预定阈值,该第二预定阈值小于第一预定阈值。在一些实施例中,存储器控制器配置为:响应于确定第一读取输出的错误位计数不超过第二预定阈值,输出第一读取输出以作为目标存储器数据的目标读取输出。在一些实施例中,存储器控制器配置为:响应于确定第一读取输出的错误位计数超过第二预定阈值且第一读取输出的错误位计数不超过第一预定阈值,利用至少一机器学习算法来产生第三读取电压。存储器控制器可利用第三读取电压来更新存储的读取电压数据。在一些实施例中,存储器控制器配置为:响应于确定目标存储器数据中的存储单元状态的阈值电压在对应的预定范围内,以利用第三读取电压来更新存储的读取电压数据。在一些实施例中,第一组参数包括地址信息、多个编程/擦除(p/e)周期、读取温度、读取干扰程度或保留时间(retentiontime)的至少其中之一。在一些实施例中,第二组参数包括该第一读取输出的错误位计数、各个先前读取电压所获得的多个“1”值、先前读取电压与当前读取电压之间的“1”值数量变化、读取时间、低密度奇偶检查码(ldpccode)的校验子(syndrome)与低密度奇偶检查码的多个迭代(iteration)的至少其中之一。在一些实施例中,至少一机器学习算法包括线性回归(linearregression)、支持向量回归(supportvectorregression)以及具有卷积神经网络(cnn)算法或循环神经网络(rnn)算法的深度学习算法的至少其中之一。在一些实施例中,存储器控制器配置为:响应于确定第一读取输出通过纠错码测试,输出第一读取输出以作为目标存储器数据的目标读取输出。在一些实施例中,存储器控制器配置为:读取来自主机的读取请求,该读取请求包括目标存储器数据的信息;以及输出目标存储器数据的目标读取输出至主机。本公开的另一方面提供一种存储器系统,该存储器系统包括存储器以及耦接至该存储器的存储器控制器,并且存储器控制器配置为:利用基于与存储器所读取的存储器数据相关的第一组参数而得到的存储的读取电压数据来确定第一读取电压;利用第一读取电压读取存储器数据,以获得第一读取输出;确定第一读取输出是否通过纠错码测试;响应于确定第一读取输出未通过纠错码测试,利用基于与存储器数据相关的第二组参数的至少一机器学习算法而产生第二读取电压,第二组参数包括第一组参数与至少一额外参数;利用第二读取电压读取存储器数据,以获得第二读取输出;确定第二读取输出是否通过纠错码测试;以及响应于确定第二读取输出通过纠错码测试,输出第二读取输出以作为存储器所读取的存储器数据。在一些实施例中,存储器控制器配置为:响应于确定第二读取输出通过纠错码测试,利用第二读取电压来更新存储的读取电压数据。本公开的另一方面提供一种耦接至存储器的存储器控制器,该存储器控制器包括:至少一处理器;纠错码电路;机器学习电路;以及至少一非瞬时介质(non-transitorymedium),该至少一非瞬时介质存储多个指令,多个指令系由处理器来执行。存储器控制器配置为:通过机器学习电路,利用基于与存储器所读取的存储器数据相关的第一组参数所得到的存储的读取电压数据来确定第一读取电压;通过处理器,利用第一读取电压读取存储器数据,以获得第一读取输出;通过纠错码电路,确定第一读取输出是否通过纠错码测试;响应于确定第一读取输出未通过纠错码测试,通过机器学习电路,利用基于与存储器数据相关的第二组参数的至少一机器学习算法而产生第二读取电压,第二组参数包括第一组参数与至少一额外参数;通过处理器,利用第二读取电压读取存储器数据,以获得第二读取输出;通过纠错码电路,确定第二读取输出是否通过纠错码测试;以及响应于确定第二读取输出通过纠错码测试,通过处理器,输出第二读取输出以作为存储器所读取的存储器数据。在一些实施例中,存储的读取电压数据存储于存储器,并且存储器控制器包括存储器接口,并且机器学习电路通过存储器接口与存储器进行通信。在一些实施例中,存储器控制器包括开放式nand型闪存接口(onfi)或切换界面(toggleinterface)。以上技术的实现包括方法、系统、电路、计算机程序产品以及计算机可读取媒体(computer-readablemedia)。在一个示例中,一种方法可以在非易失性存储器中执行,并且该方法可包括上述动作,例如,用于管理参考电压电路启动的动作。在另一示例中,一种这样的计算机程序产品适当地体现于非瞬时机器可读取介质(non-transitorymachine-readablemedium),其可存储由一或多个处理器所执行的指令。该指令使一或多个处理器执行上述动作。一种这样的计算机可读取介质存储指令,当该指令由一或多个处理器执行时,该指令使一或多个处理器执行上述动作。本公开所描述的一或多个主题的实施例细节将搭配底下所附附图来进行说明。通过说明书、附图和权利要求书,本发明的其他特征、方面和优点将变得显而易见。附图说明图1a绘示依据一或多个实施方式的系统范例。图1b绘示依据一或多个实施方式的示意性存储器。图1c绘示依据一或多个实施方式的存储器中的示意性区块。图2a绘示依据一或多个实施方式的不同状态的多阶存储单元(mlc)存储单元的阈值电压分布的示例。图2b绘示读取输出的存储单元计数与具有不同编程/擦除(p/e)周期计数的读取电压之间的关系范例。图3绘示依据一或多个实施方式的利用初步阶段与细部阶段来确定读取电压的存储器系统示例。图4a绘示依据一或多个实施方式的确定初步阶段中的读取电压的监督式机器学习训练的流程示例。图4b绘示依据一或多个实施方式的确定具有初步阶段与细部阶段的存储器系统的读取电压的流程示例。图5绘示依据一或多个实施方式的多阶存储单元存储单元的最佳读取电压以及具有初步阶段和细部阶段的编程/擦除周期计数之间的关系示例。【符号说明】100:系统110:装置112:装置控制器113:处理器114:内部存储器116,350:存储器118:区块119:存储单元串列120:主机121:位线122:存储单元126,ssl:源极选择线128,sst:源极选择晶体管130:存储单元页面132:字线134,gsl:接地选择线136,gst:接地选择晶体管138,csl:共源线140:纠错码电路142:纠错码编码器144,340:纠错码译码器150:机器学习电路152:机器学习数据200:示例图202,204,206,208,502,512,522,pe0,pe3k,pe5k,pe10k,pe15k,pe20k:曲线203:点曲线250:曲线图300:存储器系统302:读取请求304:读出数据310:存储器控制器312:非易失性存储器接口320:初步阶段330:细部阶段342,412,414,416,418,419,422,424,426,428,452,454,456,458,460,462,464,466,468,470,472,474,480:步骤352:非易失性存储器芯片400,410,420,430,440,450:流程500:关系图504,514,524:变量bl0,bl1,bln-1,bln:行位线wl0,wl1,wln-1,wln:列字线msb:最高有效位lsb:最低有效位er:擦除状态a,b,c:编程状态v10,vl1,vl2,vl3:下限电压vh0,vh0’,vh1,vh2,vh3:上限电压vdisturb,vrd1,vrd2,vrd3,v1,v2,v3:读取电压vrdpass:通过电压x:特征y:标记f(x):转移函数rd:最佳读取电压具体实施方式由于频繁的读取操作,存储器存储的数据可能会遭受读取干扰,其中存储器的存储单元状态(例如,擦除状态以及一或多个编程状态)可具有上升的阈值电压(thresholdvoltage,vt)。读取干扰可能会导致数据读取输出中的错误位(failedbit)。取决于纠错码(ecc,error-correctingcode)的纠错能力,纠错码译码器可对存储器所读取的数据进行译码,以检测与纠正数据中可能存在的任何位错误。可通过比较存储单元阈值电压与读取电压(或参考读取电压)来感测每个存储单元的状态,以从存储单元读取数据。例如,可通过线性搜索(linearsearching)将读取电压优化为最佳读取电压(或优化读取电压),以使数据读取输出中的错误位计数(或一些错误位)为最小(或最少)。最佳读取电压可取决于一些参数(例如,编程/擦除(p/e)周期计数、字线(wl)地址或页面地址、逐层变化(layerbylayervariation)以及温度)。最佳读取电压的确定会耗时且乏味(tedious),而且计算时间与功耗会随着确定过程所考虑的输入参数数量而增加。因此,本发明期望开发出一种技术,此技术可以在时变通道(time-variantchannel)的有限读取延迟(limitedreadlatency)下来进行准确读取,并且可通过最佳读取电压来减少纠错码解碼负担(decodingoverhead)。在一些情况下,无论输入参数如何变化,相同的已验证读取电压用于读取来自存储器的数据。然而,已验证读取电压可能会偏离最佳读取电压,从而导致纠错码译码的额外负担。在一些情况下,利用了存储多个已验证读取电压的查找表(lookuptable)。依据无关于输入参数的对应优先级(correspondingprioritylevel),使已验证读取电压处于静态序列(staticorder)。首先利用第一优先验证电压来读取数据;如果数据读取输出未通过纠错码测试,则使用第二优先验证电压。重复读取过程持续进行,直到读取输出通过纠错码测试为止。在一些情况下,首先利用基于输入参数所确定的读取电压来读取数据。如果读取输出未通过纠错码测试,则利用查找表来执行重复读取过程,查找表存储读取电压的静态序列,其无关于输入参数。然而,查找表架构会花费大量的人力资源与开发时间。工程师可能必须依据输入参数逐案(casebycase)微调最佳读取电压。随着不同的工艺技术与不同的操作情况,查找表尺寸会变得越来越大。机器学习(ml,machinelearning)技术可用于确定最佳读取电压。在一些情况下,通过机器学习进行的脱机推论(offlineinference)可确定输入参数与最佳读取电压之间的关系,此关系可记录于查找表。然而,脱机推论可能会导致巨大的存储器负担,以达到高准确度。在一些情况下,只要有读取请求,通过机器学习进行的在线推论(onlineinference)便可计算出最佳读取电压。然而,在线推论可能需要额外的计算与时间开销,劣化了读取延迟。本公开的实施方式提供了利用机器学习来确定读取电压(例如,像是非易失性存储器(nvm)系统的存储器系统的最佳读取电压)的系统、方法与技术。此技术可通过机器学习算法来优化读取电压,以减少纠错码译码负担、机器学习算法的平均在线推论时间、额外的存储器负担、读取延迟与开发成本,并提高读取准确度。此技术还可实现错误处理流程,此流程允许调整读取电压,然后多次执行纠错码译码,以提高存储器系统的可靠度。在一些实施方式中,读取电压的确定可包括初步阶段(coarsephase)以及可选的细部阶段(finephase)。可通过监督式机器学习脱机训练(supervisedmlofflinetraining)来创建转移函数(transferfunction)。转移函数可包括查找表,此查找表具有小于正常查找表的尺寸(例如,基于群组的脱机训练)。转移函数还可以包括哈希函数(hashfunction)、k-平均值或任何其它适当形式。转移函数可存储于存储器。在初步阶段,转移函数用以依据第一组输入参数来确定第一读取电压,第一组输入参数相关于存储器所读取的存储器数据。如果存储器数据的第一读取输出通过纠错码测试,则输出第一读取输出以作为存储器数据的目标读取输出。如果存储器数据的第一读取输出未通过纠错码测试,则触发(trigger)细部阶段。在细部阶段,收集存储器数据相关的第二组输入参数。第二组输入参数包括第一组输入参数以及一或多个额外参数。依据第二组输入参数可执行基于机器学习的在线训练和推论,以产生第二读取电压。机器学习算法可包括线性回归(linearregression)、支持向量回归(supportvectorregression)、卷积神经网络(cnn)、循环神经网络(rnn)或其它适当算法。如果利用第二读取电压的存储器数据的第二读取输出通过纠错码测试,则输出第二读取输出以作为存储器数据的目标读取输出。可提供纠错码阶段的结果(例如,第二读取电压与相关信息),以校准(calibrate)或更新转移函数。也就是说,转移函数的内容可动态更新。对于大多数读取请求,在初步阶段确定的读取电压可成功实现读取输出。细部阶段并非针对每个读取请求而进行触发,而是仅当初步阶段失败时才会触发。此外,由于细部阶段的触发范围较小,故细部阶段的功耗与时间花费对于存储器系统而言可能是微不足道的(trivial)。因此,这些技术能够以较低的读取延迟、较少的在线推论时间以及较小的计算和存储器负担来实现准确读取。在一些实施方式中,在制造存储器之后,可执行监督式机器学习脱机训练。监督式机器学习脱机训练可利用存储器与对应的最佳读取电压有关的多个输入。每个最佳读取电压可对应到在多个输入的个别输入之下,对应至存储器的个别页面的读取输出的最小错误位计数。每个输入可包括多个输入参数的相应值。依据存储单元特性,输入参数可具有不同的影响程度。对于影响程度较高的参数,能够以较小间隔来收集训练数据;对于影响程度较低的参数,能够以较大间隔来收集训练数据。如此一来,可减少收集时间与训练数据量。监督式机器学习脱机训练的结果(例如,像是查找表的转移函数)可存储于存储器中。存储器控制器可包括机器学习电路,该机器学习电路响应于读取请求而执行初步阶段与细部阶段,以进行在线推论。此技术可应用于各种类型的易失性存储器装置或非易失性存储器装置,例如nand闪存(nandflashmemory)、nor闪存、电阻式随机存取存储器(rram,resistiverandom-accessmemory)、像是相变随机存取存储器(pcram,phase-changerandom-accessmemory)的相变存储器(pcm,phase-changememory)、自旋转移矩(stt,spin-transfertorque)、磁阻式随机存取存储器(mram,magnetoresistiverandom-accessmemory)等。此技术还可应用于电荷捕捉式(charge-trapping)存储器装置,例如硅-氧化物-氮化物-氧化物-硅(sonos)存储器装置以及浮栅(floating-gate)存储器装置。此技术可应用于二维(2d)存储器装置或三维(3d)存储器装置。此技术可应用于各种存储器类型,例如单阶存储单元(slc,single-levelcell)装置、像是2阶存储单元装置的多阶存储单元(mlc,multi-levelcell)装置、三阶存储单元(tlc,triple-levelcell)装置、四阶存储单元(qlc,quad-levelcell)装置或五阶存储单元(plc,penta-levelcell)装置。额外地或替代地,此技术可应用于各种类型的装置与系统,例如安全数字卡(securedigital(sd)card)、嵌入式多媒体卡(emmc,embeddedmultimediacard)或固态硬盘(ssd,solid-statedrive)、嵌入式系统等。图1a绘示具有装置110与主机120的系统100示例。装置110包括装置控制器112与存储器116。装置控制器112包括处理器113与内部存储器114。在一些实施方式中,装置110是存储装置。例如,装置110可以是嵌入式多媒体卡、安全数字卡、固态硬盘或一种其它适当的存储器。在一些实施方式中,装置110是智能手表(smartwatch)、数字相机或媒体播放器(mediaplayer)。在一些实施方式中,装置110是耦接至主机120的客户端装置(clientdevice)。例如,装置110是作为主机120的数字相机或媒体播放器的安全数字卡。装置控制器112是通用微处理器(general-purposemicroprocessor)或专用微控制器(application-specificmicrocontroller)。在一些实施方式中,装置控制器112是装置110的存储器控制器。以下部分依据装置控制器112是存储器控制器的实施方式来描述各种技术。然而,以下部分描述的技术也适用于装置控制器112是相异于存储器控制器的另一类型控制器的实施方式。处理器113执行指令与处理数据。指令包括固件指令(firmwareinstruction)和/或其它编程指令,固件指令与其它编程指令分别作为固件代码(firmwarecode)和/或其它编程代码而存储于次级存储器(secondarymemory)。在其它适当的数据中,此数据报括编程数据,此编程数据对应至固件和/或处理器执行的其它编程。在一些实施方式中,处理器113是通用微处理器或专用微控制器。处理器113也称为中央处理单元(cpu,centralprocessingunit)。处理器113存取来自内部存储器114的指令与数据。在一些实施方式中,内部存储器114是静态随机存取存储器(sram,staticrandomaccessmemory)或动态随机存取存储器(dram,dynamicrandomaccessmemory)。例如,在一些实施方式中,当装置110是嵌入式多媒体卡、安全数字卡或智能手表时,内部存储器114是静态随机存取存储器。在一些实施方式中,当装置110是数字相机或媒体播放器时,内部存储器114是动态随机存取存储器。在一些实施方式中,如图1a所示,内部存储器114是快取(cache)存储器,其包含于装置控制器112。内部存储器114存储指令代码和/或运行期间处理器113所请求的数据,其中此指令代码对应至处理器113所执行的指令。装置控制器112将指令代码和/或数据从存储器116转移至内部存储器114。在一些实施方式中,存储器116是非易失性存储器(例如,nand闪存装置或一些其它适当的非易失性存储器装置),其用于指令和/或数据的长期存储。在存储器116是nand闪存的实施方式中,装置110是闪存装置(例如,快闪存储卡),并且装置控制器112是nand快闪控制器。例如,在一些实施方式中,当装置110是嵌入式多媒体卡或安全数字卡时,存储器116是nand闪存;在一些实施方式中,当装置110是数字相机时,存储器116是安全数字卡;而在一些实施方式中,当装置110是媒体播放器时,存储器116是硬盘。在一些实施方式中,装置控制器112接收来自主机120的数据与指令,并且发送数据至主机120。装置控制器112还发送数据与命令至存储器116,并且接收来自存储器116的数据。例如,装置控制器112发送数据与写入命令,以指示存储器116将数据存储至指定地址(specifiedaddress)。作为另一实施例,装置控制器112接收来自主机120的读取请求(或读取命令),并且将对应读取命令发送至存储器116,以读取来自存储器116的指定地址的数据。在一些实施方式中,装置控制器112包括纠错码电路140。纠错码电路140可包括纠错码编码器142与纠错码译码器144。纠错码编码器142可接收存储器116存储的数据,并且可产生码字(codeword)(例如,利用纠错码编码方式来编码数据)。纠错码编码器142可包括里德所罗门编码器(reedsolomonencoder)、博斯-乍得胡里-霍昆格姆(bch,bose-chaudhuri-hocquenghem)编码器、低密度奇偶检查编码器(ldpcencoder)、涡轮码(turbocode)编码器或其任意组合。取决于纠错码的纠错能力,纠错码译码器144可对存储器116所读取的数据进行译码,以检测与纠正数据中可能存在的任何位错误。如以下进一步详述的,例如,响应于来自主机120的读取请求,装置控制器112确定来自存储器116的读取数据的读取电压(例如,最佳读取电压)。装置控制器112可包括机器学习电路150,其通过初步阶段以及可选的细部阶段来确定读取电压。例如,在制造装置110期间,在存储器116上可预先执行监督式机器学习脱机训练,以确定存储器116相关的输入参数与最佳读取电压之间的关系。监督式机器学习训练的结果(例如,转移函数)可作为机器学习数据152,以存储于存储器116。在一些实施方式中,机器学习数据152还可存储于装置控制器112(例如,存储于机器学习电路150或内部存储器114)。响应于来自主机120的读取请求,机器学习电路150可利用基于第一组输入参数的机器学习数据152中的转移函数来确定第一读取电压。如果使用第一读取电压的存储器数据的第一读取输出通过纠错码测试,则通过装置110输出第一读取输出至主机,以作为存储器数据的目标读取输出。如果存储器数据的第一读取输出未通过纠错码测试,则机器学习电路150执行细部阶段。在细部阶段,收集存储器数据相关的第二组输入参数。第二组输入参数可包括第一组输入参数以及一或多个额外参数。机器学习电路150可使用一或多个机器学习算法,以依据第二组输入参数来确定第二读取电压。机器学习算法可包括线性回归、支持向量回归、卷积神经网络、循环神经网络或其它适当算法。如果利用第二读取电压的存储器数据的第二读取输出未通过纠错码测试,则机器学习电路150可调整第二组输入参数(例如,添加一或多个新参数),并产生新的第二读取电压。如果利用第二读取电压的存储器数据的第二读取输出通过纠错码测试,则输出第二读取输出以作为存储器数据的目标读取输出。纠错码阶段的结果(例如,第二读取电压与相关信息)可用于校准或更新机器学习数据152。也就是说,可动态更新机器学习数据152的内容。图1b绘示存储器116的范例配置,存储器116包括多个区块118,例如区块0、区块1、...、区块m-1与区块m。每个区块可包括相同数量的页面,例如页面0、页面1、...、页面n。在区块中,每个页面具有唯一编号。在区块中,数据依据页面的唯一编号顺序来存储于区块的页面中。每个页面可分别读取或写入,并且可共同擦除(erase)区块中的页面。在一些实施方式中,区块可区分为多个子区块。每个子区块可包括一或多个页面。子区块的每个页面可单独地读取或写入。每个子区块的一或多个页面可共同擦除。在一些实施方式中,存储器116包括一或多个芯片(die)。每个芯片可以是存储器芯片(memorychip),并且每个芯片上可包括多个存储器数组与周边电路(peripheralcircuitry)。存储器数组可包括多个平面(plane),而每个平面包括具有多个存储单元的多个区块。每个区块可包括具有多个存储单元的多个页面,其可存储多个扇区的数据(sectorsofdata)。例如,可通过存储器控制器(像是图1a的装置控制器112)指定超级区块(superblock),以组合来自不同平面的至少一区块。超级区块中的每个区块来自不同平面。也就是说,任何平面不会提供超过一个区块至超级区块。超级区块包括多个超级页面(superpage),每个超级页面组合来自超级区块所对应的多个区块的多个页面。超级页面中的每个页面在其对应的区块中可具有相同的页面编号(pagenumber)。超级页面以及超级页面中的所有页面可同时进行编程。图1c绘示存储器116的区块118(例如,二维(2d)存储器区块)的范例配置。区块118包括存储单元122,该存储单元122串联耦接(coupledinseries)至行位线(columnbitline)bl0、bl1、...、bln-1与bln以形成多个存储单元串列(cellstring)119,并且存储单元122串联耦接至列字线(rowwordline)wl0、wl1、...、wln-1与wln以形成多个存储单元页面(cellpage)130。每个存储单元经由相应的字线132耦接至列译码器(rowdecoder),并且每个存储单元经由相应的位线121耦接至行译码器(columndecoder)。因此,可通过相应的字线132以及相应的位线121来选择每个存储单元,以进行操作。控制逻辑(controllogic)经由如全局(global)字线与全局位线来连接至列译码器与行译码器,并且控制逻辑通过列译码器与行译码器来控制存储单元122。控制逻辑可接收来自装置控制器112的命令和/或数据信号。存储单元串列119可包括多个存储单元122、源极选择晶体管(sst,sourceselecttransistor)128与接地选择晶体管(gst,groundselecttransistor)136,存储单元122、源极选择晶体管128与接地选择晶体管皆串联连接。源极选择晶体管128的栅极连接至源极选择线(ssl,sourceselectline)126。不同串列中的源极选择晶体管的栅极也连接至相同的源极选择线。多个存储单元122的栅极分别连接至列字线wl0、wl1、...、wln-1、wln。存储单元122经由接地选择晶体管136连接至共源线(csl,commonsourceline)138。接地选择晶体管136的栅极连接至接地选择线(gsl,groundselectline)134。不同串列中的接地选择晶体管的栅极也连接至相同的接地选择线。接地选择晶体管136与源极选择晶体管128可以是金属氧化物半导体(mos,metal-oxide-semiconductor)晶体管,并且存储单元122可以是浮栅晶体管。存储单元页面130可包括多个存储单元122。存储单元页面130中的多个存储单元122的栅极串联耦接至相应的字线。当将输入电压施加至字线时,输入电压也施加至存储单元页面130中的多个存储单元122的所有栅极。存储单元可表示多个状态,其包括擦除状态以及一或多个编程状态。例如,在一些情况下,存储单元是单阶存储单元,其可存储1位,并可表示2种状态,此2种状态包括擦除状态er与编程状态a。一条字线中的存储单元可形成一页面。在一些情况下,存储单元是多阶存储单元(例如,2阶存储单元),其可存储2位,并可表示4种状态,此4种状态包括擦除状态er与三种编程状态a、b与c。一条字线中的存储单元可形成两页面。同样地,在一些情况下,存储单元也可以是三阶存储单元,其可存储3位,并可表示8种状态,此8种状态包括擦除状态er以及其它七种编程状态。一条字线中的存储单元可形成三页面。这些状态可具有逐渐上升的电压范围,而擦除状态可使用最低电压范围。图2a绘示依据一或多种实现方式的存储器的存储单元的不同状态的阈值电压分布与读取电压的示例图200。存储单元可以是图1c的存储单元122。存储器可以是nand闪存。仅作为说明目的,存储单元是能够存储两位数据的多阶存储单元。可对存储单元进行编程或擦除,以具有四个状态(即擦除状态er以及编程状态a、b与c)中的任何一种。在一些范例中,er为擦除状态(1,1),而a、b、c为编程状态(0,1)、(0,0)与(1,0)。擦除状态er以及编程状态a、b与c具有逐渐上升的读取电压。多阶存储单元的nand闪存可将字线中每个存储单元的两位划分为两个页面,页面为一次数据编程的单位。一条字线中的所有存储单元的最低有效位(lsb,leastsignificantbit)形成字线的最低有效位页面,而字线的这些存储单元的最高有效位(msb,mostsignificantbit)形成字线的最高有效位页面。一旦被编程或擦除,存储单元具有对应的阈值电压。阈值电压是存储单元的特性。存储单元可以是浮栅晶体管。当高于或等于阈值电压的读取电压施加至存储单元的栅极时,可导通存储单元。当低于阈值电压的读取电压施加至存储单元的栅极时,可关闭存储单元。读取动作不是编程或擦除动作,并不旨在变更存储单元状态。每个状态对应至下限电压(lowerlimitvoltage)与上限电压(higherlimitvoltage)之间的范围内的阈值电压分布。将具有此范围内的阈值电压的存储单元视为处在对应状态。换句话说,处于状态的存储单元具有此范围内的阈值电压。例如,如果存储单元具有下限电压vl0与上限电压vh0之间的阈值电压,则存储单元处于擦除状态er;如果存储单元具有下限电压vl1与上限电压vh1之间的阈值电压,则存储单元处于编程状态a;如果存储单元具有下限电压vl2与上限电压vh2之间的阈值电压,则存储单元处于编程状态b;以及如果存储单元具有下限电压vl3与上限电压vh3之间的阈值电压,则存储单元处于编程状态c。曲线202、204、206、208分别示出了存储单元的相应状态(即擦除状态er以及编程状态a、b、c)的阈值电压分布。在读取操作期间,可施加读取电压至耦接于选定存储单元的栅极的字线,以确定选定存储单元是处于导通状态或关闭状态。当施加大于擦除状态er且小于编程状态a的阈值电压的读取电压vrd1时,存储单元具有擦除状态er时则导通,而存储单元具有编程状态a,b或c时则关闭;当施加大于编程状态a且小于编程状态b的阈值电压的读取电压vrd2时,存储单元具有擦除状态er或编程状态a时则导通,而存储单元具有编程状态b或c时则关闭;当施加大于编程状态b且小于编程状态c的阈值电压的读取电压vrd3时,若存储单元具有擦除状态er、编程状态a或b时则导通,而存储单元具有编程状态c时则关闭。当施加大于所有状态(即擦除状态er以及编程状态a、b、c)的阈值电压的通过电压vrdpass时,不论存储单元具有何种状态,存储单元都导通。在读取操作期间,施加通过电压vrdpass至其它存储单元(其与选定存储单元位于相同位线),并且其它存储单元导通。因此,如果选定存储单元在读取电压vrd下导通,则对应位线中的存储单元形成导电路径(conductivepath),并且会将电流或电压传感器所检测的电流或电压变化耦合到位线。如果选定存储单元在读取电压下关闭,则对应位线中的存储单元不会形成导电路径,并且不会将电流或电压传感器所检测的电流或电压变化耦合到位线。由于重复的读取操作,可能会发生读取干扰现象。在读取干扰现象中,存储单元的阈值电压异常增加。如图2a所示,在一些情况下,擦除状态er分布的曲线202包括点曲线203,此点曲线203包括较高的阈值电压。例如,新的上限电压vh0’大于上限电压vh0。当新的上限电压vh0’落于编程状态a的阈值电压范围(即下限电压vl1与上限电压vh1之间的范围)时,擦除状态er与编程状态a重叠(overlap)。也就是说,存储单元具有重叠状态。当施加读取电压vdisturb时,具有擦除状态er的阈值电压的存储单元变为关闭状态,而非导通状态。因此,在特定读取情况下,通过检测存储单元是导通或关闭,可确定存储单元是否遭受读取干扰。在一些情况下,具有较低阈值电压的状态(例如,擦除状态er与编程状态a)的存储单元相较于具有较高阈值电压的状态(例如,编程状态b与编程状态c)的存储单元更容易受到读取干扰的影响。图2b绘示多阶存储单元存储单元计数与读取电压之间的关系所表示的曲线图(profile)250示例,此曲线图具有存储器上的不同编程/擦除周期(0、3000(或3k)、5000(或5k)、10000(或10k)、15000(或15k)、20,000(或20k))。图2b标出存储单元的阈值电压分布,从而使最佳读取电压可依据存储单元的一或多个输入参数(例如,编程/擦除周期)而变化。当没有编程/擦除周期时,曲线pe0可对应至图2a所示的阈值电压分布曲线。读取电压v1对应至图2a的读取电压vrd1,并且读取电压v1可以是最佳读取电压,以读取存储单元的擦除状态er(1,1)。读取电压v2对应至图2a的读取电压vrd2,并且读取电压v2可以是最佳读取电压,以读取存储单元的擦除状态er(1,1)以及编程状态a(0,1)。读取电压v3对应至图2a的读取电压vrd3,并且读取电压v3可以是最佳读取电压,以读取存储单元的擦除状态er(1,1)、编程状态a(0,1)与编程状态b(0,0),而剩余的存储单元可确定具有编程状态c(1,0)。随着存储器上的编程/擦除周期数量的增加,最佳读取电压增加,并且曲线变得更平滑(shallower)。图3绘示依据一或多个实施方式的确定具有初步阶段与细部阶段的读取电压的存储器系统300的示例。存储器系统300可以是图1a的装置110。存储器系统300包括存储器控制器310(例如,图1a的装置控制器112)与存储器350(例如,图1a或图1b的存储器116)。存储器350可以是非易失性存储器装置,并且可包括多个非易失性存储器芯片352。存储器控制器310可包括非易失性存储器接口312,其与存储器350进行通信。非易失性存储器接口312可以是开放式nand型闪存接口(onfi)或切换界面(toggleinterface)。在一些实施方式中,存储器控制器310包含纠错码译码器340(例如,图1a的ecc译码器144。取决于纠错码的纠错能力,纠错码译码器340可对存储器350所读取的存储器数据进行译码,以检测与纠正存储器数据中可能存在的任何位错误。响应于接收来自主机(例如,图1a的主机120)的读取请求302,存储器控制器310可确定读取电压(例如,最佳读取电压),以读取来自存储器350的存储器数据。读取请求302可包括存储器350所读取的与存储器数据相关的信息(例如,字线地址或页面地址)。在一些实施方案中,存储器控制器310利用初步阶段320以及可选的细部阶段330来确定最佳读取电压,以读取存储器数据。存储器控制器310可包括引擎、模块或电路(例如,图1a的机器学习电路150),以执行初步阶段320与细部阶段330(如图4b所进一步详述的)。响应于读取请求,首先存储器控制器310(例如,机器学习电路)可利用基于与存储器数据相关的第一组输入参数的存储的读取电压数据(例如,图1a的机器学习数据152)来确定读取电压。第一组输入参数可包括字线地址、页面地址、多个编程/擦除周期、读取温度、保留时间(retentiontime)、读取干扰程度和/或任何其它适当参数。读取温度表示读取存储器数据的存储器温度。保留时间表示可存储存储器数据的存储器单元而不会失真(distortion)的时间。读取干扰程度表示存储器数据上的读取干扰的程度。存储的读取电压数据可以是转移函数,其依据监督式机器学习脱机训练来确定(如图4a所进一步详述的)。存储的读取电压数据表示与多个输入参数及最佳读取电压相关的多个输入之间的关系。存储的读取电压数据可存储于存储器350,而且存储器控制器310(例如,机器学习电路)可经由非易失性存储器接口312与存储器350进行通信,并可搜索和辨识相关于第一组输入参数的信息,且依据信息和第一组输入参数来确定读取电压。存储器控制器310可将初步阶段320所确定的读取电压用作参考读取电压,以读取来自存储器350的存储器数据,然后纠错码译码器340可将存储器350所读取的存储器数据进行译码,以检测存储器数据中存在的错误位。在步骤342中,存储器控制器310(例如,机器学习电路)可确定是否可通过纠错码译码器340来纠正错误位。如果错误位可纠正,则存储器数据读取输出可作为读出数据304以输出至主机。如果错误位无法纠正,则存储器控制器310(例如,机器学习电路)可在细部阶段330执行在线机器学习。存储器控制器310可收集存储器数据相关的第二组输入参数。第二组输入参数可包括第一组输入参数以及一或多个额外参数。例如,第二组输入参数可以是纠错码译码器340检测的存储器数据读取输出的错误位计数、低密度奇偶检查码的校验子(syndrome)、低密度奇偶检查码的多个迭代(iteration)、用于存储器数据的各个先前读取电压的多个“1”位值、先前纠错码解碼结果或任何其他适当参数。存储器控制器310可使用一或多个机器学习算法,以依据第二组输入参数来确定第二读取电压。机器学习算法可包括线性回归、支持向量回归、卷积神经网络、循环神经网络或其它适当算法。存储器控制器310可使用第二读取电压来读取来自存储器350的存储器数据,并且输出存储器数据的第二读取输出以作为读出数据(readoutdata)304。存储器控制器310(例如,机器学习电路)也可提供细部阶段330的结果(例如,第二读取电压),用以校准与更新初步阶段320存储的读取电压数据。图4a绘示依据一或多个实施方式的确定初步阶段的读取电压的监督式机器学习训练的流程400范例。在制造存储器系统期间,监督式机器学习训练可通过计算系统来执行。存储器系统可以是图1a的装置110或图3的存储器系统300。存储器系统可包括存储器(例如,图1a或图1b的存储器116,或是图3的存储器350)以及存储器控制器(例如,图1a的装置控制器112或图3的存储器控制器310)。存储器可包括多个区块(例如,图1b或图1c的区块118),而且每个区块可包括多个页面(例如,图1c的存储单元页面130)。在制造存储器之后,执行监督式机器学习训练。首先,在训练数据收集的流程410中,针对多个区块收集监督式机器学习训练的训练数据。流程410可重复步骤412、414、416与418,以获得不同编程/擦除周期的训练数据。在步骤412,对于每个区块,首先可利用预定编程代码(predeterminedprogramcode)的数据来编程整个区块。然后,在步骤414,扫描区块的编程数据状态的阈值电压分布,以获得对应的页面位图(pagebitmap)(例如,曲线pe0、pe3k、pe5k、pe10k、pe15k或pe20k)。在步骤416,擦除区块。在步骤418,确定区块上的编程/擦除周期数量是否达到目标编程/擦除周期计数。如果区块上的编程/擦除周期数量达到目标编程/擦除周期计数,则流程410在步骤419处结束。如果区块上的编程/擦除周期数量未达到目标编程/擦除周期计数,则流程410返回至步骤412,以继续编程与擦除区块。流程400包括区块的训练数据标记的流程(trainingdatalabelflow)420。在步骤422,对于区块的每个页面,输入在步骤414所获得的页面位图以及用于步骤412的对应编程代码。然后,利用读取电压来读取页面,并且检查相关于对应编程代码的页面读取输出以确定错误位计数(fbc,failedbitcount)。在步骤424,线性增加(linearlyincreased)读取电压,以找出具有最小(或最少)错误位计数的最佳读取电压。然后,在步骤426,确定页面是否为区块中的最终页面(finalpage)。如果页面是最终页面,则流程420在步骤428处结束。如果页面不是最终页面,则流程420返回至步骤422,以执行区块的下一页面上的步骤。收集的训练数据可包括多个输入以及作为输出的对应的最佳读取电压。每个最佳读取电压对应至个别输入。输入可包括多个参数的相应值。这些参数可包括字线地址或页面地址、编程/擦除周期计数、温度、保留时间、读取干扰程度或任何其它适当参数。计算系统可检查或确定存储器中的存储单元特性,并依据此特性来确定每个参数的相应影响程度。影响程度可相关于存储单元(例如,多个错误位)效能(performance)的影响。在流程410中,对于具有较高影响程度的参数,计算系统能以较小间隔来收集训练数据。在流程410中,对于具有较低影响程度的参数,计算系统能以较大间隔来收集训练数据。在一个范例中,如果温度具有较高影响程度,则流程410的温度间隔可以为1度(degree);如果温度具有较低影响程度,则流程410的温度间隔可以为5度。作为另一示例,如果编程/擦除周期计数具有较高影响程度,则流程410的编程/擦除周期间隔可以为1000(或1k);如果编程/擦除周期具有较低影响程度,则流程410的编程/擦除周期间隔可以为5000(或5k)。作为另一示例,如果页面地址具有较高影响程度,则流程410的页面间隔可以为1;如果页面地址具有较低影响程度,则流程410的页面间隔可以为5或10。以这种方式,可减少训练数据的收集时间以及训练数据量。然后,在流程430,计算系统可利用收集的训练数据来执行机器学习训练。特征x代表输入,并且标记y代表最佳读取电压。计算系统可以使用一组机器学习函数或算法来获得最佳机器学习模型,此机器学习模型可用于创建转移函数f(x)。转移函数可包括查找表,此查找表具有小于正常查找表的尺寸(例如,基于族群的训练数据集合)。转移函数还可包括哈希函数、k-平均值或任何其它适当形式。转移函数可存储于存储器。转移函数可用于存储器控制器所执行的初步阶段(例如,图3的初步阶段320)。在流程440,存储器控制器可利用存储器存储的转移函数来预测(或确定)未标记数据(例如,特征x,其包括多个参数值,该些参数值相关于存储器所读取的数据)的最佳读取电压rd。最佳读取电压对应至数据读取输出的最少错误位计数。图4b绘示依据一或多个实施方式的利用初步阶段与细部阶段机器学习来确定存储器系统的读取电压的流程450范例。存储器系统可以是图1a的装置110或图3的存储器系统300。存储器系统可包括存储器(例如,图1a或图1b的存储器116,或是图3的存储器350)以及存储器控制器(例如,图1a的装置控制器112或图3的存储器控制器310)。存储器控制器可包括纠错码译码器(例如,图1a的纠错码译码器144或图3的纠错码译码器340)。存储器控制器还可包括机器学习电路(例如,图1a的机器学习电路150),其用以执行初步阶段与细部阶段机器学习,以确定存储器系统的读取电压。存储器可包括多个区块(例如,图1b或图1c的区块118),而且每个区块可包括多个页面(例如,图1c的存储单元页面130)。存储器控制器可执行流程450。在步骤452,流程450开始。响应于接收来自主机(例如,图1a的主机120)的读取请求,流程450可开始。读取请求可指示(indicate)读取来自存储器的存储器数据。存储器数据可存储于存储器的指定地址(例如,指定区块的指定页面)。在步骤454,于初步阶段,通过存储器控制器(例如,机器学习电路)确定第一读取电压。初步阶段可以是图3的初步阶段320或图4a的流程440。存储器控制器可收集第一组参数,其相关于存储器所读取的存储器数据。第一组参数可包括地址数据(例如,页面地址或字线地址、多个编程/擦除周期(或编程/擦除周期计数)、读取温度,读取干扰程度或保留时间)的至少其中之一。存储器控制器可利用基于第一组参数的存储的读取电压数据(例如图1a的机器学习数据152)来确定第一读取电压。存储的读取电压数据可存储于存储器。如图4a所示,存储的读取电压数据系基于使用与存储器及对应的最佳读取电压有关的多个输入的监督式机器学习训练所产生。每个最佳读取电压对应到在多个输入的个别输入之下,对应至存储器的个别页面读取输出的最小错误位计数。每个输入可包括多个参数的相应值。多个参数可包括第一组参数。每个参数可对存储器的存储单元特性具有相应影响程度,并且可依据多个参数的相应影响程度来确定输入的多个参数的数值间隔。如上述,在制造存储器系统期间以及制造存储器之后,可脱机执行监督式机器学习训练。在一些示例中,存储的读取电压数据报括转移函数,该转移函数依据监督式机器学习训练来产生,并且转移函数表示多个参数的输入与最佳读取电压之间的关系。转移函数可以包括查找表、哈希函数或k-平均值。在步骤456,在存储器控制器执行的读取操作中,利用步骤454所确定的第一读取电压来读取对应页面,其存储了存储器数据。然后,纠错码译码器利用第一读取电压对存储器数据的第一读取输出进行译码。在步骤458,存储器控制器确定第一读取输出是否通过纠错码测试(例如,确定第一读取输出的错误位计数是否超过第一预定阈值)。例如,纠错码译码器具有纠正300个错误位的能力。第一预定阈值可实质地(substantially)等于300。如果存储器控制器确定第一读取输出的错误位计数不大于第一预定阈值,则在步骤460时存储器控制器还可确定第一读取输出的错误位计数是否小于第二预定阈值(例如,250),其小于第一预定阈值(例如,300)。如果错误位计数小于第二预定阈值,则流程450在步骤480结束,并且存储器控制器可将第一读取输出作为存储器数据的目标读取输出,以输出至主机。在一些情况下,响应于确定错误位计数不大于第一预定阈值,存储器控制器可直接输出存储器数据的第一读取输出。如果存储器控制器确定错误位计数不大于第一预定阈值且不小于第二预定阈值(例如,在250与300之间),则在步骤462时存储器控制器收集第二组参数,其相关于细部阶段过程的存储器数据。第二组参数可包括第一组参数。在一些情况下,第二组参数可包括至少一或多个额外参数(例如,第一读取输出的错误位计数、每个先前读取电压所获得的多个“1”值、先前读取电压与当前读取电压之间的“1”值数量变化、读取时间、低密度奇偶检查码的校验子或低密度奇偶检查码的多个迭代)。在步骤464,通过存储器控制器(例如,机器学习电路)执行细部阶段。细部阶段可以是图3的细部阶段330。在细部阶段,存储器控制器可利用基于第二组参数的至少一机器学习算法而产生第二读取电压。至少一机器学习算法可包括线性回归、支持向量回归以及具有卷积神经网络算法或循环神经网络算法的深度学习算法的至少其中之一。然后,存储器控制器可利用第二读取电压来读取存储器数据,并输出存储器数据的第二读取输出。在步骤458,由于第二读取输出使用比第一读取输出更好的最佳读取电压而视为具有较小的错误位计数,故当第一读取输出通过纠错码测试时,不需要确定第二读取输出是否通过纠错码测试。在一些实施方式中,在步骤466,如果需要,则存储器控制器利用细部阶段的结果来更新初步阶段。可提供第二读取电压与相关信息,用以校准与更新初步阶段所存储的读取电压数据(例如,转移函数)。更新的读取电压数据可以在用于下一流程。在步骤460,可能有多个原因使第一读取输出的错误位计数不小于第二预定阈值。如果使用不良的读取电压来进行纠错码译码,则在足够良好的阈值电压分布下导致更多的错误位,故在步骤466需要更新。例如,响应于确定存储器数据的存储单元状态的阈值电压在对应的预定范围内,存储器控制器在步骤466执行更新。如果在重叠的阈值电压分布下使用足够好的读取电压来进行纠错码译码,则不需要更新。相反地,可产生警报信号(alertsignal),其表示纠错码效能或可靠度的提升。例如,响应于确定存储器数据中的存储单元状态的至少一个阈值电压在对应的预定范围之外,存储器控制器不使用第二读取电压来更新存储的读取电压数据。如果存储器控制器确定第一读取输出未通过纠错码测试(例如,确定第一读取输出的错误位计数超出第一预定阈值),则在步骤468时存储器控制器收集第三组参数,该第三组参数相关于细部阶段过程的存储器数据。第三组参数可类似于步骤462所收集的第二组参数。第三组参数可包括第一组参数。在一些情况下,第三组参数可包括至少一或多个额外参数(例如,第一读取输出的错误位计数、每个先前读取电压所获得的多个“1”值、先前读取电压与当前读取电压之间的“1”值数量变化、读取时间、低密度奇偶检查码的校验子或低密度奇偶检查码的多个迭代)。然后,在步骤470,通过存储器控制器(例如,机器学习电路)执行细部阶段。步骤470可类似于步骤464。在细部阶段,存储器控制器可利用基于第三组参数的机器学习算法来产生第三读取电压。然后,存储器控制器可利用第三读取电压来读取存储器数据,以获得存储器数据的第三读取输出。在步骤458,当第一读取输出未通过纠错码测试,则在步骤472时存储器控制器可确定第三读取输出是否通过纠错码测试。如果第三读取输出未通过纠错码测试,则流程450返回至步骤468。存储器控制器可调整第三组参数(例如,将一或多个新参数添加至第三组参数),并且依据已调整的第三组参数来产生新的第三读取电压。如果第三读取输出通过纠错码测试,则存储器控制器输出存储器数据的第三读取输出。类似于步骤466,在步骤474,如果需要,则存储器控制器可确定是否利用细部阶段的结果来更新初步阶段。如上述,在步骤458,可能有多个原因使第一读取输出未通过纠错码测试。在一些情况下,响应于确定存储器数据中的存储单元状态的阈值电压在对应的预定范围内,存储器控制器在步骤474执行更新。在一些情况下,响应于确定存储器数据中的存储单元状态的至少一个阈值电压在对应的预定范围之外,存储器控制器确定不利用第二读取电压来更新存储的读取电压数据。图5绘示依据一或多个实施方式的利用存储器系统的初步阶段与细部阶段的多阶存储单元存储单元的最佳读取电压与编程/擦除周期计数之间的关系图500范例。如上述,对于利用多阶存储单元进行编程的存储器数据,可具有三个最佳读取电压(例如,图2a的读取电压vrd1、vrd2、vrd3)。曲线502、512与522示出了利用不同编程/擦除周期计数相关的初步阶段(例如,图3的初步阶段320或图4b的步骤454)所获得的最佳读取电压。变量(variation)504、514与524示出了利用深度相位(例如,图3的细部阶段330或是图4b的步骤464或步骤470)所获得的最佳读取电压变化。关系图500示出了最佳读取电压随着编程/擦除周期数的增加而上升。初步阶段确定的最佳读取电压可示出最佳读取电压的偏移趋势(shifttrend)。细部阶段确定的最佳读取电压可示出最佳读取电压的变化,其可用于校准或更新初步阶段所获得的最佳读取电压。因此,在减少计算量与时间过载(timeoverload)的情况下,初步阶段与细部阶段的组合可提高读取准确度,从而提升存储器系统的效能。本公开与其他范例可实施于一或多个计算机编程产品(例如,在计算机可读取介质(computerreadablemedium)上所编码的一或多个计算机编程指令模块),此计算机编程指令模块由数据处理装置来执行或控制数据处理设备的操作。计算机可读取介质可以是机器可读取存储装置、机器可读取存储基板(substrate)、存储器装置或是一或多个它们的组合。术语“数据处理设备”包括用于处理数据的所有设备、装置与机器,其包括如可编程处理器、计算机、或是多个处理器或计算机。除了硬件(hardware)之外,此设备可包括计算机编程所讨论的创建执行环境的代码,例如,构成处理器固件(firmware)的代码、协议堆栈(protocolstack)、数据库管理系统、操作系统,或者一或多个它们的组合。系统可包含用于处理数据的所有设备、装置与机器,例如包括可编程处理器、计算器、多个处理器或计算机。除了硬件之外,此系统可包括计算机编程所讨论的创建执行环境的代码,例如,构成处理器固件的代码、协议堆栈、数据库管理系统、操作系统,或者一或多个它们的组合。计算机编程(也称为编程、软件、软件应用程序(softwareapplication)、脚本(script)或代码)可以用任何形式的编程语言(programminglanguage)来编写,此编程语言包括编译(compiled)或解释语言(interpretedlanguages),并且可以以任何形式来配置,包括作为独立编程(standaloneprogram)或模块(module)、组件、子程序(subroutine)、或适用于计算环境(computingenvironment)的其他单元(unit)。计算机编程不需要对应至文件系统中的文件。编程可存储于文件的一部分,其保存其他编程、数据(例如,存储器在标记语言文件(markuplanguagedocument)中的一或多个脚本)、专用于所讨论编程的单一文件或多个协调文件(coordinatedfile)(例如,存储一或多个模块、子程序或部分代码的文件)。计算机编程可配置于一或多台计算机上的执行,多台计算机位于一地点或分布于多地点,并通过通信网络进行互连。可通过一或多个可编程处理器执行一或多个计算机编程来执行本公开所描述的功能,以执行本公开所述的流程与逻辑流程。流程和逻辑流程还可以由专用逻辑电路(specialpurposelogiccircuitry)来执行,并且装置还可以实施为专用逻辑电路,例如现场可程序化逻辑门阵列(fpga,fieldprogrammablegatearray))或应用程序专用的集成电路(asic,integratedcircuit))。适用于执行计算机编程的处理器包括如通用与专用微处理器以及任何种类的数字计算机的一或多个处理器。一般来说,处理器将接收来自只读存储器或随机存取存储器(或此两者)的指令与数据。计算机的基本组件可包括执行指令的处理器以及存储指令与数据的一或多个存储器装置。一般来说,计算机还可包括大容量(mass)存储装置(例如磁盘、磁光盘(magnetoopticaldisk)或光盘),或者计算机还可操作地接收来自一或多个大容量存储装置的数据或是将数据传输至一或多个大容量存储器装置(或此两者),以存储数据。然而,计算机不需要此类装置。适用于存储计算机编程指令与数据的计算机可读取介质可包括所有形式的非易失性存储器、介质以及存储器装置,计算机可读取介质包括如半导体存储器装置(例如,eprom、eeprom、闪存装置与磁盘)。处理器与存储器可由专用逻辑电路来补充(supplement),或是将处理器与存储器合并(incorporated)至专用逻辑电路中。尽管该文件可描述许多细节,但是这些细节不应被解释为对所要求保护的发明或可被要求保护的发明的范围的限制,而是对特定实施例的特定特征的描述。在单独的实施例的上下文中在本公开中描述的某些特征也可以在单个实施例中组合实现。相反地,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。此外,尽管以上特征可描述为以某些组合起作用并且甚至最初如此宣称,但是在某些情况下,可以从该组合中切除所要求保护的组合中的一或多个特征,并且所要求保护的组合可针对子组合或子组合的变体。类似地,虽然在附图中以特定顺序描绘了操作,但是这不应理解为要求以所示的特定顺序或以连续顺序来执行这样的操作,或者执行所有示出的操作以获得期望的结果。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜