KR102126763B1 - 다중 처리 경로를 사용하는 장치 검사 방법 및 장치 - Google Patents

다중 처리 경로를 사용하는 장치 검사 방법 및 장치 Download PDF

Info

Publication number
KR102126763B1
KR102126763B1 KR1020157026740A KR20157026740A KR102126763B1 KR 102126763 B1 KR102126763 B1 KR 102126763B1 KR 1020157026740 A KR1020157026740 A KR 1020157026740A KR 20157026740 A KR20157026740 A KR 20157026740A KR 102126763 B1 KR102126763 B1 KR 102126763B1
Authority
KR
South Korea
Prior art keywords
vector
processing
paths
path
branch
Prior art date
Application number
KR1020157026740A
Other languages
English (en)
Other versions
KR20150128757A (ko
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 KR20150128757A publication Critical patent/KR20150128757A/ko
Application granted granted Critical
Publication of KR102126763B1 publication Critical patent/KR102126763B1/ko

Links

Images

Classifications

    • 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/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318307Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
    • 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/2832Specific tests of electronic circuits not provided for elsewhere
    • G01R31/2834Automated test systems [ATE]; using microprocessors or computers
    • 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/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31919Storing and outputting test patterns
    • 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/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31926Routing signals to or from the device under test [DUT], e.g. switch matrix, pin multiplexing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • 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/3177Testing of logic operation, e.g. by logic analysers
    • 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
    • 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/31917Stimuli generation or application of test patterns to the device under test [DUT]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)

Abstract

일부 특징에 따라, 복수의 경로를 포함하고 검사 패턴으로 프로그램된 자동 검사 시스템을 동작시키는 방법이 제공되어 있다. 이러한 하나의 방법은 복수의 경로를 포함하는 회로에 의해 상기 검사 패턴 내의 벡터를 실행하는 단계를 포함하고, 상기 벡터를 실행하는 단계는, 상기 복수의 경로중 제1 경로에서, 상기 검사 패턴 내의 비순차 위치로의 분기를 상기 검사 패턴 내의 벡터의 실행의 흐름에서 생성할 수 있는 오퍼레이션을 규정하는 벡터의 오퍼레이션부의 처리시에, 상기 비순차 위치로부터 상기 복수의 경로의 제2 경로에서 상기 검사 패턴의 처리를 시작하는 단계를 포함한다. 일부 특징은 복수의 경로의 유용한 경로에서 메모리의 순차 위치로부터 오퍼레이션부의 처리를 시작하도록 제어 회로를 포함하는 복수의 경로를 포함하는 명령어를 실행하기 위한 시스템을 포함하고 있다.

Description

다중 처리 경로를 사용하는 장치 검사 방법 및 장치{METHOD AND APPARATUS FOR DEVICE TESTING USING MULTIPLE PROCESSING PATHS}
반도체 장치의 제조의 중요한 단계는 장치가 설계된 대로 동작하고 있는지를 보장하는 것이다. "검사"로서 알려진 이러한 단계는, 자주, 장치의 동작을 자동으로 분석하는 자동 검사 기기, 또는 "검사기"를 사용하여 실시된다. 이러한 자동 검사 기기는 검사 신호를 하나 이상의 피검사 장치(DUT) 상의 하나 이상의 검사점으로 전송하고 이러한 검사점으로부터 검사 신호의 값을 측정할 수 있는 복잡한 전자장치를 포함하고 있다.
많은 타입의 검사에 대해, 검사기는 DUT가 동작하고 있는 속도에 상응하는 속도로 검사 신호를 생성하고 및/또는 측정할 필요가 있다. 그렇지 않으면, 아무런 자극이 DUT에 제공되지 않는 DUT 동작의 사이클이 존재할 것이고, 이로 인해 DUT의 동작이 부정확해진다. 대안으로, 검사기가 DUT의 부정확한 동작을 검출하지 못하도록 검사기가 DUT에서 값을 측정하지 않는 DUT의 사이클이 존재할 수도 있다. 따라서, 현대, 고속 반도체 장치를 검사하기 위해, 검사기는 초고속으로 검사 신호를 생성하고 측정해야만 한다.
고속으로 검사 신호 동작을 제어하는 문제는 검사기가 DUT 동작의 각각의 사이클에 대해 검사 신호를 생성하거나 판정하도록 다수의 동작을 실행할 필요가 있을 수 있다는 사실에 의해 복잡해진다. 일부 검사를 위해, 검사 신호를 생성하거나 판정하기 위해 검사기에서 실행되는 동작은 검사 패턴에 의해 한정된다. 동작중에, "패턴 생성기"로 불리는, 검사기 내의 회로는 패턴을 완성할 수 있다. 이러한 패턴 검사기는 DUT 동작의 모든 사이클에 대해 검사 신호가 존재하도록 보장하는 속도로 검사기가 검사 신호를 생성하고 판정할 수 있도록 하는 속도로 검사 패턴을 완성하여야 한다.
이러한 검사 패턴은 무슨 신호가 DUT상의 다수의 검사점의 각각으로 전송되고 측정될 것으로 예상되는지를, 다수의 검사기 사이클의 각각에 대해 명시할 수 있다. 이러한 검사기 사이클은 검사기 동작이 DUT 동작의 모든 사이클에 대해 명시되도록 DUT 동작의 사이클와 동일하거나 보다 빠를 수 있다.
검사 패턴은 각각 검사기의 동작의 하나의 사이클 동안 검사 신호를 생성하거나 측정할 수 있는 채널 회로의 동작을 명시하는 일련의 벡터를 포함하고 있다. 또한, 벡터는 실행될 후속 벡터를 명시하는 정보를 포함할 수 있다. 일부 예에서, 벡터 내의 정보는 실행될 다음 벡터가 실행되고 있는 벡터에 이어지는 위치에서 메모리에 저장되어 있다는 것을 나타낼 수 있다. 이러한 방식의 실행은 순차적이다라고 한다. 그러나, 다른 예에서, 실행될 다음 벡터를 명시하는 벡터 내의 정보는 검사 패턴의 실행이 "분기(branch)"하도록 비순차 위치를 명시할 수 있다. 일부 예에서, 이러한 분기는 검사 패턴 내의 벡터가 실행되는 순서가 DUT로부터의 관찰된 응답에 기초하여 또는 검사기 하드웨어가 식별하도록 구성된 다른 조건에 기초하여 동적으로 결정되도록 조건 분기(conditional branch)일 수 있다.
조건 분기는 검사 패턴을 신속히 실행하는 필요를 증가시킨다. 종래의 마이크로프로세서에서, 프로그램 명령어의 고속 실행은 파이프라인 구조를 통해 달성될 수 있다. 파이프라인 구조에 의해, 명령어를 실행하는 회로는 랭크로 불리는 부분으로 분할된다. 이러한 랭크는 하나의 랭크에서의 처리가 완료될 때, 그 다음 랭크가 결과를 처리하도록 준비될 때까지 결과가 레지스터에 저장될 수 있도록 레지스터 또는 다른 데이터 저장 구성요소에 의해 분리되어 있다. 하나의 파이프라인 내의 회로는 이러한 파이프라인 내의 랭크가 하나의 명령어의 일부를 처리하고 있을 때, 선행 랭크가 그 다음 순차 명령어의 일부를 처리하고 있도록 제어될 수 있다.
각각의 랭크 내의 회로는 전체 명령어를 실행하도록 구성된 회로 보다 빠르게 명령어의 일부에 대한 처리를 완료할 수 있을 가능성이 높다. 그 결과, 파이프라인 회로는 논-파이프라인 회로 보다 빠른 속도로 일련의 명령어를 처리할 수 있다.
이러한 연속 동작의 처리의 보다 빠른 속도에 의해 파이프라인이 명령어를 실행하기 시작하는 시점과 이러한 처리의 결과가 먼저 유용한 시점 사이에 지연이 존재한다. 이러한 파이프라인 내의 각각의 랭크는 명령어에 대한 처리를 시작하기 전에 선행 랭크가 출력을 생성하기를 기다릴 필요가 있기 때문에, 파이프라인은 제1 결과에 대한 시간이 모든 랭크에서의 처리 지연의 합이 되도록 각각의 랭크가 이러한 동작을 처리할 때까지 연속으로 제1 명령어에 대한 출력을 생산하지 않는다. 그 이후, 파이프라인 회로는 단일 랭크에서의 최장 처리 시간에 의해 설정된 속도로 출력을 생산할 수 있다.
이러한 추가 지연은 일련의 명령어가 먼저 처리를 위해 제공될 때 새로운 일련의 명령어가 실행을 위해 공급되는 경우에 파이프라인 회로의 출력의 중단을 유발한다. 이러한 중단은 조건 분기 명령어가 실행될 때 발생한다. 분기는 일련의 명령어가 처리되는 새로운 시작점을 규정한다. 조건 분기 명령어가 실행된 후까지 분기가 취해질지 알려져 있지 않기 때문에, 새로운 일련의 명령어는 이러한 조건 분기 명령어를 실행한 결과가 유용할 때까지 파이프라인에 적용될 수 없다. 따라서, 재시작과 연관된 지연 이후까지 분기가 취해지면 파이프라인의 출력은 공급되지 않는다.
이러한 파이프라인은 이러한 지연 동안 "기능 정지되었다(stalled)"가 말한다. 종래의 마이크로프로세서에서, 기능 정지된 파이프라인과 연관된 지연은 대체로 명령어가 기능 정지 후에 실행될 수 있는 보다 빠른 속도에 의해 오프셋된다. 그러나, 검사기에서, 검사 패턴 내의 처리 벡터에서의 이러한 중단은 입력이 DUT에 공급되지 않거나 결과가 적절한 시간에 측정되지 않아 검사의 결과에 영향을 줄 가능성을 만드는 DUT 동작의 사이클이 처리가 기능 정지된 동안 존재할 수도 있기 때문에 바람직하지 않다.
검사의 결과에 영향을 주지 않고 보다 빠른 실행을 허용하기 위해, 일부 검사기는 다수의 검사기 사이클이 벡터를 실행하는데 필요하더라도 실행이 DUT 동작의 하나의 사이클 안에 완료될 수 있도록 초고속 회로에 의해 설계된다. 그러나, 이러한 초고속 회로의 비용은 비쌀 수 있다. 대안으로, 일부 검사기는 제한된 양의 조건 분기 안에 검사 패턴을 실행하도록 설계될 수 있다. 그러나, 이러한 방법은 검사기의 기능을 제한한다.
일부 실시예는 복수의 벡터를 포함하는 검사 패턴으로 프로그램된 자동 검사 시스템을 동작시키는 방법을 포함하고, 상기 복수의 벡터는 각각 상기 검사 패턴 내의 위치와 연관되어 있고, 상기 복수의 벡터의 적어도 일부의 각각은 오퍼레이션부 및 데이터부를 포함하고, 상기 오퍼레이션부는 상기 검사 패턴의 실행 동안 후속 벡터의 위치를 결정하는 오퍼레이션을 규정하고, 상기 데이터부는 상기 벡터의 실행시에 피검사 장치의 복수의 검사점에서 검사 신호를 생성하거나 측정하도록 상기 자동 검사 시스템에 의해 실행되는 액션에 적어도 일부 특성을 부여하고, 상기 방법은, 각각 벡터의 오퍼레이션부를 처리하도록 구성된 복수의 경로를 포함하는 회로에 의해 상기 검사 패턴 내의 벡터를 실행하는 단계를 포함하고, 상기 벡터를 실행하는 단계는, 상기 복수의 경로중 제1 경로에서, 상기 검사 패턴 내의 비순차 위치로의 분기를 상기 검사 패턴 내의 벡터의 실행의 흐름에서 생성할 수 있는 오퍼레이션을 규정하는 벡터의 오퍼레이션부의 처리시에, 상기 비순차 위치로부터 상기 복수의 경로의 제2 경로에서 상기 검사 패턴의 처리를 시작하는 단계를 포함하고 있다.
일부 실시예는 프로그램을 규정하는 명령어를 실행하기 위한 시스템을 제공하고, 상기 명령어 각각은 상기 프로그램 내의 위치와 연관되어 있고, 복수의 명령어의 적어도 일부의 각각은 오퍼레이션부 및 데이터부를 포함하고 있고, 상기 오퍼레이션부는 상기 프로그램의 실행 동안 후속 명령어의 위치를 결정하는 오퍼레이션을 규정하고, 상기 데이터는 상기 명령의 실행시에 상기 시스템에 실행되는 액션에 적어도 일부 특성을 부여하고, 상기 시스템은, 적어도 상기 프로그램의 명령어의 오퍼레이션부를 저장하도록 구성된 메모리; 복수의 경로로서, 상기 복수의 경로의 각각은 상기 메모리 내의 순차 위치로부터의 명령어의 오퍼레이션부를 처리하기 위한 회로를 포함하고, 상기 복수의 경로의 각각은 상기 메모리로부터 명령어의 오퍼레이션부를 수신하도록 결합되어 있고, 상기 복수의 경로의 각각은 명령어의 오퍼레이션부의 실행에 의해 상기 프로그램 내의 비순차 위치로 분기를 생성할 수 있는지 여부를 결정하기 위한 오퍼레이션 처리 회로를 포함하는 복수의 경로; 제어 회로로서, 상기 복수의 경로의 유용한 경로 내의 메모리의 순차 위치로부터 오퍼레이션부의 처리를 시작하고, 상기 처리는 분기를 나타내는 활성 경로 내의 오퍼레이션부의 처리에 기초하여 시작되고, 상기 유용한 경로에서의 처리는 상기 분기의 목적지로부터 시작되고; 상기 프로그램의 실행이 순차 처리가 상기 경로에 대해 시작된 목적지에 분기되지 않았다고 판정시에 활성 경로가 유용한 것으로 분류하는 제어 회로; 출력부를 갖는 멀티플렉서로서, 상기 복수의 경로의 활성 경로로부터의 값을 상기 출력부에서 선택하고 제공하도록 상기 복수의 경로에 결합된 멀티플렉서; 및 상기 멀티플렉서의 출력부에 결합되어 있고, 상기 멀티플렉서의 출력부에서 상기 값에 의해 표시된 상기 프로그램 내의 위치에서 명령어의 데이터부를 처리하도록 구성된 데이터 처리 회로를 포함하고 있다.
일부 실시예는 복수의 연속 사이클에서 프로그램을 규정하는 복수의 명령어를 실행하기 위한 시스템을 동작시키는 방법을 포함하고, 상기 복수의 명령어는 각각 상기 프로그램 내의 위치와 연관되어 있고, 상기 복수의 명령어의 적어도 일부의 각각은 오퍼레이션부 및 데이터부를 포함하고 있고, 상기 오퍼레이션부는 상기 프로그램의 실행 동안 후속 명령어의 위치를 결정하는 오퍼레이션을 규정하고, 상기 데이터부는 상기 명령어의 실행시에 상기 시스템에 의해 실행되는 액션에 적어도 일부 특성을 부여하고, 상기 방법은, 복수의 순차적인 사이클의 각각에서, 상기 프로그램 내의 순차 위치에서 명령어의 오퍼레이션부를 처리하도록 복수의 경로를 오퍼레이팅하는 단계; 및 상기 복수의 순차적인 사이클의 각각에서, 상기 복수의 경로중 하나의 경로로부터 선택된 값에 기초하여 상기 프로그램의 명령어의 데이터부에 접근하는 단계를 포함하고, 명령어의 오퍼레이션부가 처리되는 프로그램 내의 위치가 상기 복수의 경로의 상이한 경로에서 상이하고; 상기 복수의 경로의 적어도 일부에 대해, 명령어가 하나의 사이클에서 처리되는 위치는 상기 복수의 사이클의 이전의 사이클의 상이한 경로 내의 명령어의 오퍼레이션부의 처리에 의존한다.
상기는 첨부된 청구범위에서만 규정되는 본 발명의 비제한 요약이다.
첨부된 도면은 일정한 비율로 도시된 것이 아니다. 도면에서, 다양한 도면에서 도시된 각각의 동일하거나 거의 동일한 구성요소는 동일한 부재번호로 표시되어 있다. 이해를 위해, 모든 도면에서 모든 구성요소에 라벨을 붙인 것은 아니다.
도 1은 본 발명의 실시예중 하나에 관련하여 사용될 수 있는 자동 검사 기기를 사용하여 장치를 검사하기에 적절한 시스템을 도시하고 있다.
도 2는 일부 실시예에 따른 검사 패턴의 벡터의 구조를 도시하는 도면이다.
도 3은 여기에 기술된 일부 실시예를 실시하기에 적절한, 복수의 벡터를 포함하는 검사 패턴의 예를 도시하는 도면이다.
도 4는 일부 실시예에 따른 패턴 생성기 처리 로직의 제1 예의 개략도이다.
도 5a-도 5i는 일부 실시예에 따른, 검사 패턴 생성기의 다수의 사이클 동안 검사 패턴 벡터를 처리하는 복수의 처리 경로를 도시하는 도면이다.
도 6은 일부 실시예에 따른, 패턴 생성기 처리 로직의 제2 예의 개략도이다.
도 7은 일부 실시예에 따라 검사 패턴 위치를 저장하는 룩업의 예를 도시하는 도면이다.
도 8a-도8c는 일부 실시예에 따라, 검사 패턴 생성기의 다수의 사이클 동안 검사 패턴 벡터를 처리하는 복수의 처리 경로를 도시하는 도면이다.
도 9는 일부 실시예에 따른, 복수의 경로에서 벡터를 처리하는 방법을 도시하는 도면이다.
본 발명자는 고속 및 소기능 검사기가 검사 패턴 내의 벡터의 오퍼레이션부를 처리하기 위한 다중 경로를 갖는 패턴 생성기 회로를 사용함으로써 생성될 수 있다는 것을 인식하고 이해하였다. 검사 패턴 내의 상이한 위치로부터의 순차 처리가 특정 분기가 취해질 지를 나타내는 검출된 조건 및 검사 패턴 내의 조건 분기 명령어에 기초하여 이러한 경로의 각각에서 시작되거나 종료될 수 있다. 각각의 경로에서, 파이프라인 회로가 사용될 수 있다.
다수의 사이클의 각각에서, 경로 내의 값이 선택되고 사용되어 벡터를 식별할 수 있다. 값의 선택은 값을 취득하는 경로 및 이러한 경로의 파이프라인 회로 내의 랭크 모두를 선택하는 단계를 수반할 수 있다. 이러한 선택된 값은 벡터를 식별하는데 사용될 수 있고, 이러한 벡터의 데이터부는 하나의 사이클 동안 검사 신호를 생성하거나 측정하도록 검사기를 제어하는데 사용될 수 있다.
이러한 패턴 생성기는 유용한 벡터 타입으로 제한하는 감소된 특징 세트에 의해 검사기를 실행하는 현 기술과 대조되는 고기능을 제공할 수 있다. 이러한 기술이 패턴 생성기 하드웨어를 단순화할 수 있고 벡터를 보다 빠른 속도로 실행하도록 할 수 있지만, 실행될 수 있는 검사의 타입을 제한할 수 있다.
예로서, 여기에 기술된 기술에 따라 구성된 패턴 생성기에 의해 동일 사이클 분기가 가능할 수 있다. 이에 반해, 패턴 생성기 설계에서 사용되는 일부 현 기술로는 동일 사이클 분기를 포함하는 검사 패턴의 적절한 실행이 불가능하다. 이러한 시나리오는 조건 분기 동작이 다른 조건 분기 동작으로 실행이 이전하도록 허용될 때 발생할 수 있다. 벡터가 모든 DUT 사이클 마다 DUT에 제공되도록 검사기를 실행하기 위해, 검사기는 패턴 생성기 하드웨어의 단일 사이클 내에서 조건 분기 명령어의 결과를 알아낼 수 있어야 한다. 이러한 타이밍은 제1 조건 분기의 실행이 후속 동작이 결정되어 그 다음 사이클에서 사용가능하도록 함으로써 하나의 사이클에서 실행을 제2 조건 분기 동작으로 전달하는 시나리오를 수용한다. 그렇지 않으면, 제2 조건 분기 동작의 실행에 이어지는 사이클에서 어떤 명령어도 실행을 위해 유용하지 않아, 잠재적으로 부정확한 검사 결과를 산출한다.
본 발명자는 검사 벡터가 순차 실행을 위해 얻어지는 검사 패턴 안에 일련의 위치를 제공하도록 각각 파이프라인될 수 있는 복수의 처리 경로를 사용함으로써 향상된 검사 패턴 생성기가 구성될 수 있음을 인식하고 이해하였다. 처리 회로는 또한 특정 동작이 비순차 위치로 분기를 트리거할 수도 있는지 여부를 결정하기 위해 벡터의 오퍼레이션부가 경로에서 처리됨에 따라 이러한 오퍼레이션부를 처리할 수 있다.
동작이 비순차 위치로의 분기를 트리거할 수 있다면, 이러한 비순차 위치로의 실행을 전달함으로써 일어날 수도 있는 가능한 목적지로부터의 순차 실행이 하나 이상의 다른 경로에서 시작될 수 있다. 일부 실시예에서, 이러한 가능한 목적지는 이러한 분기 동작에 이어지는 1, 2 또는 그 보다 많은 사이클을 유발할 수도 있는 목적지를 포함할 수 있다. 미래로의 사이클의 수는 하드웨어가 조건 분기의 목적지를 계산하는데 사용할 사이클의 수에 상응할 수 있다.
예를 들어, 일부 실시예에서, 하드웨어는 조건 분기의 가능한 목적지를 계산하기 위해 2개의 사이클을 사용할 수 있다. 이러한 시나리오에서, 제1 경로에서 실행되는 제1 조건 분기 동작은 제2 조건 분기 동작을 포함하는 검사 패턴 내의 제2 위치로 실행을 전달할 수도 있다. 제1 조건 분기를 처리하는 것에 응답하여, 하드웨어는 제2 경로의 제2 위치로부터 순차 실해을 시작할 수 있다. 제2 조건 분기가 실행을 제3 위치로 이전시킬 수 있다면, 하드웨어는 또한 제3 경로의 해당 위치로부터 순차 실행을 시작할 수 있다. 그러나, 제2 위치 및 제3 위치로부터의 실행이 상이한 미래의 사이클에서 발행하기 때문에, 제3 경로의 제3 위치로부터의 순차 실행은 상이한 사이클에서 시작될 수도 있어 제3 위치로부터의 실행의 값은 제2 위치로부터 시작된 실행과 상이한, 파이프라인 내의 랭크에 있게 될 것이다. 이러한 방식으로, 어느 조건 분기 동작이 비순차 실행을 유발하는지에 관계없이, 적절한 경로 및 랭크를 선택함으로써, 벡터를 획득하는 적절한 위치를 나타내는 값이 제1 조건 분기에 이어지는 사이클에서 선택될 수 있다.
이러한 패턴 생성기 하드웨어는 벡터의 어떤 오퍼레이션부가 각각의 경로에서 처리되든 추가 경로에서 순차 실행을 시작하는데 있어 이러한 방법을 적용할 수 있다. 예를 들어, 제1 조건 분기에 이어지는 검사 패턴 내의 추가 조건 분기 동작이 존재할 수 있다. 순차 처리가 제1 경로에서 계속됨에 따라, 이러한 추가 조건 분기 동작이 처리될 수 있어서, 또 다른 경로 내의 또 다른 위치로부터 시작되는 순차 실행을 트리거할 수 있다. 마찬가지로, 벡터의 오퍼레이션부가 제2 및 제3 경로에서 처리됨에 따라, 조건 분기 동작이 이러한 경로에서 처리될 수 있어, 또 다른 경로에서의 처리를 트리거할 수 있다.
이러한 방식으로 상이한 경로에서 검사 패턴 내의 상이한 위치로부터 처리를 반복적으로 달성하면, 결국 패턴 생성기 내의 모든 유용한 경로를 사용하는 데까지 이를 수 있다. 이렇게 되면, 경로중 어느 하나의 경로 내의 조건 분기의 연속 처리는 검사 시스템의 적절한 동작을 생성하지 않을 수 있다. 이러한 조건의 위험을 줄이기 위해, 경로를 쳐낼(prune) 수 있다. 쳐냄은 벡터가 실행됨에 따라 결정되는 조건에 기초하여, 경로내의 처리가 시작된 위치로부터 벡터가 실행되지 않을 것이라는 결정되면 일어날 수 있다. 예를 들어, 검사 패턴의 실행이 조건 분기 명령어에서 분기되지 않을 것이라고 판정되면, 이러한 조건 분기를 처리하는 것에 응답하여 달성된 모든 경로는 "쳐내질" 수 있다. 이러한 관점에서, 쳐냄은 경로의 회로에 대한 동작의 처리의 중지를 수반할 수 있다. 그러나, 경로의 쳐냄은 경로를 재사용을 위해 사용가능하도록 만드는 것과 같은 임의의 적절한 방식으로 달성될 수 있다.
여기에 기술된 경로의 추가 및 쳐냄의 특정 방법은 예로서 제공되어 있고 경로를 시스템에 대해 유용하거나 유용하지 않게 하는 임의의 방법이 시스템이 이에 제한되지 않음에 따라 사용될 수 있다.
조건 분기 동작의 처리에 있어서, 패턴 생성기 하드웨어는 조건 분기 동작에 이어지는 하나 이상의 사이클에서 비순차 처리가 시작될 수도 있는 위치를 임의의 적절한 방법으로 결정할 수 있다. 일부 실시예에서, 가능한 위치는 패턴 생성기 내의 회로에 의해 동적으로 계산될 수 있다. 적절한 방법의 다른 예로서, 다른 실시예에서, 가능한 위치는 검사 패턴의 분석에 의해 미리 계산될 수 있다. 이러한 시나리오에서, 이러한 분석은 검사기로부터 분리될 수 있는 컴퓨터에서 실행되는 소프트웨어에 의해 이루어질 수 있다. 그다음, 각 벡터에 대한 가능한 위치는 검사 패턴과 관련하여 저장되어 이러한 위치의 결정은 이러한 값을 판독함으로써 달성될 수 있다.
일부 실시예에서, 검사 시스템은 복수의 처리 경로를 사용함으로써 단일 사이클 분기 기능을 제공하도록 구성될 수 있다. 분기 벡터의 실행 다음의 하나 이상의 사이클에서 실행될 수 있는 가능한 벡터를 결정함으로써, 임의의 수의 분기 동작이 순차로 실행될 수 있는 단일 사이클 분기 기능이 제공될 수 있다. 그러나, 일부 실시예에서, 실행될 수 있는 검사 패턴에 제약이 대안으로 또는 추가로 있을 수 있다는 것을 이해해야 한다. 제약을 부여함으로써, 보다 고각의 고속 하드웨어에 대한 필요없이 검사 패턴을 보다 빠르게 실행될 수 있지만, 검사기의 기능을 감소시킬 수 있다. 대안으로, 여기에 기술된 바와 같이 구성된 보다 저가의, 보다 저속의 회로가 보다 저가의 검사기를 제공하도록 감소된 기능과 관련하여 사용될 수도 있다. 이에 따라, 여기에 기술된 기술은 임의의 적절한 목표를 달성하기 위해 임의의 적절한 조합으로 적용될 수 있고, 본 발명은 구체적으로 기술된 실시예 또는 장점에 제한되지 않는다.
아래에 하나 이상의 처리 경로를 포함하는 자동 검사 시스템을 동작시키는 시스템과 연관된 방법 및 장치와 관련된 다양한 개념의 실시예가 보다 상세하게 설명되어 있다. 여기에 기술된 다양한 특징은 다수의 방법중 하나로 구현될 수 있음을 이해해야 한다. 특정 실시예의 예는 단지 설명을 위해 여기에 제시되었다. 또한, 아래의 실시예에서 기술된 다양한 특징은 단독 또는 임의의 조합으로 사용될 수 있고, 여기에 명시적으로 기술된 조합에 제한되지 않는다.
도 1은 본 발명의 실시예중 하나에 관련하여 사용될 수 있는 자동 검사 기기를 사용하여 장치를 검사하기에 적절한 시스템을 도시하고 있다. 특히, 도 1은 각 사이클에 대해, 피검사 장치(DUT)(110)를 위한 신호를 생성하거나 이러한 피검사 장치로부터의 신호를 측정하기 위해 채널(1301, 1302,...130N)을 제어하는 제어기(120)를 포함하는 검사기(100)를 도시하고 있다. 채널(1301, 1302,...130N)은 검사 신호를 라인(1701, 1702,...170N)을 통해 각각 DUT(110)로 검사 신호를 전송하고 수신한다. N은 검사 시스템의 필요에 따른 임의의 적절한 값을 취할 수 있다는 것을 이해할 것이다.
제어기(120)는 예를 들어, 검사기(100)에 의해 수행된 검사 처리를 명령하도록 프로그램된 컴퓨터를 포함할 수 있다. 이러한 제어기의 예는 또한 검사 동안 데이터를 집합 및/또는 처리할 수 있고 인터페이스를 운전자에게 제공할 수 있다. 제어기(120)는 또한 다수의 채널(1301, 1302,...130N)에 의해 공유된 회로를 포함할 수 있다.
도 1의 예에서, 채널(1301)이 추가로 상세하게 도시되어 있고, 패턴 생성기(140), 타이밍 생성기(150) 및 핀 일렉트로닉스(160)를 포함하고 있다. 패턴 생성기(140)는 검사 시스템의 각 사이클 동안 검사 채널(1301)의 동작을 한정하는 검사 패턴의 실행을 수행한다. 예를 들어, 동작은 검사 시스템이 DUT(110)와 상호작용하도록 하는 검사 패턴의 벡터를 실행할 수 있다. 이러한 상호작용은 DUT(110) 상의 하나 이상의 검사점에 하나 이상의 검사 신호를 전송하는 단계 및/또는 DUT(110) 상의 하나 이상의 검사점으로부터 하나 이상의 검사 신호를 수신하는 단계를 포함할 수 있다. 검사 패턴에 의해 프로그래밍된, 시스템(100)과 같은 자동 검사 시스템은 패턴 생성기가 검사 패턴으로부터의 벡터를 검색하고 실행할 수 있도록 임의의 적절한 위치에 검사 패턴을 저장할 수 있다. 비제한의 예로서, 검사 패턴은 시스템(100)내의, 예를 들어, 패턴 생성기(140) 내의 메모리에 저장될 수 있다.
타이밍 생성기(150)는 검사 신호 사이의 천이를 제어하는 타이밍 신호를 생성한다. 예를 들어, 타이밍 생성기(150)는 검사 신호가 DUT(110)에 제공되기 시작하는 시작 시간, 또는 DUT(110)로부터 제공된 검사 신호가 측정되어야 하는 시간을 정의할 수 있다.
핀 일렉트로닉스(160)는 라인(1701)을 통해 DUT(110)로 전송되고 수신되는 검사 신호를 위한 인터페이스를 제공한다. 특히, 핀 일렉트로닉스(160)는 DUT(110) 상의 하나 이상의 검사점에 검사 신호를 제공하는 구동 회로를 포함하고, DUT(110) 상의 하나 이상의 검사점으로부터 검사 신호를 수신하는 검출 회로를 포함하고 있다. 이러한 구동 회로는 구동기(162) 및 플립플롭(164)을 포함하고 있다. 플립플롭(164)은 타이밍 생성기(150)에 의해 제공된 타이밍 신호에 의해 클로킹되고 패턴 생성기로부터 데이터가 공급된다. 이로 인해, 플립플롭(164)은 구동기(162)에 의해 출력된 특정 검사 신호 및 출력 시간을 제어할 수 있다.
핀 일렉트로닉스(160)는 또한 비교기(166) 및 라인(1701)을 통해 DUT(110)로부터 검사 신호를 검출할 수 있다. 비교기는 프로그램가능한 기준 값 생성기(168)에 의해 제공된 기준값에 더해 DUT(110) 상의 하나 이상의 검사점으로부터 제공된 검사 신호를 수신한다. 비교기(166)는 수신된 검사 신호가 프로그램가능한 기준 값 생성기(168)로부터 제공된 특정 값, 또는 특정 값의 범위와 매치하는지 여부를 판정할 수 있다. 예를 들어, 비교기(166)는 DUT(110)로부터 수신된 검사 신호가 실행되는 검사의 예측된 결과와 매치하는지를 판정하도록 사용될 수 있고, 검사 신호가 예측값 상하에 있는지에 기초하여 하이 또는 로우 값을 제공할 수 있다. 래치(165)는 타이밍 생성기(150)에 의해 클로킹되고, 추가 처리를 위해 패턴 생성기(140)로 비교기(166)의 출력을 전송시킬 수 있다.
도 1의 예는 패턴 생성기를 사용하여 피검사 장치로 검사 신호를 제공하고 수신하는 제한되지 않는 예로서 제공되어 있다. 그러나, 자동 검사 시스템의 임의의 적절한 구현이 본 발명이 이러한 특징에 제한되지 않음에 따라 사용될 수 있다. 도 1은 검사를 실행하는 개념적 예로서 제공되어 있고, 검사 시스템의 실제 회로는 도 1에 도시되지 않은 구성요소를 포함할 수 있고, 및/또는 상이한 구성을 사용하여 도시된 구성요소를 연결할 수 있다는 것을 이해할 것이다. 예를 들어, 실제 회로에서 패턴 생성기는 플립플롭(164) 또는 래치(165)에 클록 또는 데이터를 제공하지 않고; 패턴 생성기가 타이밍 생성기(150)에 제어 신호를 제공할 수 있고 이러한 타이밍 생성기 및/또는 시스템 내의 다른 구성요소로부터 제어 신호를 수신할 수 있다.
상술된 바와 같이, 피검사 장치의 자동 검사를 수행하기 위해 검사 패턴이 피검사 장치에 공급될 수 있다. 예를 들어, 이러한 자동 검사는 도 1에 도시된 시스템(100)을 사용하여 수행될 수 있다. 피검사 장치에 검사 신호를 제공하고 및/또는 피검사 장치로부터의 검사 신호를 측정하도록 검사 신호를 제공하도록 임의의 적절한 방식으로 검사 패턴이 구성될 수 있다. 도 2는 하나의 이러한 검사 패턴 구성의 예를 제공한다.
도 2의 예에서, 검사 패턴은 검사기의 동작의 하나의 사이클 동안 검사 신호를 생성하거나 측정할 수 있는 채널 회로의 동작을 각각 특정하는 일련의 벡터를 포함하고 있다. 도 2는 일부 실시예에 따른, 일련의 벡터에서 하나의 벡터의 구성예를 도시하고 있다.
도 2에서, 벡터(200)는 오퍼레이션부(210) 및 데이터부(230)를 포함하고 있다. 오퍼레이션부(210)는 실행되는 다음 벡터를 규정하도록 사용될 수 있는 오퍼레이션 요소(2121, 2122,...,212N)를 포함하고 있다. 예를 들어, 오퍼레이션 요소의 특정 값은 벡터(200)가 실행될때, 조건적일 수 있는 분기 오퍼레이션을 수행할 것이라는 나타낼 수 있다. 이러한 오퍼레이션 요소는 각각 디지털 비트(즉, 0 또는 1의 값)와 같은 임의의 적절한 요소를 포함할 수 있다.
특정 검사 동작을 수행하도록 검사 시스템을 구성할 수 있는 데이터가 벡터의 데이터부(230)에 의해 규정될 수 있다. 데이터부(230)는 디지털 비트(즉, 0 또는 1의 값)와 같은, 임의의 적절한 요소를 각각 포함할 수 있는 데이터 요소(2321, 2322,...232N)를 포함하고 있다. 예를 들어, 데이터부는 벡터가 실행될 때 DUT상의 하나 이상의 검사점에 기록되는 하나 이상의 값을 나타낼 수 있다. 다른 예로서, 데이터부는 벡터가 실행될 때, DUT상의 하나 이상의 검사점으로부터 판독되는 하나 이상의 값을 나타낼 수 있다. 일부 실시예에서, 검사 패턴 내의 각각의 벡터는 DUT 상의 하나 이상의 검사점에 대해 제공하고 및/또는 수신하는 검사 데이터를 규정하는 데이터부를 갖고 있다. 부정확한 검사 결과에 이를 수도 있는 검사 시스템 동작의 기능 정지를 피하는 일부 실시예에서, 하나의 벡터는 다수의 검사기 사이클의 각각에서 실행될 수 있다.
벡터(200)와 같은 각각의 벡터는 벡터가 실행되는 순서를 나타낼 수 있는, 검사 패턴 내의 위치와 연관될 수 있다. 예를 들어, 검사 시스템은 순차 위치 값을 선택하고 이러한 위치에 있는 벡터를 실행함으로써 벡터를 순차적으로 실행할 수 있다. 예를 들어, 위치 1에 있는 벡터가 실행되면, 그다음 실행되는 벡터는 위치 2에 있는 벡터일 수 있고, 그다음, 위치 3에 있는 벡터등이 실행될 수 있다. 이러한 검사 패턴 내의 각각의 벡터와 연관된 위치는 이러한 벡터와 함께 저장된 명시적 데이터를 포함할 수 있거나, 벡터가 검사 시스템에 저장되거나 검사 시스템에 의해 수신되는 벡터의 순서에 기초하여 암시될 수 있다. 예를 들어, 벡터는 저장되는 메모리의 포지션에 의해 규정된 위치 역시 가질 수 있지만, 검사 시스템에 의해 실행되도록 수신되는 제1 벡터이기 때문에 단순히 위치 0으로 생각할 수 있다. 일부 실시예에서, 벡터를 포함하는 검사 패턴은 메모리에 저장될 수 있고, 이러한 경우에 메모리 내의 주소 위치는 검사 패턴 내의 위치와 서로 관련될 수 있다.
일부 벡터는 실행될 때 벡터의 비순차 실행이 되는 분기 타임이 되도록 벡터의 타입을 규정하는 오퍼레이션부를 가질 수 있다. 예를 들어, 위치 1에서의 벡터는 검사 패턴 내의 벡터의 실행의 흐름이 검사 패턴 내의 비순차 위치, 예를 들어, 위치 15로 분기될 것을 나타낼 수 있는, 분기 타입을 갖는 벡터를 식별하는 오퍼레이션부를 가질 수 있다. 그 결과, 이러한 예에서, 위치 1에서의 벡터 후에 실행되는 그 다음 벡터는 위치 15에서의 벡터가 될 것이다. 분기의 목적지는 예를 들어, 벡터의 오퍼레이션부에 의해 규정될 수 있지만, 임의의 적절한 기술이 분기의 목적지를 결정하는데 사용될 수 있다는 것을 이해해야 한다.
또한, 일부 벡터는 분기 타입일 수 있지만 일부 특정 조건이 충족될 때만 분기를 생성할 수 있다. 즉, 벡터가 분기를 생성할 수 있는 오퍼레이션을 규정할 수 있지만, 분기의 생성은 특정 조건에 의존할 수 있다. 이러한 벡터는 분기가 항상 생성되는 상술된 벡터의 분기 타입으로부터 벡터의 "조건 분기" 타입을 구별하는 오퍼레이션부를 가질 수 있다. 또한, 벡터는 분기가 생성되는 여부를 결정하기 위해 상이한 기준을 각각 사용하는 조건 분기 벡터의 상이한 타입을 각각 나타내는 복수의 오퍼레이션부 값이 존재하도록 구성될 수 있다.
이러한 조건 분기 타입의 벡터에서, 벡터의 실행이 분기를 생성하는 여부를 결정할 때 고려되는 기준은 오퍼레이션부 및/또는 외부 컨트롤에 의해 제공될 수 있다. 외부 컨트롤은 검사 패턴 벡터를 실행하는 검사 시스템의 부분에 입력되는 실행되는 벡터 이외의 임의의 데이터를 포함할 수 있다. 미제한의 예로서, 외부 컨트롤은 카운터, 레지스터 값, 메모리 값, 플래그 값 또는 검사 시스템에 접근가능한 임의의 다른 데이터중 하나 이상을 포함할 수 있다. 또한, 조건 분기는 벡터의 데이터부에 응답하여 간접적으로 생성될 수 있다. 예를 들어, 벡터가 실행되고 벡터의 데이터부가 DUT에 검사 값을 제공함으로써, DUT 상의 카운터의 값이 변하도록 하고 조건 분기가 카운터 값에 의존한다면, 데이터부는 후속 조건 분기를 생성할 수 있다.
벡터의 실행이 분기를 생성하는지 여부를 결정하는 미제한의 예로서, 벡터는 벡터가 특정 값(예를 들어, 플래그)의 신호 (예를 들어, DUT 상의 검사점으로부터) 수신된 값 보다 클 때 실행시에 분기를 생성할 타입이라는 것을 나타내는 오퍼레이션부를 가질 수 있다. 이러한 벡터의 실행은 따라서 플래그에 의존할 수 있다. 플래그가 설정되면, 분기는 생성될 것이고, 그렇지 않으면 실행은 순차 방식으로 진행될 것이다.
일부 벡터는 조건 분기 타입일 수 있지만 항상 이러한 조건에 기초하여 복수의 가능한 분기중 하나를 생성할 수 있다. 예를 들어, 벡터는 플래그 값이 하이 또는 로우인지에 기초하여 2개의 목적지 위치중 하나에 분기될 수 있다. 이러한 예에서, 이러한 2개의 분기의 어느 것이 생성되는지가 플래그 값에 기초하여 결정될 수 있다. 이러한 상황에서, 벡터의 후속 순차 처리는 2개의 가능한 분기중 하나가 항상 벡터의 실행에 의해 생성될 것이기 때문에 일어나지 않을 수 있다.
조건 분기 타입의 벡터에서, 분기를 생성할 때 결정되는 검사 패턴 내의 목적지 위치가 오퍼레이션부 및/또는 외부 컨트롤에 의해 제공될 수 있다. 예를 들어, 실행되는 벡터의 오퍼레이션부는 분기가 생성되면, 목적지가 현재 실행되는 벡터의 위치로부터 멀리 검사 패턴 내의 고정 변위된다는 것을 나타낼 수 있다(예를 들어, 분기가 생성되면, 그다음 명령어는 현 위치 보다 큰 위치 10에 있을 수 있다). 다른 예로서, 외부 컨트롤은 분기를 생성할 때 사용되는 목적지 위치를 나타낼 수 있다.
벡터의 실행이 분기를 생성하는지 여부 및/또는 분기가 생성된다면 검사 패턴 내의 목적지는 무엇이 될지를 결정하기 위해 상술된 방법을 사용함으로써, 검사 시스템의 동작은 피검사 장치로부터의 관찰된 응답 또는 검사 시스템이 식별하는 것으로 구성된 다른 조건에 기초하여 동적으로 결정될 수 있다.
일부 벡터는 벡터의 타입을 "NOP" 타입으로도 알려진 "노 오퍼레이션(no operation)"으로 규정하는 오퍼레이션부를 가질 수 있다. 이러한 벡터는 벡터의 데이터부에 기초하여 검사 동작을 실행할 수 있지만, 분기를 생성할 수 없다.
상기 기술의 미제한의 예로서, 도 3은 각각의 벡터의 오퍼레이션부가 열 302와 303에 워드에 의해 표현되는 23개의 벡터를 포함하는 검사 패턴(300)을 도시하고 있다. 벡터의 상응하는 데이터부는 이해를 위해 도 3에 도시되어 있지 않다. 상기 기재에 대해, 도 3에 도시되어 있는 벡터를 나타내는데 사용된 기초 데이터는 임의의 적절한 방법으로 구성될 수 있고, 상기 데이터의 해석은 단지 설명을 위해 도 3에 워드에 의해 표현되어 있다는 것을 이해할 것이다.
도 3에서, 검사 패턴 내의 각각의 벡터의 위치는 열 301의 값에 의해 표현되어 있다. 상술된 바와 같이, 각각의 벡터의 위치 값은 검사 패턴에서 명시적 또는 암시적일 수 있고, 열 301에 표현된 위치 값이 이해를 위해 이러한 방식으로 제시되어 있고 검사 패턴 내의 벡터의 위치가 표현될 수도 있는 임의의 특정 방식에 관계없다는 것을 이해할 것이다. 미제한의 예로서, 검사 패턴(300) 내의 23개의 벡터의 각각의 위치 값은 메모리에 저장되는 순서에 의해 암시될 수 있다.
도 3의 예에서, 위치 0에서 벡터, 벡터(311)는 벡터가 특정 플래그 "A"의 값에 기초하여 분기를 생성할 타입이라는 것을 나타내는 오퍼레이션부를 갖고 있다. 도 3의 예에서, 이러한 값은 0 또는 1의 가능한 값을 갖고 있다. 플래그 값이 0이라면, 분기는 생성되지 않을 것이고; 플래그 값이 1이라면 분기가 생성될 것이다. 상술된 바와 같이, 플래그 A와 같은 외부 컨트롤이 임의의 적절한 방법으로 접근될 수 있다. 예를 들어, 플래그 A는 DUT로부터 측정된 갓에 기초하여 핀 일렉트로닉스 회로에 의해 출력되거나 검사 시스템 하드웨어의 임의의 다른 부분에 의해 출력된 신호일 수 있다.
도 3의 예에서, 이러한 오퍼레이션부는 검사 패턴(300) 내의 위치 10에 상응하는 값을 갖는, 벡터(311)에 의해 생성된 분기의 잠재 목적지를 나타낸다. 상술된 바와 같이, 이러한 목적지의 위치는 데이터부에 절대 주소 위치를 저장하는 것, 또는 실행되는 벡터의 메모리 위치에 대한 오프셋을 나타내는 것등에 의해, 임의의 적절한 방식으로 오퍼레이션부에 저장될 수 있다. 분기의 목적지를 나타내는데 사용된 특정 기술에 관계없이, 도 3의 예에서, 벡터(311)의 실행은 분기(10)으로의 분기를 생성하게 될 것이고, 따라서, 위치(10)에 있는 벡터가 그다음 사이클에서 실행되고(플래그 A가 1로 설정된 경우); 또는 (플래그 A가 0으로 설정된다면, 그리고 분기가 생성되지 않았을 때 실행이 순차적으로 처리되기 때문에) 위치 1에 있는 벡터가 그 다음 사이클에서 실행된다.
(플래그 A가 0으로 설정되었기 때문에) 위치(10)로의 분기가 벡터(311)의 실행에 의해 생성되지 않았다면, 실행의 흐름은 위치 1, 2, 3,...에 있는 벡터를 순차적으로 실행하도록 진행할 것이다. 이러한 벡터는 분기 동작을 포함하지 않는 오퍼레이션부를 갖고 있고, 도 3의 예에서, NOP 타입 벡터로서 도시되어 있다. NOP 동작 타입을 갖는 것으로 도 3에 표시된 벡터는 이러한 벡터의 데이터부에 의해 특징지어지는 피검사 장치에 검사 동작을 여전히 실행할 수 있고; 이해를 위해 벡터의 데이터부는 도 3에 도시되어 있지 않다.
(플래그 B가 1로 설정되었기 때문에) 위치(10)로의 분기가 벡터(311)의 실행에 의해 생성되었다면, 실행의 흐름은 위에(10)에 있는 벡터(313)으로 진행할 것이다. 벡터(31)은 벡터가 도 3의 예에서 0 또는 1의 값을 갖는, 플래그 B의 값에 기초하여 분기를 생성할 타입이라는 것을 나타내는 오퍼레이션부를 갖고 있다. 플래그 B의 값은 예를 들어, 검사 시스템 하드웨어의 임의의 다른 부분의 컨디션을 나타내는 DUT에 의해 출력된 신호에 기초하여 값을 가질 수 있다는 것을 이해할 것이다.
벡터(313)의 실행에 의해 (플래그 B가 1로 설정된다면) 위치(20)에서의 벡터가 그다음 사이클에서 실행되거나 (플래그 B가 0으로 설정된다면, 분기가 취해지지 않았을 때 실행이 순차적으로 진행되었기 때문에) 위치(110에 있는 벡터가 그다음 사이클에서 실행될 것이다.
따라서, 도 3의 예에서, 검사 패턴이 위치 0에서 시작하고 위치 22에 있는 벡터를 실행함으로써 종료하여 실행되는 4개의 가능한 방법이 존재한다. 먼저, 벡터(311, 313)의 실행은 양측의 경우에 분기를 생성할 수 있어서, 총 5개의 벡터(0, 10, 20, 21, 22)가 실행될 수 있고; 둘째, 벡터(311)의 실행에 의해 벡터(313)이 실행되지 않는 동안 분기를 생성하여 총 14개의 벡터(0, 10, 11, 12,...22)가 생성될 수 있고; 셋째, 벡터(311)의 실행이 벡터(313)의 실행이 분기를 생성하는 동안 분기를 생성할 수 없어서, 총 14개의 벡터(0, 1, 2....10, 20, 21, 22)가 실행될 있고; 넷째로, 벡터(311)와 벡터(313)의 실행 어느 것도 분기를 생성할 없어서, 모두 23개의 벡터가 순차적으로 실행될 수 있다. 상술된 바와 같이, 분기의 목적지의 결정은 검사 시스템이 그 오퍼레이션의 단일 사이클 안에 완료할 수 없는 처리를 수반할 수 있다. 그 결과, 이러한 상황에서, 검사 시스템은 검사 시스템의 동작의 모든 사이클 동안 벡터를 실행할 수 없고 처리는 정지되어 부정확한 검사 결과에 이를 수도 있다.
예를 들어, 도 3에 도시된 검사 패턴에서, 검사 시스템이 검사 시스템의 동작의 단일 사이클 내에 목적지 위치에 접근할 수 없다면, 검사 시스템은 분기가 벡터(311)의 실행에 의해 생성된 후에 순차적인 실행을 재개하도록 2개 이상의 사이클을 취할 것이다. 상술된 바와 같이, 본 발명자는 검사 패턴 내의 벡터의 오퍼레이션부를 처리하기 위한 다중 경로를 사용하면 이전에 유용했던 것보다 더 빠른 처리 속도로 동일한 사이클의 분기가 가능하다는 것을 인식하고 이해하였다. 다중 경로를 사용하는 이러한 향상된 패턴 생성기는 예를 들어, 하드웨어로, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다.
도 4는 일부 실시예에 따른 패턴 생성기 처리 로직의 제1 예의 개략도이다. 도 4의 예에서, 자동 검사 시스템 내의 패턴 생성기는 처리 로직(400)을 포함하고 있다. 처리 로직(400)은 각각 파이프라인 회로를 사용하고 실행되는 검사 패턴 내의 벡터를 처리하도록 사용될 수 있는 3개의 처리 경로를 포함하고 있다. 도 4의 제1 처리 경로 "A"는 (A0, A1, A2, A3, A4로 라벨 붙힌) 레지스터(410-414)를 포함고 있고, 제2 처리 경로 "B"는 (B0, B1, B2, B3, B4로 라벨 붙힌) 레지스터(420-424)를 포함하고 있고, 제3 처리 경로 "C"는 (C0, C1, C2, C3, C4로 라벨 붙힌) 레지스터(430-434)를 포함하고 있다. 아래의 도 4의 설명에서, 경로 A, B, C의 처리는 벡터의 오퍼레이션부의 처리를 포함하지만, 이러한 경로는 역시 전체 벡터를 포함하는 벡터의 임의의 부분을 처리하도록 사용될 수 있다는 것을 이해해야 한다. 벡터의 오퍼레이션부를 처리하는 바람직한 방법에서, 각각의 레지스터(410-414, 420-424 및 430-434)는 사이클 사이의 벡터의 오퍼레이션부를 래치한다.
패턴 생성기에서 처리 로직(400)을 사용함으로써 경로의 각각에서 검사 패턴 내의 상이한 위치로부터 순차적 처리가 가능할 수 있다. 예를 들어, 경로 A, B, C는 벡터가 분기 타입 벡터가 실행된 후에 실행되는 시간 이전에 벡터의 오퍼레이션부를 처리하도록 시작할 수 있고, 실행의 각각의 결과(즉, 분기가 생성되는 것/생성되지 않는 것)는 경로의 내용에 의해 표현될 수 있다. 이러한 사용의 경우에서, 분기가 벡터의 실행에 의해 생성되는지 여부에 관계없이, 이러한 경로중 하나로부터의 오퍼레이션부가 선택되고 사용되어 검사 패턴의 실행을 계속할 수 있다. 이것은 예를 들어, 상응하는 벡터의 데이터부를 식별하기 위해 오퍼레이션부를 사용하고 이러한 데이터를 실행함으로써 실행될 수 있다.
보다 상세한 예로서, 분기를 생성할 수 있는 벡터가 검사 패턴 내의 위치 5에서 실행되고, 이러한 벡터의 실행이 위치 12로의 분기를 생성할 수 있는지가 밝혀진다. 이러한 예에서, 제1 처리 경로 A는 위치 6, 7, 8, 9에 있는 벡터의 오퍼레이션부를 처리할 수 있고; 제2 처리 경로 B는 위치 12, 13, 14, 15에 있는 벡터의 오퍼레이션부를 처리할 수 있다. 분기가 생성되든 관계없이, 순차적으로 실행될 검사 패턴 벡터는 나중 실행을 위해 이미 처리된 오퍼레이션부를 가지고 있다. 그러나, 검사 패턴 위치를 처리하기 위한 임의의 다른 적절한 방법이 하술된 바와 같이 사용될 수 있고, 상기는 단지 예로서 제공되어 있다.
처리 로직(400)은 경로에서 처리되는 오퍼레이션부 및 처리 로직 외부의 (그리고 패턴 검사기 또는 검사 시스템의 외부에 있지 않을 수 있다) 컨트롤인 외부 컨트롤(470)에 기초하여 어느 벡터가 각각의 경로에서 처리될 것인지를 결정하는 판정 로직(450)을 포함하고 있다. 경로 A, B, C는 각각 경로 내의 오퍼레이션부가 좌측으로부터 우측으로 독립적인 파이프라인으로서 각각의 경로를 통해 이동하는 파이프라인 방식으로 처리를 실행한다. 예를 들어, 하나의 사이클의 끝에서 레지스터(412)에 래치된 오퍼레이션부는 그다음 사이클의 끝에서 레지스터(413)에 래치될 것이고, 그 후에 이러한 사이클에서 레지스터(414)에 래치될 것이다. 최우측 레지스터(레지스터 414, 424, 또는 434)에서 처리되는 오퍼레이션부는 파이프라인의 끝에 도달함에 따라 후속 사이클에서 처리되지 않을 수 있다.
처리 로직(400)은 또한 라인(480)을 통해 판정 로직(450)에 의해 제어되고 생성될 처리 로직의 출력(445)을 결정하는 멀티플렉서(440)를 포함하고 있다. 출력(445)은 처리 로직(400)이 위치된 패턴 생성기에 의해 실행될 벡터를 명시할 수 있다. 예를 들어, 출력(445)은 실행할 벡터의 데이터부를 명시하여 피검사 장치로의 핀 일렉트로닉스의 적용을 명시할 수 있다. 멀티플렉서(440)의 출력은 예를 들어, 벡터, 벡터의 오퍼레이션부 및/또는 검사 패턴 내의 벡터의 위치의 표시를 포함할 수 있다. 도 4의 예에서, 멀티플렉서는 출력을 위한 2개 이상의 랭크를 갖는 레지스터, 즉, 레지스터(412-414, 422-424, 432-434)를 선택할 수 있다. 그러나, 처리 로직(400)은 또한, 본 발명이 이러한 방식으로 한정되지 않아, 임의의 수의 처리 경로 내의 레지스터의 임의의 조합이 출력될 수 있도록 구성될 수도 있다.
처리 로직(400)이 검사 시스템에 의해 현재 실행되는 벡터의 검사 패턴 내의 위치와 상이한 검사 패턴 내의 위치에 있는 벡터의 오퍼레이션부를 처리하기 시작하는 것이 유리할 수 있다. 예를 들어, 검사 시스템이 위치 0에 있는 벡터를 실행하고 있다면, 처리 로직(400)은 위치 2에 있는 벡터의 오퍼레이션부를 처리할 수 있어서, 처리 로직(400)이 시스템이 이러한 벡터를 실행하려고 준비되기 전에 이러한 벡터의 실행으로부터 가능한 분기 목적지를 결정하기 시작할 수 있다. 이러한 기술의 보다 상세한 예가 아래의 도 5a-i와 관련하여 제공될 것이다. 그러나, 오퍼레이션부를 처리하는 임의의 적절한 방식이 처리 로직(400)에 의해 채용될 수 있다.
판정 로직(450)은 라인(451, 452 및/또는 453)을 통해 각각 경로 A, B, C에서 처리를 시작한다. 처리를 시작할 때, 검사 패턴 내의 순차적 위치로부터의 오퍼레이션부는 유용한 경로에서 처리될 수 있다. 예를 들어, 위치 0에 있는 벡터의 오퍼레이션부가 경로 A에 제공되면 (그래서 레지스터(410)에서 사이클 사이에 래치되면), 판정 로직은 그 다음 사이클에 위치 1에 있는 벡터의 오퍼레이션부를 경로 A에 제공할 수 있다. 이러한 예에서, 그다음 사이클의 끝에서 위치 0에 있는 벡터의 오퍼레이션부는 레지스터(411)에 래치될 것이고 위치 1에 있는 벡터의 오퍼레이션부는 레지스터(410)에 래치될 것이다.
도 4의 실시예에서, 판정 로직은 상기 벡터의 실행이 라인(461, 462, 463)을 통해 분기를 생성할 수 있는지 여부를 결정하기 위해 벡터의 오퍼레이션부를 처리할 수 있다. 예를 들어, 오퍼레이션부가 레지스터(411, 412)에서 처리될 때, 판정 로직은 라인(461)을 통해 분기를 생성할 수 있는지 여부를 결정하기 위해 이러한 오퍼레이션부의 처리를 실행할 수 있다. 처리 로직(400)은 판정 로직이 처리 경로 내의 임의의 위치에서 오퍼레이션부를 처리할 수 있도록 구성될 수 있고, 도 4에 도시된 특정 구성이 예로서 제공되어 있음을 이해해야 한다. 예를 들어, 처리 경로 내의 다수의 포지션으로부터 오퍼레이션부를 분석하는 것이 유익할 수 있고, 이에 따라, 도 4의 예에 포함된 461-463 보다 많은 라인이 처리 경로로부터 판정 로직으로 제공될 수 있다.
라인(461-463)을 통한 오퍼레이션부의 처리에 기초하여, 판정 로직은 처리 경로 A, B, C에서 현재 처리되는 오퍼레이션부의 위치와 상이한 검사 패턴 내의 위치로부터의 오퍼레이션부의 순차적 처리를 시작할 수 있다. 예를 들어, 제1 처리 경로에서의 오퍼레이션부가 분기를 생성할 수 있다고 판정 로직이 판정할 때, 가능한 분기 목적지에서의 오퍼레이션부의 순차 처리가 제2 처리 경로에서 시작될 수 있다. 그러나, 여기에 기술된 경로를 추가하는 특정 방법은 예로서 제공되어 있고 시스템에 유용한 경로를 만드는 임의의 방법이 가능하다.
라인(461-463)을 통한 벡터의 처리에 기초하여, 판정 로직은 특정 처리 경로에서의 오퍼레이션부의 순차 처리가 종료되어야 함을 결정할 수 있다. 예를 들어, 판정 로직이 새로운 처리 경로에서 순차 처리를 시작해야 한다고 결정하지만 모든 처리 경로가 이미지 순차 처리를 실행하고 있다면, 판정 로직은 더 이상 필요없다고 결정함으로써 선택될 수 있는 처리 경로중 하나를 쳐낼 수 있다. 예를 들어, 분기가 분기를 생성할 수 있는 벡터에 의해 생성되지 않았다면, 검사 패턴이 이러한 시각에 해당 목적지에 분기되지 않을 것이기 때문에, 이전에 시작된 분기 목적지로부터 오퍼레이션부의 순차 처리를 계속할 필요가 없을 수 있다.
처리 경로의 쳐내기는 임의의 적절한 방법으로실행될 수 있고, 판정 로직이 새로운 처리 경로에서 순차 처리를 시작해야 한다고 결정하는 경우에 제한되지 않는다. 예를 들어, 판정 로직은 분기가 생성되지 않았다는 표시에 기초하여 처리 경로를 쳐낼 수 있다. 처리 경로의 쳐냄은 예를 들어, 이러한 처리 경로가 사용가능하다는 표시를 저장하는 단계 및/또는 이러한 처리 경로 내의 오퍼레이션부의 순차 처리를 중지시키는 단계를 포함할 수 있다. 그러나, 여기에 기술된 경로를 쳐내는 특정 방법은 예로서 제공되어 있고 경로가 시스템에 유용하지 않도록 하는 임의의 방법이 사용될 수 있다.
도 4의 예가 다수의 처리 경로를 사용하는 처리 로직의 구성으로서 제고이되어 있고 본 발명의 다른 실시예가 도 4에 도시되지 않은 다른 구성을 사용할 수 있다는 것을 이해해야 한다. 예를 들어, 임의의 수의 랭크 및 처리 경로가 사용될 수 있는데, 이러한 임의의 수의 랭크는 각각의 처리 경로에서 동일할 필요가 없다. 또한, 멀티플렉서는 처리 경로 내의 임의의 조합의 레지스터로부터 출력을 선택할 수 있고, 판정 로직은 처리 경로 내의 임의의 수의 임의의 위치로부터의 오퍼레이션부를 처리할 수 있다.
도 5a-i는 일부 실시예에 따라, 검사 패턴 생성기의 다수의 사이클 동안 검사 패턴 벡터의 오퍼레이션부를 처리하는 복수의 처리 경로를 도시하고 있다. 도 5a-i의 예에서, 도 4에 도시된 처리 로직은 도 3에 도시된 검사 패턴의 오퍼레이션부의 처리를 실행하는데 사용된다. 도 5a-d는 도 3에 도시된 검사 패턴(300)의 실행을 시작하는 검사 시스템 이전의 4개의 사이클 동안의 처리 경로 A, B, C의 상태를 도시하고 있다. 도 5e-i는 도 3에 도시된 검사 패턴(300)의 실행의 제1 5개의 사이클 동안의 처리 경로 A, B, C의 상태를 도시하고 있다.
도 5a-i에 의해 도시된 처리를 시작할 때에, 처리 로직은 검사 패턴 내의 포지션 0에서의 오퍼레이션부에서 시작하는 검사 패턴의 순차 처리를 실행하기 시작한다. 이에 따라, 판정 로직은 제1 처리 경로에 포지션 0에서의 오퍼레이션부를 제공함으로써 시작한다. 도 5a의 표(510)에 의해 도시된 바와 같이, 이것은 경로 a 내의 레지스터 0(예를 들어, 도 4에 도시된 레지스터(410))에 "0"으로 표시되어 있다. 도 5a-i의 표에서, 특정 검사 패턴 위치에 있는 오퍼레이션부는 검사 패턴 내의 이러한 오퍼레이션부의 포지션을 나타내는 각각의 표의 숫자로 표시되어 있다. 예를 들어, 오퍼레이션동안, 벡터의 오퍼레이션부는 처리 경로중 하나에서 처리되고 도 5a-i에 제공된 숫자 위치는 단지 어느 오퍼레이션부가 프로세스의 각각의 단계에서 처리되고 있는지를 나타내기 위해 제공되어 있다는 것을 이해해야 한다.
그다음 사이클에서, 사이클이 검사 패턴의 실행을 시작하는 검사 시스템 이전의 3개의 사이클이라면, 처리 경로 A에서의 오퍼레이션부의 순차 처리는 도 5b에 도시된 바와 같이 계속된다. 포지션 0에서의 오퍼레이션부는 파이프라인 처리 경로를 통해 레지스터 1로 이동하였고, 포지션 1에서의 오퍼레이션부는 판정 로직에 의해 레지스터 0에 제공되었다.
도 5c에 도시된 그다음 사이클 동안, 판정 로직은 경로 A에서 레지스터 1로부터 레지스터 0으로 이동함에 따라 검사 패턴의 포지션 0으로부터의 오퍼레이션부를 처리한다. 예를 들어, 판정 로직은 이러한 오퍼레이션부에 도 4에 도시된 라인(461)을 통해 접근한다.
도 5a-i의 예에서, 판정 로직은 분기를 생성할 수 있는 오퍼레이션부를 처리할 때 다음의 규칙을 구현한다. 즉, 제1 경로에서 분기 목적지에에서 오퍼레이션부의 처리를 시작함으로써, 그리고 제2 경로내의 분기 목적지 후에 검사 패턴 내의 2개의 스텝에 위치된 오퍼레이션부의 처리를 시작함으로써 2개의 경로에서 오퍼레이션부의 처리를 시작한다. 이러한 규칙은 단지 판정 로직을 사용하는 오퍼레이션부의 처리에 하나의 방법의 예로서 제공되어 있고, 임의의 적절한 논리 방식이 대신 사용될 수 있다. 이러한 규칙의 예에서, 검사 패턴의 위치 0으로부터의 오퍼레이션부를 처리하는 판정 로직은 이러한 오퍼레이션부가 (도 3에 도시된 벡터(311)에 의해 표시된 바와 같이) 검사 패턴의 위치 10에 있는 벡터에 분기를 생성할 수 있다고 결정한다. 이로 인해 경로 B에서 검사 패턴의 위치 10에 있는 오퍼레이션부의 처리가 시작되고, 경로 C에서, 위치 12에 있는 오퍼레이션부의 처리가 시작되는 규칙에 기초하여 2개의 경로에서 시작된다.
도 5d에 도시된 그다음 사이클 동안, 판정 로직은 경로 A에서 레지스터 1로부터 레지스터 2로 이동함에 따라 검사 패턴의 포지션 1로부터의 오퍼레이션부를 처리한다. 이에 따라, 판정 로직은 검사 패턴의 포지션 1로부터의 오퍼레이션부가 (도 3에 도시된 벡터(312)가 분기 타입이 아니기 때문에) 분기를 생성할 수 없다고 판정한다. 이에 따라, 연사누를 처리하고 있는 3개의 경로의 각각은 이들의 각각의 파이프라인에서 오퍼레이션부를 순차적으로 처리하는 것을 계속한다.
도 5e에 도시된 다음 사이클은 검사 시스템이 검사 패턴 내의 벡터를 실행하기 시작하는 제1 사이클이다. 도 4와 관련하여 상술된 바와 같이, 멀티플렉서(440)는 판정 로직(450)에 의해 제어되는 처리 경로 내의 레지스터의 내용에 기초하여 출력(445)을 제공할 수 있다. 도 5e의 예에서, 멀티플렉서는 판정 로직에 의해 출력을 생성하도록 경로 A 내의 레지스터 4내의 오퍼레이션부를 선택한다. 상술된 바와 같이, 처리 로직의 출력은 처리 로직(400)이 존재하는 패턴 생성기에 의해 실행될 벡터를 지정할 수 있다. 예를 들어, 처리 로직의 출력은 실행되는 벡터의 데이터부를 명시할 수 있어서, 피검사 장치로의 핀 일렉트로닉스의 적용을 명시할 수 있다. 처리 로직의 특정 출력에 관계없이, 이러한 사이클에서 검사 시스템은 처리 로직의 출력에 기초하여 검사 패턴 내의 포지션 0에 위치한 벡터를 실행한다. 이러한 벡터가 조건 분기 타입이기 때문에, 해당 시간에서의 검사 시스템의 상태는 분기가 생성되는지 여부를 결정할 것이다.
또한, 도 5e에 의해 도시된 사이클 동안, 판정 로직은 오퍼레이션부가 경로 A, B, C의 각각에서 레지스터 1으로부터 레지스터 2로 이동함에 따라 오퍼레이션부를 처리한다. 특히, 판정 로직은 경로 A에서 검사 패턴의 포지션 2로부터의 오퍼레이션부, 경로 Bd에서 검사 패턴의 포지션 10으로부터의 오퍼레이션부 및 경로 C에서 검사 패턴의 포지션 12로부터의 오퍼레이션부를 처리한다. 예를 들어, 이러한 처리는 도 4에 도시된 라인(461, 462, 463)을 각각 사용할 수 있다. 도 5e의 예에서, 판정 로직은 이러한 3개의 오퍼레이션부중에, 검사 패턴의 포지션 10으로부터의 오퍼레이션부만이 검사 패턴 내의 위치 20에 있는 (도 3의 표 300에 도시된 오퍼레이션부에 기초하여) 분기를 생성할 수 있다. 이에 따라, 상술된 규칙을 사용하여, 처리가 2개의 경로에서 시작되는데, 경로 A에서 위치 20에서의 오퍼레이션부의 처리가 시작되고, 경로 C에서 위치 22에서의 오퍼레이션부의 처리가 시작된다.
도 5f에 의해 도시된 사이클의 시작에서, 패턴 검사의 위치 0에 있는 오퍼레이션부의 분기 조건이 결정되었다. 도 5f의 예에서, 분기 조건이 트리거되고(예를 들어, 플래그 A의 값이 도 3에 도시된 검사 패턴의 예에 대해 1로 설정된다), 이에 따라, 실행되는 다음 벡터는 이러한 분기에 의해 지시된 목적지 위치에 있는 벡터이다. 이러한 벡터는 검사 패턴의 위치 10에 있고, 이에 따라 검사 시스템의 사이클 1에서 오퍼레이션부의 오퍼레이션 처리는 경로 B에서 시작된다. 특히, 멀티플렉서는 이러한 레지스터가 위치 10에 있는 벡터의 오퍼레이션부를 래치하였기 때문에 경로 B의 레지스터 3의 내용에 기초하여 처리 로직의 출력을 제공할 것이다. 도 5f의 표(560)에 의해 도시된 바와 같이, 분기 타입의 벡터에 의해 달성된 목적지, 및 후속 실행될 수 있는 벡터는 처리 경로 B에서 상응하는 오퍼레이션부의 처리에 의해 이전에 완성되었다. 분기가 위치 0의 벡터에 의해 생성되지 않는다면(예를 들어, 플래그 A의 값이 검사 패턴의 예에서 0으로 설정되었다면), 오퍼레이션부의 처리는 경로 A에서 계속될 것이고 대신에 검사 패턴의 위치 1의 벡터가 실행될 것이다.
도 5f에 의해 도시된 사이클 동안, 검사 시스템은 처리 로직의 출력에 기초하여 검사 패턴 내의 포지션 10에 위치한 벡터를 실행한다. 이러한 벡터가 조건 분기 타입이기 때문에, 이러한 벡터의 오퍼레이션부는 이러한 분기가 생성되는지 여부를 결정할 것이다.
도 5g에 의해 도시된 사이클의 시작에서, 검사 패턴의 위치 10에 있는 조건 분기 벡터의 분기 조건이 결정되었다. 도 5g의 예에서, 분기 조건이 트리거되고(예를 들어, 플래그 B의 값이 도 3에 도시된 검사 패턴의 예에 대해 1로 설정되고), 이에 따라, 실행되는 다음 벡터는 분기에 의해 지시된 목적지 위치에 있는 벡터이다. 이러한 벡터는 검사 패턴의 위치 20에 있고, 이에 따라, 검사 시스템의 사이클 2에서 오퍼레이션부의 오퍼레이션 처리가 레지스터 2로부터 시작하여 경로 A에서 시작된다.
도 5h에 의해 도시된 사이클 동안, 오퍼레이션부의 처리는 경로 A에서 계속된다. 판정 로직이 각각의 사이클 동안 경로 A, B, C의 각각에서 레지스터 1로부터 레지스터 2로 오퍼레이션부가 이동함에 따라 오퍼레이션부를 계속하는 동안, 도 3, 도 4 및 도 5a-i의 예에서, 검사 패턴예의 위치 0 및 10로부터의 오퍼레이션부 이외의 오퍼레이션부는 분기를 생성할 수 없다. 이에 따라, 판정 로직이 도 5f-i에 의해 표시된 사이클 1-4 동안 임의의 새로운 경로에서 처리가 시작되어야 한다고 결정하지 않는다.
도 5i에 의해 도시된 사이클 동안, 오퍼레이션부의 처리는 경로 C에서 시작한다. 표 590에서 알 수 있는 바와 같이, 처리는 경로 A에서 오퍼레이션부를 순차적으로 처리함으로써 계속될 수 있었다. 그러나, 대안의 경로가 상위 랭크의 레지스터를 사용하여 동일한 오퍼레이션부를 처리하고 있다면(예를 들어, 레지스터 4는 레지스터 2 보다 높은 랭크의 레지스터이다), 처리를 위해 보다 높은 레지스터를 사용하도록 해당 경로에서 처리를 시작하는 것이 유리할 수 있다. 예를 들어, 멀티플렉서가 각각의 경로에서 오직 레지스터 2, 3, 4로부터 처리 로직으로부터의 출력을 제공할 수 있다면, 검사 시스템은 시스템이 특정 경로의 레지스터 2로부터의 오퍼레이션부를 처리하고 있는 경우에 연속 사이클 동안 일련의 다수의 분기 타입 오퍼레이션부를 처리할 수 없다. 따라서, 가능할 때 처리 경로 내의 레지스터 4로부터 처리할 판정 로직은 연속으로 나타나는 검사 패턴 내의 임의의 분기 타입 벡터를 처리하도록 보다 더 잘 준비될 수 있다.
도 6은 일부 실시예에 따른, 패턴 생성기 처리 로직의 제2의 예의 개략도이다. 도 6의 예에서, 자동 검사 시스템의 패턴 생성기는 처리를 수행하기 위해 룩업(630)을 사용하는 처리 로직(600)을 포함하고 있다.
처리 로직(600)은 파이프라인 회로를 각각 사용하고 실행되는 검사 패턴의 오퍼레이션부를 처리하도록 사용될 수 있는 3개의 처리 경로를 포함하고 있다. 도 6의 제1 처리 경로 "A"는 (A0, A1, A2로 라벨 붙힌) 레지스터(610-612)를 포함고 있고, 제2 처리 경로 "B"는 (B0, B1, B2로 라벨 붙힌) 레지스터(620-622)를 포함하고 있고, 제3 처리 경로 "C"는 (C0, C1, C2로 라벨 붙힌) 레지스터(630-632)를 포함하고 있다. 아래의 도 6의 설명에서, 경로 A, B, C의 처리는 벡터의 오퍼레이션부의 처리를 포함하지만, 이러한 경로는 역시 전체 벡터를 포함하는 벡터의 임의의 부분을 처리하도록 사용될 수 있다는 것을 이해해야 한다. 벡터의 오퍼레이션부를 처리하는 바람직한 방법에서, 각각의 레지스터(610-612, 620-622 및 630-632)는 사이클 사이의 벡터의 오퍼레이션부를 래치한다.
패턴 생성기에서 처리 로직(600)을 사용함으로써 경로의 각각에서 검사 패턴 내의 상이한 위치로부터 순차적 처리가 가능할 수 있다. 예를 들어, 경로 A, B, C는 벡터가 분기 타입 벡터가 실행된 후에 실행되는 시간 이전에 벡터의 오퍼레이션부를 처리하도록 시작할 수 있고, 실행의 각각의 결과(즉, 분기가 생성되는 것/생성되지 않는 것)는 경로의 내용에 의해 표현될 수 있다. 이러한 사용의 경우에서, 분기가 벡터의 실행에 의해 생성되는지 여부에 관계없이, 이러한 경로중 하나로부터의 오퍼레이션부가 선택되고 사용되어 검사 패턴의 실행을 계속할 수 있다. 이것은 예를들어, 상응하는 벡터의 데이터부를 식별하기 위해 오퍼레이션부를 사용하고 이러한 데이터를 실행함으로써 실행될 수 있다.
처리 로직(600)은 경로에서 처리되는 오퍼레이션부 및 처리 로직 외부의 (그리고 패턴 검사기 또는 검사 시스템의 외부에 있지 않을 수 있다) 컨트롤인 외부 컨트롤(670)에 기초하여 어느 벡터가 각각의 경로에서 처리될 것인지를 결정하는 판정 로직(650)을 포함하고 있다. 경로 A, B, C는 각각 경로 내의 오퍼레이션부가 좌측으로부터 우측으로 독립적인 파이프라인으로서 각각의 경로를 통해 이동하는 파이프라인 방식으로 처리를 실행한다. 예를 들어, 하나의 사이클의 끝에서 레지스터(610)에 래치된 오퍼레이션부는 그다음 사이클의 끝에서 레지스터(611)에 래치될 것이고, 그 후에 이러한 사이클에서 레지스터(612)에 래치될 것이다. 최우측 레지스터(레지스터 612, 622, 또는 632)에서 처리되는 오퍼레이션부는 파이프라인의 끝에 도달함에 따라 후속 사이클에서 처리되지 않을 수 있다.
처리 로직(600)은 또한 라인(680)을 통해 판정 로직(650)에 의해 제어되고 생성될 처리 로직의 출력(645)을 결정하는 멀티플렉서(640)를 포함하고 있다. 출력(645)은 처리 로직(600)이 위치된 패턴 생성기에 의해 실행될 벡터를 명시할 수 있다. 예를 들어, 출력(645)은 실행할 벡터의 데이터부를 명시하여 피검사 장치로의 핀 일렉트로닉스의 적용을 명시할 수 있다. 멀티플렉서(440)의 출력은 예를 들어, 벡터, 벡터의 오퍼레이션부 및/또는 검사 패턴 내의 벡터의 위치의 표시를 포함할 수 있다. 도 6의 예에서, 멀티플렉서는 출력을 위한 최우측 레지스터, 즉, 레지스터(612-614, 622-624, 632-632)중 하나를 선택할 수 있다. 그러나, 처리 로직(600)은 또한, 본 발명이 이러한 방식으로 한정되지 않아, 임의의 수의 처리 경로 내의 레지스터의 임의의 조합이 출력될 수 있도록 구성될 수도 있다.
도 6에 도시된 처리 로직은 검사 패턴의 실행에 앞서 가능한 분기 목적지를 분석하고 계산하도록 소프트웨어를 사용한다. 예를 들어, 이러한 분석은 검사 시스템으로부터 분리될 수 있는 컴퓨터에서 실행되는 소프트웨어에 의해 실행되거나, 검사 시스템의 구성요소에 의해 실행될 수 있다. 도 6의 예에서, 검사 패턴 내의 분기 타입의 벡터의 실행에 의해 생성될 수 있는 가능한 목적지는 검사 패턴의 실행 이전에 계산되고 룩업(630)에 저장된다. 이로 인해, 판정 로직(650)은 이러한 룩업으로부터 판독된 데이터에 기초하여 처리 경로 A, B, C에서 오퍼레이션부 처리를 시작할 수 있다. 룩업 내의 가능한 목적지 주소로의 접근은 이러한 주소를 계산하는 것보다 빠를 수 있어서, 도 4에서 보다 적은 수의 파이프라인 랭크가 도 6에 도시되어 있다. 이러한 프로세스의 예가 도 7 및 도 8a-e와 관련되어 아래에 기술되어 있다.
판정 로직(650)은 라인(651, 652 및/또는 653)을 통해 각각 경로 A, B, C에서 처리를 시작한다. 처리를 시작할 때, 검사 패턴 내의 순차적 위치로부터의 오퍼레이션부는 유용한 경로에서 처리될 수 있다. 예를 들어, 위치 0에 있는 벡터의 오퍼레이션부가 경로 A에 제공되면 (그래서 레지스터(610)에서 사이클 사이에 래치되면), 판정 로직은 그 다음 사이클에 위치 1에 있는 벡터의 오퍼레이션부를 경로 A에 제공할 수 있다. 이러한 예에서, 그다음 사이클의 끝에서 위치 0에 있는 벡터의 오퍼레이션부는 레지스터(611)에 래치될 것이고 위치 1에 있는 벡터의 오퍼레이션부는 레지스터(610)에 래치될 것이다.
처리 경로중 하나에서 처리되는 벡터가 룩업(630)으로부터 데이터를 판독하는 것에 기초하여 분기를 생성할 수 있다고 판정 로직이 판정할 때, 판정 로직은 룩업에 의해 표시된 분기 목적지에서 시작하는 하나 이상의 경로에서 처리를 시작할 수 있다. 예를 들어, 검사 패턴 내의 위치 1에서의 오퍼레이션부가 제1 경로에서 처리되고 있고 룩업이 위치0에서의 벡터가, 실행될 때 검사 패턴 내의 위치 15에 분기를 생성할 수 있다고 나타내면, 판정 로직은 제2 경로에서 위치 15에서의 오퍼레이션부의 처리를 시작할 수 있다. 이로 인해, 분기가 검사 패턴 내의 위치 1에 있는 벡터의 실행에 의해 생성되는지 여부에 관계없이, 멀티플렉서는 (벡터가 위치 2 또는 위치 15에 있든 관계없이) 실행되는 다음 벡터에 상응하는 출력을 제공할 수 있다.
이러한 룩업은 다수의 방법중 하나로 실행될 수 있다는 것을 이해해야 한다. 예를 들어, 처리 경로에서 처리되는 벡터의 오퍼레이션부 또는 처리에서 처리되는 벡터의 주소는 각각 룩업에서 가능한 분기 목적지를 참조하는데 사용될 수 있다. 그러나, 일반적으로, 임의의 수의 처리 경로에 실행되는 처리에 기초하여 분기 목적지를 참조하기 위한 임의의 적절한 방법이 사용될 수 있다.
처리 로직(600)은 처리 경로 A, B 또는 C중 하나에서 처리되는 벡터의 오퍼레이션부가 벡터가 실행될 때 분기를 생성할 것인지 여부를 판정하기 위해 라인(661-663)을 사용할 수 있다. 이러한 처리에 의해 처리 로직은 경로중 어느 것이 출력을 위해 멀티플렉서(640)에 의해 선택될 것인지를 결정할 수 있다. 예를 들어, 경로 A에서 처리되는 오퍼레이션부는 분기를 생성할 수 있고, 경로 B에서 처리되는 오퍼레이션부는 분기가 생성된다면 후속 처리될 수 있는 오퍼레이션부이다. 이러한 예에서, 라인(661)에 의해 판정 로직(650)은 경로 A 내의 오퍼레이션부가 실제로 분기를 생성할 것인지를 식별하고, 만약 분기를 생성한다면 경로 B로부터의 오퍼레이션부를 선택하도록 멀티플렉서(640)를 제어할 수 있다.
룩업(630) 및/또는 외부 컨트롤(67)에 기초하여, 판정 로직은 특정 처리 경로에서의 오퍼레이션부의 순차 처리가 종료되어야 함을 결정할 수 있다. 예를 들어, 판정 로직이 새로운 처리 경로에서 순차 처리를 시작해야 한다고 결정하지만 모든 처리 경로가 이미지 순차 처리를 실행하고 있다면, 판정 로직은 더 이상 필요없다고 결정함으로써 처리 경로중 하나를 쳐낼 수 있다. 예를 들어, 분기가 분기를 생성할 수 있는 벡터에 의해 생성되지 않았다면, 검사 패턴이 이러한 시각에 해당 목적지에 분기되지 않을 것이기 때문에, 이전에 시작된 분기 목적지로부터 오퍼레이션부의 순차 처리를 계속할 필요가 없을 수 있다.
처리 경로의 쳐내기는 임의의 적절한 방법으로 실행될 수 있고, 판정 로직이 새로운 처리 경로에서 순차 처리를 시작해야 한다고 결정하는 경우에 제한되지 않는다. 예를 들어, 판정 로직(650), 또는 다른 적절한 회로는 경로에서 어느 처리가 시작되었는지에 응답하여 분기 명령어를 이러한 경로와 연관하여 저장할 수 있다. 이러한 판정 로직은 분기가 생성되지 않았다는 표시에 기초하여 처리 경로를 쳐낼 수 있다. 처리 경로의 쳐냄은 예를 들어, 이러한 처리 경로가 사용가능하다는 표시를 저장하는 단계 및/또는 이러한 처리 경로 내의 오퍼레이션부의 순차 처리를 중지시키는 단계를 포함할 수 있다. 그러나, 여기에 기술된 경로를 쳐내는 특정 방법은 예로서 제공되어 있고 경로가 시스템에 유용하지 않도록 하는 임의의 방법이 사용될 수 있다.
도 6의 예가 다수의 처리 경로를 사용하는 처리 로직의 구성으로서 제공되어 있고 본 발명의 다른 실시예가 도 6에 도시되지 않은 다른 구서을 사용할 수 있다는 것을 이해해야 한다. 예를 들어, 임의의 수의 랭크 및 처리 경로가 사용될 수 있는데, 이러한 임의의 수의 랭크는 각각의 처리 경로에서 동일할 필요가 없다. 또한, 멀티플렉서는 처리 경로 내의 임의의 조합의 레지스터로부터 출력을 선택할 수 있고, 판정 로직은 처리 경로 내의 임의의 수의 임의의 위치로부터의 오퍼레이션부를 처리할 수 있다.
일부 사용의 경우에서, 도 6에 도시된 것과 같지만 4개 이상의 처리 경로를 사용하는 처리 로직을 제공하는 것이 특히 유리할 수 있다. 이러한 구성에 의해 분기를 생성할 수 있는 임의의 수의 순차적으로 만나는 오퍼레이션부를 포함하는 검사 패턴의 처리가 가능할 수 있다. 예를 들어, 분기를 생성할 수 있는 오퍼레이션부를 만나지만 분기가 생성되는 것에 관계없이 그 다음 만나는 오퍼레이션부 역시 분기를 생성할 수 있는 검사 패턴이 존재할 수 있다. 이러한 검사 패턴에서, 초기 오퍼레이션부 이후에 2개의 사이클을 만난 4개의 가능한 위치가 검사 패턴에 존재할 것이다. 이에 따라, 4개 이상의 처리 경로를 포함하는 처리 로직은 이러한 처리 로직이 4개의 가능성의 각각을 허용하도록 각각의 경로에서 처리를 시작할 수 있기 때문에 이러한 검사 패턴을 처리하는데 유리할 수 있다.
도 7은 일부 실시예에 따라, 검사 패턴 위치를 저장하는 룩업 예를 도시하고 있다. 도 7의 예에서, 소프트웨어 구성요소가 도 3에 도시된 검사 패턴에서 각각의 벡터의 가능한 분기 목적지를 분석하고 계산하였다. 표(700)는 이러한 분석의 결과를 나타내고 있고 예를 들어, 도 6에 도시된 룩업(630)으로서 사용되기에 적절할 수 있다.
도 7에서, 열 701은 검사 패턴 내의 벡터의 위치를 나타내고 열 702는 이러한 위치에서 있는 벡터의 실행으로부터 얻어진 목적지로서 결론지어질 수 있는 검사 패턴 내의 임의의 위치를 나타낸다. 예를 들어, 행 711에서, 위치 0에서의 벡터는, 실행될 때, 도 3에 도시된 벡터(311)에 대해 위치(10)로의 분기를 생성할 수 있다. 마찬가지로, 행(712)은 위치 10에서의 벡터가 도 3에 도시된 벡터(313)에 대해 위치 20으로의 분기를 생성할 수 있다는 것을 나타낸다.
도 7에 도시된 룩업 데이터는 실제로 임의의 적절한 방법으로 표현될 수 있고 임의의 적절한 위치에 저장될 수 있다는 것을 이해해야 한다. 예를 들어, 이러한 룩업 데이터는 메모리에 저장될 수 있고 상응하는 분기 목적지를 나타내기 위해 다수의 바이트가 이어지는 위치를 나타내도록 다수의 바이트를 사용할 수 있다. 그러나, 이것은 단지 예이고, 이러한 룩업 데이터가 검사 시스템에 의해 접근될 수 있는 한 각각의 위치에 상응하는 분기 목적지에 더해 하나 이상의 위치를 저장하기 위한 임의의 적절한 방법이 사용될 수 있다.
도 8a-g는 일부 실시예에 따른, 검사 패턴 생성기의 다수의 사이클 동안 검사 패턴 벡터의 오퍼레이션부를 처리하는 복수의 처리 경로에서의 처리를 도시하고 있다. 도 8a-g의 예에서, 도 6에 도시된 처리 로직은 도 3에 도시된 검사 패턴의 오퍼레이션부의 처리를 수행하는데 사용된다. 도 8a-b는 도 3에 도시된 검사 패턴(300)의 실행을 검사 시스템이 시작하는 이전의 2개의 사이클 동안의 처리 경로 A, B, C의 상태를 도시하고 있다. 도 8c-g는 도 3에 도시된 검사 패턴(300)의 실행의 첫 5개의 사이클 동안 처리 경로 A, B, C의 상태를 도시하고 있다. 또한, 도 7에 도시된 룩업 데이터는 상술된 방법을 사용하여, 가능한 분기 목적지를 결정하도록 처리 로직에 의해 사용된다.
도 8a-g에 의해 도시된 프로세스의 시작시에, 처리 로직은 검사 패턴 내의 포지션 0의 오퍼레이션부로 시작하는 검사 패턴의 순차 처리를 수행하기를 시작한다. 이에 따라, 판정 로직은 첫 처리 경로에 포지션 0에서의 오퍼레이션부를 제공함으로써 시작한다. 도 8a의 표(810)에 의해 도시된 바와 같이, 이것은 경로 A의 레지스터 0에 "0"으로 표시되어 있다(예를 들어, 도 6에 도시된 레지스터(610)). 도 8a-g의 표에서, 특정 검사 패턴 위치에서의 오퍼레이션부는 이러한 벡터의 위치를 나타내는 각각의 표의 수에 의해 표시된다. 예를 들어, 오퍼레이션 동안 벡터의 오퍼레이션부는 처리 경로중 하나에서 처리될 수 있고, 도 8a-g에 제공된 숫자 위치는 단지 어느 오퍼레이션부가 프로세스의 각각의 단계에서 처리되고 있는지를 나타내기 위해 제공되어 있다.
다음 사이클에서, 사이클이 검사 시스템이 검사 패턴의 실행을 시작하기 하나의 사이클 전이기 때문에, 처리 경로 A 내의 오퍼레이션부의 순차 처리는 도 8b에 도시된 바와 같이 계속된다. 포지션 0에서의 오퍼레이션부는 파이프라인 처리 경로를 통해 레지스터 1로 이동하였고, 포지션 0에서의 오퍼레이션부는 처리를 위해 레지스터 0으로 제공되었다. 또한, 판정 로직은 도 7의 표(700)에 의해 도시된 바와 같이, 룩업 데이터를 검사하고, 포지션 0에서의 오퍼레이션부가 이전의 사이클에서 처리되었기 때문에, 위치 10으로의 분기가 해당 포지션에서의 벡터의 실행에 이어지는 사이클에서 잠재적으로 생성될 수 있다는 것을 알아낸다. 이에 따라, 처리는 이러한 사이클 동안 포지션 10에서의 오퍼레이션부의 경로 B에서 시작된다.
도 8c에 도시된 다음 사이클은 검사 시스템이 검사 패턴 내의 벡터를 실행하기 시작하는 첫 사이클이다. 도 6과 관련하여 상술된 바와 같이, 멀티플렉서(60)는 판정 로직(650)에 의해 제어되는, 처리 경로 내의 레지스터의 내용에 기초하여 출력(645)를 제공할 수 있다. 도 8c의 예에서, 멀티플렉서는 처리 로직에 의해 출력을 생성하기 위해 경로 A 내의 레지스터 2의 오퍼레이션부를 선택한다. 상술된 바와 같이, 처리 로직의 출력은 처리 로직(600)이 위치한 패턴 생성기에 의해 실행될 벡터를 나타낼 수 있다. 예를 들어, 처리 로직의 출력은 실행할 벡터의 데이터부를 명시할 수 있어서 피검사 장치로의 핀 일렉트로닉스의 적용을 명시할 수 있다. 처리 로직의 특정 출력에 관계없이, 이러한 사이클에서 검사 시스템은 처리 로직의 출력에 기초하여 검사 패턴 내의 포지션 0에 위치된 벡터를 실행한다. 이러한 벡터가 조건 분기 타입이기 때문에, 벡터의 오퍼레이션부는 분기가 생성되는지 여부를 결정할 것이다.
또한, 도 8c에 도시된 사이클 동안, 판정 로직은 도 7의 표(700)에 의해 도시된 바와 같이 룩업 데이터를 검사하고, 포지션 10에서의 오퍼레이션부가 이전의 사이클에 처리되었기 때문에, 위치(20)로의 분기가 해당 위치의 벡터의 실행에 이어지는 사이클에서 잠재적으로 생성될 수 있다고 판정한다. 이에 따라, 처리는 이러한 사이클 동안 포지션 20에서의 오퍼레이션부의 경로 C에서 시작된다. 하술되는 후속 사이클에서, 결정 로직은 룩업 데이터를 검사하고 분기가 처리되는 오퍼레이션부에 의해 생성될 수 있는지 여부에 대해 판정한다. 그러나, 본 예에서, 검사 패턴의 포지션 0 또는 10에 있는 오퍼레이션부 이외의 오퍼레이션부에 의해 더 이상의 분기가 생성될 수 없고, 이에 따라, 도 3에 도시된 검사 패턴을 처리하는 후속 사이클 동안, 판정 로직은 룩업 데이터에 기초하여 임의의 추가 경로를 시작하지 않을 것이다.
도 8d에 도시된 사이클 1에서, 순차 처리는 포지션 0에서의 오퍼레이션부의 분기 조건의 평가에 기초하여 처리 경로 B에서 시작된다. 이러한 처리는 예를 들어, 도 6에 도시된 라인(661-663)을 통해 판정 로직에 제공된 데이터에 기초하여 시작될 수 있다. 도 3에 도시된 검사 패턴에서, 플래그 A는 1로 설정된 값을 가질 수 있어서, 위치 0에서의 벡터의 실행 후에 검사 패턴의 위치 10으로의 분기를 생성할 수 있다. 도 8a-g의 예에서, 분기가 검사 패턴의 위치 0에 있는 벡터의 실행시에 생성되고, 이에 따라, 순차 처리가 처리 경로 B에서 시작되고, 처리 로직의 출력은 경로 B의 레지스터 2의 내용에 기초하도록 선택된다.
도 8e에 도시된 사이클 2에서, 순차 처리가 포지션 10에서의 오퍼레이션부의 분기 조건의 평가에 기초하여 처리 경로 C에서 시작된다. 예를 들어, 도 3에 도시된 검사 패턴에서, 플래그 B는 1로 설정된 값을 가질 수 있어서, 위치 10에서의 벡터의 실행 후에 검사 패턴의 위치 20에 분기를 생성할 수 있다. 도 8a-g의 예에서, 분기는 검사 패턴의 위치 10에서의 벡터의 실행시에 생성되고, 이에 따라, 순차 처리가 처리 경로 C에서 시작되고, 처리 로직의 출력이 경로 C의 레지스터 2의 내용에 기초하도록 선택된다.
도 8f 및 도 8g에 각각에 도시된 사이클 3 및 4에서, 순차 처리는 경로 C에서 계속된다. 도 6에 도시된 처리 로직 구성의 하나의 장점은 멀티플렉서가 항상 처리 경로의 최상위 랭크의 레지스터로부터 출력을 제공할 수 있다는 것일 수 있다(예를 들어, 레지스터 2는 도 6의 예의 최상위 랭크의 레지스터이다). 분기 목적지가 실행 이전에 계산되었기 때문에, 가능한 분기 목적지는 유용한 처리 경로에 처리함으로써 처리될 수 있다. 충분한 수의 유용한 처리 경로가 존재하기만 하면, 시스템은 처리 경로에서 출력을 위한 최상위 랭크의 레지스터를 선택함으로써 분기를 각각 생성할 수 있는 임의의 수의 순차 실행되는 오퍼레이션부를 처리할 수 있다.
도 9는 일부 실시예에 따른, 복수의 경로에서 오퍼레이션부를 처리하는 방법을 도시하고 있다. 도 9에 도시된 방법(900)은 상술된 실시예를 포함하는, 다수의 처리 경로에서 오퍼레이션부를 처리할 수 있는 임의의 적절한 검사 시스템에서 실행될 수 있다.
방법(900)은 검사 패턴 내의 제1 벡터의 오퍼레이션부가 처리 경로 A에서 처리되는 단계 910으로 시작한다. 단계 920에서, 처리 경로 B에서 처리되고 있는 제2 벡터가 식별된다. 제2 벡터의 식별은 예를 들어, 단계 910에서의 제1 벡터의 오퍼레이션부의 처리에 기초할 수 있다. 예를 들어, 단계 910에서의 제1 벡터의 오퍼레이션부의 처리는 제1 벡터의 실행으로 분기를 생성할 것이라는 것을 표시할 수 있고, 처리 경로 B에서의 오퍼레이션부는 이러한 표시에 기초하여 식별될 수 있다. 그러나, 제2 벡터는 임의의 적절한 이유로 처리 경로 B에서 식별될 수 있다.
단계 930에서, 단계 920에서 식별된 제2 벡터의 오퍼레이션부가 처리된다. 예를 들어, 제2 벡터의 오퍼레이션부의 처리는 이러한 벡터의 실행 동안 수행될 수 있거나, 이러한 벡터의 실행이 분기를 생성할 수 있는지 여부를 결정하도록 수행될 수 있다.
단계 940에서, 오퍼레이션부의 처리가 처리 경로 A에서 실행되고 있지 않은지 여부가 판정된다. 이러한 판정은 예를 들어, 단계 920가 실행되는 검사 시스템의 동일한 사이클 동안, 또는 후속 사이클에서, 단계 930 후에 임의의 시간에 실행될 수 있다. 이러한 오퍼레이션부의 처리가 단계 940에서 처리 경로 A에서 실행되지 않고 있다는 판정은 예를 들어, 단계 930에서 제2 벡터의 처리에 기초할 수 있는, 처리 경로 B에서 오퍼레이션부가 처리되고 있는지를 식별하는 것과 같은 임의의 적절한 방법으로 실행될 수 있다.
오퍼레이션부의 처리가 처리 경로 A에서 실행되고 있지 않다고 판정하는 방법에 관계 없이, 단계 950에서 처리 경로 A가 쳐내진다. 처리 경로 A를 쳐내는 것은 예를 들어, 처리 경로 A가 사용가능하다는 표시를 저장하는 단계 및/또는 처리 경로 A에서의 오퍼레이션부의 처리를 중단하는 단계를 수반할 수 있다. 그러나, 상기 쳐냄은 시스템이 처리 경로 A에서 연속으로 처리를 시작할 수 있도록 하는 임의의 동작을 포함할 수 있다.
여기에 기술된 다양한 방법 또는 프로세스는 하나 이상의 프로세서, 필드 프로그래머블 게이트 어레이(FPGA) 또는 주문형 집적 회로(ASIC)와 같은 임의의 적절한 하드웨어로 구현될 수 있다. 또한, 여기에 기술된 다양한 방법 또는 프로세스는 다양한 운영 체제 또는 플랫폼중 하나를 채용하는 하나 이상의 프로세서에서 실행가능한 소프트웨어 및 하드웨어의 조합으로 구현될 수 있다. 예를 들아, 다양한 방법 또는 프로세스가 검사 패턴을 생성하거나 제한하도록 소프트웨어를 사용한 다음 검사 패턴을 사용하여 검사를 실행하도록 하드웨어를 사용할 수 있다. 이러한 다양한 방법 또는 프로세스는 또한 자동 검사의 일부를 실행하도록 소프트웨어를 사용하고 자동 검사의 나머지를 실행하도록 하드웨어를 사용할 수 있다. 이러한 하나의 방법의 예가 상술되어 있다. 그러나, 임의의 적절한 조합의 하드웨어 및 소프트웨어가 여기에 기술된 실시예중 하나를 구현하기 위해 채용될 수 있다.
이러한 관점에서, 하나 이상의 컴퓨터 또는 다른 프로세서에서 실행될 대, 본 발명의 다양한 실시예를 구현하는, 하나 이상의 프로그램으로 암호화된 적어도 하나의 비임시 컴퓨터 판독가능 저장 매체(예를 들어, 컴퓨터 메모리, 하나 이상의 플로피 디스크, 콤팩트 디스크, 광 디스크, 자기 테이프, 플래시 메모리, 필드 프로그래머블 게이트 어레이 내의 회로 구성 또는 다른 반도체 장치등)로서 구현될 수 있다. 이러한 비임시 컴퓨터 판독가능 매체는 저장된 프로그램이 상술된 바와 같은 본 발명의 다양한 특징을 구현하도록 임의의 컴퓨터 리소스에 로딩될 수 있도록 수송가능할 수 있다.
용어 "프로그램" 또는 "소프트웨어"는 포괄적 관점에서 상술된 바와 같이 다양한 특징의 실시예를 구현하도록 컴퓨터 또는 다른 프로세서를 프로그램하도록 채용될 수 있는 임의의 타입의 컴퓨터 코드 또는 컴퓨터 실행가능한 명령어의 세트를 가리키도록 여기에 사용되어 있다. 또한, 하나의 특징에 따라, 실행될 때 본 발명의 방법을 실행하는 하나 이상의 컴퓨터 프로그램이 단일 컴퓨터 또는 프로세서에 위치할 필요는 없고, 본 발명의 다양한 특징을 구현하기 위해 상이한 컴퓨터 또는 프로세서중에 모듈 방식으로 분포될 수 있다는 것을 이해해야 한다.
컴퓨터 실행가능한 명령어는 하나 이상의 컴퓨터 또는 다른 장치에 의해 실행되는 프로그램 모듈과 같은 많은 형태를 취할 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 실행하거나 특정 추상 데이터형을 구현하는, 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조등을 포함하고 있다. 보통, 프로그램 모듈의 기능은 다양한 실시예에서 요구되는 대로 조합되거나 분배될 수 있다.
또한, 데이터 구조는 임의의 적절한 형태로 비임시 컴퓨터 판독가능 저장 매체에 저장될 수 있다. 이해를 위해, 데이터 구조는 데이터 구조 내의 위치를 통해 관련된 필드를 갖는 것으로 보일 수 있다. 이러한 관계는 마찬가지로, 필드 사이의 관계를 전달하는 비임시 컴퓨터 판독가능 매체에 위치를 갖는 필드에 대한 저장공간을 할당함으로써 달성될 수 있다. 그러나, 포인터, 태그 또는 데이터 엘리먼트 간의 관계를 달성하는 다른 메커니즘을 통하는 것을 포함하는 임의의 적절한 메커니즘이 데이터 구조의 필드 내의 정보 간의 관계를 달성하는데 사용될 수 있다.
또한, 다양한 발명 개념은 예가 제공된 하나 이상의 방법으로서 구현될 수 있다. 이러한 방법의 일부로서 실행된 단계는 임의의 적절한 방식으로 순서지정될 수 있다. 따라서, 실시예에서 순차적인 단계로서 도시되어 있지만, 설명된 것과 상이한 순서로 단계가 실행되고, 일부 단계를 동시에 실행하는 단계를 포함할 수 있는 실시예가 구성될 수 있다.
여기에 정의되고 사용된 모든 정의는 사전적 정의, 언급되어 통합된 문서에서의 정의, 및/또는 정의된 용어의 통상적인 의미를 넘는 것으로 이해되어야 한다.
명세서 및 청구범위에서 사용된 용어는 특별히 지정하지 않으면 "적어도 하나"의 의미를 갖는 것으로 이해되어야 한다.
명세서 및 청구범위에 사용된 바와 같이, 하나 이상의 요소의 리스트와 관련하여, "적어도 하나의" 구는 이러한 요소의 리스트중 임의의 하나 이상의 요소로부터 선택된 적어도 하나의 요소를 의미하고 요소의 리스트에 특별히 나열된 각 요소 및 모든 요소중 적어도 하나를 반드시 포함하지 않고 상기 요소의 리스트에서 임의의 요소의 결합을 제외하는 것은 아니라는 것을 이해해야 한다. 또한, 이러한 정의에 의해, 특정 식별된 이러한 요소와 관련되거나 관련되지 않든, 요소는 "저어도 하나의" 구가 가리키는 요소의 리스트에 구체적으로 식별된 요소 이외의 것을 선택적으로 나타낼 수 있다.
명세서 및 청구범위에 사용된 구 "및/또는"은 그렇게 결합된 요소, 즉, 일부 경우에 공동으로 제시되고 다른 경우에 분리하여 제시되는 요소의 "어느 하나 또는 모두"를 의미하는 것을 이해되어야 한다. "및/또는"으로 나열된 다수의 요소는 "하나 이상의" 요소와 동일한 방식으로 이해되어야 한다. 특정 식별된 요소와 관련되거나 관련되지 않든 관계없이, "및/또는" 절에 의해 의해 구체적으로 식별된 요소 이외의 다른 요소가 옵션으로 제시될 수 있다. 따라서, 비제한 예로서, "A 및/또는 B"의 언급은 "포함하는"와 같은 개방형 언어와 연결되어 사용될 때, 하나의 실시예에서, A만(옵션으로 B 이외의 요소를 포함한다)을 가리킬 수 있고; 다른 실시예에서, B만(옵션으로 A 이외의 요소를 포함한다)을 가리킬 수 있고; 또 다른 실시예에서, A와 B 모두(옵션으로 다른 요소를 포함한다)를 가리킬 수 있다.
명세서 및 청구범위에 사용된 바와 같이, "또는"은 상술된 "및/또는" 과 동일한 의미를 갖는 것으로 이해되어야 한다. 예를 들어, 리스트에서 아이템을 분리할 때, "또는" 또는 "및/또는"은 적어도 하나를 포함하지만 역시 다수의 요소중 하나 보다 많은 것을 포함하고, 옵션으로 추가 나열되지 않은 아이템을 포함하는 것으로 해석된다. "오직 하나" 또는 "그중 정확히 하나", 또는 청구범위에서 사용될 때, "구성되는"와 같은 반대로 분명히 표시되는 용어만이 다수의 요소 또는 리스트중 정확히 하나의 요소를 포함하는 것을 가리킬 것이다. 일반적으로, 여기에 사용되는 용어 "또는"은 "어느 하나", "중 하나", "중 오직 하나" 또는 "중 정확히 하나"와 같은 독점적인 용어에 함께 사용될 때만 배타적 의미(즉, "하나 또는 다른 것이지만 양쪽은 아니다")를 가리키는 것으로 해석되어야 할 것이다. 청구범위에 사용될 때 "본질상 ...로 구성되는"은 특허법 분야에서 사용되는 통상적인 의미를 갖는다.
청구항을 수정하는 청구범위의 "제1", "제2", "제3"등과 같은 통상적인 용어의 사용은 방법의 단계가 수행되는 시간적 순서에서 선행성, 또는 하나의 청구항의 순서를 나타내는 것은 아니다. 이러한 용어는 단지 (서수 용어의 사용을 위한) 동일한 명칭을 갖는 다른 요소로부터 특정 명칭을 갖는 하나의 청구항을 구별하기 위한 라벨로서 사용되어 있다.
여기에 사용된 구 및 용어는 설명을 위한 것이고 제한을 위한 것이 아니다. "포함하는", "구비하는", "갖는", "수반하는" 및 그 변형의 사용은 나열된 아이템 및 추가 아이템을 포함하는 의미를 갖고 있다.
본 발명의 다수의 실시예를 상세하게 설명하였지만, 다양한 수정 및 향상이 당업자에 용이하게 이해될 것이다.
예를 들어, 검사 시스템의 패턴 생성기의 설계 및 동작을 위한 기술이 기술되었다. 이러한 기술은 다른 상황에서 적용될 수 있다. 예를 들어, 마이크로프로세서, 또는 다른 컴퓨터 시스템의 프로그램된 명령어의 순차적 실행은 여기에 사용된 바와 같은 기술을 사용할 수 있다.
이러한 수정 및 향상은 본 발명의 정신 및 범위에 있다. 따라서, 상기 기술은 단지 예이고, 제한을 위한 것이 아니다. 본 발명은 다음의 청구범위 및 그 등가물에 의해서만 한정되어 제한된다.

Claims (22)

  1. 복수의 벡터를 포함하는 검사 패턴으로 프로그램된 자동 검사 시스템을 동작시키는 방법으로서, 상기 복수의 벡터는 각각 상기 검사 패턴 내의 위치와 연관되어 있고, 상기 복수의 벡터의 적어도 일부의 각각은 오퍼레이션부 및 데이터부를 포함하고, 상기 오퍼레이션부는 상기 검사 패턴의 실행 동안 후속 벡터의 위치를 결정하는 오퍼레이션을 규정하고, 상기 데이터부는 상기 벡터의 실행시에 피검사 장치의 복수의 검사점에서 검사 신호를 생성하거나 측정하도록 상기 자동 검사 시스템에 의해 실행되는 액션에 적어도 일부 특성을 부여하는 상기 방법은,
    각각 벡터의 오퍼레이션부를 처리하도록 구성된 복수의 경로를 포함하는 회로에 의해 상기 검사 패턴 내의 벡터를 실행하는 단계를 포함하고, 상기 벡터를 실행하는 단계는,
    상기 복수의 경로중 제1 경로에서, 상기 검사 패턴 내의 비순차 위치로의 분기를 상기 검사 패턴 내의 벡터의 실행의 흐름에서 생성할 수 있는 오퍼레이션을 규정하는 벡터의 오퍼레이션부의 처리시에, 상기 비순차 위치로부터 상기 복수의 경로의 제2 경로에서 상기 검사 패턴의 처리를 시작하는 단계를 포함하는 것을 특징으로 하는 자동 검사 시스템 동작 방법.
  2. 제1항에 있어서, 상기 벡터를 실행하는 단계는, 복수의 사이클의 각각에 대해,
    상기 복수의 경로중 하나의 경로 내의 오퍼레이션부로부터 값을 선택하는 단계;
    상기 선택된 값을 갖는 위치와 연관된 벡터의 데이터부에 접근하는 단계; 및
    피검사 장치에 대한 검사 신호 오퍼레이션을 적어도 일부 제어하기 위해 상기 접근된 데이터부를 사용하는 단계;를 더 포함하는 것을 특징으로 하는 자동 검사 시스템 동작 방법.
  3. 제1항에 있어서, 상기 벡터를 실행하는 단계는,
    상기 복수의 경로중 제2 경로 내의 검사 패턴의 처리를 시작할 때, 상기 복수의 경로중 제3 경로 내의 검사 패턴의 처리를 시작하는 단계를 더 포함하는 것을 특징으로 하는 자동 검사 시스템 동작 방법.
  4. 제1항에 있어서, 상기 검사 패턴 내의 벡터를 실행하는 단계는 동일한 사이클 분기로 벡터를 실행하는 단계를 포함하는 것을 특징으로 하는 자동 검사 시스템 동작 방법.
  5. 제1항에 있어서, 상기 실행의 흐름이 상기 비순차 위치로 분기하지 않았다는 판정에 기초하여, 상기 제2 경로를 쳐내는(pruning) 단계를 더 포함하는 것을 특징으로 하는 자동 검사 시스템 동작 방법.
  6. 제5항에 있어서, 상기 제2 경로를 쳐내는 단계는 상기 제2 경로가 사용가능다는 표시를 저장하는 단계를 포함하는 것을 특징으로 하는 자동 검사 시스템 동작 방법.
  7. 제1항에 있어서, 상기 검사 패턴 내의 비순차 위치로 분기를 상기 검사 패턴 내의 벡터의 실행의 흐름에서 생성할 수 있는 오퍼레이션을 규정하는 벡터의 오퍼레이션부의 처리는 상기 비순차 위치를 동적으로 계산하는 단계를 포함하는 것을 특징으로 하는 자동 검사 시스템 동작 방법.
  8. 제1항에 있어서, 상기 검사 패턴 내의 비순차 위치로 분기를 상기 검사 패턴 내의 벡터의 실행의 흐름에서 생성할 수 있는 오퍼레이션을 규정하는 벡터의 오퍼레이션부의 처리는 상기 비순차 위치를 메모리로부터 판독하는 단계를 포함하는 것을 특징으로 하는 자동 검사 시스템 동작 방법.
  9. 제8항에 있어서, 상기 메모리는 룩업 테이블인 것을 특징으로 하는 자동 검사 시스템 동작 방법.
  10. 제8항에 있어서,
    상기 검사 패턴 내의 벡터를 실행하기 이전에, 상기 벡터의 실행시에, 상기 흐름 내의 분기의 가능한 목적지인 적어도 하나의 비순차 위치를 상기 복수의 벡터의 적어도 일부의 각각에 대해 계산하는 단계; 및
    상기 계산된 적어도 하나의 비순차 위치의 표시를 저장하는 단계;를 더 포함하는 것을 특징으로 하는 자동 검사 시스템 동작 방법.
  11. 제1항에 있어서,
    상기 복수의 경로중 하나의 경로 내의 오퍼레이션부로부터 값을 선택하는 단계를 더 포함하고,
    상기 복수의 경로의 각각은 복수의 랭크와 파이프라인되어 있고;
    상기 복수의 경로중 하나의 경로로부터 값을 선택하는 단계는 상기 값에 접근하는 경로를 선택하고 상기 선택된 경로 내의 랭크를 선택하는 단계를 포함하는 것을 특징으로 하는 자동 검사 시스템 동작 방법.
  12. 제1항에 있어서, 상기 회로는 패턴 생성기를 포함하는 것을 특징으로 하는 자동 검사 시스템 동작 방법.
  13. 프로그램을 규정하는 명령어를 실행하기 위한 시스템으로서, 상기 명령어 각각은 상기 프로그램 내의 위치와 연관되어 있고, 복수의 명령어의 적어도 일부의 각각은 오퍼레이션부 및 데이터부를 포함하고 있고, 상기 오퍼레이션부는 상기 프로그램의 실행 동안 후속 명령어의 위치를 결정하는 오퍼레이션을 규정하고, 상기 데이터부는 상기 명령의 실행시에 상기 시스템에 실행되는 액션에 적어도 일부 특성을 부여하는 상기 시스템은,
    적어도 상기 프로그램의 명령어의 상기 오퍼레이션부를 저장하도록 구성된 메모리;
    복수의 경로로서, 상기 복수의 경로의 각각은 상기 메모리 내의 순차 위치로부터의 명령어의 오퍼레이션부를 처리하기 위한 회로를 포함하고, 상기 복수의 경로의 각각은 상기 메모리로부터의 명령어의 오퍼레이션부를 수신하도록 결합되어 있고, 상기 복수의 경로의 각각은 명령어의 오퍼레이션부의 실행에 의해 상기 프로그램 내의 비순차 위치로의 분기를 생성할 수 있는지 여부를 결정하기 위한 오퍼레이션 처리 회로를 포함하는 상기 복수의 경로;
    제어 회로로서,
    상기 복수의 경로의 유용한 경로 내의 메모리의 순차 위치로부터 오퍼레이션부의 처리를 시작하고, 상기 처리는 분기를 나타내는 활성 경로 내의 오퍼레이션부의 처리에 기초하여 시작되고, 상기 유용한 경로에서의 처리는 상기 분기의 목적지로부터 시작되고;
    상기 프로그램의 실행이 순차 처리가 상기 경로에 대해 시작된 목적지에 분기되지 않았다고 판정시에 활성 경로가 유용한 것으로 분류하는
    상기 제어 회로;
    출력부를 갖는 멀티플렉서로서, 상기 복수의 경로의 활성 경로로부터의 값을 상기 출력부에서 선택하고 제공하도록 상기 복수의 경로에 결합된 상기 멀티플렉서; 및
    상기 멀티플렉서의 출력부에 결합되어 있고, 상기 멀티플렉서의 출력부에서 상기 값에 의해 표시된 상기 프로그램 내의 위치에서 명령어의 데이터부를 처리하도록 구성된 데이터 처리 회로;를 포함하는 것을 특징으로 하는 명령어 실행 시스템.
  14. 제13항에 있어서, 상기 메모리는 각각 상기 복수의 경로중 하나의 경로와 연관된 복수의 메모리 구성요소를 포함하는 것을 특징으로 하는 명령어 실행 시스템.
  15. 제13항에 있어서, 상기 복수의 경로의 각각은 적어도 하나의 파이프라인 레지스터를 포함하는 것을 특징으로 하는 명령어 실행 시스템.
  16. 제13항에 있어서, 상기 메모리는 랜덤 액세스 메모리(RAM)를 포함하는 것을 특징으로 하는 명령어 실행 시스템.
  17. 복수의 연속 사이클에서 프로그램을 규정하는 복수의 명령어를 실행하기 위한 시스템을 동작시키는 방법으로서, 상기 복수의 명령어는 각각 상기 프로그램 내의 위치와 연관되어 있고, 상기 복수의 명령어의 적어도 일부의 각각은 오퍼레이션부 및 데이터부를 포함하고 있고, 상기 오퍼레이션부는 상기 프로그램의 실행 동안 후속 명령어의 위치를 결정하는 오퍼레이션을 규정하고, 상기 데이터부는 상기 명령어의 실행시에 상기 시스템에 의해 실행되는 액션에 적어도 일부 특성을 부여하는 상기 방법은,
    복수의 순차적인 사이클의 각각에서, 상기 프로그램 내의 순차 위치에서 명령어의 오퍼레이션부를 처리하도록 복수의 경로를 오퍼레이팅하는 단계; 및
    상기 복수의 순차적인 사이클의 각각에서, 상기 복수의 경로중 하나의 경로로부터 선택된 값에 기초하여 상기 프로그램의 명령어의 데이터부에 접근하는 단계;를 포함하고,
    명령어의 오퍼레이션부가 처리되는 프로그램 내의 위치가 상기 복수의 경로의 상이한 경로에서 상이하고;
    상기 복수의 경로의 적어도 일부에 대해, 명령어가 하나의 사이클에서 처리되는 위치는 상기 복수의 사이클의 이전의 사이클의 상이한 경로 내의 명령어의 오퍼레이션부의 처리에 의존하는 것을 특징으로 하는 복수의 명령어를 실행하는 시스템 동작 방법.
  18. 제17항에 있어서, 상기 복수의 경로중 제1 경로 내의 오퍼레이션의 처리는 상기 프로그램 내의 순차 위치에서의 명령어의 오퍼레이션부의 처리가 제2 경로에서 시작되는 위치를 결정하는 단계를 포함하는 것을 특징으로 하는 복수의 명령어를 실행하는 시스템 동작 방법.
  19. 제18항에 있어서, 상기 제1 경로 내의 오퍼레이션을 처리하는 단계는 조건 분기 명령어를 처리하는 단계를 포함하고;
    상기 프로그램 내의 순차 위치에서의 명령어의 오퍼레이션부의 처리가 시작되는 위치를 결정하는 단계는 상기 조건 분기의 타겟을 평가하는 단계를 포함하는 것을 특징으로 하는 복수의 명령어를 실행하는 시스템 동작 방법.
  20. 제19항에 있어서,
    상기 타겟으로의 상기 조건 분기가 취해지지 않았다고 판정하는 단계; 및
    상기 조건 분기가 취해지지 않았다는 판정에 기초하여, 상기 제2 경로에서, 상기 프로그램 내의 순차 위치에서의 명령어의 복수의 오퍼레이션부의 처리를 중단시키는 단계;를 더 포함하는 것을 특징으로 하는 복수의 명령어를 실행하는 시스템 동작 방법.
  21. 제20항에 있어서, 상기 중단시키는 단계는 상기 제2 경로에서의 처리를 정지시키는 단계를 포함하는 것을 특징으로 하는 복수의 명령어를 실행하는 시스템 동작 방법.
  22. 제20항에 있어서, 상기 중단시키는 단계는 상기 제2 경로에서의 순차 처리가 시작되는 위치를 재설정하는 단계를 포함하는 것을 특징으로 하는 복수의 명령어를 실행하는 시스템 동작 방법.
KR1020157026740A 2013-03-14 2014-01-10 다중 처리 경로를 사용하는 장치 검사 방법 및 장치 KR102126763B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/826,038 2013-03-14
US13/826,038 US9134377B2 (en) 2013-03-14 2013-03-14 Method and apparatus for device testing using multiple processing paths
PCT/US2014/011036 WO2014143386A1 (en) 2013-03-14 2014-01-10 Method and apparatus for device testing using multiple processing paths

Publications (2)

Publication Number Publication Date
KR20150128757A KR20150128757A (ko) 2015-11-18
KR102126763B1 true KR102126763B1 (ko) 2020-06-25

Family

ID=51534231

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157026740A KR102126763B1 (ko) 2013-03-14 2014-01-10 다중 처리 경로를 사용하는 장치 검사 방법 및 장치

Country Status (4)

Country Link
US (1) US9134377B2 (ko)
KR (1) KR102126763B1 (ko)
CN (1) CN105190334B (ko)
WO (1) WO2014143386A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105307187B (zh) * 2014-07-31 2019-06-25 深圳罗德与施瓦茨贸易有限公司 用于开始时间同步信号产生的测量装置和测量方法
US10139449B2 (en) 2016-01-26 2018-11-27 Teradyne, Inc. Automatic test system with focused test hardware
US11169203B1 (en) 2018-09-26 2021-11-09 Teradyne, Inc. Determining a configuration of a test system
EP4045923A4 (en) * 2019-10-18 2023-07-19 Minima Processor Oy METHOD, ARRANGEMENT AND COMPUTER PROGRAM PRODUCT FOR ORGANIZING EXCITATION OF PROCESSING PATHS FOR TESTING A MICROELECTRIC CIRCUIT
US11461222B2 (en) 2020-04-16 2022-10-04 Teradyne, Inc. Determining the complexity of a test program
US11443822B2 (en) 2020-10-29 2022-09-13 SambaNova Systems, Inc. Method and circuit for row scannable latch array
US11449404B1 (en) * 2021-07-09 2022-09-20 SambaNova Systems, Inc. Built-in self-test for processor unit with combined memory and logic
US12008234B2 (en) * 2021-11-10 2024-06-11 Teradyne, Inc. Managing memory in an electronic system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5257354A (en) 1991-01-16 1993-10-26 International Business Machines Corporation System for monitoring and undoing execution of instructions beyond a serialization point upon occurrence of in-correct results
US6330664B1 (en) 1996-05-03 2001-12-11 Telefonaktiebolaget Lm Ericsson (Publ) Method relating to handling of conditional jumps in a multi-stage pipeline arrangement
US20080082886A1 (en) 2006-08-30 2008-04-03 Micron Technology, Inc. Sub-instruction repeats for algorithmic pattern generators
WO2010054669A1 (en) 2008-11-11 2010-05-20 Verigy (Singapore) Pte.Ltd. Re-configurable test circuit, method for operating an automated test equipment, apparatus, method and computer program for setting up an automated test equipment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9322948D0 (en) * 1993-11-08 1994-01-05 Varintelligent Bvi Ltd Liquid crystal display
US6154865A (en) * 1998-11-13 2000-11-28 Credence Systems Corporation Instruction processing pattern generator controlling an integrated circuit tester
US7039841B2 (en) * 2002-05-08 2006-05-02 Credence Systems Corporation Tester system having multiple instruction memories
US7203877B2 (en) 2005-01-04 2007-04-10 Lsi Logic Corporation Failure analysis and testing of semi-conductor devices using intelligent software on automated test equipment (ATE)
US7725794B2 (en) * 2007-03-21 2010-05-25 Advantest Corporation Instruction address generation for test apparatus and electrical device
US8185336B2 (en) 2008-10-30 2012-05-22 Advantest Corporation Test apparatus, test method, program, and recording medium reducing the influence of variations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5257354A (en) 1991-01-16 1993-10-26 International Business Machines Corporation System for monitoring and undoing execution of instructions beyond a serialization point upon occurrence of in-correct results
US6330664B1 (en) 1996-05-03 2001-12-11 Telefonaktiebolaget Lm Ericsson (Publ) Method relating to handling of conditional jumps in a multi-stage pipeline arrangement
US20080082886A1 (en) 2006-08-30 2008-04-03 Micron Technology, Inc. Sub-instruction repeats for algorithmic pattern generators
WO2010054669A1 (en) 2008-11-11 2010-05-20 Verigy (Singapore) Pte.Ltd. Re-configurable test circuit, method for operating an automated test equipment, apparatus, method and computer program for setting up an automated test equipment

Also Published As

Publication number Publication date
US20140281776A1 (en) 2014-09-18
CN105190334B (zh) 2018-07-10
WO2014143386A1 (en) 2014-09-18
KR20150128757A (ko) 2015-11-18
CN105190334A (zh) 2015-12-23
US9134377B2 (en) 2015-09-15

Similar Documents

Publication Publication Date Title
KR102126763B1 (ko) 다중 처리 경로를 사용하는 장치 검사 방법 및 장치
US8589892B2 (en) Verification of speculative execution
US7657807B1 (en) Integrated circuit with embedded test functionality
US8352713B2 (en) Debug circuit comparing processor instruction set operating mode
US9208451B2 (en) Automatic identification of information useful for generation-based functional verification
CN105528284B (zh) 一种内核故障注入方法及电子设备
US6983398B2 (en) Testing processors
CN109885857B (zh) 指令发射控制方法、指令执行验证方法、系统及存储介质
US9658853B2 (en) Techniques for increasing instruction issue rate and reducing latency in an out-of order processor
US9405315B2 (en) Delayed execution of program code on multiple processors
US8499208B2 (en) Method and apparatus for scheduling BIST routines
Ye et al. Substantial fault pair at-a-time (SFPAT): An automatic diagnostic pattern generation method
US7650542B2 (en) Method and system of using a single EJTAG interface for multiple tap controllers
US8516229B2 (en) Two pass test case generation using self-modifying instruction replacement
KR20200088760A (ko) 체크섬 생성
US20180129577A1 (en) Testing speculative instruction execution with test cases placed in memory segments with non-naturally aligned data boundaries
US9551747B2 (en) Inserting bypass structures at tap points to reduce latch dependency during scan testing
EP2972880A1 (en) Kernel functionality checker
US20110218794A1 (en) Concretization of abstracted traces
Hummel Exploring effects of electromagnetic fault injection on a 32-bit high speed embedded device microprocessor
US7617416B2 (en) System, method, and apparatus for firmware code-coverage in complex system on chip
US11182265B2 (en) Method and apparatus for test generation
US9721048B1 (en) Multiprocessing subsystem with FIFO/buffer modes for flexible input/output processing in an emulation system
CN111241766A (zh) 测试方法与测试系统
JP6473023B2 (ja) 性能評価モジュール及びこれを組み込んだ半導体集積回路

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right