KR20050007473A - 다중 명령 메모리들을 포함하는 테스터 시스템 - Google Patents

다중 명령 메모리들을 포함하는 테스터 시스템 Download PDF

Info

Publication number
KR20050007473A
KR20050007473A KR10-2004-7017812A KR20047017812A KR20050007473A KR 20050007473 A KR20050007473 A KR 20050007473A KR 20047017812 A KR20047017812 A KR 20047017812A KR 20050007473 A KR20050007473 A KR 20050007473A
Authority
KR
South Korea
Prior art keywords
memory
instructions
instruction
test
data
Prior art date
Application number
KR10-2004-7017812A
Other languages
English (en)
Inventor
제이미 에스. 컬렌
크리스 사카이타니
Original Assignee
엔피테스트, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔피테스트, 인코포레이티드 filed Critical 엔피테스트, 인코포레이티드
Publication of KR20050007473A publication Critical patent/KR20050007473A/ko

Links

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
    • 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/31712Input or output aspects
    • G01R31/31716Testing of input or output with loop-back
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31905Interface with the device under test [DUT], e.g. arrangements between the test head and the DUT, mechanical aspects, fixture
    • 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/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)

Abstract

테스트할 디바이스의 입력 핀에 연결될 수 있는 출력 채널을 가진 시퀀스 제어 로직 유닛, 시퀀스 제어 로직 유닛에 의해 실행될 수 있는 명령어들을 포함하는 제1명령어 집합을 저장하는 제1메모리, 및 시퀀스 제어 로직에 의해 실행될 수 있는 명령어들을 포함하는 제2명령어 집합을 저장하는 제2메모리를 포함하고, 제1메모리 및 제2메모리 중 적어도 하나는 비순차적 방식으로 억세스될 수 있는 메모리를 포함하는, 집적 회로 테스트 장치.

Description

다중 명령 메모리들을 포함하는 테스터 시스템{Tester system having multiple instruction memories}
이 출원은 집적 회로 테스트에 관한 것이다.
일반적인 집적 회로 테스트 시스템에서는 일련의 테스트 패턴들("테스트 시퀀스")이 테스트 중인 디바이스(DUT, device under test)의 핀들에 적용된다. 많은 서로 다른 유형의 테스트 패턴들이, 예를 들어, 스캔 패턴들(Scan patterns), 동작 패턴들(functional patterns), 알고리즘적 패턴들(Algorithmic patterns) 및 아날로그 패턴들(Analog patterns)과 같은 것들이, 특정 DUT와 함께 포함된 서로 다른 로직 부문들을 테스트하는데 사용될 수 있다. 테스트 패턴들 중 일부 유형은 순차적 방식으로 DUT 핀에 적용되고(가령, 스캔 패턴들), 다른 것들은 병렬로 핀들의 집합에 적용된다(가령, 동작 패턴들, 아날로그 패턴들 및 알고리즘적 패턴들). DUT 구조에 따라, 테스트 시퀀스는 복합 테스트 패턴 출력, 즉 DUT의 서로 다른 핀들에 대해 동시에 한 유형 보다 많은 테스트 패턴을 출력하는 동작을 포함할 수 있다.
테스트 시퀀스 도중 DUT는 출력 핀으로부터 테스트 "결과들"을 출력한다. 따라서, 테스트 시스템은 테스트 시퀀스 도중 테스트 결과들을 받기 위해 DUT에 연결된 하나 이상의 입력 채널들을 포함한다.
본 출원은 2002년 5월 8일 출원된 미국 특허 일련 번호 60/379,341을 35 USC §119 (e) 하에 우선권 주장하는 것으로, 그 전체 내용이 여기 포함된다.
도 1은 집적 회로 테스트 시스템의 제1실시예를 보인 블록도이다.
도 2는 집적 회로 테스트 시스템의 제2실시예를 보인 블록도이다.
본 발명의 한 양상에 따르면, 집적 회로를 테스트하는 장치는 테스트 중인 디바이스의 입력 핀에 연결된 출력 채널을 포함하는 시퀀스 제어 로직, 시퀀스 제어 로직 유닛에 의해 실행가능한 명령들을 포함하는 제1명령어 집합을 저장하는 제1메모리; 시퀀스 제어 로직 유닛에 의해 실행가능한 명령들을 구비하는 제2명령어 집합을 저장하는 제2메모리를 포함하고, 제1메모리 및 제2메모리 중 적어도 하나는 비순차적 방식으로 억세스되는 메모리를 포함한다.
이하의 특성들 중 하나 이상이 포함될 수 있다: 집적 회로 테스트 장치에서, 제1메모리 및 제2메모리 중 적어도 하나는 출력 채널로 출력할 테스트 패턴을 결정할 시퀀스 제어 로직 유닛에 의해 사용되는 데이터 집합을 저장하는 메모리를 포함한다. 집적 회로 테스트 장치에서, 테스트 장치 동작 중에, 명령어들로 된 제1명령어 집합으로부터의 제1명령의 실행은 명령들의 제2명령어 집합으로부터의 제2명령의 실행을 유발한다. 집적 회로 테스트 장치에서 제1메모리는 제1폭을 가진 메모리를 구비하고 제2메모리는 제1폭과는 다른 제2폭을 가진 메모리를 구비한다. 집적 회로 테스트 장치에서, 제1메모리에 저장된 명령들은 제1길이를 가진 명령들을 포함하고, 제2메모리에 저장된 명령들은 제1길이와 다른 제2길이를 가진 명령들을 구비한다. 집적 회로 테스트 장치에서, 시퀀스 제어 로직 유닛은 적어도 두 독립 요청자들로부터 메모리 억세스 요청을 수신하도록 연결된 읽기/쓰기 큐(queue)를 구비한 메모리 인터페이스를 구비한다. 집적 회로 테스트 장치에서, 시퀀스 제어 로직 유닛은 메모리 인터페이스로부터 실행가능한 명령들을 수신 및 보유하도록 명령 캐시를 더 포함한다. 집적 회로 테스트 장치에서 제1메모리 및 제2메모리 중 적어도 하나는 테스트 중인 기기로부터 수신되는 테스트 결과를 저장할 메모리를 포함한다. 집적 회로 테스트 장치는 제1명령어 집합, 제2명령어 집합 및 데이터 집합 중 적어도 하나를 메모리 인터페이스에 로드하도록 연결된 전단 프로세서를 포함한다. 집적 회로 테스트 장치에 있어서 시퀀스 제어 로직 유닛은 복수개의 패턴 제어 로직 블록들을 포함하고, 패턴 제어 로직 블록들 중 적어도 하나는 데이터 집합으로부터 수신된 데이터에 기반해 테스트 패턴을 출력하는 로직을 포함한다. 집적 회로 테스트 장치는 복수개의 패턴 제어 로직 블록들 중 해당하는 것으로부터 적어도 하나의 출력 비트를 수신하는 복수개의 선택 멀티플렉서와, 복수개의 선택 멀티플렉서들 각각의 출력을 제어하는 데이터 선택 로직 블록을 포함한다. 집적 회로 테스트 장치에 있어서, 데이터 선택 로직 블록은 제1메모리 및 제2메모리 중 하나에 저장된 실행가능 명령의 일부에 기반해 복수개의 선택 멀티플렉서 각각에 대한 데이터 선택 코드들을 결정한다. 집적 회로 테스트 장치에서 제1메모리 및 제2메모리에 저장된 데이터 집합은 기능 데이터, 스캔 데이터, 및 디지털화한 아날로그 데이터를 나타내는 데이터 집합 중 적어도 하나를 포함한다.
본 발명의 실시예들은 이하의 장점들 가운데 하나 이상을 가질 수 있다. 예를 들어, 본 발명의 장치는 선형 방식, 랜덤 억세스 방식, 또는 그 복합 방식으로,복합 테스트 프로그램에 포함된 명령들을 가져올 수 있다. 랜덤 억세스 방식으로 명령어들을 가져오는 사양은 장치의 프로그래밍에 관한 유연성을 부여한다. 이때 명령어들은 가령 비선형 테스트 시퀀스 프로그램의 실행을 유발할 수 있는, 장치의 명령어 집합 내 명령들을 말한다. 또한, 어떤 구현예들에서, 본 발명의 장치는 두 개의 메모리들을 포함하고, 그 메모리 각각은 명령어 집합들 및/또는 데이터 집합들을 저장하는데 사용되고 장치의 단가를 낮출 수 있는데, 그 이유는 명령어들의 각 집합, 또는 특정 DUT를 테스트하는데 필요로 되는 테스트 패턴의 각각의 서로 다른 유형들에 대한 부가 메모리들이 필요로 되지 않기 때문이다. 또, 독립 구성요소들의 수가 감소되므로, 말하자면, 가령 메모리들 및 별개의 로직 블록들의 수가 줄어들기 때문에 본 발명의 장치의 신뢰성이 향상될 수 있다.
도 1을 참조하면, 테스트할 디바이스(DUT, 70)를 테스트하기 위한 집적 회로 테스트 시스템(10)은 시퀀스 제어 로직 블록(20)(SCL 20), 제1메모리(60), 및 전단 프로세서(65)(FEP 65)를 포함한다. SCL(20)은 시퀀스 제어 프로세서 블록(25)(SCP 25), 제2메모리(75), 출력 채널(50), 및 입력 채널(51)을 포함한다. SCP(25)는 제1메모리(60) 및/또는 제2메모리(75)에 저장된 명령어들을 실행시키고 출력 채널(50)로부터 DUT(70)로 테스트 패턴들의 출력을 발생시킨다. 이 시스템(10)의 예에서, 복합 테스트 시퀀스 프로그램(62)(미도시)은 실행가능한 명령어들(62a)의 제1명령어 집합("제1명령어 집합" 62a)과 실행가능한 명령어들(62b)의 제2명령어 집합("제2명령어 집합" 62b)을 포함하고, 제1명령어 집합(62a) 및 제2명령어 집합(62b)은 모두 SCP(25)에 의해 실행될 수 있다. 시스템(10) 동작 중에, 제1명령어 집합(62a)은 제1메모리(60)에 저장되고, 제2명령어 집합(62b)은 제2메모리(75)에 저장된다. 그러면 복합 테스트 시퀀스 프로그램(62)이 SCP(25)에 의해 제1명령어 집합(62a)과 제2명령어 집합(62b)으로부터의 명령어들을 교대로 실행하면서 실행된다. 복합 테스트 프로그램(62)의 실행 중에, SCP(25)는 SCL(20)에 포함된 다양한 로직 블록들을 제어하고 출력 채널(50)로부터 DUT(70)로 출력되는 테스트 패턴들을 발생한다.
시스템(10)의 일실시예에 있어서, 메모리(60)에 저장된 실행 가능 명령어들은 순차적 방식으로만("리니어 억세스") SCL(20)에 의해 억세스(가령, 판독)되며, 한편 메모리(75)에 저장된 실행 가능 명령어들은 SCP(25)에 의해 선형 혹은 랜덤 방식으로 억세스된다. 이러한 구현예에서, 메모리(60)는 상대적으로 크고 상대적으로 느린 선형-억세스 메모리로서 구현되며, 한편 메모리(75)는 상대적으로 작고 상대적으로 빠른 랜덤-엑세스 메모리로서 구현된다(즉, 메모리(75)는 이제부터 "램(75)"라 칭한다).
일반적인 DUT는 각 패턴 사이의 시간이 DUT 로직의 속도에 의해 결정되는 테스트 패턴들의 순차적 집합의 입력을 요한다. 따라서, SCL(20)에서 DUT로 출력되는 순차적 테스트 패턴들은 시기 적절한(timely) 방식으로, 가령 DUT의 입력 패턴타이밍 요건을 만족하도록 출력되어야 한다. 시스템(10)의 일실시예에서, 상대적으로 느린 메모리(60)는 테스트 시퀀스 프로그램에 포함된 실행 가능 명령어들의 일부를 저장하는데 사용된다. 메모리(60)의 한 위치에 대한 비순차적 억세스를 처리하는데 필요한 시간이 DUT(70)로 출력되는 순차적 테스트 패턴들 사이에 허용하기 힘들 만큼 긴 지연을 일으킬 수 있다. 따라서, SCL 로직 유닛(20)은 순차적 방식으로만 메모리(60)를 억세스하도록 구현된다. 즉 복합 테스트 프로그램(62)의 실행 도중 메모리(60)의 순차적 위치들 안에 저장된 명령어들을 판독한다. 이와 반대로, 상대적으로 빠른 랜덤 억세스 메모리(75)는 SCL(20)이 복합 테스트 프로그램에 포함된 명령어들을 선형 방식(가령 메모리(60)로부터)과 랜덤 억세스 방식(가령, 램(75)으로부터) 둘 다에 의해 가져올 수 있도록 시스템(10) 안에 포함될 수 있다. 이와 같이 선형 방식과 랜덤 억세스 방식 둘 모두에 의한 명령어 가져오기 방식은 시스템(10)에 프로그래밍 융통성을 부여한다, 말하자면, 비선형 테스트 시퀀스 프로그램의 명령어들을 포함할 수 있다(가령, 명령어 집합에 "점프" 명령을 포함할 수 있다). 또, 램(75)의 상대적으로 빠른 억세스 시간은 SCP(25)로 하여금 DUT(70)로 출력되는 순차적 테스트 패턴들 사이의 허용 불가능한 지연을 야기하지 않으면서 램(75)에 저장된 실행 가능 명령어들에 대한 랜덤 억세스를 수행할 수 있게 한다.
일반적인 테스트 시스템들은 흔히 DUT를 테스트하기 위해 필요한 각각의 고유한 테스트 패턴의 생성을 위한 별도의 블록들을 포함한다. 통상적으로, 각각의 독립적인 패턴 고유의 로직 블록은 그 특정 유형의 테스트 패턴을 생성시키는데 필요한 데이터 집합들 및/또는 알고리즘 정보의 저장을 위한 별도의 메모리를 포함했다. 이와 반대로, 시스템(10)은 명령어들을 저장하는데 사용되고, 또 데이터 집합들을 저장하는데에 사용될 수도 있는 제1메모리(60) 및 제2메모리(75)를 포함하며, 여기서 각각의 데이터 집합은 잠재적으로 DUT를 테스트하는데 필요로 될 수 있는 다른 유형의 테스트 패턴에 해당한다. 예를 들어, 데이터 집합들의 유형에는 기능 데이터("F-Data"), 스캔 데이터, 및 디지털화한 아날로그 데이터가 포함될 수 있다. 그러나, 디지털 형식으로 표현될 수 있는 어떤 유형의 데이터도 메모리(60) 및/또는 램(75)에 저장되고 그로부터 판독될 수 있다. 명령어들과 데이터 집합들 모두를 저장하는 메모리(60) 및 램(75)의 사용은 시스템(10)의 가격을 낮추는데, 이는 DUT에 요구되는 각 테스트 시퀀스 프로그램 및/또는 각각의 다른 유형의 테스트 패턴을 위한 별도의 메모리들이 필요하지 않기 때문이다. 또, 명령어들과 데이터 집합들 모두를 저장하는 메모리(60) 및 램(75)의 사용은 시스템(10)의 신뢰성을 증가시킬 수 있는데, 이는 별도의 구성요소들의 수가 줄어들기 때문이다, 즉 메모리들 및 별도의 로직 블록들의 수가 줄기 때문이다.
다시 도 1을 참조하면, SCP(25)는 복합 시퀀스 프로그램(62)을 실행하고, 또한 일련의 패턴 제어 로직 블록들(37a-37c) (PCL들 37a-37c) 및 알고리즘 패턴 생성기 블록(41)(APG 41)의 출력을 제어한다. APG(41)는, SCP(25)에 의해 인에블될 때, 하드웨어나 프로그램(62) 실행 전이나 도중에 APG(41)로 로드된 소프트웨어 프로그램에 의해 구현될 수 있는 알고리즘에 기반한 비트 패턴들을 생성한다. 사용되는 특정 알고리즘은 원하는 테스트 유형 및 DUT의 사양에 따라 달라진다. SPL제어 블록(37a)은 한 데이터 집합에 기반하여 출력할 적합한 SCAN 비트들을 결정하는 제어 블록을 말한다. APL 제어 블록(37b)은 한 데이터 집합에 기반해 출력할 적합한 디지털화한 아날로그 비트들을 결정하는 제어 블록을 말한다. F CTRL(37b)은 한 데이터 집합에 기반해 출력할 적절한 기능 데이터 비트들을 결정하는 제어 블록을 말한다.
PCL들(37a-37c)은 메모리(60)에 저장된 데이터 집합들(60a-60n)로부터 데이터 블록들을 수신하도록 연결된다. PCL들(37a-37c) 및 APG(41)의 출력들(39a-39d)은 선택 멀티플렉서(43)(MUX 43)로 입력된다. 복합 비트 패턴이 버스(44)를 통해 MUX(43)로부터 출력되고, 선택된 그 복합 비트 패턴은 SCP(25)로부터의 제어 라인(40)에 의해 제어된다. 그러면 버스(44) 상의 복합 비트 패턴은 이벤트 로직 블록(47)을 거치고 핀 전자기술(pin electronics) 블록(49)로 보내진다. SCP(25)는 제어 라인(46)을 통해 이벤트 로직(47)으로 동작 신호를 전송하도록 연결된다. 라인(46)을 통한 동작 신호는 DUT(70)에서 요구되는 적합한 출력 신호 특성을 결정하도록 이벤트 로직(47) 및 핀 전자기술부(49)에서 사용된다. 더 상세히 말하면, 동작 신호(46)는 DUT(70)로 보내지는 출력 신호들의 적절한 동작 특성, 가령, 출력 채널(50)에 연결된 DUT(70)의 각 핀에 요구되는 타이밍, 전압 레벨 및/또는 전류 레벨을 결정하기 위해 이벤트 로직(47) 및 핀 전자기술부(49)에서 사용된다.
메모리(60)를 억세스하기 위해, SCL(20)은 메모리 버스(61)에 의해 메모리(60)와 연결된 메모리 인터페이스/페이지 요청 스풀러(spooler)(29)(MIPRS 29)를 포함한다. MIPRS(29)는 SCL(20) 안의 다양한 로직 블록들("요청자들")로부터 데이터 및 명령어 읽기/쓰기 요청을 수신하도록 연결된 읽기/쓰기 큐(29a)를 포함한다. 일기/쓰기 큐(29a)는 MIPRS(29)가 여러개의 읽기/쓰기 요청들을 홀드하고 난 다음 그 요청들을 처리할 수 있도록 한다. 이러한 시스템(10)의 실시예에서, 요청자들은 (제1명령어 집합(62a)으로부터 명령어들을 요청하는) SCP(25), (각각이 데이터 집합들(60a-60n)로부터 데이터를 요청하는) PCL들(37a-37c), 및 (DUT(70)로부터 입력 채널(51)을 통해 결과가 수신될 때 데이터 쓰기를 요청하는)PE(49)가 될 수 있다. 각 요청자는 또, 최초의 요청자로 하여금, MIPRS(29)가 두번째 요청자로부터의 요청들에 대한 읽기 또는 쓰기를 처리하고 있는 동안 동작을 계속할 수 있도록 하는데 충분한 데이터 또는 명령어들의 버퍼를 홀딩하는 관련 캐시(또는 버퍼)(가령, 피포(FIFO) 레지스터들의 집합)를 포함할 수도 있다. 예를 들어, SCL(20)은 모두 MIPRS(29)에 연결된 명령어 캐시(25a) 및 결과 캐시(31)를 포함하여, 각각 메모리(60)로부터 읽은 명령들과 메모리(60)에 쓰여질 결과 데이터를 저장하는데 사용한다. 이와 마찬가지로, 각 PCL(37a-37c)은 메모리(60)로부터 읽혀져서 MIPRS(29)로부터 버스(34)를 통해 수신되거나, 램(75)로부터 읽혀져서 SCP(25)로부터 버스(34a)를 통해 수신되는 테스트 데이터를 홀딩하는데 사용되는 피포 레지스터들(38a-38c)를 포함한다.
SCL(20)은 또한 버스(28)에 의해 MIPRS(29)와 연결되고 버스(28a)를 통해 램(75)과 연결되는 버스 인터페이스 블록(27)을 포함한다. 버스 인터페이스 블록(27)은 또 버스(66)에 의해 전단 프로세서(65)와, 그리고 버스(26)를 통해 시퀀스 제어 프로세서(25)(SCP 25)와도 연결된다. 시스템(10) 동작 중에, 전단 프로세서(65)는 명령어들(62a)의 제1명령어 집합 및/또는 테스트 데이터 집합들(60a-60n)을 버스 인터페이스(27), 버스(28a), 및 MIPRS(29)를 통해 전송해 메모리(60)로 로드한다. 이와 마찬가지로, 전단 프로세서(65)는 명령어들(62b)의 제2명령어 집합 및/또는 테스트 데이터 집합들을 버스 인터페이스(27) 및 버스(28a)를 통해 전송해 램(75)에 로드한다.
버스 인터페이스(27)는 전단 프로세서(65)(FEP 65)에 의해 사용되는 여러개의 레지스터들, REGa-REGn을 포함해 메모리(60) 및/또는 램(75)에 저장된 제1명령어 집합(62a)의 시작 어드레스와 각 데이터 집합의 시작("베이스") 어드레스를 저장한다. 제1명령어 집합(62a) 및 각 데이터 집합(60a-60n)의 베이스 어드레스 및 크기는 변화할 수 있다. 시스템(10) 동작 도중, 로딩 전에, FEP(65)는 제1명령어 집합(62a)와 각 데이터 집합을 위한 베이스 어드레스를 레지스터들 REGa-REGn 중 하나에 기록한다. 그 베이스 어드레스들은 MIPRS(29)로 보내져서, 메모리(60) 로딩 도중 제1명령어 집합(62a)의 다음 기록들과 각 데이터 집합(60a-60n)의 기록들의 위치들을 정하는데 이용된다. MIPRS(29)는 또 제1명령어 집합(62a)과 각 데이터 집합에 대한 베이스 어드레스들을 이용해 SCP(25) 및 패턴 제어 블록들(37a-37c)로부터 각각 수신된 다음 읽기의 위치를 결정한다, 즉, 베이스 어드레스들과 관련해 제1명령어 집합(62a)과 각 데이터 집합 안의 다음 읽기 어드레스들을 결정한다.
FEP(65)는 신호 라인(68)을 통해 SCP(25)로 명령 신호들을 전송하도록 연결된다. 명령어들(62a)의 제1명령어 집합과 테스트 데이터 집합들(60a-60n)이 메모리(60)로 로드되고, 명령어들(62b)의 제2명령어 집합이 램(75)으로 로드된 다음, FEP(65)는 신호 라인(68)을 통해 SCP(25)로 "시작" 신호를 전송하고, 이것이 SCP(25)로 하여금 테스트 시퀀스 프로그램(62)의 실행을 시작하도록 만든다. SCP(25)가 FEP(65)로부터 '시작' 신호를 수신할 때, SCP(25)는 (레지스터들, REGa-REGn 가운데 하나에 저장된) 제1명령어 집합(62a)의 시작 어드레스를 MIPRS(29)로 전송한다. MIPRS(29)는 보내진 시작 어드레스에서 시작되는 제1명령어 집합(62a)으로부터의 명령어 블록을 읽어들이고나서 이 실행 가능한 명령어들을 명령어 캐시(25a)로 보내 결국 명령어 버스(33)를 통해 SCP(25)로 다시 전송되도록 한다.
앞서 설명한 바와 같이, 레지스터들 REGa-REGn은 메모리(60)에 저장된 제1명령어 집합(62a)과 각 테스트 데이터 집합(60a-60n)에 대한 베이스 어드레스들을 저장하는데 사용된다. 일단 SCP(25)가 테스트 시퀀스 프로그램(62)의 실행을 시작하면, SCP(25)가 버스 인터페이스(27)를 통해 이들 베이스 어드레스들을 읽고 MIPRS(29)로 전송하여 각각의 요구된 데이터 집합에 대한 최초의 읽기 요구를 개시한다. 다음 읽기 요구는 데이터 집합(60a-60n)으로부터 추가 데이터를 요청하는 요청 PCL(37a-37c)로부터 MIPRS(29)로 보내진다. 이와 마찬가지로, SCP(25)는 SCP(25)에 의해 제1명령어 집합(62a)으로부터의 추가 명령어들이 요구될 때 명령 읽기 요구를 MIPRS(29)로 보낸다. MIPRS(29)에 의해 수신된 각 읽기 요구는 MIPRS(29)로 하여금 제1명령어 집합(62a) 또는 테스트 데이터 집합(60a-60n)으로부터 각각 명령들 또는 데이터의 한 페이지를 읽도록 하여, 요청자에게 각각 명령어들 또는 데이터 페이지를 리턴한다. "페이지"란 각 요청자가 각자의 관련 버퍼 안에 저장할 수 있는 명령어 또는 데이터의 블록 크기를 말한다. 각각의 요청자는 서로 다른 페이지 크기를 가질 수 있다.
SCP(25)는 제어 라인(29)에 의해 각각의 피포(38a-38c)에 홀드된 데이터를 각자 각 제어 블록들(37a-37c)의 출력단(38a-39c)으로의 출력을 제어하도록 연결된다. 또 SCP(25)는 제어 라인(27)에 의해 APG(41)와 연결되어 알고리즘 패턴들이 MUX(43)로 출력되도록 제어한다. 또 SCP(25)는 선택 라인(40)에 의해 MUX(43)와 연결되어 버스(44)를 통한 복합 비트 패턴들의 선택을 제어한다. 시스템(10) 동작 중에, 테스트 시퀀스 프로그램(62)의 각 실행가능 명령어가 SCP(25)에 의해 수신되면서, 그 명령어는 SCP(25)에 의해 디코딩된다. 실행가능 명령어에 기반해, SCP(25)는 각각의 PCL(37a-37c) 및 APG(41)로부터 요구된 출력 비트들을 결정하고, 제어 버스(40)를 통해 MUX(43)로 선택 코드를 출력한다. 선택 코드는 DUT(70)의 각 핀에 대해 특화된 테스트 패턴에 해당하는 것으로, 각 패턴 제어 블록들(37a-37c) 및 APG(41)로부터 적절한 비트들의 선택을 일으킨다. 예를 들어, MUX(43) 출력 버스(44)가 32비트 폭(비트 0부터 비트 31까지의 비트 위치를 포함)일 때, 명령어는 비트 0를 SPL 제어 블록(37a)으로부터의 스캔 비트로 특정하고 비트 1부터 비트 31을 APL 제어 블록(37b)으로부터의 아날로그 비트들이라 특정할 수 있다. 이 경우, SCP(25)는 SPL 블록(37a)과 APL 블록(37b)으로부터 출력되는 비트들을 선택하는 선택 코드를 전송해, MUX(43)로부터 복합 출력 패턴을 형성하게 하고, 이 경우 SPL 블록(37a)으로부터 비트 0과 APL 블록(37b)으로부터 비트 1에서 비트 31을 조합한다. MUX(43)로의 선택 코드 출력에 뒤이어, SCP(25)는 각각 제어 라인(29)및 제어 라인(27)을 통해 전진 신호를 전송함으로써, PCL들(37a-37c) 각각과 APG(41)로부터의 적합한 비트들을 출력단(38a-39c)으로 보낸다. 따라서, 이 예에서, 버스(29)의 전진 신호는 SPL 블록(37a)으로부터 1 비트를, 그리고 APL 블록(37b)으로부터 31 비트를 출력하도록 보내진다.
버스(44)를 통한 복합 비트 패턴 출력은 이벤트 로직 블록(45)으로 입력된다. 이벤트 로직(45)은 SCP(25)로부터 라인(46)을 통해 동작 제어 신호들 역시 수신한다. 동작 신호는 출력 채널(50)에 연결된 DUT(70)의 각 핀에 요구되는 출력 신호의 동작 특성을 반영한다. 이벤트 로직(47)은 버스(48)를 통해 디지털 신호 패턴을, 버스(46a)를 통해 조건 신호를 핀 전자기술부(49)(PE 49)로 보낸다. 버스(48)를 통한 디지털 신호 패턴은 DUT(70)의 요구 타이밍에 기반한다. 그러면 PE(49)는 버스(46a)를 통한 조건 신호에 따라, 수신된 디지털 신호 패턴을 "조건화"시킨다, 말하자면 출력 신호의 전압을 증폭하고/거나 디지털 신호 패턴을 아날로그 출력 신호로 변환하고/거나 DUT(70)의 한 핀 또는 핀들의 집합에 의해 요구되는 출력 신호의 타이밍을 조정하는 것이다.
PE(49)로부터 DUT(70)에 대해 조건화된 출력 신호들은 DUT 핀들(70a-70d)에 연결된 신호 채널(50)을 통해 출력된다. 테스트 패턴들이 DUT(70)로 출력되면서, 테스트 결과들이 입력 채널(51)에 연결된 DUT(70) 핀(70a)으로부터 SCL(20)로 입력될 것이다. 그러면 그 수신 결과들이 버스(49a)를 통해 전송되어 결과 캐시(31) 안에 저장된다. 결과 캐시(31)과 결과들의 전 페이지를 저장하면, 결과 캐시(31)는 MIPRS(29)로 쓰기 요구를 전송해 그 결과들의 페이지를 메모리(60)에 기록하도록 한다. 메모리(60)에 저장된 결과들은 나중에 전단 프로세서(65) 또는 SCP(25)에 의해 검색될 수 있다. 시스템(20)의 실시예에서, 수신된 결과들은 프로그램(62) 실행 도중 SCP(25)에 의해 사용되어 프로그램(62)으로부터 실행되는 명령 플로우를 결정하도록 한다(가령, 수신 결과에 기반해 브랜치(branch) 결정을 내릴 수 있다).
일실시예에서, 램(75)은 테스트 결과들을 저장하는데 사용되고, 이 결과들은 명령어 실행의 플로우를 정하는데 사용된다.
일실시예에서, 프로그램 시스템(10)에 대해 사용되는 명령어 집합은 단일화된 명령어 집합, 즉 실행 가능한 명령어들이 명령어들(62a)의 제1명령어 집합과 명령어들(62b)의 제2명령어 집합에 대해 어셈블리된 명령어들의 단일 집합이다. 하나의 단일화된 명령어 집합은, 분리되어 있는 명령어 집합들이 메모리(60) 및 램(75) 둘 모두에서 필요로 되지 않기 때문에 프로그래밍 시스템(10)의 복잡도를 덜어준다.
단일화된 명령어 집합 내 각각의 명령어는, 실행가능한 명령어로 어셈블리될 때, 옵코드(opcode) 필드와 오퍼랜드(operand) 필드를 포함한다. 일실시예에서, 옵코드 필드는 길이가 네 비트이다. 네 비트 옵코드는 상대적으로 짧은 옵코드지만, 상대적으로 짧은 옵코드 필드는 실행 가능 명령어들을 저장하기 위해 메모리들(60) 및/또는 램(75)의 상대적으로 보다 좁은 메모리 폭의 이용을 가능하게 한다. 또, 4 비트라는 상대적으로 짧은 옵코드 필드 길이는, 상대적으로 보다 큰 어드레스나 데이터값을 특정하는데 사용되는 상대적으로 보다 큰 오퍼랜드 필드를 가능하게 한다.
SCP(25)는 카운터들(CNTRa-CNTRn)의 집합을 포함하고, 이들은 한 명령에 의해 특정화된 카운트값들을 저장하는데 사용된다. 제1명령어에 의해 카운터들 중 하나에 저장된 카운트값은 이하에 설명되는 바와 같이 SCP(25)에 의해, 다음 명령어들의 실행 중에 DUT(70)로 출력할 다음 테스트 패턴들의 개수를 결정하는데 사용될 수 있다.
일실시예에서, 단일화된 명령어 집합은 실행시 시스템(10)에 포함된 다양한 하드웨어 블록들의 선택 및/또는 설정을 일으키는 "선택" 명령들을 포함한다. 예를 들어, 단일화 명령어는 PCL들(37a-87c)로부터 복합 출력 패턴을 선택하는데 사용되는 "SDS data" (데이터 선택)를 포함할 수 있다. 다른 예로서, 단일화된 명령어 집합은 카운트값의 로딩을 위해 카운터들(CNTRa-CNTRn) 중 하나를 선택하는데 사용되는 "SLC x"(카운터 선택)를 포함할 수 있다. 카운트값은 일반적으로 이전에 선택된 복합 출력 패턴을 이용해 출력할 다음 테스트 패턴들의 개수를 결정하는데 사용된다. 예를 들어, 시스템(10)에 의해 실행되는 테스트 시퀀스 프로그램은 PCL들로부터의 출력들의 조합에 대한 선택을 일으키고/거나 (가령, 테스트 프로그램의 계속되는 실행 중에 출력할 선택 패턴들의 수를 특정하도록) 카운트값을 저장하는 카운터에 대한 선택을 일으키는 하나 이상의 명령들을 포함할 수 있다.
예 1(이하에 보임)은 PCL들로부터 출력 패턴들을 선택하기 위한 "SDS scan" (데이터 선택) 명령을 포함하는 테스트 시퀀스 프로그램의 예이며, 이 예에서는 SPL PCL(37a)로부터 스캔 비트들의 선택만을 일으킨다. 예 1은 또한 카운터들 중하나를 선택하는 "SCL a" 명령을 포함하며, 이 경우에는 CNTR a를 선택한다. "SCL a" 명령 다음에는 'LDC 4095'(카운터값 로드) 명령이 오는데, 이 명령은 실행시 '4095'라는 카운트 값이 CNTRa로 로드되도록 한다. 예 1은 또한 "BOZ address1"(0에서 어드레스1로 분기)을 포함하는데, 이것은 실행시 CNTRa에 저장된 카운트값이 0으로 감소될 때까지 CNTRa에 저장된 카운트값 및 SCP(25)에 의한 각 실행 사이클 중의 선택 출력 패턴의 출력을 감소시킨다.
예 1:
SDS "scan" ;모든 출력 핀들에 대한 스캔 데이터 소스가 선택된다
SLC a ;카운터 a (CNTRa)를 선택한다
LDC 4095 ;4095라는 카운트값을 CNTR a에 로드한다
BOZ "address1" ;0에서 분기. 시스템(10)에 의해 실행시 CNTRa에 저장된 카운트 값 4095가 0으로 감소될 때까지 선택된 '스캔' 패턴들의 출력이 일어나도록 한다.
단일화 명령어 집합은 시스템(10)에 포함된 다른 하드웨어 블록들에 대한 설정 또는 선택을 일으키기 위한 다른 선택 명령어들 역시 포함할 수 있다. 예를 들어, 단일화 며령어 집합은 한 하드웨어 블록에 의해 검출되어 다중 시퀀스 제어 로직 유닛들의 동작을 동기화시키는데 사용되는 'SYNC' 이벤트, 즉, 신호 또는 코드를 특정하기 위한 선택 명령어를 포함할 수 있다.
테스트 시퀀스 프로그램(62)에 포함된 명령어들은 프로그래머에 의해 특화될 수 있고, 또는 사용자가 가령 전단 프로세서(65) 상에서 테스트 시퀀스 생성 프로그램을 실행시킬 수 있다. 테스트 시퀀스 생성 프로그램은 사용자로 하여금 전단 프로세서(65)에 연결된 입출력 장치(가령, 키보드나 마우스, 미도시)를 통해 DUT 테스트 사항을 선택할 수 있도록 한다. 예를 들어, 테스트 시퀀스 생성 프로그램은 테스트 시퀀스 프로그램 실행 중 사용자가 DUT(70)의 각 핀에 요구되는 테스트 패턴의 유형과 DUT(70)로 출력할 순차적 패턴들의 개수를 선택 및 특정할 수 있도록 한다. 사용자는 테스트 시퀀스 중에 DUT 출력 핀으로부터 예상되는 결과들을 선택 및 특정할 수도 있다. 사용자는 또 DUT(70)에서 요구되는 동작 전압 레벨 및/또는 클록 속도와 같은 DUT(70)의 물리적 특성을 특정화시킬 수 있다. 테스트 시퀀스 프로그램은 DUT의 물리적 특성을 반영하는 명령어들을 포함하여 SCL(20)로 출력되고 DUT로 입력되는 테스트 패턴 신호들이 이하에 설명될 DUT의 동작 신호 요건에 매치되도록 조건화시킬 수 있도록 한다.
어셈블러 프로그램은, (프로그래머에 의해 특정화되거나 테스트 시퀀스 생성 프로그램 실행 중 사용자 선택에 기반한) 테스트 시퀀스 프로그램에 포함되는 명령어들에 기반해 실행 가능한 명령어들을 어셈블리하는데 사용될 수 있다. 실행 가능한 명령어들은 제1명령어 집합(62a) 및/또는 제2명령어 집합(62b)에 포함된다.
복합 테스트 시퀀스 프로그램(62)을 실행하도록 메모리(60)와 램(75) 모두를 이용하는 예로서, 명령어들(62a)의 제1명령어 집합이 메모리(60)로 로드되고 명령어들(62b)의 제2명령어 집합은 램(75)으로 로드된다. 명령어들(62a)의 제1명령어 집합의 시작 어드레스가 REGa와 같은 한 레지스터로 로드되고, 시작 신호가 신호 라인(68)을 통해 FEP(65)에 의해 SCP(25)로 입력된다. SCP(25)는 REGa에 저장된지정 어드레스로부터 (메모리(60)에 저장된) 제1명령어 집합(62a)의 한 명령어를 가져와 테스트 프로그램(62)의 실행을 시작한다. SCP(25)는 SCP(25)로 하여금 램(75)으로부터의 명령어 가져오기를 시작하도록 하는 명령이 읽혀질 때까지 제1명령어 집합(62a)으로부터 명령들을 가져와 실행한다. 예를 들어, 단일화 명령어 집합은 서브루틴 호출 명령인 "CAL address1"을 포함하는데, 이것은 램(75)에 저장된 제2명령어 집합(62b)의 "address1"에 저장된 서브루틴을 특정한 것이다. 이 경우, SCP(25)가 제1명령어 집합(62a)로부터 "CAL address1" 명령을 가져와 디코딩할 때, SCP(25)는 램(75)에 저장된 제2명령어 집합(62b)의 일부로서 저장된 서브루틴으로부터 다음 명령들에 대한 가져오기를 시작한다. SCP(25)는 제2명령어 집합(62b)으로부터 "RET"(리턴) 명령어가 읽혀질 때까지 램(75)으로부터 명령어들의 실행을 계속한다. RET 명령은 호출 명령으로부터 명령어 가져오기로 리턴할 수 있게 하고, 이때, CAL 명령어 다음에 오는 제1명령어 집합(62a)의 명령어로 리턴한다.
단일화 명령어 집합은 램(75)으로부터만 실행될 수 있는 명령어들을 포함할 수 있다. 예를 들어, 단일화 명령어 집합은 램(75)에 저장된 다른 명령어의 어드레스를 특정하는 'JMP address1'(address1으로 점프) 명령을 포함할 수 있다. SCP(25)가 램(75)으로부터 'JMP address1' 명령을 가져와 실행할 때, SCP(25)는 address1부터 명령어들 가져오기를 시작한다. 'JMP address1' 명령은 램(75)에 대한 비선형 억세스를 일으키는 명령어의 예이므로, 'JMP address1' 명령어들은 메모리(60)에 저장된 명령어들을 억세스하는데 사용되지 않으며, 일부 구현예에서는 선형 방식에 의해서만 억세스될 수 있다.
어셈블러 프로그램은 테스트 시퀀스 프로그램에 포함된 어떤 명령어가 제1명령어 집합(62a) 및 제2명령어 집합(62b)에 포함되어야 하는지를 결정할 수도 있다. 예를 들어, 어셈블러는 어느 명령어들이 선형 방식으로 가져와 실행될 수 있고 어느 명령어들이 비선형 방식으로 가져와 실행되는지를 판단한다.
시스템(10)의 한 구현예에 있어서, 램(75)은 메모리(60) 보다 큰 폭을 가진 것으로 구현된다. 따라서 램(75)에 저장된 실행 가능 명령어들은 더 길고, 메모리(60)에 저장된 것들 보다 더 긴 옵코드 필드 및/또는 오퍼랜드 필드들을 포함한다. 예를 들어, 메모리(60)는 32 비트 폭이고 램(75)은 40비트 폭일 수 있다. 그러면, 램(75)에 저장되는 제2명령어 집합(62b)의 명령어는 제1명령어 집합(62a)의 명령어의 오퍼랜드 필드 보다 더 긴 오퍼랜드 필드를 포함할 것이다. 제2명령어 집합에 포함된 보다 긴 오퍼랜드 필드 명령은 제1명령어 집합(62a)에 저장된 명령 보다 더 큰 데이터값 또는 어드레스를 특정하는데 사용된다. 그러나, 제1명령어 집합(62a)의 명령어들은 이전에 실행된 제2명령어 집합(62b)의 명령어에 의해 저장된 카운트값을 이용하여, 제1명령어 집합(62a) (메모리 60) 실행가능 명령어들의 상대적으로 짧은 오퍼랜드 필드를 이용해 가능할 수 있는 것 보다 더 긴 테스트 패턴들의 시퀀스 출력을 발생시킬 수 있다. 보다 상세히 말하면, 제2명령어 집합(62a)에 포함된 한 명령어는, 실행시, 한 데이터값을 CNTRa 등의 카운터로 로드하게 하고, CNTRa의 저장값을 이용하는 제1명령어 집합(62a)의 한 명령어 실행이 그에 뒤따를 수 있다. 이 구현예에서, SCP(25)는 램(75)의 명령어나 메모리(60)의 명령어의 오퍼랜드 필드 크기에 상응하는 오퍼랜드 필드 크기들을 디코드할지의 여부를 결정하는 로직블록(미도시)을 포함할 수 있다.
도 2를 참조하면, 테스트 시스템(10)의 다른 실시예는 데이터 선택 로직(10a)(DSL 10a)를 포함한다. DSL(10a)은 PCL들(37a-37c) 및 APG(41)로부터의 복합 비트 패턴을 선택 및 배분하는 다른 방법을 묘사한다. 어떤 경우들에 있어서, PCL들(37a-37c) 및 APG(41)와 같은 패턴 제어 로직 블록들의 집합으로부터의 출력 라인의 수는 MUX(43)와 같은 단일 멀티플렉서의 입력 라인 용량을 초과할 수 있다. 따라서, DSL(10a)은 데이터 선택 룩업 로직 블록(42)(DSLLB 42)의 출력들에 의해 제어되는 다중 멀티플렉서들(43a-43f)을 이용해 상대적으로 많은 수의 입력들이 멀티플렉싱될 수 있게 한다. 보다 자세히 설명하면, 각각의 PCL(37a-37c) 및 APG(41)는 각각, 버스들(39a-39d)을 통해 32 비트의 데이터를 출력한다. 16개의 선택 멀티플렉서들(43a-43p)은 각자 PCL(37a-37c) 및 APG(41)의 각 출력 버스(39a-39n)로부터 2 비트를 수신하도록 연결된다. 그리고 나서 각 MUX(43a-43p)가 선택되어 16개의 출력 버스들 D(0:1)-D(30:31)을 통해 각각 2 비트들을 출력하도록 되어, 버스(44)를 통한 복합 비트 패턴을 형성한다. 버스(44) 상의 적절한 복합 비트 패턴을 선택하도록 하기 위해, DSLLB(42)는 테스트 시퀀스 프로그램(60a)의 실행 전에 인덱스된 룩업 테이블과 함께 로드된다. DSLLB(42)는 라인(40)을 통해 SCP(25)로부터 4 비트 데이터 선택 인덱스(40a)(DS 인덱스 0:3)를 수신하고, 그리고 나서 각 선택 라인들(43a-43p)을 통해 각각의 MUX(43a-43p)로 3 비트의 선택 코드를 출력하도록 연결된다. 데이터 선택 인덱스(40a)는 시스템(10)의 동작 중에 메모리(60)나 램(75)으로부터 가져온 SDS 명령어(33a)의 오퍼랜드 필드의 일부에해당한다. SCP(25)는 그 SDS 명령어를 디코딩하고 해당하는 네 비트의 데이터 선택 인덱스(40a)(DS Index (0:3))를 DSLLB(42)로 출력한다. DSLLB(42)는 수신된 네 비트의 'DS Index'를 이용해, 저장된 룩업 테이블을 인덱싱하여 16개의 서로 다른 3 비트 선택 코드들을 출력한다. 3 비트 선택 코드들은 서로 다른 선택 버스들(45a-45p)를 통해 각각의 MUX(43a-43p)로 보내진다.
인덱스된 룩업 테이블을 이용해 여러개의 멀티플렉서들을 제어하느 이러한 방식은 상대적으로 짧은 옵코드 필드를 가진 실행 가능 명령어가 상대적으로 많은 수의 멀티플렉서들을 제어할 수 있게 한다. 이 경우, SDS 명령이 어셈블되어 4 비트 옵코드 필드에 의해 표현되고 각각 라인들(45a-45p)을 통해 DSLLB(42)로부터 출력된 16개의 3비트 선택 코드들을 선택하는데 사용된다. 이것은 상대적으로 작은 옵코드가 여러개의 멀티플렉서들을 제어하는 충분한 개개의 선택 코드들을 생성하는데 사용되기 때문에 이점을 제공한다.
시스템(10a)의 한 구현예에서, 복합 비트 패턴(44)은 분할되어 집적 회로의 서로 다른 물리적 부분들, 또는 서로 다른 회로 보드들로 분배된다. 예를 들어, 32 비트의 출력 버스(44)는 16 비트 그룹 두 개(D(0-15) 및 D(16-31))로 나눠져서 각각 서로 다른 회로 보드들이나 집적 회로들로 분배된다. 이러한 것은 32 비트의 테스트 패턴을 제어하는데 필요한 로직 량이 하나의 집적 회로 또는 회로 보드의 회로 용량을 초과하는 경우가 될 것이다.
메모리(60) 및/또는 램(75)은 반드시 테스트 시스템(10 또는 10a)의 모든 별도의 패턴 특정의 로직 블록들에 대해 사용되어야 하는 것은 아니다. 그렇기 보다는, 메모리(60)나 램(75)이 둘 이상의 서로 다른 패턴 특정 로직 블록들의 어떤 조합을 제공할 수 있으면서, 다른 로직 블록들 역시 전용 메모리들을 포함하고/거나 별도의 단일화된 메모리 어드레스 공간을 공유할 수 있다.
메모리(60) 및/또는 램(75)은 'PC 표준' 메모리, 즉 PC 표준 통신 프로토콜에 따라 동작하도록 구성된 메모리를 이용해 구현될 수 있다. 일반적으로, 하나의 단일화된 메모리 어드레스 공간으로서 억세스될 수 있는, 물리적이거나 전기적인 어떤 메모리 구조가 사용될 것이다.
시스템(10)의 일실시예에서, 특정 데이터 집합(60a-60n)과 연관된 링크 테이블들이 데이터 집합과 함께 메모리(60) 및/또는 램(75)에 저장될 수 있다. 링크 테이블들은 한 데이터 집합의 서로 다른 세그먼트들에 대한 포인터들을 포함하고 데이터 집합이 메모리에 저장된 다음 비선형 방식으로 읽혀질 수 있도록 한다. 이에 따라, 특정 PCL(37a-37c)은 관련 FIFO 레지스터들(38a-38c)에 링크 테이블들을 저장하고, 저장된 링크 테이블들은 메모리(60) 및/또는 램(75)에 저장되어 이들 링크 테이블들에 기반해 조직된 데이터 집합의 세그먼트들을 억세스하는데 사용될 수 있다.
상술한 실시예들에서 집적 회로를 테스트하는 프로세스(또는 방법)은 도 1 내지 2의 하드웨어 및 소프트웨어의 사용에 국한되지 않는다. 그 프로세스(이제부터 프로세스(200)라 칭한다)는 어떤 계산기 또는 프로세싱 환경에서도 적용능력을 발견할 수 있다. 프로세스(200)는 하드웨어, 소프트웨어, 또는 그 둘의 조합 안에서 구현될 수 있다. 프로세스(200)는, 프로세서 및 그 프로세서에 의해 읽혀질 수있는 저장 매체를 각각 포함하는 프로그래머블 컴퓨터 또는 기타 장치들에서 실행하는 컴퓨터 프로그램들에서 구현될 수 있다.
여기 설명되지 않은 다른 실시예들 역시 다음에 기술될 청구항들의 범주 안에 있을 수 있다.

Claims (25)

  1. 집적 회로(IC) 테스트 장치에 있어서,
    테스트할 디바이스의 입력 핀에 연결될 수 있는 출력 채널을 구비한 시퀀스 제어 로직 유닛;
    상기 시퀀스 제어 로직 유닛에 의해 실행될 수 있는 명령어들을 구비한 제1명령어 집합을 저장하는 제1메모리; 및
    상기 시퀀스 제어 로직 유닛에 의해 실행될 수 있는 명령어들을 구비한 제2명령어 집합을 저장하는 제2메모리를 포함하고,
    상기 제1메모리 및 제2메모리 중 적어도 하나는 비순차적 방식으로 엑세스될 수 있는 메모리를 구비함 특징으로 하는 장치.
  2. 제1항에 있어서, 상기 제1메모리 및 제2메모리 중 적어도 하나는 데이터 집합을 저장하는 메모리를 포함하고, 상기 데이터 집합은 상기 시퀀스 제어 로직 유닛에 의해 상기 출력 채널로 출력할 테스트 패턴을 결정하는데 사용됨을 특징으로 하는 장치.
  3. 제1항에 있어서, 상기 장치 동작 중에, 명령어들로 된 상기 제1명령어 집합으로부터의 제1명령어의 실행은, 명령어들로 된 제2명령어 집합으로부터 제2명령어 실행을 유발함을 특징으로 하는 장치.
  4. 제1항에 있어서, 상기 제1메모리는 제1폭을 가진 메모리를 포함하고, 제2메모리는 상기 제1폭과는 다른 제2폭을 가진 메모리를 포함함을 특징으로 하는 장치.
  5. 제4항에 있어서, 상기 제1메모리에 저장된 명령어들은 제1길이를 가진 명령어들을 포함하고, 상기 제2메모리에 저장된 명령어들은 상기 제1길이와 다른 제2길이를 가진 명령어들을 포함함을 특징으로 하는 장치.
  6. 제2항에 있어서, 상기 시퀀스 제어 로직 유닛은,
    적어도 독립적인 두 요청자들로부터 메모리 억세스 요청을 수신하도록 연결된 읽기/쓰기 큐(read/write queue)를 구비한 메모리 인터페이스를 더 포함함을 특징으로 하는 장치.
  7. 제6항에 있어서, 상기 시퀀스 제어 로직 유닛은,
    상기 메모리 인터페이스로부터 실행 가능한 명령어들을 수신 및 홀딩하도록 연결된 명령어 캐시를 더 포함함을 특징으로 하는 장치.
  8. 제2항에 있어서, 상기 제1메모리 및 제2메모리 중 적어도 하나는 상기 테스트할 디바이스로부터 수신된 테스트 결과를 저장하는 메모리를 구비함을 특징으로 하는 장치.
  9. 제2항에 있어서,
    상기 제1명령어 집합, 제2명령어 집합, 및 데이터 집합 중 적어도 하나를 상기 메모리 인터페이스로 로드하도록 연결된 전단(front-end) 프로세서를 더 포함함을 특징으로 하는 장치.
  10. 제2항에 있어서, 상기 시퀀스 제어 로직 유닛은,
    적어도 하나가, 데이터 집합으로부터 수신된 데이터에 기반해 테스트 패턴을 출력하는 로직을 구비하는, 복수개의 패턴 제어 로직 블록들을 더 포함함을 특징으로 하는 장치.
  11. 제10항에 있어서,
    상기 복수개의 패턴 제어 로직 블록들 중 해당하는 하나로부터 적어도 한 출력 비트를 수신하는 복수개의 선택 멀티플렉서들; 및
    복수개의 선택 멀티플렉서들 각각의 출력을 제어하는 데이터 선택 로직 블록을 더 포함함을 특징으로 하는 장치.
  12. 제11항에 있어서, 상기 데이터 선택 로직 블록은 제1메모리 및 제2메모리 중 하나에 저장된 한 실행가능한 명령어의 일부에 기반해 복수개의 선택 멀티플렉서들 각각에 대한 데이터 선택 코드들을 결정함을 특징으로 하는 장치.
  13. 제2항에 있어서, 제1메모리 및 제2메모리에 저장된 데이터 집합은 기능 데이터, 스캔 데이터, 및 디지털화된 아날로그 데이터를 나타내는 데이터 집합 중 적어도 하나를 포함함을 특징으로 하는 장치.
  14. 집적 회로 테스트 방법에 있어서,
    제1메모리에 시퀀스 제어 로직 유닛에 의해 사용될 수 있는 제1명령어 집합을 저장하는 단계;
    제2메모리에 시퀀스 제어 로직 유닛에 의해 사용될 수 있는 제2명령어 집합을 저장하는 단계; 및
    테스트할 디바이스의 입력 핀들에 연결될 수 있는 출력 채널로 출력할 테스트 패턴을 결정하도록 제1메모리 및 제2메모리 둘 모두에 저장된 명령어들을 억세스하는 단계를 포함함을 특징으로 하는 방법.
  15. 제14항에 있어서, 상기 억세스 단계는,
    제1메모리 및 제2메모리 중 적어도 하나에 저장된 명령어들을 비순차적 방식으로 억세스하는 단계를 포함함을 특징으로 하는 방법.
  16. 제14항에 있어서,
    제1메모리에 저장된 명령어들로 된 제1명령어 집합으로부터 제1명령어를 실행하는 단계; 및
    제1명령어 실행 다음에, 제2메모리에 저장된 명령어들로 된 제2명령어 집합으로부터 제2명령어를 실행하는 단계를 더 포함함을 특징으로 하는 방법.
  17. 제14항에 있어서, 상기 제1메모리에 명령어들을 저장하는 단계는 제1폭을 가진 명령어들을 저장하는 단계를 포함하고, 상기 제2메모리에 명령어들을 저장하는 단계는 제1폭과는 다른 제2폭을 가진 명령어들을 저장하는 단계를 포함함을 특징으로 하는 방법.
  18. 테스트 시스템 명령어 구조에 있어서,
    테스트 시스템으로 하여금 복수개의 패턴 제어 로직 블록들로부터 복합 출력 패턴을 선택하도록 하는 데이터 선택 명령어를 포함함을 특징으로 하는 명령어 구조.
  19. 제18항에 있어서,
    옵코드(opcode) 필드; 및
    상기 복합 출력 패턴을 특정하는 오퍼랜드(operand) 필드를 더 포함함을 특징으로 하는 명령어 구조.
  20. 제19항에 있어서, 상기 오퍼랜드 필드는 데이터 룩업 테이블에 대한 인덱스를 결정하고 복수개의 패턴 제어 블록들로부터 복합 출력 패턴의 선택을 제어하는데 사용됨을 특징으로 하는 명령어 구조.
  21. 테스트 시스템 명령어 구조에 있어서,
    제1메모리로부터 읽혀질 때 테스트 시스템으로 하여금 제2메모리로부터 다음 명령어를 읽도록 하는 호출(call) 명령어를 포함함을 특징으로 하는 명령어 구조.
  22. 제21항에 있어서,
    옵코드 필드; 및
    제2메모리에 저장되는 명령어의 어드레스를 특정하는 오퍼랜드 필드를 더 포함함을 특징으로 하는 명령어 구조.
  23. 제22항에 있어서,
    제2메모리로부터 읽혀질 때 테스트 시스템으로 하여금 제1메모리로부터 다음 명령어를 가져오도록 하는 리턴 명령어를 더 포함함을 특징으로 하는 명령어 구조.
  24. 테스트 시퀀스 프로그램에 포함된 명령어들에 해당하는 실행가능한 명령어들을 어셈블리하는 단계를 포함하고,
    상기 어셈블리 단계는,
    테스트 시스템에 의해 실행될 수 있는 명령어들로 된 제1명령어 집합 또는제2명령어 집합에 포함될 제1실행 가능 명령어를 결정하는 단계를 더 포함함을 특징으로 하는 방법.
  25. 제24항에 있어서, 상기 결정 단계는,
    상기 테스트 시스템에 의해 상기 제1실행 가능 명령어가 순차적 방식으로 실행될지의 여부를 결정하는 단계를 더 포함함을 특징으로 하는 방법.
KR10-2004-7017812A 2002-05-08 2003-05-08 다중 명령 메모리들을 포함하는 테스터 시스템 KR20050007473A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US37934102P 2002-05-08 2002-05-08
US60/379,341 2002-05-08
PCT/US2003/014726 WO2003096034A2 (en) 2002-05-08 2003-05-08 Tester system having multiple instruction memories

Publications (1)

Publication Number Publication Date
KR20050007473A true KR20050007473A (ko) 2005-01-18

Family

ID=29420515

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7017812A KR20050007473A (ko) 2002-05-08 2003-05-08 다중 명령 메모리들을 포함하는 테스터 시스템

Country Status (6)

Country Link
US (1) US7039841B2 (ko)
JP (1) JP2005524851A (ko)
KR (1) KR20050007473A (ko)
CN (1) CN1653345A (ko)
AU (1) AU2003233536A1 (ko)
WO (1) WO2003096034A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100974669B1 (ko) * 2009-11-26 2010-08-09 주식회사 아이티엔티 룩업 테이블을 내장한 보스트 회로 장치 또는 패턴 생성 장치, 및 이를 이용한 테스트 대상 디바이스에 대한 테스트 데이터 출력 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003096039A1 (en) * 2002-05-08 2003-11-20 Nptest, Inc. Tester system having a multi-purpose memory
EP1505491A3 (en) * 2003-08-06 2005-03-02 Agilent Technologies Inc Sequencer unit with instruction buffering
US7810005B1 (en) * 2006-11-01 2010-10-05 Credence Systems Corporation Method and system for correcting timing errors in high data rate automated test equipment
US8719649B2 (en) 2009-03-04 2014-05-06 Alcatel Lucent Method and apparatus for deferred scheduling for JTAG systems
US8621301B2 (en) * 2009-03-04 2013-12-31 Alcatel Lucent Method and apparatus for virtual in-circuit emulation
US8677198B2 (en) 2009-03-04 2014-03-18 Alcatel Lucent Method and apparatus for system testing using multiple processors
US8775884B2 (en) 2009-03-04 2014-07-08 Alcatel Lucent Method and apparatus for position-based scheduling for JTAG systems
CN101989464B (zh) * 2009-08-06 2012-10-31 中芯国际集成电路制造(上海)有限公司 存储器测试方法和外部测试仪
US9183105B2 (en) * 2013-02-04 2015-11-10 Alcatel Lucent Systems and methods for dynamic scan scheduling
US9134377B2 (en) * 2013-03-14 2015-09-15 Teradyne, Inc. Method and apparatus for device testing using multiple processing paths
US11163572B2 (en) 2014-02-04 2021-11-02 Micron Technology, Inc. Memory systems and memory control methods
CN106294034B (zh) * 2015-05-18 2019-08-13 比亚迪股份有限公司 单片机的测试方法和系统
CN105957557B (zh) * 2016-05-03 2018-12-25 中国航天科技集团公司第九研究院第七七一研究所 一种面向指令存储器的可靠性评估方法
US10241789B2 (en) * 2016-12-27 2019-03-26 Intel Corporation Method to do control speculation on loads in a high performance strand-based loop accelerator
US11281530B2 (en) * 2020-08-10 2022-03-22 Samsung Electronics Co., Ltd. Method and system for validating a memory device
CN114333281B (zh) * 2022-01-05 2023-04-25 北京广利核系统工程有限公司 一种模拟控制信号的信号传递链路

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286120B1 (en) * 1994-09-01 2001-09-04 Teradyne, Inc. Memory architecture for automatic test equipment using vector module table
US5657486A (en) * 1995-12-07 1997-08-12 Teradyne, Inc. Automatic test equipment with pipelined sequencer
US5737512A (en) * 1996-05-22 1998-04-07 Teradyne, Inc. Fast vector loading for automatic test equipment
US6826721B2 (en) * 2001-11-01 2004-11-30 Agilent Technoloiges, Inc. Data accelerator and methods for increasing data throughput

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100974669B1 (ko) * 2009-11-26 2010-08-09 주식회사 아이티엔티 룩업 테이블을 내장한 보스트 회로 장치 또는 패턴 생성 장치, 및 이를 이용한 테스트 대상 디바이스에 대한 테스트 데이터 출력 방법

Also Published As

Publication number Publication date
AU2003233536A8 (en) 2003-11-11
JP2005524851A (ja) 2005-08-18
AU2003233536A1 (en) 2003-11-11
US7039841B2 (en) 2006-05-02
WO2003096034A3 (en) 2004-02-19
US20040059437A1 (en) 2004-03-25
CN1653345A (zh) 2005-08-10
WO2003096034A2 (en) 2003-11-20

Similar Documents

Publication Publication Date Title
KR20050007473A (ko) 다중 명령 메모리들을 포함하는 테스터 시스템
US5278961A (en) Physical address to logical address translator for memory management units
US5392408A (en) Address selective emulation routine pointer address mapping system
EP0081357B1 (en) Branch predicting computer
US5819065A (en) System and method for emulating memory
US7177876B2 (en) Speculative load of look up table entries based upon coarse index calculation in parallel with fine index calculation
US6449714B1 (en) Total flexibility of predicted fetching of multiple sectors from an aligned instruction cache for instruction execution
US5144242A (en) Continually loadable microcode store for MRI control sequencers
JP5638108B2 (ja) 処理スケジューリング方法、コンピュータおよびコンピュータプログラム
US20200364054A1 (en) Processor subroutine cache
US20080184009A1 (en) Shared Resources in a Chip Multiprocessor
US7376813B2 (en) Register move instruction for section select of source operand
IE990754A1 (en) An apparatus for software initiated prefetch and method therefor
KR100875377B1 (ko) 처리 시스템에서 스택 팝 및 푸쉬 동작들을 수행하는 장치 및 방법
US7054802B2 (en) Hardware-assisted design verification system using a packet-based protocol logic synthesized for efficient data loading and unloading
US7171598B2 (en) Tester system having a multi-purpose memory
US6799264B2 (en) Memory accelerator for ARM processor pre-fetching multiple instructions from cyclically sequential memory partitions
KR100442306B1 (ko) 파이프라인마이크로프로세서테스트장치
US20070239422A1 (en) Hardware emulation system having a heterogeneous cluster of processors
WO1996037838A9 (en) Pipeline microprocessor test method and apparatus
US20070179772A1 (en) Method and apparatus for increasing the efficiency of an emulation engine
EP1101158A2 (en) Algorithmic pattern generator
US7502974B2 (en) Method and apparatus for determining which timing sets to pre-load into the pin electronics of a circuit test system, and for pre-loading or storing said timing sets
US5864877A (en) Apparatus and method for fast forwarding of table index (TI) bit for descriptor table selection
US6110225A (en) Inverse assembler with reduced signal requirements using a trace listing

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid