KR20070079057A - 테스트 결과 포맷 장치 - Google Patents
테스트 결과 포맷 장치 Download PDFInfo
- Publication number
- KR20070079057A KR20070079057A KR1020070010289A KR20070010289A KR20070079057A KR 20070079057 A KR20070079057 A KR 20070079057A KR 1020070010289 A KR1020070010289 A KR 1020070010289A KR 20070010289 A KR20070010289 A KR 20070010289A KR 20070079057 A KR20070079057 A KR 20070079057A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- event
- popplate
- formatters
- data object
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
일실시예에서, 본 발명의 장치는 데이터 팝플레이터(data populator)를 포함하는데, 이는 1) 복수의 이벤트를 수신하고, 2) 메모리에서 복수의 데이터 객체를 생성하며, 3) 이벤트에 대응하는 데이터를 데이터 객체로 관련시키며, 4) 데이터를 메모리에 저장하는데, 데이터 객체의 적어도 일부는 이벤트에 의해 암시되는 데이터의 논리적 그룹화에 대응한다. 다수의 데이터 포맷터는 1) 데이터 객체에 액세스하고, 2) 데이터 객체에 관련되는 데이터를 검색하고 포맷하는데, 데이터 포맷터에 의해 수신되는 통지에 응답하여 데이터가 검색된다. 통지 관리자는 데이터 팝플레이터로부터 이벤트 표시를 수신하고, 하나 이상의 데이터 포맷터로 이벤트 통지를 제공한다. 다른 실시예도 개시된다.
Description
도 1은 데이터를 저장하고 포맷하는 예시적 방법을 도시하고 있다.
도 2는 도 1에 도시된 방법을 실행한 결과로 설명되거나 실행될 수 있는 다양한 기능적 유닛(또는 프로세스)을 도시하고 있다.
도 3은 테스트 환경에서 사용하기에 특히 적합하도록 도 2의 시스템을 변형한 시스템을 도시하고 있다.
도 4는 도 3에 도시된 시스템에 의해 사용되는 EDL 파일의 예시적 콘텐츠를 도시하고 있다.
도 5는 도 4에 도시된 EDL 파일의 콘텐츠를 저장하기 위한 예시적 계층적 트리 구조를 도시하고 있다.
도 6은 도 1에 도시된 방법과 유사하지만 특히 테스트 환경에서 사용하기에 적합하도록 구성되는 방법을 도시하고 있다.
도면의 주요 부분에 대한 부호의 설명
200: 데이터 팝플레이터 214: 통지 관리자
304: EDL 파일 302: 공유 라이브러리
300: 이벤트 관리자
상이한 방식으로 전자 데이터 세트를 포맷해야할 필요가 종종 있다. 상이한 방식으로 데이터 세트를 포맷하는 한가지 방식은, 복수의 데이터 포맷터(data formatters)에 의한 것인데, 이들 각각은 상이한 방식으로 데이터 세트를 포맷하고 데이터 세트에 직렬로 액세스한다(즉, 데이터 포맷터 중 하나가 데이터를 포맷을 완료한 후, 다른 데이터 포맷터가 데이터에 액세스한다). 이와 달리, 데이터 포맷터 각각이 데이터 세트에 병렬로 액세스할 수 있다. 또는, 데이터 세트가 복제되어, 데이터 포맷터 각각이 복제된 데이터 세트에 액세스할 수 있다.
복수의 데이터 포맷터가 한 데이터 세트에 직렬로 액세스하는 경우, 데이터 포맷터가 데이터 세트에 병렬로 액세스하는 경우보다 데이터 세트를 포맷하는 데 더 긴 시간이 소요된다. 그러나, 데이터 포맷터가 데이터 세트에 병렬로 액세스하는 경우(또는 복제된 데이터 세트에 병렬로 액세스하는 경우), 메모리, 스토리지 및/또는 프로세싱 자원이 흔히 비효율적으로 사용되며, 메모리, 스토리지 및/또는 프로세싱 제한에 근접하거나 도달할 수 있다.
일실시예에서, 장치는 데이터 팝플레이터와, 다수의 데이터 포맷터와, 통지 관리자를 포함한다. 데이터 팝플레이터는 1) 복수의 이벤트를 수신하고, 2) 이벤 트에 의해 암시되는(implied) 데이터의 논리적 그룹화에 적어도 일부가 대응하는 복수의 데이터 객체(data objects)를 메모리에서 생성하며, 3) 이벤트에 대응하는 데이터를 데이터 객체로 관련시키고, 4) 데이터를 메모리에 저장하도록 제공된다. 다수의 데이터 포맷터는 1) 데이터 객체에 액세스하고, 2) 자신이 수신하는 통지에 응답하여 데이터 객체로 관련되는 데이터를 검색하고 포맷한다. 통지 관리자는 데이터 팝플레이터로부터 이벤트 표시를 수신하고 이벤트 통지를 하나 이상의 데이터 포맷터에 제공한다.
다른 실시예에서, 테스트 결과 포맷 장치 또한 데이터 팝플레이터, 다수의 데이터 포맷터 및 통지 관리자를 포함한다. 데이터 팝플레이터는 1) 적어도 하나의 DUT(device under test)의 복수의 테스트 실행에 대응하는 정렬된 이벤트 시퀀스를 수신하고, 2) 이벤트에 의해 암시되는 테스트 결과의 논리적 그룹화에 적어도 일부가 대응하는 복수의 데이터 객체를 생성하며, 3) 데이터 객체를 다른 데이터 객체로 계층적 트리 구조로 관련시키고, 4) 테스트 결과를 포함하며 이벤트에 대응하는 데이터를 계층적 트리 구조로 저장한다. 다수의 데이터 포맷터는 자신이 수신하는 통지에 응답하여 상기 계층적 트리 구조로 저장되는 테스트 결과를 검색하고 포맷하도록 제공된다. 통지 관리자는 데이터 팝플레이터로부터 이벤트 표시를 수신하고 하나 이상의 데이터 포맷터에 이벤트 통지를 제공한다.
다른 실시예도 개시된다.
본 발명의 예시적 실시예가 도면에 도시되어 있다.
다음의 상세한 설명에서 여러 도면에서 동일한 번호는 동일한 구성요소/형상을 지칭한다는 것을 유의하자. 그러므로, 여러 도면에서 보이는 동일한 구성요소/형상은 각 도면에 대해 상세히 설명하지 않을 것이다.
복수의 데이터 포맷터에 의해 데이터가 포맷되는 방식을 향상시키기 위해서, 도 1은 복수의 데이터 포맷터에 의해 액세스될 데이터를 저장하는 예시적 방법(100)을 도시하고 있다. 이 방법(100)은 다음과 같이 진행된다. 단계(102)에서, 복수의 이벤트에 응답하여, 복수의 데이터 객체가 메모리에서 생성된다. 예시를 위해, 회로 테스트 영역에서, 이벤트는, 새로운 웨이퍼의 로딩(loading) 또는 언로딩(unloading)을 시그날링하는 이벤트와, 웨이퍼상의 특정 장치에 대한 테스트의 시작 또는 종료를 시그날링하는 이벤트와, 여러 테스트 및 서브테스트의 시작 및 종료를 시그날링하는 이벤트를 포함할 수 있다.
이 방법(100)에 의해 생성되는 데이터 객체의 적어도 일부는 이벤트들에 의해 암시되는 데이터의 논리적 그룹화에 대응한다(예: 웨이퍼 객체, 장치 객체 등). 상세한 설명에서 사용되는 바와 같이, "암시되는" 그룹화는 구체적으로 언급되는 것이거나 단지 추론되는 것일 수 있다. 임의의 경우에, 논리적 그룹화는 엔지니어 또는 포맷팅 데이터로 작업하는 사용자(또는 데이터를 포맷하기 위해 데이터 포맷터를 생성하여 작업하는 사용자)가 이해할 수 있는 실제 그룹화에 대응하는 것이 바람직하다.
하나 이상의 데이터 객체를 생성한 후, 이벤트에 대응하는 데이터는 데이터 객체로 관련되고(단계 104) 메모리에 저장된다. 데이터 객체의 생성 동안 또는 생성 후, 다수의 데이터 포맷터가 제공되어 복수의 데이터 객체 및 메모리의 데이터에 액세스한다. 단계(106)를 참고하자.
일실시예에서, 이 방법(100)은 데이터를 포맷하기 위한 단계를 포함할 수 있다. 이 단계는, 다수의 액티브 데이터 포맷터마다 이들을 통해, 데이터 객체들과 메모리에 저장되는 데이터에 액세스하는 단계(단계 108)와, 데이터 포맷터에 의해 관리되는 규칙에 따라 데이터를 포맷하는 단계(단계 110)와, 포맷된 데이터를 파일로 기록하는 단계(단계 112)를 포함한다. 설명을 위해, "액티브" 데이터 포맷터는 이용자가 특정 데이터 세트를 포맷하기 위해 선택한 다수의 "이용 가능한" 데이터 포맷터 중 하나이다. 이 방법(100)이 회로 테스트에 적용되면, 하나 이상의 데이터 포맷터가 다수의 테스트 기록으로서 데이터를 기록할 수 있다.
도 1에 도시된 방법의 단계의 순서는 중요한 것이 아니며, 단계들의 병렬 처리를 포함하는 다른 순서도 가능하다는 것을 유의해야 한다.
도 1에 도시된 방법(100)은 컴퓨터 판독 가능한 매체에 저장되는 컴퓨터 판독 가능한 코드에 의해 구현될 수 있다. 컴퓨터 판독 가능한 매체는, 예를 들어, 단일 위치 또는 네트워크를 통해 분배되는 임의의 수의 고정 또는 제거 가능한 매체(예: 고정 디스크, RAM, ROM 또는 CD 중 하나 이상) 또는 이들의 혼합체를 포함할 수 있다. 컴퓨터 판독 가능한 코드는 전형적으로 소프트웨어를 포함하지만, 펌웨어 또는 프로그래밍된 회로를 포함할 수도 있다.
일실시예에서, 이 방법(100)을 구현하는 컴퓨터 판독 가능한 코드는 도 2에 도시된 기능 유닛(또는 프로세스)이 설명되거나(instantiate) 실행되게 할 수 있다. 기능 유닛은 데이터 팝플레이터(a data populator, 200) 및 다수의 데이터 포맷터(202, 204, 206, 208) 외에도 많은 다른 선택적 구성요소를 포함한다. 그러나, 다양한 기능 유닛들간의 경계가 다소 모호하고, 후술할 소정 기능이 기능 유닛 중 상이한 것에 의해 대신 수행되거나 2개 이상의 유닛의 기능이 단일 기능 유닛(또는 프로세스)으로 결합될 수 있다는 것을 유의해야 한다.
데이터 팝플레이터(200)는, 1) 복수의 이벤트(210)를 수신하고, 2) 메모리(212)의 복수의 데이터 객체를 생성하며, 3) 이벤트에 대응하는 데이터를 데이터 객체로 관련시키고, 이 데이터를 메모리(212)에 저장한다. 데이터 팝플레이터(200)에 의해 생성되는 데이터 객체 중 적어도 일부는 데이터 팝플레이터(200)에 의해 수신되는 이벤트에 의해 암시되는 데이터의 논리적 그룹화에 대응한다. 개시를 위해, "암시되는" 그룹화는 구체적으로 "표현되는" 것들을 포함한다.
다수의 데이터 포맷터(202, 204, 206, 208)는 데이터 객체에 액세스한 후, 데이터 객체에 관련되는 데이터를 검색하고 포맷한다.
일실시예에서, 컴퓨터 판독 가능한 코드는 또한 통지 관리자(214)를 설명하거나 실행할 수 있다. 통지 관리자(214)는 데이터 팝플레이터(200)로부터 이벤트 표시를 수신하고, 이들 표시에 응답하여, 데이터 포맷터(202, 204, 206, 208) 중 하나 이상에 이벤트 통지를 제공할 수 있다. 그 후, 데이터 포맷터(202, 204, 206, 208)는 통지에 응답하여 그들의 데이터 객체 액세스(및 데이터 검색)를 초기 화하도록 구성될 수 있다. 경우에 따라, 통지 관리자(214)에 의해 수신되는 이벤트 표시는, 데이터 팝플레이터(200)에 의해 수신되는 것보다 적거나 이와는 다른 이벤트에 대응할 수 있다는 것을 유의해야 한다. 예를 들어, 회로 테스트의 경우, 데이터 팝플레이터(200)는 통지 관리자(214)로 전달될 만큼 중요하지 않은 것으로 간주되고 데이터 객체를 생성하는 기반으로서 사용되지 않는 테스트 셋업 이벤트 표시를 수신할 수 있다. 또한, 데이터 팝플레이터(200)가 자신이 수신하는 이벤트로부터 추론하는 이벤트가 존재할 수 있다. 예를 들어, 부분적으로 수 또는 다른 표시의 변동에 기초하여, 데이터 팝플레이터(200)는 새로운 장치 "로트(lot)"이 테스트될 것이라고 추론하고, 그러한 이벤트 표시를 통지 관리자(214)에 제공할 수 있다(즉, 데이터 팝플레이터(200) 자신은 새로운 이벤트 "로트"을 수신하지 않을 수 있더라도 그러하다).
전술한 방법(100) 및 장치는 많은 분야에서 사용될 수 있는데, 그 중 하나는 회로 테스트 결과와 같은 테스트 결과를 저장하고 포맷하는 것이다. 한 특정 애플리케이션에서, 테스트 결과는 애질런트 테크놀로지(Agilent Technology)에 의해 제공되는 93000 SOC 시리즈 테스터에 의해 생성될 수 있다.
93000 SOC 시리즈 테스터(이하 "93000 테스터")는 테스트 결과와 이벤트를 EDL(Event Data Logging) 파일로 알려진 이진 데이터 파일로 기록하는 SOC(System On Chip)이다. 이 EDL 파일의 이벤트는 적어도 하나의 DUT(device under test)의 복수의 테스트 실행에 해당하며 정렬된 시퀀스로 저장된다. 그러나, EDL 파일에 저장되는 이벤트는 어떠한 다른 프로세스로도 "스로우(thrown)"되지 않으며, EDL 파일로만 기록된다. 이러한 애플리케이션에서, 도 1에 도시된 방법(100)은, 1) 복수의 이벤트(예: DEL 파일)에 대응하는 데이터 파일을 분석하여 복수의 이벤트를 검색하는 단계와, 그 후, 2) 데이터 파일로부터 검색된 이벤트를 복수의 데이터 객체를 생성하고 메모리(212)에 데이터를 저장하는 프로세스(예: 도 2에 도시된 데이터 팝플레이터(200))로 전달하는 단계(114, 116)를 더 포함할 수 있다.
일실시예에서, EDL 파일은 이벤트 관리자에 의해 구성되는 방법 호출에 응답하여 분석된다. 도 3에 도시된 바와 같이, 이벤트 관리자(300)는 공유 라이브러리(302)로 방법 호출(예: 이벤트 얻기, 이벤트 속성 얻기)을 구성할 수 있고, 공유 라이브러리(302)는 그 후 EDL 파일(304)로부터 이벤트를 검색하여 이들을 이벤트 관리자(300)로 "스로우"할 수 있다. 그 후, 이벤트 관리자(300)는 이벤트를 데이터 팝플레이터(200)로 전달한다.
공유 라이브러리(302)는 데이터 검색 라이브러리(DRL)와 같은 컴파일된 코드 형태를 취할 수 있는데, 이는 이벤트 관리자(300)에 의해 호출되면 방법을 실행한다.
메모리(212)에서 생성되는 데이터 객체는 다양한 방식으로 서로 연관될 수 있다. 그러나, 일실시예에서, 이들은 계층적 트리 구조로 서로 관련된다. 다른 데이터 객체의 자식인 데이터 객체는 그들의 부모 데이터 객체로의 포인터를 관리할 수 있지만, 부모 객체는 그들의 모든 자식으로의 포인터 리스트를 관리할 필요가 없다. 후술할 바와 같이, 자식으로부터 부모로의 이들 포인터는 더 이상 필요 없는 데이터 객체를 삭제하는 프로세스를 도울 수 있다.
복수의 회로 테스트의 실행에 기초하는 데이터 객체의 경우, 이벤트에 의해 암시되는 데이터의 논리적 그룹화(예: 테스트 결과의 그룹화)는 하나 이상의 하드웨어 그룹화를 포함할 수 있는데, 로트에 대한 그룹화, 웨이퍼와 DUT, 및 테스트 및 세부 테스트에 대응하는 테스트 결과의 그룹화와 같은 하나 이상의 테스트 그룹화 등이 있다.
데이터는 다양한 방식으로 데이터 객체에 관련될 수 있는데, 1) 데이터 객체 내에 데이터를 직접 저장하거나, 2) 데이터 객체에 관련되는(예를 들어, 포인터 또는 다른 수단에 의해 관련되는) 데이터 구조에 데이터를 저장하는 방식을 포함한다.
EDL 파일(304)에서, 데이터는 이벤트 속성으로서 저장된다. 따라서, 데이터 팝플레이터(200)가 EDL 파일(304)로부터 유도된 이벤트를 수신하면, 데이터 팝플레이터(200)는 이벤트 속성으로부터 데이터를 추출하여 이벤트에 대응하는 데이터를 추출할 수 있다. 회로 테스트의 경우, 추출된 데이터는 테스트 결과를 포함할 수 있다.
예시를 위해, 도 4는 DEL 파일(304)의 콘텐츠의 예시적 실시예를 도시하고 있는데, 여기서 기록된 이벤트와 관련되는 데이터의 일부는 테스트 결과를 포함한다. 도 5는 데이터 팝플레이터(200)가 도 4에 도시된 EDL 파일(304)의 콘텐츠로부터 생성될 수 있는 예시적 계층적 트리 구조를 도시하고 있다. 트리 구조(500)는 (각각 부모 "웨이퍼 객체"(506)로의 포인터를 관리할 수 있는) 2개의 로트 객체(502, 504) 및 (각각 로트 객체(502, 504)의 각 객체로의 포인터를 관리하는) 6 개의 장치 객체(508, 510, 512, 514, 516, 518)를 포함한다. 도시된 바와 같이, 이용 가능한 테스트 결과는 장치 객체(508, 510, 512, 514, 516, 518) 각각과 관련된다.
메모리(212)에 개별 데이터 아이템을 저장하는 것 외에도, 데이터 팝플레이터(200)는 테스트 데이터 통계치와 같은 데이터 통계치를 축적하고 (예를 들어, 데이터 객체 내에 데이터 통계치를 저장하거나, 데이터 객체와 관련되는 데이터 구조에 데이터 통계치를 저장함으로써) 데이터 통계치를 데이터 객체로 관련시킬 수 있다. 일실시예에서, 데이터 통계치는 데이터 팝플레이터(200)에 의해 축적되어 완전히 컴파일되면 데이터 객체로 관련될 수 있다. 다른 실시예에서는, 불완전한 데이터 통계치가 데이터 객체에 관련된 후 업데이트될 수 있다. 데이터 통계치와 유사하게, 데이터 팝플레이터(200)는 테스트 데이터 외삽(interpolation)과 같은 데이터 해석(interpretations)을 축적하고, 이들을 데이터 객체로 관련시킬 수 있다.
데이터 팝플레이터(200) 또는 데이터 포맷터(202, 204, 206, 208)가 통계치 및/또는 해석 데이터를 컴파일할지 여부의 선택은 통계치 또는 상이한 데이터 포맷의 해석의 유용성에 기초할 수 있다. 즉, 통계치 또는 해석이 복수의 데이터 포맷터(202, 204, 206, 208)에 의해 필요할 것 같으면, 데이터 팝플레이터(200)에 의해 통계치 또는 해석을 일단 컴파일하는 것이 최선인 경우가 흔하다. 한편, 포맷 특정인 통계치 및 해석은 데이터 포맷터(202, 204, 206, 208) 중 특정 포맷터에 의해 가장 잘 컴파일될 수 있다.
데이터 포맷터(202, 204, 206, 208)가 데이터 객체 및 데이터 팝플레이 터(200)에 의해 생성된 데이터에 액세스할 수 있는 많은 방식이 존재한다. 일실시예에서, 데이터 포맷터(202, 204, 206, 208)는 데이터 객체를 단순히 모니터링할 수 있다. 그러나, 이는 많은 메모리 대역폭을 요구할 수 있으며, 그다지 효율적이지 않은 경우가 흔하다. 바람직한 실시예에서, 데이터 팝플레이터(200)는 자신이 생성하는 데이터 객체로의 포인터를 발생시키고, 포인터를 통지 관리자(214)로 전달한다. 그 후, 통지 관리자(214)는 데이터 포맷터(202, 204, 206, 208)로 포인터를 분배한다.
통지 관리자(214)는 각 데이터 객체로의 하나의 포인터만을 수신하면 된다는 것을 유의하자. 그 후, 통지 관리자(214)는 포인터를 복제하거나, 데이터 포맷터(202, 204, 206, 208) 각각으로 브로드캐스팅할 수 있다. 이와 달리, 통지 관리자(214)는 데이터 포맷터(202, 204, 206, 208) 각각을 복제하거나 각각으로 브로드캐스팅할 수 있으며, 데이터 객체에 의해 표현되는 종류의 데이터에 대해 가입한 소정 데이터 포맷터(202, 204, 206, 208)에 대해서만 복제하거나 브로드캐스팅할 수 있다.
전형적으로, 데이터 팝플레이터(200)의 동작은 데이터 포맷터(202, 204, 206, 208)의 동작에 대해 우선 순위가 주어질 것이다. 데이터 객체 및 데이터가 저장되는 메모리(212)로의 액세스를 더 제어하기 위해, 데이터 팝플레이터(200)(또는 복수의 데이터 객체를 생성하고 데이터를 메모리(212)에 저장하는 다른 프로세스)에 데이터 객체 및 데이터로의 직접 액세스가 제공될 수 있다. 그러나, 다수의 데이터 포맷터(202, 204, 206, 208)에 데이터 객체 및 데이터로의 데이터 포맷터의 액세스를 조정/중재하는 구조화된 인터페이스를 통한 복수의 데이터 객체로의 액세스가 제공될 수 있다.
메모리(212)에서 관리되는 데이터 객체의 수를 줄이기 위해, 데이터 팝플레이터(200)는 데이터 객체의 보존을 모니터링할 수 있고, 데이터 객체를 참조하거나 액세스하는 어떠한 객체 또는 프로세스에 의해서도 더 이상 보존되지 않는 데이터 객체를 삭제할 수 있다. 일실시예에서, 데이터 객체는 포인터가 생성되어 데이터 객체를 참조할 때 보전되는 것으로 고려된다. 데이터 팝플레이터(200)는 데이터 객체의 생성에 따라 하나의 이러한 포인터를 생성할 수 있고, 통지 관리자(214)는 데이터 포맷터(202, 204, 206, 208)로 이 포인터의 추가적인 카피를 생성하여 분배할 수 있다. 또한, 데이터 팝플레이터(200)는 데이터 객체의 자식 객체가 생성되면 객체에 대한 포인터를 생성할 수 있다. 포인터가 생성됨에 따라, 특정 데이터 객체를 참조하는 다수의 포인터의 수가 (아마도 데이터 객체 자신 내에서) 관리될 수 있다. 그 후, 데이터 포맷터(202, 204, 206, 208) 및 다른 프로세스는 데이터 객체로의 액세스를 완료할 때 데이터 객체로의 그들의 데이터 포인터를 포기하도록 프로그래밍될 수 있고, 데이터 팝플레이터(200)는 모든 이러한 포인터가 해제될 때 데이터 객체를 삭제할 수 있다. 그들의 부모를 참조하는 자식 객체로 인해, 부로 객체는 그 자식이 먼저 삭제될 때까지 삭제될 수 없다.
전술한 관점에서, 도 6은 도 1에 도시된 방법과 유사한 방식인 방법(600)을 도시하고 있는데, 이는 테스트 환경에 특히 적합한 것이다. 이 방법(600)은 다음과 같이 진행한다. 적어도 하나의 DUT의 실행에 대응하는 정렬된 이벤트 시퀀스에 응답하여, 단계(602)에서 복수의 데이터 객체가 생성되고, 계층적 트리 구조로 서로 관련된다. 데이터 객체의 적어도 일부는 이벤트(예: 로트, 웨이퍼, DUT, 테스트 및/또는 세부 테스트 등)에 의해 암시되는 테스트 결과의 논리적 그룹화에 대응한다. 하나 이상의 데이터 객체를 생성한 후, 테스트 결과를 포함하는 이벤트에 대응하는 데이터는 단계(604)에서 계층적 트리 구조로 데이터 객체에 관련된다. 데이터 객체의 생성 동안 또는 그 후, 다수의 데이터 포맷터에는 계층적 트리 구조로 복수의 데이터 객체 및 데이터로의 액세스가 제공된다. 단계(606)을 참조하자.
도 3에 도시된 데이터 포맷터는 다양한 형태를 취할 수 있는데, ASCII(American standard Code for information interchange) 포맷터(202), XML(eXtensible Markup Language) 포맷터(204), EDL 포맷터(206) 및/또는 STDF(Standard Test Definition Format) 포맷터(208)와 같은 형태를 포함한다.
이 방법(600)에 의해 생성되는 계층적 트리 구조는 메모리(212)에 저장될 필요는 없지만, 데이터 생성/검색 프로세스를 현저히 가속하기 위해 저장하는 것이 대부분 유리할 것이다.
구현에 따라, 본 명세서(즉, 데이터 객체가 데이터의 논리적 그룹화에 기초하여 생성되고, 데이터 객체가 계층적 트리 구조로 서로 연관됨)에서 개시되는 데이터 모델은 특히 회로 테스트 관점에서 많은 장점을 제공할 수 있다. 예를 들어, 메모리의 데이터를 조직화하기 위해 개별 프로세스를 제공한 후, 복수의 데이터 포맷터에 대해 데이터가 이용 가능하도록 구성함으로써, 데이터를 판독하고 조직화해야 하는 오버헤드의 대부분이 데이터 포맷터로부터 제거되며, "메모리에서" 데이터 객체를 생성함으로써, 디스크에 저장되는 데이터보다 신속히 액세스될 수 있다. 이는 데이터 포맷터의 코드가 보다 가벼운 웨이트(lighter weight)가 되게 할 수 있으며, 새로운 데이터 포맷터에 의해 영향받을 수 있는 표준 데이터 모델도 제공한다. 또한, 이는 1) 데이터 팝플레이터 및 개별 데이터 포맷터로의 보다 쉬운 수정 및 패치를 가능하게 하며, 2) 이들 기능 유닛 각각의 병렬적이고 고속의 코딩을 가능하게 하고, 3) 각 기능 유닛을 코딩하는 데 에러 가능성을 감소시킨다(예를 들어, 각각은 보다 가벼운 가중치이므로, 유닛마다 테스트할 코드의 수가 적다). 또한, 실시간 테스트 환경에서 발생되기에 더 효율적인 형태로 테스터가 데이터를 발생시키게 하며, 보다 이용자 친화적이며 논리적으로 구분되는 형태로 테스트 데이터가 데이터 포맷터에 대해 이용 가능하게 구성한다.
본 명세서에서 개시되는 데이터 모델 및 데이터가 상주되고 이들로부터 제거되는 방식은 또한, 1) 복수의 데이터 포맷터가 공통 데이터 세트를 포맷하는 (즉, 이들 각각이 병렬로 데이터 세트를 포맷하는) 속도와, 2) 메모리의 실제 제한, 스토리지 및/또는 프로세싱 자원과의 균형을 맞추는 것을 돕는다. 회로 테스트 영역에서, 특히, SOC 테스터를 사용하여 파라메트릭(parametric) 테스트를 수행하는 경우, 10 내지 20개 정도의 적은 수의 칩을 테스트한 후, 잘 제공되는 컴퓨터 시스템조차도 자원 제한에 도달할 수 있는 정도 많은 데이터가 발생된다. 그러나, 본 명세서에서 개시되는 데이터 모델을 사용하고, 더 이상 필요치 않은 데이터 객체를 제거함으로써, 전형적으로 자원 제한을 피할 수 있다.
본 발명에 의하면, 복수의 데이터 포맷터가 액세스하더라도 메모리, 스토리지 및/또는 프로세싱 제한에 도달하지 않고 메모리, 스토리지 및/또는 프로세싱 자원이 효율적으로 사용할 수 있다.
Claims (15)
- i) 복수의 이벤트를 수신하고, ii) 상기 이벤트에 의해 암시되는(implied) 데이터의 논리적 그룹화에 적어도 일부가 대응하는 복수의 데이터 객체(data objects)를 메모리에서 생성하며, iii) 상기 이벤트에 대응하는 데이터를 상기 데이터 객체로 관련시키고, iv) 상기 데이터를 상기 메모리에 저장하는, 데이터 팝플레이터(data populator)와,i) 상기 데이터 객체에 액세스하고, ii) 자신이 수신하는 통지에 응답하여 상기 데이터 객체로 관련되는 상기 데이터를 검색하고 포맷하는, 다수의 데이터 포맷터(data formatters)와,상기 데이터 팝플레이터로부터 이벤트 표시를 수신하고 이벤트 통지를 하나 이상의 상기 데이터 포맷터에 제공하는, 통지 관리자를 포함하는장치.
- 제 1 항에 있어서,상기 데이터 팝플레이터에 의해 수신되는 상기 복수의 이벤트는 정렬된 이벤트 시퀀스(an ordered event sequence)인장치.
- 제 1 항에 있어서,상기 데이터 팝플레이터는 상기 데이터 객체를 다른 데이터 객체로 계층적 트리 구조로 관련시키는장치.
- 제 1 항에 있어서,상기 데이터 팝플레이터는 상기 이벤트의 속성으로부터 상기 이벤트에 대응하는 데이터를 추출하는장치.
- 제 1 항에 있어서,상기 데이터 팝플레이터는 자신이 생성하는 데이터 객체에 대한 포인터를 생성한 후, 상기 포인터를 상기 통지 관리자로 전달하며,상기 통지 관리자는 상기 포인터를 수신하고 상기 다수의 데이터 포맷터로 상기 포인터를 분배하는장치.
- 제 1 항에 있어서,i) 상기 복수의 이벤트에 대해 공유 라이브러리로 방법 호출(method call)을 구성하고, ii) 상기 복수의 이벤트를 상기 데이터 팝플레이터로 전달하는 이벤트 관리자를 더 포함하는장치.
- 제 1 항에 있어서,상기 데이터 팝플레이터는 또한,i) 상기 메모리에 저장되는 상기 데이터 객체의 보존을 모니터링하고, ii) 상기 데이터 객체가 참조하거나 액세스하는 어떠한 객체 또는 프로세스에 의해서도 더 이상 보존되지 않는 데이터 객체를 삭제하는장치.
- 제 1 항에 있어서,상기 다수의 데이터 포맷터가 상기 데이터 객체에 액세스하기 위해 사용하는 구조화된 인터페이스를 더 포함하는장치.
- i) 적어도 하나의 DUT(device under test)의 복수의 테스트 실행에 대응하는 정렬된 이벤트 시퀀스를 수신하고, ii) 상기 이벤트에 의해 암시되는 테스트 결과의 논리적 그룹화에 적어도 일부가 대응하는 복수의 데이터 객체를 생성하며, iii) 상기 데이터 객체를 다른 데이터 객체로 계층적 트리 구조로 관련시키고, iv) 테스트 결과를 포함하며 상기 이벤트에 대응하는 데이터를 계층적 트리 구조로 저장하는, 데이터 팝플레이터와,자신이 수신하는 통지에 응답하여 상기 계층적 트리 구조로 저장되는 테스트 결과를 검색하고 포맷하는, 다수의 데이터 포맷터와,상기 데이터 팝플레이터로부터 이벤트 표시를 수신하고 하나 이상의 상기 데이터 포맷터에 상기 이벤트 통지를 제공하는, 통지 관리자를 포함하는테스트 결과 포맷 장치.
- 제 9 항에 있어서,상기 계층적 트리 구조는 메모리에 저장되는테스트 결과 포맷 장치.
- 제 9 항에 있어서,상기 데이터 팝플레이터는 상기 이벤트의 속성으로부터 상기 이벤트에 대응하는 데이터를 추출하고,상기 추출된 데이터는 상기 테스트 결과를 포함하는테스트 결과 포맷 장치.
- 제 9 항에 있어서,상기 데이터 팝플레이터는 자신이 생성하는 데이터 객체에 대한 포인터를 생성한 후, 상기 포인터를 상기 통지 관리자로 전달하며,상기 통지 관리자는 상기 포인터를 수신하고 상기 다수의 데이터 포맷터로 상기 포인터를 분배하는테스트 결과 포맷 장치.
- 제 9 항에 있어서,i) 상기 정렬된 이벤트 시퀀스 중 다음 이벤트를 위한 공유 라이브러리에 대한 방법 호출을 구성하며, ii) 상기 정렬된 이벤트 시퀀스 중 다음 이벤트를 상기 데이터 팝플레이터로 전달하는 이벤트 관리자를 더 포함하는테스트 결과 포맷 장치.
- 제 9 항에 있어서,상기 데이터 팝플레이터는 또한,i) 상기 계층적 트리 구조로 저장되는 상기 데이터 객체의 보존을 모니터링하고, ii) 상기 데이터 객체를 참조하거나 액세스하는 어떠한 객체 또는 프로세스에 의해서도 더 이상 보존되지 않는 데이터 객체를 삭제하는테스트 결과 포맷 장치.
- 제 9 항에 있어서,상기 다수의 데이터 포맷터가 상기 데이터 객체에 액세스하기 위해 사용하는 구조화된 인터페이스를 더 포함하는테스트 결과 포맷 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/345,040 | 2006-01-31 | ||
US11/345,040 US7519887B2 (en) | 2006-01-31 | 2006-01-31 | Apparatus for storing and formatting data |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070079057A true KR20070079057A (ko) | 2007-08-03 |
Family
ID=38282431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070010289A KR20070079057A (ko) | 2006-01-31 | 2007-01-31 | 테스트 결과 포맷 장치 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7519887B2 (ko) |
JP (1) | JP2007207245A (ko) |
KR (1) | KR20070079057A (ko) |
CN (1) | CN101030213B (ko) |
DE (1) | DE102007004848A1 (ko) |
TW (1) | TWI427499B (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070179970A1 (en) * | 2006-01-31 | 2007-08-02 | Carli Connally | Methods and apparatus for storing and formatting data |
US20070192346A1 (en) * | 2006-01-31 | 2007-08-16 | Carli Connally | Apparatus for storing variable values to provide context for test results that are to be formatted |
US20080270401A1 (en) * | 2007-04-26 | 2008-10-30 | Kristin Petersen | Method and Apparatus for Displaying Sorted Test Data Entries |
US20080270885A1 (en) * | 2007-04-26 | 2008-10-30 | Kristin Petersen | Method and Apparatus for Displaying Sorted Test Data Entries |
US20080282226A1 (en) * | 2007-05-07 | 2008-11-13 | Carli Connally | Methods and apparatus for displaying a dynamically updated set of test data items derived from volatile or nonvolatile storage |
DE102009019442A1 (de) * | 2009-02-25 | 2010-09-23 | Siemens Aktiengesellschaft | Testdatengenerator |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0646801B1 (en) * | 1993-09-20 | 1999-08-11 | Hewlett-Packard GmbH | Testing apparatus for testing and handling a multiplicity of devices |
US6370493B1 (en) * | 1998-09-10 | 2002-04-09 | Lsi Logic Corporation | Simulation format creation system and method |
US6282544B1 (en) * | 1999-05-24 | 2001-08-28 | Computer Associates Think, Inc. | Method and apparatus for populating multiple data marts in a single aggregation process |
EP1264265A2 (en) * | 2000-04-18 | 2002-12-11 | Hewlett-Packard Company | Activity report generation |
US20020178184A1 (en) * | 2001-05-22 | 2002-11-28 | Allan Kuchinsky | Software system for biological storytelling |
US7080083B2 (en) * | 2001-12-21 | 2006-07-18 | Kim Hong J | Extensible stylesheet designs in visual graphic environments |
US7249133B2 (en) * | 2002-02-19 | 2007-07-24 | Sun Microsystems, Inc. | Method and apparatus for a real time XML reporter |
US7421360B2 (en) * | 2006-01-31 | 2008-09-02 | Verigy (Singapore) Pte. Ltd. | Method and apparatus for handling a user-defined event that is generated during test of a device |
US20070179970A1 (en) * | 2006-01-31 | 2007-08-02 | Carli Connally | Methods and apparatus for storing and formatting data |
US7328137B2 (en) * | 2006-01-31 | 2008-02-05 | Verigy (Singapore) Pte. Ltd. | Methods and systems for derivation of missing data objects from test data |
US20070192346A1 (en) * | 2006-01-31 | 2007-08-16 | Carli Connally | Apparatus for storing variable values to provide context for test results that are to be formatted |
US7676347B2 (en) * | 2006-01-31 | 2010-03-09 | Verigy (Singapore) Pte. Ltd. | Systems and methods for accumulation of summaries of test data |
-
2006
- 2006-01-31 US US11/345,040 patent/US7519887B2/en active Active
-
2007
- 2007-01-29 TW TW096103193A patent/TWI427499B/zh active
- 2007-01-30 JP JP2007020088A patent/JP2007207245A/ja active Pending
- 2007-01-30 CN CN2007100027536A patent/CN101030213B/zh not_active Expired - Fee Related
- 2007-01-31 KR KR1020070010289A patent/KR20070079057A/ko not_active Application Discontinuation
- 2007-01-31 DE DE102007004848A patent/DE102007004848A1/de not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20070180146A1 (en) | 2007-08-02 |
TWI427499B (zh) | 2014-02-21 |
TW200809566A (en) | 2008-02-16 |
US7519887B2 (en) | 2009-04-14 |
CN101030213B (zh) | 2011-02-23 |
JP2007207245A (ja) | 2007-08-16 |
DE102007004848A1 (de) | 2007-08-09 |
CN101030213A (zh) | 2007-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20030093716A1 (en) | Method and apparatus for collecting persistent coverage data across software versions | |
US7949901B2 (en) | Program and apparatus for generating system test specifications | |
US20030028856A1 (en) | Method and apparatus for testing a software component using an abstraction matrix | |
KR20070079058A (ko) | 이용자-정의 이벤트 처리 장치 및 방법 | |
KR20070079057A (ko) | 테스트 결과 포맷 장치 | |
KR20070079063A (ko) | 변수 값 저장 장치 및 방법 | |
CN113792026B (zh) | 数据库脚本的部署方法、装置及计算机可读存储介质 | |
KR20070079062A (ko) | 테스트 데이터 개요 누적 시스템 및 테스트 데이터 개요누적 방법 | |
KR20070079065A (ko) | 데이터를 저장하고 포맷하는 방법 및 장치 | |
JPH07271641A (ja) | ゲージ集合体を使ったシステム分析方法 | |
KR20070079013A (ko) | 테스트 결과 관계 추론 방법 및 다수의 머신 판독가능 매체 | |
CN114297074A (zh) | 一种基于动态配置实现功能、接口、性能自动测试方法 | |
TWI424175B (zh) | 用以格式化測試資料之系統和方法及機器可讀媒體 | |
US20070180200A1 (en) | Method and system for managing access to a data store | |
US7403874B2 (en) | Method and system for prioritizing formatting actions of a number of data formatters | |
Graux et al. | SPARUB: SPARQL UPDATE Benchmark | |
JP3171233B2 (ja) | データ処理システム、そのデータ処理装置および方法 | |
CN114817049A (zh) | 字节码获取方法、计算机设备、存储介质和程序产品 | |
CN114721958A (zh) | 一种多数据库系统的接口自动化测试方法及终端 | |
CN118519674A (zh) | 系统差异数据的获取方法及装置 | |
CN118567978A (zh) | 一种数据库自动化测试方法及系统 | |
WO1991001530A2 (en) | Methods and apparatus for checking the integrity of data base data entries | |
Hoftun | Level-2 system: Programmers-users manual |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |