KR20230038407A - 상이한 테스트 활동이 테스트 대상 장치 리소스의 서브세트를 활용하는, 하나 이상의 테스트 대상 장비를 테스트하는 자동 테스트 장비, 프로세스 및 컴퓨터 프로그램 - Google Patents

상이한 테스트 활동이 테스트 대상 장치 리소스의 서브세트를 활용하는, 하나 이상의 테스트 대상 장비를 테스트하는 자동 테스트 장비, 프로세스 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20230038407A
KR20230038407A KR1020227014223A KR20227014223A KR20230038407A KR 20230038407 A KR20230038407 A KR 20230038407A KR 1020227014223 A KR1020227014223 A KR 1020227014223A KR 20227014223 A KR20227014223 A KR 20227014223A KR 20230038407 A KR20230038407 A KR 20230038407A
Authority
KR
South Korea
Prior art keywords
test
equipment
activities
automatic
controller
Prior art date
Application number
KR1020227014223A
Other languages
English (en)
Inventor
요헨 리보이르
Original Assignee
주식회사 아도반테스토
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 주식회사 아도반테스토 filed Critical 주식회사 아도반테스토
Publication of KR20230038407A publication Critical patent/KR20230038407A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2851Testing of integrated circuits [IC]
    • G01R31/2855Environmental, reliability or burn-in testing
    • G01R31/286External aspects, e.g. related to chambers, contacting devices or handlers
    • G01R31/2868Complete testing stations; systems; procedures; software aspects
    • G01R31/287Procedures; Software aspects
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2851Testing of integrated circuits [IC]
    • G01R31/2855Environmental, reliability or burn-in testing
    • G01R31/2872Environmental, reliability or burn-in testing related to electrical or environmental aspects, e.g. temperature, humidity, vibration, nuclear radiation
    • G01R31/2879Environmental, reliability or burn-in testing related to electrical or environmental aspects, e.g. temperature, humidity, vibration, nuclear radiation related to electrical aspects, e.g. to voltage or current supply or stimuli or to electrical loads
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31908Tester set-up, e.g. configuring the tester to the device under test [DUT], down loading test patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2263Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/2733Test interface between tester and unit under test

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Environmental & Geological Engineering (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

본 발명에 따른 일 실시예는 하나 이상의 테스트 대상 장치를 테스트하는 자동 테스트 장비를 포함한다. 자동 테스트 장비는 복수의 테스트 활동을 포함하는 하나 이상의, 바람직하게는 복수의 테스트 시나리오를 자동으로, 동적으로 생성하도록 구성된다. 상이한 테스트 활동은 중첩될 수 있는 테스트 대상 장치의 리소스의 서브세트를 활용한다. 자동 테스트 장비는 복수의 테스트 시나리오를 생성하도록 구성되어, 테스트 시나리오의 복수의 테스트 활동과 관련된 테스트 대상 장치의 리소스가 서로 충돌하지 않는다.

Description

상이한 테스트 활동이 테스트 대상 장치 리소스의 서브세트를 활용하는, 하나 이상의 테스트 대상 장비를 테스트하는 자동 테스트 장비, 프로세스 및 컴퓨터 프로그램
본 발명에 따른 실시예는 자동 테스트 장비에 관한 것이다. 본 발명에 따른 추가적인 실시예는 시스템 수준 테스트에 관한 것이다. 본 발명에 따른 추가적인 실시예는 온-칩 시스템 테스트에 관한 것이다. 본 발명에 따른 실시예는 커버링 테스트에 관한 것이다.
일부 장치가 구조 및/또는 파라미터 테스트를 통과했음에도 시스템 수준 테스트(System Level Test, SLT)에 실패한다는 것이 실증적인 관찰 또는 진실이다. 이는 일반적으로 구조 테스트 동안의 비현실적인 테스트 조건에서 기인한다.
예를 들어, 구조 테스트 동안의 다이 영역에 걸친 활동 패턴은 시스템 수준 테스트와 비교하여 매우 다르다. 구조 테스트는 대부분의 시간을 주파수가 매우 낮은 시프트 동작에 사용하지만, 패턴 활동은 매우 높다. 이로 인해 전원 공급 장치의 부자연스러운 부하가 발생하므로 다이의 위치 및 시간에 대한 전압 프로파일이 비현실적이게 된다.
추가적인 예시는, 자동 테스트 패턴 생성의 어려움으로 인해 전력 도메인 교차 및/또는 시간 도메인 교차가 종종 구조 테스트에 포함되지 않는다는 것이다. 이 영역의 오류는 감지되지도 않고 검출되지도 않을 것이다.
구조 테스트는 우수한 결함 검출 능력에 최적화되어 있지만, 비현실적인 테스트 조건으로 어려움을 겪고 있다. 대조적으로, SLT는 진정한(legitimate) 사용자 시나리오로만 구성된다. 임의의 결함이 있는 모델을 알지 않고도, SLT의 실패는 진정으로 나쁜 장치를 식별한다는 데 동의하거나 일반적으로 믿어진다.
테스트 대상 장치(DUT)가 공급 전압, 주파수, 온도와 같은 하나의 선택된 환경에서만 가능한, 사용 및 시나리오의 작은 서브세트만 실행하기 때문에, SLT는 완전하지 않다는 점과 같이, 시스템 수준 테스트에는 다소간 단점이 있다.
또다른 단점은, 실패 감지 및 검출 사이의 시간이 상당히 길 수 있거나 및/또는 모든 활동의 정확한 순서를 알 수 없고 및/또는 SLT의 시뮬레이션 시간이 너무 길기 때문에, SLT 실패는 디버그하기 어렵다는 것이다.
그리고, SLT는 실행 시간이 매우 길며, 10분 이상도 예외는 아니다.
또한, 각 DUT에 대해 많은 수의 시스템 보드를 유지 관리해야 하기 때문에, SLT는 테스트 하우스에 배치하기 어렵다.
가능한 사용자 시나리오, 실행 시간의 길이 및 실용성 간에 더 나은 트레이드오프를 제공하는 시스템 수준 테스트의 개선이 필요하다.
본 발명에 따른 일 실시예는 가령 시스템 온 칩(SoC)와 같은, 하나 이상의 테스트 대상 장치를 테스트하는 자동 테스트 장비를 제공한다. 자동화된 테스트 장비(ATE)는 하나 이상의, 바람직하게는 복수의 테스트 활동을 포함하는 복수의 테스트 시나리오를 자동으로, 동적으로 생성하도록 구성된다. 상이한 테스트 활동, 가령 A1, A2, A3은 중첩할 수 있는 DUT 리소스의 서브세트(가령, A1: CPU2, Mem3, A2: Mem3, A3: MPEG)를 사용한다. 자동화된 테스트 장비는 복수의 테스트 시나리오를 사용하도록 구성되어서, 테스트 시나리오의 복수의 테스트 활동에 관한 DUT의 리소스는 서로 충돌하지 않는다.
온 칩 시스템 테스트(OCST)는 SLT보다 관련 문제를 더 많이 찾도록 예상되는데, 이는 SLT보다 더 다양한 진정 테스트 조건(legitimate test condition)에 DUT를 노출시키기 때문이다. 실제 사용 사례를 시뮬레이션하거나, 실제 사용 사례의 일부일 수 있는 테스트 활동의 조합에서 문제가 발생하는 경우, 문제가 관련성이 있는 것으로 고려될 수 있다.
OCST는 결함을 감지하기 위한 공급 전압 및 주파수와 같은 외부 테스트 조건 및/또는 워크로드 관련 결함을 감지하기 위해 가령 데이터 이동의 속도와 같은 테스트 활동의 강도와 같은 내부 테스트 조건을 변경할 수 있다. 결함이 감지되는 경우, OCST는 결함 동작을 검출하는 우수한 가관측성을 제공한다.
OCST는 어떤 SLT의 서브세트가 실패했는지 찾을 수 있음을 보여줌으로써 그 효과를 증명할 수 있다. 다시 말해서, OCST는 SLT의 실패한 서브세트를 찾을 수 있다.
이상적으로, OCST는 가령, 디버깅을 위해, 시뮬레이션 환경에서 재생산될 수 있다. OCST는 테스트용 설계(DFT), 디버그용 설계(DFD), 스캔 체인, 로직 내장 자체 테스트(Logit Built-In Self-Tests, LBIST) 및/또는 메모리 내장 셀프 테스트(Memory Built-In Self-Test, MBIST)와 같은 기존 온 칩 리소스도 활용해야 한다. 또한, 멀티 쓰레딩(multi-threading)이 멀티 코어 DUT 및 다수의 ATE 리소스 사이의 인터페이스에 지원될 수 있다.
바람직한 실시예에서, 주어진 테스트 시나리오의 복수의 테스트 활동은 동시에 실행되도록 구성된다.
ATE는 테스트 활동이 중첩되지 않는 DUT 리소스를 사용하는 테스트 시나리오를 생성하도록 구성되어 있으므로, 테스트 시나리오의 테스트 활동이 서로 충돌하지 않는다. 즉, 주어진 테스트 시나리오의 테스트 활동을 동시에 실행함으로써 테스트의 속도를 높일 수 있다.
본 발명의 일반적인 아이디어는 테스트 활동 강도 및 동시성의 다양한 조합의 데이터 블록 이동 또는 내장 자체 테스트와 같은 DUT 리소스를 사용하여 DUT에서 다수의 간단하고 현실적인 자체 검사 테스트 활동을 동시에 실행하는 것이다. 각 테스트 활동은 선택되거나 관련된 IP 블록을 체크할 수 있을 뿐만 아니라, 공급 부하, 클록 트리 및 열 커플링(thermal coupling)을 통해 다른 블록의 테스트 조건에 기여한다.
일 실시예에 따르면, 하나 이상의 테스트 활동은 전압, 속도, 데이터 전송의 크기, 데이터 전송 간의 시간, 총 데이터 전송이 분할되는 블록 크기 등과 같은 하나 이상의 테스트 파라미터와 관련된다. 테스트 파라미터는 테스트 활동의 작동 상태를 제어한다. 테스트 파라미터는 온/오프, 5V, 50GB/s 등과 같은 각각의 테스트 파라미터 값으로 특성화되거나 및/또는 가령 테스트 파라미터 값의 동적 생성과 같은 하나 이상의 제약 조건 및 제한과 연관된다.
상이한 파라미터 값을 갖는 동일한 테스트 활동은 하나 이상의 테스트 시나리오를 포함하는 테스트 시퀀스에서 실행될 수 있다. 테스트 활동은 하나 이상의 테스트 파라미터 및/또는 제약 조건과 연관될 수 있다. 예를 들어, 전압과 같은 테스트 파라미터 값, 즉 테스트 파라미터의 값은 테스트 활동마다 달라질 수 있다. 테스트 활동은, 가령 DUT 또는 DUT 리소스를 보호하기 위해, 또는 실사용에서는 발생하지 않을 시나리오를 피하기 위해 몇몇 제약 조건이나 제한을 가질 수도 있다. 이러한 제약 조건은 제한된 쓰기 속도, 온도 제한, 제한된 메모리 사용 등일 수 있다.
일 실시예에 따르면, 하나 이상의 테스트 활동은 너무 낮은 전압 값 및/또는 너무 빠른 주파수와 같이 사전 정의된 제한 또는 칩 사양을 벗어나는 하나 이상의 테스트 파라미터 값으로 특성화된다.
사전 정의된 제한 또는 칩 사양을 벗어나거나 살짝 벗어나는 DUT의 테스트 결과는 사전 정의된 제한 또는 칩 사양 내의 DUT의 성능과 서로 연관될 수 있다. 즉, 칩 사양을 벗어나는 좋은 테스트 결과의 DUT는 칩 사양 내의 DUT의 좋은 성능의 힌트가 될 수 있다. 대조적으로, 칩 사양을 벗어나는 테스트의 실패는 칩 사양 내의 테스트 불합격의 확실한 힌트나 증거가 아니라, 약점을 나타내는 것으로 고려될 수 있다.
일 실시예에 따르면, 주어진 테스트 시나리오의 복수의 테스트 활동은, 사용 또는 상이한 테스트 활동의 테스트 파라미터 값의 충돌 요구사항을 피하기 위해 주어진 테스트 시나리오의 복수의 테스트 활동과 연관된 테스트 대상 장치의 리소스가 서로 충돌하지 않는다는 제약 조건 하에서 무작위로 선택된다.
테스트 시나리오 내 테스트 활동의 무작위 혼합은 실제 작업 환경에서 발생하는 활동 또는 테스트 활동 간의 알려지지 않은 상호작용을 테스트하기 위해 필요하다. 파라미터화 가능한 테스트 활동의 무작위화는 로컬 워크로드의 다수의 혼합을 커버하며, 따라서 다수의 시스템-수준 결함에 책임이 있는 것으로 고려되는 많은 실제 워크로드 패턴을 모방한다.
바람직한 실시예에서, 자동 테스트 장비는 테스트 대상 장치의 리소스들 간의 충돌 발생을 방지하기 위해 테스트 시나리오를 생성하기 위한 제약 조건 솔버(constraint solver)를 포함한다.
각 테스트 활동은 테스트 파라미터 및 선택적인 제약 조건을 가질 수 있다. 예를 들어, 데이터 블록 기록 및 재판독 활동은 초기 시간 지연, 블록 크기, 시작 주소, 서브블록 크기, 재판독 전의 시간 지연의 테스트 파라미터를 가질 수 있다. 제약 조건은 다수의 테스트 활동의 테스트 파라미터를 포함하는 테스트 시나리오 수준에 있을 수도 있다.
온 칩 OCST 컨트롤러 또는 OSCT 카드와 같은 워크스테이션 또는 컨트롤러는 테스트 활동으로부터 자동으로 테스트 시나리오를 생성하기 위해 제약 조건 솔버를 사용할 수 있다. 제약 조건 솔버는 리소스 제약 조건을 위반하지 않고 동시에 공존할 수 있는 테스트 활동을 매칭한다.
바람직한 실시예에서, 하나 이상의 테스트 활동은, 가령 내부 및/또는 외부 버스에 대한 트래픽 생성기와 같은 온 칩 스트레스 생성기와 같이, 테스트 대상 디바이스에 배치되는 스트레스 생성기를 포함한다.
예를 들어, 기존 또는 새로운 테스트용 설계(DFT) 구조는 검출 가능성을 높이기 위해(또는 더 많은 결함 검출을 위해) 가관측성을 높이고, 제어된 스트레스를 생성할 수 있다. 스트레스 생성기는 내부 버스에 대한 트래픽 생성기 및/또는 외부 입력의 누락으로부터 트래픽을 모방하기 위해 외부 입력에 대한 트래픽 생성기를 포함할 수 있다. 스트레스 생성기는 선택된 래핑된 IP 블록에서 메모리 또는 로직 내장 자체 테스트(MBIST, LBIST)와 같은 내장 자체 테스트(BIST)를 실행할 수 있다. 또한, 스트레스 생성기는 입력/출력(I/O) 루프백 테스트를 실행할 수 있다. 또한, 스트레스 생성기는 IEEE1500 래퍼와 같은 래퍼(wrapper)를 사용하여 IP 블록을 분리하고, 스캔 체인을 선형 피드백 시프트 레지스터(linear-feedback shift register, LFSR)로 전환할 수 있다.
일 실시예에 따르면, 자동 테스트 장비는 가령 테스트 시나리오의 테스트 단계의 시퀀스와 같은 테스트 시퀀스를 생성하도록 구성된다.
테스트 시나리오의 테스트 시퀀스는 가능한 실제 워크로드 조합을 모방하기 위한 동시 테스트 활동의 다양한 혼합을 테스트하기 위해 생성된다.
일 실시예에 따르면, 테스트 시퀀스는 동일한 테스트 활동의 둘 이상의 테스트 시나리오를 포함하며, 테스트 시나리오는 적어도 하나의 테스트 파라미터 값에 의해 달라진다.
테스트 시퀀스는 테스트 결과 상의 테스트 파라미터의 영향을 테스트하기 위해 동일한 테스트 활동과 상이한 테스트 파라미터를 갖는 테스트 시나리오를 포함할 수 있다. DUT의 IP 블록의 테스트 파라미터 값을 하나만 변경하는 것은 또한 다른 DUT의 IP 블록에 영향 또는 효과를 줄 수 있다.
또한, 동일한 테스트 활동이지만 다른 테스트 파라미터 값을 갖는 테스트 시나리오를 수행하면 테스트 평가 프로세스에서 결함이 있는 IP 블록을 찾는 데 더 도움이 될 수 있다.
바람직한 실시예에서, 테스트 시퀀스의 복수의 테스트 시나리오는 실제 워크로드 패턴을 모방하기 위해, 가령 자동 테스트 장비 또는 컨트롤러에 의해 무작위로 정렬 및/또는 선택된다.
테스트 시퀀스의 테스트 시나리오의 랜덤화는 실제 워크로드를 창조 또는 생성함으로써 테스트 프로세스를 더 개선할 수 있다. 이상적으로, 테스트 시나리오는 서로 독립적이며, 즉 테스트 시나리오의 실행 순서의 변화는 DUT의 행동을 변경하도록 예상되지 않는다. 시나리오의 실행 순서의 랜덤화는, 가령, 이전 테스트 시나리오의 잔여 열 또는 잔여 데이터가 현재 테스트 시나리오에 영향을 미칠 수 있는지 여부를 테스트할 수 있다.
바람직한 실시예에서, 자동 테스트 장비는 테스트 시퀀스를 생성하도록 구성되어, 테스트 시퀀스는 테스트 데이터를 수집하기 위해 컨트롤러에 의해 실행되도록 구성된다.
생성된 테스트 시퀀스는 컨트롤러 또는 OCST 컨트롤러에 의해 실행된다. 컨트롤러의 과제는 다수의 테스트 활동의 실행을 트리거하고, 성공/실패 결과 및/또는 측정 결과와 같은 테스트 결과를 판독하는 것이다. 컨트롤러는 어떤 테스트 시나리오가 어떤 테스트 파라미터 값으로 실행되는지 알고 있다. 이는 오류가 발생할 때 디버깅을 위해 필요하다.
일 실시예에 따르면, 컨트롤러는 가령 운영 체제를 갖는 온 칩 프로세서 또는 가령 자동 테스트 장비 및 테스트 대상 장치와 통신하도록 구성된 자동 테스트 장비의 일부인 컨트롤러 카드이다.
컨트롤러는 DUT에 테스트 시퀀스를 실행하고, 측정 데이터 또는 측정 결과를 ATE에 제공한다. 운영 체제를 갖는 온 칩 프로세서 또는 ATE의 컨트롤러 카드는 DUT로부터 수집된 데이터 또는 테스트 결과 또는 측정 결과를 ATE에 통신한다.
바람직한 실시예에서, 컨트롤러는 메모리 데이터 및/또는 가령 온 칩 센서 데이터와 같은 테스트 대상 장치 센서 데이터와 같은 DUT 데이터를 판독하도록 구성된 하나 이상의 인터페이스를 포함한다. 따라서, ATE는 DUT 데이터 및/또는 DUT 센서 데이터를 판독하도록 컨트롤러를 셋업하도록 구성된다.
인터페이스를 통해 DUT 테스트 데이터 및/또는 DUT 센서 데이터를 판독하는 것은 또한 예측 결과 데이터 또는 예측 센서 데이터를 결과 데이터 및/또는 결과 센서 데이터와 비교하게 함으로써 테스트를 개선한다. 컨트롤러, OCST 컨트롤러는 바람직하게는 선택적인 테스트 운영 체제를 갖는 온 칩 프로세서이며, 이는 온 칩 센서 데이터를 판독하기 위해 온 칩 IJTAG와 인터페이스한다.
일 실시예에 따르면, 컨트롤러는 테스트 대상 장치 영역에 걸쳐 분포된 하나 이상의 센서에 인터페이스하여, 컨트롤러는 하나 이상의 센서의 센서 테스트 데이터를 판독하도록 구성된다. 따라서, 자동 테스트 장비는 컨트롤러가 포함하는 테스트 대상 장치 영역에 걸쳐 분포된 하나 이상의 센서의 센서 테스트 데이터를 판독하도록 컨트롤러를 셋업하도록 구성된다.
컨트롤러가 DUT 또는 ATE 워크스테이션과 통신하는 OCST 컨트롤 카드거나 온 칩 프로세서거나 관계없이, 컨트롤러는 국소적 이상(local abnormality)을 검출하기 위해 DUT의 다이 영역에 걸쳐 분포된 추가적인 센서를 포함할 수 있다. 적용된 센서는, 가령, 온도, 전류 및/또는 전압 센서를 포함할 수 있다.
바람직한 실시예에서, 컨트롤러는, 가령, 수집된 테스트 데이터가 하나 이상의 사전 정의된 임계치를 초과하는 것과 같은 사전 결정된 조건을 충족하는 경우, 저장된 시스템 데이터, 프로그램 카운터 또는 메모리 레지스터 정보와 같은 추가 데이터를 수집하는 것과 같이 반응하도록 구성될 수 있다. 따라서, 자동화된 테스트 장비는 수집된 테스트 데이터가 사전 결정된 조건을 충족하는 경우 반응하도록 컨트롤러를 셋업하도록 구성될 수 있다.
예를 들어, 컨트롤러는 현재/최대/최소 피크 온도와 같은 온도값, 현재 /최대/최소 피크 전압과 같은 전압값, 및/또는 가령 면도기 회로에서의 타이밍 위반(timing violation)을 위한 선택적인 임계치 경보 능력을 갖는 하나 이상의 센서와 인터페이스할 수 있다. 경보 능력은 예를 들어, 디버깅을 단순화하기 위해, 가령 프로그램 카운터, 메모리 컨트롤러 레지스터와 같은 중요한 시스템 데이터의 저장을 트리거할 수 있다.
일 실시예에 따르면, 컨트롤러는 수집된 테스트 데이터를 자동 테스트 장비에 통신하도록 구성된다.
테스트 결과 데이터 또는 측정 데이터 또는 측정 데이터나 테스트 결과 데이터에 의해 트리거된 임의의 수집된 데이터에 관계 없이, 수집된 테스트 데이터는 컨트롤러에 의해 ATE에 제공된다.
일 실시예에 따르면, 컨트롤러 또는 자동 테스트 장비는 테스트 활동 제약 조건 및/또는 수집된 테스트 데이터에 기초하여 테스트 파라미터 값을 동적으로 생성하도록 구성된다.
ATE 또는 컨트롤러는 테스트 프로세스 동안 기존 테스트 파라미터 값을 수정하거나 하나 이상의 테스트 시나리오를 새로운 테스트 파라미터 값을 갖는 테스트 시퀀스에 추가하기 위해 수집된 테스트 데이터를 분석할 수 있다. 새로운 테스트 파라미터 값의 생성은 주어진 테스트 활동의 제약 조건을 고려할 수 있다.
바람직한 실시예에서, 컨트롤러 또는 자동 테스트 장비는, 가령 최소 커버링 세트 문제를 해결하거나, 중복성(redundancy)를 감소시키거나 및/또는 테스트 활동에 절대 실패하지 않도록 테스트 시퀀스를 최적화하기 위해, 수집된 테스트 데이터를 분석하도록 구성된다.
수집된 테스트 데이터는 테스트 파라미터 값을 동적으로 생성하는 데 사용될 뿐만 아니라, 테스트 시퀀스를 최적화하는 데 사용되기도 한다. 테스트의 일반적인 아이디어는 테스트 실패의 발생에 영향을 미치는 테스트 파라미터를 식별하는 것이다. 중복 테스트 활동은 가령 단일 또는 소규모 테스트 파라미터의 영향을 평가하는 데 도움이 될 수 있다. 가장 영향력 있는 테스트 활동 및/또는 테스트 시나리오를 식별한 후 테스트 시나리오의 수 또는 테스트 시나리오의 테스트 활동은 테스트 시퀀스의 실행 시간을 감소시키기 위해 테스트 활동의 최소 세트로 감소될 수 있다.
일 실시예에 따르면, 자동 테스트 장비의 컨트롤러는 사전 정의된 제한 내에서 시스템 수준 테스트의 결과와, 가령 테스트 시간을 최적화하기 위해 사전 정의된 제한 내의 및/또는 밖의 테스트 대상 장치 데이터, 테스트 대상 장치 센서 데이터, 센서 테스트 데이터와 같은 수집된 테스트 데이터의 상호연관성을 비교하거나 계산하도록 구성된다.
테스트는 사전 정의된 제한 또는 DUT의 사양 밖에서 수행되며, 사전 정의된 제한 내의 시스템 수준 테스트와 비교된다. 사전 정의된 제한 범위를 벗어난 긍정적인 테스트 결과의 테스트 활동은 사전 정의된 제한 내의 시스템 수준 테스트를 통과했음을 나타낼 수 있다. 사전 정의된 제한 내의 테스트 결과와 사전 정의된 제한을 벗어나는 테스트 결과를 비교하면 테스트 시나리오의 수 및/또는 테스트 시나리오 내의 테스트 활동을 줄이는 데 도움이 될 수 있다. 또한 테스트 파라미터 값이 사전 정의된 제한을 벗어날 수 있는 범위를 식별하거나 결정하여, 사전 정의된 제한 안 또는 바깥에서 수행된 테스트 간에 좋은 상관 관계를 제공하는 데 도움이 될 수 있다.
바람직한 실시예에서, 자동 테스트 장비는 인공지능 또는 머신러닝 유닛을 포함하며, 컨트롤러 또는 자동 테스트 장비는 시스템 수준 테스트의 결과 및/또는 수집된 테스트 데이터 및/또는 시스템 수준 테스트와 수집된 테스트 데이터의 비교로 인공지능 또는 머신러닝 유닛을 훈련하여 테스트 시퀀스를 최적화하도록 구성된다.
또한, 바람직한 실시예에서, 훈련된 인공지능 또는 머신러닝 유닛은 수집된 테스트 데이터에 기초하여 시스템 수준 테스트의 결과를 예측하도록 구성된다.
인공지능 또는 머신러닝 유닛은 시스템 수준 테스트 결과를 수집된 테스트 데이터와 비교하기 위해, 수집된 테스트 데이터 및/또는 수집된 센서 데이터와 결합된 시스템 수준 테스트의 결과로 훈련되어, 수집된 테스트 데이터 또는 측정 데이터에 기초하여 시스템 수준 테스트 결과를 예측할 수 있다.
수집된 테스트 데이터에 기반한 시스템 수준 테스트의 결과의 예측을 사용하면 또한 테스트 시퀀스의 테스트 시나리오 내 테스트 활동의 수 및/또는 테스트 시나리오의 수를 감소시킬 수 있다.
바람직한 실시예에서, 컨트롤러 또는 자동 테스트 장비는, 가령 결함이 있는 테스트 대상 장치 및/또는 테스트 대상 장치 리소스의 결함을 식별하거나, 및/또는 테스트 대상 장비를 분류하는 것과 같이, 수집된 테스트 데이터를 분석해서 테스트 결과를 획득하도록 구성될 수 있다.
가령 통계적인 방법을 사용하여 수집된 테스트 데이터를 분석하면, DUT의 결함이 있는 IP 블록을 정의하거나 DUT의 IP 블록을 분류해야 할 수 있다.
바람직한 실시예에서, 훈련된 인공지능 또는 머신러닝 유닛은 테스트 시퀀스의 최적화 및/또는 테스트 결과의 획득을 위해 수집된 테스트 데이터를 분석하도록 구성된다.
이미 훈련된 머신 러닝 유닛은 또한 DUT의 IP 블록을 분류하거나 및/또는 DUT의 결함이 있는 IP 블록을 정의하여 통계적 방법을 개선하거나 및/또는 테스트 시퀀스를 개선할 수 있다.
본 발명에 따른 추가적인 실시예는 각각의 방법 및 각각의 컴퓨터 프로그램을 생성한다.
하지만, 방법은 해당 자동 테스트 장비와 동일한 고려 사항을 기반으로 한다는 것에 유의해야 한다. 또한, 방법은 개별적으로 또는 조합을 이용하여, 자동 테스트 장비에 관해 본 명세서에서 설명된 특징, 기능 및 세부 사항 중 어느 것에 의해 보완될 수 있다.
본 발명에 따른 실시예들은 이후에 첨부된 도면을 참조하여 설명될 것이다.
도 1은 일 실시예에 따른, 하나 이상의 테스트 대상 장치를 테스트하는 자동 테스트 장비를 포함하는 테스트 장치의 개략도를 도시한다.
도 2는 일 실시예에 따른, 테스트 장치에 의해 수행되는 테스트 프로세스를 설명하는 블록도를 도시한다.
도 3은 일 실시예에 따른, 예시적인 테스트 활동 표, 제약 조건 솔버의 입력을 도시한다.
도 4는 일 실시예에 따른, 제약 조건 솔버에 의해 사용되는 예시적인 리소스 충돌 표를 도시한다.
도 5는 일 실시예에 따른, 제약 조건 솔버에 의해 사용되는 예시적인 테스트 시나리오 표를 도시한다.
도 6은 일 실시예에 따른, 제약 조건 솔버에 의해 사용되는 예시적인 테스트 단계 표를 도시한다.
도 7은 일 실시예에 따른, 제약 조건 솔버에 의해 생성되는 예시적인 테스트 시퀀스를 갖는 비어 있는 테스트 결과 테이블을 도시한다.
도 8은 일 실시예에 따른, 테스트 단계의 수를 최적화하기 위해 사용되는 테스트 단계당 실패 표의 예시를 도시한다.
도 9는 일 실시예에 따른, SLT 테스트와 OCST 테스트 간의 비교 표를 도시한다.
도 10은 일 실시예에 따른, 머신 러닝 모듈을 위한 훈련 데이터 세트로 사용되는, 테스트 데이터를 SLT 결과와 결합하는 표를 도시한다.
도 11은 일 실시예에 따른, 머신 러닝 모듈을 위한 훈련 데이터 세트로 사용되는, 수집된 테스트 데이터를 OCST 결과와 결합하는 표를 도시한다.
이하에서, 본 발명의 여러 실시예 및 양태가 설명될 것이다. 또한, 추가적인 실시예는 첨부된 청구범위에 의해 정의될 것이다.
청구범위에 의해 정의된 임의의 실시예는 본 명세서에서 설명된 임의의 세부 사항, 특징 및 기능에 의해 보완될 수 있다는 점에 유의해야 한다. 또한, 본 명세서에서 설명된 실시예는 개별적으로 사용될 수 있으며, 또한 청구범위에 포함된 임의의 세부사항, 특징 및 기능에 의해 선택적으로 보완될 수 있다. 또한, 본 명세서에서 설명된 개별 측면은 개별적으로 사용될 수도 있고 조합하여 사용될 수도 있다는 점에 유의해야 한다. 따라서, 설명된 측면 각각에 세부 사항을 추가하면서 설명된 측면 중 다른 하나에는 세부사항을 추가하지 않을 수 있다. 또한 본 발명은 자도오하 테스트 장비에서 사용 가능한 기능을 명시적으로 또는 암시적으로 설명한다는 점에 유의해야 한다. 따라서, 본 명세서에서 설명된 모든 기능은 자동화된 테스트 장비와 관련하여 사용될 수 있다.
또한, 방법에 관한 본 명세서에서 개시된 특징 및 기능은 그러한 기능을 수행하도록 구성된 장치에 사용될 수도 있다. 뿐만 아니라, 장치에 관해 본 명세서에서 개시된 임의의 특징 및 기능은 해당 방법에서 사용될 수도 있다. 다시 말해서, 본 명세서에서 개시된 방법은 장치에 관해 설명된 임의의 특징 및 기능에 의해 보완될 수 있다.
본 발명은 아래에 주어진 상세한 설명 및 본 발명의 실시예의 첨부 도면으로부터 보다 완전하게 이해될 것이지만, 설명된 특정한 실시예로 본 발명을 제한하지 않아야 하며, 이는 단지 설명 및 이해를 위한 것이다.
도 1에 관한 실시예
도 1은 하나 이상의 테스트 대상 장치(DUT)(120)를 테스트하는 자동 테스트 장비(ATE)를 포함하는 테스트 장치(100)의 개략도를 도시한다. 도 1은 복수의 DUT 리소스(130a-e)를 포함하는 예시적인 DUT(120)를 더 포함한다. DUT 리소스(130a-e)는 CPU, 메모리, MPEG 등과 같은 상이한 IP 블록을 포함할 수 있다.
ATE(110)는 복수의 테스트 시나리오(140a-c)를 생성하도록 구성되며, 각각은 복수의 테스트 활동을 포함한다. 예를 들어, 테스트 시나리오(140c)는 테스트 활동(150a-c)를 포함한다.
각 테스트 활동은 하나 이상의 DUT 리소스(130a-e)를 사용하도록 구성된다. 예를 들어, 테스트 활동(150a)는 DUT 리소스(130e)를 사용하도록 구성된다. 또는 예를 들어, 테스트 활동(150b)는 DUT 리소스(130c, 130d)를 사용하도록 구성된다. 다른 예시는 DUT 리소스(130a, 130b)를 사용하도록 구성된 테스트 활동(150c)일 수 있다.
자동 테스트 장비(110)는 테스트 시나리오(140a-c)와 같은 복수의 테스트 시나리오를 생성하도록 구성되어, 테스트 활동(150a-c)와 같은 복수의 테스트 활동과 관련된, DUT 리소스(130a-e)와 같은 DUT 리소스가 서로 충돌하지 않는다. 예를 들어 테스트 활동(150a-c)는 테스트 시나리오(140c)로 그룹지어져서, 테스트 활동(150a-c)의 DUT 리소스(130a-e)가 충돌하지 않고, 주어진 테스트 시나리오(140c)의 테스트 활동(150a-c)의 동시 실행이 가능하다.
온 칩 시스템 테스트(OCST)의 일반적인 아이디어는 DUT 리소스(130a-e)를 사용하여 DUT(120)에 많은 수의 간단하고 현실적인 테스트 활동을 동시에 실행하는 것이며, 동시 테스트 활동의 조합 및/또는 강도는 다양하다. 각 테스트 활동은 관련된 IP 블록을 확인할 수 있을 뿐만 아니라 공급 부하, 클록 트리 및 열 커플링(thermal coupling)을 통해 다른 IP 블록의 테스트 조건에도 기여한다. 테스트 활동의 예시는 데이터 블록을 이동하는 것 또는 메모리 내장 자체 테스트(MBIST) 또는 로직 내장 자체 테스트(LBIST)와 같은 내장 셀프 테스트를 실행하는 것을 포함할 수 있다.
예를 들어 OCST 컨트롤러는 일부 IP 블록 내에서 국소적으로 LBIST, MBIST 등과 같은 구조 테스트를 실행한다. 이러한 테스트 활동은 명백하게 자체 체크이지만 동시에 실행 중인 다른 테스트 활동의 테스트 조건을 제어하기 위한 스트레스 생성기 역할을 할 수도 있다. 테스트 시나리오에서 일부 IP 코어는 구조 테스트를 실행하는 반면, 일부 다른 코어는 가령 코드 기반 테스트 활동에 관련된다.
관련된 IP 블록은, 결함에 대해 민감하게 하거나 및/또는 가관측성을 증가시키기 위해 스트레스를 생성하는 것과 같은 테스트용 설계(design for test, DFT) 구조 또는 기법에 적용하여, 민감한 결합이 검출될 수 있게 하거나 및/또는 디버그 또는 시스템 내 테스트를 위해 기존 구조에 대한 액세스를 제공한다.
테스트 활동 또는 파라미터화 가능한 테스트 활동의 랜덤화는 로컬 워크로드의 많은 조합을 커버하고, 따라서 많은 시스템 수준 결함에 책임이 있다고 고려되는 많은 수의 실제 워크로드 패턴을 모방한다. 기존 또는 새로운 테스트용 설계(DFT) 구조는 제어된 스트레스를 생성하고 결함 검출 가능성을 높이기 위해(또는 보다 가능성 있는 결함 검출을 위해) 가관측성을 증가시킬 수 있다.
DFT 구조는 예를 들어 온 칩 OSCT 컨트롤러가 온 칩 센서 데이터를 판독하기 위해 온 칩 IJTAG와 인터페이스하는 것에 의해 가관측성을 향상시킬 수 있다.
예를 들어, 현재/최대/최소 피크 온도와 같은 온도값, 현재 /최대/최소 피크 전압과 같은 전압값, 및/또는 가령 면도기 회로에서의 타이밍 위반(timing violation)을 위한 선택적인 임계치 경보 능력을 갖는 추가 센서는 가관측성을 보다 향상시킬 수 있다. 이 경보은 디버깅을 단순화하기 위해, 가령 프로그램 카운터, 메모리 컨트롤러 레지스터와 같은 중요한 시스템 데이터의 보관 또는 저장을 트리거할 수 있다.
다이에 걸쳐 분포된 추가적인 센서로 국소적 이상을 탐지함으로써 가관측성이 보다 향상될 수 있다. 또는 프로세서를 연결하여 내용을 예상치와 비교하여 메모리를 추적한다. 또한, 프로토콜 체커, CRC 또는 버스 트래픽 로거(bus traffic logger)와 같은 어써션 체커(assertion checker)가 추가되어 커버리지를 측정하고 디버깅을 지원할 수 있다.
테스트 액티비티는, 가령, 온 칩 시스템 테스트(OCST) 컨트롤러에 의해 통제된 방식으로 조정되므로 가장 효과적인 테스트 조건을 결정할 수 있고, 실패는 특정 테스트 활동 및 해당 테스트 파라미터 값에 기인할 수 있다.
도 2에 따른 실시예
도 2는 도 1의 테스트 장치(100)과 유사한 테스트 장치에 의해 수행되는 테스트 프로세스를 설명하는 블록도(200)를 도시한다.
블록도(200)는 테스트 활동 표(210)에서 시작한다. 테스트 활동 표(210)는 테스트 활동 열(212)을 포함하며, 각 테스트 활동(212)은 하나 이상의 DUT 리소스(214)를 사용할 수 있다. 해당하는 DUT 리소스(214)는 DUT 리소스(214) 열에서 제공된다. 또한, 테스트 활동(212)은 별개의 열에서 제공되는 해당 테스트 파라미터(216) 및/또는 제약 조건(218)을 가질 수 있다. 제약 조건은 테스트 시나리오 수준에서 있을 수 있으며 여러 테스트 활동의 테스트 파라미터를 참조할 수 있다.
테스트 활동 표(210)는 제약 조건 솔버(250)에 입력된다. 제약 조건 솔버(250)는 ATE(220), 컨트롤러(270)에 포함될 수도 있고, 도 2에 도시된 바와 같이 독립된 엔터티일 수도 있다. 도 2의 제약 조건 솔버(250)는 하나의 입력과 하나의 출력을 갖는다. 제약 조건 솔버(250)의 입력은 테스트 활동 표(210)에 의해 입력된다. 제약 조건 솔버의 출력은 테스트 시퀀스 표(260)이다.
테스트 시퀀스 표(260)는 도 1의 테스트 시나리오(140a-c)와 유사한 테스트 시나리오(262)를 포함한다. 테스트 시나리오는 하나 이상의 테스트 활동(212a-e)를 포함할 수 있고, 각 테스트 활동(212a-e)는 테스트 파라미터 값(216a-e)를 포함할 수 있다. 테스트 시퀀스 표(260)는 ATE(220) 또는 컨트롤러(270)에 제공된다.
예를 들어, 제 1 시나리오는 테스트 파라미터 P1(216a), P2(216b)를 갖는 제 1 테스트 활동(212a)과, 테스트 파라미터 P3(216c) 및 P4(216d)를 갖는 제 2 테스트 활동(212b)을 포함할 수 있다. 제 2 시나리오는 테스트 파라미터 P3(216c) 및 P4(216d)를 갖는 제 2 테스트 활동(212b)을 포함할 수 있다. 제 3 시나리오는 테스트 파라미터 P3(216c) 및 P5(216e)를 갖는 제 3 테스트 활동(212b)을 포함할 수 있다. 제 4 시나리오는 테스트 파라미터 P2(216b) 및 P4(216d)를 갖는 제 4 테스트 활동(212d)을 포함할 수 있다.
컨트롤러(270)는 테스트 시퀀스 표(260)를 입력으로 취하고, 테스트 결과 표(280)을 출력한다. 테스트 블록(270)에 의해 제공되는 테스트 결과 표(280)는 DUT(282)에서 실행되는 테스트 시나리오(262)의 하나 이상의 테스트 활동(212)의 테스트 결과(288)를 포함한다. 테스트 결과 표(280)는 ATE(220)에 입력되거나 및/또는 컨트롤러(270)로 다시 공급된다.
ATE(220) 또는 컨트롤러(270)는 테스트 결과 표(280)를 입력으로 받아 개선된 테스트 시퀀스 표(260) 및/또는 결과 표(292)를 출력으로 제공한다.
개선된 테스트 시퀀스 표(260)는 또한 컨트롤러(270)의 입력으로 사용되어 ATE(220) 또는 컨트롤러(270)에 다시 입력될 수 있는 새로운 테스트 결과 표(280)를 제공한다.
ATE(220) 또는 컨트롤러(270)에 의해 제공되는 결과 표(292)는 DUT 리소스(296)의 성공/실패 테스트 결과(298)를 포함한다. 추가적으로 및/또는 대안적으로 결과 표(292)는 DUT 리소스(296)의 분류를 포함한다.
테스트 활동(212)에 요구되는 제약 조건(218), 테스트 파라미터(216) 및 리소스(214)를 갖는 테스트 활동 테이블(210)은 제약 조건 솔버(250)에 제공된다. 테스트 활동 표(210) 또는 테스트 활동의 라이브러리는 또한 테스트 활동(212)을 활성화하거나 실행하기 위한 컨트롤러(270) 또는 OCST 컨트롤러(270)를 위한 코드 풀을 포함할 수 있다. 라이브러리는 또한 DUT 또는 온 칩 및 ATE 리소스가 주어진 테스트 활동(212)에 의해 사용되는지 알 수 있다.
제약 조건 솔버(250)는 테스트 활동 표(210)로부터 테스트 시퀀스 표(260)를 생성하도록 구성된다. 테스트 시퀀스 표(260)는 테스트 시나리오(262)를 포함하며, 테스트 시나리오(262)는 리소스 제약 조건(218)을 위반하지 않고 동시에 실행되거나 공존할 수 있는 하나 이상의 테스트 활동(212a-e)를 포함한다. 테스트 시나리오(262)는 워크스테이션 및/또는 OSCT 카드 또는 온 칩 OSCT 컨트롤러와 같은 컨트롤러(270)에서 실행되는 제약 조건 솔버(250)에 의해 자동으로 생성될 수 있다. 제약 조건은 PSS에서 모델링될 수 있다.
제약 조건 솔버(250)가 제공하는 테스트 시퀀스 표(260)는 시나리오(262)를 포함하며, 하나 이상의 테스트 파라미터(216a-e)와 관련된 하나 이상의 테스트 활동(212a-d)는 동시에 실행될 수 있다. 각각의 테스트 파라미터(216a-e)를 특성화하는 테스트 파라미터 값은 무작위로 선택되거나 극단적인 값에 중점을 둔다. 테스트 시나리오(262)의 순서는, 가령, 무작위로 생성되어, 실제 워크로드를 시뮬레이션한다.
생성된 테스트 시퀀스 표(260)는 온 칩 OCST 컨트롤러와 같은, 테스트 시퀀스 표(260)의 테스트 시나리오(262)를 실행하도록 구성된 컨트롤러(270)에 제공되어, 테스트 데이터(280)를 수집한다. 컨트롤러(270)는 ATE와 통신하기 위한 인터페이스 및/또는 DUT와 통신하기 위한 인터페이스를 포함할 수 있다.
컨트롤러(270)는 DUT 테스트 데이터 및/또는 DUT 센서 데이터를 판독할 수 있거나 및/또는 컨트롤러(270)는 DUT 영역 또는 다이 영역에 걸쳐 센서를 포함하여 국소적 이상을 검출할 수 있다. 측정값 또는 수집 데이터(280)는 측정값 및 또는 센서값이 특정한 사전 정의된 조건을 충족하는 경우, 컨트롤러(270)가 DUT의 상태 정보 또는 메모리 정보와 같은 추가적인 정보를 수집하도록 트리거할 수 있다.
컨트롤러(270)는 시나리오(262)의 테스트 활동(212)의 테스트 결과(288) 또는 수집된 테스트 데이터(280)를 ATE(220)에 통신하도록 구성된다. ATE(220) 또는 컨트롤러(270)는 또한 테스트 프로세스를 개선하거나 및/또는 DUT를 디버그 또는 진단하도록 구성된다.
온 칩 OCST 컨트롤러 또는 OCST 카드와 같은 컨트롤러(270), 또는 ATE(220)는 제약 조건을 만족할 수 있고 디버깅을 위해 현재 테스트 파라미터를 알 수 있는 테스트 시나리오의 테스트 파라미터 세트를 동적으로 생성하거나 수정하도록 구성된다. 테스트 활동(212)를 위한 테스트 파라미터 값을 생성하는 방법은 무작위화를 포함하며, 이는 가령 커버리지를 최대화하기 위해 제약 조건 솔버를 사용하거나, 또는 가령 몇 가지 테스트 파라미터의 철저한 커버리지를 위한 중첩 루프를 사용하여 극단값을 선택적으로 강조하는 희망 분포를 따른다.
테스트 환경을 보다 개선하기 위해, 테스트 러닝 환경이 요구될 수 있다. 광범위한 특성화 테스트는 테스트 러닝의 기초이며, 많은 DUT가 많은 테스트 단계 또는 많은 테스트 시나리오에 노출된다. 테스트 파라미터(216)의 많은 조합을 커버하기 위해 모든 DUT가 동일한 테스트 단계 또는 테스트 시나리오에 노출되지 않는 것이 바람직하다. 특정 DUT(282)에 대한 테스트 시나리오의 편향을 방지하기 위해, 테스트 단계 또는 테스트 시나리오는 무작위 순열 순서로 실행된다.
ATE(220) 또는 컨트롤러(270)는 수집된 테스트 결과 데이터(280) 및 시스템 레벨 테스트 결과로 훈련된 머신 러닝 또는 AI 모듈을 사용할 수도 있다. 머신 러닝 모듈은 수집된 테스트 결과 데이터(280) 및 시스템 수준 테스트 결과를 분석할 수 있고, 수집된 테스트 데이터(280)의 새로운 세트에 기초하여 시스템 수준 테스트 결과를 예측할 수 있다.
AI 모듈은 또한 테스트 결과에서 시스템 수준 테스트 실패를 예측하기 위해, 가령 온 칩 센서 데이터와 같은 사양 제한이 없는 측정된 결과 데이터, 또는 가령 상당히 낮은 전압 또는 상당히 빠른 주파수와 같은 사양 제한을 벗어나는 테스트 파라미터에 의해 훈련될 수 있다. 사양 제한을 벗어나는 테스트 단계 또는 테스트 활동의 실패는 나쁜 DUT의 증거가 아니다.
그러나, 머신 러닝 모듈 또는 모델은 사양 제한이 없거나 사양 제한을 벗어나는 측정 결과 및, 관련 테스트 활동 및 테스트 리소스와 같은, 사양을 벗어난 테스트 파라미터 및 테스트 단계 또는 시나리오 관련 속성을 포함하는 테스트 단계 또는 테스트 활동 결과로부터 시스템 레벨 테스트 결과를 예측하도록 구성될 수 있다.
그러한 모델은 이전에 눈에 띄지 않은 SLT 실패의 일부를 찾을 수 있지만, SLT 및 모든 다른 진정한 OCST 테스트를 통과한 일부 DUT에서도 실패할 수 있다. 이러한 경우는 테스트를 통한 수율 손실로 고려될 수 있으며, 바람직하게는 비용 모델에 기초하여, 추가로 발견되는 SLT 실패와 신중하게 트레이드될 수 있다. 이러한 추가 테스트 단계 또는 시나리오만 해당 모델에 필요한 생산 단계에 포함될 수 있다. 다른 추가적인 테스트 단계는 다시 제거될 수 있다.
ATE(220) 또는 컨트롤러(270)는 또한 DUT를 디버그 및/또는 진단하도록 구성될 수 있다. 테스트 결과 테이블(280)이 동시에 실행된 테스트 시나리오(262)의 테스트 활동(212)의 결과를 포함하기 때문에, 결함이 있는 DUT 또는 DUT 자원을 식별 및/또는 분류하기 위해 수집된 테스트 데이터(280)의 추가 분석이 필요하다.
디버깅 또는 진단의 일반적인 아이디어는 OCST 실패의 발생에 가장 많이 영향을 미치는 테스트 파라미터(216)를 식별하는 것이다. 특정 IP 블록의 특정 동작을 포함하는 테스트 활동(212)와 관련된 테스트 파라미터(216)는 디버깅을 위한 유용한 힌트를 제공한다.
테스트 활동, DUT 리소스, 테스트 파라미터, 테스트 결과 및 전체 OCST 결과, 및 선택적으로 복수의 DUT를 갖는 테스트 단계 또는 시나리오를 결합한 테이블에 의해 훈련된 머신 러닝 모델은 결함이 있는 DUT 리소스를 분류하고 식별하는 데 사용될 수 있다. 머신 러닝 모듈 또는 머신 러닝 기능 선택 알고리즘은 OCST 실패 발생에 기여하는 OCST 결과를 설명하는데 중요한 테스트 활동, 테스트 또는 DUT 리소스 및 테스트 결과를 식별할 수 있다.
다시 말해서, 컨트롤러(270)는 테스트 프로세스를 제어한다. 컨트롤러, 또는 OCST 컨트롤러는 바람직하게는 선택적인 테스트 운영 체제를 갖는 온 칩 프로세서이지만, DUT 또는 ATE 워크스테이션과 통신하는 OCST 카드일 수도 있다.
OCST 컨트롤러의 작업은, 가령, 다수의 테스트 활동의 실행을 트리거하고 그것들의 통과/실패 결과 및/또는 측정 결과를 판독하는 것일 수 있다. 테스트 활동은 선택적인 스트레스 생성 및/또는 선택적인 결함 검출의 조합을 포함할 수 있다.
테스트 활동의 추가적인 예시가 아래에 나열되어 있다.
● ATE는 가령 DUT 공급 전압 또는 주파수와 같은 DUT의 외부 테스트 조건을 설정, 즉, OCST 컨트롤러는 ATE 리소스를 제어할 수 있다.
● ATE는 가령 공급 전류 측정과 같은 측정을 수행한다.
● IP 코어 간의 데이터 블록을 이동하고 이전 및/또는 이후의 컨텐츠 확인.
● 온 칩 CPU에서 메모리 테스트 실행.
● 메모리 자체 테스트 실행.
● 이미지의 압축 및 압축 해제, 및 원본과 압축 해제된 이미지 간의 차이를 체크. (스트레스 & 체크)
● I/O 루프백 테스트 실행.
● DFT 기술을 사용하여 스트레스 생성 적용.
● DFT 기술을 사용하여 임의의 가관측성 구조 활성화 및 판독하기
컨트롤러는 언제나 어떠한 테스트 시나리오가 테스트 (활동) 파라미터와 함께 실행되는지 알고 있으며, 이는 에러가 발생하는 경우 디버깅에 필요하다.
또한, 컨트롤러 또는 OCST 컨트롤러는 제약 조건에 기초하여 테스트 활동 파라미터를 동적으로 생성하거나 수정할 수 있고, 및/또는 미리 계산된 목록에서 작동하거나 가져올 수 있다. 또한, 컨트롤러, 또는 OCST 컨트롤러 코드를 실행하는 프로세서는 또한 테스트 활동을 생성할 수 있다.
도 3에 따른 예시적인 테스트 활동 표
도 3은 일 실시예에 따른 예시적인 테스트 활동 표(300)를 도시한다. 테스트 활동 표(300)는 도 2의 테스트 활동 표(210)의 예시이거나, 또는 이와 유사하다.
테스트 활동 표(300)는 테스트 활동, 리소스, 테스트 파라미터 또는 가능한 결과의 열(column)을 포함한다. 테스트 활동 테이블은 필요한 리소스, 조정 가능한 파라미터 및 가능한 결과 또는 성과와 함께 DUT에서 실행할 수 있는 모든 가능한 테스트를 나열하도록 구성된다.
테스트 활동 표(300)는 도 2의 제약 조건 솔버(250)와 같은 제약 조건 솔버에 의해, 테스트 시퀀스를 생성하기 위한 입력으로서 사용될 수 있다. 테스트 시퀀스는 어떤 DUT에 대해 어떤 테스트 파라미터가 어떤 순서로 실행되는지를 포함하는 테스트 활동을 정의할 수 있다.
테스트 활동 표(300)는 일반적인 테스트 활동 또는 DUT 특정 테스트 활동을 포함할 수 있다. 테스트 활동의 몇몇 예시는 예시적인 테스트 활동 표(300)에 포함된다.
예를 들어, 제 1 테스트 활동(A1)은 쓰기 데이터를 메모리 3(MEM3)에 기록하고 MEM3의 내용을 체크하는 프로세싱 유닛 2(CPU2)를 포함할 수 있다. 활동(A1)은 코어 공급을 위한 리소스 R1: CPU2, R2: MEM3, R3: ATE DPS를 요구한다. 테스트 활동(A1)의 조정 가능한 테스트 파라미터는 P1: 대역폭, P2: DPS 전압이다. 결과는 실패/통과 값 r1과 전류 값 r2의 두 값을 포함할 수 있다.
예를 들어, 테스트 활동(A2)은 조정 가능한 파라미터가 없고 결과적으로 통과/실패 값의 결과가 있는 리소스 R2, 즉 MEM3이 필요한 MEM3의 메모리 내장 자체 테스트(MBIST)이다.
예를 들어, 테스트 활동(A3)은 통과/실패 값의 결과와 함께 테스트 파라미터 P3으로서 조정 가능한 블록 사이즈를 갖는 MPEG 리소스를 요구하는 MPEG 자체 테스트이다.
도 4에 따른 리소스 충돌 표
도 4는 도 2의 제약 조건 솔버(250)에 의해 사용 및/또는 생성될 수 있는 리소스 충돌 표(400)를 도시한다. 리소스 충돌 표(400)는 테스트 활동 열 및 DUT의 모든 리소스에 관한 열을 갖는다. 표(400)의 각 테스트 활동은 하나 이상의 DUT 테스트 리소스를 사용하며, 이는 각 리소스 열에서 'X'로 나타난다.
도 2의 제약 조건 솔버(250)와 같은 제약 조건 솔버는 테스트 시퀀스를 생성하기 위한 입력으로 도 3의 표(300)와 같은 테스트 활동 표를 취할 수 있다. 테스트 시퀀스를 생성하는 단계는 리소스 충돌 표(400)와 같은 리소스 충돌 표를 생성하는 것이다. 리소스 충돌 표(400)는 어떤 테스트 활동이 동일한 DUT 리소스를 사용하고 따라서 어떤 테스트 활동이 동시에 실행될 수 없는지를 보여준다.
예를 들어, 리소스 충돌 표(400)는 테스트 활동 표(300)의 테스트 활동의 충돌 리소스를 보여준다. 예를 들어, 테스트 활동 A1은 리소스 R1, R2, R3을 사용하고 R4를 사용하지 않는다. 예를 들어, 테스트 활동 A2 는 리소스로서 R2만 사용한다. 예를 들어, 테스트 활동 A3은 DUT 리소스 R4를 사용한다.
리소스 충돌 표(400)에 도시된 바와 같이, 테스트 활동 A1과 테스트 활동 A2는 충돌하는 테스트 활동인데, 이는 두 활동 모두 테스트 리소스 R2를 요구하기 때문이다. 테스트 활동 A1과 A2는 모두 테스트 리소스 R2를 요구하므로 동시에 실행될 수 없다. 즉, 테스트 활동 A1과 A2는 가령 동일한 테스트 시나리오에 들어갈 수 없는 것과 같이, 동시에 실행될 수 없다. 리소스 충돌이 없는 테스트 활동은 테스트 시나리오에 결합될 수 있다.
도 5에 따른 테스트 시나리오 표
도 5는 도 2의 제약 조건 솔버(250)에 의해 사용되거나 생성될 수 있는 테스트 시나리오 표(500)를 도시한다. 테스트 시나리오 표(500)는 테스트 시나리오 열 및 제공된 각 테스트 활동에 대한 열을 포함한다. 테스트 시나리오표(500)는 모든 가능한 테스트 시나리오를 포함한다. 테스트 시나리오의 하나 이상의 테스트 활동은 동시에 실행된다.
테스트 시나리오 표(500)는, 도 3의 테스트 활동 표(300)의 테스트 활동 A1, A2 및 A3과 같은 테스트 활동으로부터 생성될 수 있는 모든 테스트 시나리오를 도시한다. 테스트 시나리오의 테스트 활동은 충돌하지 않아야 한다. 충돌 테스트 활동은 도 4의 리소스 충돌 표(400)와 유사한 리소스 충돌 표에 도시된다. 모든 가능한 테스트 시나리오로부터, 리소스 충돌 표에서 가져온 충돌 테스트 활동을 갖는 테스트 시나리오를 제외함으로써, 테스트 시나리오 표(500)와 같은 충돌하지 않는 테스트 활동을 갖는 테스트 시나리오 표가 된다.
예를 들어, 테스트 시나리오 테이블(500)은 테스트 시나리오 열 및 가령 A1, A2, A3과 같은 모든 테스트 활동에 대한 열을 포함한다. 도 4의 리소스 충돌 테이블(400)에 따르면, A1과 A2는 동일한 리소스 R2를 사용하므로, 테스트 활동 A1과 테스트 활동 A2는 동시에 실행될 수 없고 동일한 테스트 시나리오에 있을 수 없다.
예를 들어, 도 3의 예시적인 테스트 활동의 테스트 시나리오는 테스트 활동 A1을 갖는 테스트 시나리오 S1, 테스트 활동 A2를 갖는 테스트 시나리오 S2, 테스트 활동 A3을 갖는 테스트 시나리오 S3, 동시 테스트 활동 A1, A3을 갖는 테스트 시나리오 S4, 동시 테스트 활동 A2, A3을 갖는 테스트 시나리오 S5이다. 리소스 제약 조건 때문에, 테스트 활동 A1과 A2를 동시에 실행하는 테스트 시나리오는 없다.
테스트 활동이 실제로 동시에 실행되는지는 테스트 파라미터 설정과 다른 알려지지 않은 요인에 따라 다를 수 있다. 테스트 시퀀스 또는 테스트 슈트는 테스트 활동에 대해 지정된 테스트 파라미터 값을 갖는 주어진 테스트 시나리오를 실행하는 여러 테스트 단계로 구성된다.
도 6에 따른 테스트 단계 표
도 6은 도 2의 제약 조건 솔버(250)에 의해 사용되거나 생성될 수 있는 테스트 단계 표(600)를 도시한다. 테스트 단계 표는 테스트 단계, 테스트 시나리오, 테스트 활동의 열과 테스트 활동에 대응하는 테스트 파라미터의 열을 포함한다.
테스트 단계 표(600)의 테스트 단계 열은 상이한 테스트 단계를 식별하기 위한 실행 번호를 포함한다. 테스트 시나리오 열은 모든 가능한 테스트 시나리오를 적어도 한 번 포함할 수 있다. 테스트 시나리오는 여러 다른 테스트 파라미터를 사용하여 두 번 이상 테스트될 수 있다. 도 5의 테스트 시나리오 표(500)와 유사하게, 테스트 시나리오의 테스트 활동은 해당하는 테스트 활동 열에서 'X'로 나타난다.
테스트 시나리오가 테스트 활동을 포함하는 경우, 해당하는 테스트 파라미터 열은 테스트 파라미터 값을 포함한다. 테스트 파라미터 값은 바람직하게는 무작위로 선택되며, 선택적으로 사전 정의된 분포를 따르거나 및/또는 선택적으로 무작위로 생성된 테스트 파라미터 값보다 더 많은 문제를 일으키는 경향이 있는 극단값에 집중하는 특정 퍼센트를 갖는다.
도 2의 테스트 시퀀스 표(260)와 같은 테스트 시퀀스는, 테스트 단계 표(600)의 테스트 단계를 DUT에 무작위로 매핑하거나 무작위로 매핑된 테스트 시퀀스보다 더 많은 문제를 일으키기 위한 사전 정의된 분포를 따라, 테스트 단계 표(600)로부터 생성된다.
테스트 시나리오 열은 가령 테스트 시나리오 표(500)의 테스트 시나리오 S1 내지 S5와 같은 모든 가능한 테스트 시나리오를 포함하며, 테스트 시나리오는 여러 다른 테스트 파라미터로 테스트될 수 있다.
예를 들어, 제 1 테스트 단계는, 테스트 파라미터 P1인 10GB/S의 대역폭과 테스트 파라미터 P2인 DPS 전압 0.9V에 해당하는 테스트 활동 A1을 갖는 제 1 테스트 시나리오 S1일 수 있다. 예를 들어, 제 2 테스트 단계는, 다른 테스트 파라미터 P1인 20GB/S의 대역폭과 테스트 파라미터 P2인 DPS 전압 0.86V에 해당하는 테스트 활동 A1을 갖는 동일한 테스트 시나리오 S1일 수 있다.
예를 들어, 테스트 단계 3은 조정 가능한 파라미터가 하나도 없는 테스트 활동 A2를 포함하는 테스트 시나리오 S2를 포함할 수 있다.
예를 들어, 테스트 단계 4는 테스트 활동 A3을 갖는 테스트 시나리오 S3을 포함하며, 테스트 파라미터 P3은 블록 크기가 128kB이다. 예를 들어, 테스트 단계 5는 블록 크기 1MB의 테스트 파라미터 P3을 갖는 동일한 시나리오 S3을 포함할 수 있다.
예를 들어, 테스트 단계 6은 테스트 파라미터 P1인 50GB/S 대역폭과, P2인 DPS 전압 1.04V 및 테스트 파라미터 P3인 블록 크기 6MB를 갖는 테스트 활동 A1 및 A3을 갖는 테스트 시나리오 S4를 포함한다. 예를 들어, 단계 7은 테스트 파라미터 P1인 3GB/S 대역폭과, P2인 DPS 전압 0.97V 및 테스트 파라미터 P3인 블록 크기 500KB를 갖는 동일한 테스트 시나리오 S4를 포함한다. 예를 들어, 단계 8은 테스트 파라미터 P1인 27GB/S 대역폭과, P2인 DPS 전압 0.88V 및 테스트 파라미터 P3인 블록 크기 21MB를 갖는 동일한 테스트 시나리오 S4를 포함한다.
예를 들어, 테스트 단계 9는 테스트 파라미터가 없는 테스트 활동 A2와, 테스트 파라미터 P3인 블록 크기 7MB를 갖는 테스트 시나리오 S5를 포함한다. 예를 들어, 테스트 단계 10은 테스트 파라미터 P3인 블록 크기 780KB를 갖는 동일한 테스트 시나리오 S5를 포함한다. 예를 들어, 테스트 단계 11은 테스트 파라미터 P3인 블록 크기 13MB를 갖는 동일한 테스트 시나리오 S5를 포함한다.
도 7에 따른 테스트 결과 표
도 7은 도 2의 테스트 시퀀스 표(260)의 테스트 활동을 수행한 후 컨트롤러가 채울 수 있는 비어 있는 테스트 결과 표(700)를 도시한다. 테스트 결과 표는 DUT, 테스트 단계, 테스트 활동의 테스트 결과의 열과, 전체 테스트 결과 열을 포함한다.
테스트 결과 표(700)는 도 2의 테스트 시퀀스 표(260)와 같은 테스트 시퀀스를 포함한다. 테스트 결과 표(700)의 처음 2개의 열인 DUT와 테스트 단계 열은 어떤 테스트 단계가 어떤 DUT에서 수행되었는지를 정의한다. 테스트 시퀀스는, 테스트 단계 표(600)의 테스트 단계를 DUT에 무작위로 매핑하거나, 무작위로 매핑된 테스트 시퀀스보다 더 많은 문제를 일으키기 위한 사전 정의된 분포를 따르게 하거나 및/또는 사전 정의된 조건을 만족하게 함으로써 도 6의 테스트 단계 표(600)로부터 생성된다.
예시적인 테스트 시퀀스는, 가령, 테스트 단계 6, 11, 7, 1 및 8에 의해 테스트되는 DUT1과, 테스트 단계 5, 2, 10, 4 및 9에 의해 테스트되는 DUT2를 포함할 수 있다.
온 칩 컨트롤러 또는 컨트롤러 카드와 같은 컨트롤러는 테스트 시퀀스에 따라 테스트를 수행한다. r1(#fails), r2(current), r3(#fails), r4(p/f) 열이 나타내는 테스트 활동의 결과는 컨트롤러에 의해 수집된다. 전체 OCST 결과는 모든 테스트 활동의 결과 또는 테스트 활동 결과의 서브세트에 기초할 수 있다. 추가적으로 또는 대안적으로 OCST 결과는 테스트 활동 결과 또는 테스트 활동 결과의 일부에 기초한 DUT의 분류를 포함할 수 있다.
이 예시에서, 전체 OCST 결과는 결과 r1, r3 및 r4로부터 계산되며, 즉, 이 예시에서는 사양 제한이 없기 때문에 측정 결과 r2는 테스트 결과에 기여하지 않는다.
도 8에 따른 테스트 단계당 실패 표
도 8은 DUT 열 및 모든 테스트 단계에 관한 열을 포함하는 테스트 단계당 실패 표(800)를 도시한다. 테스트된 DUT는 DUT 열에 나열된다. DUT가 주어진 테스트 단계를 통과한 경우 테스트된 DUT의 행은 주어진 테스트 단계 열의 문자 'P'를 포함하고, DUT가 주어진 테스트 단계를 실패한 경우 강조된 배경을 갖는 문자 'F'를 포함한다.
컨트롤러 또는 ATE는 테스트 단계의 수를 최적화, 바람직하게는 줄이기 위해 테스트 단계당 불합격 표(800)를 사용하도록 구성된다. 예를 들어 절대 실패하지 않는 테스트 및/또는 중복 테스트 단계의 수를 줄일 수 있다. 컨트롤러 또는 ATE의 작업은 알려진 솔루션이 있는, 최소 커버링 세트 문제로 알려진, 테스트 단계의 최소 세트를 선택하는 것을 포함할 수 있다.
예를 들어, 테스트 단계당 실패 표(800)의 경우에는 4개의 DUT, DUT 1-4의 테스트 결과를 포함할 수 있다. 예를 들어, DUT 1은 테스트 단계 6을 제외한 모든 테스트 단계를 통과할 수 있다. 예를 들어, DUT 2는 테스트 단계 2 및 4를 제외한 모든 테스트 단계를 통과할 수 있다. 예를 들어, DUT 3은 테스트 단계 1 및 6을 제외한 모든 테스트 단계를 통과할 수 있다. 예를 들어, DUT 4는 테스트 단계 8을 제외한 모든 테스트 단계를 통과할 수 있다.
예를 들어, 컨트롤러 또는 ATE가 테스트 단계당 실패 표(800)를 분석할 때, 컨트롤러는 테스트 단계 2, 4, 6이 절대 실패하지 않으며 따라서 생산 테스트에서 제거될 수 있다는 결론에 도달할 수 있다. 또한, 테스트 단계 4는 테스트 단계 2에 중복되며, 또한 제거될 수 있다.
도 9에 따른 OCST와 SLT의 비교
도 9는 OCST 테스트 결과와 SLT 테스트 결과 사이의 예시적인 비교 표(900)를 도시한다. 예시적인 비교 표(900)는 동일한 세트의 DUT를 OCST 및 SLT 테스트 방법 모두로 테스트할 때 발생할 수 있는 차이를 도시한다.
이 예시에서, OCST 및 SLT 둘 모두의 테스트 방법에서 9900개의 장치는 통과하고 70개는 실패했다. SLT 테스트를 통과하였지만 OCST 테스트에 실패한 장치 또는 DUT가 25개 있었지만, OCST 테스트를 통과하고 SLT 테스트에 실패한 DUT는 5개밖에 없었다.
다시 말해서, 위 예시에서, OCST는 SLT를 실패한 5개의 장치를 놓쳤지만, SLT가 찾지 못한 25개의 DUT의 문제를 발견했고, 이는 모든 테스트 단계가 현실적인 테스트 값을 갖는 현실적인 시나리오를 설명한다고 가정할 때 좋은 균형이다.
도 10에 따른, 테스트 결과와 SLT 결과를 결합한 훈련 표
도 10은 수집된 테스트 데이터와 SLT 결과를 결합한 훈련 표(1000)를 도시한다. 훈련 표(1000)는 머신 러닝 또는 AI 모듈을 위한 훈련 표 또는 훈련 데이터 세트로 사용되도록 구성된다. 훈련 표(1000)는 해당하는 SLT 결과를 갖는 DUT에 수행되는 테스트 단계의 모든 테스트 활동, 테스트 리소스 및 테스트 결과를 포함할 수 있다. 훈련 표(1000)는 다수의 DUT에서 실행되는 다수의 테스트 단계를 포함할 수 있다.
훈련 표(1000)는 SLT 결과와 결합된, DUT의 사양을 벗어나거나 살짝 벗어나서 수집된 테스트 데이터를 포함할 수 있으며, SLT 테스트는 DUT의 사양 내에서 수행되었다. 예를 들어, 이 경우에, 실패한 OCST 결과는 DUT 실패의 강력한 신호로 고려되지는 않지만, 사양 제한을 벗어나는 OCST 테스트 통과는 양호한 DUT의 강력한 신호로 고려될 수 있고, DUT를 고품질 DUT로 분류할 수 있다.
ATE 또는 컨트롤러는 훈련 표(1000)에 의해 훈련될 수 있는 머신 러닝 유닛 또는 AI 모듈을 포함할 수 있으며, DUT에 새롭게 수행된 테스트 단계로부터 SLT 결과를 예측하도록 구성될 수 있다. 머신 러닝 유닛은 또한 테스트 프로세스를 개선하는 데 사용될 수 있다.
도 11에 따른, 테스트 결과를 갖는 훈련 표
도 11은 수집된 테스트 데이터 및 전체 OCST 결과를 포함하는 훈련 표(1100)를 도시한다. 훈련 표(1100)는 머신 러닝 또는 AI 모듈을 위한 훈련 표 또는 훈련 데이터 세트로 사용되도록 구성된다. 훈련 표(1100)는 해당하는 OCST 결과를 갖는 DUT에 수행되는 테스트 단계의 모든 테스트 활동, 테스트 리소스 및 테스트 결과를 포함할 수 있다.
표(1100)는 디버깅 및 진단 목적으로 사용된다. 디버깅의 일반적인 아이디어는 OCST가 가장 많이 실패하는 경우에 영향을 미치는 테스트 파라미터를 식별하는 것이다. ATE 또는 컨트롤러는 자주 실패하는 DUT 리소스 또는 DUT를 식별 및/또는 분류하기 위해 AI 또는 머신 러닝 유닛을 포함할 수 있다. 효율성을 위해 표는 실패한 장치로 제한될 수 있다. 분석기는 여러 DUT에 걸쳐 수행되어 자주 발생하는 결함 메커니즘을 식별할 수 있다.
머신 러닝 유닛 또는 모듈은 실패 DUT 또는 DUT 리소스를 예측하기 위해 테스트 결과 표(1100)에 의해 훈련될 수 있다.
대안 구현
일부 측면이 장치의 맥락에서 설명되었지만, 이러한 측면은 또한 해당 방법의 설명을 나타내며, 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 대응한다. 유사하게, 방법 단계의 맥락에서 설명된 측면은 또한 해당 장치의 해당 특징, 항목 및 블록의 설명을 나타낸다.
특정 구현 요구 사항에 따라, 본 발명의 실시예는 하드웨어 또는 소프트웨어로 구현될 수 있다. 구현은 가령 플로피 디스크, DVD, CD, ROM, PROM, EPROM, EEPROM 또는 플래시 메모리와 같은, 전기적 판독 가능 제어 신호가 저장된 디지털 저장 매체를 사용하여 구현될 수 있으며, 이는 각각의 방법이 수행되도록 프로그래머블 컴퓨터 시스템과 협력한다.(또는 협력할 수 있다.)
본 발명에 따른 일부 실시예는, 전기적 판독 가능 제어 신호를 갖는 데이터 캐리어를 포함하며, 이는 본 명세서에서 설명된 방법 중 하나가 수행되도록 프로그래머블 컴퓨터 시스템과 협력할 수 있다.
일반적으로, 본 발명의 실시예들은 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로 구현될 수 있으며, 프로그램 코드는 컴퓨터 프로그램 제품이 컴퓨터에서 실행되는 경우 방법들 중 하나를 수행하도록 작동된다. 프로그램 코드는 예를 들어 머신 판독 가능 캐리어에 저장될 수 있다.
다른 실시예들은 본 명세서에서 설명된 방법들 중 하나를 수행하는, 머신 판독 가능 캐리어에 저장된 컴퓨터 프로그램을 포함한다.
본 발명의 방법의 추가 실시예는, 따라서, 본 명세서에 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램이 기록되어 있는 데이터 캐리어(또는 디지털 저장 매체 또는 컴퓨터 판독 가능 매체)이다. 데이터 캐리어, 디지털 저장 매체 또는 기록 매체는 일반적으로 유형(tangible) 및/또는 비일시적이다.
본 발명의 방법의 추가 실시예는, 따라서, 본 명세서에서 설명된 방법들 중 하나를 수행하는 컴퓨터 프로그램을 나타내는 데이터 스트림 또는 신호의 시퀀스이다. 데이터 스트림 또는 신호의 시퀀스는 예를 들어 데이터 통신 연결부, 가령 인터넷을 통해 전송되도록 구성될 수 있다.
추가 실시예는, 본 명세서에서 설명된 방법들 중 하나를 수행하도록 구성되거나 조정된, 가령 컴퓨터와 같은 프로세싱 수단, 또는 프로그래머블 로직 장치를 포함한다.
추가 실시예는 본 명세서에서 설명된 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램이 설치된 컴퓨터를 포함한다.
본 발명에 따른 추가 실시예는 본 명세서에서 설명된 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 수신기로 (가령, 전기적으로 또는 광으로) 전송하도록 구성된 장치 또는 시스템을 포함한다. 수신기는, 가령, 컴퓨터, 모바일 장치, 메모리 장치 등일 수 있다. 장치 또는 시스템은, 가령, 컴퓨터 프로그램을 수신기로 전송하기 위한 파일 서버를 포함할 수 있다.
일부 실시예에서, 프로그래머블 로직 장치(가령 필드 프로그래머블 게이트 어레이)는 본 명세서에서 설명된 방법들의 일부 또는 전체 기능을 수행하는 데 사용될 수 있다. 일부 실시예에서, 필드 프로그래머블 게이트 어레이는 본 명세서에서 설명된 하나 이상의 방법을 수행하기 위해 마이크로프로세서와 협력할 수 있다. 일반적으로, 방법들은 바람직하게는 임의의 하드웨어 장치에 의해 수행된다.
본 명세서에서 설명된 장치는 하드웨어 장치, 또는 컴퓨터, 또는 하드웨어 장치 및 컴퓨터의 조합을 사용하여 구현될 수 있다.
본 명세서에서 설명된 장치, 또는 본 명세서에서 설명된 장치의 임의의 구성요소는 하드웨어 및/또는 소프트웨어로 적어도 부분적으로 구현될 수 있다.
본 명세서에서 설명된 방법은 하드웨어 장치, 또는 컴퓨터, 또는 하드웨어 장치 및 컴퓨터의 조합을 사용하여 수행될 수 있다.

Claims (25)

  1. 하나 이상의 테스트 대상 장치(120, 282)를 테스트하는 자동 테스트 장비(110, 220)로서,
    상기 자동 테스트 장비는 복수의 테스트 활동(150a-c, 212, 212a-d)을 포함하는 하나 이상의 테스트 시나리오(140a-c, 262)를 생성하도록 구성되고,
    각각의 테스트 활동은 상기 테스트 대상 장치의 리소스의 서브세트를 활용하며,
    상기 자동 테스트 장비는, 테스트 시나리오의 복수의 테스트 활동과 관련된 상기 테스트 대상 장치의 리소스가 서로 충돌하지 않게, 복수의 테스트 시나리오를 생성하도록 구성되는
    자동 테스트 장비.
  2. 제1항에 있어서,
    주어진 테스트 시나리오의 상기 복수의 테스트 활동은 동시에 실행되도록 구성되는,
    자동 테스트 장비.
  3. 제1항 또는 제2항에 있어서,
    상기 하나 이상의 테스트 활동은 각각의 테스트 파라미터 값에 의해 특성화된 하나 이상의 테스트 파라미터(216, 216a-e) 및/또는 하나 이상의 제약 조건(218)과 관련된,
    자동 테스트 장비.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    하나 이상의 상기 테스트 활동은 사전 정의된 제한을 벗어나는 하나 이상의 테스트 파라미터에 의해 특성화되는,
    자동 테스트 장비.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    테스트 시나리오의 상기 복수의 테스트 활동은, 상기 테스트 시나리오의 상기 복수의 테스트 활동과 관련된 상기 테스트 대상 장치의 리소스가 서로 충돌하지 않는다는 제약 조건 하에서, 무작위로 선택되는,
    자동 테스트 장비.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 자동화 테스트 장치는, 상기 테스트 대상 장치의 상기 리소스 간의 충돌의 발생을 방지하기 위해, 테스트 시나리오를 생성하는 제약 조건 솔버(constraint solver)(250)를 포함하는,
    자동 테스트 장비.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    하나 이상의 상기 테스트 활동은 상기 테스트 대상 장치에 배치된 스트레스 생성기를 활성화시키는 것을 포함하는,
    자동 테스트 장비.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 자동 테스트 장비는 테스트 시나리오의 테스트 시퀀스를 생성하도록 구성된,
    자동 테스트 장비.
  9. 제8항에 있어서,
    상기 테스트 시퀀스는 동일한 테스트 활동을 갖는 둘 이상의 테스트 시나리오를 포함하며, 상기 테스트 활동은 적어도 하나의 테스트 파라미터 값이 다른,
    자동 테스트 장비.
  10. 제8항 또는 제9항에 있어서,
    상기 테스트 시퀀스의 상기 복수의 테스트 시나리오는 무작위로 정렬 및/또는 선택되는,
    자동 테스트 장비.
  11. 제7항 내지 제10항 중 어느 한 항에 있어서,
    상기 자동 테스트 장비는 상기 테스트 시퀀스를 생성하도록 구성되는데, 상기 테스트 시퀀스는 테스트 데이터를 수집하기 위해 컨트롤러(270)에 의해 실행되도록 구성되는,
    자동 테스트 장비.
  12. 제11항에 있어서,
    상기 컨트롤러는 상기 자동 테스트 장비 및 상기 테스트 대상 장치와 통신하도록 구성된 온 칩 프로세서(on-chip processor) 또는 컨트롤러 카드인,
    자동 테스트 장비.
  13. 제11항 또는 제12항에 있어서,
    상기 컨트롤러는 테스트 대상 장치 데이터 및/또는 테스트 대상 장치 센서 데이터를 판독하도록 구성된 하나 이상의 인터페이스를 포함하는,
    자동 테스트 장비.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 컨트롤러는 상기 테스트 대상 장치의 영역에 걸쳐 분포된 하나 이상의 센서를 포함하여, 상기 컨트롤러가 상기 하나 이상의 센서의 센서 테스트 데이터를 판독하도록 구성되는,
    자동 테스트 장비.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서,
    상기 컨트롤러는 상기 수집된 테스트 데이터(280)가 사전 결정된 조건을 충족하는 경우 반응하도록 구성되는,
    자동 테스트 장비.
  16. 제11항 내지 제15항 중 어느 한 항에 있어서,
    상기 컨트롤러는 상기 수집된 테스트 데이터를 상기 자동 테스트 장비에 통신하도록 구성되는,
    자동 테스트 장비.
  17. 제11항 내지 제16항 중 어느 한 항에 있어서,
    상기 컨트롤러 또는 상기 자동 테스트 장비는 테스트 활동 제약 조건 및/또는 수집된 테스트 데이터에 기초하여 테스트 파라미터 값을 동적으로 생성하도록 구성되는,
    자동 테스트 장비.
  18. 제11항 내지 제17항 중 어느 한 항에 있어서,
    상기 컨트롤러 또는 상기 자동 테스트 장비는 테스트 시퀀스를 최적화하기 위해 상기 수집된 테스트 데이터를 분석하도록 구성된,
    자동 테스트 장비.
  19. 제11항 내지 제18항 중 어느 한 항에 있어서,
    상기 컨트롤러 또는 상기 자동 테스트 장비는, 테스트 시퀀스를 최적화하기 위해, 상기 사전 정의된 제한 내의 시스템 수준 테스트의 결과를 상기 사전 정의된 제한 내의 및/또는 상기 사전 정의된 제한을 벗어나는 상기 수집된 테스트 데이터와 비교하는,
    자동 테스트 장비.
  20. 제11항 내지 제19항 중 어느 한 항에 있어서,
    상기 자동 테스트 장비는 인공지능 또는 머신 러닝 유닛을 포함하며,
    상기 컨트롤러 또는 상기 자동 테스트 장비는, 테스트 시퀀스를 최적화하기 위해, 시스템 수준 테스트의 결과 및/또는 상기 수집된 테스트 데이터 및/또는 상기 시스템 수준 테스트와 상기 수집된 테스트 데이터의 비교로 상기 인공지능 또는 상기 머신 러닝 유닛을 훈련하도록 구성되는,
    자동 테스트 장비.
  21. 제20항에 있어서,
    상기 훈련된 인공지능 또는 머신 러닝 유닛은 상기 수집된 테스트 데이터에 기초하여 상기 시스템 수준 테스트의 결과를 예측하도록 구성되는,
    자동 테스트 장비.
  22. 제11항 내지 제21항 중 어느 한 항에 있어서,
    상기 컨트롤러 또는 상기 자동 테스트 장비는 상기 수집된 테스트 데이터를 분석해서 테스트 결과를 획득하도록 구성되는,
    자동 테스트 장비.
  23. 제17항 내지 제22항 중 어느 한 항에 있어서,
    상기 훈련된 인공지능 또는 머신 러닝 유닛은 상기 수집된 테스트 데이터를 분석해서 테스트 시퀀스를 최적화하거나 및/또는 테스트 결과를 획득하도록 구성되는,
    자동 테스트 장비.
  24. 자동 테스트 장비에 의해 하나 이상의 장치를 테스트하는 프로세스로서,
    상기 자동 테스트 장비는 복수의 테스트 활동을 포함하는 하나 이상의 테스트 시나리오를 생성하며,
    각각의 테스트 활동은 상기 테스트 대상 장치의 리소스의 서브세트를 활용하며,
    상기 자동 테스트 장비는, 테스트 시나리오의 복수의 테스트 활동과 관련된 상기 테스트 대상 장치의 리소스가 서로 충돌하지 않게, 복수의 테스트 시나리오를 생성하도록 구성되는
    프로세스.
  25. 컴퓨터 또는 신호 프로세서에 의해 실행될 때, 제24항의 방법을 구현하는, 컴퓨터 프로그램.
KR1020227014223A 2020-07-21 2020-07-21 상이한 테스트 활동이 테스트 대상 장치 리소스의 서브세트를 활용하는, 하나 이상의 테스트 대상 장비를 테스트하는 자동 테스트 장비, 프로세스 및 컴퓨터 프로그램 KR20230038407A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2020/070599 WO2022017589A1 (en) 2020-07-21 2020-07-21 An automated test equipment, a process and a computer program for testing one or more devices under test, wherein different test activities make use of subsets of the device under test resources

Publications (1)

Publication Number Publication Date
KR20230038407A true KR20230038407A (ko) 2023-03-20

Family

ID=71786920

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227014223A KR20230038407A (ko) 2020-07-21 2020-07-21 상이한 테스트 활동이 테스트 대상 장치 리소스의 서브세트를 활용하는, 하나 이상의 테스트 대상 장비를 테스트하는 자동 테스트 장비, 프로세스 및 컴퓨터 프로그램

Country Status (7)

Country Link
US (1) US20220253375A1 (ko)
JP (1) JP2023534966A (ko)
KR (1) KR20230038407A (ko)
CN (1) CN114631031A (ko)
DE (1) DE112020007444T5 (ko)
TW (1) TWI781634B (ko)
WO (1) WO2022017589A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11010281B1 (en) * 2020-10-12 2021-05-18 Coupang Corp. Systems and methods for local randomization distribution of test datasets
US20240085477A1 (en) * 2022-09-09 2024-03-14 Cisco Technology, Inc. Stress-testing electrical components using telemetry modeling
CN116774017A (zh) * 2023-08-22 2023-09-19 南京宏泰半导体科技股份有限公司 一种基于机器学习的芯片测试效率提升系统及方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001063311A2 (en) * 2000-02-22 2001-08-30 Don Mccord Method and system for wafer and device-level testing of an integrated circuit
US6618682B2 (en) * 2001-04-20 2003-09-09 International Business Machines Corporation Method for test optimization using historical and actual fabrication test data
US7823128B2 (en) * 2004-04-19 2010-10-26 Verigy (Singapore) Pte. Ltd. Apparatus, system and/or method for combining multiple tests to a single test in a multiple independent port test environment
US7809520B2 (en) * 2007-11-05 2010-10-05 Advantest Corporation Test equipment, method for loading test plan and program product
US9959186B2 (en) * 2012-11-19 2018-05-01 Teradyne, Inc. Debugging in a semiconductor device test environment
US9274911B2 (en) * 2013-02-21 2016-03-01 Advantest Corporation Using shared pins in a concurrent test execution environment
US9310427B2 (en) * 2013-07-24 2016-04-12 Advantest Corporation High speed tester communication interface between test slice and trays
US9465071B2 (en) * 2014-03-04 2016-10-11 Mediatek Inc. Method and apparatus for generating featured scan pattern
US9588177B1 (en) * 2016-01-05 2017-03-07 International Business Machines Corporation Optimizing generation of test configurations for built-in self-testing
US10557886B2 (en) * 2017-04-28 2020-02-11 Advantest Corporation Test system supporting multiple users using different applications
US10451668B2 (en) * 2017-04-28 2019-10-22 Advantest Corporation Test program flow control
DE102017117322A1 (de) * 2017-07-31 2019-01-31 Infineon Technologies Ag Verfahren zur Herstellung eines Halbleiterbauelementes mittels computergestütztem Entwurf von Testszenarien
US10948540B2 (en) * 2018-07-27 2021-03-16 Advantest Corporation Integrated protocol analyzer configured within automated test equipment (ate) hardware
US10746790B1 (en) * 2019-03-25 2020-08-18 International Business Machines Corporation Constrained pseudorandom test pattern for in-system logic built-in self-test
DE102019111881A1 (de) * 2019-05-07 2020-11-12 Infineon Technologies Ag Verfahren und vorrichtung zum senden von daten gemäss einem signalzeitablauf

Also Published As

Publication number Publication date
TW202206835A (zh) 2022-02-16
CN114631031A (zh) 2022-06-14
TWI781634B (zh) 2022-10-21
JP2023534966A (ja) 2023-08-15
US20220253375A1 (en) 2022-08-11
WO2022017589A1 (en) 2022-01-27
DE112020007444T5 (de) 2023-06-15

Similar Documents

Publication Publication Date Title
TWI781634B (zh) 用以測試一或多個受測裝置之自動化測試裝備、方法及電腦程式,其中不同測試活動使用受測裝置資源之子集
US10495691B2 (en) System architecture method and apparatus for adaptive hardware fault detection with hardware metrics subsystem
US10768230B2 (en) Built-in device testing of integrated circuits
US7870448B2 (en) In system diagnostics through scan matrix
US7571367B2 (en) Built-in self diagnosis device for a random access memory and method of diagnosing a random access
US20040216061A1 (en) Embeddable method and apparatus for functional pattern testing of repeatable program instruction-driven logic circuits via signal signature generation
Polian et al. Exploring the mysteries of system-level test
US10746794B2 (en) Logic built in self test circuitry for use in an integrated circuit with scan chains
US20180252768A1 (en) Test Application Time Reduction Using Capture-Per-Cycle Test Points
JP2006105997A (ja) 電子デバイスにスキャンパターンを提供する方法および装置
US9864004B1 (en) System and method for diagnosing failure locations in electronic circuits
US6707313B1 (en) Systems and methods for testing integrated circuits
US7480882B1 (en) Measuring and predicting VLSI chip reliability and failure
US20020116675A1 (en) Method and system for determining common failure modes for integrated circuits
US9885752B2 (en) Test apparatus for generating reference scan chain test data and test system
Bernardi et al. Applicative system level test introduction to increase confidence on screening quality
US10963612B2 (en) Scan cell architecture for improving test coverage and reducing test application time
US10325048B1 (en) Virtual directory navigation and debugging across multiple test configurations in the same session
US20110047425A1 (en) On-Chip Logic To Log Failures During Production Testing And Enable Debugging For Failure Diagnosis
Jutman et al. High quality system level test and diagnosis
Han et al. A New Multi‐site Test for System‐on‐Chip Using Multi‐site Star Test Architecture
US10338137B1 (en) Highly accurate defect identification and prioritization of fault locations
Gurumurthy et al. Comparing the effectiveness of cache-resident tests against cycleaccurate deterministic functional patterns
Pyron et al. Next generation PowerPC/sup TM/microprocessor test strategy improvements
US20170010320A1 (en) Reducing test time and system-on-chip (soc) area reduction using simultaneous clock capture based on voltage sensor input