用于合成测试数据流的状态事件的系统、方法和设备的制作方法

文档序号:6608920阅读:154来源:国知局
专利名称:用于合成测试数据流的状态事件的系统、方法和设备的制作方法
技术领域
本发明涉及用于合成测试数据流的状态事件的系统、方法和设备。
背景技术
测试数据,例如由对多个被测试器件(DUT)执行测试的测试器所产生的测试数据,报告个体数据事件和将所述数据事件放入适当的上下文中的状态事件。现在的测试器和数据处理设备被证实具有高可靠性,然而,仍然会出现导致测试数据包含错误的问题。

发明内容
在一个实施方式中,一种方法,包括A)访问测试数据流,所述测试数据包括1)更新当前测试状态的多个状态事件和2)其间散布着所述多个状态事件中的一些状态事件的多个数据事件;B)当访问所述多个数据事件中的一个数据事件时,确定所述数据事件是否与所述当前测试状态一致;C)如果所述数据事件与所述当前测试状态一致,则发布所述数据事件;并且D)如果所述数据事件与所述当前测试状态不一致,则1)缓存多个附加数据事件;并且2)如果所述多个附加数据事件隐含在访问所述数据事件之前状态事件应当已被接收并且状态改变应当已发生,则i)遵照所述被隐含的状态改变,合成并发布所述应当被接收的状态事件;ii)根据所述被隐含的状态改变更新所述当前测试状态;并且iii)然后,发布所述数据事件。
在另一个实施方式中,一种用于合成测试数据流的状态事件的系统,包括A)可操作用于访问测试数据流的接口,所述测试数据包括1)更新当前测试状态的多个状态事件和2)其间散布着所述多个状态事件中的一些状态事件的多个数据事件;B)数据存储器;和C)与所述接口和数据存储器通信的处理器,其可操作用于,1)当访问所述多个数据事件中的一个数据事件时,确定所述数据事件是否与所述当前测试状态一致;2)如果所述数据事件与所述当前测试状态一致,则发布所述数据事件;并且3)如果所述数据事件与所述当前测试状态不一致,则i)使所述数据存储装置缓存多个附加数据事件;并且ii)如果所述多个附加数据事件隐含在访问所述数据事件之前状态事件应当已被接收并且状态改变应当已发生,则a)遵照所述被隐含的状态改变,合成并发布所述应当被接收的状态事件;b)根据所述被隐含的状态改变更新所述当前测试状态;并且c)然后,发布所述数据事件。
在另一个实施方式中,一个或多个在其上存储有指令序列的机器可读介质,当机器执行所述指令序列时能够使机器执行下列操作A)访问测试数据流,所述测试数据包括1)更新当前测试状态的多个状态事件和2)其间散布着所述多个状态事件中的一些状态事件的多个数据事件;B)当访问所述多个数据事件中的一个数据事件时,确定所述数据事件是否与所述当前测试状态一致;C)如果所述数据事件与所述当前测试状态一致,则发布所述数据事件;并且D)如果所述数据事件与所述当前测试状态不一致,则1)缓存多个附加数据事件;并且2)如果所述多个附加数据事件隐含在访问所述数据事件之前状态事件应当已被接收并且状态改变应当已发生,则i)遵照所述被隐含的状态改变,合成并发布所述应当被接收的状态事件;ii)根据所述被隐含的状态改变更新所述当前测试状态;并且iii)然后,发布所述数据事件。
其它实施方式也被公开。


附图中示出了本发明的示例性实施例,其中图1示出了用于合成测试数据流的状态事件的第一示例流程图;图2示出了用于合成测试数据流的状态事件的第二示例流程图;以及图3示出了一种可操作用于执行图1和图2所示的步骤的系统。
具体实施例方式
测试器是用于对多个被测试的器件(DTUs)执行测试的高可靠性的设备,但是复杂的测试环境仍然会使测试器所产生的测试结果包含错误。例如测试数据流中被误放的数据事件。测试器产生包含状态事件和数据事件本身的测试数据流,所述状态事件例如用于给后续数据事件提供上下文。数据事件提供测试结果自身(例如,”pin14=3.2v”,”continuity=false”)并且可以是单个数据元素或复杂的数据结构。如果状态事件提供了给定的上下文而后续测试数据并不属于该上下文,则导致错误。当状态事件本应被接收并从而触发对于当前测试状态的更新,但是该状态事件并不存在于测试数据中时,将会发生另一潜在错误。
在不调整测试数据的情况下,如果数据事件在不合适的位置被测试数据的使用者(例如格式化者,分析者,报告者)所接收,例如当1)与不正确的状态事件相关联的数据事件被接收,或者2)没有任何相关联的状态事件的数据事件被接收时,则后面的测试数据将被认为是错误和不可用的。不可用的测试数据的量可能是后面的直至测试器被重启为止的所有测试数据,并且可能会出现在若干小时甚至若干天的测试中。
通过分析数据事件,测试数据可以被调整以修复多个错误数据事件以增加测试数据的利用。如果大部分测试数据丢失,则数据事件仍然可能被舍弃,但是更可能的情况是在将状态事件插入测试数据中的适当位置时的小“故障(glitch)”。那些与不正确的状态事件相关联的数据事件可以具有被合成并且在适当位置插入到测试数据中的合适的状态事件。因此,测试数据的使用者可以看到他们想要的测试数据。
图1示出了用于合成测试数据流的状态事件的第一示例流程图100。步骤102访问测试数据。步骤104确定该测试数据是否是数据事件,如果是,则进行步骤106,或者如果该测试数据不是数据事件(例如,状态事件),则流程图100结束。步骤106确定数据事件是否与当前测试状态相一致,如果是,则进行步骤108,如果不是,则进行步骤110。一旦从步骤106到达步骤108,步骤108发布与当前测试状态一致的数据事件。在步骤108发布数据事件之后,流程图100结束。
步骤110缓存附加数据事件,然后步骤112确定附加数据事件是否隐含状态事件丢失并且状态改变应当已发生,如果是,则进行步骤114,如果不是,则流程图100结束。步骤114合成状态事件。步骤116发布状态事件。步骤118根据所隐含的状态事件更新当前测试状态,并且步骤108发布包括数据事件和在步骤110中被缓存的附加数据事件在内的数据事件。
步骤110缓存附加数据事件。在一个实施例中,固定数目的数据事件被缓存,该固定数目与设计的选择有关。在另一实施例中,在状态事件之前的全部数据事件都被缓存。在又一实施例中,步骤110和步骤112被反复执行,其中一个附加数据事件被缓存并且被估计,以确定在给定的可靠度级别内能否得出一个关于状态事件是否丢失的结论。如果达不到该可靠度级别,则第二个附加数据事件被缓存。该循环一直重复到确定了足够的可靠度级别或者确定该可靠度级别肯定能够达到为止。在后面的情况中,数据事件可以被认为是不隐含状态事件丢失并且处理结束。
在一个实施例中,如图所示,用于发布状态事件的步骤116在用于更新当前测试状态的步骤118之前。在另一实施例中,步骤116和118被颠倒。
流程图100可以被重复,例如直至没有未访问的测试数据为止。
图2示出了用于合成测试数据流的状态事件的第二示例流程图200。步骤202访问测试数据。步骤204确定该测试数据是否是数据事件,如果是,则执行步骤210,如果不是,则该测试数据是状态事件并执行步骤206。
步骤206更新当前测试状态,然后步骤208发布状态事件。在另一个实施方式中,步骤206和208被颠倒。
步骤210确定当前测试状态是否已知。如果当前测试状态未知,即当数据事件在当前测试状态的初始设置之前被接收时,则执行步骤222。如果状态已知,则执行步骤212。
如果步骤210确定当前测试状态是未知的,则执行步骤222来确定数据事件是否指示当前测试状态,如果是,则执行步骤224,如果不是,则执行步骤214。
回到步骤212来确定数据事件是否与当前测试状态相一致,如果是,则步骤218发布该数据事件,如果不是,则执行步骤214来缓存附加数据事件。
在缓存附加数据事件之后,步骤216确定附加数据事件是否隐含状态事件丢失并且状态更新应当已发生。
步骤214缓存多个数据事件。在一个实施例中,固定数目的数据事件被缓存,该固定数目与设计的选择有关。在另一实施例中,以一个状态事件结束的全部数据事件被缓存。在又一实施例中,步骤214和216重复进行,其中一个附加数据事件被缓存并且被估计,以确定在所给定的可靠度级别内能否得出一个关于数据事件是否丢失的结论。如果达不到该可靠度级别,则第二个附加数据事件被缓存。该循环一直重复到确定了足够的可靠度级别或者确定该可靠度肯定可以达到为止。在后面的情况中,则数据事件被认为是不隐含状态事件丢失并且处理结束。
如果步骤216确定附加事件不隐含丢失的状态事件并且状态更新应当没有发生,则执行步骤220来清除数据事件。在一个实施例中,步骤220通过从测试数据中删除数据事件来清除数据事件。在另一实施例中,步骤220省略了发布数据事件的步骤,从而允许之前用于存储数据事件的存储器和/或存储器空间可以用于其它用途。
如果步骤216确定附加事件确实隐含丢失的状态事件并且状态更新应当已发生,则步骤224合成状态事件,步骤226发布状态事件,步骤228根据所隐含的状态事件更新当前测试状态,并且步骤218发布数据事件。如果经缓存步骤214执行到步骤218,则步骤218发布数据事件和在步骤214中缓存的附加数据事件,否则步骤218发布已经被确定为与当前测试状态一致(参见步骤212)或指示当前测试状态(参见步骤222)的数据事件。在一个实施例中,如图所示,步骤226在步骤228之前。在另一实施例中,步骤226与228被颠倒。
在一个实施例中,步骤216根据附加事件中的状态事件来确定附加事件隐含丢失的状态事件。附加事件中的状态事件清楚地指示第二个状态改变并且隐含丢失的状态事件。
步骤218发布数据事件,步骤208和步骤226发布状态事件。在一个实施例中,发布步骤包括向测试数据的使用者传送要被发布的数据事件或状态事件。在另一实施例中,发布步骤存储数据事件和状态事件,然后这些事件可以被所存储的数据事件和状态事件的使用者所访问。在另一实施例中,发布步骤设置属性(例如,标记、索引、指针)来指示数据事件和状态事件中的一些是有效的。该属性可以被结合到上述一些数据事件和状态事件之中,或者与这些数据事件和状态事件分开。使用者随后访问该属性来确定哪些数据事件和状态事件将被使用。
步骤202访问测试数据。在一个实施例中,步骤202可以读取测试数据。在另一实施例中,步骤202接收测试数据。
步骤216确定附加数据事件是否隐含状态事件以及状态更新是否应当已发生。在一个实施例中,与附加数据事件相关联的属性确定是否发生所隐含的状态改变。例如,数据事件本身内的数据可能隐含状态改变,例如作为参数测试事件(例如电压、电流强度、电阻、计数器、时间延迟等的测量值)的数据事件可以指示一个状态,而作为功能测试事件(例如总结,真/假指示符)的数据事件可以指示其他类型的状态。在另一实施例中,该附加属性可以更清楚地隐含状态改变。例如,一个数据事件可以包括清楚地标识状态的属性,并且后续的数据事件清楚地标识另一状态。
图3示出了可操作用于执行图1和图2所示的步骤的系统300。接口302访问测试数据。在一个实施例中,该被访问的测试数据来自对DUT 310执行测试的测试器308。在另一实施例中,测试器308是多个测试器。在又一实施例中,DUT310是多个DUT。
在另一实施例中,被访问的测试数据来自测试数据存储器312。测试数据存储器312存储有来自于例如对DUT 310执行测试的测试器308的测试数据。
处理器304与接口302和数据存储器306通信。当访问一个数据事件时,处理器304确定该数据事件是否与当前测试状态相一致,参见前面所述的步骤106和步骤212。如果处理器304确定该数据事件与当前测试状态一致,则发布该数据事件。参见前面所述的步骤108和步骤218。
如果处理器304确定该数据事件与当前测试状态不一致,则处理器304使数据存储器306缓存多个附加数据事件。参见前面所述的步骤110和步骤214。如果处理器304确定多个附加数据事件隐含在访问一个数据事件之前状态事件应当已被接收并且状态改变应当已发生(参见前面所述的步骤112和步骤216),则遵照所隐含的状态改变,合成并且发布应当已被接收的状态事件(参见前面所述的步骤114、116和步骤224、226)。处理器304根据状态事件更新当前测试状态。参见前面所述的步骤118和步骤228。然后发布数据事件。参见前面所述的步骤108和步骤228。
在另一实施例中,处理器304执行状态机程序。该状态机确定从一个测试状态到另一测试状态的可接受的转换,所述转换由当前测试状态的值来确定。例如,该状态机器可以使数据存储器306缓存测试数据并确定被缓存的测试数据是否包括1)有效的状态事件,或2)有效的被隐含的状态事件。当确定状态事件或被隐含的状态事件有效时,允许相应地更新当前测试状态。如果状态事件或者被隐含的状态事件无效,则舍弃在下一个有效的状态事件或被隐含的状态事件之前的数据事件。
例如,如果有效的状态事件把当前测试状态更新为“组(lot)”,并且被缓存的状态事件或被隐含的状态事件将把当前测试状态更新为“器件”,则该状态机将允许该更新。然而,如果当前测试状态为“测试组(testsuite)”,并且即将出现的状态事件为“晶圆”,则该转换是无效的并且更新被拒绝。在另一实施例中,在无效更新之前的全部测试数据均被清除。在又一实施例中,清除所有测试数据,直到出现有效的状态事件为止。
权利要求
1.一种方法,包括访问测试数据流,所述测试数据包括1)更新当前测试状态的多个状态事件和2)其间散布着所述多个状态事件中的一些状态事件的多个数据事件;当访问所述多个数据事件中的一个数据事件时,确定所述数据事件是否与所述当前测试状态一致;如果所述数据事件与所述当前测试状态一致,则发布所述数据事件;并且如果所述数据事件与所述当前测试状态不一致,则缓存多个附加数据事件;并且如果所述多个附加数据事件隐含在访问所述数据事件之前状态事件应当已被接收并且状态改变应当已发生,则(A)遵照所述被隐含的状态改变,合成并发布所述应当已被接收的状态事件;(B)根据所述被隐含的状态改变更新所述当前测试状态;并且(C)随后,发布所述数据事件。
2.如权利要求1所述的方法,还包括,如果所述多个附加数据事件未隐含状态事件应当已被接收并且状态改变应当已发生,则清除所述数据事件。
3.如权利要求1所述的方法,还包括当访问所述多个状态事件中的一个状态事件时,根据所述状态事件更新所述当前测试状态;并且发布所述状态事件。
4.如权利要求1所述的方法,其中发布所述数据事件还包括使所述数据事件对于所述测试数据的使用者是可用的。
5.如权利要求1所述的方法,其中所述数据事件在所述当前测试的初始更新之前被访问,所述方法还包括确定所述数据事件是否指示状态;并且如果所述数据事件指示所述状态,则合成与所述被指示的状态相对应的状态事件;根据所述被指示的状态更新所述当前测试状态;并且随后,发布所述被合成的状态事件并发布所述数据事件。
6.如权利要求1所述的方法,其中访问所述测试数据还包括接收所述测试数据。
7.如权利要求1所述的方法,其中确定所述多个附加数据事件是否隐含状态改变还包含确定所述附加数据事件是否包含属性,其中所述属性与不同于所述当前测试状态的测试状态相一致。
8.一种用于合成测试数据流的状态事件的系统,包括,可操作用于访问测试数据流的接口,所述测试数据包括1)更新当前测试状态的多个状态事件和2)其间散布着所述多个状态事件中的一些状态事件的多个数据事件;数据存储器;和与所述接口和数据存储器通信的处理器,其可操作用于,当访问所述多个数据事件中的一个数据事件时,确定所述数据事件是否与所述当前测试状态一致;如果所述数据事件与所述当前测试状态一致,则发布所述数据事件;并且如果所述数据事件与所述当前测试状态不一致,则(A)使所述数据存储装置缓存多个附加数据事件;并且(B)如果所述多个附加数据事件隐含在访问所述数据事件之前状态事件应当已被接收并且状态改变应当已发生,则(I)遵照所述被隐含的状态改变,合成并发布所述应当被接收的状态事件;(II)根据所述被隐含的状态改变更新所述当前测试状态;并且(III)随后,发布所述数据事件。
9.如权利要求8所述的系统,其中所述处理器还可操作用来执行下列操作,如果所述多个附加数据事件未隐含状态事件应当已被接收并且状态改变应当已发生,则清除所述数据事件。
10.如权利要求8所述的系统,其中所述处理器还可操作用来执行下列操作,当访问所述多个状态事件中的一个状态事件时,A)根据所述状态事件更新所述当前测试状态;并且B)发布所述状态事件。
11.如权利要求8所述的系统,其中所述处理器可操作用于通过使所述数据事件和数据事件对于所述测试数据的使用者是可用的来发布数据事件和状态事件。
12.如权利要求8所述的系统,其中所述处理器可操作用于通过使所述接口输出所述数据事件和数据事件来发布数据事件和状态事件。
13.如权利要求8所述的系统,其中在所述当前测试状态的初始更新之前,当访问所述数据事件时,所述处理器还可操作用于确定所述数据事件是否指示状态;并且如果所述数据事件指示所述状态,则合成与所述被指示的状态相对应的状态事件;并且根据所述被指示的状态更新所述当前测试状态;并且随后,发布所述被合成的状态事件并发布所述数据事件。
14.如权利要求8所述的系统,其中所述处理器通过进一步操作用于确定所述附加数据事件是否包含属性来确定所述多个附加数据事件是否隐含状态改变,其中所述属性与不同于所述当前测试状态的测试状态相一致。
15.如权利要求8所述的系统,还包括至少一个测试器,用于生成与对多个被测试器件的测试相关联的测试数据,所述测试数据可由所述接口访问。
16.如权利要求8所述的系统,还包括测试数据存储装置,其包括先前生成的测试数据,所述测试数据可作为所述测试数据流由所述接口访问。17.在其上存储指令序列的一个或多个机器可读介质,当所述指令序列被机器执行时,所述机器执行如下操作访问测试数据流,所述测试数据包括1)更新当前测试状态的多个状态事件和2)其间散布着所述多个状态事件中的一些状态事件的多个数据事件;当访问所述多个数据事件中的一个数据事件时,确定所述数据事件是否与所述当前测试状态一致;如果所述数据事件与所述当前测试状态一致,则发布所述数据事件;并且如果所述数据事件与所述当前测试状态不一致,则缓存多个附加数据事件;并且如果所述多个附加数据事件隐含在访问所述数据事件之前状态事件应当已被接收并且状态改变应当已发生,则(A)遵照所述被隐含的状态改变,合成并发布所述应当已被接收的状态事件;(B)根据所述被隐含的状态改变更新所述当前测试状态;并且(C)随后,发布所述数据事件。
18.如权利要求17所述的机器可读介质,还包括用于执行以下操作的指令,所述操作即如果所述多个附加数据事件未隐含状态事件应当已被接收并且状态改变应当已发生,则清除所述数据事件。
19.如权利要求17所述的机器可读介质,还包括用于执行以下操作的指令,所述操作即当访问所述多个状态事件中的一个状态事件时,根据所述状态事件更新所述当前测试状态;并且发布所述状态事件。
20.如权利要求17所述的机器可读介质,其中所述用于发布所述数据事件的指令还包括用于使所述数据事件对所述测试数据的使用者可用的指令。
21.如权利要求17所述的机器可读介质,所述指令还包括用于执行以下操作的指令当在所述当前测试的初始更新之前访问所述数据事件时,确定所述数据事件是否指示状态;并且如果所述数据事件指示所述状态,则A)合成与所述被指示的状态相对应的状态事件;B)根据所述被指示的状态更新所述当前测试状态;并且C)随后,发布所述被合成的状态事件并发布所述数据事件。
22.如权利要求17所述的机器可读介质,其中所述用于确定所述多个附加数据事件是否隐含状态改变的指令,还包括用于确定所述附加数据事件是否包含属性的指令,其中所述属性与不同于所述当前测试状态的测试状态相一致。
全文摘要
本发明提供了用于合成测试数据流的状态事件的系统、方法和设备。在一个实施例中,一种方法包括如下步骤A)访问测试数据流,该测试数据流包括1)多个状态事件和2)其间散布着所述多个状态事件的多个数据事件;B)当访问一个数据事件时,确定该数据事件是否与当前测试状态相一致;C)如果不一致,则1)缓存多个附加数据事件,并且2)如果所述多个附加数据事件隐含在访问数据事件之前状态事件应当已被接收并且状态改变应当已发生,则i)遵照所隐含的状态改变,合成并发布应当已被接收的状态事件,ii)更新当前测试状态,iii)然后,发布数据事件。
文档编号G06F11/22GK101075257SQ200710101689
公开日2007年11月21日 申请日期2007年4月5日 优先权日2006年4月7日
发明者瑞德·F·哈郝, 罗伯特·S·库尔曼 申请人:韦瑞吉(新加坡)私人有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1