KR20070112203A - 병렬 시험 시스템에서의 시험을 스케줄링하는 방법 및시스템 - Google Patents
병렬 시험 시스템에서의 시험을 스케줄링하는 방법 및시스템 Download PDFInfo
- Publication number
- KR20070112203A KR20070112203A KR1020077021360A KR20077021360A KR20070112203A KR 20070112203 A KR20070112203 A KR 20070112203A KR 1020077021360 A KR1020077021360 A KR 1020077021360A KR 20077021360 A KR20077021360 A KR 20077021360A KR 20070112203 A KR20070112203 A KR 20070112203A
- Authority
- KR
- South Korea
- Prior art keywords
- test
- devices under
- under test
- flow
- vertices
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 429
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000007704 transition Effects 0.000 claims description 25
- 230000007246 mechanism Effects 0.000 claims description 8
- 230000003362 replicative effect Effects 0.000 claims 3
- 238000010998 test method Methods 0.000 abstract description 4
- 230000000875 corresponding effect Effects 0.000 description 9
- 238000013459 approach Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000009969 flowable effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 101100444142 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) dut-1 gene Proteins 0.000 description 1
- 238000001787 Wald–Wolfowitz test Methods 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/319—Tester hardware, i.e. output processing circuits
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/319—Tester hardware, i.e. output processing circuits
- G01R31/31903—Tester hardware, i.e. output processing circuits tester configuration
- G01R31/31907—Modular tester, e.g. controlling and coordinating instruments in a bus based architecture
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/319—Tester hardware, i.e. output processing circuits
- G01R31/31903—Tester hardware, i.e. output processing circuits tester configuration
- G01R31/31912—Tester/user interface
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
병렬 시험 시스템에서의 복수의 DUT들을 시험하는 효율적이고 저비용의 방법이 개시된다. 일 실시예에 있어서, 하나 또는 그 이상의 벤더 하드웨어 모듈을 통해 시험 제어기에 연결된 적어도 두 개의 피시험 장치를 포함하는 병렬 시험 시스템에서의 시험을 스케줄링하는 방법에 있어서, 미리 정해진 시험 흐름 내에 배열된 복수의 시험을 포함하는 시험 계획을 수취하는 단계 - 상기 미리 정해진 시험 흐름은 방향성 그래프(directed graph) 내에 배열된 복수의 시험을 포함하며, 각각의 시험은 상기 방향성 그래프 내에서 정점(vertex)으로서 배열됨 -, 상기 시험 계획에 따라 실행시에 시험 실행 스케줄을 결정하는 단계 - 상기 시험 실행 스케쥴은 상기 적어도 두 개의 피시험 장치의 현재 상태에 따라 실행될 다음 차례의 시험의 세트를 식별하고, 상기 다음 차례의 시험의 세트는 서로 다른 피시험 장치에서 수행될 서로 다른 시험을 포함함 -, 및 상기 시험 실행 스케줄을 이용하여 상기 적어도 두 개의 피시험 장치를 시험하는 단계를 포함한다.
병렬 시험, 다중 DUT, 방향성 그래프, 벤더 하드웨어 모듈, 피시험 장치.
Description
본 발명은, 반도체 시험을 위한 자동화된 시험 장비(automated test equipment; ATE) 분야에 관한 것이다. 특히, 본 발명은 병렬 시험 시스템에서의 시험을 스케줄링하는 방법 및 시스템에 관한 것이다.
병렬 시험은, 복수의 피시험 장치(device-under-test; DUT)에서 동시에 시험을 수행함으로써 대응하는 비용의 증가가 없이 쓰루풋(throughput)을 증가시키는 기존의 ATE 기술이다. 저비용 ATE가 시험 비용을 감소시키기 위한 해결책으로서 종종 장려되었다. 병렬 시험은 다른 방향의 접근으로, 2003년 11월 발간된 '제12회 아시안 테스트 심포지움(Asian Test Symposium)'의 361페이지 내지 368페이지에 게재된 제이 리보어(J. Rivoir)의 "시험 비용의 감소: 병렬 시험인가 저비용 ATE인가?(Lowering Cost of Test: Parallel Test or Low-Cost ATE?)"에서, 저비용 ATE보다 더 효율적으로 시험 비용을 감소시키는 것으로 알려졌다. 이는, 병렬 시험은 ATE의 금전적 비용뿐만 아니라 시험의 비용에 기여하는 모든 요인들을 감소시키기 때문이다. 2002년 2월에 발간된 '퓨쳐 패브 인터내셔널(Future Fab International)' 12권에 게재된 피 코크란(P. Cochran) 등의 "논리 장치의 대규모 병렬 시험을 위한 최종 시험 처리 전략의 비교(Comparison of Final Test Handling Strategies for Massively parallel Test of Logic Devices)"에, 테스트 벤치마킹 데이터에 대한 분석이 개시되어 있다. 상기 분석은 병렬성(parallelism)의 최대화가 시험의 비용에 크게 영향을 준다고 지적하고 있다. 코크란에 따르면, 네 개의 장치를 각각 순차적으로 시험하는 대신 병렬로 시험함으로써, 시험 비용의 50%에 이르는 감소가 관찰되었다.
스캔 기반(scan-based) 기술이나 기존의 ATE 병렬 시험 기술을 통한 효율적인 다중-DUT 시험의 달성에 대해 많은 관심이 있었다. 스캔 기반 기술의 일례가, 2002년 10월 발간된 '2002 IEEE 국제 시험 회의(IEEE International Test Conference)'의 1198 페이지에 게재된, 피 나이(P. Nigh)의 "스캔 기반 시험: 주문형 반도체(ASIC)/소비자용 제품을 시험하기 위한 유일한 실용적 해결책(Scan-based Testing: The Only Practical Solution for Testing ASIC/Consumer Products)"에 기재되어 있다. 기존의 ATE 병렬 시험 기술의 예가, 제이 웨이머(J. Weimer)의 "패턴 기반 시험: 다중-사이트 아날로그 및 복합-신호 장치 시험에서의 병렬 시험 효율에의 열쇠(Pattern Based Test: Key to Parallel Test Efficiency in Multi-Site Analog and Mixed-Signal Device Testing)"에 기재되어 있고, 또한 제이 리보어(J. Rivoir)의 "병렬 시험이 단지 저가일 뿐인 테스터보다 더 효율적으로 시험의 비용을 감소시킨다(Parallel Test Reduces Cost of Test More Effectively than Just a Cheaper Tester)"에 기재되어 있는데, 상기 양 논문은 2005년 4월 발간된 '제7회 유럽 제조업 시험 회의(the 7th European Manufacturing Test Conference)'에서 발표되었다. 따라서, 많은 ATE 제조자가 현재 어떤 형태로든 병렬 다중-DUT 시험을 지원하고 있다.
예를 들면, 병렬 시험은 아도반테스토 코퍼레이션(Advantest Corporation)의 T2000 시스템에 의해 상기 T2000의 다중-사이트 제어기 환경을 통해 지원된다. 도 1에 도시된 바와 같이, 시스템 제어기(System Controller; SysC) 102가 복수의 사이트 제어기(Site Controller; SiteC) 104를 동시에 구동하는 동안, 각 SiteC 104는 벤더 하드웨어 모듈 106을 통해 하나의 DUT 108의 제어를 담당한다. 그러한 다중-SiteC 환경은, 전형적으로 시스템-온-칩(System-on-Chip; SOC) 장치에서 발견되는, 고속 푸리에 변환(fast Fourier transform; FFT) 분석과 같은, 집약적이고 시간 소모적인 데이터 분석을 요구하기 때문에, SOC 장치 시험 애플리케이션에 보다 적합하다.
그러나, 더 큰 핀 계수(pin counts)를 갖는 높은 가치의 장치를 제조하는데 드는 추가적인 비용을 감당할 수 있는 수요자층은 보다 제한적이다. 많은 집적 회로(integrated circuit; IC) 장치는 저렴하고, 더 작은 핀 계수를 갖는다. 더 작은 장치는 더 적은 하드웨어 자원을 요구하고, 일반적으로, 이는 보다 큰 DUT들보다 더 많은 수의 더 작은 DUT들이 동시에 시험될 수 있음을 의미한다. 각각의 더 작은 DUT의 시험이 SiteC 전체를 필요로 한다면, ATE 시스템의 비용 및 시험 비용 은 그에 따라 증가할 것이다. 이러한 비용 대 쓰루풋의 트레이드오프(trade-off)는 단일 SiteC 기반의 병렬 테스트 시스템을 더욱 바람직하게 한다. 그러므로, 단일 SiteC를 이용하여 병렬 시험을 수행할 필요성이 있고, 병렬 시험 시스템에서 단일 SiteC에 연결된 복수의 DUT들을 시험함에 있어서 효율적으로 시험을 스케줄링할 필요성이 있다.
병렬 시험 시스템에서 복수의 피시험 장치를 시험하는 효율적이고 저비용의 방법이 개시된다. 일 실시예에 있어서, 하나 또는 그 이상의 벤더 하드웨어 모듈을 통해 시험 제어기에 연결된 적어도 두 개의 피시험 장치를 포함하는 병렬 시험 시스템에서의 시험을 스케줄링하는 방법은, 미리 정해진 시험 흐름 내에 배열된 복수의 시험을 포함하는 시험 계획을 수취하는 단계 - 상기 미리 정해진 시험 흐름은 방향성 그래프(directed graph) 내에 배열된 복수의 시험을 포함하며, 각각의 시험은 상기 방향성 그래프 내에서 정점(vertex)으로서 배열됨 -, 상기 시험 계획에 따라 실행시에 시험 실행 스케줄을 결정하는 단계 - 상기 시험 실행 스케쥴은 상기 적어도 두 개의 피시험 장치의 현재 상태에 따라 실행될 다음 차례의 시험의 세트를 식별하고, 상기 다음 차례의 시험의 세트는 서로 다른 피시험 장치에서 수행될 서로 다른 시험을 포함함 -, 및 상기 시험 실행 스케줄을 이용하여 상기 적어도 두 개의 피시험 장치를 시험하는 단계를 포함한다.
다른 실시예에 있어서, 병렬 시험 시스템은, 시험 제어기, 상기 시험 제어기에 연결된 하나 또는 그 이상의 벤더 하드웨어 모듈, 및 각각의 하드웨어 모듈에 병렬로 연결된 적어도 두 개의 피시험 장치를 포함한다. 상기 병렬 시험 시스템은, 미리 정해진 시험 흐름 내에 배열된 복수의 시험을 포함하는 시험 계획을 수취하는 수단 - 상기 미리 정해진 시험 흐름은 방향성 그래프(directed graph) 내에 배열된 복수의 시험을 포함하며, 각각의 시험은 상기 방향성 그래프 내에서 정점(vertex)으로서 배열됨 -, 상기 시험 계획에 따라 실행시에 시험 실행 스케줄을 결정하는 수단 - 상기 시험 실행 스케쥴은 상기 적어도 두 개의 피시험 장치의 현재 상태에 따라 실행될 다음 차례의 시험의 세트를 식별하고, 상기 다음 차례의 시험의 세트는 서로 다른 피시험 장치에서 수행될 서로 다른 시험을 포함함 -, 및 상기 시험 실행 스케줄을 이용하여 상기 적어도 두 개의 피시험 장치를 시험하는 수단을 더 포함한다.
본 발명의 이하 기술될 특징들 및 이점들뿐만 아니라 그 추가적인 특징들과 이점들은, 이하의 도면들과 함께 본 발명의 실시예들에 대한 상세한 설명을 읽은 후 더 명확하게 이해될 수 있을 것이다.
도 1은, DUT-당(per)-단일 SiteC 구성으로 복수의 DUT들을 병렬 시험하는 시스템을 도시한다.
도 2a는, 본 발명의 일 실시예에 따른, 단일 SiteC로 복수의 DUT들을 병렬 시험하는 시스템을 도시한다.
도 2b는, 본 발명의 일 실시예에 따른, 하나 또는 그 이상의 SiteC로 복수의 DUT들을 병렬 시험하는 또 다른 시스템을 도시한다.
도 3a는, 본 발명의 일 실시예에 따른 시험 흐름 그래프를 도시한다.
도 3b는, 본 발명의 일 실시예에 따른, 도 3a의 시험 흐름 그래프를 통해 DUT들을 시험하는 방법을 도시한다.
도 4는, 본 발명의 일 실시예에 따른 시험 흐름 시스템 구조의 구현을 도시한다.
병렬 시험 시스템에서의 시험을 스케줄링하는 방법 및 시스템이 제공된다. 이하의 기재는, 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자가 본 발명을 만들고 사용할 수 있도록 기재되어 있다. 특정 실시예 및 적용에 대한 기재는 단지 예로서 제공된다. 본 명세서에 기재된 예들의 다양한 변경 및 조합이 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자들에게 자명할 것이다. 따라서, 본 발명은 기재되고 도시된 예들로 한정되도록 의도된 것이 아니며, 본 명세서에서 개시된 원리와 특징이 나타내는 가장 넓은 권리 범위가 부여되어야 한다.
도 2a는 본 발명의 일 실시예에 따른 단일 SiteC로 복수의 DUT들을 병렬 시험하는 시스템을 도시한다. 상기 시스템은, 시스템 제어기 202, 사이트 제어기 204, 복수의 벤더 하드웨어 모듈 206 및 그에 대응하는 복수의 DUT 208을 포함한 다. 시험 헤드(test head) 210은 복수의 DUT들을 보유할 수 있다. 도 2b는 본 발명의 일 실시예에 따른, 하나 또는 그 이상의 사이트 제어기(Site Controller; SiteC)로 복수의 DUT들을 병렬 시험하는 또 다른 시스템을 도시한다. 상기 시스템은 시스템 제어기 222, 복수의 사이트 제어기 224, 복수의 벤더 하드웨어 모듈 226, 및 그에 대응하는 DUT 그룹 228을 포함하는데, 각 DUT 그룹은 하나 또는 그 이상의 개별적인 DUT 229를 포함할 수 있다. 시험 헤드 230은 복수의 DUT를 보유할 수 있다.
일 실시예에 있어서, 상기 시스템 제어기 및 상기 사이트 제어기(들)은, 복수의 지리적인 위치에 있는 복수의 컴퓨터를 갖는 분산 컴퓨팅 시스템(distributed computing system)에 의해 구현될 수 있다. 다른 실시예에 있어서, 상기 시스템 제어기 및 상기 사이트 제어기는 하나의 컴퓨터에 의해 구현될 수 있는데, 이를 시험 제어기라고도 한다. 상기 시험 제어기 및 복수의 벤더 하드웨어 모듈은 이하에서 기재된 병렬 시험 시스템에서의 시험을 스케줄링하는 수단을 제공한다. 상기 시험을 스케줄링하는 수단은, 미리 정해진 시험 흐름 내에 배열된 복수의 시험을 포함하는 시험 계획을 수취하는 수단, 상기 시험 계획에 따라 실행시에 시험 실행 스케줄을 결정하는 수단, 및 상기 시험 실행 스케줄을 이용하여 적어도 두 개의 DUT를 시험하는 수단을 포함한다.
도 1의 구성은, 하나의 SiteC만을 포함하고 있으므로, DUT 사이트들에 걸친 시험 활동의 소프트웨어 시퀀싱(sequencing)을 필요로 한다. 이하의 단락에서, 상기 벤더 하드웨어 모듈들이 효율적인 병렬 시험 시스템으로 통합되기 위해 지원해 야 하는 특징들을 기술한다.
병렬 시험 시스템은, 여러 개의 DUT의 시험을 동시에 제어하기 위해 단일 SiteC를 이용하는 것과 관련한 오버헤드를 감소시키기 위해, 다음과 같은 하드웨어 특징을 이용한다.
- DUT들에 걸친 패턴 데이터의 자동 복제 : 당해 특징은 사용자가 단일 DUT만에 대한 패턴을 생성하여 공급할 수 있게 하고, 테스터 운영 체제(tester operating system; TOS)가 단일 DUT만에 대한 상기 패턴 데이터를 전송할 수 있게 한다. 상기 벤더 하드웨어 모듈 제어 소프트웨어는 개방형 구조 시험 시스템 모듈 접속 인에이블러(module connection enabler; MCE)의 브로드캐스트(broadcast) 성능을 이용하여, SiteC 구획 내의 상기 DUT들을 원조하는 모든 자원들에 동시에 당해 데이터를 전달할 것이다.
- DUT들에 걸친 시험 조건의 자동 복제 : 당해 특징은 사용자가 단일 DUT에 대한 테스트 조건(즉, 자원 설정)을 규정할 수 있게 하고, 상기 TOS는, 상기 벤더 하드웨어 모듈 기능을 통해, 모든 DUT 사이트들에 대해 동시에 상기 테스트 조건을 복제한다. 당해 특징은 모든 DUT들에 대한 시험 조건을 한번에 하나씩 순차적으로 로딩하는 것과 관련한 오버헤드를 감소시킨다. 이러한 방식은 DUT에 특유하지 않은(non-DUT-specific)(즉, 동일한) 자원 설정의 로딩을 위해 사용되는 한편, 만약 필요하다면, 서로 다른 DUT들에 대해 서로 다른 자원 설정 값을 허용하기 위해 내부적인 TOS 지원이 이루어진다는 점에 주의하여야 한다.
- DUT에 특유한(DUT-specific) 시험 결과의 하드웨어 축적 : 당해 특징이 없 는 경우, 어느 DUT들이 패스(pass)이고 어느 DUT들이 페일(fail)인지를 결정하기 위해, 소프트웨어가 모든 DUT들에 걸쳐서 각각의 핀에 대해, 핀 당(per-pin) 결과를 회수하여 분석하여야 한다. 수백 또는 수천의 실행된 패턴들에 대해 이러한 과정을 반복하는 것은 상기 시스템에 심각한 오버헤드를 가중시킨다. 따라서, 하드웨어가, DUT에 특유한 핀 당 시험 결과의 축적, 및 시험되는 각각의 DUT의 패스/페일 상황(status)의 검출과 저장을 지원한다.
단지 단일 SiteC에서의 병렬 DUT 시험의 오버헤드를 감소시키도록 하는, 상기 벤더 하드웨어 모듈에 대한 상기와 같은 요건들 외에도, 벤더 하드웨어 모듈 제어 소프트웨어로부터 하드웨어 상태 제어에 필요한 지원이 더 이루어질 수 있다. 병렬 시험 동안 시험 흐름을 실행하는 과정에서, 이미 페일이라고 판단되고 (적어도 소정의 기간 동안) 더이상 시험될 필요가 없는 어느 DUT가, "거부(rejected)"될(또는, 어떠한 이유로든 간에 상기 흐름으로부터 일시적으로 "배제(excluded)"되거나, 또는 "보류(on-hold)"로 배치될) 필요가 있다고 판단되는 시나리오를 고려한다. 상기 시스템은 그러한 DUT들을 테스터 하드웨어로부터 전기적으로 절연시켜 전력 공급 전압이 그러한 DUT들에게 더 이상 인가되지 않고 입력 자극(input stimulus)이 그들에게 제공되지 않도록 해야할 필요가 있다. 또한, 상기 시험 흐름으로 복귀되어야 하는 배제된(즉, 보류된) DUT들에 대해서는, 시험을 허용하는 전기적 조건이 재설정되어야 할 것이다. 따라서, 만약 필요하다면, 상기 벤더 하드웨어 모듈 제어 소프트웨어는 TOS는 그러한 작업을 완수할 수 있도록 하는 적합한 메소드(method)들을 제공해야 한다.
다음 단락은 단일 SiteC에서의 병렬 DUT 시험, 다중-DUT 시험의 제한 하에서의 시험 흐름, 및 DUT들이 상기 시험 흐름을 통해 진행되는 때 경험하는 상태 전이에 대한 방법론에 대해 기재한다. 이는 단일 DUT 경우와는 본질적으로 상이하다.
시험 흐름은 사용자의 시험 계획의 임계적인 요소이자, 그것을 통해 사용자 정의의(user-defined) 시험이 개방형 구조 시험 시스템에서 실행되는 매개이다. 개방형 구조 시험 시스템에 관한 상세한 설명이, 2004년 2월 6일 출원된 미국 출원 제60/447,839호 "반도체 집적 회로를 위한 시험 프로그램의 개발을 위한 방법 및 구조(Method and Structure to Develop a Test Program for Semiconductor Integrated Circuits)" 및 2004년 5월 22에 출원된 미국 출원 제60/573,577호 "개방형 구조 시험 시스템에서의 소프트웨어 개발(Software Development in an Open Architecture Test System)"에 의해 제공되며, 상기 양 출원들은 본 발명의 양수인에게 양도되었다.
개방형 구조 시험 시스템에 있어서, 사용자 시험은 시스템 정의된(system-defined) 인터페이스 ITest를 구현하는데, 이는 시스템 정의된 인터페이스 IFlowable로부터 파생되는 것이다. 흐름 객체(object)는 유한 상태 기계(finite state machine)를 캡슐화한다. 상기 흐름 객체는, IFlowable 객체를 구동하고 그 다음 다른 흐름 항목(item)으로 전이하는 복수의 흐름 항목들을 포함한다. 흐름 항목은 Flow라는 유한 상태 기계 내에서의 상태를 정의한다. 상기 흐름 항목은 시험 흐름 그래프에서의 항목이고, 테스터들 상에서 흐름 항목은 시험이다. IFlowable의 실행은 IFlowable 인터페이스를 구현하는 객체의 실행을 포함한다. IFlowable 인터페이스를 구현하는 전형적인 객체는 시험이며, 상기 시험은 그 자체로 ITest 및 Flow를 구현한다. 요약하면, 시험 흐름은 Test 및 다른 Flow들을 구동하고, 그 후 다른 흐름 항목으로 전이하는 흐름 항목들을 포함한다. 상기 전이는 사용자에 의해 프로그래밍 되고, IFlowable로부터의 반환 결과에 기초한다. 상기 흐름 항목은 또한, IFlowable의 구동으로부터의 다양한 반환 결과에 대해 사용자-맞춤된 루틴을 호출할 기회를 제공한다.
SiteC-당-단일 DUT 환경에서, 상기 시험 흐름의 실행 중 소정의 주어진 시간에는 단일 흐름 항목만이 상기 DUT 상에서 시험(즉, IFlowable)을 실행할 수 있다. 그러나, 병렬 시험 동안에는, 특정 시험의 실행에 대해 서로 다른 DUT들이 서로 다른 결과를 산출하므로, 흐름 상태 전이에 의해 지시되는 바에 따라, 상기 DUT들 중 몇몇은 다른 몇몇의 DUT들과는 다른 흐름 항목으로 진행되는 일이 일어날 수 있다. 이는 소정의 짧은 시간에, DUT 세트마다 다른 시험이 실행되어야 하는 상황을 이끌어 낸다. 대다수의 경우에 있어서 (그리고 전형적으로 디지털 애플리케이션에 있어서), 동일한 벤더 하드웨어 모듈은 동시에 서로 다른 두 개의 시험을 구동할 수 없을 것이다. 이는, 본래 단일 DUT 환경에서 존재하는 이하의 제한이, 다중-DUT 환경에서 시험들을 실행하는 동안 유효하다는 것을 나타낸다. 즉, 시험 흐름을 실행하는 동안 소정의 주어진 짧은 시간에, 단일 흐름 항목만이 활성화(즉, 상기 항목의 IFlowable을 실행)될 수 있다. 이하의 논의는, 이러한 규준이 병렬 DUT 시험 환경에서 만족된다는 전제를 기초로 한다.
일 실시예에 있어서, 흐름 객체의 단일 인스턴스(instance)는 그 자체로 복 수의 DUT들이 병렬로 시험되고 있다는 사실을 인식하고, 단일 흐름 항목만이 적합한 시험 실행 스케줄링 메소드를 채택함에 의해 활성화될 수 있다는 규준을 만족한다. 상기 스케줄링 메소드의 적합한 설계와 함께, 이러한 접근은 특정 흐름 항목을 통한 시험 실행을 필요로 하는 DUT들이 최대한 많이 수용된다는 것을 보증할 수 있다. DUT에 대한 시험 실행의 직렬화는 하드웨어 자원의 한계가 존재할 때 여전히 일어날 수 있다는 점을 주의하여야 한다.
단일 시험 흐름을 이용하는 병렬 시험 환경에서, 특정 DUT가 소정의 주어진 시간에 분류될 수 있는 카테고리 및 실행되고 있는 시험 흐름을 통한 진행과 관련하여 상기 DUT가 속할 수 있는 상태들을 정의하는 것은 유용하다. 이하는 특정 사이트 제어기에 특유한, DUT가 배치될 수 있는 카테고리이며, 상기 카테고리 중 소정의 것들은 흐름 실행 동안 동적으로 갱신된다.
- 정의된(Defined) : 당해 카테고리는 당해 SiteC에 대해 소켓 파일 내에서 정의된 모든 DUT들을 포함한다. 정의된(Defined) DUT 카테고리에의 소속자격은 시험 계획이 상기 소켓 파일을 이용하여 로딩되는 때에 결정되고, 상기 로딩된 시험 계획의 수명(lifetime) 동안 변경되지 않고 유지된다.
- 로딩된(loaded) : 당해 카테고리는 당해 SiteC에 대해 소켓 파일 내에서 정의되고 사용 가능한(enable)(즉, 사용 불능(disabled)이 아닌) DUT들을 포함한다. 소정의 주어진 시간에, 로딩된(Loaded) = 정의된(Defined) - {사용 불능(disabled) DUT}가 된다. 따라서, 로딩된(Loaded) 카테고리는, 예를 들면, 패키지 시험(이는 핸들러에 의해 제공됨)을 위해 로드보드(loadboard)상에 로딩된 모든 DUT들, 또는 프로버 카드(prober card)와 접촉(이는 웨이퍼 프로버 단계의 척-업(chuck-up)을 통해 이루어짐)한 모든 DUT들에 대응한다. 통상적으로, 로딩된 세트는 상기 로딩된 세트가 외부의 존재에 의해 명시적으로 변경되지 않는다면, 정의된 세트와 등가이다. 제조 시험 환경에 있어서, 예를 들면, 시험 계획을 각각 실행하기 전에도 사용자의 자동화 도구에 이러한 변화가 초래될 수 있다. 그러나, 일단 시험 계획 실행이 시작되면, 상기 로딩된 DUT 세트는 상기 시험 계획 실행이 계속되는 동안에는 변화되지 않는다.
- 측정가능한(Measurable) : 당해 카테고리는 상기 로딩된 세트로부터의, 아직 거부(즉, 더 이상의 시험으로부터 영구하게 제거됨)되지 않은 모든 DUT들을 포함한다. 이는 DUT들이 시험 과정 내에서 거부됨에 따라 흐름 실행 동안 동적으로 갱신된다. 소정의 주어진 시간에서, 측정가능한(Measurable) = 로딩된(Loaded) - {거부된(Rejected) DUT}가 된다.
- 보류된(On-Hold) : 당해 카테고리는 거부되지는 않았지만, 시험으로부터 일시적으로 중지(즉, 보류로 배치)된 DUT들을 포함한다. DUT들은, 상기 DUT들을 동시에 시험하기 위한 하드웨어 자원의 부족 때문에, 또는 흐름 실행 스케줄링 요건으로 인해, 복수의 DUT들 상에서 순차적으로 시험 실행을 수행하기 위해 보류로 배치될 필요가 있다. 전자의 경우, 사용자 시험 클래스(class)가 DUT들을 보류로 배치하는 반면, 후자의 경우 흐름 스케줄링 메소드가 DUT들을 보류로 배치한다. 따라서, 당해 카테고리에의 소속자격은 흐름 실행의 과정 동안 동적으로 갱신된다. 보류된(On-Hold) DUT들은 여전히 상기 측정가능한(Measurable) 카테고리에 속한다 는 점을 주의하여야 한다.
- 활성화된(Active) : 활성화된 DUT들의 카테고리는 시험 실행을 현재 경험하고 있는(또는 막 경험하려 하고 있는) 것을 말한다. 보류 또는 거부로 배치된 DUT 수의 변화는 흐름 실행의 과정 전반에 걸쳐서 자동으로 당해 세트에 영향을 준다. 소정의 주어진 시간에서, 활성화된(Active) = 측정가능한(Measurable) - 보류된(On-Hold)이 된다.
- 거부된(Rejected) : 이는 상기 로딩된 세트로부터, 더 이상의 시험으로부터 영구하게 제거된 DUT들의 카테고리이다. 당해 카테고리에의 소속자격은 사용자의 DUTFlowItem 정의에서의 결정 논리(decision logic)에 의해 정해진다.
상기 열거한 여섯 개의 카테고리 중, 세 개의 카테고리, 즉 '활성화된(Active)', '보류된(On-Hold)', 그리고 '거부된(Rejected)'은 실질적으로 주어진 DUT가 시험 흐름을 통해 진행됨에 따라 속할 수 있는 가능한 상태들인 것으로 간주된다. 이하 논의되는 바와 같이, 상기 시험 흐름은 이러한 상태들을 병렬 시험 환경에서 DUT 실행을 스케줄링하면서 광범위하게 이용한다.
상기한 바와 같이, 시험 흐름은 유한 상태 기계를 나타낸다. 이러한 논의를 위해, 시험 흐름을 가시화하는 다른 편리한 방식은 방향성 그래프에 의하는 것인데, 상기 방향성 그래프에서 각각의 정점은 흐름 항목을 나타내고, 상기 흐름 항목은 실행될 시험을 캡슐화하고, 각각의 방향성 변(directed edge)은 흐름 실행이 소스 흐름 항목으로부터 목적 흐름 항목으로 이루어져야 하는 전이를 나타내며, 상기 목적 흐름 항목은 상기 소스 흐름 항목의 시험 실행으로부터의 반환 결과의 값에 기초한다.
시험 흐름 그래프는 구조적으로 약하게 연결되어 있다는 점, 즉 시험 흐름 그래프 내에 고립되고 다른 어떤 정점으로부터도 도달될 수 없는 정점은 없다는 점을 주의하여야 한다. 또한, 개방형 구조 시험 시스템에서의 시험 흐름은 IFlowable 그 자체이기 때문에, 상기 흐름 그래프 내의 각각의 흐름 항목 정점은 다른 시험 흐름을 또한 캡슐화할 수 있다는 점을 주의하여야 한다. 나아가, 모든 시험 흐름 그래프들은 흐름 실행을 위한 진입점(entry point)인 자연적 소스 정점을 포함한다는 점을 주의하여야 한다. 최상위-수준(top-level) 흐름은 또한 상기 흐름 실행을 위한 종료점(exit point)인 자연적 이출(sink) 정점을 포함한다(삽입된 흐름들은 호출부(caller)로 복귀함). 이러한 두 개의 특수한 정점들은 흐름 항목이 아니고, 당해 흐름에 의해 시험되는 모든 DUT들이 거쳐야 하는 중요한 특이점을 나타낸다.
도 3a는 본 발명의 일 실시예에 따른 시험 흐름 그래프를 도시한다. 도 3a에 도시된 바와 같이, 상기 시험 흐름 그래프는, 진입 노드(시작), 종료 노드(끝), 및 캡슐화를 하는 흐름 항목들을 통해 여섯 개의 시험들 A, B, C, D, E와 F를 포함하는 방향성 그래프이다. 변에 붙여진 부호는 시험(당해 방향성 변에 대한 소스 정점)으로부터의 반환 결과를 나타내는데, 상기 반환 결과는 상기 흐름 실행을 다음 차례의 시험(당해 변에 대한 목적 정점)으로 전이하게 한다. 따라서, 예를 들면, 시험 A를 실행한 후, 만약 반환 상황이 "1", "2", 또는 "3"이라면, DUT는 다음으로 각각 시험 B, 시험 C, 또는 시험 E를 이용하여 시험 된다. 유사하게, 시험 B 에 대한 "1" 또는 "2"의 실행 결과는 시험 D가 다음으로 실행되도록 한다. 시험 "C"를 실행한 때의 "-1"의 결과는 DUT의 거부를 구성할 수 있는데, 이는 거부된 DUT에 대한 흐름의 끝으로의 전이를 직접적으로 야기한다. 유사하게, 시험 F를 실행한 때의 "0"의 결과 역시 DUT의 거부를 구성할 수 있고, 이 역시 거부된 DUT에 대한 흐름의 끝으로의 전이를 직접적으로 야기하는 반면, F를 실행한 때의 "1"의 결과는 거부를 지시하지는 않지만, 단지 구동할 시험이 남아있지 않기 때문에 끝으로의 전이를 또한 야기한다.
DUT-당-단일 SiteC 흐름과 병렬 시험을 위한 흐름 간의 근본적인 차이는, 흐름 그래프 내의 소정의 시험 정점을 실행함으로써 서로 다른 DUT들이 서로 다른 결과들을 산출할 수 있고, 그로 인해, 복수의 방향성 변 - 상기 방향성 변은, 각각의 DUT 세트에 대해 당해 특정 결과를 반환함 - 이 다음 차례에서 뒤따라 나올 필요가 있을 수 있는 상황을 야기한다는 점이다. 즉, 서로 다른 DUT들에 대해 동시에 실행되어야 하는 서로 다른 시험들이 있을 수 있다. 예를 들면, 단일 DUT인 경우에, 만약 시험 A가 결과 "2"를 반환한다면, 상기 흐름은 상기 흐름 상에서 다음 차례로 시험 C를 자동으로 실행한다. 그러나, 상기 흐름이 다섯 개의 DUT에서 시험 A를 실행하고, DUT 1과 5가 각각 결과 "1"을 반환한다면, 상기 DUT들은 다음으로 시험 B로 진행되어야 한다. 동시에, 만약 DUT 2와 4가 결과 "3"을 반환한다면, 상기 DUT들은 그 대신 E로 진행되어야 하고, 반면 DUT 3이 결과 "2"를 반환한다면, 상기 DUT는 다음으로 시험 C로 진행되어야 한다. 이로부터, 실행될 DUT들을 스케줄링할 필요성이 명백하게 드러난다.
상기 시험 흐름의 약하게 연결된, 방향성 그래프로서의 시각화는 실행을 위해 DUT들을 스케줄링하는 이하의 메소드를 제공한다:
1. 시험 흐름 그래프의 진입점으로부터 시작하면, 각 정점 v에서, 복수의 DUT 시험 결과가 지시하는 정점 세트가 다음 차례에서 순회되도록 결정, 즉 Vnext를 결정한다.
2. 다음 차례의 시험으로서, Vnext의 하위 세트(subset)로서 각 정점 v를 그에 대응하는 DUT들에 대해 실행한다. 다음 차례로 곧 실행될 정점 v에 대한 상기 DUT들이 활성화된(Active) 카테고리에 배치되는 동안, 정점들 {Vnext - v}에 대해 스케줄링된 모든 DUT들은 일시적으로 보류된(On-Hold) 카테고리에 배치된다는 점을 주의하여야 한다. 유사하게, Vnext 내의 다음 차례의 정점, 즉 v´이 실행을 위해 스케줄링된 때, v´에 대한 DUT들이 보류된 상태로부터 활성화된 상태로 전이하는 동안, 정점 v에 대한 이제 막 실행을 완료한 상기 DUT들은 활성화된 상태로부터 보류된 상태로 전이한다.
3. 마주친(또는 "방문된") 모든 정점에 대해, 모든 DUT들이 상기 시험 흐름에 대한 종료 정점에 도달할 때까지 상기 단계 1과 2를 반복한다. 상기 기술된 처리는 본질적으로 상기 소스 정점으로부터 도달할 수 있는(즉, 방향성 경로(directed path)상에 놓여진) 흐름 그래프의 모든 정점을 "방문"하는 것이고, 상기 방향성 경로는 각각의 방문된 정점에서의 시험 실행의 반환 값(들)에 의해 결정된다는 점을 주의하여야 한다. 이는, (약하게) 연결된 방향성 그래프 - 상기 방향성 그래프는 소스 정점에서 시작하고, 각각의 방문된 정점에서 외부로 향하는 선택 된 변들에 의해 제약을 받음 - 를 위한 소정의 완결된 순회 메커니즘(예를 들면, 깊이 우선 순회 또는 너비 우선 순회)이 DUT 실행 스케줄링을 위한 상기 알고리즘을 효율적으로 구현한다는 결과를, 직접적으로 이끌어낸다.
도 3b는 본 발명의 일 실시예에 따른 도 3a의 시험 흐름 그래프를 통해 DUT들을 시험하는 방법을 도시한다. 하나의 접근 방법으로서, 깊이 우선(depth-first) 순회 메커니즘이 채택된다. 표 1은 상기 시험 흐름 그래프의 깊이 우선 순회를 이용한 DUT 실행 스케줄링을 나타낸다. 당해 예에서, DUT 상태는 활성화된(a), 보류된(h), 그리고 거부된(r) 상태에 있다. 모든 측정가능한 DUT들은 그들이 시험 흐름에 들어올 때 활성화된 상태로 간주된다. 거부되지 않고 시험을 완료한 DUT들은 그들이 흐름 실행을 완료하는 때 활성화된 상태에 있는 것으로 간주된다. 이는 최상위 수준의(top-level) 시험 흐름에 대해서만 고려할 점이고, 또한 이는 활성화된 DUT들만을 보기를 원하는(이는, 상기 보류된(On-Hold) 상태는 단지 상기 흐름의 내부 스케줄링 활동을 위한 의미를 지닐 뿐이기 때문임) 외부의 사용자를 위한 흐름 실행의 통합 뷰(consolidated view)를 보존하기 위해 필수적일 뿐만 아니라, 소정의 사용자 규정된(user-specified) "말단 시퀀스(End-Sequence)"(이는 특별한 전압공급 강하 요건을 위한 것임)는 단지 활성화된 DUT들에 대해서만 유효하게 적용될 수 있기 때문에 또한 필수적이라는 점을 주의하여야 한다. 따라서, 표 1의 마지막 열은 상기 흐름이 보류된 DUT 1과 5를 상기 흐름이 종료되기 전에 활성화 상태로 어떻게 복구하는가를 나타낸다.
시험 실행 | DUT 결과 | 스케줄링된 다음 차례 시험 | DUT 상태 | ||||||||
1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 | ||
-(시작) | - | - | - | - | - | A | a | a | a | a | a |
A | 1 | 3 | 2 | 3 | 1 | B | a | h | h | h | a |
B | 2 | - | - | - | 1 | D | a | h | h | h | a |
D | 1 | - | - | - | 0 | F | a | h | h | h | h |
F | 1 | - | - | - | - | C | h | h | a | h | h |
C | - | - | -1 | - | - | E | h | a | r | a | h |
E | - | 1 | - | 1 | - | F | h | a | r | a | h |
F | - | 0 | - | 1 | - | -(끝) | a | r | r | a | a |
각 열에 있어서, 주어지는 상기 DUT 상태들은 상기 열에서 상기 시험의 실행(상기 "시험 실행" 행에 의해 부여됨) 후에 일어나는 스케줄링 결정에 기인하는 것들이다. 예를 들면, 시험 A가 실행되고 상기 흐름이 다음 차례로 시험 B를 스케줄링 한 후, 그 시점에서는 DUT 1과 5만이 시험 B에 의해 시험되도록 되어 있으므로, 상기 DUT들은 활성화된 채 유지되는 반면, DUT 2, 3 및 4는 보류된 상태로 배치된다. 시험 C로부터의 결과 "-1"은 그 DUT가 거부된다는 것을 지시하고, 이는 시험 F로부터의 결과 "0"도 마찬가지이다. C와 E 양쪽 모두로부터 "0"으로 부호가 붙여진 변들은, 상기 정점들에서 실행되는 어떤 DUT도 결과 "0"을 반환하지 않으므로, 전혀 순회되지 않는다. 따라서, 흐름 그래프 순회는 각 방문된 정점에서 유의미하게 선택될 수 있는, 외부로 나가는 변들에 의해 제약을 받는다.
표 1은 시험 F가 두 번 실행되는, 즉 DUT 1에 대해 한 번, 그리고 DUT 2와 4에 대해 또 한 번 실행되는 것을 나타낸다는 점을 주의하여야 한다. 이는 깊이 우선 선회에 기초하는 스케줄링에 기인하는 것이고, 이는 상기 세 DUT들 모두에서 F를 동시에 적용하기 위해 이용가능한 하드웨어 자원이 존재하는지 존재하지 않는지와는 무관하게 일어난다.
일반적으로, (약하게) 연결된, 방향성 그래프에 대한 완결된 시험 흐름 그래프 선회 메커니즘은 모든 정점들에 대한 방문(즉, 시험 흐름 그래프의 경우에 있어서, DUT들이 단독으로 수행할 수 있는 방향성 경로를 따르는 실행에 대해 모든 DUT들을 스케줄링함)을 보증하는 한편, 일반적인 방향성 흐름 그래프의 깊이 우선 및 너비 우선 검색 어느 쪽도, 동일한 정점이 한번 넘게 방문되지 않는다는 것을 확신하지는 않는다(즉, 동일한 테스트가 한번 넘게 실행되지 않는다는 것을 확신하지 않음). 그러나, 이러한 확신을 제공할 수 있는 것은, 단일 DUT를 시험하는 것 이상으로 병렬 DUT 시험의 오버헤드를 감소시키므로, 바람직하다.
다른 실시예에 있어서, DUT 실행 스케줄링은 위상기하학적 순서(topological order)를 기초로 수행될 수 있다. 다시 말해, 연결된 방향성 그래프가 위상기하학적 순서로 순회되면, 상기 확신이 실제로 주어질 수 있다. 연결된 방향성 그래프 G는, 만약 모든 정점 v에 대해 w가 G의 하위 세트인 정렬된 시퀀스 S로 모든 정점들을 열거할 수 있다면, 그리고 v에서 w로의 변이 있고 v가 순차적인 목록 S 내에서 w에 선행한다면, 위상기하학적 구분(sorting)을 따른다고 할 수 있다. 그러한 시퀀스 S를 연결된 방향성 그래프 G의 위상기하학적 정렬(ordering)이라고 한다. 위상기하학적 순서로 소스 정점으로부터 이출(sink) 정점으로 G를 순회하는 것은, 모든 정점들이 방문되는 동시에 한번 넘게 방문되는 정점은 없다는 것을 보증한다.
예를 들면, 도 3a에 도시된 시험 흐름 그래프의 정점들을 위상기하학적으로 정렬하면 그 결과로서 이하의 정렬된 시퀀스: {시작, A, B, C, E, D, F, 종료}가 만들어진다. 그러한 시퀀스는 반드시 유일하지는 않다는 점 - 실제로, 동일한 그래프의 다른 등가의 위상기하학적인 정렬은 {시작, A, B, C, D, E, F, 종료}임 - 을 주의하여야 한다.
상기 시험 흐름 그래프의 위상기하학적 정렬 {시작, A, B, C, E, D, F, 종류}을 따를 때의 DUT 실행의 스케줄링을 표 2에서 나타낸다.
시험 실행 | DUT 결과 | 스케줄링된 다음 차례 시험 | DUT 상태 | ||||||||
1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 | ||
-(시작) | - | - | - | - | - | A | a | a | a | a | a |
A | 1 | 3 | 2 | 3 | 1 | B | a | h | h | h | a |
B | 2 | - | - | - | 1 | C | h | h | a | h | h |
C | - | - | -1 | - | - | E | h | a | r | a | h |
E | - | 1 | - | 1 | - | D | a | h | r | h | a |
D | 1 | - | - | - | 0 | F | a | a | r | a | h |
F | 1 | 0 | - | 1 | - | -(끝) | a | r | r | a | a |
임의의 (약하게) 연결된, 방향성 그래프는 위상기하학적 순서를 반드시 갖지 않을 수도 있다. 실제로, 연결된 방향성 그래프에 대한 위상기하학적 정렬은 상기 그래프가 비환식(非環式)인 경우(즉 방향성 사이클을 포함하지 않음)에만 존재한다는 것을 알 수 있다. 정점들 v 중 적어도 하나에 대해, v와 동일하지 않은 적어도 하나의 다른 정점 w를 포함하는 v로부터의 방향성 경로가 존재하고, 상기 경로가 상기 v로 되돌아간다면, 연결된 방향성 그래프는 방향성 사이클을 포함한다고 할 수 있다. 따라서, 위상기하학적 순서에 기초하는 DUT 실행 스케줄링 메소드가 작동하기 위한, 시험 흐름 그래프에 대한 제한은, 상기 그래프에 방향성 사이클이 존재하지 않는 것이다.
상기 흐름 스케줄링 메커니즘을 시험 시스템에서 구현하는 것은 우선 시험 흐름 그래프의 위상기하학적 정렬을 시도하는 것으로; 만약 성공적이라면(즉, 방향성 사이클이 존재하지 않음) 위상기하학적 순서에 기초하는 DUT 실행 스케줄링을 위한 상기 특성화된 메소드가 사용되고, 그렇지 않다면(즉, 하나 또는 그 이상의 방향성 사이클이 존재함) DUT 실행 스케줄링을 위한 일반적인 메소드가 사용된다는 점을 주의하여야 한다.
흐름 실행 동안 DUT들의 상태를 변경하는 것, 또는 DUT들을 서로 다른 카테고리에 배치하는 것과 관련한 동작을 단순화하기 위해, TOS는 IDUTManipulator 인터페이스(당해 인터페이스를 구현하는 객체는 하나의 SiteC 내에서 독자적으로 존재함)를 이용한다. 이하의 기재는 당해 인터페이스에 의해 지원되는 메소드들의 예이다:
- get*DUTs([out] array_of_DUT_IDs): DUT들에 대해, 현재 카테고리 "*"에 있는 DUT ID들의 배열을 반환하는데, 여기서 "*"는 "정의된(Defined)", "로딩된(Loaded)", "측정가능한(Measurable)", "활성화된(Active)", "보류된(On-Hold)", 또는 "거부된(Rejected)" 중 하나이다.
- is*DUT([in] array_of_DUT_IDs): 주어진 DUT ID들의 세트가 카테고리 "*" 내에 존재하는가를 시험하는데, 여기서 "*"는 "정의된(Defined)", "로딩된(Loaded)", "측정가능한(Measurable)", "활성화된(Active)", "보류된(On-Hold)", 또는 "거부된(Rejected)" 중 하나이다. 만약 적어도 하나의 주어진 DUT가 존재하지 않는다면, 실패(false)를 반환한다.
- rejectDUTs([in] array_of_DUT_IDs, useEndSeq, isolateElectrically): 주어진 DUT들을 더 이상의 시험으로부터 영구하게 거부한다(현재 측정가능한(Measurable) 카테고리에 있는 DUT들에 대해서만 유효함). 마지막 두 개의 파라미터는 그에 대응하는 활동이 필요한지 아닌지를 사용자가 규정할 수 있도록 하기 위한 표시 기호(flag)이다.
- putDUTsOnHold([in] array_of_DUT_IDs, useEndSeq, isolateElectrically): 주어진 DUT들을 보류(On-Hold) 상태에 둔다(현재 활성화된(Active) 카테고리에 있는 DUT들에 대해서만 유효함). 마지막 두 개의 파라미터는 그에 대응하는 활동이 필요한지 아닌지를 사용자가 규정할 수 있도록 하기 위한 표시 기호이다.
- makeDUTsActive([in] array_of_DUT_IDs, useEndSeq, isolateElectrically): 주어진 DUT들을 활성화(Active) 상태에 둔다(현재 보류된(On-Hold) 상태에 있는 DUT들에 대해서만 유효함). 마지막 두 개의 파라미터는 그에 대응하는 활동이 필요한지 아닌지를 사용자가 규정할 수 있도록 하기 위한 표시 기호이다.
상기한 바와 같이, IDUTManipulator 인터페이스는 DUT 상태 정보를 검증하는 것뿐만 아니라 시험 흐름 실행 동안 DUT 상태 전이를 유효하게 달성하는 것에 이용될 수 있다. 상기한 DUT 실행 스케줄링을 위한 일반적인 그리고 특성화된 메소드가 주어지면, 흐름 실행 동안의 IDUTManipulator 인터페이스의 이용은 이하에서 기술되는 바를 더 포함할 수 있다:
- IDUTManipulator 인터페이스를 구현하기 위한 객체는 하나의 SiteC에서 독자적으로 존재하고, DUT 상태에 관한 전체적인 정보를 보관한다. 따라서, 흐름 실행 동안 일어나는 DUT 상태 전이는 IDUTManipulator 인터페이스를 통해서만 달성될 수 있다.
- DUT 상태 전이는 종종, 계전기 제어(relay control)나 전력 시퀀싱(power sequencing) 등과 같은 고가의 모듈 동작을 포함한다. 만약 상기 상태 전이가 상기 전이를 필요로 한 DUT 세트 내에서 각각의 DUT에 대해 개별적으로 수행된다면, 이는 비효율적일 것이다. 따라서 IDUTManipulator 인터페이스는 이러한 동작들을 위한, 복수의 DUT들을 파라미터로서 취하여 규정된 DUT들이 단일 동작으로써 처리되도록 하는(이는, 이것을 행하기 위한 하드웨어 지원이 이용 가능함을 의미함) 메소드를 포함한다. 예를 들면, 흐름이 스케줄링 결정을 한 때에, 최고의 효율을 위해, 상기 IDUTManipulator 인터페이스는 우선 상기 결정의 결과로서 활성화된(Active) 상태로부터 보류된(On-Hold) 상태로(또는 그 역방향으로) 전이하도록 요구되는 완결된 DUT 세트를 연산하고, 그런 다음 전체 DUT 세트에 대해 한꺼번에 상태 전이 동작을 수행하는 IDUTManipulator 메소드를 이용한다.
- IDUTManipulator 메소드들이 반환하는 상기 DUT 세트는 어느 특정 흐름 분기(branch)에 한정되지 않는다. 예를 들면, getOnHoldDUTs()에 의해 반환되는 보류된(On-Hold) DUT들의 세트는 전체적으로 현재 보류된 모든 DUT들을 나타낸다.
상기 IDUTManipulator 인터페이스는 사용자 시험 클래스(class)들에 이용 가능하지 않은데, 이는 현재 보류(On-Hold) 등이 된 DUT들과 같은 전체 DUT 상태 정보에 사용자 시험 클래스가 접근하게 하는 것은 잠재적으로 위험하기 때문이다. 만약 시험 클래스가 상기 IDUTManipulator 메소드에 자유롭게 접근하면, 사용자 코딩 오류는 DUT 실행 스케줄링 메커니즘에 의해 이용되는 흐름 전반에 걸친(flow-wide) DUT 상태 정보의 충돌을 야기할 수 있다. 사용자 시험 클래스 인스턴스(instance)가 실행을 시작한 때, 그것은 활성화된(Active) DUT들의 하위 세트만을 알면 된다.
그러나, 사용자 시험 클래스 인스턴스가 실행되어야 하는 때에, 만약 상기 시스템이 SiteC 내의 모든 DUT들을 동시에 측정하기에 충분한 하드웨어 자원을 지니고 있지 않다면, 이러한 장치(device)들은 순차적으로(또는, 일 군(群) 당 한번에 시험될 수 있는 수의 장치를 포함하는 군(群)들을 이루어) 상기 시험 클래스에 의해 시험된다. 소정의 DUT들은 이미 거부된(Rejected) 상태로 표시되어 있을 수 있고, 이들은 더이상 시험될 필요가 없다는 점을 주의하여야 한다.
DUT의 순차적 시험을 용이하게 하기 위해, 상기 TOS는 모든 DUT들을 통해 반복 되도록 하는 반복자(iterator) 객체를 이용할 수 있는데, 상기 반복자 객체는 거부된(Rejected) DUT들을 건너뛸 수 있다. 또한, 이러한 일반적인 반복자의 특성화는, 반복자가 가리키는 DUT - 이는 활성화된(Active) 상태에 배치되어 있음 - 를 제외한 (현재 고려되고 있는 세트 내의) 모든 DUT들을, 보류된(On-Hold) 상태에 자동적으로 배치하기 위해 이용될 수 있다. 시험 클래스들은 상기 반복자 객체들을 인스턴스화(instantiate)하고 이들을 이용할 수 있다. 테스트 클래스 내에서 상기 반복자들을 사용하는 동안, 상기 반복자는 당해 테스트 클래스에 대한 활성화된 DUT들을 통해 반복되도록 할 뿐이고, 전체적인 모든 활성화된 DUT들을 통해 반복 되도록 하는 것은 아니라는 점을 주의해야 한다.
상기 반복자가 사용될 수 없는 경우들을 수용하기 위해, 시험 인스턴스가 실행되는 때, 그것은 IUserDUTManipulator 인터페이스를 구현하는 축소된 DUT 조작자(manipulator) 객체의 인스턴트를 넘겨받는다. 상기 시스템은, 그 시점에 상기 흐름을 위한 DUT 실행 스케줄 내에 있는 상기 시험 인스턴트를 위한, 활성화된(Active) DUT들의 특히 하위 세트를 이용하여 당해 객체를 구축한다. 상기 시험 클래스는 구축에 이용한 상기 DUT들의 활성화된(Active) 또는 보류된(On-Hold) 상태에 관하여만 질의(query)하기 위해 당해 객체를 이용하고, 필요하다면, 상기 세트 내의 소정의 DUT를 활성화로부터 보류된 상태로 배치하는 명령을 내린다. 당해 축소된 인터페이스는 즉각적인 DUT 거부를 허용하지는 않는다는 점을 주의하여야 한다. 거부(Rejection)는 여전히 상기 시험 계획 코드를 통해 달성되어야 하며, 상기 시험 계획 코드는 질의 중에 있는 상기 DUT에 대한 시험 실행의 결과로 하여금, 시험 실행이 일단 완료된 후에 활동의 과정에 지시를 내릴 수 있도록 한다. 만약 시험 인스턴스가 시험을 중지하고 DUT를 거부하기를 희망한다면, 그것은 그 DUT를 보류된(On-Hold) 상태에 배치하고 적합한 시험 결과를 종료시 상기 흐름에 제공하기만 하면 된다.
순차적 시험 지원을 위해 이용되는 활성화된(Active) 그리고 보류된(On-Hold) 상태는 상기 흐름에 의해 DUT 실행 스케줄링을 위해 이용되는 대응하는 상태들과 그 본질적인 면에서 큰 차이가 있고, 상기 시험 인스턴트에 한정되는 용도라는 점을 주의하여야 한다. 상기 두 세트는 서로 간에 관련성이 없다. 상기 흐름이 관련되는 한, 실행을 위해 시험에 진입하는 모든 DUT들은 상기 흐름의 활성화 상태에 있으며, 상기 DUT들은 상기 시험의 실행이 막 종료되고 다음 스케줄링 결정이 행해지기 전에 있어서도 여전히 그러하다.
상기한 흐름들 외에도, 개방형 구조 시험 시스템은 구성가능한 패턴 로드 흐름, 로트 스타트(lot-start) 및 로트 엔드(lot-end) 흐름 등과 같은 DUT 시험의 실행과 직접 관련되지 않는 다수의 흐름들을 지원하며, 실제로 SysC 상에서 구동하는 흐름들을 포함한다. 당해 단락에서, 단일 SiteC에서 다중-DUT 병렬 시험을 효과적으로 수용하기 위해, 흐름들 및 관련 구성 요소들을 갖는 개방형 구조 시험 시스템의 현존하는 구성(organization)에 필요한 변경에 대해 기술한다. 다음으로, 병렬 시험을 지원하는 시험 시스템으로의 강화(强化)에 대해 기술한다.
시험을 실행하는 흐름들에 대해, 병렬 DUT 시험 동안, 특정 흐름 항목에서 실행되고 있는 IFlowable(또는 ITest)은 DUT에 특유한 getStatus() 메소드를 지원해야 하는데, 이는 서로 다른 DUT들이 서로 다른 결과를 반환할 수 있기 때문이다. 도 1에서 이용된 바와 같은 현존하는 IFlowable::getStatus() 메소드는 어떤 파라미터도 취하지 않고, 따라서 복수의 DUT들을 포함하는 흐름에 대해서는 부적합하다.
하나의 접근 방법으로서, 상기 getStatus() 메소드에 파라미터로 DUT ID를 부가함으로써 상기 IFlowable 인터페이스를 확장하는 새로운 IDUTFlowable 인터페이스가 구현된다. 이러한 수정에 이어, DUTFlowItem 객체를 포함하는 DUTFlow가 또한 구현된다. 그 결과 산출되는 구조는 흐름이 소정의 흐름 항목 객체를 포함할 수 있도록 하지만, DUTFlow는 단지 DUTFlowItem 객체만을 수용할 수 있도록 한다. 도 4는 본 발명의 일 실시예에 의한 시험 흐름 시스템 구조의 구현에 대하여 도시한다. 도 4에 도시된 바와 같이, 흐름 시스템 구조는 IFlowable 인터페이스 402, User Flowable 클래스 404, FlowItem 클래스 406, Flow 클래스 408, IDUTFlowable 인터페이스 410, DUTFlow 클래스 412, SysCFlow 클래스 414, DUTFlowItem 클래스 416, ITest 인터페이스 418, Bin 클래스 420 및 CounterSet class 422를 포함한다.
상기 IFlowable 인터페이스 402는 실행 흐름 맥락 내에서 실행되어야 하는 소정의 클래스들에 의해 이용된다. 상기 User Flowable 클래스 404는 IFlowable의 구체적인 구현이다. 이는 사용자가 흐름 실행 동안 그것의 코드 중 소정의 것의 실행을 원할 때 구현되고, 상기 코드는 IFlowable 인터페이스를 구현할 수 있다. DUT들을 시험하기 위한 주된 흐름(main flow)은 상기 DUTFlow 클래스 412에 의해 이루어지고, 그것의 구성 요소들은 상기 IDUTFlowable 인터페이스 410으로부터 파생된다. 그 결과로서, 상기 User Flowable 클래스 404는 상기 주된 흐름의 일부가 아니다. 상기 FlowItem 클래스 406은 시험 흐름 그래프 내 노드로부터의 전이를 정의한다. 그것은 IFlowable 객체와 관련된다. FlowItem 및 IFlowable은 상기 시험 흐름 그래프 내의 노드를 논리적으로 실현한다.
상기 Flow 클래스 408은, 각 FlowItem 내에 규정된 전이들에 기초하는 IFlowable에서 IFlowable로의(IFlowable to IFlowable) 실행에 의해 상태 기계를 실현하기 위하여 IFlowable 객체를 참조한다. 또한, 상기 Flow 클래스는 FlowItem 객체의 수용부(container)이다. 상기 Flow 클래스는 IFlowable 객체로부터 파생된다. 각각의 FlowItem 객체는 IFlowable 객체와 관련된다. 상기 IFlowable 인터페이스 402로부터 파생하는 상기 IDUTFlowable 인터페이스 410은, 다중-DUT 흐름들을 위한 새로운 베이스 클래스(base class)이다. IDUTFlowable 객체와 IFlowable 객체 간의 차이점은, DUTFlow에서 파생된 그리고 ITest에서 파생된 클래스들과 같은 모든 파생 클래스들로 하여금 DUT에 특유한 상황을 반환하도록 하기 위해, 상기 시스템이 DUT에 특유한 상황을 수신하기 위한 메소드를 상기 IDUTFlowable 객체가 포함한다는 점이다.
다중-DUT 흐름 항목들은, 병렬 시험에 특유한 상태 전이의 지원과 함께 원래의 흐름 항목 클래스들을 확장하는 새로운 DUTFlowItem 416에 의해 나타내어 진다. 또한, 상기 DUTFlow 클래스 412는, IDUTFlowable에서 파생된 객체로부터 반환된 DUT에 특유한 상황, 및 DUTFlowItem 내에 정의된 상태 전이에 기초한 시험 스케줄링(다음 차례에 실행될 시험, 어느 DUT들이 상기 시험 상에서 시험될 것인지의 결정)의 구현과 함께, Flow 클래스 408을 확장한다. Flow는 소정의 FlowItem 객체를 포함할 수 있지만, DUTFlow는 DUTFlowItem 객체만을 수용하도록 제한된다. 상기 Flow는 흐름 항목들로의 포인터(pointer) 세트 - 상기 포인터 세트는 DUTFlowItem들로의 포인터들을 포함할 수 있음 - 의 오너쉽(ownership)을 보유한다는 점을 주의하여야 한다. 상기 DUTFlow 클래스 412는 그것의 포인터들(예를 들면, 베이스 Flow 클래스 내의 멤버(member)들)이 모두 DUTFlowItem들이라는 것을, 상기 베이스 Flow 클래스 내의 보호되는(protected) 인터페이스를 통해 당해 포인터들을 DUTFlowItem들에게 동적으로 다운 캐스팅(down-casting)함으로써 보증한다. 상기 DUTFlow 클래스 412는 IDUTFlowable에서 파생된 클래스이다. 상기 DUTFlow는 DUT들을 시험하기 위한 주된 흐름이고, 그것은 SiteC에만 존재한다.
상기 ITest 인터페이스 418은, 그래픽 사용자 인터페이스(GUI) 애플리케이션으로부터 규정된 파라미터들을 처리하기 위한 메소드와 같은, 시험 인스턴스들을 위한 메소드들과 함께 특성화된, IDUTFlowable에서 파생된 인터페이스이다. DUT들에서 실행되는 모든 시험들은 디폴트로 다중-DUT 시험이 가능한(multi-DUT-capable) 것으로 간주된다. 단일 그리고 복수의 DUT가 상기 시험에 의해 동일한 설비로 처리되므로, 이들은 그 어느 쪽의 환경에도 변경을 가하지 않고서 이용될 수 있다(상기 단일 DUT의 경우 상기 다중-DUT의 경우의 퇴보된 경우이고, 동일한 SiteC 내의 DUT의 수가 하나임). 따라서, 상기 ITest는 IFlowable 대신 상기 IDUTFlowable로부터 파생될 수 있다. 상기 Bin 클래스 420 및 CounterSet 클래스 422는 상기 FlowItem 클래스 406으로부터 파생된다. 상기 SysCFlow 클래스 414는 상기 SysC 상에서의 흐름들을 처리하기 위해 도입되는 새로운 흐름 클래스이다.
상기의 기재는 명확성을 위하여, 서로 다른 기능적인 유닛들 및 프로세서들과 관련해서 본 발명의 실시예에 대해 기술하였음을 이해하여야 할 것이다. 그러나, 서로 다른 기능적인 유닛들 또는 프로세서들 간에 기능의 적절한 분산이 이루어질 수 있음은 명백할 것이다. 예를 들면, 서로 다른 프로세서들 또는 제어기들에 의해 수행되어 지도록 기술된 기능은, 하나의 프로세서 또는 제어기에 의해 수행될 수 있다. 따라서, 특정한 기능적 유닛에 대한 참조는, 한정된 논리적 또는 물리적 구조나 체계를 나타내는 것이라기보다는, 단지 상기 기술된 기능을 제공하기 위하여 적절한 수단에 대한 참조에 지나지 아니한다.
본 발명은, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 포함하는 적절한 형태로 구현될 수 있다. 본 발명은 선택적으로, 하나 또는 그 이상의 데이터 프로세서 및/또는 디지털 시그널 프로세서에서 구동되는 컴퓨터 소프트웨어로서 부분적으로 구현될 수도 있다. 본 발명의 일 실시예의 구성 요소 및 컴포넌트는 물리적으로, 기능적으로, 그리고 논리적으로 소정의 적절한 방법으로 구현될 수 있다. 실제로 기능성은 단일 유닛으로, 복수의 유닛으로, 또는 다른 기능적인 유닛의 일부로서 구현될 수도 있다. 유사하게, 본 발명은 단일 유닛으로 구현될 수도 있고, 또는 서로 다른 유닛들과 프로세서들 간에 물리적으로 그리고 기능적으로 분산될 수도 있다.
본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자는, 근원이 되는 동일한 메커니즘과 방법론을 채택하면서, 개시된 실시예의 많은 가능한 변경과 조합이 사용될 수 있다는 것을 인식할 것이다. 설명의 목적으로, 상기의 기재는 특정 실시예를 참조로 하여 기술되었다. 그러나, 상기의 예시적인 논의는 모든 것을 남김없이 규명하거나 또는 본 발명을 개시된 정확한 형태로 제한하고자 의도된 것은 아니다. 많은 변경과 변형이 상기 시사(示唆)의 관점에서 가능하다. 상기 실시예들은 본 발명의 원리와 그 실제 응용을 설명하기 위해서, 그리고 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자가 본 발명, 그리고, 고려될 수 있는 특정 사용에 적절한 다양한 변형을 갖는 다양한 실시예를 이용할 수 있게 하도록 선택되고 기술되었다.
Claims (20)
- 하나 또는 그 이상의 벤더 하드웨어 모듈을 통해 시험 제어기에 연결된 적어도 두 개의 피시험 장치를 포함하는 병렬 시험 시스템에서의 시험을 스케줄링하는 방법에 있어서,미리 정해진 시험 흐름 내에 배열된 복수의 시험을 포함하는 시험 계획을 수취하는 단계 - 상기 미리 정해진 시험 흐름은 방향성 그래프(directed graph) 내에 배열된 복수의 시험을 포함하며, 각각의 시험은 상기 방향성 그래프 내에서 정점(vertex)으로서 배열됨 -;상기 시험 계획에 따라 실행시에 시험 실행 스케줄을 결정하는 단계 - 상기 시험 실행 스케쥴은 상기 적어도 두 개의 피시험 장치의 현재 상태에 따라 실행될 다음 차례의 시험의 세트를 식별하고, 상기 다음 차례의 시험의 세트는 서로 다른 피시험 장치에서 수행될 서로 다른 시험을 포함함 -; 및상기 시험 실행 스케줄을 이용하여 상기 적어도 두 개의 피시험 장치를 시험하는 단계를 포함하는 시험 스케줄링 방법.
- 제1항에 있어서,상기 방향성 그래프는,복수의 방향성 변(directed edges)으로 계층식으로 연결된 복수의 정점을 포 함하되,상기 방향성 그래프의 각각의 정점은 시험을 나타내고,상기 각각의 정점은 0 또는 그 이상의 하위 흐름(sub-flow)을 포함하며,상기 방향성 그래프의 각각의 방향성 변은, 소스 시험(source test)으로부터, 상기 소스 시험의 출력에 기초하는 목적 시험(destination test)으로의 전이를 나타내는 시험 스케줄링 방법.
- 제1항에 있어서,상기 실행시에 시험 실행 스케줄을 결정하는 단계는,상기 시험 흐름에 방향성 사이클(directed cycles)이 존재하는가를 결정하는 단계;상기 시험 흐름이 방향성 사이클을 포함하면, 상기 적어도 두 개의 피시험 장치를 시험하기 위해 순회될 정점들의 다음 차례의 세트를 결정하는 단계; 및상기 순회될 정점들의 다음 차례의 세트에 따라 시험을 실행하는 단계를 포함하는 시험 스케줄링 방법.
- 제3항에 있어서,상기 순회될 정점들의 다음 차례의 세트를 결정하는 단계는, 깊이 우선 순 회(depth-first traversal) 및 너비 우선 순회(depth-first traversal)를 포함하는 그룹으로부터 선택된 순회 메커니즘을 적용하는 단계를 포함하는 시험 스케줄링 방법.
- 제3항에 있어서,상기 시험을 실행하는 단계는,상기 적어도 두 개의 피시험 장치에서의 시험의 결과에 따라, 활성화된(active), 보류된(on-hold) 및 거부된(rejected) 상태를 포함하는 피시험 장치 상태(states)를 생성하는 단계; 및상기 적어도 두 개의 피시험 장치의 현재 상태에 따라 상기 적어도 두 개의 피시험 장치에서 서로 다른 시험을 실행하는 단계를 포함하는 시험 스케줄링 방법.
- 제5항에 있어서,상기 피시험 장치 상태를 생성하는 단계는, 상기 적어도 두 개의 피시험 장치에 의한 시험의 실패에 기초하여 상기 피시험 장치 상태를 카테고리화 하는 단계를 포함하는 시험 스케줄링 방법.
- 제3항에 있어서,상기 시험을 실행하는 단계는,상기 적어도 두 개의 피시험 장치에서의 시험의 결과에 따라, 정의된(defined), 로딩된(loaded), 측정가능한(measurable), 보류된(on-hold) 및 활성화된(active) 카테고리를 포함하는 피시험 장치 카테고리를 생성하는 단계; 및상기 적어도 두 개의 피시험 장치의 상기 피시험 장치 카테고리에 따라 상기 적어도 두 개의 피시험 장치에서 서로 다른 시험을 실행하는 단계를 포함하는 시험 스케줄링 방법.
- 제1항에 있어서,상기 실행시에 시험 실행 스케줄을 결정하는 단계는,상기 시험 흐름에 방향성 사이클이 존재하는가를 결정하는 단계;상기 시험 흐름이 방향성 사이클을 포함하지 않으면, 상기 적어도 두 개의 피시험 장치를 시험하기 위해 순회될 정점들의 다음 차례의 세트를 결정하는 단계; 및상기 순회될 정점들의 다음 차례의 세트에 따라 시험을 실행하는 단계를 더 포함하는 시험 스케줄링 방법.
- 제8항에 있어서,상기 정점들의 다음 차례의 세트는 위상기하학적 순서(topological order)로 배열되고, 상기 정점은 한번 또는 그 이하로 순회되는 시험 스케줄링 방법.
- 제1항에 있어서,상기 적어도 두 개의 피시험 장치를 거쳐서 자동으로 패턴 데이터를 복제하는 단계; 및상기 적어도 두 개의 피시험 장치를 거쳐서 자동으로 시험 조건을 복제하는 단계를 더 포함하는 시험 스케줄링 방법.
- 병렬 시험 시스템에 있어서,시험 제어기;상기 시험 제어기에 연결된 하나 또는 그 이상의 하드웨어 모듈;각각의 하드웨어 모듈에 병렬로 연결된 적어도 두 개의 피시험 장치;미리 정해진 시험 흐름 내에 배열된 복수의 시험을 포함하는 시험 계획을 수취하는 수단 - 상기 미리 정해진 시험 흐름은 방향성 그래프(directed graph) 내에 배열된 복수의 시험을 포함하며, 각각의 시험은 상기 방향성 그래프 내에서 정점(vertex)으로서 배열됨 -;상기 시험 계획에 따라 실행시에 시험 실행 스케줄을 결정하는 수단 - 상기 시험 실행 스케쥴은 상기 적어도 두 개의 피시험 장치의 현재 상태에 따라 실행될 다음 차례의 시험의 세트를 식별하고, 상기 다음 차례의 시험의 세트는 서로 다른 피시험 장치에서 수행될 서로 다른 시험을 포함함 -; 및상기 시험 실행 스케줄을 이용하여 상기 적어도 두 개의 피시험 장치를 시험하는 수단을 포함하는 병렬 시험 시스템.
- 제11항에 있어서,상기 방향성 그래프는,복수의 방향성 변(directed edges)으로 계층식으로 연결된 복수의 정점을 포함하되,상기 방향성 그래프의 각각의 정점은 시험을 나타내고,상기 각각의 정점은 0 또는 그 이상의 하위 흐름(sub-flow)을 포함하며,상기 방향성 그래프의 각각의 방향성 변은, 소스 시험(source test)으로부터, 상기 소스 시험의 출력에 기초하는 목적 시험(destination test)으로의 전이를 나타내는 병렬 시험 시스템.
- 제11항에 있어서,상기 실행시에 시험 실행 스케줄을 결정하는 수단은,상기 시험 흐름에 방향성 사이클(directed cycles)이 존재하는가를 결정하는 수단;상기 시험 흐름이 방향성 사이클을 포함하면, 상기 적어도 두 개의 피시험 장치를 시험하기 위해 순회될 정점들의 다음 차례의 세트를 결정하는 수단; 및상기 순회될 정점들의 다음 차례의 세트에 따라 시험을 실행하는 수단을 포함하는 병렬 시험 시스템.
- 제13항에 있어서,상기 순회될 정점들의 다음 차례의 세트를 결정하는 수단은, 깊이 우선 순회(depth-first traversal) 및 너비 우선 순회(depth-first traversal)를 포함하는 그룹으로부터 선택된 순회 메커니즘을 적용하는 수단을 포함하는 병렬 시험 시스템.
- 제13항에 있어서,상기 시험을 실행하는 수단은,상기 적어도 두 개의 피시험 장치에서의 시험의 결과에 따라, 활성화된(active), 보류된(on-hold) 및 거부된(rejected) 상태를 포함하는 피시험 장치 상태(states)를 생성하는 수단; 및상기 적어도 두 개의 피시험 장치의 현재 상태에 따라 상기 적어도 두 개의 피시험 장치에서 서로 다른 시험을 실행하는 수단을 포함하는 병렬 시험 시스템.
- 제15항에 있어서,상기 피시험 장치 상태를 생성하는 수단은, 상기 적어도 두 개의 피시험 장치에 의한 시험의 실패에 기초하여 상기 피시험 장치 상태를 카테고리화 하는 수단을 포함하는 병렬 시험 시스템.
- 제13항에 있어서,상기 시험을 실행하는 수단은,상기 적어도 두 개의 피시험 장치에서의 시험의 결과에 따라, 정의된(defined), 로딩된(loaded), 측정가능한(measurable), 보류된(on-hold) 및 활성화된(active) 카테고리를 포함하는 피시험 장치 카테고리를 생성하는 수단; 및상기 적어도 두 개의 피시험 장치의 상기 피시험 장치 카테고리에 따라 상기 적어도 두 개의 피시험 장치에서 서로 다른 시험을 실행하는 수단을 포함하는 병렬 시험 시스템.
- 제11항에 있어서,상기 실행시에 시험 실행 스케줄을 결정하는 수단은,상기 시험 흐름에 방향성 사이클이 존재하는가를 결정하는 수단;상기 시험 흐름이 방향성 사이클을 포함하지 않으면, 상기 적어도 두 개의 피시험 장치를 시험하기 위해 순회될 정점들의 다음 차례의 세트를 결정하는 수단; 및상기 순회될 정점들의 다음 차례의 세트에 따라 시험을 실행하는 수단을 더 포함하는 병렬 시험 시스템.
- 제18항에 있어서,상기 정점들의 다음 차례의 세트는 위상기하학적 순서(topological order)로 배열되고, 상기 정점은 한번 또는 그 이하로 순회되는 병렬 시험 시스템.
- 제11항에 있어서,상기 적어도 두 개의 피시험 장치를 거쳐서 자동으로 패턴 데이터를 복제하는 수단; 및상기 적어도 두 개의 피시험 장치를 거쳐서 자동으로 시험 조건을 복제하는 수단을 더 포함하는 병렬 시험 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/062,244 | 2005-02-17 | ||
US11/062,244 US7543200B2 (en) | 2005-02-17 | 2005-02-17 | Method and system for scheduling tests in a parallel test system |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070112203A true KR20070112203A (ko) | 2007-11-22 |
Family
ID=36604219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077021360A Withdrawn KR20070112203A (ko) | 2005-02-17 | 2006-02-17 | 병렬 시험 시스템에서의 시험을 스케줄링하는 방법 및시스템 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7543200B2 (ko) |
EP (1) | EP1849019B1 (ko) |
JP (1) | JP2008530515A (ko) |
KR (1) | KR20070112203A (ko) |
CN (1) | CN101120262B (ko) |
DE (1) | DE602006013282D1 (ko) |
TW (1) | TWI385405B (ko) |
WO (1) | WO2006088238A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160016753A (ko) * | 2013-02-21 | 2016-02-15 | 주식회사 아도반테스토 | Fpga 블록 내의 자동 패턴 생성을 위한 가속 및 메모리 상의 가속을 갖는 시험기 |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7543200B2 (en) | 2005-02-17 | 2009-06-02 | Advantest Corporation | Method and system for scheduling tests in a parallel test system |
JP4370274B2 (ja) * | 2005-03-14 | 2009-11-25 | 富士通株式会社 | 検証支援装置、検証支援方法、および検証支援プログラム |
US7650255B2 (en) * | 2008-05-02 | 2010-01-19 | Texas Instruments Incorporated | Automatic selective retest for multi-site testers |
US7853425B1 (en) * | 2008-07-11 | 2010-12-14 | Keithley Instruments, Inc. | Parallel testing in a per-pin hardware architecture platform |
TWI461712B (zh) * | 2009-01-21 | 2014-11-21 | King Yuan Electronics Co Ltd | 平行測試轉換裝置、平行測試系統以及平行測試之方法 |
US20130006567A1 (en) * | 2009-12-15 | 2013-01-03 | Wolfgang Horn | Method and apparatus for scheduling a use of test resources of a test arrangement for the execution of test groups |
SG183995A1 (en) * | 2010-05-05 | 2012-10-30 | Teradyne Inc | System for concurrent test of semiconductor devices |
US20110288808A1 (en) * | 2010-05-20 | 2011-11-24 | International Business Machines Corporation | Optimal test flow scheduling within automated test equipment for minimized mean time to detect failure |
US8175213B2 (en) | 2010-07-28 | 2012-05-08 | Freescale Semiconductor, Inc. | System and method for setting counter threshold value |
US20120102462A1 (en) * | 2010-10-26 | 2012-04-26 | Microsoft Corporation | Parallel test execution |
KR101734364B1 (ko) * | 2010-12-13 | 2017-05-12 | 삼성전자 주식회사 | 반도체 장치 동시 연속 테스트 방법 및 테스트 장비 |
TWI412773B (zh) * | 2011-06-27 | 2013-10-21 | Powertech Technology Inc | 多驅動器交叉連接之記憶體測試裝置及其使用方法 |
JP5841457B2 (ja) * | 2012-03-01 | 2016-01-13 | 株式会社アドバンテスト | 試験装置および試験モジュール |
US8867372B2 (en) | 2012-05-02 | 2014-10-21 | Litepoint Corporation | Method for efficient parallel testing of time division duplex (TDD) communications systems |
CN102722170B (zh) * | 2012-05-10 | 2014-08-27 | 北京宇航系统工程研究所 | 一种用于运载火箭测试发射阶段的故障检测方法 |
CN102998613A (zh) * | 2012-11-26 | 2013-03-27 | 李文海 | 可实现电路板并行测试的测试系统和方法 |
US9158642B2 (en) * | 2012-12-20 | 2015-10-13 | Litepoint Corporation | Method of testing multiple data packet signal transceivers concurrently |
US8954546B2 (en) | 2013-01-25 | 2015-02-10 | Concurix Corporation | Tracing with a workload distributor |
US9021262B2 (en) | 2013-01-25 | 2015-04-28 | Concurix Corporation | Obfuscating trace data |
US9207969B2 (en) | 2013-01-25 | 2015-12-08 | Microsoft Technology Licensing, Llc | Parallel tracing for performance and detail |
US8924941B2 (en) | 2013-02-12 | 2014-12-30 | Concurix Corporation | Optimization analysis using similar frequencies |
US8997063B2 (en) | 2013-02-12 | 2015-03-31 | Concurix Corporation | Periodicity optimization in an automated tracing system |
US20130283281A1 (en) | 2013-02-12 | 2013-10-24 | Concurix Corporation | Deploying Trace Objectives using Cost Analyses |
US20140236527A1 (en) * | 2013-02-21 | 2014-08-21 | Advantest Corporation | Cloud based infrastructure for supporting protocol reconfigurations in protocol independent device testing systems |
US9274911B2 (en) | 2013-02-21 | 2016-03-01 | Advantest Corporation | Using shared pins in a concurrent test execution environment |
US10162007B2 (en) * | 2013-02-21 | 2018-12-25 | Advantest Corporation | Test architecture having multiple FPGA based hardware accelerator blocks for testing multiple DUTs independently |
US9400307B2 (en) | 2013-03-13 | 2016-07-26 | Keysight Technologies, Inc. | Test system for improving throughout or maintenance properties of semiconductor testing |
US9436589B2 (en) | 2013-03-15 | 2016-09-06 | Microsoft Technology Licensing, Llc | Increasing performance at runtime from trace data |
US9785542B2 (en) * | 2013-04-16 | 2017-10-10 | Advantest Corporation | Implementing edit and update functionality within a development environment used to compile test plans for automated semiconductor device testing |
US9575874B2 (en) | 2013-04-20 | 2017-02-21 | Microsoft Technology Licensing, Llc | Error list and bug report analysis for configuring an application tracer |
US9292415B2 (en) | 2013-09-04 | 2016-03-22 | Microsoft Technology Licensing, Llc | Module specific tracing in a shared module environment |
US9772927B2 (en) | 2013-11-13 | 2017-09-26 | Microsoft Technology Licensing, Llc | User interface for selecting tracing origins for aggregating classes of trace data |
CN104931086A (zh) * | 2014-03-18 | 2015-09-23 | 光宝电子(广州)有限公司 | 平行多工测试系统及测试方法 |
US9298590B2 (en) * | 2014-06-26 | 2016-03-29 | Google Inc. | Methods and apparatuses for automated testing of streaming applications using mapreduce-like middleware |
US9727447B1 (en) * | 2015-01-16 | 2017-08-08 | Amdocs Software Systems Limited | System, method, and computer program for automated exploratory testing |
CN104635092A (zh) * | 2015-02-26 | 2015-05-20 | 北京精密机电控制设备研究所 | 机电伺服系统检测装置及检测方法 |
WO2016155830A1 (en) | 2015-04-01 | 2016-10-06 | Advantest Corporation | Method for operating a test apparatus and a test apparatus |
US9804911B2 (en) | 2015-05-27 | 2017-10-31 | Apple Inc. | Concurrent validation of hardware units |
CN105117348A (zh) * | 2015-09-28 | 2015-12-02 | 佛山市朗达信息科技有限公司 | 一种监控软件测试执行进度的方法 |
US10748116B2 (en) * | 2015-10-16 | 2020-08-18 | Dell Products L.P. | Test vector generation from documentation |
US10725800B2 (en) | 2015-10-16 | 2020-07-28 | Dell Products L.P. | User-specific customization for command interface |
US10608879B2 (en) | 2015-10-16 | 2020-03-31 | Dell Products L.P. | Validation using natural language processing |
WO2017129242A1 (en) * | 2016-01-27 | 2017-08-03 | Advantest Corporation | Deterministic concurrent test program executor for an automated test equipment |
US10181224B2 (en) | 2016-03-17 | 2019-01-15 | Accenture Global Solutions Limited | Assigning a test suite to test equipment using an execution graph |
US10241146B2 (en) * | 2017-05-01 | 2019-03-26 | Advantest Corporation | Test system and method |
TWI653519B (zh) * | 2017-05-03 | 2019-03-11 | 和碩聯合科技股份有限公司 | 配置單元、檢測系統及檢測方法 |
CN109375965B (zh) * | 2018-11-06 | 2022-04-26 | 东软集团股份有限公司 | 状态机处理方法及装置、可读存储介质 |
US10976361B2 (en) | 2018-12-20 | 2021-04-13 | Advantest Corporation | Automated test equipment (ATE) support framework for solid state device (SSD) odd sector sizes and protection modes |
US11137910B2 (en) | 2019-03-04 | 2021-10-05 | Advantest Corporation | Fast address to sector number/offset translation to support odd sector size testing |
US11237202B2 (en) | 2019-03-12 | 2022-02-01 | Advantest Corporation | Non-standard sector size system support for SSD testing |
US10884847B1 (en) | 2019-08-20 | 2021-01-05 | Advantest Corporation | Fast parallel CRC determination to support SSD testing |
US12339904B2 (en) | 2019-09-06 | 2025-06-24 | Digital Asset Capital, Inc | Dimensional reduction of categorized directed graphs |
US10915578B1 (en) | 2019-09-06 | 2021-02-09 | Digital Asset Capital, Inc. | Graph outcome determination in domain-specific execution environment |
US11132403B2 (en) * | 2019-09-06 | 2021-09-28 | Digital Asset Capital, Inc. | Graph-manipulation based domain-specific execution environment |
CN110716126A (zh) * | 2019-10-14 | 2020-01-21 | 珠海亿智电子科技有限公司 | 芯片老化测试系统、方法及装置 |
CN111124642A (zh) * | 2019-12-16 | 2020-05-08 | 中国电子科技网络信息安全有限公司 | 一种云管理平台可自定义的自动化流程方法及系统 |
CN111193561B (zh) * | 2019-12-25 | 2022-07-05 | 深圳创维数字技术有限公司 | 一种双频wifi测试方法、系统、服务器和存储介质 |
TWI773140B (zh) * | 2020-03-05 | 2022-08-01 | 日商愛德萬測試股份有限公司 | 用於流量捕獲及除錯工具之圖形使用者介面 |
US20240027518A1 (en) * | 2022-07-21 | 2024-01-25 | Nanya Technology Corporation | Wafer tester and wafer testing method and system |
CN116300836B (zh) * | 2023-05-19 | 2023-07-28 | 西安诚安测控科技有限公司 | 发动机控制系统的测试方法和装置 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4894829A (en) | 1988-04-21 | 1990-01-16 | Honeywell Inc. | Comprehensive design and maintenance environment for test program sets |
EP0347162A3 (en) * | 1988-06-14 | 1990-09-12 | Tektronix, Inc. | Apparatus and methods for controlling data flow processes by generated instruction sequences |
US5701480A (en) * | 1991-10-17 | 1997-12-23 | Digital Equipment Corporation | Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing |
US5297150A (en) * | 1992-06-17 | 1994-03-22 | International Business Machines Corporation | Rule-based method for testing of programming segments |
US5513118A (en) * | 1993-08-25 | 1996-04-30 | Nec Usa, Inc. | High level synthesis for partial scan testing |
JP3158395B2 (ja) | 1995-08-22 | 2001-04-23 | 横河電機株式会社 | テスト実行フロー作成装置 |
US6061507A (en) * | 1996-12-13 | 2000-05-09 | Texas Instruments Incorporated | Scheduling diagnostic testing of automated equipment for testing integrated circuit devices |
JP3357577B2 (ja) * | 1997-07-24 | 2002-12-16 | 富士通株式会社 | 故障シミュレーション方法および装置並びに故障シミュレーションプログラムを格納した記憶媒体 |
US6499121B1 (en) * | 1999-03-01 | 2002-12-24 | Formfactor, Inc. | Distributed interface for parallel testing of multiple devices using a single tester channel |
US6415396B1 (en) * | 1999-03-26 | 2002-07-02 | Lucent Technologies Inc. | Automatic generation and maintenance of regression test cases from requirements |
JP4251707B2 (ja) * | 1999-04-02 | 2009-04-08 | 株式会社アドバンテスト | 半導体デバイス試験装置及び試験方法 |
US6691079B1 (en) * | 1999-05-28 | 2004-02-10 | Ming-Chih Lai | Method and system for analyzing test coverage |
US6476628B1 (en) * | 1999-06-28 | 2002-11-05 | Teradyne, Inc. | Semiconductor parallel tester |
US6557128B1 (en) * | 1999-11-12 | 2003-04-29 | Advantest Corp. | Semiconductor test system supporting multiple virtual logic testers |
US6732304B1 (en) * | 2000-09-21 | 2004-05-04 | Inapac Technology, Inc. | Chip testing within a multi-chip semiconductor package |
US6927591B2 (en) * | 2000-09-22 | 2005-08-09 | Mccord Don | Method and system for wafer and device level testing of an integrated circuit |
US6868513B1 (en) * | 2000-10-26 | 2005-03-15 | International Business Machines Corporation | Automated multi-device test process and system |
US20040015846A1 (en) * | 2001-04-04 | 2004-01-22 | Jupiter Controller, Inc. | System, device and method for integrating functioning of autonomous processing modules, and testing apparatus using same |
CN1293387C (zh) * | 2001-05-11 | 2007-01-03 | 株式会社鼎新 | 支持多虚拟逻辑测试仪的半导体测试系统 |
US6779140B2 (en) * | 2001-06-29 | 2004-08-17 | Agilent Technologies, Inc. | Algorithmically programmable memory tester with test sites operating in a slave mode |
US6988232B2 (en) * | 2001-07-05 | 2006-01-17 | Intellitech Corporation | Method and apparatus for optimized parallel testing and access of electronic circuits |
US7035755B2 (en) * | 2001-08-17 | 2006-04-25 | Credence Systems Corporation | Circuit testing with ring-connected test instrument modules |
US7437261B2 (en) | 2003-02-14 | 2008-10-14 | Advantest Corporation | Method and apparatus for testing integrated circuits |
TWI344595B (en) | 2003-02-14 | 2011-07-01 | Advantest Corp | Method and structure to develop a test program for semiconductor integrated circuits |
JP4124345B2 (ja) * | 2003-05-30 | 2008-07-23 | シャープ株式会社 | 試験装置 |
KR100498509B1 (ko) * | 2003-11-12 | 2005-07-01 | 삼성전자주식회사 | 검사시간을 단축하는 플래시 메모리 테스터 및 이를이용한 전기적 검사방법 |
JP2005300344A (ja) * | 2004-04-12 | 2005-10-27 | Matsushita Electric Ind Co Ltd | 半導体集積回路のテストシステム |
US7210087B2 (en) | 2004-05-22 | 2007-04-24 | Advantest America R&D Center, Inc. | Method and system for simulating a modular test system |
KR100548199B1 (ko) * | 2004-07-15 | 2006-02-02 | 삼성전자주식회사 | 아날로그/디지털 혼합 신호 반도체 디바이스 테스트 장치 |
US7543200B2 (en) | 2005-02-17 | 2009-06-02 | Advantest Corporation | Method and system for scheduling tests in a parallel test system |
-
2005
- 2005-02-17 US US11/062,244 patent/US7543200B2/en not_active Expired - Fee Related
-
2006
- 2006-02-16 TW TW095105251A patent/TWI385405B/zh not_active IP Right Cessation
- 2006-02-17 DE DE602006013282T patent/DE602006013282D1/de active Active
- 2006-02-17 CN CN2006800047798A patent/CN101120262B/zh not_active Expired - Fee Related
- 2006-02-17 WO PCT/JP2006/303337 patent/WO2006088238A1/en active Application Filing
- 2006-02-17 EP EP06714477A patent/EP1849019B1/en not_active Not-in-force
- 2006-02-17 KR KR1020077021360A patent/KR20070112203A/ko not_active Withdrawn
- 2006-02-17 JP JP2007537054A patent/JP2008530515A/ja not_active Ceased
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160016753A (ko) * | 2013-02-21 | 2016-02-15 | 주식회사 아도반테스토 | Fpga 블록 내의 자동 패턴 생성을 위한 가속 및 메모리 상의 가속을 갖는 시험기 |
Also Published As
Publication number | Publication date |
---|---|
DE602006013282D1 (de) | 2010-05-12 |
JP2008530515A (ja) | 2008-08-07 |
EP1849019B1 (en) | 2010-03-31 |
WO2006088238A1 (en) | 2006-08-24 |
TW200643449A (en) | 2006-12-16 |
CN101120262B (zh) | 2010-08-25 |
TWI385405B (zh) | 2013-02-11 |
US20060195747A1 (en) | 2006-08-31 |
EP1849019A1 (en) | 2007-10-31 |
US7543200B2 (en) | 2009-06-02 |
CN101120262A (zh) | 2008-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7543200B2 (en) | Method and system for scheduling tests in a parallel test system | |
US7574637B2 (en) | Method and apparatus for optimized parallel testing and access of electronic circuits | |
EP0930570B1 (en) | Interconnect testing through utilization of board topology data | |
US10473721B1 (en) | Data streaming for testing identical circuit blocks | |
US20020199142A1 (en) | Semiconductor programming and testing method and apparatus | |
US20030131294A1 (en) | Stuck-at fault scan chain diagnostic method | |
US6842022B2 (en) | System and method for heterogeneous multi-site testing | |
US12124359B2 (en) | Systems and methods for device testing to avoid resource conflicts for a large number of test scenarios | |
US10509072B2 (en) | Test application time reduction using capture-per-cycle test points | |
US20050289416A1 (en) | Method and apparatus for performing multi-site integrated circuit device testing | |
Almeida et al. | Effective screening of automotive socs by combining burn-in and system level test | |
US7117415B2 (en) | Automated BIST test pattern sequence generator software system and method | |
US20020112208A1 (en) | Method and apparatus for failure detection utilizing functional test vectors and scan mode | |
JPH10209376A (ja) | 半導体デバイス試験システムおよび方法 | |
US7406638B2 (en) | System and method for optimized test and configuration throughput of electronic circuits | |
Adachi et al. | Parallel, multi-DUT testing in an open architecture test system | |
Ng et al. | Improving efficiency of IC burn-In testing | |
Wondolowski et al. | Boundary scan: the internet of test | |
Stroele et al. | Test register insertion with minimum hardware cost | |
US10613142B2 (en) | Non-destructive recirculation test support for integrated circuits | |
Koenemann | Design-for-test | |
Rovere | Automatic Generation of Self-Test Functional Stress Software Programs for System-Level Test | |
Håkegård | Board Level Boundary Scan Testing and Test Controllers | |
Kay et al. | Unified fault management using Logic Built-In Self-Test and logic bitmap | |
Carmichael et al. | Issues involved in reuse library for design for test |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0105 | International application |
Patent event date: 20070917 Patent event code: PA01051R01D Comment text: International Patent Application |
|
PG1501 | Laying open of application | ||
PC1203 | Withdrawal of no request for examination | ||
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |