KR100634992B1 - 집적회로 테스터를 제어하는 명령 처리 패턴 발생기 - Google Patents

집적회로 테스터를 제어하는 명령 처리 패턴 발생기 Download PDF

Info

Publication number
KR100634992B1
KR100634992B1 KR1020017004799A KR20017004799A KR100634992B1 KR 100634992 B1 KR100634992 B1 KR 100634992B1 KR 1020017004799 A KR1020017004799 A KR 1020017004799A KR 20017004799 A KR20017004799 A KR 20017004799A KR 100634992 B1 KR100634992 B1 KR 100634992B1
Authority
KR
South Korea
Prior art keywords
address
return
signal
command
stack
Prior art date
Application number
KR1020017004799A
Other languages
English (en)
Other versions
KR20010080196A (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 KR20010080196A publication Critical patent/KR20010080196A/ko
Application granted granted Critical
Publication of KR100634992B1 publication Critical patent/KR100634992B1/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/318371Methodologies therefor, e.g. algorithms, procedures
    • 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
    • G01R31/31921Storing and outputting test patterns using compression techniques, e.g. patterns sequencer

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Executing Machine-Instructions (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

본 발명의 집적회로 테스터용 패턴 발생기(23)는 주소 지정가능한 명령(INST)을 기억하고 명령 발생기에 입력으로서 공급된 어드레스(ADDR)에 의하여 주소 지정될 때 각각의 명령을 판독하는 명령 메모리(22)를 포함한다. 명령 프로세서(20)는 명령 메모리(22)로부터 판독된 각각의 명령을 수신하고 명령 메모리(22)가 다음 명령을 판독하도록 명령 메모리(22)에 입력된 어드레스를 수신된 명령에 따라 변경시킨다. 일반적인 복귀 어드레스 스택을 포함하는 명령 프로세서(20)는 일반적인 어드레스 증가, 호출 및 복귀 명령을 실행할 수 있다. 또한 명령 프로세서(20)는 새로운 복귀 어드레스를 생성하도록 자신의 현재 어드레스 출력을 증가시키고, 자신의 어드레스 출력을 스택에 미리 기억된 복귀 어드레스값으로 설정하고, 기억된 복귀 어드레스를 스택으로부터 팝핑하고, 새로운 복귀 어드레스를 스택 상으로 밀어 넣음으로써 임시적인 복귀 명령(TEMP)을 실행할 수 있다. 임시적인 복귀 명령으로 인하여 명령 프로그램 플로가 메인 프로그램과 호출된 서브루틴 사이를 앞뒤로 통과할 수 있다.
집적회로 테스터용 패턴 발생기, 명령 메모리, 명령 프로세서, 복귀 어드레스 스택

Description

집적회로 테스터를 제어하는 명령 처리 패턴 발생기 {INSTRUCTION PROCESSING PATTERN GENERATOR CONTROLLING AN INTEGRATED CIRCUIT TESTER}
본 발명은 일반적으로 집적회로 테스터(integrated circuit tester)의 연산을 제어하는 명령 처리 패턴 발생기에 관한 것으로서, 특히 서브루틴 매개변수 패스(subroutine parameter passing)를 실행하는 명령 프로세서(instruction processor)에 관한 것이다.
일반적인 "핀(per pin)" 집적회로(integrated circuit: IC) 테스터는 시험 중인 IC 장치의 각 핀에 해당하는 각 채널을 포함한다. 시험 사이클에 연속해서 시험을 행하고, 각 시험 사이클 도중에 각각의 채널은 핀에서 시험을 실행한다. 각 시험 사이클의 시작 시 각 채널에 공급된 벡터(데이터 워드)는 채널이 시험 사이클 도중에 무엇을 해야 하는지를 나타낸다. 예를 들면, 채널이 핀으로 시험 신호를 입력할 때, 입력 벡터는 시험 사이클 중 소정의 특정 시간에 시험 신호의 상태를 변경하도록 명령할 수 있다. 채널이 핀에 나타나는 시험 중 장치(device under test: DUT)의 출력 신호를 샘플링하여 신호의 상태가 예상했던 상태인가의 여부를 판정할 때, 벡터는 시험 사이클 중에 DUT의 출력 신호를 언제 샘플링할 것인지 그리고 신호의 예상 상태를 나타낸다.
일반적인 핀 IC 테스터는 시험 중에 채널이 필요로 하는 벡터 모두를 저장하기 위하여 각 채널마다 각각의 랜덤 액세스 메모리를 또한 포함한다. 중앙 명령 메모리 내에 기억된 프로그램을 실행하는 중앙 명령 프로세서는 각 시험 사이클 시작 전에 명령 메모리 및 모든 벡터 메모리에 공통으로 어드레스를 공급한다. 명령 메모리는 실행될 다음 명령을 판독함으로써 이 어드레스에 응답한다. 각 벡터 메모리는 어드레스에 기억된 벡터를 판독하고 이 벡터를 시험 사이클 시작 전에 자신의 대응하는 테스터 채널에 공급함으로써 어드레스에 응답한다. 따라서 명령 메모리로부터 판독된 명령 시퀀스(sequence)가 어드레스 시퀀스를 발생시키는 방법을 명령 프로세서에 알려 주고, 이 어드레스 시퀀스는 각 벡터 메모리가 벡터 시퀀스를 대응하는 테스터 채널로 판독할 수 있도록 한다.
각 벡터 메모리는 시험에 필요한 벡터 시퀀스를 일련의 메모리 어드레스에 기억할 수 있다. 이 경우, 명령 메모리로부터 판독된 각각의 명령은 다음 시험 사이클을 위한 벡터/명령 메모리 어드레스를 증가시키도록 명령 프로세서에 알려만 주면 된다. 그러나, 시험 중에 많은 시험 사이클이 필요할 때, 필요한 명령 및 벡터의 개수는 명령 및 벡터 메모리의 용량을 초과할 수 있다.
다행이도, 가장 긴 시험은 소정의 벡터 시퀀스가 수차례 반복되고 반복되는 각 벡터 시퀀스는 단지 한 번만 벡터 메모리 내에 기억되면 되는 반복적인 연산을 포함한다. 이 경우, 명령 메모리 내에 기억된 프로그램은 메인 프로그램 내에 구성될 수 있고, 호출가능한 한 세트의 서브루틴 및 벡터 메모리에 기억된 벡터도 마찬가지로 메인 벡터 시퀀스 및 한 세트의 서브루틴 시퀀스 내에 구성된다. 시험 중에, 명령 프로세서가 메인 프로그램 시퀀스를 지나갈 때, 메인 벡터 시퀀스의 벡터 어드레스를 순차적으로 판독한다. 벡터의 반복 가능한 서브루틴 시퀀스가 필요할 때마다, 명령 프로세서 내에 입력된 CALL 명령이 벡터 시퀀스 및 대응하는 명령 서브루틴의 제1 어드레스로 점프하도록 지시한다. 서브루틴은 서브루틴 시퀀스의 벡터를 순차적으로 주소 지정하도록 명령 프로세서에게 지시한다. 서브루틴의 마지막 명령은 CALL 명령의 어드레스에 이어지는 메인 프로그램 어드레스로 복귀하도록 명령 프로세서에게 지시하는 RETURN 명령이다. 벡터 시퀀스의 매번 반복은 쌍으로 이루어진 메인 프로그램 내의 CALL 및 RETURN 명령에 관계가 있기 때문에, 장시간의 반복적인 시험에 필요한 명령 및 벡터 메모리의 양은 감소된다.
하나 이상의 벡터가 시퀀스를 각각 통과할 때마다 상이하다는 것을 제외하고는 소정 유형의 시험은 완전히 반복적일 수 있는 "거의 반복적인" 긴 벡터 시퀀스를 포함한다. 예를 들면 시험하는 DUT가 랜덤 액세스 메모리일 때, 각각의 DUT 메모리 어드레스에 데이터를 기록하고, 이 DUT 어드레스로부터 데이터를 다시 판독한 다음, 이 DUT 어드레스에 기록된 데이터와 다시 판독한 데이터를 비교하여 이들의 일치 여부를 확인한다. 각 반복적인 처리 도중에 기록 및 판독 접근된 DUT 메모리 어드레스가 변하는 것을 제외하고 이러한 기록, 판독 및 비교 동작은 반복한다. 서브루틴을 사용하여 이 "거의 반복적인" 처리를 서브루틴을 사용하여 처리하기 위하여, 완전히 반복적인 처리 부분들을 각각 커버하는 여러 개의 서브루틴으로 분할하여 처리하는 것이 필요하다. 비반복적인 처리 부분, 및 DUT 기록과 판독 어드레스의 발생은 메인 프로그램에 의하여 취급된다. 따라서 여러 개의 서브루틴이 비 반복적인 섹션(section)을 가끔 구비하는 길고 거의 반복적인 처리를 실행할 필요가 있다.
서브루틴의 호출은 직접 또는 간접적으로 주소 지정하여 처리된다. 직접 주소 지정할 때 서브루틴의 완전한 시작 어드레스는 CALL 명령을 가진 오퍼랜드(operand)로서 포함된다. 직접 주소 지정으로 인하여 명령 메모리의 어드레스 공간을 필요한 만큼의 많은 서브루틴으로 자유롭게 세분화 할 수 있도록 한다. "거의 반복적인" 장시간의 처리를 많은 서브루틴으로 분할하는 것은 문제가 아니다. 그러나 직접 주소 지정의 단점 한 가지는 각 CALL 명령을 가진 커다란 오퍼랜드를 기억하기에 충분히 넓은 명령 메모리를 필요로 한다는 것이다. 예를 들면 16 메가바이트 명령 메모리는 24 비트 입력 어드레스가 필요하다. 따라서 16 메가바이트 명령 메모리를 가진 직접 주소 지정 시스템에서, 명령 메모리는 각각의 어드레스에 예를 들면 4 비트의 명령 연산코드(instruction opcode)를 기억하는 것 외에, 호출 어드레스로 사용하기 위한 24 비트의 오퍼랜드를 또한 기억해야 한다.
간접 주소 지정에서, 각 CALL 명령과 함께 기억된 연산 코드는 호출되는 서브루틴의 어드레스를 단지 간접적으로 나타낸다. 명령 프로세서는 디코더(decoder) 또는 룩업 테이블(lookup table)을 이용하여 오퍼랜드를 서브루틴의 실제 어드레스로 변환시킨다. 예를 들면, 4-비트 오퍼랜드는 16개의 서브루틴 시작 어드레스까지 참조할 수 있다. 간접 주소 지정의 장점은 명령 메모리 내에 기억되어야 하는 오퍼랜드의 치수를 크게 감소시켜 명령 메모리의 폭을 크게 감소시킬 수 있다는 것이다.
간접 주서 지정의 단점은 기억되고 호출될 수 있는 서브루틴의 개수를 제한한다는 점이다. 간접 주소 지정을 이용할 때 단지 제한된 개수의 서브루틴만 호출할 수 있는 경우, "거의 반복적인" 긴 명령 시퀀스를 여러 개의 서브루틴으로 분할할 수 없을 수도 있다는 것이다. 따라서, "거의 반복적인" 긴 시퀀스의 명령을 비반복적인 서브루틴 섹션의 서브루틴의 각 패스로 변경할 수 있는 하나의 서브루틴으로 실행될 수 있는 명령 프로세서가 필요하다.
본 발명의 목적은 "거의 반복적인" 긴 시퀀스의 명령을 비반복적인 서브루틴 섹션의 서브루틴의 각 패스로 변경할 수 있는 하나의 서브루틴으로 실행될 수 있는 명령 프로세서를 제공하는 것이다.
본 발명에 따른 IC 테스터를 위한 패턴 발생기는 주소 지정가능한 명령을 기억하고, 입력으로서 공급된 어드레스에 의하여 주소 지정될 때 각 명령을 판독하는 명령 메모리를 포함한다. 명령 프로세서가 명령 메모리로부터 판독된 각 명령을 수신하고 어드레스 입력을 이 수신된 명령에 따라서 명령 메모리로 변경시킴으로써 이 명령 메모리가 다음 명령을 판독한다.
또한 패턴 발생기는 시험 중에 IC 테스터의 동작을 제어하는 주소 지정된 벡터의 시퀀스를 각각 기억하고 판독하는 명령 처리의 어드레스 출력에 의하여 또한 주소 지정된 벡터 메모리 세트를 포함한다.
일반적인 복귀 어드레스 스택(stack)을 포함하는 명령 프로세서는 일반적인 어드레스 증가, 호출 및 복귀 명령을 실행할 수 있다. 본 발명의 일 특징에 따라서, 명령 프로세서는 새로운 복귀 어드레스를 생성하기 위하여 현재의 어드레스 출력을 증가시키고, 이 어드레스 출력을 스택에 미리 기억된 복귀 어드레스값으로 설정하며, 이 기억된 복귀 어드레스를 스택으로부터 팝핑(poping)하고, 이 새로운 복 귀 어드레스를 스택 상으로 밀어 넣음으로써 "임시 복귀(temporary return)"를 또한 실행할 수 있다.
임시 복귀 명령을 이용하여, 예를 들면, 서브루틴이 실행되고 있는 동안 호출된 서브루틴으로부터 메인 명령 프로그램으로 명령 프로그램의 플로가 일시적으로 다시 통과할 수 있도록 한다. 이런 성능은 하나의 서브루틴이 "거의 반복적인" 긴 명령 시퀀스 중 반복적인 모든 부분을 실행할 수 있도록 하고, 명령 시퀀스의 비반복적인 섹션도 메인 프로그램에 의하여 처리되기 때문에 유용하다.
상기 명세서의 결어부에서는 본 발명의 주제를 특히 강조하여 개별적인 특허청구범위로 한정한다. 그러나 본 발명의 구성 및 연산 방법은, 본 발명의 다른 장점 및 목적과 함께, 동일 구성 요소에 동일 도면 부호로 표기된 첨부 도면을 참조하여 개시된 다음의 상세한 설명으로부터 당업자는 명백하게 이해할 수 있을 것이다.
도 1은 본 발명에 따른 명령 프로세서-기반 패턴 발생기를 이용하는 집적회로(IC) 테스터의 블록도.
도 2는 도 1에 예시된 명령 프로세서에 대한 상세한 블록도.
도 3은 도 1에 예시된 명령 메모리의 어드레스 공간 일부분에 나타날 때의 메인 프로그램 및 서브루틴 명령에 대한 예시적인 배열을 도시한 도면.
도 4는 도 1에 예시된 명령 프로세서의 다른 실시예로서, 도 1에 예시된 명령 메모리의 어드레스 공간 일부분에 나타날 수 있는 메인 프로그램 명령에 대한 예시적인 배열을 도시한 도면.
도 5는 본 발명에 따른 집적회로(IC)의 다른 실시예를 형성하는 블록도.
도 1은 시험 중인 IC 장치(device under test: DUT)(12)를 시험하는 본 발명에 따른 집적회로(IC) 테스터(10)의 블록도이다. 테스터(10)는 DUT(12)의 각 핀에 대응하는 N개의 테스터 채널(14(1) 내지 14(N)) 세트를 포함한다. 시험은 연속적인 시험 사이클로 구성되고, 각 시험 사이클 중에 채널(14) 각각은 대응하는 DUT 핀에 시험을 실행한다. 중앙 클록 신호 발생기(16)는 각 시험 사이클의 시작을 표시하는 주기적인 클록 신호 PCLK를 발생시킨다. 각각의 시험 사이클 시작 전에 채널(14) 각각에 공급된 벡터(데이터 워드)는 시험 사이클 도중에 채널이 무엇을 해야 할 것이 무엇인지를 지시한다. 테스터 채널(14) 각각은 입력 벡터를 판독하여 이 지시된 동작을 이어지는 시험 사이클 중에 실행하여 연속적인 각 PCLK 펄스에 응답한다.
채널(14)이 시험 신호 입력을 핀에 제공하도록 벡터가 지시할 때, 벡터는 시험 사이클 중에 시험 신호의 상태를 언제, 어떻게 변경시키는가를 채널에 지시한다. 채널(14)이 핀에 나타나는 DUT 출력 신호를 샘플링하여 이 신호의 상태가 예상한 상태인 가의 여부를 판정하려고 할 때, 채널(14)의 입력 벡터는 채널(14)이 시험 사이클 중에 언제 DUT 출력 신호를 샘플링할 것인가를 지시하며 또한 그 예상 상태도 지시한다.
또한 테스터(10)는, 개별적인 채널(14(1) 내지 14(N))에 각각 대응하고 이 대응하는 채널이 시험 중에 필요로 하는 벡터 모두를 각각 기억하는 N개의 주소 지정가능한 벡터 메모리(18(1) 내지 18(N)) 세트를 포함한다. 중앙 명령 프로세서(20)는 중앙 명령 메모리(22)로부터 명령(INST)을 판독하고 이 명령을 실행함으로써 각 PCLK 신호 펄스에 응답한다. 명령 프로세서(20)는 각 시험 사이클 시작 전에 모든 벡터 메모리(18(1) 내지 18(N))에 공통으로 어드레스를 공급하도록 지시한다. 벡터 메모리(18) 각각은 어드레스에 기억된 벡터를 판독하고 이 벡터를 시험 사이클 시작 시 대응하는 테스터 채널(14)에 공급함으로써 어드레스에 응답한다. 명령 프로세서(20)에 의하여 생성된 어드레스는 또한 실행될 다음 명령을 판독할 수 있게 하는 명령 메모리(22)의 어드레스를 판독한다. 명령 메모리(22)에 기억된 명령은, 명령 프로세서(20)에 어드레스 시퀀스를 발생시키도록 지시하는 연산 프로그램이며, 각 어드레스는 개별적인 시험 사이클에 대응하고, 각 벡터 메모리(18)가 대응하는 테스터 채널(14)에 벡터를 공급할 수 있도록 하여 시험 사이클 중에 어드레스의 동작을 제어한다. 따라서, 명령 프로세서(20), 명령 메모리(22), 및 벡터 메모리(18(1) 내지 18(N))가 함께 커다란 패턴 발생기(23)를 형성하여 시험 중에 벡터 시퀀스를 각각의 테스터 채널에 제공한다.
각각의 벡터 메모리(18)는 순차적인 메모리 어드레스의 시험에 필요한 벡터 시퀀스를 기억할 수 있다. 이 경우, 명령 메모리(22)로부터 판독된 각각의 명령(INST)은 다음 시험 사이클을 위하여 출력 메모리 어드레스를 증가시키도록 명령 프로세서(20)에 간단히 지시한다. 그러나, 시험에 다수의 시험 사이클이 필요한 경우, 필요로 하는 명령 및 벡터의 개수는 명령 메모리 및 벡터 메모리(22, 18) 의 용량을 초과할 수 있다. 다행스럽게도, 가장 긴 시험은 소정의 명령 시퀀스, 및 이들 명령 시퀀스가 호출하는 벡터 시퀀스가 수차례 반복되는 반복 연산을 포함한다. 이 경우, 각 명령 시퀀스 및 이들의 명령 시퀀스가 호출하는 벡터 시퀀스는 명령 메모리(22) 및 벡터 메모리(18)에 단지 한 번만 기억되면 된다. 명령 메모리(22)에 기억된 프로그램은 "메인(main)" 프로그램 및 이 메인 프로그램에 의하여 호출될 수 있는 16개의 명령 서브루틴을 포함한다. 마찬가지로, 각 벡터 메모리(18)에 기억된 벡터는 메인 프로그램에 의하여 호출된 메인 벡터 시퀀스 및 각기 다른 서브루틴에 각각 대응하는 16개의 서브루틴 벡터 시퀀스를 포함한다.
도 2는 도 1에 예시된 명령 프로세서(20)에 대한 상세한 블록도이다. 명령 메모리(22)로부터 판독된 각각의 명령(INST)은 연산코드 필드(opcode field) 및 오퍼랜드(operand)를 포함한다. 연산코드는 일반적인 어드레스 발생기(26), 명령 프로세서의 출력 어드레스(ADDR)를 발생하는 산술 논리 장치(arithmetic logic unit)를 제어하는 시퀀서(sequencer)(24)에 입력을 제공한다. 시퀀서(24)로부터의 제어 신호 입력에 응답하여, 어드레스 발생기(26)는 현재의 출력 어드레스(ADDR)를 증가시키거나, 이 출력 어드레스를 입력 호출 어드레스(CALL_ADDR)와 동일하게 설정하거나, 또는 이 출력 어드레스를 입력 복귀 어드레스(RETURN_ADDR)와 동일하게 설정할 수 있다.
시퀀서(24)가 INCREMENT 신호를 신호 어드레스 발생기(26)에 인가할 때, 어드레스 발생기(26)가 현재 출력 어드레스를 증가시킨다.
연산코드가 명령 서브루틴 중 하나를 호출하는 CALL 연산코드일 때, 명령에 포함된 4-비트 오퍼랜드는 이 호출한 서브루틴을 참조하는 "호출 ID"이다. 이 호출 ID는, 도 1의 명령 메모리(22)에 기억될 수 있는 16개의 서브루틴 중 각기 다른 하나의 24-비트 시작 어드레스를 개별적으로 포함하는, 16개의 주소 지정가능한 기억 위치를 가진 RAM(28)을 주소 지정한다. 호출 ID에 의하여 주소 지정될 때, RAM(28)은 어드레스 발생기(26)에 호출되는 서브루틴의 어드레스(CALL_ADDR)를 판독한다. 시퀀서(24)는 LOAD_CALL 신호 입력을 어드레스 발생기(26)에 인가함으로써 어드레스 발생기에 호출 어드레스(CALL_ADDR)를 로드하도록 지시할 수 있다. 다음에, 어드레스 발생기(26)는 현재 출력 어드레스(ADDR)를 호출 어드레스(CALL_ADDR)로 설정한다. 따라서 호출 ID는 매우 커다란 "직접" 서브루틴 어드레스에 관한 작은 4-비트의 "간접" 서브루틴 어드레스이다.
일반적인 "푸시/팝(push/pop)" 어드레스 스택(32)은 복귀 어드레스(RETURN_ADDR)를 어드레스 발생기(26)에 공급한다. 명령 프로세서(20)는 어드레스 발생기(26)의 출력 어드레스(ADDR)를 증가시켜 시퀀서(24)의 SAVE 신호 출력에 의하여 클록된 레지스터(register)(30)에 입력(ADDR+1)을 공급하기 위하여 증분기(incrementer)(29)를 또한 포함한다. 레지스터(30)에 저장된 어드레스는 스택(32)의 입력으로 공급된다. 시퀀서(24)가 PUSH 신호 입력 펄스를 스택(32)에 인가할 때, 이 스택(32)은 레지스터(30)에 저장된 어드레스를 자신의 스택 상단으로 밀어 넣는다. 시퀀서(24)가 POP 신호 입력 펄스를 스택(32)에 인가할 때, 스택(32)은 어드레스를 자신의 스택 상단으로부터 팝핑한다. 스택(32)은 자신의 스택 상단에 현재 존재하는 어드레스를 복귀 어드레스(RETURN_ADDR)로서 어드레스 발생기(26)에 공급한다.
다음에, 시퀀서(24)에 의하여 실행될 수 있는 명령 연산코드 세트, 및 시퀀서(24)가 각각의 연산코드를 실행하는 방식에 대하여 설명한다.
INC
명령 프로세서(20)에 입력된 현재 명령이 INC 연산코드를 포함할 때, 시퀀서(24)는 다음 펄스의 PCLK 신호에 응답하여 INCREMENT 신호 입력을 어드레스 발생기(26)에 인가한다. INCREMENT 신호 펄스는 자신의 현재 메모리 어드레스를 증가시키도록 어드레스 발생기(26)에 지시함으로써 현재 입력 어드레스를 도 1의 명령 메모리(22) 및 벡터 메모리(18)에 증가시킨다.
CALL
CALL 연산코드는 수반하는 호출 ID에 의하여 참조된 서브루틴을 시퀀서(24)가 다음 활동 시퀀스를 실행하도록 지시함으로써 호출한다:
1. SAVE 신호를 펄스로 보내어 레지스터(30)가 증가된 현재 어드레스(ADDR+1)를 기억하도록 지시하고,
2. PUSH 신호를 펄스로 보내어 스택(32)이 레지스터(30)에 기억된 어드레스를 자신의 스택 상단으로 밀어 내도록 지시하고,
3. LOAD_CALL 신호를 펄스로 보내어 어드레스 발생기(26)가 자신의 현재 어드레스(ADDR)를 RAM(28)의 CALL_ADDR 출력에 설정하도록 지시한다.
따라서 CALL 연산코드가 명령 프로세서(20)에 스택(32)의 현재 어드레스에 후속하는 어드레스를 추후에 복귀 어드레스로 이용하도록 기억하고, CALL 연산코드 를 가진 명령에 포함된 호출 ID에 의하여 참조된 서브루틴의 제1 어드레스로 점프하도록 지시한다.
RETURN
서브루틴의 종료 시 나타나는 RETURN 연산코드가 다음 시퀀스의 활동을 실행함으로써 서브루틴 호출로부터 복귀하도록 시퀀서(24)에 지시한다:
1. LOAD_RETURN 신호를 펄스로 보내어 어드레스 발생기(26)가 현재 어드레스(ADDR)를 스택(32)의 상단에 현재 존재하는 어드레스 RETURN_ADDR에 설정하도록 지시하고,
2. POP 신호를 펄스로 보내어 스택(32)이 복귀 어드레스(RETURN_ADDR)를 자신의 스택으로부터 팝핑하도록 지시한다.
따라서 RETURN 연산코드가 호출 명령 어드레스보다 큰 어드레스인 복귀 어드레스로 점프한 다음 복귀 어드레스를 스택(32)으로부터 밀어 내도록 명령 프로세서(20)에 지시한다.
TEMP
본 발명에 따른 임시 복귀(TEMP) 연산코드는 메인 루틴 또는 서브루틴의 임의의 포인트에 포함될 수 있고, 시퀀서(24)가 다음 시퀀스의 활동을 실행하도록 지시한다:
1. SAVE 신호를 펄스로 보내어 레지스터(30)가 증가된 현재 어드레스(ADDR+1)를 기억하도록 하고,
2. LOAD_RETURN 신호를 펄스로 보내어 어드레스 발생기(26)가 현재 어드레 스(ADDR)를 복귀 어드레스(RETURN_ADDR)에 설정하도록 지시하고,
3. POP 신호를 펄스로 보내어 스택(32)이 복귀 어드레스(RETURN_ADDR)를 스택으로부터 팝핑하도록 지시하고,
4. PUSH 신호를 펄스로 보내어 레지스터(30)에 기억된 어드레스를 다음 복귀 어드레서로서 스택 상으로 밀어 낸다.
따라서 임시 복귀 연산코드(TEMP)는 명령 프로세서(20)가 미리 기억된 복귀 어드레스로 복귀시키는 RETURN 연산코드처럼 작용한다. 그러나, 일반적인 RETURN 연산코드와는 달리, 임시 복귀 연산코드(TEMP)는 명령 프로세서가 TEMP 연산코드에 후속하는 어드레스를 다음 복귀 어드레스로서 기억하도록 또한 지시한다. 임시 복귀 연산코드는 명령 프로세서(20)에 일부 복귀 어드레스로 점프하도록 지시하기를 원할 때 사용되지만, 약간 시간이 지난 후 이어지는 명령이 명령 프로세서에 TEMP 연산코드에 후속하는 어드레스를 복귀하도록 요청하기 때문에 단지 "임시적"이다. 임시 복귀 연산코드(TEMP)의 용도는 예를 통하여 가장 잘 이해할 수 있다.
도 3은 메인 프로그램의 제1 부분을 포함하는 도 1의 명령 메모리(22)의 어드레스 공간(어드레스 0-13, 십진법)의 섹션(34) 및 메인 프로그램에 의하여 호출될 수 있는 서브루틴을 포함하는 명령 메모리(22)의 어드레스 공간(예를 들면 어드레스 1000-1011, 십진법)의 다른 섹션(36)을 예시한다.
도 1 내지 도 3을 참조하면, 메인 프로그램은 명령 메모리 어드레스 0에 기억된 INC 명령으로 시작한다. 각각의 벡터 메모리(18)는 어드레스 0에 기억된 벡터를 판독하고, 제1 시험 사이클의 시작을 나타내는 PCLK 신호의 다음 펄스 시 각 각의 채널(14)이 자신의 입력 벡터를 획득한 다음 제1 시험 사이클 중에 벡터가 지시하는 시험을 실행한다.
PCLK 신호의 제1 펄스는 명령 프로세서(20)의 시퀀서(24)에게 자신의 입력 INC 명령을 실행하도록 또한 지시한다. 따라서, 시퀀서(24)가 어드레스 발생기에 신호를 보내 현재 출력 어드레스(ADDR)를 1로 증가시킨다. 다음에 각각의 벡터 메모리(18)는 자신의 어드레스 1에 기억된 벡터를 판독하고 명령 메모리(22)는 자신의 어드레스 1에 기억된 INC 명령을 판독한다. 제2 시험 사이클 시작을 나타내는 PCLK 신호의 다음 펄스 시, 각각의 채널(14)은 벡터 메모리 어드레스 1로부터 판독된 벡터를 획득하고 시퀀서(24)는 명령 메모리 어드레스 1로부터 판독된 INC 명령을 실행한다. 처음 3차례의 시험 사이클에 유사한 프로세스를 반복한다. 따라서 각각의 벡터 메모리(18)가 자신의 어드레스 1, 2, 및 3에 기억된 벡터를 판독한다. 그러나 어드레스 3에 도달할 때, 명령 메모리(22)는 INC 명령 대신에 CALL 명령을 판독한다. RAM(28)이 이 명령에 포함된 호출 ID를 서브루틴(36)의 제1 어드레스(1000)를 가리키는 호출 어드레서(CALL_ADDR)로 변환시킨다.
PCLK 신호의 다음 펄스 시, 시퀀서(24)가 어드레스 발생기(26)에 신호를 보내 RAM(28)의 호출 어드레스 출력을 로드시킴으로써 현재 어드레스(ADDR)가 1000으로 점프한다. 이로써 각각의 벡터 메모리(18)는 자신의 어드레스(1000)에 기억된 벡터를 판독하고 명령 메모리(22)는 자신의 어드레스(1000)에 기억된 명령을 판독한다. CALL 연산코드는 시퀀서(24)에 또한 지시하여 가산기(adder)(29)의 ADDR+1 출력을 레지스터(30)에 로드하고 스택(32)에 신호를 보내 이 어드레스(어드레스 4) 를 자신의 스택 상으로 밀도록 한다.
서브루틴의 처음 3가지 명령은 INC 명령이기 때문에, 프로그램은 다음 3차례의 사이클마다 다음 3개의 어드레스(1001-1003)을 지나간다. 따라서 각각의 벡터 메모리(18)가 자신의 어드레스(1000-1003)의 벡터를 연속적으로 판독한다. 현행 명령 어드레스가(1003)에 도달할 때, 명령 메모리(22)가 TEMP 명령을 판독한다. TEMP 명령은 시퀀서(24)에게 어드레스 발생기(26)에 신호를 보내 현재 어드레스(ADDR)를 스택(32)의 상단에 현재 존재하는 복귀 어드레스(어드레스 4)로 설정하고 이 복귀 어드레스를 스택으로부터 팝핑하도록 지시한다. TEMP 연산코드도 또한 시퀀서(24)에게 서브루틴의 다음 어드레스를 스택 상으로 밀어 프로그램이 추후 이 어드레스로 복귀할 수 있도록 지시한다.
이제 현재 어드레스는 4에 설정되고, 각각의 벡터 메모리(18)는 자신의 어드레스 4에 저장된 벡터를 판독한다. INC 명령이 어드레스 4 및 5에 기억되기 때문에, 명령 프로세서(20)가 어드레스 5 및 6을 순차적으로 지나간다. 어드레스 6에 도달할 시, 메인 프로그램이 다른 TEMP 명령을 판독한다. 이것이 시퀀서(24)에게 지시하여 어드레스 발생기(26)에 신호를 보내 현행 어드레스를 스택(32) 상단의 복귀 어드레스(어드레스 1004)로 설정하고, 어드레스(1004)를 스택으로부터 팝핑한 다음 어드레스 7을 스택 상으로 밀도록 한다. 다음에 프로그램 플로는 서브루틴 어드레스(1004-1007)에 저장된 INC 명령 세트를 지나간다. 프로그램 플로가 어드레스(1008)에 도달할 때, 시퀀서(24)가 어드레스 발생기(26)에게 신호를 보내 현행 어드레스를 스택 상단의 복귀 어드레스(7)로 설정하고, 어드레스(7)를 스택으로부 터 팝핑한 다음 어드레스(7)를 스택 상으로 밀도록 한다.
TEMP 명령은 프로그램이 서브루틴의 종료 시(어드레스 1011) RETURN 명령과 마주칠 때까지 메인 프로그램과 서브루틴 사이에서 시프트 프로그램 플로를 전,후방향으로 계속시킨다. RETURN 명령이 시퀀서(24)에 지시하여 스택 상단의 복귀 어드레스(어드레스 9)로 복귀시키고 어드레스 9를 스택(32)으로부터 팝핑시킨다. 그러나, TEMP 명령과는 달리, RETURN 명령은 어드레스(1012)를 스택(32) 상으로 밀도록 시퀀서(24)에 지시하지 않는다.
소정 유형의 시험에는 단지 몇 개의 시퀀스 벡터만이 각각의 시퀀스 패스에서 변한다는 점에서 "거의 반복적인" 긴 벡터 시퀀스를 반복적으로 발생시키는 것이 필요하다. TEMP 명령으로 인하여 프로그램이 하나의 서브루틴을 사용하여 "거의 반복적인" 벡터 시퀀스의 반복 부분을 호출하는 한편, 벡터 시퀀스의 비반복적인 부분을 호출하는 것이 필요할 때 임시적으로 메인 프로그램으로 복귀시킬 수 있다.
예를 들면, 시험할 DUT가 랜덤 액세스 메모리일 때, 데이터를 DUT 메모리 어드레스에 기록하고, 이 DUT 어드레스로부터 데이터를 판독한 다음 DUT에 기록된 데이터와 판독된 데이터를 이들 데이터가 일치하는 가의 여부를 비교한다. 기록, 판독 및 비교 프로세스는 DUT 메모리 어드레스가 이 프로세스를 반복할 때마다 접근된 변경을 기록 및 판독하는 것을 제외하고는 매우 반복적이다. 따라서 DUT 어드레스 입력을 구동하는 채널로 보내진 벡터가 DUT 어드레스가 설정된 프로세스 중 반복할 때마다 도중에 변경되어야 한다.
이러한 "상당히 반복적인" 프로세스를 취급하기 위하여, 이 프로세스를 각각 완전히 반복적인 프로세스 부분을 커버하는 여러 개의 서브루틴으로 분할할 수 있다. 프로세스의 비반복적인 부분, DUT 기록 및 판독 어드레스의 발생은 반복 부분의 실행이 필요할 때 일반적인 호출을 서브루틴에 사용할 수 있는 메인 프로그램에 의하여 취급될 수 있다. 그러나, 여러 개의 상이한 서브루틴이 가장 반복적인 프로세스를 실행하는데 필요할 수 있고, 간접 서브루틴 주소 지정이 사용될 때의 시험 중에 단지 제한된 서브루틴에만 호출할 수 있기 때문에, 가장 반복적인 프로세스를 여러 개의 서브루틴으로 분할하면 부족한 서브루틴 호출 자원을 소모해 버린다.
TEMP 명령으로 인하여 가장 반복적인 프로세스가 여러 개가 아닌 단 하나의 서브루틴 호출을 이용하여 실행될 수 있다. 도 3에 예시된 바와 같이, TEMP 명령이 서브루틴 내로 삽입되어 비반복적인 프로세스 부분의 실행이 필요할 때마다 동작을 메인 프로그램으로 복귀시킬 수 있다. 어떤 점에서는, TEMP 명령으로 인하여 메인 프로그램이 서브루틴 중에 각 지점의 서브루틴으로 매개 변수를 "패스"시킬 수 있다. TEMP 명령을 사용하지 않고, 도 3에 예시된 하나의 서브루틴 호출에 의하여 실행된 프로세스 부분이 3개의 각기 다른 서브루틴 호출에 의하여 취급될 수 있으므로, 총 16개의 가능한 간접 호출 어드레스(ID 호출) 중 3개를 소모하게 된다.
도 2의 명령 프로세서(20)의 다른 실시예에 있어서, CALL 연산코드 및 CALL_ID 오퍼랜드는 하나가 아닌 두 개의 연속 명령 메모리(22) 어드레스에 기억된다. CALL_ID 연산코드는 CALL 연산코드에 후속하는 시험 사이클 중에 시퀀서(24)에 도달한다. 상기 실시예의 명령 프로세서(20)는 도 2에 예시된 프로세서와 유사한 명령 프로세서 토폴로지를 사용하지만, 시퀀서(24)는 약간 상이한 방식으로 CALL 명령에 응답한다. 다른 실시예에 있어서, 시퀀서(24)는 INCREMENT 신호를 흐르게 함으로서 INC 명령에 응답하는 방식과 동일하게 CALL 명령에 먼저 응답함으로써 어드레스 발생기(26)가 현재의 어드레스를 간단하게 증가하도록 명령한다. 명령 프로세서가 서브루틴 CALL_ID를 아직 수신하지 않았기 때문에 서브루틴 어드레스로 즉시 점프는 없다. 따라서 CALL 연산코드에 후속하는 시험 사이클에서, 각각의 벡터 메모리(18)가 다음 어드레스의 벡터를 판독한다.
그러나 증가 어드레스가 명령 메모리(22)에 CALL_ID 오퍼랜드를 판독하도록 명령하고, RAM(28)이 간접 CALL_ID 어드레스를 직접 호출 어드레스 CALL_ADDR로 변환시킨다. PCLK 신호의 다음 펄스 시, 시퀀서(24)가 SAVE 신호를 펄스하여 복귀 어드레스에 기억하고, LOAD_CALL 신호를 명령 어드레스 발생기(26)에 펄스하여 현재 어드레스를 호출 어드레스 CALL_ADDR에 설정하고 PUSH 신호를 펄스하여 복귀 어드레스를 스택(32) 상으로 밀어 낸다.
도 4는 도 3의 메인 프로그램과 동일한 결과를 제공하는 명령 프로세서(20)의 다른 실시예에 대한 메인 프로그램의 도면이다. 도 3의 메인 프로그램의 어드레스(2, 3)의 INC 및 CALL/CALL_ID 명령이 도 4의 메인 프로그램의 어드레스(2, 3)의 CALL 및 CALL_ID 코드로 대체된 점에 유의해야 한다. 그러나 프로그램 양자 모두에 의하여 제공된 어드레스 출력 ADDR의 시퀀스는 동일하다.
따라서, 다른 실시예에 있어서, 4비트 OPCODE를 사용하는 경우 4비트 CALL_ ID 오퍼랜드를 표시하는데 동일한 4비트를 사용할 수 있다. 동일 세트의 4비트가 연산코드 및 오퍼랜드를 교호로 표시하는데 사용되기 때문에, 명령 메모리(22)의 폭을 줄일 수 있다. 다른 실시예에 부과된 유일한 추가의 프로그래밍 제한은 CALL 연산코드가 수신되는 사이클에서 INC 연산코드처럼 동작하기 때문에, 호출로 인한 어드레스 점프는 다른 어드레스 점프가 아닌 어드레스 증가가 항상 선행되어야 한다.
도 5는 도 1의 테스터(10)와 유사하지만 별개의 명령 프로세서(44(1) 내지 44(N))가 제공되어 각각의 벡터 메모리(46(1) 내지 46(N))를 주소 지정하는 테스터의 다른 실시예(40)의 도면이다. 도 5에 예시된 테스터(40)의 각 벡터 메모리(46)는 각각의 어드레스에 벡터 및 명령 양자 모두를 기억한다. 각 메모리(46(1) 내지 46(N))의 명령 출력은 대응하는 명령 프로세서(44(1) 내지 44(N))에 피드백되는 반면 벡터는 DUT(42)의 핀을 구동하는 테스터 채널(48(1) 내지 48(N)) 중 대응하는 하나에 공급된다. 각각의 명령 프로세서(44)는 구조 및 동작 양자 모두에 있어서 도 2에 예시된 명령 프로세서(20)와 유사하다. 각각의 명령 프로세서(44) 및 벡터 메모리(46) 쌍은 대응하는 테스터 채널(48(1) 내지 48(N)) 에 벡터 시퀀스를 독립적으로 공급하도록 별개의 패턴 발생기(50(1) 내지 50(N))로서 동작한다. 도 5에 예시된 테스터(40)는 각각의 벡터 메모리(46)가 시험 중에 독립적으로 어드레스될 수 있기 때문에 도 1에 예시된 테스터(10)보다 더욱 융통성이 있다.
전술한 설명에는 본 발명의 바람직한 실시예에 관하여 개시되어 있지만, 당업자는 본 발명의 범위를 벗어나지 않고 보다 광범위한 양태의 바람직한 실시예로 여러 가지로 변형시킬 수 있다. 따라서 특허청구범위는 상기 변형 모두를 본 발명의 정확한 취지 및 범위 내에 포함시키려는 것이다.
(발명의 효과)
본 발명에 따르면, 명령 프로세서는 새로운 복귀 어드레스를 생성하기 위하여 현재의 어드레스 출력을 증가시키고, 이 어드레스 출력을 스택에 미리 기억된 복귀 어드레스값으로 설정하며, 이 기억된 복귀 어드레스를 스택으로부터 팝핑(poping)하고, 이 새로운 복귀 어드레스를 스택 상으로 밀어 넣음으로써 "임시 복귀(temporary return)"를 또한 실행할 수 있다. 임시 복귀 명령을 이용하여, 예를 들면, 서브루틴이 실행되고 있는 동안 호출된 서브루틴으로부터 메인 명령 프로그램으로 명령 프로그램의 플로가 일시적으로 다시 통과할 수 있도록 한다. 이런 성능은 하나의 서브루틴이 "거의 반복적인" 긴 명령 시퀀스 중 반복적인 모든 부분을 실행할 수 있도록 하고, 명령 시퀀스의 비반복적인 섹션도 메인 프로그램에 의하여 처리되기 때문에 유용하다.

Claims (20)

  1. 출력 어드레스(ADDR)값을 변경함으로써 입력 명령 시퀀스의 각 입력 명령에 응답하는 명령 프로세서(20)에 있어서,
    입력 PUSH 신호를 수신한 경우에 복귀 어드레스를 기억하고, 입력 POP 신호를 수신한 경우 저장된 복귀 어드레스를 폐기(discarding)하는 스택 수단(32), 및
    상기 출력 어드레스를 현재값에서 상기 스택 수단에 의하여 미리 저장된 복귀 어드레스값으로 변경시키고, 새로운 복귀 어드레스를 발생시키고, 미리 저장된 복귀 어드레스를 폐기하도록 상기 POP 신호에 의해 상기 스택 수단에 신호를 보내고, 상기 새로운 복귀 어드레스를 저장하도록 상기 PUSH 신호에 의해 상기 스택 수단에 신호를 보냄으로써 상기 명령들 중 적어도 하나(TEMP)에 응답하는 처리 수단(24, 26, 29, 30)
    을 포함하는 명령 프로세서.
  2. 제1항에 있어서, 상기 처리 수단이 상기 출력 어드레스의 현재값을 증가시킴으로써 상기 새로운 복귀 어드레스를 발생시키는, 명령 프로세서.
  3. 제2항에 있어서,
    상기 처리 수단은,
    상기 출력 어드레스를 발생시키고, 상기 출력 어드레스를 입력 INCREMENT 신호에 응답하여 증가시키고, 상기 출력 어드레스를 입력 LOAD_RETURN 신호에 응답하여 상기 스택 수단에 의하여 저장된 복귀 어드레스로 설정하는 어드레스 발생기(26),
    증가된 어드레스(ADDR+1)를 생성하도록 상기 어드레스 발생기에 의하여 발생된 상기 출력 어드레스를 증가시키는 증분기(29),
    입력 SAVE 신호에 응답하여 상기 증분기에 의하여 생성된 증가된 어드레스를 기억하는 기억 수단(30), 및
    상기 명령 메모리로부터 판독된 각 명령을 수신하고, 상기 수신된 명령에 따라 상기 PUSH, POP, INCREMENT 및 LOAD_RETURN 신호를 제어하는 시퀀스 수단(24)
    을 포함하는 명령 프로세서.
  4. 제3항에 있어서,
    상기 시퀀스 수단이 상기 적어도 하나의 명령에 응답하여,
    상기 기억 수단이 상기 증가된 어드레스를 기억하도록 상기 SAVE 신호를 상기 기억 수단으로 전송하고,
    상기 어드레스 발생기가 상기 출력 어드레스를 상기 스택에 의하여 저장된 복귀 어드레스로 설정하도록 상기 LOAD_RETURN 신호를 상기 어드레스 발생기로 전송하고,
    상기 스택이 상기 저장된 복귀 어드레스를 폐기하도록 상기 POP 신호를 상기 스택으로 전송하고 ,
    상기 스택이 상기 기억 수단에 의하여 기억된 증가된 어드레스를 저장하고, 이 증가된 어드레스를 새로운 복귀 어드레스 입력으로서 상기 어드레스 발생기로 공급하도록 PUSH 신호를 상기 스택으로 전송하는
    명령 프로세서.
  5. 제4항에 있어서,
    상기 명령 중 적어도 하나는 CALL 명령이며,
    상기 시퀀스 수단은 상기 CALL 명령에 응답하여,
    상기 기억 수단이 상기 증가된 어드레스를 기억하도록 상기 SAVE 신호를 상기 기억 수단으로 전송하고,
    상기 어드레스 발생기가 상기 출력 어드레스를 상기 어드레스 발생기의 입력으로서 공급된 호출 어드레스로 설정되도록 LOAD_CALL 신호를 상기 어드레스 발생기로 전송하고,
    상기 스택이 상기 레지스터 수단에 기억된 상기 증가된 어드레스를 저장하고, 상기 증가된 어드레스를 새로운 복귀 어드레스 입력으로서 상기 어드레스 발생기로 공급되도록 PUSH 신호를 상기 스택으로 전송하는
    명령 프로세서.
  6. 제5항에 있어서,
    상기 명령 중 적어도 하나는 RETURN 명령이며,
    상기 시퀀스 수단은 상기 RETURN 명령에 응답하여,
    상기 어드레스 발생기가 상기 명령 메모리에 입력된 어드레스를 상기 어드레스 발생기에 공급된 상기 복귀 어드레스로 설정되도록 상기 LAOD_RETURN 신호를 상기 어드레스 발생기에 전송한 후, 상기 스택이 상기 복귀 어드레스를 폐기하도록 상기 POP 신호를 상기 스택으로 전송하는
    명령 프로세서.
  7. 주소 지정가능한 복수의 명령(INST)을 기억하고 입력으로서 공급된 어드레스(ADDR)에 의하여 주소 지정될 때, 새로운 어드레스 입력을 자신에게 공급하는 것에 관련된 각각의 명령을 판독하는 명령 메모리(22),
    상기 명령 메모리에 입력으로서 공급된 상기 어드레스에 의하여 또한 주소 지정되어 주소 지정가능한 복수의 벡터를 기억하고 주소 지정될 때 각각의 벡터를 판독하는 벡터 메모리(18),
    입력 PUSH 신호를 수신한 경우 복귀 어드레스를 저장하고, 입력 POP 신호를 수신한 경우 저장된 복귀 어드레스를 폐기하는 스택 수단(32), 및
    상기 어드레스(ADDR)의 현재값을 변경시킴으로써 상기 명령 메모리로부터 판독된 각각의 입력 명령에 응답하고, 출력 어드레스를 현재값에서 상기 스택 수단에 의하여 미리 저장된 복귀 어드레스값으로 변경시키며, 새로운 복귀 어드레스를 발생시키며, 미리 저장된 복귀 신호를 폐기하도록 상기 POP 신호에 의해 상기 스택 수단에 신호를 전송하며, 새로운 복귀 어드레스를 저장하도록 상기 PUSH 신호에 의해 상기 스택 수단에 신호를 전송하여 상기 명령 중 적어도 하나(TEMP)에 응답하는 처리 수단(24, 26, 29, 30)
    을 포함하는 패턴 발생기(23).
  8. 제7항에 있어서, 상기 처리 수단이 상기 어드레스의 현재값을 증가시킴으로써 상기 새로운 복귀 어드레스를 발생시키는, 패턴 발생기.
  9. 제8항에 있어서,
    상기 처리 수단은,
    입력 INCREMENT 신호에 응답하여 상기 어드레스를 증가시키고, 입력 LOAD_RETURN 신호에 응답하여 상기 어드레스를 상기 스택 수단에 의하여 저장된 복귀 어드레스로 설정하는 어드레스 발생기(26),
    증가된 어드레스(ADDR+1)를 생성하도록 상기 어드레스 발생기에 의하여 발생된 상기 어드레스를 증가시키는 증분기(29),
    입력 SAVE 신호에 응답하여 상기 증분기에 의하여 생성된 증가된 어드레스를 기억하는 기억 수단(30), 및
    상기 명령 메모리로부터 판독된 각 명령을 수신하고, 상기 수신된 명령에 따라 상기 PUSH, POP, INCREMENT 및 LOAD_RETURN 신호를 제어하는 시퀀스 수단(24)
    을 포함하는 패턴 발생기.
  10. 제9항에 있어서,
    상기 시퀀스 수단이 상기 적어도 하나의 명령에 응답하여,
    상기 기억 수단이 상기 증가된 어드레스를 기억하도록 상기 SAVE 신호를 상기 기억 수단으로 전송하고,
    상기 어드레스 발생기가 상기 어드레스를 상기 스택에 의하여 저장된 복귀 어드레스로 설정하도록 상기 LOAD_RETURN 신호를 상기 어드레스 발생기로 전송하고,
    상기 스택이 상기 저장된 복귀 어드레스를 폐기하도록 상기 POP 신호를 상기 스택으로 전송하고,
    상기 스택이 상기 기억 수단에 의하여 기억된 증가된 어드레스를 저장하고, 이 증가된 어드레스를 새로운 복귀 어드레스 입력으로서 상기 어드레스 발생기에 공급하도록 PUSH 신호를 상기 스택으로 전송하는,
    패턴 발생기.
  11. 제10항에 있어서,
    상기 명령 메모리 중 하나의 어드레스에 기억된 상기 명령 중 적어도 하나는 CALL 명령이고,
    호출 어드레스에 관한 호출 ID는 상기 CALL 명령을 기억하는 상기 명령 메모리의 다음 어드레스에 기억되고,
    상기 명령 프로세서는 입력 CALL ID에 관련된 호출 어드레스를 발생시키고 상기 호출 어드레스를 상기 어드레스 발생기에 공급하는 수단(28)을 추가로 포함하고,
    상기 CALL 명령이 상기 명령 메모리로부터 판독될 때 상기 시퀀스 수단이 상기 INCREMENT 신호를 상기 어드레스 발생기에 전송함으로써 상기 CALL 명령에 응답하고 이로써 상기 어드레스 발생기가 상기 명령 메모리에 입력된 어드레스를 증가시켜 상기 명령 메모리가 상기 CALL_ID를 상기 수단으로 판독하여 호출 어드레스를 발생시키도록 하고,
    상기 시퀀스 수단은
    상기 기억 수단이 상기 증가된 어드레스를 기억하도록 상기 SAVE 신호를 상기 기억 수단으로 전송하고,
    상기 어드레스 발생기가 상기 어드레스를 상기 어드레스 발생기에 공급된 상기 호출 어드레스로 설정하도록 LOAD_CALL 신호를 상기 어드레스 발생기로 전송하고,
    상기 스택이 상기 레지스터 수단에 기억된 증가된 어드레스를 저장하도록 하고 이 증가된 어드레스를 새로운 복귀 어드레스 입력으로서 상기 어드레스 발생기에 공급하도록 PUSH 신호를 상기 스택으로 전송하는,
    패턴 발생기.
  12. 제11항에 있어서,
    상기 명령 중 적어도 하나는 RETURN 명령이며,
    상기 시퀀스 수단은 상기 RETURN 명령에 응답하여,
    상기 어드레스 발생기가 상기 명령 메모리에 입력된 어드레스를 상기 명령 메모리에 공급된 상기 복귀 어드레스로 설정하도록 상기 LOAD_RETURN 신호를 상기 어드레스 발생기로 전송한 후, 상기 스택이 상기 복귀 어드레스를 폐기하도록 상기 POP 신호를 상기 스택으로 전송하는,
    패턴 발생기.
  13. 제10항에 있어서,
    상기 명령 중 적어도 하나는 CALL 명령이며,
    상기 명령 프로세서는 입력 CALL 명령에 응답하여 호출 어드레스를 발생시키고 상기 호출 어드레스를 상기 어드레스 발생기에 공급하는 수단(28)을 추가로 포함하고,
    상기 시퀀스 수단은 상기 CALL 명령에 응답하여,
    상기 기억 수단이 상기 증가된 어드레스를 기억하도록 상기 SAVE 신호를 상기 기억 수단으로 전송하고,
    상기 어드레스 발생기가 상기 어드레스를 상기 어드레스 발생기에 공급된 상기 호출 어드레스로 설정하도록 LOAD_CALL 신호를 상기 어드레스 발생기로 전송하고,
    상기 스택이 상기 레지스터 수단에 기억된 증가된 어드레스를 저장하도록 하고 이 증가된 어드레스를 상기 어드레스 발생기에 새로운 복귀 어드레스 입력으로서 상기 어드레스 발생기에 공급하도록 PUSH 신호를 상기 스택으로 전송하는,
    패턴 발생기.
  14. 제13항에 있어서,
    상기 명령 중 적어도 하나는 RETURN 명령이며,
    상기 시퀀스 수단은 상기 RETURN 명령에 응답하여,
    상기 어드레스 발생기가 상기 명령 메모리에 입력된 어드레스를 상기 명령 메모리에 공급된 상기 복귀 어드레스로 설정하도록 상기 LOAD_RETURN 신호를 상기 어드레스 발생기로 전송한 후, 상기 스택이 상기 복귀 어드레스를 폐기하도록 상기 POP 신호를 상기 스택으로 전송하는,
    패턴 발생기.
  15. 주소 지정가능한 복수의 명령(INST)을 기억하고 입력으로서 공급된 어드레스(ADDR)에 의하여 주소 지정될 때 상기 명령 메모리에 입력된 다음 어드레스를 자신에게 공급하는 것에 관련된 각각의 명령을 판독하는 명령 메모리(22),
    상기 명령 메모리에 입력으로서 공급된 상기 어드레스(ADDR)에 의하여 또한 주소 지정되어 주소 지정가능한 복수의 벡터를 기억하고 주소 지정될 때 각각의 벡터를 판독하는 벡터 메모리(18),
    상기 벡터 메모리로부터 판독된 각각의 벡터를 수신하고 상기 벡터에 관한 시험을 실행하는 테스터 채널(14),
    입력 PUSH 신호를 수신한 경우 복귀 어드레스를 저장하고, 입력 POP 신호를 수신한 경우 저장된 복귀 어드레스를 폐기하는 스택 수단(32), 및
    상기 어드레스(ADDR)의 현재값을 변경시킴으로써 상기 명령 메모리로부터 판독된 각각의 입력 명령에 응답하고, 상기 출력 어드레스를 현재값에서 상기 스택 수단에 의하여 미리 저장된 복귀 어드레스값으로 변경시키고, 새로운 복귀 어드레스를 발생시키고, 미리 저장된 복귀 신호를 폐기하도록 상기 POP 신호에 의해 상기 스택 수단에 신호를 전송하고, 새로운 복귀 어드레스를 저장하도록 상기 PUSH 신호에 의해 상기 스택 수단에 신호를 전송하여 상기 명령 중 적어도 하나(TEMP)에 응답하는 처리 수단(24, 26, 29, 30)
    을 포함하는 집적회로 테스터(10)
  16. 제15항에 있어서, 상기 처리 수단이 상기 어드레스의 현재값을 증가시킴으로써 상기 새로운 복귀 어드레스를 발생시키는, 집적회로 테스터.
  17. 제16항에 있어서,
    상기 처리 수단은
    입력 INCREMENT 신호에 응답하여 상기 어드레스를 증가시키고, 입력 LOAD_RETURN 신호에 응답하여 상기 어드레스를 상기 스택 수단에 의하여 저장된 복귀 어드레스로 설정하는 어드레스 발생기(26),
    증가된 어드레스(ADDR+1)를 생성하도록 상기 어드레스 발생기에 의하여 발생된 상기 어드레스를 증가시키는 증분기(29),
    입력 SAVE 신호에 응답하여 상기 증분기에 의하여 생성된 증가된 어드레스를 기억하는 기억 수단(30), 및
    상기 명령 메모리로부터 판독된 각 명령을 수신하고, 상기 수신된 명령에 따라 상기 PUSH, POP, INCREMENT 및 LOAD_RETURN 신호를 제어하는 시퀀스 수단(24)
    을 포함하는 집적회로 테스터.
  18. 제17항에 있어서,
    상기 시퀀스 수단이 상기 적어도 하나의 명령에 응답하여,
    상기 기억 수단이 상기 증가된 어드레스를 기억하도록 상기 SAVE 신호를 상기 기억 수단으로 전송하고,
    상기 어드레스 발생기가 상기 어드레스를 상기 스택에 의하여 저장된 복귀 어드레스로 설정하도록 상기 LOAD_RETURN 신호를 상기 어드레스 발생기로 전송하고,
    상기 스택이 상기 저장된 복귀 어드레스를 폐기하도록 상기 POP 신호를 상기 스택으로 전송하고,
    상기 스택이 상기 기억 수단에 의하여 기억된 증가된 어드레스를 저장하고, 이 증가된 어드레스를 새로운 복귀 어드레스 입력으로서 상기 어드레스 발생기에 공급하도록 PUSH 신호를 상기 스택으로 전송하는,
    집적회로 테스터.
  19. 제18항에 있어서,
    상기 명령 중 적어도 하나는 CALL 명령이며,
    상기 명령 프로세서는 입력 CALL 명령에 응답하여 호출 어드레스를 발생시키고, 상기 호출 어드레스를 상기 어드레스 발생기에 공급하는 수단(28)을 추가로 포함하고,
    상기 시퀀스 수단은 상기 CALL 명령에 응답하여,
    상기 기억 수단이 상기 증가된 어드레스를 기억하도록 상기 SAVE 신호를 상기 기억 수단으로 전송하고,
    상기 어드레스 발생기가 상기 어드레스를 상기 어드레스 발생기에 공급된 상기 호출 어드레스로 설정하도록 LOAD_CALL 신호를 상기 어드레스 발생기로 전송하고,
    상기 스택이 상기 레지스터 수단에 기억된 증가된 어드레스를 저장하도록 하고, 이 증가된 어드레스를 새로운 복귀 어드레스 입력으로서 상기 어드레스 발생기에 공급하도록 PUSH 신호를 상기 스택으로 전송하는,
    집적회로 테스터.
  20. 제19항에 있어서,
    상기 명령 중 적어도 하나는 RETURN 명령이며,
    상기 시퀀스 수단은 상기 RETURN 명령에 응답하여
    상기 어드레스 발생기가 상기 명령 메모리에 입력된 어드레스를 상기 명령 메모리에 공급된 상기 복귀 어드레스로 설정하도록 상기 LOAD_RETURN 신호를 상기 어드레스 발생기로 전송한 후, 상기 스택이 상기 복귀 어드레스를 폐기하도록 상기 POP 신호를 상기 스택으로 전송하는,
    집적회로 테스터.
KR1020017004799A 1998-11-13 1999-10-25 집적회로 테스터를 제어하는 명령 처리 패턴 발생기 KR100634992B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/191,777 US6154865A (en) 1998-11-13 1998-11-13 Instruction processing pattern generator controlling an integrated circuit tester
US09/191,777 1998-11-13

Publications (2)

Publication Number Publication Date
KR20010080196A KR20010080196A (ko) 2001-08-22
KR100634992B1 true KR100634992B1 (ko) 2006-10-17

Family

ID=22706896

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017004799A KR100634992B1 (ko) 1998-11-13 1999-10-25 집적회로 테스터를 제어하는 명령 처리 패턴 발생기

Country Status (5)

Country Link
US (1) US6154865A (ko)
EP (1) EP1129363A4 (ko)
JP (1) JP2002530729A (ko)
KR (1) KR100634992B1 (ko)
WO (1) WO2000029863A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014143386A1 (en) * 2013-03-14 2014-09-18 Teradyne, Inc. Method and apparatus for device testing using multiple processing paths
US10139449B2 (en) 2016-01-26 2018-11-27 Teradyne, Inc. Automatic test system with focused test hardware

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030099139A1 (en) * 2001-08-24 2003-05-29 Abrosimov Igor Anatolievich Memory test apparatus and method of testing
US7941640B1 (en) * 2006-08-25 2011-05-10 Marvell International Ltd. Secure processors having encoded instructions
KR102308990B1 (ko) * 2021-07-20 2021-10-06 (주) 에이블리 반도체 테스트 패턴 발생 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4670879A (en) * 1984-02-15 1987-06-02 Takeda Riken Kogyo Kabushikikaisha Pattern generator

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5161749A (en) * 1974-11-26 1976-05-28 Fujitsu Ltd Deetashorisochino shoriringuseigyohoshiki
US4041462A (en) * 1976-04-30 1977-08-09 International Business Machines Corporation Data processing system featuring subroutine linkage operations using hardware controlled stacks
US4371949A (en) * 1977-05-31 1983-02-01 Burroughs Corporation Time-shared, multi-phase memory accessing system having automatically updatable error logging means
US4173782A (en) * 1978-01-03 1979-11-06 International Business Machines Corporation Return and link mechanism
US4313200A (en) * 1978-08-28 1982-01-26 Takeda Riken Kogyo Kabushikikaisha Logic test system permitting test pattern changes without dummy cycles
US4493045A (en) * 1981-10-19 1985-01-08 Fairchild Camera & Instrument Corp. Test vector indexing method and apparatus
US5023828A (en) * 1988-07-20 1991-06-11 Digital Equipment Corporation Microinstruction addressing in high-speed CPU
US5321701A (en) * 1990-12-06 1994-06-14 Teradyne, Inc. Method and apparatus for a minimal memory in-circuit digital tester
JP2602997B2 (ja) * 1991-01-18 1997-04-23 株式会社東芝 パターン発生器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4670879A (en) * 1984-02-15 1987-06-02 Takeda Riken Kogyo Kabushikikaisha Pattern generator

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014143386A1 (en) * 2013-03-14 2014-09-18 Teradyne, Inc. Method and apparatus for device testing using multiple processing paths
US10139449B2 (en) 2016-01-26 2018-11-27 Teradyne, Inc. Automatic test system with focused test hardware

Also Published As

Publication number Publication date
JP2002530729A (ja) 2002-09-17
US6154865A (en) 2000-11-28
WO2000029863A1 (en) 2000-05-25
EP1129363A4 (en) 2004-12-29
EP1129363A1 (en) 2001-09-05
KR20010080196A (ko) 2001-08-22

Similar Documents

Publication Publication Date Title
US6092225A (en) Algorithmic pattern generator for integrated circuit tester
KR100538404B1 (ko) 테스팅의 병렬 및 스캔 모드용으로 단일 메모리를사용하는 집적회로용 테스트 시스템
EP0154048A2 (en) Circuit for generating test signals for in-circuit digital testing
US6574590B1 (en) Microprocessor development systems
US6073263A (en) Parallel processing pattern generation system for an integrated circuit tester
US20050278599A1 (en) Testing device
US5835506A (en) Single pass doublet mode integrated circuit tester
KR20020007325A (ko) 아날로그 및 디지털 겸용 채널을 구비한 집적회로 시험 장치
US4670879A (en) Pattern generator
US5606568A (en) Method and apparatus for performing serial and parallel scan testing on an integrated circuit
JP2002528725A (ja) ディスクベースのデータストリーミング機能を有する集積回路テスタ
KR950013265B1 (ko) 메모리 시험장치의 어드레스 발생장치
KR100634992B1 (ko) 집적회로 테스터를 제어하는 명령 처리 패턴 발생기
US6009546A (en) Algorithmic pattern generator
US5337045A (en) Pattern generator
EP0553080B1 (en) High speed tester and method of providing successive loops of data signals at a predetermined clock rate
KR100277770B1 (ko) 시퀀스 제어회로
KR19980063869A (ko) 유연성있는 제트 레지스터 프로그래밍 기능을 갖는 메모리 테스트 장치 알고리즘 패턴 생성기
US6321352B1 (en) Integrated circuit tester having a disk drive per channel
US20040059970A1 (en) Multipurpose architecture and method for testing electronic logic and memory devices
GB2099618A (en) Algorithmic word generator
JP3481689B2 (ja) 半導体試験装置
US6836868B1 (en) High-speed algorithmic pattern generator
JP3778050B2 (ja) 半導体集積回路試験装置
JPH11237451A (ja) 半導体試験装置のパターンジェネレータ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee