用于可变电阻存储器单元的ecc管理的制作方法

文档序号:6766388阅读:556来源:国知局
用于可变电阻存储器单元的ecc管理的制作方法
【专利摘要】本申请公开了用于可变电阻存储器单元的ECC管理。数据存储装置可总体上至少由控制器构建并与控制器操作,控制器被配置成识别相对于至少一个可变电阻存储器单元中的预定阈值的变化并且针对至少一个可变电阻存储器单元将第一错误校验码(ECC)级别升级为第二ECC级别。
【专利说明】用于可变电阻存储器单元的ECC管理
【技术领域】
[0001]各种实施例总体上涉及具有可变电阻存储器单元的数据存储装置的管理。

【发明内容】

[0002]根据一些实施例,数据存储装置可至少具有控制器,其被配置成识别相对于至少一个可变电阻存储器单元中的预定阈值的变化并且针对至少一个可变电阻存储器单元将第一错误校验码(ECC)级别升级为第二 ECC级别。
【专利附图】

【附图说明】
[0003]图1提供了根据各种实施例构建和操作的数据存储装置的模块示意图。
[0004]图2示出了可以用在图1的数据存储装置中使用的存储器阵列的一部分的模块示意图。
[0005]图3显示了根据一些实施例构建和操作的数据存储装置的示例部分的模块示意图。
[0006]图4图示地表现了针对示例的存储器单元的大量编程状态分布。
[0007]图5是根据各种实施例构建的数据存储装置的示例控制电路部分的模块示意图。
[0008]图6提供了根据一些实施例操作的示例控制电路的模块示意图。
[0009]图7显示了根据各种实施例构建和操作的示例控制电路的模块示意图。
[0010]图8图示出根据一些实施例执行的示例主动存储器单元管理例程。
【具体实施方式】
[0011]在工业上越来越重视可更精确地并更快地访问存储数据的具有减小的物理尺寸和增大的数据存储容量的数据存储装置持续,其具有受拉伸材料以及诸如数据写入和读取期间的磁屏蔽之类的各种旋转数据存储环境的操作特性。固态存储器单元的增生已经能够提供降低的功耗、尺寸、产热以及振动灵敏度,从而允许更多的数据存储被用于移动和混合数据存储装置。虽然数据存储装置可包括一个或多个固态存储器单元以使得旋转数据存储上的应力最小,但是固态存储器还可经历威胁到存储数据的精确性和访问速度的操作条件。
[0012]一种这样的条件可能是将数据存储为不同电阻状态的存储器单元中的电阻变化。电阻从预定阈值的偏离会导致增大的数据错误和数据访问时间,这是因为存储器单元重复地进行读取而不确定所存储的逻辑值。虽然已经提出了各种形式的测试、错误校验和错误校验码(ECC),例如Reed-Solomon、校验总和、Reed-Muller、奇偶、卷积码、以及BinaryGolay,但是这些做法在处理开销和暂时的存储器单元去激活方面是成本很高的。因此,工业上一直存在与更有效地管理数据存储装置中的诸如因疏忽造成的电阻变化所导致的错误之类的现有的及将来的错误有关的目标。
[0013]由此,各种实施例可总体上涉及一种数据存储装置,其至少由控制器配置而成,控制器被配置成识别相对于至少一个可变电阻存储器单元中的预定阈值的变化并且针对至少一个可变电阻存储器单元将第一错误校验码(ECC)级别升级为第二 ECC级别。可按照实现了存储装置的处理能力的优化使用而不影响数据访问可靠性或速度的主动或互动的方式进行预定电阻阈值的识别。有效地管理逐步更稳健的级别的ECC而不影响数据可靠性、访问速度和系统处理开销的能力,可提供持久的性能,哪怕存储器单元具有偏离的操作特征。
[0014]可采用可变电阻固态存储器单元并在各种非限制数据存储环境下为其分配多种不同ECC方案中的一种。图1提供了其中可实现各种实施例的示例性数据存储装置100的模块示意图。装置100 (其在一些实施例中被配置为固态硬盘(SSD))具有可通过诸如布线、接口、总线和多路复用器之类的各种非限制性电气互连连接的顶级控制器102和非意失性数据存储阵列104。控制器102可被用来协助用户数据在存储阵列104和处于存储装置100内部或外部的主机装置之间的传递。
[0015]在一些实施例中,控制器102是可编程微控制器,其可对阵列104和主机装置之间的至少一个接口电路待决转递中的数据进行缓存。控制器102和存储阵列104的位置并不限于图1所示的共存,存储装置100元件的任意部分可物理上或逻辑上缺失,同时共同地控制存储装置100的各种操作方面。即,并不要求控制器102和存储阵列104的物理存在,而是任一元件可布置在存储装置100的外部(例如利用适当协议在网络上进行访问),同时有利于存储阵列104内的调度的和未调度的操作。类似地,附加的外部控制器和存储阵列可存在于存储装置100内部或外部以根据调度和要求而被有选择的使用。
[0016]图2总体地图示出可在诸如图1的装置100之类的数据存储装置中使用的示例的非意失性存储阵列120的一部分的模块示意图。大量非意失性存储器单元122在按照可被表征为交点阵列的定向被布置在与电路径124和126的重叠对应的行和列(例如字线或源线)中。一个或多个写/读电路128和130可单独地或同时地控制被写入或从扇区132、页134、块、和垃圾收集单元中的所选存储器单元122读出的数据。可针对多个单元(例如整行、页和块)执行这种控制以加速数据访问。
[0017]多个存储器单元122可经由允许对预定数量的存储器单元122单独地或集中地执行写、重写和读操作的控制线路126至X(行)写/读电路128以及经由控制线路124至Y(列)写/读电路130进行耦接。在一些实施例中,写/读电路128和130可被配置成提供适合于多于一种类型的固态存储器单元的参考参数,例如电压、电阻、和脉冲宽度。换言之,存储器的不同部分(例如存储器的不同页134或块)可物理上或逻辑上利用每种都操作来存储数据的不同类型的存储器单元进行配置,但是对应于被写/读电路128和130提供用于精确地将读或写输出翻译成逻辑状态的不同参考参数。
[0018]在非限制的示例操作中,写/读电路128和130可同时地针对调度的或未调度的用户和开销系统操作来提供对存储器单元的页134或单元132的访问。一个或多个测试电路136和138可提供由评估电路140监控、记录和评估的行和列测试能力。测试电路136和138可被配置成将一个或多个存储器单元122和存储器的页134布置成预定状态,例如公共的逻辑和电阻值,它们可能或者可能没有在测试模式下在线以备用户访问,其中测试模式以流经所选的存储器单元122的用于识别和区分一个或多个不同类型的单元缺陷、操作参数和存储器类型的一个或多个静态电流的通过为特征。换言之,单个存储器单元122或更多单元可同时地或连续地下线并被测试电路136和138设置成测试模式以允许多个测试电流通过单元122来确定评估电路140中记录并评估的各种地理的、操作的和有缺陷的特征。
[0019]这样,评估电路140可指导测试电路136和138以及写/读128和130电路的操作来确定存储器单元122在数据存储装置120中做了什么操作以及如何操作。在一些实施例中,评估电路140在用户数据被写之前对一些或所有存储器单元122进行评估和测试,这就能提供可后续使用的基线数据。各种实施例还可周期性地以及偶发地对各种存储器单元122的操作进行测试和评估。这种周期测试可在预定时间和紧急时候(例如低水平系统处理和空闲时间)执行,以识别出诸如电阻变化之类的各种操作情况。
[0020]具有测试各种存储器单元122和单元132的组的能力,评估电路140可适于存储器单元性能中的识别出的静态和动态变化。然而,使用系统资源提供一个或多个存储器单元122的ECC分配性能来进行测试和校正,可花费繁重的系统资源,尤其是在每秒钟千百次地访问ECC的现代数据存储系统中。而且,对存储器单元122的变化进行校正的反应特性可能不会进行地足够快到能够确保高数据可靠性和访问速度。因此,评估电路140可由各种能力配置以实现存储器单元122对识别出来的即将发生的变化的预测调整。
[0021]图3图示出根据各种实施例的数据存储装置的示例控制部分150的模块示意图。控制部分150具有通过控制电路158单独或集中操作的多个不同存储器层152、154和156。在各种实施例中,各种存储器层对应于不同存储器单元类型。可利用任意所示的可编程金属化单元(PMC)组件140来构建及操作第一存储器层152。PMC组件160可由底部电极162和底部电极164、金属层166、电解层168和电介质层170形成。控制电路158可被用来调节第一电极162和第二电极164之间的相对电势,导致写电流172通过PMC组件160而形成将单元的电阻从高电阻变成可对应于第一预定逻辑状态(例如I)的低电阻的导丝174。
[0022]导丝174通过将来自金属层166的离子以及来自底部电极164的电子进行迁移建立了金属层166和底部电极164之间的导电路径。电介质层170聚焦来自底部电极164的小区域电子迁移,从而控制所得到的导丝174的位置。写电流通过PMC组件160在反向的第二方向上的后续应用,导致了离子和电子迁移回各个电极162和164,由此将PMC组件160重置为其初始高电阻(对应于不同第二预定逻辑状态(例如O))。可替换地,可利用由控制电路158选择性地提供的具有不同幅值和/或脉冲宽度的单极编程电流来对结构类似于160所示的PMC组件进行编程。
[0023]第二存储器层154被示出为由示例相变随机访问存储器(PCRAM)组件180提供的可用在根据各种实施例的数据存储阵列中的另一非排他类型的固态存储器。相变组件180具有布置在顶部电极184和底部电极186之间的相变层182。虽然未要求或限制,但是相变层182可由周期表的VI族的多晶硫族化物材料形成,例如碲(Te)和硒(Se),同时在一些实施例中,相变层182由Ge2Sb2Te5(GST)或In-Ge-Te形成。
[0024]为了使层182处于相对高电阻的非晶相,相对高的电势被施加至电极184和186以将层182加热至其融化温度之上。快速地去除电压以提供相对敏锐的冷却转变,这可被称为淬火工艺。在该情况下,原子可能不具有足够的时间来将整个阵列释放至晶格结构,从而结束亚稳晶相和闻电阻。
[0025]如所示,响应于由于具有相对低幅值和较长持续时间的适当电流188流经组件180而造成的焦耳加热,相变层182可被编程至晶相。所加的脉冲被配置成使得层的温度升高至其玻璃态转变温度之上而且处于其融化温度之下,并且逐渐地将温度降低回到环境级别。该温度梯度总体上将为被结晶材料提供足够的保压时间。利用PCRAM组件180的编程操作,使层182进入各自的非晶相和晶相的数据写电流都可提供在公共方向(统一极性)188,这可在一些数据存储阵列中提供优化的数据编程性能。
[0026]虽然相同类型的固态存储器可被用在多个不同存储器层中,但是图3显示的非限制性实施例具有在第三存储器层156中单个地或多个地使用的电阻式随机访问存储器(RRAM)组件190。RRAM组件190具有被干预氧化层196隔开的相反的金属或合金电极层192和194。通过氧化层196的名义电阻建立第一更高电阻的编程状态。组件190上所选方向上的适当写电势和/或写电流的施加可引起从电极层192的金属迁移以及经由氧化层196的一个或多个导电金属化丝198的形成。
[0027]在一些实施例中,氧化层196可被配置为可迁移泄漏电流和更低的编程电流的不同材料的叠层。作为非限制的示例,非对称的Ta02_x和Ta205_x可具有不同厚度并形成氧化叠层。该非对称氧化叠层可呈现可以在无晶体管且无二极管的交叉点阵列(例如图2的阵列120)中扩展和访问的优化的持久性、数据保持力和访问速度。
[0028]各种实施例还可使用采用了被范德华力移动以形成高低电阻状态的碳纳米管的非织物矩阵的其它电阻式存储器类型,例如纳米管随机访问存储器(NRAM)。NRAM的尺寸和可规模化允许存储器被用在诸如切换装置和存储器单元之类的各种不同的存储器阵列应用中。与读取数据和写入数据相关的低访问电流进一步允许NRAM被单独地使用或与其它电阻式存储器类型组合使用来为控制部分150的各种存储器层152、154和156提供各种各样的数据存储能力。
[0029]该导丝198总体上操作来降低组件190的特征电阻并提供可对应于不同逻辑状态的不同高低电阻状态。为了使得组件190的编程状态返回高阻状态,适当写电势和/或电流在撤消导丝198的方向上被施加在电极192和194之间。利用30 μ A或更小的写电流,导丝198的产生和随后去除可小于10ns,这可通过单独实现或与其它类型的固态存储器组合实现并被分配给将组件190最大化成相对快的编程时间和低编程电流的操作条件(例如用户数据、元数据和空闲单元),来优化数据存储阵列性能。
[0030]多个不同存储器层的配置可允许控制电路158采用复杂的数据管理方案,其中各个存储器层152、154和156具有不同存储器类型(例如RRAM、PCRAM和PCM),但是具有控制电路158可选择性地用来优化数据存储性能的类似的存储器单元功能(例如元数据和用户数据的存储)。例如,初始地存储在构建为相变存储器单元的第一存储器层152中的数据可为冗余或重定位的目的而移动至第二存储器层154的RRAM存储器单元。
[0031]控制固态存储器单元数据的类型的能力被进一步存储以允许各种存储器层被适应性方式使用来反应地和主动地识别存储器单元操作偏移,例如电阻变化。然而,应该注意的是,不同类型的存储器单元的使用可附加地为单元提供不同电阻、与变化测试对应的读写轮廓、以及被至少控制电路158同时控制的预测模型,从而最大化存储器阵列对单元电阻的变化的适应性。
[0032]图4描绘了根据一些实施例的在数据存储阵列中使用的示例固态存储器单元的操作数据。各种电阻区域202、204、206和208分别对应于针对编程为逻辑值11、10、01和OO的多个存储器单元的电阻分布。在一些实施例中,数据存储阵列的一个或多个固态存储器单元可被配置为多级别单元(MLC),其通过同时地将η个比特存储为2η个逻辑位值来与将单比特存储为逻辑值O或I的单级别单元形成对比,如图4所示。
[0033]虽然可以没有限制地利用任意数量的不同逻辑值规定,但是根据各种实施例的逻辑值规范将逻辑值11分配为最低电阻而且将逻辑值10、01和00逐步地分配为更高的电阻。不管逻辑值规定如何,各种存储器单元操作可促进固态存储器单元的电阻的不经意的偏移,如分段区域210、212和214所示。作为示例但不是限制,存储器单元的存储电阻的增大及减小的连续编程周期的数量、高电阻状态被持续存储在存储器单元中的时间、数据存储阵列的温度、用来对存储器单元进行编程的编程电流的量,都可针对逐渐使数据的精确的编程和感测变得复杂的单比特或多比特存储器单元,促使提高或降低稳定的电阻状态。
[0034]诸如图3的组件160、180和190之类的固态存储器单元可被构建成其材料、层厚和总尺寸基于编程电流传导来重复地提供多个不同的电阻。随着所示的区域210、212和214在逻辑状态阈值内扩展的所存储的电阻范围内的不期望的偏移,例如0.3 Ω和0.6 Ω,逻辑状态精度会遭到破坏,诸如01之类的逻辑状态可能被读取为诸如00之类的不同状态。通过在包含大量分开的电阻的存储器单元的页或块的同时读取期间所存储的逻辑状态(它们中的一些可能具有程度变化的电阻偏移)之间进行区分,可能进一步恶化电阻偏移。
[0035]由于还没有完全理解电阻偏移的原因,所以对电阻偏移的防止还不可靠,即使是采用ECC。由此,各种实施例涉及通过利用诸如测试和预测电路之类的适当协议而在有线或无线网络上测试、观测和评估识别出的一个或多个存储器单元中的电阻偏移的互动和主动ECC管理。
[0036]图5提供了根据各自实施例配置及操作的示例数据存储装置的主动部分230的模块示意图。评估引擎232可以是分开的(例如通过有线或无线网络),或者集成在评估电路(例如图2的电路140)中。不考虑引擎232布置在何处,多个不同类型的数据可由引擎232单独地记录并评估以被传递至可以处理数据并识别出有问题的以及即将出现的存储器单元变化(例如电阻、逻辑状态和访问时间变化)的模型产生器234。作为示例而不是限制,对于针对数据存储阵列是如何执行的多样地图,传感器、处理电路和计时器至少可提供温度236、误码率238、读/写计数240、数据年龄242、和布隆滤波器244情况给评估引擎232。
[0037]—个或多个温度传感器236可持续地及偶发地测量数据存储装置的环境空气温度以及存储器单元、存储器页和存储器页裸片的局部温度。即,装置的空气温度可同时地或连续地监控各个存储器区域以检测尤其是热或冷的位置。在一些实施例中,设置阈值温度(例如150 °F),并且一旦超过阈值则触发对存储器阵列的具体部分的检测。该检测可能涉及使一个或多个存储器单元下线以便测试以及预测地改变暴露至预定范围外的温度的单元的逻辑状态电阻。该检测可能造成进一步的增长以提供至针对一个或多个存储器单元的读取计数。
[0038]针对一个或多个存储器单元的误码率(BER) 238还可由评估引擎232监控以预测在预定参数(例如,数据可靠性)之外操作的存储器单元的物理和逻辑概率。例如,针对存储器单元的高误码率可能经由连续数据访问触发进一步的对与相同单元物理上相邻的单元和与相同单元逻辑上连接的单元的检测和调节。还可以在存储器层(例如块和页)中监控误码率,这会导致更有效的分析,因为更高层中的更高BER可随后与更低存储器层中的更少单元的分析一致。
[0039]可在扩展的时间内(例如在数据存储装置的寿命期间)以及针对较短的时间(例如在前一小时或星期期间)连续监控存储器的各种扇区、页、块和裸片,以为评估引擎232提供针对数据访问数量的读/写计数器240。存储器的一些类型以及操作条件(例如PCRAM单元被频繁地访问)可能易于产生可实现预测并予以补偿的电阻偏移。在一些实施例中,计数器240可记录大量数据访问,例如读、写和重写的次数以及通过存储器单元的电流数,从而利用与各种存储器单元是被如何访问的相关的信息,向评估引擎232和模型产生器234提供数据。
[0040]在计数器监控对一个或多个存储器单元的访问的同时,年龄计数器242可操作来记录从存储器单元被写入、读取和改变开始经过的总时间。通过各种环境的和操作的存储器单元条件,例如读取干扰和未发现的局部加热和损伤,数据的重新定位可主动地改进数据存储精度。年龄计数器242可由测量及估计的误码率258和读/写计数器240补偿以提供综合的存储器单元地图,该地图允许评估引擎232和模型产生器234创建长访问的精确操作模式用于预测什么时候以及哪个存储器单元从类似电阻状态的预定操作阈值偏离。[0041 ] 布隆滤波器244可被用来提供加权系数方案从而追踪来自温度236、读/写计数器240和数据年龄计数器242的数据,并向评估引擎232提供可被模型产生器234有效地用来构建存储器单元操作预测的数据。在一些实施例中,加权系数可提供调节的计算,例如:
[0042]Count (Adj)=Actual Reads+Kl(Temp)+K2(Age)+Κ3(Delta-V)(I)
[0043]其中Count(Adj)是调节的计数值,Actual Reads表示实际读取操作,Temp是温度读取/范围/区域,Age表示块的年龄,Delta-V表示数据访问操作期间单元电阻中检测的或预测的变化。可利用模块242按照各自方法追踪年龄,例如与所选存储器位置上的写和/或读的总数相关的方法。可响应于不同读取电压和电阻阈值的应用来使用值Delta-V。可以理解的是,可以使用其它系数。
[0044]通过模型产生器234创建精确操作模型,可实现用来优化数据存储装置性能的有限的各种主动测量。一种这样的主动措施可以是将来自从评估引擎232的测试数据以及来自模型产生器234的预测操作数据发送至ECC引擎246,由此对针对页、块、裸片和单个存储器单元的多个不同ECC级别处理中的一个进行分配并编码。
[0045]图6图示出根据一些实施例的数据存储装置的示例ECC部分280的模块示意图。ECC引擎282 (其可以单独操作或者由图5的评估引擎和模型产生器指导)可以能够编码及解码至少四个不同级别的ECC。以不要求也不限制的方式,第一 ECC级别284可以是最简单及处理强度最小的ECC方案,例如校验总和,其实现基本的错误检测和校正而无需花费大量的系统处理时间。存储器单元操作偏移(例如电阻中的偏移)的互动或主动识别可触发ECC引擎282来将各个存储器单元的ECC级别更新至第二 286ECC级别、第三288ECC级别和ECC级别第四290的更高的更复杂的ECC方案。
[0046]各种实施例将第二 ECC级别286配置为奇偶校验,将第三ECC级别288配置为Reed-Soloman码,将第四ECC级别配置为混合自动重复请求(HARQ)码。ECC引擎282可持续地及偶发地监控各种系统参数(例如,处理能力、调度的处理活动、以及通道质量)以确定什么时候进行级别ECC更新以及进行什么样的ECC更新。对于一些情况,ECC更新可以是单个级别,同时在其他情况下根据具有增多的错误保护和校正的添加的ECC尺寸和处理成本的折中来确保更新至最高ECC级别。
[0047]在一些实施例中,在一个或多个存储器单元中预测电阻偏移的能力可与逻辑上或物理上邻接相同的电阻偏移的单元的其它存储器单元的主动更新一致。即,ECC引擎282可解释所接收的测试和模型数据以不仅更新相同的偏离的存储器单元,而且更新在物理上处于具有受影响的存储器单元的逻辑序列附近或内的存储器单元。该主动ECC更新可在层中进行,这是因为与偏离的单元远离的单元相比,更接近相同单元的存储器单元可得到更大的ECC级别提闻。
[0048]可进一步由ECC引擎282随时间及响应于预定的观测操作数据来执行主动更新。例如,对与相同存储器单元邻近的单元的主动ECC更新可能不会立即发生,而是被调度成在观测到预定温度、BER、或预定次数数据访问时发生。按照这样的方式,ECC引擎282可用于改变数据存储条件,例如高数据容量和降低的系统资源,由此在写调度的用户数据期间有效地更新ECC级别。
[0049]如图7的逻辑地图300所提供,ECC引擎282还可评估并利用用户数据读取来更新被识别为或未被识别为从预定电阻阈值偏移的存储器单元的ECC级别。示例逻辑回路300可起始于针对存储在数据存储装置中的一个或多个位置的数据的读取请求302。读取请求302可对应于用户数据从具体逻辑和物理块地址(LBA和PBA)的提取以及存储在别处的元数据和ECC码以指示主机最新版本的用户数据并确保数据是精确的。
[0050]步骤304可提供被预测为对应于被ECC引擎、评估引擎和模型产生器请求的用户数据的ECC。ECC的预测可以是任意数量的操作参数的函数并且可利用观测及测试的信息来减少ECC提取的时间和处理成本。例如,存储器的被频繁访问的存储器单元或页可能触发存储器类型(例如PCRAM)中相应ECC的高速缓存,这提供了快速数据提取并且允许所存储的ECC被用于其它存储器单元。
[0051]随后,在步骤306,针对各种存储器单元和存储器组的BER监控可与观测的针对预测的ECC和用户数据的BER比较来检查预测的ECC的精度。如果预测的ECC是正确的而且所提取的数据的BER匹配BER基准,则回路300可进入下一个读取请求。然而,观测的BER及基准BER之间的差异可使步骤308将预测的ECC的ECC级别和提取的存储器单元更新至与相对于基准BER的差异的尺寸相当的新级别。
[0052]通过各种读取和写入操作,可以评估、测试和预测一个或多个存储器单元的ECC以针对各种现有的及预测的操作条件进行调节。评估引擎、模型产生器和ECC引擎的补偿操作可被用来管理现有的及预测的ECC,从而提供有效的精确的数据编程和读取。示例ECC管理方案可针对存储器单元的集合的页、块和裸片(其中ECC级别对应于各个集合的尺寸)的ECC的层次的创建构成。即,低ECC级别(例如预测的校验总和)可用于读取和写入数据至存储器单元的裸片,同时提高的ECC级别(例如Reed-Solomon码)可用于裸片中包含的存储器的页。
[0053]基于存储器阵列单元的尺寸将ECC配置成层次,可允许最少系统资源消耗的ECC在更耗费处理成本的ECC级别被用于存储器的较小的页和扇区之前被启动使用。通过在一些或所有存储器区域升级ECC级别以使得数据访问时间与精确的数据读取和写入相平衡,可利用对包含在存储器的裸片、块、页和扇区中的一个或多个存储器单元的操作偏离的预测来优化该ECC层次。图8提供了根据各种实施例的示例的预测ECC管理例程320,其图示出如何分配及调节ECC级别。
[0054]首先,例程320可在步骤322根据估计的操作条件来相对于经过评估和建模的各种处理数据(例如温度、误码率和数据访问计数器)的预测电阻偏移。步骤322可包括对与一个或多个存储器单元相关的记录的操作和测试数据的评估,以识别出当前没有从预定电阻阈值偏离的单元的电阻的预期偏离。该识别可基于对缺陷单元的过去的评估和测试或者可基于在与存储器被激活以被用户控制之前建议或优化的ECC级别的比较的基础上识别出的所建议的单元相对于预定阈值的偏离的趋势。
[0055]利用来自步骤322的预测的电阻偏移,步骤324随后在写操作或调度的系统开销时间期间更新至少一个识别出的存储器单元的ECC级别。如上所述,在一些场合下,物理上及逻辑上邻近的存储器单元(例如存储器的整个扇区和页)的ECC级别可被主动地更新成各种ECC级别。ECC管理例程230可利用持续的写操作而不断地在步骤322和324之间循环,但是还可进入步骤326以在执行读操作的任意时间提供现有或预测的ECC。
[0056]从步骤326产生的之前存储的或主动地产生的ECC随后为了精度而在判断328中评估。在一些实施例中,用于多个存储器单元(例如存储器的页或块)的ECC可被收集,并且与判断328同时评估。判断328可通过各种确定的或经验的技术(例如比较BER、进行奇偶校验、以及数据冗余比较)为了精度而评估ECC和相应的用户数据。不管判断328是如何确定所提供的ECC是否正确,ECC中的失效进入步骤330,其中至少针对单个识别出的存储器单元的ECC被更新至与更高ECC级别相关的更稳健的ECC方案,如图6所示。
[0057]判断328和步骤330可被连续地重新访问任意次数以提升各个存储器单元、存储器页、存储器块和块的裸片的ECC级别,从而提供精确的数据提取,而不影响处理资源和数据访问时间。步骤330可进一步将ECC级别的更新调度成与对其中保留了与更新后的ECC级别对应的用户数据的具体块、页或扇区的下一个写操作一致。
[0058]在数据的ECC级别被更新成足以提供精确的数据读取的情况下,判断328进入步骤332,其中调度了与读取的用户数据相关的元数据的更新。更新的元数据可至少包括任意新ECC数据的位置和前向指针以及用户数据的新PBA和LBA,如果重新定位或冗余被用作更新的ECC级别的一部分。在初始的ECC是对的而且没有通过步骤330做出ECC级别条件的情况下,步骤332可在评估电路和引擎中更新操作记录,而不是修改元数据。可以理解的是,ECC管理例程320并不限于显示步骤和判断,因为例程320的任意部分可被修改、移动或省略来适应各种各样的数据存储装置操作,例如采用旋转介质和固态存储器两者的混合数据存储装置。
[0059]如图8所示,预测一个或多个存储器单元中的电阻偏移可对应于ECC管理,该ECC管理提供了适合于存储器单元的操作历史和预测的操作预期的ECC级别。基于观测的条件和趋势来预测ECC的能力可进一步用于管理ECC,以提供能够确保精确的数据读取和写入而不会不适当地恶化系统性能的错误检测和校验级别。而且,通过根据每个存储器类型的操作优势实现具有存储在存储器类型中的现有及预测的ECC的存储器单元,使用针对各种ECC和用户数据存储的不同存储器类型的尺寸的能力可优化存储器单元和数据存储阵列性倉泛。
[0060]可以理解的是可以在任意大量的应用中采用请求保护的技术,包括网络和移动数据存储环境。可以理解的是,即使已经在前述说明中阐述了本发明的各种实施例的大量特征,但是与各种实施例的结构和功能一起,该详细说明仅仅是示例性的,可以在所附权利要求所表述的术语的广义含义所表示的整个范围内的本发明原理内,对细节尤其对部件的结构和布置做出改变。
【权利要求】
1.一种设备,包括控制器,其被配置成识别相对于至少一个可变电阻存储器单元中的预定阈值的变化并且针对至少一个可变电阻存储器单元将第一错误校验码(ECC)级别升级为第二 ECC级别。
2.根据权利要求1所述的设备,其中至少一个可变电阻存储器单元是固态存储器阵列的一部分。
3.根据权利要求2所述的设备,其中固态存储器阵列具有多个不同类型的可变电阻存储器单元。
4.根据权利要求3所述的设备,其中第一类型的可变电阻存储器单元包括可编程金属化单元。
5.根据权利要求4所述的设备,其中第二类型的可变电阻存储器单元包括相变随机访问存储器单元。
6.根据权利要求5所述的设备,其中第三类型的可变电阻存储器单元包括电阻式随机访问存储器单元。
7.根据权利要求1所述的设备,其中控制器包括评估引擎,其被配置成同时地分析多个不同的存储器单元操作条件以反应性地识别出预定电阻阈值的变化。
8.根据权利要求7所述的设备,其中评估引擎利用数据提供模型产生器以便主动地识别出相对于预定电阻阈值的变化。
9.根据权利要求8 所述的设备,其中识别出的相对于预定电阻阈值的变化对应于与预定电阻阈值符合的至少一个可变电阻存储器单元。
10.一种方法,包括识别相对于至少一个可变电阻存储器单元中的预定电阻阈值的变化并且针对至少一个可变电阻存储器单元将第一错误校验码(ECC)级别升级为第二 ECC级别。
11.根据权利要求10所述的方法,其中第一ECC级别包括校验总和。
12.根据权利要求11所述的方法,其中第二ECC级别包括奇偶校验。
13.根据权利要求10所述的方法,其中第二ECC级别包括与第一 ECC级别不同的ECC方案。
14.根据权利要求10所述的方法,其中控制器使用多个不同的操作条件来产生存储器单元电阻中的变化的预测模型。
15.根据权利要求14所述的方法,其中预测模型被ECC引擎用来预测针对预定存储器单元的ECC。
16.根据权利要求10所述的方法,其中第一ECC级别对应于可变电阻存储器单元的页,第二 ECC级别对应于单独的可变电阻存储器单元。
17.一种方法,包括识别出相对于至少一个可变电阻存储器单元中的预定电阻阈值的变化,并且针对至少一个可变电阻存储器单元主动地将第一错误校验码(ECC)级别升级为第二 ECC级别。
18.根据权利要求17所述的方法,其中与识别出的可变电阻存储器单元逻辑上最接近的未识别的可变电阻存储器单元被从第一 ECC级别升级至第二 ECC级别。
19.根据权利要求17所述的方法,其中与识别出的可变电阻存储器单元物理上最接近的未识别的可变电阻存储器单元被从第一 ECC级别升级至第二 ECC级别。
20.根据权利要求17所述的方法,其中响应于从控制器的评估引擎部分观测到的操作数据来预测第一 E C级别。
【文档编号】G11C13/00GK104008773SQ201410066873
【公开日】2014年8月27日 申请日期:2014年2月26日 优先权日:2013年2月27日
【发明者】M·A·盖尔特纳, R·J·高斯, A·克利亚, A·帕塔波蒂安 申请人:希捷科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1