专利名称:分析和修复存储器的方法和装置的制作方法
背景所描述的是用于分析和修复存储器的方法和装置。具体而言,提出了用于分析和修复具有冗余存储器电路的存储器不合格的存储单元的方法和装置。
在大多数情况下,存储器被定义为具有多个行(M)和多个列(N)的存储单元的二维阵列。每个行和列的交点产生存储信息的一个输出位。希望在任何指定的时间从存储器输出不只一位的信息。用于实现此目的的两种方法是复制整个阵列结构以提供另外的输出位,或将阵列的一维(例如,在M或N维中)细分成好几个子部分,每次存取存储器阵列时,每个子部分提供一个输出位。
可使用三个变量,R、C以及I/O来描述细分(通常按R×C×IO写入)。R和C可分别表示阵列中的行数和列数,以及用作阵列的输入。I/O变量可表示从阵列中的行和列的“交点”输出的位的数量。实际上,I/O位不是形成在阵列的单个行和列的交点。而是由同时存取的阵列单行和多列的交点集合或由同时存取的阵列单列和多行的交点集合形成I/O位。如何形成I/O位由是否细分行或列以创建用于阵列的多个I/O来决定。
常规的存储器阵列包含冗余存储单元,冗余存储单元用来代替不合格的存储单元,大大地增加存储器的生产产量。由于通常将存储器定义成行和列的二维阵列,也很容易将冗余单元定义成备用行和备用列(或备用I/O)的二维组。备用行和列(或I/Os)的数量以及它们的配置可改变,但通常存储器阵列将排列成具有备用行或列组,或备用行或I/Os组。
备用行能同时代替与存储器的单个行地址有关的多个列或I/Os。同样,备用列,如果存在的话,也能代替与存储器的单个列地址有关的多行。备用I/Os,如果存在的话,能同时代替与存储器的具体I/O位有关的多个列。通常,将I/Os定向到与存储器阵列的行或列相同的方向中,从而为了替换不合格存储器单元,将其视为与定向到相同方向的空类型相同。
常规的存储器测试包括识别存储器阵列中所有不合格存储器地址以及识别哪些存储器地址的哪一(些)位是不合格的。典型的存储器测试包括将各种数据模式写入存储器中,然后读取并将存储器的输出与所期望的值或模式进行比较。将期望的与实际读取的存储器值间的失配存储在通常位于存储器测试器本身的外部存储映射中。
在执行所有测试模式以及识别和存储不合格地址(和位)后,测试器执行有关存储错误数据的修复分析以确定哪个不合格的行和/或列(或I/Os)位(或单元)将需要用有效的空存储单元代替以使该存储器完全可用。通常在所有存储器测试结尾分析不合格的存储器信息。这允许修复例程考虑到所有不合格的存储器信息以便确定最大化存储器的操作,以及以最有效的方式使用冗余的存储单元的最佳修复配置。另外,通过同时考虑所有不合格的存储器信息,可及早识别到某一不可修复的存储器状态,以及在将宝贵的测试和修复时间浪费在不可修复情况上之前,放弃该存储器。
与大多数常规测试器有关的局限性要求动态生成和使用修复信息。通过无效使用冗余存储器,将降低整个存储器的产量。这些局限性也使得在开发更快和更密集存储器中使存储器测试成为更昂贵和耗时的过程。
例如,常规的存储器测试器通常具有比它们用来测试的存储单元的工作频率相对较低的处理时钟速度。相对较低的时钟速度使得不可能确定测试中的存储器在正常的工作速度是否将正常工作。同时,使用这些较慢的常规测试器,不可能收集到在正常工作速度的错误信息。结果,测试器必须能存储大量的错误数据,然后在“脱机”执行的修复例程中分析该大量的数据。用常规的测试器,错误检测器必须与不合格位总的期望数一样大。由此,当存储密度继续增加时,先前有限测试器存储器也必须增加且必须增加测试器的处理能力以便能处理更复杂的修复例程解决方案。
与常规测试器有关的另一局限性是它们典型的有限I/O能力。当存储器变得更密集时,也必须增加测试该存储器所需I/Os的数量。I/O有限的测试器将不能同时测试整个存储器,要求将测试程序划分成几个更小的测试程序。划分存储器测试将导致增加总的测试时间,这促使大大地增加与存储器制造有关的成本。
存储器设计者已经利用内置自测试(或BIST)技术来解决一些这样的关注。通过BIST,将用于测试存储器的模式生成器制作在与存储器本身相同的半导体芯片(或晶片)上。这允许BIST电路飞快地测试存储器,消除由于以子工作速度测试存储器而不能检测错误的担心。另外,BIST电路解决了与当今I/O受限的测试器有关的担心。
尽管如此,局限性与常规的BIST技术并存。例如,必须将大量错误存储器结合到BIST电路中以便存储不合格的存储器信息。同样,另外的存储和处理器资源必须结合到存储器中以便执行修复例程处理。因为空间和处理器局限性,仅可将有限的错误存储和修复码的数量结合到BIST设计中。因此,常规的BIST技术继续使用用于检测不合格的存储器位置的“抽点打印(snapshot)方法”。这要求修复例程“匆忙地”处理不合格的存储器信息,如上所述,从而导致不能有效地使用包含在存储器芯片上的冗余存储单元。
因此需要一种用于分析和修复存储器的改进技术,该技术将修复例程的复杂性降低为更简单的任务,以及减轻加在存储器测试器上的错误存储需要。
概述因此,一个目的是提供能同时有效地修复存储器的几个较小部分以降低复杂性的存储器分析和修复技术。另一个目的是提供允许以有效方式在芯片上存储所有不合格的存储器信息。另一目的是提供快速分析和产生用于所有不合格存储器信息的修复信息。另一目的是提供具有大量I/Os的存储器测试。另一目的是在执行修复例程中及早检测不可修复的存储器故障状态。这些目的通过分析和修复存储器的不合格存储单元的方法和装置来解决。
根据一个方面,用于分析和修复存储器的方法包括确定在至少部分存储器中检测到的不合格的存储单元是否必须使用多种类型的存储器备件的一种来修复或可使用多种存储器备件类型的任何一种来修复的步骤。重复修复必须仅使用多种存储器备件类型的一种来修复的不合格的存储单元,跳过可使用多种存储器备件类型的任何一种修复的任何不合格的存储单元,直到没有需要修复的必须修复和跳过不合格的存储单元的新的错误或确定存储器单元不可修复为止。当修复必须修复的不合格存储单元时,修复至少一个不合格的存储单元。当修复不至一个跳过的不合格存储单元时,重复确定是否必须修复不合格存储单元并重复修复必须修复的不合格存储单元的步骤。
根据相关方面,多种存储器备件类型的第一种类型能修复存储器行和列部分中的一个,且多个存储器备件的第二种补充类型能修复存储器行和列部分中的另一个。
根据另一相关方面,必须修复的不合格存储单元包括在具有超过若干有效互补型存储器备件的不合格存储单元总数的存储器各个行或列部分中的不合格的存储单元。
根据另一相关方面,通过逻辑地将存储器划分成多个分析块来形成存储器的至少一部分,每个分析块完全包括多种存储器备件类型的每种类型的至少一种。
根据本发明另一个相关方面,通过将每个分析块逻辑地分成多个子块来形成存储器的至少一部分,每个子块在与存储单元范围一致的各个分析块区域上延伸,多种存储器备件类型的每一种能够修复。
根据另一相关方面,该方法进一步包括以单独的可寻址条目,将用于每个子块的不合格存储单元信息存储在存储器中的步骤。
根据另一相关方面,将用于每个子块的不合格存储单元信息存储在正被分析和修复的存储器部分。
根据另一相关方面,存储器中每个可寻址条目与用于各个子块的错误存储表一致,每个错误存储表具有用于存储与在存储器的各个行和列部分中检测到的多个不合格存储单元有关的信息的行和列条目。
根据另一相关方面,存储器进一步包括从存储在存储器中的至少一个错误存储表读取与在存储器的各个行或列部分检测到的不合格存储单元的数量有关的信息的步骤。至少在存储器部分中检测到的不合格存储器单元位于与至少一个错误存储表一致的子决中,从该错误存储表读取与不合格存储单元的数量有关的信息。
根据另一相关方面,该方法进一步包括在存储器的单独部分上执行该方法的每个步骤直到已经修复在存储器中检测到的所有不合格存储单元或确定该存储器不可修复为止。
根据另一相关方面,在存储器的单独部分上执行的该方法的每个步骤在每个单独部分的同时发生。
根据另一相关方面,重复修复必须仅使用多种存储器备件类型的一种来修复不合格存储单元的步骤包括确定在至少一个错误存储表中行或列条目是否为空或是否已经修复由下一行或列条目识别的错误。如果行或列条目为空或是所识别的错误为空,那么它将决定是识别的错误是否必须被修复。否则,确定在由至少一个错误存储表中的下一行或列条目是否为空或是否已经修复由下一行或列识别的错误。如果必须修复识别的错误,那么确定多种存储器备件类型的仅一种备件是否有效。否则,跳过修复识别的错误的步骤并确定在至少一个错误存储表中的下一行或列条目是否为空或是否已经修复由下一行或列条目识别的错误。如果多种存储器备件类型的仅一种备件有效,那么用多种存储器备件类型的仅一种备件修复识别的错误并确定在至少一个错误存储表中的下一行或列条目是否为空或是否已经修复由下一行或列条目识别的错误。否则,将存储器确定为不可修复。重复确定在至少一个错误存储表中的行或列条目是否为空或是否已经修复由行或列条目识别的错误的步骤直到处理完至少一个错误存储表中的所有行或列条目。
根据另一相关方面,当修复必须修复的不合格存储单元时,跳过修复任何不合格存储单元的至少一个的步骤包括跳过仅修复任何跳过的不合格存储单元的至少一个的第一检测不合格存储单元。
根据另一相关方面,仅修复第一检测不合格存储单元的步骤包括确定在素一个错误存储表中的行或列条目是否为空的步骤。如果行或列条目不为空,那么确定是否已经修复由行或列条目识别的错误。否则,确定在至少一个错误存储表中的下一行或列条目是否为空。如果识别的错误没有被修复,那么,确定多种存储器备件类型的第一类型是否有效。否则,确定在至少一个错误存储表中的下一行或列条目是否为空。如果多种存储器备件类型的第一类型有效,那么用第一类型的备件修复识别的错误。否则,确定多个存储器备件的第二互补型是否有效。如果多个存储器备件的类型的第二类型有效,那么用第二类型的备件修复识别的错误。否则将存储器确定为不可修复。重复确定在至少一个错误存储表中的行或列条目的步骤直到处理完在至少一个错误存储表中的所有行条目或所有列条目。
根据另一相关方面,如果确定在至少一个错误存储表中的任何行或列条目为空,为空的下一类型条目不需要处理。
根据另一相关方面,存储器的行部分包括存储器的至少一行且存储器的列部分包括存储器的至少一列。
根据另一相关方面,存储器的列部分包括至少一个输入/输出(I/O)设备,至少一个I/O设备提供用于存储器的至少一列的输入和输出路径。
根据另一相关方面,当修复必须修复不合格存储单元时跳过的修复任何不合格存储单元的至少一个的步骤包括确定多种存储器备件类型的哪种类型能修复最多的可使用多个存储器备件的任何一个修复的不合格存储单元的步骤。用可用的确定类型的备件代替最多数的不合格存储单元。
根据另一相关方面,在确定是否必须修复在至少部分存储器中检测到的不合格存储单元之前,该方法进一步包括确定在至少部分存储器中的多种存储器备件类型的任何一种是否是非功能性的。根据在至少部分存储器中多种存储器备件类型的排列,将与非功能性存储器备件的信息集合在一起。
根据另一相关方面,将有关非功能性存储备件的信息集合在一起的步骤包括如果该部分能由多个存储器备件的各个类型的至少一个修复,将逻辑ORing用于至少部分存储器的多个部分的与非功能性存储器备件有关的信息的步骤。
应当强调术语“包括”和“由...组成”用在该说明书以及权利要求书中,应视为指定存储所述的特征、步骤或元件;但这些术语的使用并不排除存在或添加一个或多个其他的特征、步骤、元件或及其结合。
附图的简单描述根据下述结合附图的详细描述,上述目的、特征以及优点将变得更清楚,其中相同的参考数字表示相似或相同的零件,以及其中
图1描述具有冗余电路的示范性存储阵列;图2描述在图1中示出的典型的存储阵列部分,以及描述称为分析块的存储器部分;图3描述示范性修复分析例程的流程图;以及图4A以及4B描述用于处理由图3中所示的修复分析例程生成的信息示范性修复例程的流程图。
详细描述下面将参考附图来详细地描述优选实施例。在下述描述中,将不详细地描述公知的功能和/或结构以便方便理解说明书。
示例性存储器结构在详细描述分析和修复技术前,首先描述可应用该技术应用的示例性存储器结构将会有所帮助。从存储器阵列的中心备件观点看,可将备用行或列(或I/Os)以正规间隔排列在整个存储器阵列中。通常可由熔丝控制激活备用行或列(或I/Os),但其他激活装置也是公知的。当熔丝烧断时,激活相应的备用行或列(或I/O)以及编程替换适当的存储器地址。烧断熔丝所用各种方式,包括但不仅限于,激光切割以及某种电信号的激活。
通常,与它们激活的备用存储单元相比,熔丝相对大一些,因此任何指定的熔丝通常可用来同时激活或代替几行或列(或I/Os)。通过这种配置,由指定熔丝激活和编程的备用行或列组从分析和修复观点看可看作信号实体。可由分析和修复例程使用该备用行或列组来实现在不合格存储单元的特性和替换方面的压缩度和效率。
图1描述具有冗余电路的示例性存储器阵列。示例性阵列包括存储单元的两个存储体,Bank0和Bank1。每个存储单元的存储体包括32列(Cols.0-15和16-31)以及4096行(每个2K单元的行的2个集合)。将存储库划分成每个具有128I/Os(IO
-IO[127]和IO[128]-IO[255])的部分。以正规间隔将备用I/Os和行排列在整个阵列中。如上所述,也可使用包括具有备用列和行冗余电路的存储器阵列。
将存储器阵列逻辑地划分成称为分析块102的几个部分。优选地选择分析块102的大小和形状以便定义完全包含至少一个备用I/O(或列)以及至少一个备用行的存储器阵列的最小部分。将分析和修复例程定义成在分析块102的基础上操作。在所示的示例性的存储器结构中,示出了16个分析块。将理解到可将存储器阵列逻辑地划分成多个的分析块。
将分析块102定义成在该分析块中的备用存储单元与在其他分析块中的备用存储单元无关将在修复和分析例程中产生更多的效率,尽管这种配置并不是严格要求的。例如,通过确保在指定分析块中的备用I/Os和行不越过分析块边界,分析和修复例程能独立和并行地分析和修复存储器阵列的各个分析块。
图2更详细地描述图1中所示的高亮显示的分析块102。如从该图中看到的,将在例子中的每个分析块定义成包括四个I/O备件和四个行备件。分析块102可进一步逻辑划分成称为子块202的更小部分。图2中所示的分析块具有8个这样的子块202。优选地将子块大小选择成子块在行和I/O(或列)尺寸中延伸的距离与行和I/O(或列)备件能替换的存储单元的范围一致。
根据所示的例子,每个子块202包括能代替I/O部分206中的32个I/Os的任何一个的一个I/O备件以及能代替该块中512行的任何一个的两个行备件。将子块排列到四个子块的每一个的两行中,将行称为集合204。优选地,将用于每个子块的不合格存储单元信息存储为错误存储(ES)SRAM(未示出)中的单独的行条目。在ES SRAM中的每个行条目也可称为错误存储表。根据存储器阵列的大小和阵列的冗余电路的结构,可使用多个ES SRAMs来存储不合格存储单元信息。在2002年5月31日提交的共同未决U.S.专利申请号No.10/_,名为“Method andApparatus for Storing Memory Test Information”,中描述过用于存储不合格存储单元和修复信息的技术,并与本申请具有共同的代理人。
分析例程在描述过示例性的存储器结构后,现在将提出用于分析存储器阵列不合格存储单元的例程。在分析例程(以及修复例程)中使用的下述术语定义如下。
Must仅可用一种方式替换不合格存储单元(或错误)或错误组-通过用备用行或用备用I/O(或列)替换错误或错误组。
Fixed用来控制例程的流向的标记,无论何时修复错误时,应当将该标记设置成“Y”。
Skip用来控制例程的流向的另一标记。无论何时检测到错误,应当将该标记设置成“Y”,但不立即由该例程修复。
NG在例程中使用的标记表示存储器阵列不可修复。
Fix_Any在例程中使用的标记以确定错误类型是否应当立即修复。如果该标记设置为“Y”,如果可能的话,将修复面临的任何的错误,如果设置为“N”,该例程将仅修复“Must”错误。
在图3中描述了用于例程分析部分的流程图。尽管不是严格要求,例程开始于步骤302,通过分析(或更新)与各个行或列备件功能性有关的信息,各个行或列备件形成当前正分析的分析块冗余电路。在子块202的基础上,可将备件功能性信息存储在存储器,如ES SRAM中。如果用这种方式存储备件功能性信息,那么步骤302应当进一步包括将从各个子块202中收集的有关备件功能性信息集合在一起的步骤。
集合有关备件功能性信息可使用逻辑“OR”函数来实现。例如,对图2中所示的分析块,由于备用行与集合204所示的四个I/P部分206的每一个交叉,应当将与指定集合204的每个I/O部分206的备用行有关的功能性信息逻辑OR在一起。同样地,由于备用I/O与I/O部分206中的每个行交叉,应当将与用于I/O部分206中的每个行的备用I/O(或列)有关的功能性信息逻辑“OR”在一起。
在已经更新用于当前分析块的备件功能性信息后,例程进入步骤304,在该步骤,从存储器读出用于当前分析块的任何存储的修复码(RC)信息。优选地,将RC信息与错误存储信息分别存储在如单独的RC和ESSRAMs中,但这种存储配置并不是绝对必要。步骤306至330表示分析例程的主要部分。在这些步骤中,分析用于指定分析块102的不合格存储单元信息以便能生成用于修复分析块的适当修复码。在处理完每个分析块后,在步骤332确定是否处理完存储器阵列中的所有分析块。如果是,处理结束;否则,在步骤334更新与将处理的下一分析块有关的信息,以及在步骤302重复该处理。
分析例程的主要部分利用两阶段的方法。首先,例程尝试修复用特定方式必须修复的分析块的那些行和/或I/Os-通过指定备用行或备用I/O来修复错误。接着,例程尝试修复能用多种方式修复的那些行和/或I/Os-通过指定可用的备用类型来修复错误。
尽管在流程图中未清楚地示出,在开始新的分析块的处理前,将该例程使用的各种标记初始化为下述值Fix_Any 设置为“N”;Fixed设置为“N”;Skip 设置为“N”;NG 设置为“N”;以及Last Set设置为“N”(注意该标记的值由当前分析块102中的备用/子块/集合的结构而定)。
在步骤306,通过从如ES SRAM读取用于当前分析块的ES数据,开始分析块的处理。由于将标记Fix_Any初始化为“N”,通过首先处理所谓的“Must”错误,例程开始分析它的ES数据。重新调用“Must”错误,“Must”错误表示仅可用特定类型备件,如该例子中的备用行或备用I/O(或列)修复的存储单元故障。分析例程的此阶段表示如上所述的两阶段方法的第一阶段。
重新调用如图2中所示的分析块,分析块由排列成2个集合204的8个子块202组成,每一集合为四个子块。每个集合包括可用来替换跨越集合204的四个子块202的512行的每一个的两个备用行。指定这种特定的配置,在步骤306从ES SRAM读取前四个错误存储表。这些存储表与组成分析块102的第一集合204的四个子块202一致。其他配置将要求改变从ES SRAM读取的数据量。
接着,使用在图4A和4B中所述的修复例程(将在下面详细描述),在步骤308处理在步骤306读取的ES数据。此外,因为将标记Fix_Any初始化为“N”,通过首先尝试修复所谓的“Must”错误来开始修复例程。标记Skip、Fixed以及NG,一旦在修复例程中设置,应当在整个分析的阶段保持并返回图3中所述的例程的分析部分。如果面对未修复的错误,调用应当设置为“Y”的标记Skip;如果修复错误,应当将标记Fixed设置为“Y”以及如果面对不可修复的错误,应当将标记NG设置为“Y”。
在步骤310,将控制返回到例程的分析部分,在该步骤测试NG标记的当前状态。如果已经将NG标记设置为“Y”,例程进入步骤312,在该步骤,将存储器阵列识别为不可修复。只要做出该决定,存储器阵列不需要进一步分析,并结束分析和修复例程。
如果在步骤310将标记NG设置为“N”,例程进入步骤314,在该步骤,测试Fix_Any标记的当前状态。如上所述,在两阶段分析的第一阶段期间将该标记设置为“N”以便在其他识别的错误前识别和修复“Must”错误。
因此,在分析的第一阶段,例程进入步骤316,在该步骤,确定正处理的当前集合204是否为要分析的分析块102中的最后一集合204。如果正分析的当前集合204不是分析块中的要处理的最后一集合,例程进入步骤318,在该步骤,更新ES SRAM地址来寻址与将由例程分析的下一集合204一致的存储在SRAM中的下一四个错误存储表。重复执行步骤306至318直到已经处理完分析块102中的所有集合204的“Must”错误。
当在步骤316确定正处理的当前集合204是当前分析块102中的最后一集合204时,例程进入步骤320,在该步骤,测试Fixed标记的当前状态。如果Fixed标记设置为“Y”,表示在步骤308由修复例程修复“Must”错误,进程进入步骤330,在该步骤,更新ES SRAM地址来再一次访问存储在ES SRAM中的前四个错误存储表。这些错误存储表与当前正分析的分析块102的第一集合204一致。尽管在该图中未示出,在步骤330再次将标记Skip和Fixed初始化为“N”。
再次重复执行步骤306至318直到处理完当前分析块102中的所有集合204的“Must”错误。可以理解到修复分析块中的任何错误可引起先前跳过的错误(由于识别的错误不是“Must”错误而跳过)后来变成“Must”错误。因此,重复分析块“Must”错误的处理直到没有新错误由修复例程修复。
当没有新“Must”错误由修复例程修复时,由修复例程返回的Fixed标记将仍然设置成它的初始值“N”。因此,当在步骤320测试Fixed标记时,进程将进入步骤322,在该步骤,测试Skip标记的当前状态。这表示两阶段方法的第一阶段的结果,其中在其他类型错误前修复“Must”错误。
如果在第一阶段的分析中没有跳过错误,进程进入步骤332,在该步骤,确定当前分析块102是否为存储器阵列中将处理的最后一个分析块。如果当前分析块是要处理的最后一个分析块,例程结束;否则例程进入步骤334;在该步骤,在存储器阵列的下一分析块上重复整个例程。尽管在该图中未示出,在步骤334再次初始化标记Skip、Fix_Any以及Fixed。
如果在第一阶段的分析中跳过错误,由修复例程返回的Skip标记的值设置为“Y”。因此,当在步骤332测试标记时,例程将进入步骤324,在该步骤,将Fix_Any标记设置为“Y”。这表示两阶段方法的第二阶段的开始,其中由修复例程处理由可用的任一类型备件修复的错误。
在将Fix_Any设置为“Y”后,在步骤330更新ES SRAM地址以便再次存取存储在ES SRAM中的前四个错误存储表。这些错误存储表与当前分析的分析块102的第一集合204一致。再将标记Skip以及Fixed初始化为“N”。
以与第一阶段的分析期间相同的方式在第二阶段分析中处理步骤306至312。当在步骤314测试Fix_Any标记时,例程将进入步骤326,在第二阶段的分析中将标记设置为“Y”。
在步骤326,测试标记Fixed以便确定在步骤308任何错误是否由修复例程修复。如果没有错误修复,例程进入步骤318,同时更新ES SRAM地址以便存取存储在SRAM中的下一四个错误存储表。这些存储表与由该例程处理的分析块102的下一集合204一致。处理分析块102的集合204直到在步骤326决定分析块中的错误已经被修复。在该例程中的该点上重新调用,至少一个错误必定存在于分析块中,同时仅在步骤322确定在第一阶段的分析期间跳过错误后进入分析例程的第二阶段。
当在步骤326确定已经分析块中的错误被修复时,例程进入步骤328,同时将Fix_Any重新设置为“N”。这导致例程重新进入分析的第一阶段,其中例程搜索并尝试修复“Must”错误-那些错误仅用可用备件的一个特定类型修复。
此外,将理解到在第二阶段的分析和修复期间修复分析块中的任何错误能产生新的“Must”错误。选择第二阶段的分析中的哪种错误不是简单的任务。因此,所描述的技术不试图确定最好修复的错误,而是修复在分析块中遇到的第一未修复的错误,然后返回分析的第一阶段,在该阶段,可能检测和修复新的“Must”错误。该忽略方法对于分析和修复例程的整个性能来说是简洁和高效的。
另外,在分析的第二阶段可尝试确定能修复最大量的剩余非“Must”类型错误存储器备件的类型。做这种决定可导致提高制造产量,但增加了例程的复杂性并增加了分析和修复时间且影响存储器修复所需的存储要求。
继续如上所述的分析和修复的第一和第二阶段的执行顺序,直到1)第一阶段结束,没有修复“Must”错误及没有忽未修复的错误,或2)确定存储器区域是不可修复的(即,将NG标记设置为“Y”)。在完成该例程的基础上,将需要替换正分析存储器阵列的不合格存储单元的修复码存储在RC SRAM中。
修复例程图4A和4B描述用于生成用备用单元替换存储器阵列的不合格存储单元所需修复码的示例性修复例程流程图。图4A描述当在分析和修复的第一阶段-修复检测的“Must”错误中操作时执行的步骤。图4B描述当在分析和修复的第二阶段-修复除“Must”类型错误外的错误中操作时执行的步骤。如图4A所示,关于处理“Must”错误或其他类型错误的决定发生在例程的步骤402。
在详细地描述修复例程前,定义在该例程中使用的某些术语以及谈谈对例程的操作的某些一般看法将会有所帮助。
首先,什么构成“Must”类型错误可由多个变量而定,包括,但不限定于正被分析的存储器阵列的大小、检测的错误的数量、所需的测试量,以及可用备用行和列(或I/Os)的数量。根据优选实施例,“Must”错误可定义为1)在分析块的指定行中检测的错误,其中在指定行中错误的数量超过可用备用列(或I/Os)的数量,或2)在分析块的指定列(或I/O)中检测的错误,其中在指定列(或I/O)中的错误数量超过可用备用行的数量。
其次,图4A和4B中所述的示例性流程图表示在列错误前处理和修复行错误,但不必是这种情形。例如,在图4A中所述例程部分中,其中处理“Must”类型错误,测试错误存储表中的每行或列条目的错误,确定是否从行或列条目的任意一个开始。在图4B所述的例程部分中首先处理行或列条目,其中根据所应用的错误存储技术,处理非“Must”类型错误。例如,在未决U.S.专利申请号No.10/__描述的错误存储技术确保非“Must”类型错误具有错误存储表中的行和列条目。
因此,反映这些错误存储技术的申请的图4B仅表示正测试非“Must”类型错误表中的行条目,但这不必是这种情形。如果在ES SRAM中存储的不合格存储单元信息不能保证非“Must”类型错误将具有行和列条目,修改例程来在错误存储表的行和列条目中搜索至少一个非“Must”类型错误。因此,如果保证在ES SRAM中存储有不合格存储单元信息,可修改例程来仅在错误存储表的列条目中搜索非“Must”类型错误。
最后,图4A和/或4B描述用于每个子块202正处理的四个行和三个列,每个子块形成分析块102的集合204。将理解到在修复例程中处理的行和列的数量由存储在ES SRAM中的不合格存储单元信息的数量而定。从以上可以想到,ES SRAM的每行可与错误存储表一致。如在未决U.S.专利申请号No.10/__中所描述的,每个错误存储表包括用于存储总的不合格存储单元信息的至少一部分的行和列条目。
未决申请另外描述,对具有两个备用行和一个备用列的子块202,影响修复所需的表行条目的数量是4-用于每个可用备用行的两个条目加上用于两个可用备用行和单个可用备用列的每个交点的两个行,同时影响修复所需的表列条目的数量是3-用于单个可用备用列的一个条目,加上用于单个可用备用列和两个可用备用行的每个交点的两个条目。因此,在仅描述了在图4A和4B中处理的行和/或列的数量,以及可是达到在指定子块202中总的行和列的数量的任何数量。将处理的行和列的数量越少,修复例程将变得效率更高和更有效。
通过认识这些定义和一般看法,现在将更详细地描述在图4A中所述的修复例程部分。如在该图中所看到的,在例程中顺序地处理组成指定集合204的每个子块204。用相同的方式处理错误表中的每个行和列条目,以便将更详细地仅描述行#1处理。
在步骤404开始第一ES表行(或列或I/O)条目的处理,在该步骤,确定在那个表条目中识别的错误是否已经(即,用备用行或列修复),或在相应行中的错误数量是否为零,因此不需要修复。如果这些条件中任何一个为真,例程进入处理错误存储表中的下一行(然后列)条目直到处理完该表中的所有行和列条目。如果任何一个条件均不为真,例程进入步骤406,在该步骤,确定该故障是“Must”类型还是其他类型的错误。根据优选实施例可以想到,如果在行中检测的错误数量超过可用备用列的数量,将该错误认为是“Must”错误。
如果错误不是“Must”类型错误,跳过该错误(由于例程的该部分仅处理“Must”类型错误)以及例程进入步骤408,在该步骤,将Skip标记设置为真。这说明图3中所示的分析例程表示已经跳过检测的错误,以便在那个例程中的进一步处理可由此继续进行。然后例程进入处理错误存储表中的下一行(然后是列)条目直到处理完所有行和列条目。
如果确定该错误是“Must”类型错误,那么例程进入步骤410,在该步骤,确定备用行是否可用来修复错误。如果备用行可用,指定可用备用行来修复错误以及例程进入步骤412,在该步骤,将Fixed标记设置为真。这说明分析例程表示已经修复检测的错误,以便在那个例程中的进一步处理能由此继续进行。然后例程进入处理错误存储表中的下一行(然后是列)条目直到处理完所有行和列条目。
如果没有备用行可用来修复检测到的“Must”类型错误,例程进入步骤414,在该步骤,将标记NG设置为“Y”。该标记向分析例程表示正分析的存储器阵列是不可修复的,且暂停所有阵列的分析和修复。当处理完分析块102的当前集合204中的每个子块202时,在步骤308,例程将控制返回给例程的分析部分。
现在将更详细地描述在图4B中描述的修复例程部分。重新调用例程的该部分检测和尝试修复跳过的至少一个错误中的一个同时处理在图4A中描述的例程部分中的“Must”错误。因为用相同的方式处理每个行(或可能为列或I/O)条目,将仅详细地描述处理行#1。在步骤416开始该例程部分,在该步骤,确定是否在行中已经检测到错误。如果已经检测到错误,例程进入步骤418,在该步骤,确定是否已经修复所检测的错误。如果在第一行条目中没有检测到错误或已经修复在第一行条目中检测的错误,例程进入处理在错误存储表中的剩余行(或列或I/O)直到处理完所有条目。
另外,如果应用的错误存储技术能确保错误存储表中没有错误的第一行(或列或I/O)条目下的行(或列或I/O)条目也没有错误,那么可跳过进一步的行(或列或I/O)条目处理。然后,例程可直接进入步骤420和422,在这些步骤,处理在分析块102当前集合204中的下一子块202。
如果在步骤418确定还没有修复检测到的错误,那么例程进入步骤424,在该步骤,确定行备件是否可用来修复检测的错误。如果行备件是可用的,在步骤426用可用备件修复错误以及在步骤434设置Fixed标记。如果行备件是不可用的,例程进入步骤428,在该步骤,确定列备件是否可用来修复检测的错误。如果列备件是可用的,在步骤430用可用备件修复错误以及在步骤436再次设置Fixed标记。如果行或列备件均不可用来修复检测的错误,在步骤432将NG标记设置为“Y”,且控制返回例程的分析部分。
某些术语用来便于描述示例性的实施例,但不应当用来限制在此描述的一般概念。例如,可将存储器的“行”或“列”部分或存储器备件类型的任何特定引用解释包含存储器的这些部分或存储器备件的类型。在存储器备件的情况中,特定术语表示存储器备件的互补型,因为如果存储器备件的一种类型未用来修复指定的存储单元位置,存储器备件的其他互补型可用来修复该位置。
另外,术语“修复”或“正在修复”不仅包括用备用单元替换不合格的存储单元,而且包括生成可存储在如RC SRAM中的修复信息,用于后来用在用备用单元替换不合格存储单元中。因此,术语“单元”和“存储单元”可解释成表示一个或几个存储单元或存储器中的位置。最后,术语“Y”和“真”以及“N”以及“假”在整个说明书和权利要求书中可互换使用以便解释在所述例程中发生的各个测试条件的状态。
已经结合多个示例性实施例描述了各个方面。为便于理解这些实施例,根据可由计算机系统的元件或微控制器执行动作的顺序描述许多方面。例如,将意识到在每个实施例中,可由特定的电路(如互连的离散逻辑门来执行特定的功能)、由正由一个或多个处理器执行的程序指令,或由两者的组合来执行各个动作。
因此,示例性实施例可视为计算机可读存储介质的任何形式部分,计算机可读存储介质在此具有存储的适当的计算机指令集,计算机指令使处理器执行在此描述的技术。因此,可用许多不同的形式具体化不同方面,以及可将所有这些形式视为包含在在此描述的范围内。对各个方面的每一个,可将实施例的所有这些形式称为“逻辑构成”以便执行描述的动作或称为“逻辑”执行描述的动作。
尽管已经描述过各种示例性实施例,本领域的普通技术人员将理解到这些实施例仅是示例性的,并且许多其他实施例也是可能的。由下述的权利要求定义本发明想要的范围而不是在前的描述,以及落在权利要求书范围内的所有变形均视为包含在此。
权利要求
1.一种用于分析和修复存储器的方法,该方法包括步骤确定在存储器的至少一部分中检测到的不合格存储单元必须仅使用多种存储器备件类型的一种来修复还是可使用多种存储器备件类型的任何一种来修复;重复修复必须仅使用多种存储器备件类型的一种来修复的不合格存储单元,跳过可使用多种存储器备件类型的任何一种修复的任何不合格存储单元,直到没有修复必须修复的新的错误以及没有跳过不合格存储单元或将存储器确定为不可修复为止;当修复必须修复的不合格存储单元时,修复跳过任何不合格存储单元的至少一个;以及重复确定不合格存储单元是否必须修复以及无论何时修复至少一个跳过的不合格存储单元时,重复修复必须修复的不合格存储单元的步骤。
2.如权利要求1所述的方法,其中多种存储器备件类型的第一类型能修复存储器行和列部分的一个以及多种存储器备件类型的第二互补型能修复存储器行和列部分的另一个。
3.如权利要求2所述的方法,其中必须修复的不合格存储单元包括在存储器中具有的不合格存储单元的总数量超过可用互补型存储器备件的数量的各个行或列部分中的不合格存储单元。
4.如权利要求1所述的方法,其中存储器的至少一部分由以下形成将存储器逻辑地划分成多个分析块,每个分析块完全包括多种存储器备件类型的每种类型的至少一种。
5.如权利要求4所述的方法,其中存储器的至少一部分由以下形成将每个分析块逻辑地划分多个子块,每个子块在与存储单元范围一致的各个分析块区域上延伸,多种存储器备件类型的每一种能修复。
6.如权利要求5所述的方法,进一步包括步骤将用于每个子块的不合格存储单元信息存储为存储器中的单独的可寻址条目。
7.如权利要求6所述的方法,其中将用于每个子块的不合格存储单元信息存储在正分析和修复的存储器部分中。
8.如权利要求6所述的方法,其中存储器中的每个可寻址条目与用于各个子块的错误存储表一致,每个错误存储表具有用于存储与在存储器的各个行和列部分中检测到的多个不合格存储单元有关信息的行和列条目。
9.如权利要求8所述的方法,进一步包括步骤从存储在存储器中的至少一个错误存储表读取与在存储器的各个行和列部分中检测到的不合格存储单元数量有关的信息;其中在存储器的至少一部分中检测到的不合格存储单元位于与至少一个错误存储表一致的子块中,从错误存储表读取与不合格存储单元数量有关的信息。
10.如权利要求9所述的方法,进一步包括步骤在存储器的单独部分上执行该方法的每个步骤直到已经修复在存储器中检测到的所有不合格存储单元或将该存储器确定为不可修复为止。
11.如权利要求10所述的方法,其中在存储器的单独部分上执行该方法的每个步骤对每个单独部分同时发生。
12.如权利要求8所述的方法,其中重复修复必须仅使用多种存储器备件类型的一种来修复不合格存储单元的步骤包括步骤确定在至少一个错误存储表中的行或列条目是否为空或是否已经修复由行或列条目识别的错误;如果行或列条目不为空也没有修复识别的错误,那么确定是否必须修复识别的错误,否则确定在至少一个错误存储表中的下一行或列条目为空或是否已经修复由下一行或列条目识别的错误;如果必须修复识别的错误,那么确定多种存储器备件类型的仅一种备用是否可用,否则跳过修复识别的错误以及确定在至少一个错误存储表中的下一行或列条目是否为空或是否已经修复由行或列条目识别的错误;以及如果多种存储器备件类型的仅一种备件可用,那么用多种存储器备件类型的仅一种备件修复识别的错误以及确定在至少一种错误存储表中的下一行或列条目是否为空或是否已经修复由下一行或列条目识别的错误,否则将该存储器确定为不可修复;其中重复确定在至少一个错误存储表中的行或列条目是否为空或是否已经修复由行或列条目识别错误的步骤直到处理完在至少一个错误存储表中的所有行和列条目。
13.如权利要求8所述的方法,其中当修复必须修复的不合格存储单元时,修复跳过的任何不合格存储单元的至少一个步骤包括步骤仅修复任何跳过的不合格存储单元的至少一个第一检测的不合格存储单元。
14.如权利要求13所述的方法,其中仅修复第一检测的不合格存储单元的步骤包括步骤确定在至少一个错误存储表中的行或列条目是否为空;如果行或列条目不为空,那么确定是否已经修复由行或列条目识别的错误,否则确定在至少一个错误存储表中的下一行或列条目是否为空;如果未修复识别的错误,那么确定多种存储器备件类型的第一种类型是否可用,否则确定在至少一个错误存储表中的下一行或列条目是否为空;如果多种存储器备件类型的第一种类型可用,那么用第一种类型的备件修复识别的错误,否则确定多种存储器备件类型的第二互补型是否可用;以及如果多种存储器备件类型的第二种类型可用,那么用第二种类型的备件修复识别的错误,否则将存储器确定为不可修复;其中重复确定在至少一个错误存储表中的行或列条目是否为空的步骤直到处理完在至少一个错误存储表中的至少所有行条目或所有列条目。
15.如权利要求14所述的方法,其中如果确定在至少一个错误存储表中的任何行或列条目为空,为空类型的下一条目不需要处理。
16.如权利要求2所述的方法,其中存储器的行部分包括存储器的至少一行且存储器的列部分包括存储器的至少一列。
17.如权利要求2所述的方法,其中存储器的列部分包括至少一个输入/输出(I/O)设备,至少一个I/O设备提供用于存储器的至少一列的输入和输出路径。
18.如权利要求1所述的方法,其中当修复必须修复的不合格存储单元时,修复跳过的任何不合格存储单元的至少一个的步骤包括步骤确定多种存储器备件类型的哪种类型能修复最多的可使用多种存储器备件类型的任何一种修复的不合格存储单元;以及用确定类型的可用备件替换最多不合格存储单元。
19.如权利要求1所述的方法,其中在确定是否必须修复在存储器的至少一部分中检测的不合格存储单元之前,该方法进一步包括步骤确定在存储器的至少一部分中的多种存储器备件类型的任何一种是否是非功能性的;以及根据在存储器的至少一部分中的多种存储器备件类型的配置,集合与非功能性存储器备件有关的信息。
20.如权利要求19所述的方法,其中集合与非功能性存储器备件有关的信息的步骤包括步骤如果这些部分能由多种存储器备件类型的各个类型的至少一种修复,逻辑OR与用于存储器的至少一部分的多个部分的非功能性存储器备件有关的信息。
21.一种用于分析和修复存储器的装置,该装置包括逻辑电路,确定在存储器的至少一部分中检测到的不合格存储单元必须仅使用多种存储器备件类型的一种来修复还是可使用多种存储器备件类型的任何一种来修复;逻辑电路,重复修复必须仅使用多种存储器备件类型的一种来修复的不合格存储单元,跳过可使用多种存储器备件类型的任何一种修复的任何不合格存储单元,直到没有修复必须修复的新的错误以及没有跳过不合格存储单元或将存储器确定为不可修复为止;逻辑电路,当修复必须修复的不合格存储单元,修复跳过任何不合格存储单元的至少一个;以及逻辑电路,确定不合格存储单元是否必须修复以及无论何时修复至少一个跳过的不合格存储单元时,重复修复必须修复的不合格存储单元。
22.如权利要求21所述的装置,其中多种存储器备件类型的第一类型能修复存储器行和列部分的一个以及多种存储器备件类型的第二互补型能修复存储器行和列部分的另一个。
23.如权利要求22所述的装置,其中必须修复的不合格存储单元包括在存储器各个行或列部分中的不合格存储单元,存储器具有的不合格存储单元的总数量超过可用互补型存储器备件的数量。
24.如权利要求21所述的装置,进一步包括逻辑地将存储器划分成多个分析块,每个分析块完全包括多种存储器备件类型每种类型的至少一种。
25.如权利要求24所述的装置,进一步包括逻辑电路,逻辑地将每个分析块划分多个子块,每个子块在与存储单元范围一致的、每一种能修复的多种存储器备件类型的各个分析块的区域上延伸。
26.如权利要求25所述的装置,进一步包括逻辑电路,将用于每个子块的不合格存储单元信息存储为存储器中单独的可寻址条目。
27.如权利要求26所述的装置,其中将用于每个子块的不合格存储单元信息存储在正分析和修复的存储器部分中。
28.如权利要求26所述的装置,进一步包括用于存储器中的每个可寻址条目的错误存储表与各个子块一致,每个错误存储表具有用于存储与在存储器的各个行和列部分中检测到的多个不合格存储单元有关信息的行和列条目。
29.如权利要求28所述的装置,进一步包括从存储在存储器中的至少一个错误存储表读取与在存储器的各个行和列部分中检测到的不合格存储单元的数量有关的信息;其中在存储器的至少一部分中检测到的不合格存储单元位于与至少一个错误存储表一致的子块中,该信息与从错误存储表读取与不合格存储单元的数量有关。
30.如权利要求29所述的装置,进一步包括逻辑电路,确定是否已经修复在存储器的单独部分中检测到的不合格存储单元直到已经修复在存储器中检测到的所有不合格存储单元或将该存储器确定为不可修复为止。
31.如权利要求30所述的装置,其中逻辑电路确定是否已经同时修复在存储器单独部分中的不合格存储单元。
32.如权利要求28所述的装置,进一步包括逻辑电路,确定在至少一个错误存储表中的行或列条目是否为空或是否已经修复由行或列条目识别的错误;逻辑电路,如果行或列条目不为空也没有修复识别的错误,那么确定是否必须修复识别的错误,逻辑电路,当行或列条目均不为空也没有修复识别的错误时,确定在至少一个错误存储表中的下一行或列条目为空或是否已经修复由下一行或列条目识别的错误;逻辑电路,如果必须修复识别的错误,确定多种存储器备件类型的仅一种备件是否可用,逻辑电路,当识别的错误不需要修复时,跳过修复识别的错误以及确定在至少一个错误存储表中的下一行或列条目是否为空或是否已经修复由行或列条目识别的错误;逻辑电路,当多种存储器备件类型的仅一种备件可用时,用多种存储器备件类型的仅一种备件修复识别的错误以及确定在至少一种错误存储表中的下一行或列条目是否为空或是否已经修复由下一行或列条目识别的错误;以及逻辑电路,当多种存储器备件的仅一种备件不可用时,将存储器确定为不可修复。
33.如权利要求28所述的装置,其中当修复必须修复的不合格存储单元时,逻辑电路修复跳过的任何不合格存储单元的至少一个,包括逻辑电路,仅修复任何跳过的不合格存储单元的至少一个第一检测的不合格存储单元。
34.如权利要求33所述的装置,其中仅修复第一检测的不合格存储单元的逻辑电路包括逻辑电路,确定在至少一个错误存储表中的行或列条目是否为空;逻辑电路,当行或列条目不为空时,确定是否已经修复由行或列条目识别的错误;逻辑电路,当行或列条目为空时,确定在至少一个错误存储表中的下一行或列条目是否为空;逻辑电路,当未修复识别的错误时,确定多种存储器备件类型的第一种类型是否可用;逻辑电路,当已经修复识别的错误时,确定在至少一个错误存储表中的下一行或列条目是否为空;逻辑电路,当第一种类型备件可用时,用第一种类型备件修复识别的错误;逻辑电路,当第一种类型备件不可用时,确定多种存储器备件类型的第二互补型是否可用;以及逻辑电路,当第二种类型备件可用时,用第二种类型备件修复识别的错误;以及逻辑电路,当第二种类型备件不可用时,将存储器确定为不可修复。
35.如权利要求34所述的装置,其中如果确定在至少一个错误存储表中的任何行或列条目为空,为空的类型的下一条目不需要处理。
36.如权利要求22所述的装置,其中存储器的行部分包括存储器的至少一行以及存储器的列部分包括存储器的至少一列。
37.如权利要求22所述的装置,其中存储器的列部分包括至少一个输入/输出(I/O)设备,至少一个I/O设备提供用于存储器的至少一列的输入和输出路径。
38.如权利要求21所述的装置,其中当修复必须修复的不合格存储单元时,修复跳过的任何不合格存储单元至少一个的逻辑电路包括逻辑电路,确定多种存储器备件类型的哪种类型能修复最多的可使用多种存储器备件类型任何一种修复的不合格存储单元;以及逻辑电路,用确定类型的可用备件替换最多不合格存储单元。
39.如权利要求21所述的装置,进一步包括逻辑电路,确定在存储器至少一部分中的多种存储器备件类型的任何一种是否是非功能性的;以及逻辑电路,根据在存储器至少一部分中的多种存储器备件类型的配置,集合与非功能性存储器备件有关的信息。
40.如权利要求39所述的装置,其中集合与非功能性存储器备件有关的信息的逻辑电路包括逻辑电路,如果这些部分能由多种存储器备件类型各个类型的至少一种修复,OR与用于存储器至少一部分的多个部分的非功能性存储器备件有关的信息。
全文摘要
提出了用于分析和修复存储器的方法和装置。该方法包括步骤(302,304,306),确定是否必须仅使用多种存储器备件类型的一种修复或可使用存储器备件类型的任何一种修复在存储器至少一部分中检测到的不合格存储单元。重复修复必须仅使用多种存储器备件类型的一种修复的不合格存储单元(308),跳过可使用多个存储器备件类型的任何一种修复的任何不合格存储单元,直到没有必须修复的新错误和没有跳过不合格的存储单元或将存储器确定为不可修复为止。
文档编号G11C29/44GK1489766SQ02804488
公开日2004年4月14日 申请日期2002年6月7日 优先权日2001年6月8日
发明者A·J·绍瓦格奥, M·A·穆尔林斯, A J 绍瓦格奥, 穆尔林斯 申请人:三菱电气株式会社