本发明针对一种具有自动错误修复机制的存储器存储装置和由存储器存储装置使用的自动错误修复方法。
背景技术:
当前,由于存储在存储器存储装置中的用户数据预期是高度可靠的,典型存储器存储装置应用特定错误校正码(errorcorrectioncode;ecc)技术,以检测位故障(bitfailures)且随后恢复与位故障相关联的数据。如果存储器存储装置中的单元遭到损坏或变得更弱,那么存储在受损单元中的存储位(memorybits)可通过ecc来检测。然而,通过ecc可能无法修复物理上损坏或磨损(wornout)的单元,且由此存储在这些受损单元上的存储位将很可能继续发生故障。此外,ecc只能够修复预定数目的位。如果相同列地址或行地址中除了预定数目的位之外的一个或多个额外位出现故障,那么无法通过ecc来修复数据。
由于任何ecc技术对于修复所存存储储位都具有限制,因此在例如单元到单元短路(celltocellshort)、字线方向故障(例如,浮动字线、字线短路到位线等)等的情况下,存储器存储装置可经历不可修复的错误。在存储器存储装置已出售给客户且处于正常操作之后,必须在由其产品规格预先确定的指定时间段内自动修复位故障,且位故障可能不会超过所使用的ecc方案的最大能力。此类问题对于需要高可靠性的存储器存储装置来说可为致命的。因此,一旦存储器存储装置在出售给用户之后处于正常操作,如果可自动检测且物理上修复故障位,那么故障的机率可大大降低。
修复故障位的一种方式是在故障尝试(failureattempt)之后使用冗余存储块(redundantmemoryblock)用于存储数据和地址。然而,此类方案将常常涉及通过数据线读取数据和/或写入数据。当整合到现有体系结构中时,此类方案将具有困难,由于数据线不仅由冗余存储块使用,而且每当接收写入命令时由正常操作使用。
技术实现要素:
因此,本发明针对一种具有自动误差修复机制的存储器存储装置和由存储器存储装置使用的自动误差修复方法。
在一方面中,本发明针对一种存储器存储装置,所述存储器存储装置将包含不限于:存储器存储装置,所述存储器存储装置包含:连接接口,配置成接收写入命令和与所述写入命令相关联的字线地址;存储器阵列,包含存储器库,所述存储器库包含ecc检测器、由字线地址控制的多个存储器单元以及由冗余字线地址控制的多个冗余存储器单元;熔丝熔断控制器,配置成接收所述字线地址以熔断所述字线地址的电熔丝以启动所述多个冗余存储器单元;以及存储器控制电路,耦接到连接接口、存储器阵列以及熔丝熔断控制器,且配置成:响应于接收所述写入命令或读取命令对所述多个存储器单元执行写入操作或读取操作;响应于检测到来自所述写入操作或读取操作的错误,从所述ecc检测器接收故障指示;响应于接收所述故障指示,熔断所述字线地址的所述电熔丝以启动所述多个冗余存储器单元;以及响应于所述电熔丝已熔断,通过位线将数据从所述多个存储器单元传送到所述多个冗余存储器单元中。
在一方面中,本发明针对一种由所述存储器存储装置使用的自动错误修复方法。所述方法将包含不限于:接收写入命令和与所述写入命令相关联的字线地址;响应于接收所述写入命令或读取命令,对由存储器阵列的字线地址控制的所述多个存储器单元执行写入操作或读取操作,其中所述存储器阵列包含存储器库,所述存储器库包括ecc检测器、所述多个存储器单元以及由冗余字线地址控制的多个冗余存储器单元;响应于检测到来自所述写入操作或读取操作的错误,从所述ecc检测器接收故障指示;响应于接收所述故障指示,熔断所述字线地址的所述电熔丝以启动所述多个冗余存储器单元;以及响应于所述电熔丝已熔断,通过位线将数据从所述多个存储器单元传送到所述多个冗余存储器单元中。
为了使得本发明的前述特征和优点便于理解,下文详细描述附有附图的示例性实施例。应理解,前文总体描述以及以下详细描述都是示例性的,且意图提供对所主张的本发明的进一步说明。
然而,应理解,本发明内容可并不含有本发明的所有方面和实施例,且因此不希望用任何方式加以限制或约束。此外,本发明将包含对本领域的技术人员显而易见的改进和修改。
附图说明
包含附图以提供对本发明的进一步理解,且附图并入本说明书中并构成本说明书的一部分。附图示出本发明的实施例,且与描述一起用于解释本发明的原理。
图1是示出根据本发明的示例性实施例中的一个具有自动错误修复机制的存储器存储装置的框图的硬件图;
图2是示出根据本发明的示例性实施例中的一个由存储器存储装置使用的自动错误修复方法的流程图;
图3是进一步详细示出根据本发明的示例性实施例中的一个的自动错误修复方法的流程图;
图4示出根据本发明的示例性实施例中的一个通过电熔丝技术的故障修复的实例;
图5是根据本发明的示例性实施例中的一个将数据“1”从故障字线地址复制到冗余字线地址的复制功能的时序图;
图6是根据本发明的示例性实施例中的一个将数据“0”从故障字线地址复制到冗余字线地址的复制功能的时序图;
图7进一步详细示出根据本发明的示例性实施例中的一个具有自动错误修复机制的存储器存储装置的硬件图;
图8示出根据本发明的示例性实施例中的一个将数据从由字线(已通过透视位线中的每一个检测到为故障)控制的存储器单元传送到由冗余字线控制的冗余存储器单元中的实例。
附图标号说明
100:存储器存储装置;
110:连接接口;
130:存储器控制电路;
150、704:存储器阵列;
151:ecc检测器;
170、706:熔丝熔断控制器;
400:存储块;
501、602:位线电压;
502、601:位线条电压;
503、603:wl(j)电压;
504、604:原始存储数据;
505、605:冗余存储数据;
701:地址缓冲器;
702:命令解码器;
703:行地址闩锁;
705:故障地址闩锁;
707:刷新地址闩锁;
708:刷新地址计数器;
709:自动刷新或自刷新控制电路;
401:存储块1;
402:字线地址wl(i);
403:字线地址wl(j);
sa1、sa2、sa:感测放大器;
wl(i)、wl(k):字线;
wl(j)、wl(1):冗余字线;
bl:位线;
blb:位线条;
blsa:位线感测放大器;
s201、s203、s205、s207、s209、s301、s302、s303、s304、s305、s306、s307、s308、s309、s310、s311、s312:步骤。
具体实施方式
现在将详细参考本发明的当前示例性实施例,附图中示出了所述示例性实施例的实例。只要可能,相同附图标号在附图和描述中用以指代相同或相似部件。
为了解决前述难题,本发明提供一种具有自动错误修复机制的存储器存储装置和自动错误修复方法,所述自动错误修复方法将在用户不知道的情况下以无缝方式自动修复物理错误,以增加存储器存储装置的可靠性。存储器存储装置将利用ecc方案以执行故障检测和错误校正。然而,ecc方案不可用于修复硬件缺陷,且由此只要故障是由于物理故障(physicalfailure),故障位(failurebit)将仍然存在。在与存储器存储装置的故障地址相关联的一个或多个单元中检测到物理错误(physicalerror)之后,可通过使用电熔丝(electricalfuse)技术来自动修复错误,而无需任何用户输入和用户意识。此外,来自故障地址的单元的数据将通过位线自动复制到冗余单元,而无需通过数据线。以这种方式,复制操作将不会干扰存储器存储装置的正常操作。值得注意的是,位线是指连接到存储器存储装置的单元的电路径,而数据线是指可集合多个位线且构成多个页(pages)之间数据连接的电路径。
图1示出示例性存储器存储装置100,所述存储器存储装置100可以是任何可重写非易失性存储器,例如动态随机存取存储器(dynamicrandom-accessmemory;dram)、非易失性随机存取存储器(non-volatilerandom-accessmemory;nvram)、快闪存储器等。存储器存储装置100包含不限于电连接到连接接口110的存储器控制电路130、具有ecc检测器的存储器阵列150以及熔丝熔断控制器170。
在一个实施例中,连接接口110配置成通过串行高级技术附件(serialadvancedtechnologyattachment;sata)标准来耦接到主机系统(未示出)的组件。在一替代实施例中,连接接口110可遵从并行高级技术附件(paralleladvancedtechnologyattachment;pata)标准、电气与电子工程师协会(instituteofelectricalandelectronicengineers;ieee)1394标准或其它合适的标准,本发明中不限于此。因而,连接接口110配置成接收外部输入(例如写入命令和与写入命令相关联的字线地址)。
存储器阵列150包含一个或多个存储器库(memorybanks),且每一存储器库可包含ecc检测器151、由字线地址控制的多个存储器单元。字线地址的存储器单元可具有由冗余字线地址控制的多个冗余存储器单元。熔丝熔断控制器170配置成接收字线地址以熔断字线地址的电熔丝以启动多个冗余存储器单元。存储器控制电路130将在连接接口110、存储器阵列150以及熔丝熔断控制器170之间进行协调,以执行例如写入操作的存储器存储装置100的功能。
在接收写入命令或读取命令之后,存储器控制电路130可协调存储器存储装置的硬件以对多个存储器单元执行写入操作或读取操作。ecc检测器将接着检测写入操作或读取操作是否产生错误。在检测错误时,ecc检测器将发送故障指示以指示已检测到来自写入操作或读取操作的错误。故障指示用于触发自动错误修复机制,且故障指示可以是ecc故障标志(eccfailureflag)。在一个或多个ecc故障之后,ecc检测器可发送ecc故障标志。ecc故障标志可被闩锁,且启动存储器控制电路和熔丝熔断控制器以实施自动错误修复机制。
接着,存储器控制电路可协调熔丝熔断控制器170以熔断字线地址的电熔丝,从而在接收故障指示之后启动多个冗余存储器单元。随后,在电熔丝已熔断之后,存储器控制电路130可协调从多个存储器单元通过位线到多个冗余存储器单元中的数据传送。熔断控制器170可发送指示熔断字线地址的电熔丝已完成的熔丝熔断标志。存储器控制电路130可随后响应于接收熔接熔断标志和ecc故障标志而等待自动刷新命令或自刷新命令。存储器控制电路130可响应于接收自动刷新命令或自刷新命令,刷新多个冗余存储器单元。
在不通过数据线传送数据的情况下,完成将数据从多个存储器单元通过位线传送到多个冗余存储器中。以这种方式,由于另一写入操作或另一读取操作可能潜在地使用相同字线,因此存储器存储装置能够独立于存储器存储装置的任何正常功能进行操作,而不会与其他操作冲突。在已检测到自动刷新命令或自刷新命令之后,存储器控制电路130将通过将数据从感测放大器直接复制到多个冗余存储器单元中而将数据从多个存储器单元通过字线传送到多个冗余存储器单元中,从而绕过使用数据线。
本发明还提供一种不限于由图2所示的步骤的自动错误修复方法。参考图2,在步骤s201中,存储器存储装置将接收不限于激活命令(activecommand)或写入命令以及与写入命令相关联的字线地址。激活命令或写入命令可包含行地址、列地址或块地址。激活命令可包含行地址或块地址。写入命令或读取命令可进一步包含列地址。在步骤s203中,存储器存储装置将对由存储器阵列的字线地址控制的多个存储器单元执行写入操作。在步骤s205中,响应于检测来自写入操作的错误,存储器存储装置将从ecc检测器接收故障指示。举例来说,根据联合电子管工程委员会(jointelectrontubeengineeringcouncil;jedec)标准,ecc检测器将执行在读取操作或写入操作期间可能发生的ecc操作。此外,行地址可在写入操作之前插入,或读取操作可伴随行地址。在步骤s207中,存储器存储装置将熔断字线地址的电熔丝以启动多个冗余存储器单元。在步骤s209中,存储器存储装置将通过位线将数据从多个存储器单元传送到多个冗余存储器单元中。
为了进一步阐明如图1和图2中所描述的本发明概念和其对应书面描述,本发明提供若干实例来更详细地描述本发明概念。参考图3,在步骤s301中,存储器存储装置100将接收读取命令或写入命令以将用户数据写入到存储器150的位置中。写入命令可包含行地址、列地址或块地址。举例来说,根据示例性实施例,写入命令可以是包含行地址以写入具体行中的存储器单元的‘激活’命令,接着是包含列地址以写入具体行的特定列中的存储器单元的‘写入’命令。
在步骤s302中,可在特定ecc方案下对用户数据进行编码,且随后ecc检测器151可应用特定ecc方案的算法来检测错误。在步骤s303中,假定ecc检测器151在一个或多个检测尝试之后已检测到错误,则ecc检测器可将故障指示发送到存储器控制电路130。故障指示可以是ecc故障标志。或者,在ecc检测器151已检测到错误之后,可尝试具有更高写入电压或更长写入时间的一或多次写入尝试。如果没有检测到错误,那么在步骤s304中,存储器存储装置100将继续进行正常操作。然而,一旦ecc检测器151已将故障指示发送到存储器控制电路130,则将触发自动错误修复机制。
在步骤s305中,假定写入操作在尝试存储用户数据的行和存储器库的地址处出现故障,则存储器阵列150将从ecc检测器151发送故障地址。故障地址将通过故障地址闩锁来闩锁。在步骤s306中,故障地址闩锁将故障地址发送到熔丝熔断控制器,且在步骤s311中,故障地址闩锁还将故障地址发送到刷新地址闩锁。在步骤s307中,存储器控制电路130可检查是否存在任何冗余存储器单元可用于替代故障地址的存储器单元。根据一示例性实施例,可存在冗余存储器单元的备用行用于每个现有存储器单元。或者,可存在含有多行冗余存储器单元的备用存储器库,以潜在地替代受损的单元行。冗余存储器单元的备用存储器库或备用行的准确数目是灵活的,且可基于设计考虑进行调整。
假定没有冗余存储器单元可用于故障地址,则在步骤s312中,存储器控制电路130将重置修复功能或可求助替代性方案以处理错误。假定没有冗余存储器单元可用于故障地址,则在步骤s308中,熔丝熔断控制器170可重置所有修复相关动作且返回正常操作。举例来说,如果出现故障的块不具有任何更多修复单元(例如,冗余行、冗余块等)可用,那么不会有任何修复动作,使得可放弃修复以允许存储器装置回到其正常操作。然而,如果已通过ecc检测器检测到另一块中的下一个故障且修复单元可用,那么后续修复动作将通过从故障地址的存储器单元复制到对应于冗余字线地址的存储器单元来继续。
根据一示例性实施例,故障地址是已经确定为含有一个或多个物理错误的存储器单元行的字线地址,字线地址的存储器单元待替换为另一冗余字线地址的冗余存储器单元。然而,在替换之后,冗余字线地址的物理地址将保持与替换掉的字线地址相同。在熔丝熔断控制器170已熔断故障地址的熔丝之后,熔丝熔断控制器170将发送指示熔丝已熔断的熔丝熔断标志。
响应于接收ecc故障标志和熔丝熔断标志,在步骤s309中,存储器控制电路130将等待和检测下一次自动刷新命令或自刷新命令,且故障地址还可通过刷新地址产生器来闩锁。在步骤s310中,在已接收自动刷新命令或自刷新命令之后,故障地址将充当刷新地址,因为冗余存储器单元将经历刷新操作,在此期间,先前存储在故障地址的存储器单元(即,字线地址)中的用户数据将复制到冗余存储器单元。根据一示例性实施例,假定故障地址是由字线控制的存储器单元行,则用户数据将从对应于故障地址的存储器单元行复制到由另一字线控制的冗余存储器单元的新行中。换句话说,在自动刷新命令或自刷新命令期间,将来自故障字线地址的数据复制到冗余字线地址。在接收自动刷新命令或自刷新命令之后,将停用ecc故障标志和熔丝熔断标志。接着,将完成修复动作。
基于所提供的机制,存储器存储装置100将能够同时并连续地执行故障检测和自动错误修复,因为修复操作将不会占用数据线。以这种方式,存储器存储装置100将能够正常操作而不影响存储器存储装置100的正常操作。
图4和其对应的书面描述中提供复制操作的进一步细节。存储器阵列150可具有至少但不限于多个存储块400,其中感测放大器(senseamplifier;sa)连接每一存储块,且每一存储块可含有一个或多个存储器单元行。假定已通过ecc检测器151确定错误出现在由存储块1401中的字线地址wl(i)402控制的存储器单元内,则存储在对应于字线地址wl(i)402的存储器单元中的用户数据将复制到对应于字线地址wl(j)403的存储器单元。从由一个字线控制的单元到由另一字线控制的冗余单元的复制操作通过对应位线中的每一个完成,而不通过数据线。
根据一示例性实施例,复制操作可在自动刷新操作或自刷新操作期间完成。通常,在自动刷新操作或自刷新操作期间,存储在由字线控制的存储器单元中的用户数据可首先存储在感测放大器中,且接着用户数据可从感测放大器复制回到由字线控制的存储器单元,以完成自动刷新操作或自刷新操作。然而,在此示例性实施例中,存储在对应于字线地址wl(i)402的存储器单元中可存储在感测放大器中,且接着复制到对应于字线地址wl(j)403的冗余存储器单元。以这种方式,用户数据可从由一个字线控制的单元通过对应位线中的每一个复制到由另一字线控制的冗余单元,而不通过数据线,使得错误修复机制将不会干扰存储器存储装置100的正常操作。
作为一实例,图5示出用于将数据“1”从故障字线地址复制到冗余字线的时序图。如图5中所见,在已通过ecc检测器151检测到故障之后,对应于cell(y)的字线wl(i)的电压将拉高。随后,当电压拉高时,对应于字线wl(i)和冗余字线wl(j)的感测放大器sa1和感测放大器sa2将启动。由于在s1处的位线(bitline;bl)电压501大于位线条(bitlinebar;blb)电压502,因此待复制的数据是‘1’。在熔丝熔断控制器170已完成熔断故障地址的熔丝之后,当wl(j)电压503拉高时,激活wl(j)。接着,存储在由wl(i)控制的单元中的原始存储数据504通过位线bl和位线感测放大器blsa复制到由wl(j)控制的冗余单元,所述冗余单元可以是对应于cell(y)的存储器单元,作为还将具有值‘1’的冗余存储数据505。基本上在读取操作或写入操作期间检测到故障之后。在已检测到且修复故障之后,将在下一次自动刷新操作或自刷新操作时执行数据复制操作。
图6示出用于将数据“0”从故障字线地址复制到冗余字线的类似实例。如图6中所见,在已通过ecc检测器151检测到故障之后,对应于cell(x)的字线wl(i)的电压将拉高。随后,当电压拉高时,对应于字线wl(i)和冗余字线wl(j)的感测放大器s1和感测放大器s2将启动。由于在s1处的位线条(blb)电压601大于位线(bl)电压602,因此待复制的数据是‘0’。在熔丝熔断控制器170已完成熔断故障地址的熔丝之后,当wl(j)电压603拉高时,激活wl(j)。接着,存储在由wl(i)控制的单元中的原始存储数据604通过位线和位线感测放大器复制到由wl(j)控制的冗余单元,所述冗余单元可以是对应于cell(x)的存储器单元,作为还将具有值‘0’的冗余存储数据605。如上所述在读取操作或写入操作期间检测到故障之后。在已检测到且修复故障之后,将在下一次自动刷新操作或自刷新操作时执行数据复制操作。
图7进一步详细示出从硬件图的角度的自动错误修复机制。参考图7,命令解码器702将接收‘激活’命令,‘激活’命令是针对行地址的写入命令,且地址缓冲器701将接收用于将用户数据写入到存储器阵列704的存储器库中的一个的行中的行地址,所述存储器阵列704是先前所描述的存储器阵列150的实例。行地址闩锁703将接着从命令解码器702接收行地址的写入命令,以及从地址缓冲器701接收行地址。接着,行地址将被发送到存储器阵列704,以将用户数据写入到行地址中。
假定存储器阵列704的ecc检测器中的一个已检测到存储在对应行地址的一个或多个单元中的用户数据的错误,则在一个或多个检测尝试之后,ecc检测器可将ecc故障标志发送到包含地址缓冲器701、命令解码器702、行地址闩锁703、故障地址闩锁705、刷新地址闩锁707、刷新地址计数器708以及自动刷新或自刷新控制电路709的存储器控制电路130的刷新地址闩锁707。或者,可尝试具有更高写入电压或更长写入时间的一或多次写入尝试以修复错误。如果错误无法修复,那么其可意味着错误是物理性质的,且因此无法修复。当ecc检测器中的一个发送ecc故障标志以触发自动错误修复机制时,ecc检测器将还将故障地址发送到故障地址闩锁705。响应于接收故障地址,故障地址闩锁705将向刷新地址闩锁707以及熔丝熔断控制器706(即170)发送故障地址,以熔断对应于故障地址的电熔丝。在熔丝熔断控制器170已熔断故障地址的熔丝之后,熔丝熔断控制器170将发送指示熔丝已熔断的熔丝熔断标志。
响应于接收ecc故障标志和熔丝熔断标志,刷新地址闩锁707将等待且检测下一次自动刷新命令或自刷新命令,所述命令可以由刷新地址计数器708确定的规则间隔出现,或可在从命令解码器702到自动刷新或自刷新控制电路709接收刷新命令之后出现。在已由刷新地址闩锁707接收来自刷新地址计数器708的自动刷新或自刷新命令之后,冗余存储器单元将经历刷新操作,在此期间,先前存储在故障地址(即字线地址)的存储器单元中的用户数据将复制到冗余存储器单元。由于假定故障地址是由字线控制的存储器单元行,因此用户数据将从由字线控制的存储器单元行复制到由冗余字线控制的冗余存储器单元行中。在接收自动刷新命令或自刷新命令之后,将停用ecc故障标志和熔丝熔断标志。
图8示出在批量数据移动(备份)操作期间的数据复制操作用于将数据从块1复制到冗余存储器位置(例如,备份01/12)。如图8中所示,块1包含由至少三行字线wl(i)、字线wl(j)、字线wl(k)以及冗余字线wl(1)控制的多个存储器单元。多个存储器单元的每一列的数据可通过连接到感测放大器的位线输出。假定ecc检测器已检测到由在读取操作或写入操作期间作为故障检测wl的wl(i)控制的有缺陷存储器单元,则熔丝控制器将激活由作为修复wl的冗余字线wl(l)控制的存储器单元行。将来自由wl(i)控制的存储器单元的数据复制到由wl(l)控制的存储器单元。在已检测到且修复故障之后,将在下一次自动刷新操作或自刷新操作时执行数据复制操作。
鉴于前述描述,本发明适合于例如动态随机存取存储器(dram)的存储器存储装置来实施,且能够自动修复错误而无需从用户接收任何外部命令,且独立于存储器存储装置的任何正常功能来操作,使得自动错误修复机制将不会产生额外操作时间且将不会导致存储器性能下降。