用于测试存储器的方法和存储器系统的制作方法

文档序号:6766824阅读:193来源:国知局
用于测试存储器的方法和存储器系统的制作方法
【专利摘要】一种用于测试存储器的方法和存储器系统。所述方法包括:对存储在所述存储器中的用户数据执行错误纠正码校验(ECC校验);使存储在所述存储器中的所述用户数据反转;对存储在所述存储器中的反转的用户数据执行进一步的ECC校验;以及使存储在所述存储器中的所述反转的用户数据反转,以恢复所述存储器中的所述用户数据。
【专利说明】用于测试存储器的方法和存储器系统

【技术领域】
[0001]本发明的实施例涉及一种通过执行错误纠正码校验来测试存储器的方法。本发明的进一步的实施例涉及一种存储器系统,包括被配置用于测试该存储器系统中的存储器的控制器。

【背景技术】
[0002]复杂的微控制器产品中的SRAM存储器在应用过程中必须在安全应用方面频繁地被测试,以便检测、纠正并登记存储器中产生的新的硬错误和软错误。这在短的规则时间片段内执行,并且占据实际应用的大量时间。定期测试存储器所需要的时间越短,可用于实际应用的时间越多并且性能越好。
[0003]在常规系统中,通过首先在功能上关闭其SRAM将被测试的模块、然后经由总线使存储器可访问、然后将实际应用内容转移(复制)到不同的仍然空白的存储器中、并且然后使用预定义的算法/物理占用来测试将被测试的存储器,以此来测试SRAM模块。在测试之后,再将实际内容复制回去。
[0004]经由总线转移原始用户数据是非常耗时的。同样,由CPU频繁执行的测试在活动操作期间往往不能真正模拟临界状况,这是由于测试过程中CPU经由具有等待周期的缓慢总线访问存储器,同时使用该存储器的模块可能依次在每个周期进行访问。


【发明内容】

[0005]本发明的目的是提供用于测试存储器的改进方法和改进的存储器系统。
[0006]这一目的通过根据权利要求1所述的方法和根据权利要求13和19所述的存储器系统来解决。
[0007]本发明的其他方面可从从属权利要求衍生。
[0008]本发明的实施例涉及一种用于测试存储器的方法。所述方法包括:
[0009]对存储在所述存储器中的用户数据执行错误纠正码校验(ECC校验);
[0010]使存储在所述存储器中的所述用户数据反转(inverting);
[0011]对存储在所述存储器中的反转的用户数据执行进一步的ECC校验;以及
[0012]使存储在所述存储器中的所述反转的用户数据反转,以恢复所述存储器中的所述用户数据。
[0013]此外,本发明的进一步的实施例涉及一种存储器系统,包括在其上存储有用户数据的存储器和控制器。所述控制器被配置用于通过以下操作测试存储器:
[0014]对存储在所述存储器中的所述用户数据执行错误纠正码校验(ECC校验);
[0015]使存储在所述存储器中的所述用户数据反转;
[0016]对存储在所述存储器中的反转的用户数据执行进一步的ECC校验;以及
[0017]使存储在所述存储器中的所述反转的用户数据反转,以恢复所述存储器中的所述用户数据。

【专利附图】

【附图说明】
[0018]将使用附图对本发明实施例进行更加详细的描述,附图中:
[0019]图1示出了根据本发明实施例的用于测试存储器的方法的流程图;
[0020]图2示出了根据本发明实施例的用于测试存储器的进一步方法的另一流程图,它是图1所示方法的可能的实施方式;
[0021]图3示出了根据本发明实施例的存储器系统的方框图;以及
[0022]图4示出了根据本发明实施例的进一步的存储器系统的方框图,它是图3所示存储器系统的可能的实施方式。

【具体实施方式】
[0023]在对本发明实施例进行更加详细的描述之前,应该指出的是,图中具有相同或相当功能的单元被提供有相同的附图标记。因此,被提供用于具有相同附图标记的单元的描述是可相互交换的。
[0024]图1示出了用于测试存储器的方法100的流程图。
[0025]方法100包括对存储在存储器中的用户数据执行错误纠正码校验(ECC校验)的步骤101。
[0026]而且,方法100包括使存储在存储器中的用户数据反转的步骤103。
[0027]而且,方法100包括对存储在存储器中的反转的用户数据执行进一步的ECC校验的步骤105。
[0028]而且,方法107包括使存储在存储器中的反转的用户数据反转,以恢复存储器中的用户数据的步骤。
[0029]在应用中方法100可以是对SRAM进行非破坏性测试。
[0030]本发明人发现,如果对存储在存储器中的用户数据执行第一次ECC校验并对存储在存储器中的反转版本的用户数据执行第二次ECC校验,可以实现对存储器非常快速的测试。该过程的优点是,一方面,由于对存储在存储器中的用户数据执行第一次ECC校验并对反转的用户数据执行进一步的ECC校验,因此可以找到所谓的硬固定型(hard stuck at)错误。而且,通过使用户数据反转两次,可以确保没有必要将用户数据复制到另一存储器上,因为尽管实际上对用户数据(其可以是应用的程序代码的一部分)执行了 ECC校验,但是用户数据的内容被保持。因此,与常规系统相比,没有预定的错误图案(pattern)必需被复制到在其上执行ECC校验的存储器,也不必将当前存储在存储器中的用户数据(如程序代码或其他用户相关数据)复制到另一(安全)存储器上。
[0031]在存储器测试期间,一次可以测试存储器的一个地址,如结合图2所示的那样。因此,一次可以测试一个地址(从该地址读取用户数据并且在读取的时候对其进行ECC测试,然后使该用户数据反转并立刻将其写回,然后读取并对反转的用户数据进行ECC测试,使反转的用户数据反转并将其写回到该地址),然后才测试下一个地址,其中对存储在该下一个地址的用户数据执行相同的读取和两次反转的步骤。
[0032]然而,根据其他实施例,也可以读取全部地址(或者至少存储器的一定地址范围),并对读取的全部地址一次性执行ECC校验。然后,可以一次性地将存储在该地址的全部用户数据反转,并对存储在这些(多个)地址处的反转的用户数据执行进一步的ECC测试。随后,反转的用户数据被反转并被写回存储器的这些地址。
[0033]测试存储器的全部地址(或者至少一定地址范围)的概念的优点是,在其间没有写入的情况下,测试在数据上移动地较快(这在某些方面甚至更好)。
[0034]另一个优点是,使用(通常是已经可用的)存储器内建自测试控制器(MBIST控制器)结合(通常是已经可用的)错误纠正校验单元或控制器(ECC控制器)可以容易地实现方法100。
[0035]图3示出了这样一种存储器系统300,包括存储器301。存储器301 (其可以是SRAM)具有存储在其上的用户数据303。此外,存储器系统300包括控制器305。控制器被配置用于通过下述操作来测试存储器301:对存储在存储器301中的用户数据303执行(第一次)错误纠正码校验(ECC校验),(在ECC校验已经执行之后)使存储在存储器301中的用户数据303反转,对(当前)存储在存储器301中的反转的用户数据执行(第二次或)进一步的ECC校验,以及(在进一步的ECC校验已经执行之后)使存储在存储器301中的反转的用户数据反转以恢复存储器301中的用户数据303。因此,控制器305能够在无需将用户数据303复制到安全存储器的情况下,测试存储器301、保持用户数据303、并且甚至找到硬固定型错误(由于两次反转的原理)。
[0036]换句话说,如果用户数据被用于测试,那么该用户数据不会像在通常测试(其中使用特定的测试图案)中那样被影响,以具有两个极性(polarity)。因此,如果对于每个比特,固定型错误具有与用户数据相同的极性,那么比特错误会隐藏在用户数据之后。因此,两次反转的原理允许测试两种极性,而不损坏用户数据。
[0037]控制器305的可能实施方式在本申请的图4中示出,将存储器系统400示出为图3所示存储器系统300的可能实施方式。可以看出,存储器系统400的控制器305包括提到的MBIST控制器401和ECC控制器403。
[0038]MBIST控制器401被配置用于读取用户数据303,并使来自存储器301的用户数据反转。
[0039]此外,MBIST控制器401被配置用于将反转的用户数据写入到存储器301,并(在进一步的ECC校验已经执行之后)将用户数据303 (原始的并且未反转的版本)重新写回到存储器301中。ECC控制器403被配置用于对由MBIST控制器401从存储器301读取的用户数据303执行ECC校验,并对由MBIST控制器401从存储器301读取的反转的用户数据执行进一步的ECC校验。
[0040]此外,从图4可见,存储器系统400包括错误跟踪寄存器405。该错误跟踪寄存器405通常是存储器系统400周围逻辑的一部分,或者也可以是MBIST控制器401的一部分。在这样的错误跟踪寄存器405中,标记或存储了错误的地址或用户数据字。
[0041 ] ECC控制器403被配置用于,在执行ECC校验和进一步的ECC校验期间,纠正用户数据303中发现的错误或者至少在错误跟踪寄存器405中将它们标记为错误。作为示例,硬错误,如固定型错误或其他不可纠正的错误,可以在错误跟踪寄存器405中被标记,同时在反转的用户数据反转之前,通过校正反转的用户数据中的错误(诸如,通过执行有关比特的简单比特翻转),(可纠正的)软错误可以被ECC控制器403纠正。因此,存储器中恢复的用户数据将没有(可纠正的)软错误。
[0042]因此,根据进一步的实施例,可纠正的软错误被去除了,以不会在不修复它们的情况下进一步积聚成多个错误。
[0043]然而,这种软错误的纠正也可以省略,因为在错误跟踪寄存器405中也标记这些(可纠正的)软错误是足够的(其可以通过本发明的其他实施例来执行),因为访问存储器的应用不管怎样总会针对存储器中的错误检查错误跟踪寄存器405。因此,根据这些实施例,恢复的用户数据仍然可能包括(可纠正的)软错误,但这些错误在错误跟踪寄存器405中被标记。
[0044]本发明的实施例使用在制造之后至少出于测试目的而可能存在的MBIST控制器401。此外,出于可靠性目的,其使用(通常至少现有的)ECC控制器403 (也称为ECC检测和纠正单元)。在操作过程中,ECC控制器403纠正或示出一个比特和两个比特的错误。ECC控制器403与MBIST控制器401共同形成控制器305,而且正如本发明人已发现的那样,在应用期间二者组合在一起对于在线测试来说是理想的。
[0045]出于正常测试的目的,在任何情况下,MBIST控制器401都允许对存储器301进行快速的写访问和读访问,而且ECC控制器403对于检测任何数据字的可能错误都是理想的。为了避免像常规系统中执行的耗时的用户代码或用户数据303的复制,MBIST控制器401可以立刻运行以读取存储器301中的全部存储内容,并且使用ECC控制器403来找到其中可能包含的错误,然后找到并登记错误字,例如,登记在存储了错误字的地址的错误跟踪寄存器405中。在测试存储器301期间,这种错误跟踪寄存器405或错误跟踪存储器405可以例如用作一种迷你缓存器以通过在每次启动周期后软件安装的方式来屏蔽(mask)该迷你缓存中错误的SRAM字。
[0046]本发明人发现,通过只校验存储在存储器301上的用户数据303的方式,所谓的硬固定型错误可能不会被发现,因为错误可能在这个位置具有与用户比特相同的极性。这就是为什么在通常的MBIST测试中,在对不同数据内容和极性的若干测试在存储器中运行后,仍然会发现这些错误。由于用户数据303是不可预测的或者不遵循特定的方案,并且尤其应该在存储器301中被保持,该原理对于用户数据303来说当然是不可能的。这就是为什么本发明的实施例使用下述发现:即当对用户数据执行第一次ECC校验并对反转的用户数据执行进一步的ECC校验时,可以发现硬固定型错误的问题。因此,本发明的实施例在读取的时候使全部用户字反转,并在下一循环将其写回到存储器301中。在第一次运行中,这可以对存储器301中的所有字执行。这时,所有特定极性的错误可以同时被ECC控制器403发现。现在,程序第二次启动,使用完全反转的存储器内容(反转的用户数据),并且再次,所有当前反转的字用MBIST控制器401读取出来,并且ECC控制器403再次被用于错误检测、并将每个地址的字反转、并以完全反转的方式写回去。第二次运行之后,现在存储器的原始内容(执行第一次ECC校验之前,存储在存储器301中的原始的用户数据303)已被再现,而且还有,所有的硬和软的一比特和两比特错误,以及甚至依赖于算法的所有三比特固定型错误都被找到(具有两种极性的错误),并且存储器的内容因而被完全获得。因此,在对用户数据303和反转的用户数据执行了两次错误纠正码校验之后,存储器301的内容仍被保持,如用户数据没有被改变过那样。因此,像常规系统中执行的对存储器301内容的麻烦且耗时的复制不再是必要的。这样,每个地址正好被读取两次并且被写入两次。比这更多的时间是没有必要的,并且非常快速的测试是可能的(例如,比经由CPU穿过低速总线快很多),而且至少为其他目的存在的硬件、面积和功耗可以用于执行根据方法100的测试。该过程对于在应用期间对存储器的频繁的定期测试是理想的。
[0047]从图4可以看出,用户数据303可以包括应用数据和ECC数据。ECC数据通常是基于特定ECC码直接从应用数据导出的。在本发明实施例中,ECC数据可以基于对称ECC码,从而使得在没有错误的存储器的情况下,针对用户数据(其应该是没有错误的)的ECC校验的结果和针对反转的用户数据的进一步错误校验的结果相等。
[0048]换句话说,本发明实施例使用对称ECC码用于非破坏性测试。这种可反转码在两个极性的情况下产生相同的结果(单一故障、双重故障)。ECC码应该具有这样的特点:逐位反转的时候,每个码字再次变为码字。如果需要的话,通过巧妙的码选择和可能的一比特扩展,这是可能的。
[0049]通过反转所有比特,可以找到任何类型的用户代码/数据中的固定型故障(failure)(与通常测试图案相比,其不受影响)。因此,使用对称ECC码给出了反转全部用户数据的可能性,这使得也能够发现这些存在的、但由于与故障极性相同的用户数据的屏蔽而(在没有反转的情况下)不可检测到的固定型故障。
[0050]这种对称ECC码的一个示例是对称的缩短(shortened) Hsiao ECC码。因此,至少本发明的一些实施例使用对称的缩短Hsiao ECC码,基于该码执行ECC校验和进一步的ECC校验。
[0051]图2示出了根据本发明实施例的用于测试存储器的方法200的流程图。图2所示的方法200是方法100的一个更加详细的示例,包括了附加的步骤。
[0052]方法200示出了在应用正常运行期间,如何测试存储器的测试,该存储器包括用户数据303,用户数据303是该应用的程序代码的一部分。
[0053]方法200包括步骤201,基于存储在存储器301中的用户数据(例如,用户数据303)运行应用,其中用户数据303是该应用的程序代码的至少一部分,或者用户数据303被该应用(的至少一部分)访问。
[0054]在方法200的进一步的步骤203中,在步骤101对用户数据303执行(第一次)ECC校验之前,应用被停止或者至少该应用中的一部分被停止,应用中的该部分访问存储器中将被测试的一部分(地址或地址范围)。在应用被停止或者至少部分地被停止之后,在存储器301中存储用户数据303的一个或多个地址处,对用户数据303执行(方法100的)步骤101-107以测试存储器301。或者,换句话说:完全关闭应用是没有必要的,因为停止在将被测试的存储器301或SRAM的一个或多个这样的地址执行的核/外围装置,或者使核执行来自一些将不被测试的其他物理SRAM或存储器301的其他地址的一些其他应用、然后设置测试、并且将其启动并运行,这是足够的。
[0055]正如已经描述的那样,在步骤101对用户数据303执行第一次错误纠正码校验期间,用户数据303可以用MBIST控制器401来读取,并通过ECC控制器403来校验。
[0056]此外,在使存储在存储器中的用户数据反转的步骤103期间,使用MBIST控制器401将反转的用户数据写入存储器。本发明人已发现,这样的MBIST控制器401能够容易地用于从存储器301读取用户数据303、并用于将反转版本的用户数据303写回到存储器301,而无需耗时地将用户数据303复制到另一个(例如,分离的)存储器。
[0057]此外,在步骤105中执行进一步的(或第二次)ECC校验期间,使用相同的MBIST控制器401读取反转的用户数据。然后(在步骤105),使用ECC控制器403对反转的用户数据进行错误校验。
[0058]此外,在步骤107中使反转的用户数据反转期间,使用MBIST控制器401将用户数据重新写入到存储器中。因此,在其中上面提到的用户数据303中的软错误和硬错误被找到并且最终都被纠正的第一次错误纠正码校验和第二次错误纠正码校验之后,存储器的内容被保持,而无需任何耗时的用户数据复制。
[0059]在步骤101和105中由ECC控制器403发现的错误被纠正,或至少被标记(或登记)在错误跟踪寄存器405中。通常,软件或应用访问错误跟踪寄存器405,并处理被标记的错误,并且甚至可以确定这些错误是否是可纠正的。
[0060]根据进一步的实施例,借助于错误跟踪寄存器405也可能发生对发现的错误的屏蔽,使得对存储器中的错误字的访问被屏蔽并且可用冗余数据被使用。
[0061]此外,在步骤103中,反转的用户数据可以被写入到存储器301中与用户数据303被读取的地址(在步骤101中)相同的地址。而且,在步骤107中,用户数据303被重新写入到存储器301中与用户数据303 (以及反转的用户数据)被读取的地址相同的地址。
[0062]此外,用户数据303通常被存储在将被测试的存储器301中的预定地址或地址范围处。
[0063]为了测试全部的存储器301 (存储器301的所有地址或全部地址范围),针对将被测试的存储器301的多个其他地址或地址范围重复步骤101、103、105和107。
[0064]换句话说,通常在连续的步骤101、103、105和107的一个循环中,被测试的用户数据303关联于存储器301中的特定地址或地址范围。在已经测试了该地址或地址范围之后,在步骤107对反转的用户数据反转之后,可以(例如,使用MBIST控制器401中的状态机)增加将被测试的存储器301的地址。
[0065]因此,方法200可以包括可选步骤205,使用状态机来增加将被测试的存储器的地址。总之,控制器305可以被配置来连续测试(同一)存储器的不同地址。
[0066]MBIST控制器401可以被进一步配置用于从存储器301中的预定地址读取用户数据303、将反转的用户数据写入到该预定地址、从该预定地址读取反转的数据、以及将用户数据303重新写入到该预定地址。因此,如上面已经描述的,对存储器301中的相同地址执行连续执行的步骤101-107。在这些步骤101-107已经被执行并且在预定地址处存储器301已经被测试之后,MBIST控制器401可以增加将被测试的存储器301的地址。为此,MBIST控制器401可以包括上面提到的状态机,用于在用户数据303被重新写入到预定地址之后增加地址。在将被测试的存储器301的地址增加之后,针对存储器301的增加的地址,控制器305可以重新启动对存储器301的测试,使得对存储器301的增加的地址再次执行步骤101、103、105和107。该过程可以重复进行,直到存储器301的所有地址都已经被测试为止。
[0067]在存储器301的全部地址都被测试之后,或者至少在存储用户数据303的全部地址都被测试之后,应用或者应用中被停止的部分可以继续,其中所述用户数据303是所述应用的程序代码的一部分、或者被所述应用或该应用的被停止的部分访问。因此,用户数据并不一定是应用的程序代码的一部分,而也可以是被应用访问的更复杂的数据(因为程序代码通常可以从非易失性存储器重新加载,但这种数据不可以)。
[0068]因此,方法200包括使应用继续的步骤207。
[0069]在执行ECC校验以及进一步的ECC校验的步骤101和105期间,ECC控制器403可以被配置用于纠正在存储在存储器301上的用户数据303 (以及反转的用户数据)中发现的错误,或者至少(如果错误不能被纠正,例如,固定型错误)在错误跟踪寄存器405中标记这些错误。
[0070]此外,如已经描述的,代替基于其执行ECC校验和进一步的ECC校验的特定错误图案,存储在存储器301中的用户数据303被用于执行ECC校验和进一步的ECC校验。因此,没有必要将用户数据复制到另一个存储器或存储器的另一个区域、以及将特定的错误图案写入到存储器301中用户数据303被存储的区域。因此,相比于使用这种特殊错误图案来执行ECC校验的常规系统,在对存储在存储器中的用户数据303执行ECC校验之前,存储器301中的内容被保持(并且不被特定的错误图案替代)。因此,可以对下述用户数据303执行ECC校验和进一步的ECC校验:在ECC校验之前运行的应用是基于该用户数据303执行的,而且在存储器被测试之后,基于该用户数据303继续所述应用。需要指出的是,对于存储器的若干测试,用户数据303可能改变,因为用户数据303取决于用户(或应用)而不取决于ECC校验。
[0071]本发明实施例因此在读取以及随后的仅接着的反转写回时执行两次(用户数据303的)反转。此外,本发明实施例可以使用现有的MBIST控制器401、现有的ECC控制器403、以及用户代码/用户数据,来在应用期间进行在线测试,其中具有完整的用户数据获取而不用换出或换入用户数据。此外,本发明实施例能够发现软和硬的一比特、二比特和三比特错误,并且可选择地也可以使得能够纠正软错误,例如通过附加的软件和错误跟踪寄存器,诸如在安全应用中无论如何会存在的错误跟踪寄存器405。
[0072]相比于复制用户数据和用户代码的概念,可以实现非常快速的测试,因为完全不需要用户数据的交换和复制。本发明实施例因此对于在应用期间对存储器进行频繁测试以获取正常的CPU性能的安全应用是理想的。而且,根据本发明的一些实施例,使用可反转对称ECC码,其在使数据字和码字反转时在ECC控制器或ECC解码器403中产生相同的结果(对于单一故障和双重故障)。
[0073]存储器系统400以及方法100和200的功能可概括为以下几点。MBIST控制器401使用状态机(例如,计数器大概是在存储器上产生连续地址的最简单的实施方式)控制存储器301,以及在读取存储器301 (来自存储器301的用户数据303)期间,ECC控制器或ECC解码器403检测错误。错误的地址被写入错误跟踪寄存器405。而且,用户数据被反转并被写回。该读取和反转写入的过程将被重复,以便最终原始数据(原始的用户数据303)被存储到存储器301。作为一个示例,对称的缩短Hsiao ECC码对于检测两种极性的错误并且在任何给定的用户数据的情况下都是有利的。因此,本发明实施例可以实施这样的对称的缩短 Hsiao ECC 码。
[0074]此外,用户数据(例如,程序代码或用户特定的存储数据)被保持,而无需在测试存储器之前交换用户数据。因此,测试是非常快速的,因为不必先将用户数据/代码移动到另一个地方,然后再对其进行测试。因此,实施例能够实现全速的硬件测试,而没有测试前后来回移动用户数据的大的设置任务,而且在应用中只使用软件测试,没有失去全速测试(这对查找只在应用全速运行时才出现的故障是很重要的)。换句话说,在本发明实施例中,存储器被读取地与在正常应用中一样快,这使得即使只在全速、连续地与正常应用访问一样快时出现的故障也能被发现。这一点通过中央控制器的总线将是不可能的,而本发明实施例使用MBIST控制器可以实现,MBIST控制器允许与正常应用或周围硬件一样快的全速访问。
[0075]根据进一步的实施例,方法100、200可以由存储器的进一步的ECC测试扩展,以实现甚至更高的测试覆盖。作为一个示例,该方法可以包括以下更进一步的步骤:
[0076]使用户数据的每个偶比特反转;
[0077]对具有反转的偶比特的用户数据执行第三次ECC校验;
[0078]使具有反转的偶比特的用户数据反转以恢复存储器中的用户数据;
[0079]使用户数据的每个奇比特反转;
[0080]对具有反转的奇比特的用户数据执行第四次ECC校验;
[0081]使具有反转的奇比特的用户数据反转以恢复存储器中的用户数据。
[0082]在这里,是奇比特还是偶比特先被反转并被测试并不重要。
[0083]因此,如所描述的那样,进一步的测试相邻关系(像常规的MBIST测试利用各种图案那样)也是可能的,例如通过仅仅使每隔一个比特(偶)反转、执行ECC校验、然后反转回去、并且然后对每个其余的比特(奇)进行相同的操作。这增加了更进一步的覆盖,从而不仅发现简单的固定型错误,而且发现更加复杂的相邻关系(例如,受串扰的影响或者具有电容或比特间短缺等等)。因此,在这种情况下,执行了四次运行(run)(完全反转两次,然后只反转偶比特两次并且然后只反转奇比特两次)。
[0084]进一步地,基于对用户数据或用户数据的部分执行两次反转的原理,该概念可以被扩展。
[0085]换句话说,这当然可以用更多次运行来进一步细化(仍然快很多,并且非破坏性的),例如,像仅仅使每隔一个字完全反转、并反转回来。因此,可以实现与非常简单的真实测试模式几乎一样好的覆盖。此外,可以发现比用简单的扫描(SCAN)测试更多的错误。
[0086]方法100、200可以通过这里关于装置描述的任何特征和功能进行补充,并且可以使用该装置的硬件组件来实现
[0087]尽管一些方面已在装置的上下文中进行了描述,但清楚的是,这些方面也表示对应方法的描述,其中块或装置对应于方法步骤或方法步骤的特征。类似地,在方法步骤的上下文中描述的方面也表示对应块或对应设备的项或特征的描述。一些或所有的方法步骤可以通过(或使用)硬件设备,例如像,微处理器、可编程计算机或电子电路来执行。在一些示例中,某一个或更多的最重要的方法步骤可以由这样的设备来执行。
[0088]示例可以以硬件或软件来实现,这取决于特定的实施要求。实施方式可以使用数字存储介质来执行,例如软盘、DVD、蓝光碟、CD、ROM、PROM、EPROM、EEPROM或FLASH存储器,具有在其上存储的电子可读控制信号,其与可编程计算机系统协作(或能够协作)使得相应方法被执行。因此,该数字存储介质可以是计算机可读的。
[0089]一些示例包括具有电子可读控制信号的数据载体,其能够与可编程计算机系统协作,以使得本文所描述的方法之一被执行。
[0090]通常,可以将示例实现为具有程序代码的计算机程序产品,当计算机程序产品在计算机上运行时,该程序代码可操作用于执行方法之一。例如,该程序代码可以存储在机器可读载体上。
[0091]其他示例包括用于执行本文所描述的方法之一的、存储在机器可读载体上的计算机程序。
[0092]换句话说,当计算机程序在计算机上运行时,示例性方法的实施方式因此是,具有程序代码的、用于执行本文所描述的方法之一的计算机程序。
[0093]示例性方法的进一步的实施方式因此是数据载体(或数字存储介质,或计算机可读介质),包括记录在其上的、用于执行本文所描述的方法之一的计算机程序。数据载体、数字存储介质或经记录的介质通常是有形的和/或非临时性的。
[0094]示例性方法的进一步的实施方式因此是,表示计算机程序的、用于执行本文所描述的方法之一的数据流或信号序列。例如,该数据流或信号序列可以被配置成通过数据通信连接来传输,如经由因特网传输。
[0095]进一步的示例包括处理装置,例如计算机或可编程逻辑设备,被配置成或适于执行本文所描述的方法之一。
[0096]进一步的示例包括具有安装在其上的、用于执行本文所描述的方法之一的计算机程序的计算机。
[0097]进一步的示例包括装置或系统,被配置成将用于执行本文所描述的方法之一的计算机程序传输(例如,电子地或光学地)到接收机。接收机可以是,例如,计算机、移动设备、存储器设备或类似设备。该装置或系统可以,例如,包括文件服务器,用于将计算机程序传输到接收机。
[0098]在一些示例中,可编程逻辑设备(例如,现场可编程门阵列)可用来执行部分的或所有的本文所描述的方法的功能。在一些示例中,现场可编程门阵列可与微处理器协作以执行本文所描述的方法之一。一般地,方法优选地由任意硬件装置来执行。
[0099]上面描述的示例仅仅是说明性的。应当理解,本文所描述的布置及细节的修改和变化对于本领域其他技术人员将是显而易见的。因此,旨在于仅受待决专利的权利要求的范围限制,而不受通过本文示例的描述或解释所呈现的具体细节的限制。
[0100]尽管每项权利要求仅仅回引一个单一的权利要求,但是本公开内容也涵盖权利要求的任何可想到的组合。
【权利要求】
1.一种用于测试存储器的方法,所述方法包括: 对存储在所述存储器中的用户数据执行错误纠正码校验(ECC校验); 使存储在所述存储器中的所述用户数据反转; 对存储在所述存储器中的反转的用户数据执行进一步的ECC校验;以及 使存储在所述存储器中的所述反转的用户数据反转,以恢复所述存储器中的所述用户数据。
2.根据权利要求1所述的方法,进一步包括: 基于存储在所述存储器中的所述用户数据运行应用,所述用户数据是所述应用的程序代码的至少一部分或者至少被所述应用的一部分访问。
3.根据权利要求2所述的方法, 其中在对所述用户数据执行所述ECC校验之前,所述应用被停止,或者在对所述用户数据执行所述ECC校验之前,至少所述应用中访问用户代码的部分被停止;并且 其中所述应用或者所述应用的被停止的部分在所述用户数据恢复之后继续。
4.根据权利要求1-3中的一项所述的方法, 其中所述用户数据包括应用数据和ECC数据,其中所述ECC数据基于对称ECC码,使得在没有错误的存储器的情况下,针对所述用户数据的所述ECC校验的结果和针对所述反转的用户数据的所述进一步的ECC校验的结果相等。
5.根据权利要求1-4中的一项所述的方法, 其中所述用户数据包括应用数据和ECC数据,其中所述ECC数据基于对称缩短的HsiaoECC 码。
6.根据权利要求1-5中的一项所述的方法, 其中在执行所述ECC校验和所述进一步的ECC校验期间,发现的错误被存储在错误跟踪寄存器中。
7.根据权利要求1-6中的一项所述的方法, 其中在执行所述ECC校验期间,使用存储器内建自测试控制器(MBIST控制器)来读取所述用户数据; 其中在使所述用户数据反转期间,使用所述MBIST控制器将所述反转的用户数据写入到所述存储器中; 其中在执行所述进一步的ECC校验期间,使用所述MBIST控制器来读取所述反转的用户数据;以及 其中在使所述反转的用户数据反转期间,使用所述MBIST控制器将所述用户数据写入到所述存储器中。
8.根据权利要求7所述的方法, 其中所述反转的用户数据被写入到所述存储器中与所述用户数据被读取的地址相同的地址;以及 其中所述用户数据被重新写入到所述存储器中与所述用户数据被读取的地址相同的地址。
9.根据权利要求1-8中的一项所述的方法, 其中所述用户数据被存储在将被测试的所述存储器的预定地址处;并且 其中针对将被测试的所述存储器的多个其他地址重复所述错误纠正码校验的执行、所述用户数据的反转、所述进一步的ECC校验的执行和所述反转的用户数据的反转。
10.根据权利要求9所述的方法,进一步包括: 在所述反转的用户数据的所述反转之后,使用状态机来增加将被测试的所述存储器的所述地址。
11.根据权利要求1-10中的一项所述的方法, 其中在对存储在所述存储器中的所述用户数据执行所述ECC校验之前,所述存储器中的内容被保持。
12.根据权利要求1-11中的一项所述的方法, 其中在执行所述ECC校验和所述进一步的ECC校验期间,在存储在所述存储器上的所述用户数据中发现的错误被纠正,或至少被标记在错误跟踪寄存器中。
13.—种存储器系统,包括: 在其上存储有用户数据的存储器;以及 控制器; 其中所述控制器被配置用于通过以下操作来测试所述存储器: 对存储在所述存储器中的所述用户数据执行错误纠正码(ECC)校验; 使存储在所述存储器中的所述用户数据反转; 对存储在所述存储器中的反转的用户数据执行进一步的ECC校验;以及使存储在所述存储器中的所述反转的用户数据反转,以恢复所述存储器中的所述用户数据。
14.根据权利要求13所述的存储器系统, 其中所述控制器包括存储器内建自测试(MBIST)控制器和ECC控制器; 其中所述MBIST控制器被配置用于从所述存储器读取所述用户数据和所述反转的用户数据;并且 其中所述ECC控制器被配置用于,对由所述MBIST控制器从所述存储器读取的所述用户数据执行所述ECC校验,并且对由所述MBIST控制器从所述存储器读取的所述反转的用户数据执行所述进一步的ECC校验。
15.根据权利要求14所述的存储器系统, 其中所述控制器被配置用于随后测试所述存储器的不同地址;并且其中所述MBIST控制器被进一步配置用于从所述存储器中的预定地址读取所述用户数据、将所述反转的用户数据写入到所述预定地址、从所述预定地址读取所述反转的用户数据、以及将所述用户数据重新写入到所述预定地址。
16.根据权利要求15所述的存储器系统, 其中所述MBIST控制器进一步包括状态机,用于在所述用户数据被重新写入到所述预定地址之后,增加所述地址;并且 其中所述控制器被配置用于对存储在所述存储器中的增加的地址处的用户数据执行所述错误纠正码校验、所述用户数据的反转,所述进一步的ECC校验和所述反转的用户数据的反转。
17.根据权利要求13-16中的一项所述的存储器系统, 其中所述用户数据是存储在所述存储器上的应用的程序代码的一部分。
18.根据权利要求13-17中的一项所述的存储器系统, 其中所述用户数据包括应用数据和ECC数据,其中所述ECC数据基于对称ECC码,使得在没有错误的存储器的情况下,针对所述用户数据的所述ECC校验的结果和针对所述反转的用户数据的所述进一步的ECC校验的结果相等。
19.一种存储器系统,包括: 在其上存储有用户数据的存储器,所述用户数据是存储在所述存储器上的应用的程序代码的一部分; 存储器内建自测试(MBIST)控制器;以及 错误纠正码(ECC)控制器; 其中所述MBIST控制器被配置用于从所述存储器的预定地址读取所述用户数据、使所述用户数据反转、将反转的用户数据写入到所述存储器的所述预定地址、从所述存储器的所述预定地址读取所述反转的用户数据、使所述反转的用户数据反转、以及将所述用户数据重新写入到所述存储器的所述预定地址; 其中所述ECC控制器被配置用于对由所述MBIST控制器从所述存储器读取的所述用户数据执行ECC校验,并且对由所述MBIST控制器从所述存储器读取的所述反转的用户数据执行进一步的ECC校验;并且 其中所述用户数据包括应用数据和ECC数据,其中所述ECC数据基于对称ECC码,使得在没有错误的存储器的情况下,针对所述用户数据的所述ECC校验的结果和针对所述反转的用户数据的所述进一步的ECC校验的结果相等。
20.一种非瞬态存储介质,在其上存储有计算机程序,所述计算机程序具有当在计算机上运行时用于执行下述方法的程序代码,所述方法用于测试存储器,包括: 对存储在所述存储器中的用户数据执行错误纠正码校验(ECC校验); 使存储在所述存储器中的所述用户数据反转; 对存储在所述存储器中的反转的用户数据执行进一步的ECC校验;以及使存储在所述存储器中的所述反转的用户数据反转,以恢复所述存储器中的所述用户数据。
【文档编号】G11C29/12GK104240768SQ201410260935
【公开日】2014年12月24日 申请日期:2014年6月12日 优先权日:2013年6月13日
【发明者】K·奥伯伦德 申请人:英飞凌科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1