KR100586303B1 - 반도체 메모리 장치의 테스트 장치 및 방법 - Google Patents

반도체 메모리 장치의 테스트 장치 및 방법 Download PDF

Info

Publication number
KR100586303B1
KR100586303B1 KR1020040104506A KR20040104506A KR100586303B1 KR 100586303 B1 KR100586303 B1 KR 100586303B1 KR 1020040104506 A KR1020040104506 A KR 1020040104506A KR 20040104506 A KR20040104506 A KR 20040104506A KR 100586303 B1 KR100586303 B1 KR 100586303B1
Authority
KR
South Korea
Prior art keywords
loop
auto
instruction
source file
command
Prior art date
Application number
KR1020040104506A
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 주식회사디아이
Priority to KR1020040104506A priority Critical patent/KR100586303B1/ko
Application granted granted Critical
Publication of KR100586303B1 publication Critical patent/KR100586303B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

본 발명은 반도체 메모리 장치의 테스트 장치 및 방법을 공개한다. 이 반도체 메모리 장치의 테스트 방법은 오토 루프 명령어들에 따른 반복 구간들을 획득하고, 상기 반복 구간들이 논리적으로 교차되면, 논리적인 오류가 발생하였음 확인하는 네스트 루프 체크 단계와, 논리적인 오류가 발생하지 않으면, 복수개의 오토 루프 명령어들이 사용하는 루프 인덱스 값들을 획득하여 상기 루프 인덱스 값들을 가지는 루프 인덱스들을 지정하고, 오토 루프 명령어의 포맷을 루프 명령어의 포맷으로 변환하는 변환 단계를 구비하는 것을 특징으로 한다. 따라서 오토 루프 명령어를 이용하여 작업용 소스 파일을 작성하면, 네스트 루프 체크 모듈 및 소스 파일 변환 모듈이 테스트 수행 모듈이 인식할 수 있는 루프 명령어를 가지는 실행용 소스 파일로 변환하여 준다. 이에 프로그래머가 보다 용이하게 작업용 소스 파일을 작성할 수 있도록 한다. 또한 네스트 루프 체크 모듈은 반복 구간 시작 지시어들과 이를 호출하는 오토 루프 명령어들에 의해 생성된 반복 구간들에 의한 논리적인 오류를 감지하고, 논리적인 오류를 발생한 오토 루프 명령어와 이 오토 루프 명령어가 기입된 행수 정보를 제공하여, 프로그래머가 보다 용이하게 디버그 할 수 있도록 한다. 더욱이, 소스 파일 변환 모듈은 루프 인덱스들이 중첩되어 지정되는 것을 사전에 방지하여 테스트 장치의 시스템 효율을 최대화한다.

Description

반도체 메모리 장치의 테스트 장치 및 방법{Test apparatus of semiconductor memory device and method of it}
도 1은 종래의 기술에 따른 반도체 메모리 장치의 테스트 장치의 내부 블록도를 도시한 도면이다.
도 2a는 종래의 기술에 따른 소스 파일의 일실시예를 도시한 도면.
도 2b는 종래의 기술에 따른 논리적 오류를 가지는 소스 파일의 일실시예를 도시한 도면.
도 3은 본 발명에 따른 반도체 메모리 장치의 테스트 장치의 내부 블록도를 도시한 도면이다.
도 4a는 본 발명에 따른 작업용 소스 파일의 일실시예를 도시한 도면.
도 4b는 본 발명에 따른 실해용 소스 파일의 일실시예를 도시한 도면.
도 5는 본 발명에 따른 반도체 메모리 장치의 테스트 방법을 개략적으로 설명하기 위한 흐름도.
도 6은 도 5의 S2 단계의 네스트 루프 체크 단계를 보다 상세히 설명하기 위한 흐름도.
도 7은 도 6의 네스트 루프 체크 단계에 의해 획득된 반복 구간들과, 이에 따라 발생되는 논리적인 오류를 개략적으로 설명하기 위한 도면.
도 8은 도 5의 S5 단계의 작업용 소스 파일을 실행용 소스 파일로 변환하는 단계를 보다 상세히 설명하기 위한 흐름도.
본 발명은 테스트 장치에 관한 것으로, 더욱 상세하게는 반도체 메모리 장치의 테스트를 위한 프로그램 작성 시에 루프 카운터를 자동으로 지정할 수 있도록 하고, 루프 카운터로 인한 논리적인 오류를 감지할 수 있도록 하는 반도체 메모리 장치의 테스트 장치 및 방법에 관한 것이다.
반도체 메모리 장치는 데이터를 리드 및 라이트할 수 있는 메모리 셀을 복수개 구비하는 장치이다. 이에 반도체 메모리 장치의 성능을 테스트하기 위한 테스트 방법은 테스트 대상(예를 들어, 메모리 셀)을 변경하면서 동일 테스트를 반복 수행한다.
이때에 테스트 프로그램이 동일 테스트를 반복 수행할 수 있도록 하는 것이 루프 카운터인데, 루프 카운터는 반복 횟수를 지정하는 루프 인덱스, 반복 구간의 시작 시점을 지정하는 반복 구간 시작 지시어, 및 루프 동작을 요청하고, 반복 구간의 종료 시점을 지정하는 루프 명령어로 구성된다.
도 1은 종래의 기술에 따른 루프 카운터를 이용하는 반도체 메모리 장치의 테스트 장치의 내부 블록도를 도시한 도면으로, 소스 파일(11)과 테스트 수행 모듈(12)을 구비한다.
소스 파일(11)은 도 3b에 도시된 바와 같이, 루프 카운터의 루프 인덱스(I0, I1, I2, I5)를 구비하는 선언부(head), 반복 구간 시작 지시어들(Contact1, Contact2)과 변환된 루프 명령어들(JIR)을 사용하여 반복 구간들(e'~g', e'~h', f'~i', f'~j')을 설정하는 구현부(body)를 구비한다.
이때의 루프 명령어(JIR)는 다음과 같은 포맷을 가진다.
루프 명령어(JIR)는 "(루프 명령어) + (루프 인덱스 값) + (반복 구간 시작 지시어) +(커맨드)"로 구성된다. 예를 들어 반복 구간 시작 지시어가 "Contact1"이면, 루프 명령어(JIR)는 "JIR I0/D="Contact1 / A+S0/M=APRE2" 로 구현된다.
테스트 수행 모듈(12)은 프로그래머에 의해 테스트 동작이 요청되면, 소스 파일(12)을 리딩하고, 소스 파일(12)에 의한 동작 시퀀스에 따라 반도체 메모리 장치를 테스트한다.
즉, 테스트 수행 모듈(12)은 반도체 메모리 장치의 테스트 시에 반복 구간 시작 지시어(CONTACT1)와 이를 호출하는 루프 명령어(JIR)가 감지되면, 반복 구간 시작 지시어(CONTACT1)와 루프 명령어(JIR)에 대응되는 반복 구간(e~g)의 동작을 루프 인덱스(I0)에서 지정한 횟수(2047 회) 만큼 반복하면서 해당 동작을 수행한다.
이와 같이 종래의 기술에 따른 반도체 메모리 장치의 테스트 장치는 소스 파일(11)내의 루프 카운터를 지정하였으며, 이는 프로그래머가 루프 인덱스, 반복 구간 시작 지시어, 및 루프 명령어 즉, 반복 구간의 동작을 반복하는 회수 및 반복 구간을 직접 지정함을 통해 이루어졌다.
그러나 실제의 테스트 장치는 테스트 대상 및 테스트 방법에 따라 복수개의 루프 카운터를 사용하며, 루프 카운터 안에 다른 루프 카운터가 복수개의 중첩되어 사용되는 경우가 많다.
따라서 프로그래머가 소스 파일의 선언부에서 각 루프 카운터에 대응되는 루프 카운터를 지정하고, 구현부에서 루프 카운터의 사용 시점을 지정하기란 용이하지 않게 된다.
만약, 프로그래머가 루프 카운터를 잘못 지정하거나 루프 카운터의 반복 구간을 잘못 지정한다면, 테스트 장치는 프로그래머가 원한 것과는 다른 동작 시퀀스가 수행되게 된다. 즉, 테스트 장치가 오동작하게 된다.
예를 들어, 프로그래머가 도 2b와 도시된 바와 같이, 반복구간(k~g)과, 반복구간(e~h)을 설정하면, 반복구간(k~g)과, 반복구간(e~h)은 논리적으로 교차되어 논리적인 오류를 발생한다. 이에 테스트 장치는 무한 루프 상태로 진입하게 되어 오동작 된다.
또한 소스 파일의 선언부에서 각 루프 카운터에 대응되는 루프 인덱스를 최적화하여 지정하기란 용이하지 않다. 이러한 문제는 루프 카운터의 개수를 충분히 증가시켜 해결할 수 있기는 하나, 루프 카운터를 하드웨어적으로 구성하는데 부담이 되므로 실제의 적용 예에서는 루프 카운터의 루프 인덱스를 테스트 장치의 시스템 효율 측면을 고려하여 일정 개수로 한정한다.
이상에서 살펴본바와 같이, 프로그래머가 직접 루프 카운터를 지정하도록 하는 테스트 장치의 소스 파일을 작성하기란 용이하지 않으며, 소스 파일이 잘못 작 성되었다 하더라도 루프 카운터에 의한 오동작은 논리적인 오류에 해당하여 에러 검출 수단 즉, 종래의 컴파일러를 통해 검출하지 못한다.
이에 루프 카운터를 잘못 지정함으로써 발생하는 논리적인 오류는 테스트 장치가 반도체 메모리 장치를 테스트하는 경우에 발견되어, 불필요한 시간과 비용이 낭비되는 문제가 발생한다.
본 발명의 목적은 루프 카운터를 보다 용이하게 지정하고, 루프 카운터에 의한 논리적인 오류를 감지하여 통보할 수 있도록 하여 테스트 장치의 생산성 및 테스트 가격을 감소시키는 반도체 메모리 장치의 테스트 장치 및 방법을 제공하는 것이다.
상기의 목적을 달성하기 위한 본 발명의 반도체 메모리 장치의 테스트 장치는 반복 구간 시작 지시어와 오토 루프 명령어를 이용하여 반복 구간을 지정하는 작업용 소스 파일을 체크하여 복수개의 반복 구간들을 획득하고, 논리적으로 교차되는 상기 반복 구간들이 존재하면 상기 작업용 소스 파일에 논리적인 오류가 발생함을 통보하는 네스트 루프 체크 모듈과, 상기 작업용 소스 파일에 논리적인 오류가 발생하지 않음이 확인되면, 상기 오토 루프 명령어들로부터 루프 인덱스 값들을 획득하여 루프 인덱스들을 지정하고, 상기 루프 인덱스들을 이용하여 상기 오토 루프 명령어들 각각의 포맷을 루프 명령어의 포맷으로 변환하여 상기 작업용 소스 파일을 실행용 소스 파일로 변환하는 소스 파일 변환 모듈을 구비하는 것을 특징으로 한다.
상기의 목적을 달성하기 위한 본 발명의 반도체 메모리 장치의 테스트 방법은 오토 루프 명령어들에 따른 반복 구간들을 획득하고, 상기 반복 구간들이 논리적으로 교차되면, 논리적인 오류가 발생하였음 확인하는 네스트 루프 체크 단계와, 논리적인 오류가 발생하지 않으면, 복수개의 오토 루프 명령어들이 사용하는 루프 인덱스 값들을 획득하여 상기 루프 인덱스 값들을 가지는 루프 인덱스들을 지정하고, 오토 루프 명령어의 포맷을 루프 명령어의 포맷으로 변환하는 변환 단계를 구비하는 것을 특징으로 한다.
이하, 첨부한 도면을 참고로 하여 본 발명의 반도체 메모리 장치의 테스트 장치 및 방법을 설명하면 다음과 같다.
도 3은 본 발명에 따른 반도체 메모리 장치의 테스트 장치의 내부 블록도를 도시한 도면이다.
도 3을 참조하면, 본 발명에 따른 반도체 메모리 장치의 테스트 장치는 작업용 소스 파일(21), 네스트 루프 체크 모듈(22), 소스 파일 변환 모듈(23), 실행용 소스 파일(24), 및 테스트 수행 모듈(25)을 구비한다.
소스 파일(21)은 도 4a에 도시된 바와 같이, 루프 카운터의 루프 인덱스를 지정하지 않는 선언부(head)와 반복 구간 시작 지시어들(Contact1, Contact2)과 오토 루프 명령어들(Autoloop)을 사용하여 반복 구간들(e~g, e~h, f~i, f~j)을 설정하는 구현부(body)를 구비한다.
이때의 오토 루프 명령어(Autoloop)는 다음과 같은 포맷을 가진다.
오토 루프 명령어(Autoloop)는 "(오토 루프 명령어) + (반복 구간 시작 지시어) + (루프 인덱스 값) +(커맨드)"로 구성된다. 예를 들어 반복 구간 시작 지시어가 "Contact1"이면, 오토 루프 명령어는 " Autoloop Contact1 2047 / A+S0/M=APRE2" 로 구현된다.
네스트 루프 체크 모듈(22)은 작업용 소스 파일(21)의 네스트 루프 체크 동작이 요청되면, 작업용 소스 파일(21)을 체크하여 논리적인 오류 발생 여부를 확인한다. 이를 위해 네스트 루프 체크 모듈(22)은 반복 구간 시작 지시어들과 오토 루프 명령어들에 의한 반복 구간들을 획득하고, 논리적으로 교차되는 반복 구간들이 존재하는지 판단한다. 판단결과, 논리적으로 교차되는 반복 구간들이 존재하면 작업용 소스 파일(21)에 논리적인 오류가 발생함을 통보한다.
소스 파일 변환 모듈(23)은 네스트 루프 체크 모듈(22)의 동작결과, 작업용 소스 파일(21)에 논리적인 오류가 발생하지 않으면, 작업용 소스 파일(21)을 실행용 소스 파일(24)로 변환한다. 이를 위해, 소스 파일 변환 모듈(23)은 오토 루프 명령어를 검색하고, 오토 루프 명령어로부터 루프 인덱스 값을 획득하여, 소스 파일의 선언부에 루프 인덱스를 지정함과 동시에 오토 루프 명령어의 포맷을 루프 명령어의 포맷으로 변환한다.
실행용 소스 파일(24)은 도 4b에 도시된 바와 같이, 루프 카운터의 루프 인덱스(I0, I1, I2, I5)를 구비하는 선언부(head), 반복 구간 시작 지시어들(Contact1, Contact2)과 변환된 루프 명령어들(JIR)을 사용하여 반복 구간들(e'~g', e'~h', f'~i', f'~j')을 설정하는 구현부(body)를 구비한다.
이때의 루프 명령어(JIR)는 다음과 같은 포맷을 가진다.
루프 명령어(JIR)는 "(루프 명령어) + (루프 인덱스 값) + (반복 구간 시작 지시어) +(커맨드)"로 구성된다. 예를 들어 반복 구간 시작 지시어가 "Contact1"이면, 루프 명령어(JIR)는 "JIR I0/D="Contact1 / A+S0/M=APRE2" 로 구현된다.
즉, 본 발명에 따른 실행용 소스 파일(24)은 도 1에 도시된 종래 기술에 따른 소스 파일과 동일하다.
테스트 수행 모듈(25)은 프로그래머에 의해 테스트 동작이 요청되면, 실행용 소스 파일(24)을 리딩하고, 실행용 소스 파일에 의한 동작 시퀀스에 따라 반도체 메모리 장치를 테스트한다.
도 5는 본 발명에 따른 반도체 메모리 장치의 테스트 방법을 개략적으로 설명하기 위한 흐름도이다.
먼저, 도 4와 같이 오토 루프 명령어를 포함하는 작업용 소스 파일(21)의 작성이 완료되고, 네스트 루프 체크 동작이 요청되면(S1). 네스트 루프 체크 모듈(22)은 작성 완료된 작업용 소스 파일(21)을 체크하여 반복 구간 시작 지시어들과 오토 루프 명령어들을 사용하여 반복 구간들을 획득하고, 논리적으로 교차되는 반복 구간들이 존재하는지 판단한다(S2).
S2 단계의 판단결과, 논리적으로 교차되는 반복 구간들이 존재하여 논리적인 오류가 발생하면(S3), 네스트 루프 체크 모듈(22)은 작업용 소스 파일(21)에 논리적인 오류가 발생하였음과, 논리적인 오류를 가지는 오토 루프 명령어가 작성된 행수를 디스플레이부(미도시)를 통해 통보한다(S4).
S4 단계의 판단결과, 논리적인 오류가 발생하지 않았으면, 소스 파일 변환 모듈(23)은 복수개의 오토 루프 명령어들을 검색하고, 검색된 오토 루프 명령어들로부터 루프 인덱스 값을 획득하여, 획득된 루프 인덱스 값을 가지는 루프 인덱스들을 작업용 소스 파일(21)의 선언부에 지정한다. 그리고 오토 루프 명령어의 포맷을 루프 명령어의 포맷으로 변환하여 작업용 소스 파일(21)을 실행용 소스 파일(24)로 변환한다(S5).
S5 단계를 통해 실행용 소스 파일(24)로의 변환이 완료되고, 테스트 수행 모듈(5)은 테스트 동작이 요청되면(S6), 실행용 소스 파일(24)을 리딩하고, 실행용 소스 파일(24)의 동작 시퀀스에 따라 반도체 메모리 장치를 테스트한다(S7).
이와 같이, 본 발명에 따른 반도체 메모리 장치의 테스트 방법은 프로그래머가 오토 루프 명령어를 이용하여 작업용 소스 파일(21)을 작성하면, 네스트 루프 체크 모듈 및 소스 파일 변환 모듈을 통해 테스트 수행 모듈(5)이 인식할 수 있는 루프 명령어를 가지는 실행용 소스 파일(24)로 변환하여 준다.
이에 프로그래머가 보다 용이하게 작업용 소스 파일을 작성할 수 있도록 한다.
도 6은 도 5의 S2 단계의 네스트 루프 체크 단계를 보다 상세히 설명하기 위한 흐름도이다.
네스트 루프 체크 모듈(22)은 작업용 소스 파일(2)의 구현부의 첫 행부터 반복 구간 시작 지시어를 검색하여, 반복 구간 시작 지시어와 이의 행수를 획득한다(S11).
S11 단계를 통해 반복 구간 시작 지시어가 획득되면, 반복 구간 시작 지시어가 기입된 행 이하를 검색하여, 반복 구간 시작 지시어를 호출하는 오토 루프 명령어를 획득하고(S12), 현재 검색된 오토 루프 명령어가 기입된 행과 반복 구간 시작 지시어가 기입된 행간을 반복 구간으로 설정한다(S13).
그리고 설정된 반복 구간 내에 현재 획득된 반복 구간 내에 네스트 루프 체크를 완료한 반복 구간 시작 지시어를 호출하는 루프 명령어가 존재하는지를 확인한다(S14).
S14 단계의 확인 결과, 현재 검색된 반복 구간 내에 네스트 루프 체크를 완료한 반복 구간 시작 지시어를 호출하는 루프 명령어가 존재하면, 현재 검색된 반복 구간은 상이한 반복 구간 시작 지시어와 오토 루프 명령어에 의한 반복 구간과 논리적으로 교차되어, 논리적인 오류를 가짐을 프로그래머에게 통보한다(S15).
S15 단계에서 네스트 루프 체크 모듈(22)은 프로그래머에게 현재 검색된 오토 루프 명령어와, 오토 루프 명령어가 기입된 행수 정보를 제공하여, 프로그래머가 보다 용이하게 디버그 할 수 있도록 한다.
S14 단계의 확인 결과, 현재 검색된 반복 구간 내에 네스트 루프 체크를 완료한 반복 구간 시작 지시어를 호출하는 오토 루프 명령어가 없으면, 현재 검색된 반복 구간은 다른 오토 루프 명령어와 목적지에 의한 반복 구간과 논리적으로 교차되지 않음을 즉, 논리적인 오류를 가지지 않음을 확인한다. 그리고 현재 검색된 오토 루프 명령어의 하행에 반복 구간 시작 지시어를 호출하는 오토 루프 명령어가 더 존재하는지 확인한다(S16).
S16 단계의 확인 결과, 현재 검색된 오토 루프 명령어의 하행에 반복 구간 시작 지시어를 호출하는 오토 루프 명령어가 더 존재하면, 다시 S14 단계로 진입하여, 현재 검색된 반복 구간 시작 지시어와 하행 오토 루프 명령어에 대응되는 반복 구간이 논리적 오류를 가지는 지를 확인한다.
반면에 S16 단계의 확인 결과, 현재 검색된 반복 구간 시작 지시어를 호출하는 하행 오토 루프 명령어가 없으면, 현재 검색된 반복 구간 시작 지시어에 의해 생성된 반복 구간들은 논리적인 오류를 가지지 않음을 확인한다.
그리고 네스트 루프 체크 모듈(22)은 검색 및 네스트 루프 체크 완료된 반복 구간 시작 지시어가 기입된 행 이하부터 새로운 반복 구간 시작 지시어를 검색하고, 반복 구간 시작 지시어가 검색되면(S17), 다시 S12 단계로 진입한다.
S17 단계에서, 새로운 반복 구간 시작 지시어가 네스트 루프 체크 완료된 반복 구간 시작 지시어에 의한 반복 구간 내에 포함되지 않는다면, 이는 새로운 테스트 동작을 수행하기 동작 시퀀스를 발생하기 위한 새로운 반복 구간 시작 지시어임을 확인한 후, 새로운 반복 구간 시작 지시어에 따른 논리적 오류의 발생 여부를 확인하기 위해 다시 S12 단계로 진입한다.
반면에 S17 단계의 검색 결과, 새로운 반복 구간 시작 지시어가 검색되지 않으면, 소스 파일이 구비하는 반복 구간들 모두는 논리적인 오류를 가지지 않음을 확인하고(S18), 이를 프로그래머 및 소스 파일 변환 모듈(23)에게 통보한 후, 네스트 루프 체크를 종료한다.
이와 같이 본 발명의 네스트 루프 체크 단계는 반복 구간 시작 지시어들과 이를 호출하는 오토 루프 명령어들에 의해 생성된 반복 구간들에 의한 논리적인 오류를 감지하고, 논리적인 오류를 발생한 오토 루프 명령어와 이 오토 루프 명령어가 기입된 행수 정보를 제공하여, 프로그래머가 보다 용이하게 디버그 할 수 있도록 한다.
도 7은 도 6의 네스트 루프 체크 단계에 의해 획득된 반복 구간들과, 이에 따라 발생되는 논리적인 오류를 개략적으로 설명하기 위한 도면이다.
(a)는 논리적인 오류를 가지지 않은 오토 루프 명령어를 사용하는 소스 파일과 이에 따른 반복 구간들을 나타낸 도면, (b)은 논리적인 오류를 가지는 오토 루프 명령어를 사용하는 소스 파일과 이에 따른 반복 구간들을 나타낸 도면이다.
네스트 루프 체크 모듈(22)이 (a)의 소스 파일을 네스트 루프 체크하면, (a)에 도시된 바와 같이, 제 1 내지 제 3 반복 구간들(loop1~loop3)이 발생된다.
그리고 제 1 내지 제 3 반복 구간들(loop1~loop3)은 논리적으로 교차하지 않는다. 즉, 각 반복 구간(loop1~loop3)은 반복 구간(loop1~loop3) 내에 네스트 루프 체크를 완료한 반복 구간 시작 지시어를 호출하는 오토 루프 명령어를 구비하지 않는다. 이에 모든 반복 구간들(loop1~loop3)은 논리적인 오류를 가지지 않는다.
반면에 네스트 루프 체크 모듈(22)이 (a)의 소스 파일을 네스트 루프 체크하면, (b)에 도시된 바와 같이, 제 1 내지 제 4 반복 구간들(loop1~loop4)이 발생된다.
그리고 제 3 반복 구간(loop3)은 제 4 반복 구간(loop4)과 논리적으로 교차한다.
즉, 제 4 반복 구간(loop4)은 반복 구간(loop4) 내에 네스트 루프 체크를 완료한 반복 구간 시작 지시어(Label2)를 호출하는 오토 루프 명령어(Autoloop Label2 130)를 구비한다.
이에 네스트 루프 체크 모듈(22)은 제 4 반복 구간(loop4)을 생성하는 오토 루프 명령어(Autoloop Label3 100)와, 이 오토 루프 명령어가 기입된 행수 정보를 제공하여, 프로그래머가 보다 용이하게 디버그 할 수 있도록 한다.
도 8은 도 5의 S5 단계의 작업용 소스 파일을 실행용 소스 파일로 변환하는 단계를 보다 상세히 설명하기 위한 흐름도이다.
소스 파일 변환 모듈(23)은 소스 파일의 구현부에서 최상위 반복 구간을 획득하고, 최상위 반복 구간 내에 포함되는 복수개의 반복 구간들을 획득하고, 복수개의 반복 구간들내에 존재하는 복수개의 오토루프 명령어들을 검색하여, 각 오토루프 명령어가 포함하는 복수개의 루프 인덱스 값을 획득한다(S21).
이때, 최상위 반복 구간이라 함은 도 6의 S17 단계에서와 같이 새로운 테스트 동작을 수행하기 동작 시퀀스를 발생하기 위한 반복 구간 시작 지시어와, 이 반복 구간 시작 지시어를 호출하되, 가장 하행에 기입된 오토 루프 명령어에 의해 생성된 반복 구간을 지칭한다.
예를 들어, 도 4a에서는 "CONTACT1"과 "Autoloop Contact1 1 / A+S2"에 의해 생성된 반복 구간(loop1)이 최상위 반복 구간이 된다.
S21 단계를 통해 획득된 루프 인덱스 값들을 각각 가지는 복수개의 루프 인덱스들을 지정한 뒤, 복수개의 루프 인덱스들을 소스 파일의 선언부에 기입한다. 그리고 각 루프 인덱스를 해당 오토 루프 명령어의 루프 인덱스로 설정한다(S22).
그리고 소스 파일 변환 모듈(23)은 S22 단계를 통해 설정된 루프 인덱스를 이용하여 복수개의 오토 루프 인덱스들 각각의 포맷을 루프 인덱스의 포맷으로 변환한다(S23).
즉, S23 단계에서 소스 파일 변환 모듈(23)은 "(오토 루프 명령어) + (반복 구간 시작 지시어) + (루프 인덱스 값) +(커맨드)"의 포맷으로 구현된 오토 루프 명령어를 "(루프 명령어) + (루프 인덱스) + (반복 구간 시작 지시어) +(커맨드)"의 포맷으로 구현된 루프 명령어로 변환한다.
S23 단계를 통해 최상위 반복 구간에 대한 루프 인덱스들의 지정 및 오토 루프 명령어의 변환이 완료되면, 소스 파일 변환 모듈(23)은 소스 파일의 구현부에서 최상위 반복 구간이외의 최상위 반복 구간이 더 존재하는지를 확인한다(S24).
S24 단계의 확인결과, 다른 최상위 반복 구간이 더 존재하면, 다른 최상위 반복 구간이 구비하는 복수개의 반복 구간들을 획득하고, 복수개의 반복 구간들내에 존재하는 복수개의 오토루프 명령어들을 검색하여, 각 오토루프 명령어가 포함하는 루프 인덱스 값을 획득하고(S25), 획득된 루프 인덱스 값과 동일한 값을 가지는 루프 인덱스가 존재하는지를 확인한다(S26).
S26 단계의 확인결과, 소스 파일의 선언부에 동일한 루프 인덱스 값을 가지는 루프 인덱스가 없으면, 획득된 루프 인덱스 값을 가지는 새로운 루프 인덱스를 지정하고, 새로이 지정된 루프 인덱스를 현재 검색된 오토 루프 명령어에 대응되는 루프 인덱스로 설정하고(S27), 소스 파일의 선언부에 동일한 루프 인덱스 값을 가 지는 루프 인덱스가 존재하면, 이미 존재하는 루프 인덱스를 루프 인덱스를 현재 검색된 오토 루프 명령어에 대응되는 루프 인덱스로 설정한다(S28).
그리고 소스 파일 변환 모듈(23)은 S28 단계를 통해 설정된 루프 인덱스를 이용하여 복수개의 오토 루프 인덱스들 각각의 포맷을 루프 인덱스의 포맷으로 변환한 후(S29), 다시 S24 단계로 진행하여 작업용 소스 파일이 구비하는 모든 오토 루프 명령어에 대한 루프 인덱스를 지정함과 동시에 오토 루프 명령어를 루프 명령어로 변환한다.
이와 같이 도 8의 소스 파일 변환 모듈(23)은 작업용 소스 파일이 구비하는 모든 오토 루프 명령어들을 검색하고, 이로부터 루프 인덱스 값을 획득하여 루프 인덱스를 지정하되, 중복하여 사용될 수 있는 루프 인덱스 값을 감지하여 최소화된 개수를 가지는 루프 인덱스를 생성한다.
그리고 최소화된 개수를 가지는 루프 인덱스를 이용하여 오토 루프 명령어들을 루프 명령어들로 변환하여 종래와 같은 소스 파일 즉, 실해용 소스 파일을 생성한다.
즉, 본 발명의 도 8의 작업용 소스 파일을 실행용 소스 파일로 변환하는 단계는 루프 인덱스들이 중첩되어 지정되는 것을 사전에 방지하여 테스트 장치의 시스템 효율을 최대화한다.
또한 작업용 소스 파일(21)을 변환하여 테스트 수행 모듈(5)이 인식할 수 있도록 한다.
상기에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기 술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
본 발명의 반도체 메모리 장치의 테스트 장치 및 방법은 오토 루프 명령어를 이용하여 작업용 소스 파일을 작성하면, 네스트 루프 체크 모듈 및 소스 파일 변환 모듈이 테스트 수행 모듈이 인식할 수 있는 루프 명령어를 가지는 실행용 소스 파일로 변환하여 준다. 이에 프로그래머가 보다 용이하게 작업용 소스 파일을 작성할 수 있도록 한다.
또한 네스트 루프 체크 모듈은 반복 구간 시작 지시어들과 이를 호출하는 오토 루프 명령어들에 의해 생성된 반복 구간들에 의한 논리적인 오류를 감지하고, 논리적인 오류를 발생한 오토 루프 명령어와 이 오토 루프 명령어가 기입된 행수 정보를 제공하여, 프로그래머가 보다 용이하게 디버그 할 수 있도록 한다.
더욱이, 소스 파일 변환 모듈은 루프 인덱스들이 중첩되어 지정되는 것을 사전에 방지하여 반도체 메모리 장치의 테스트 장치의 시스템 효율을 최대화한다.

Claims (16)

  1. 반복 구간 시작 지시어와 오토 루프 명령어를 이용하여 반복 구간을 지정하는 작업용 소스 파일을 체크하여 복수개의 반복 구간들을 획득하고, 논리적으로 교차되는 상기 반복 구간들이 존재하면 상기 작업용 소스 파일에 논리적인 오류가 발생함을 통보하는 네스트 루프 체크 모듈; 및
    상기 작업용 소스 파일에 논리적인 오류가 발생하지 않음이 확인되면, 상기 오토 루프 명령어들로부터 루프 인덱스 값들을 획득하여 루프 인덱스들을 지정하고, 상기 루프 인덱스들을 이용하여 상기 오토 루프 명령어들 각각의 포맷을 루프 명령어의 포맷으로 변환하여 상기 작업용 소스 파일을 실행용 소스 파일로 변환하는 소스 파일 변환 모듈을 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 장치.
  2. 제 1 항에 있어서, 상기 작업용 소스 파일은
    상기 루프 인덱스들이 지정되지 않는 선언부와, 상기 반복 구간 시작 지시어들과 상기 오토 루프 명령어들을 사용하여 반복 구간들을 설정하는 구현부를 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 장치.
  3. 제 1 항에 있어서, 상기 오토 루프 명령어의 포맷은
    상기 오토 루프 명령어, 상기 오토 루프 명령어가 호출하는 반복 구간 시작 지시어, 및 상기 루프 인덱스 값을 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 장치.
  4. 제 3 항에 있어서, 상기 오토 루프 명령어의 포맷은
    커맨드를 더 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 장치.
  5. 제 1 항에 있어서, 상기 실행용 소스 파일은
    상기 루프 인덱스들이 지정된 선언부와, 상기 반복 구간 시작 지시어들과 상기 루프 명령어들을 사용하여 반복 구간들을 설정하는 구현부를 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 장치.
  6. 제 1 항에 있어서, 상기 오토 루프 명령어의 포맷은
    상기 오토 루프 명령어, 상기 오토 루프 명령어가 호출하는 반복 구간 시작 지시어, 및 상기 루프 인덱스 값을 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 장치.
  7. 제 6 항에 있어서, 상기 오토 루프 명령어의 포맷은
    커맨드를 더 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 장치.
  8. 제 1 항에 있어서, 상기 반도체 메모리 장치의 테스트 장치는
    상기 실행용 소스 파일을 리딩하고, 실행용 소스 파일에 의한 동작 시퀀스에 따라 반도체 메모리 장치를 테스트하는 테스트 수행 모듈을 더 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 장치.
  9. 오토 루프 명령어들에 따른 반복 구간들을 획득하고, 상기 반복 구간들이 논리적으로 교차되면, 논리적인 오류가 발생하였음 확인하는 네스트 루프 체크 단계; 및
    논리적인 오류가 발생하지 않으면, 복수개의 오토 루프 명령어들이 사용하는 루프 인덱스 값들을 획득하여 상기 루프 인덱스 값들을 가지는 루프 인덱스들을 지정하고, 오토 루프 명령어의 포맷을 루프 명령어의 포맷으로 변환하는 변환 단계를 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 방법.
  10. 제 9 항에 있어서, 상기 오토 루프 명령어의 포맷은
    상기 오토 루프 명령어, 상기 오토 루프 명령어가 호출하는 반복 구간 시작 지시어, 및 상기 루프 인덱스 값을 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 방법.
  11. 제 10 항에 있어서, 상기 오토 루프 명령어의 포맷은
    커맨드를 더 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 방법.
  12. 제 9 항에 있어서, 상기 루프 명령어의 포맷은
    상기 루프 명령어, 상기 루프 인덱스, 및 상기 루프 명령어에 대응되는 반복 구간 시작 지시어를 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 방법.
  13. 제 12 항에 있어서, 상기 오토 루프 명령어의 포맷은
    커맨드를 더 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 방법.
  14. 제 9 항에 있어서, 상기 네스트 루프 체크 단계는
    상기 반복 구간 시작 지시어를 획득하는 단계;
    상기 반복 구간 시작 지시어의 하행을 검색하고, 상기 반복 구간 시작 지시어를 호출하는 상기 오토 루프 명령어가 획득되면, 상기 오토 루프 명령어와 상기 반복 구간 시작 지시어에 대응되는 반복 구간을 설정하는 반복 구간 설정 단계;
    상기 반복 구간 내에 네스트 루프 체크를 완료한 반복 구간 시작 지시어를 호출하는 상기 오토 루프 명령어가 존재하면, 논리적인 오류가 발생하였음을 확인하는 제 1 오류 발생 확인 단계;
    상기 제 1 오류 발생 확인 단계를 통해 논리적인 오류의 발생이 확인되지 않으면, 상기 오토 루프 명령어의 하행을 검색하고, 상기 반복 구간 시작 지시어를 호출하는 상기 오토 루프 명령어가 획득되면, 상기 제 1 오류 발생 확인 단계로 재진입하는 제 2 오류 발생 확인 단계; 및
    상기 제 2 오류 발생 확인 단계가 완료되면, 상기 반복 구간 시작 지시어의 하행을 검색하고, 새로운 반복 구간 시작 지시어가 획득되면, 반복 구간 설정 단계로 재진입하는 제 3 오류 발생 확인 단계를 구비하는 단계를 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 방법.
  15. 제 9 항에 있어서, 상기 변환 단계는
    상기 반복 구간이 획득되면, 상기 반복 구간내의 존재하는 상기 오토 루프 명령어들로부터 상기 루프 인덱스 값들을 획득하는 제 1 루프 인덱스 값 획득 단계;
    상기 루프 인덱스 값들을 가지는 루프 인덱스들을 지정하고, 각 루프 인덱스를 해당 오토 루프 명령어의 루프 인덱스로 설정하는 제 1 루프 인덱스 지정 단계; 및
    상기 루프 인덱스들을 이용하여 상기 오토 루프 명령어들 각각의 포맷을 상기 루프 명령어들 각각의 포맷으로 변환하는 포맷 변환 단계를 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 방법.
  16. 제 15 항에 있어서, 상기 변환 단계는
    새로운 반복 구간을 획득하고, 상기 새로운 반복 구간내의 존재하는 상기 오토 루프 명령어들로부터 상기 루프 인덱스 값들을 획득하는 제 2 루프 인덱스 값 획득 단계; 및
    새로이 획득된 루프 인덱스 값과 동일한 상기 루프 인덱스들이 기지정되어 있으면, 상기 기지정된 루프 인덱스를 해당 오토 루프 명령어의 루프 인덱스로 설정하고, 그렇지 않으면 상기 새로이 루프 인덱스 값들을 가지는 루프 인덱스들을 지정하고, 각 루프 인덱스를 해당 오토 루프 명령어의 루프 인덱스로 설정하는 제 2 루프 인덱스 지정 단계를 더 구비하는 것을 특징으로 하는 반도체 메모리 장치의 테스트 방법.
KR1020040104506A 2004-12-10 2004-12-10 반도체 메모리 장치의 테스트 장치 및 방법 KR100586303B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040104506A KR100586303B1 (ko) 2004-12-10 2004-12-10 반도체 메모리 장치의 테스트 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040104506A KR100586303B1 (ko) 2004-12-10 2004-12-10 반도체 메모리 장치의 테스트 장치 및 방법

Publications (1)

Publication Number Publication Date
KR100586303B1 true KR100586303B1 (ko) 2006-06-08

Family

ID=37182337

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040104506A KR100586303B1 (ko) 2004-12-10 2004-12-10 반도체 메모리 장치의 테스트 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100586303B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07311692A (ja) * 1994-05-19 1995-11-28 Toshiba Corp デバッグ方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07311692A (ja) * 1994-05-19 1995-11-28 Toshiba Corp デバッグ方法

Similar Documents

Publication Publication Date Title
US8091075B2 (en) Method and apparatus for breakpoint analysis of computer programming code using unexpected code path conditions
CN100555218C (zh) 用于改善片上仿真系统中高级语言的仿真速度的装置和方法
US5394347A (en) Method and apparatus for generating tests for structures expressed as extended finite state machines
EP2960799A1 (en) Defect localization in software integration tests
EP3379358B1 (en) Control system, control device, control program, and control method
US20080209436A1 (en) Automated testing of programs using race-detection and flipping
US7178135B2 (en) Scope-based breakpoint selection and operation
CN103729288A (zh) 一种嵌入式多核环境下应用程序的调试方法
US10725889B2 (en) Testing multi-threaded applications
US20030037317A1 (en) Method and apparatus for debugging in a massively parallel processing environment
CN111367786B (zh) 一种符号执行方法、电子设备以及存储介质
US7287246B2 (en) Debugging optimized flows with breakpoints using stored breakpoint trigger indicators
KR100586303B1 (ko) 반도체 메모리 장치의 테스트 장치 및 방법
CN103593239A (zh) Linux系统中应用进程命令处理的方法及装置
JPH09114693A (ja) プログラム開発支援装置及びプログラム実行装置
JP5001703B2 (ja) システム設計検証装置
CN1831785A (zh) 应用于固件程序除错的微处理器与方法
CN108932171B (zh) 嵌入式软件交互方法
US7178064B2 (en) Debug device, debug method and storage medium
CN114385271B (zh) 基于插件的命令执行系统
CN111984265A (zh) 一种识别多级中断下数据竞争点的方法
KR100205071B1 (ko) 병렬 프로그램의 실행오류 인식방법
JP2006107198A (ja) ファイル解析プログラム、ファイル解析方法、ファイル解析システム
JP6451989B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JPH1083327A (ja) テストパターン生成装置及び方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130527

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140526

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150526

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160526

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170526

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180528

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190527

Year of fee payment: 14