KR20000010935A - 데이터 패턴의 압축 및 신장방법과 압축 및 신장장치 - Google Patents

데이터 패턴의 압축 및 신장방법과 압축 및 신장장치

Info

Publication number
KR20000010935A
KR20000010935A KR1019980709083A KR19980709083A KR20000010935A KR 20000010935 A KR20000010935 A KR 20000010935A KR 1019980709083 A KR1019980709083 A KR 1019980709083A KR 19980709083 A KR19980709083 A KR 19980709083A KR 20000010935 A KR20000010935 A KR 20000010935A
Authority
KR
South Korea
Prior art keywords
data
compression
test
compressed
pattern
Prior art date
Application number
KR1019980709083A
Other languages
English (en)
Other versions
KR100341211B1 (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 KR20000010935A publication Critical patent/KR20000010935A/ko
Application granted granted Critical
Publication of KR100341211B1 publication Critical patent/KR100341211B1/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
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318335Test pattern compression or decompression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • 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/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

시험하기 위하여 IC에 인가하는 테스트 패턴을 효율 있게 압축하는 방법을 제공한다. IC의 각 핀 마다의 패턴의 데이터 천이회수(ø), 데이터의 엔트로피(H)를 구하고, 테스트 패턴을 ø가 임계값(øM)이하 (ø<øM)인 블록과, ø>øM으로, 동시에 H가 임계값(HM) 이하 (H<HM)인 블록과, H>HM인 블록중 하나에 분배하고(411), ø<øM인 블록은 런 길이 압축법으로 압축하고, ø>øM이고, 동시에 H<HM인 블록은 Burrows Wheeler 변환후, 런 길이 압축법으로 압축하고, H>HM인 블록은 LZ 압축법으로 압축한다.

Description

데이터 패턴의 압축 및 신장방법과 압축 및 신장장치
반도체 집적회로(이하, IC)를 시험하는 IC시험장치(일반적으로 IC테스터)에 있어서는, 시험하여야 할 IC(피시험 IC)에 인가하는 테스트 패턴은 방대한 데이터량이기 때문에 이 방대한 테스트 패턴데이터를 압축하여 송신하고, 수신측에서 압축된 테스트 패턴데이터를 신장하여 본래의 테스트 패턴데이터로 복원하고, 피시험 IC에 인가한다. 테스트 패턴이나 다른 방대한 데이터 패턴을 압축하는 방법으로서 종래부터 사서를 사용하는 Lempel Ziv의 알고리즘(LZ압축법)이나, 데이터의 통계적 성질을 이용하는 Huffman의 알고리즘(Huffman 압축법), 또는 그 여러가지 변형압축법이 데이터 압축장치에 사용되고 있다. 이 방법은 단일 압축 방법이고, 상기 데이터 압축장치는 이 단일 압축방법을 압축대상으로 하는 모든 데이터 패턴에 적용하여, 이 데이터 패턴을 압축한다.
그러나, 테스트 패턴과 같은 데이터 패턴은 데이터 구조나 통계적 성질이 상당히 상이하기 때문에 목적이 되는 데이터 패턴의 구조에 따라서 효율적인 압축은 할 수 없었다. 예를 들면 동일 데이터 패턴내의 상이한 부분에서 패턴의 구조 또는 통계적인 성질이 크게 다를 때에는 특정부분에서는 높은 압축효율이 얻어지지만, 나머지 부분에서는 압축의 효율이 낮아진다. 그 결과 데이터 패턴 전체로서는 상대적으로 압축율이 낮아진다. 또 처리시간에 대하여는 데이터 패턴의 구조에 의하여 처리시간이 다르기 때문에 최적의 처리시간을 얻을 수 없었다.
이점에서 테스트 패턴을 데이터의 구조 또는 통계적 성질이 다른 부분마다 블록으로 분할하고, 분할된 각각의 블록에 대하여 적절한 압축방법을 적용하고 데이터를 압축하는 것이 제안되어 있다.
그러나, 이 방법은 목적이 되는 테스트 패턴을 블록단위로 압축하기 때문에, 데이터의 신장도 블록단위로 행할 필요가 있다. 이 때문에, 이 압축방법에서는 압축된 테스트 패턴을 리얼타임(실시간)으로 신장하는 것이 불가능하다.
더욱더, 인텔(Intel)사의 마이크로 프로세서를 예를들면, 1971년의 4004로서는 16핀, 1982년의 80286에서는 68핀, 1985년의 80386에서는 132핀, 1989년 80486에서는 168핀, 1993년의 pentium에서는 296핀, 1995년의 pentium Pro에서는 387핀, 이와같이 IC의 집적도가 향상됨에 따라 핀수도 해마다 계속 늘어나고 있다. 이 때문에 IC의 자동테스트 시스템(ATE)도 시험장치의 하드웨어를 핀에 대응시킨 방식(파핀 방식)에도 시프트하고 있다. 이는 파핀의 아키텍처이면 증가하는 핀수에 대하여 유연하게 대응하는 것이 가능하기 때문이다.
위에 설명한 테스트 패턴의 문제를 해결하기 위하여는 테스트패턴을 핀마다의데이터로 분할하여 취급하는 파핀의 압축기 및 신장기가 필요하게 된다. 파핀의 아키텍처는 (a) 각핀에 대응한 테스트 데이터를 동시에 다운로드 할 수 있기 때문에, 압축되어 있는 테스트 패턴을 자동테스트 시스템의 내부 메모리로 다운로드하는 시간을 단축할 수 있다. (b) 압축기 및 신장기의 매니지먼트가 간단하게 되기 때문에, IC의 핀수의 증가에 대하여 유연하게 대응할 수있는 등의 이점을 갖는다.
종래의 IC의 자동테스트 시스템(이하, ATE)은 IC를 시험하기 위한 테스트 패턴을 패턴 제너레이터(패턴발생기)에 유지하고 있다. 이 때문에, 테스트 패턴을 보존하고 있는 디스크장치로부터, 태스트 패턴 데이터를 ATE의 패턴 제너레이터로 다운로드하는데 매우 긴 시간이 필요하였다. 예를 들면 1Gbyte(기가 바이트)정도의 테스트 패턴을 다운로드하는데, 네트워크을 통한 경우에는 약 1시간정도의 시간이 필요하였다. 이 때문에 테스트 패턴의 다운로드시간을 단축하여 ATE의 가동율을 향상시키는것이 중요한 과제이다.
발명의 개시
본 발명의 하나의 목적은 구조의 상이하는 부분 또는 통계적 성질이 같지 않는 부분을 갖는 데이터 패턴을 그들과 대응시켜 복수의 블록으로 분할하고, 각각의 블록에 대하여 최적의 압축방법을 적용함으로써, 압축의 대상으로 데이터를 효율좋게 압축할 수 있는 테스트 패턴의 압축방법을 제공하는 것에 있다.
본 발명의 다른 목적은 복수의 블록으로 분할된 압축데이터를 각각의 블록으로부터 정보손실 없이 본래의 데이터 패턴으로 복원할 수 있는 데이터 패턴의 신장방법을 제공하는 것에 있다.
본 발명의 또 다른 목적은 테스트 패턴을 반도체 집적회로의 각핀에 대한 테스트 시퀀스마다 분할하고 각 테스트 시퀀스에 대하여 데이터의 구조 또는 통계적 성질을 측정함으로써 최적의 압축방법을 적용함으로써, 압축의 대상이 되는 테스트 패턴을 효율있게 압축할 수 있는 테스트 패턴 압축방법 및 압축장치를 제공하는 것에 있다.
본 발명의 또 다른 목적은 상기 압축방법 또는 압축장치에 의하여 생성된 반도체 집적회로의 핀마다의 압축데이터로부터 정보손실없이 본래의 테스트 패턴 데이터에 핀단위로 실시간으로 복원할 수 있는 테스트 패턴 신장방법 및 신장장치를 제공하는 것에 있다.
본 발명의 또 다른 목적은 복수의 블록에 분할한 데이터 패턴을 각각의 블록에 대하여 최적의 압축방법을 적용하여 압축하고, 이들 복수의 블록에 분할된 압축데이터를 각각의 블록으로부터 정보손실없이, 본래의 데이터 패턴으로 복원할 수 있는 데이터 패턴의 압축방법 및 신장방법을 제공하는 것에 있다.
본 발명의 또 다른 목적은 상기 테스트 패턴의 압축 및/또는 신장장치를 사용하여 테스트 패턴의 다운로드 시간을 단축한 반도체 집적회로의 자동시스템을 제공하는 것에 있다.
본 발명에 의한 데이터 패턴압축방법은 입력한 장황성이 있는 데이터, 예를들면 데스트 패턴데이터를 피시험 집적회로의 각 핀마다 대응하여 압축하는 압축방법에 있어서, 데이터의 구조 또는 통계적인 성질에 따라 각 입력데이터 패턴의 복수의 블록중 하나에 분배분할하는 분할단계와, 각 블록에 대하여 적절한 압축방법을 적용하는 압축단계를 구비하는 것을 특징으로 하고, 이로서 전 데이터에 대하여 적절한 압축을 얻을 수 있다.
본 발명에 의한 데이터 패턴 신장방법은 상기 데이터 패턴 압축방법으로 생성된 압축데이터에 대하여 신장하는 경우에, 압축데이터의 구조에 따라 압축데이터를 복수의 블록으로 분할하는 분할단계와, 각각의 블록에 대하여 적절한 신장방법을 적용하는 신장단계를 구비하고, 이로서 상기 압축데이터를 정보 손실없이, 본래의 데이터 패턴으로 복원하는 것이 가능하다.
바람직한 일실시예의 데이터 패턴 압축방법에 있어서는 상기 분할단계는, 블록분할을 위한 데이터 천이회수의 임계값을 계산하는 단계와, 입력 데이터의 천이회수를 계수하는 단계와, 임계값과 실제의 데이터의 천이회수를 비교하는 단계와, 비교결과에 따라 복수의 블록중 하나에 분배하는 단계를 포함하는 것을 특징으로하고, 이로서 입력된 데이터 패턴을 적절한 블록으로 분할하는 것을 가능하게 한다.
바람직한 다른 실시예의 데이터 패턴 압축방법에 있어서는 상기 분할단계는 블록분할을 위한 엔트로피의 임계값을 계산하는 단계와, 입력 데이터에 있어서 기호의 출현확률을 계측하고, 기호의 출현확률로부터 데이터의 엔트로피를 계산하는 단계와, 임계값과 실제 데이터의 엔트로피를 비교하는 단계와, 비교의 결과에 따라 복수의 블록중 하나에 분배하는 단계를 포함하는 것을 특징으로 하고, 이로서 입력된 데이터 패턴을 적절한 블록으로 분할하는 것을 가능하게 한다.
바람직한 다른 실시예의 데이터 패턴 압축 방법에 있어서는 상기 분할단계는 상기 입력데이터 패턴에 대하여, 데이터의 천이회수를 계수하고 데이터의 천이회수에 따라 입력데이터의 블록분할을 행하는 단계이고, 천이회수가 임계값 보다 작은 블록에 대하여 상기 압축단계에서 런 길이 압축법을 적용하고, 다른 블록에 대하여는 각각 적절한 압축방법을 적용하는 것을 특징으로 하고, 이로서 전 데이터에 대하여 적절한 압축을 얻는다.
바람직한 일실시예의 데이터 패턴 신장방법에 있어서, 압축데이터를 신장하는 상기 분할단계는 압축데이터를 런 길이 압축법으로 압축된 데이터 및 기타복수의 압축법으로 압축된 데이터로 분할하고, 분할된 런 길이 압축데이터는 상기 신장단계에서 런 길이 신장되는 것을 특징으로 하고, 이로서 상기 압축데이터를 정보손실 없이 본래의 데이터 패턴으로 복원한다.
바람직한 또 다른 실시예의 데이터 패턴 신장방법에 있어서는 상기 분할단계에서 분할된 블록중의 데이터의 주기성이 큰 블록에 대하여 브로즈 휠러(Burrows Wheeler)변환(이하, BW변환)을 적어도 1회 행하는 단계를 포함하고, BW변환된 데이터에 대하여는 상기 압축단계에서 런 길이 압축법을 적용하고, 다른 블록에 대하여는 각각 적절한 압축방법을 적용하는 것을 특징으로 하고 이로서 전 데이터에 대하여 적절한 압축을 얻는다.
바람직한 다른 실시예의 데이터 패턴 신장방법에 있어서, 상기 압축데이터를 신장하는 상기 분할단계는 압축데이터를 BW변환후에 런 길이 압축법으로 압축된 데이터와, 다른 압축법으로 압축된 데이터로 분할하고, 상기 BW변환후 런 길이 압축된 부분은 상기 신장단계에서 런 길이 신장하고, 그후, BW 변환회수만 BW역변환하는 것을 특징으로하고, 이로서 상기 압축데이터를 정보손실없이 본래의 데이터 패턴으로 복원한다.
바람직한 또 다른 실시예의 데이터 패턴압축방법에 있어서, 상기 분할단계에서 분할된 블록중 엔트로피가 임계값보다 작은 블록에 대하여 상기 압축단계에서 Huffman 압축법을 적용하고 다른 블록에 대하여는 각각 적절한 압축방법을 적용하는 것을 특징으로 하고, 이로서 전데이터에 대하여 적절한 압축을 얻는 것을 가능하게 한다.
바람직한 또 다른 실시예의 데이터 패턴 신장방법에 있어서는 압축데이터를 Huffman 압축법으로 압축한 데이터와 다른 압축법으로 압축된 데이터로 분할하고, 상기 신장단계에서 Huffman 압축법으로 압축된 데이터에 대하여는 Huffman신장법을 적용하는 것을 특징으로 하고, 이로서 상기 압축데이터를 정보손실없이 본래의 데이터 패턴으로 복원하는 것을 가능하게 한다.
바람직한 또 다른 실시예의 데이터 패턴 압축방법에 있어서, 분할된 블록중 엔트로피가 작은 블록에 대하여 압축단계에서 LZ압축법을 적용하고, 다른 블록에 대하여는 각각 최적한 압축방법을 적용하는 것을 특징으로 하고, 이로서 전데이터에 대하여 적절한 압축을 얻는 것을 가능으로 한다.
바람직한 또 다른 실시예의 데이터 패턴 신장방법에 있어서, 상기 분할 단계은 압축데이터를 LZ압축법으로 압축된 데이터와, 다른 압축법으로 압축된 데이터로 분할하고, 상기 신장단계에서 LZ압축법으로 압축된 데이터에 대하여는 LZ신장법을 적용하는 것을 특징으로 하고, 이로서 상기 압축데이터를 정보손실없이 본래의 데이터 패턴으로 복원하는 것을 가능하게 한다.
바람직한 또 다른 실시예의 데이터 패턴 압축방법에 있어서, 분할된 블록중 엔트로피가 작은 블록에 대하여 압축단계는 상술부호화 압축법을 적용하고, 다른 블록에 대하여는 각각 적절한 압축방법을 적용하는 것을 특징으로 하고, 이로서 전 데이터에 대하여 최적한 압축을 얻는 것을 가능하게 한다.
바람직한 또 다른 실시예의 데이터 패턴 신장방법에 있어서, 상기 분할단계에서 압축데이터를 산술부호화 압축법으로 압축된 데이터와 다른 압축법으로 압축된 데이터로 분할하고, 상기 신장단계에서 산술부호화 압축법으로 압축된 데이터에 대하여는 산술부호화 신장법을 적용하는 것을 특징으로 하고, 이로서 상기 압축데이터를 정보손실없이 본래의 데이터 패턴으로 복원하는 것을 가능하게 한다.
바람직한 또 다른 실시예의 데이터 패턴 압축방법에 있어서, 상기 분할단계는 적절한 블록분할을 위한 환경파라미터을 입력하는 단계와 입력된 환경 파라미터를 사용하여 블록분할하는 데이터 천이회수의 임계값을 계산하는 단계를 포함하고, 이로서 최적의 블록분할을 가능하게 한다.
바람직한 또 다른 실시예의 데이터 패턴압축방법에 있어서, 상기 분할단계는 적절한 블록분할을 위한 환경 파라미터를 입력하는 단계와, 입력된 환경 파라미터를 사용하여 블록분할을 위한 엔트로피의 임계값을 계산하는 단계를 포함한다.
바람직한 또 다른 실시예의 데이터 패턴 압축방법에 있어서, 블록분할을 위한 데이터 천이회수의 임계값을 계산하는 단계와, 계산된 임계값을 사용하여 입력데이터의 압축율을 견적하고, 압축율이 최대로 되도록 임계값을 최적화하는 단계를 포함하고, 그 최적화된 임계값을 상기 분할단계에 사용하고 이로서 최적의 블록분할을 가능하게 한다.
바람직한 또 다른 실시예의 데이터 패턴 압축방법에 있어서, 블록분할을 위한 엔트로피의 임계값을 계산하는 단계와, 계산된 임계값을 사용하여 입력데이터의 압축율을 견적하고, 압축율이 최대로 되도록 임계값을 최적화하는 단계를 갖고, 그 최적화된 임계값을 상기 분할단계에 사용하는 것을 특징으로 하고, 이로서 최적의 블록분할을 가능하게 한다.
본 발명의 테스트 패턴 압축 장치는 입력된 테스트 패턴을 피시험 집적회로의 각 핀마다의 테스트 시퀀스로 분할하는 분할수단과, 각 테스트 시퀀스의 데이터의 구조에 따라 적절한 압축방법을 선택하여 테스트 시퀀스를 핀마다 압축하는 테스트 시퀀스 압축수단을 구비하는 것을 특징으로 하고, 이로서 전 데이터에 대하여 최대의 압축율을 얻을 수 있다. 테스트 패턴을 입력하고, 핀마다 압축된 데이터를 정리하여 출력하거나 압축된 순번으로 출력할 수가 있다.
바람직한 또 다른 실시예의 테스트 패턴 압축방법에 있어서, 입력된 테스트패턴을 집적회로의 각 핀 마다의 테스트 시퀀스로 분할하는 단계와 각 테스트 시퀀스의 데이터의 구조에 따라 적절한 압축방법을 선택하여 테스트 시퀀스를 핀마다 압축하는 단계를 구비한다.
바람직한 다른 실시예의 테스트 패턴 압축장치에 있어서, 상기 테스트 시퀀스 압축수단은 핀마다 설치되고, 이들이 병렬로 동작하여, 압축된 데이터가 병렬로 출력된다.
바람직한 또 다른 실시예의 테스트 패턴 압축방법에 있어서, 각 핀마다 분할된 테스트 시퀀스를 병렬로, 상기 압축단계를 실행한다. 고속 고효율의 압축을 가능하게 한다.
본 발명의 테스트 패턴 신장장치는 입력된 압축데이터를 피시험 집적회로의각 핀마다의 압축 데이터로 분할하는 압축 데이터 분할수단과 각각의 분할된 압축데이터에 대하여 그 압축방법을 도시하는 플래그에 응하여 적절한 신장방법을 선택하고, 적용하는 테스트 시퀀스 신장수단을 구비한다.
바람직한 또 다른 실시예의 테스트 패턴 신장방법에 있어서, 입력된 압축데이터를 집적회로의 각 핀마다의 압축데이터로 분할하는 단계와 각각의 분할된 압축데이터의 압축방법을 도시하는 플래그에 따라 적절한 신장방법을 선택하고 적용하는 단계를 구비한다.
본 발명의 테스트 패턴 신장장치는 상기 테스트 시퀀스 신장수단을 각 핀마다 구비하고, 이들이 병렬 동작하는 것을 특징으로 한다.
바람직한 또 다른 실시예의 테스트 패턴 신장방법에 있어서, 상기 신장단계을 각 핀마다 병렬로 행한다.
본 발명의 테스트 패턴 압축장치에 있어서, 상기의 테스트 시퀀스 압축수단은 입력된 테스트 시퀀스에 대하여 적응하는 적절한 압축방법을 결정하는 압축방법 결정수단과, 테스트 시퀀스에 대하여 런 길이 압축방법을 사용하여 압축하는 런 길이 압축수단과, 테스트 시퀀스에 대하여 BW 변환수단으로 1회 이상 BW 변환을 적용한 후, 런 길이 압축하는 BWT 런 길이 압축수단을 구비한다.
이 테스트 패턴 압축장치는 압축수단으로서 또 다른 압축방법의 압축수단으로서, LZ 압축법, Huffman 압축법, 산술부호화 압축법등을 사용하는 수단이 설치된다.
본 발명의 테스트 패턴 압축방법은 상기의 테스트 시퀀스 압축단계에 있어서, 입력된 데스트 시퀀스에 대하여 적용하는 적절한 압축방법을 결정하는 단계와 런 길이 압축방법,또는 BW 변환을 1회 이상적용한 후, 런 길이 압축방법(이하, BWT런 길이 압축방법), 또는 다른 압축법(LZ 압축법, Huffman 압축법, 산술부호화 압축법 등)중 어느 하나를 적용하여 테스트 시퀀스를 압축하는 단계를 구비한다.
본 발명의 테스트 패턴 신장장치에 있어서, 상기의 테스트 시퀀스 신장장치는 압축데이터가 런 길이 압축방법으로 압축된 데이터인지, BWT 런 길이 압축방법으로 압축된 데이터인지, LZ 압축방법등의 다른 압축법으로 압축된 데이터인지를 판정하는 압축방법 판정수단과, 압축데이터에 대하여, 런 길이 신장방법을 사용하여 신장하는 런 길이 신장수단과, 런 길이 신장수단으로 신장된 데이터에 대하여 역 BW 변환을 1회 이상 적용하여 데이터를 변환하는 반복 역 BW 변환수단과 압축데이터에 대하여 상기 다른 압축법에 대응한 신장방법을 사용하여 신장하는 다른 신장수단을 구비한다.
본 발명의 테스트패턴 신장방법은 상기의 테스트 시퀀스 신장단계에 있어서, 압축데이터가 런 길이 압축방법으로 압축된 데이터인지, BWT 런 길이 압축방법으로 압축된 데이터인지, LZ 압축방법등 다른 압축법으로 압축된 데이터인지를 판정하는 단계와, 압축데이터에 대하여 압축된 방법에 대응하는 적절한 신장방법을 선택하고 적용하는 단계를 구비한다.
본 발명의 테스트패턴 압축장치에 있어서, 압축방법 결정수단은 테스트 시퀀스에 대하여 BW변환하는 경우의 적절한 적용 회수를 계산하는 BW변환 최적화 수단과, 압축율의 임계값을 기억하는 임계값 기억수단과, BW 변환 최적화 수단으로부터 얻어진 압축율의 최대치와 임계값 기억수단의 임계값을 비교하는 압축율 비교수단과, 압축율 비교수단으로부터 얻어진 비교 결과 및 BW 변환 최적화 수단으로부터 얻어진 BW 변환의 최적 적용회수에 따라 런 길이 압축방법으로 압축하든지, 또는 BWT 런 길이 압축방법으로 압축하든지 또는 LZ 압축방법등 다른 압축방법으로 압축하는가를 선택하는 압축방법 선택수단을 구비한다.
상기의 압축방법 결정수단에 있어서, BW 변환 최적화 수단은 테스트 시퀀스에 대하여 BW 변환을 적용하는 단계와, BW 변환된 데이터의 천이회수를 측정하는 단계와, 천이회수로부터 압축율을 계산하는 단계와, 압축율의 최대치 및 압축율이 최대로 되는 BW 변환의 회수를 구하는 단계로 이루어진다.
상기 본 발명의 테스트 패턴 압축장치 및 테스트 패턴 신장장치를 사용한 반도체 집적회로 자동 테스트 시스템은 압축된 테스트 패턴 데이터를 보존하기 위한 대용량 기억장치(예를들면, 디스크 장치)와 테스트 패턴 데이터를 기억하고, 테스트 패턴을 발생하는 패턴 발생기와, 압축된 테스트 패턴데이터를 정보 손실없이 완전히 본래의 테스트패턴으로 복원하는 테스트패턴 신장수단을 갖고 테스트 패턴의 다운로드 시간을 단축하는 것을 가능하게 한다.
반도체 집적회로 자동테스트 시스템으로서, 압축된 테스트패턴 데이터를 기억하는 대용량 기억장치(예를 들면, 디스크 장치)와, 테스트 패턴 데이터를 기억하고 테스트 패턴을 발생하는 패턴 발생기와 각 핀마다 압축된 테스트 시퀀스 데이터를 각 핀에 대하여 병렬로 정보 손실없이 완전히 본래의 테스트패턴으로 복원하는 복수의 테스트 시퀀스 신장수단을 구비한다.
본 발명은 예를들면 반도체 집적회로(IC)를 시험하는데 사용되는 테스트 패턴과 같은 데이터 패턴의 압축방법, 신장방법, 압축장치 및 신장장치 및 대규모 반도체 집적회로(LSI)을 시험하기 위하여 사용되는 테스트 패턴을 대규모 반도체집적회로(이하, LSI)의 핀 단위로 압축하고, 신장하는 테스트 패턴의 압축방법, 신장방법, 압축장치 및 신장장치에 관한 것이다.
도 1은 본 발명의 제 1 및 제 2 실시예에 있어서 각각 사용되는 테스트 패턴의 일예를 도시하는 도면이다.
도 2는 본 발명의 제 1 실시예에 있어서 사용되는 테스트 패턴 압축장치의 기능구성의 일예를 도시하는 블록도이다.
도 3은 본 발명의 제 1 실시예의 테스트 패턴 압축 방법을 설명하는 흐름도이다.
도 4는 본 발명의 제 1 실시예에 있어서 사용되는 테스트 패턴 신장장치의 기능구성의 일예를 도시하는 블록도이다.
도 5는 본 발명의 제 1 실시예의 테스트 패턴 신장방법을 설명하는 흐름도이다.
도 6은 도 2에 도시하는 테스트 패턴 압축장치중의 테스트 패턴분할수단의 기능구성의 일예를 도시하는 블록도이다.
도 7은 도 6에 도시하는 테스트 패턴분할수단의 처리수순을 설명하는 흐름도이다.
도 8은 테스트 패턴, 천이회수 임계값, 각 핀의 천이회수, 및 분할결과의 블록의 각 예를 각각 도시하는 도면이다.
도 9는 도 2에 도시하는 테스트 패턴 압축장치중의 테스트패턴 분할수단의 다른 기능 구성예를 도시하는 블록도이다.
도 10은 도 9에 도시하는 테스트패턴 분할수단의 처리수순을 설명하는 흐름도이다.
도 11은 도 10의 처리수순에 있어서 테스트패턴, 임계값, 입력데이터의 엔트로피, 및 분할결과의 블록의 각예를 각각 도시하는 도면이다.
도 12는 테스트패턴 압축장치의 구체적 기능의 구성예를 도시하는 블록도이다.
도 13은 런 길이 압축방법의 처리수순을 설명하는 흐름도이다.
도 14는 도 12에 도시하는 테스트 패턴 압축장치와 대응하는 테스트 패턴 신장 장치의 기능구성의 일예를 도시하는 블록도이다.
도 15는 런 길이 신장방법의 처리수순을 설명하는 흐름도이다.
도 16은 테스트 패턴 압축장치의 다른 구체적 기능의 구성예를 도시하는 블록도이다.
도 17은 BW변환방법의 처리수순을 설명하는 흐름도이다.
도 18은 도 16에 도시하는 테스트 패턴 압축장치와 대응하는 테스트패턴 신장 장치의 기능구성의 일예를 도시하는 블록도이다.
도 19은 BW 역변환 방법의 처리수순을 설명하는 흐름도이다.
도 20은 테스트 패턴 압축장치의 또 다른 구체적 기능의 구성예를 도시하는 블록도이다.
도 21은 Huffman 압축방법의 처리수순을 설명하는 흐름도이다.
도 22는 도 20에 도시하는 테스트 패턴 압축장치와 대응하는 테스트 패턴 신장 장치의 기능구성의 일예를 도시하는 블록도이다.
도 23은 Huffman 신장방법의 처리수순을 설명하는 흐름도이다.
도 24는 테스트 패턴 압축장치의 또 다른 구체적 기능의 구성예를 도시하는 블록도이다.
도 25는 LZ 압축방법의 처리수순을 설명하는 흐름도이다.
도 26는 도 24에 도시하는 테스트 패턴 압축장치와 대응하는 테스트 패턴 신장 장치의 기능구성의 일예를 도시하는 블록도이다.
도 27은 LZ 신장방법의 처리수순을 설명하는 흐름도이다.
도 28은 테스트 패턴 압축장치의 또 다른 구체적 기능의 구성예를 도시하는 블록도이다.
도 29는 산술부호화 압축방법의 처리수순을 설명하는 흐름도이다.
도 30은 도 28에 도시하는 테스트 패턴 압축장치와 대응하는 테스트 패턴 신장장치의 기능구성의 일예를 도시하는 블록도이다.
도 31은 산술부호화 신장방법의 처리수순을 설명하는 흐름도이다.
도 32는 도 2에 도시하는 테스트 패턴 압축장치중의 테스트 패턴 분할수단의 또 다른 구체적 기능의 구성예를 도시하는 블록도이다.
도 33은 도 32에 도시하는 테스트 패턴 분할수단의 처리수순을 설명하는 흐름도이다.
도 34는 도 2에 도시하는 테스트 패턴 압축장치중의 테스트 패턴 분할수단의 또 다른 구체적 기능의 구성예를 도시하는 블록도이다.
도 35는 도 34에 도시하는 테스트패턴 분할수단의 처리수순을 설명하는 흐름도이다.
도 36은 도 2에 도시하는 테스트 패턴 압축장치중의 테스트 패턴 분할수단의 또 다른 구성예를 도시하는 블록도이다.
도 37은 도 36에 도시하는 테스트 패턴 분할수단의 처리수순을 설명하는 흐름도이다.
도 38은 도 2에 도시하는 테스트 패턴 압축장치중의 테스트 패턴 분할수단의 또 다른 구체적 기능의 구성예를 도시하는 블록도이다.
도 39은 도 38에 도시하는 테스트 패턴 분할수단의 처리수순을 설명하는 흐름도이다.
도 40은 테스트 패턴 압축장치의 또 다른 구체적 기능의 구성예를 도시하는 블록도이다.
도 41은 도 40에 도시하는 테스트 패턴 압축장치의 처리수순을 설명하는 흐름도이다.
도 42는 도 430에 도시하는 테스트 패턴 압축장치와 대응하는 테스트 패턴 신장장치의 기능구성의 일례를 도시하는 블록도이다.
도 43은 도 42에 도시하는 테스트 패턴 신장 장치의 처리수순을 설명하는 흐름도이다.
도 44는 도 40에 도시하는 테스트 패턴 압축장치중의 테스트 패턴 분할수단의 구체적 기능의 구성예를 도시하는 블록도이다.
도 45은 도 44에 도시하는 테스트 패턴 분할수단의 처리수순을 설명하는 흐름도이다.
도 46은 도 40에 도시하는 테스트패턴 압축장치중의 테스트 패턴 분할수단의 다른 구체적 기능의 구성예를 도시하는 블록도이다.
도 47은 도 46에 도시하는 테스트패턴 분할수단의 처리수순을 설명하는 흐름도이다.
도 48은 테스트패턴 압축장치의 또 다른 구체적 기능의 구성예를 도시하는 블록도이다.
도 49는 도 48에 도시하는 테스트패턴 압축장치의 처리수순을 설명하는 흐름도이다.
도 50은 도 48에 도시하는 테스트 패턴 압축장치중의 반복 BW 변환수단의 기능구성의 일예를 도시하는 블록도이다.
도 51은 도 50에 도시하는 반복 BW 변환수단의 처리수순을 설명하는 흐름도이다.
도 52는 도 48에 도시하는 테스트 패턴 압축장치중의 BW 변환수단의 처리수순을 설명하는 흐름도이다.
도 53은 BW 변환에서 사용되는 순환 문자열의 일예를 도시하는 도면이다.
도 54는 BW 변환에서 사용되는 순환 문자열의 분류예를 도시하는 도면이다.
도 55는 BW 변환에 있어서 출력 데이터의 일예를 도시하는 도면이다.
도 56은 테스트 패턴 신장장치의 다른 기능구성예를 도시하는 블록도이다.
도 57은 도 56에 도시하는 테스트 패턴 신장장치의 처리수순을 설명하는 흐름도이다.
도 58은 도 56에 도시하는 테스트 패턴 신장장치중의 반복 역 BW 변환수단의 기능구성예를 도시하는 블록도이다.
도 59는 도 58에 도시하는 반복 역 BW 변환수단의 처리수순을 설명하는 흐름도이다.
도 60은 도 56에 도시하는 테스트 패턴 신장장치중의 역 BW 변환수단의 처리수순을 설명하는 흐름도이다.
도 61은 역 BW 변환에 있어서 문자열(L)와 문자열(F)의 대응 일예를 도시하는 도면이다.
도 62은 역 BW 변환에 있어서 문자열(S)의 복원예를 도시하는 도면이다.
도 63은 도 48에 도시하는 테스트 패턴 압축장치중의 압축방법 결정수단의 기능구성의 일예를 도시하는 블록도이다.
도 64는 도 63에 도시하는 압축방법 결정수단의 처리수순을 설명하는 흐름도이다.
도 65는 본 발명의 제 2 실시예의 1입력 1출력의 테스트 패턴 압축장치의 기능구성의 일예를 도시하는 블록도이다.
도 66은 본 발명의 제 2 실시예의 테스트 패턴 압축방법을 설명하는 흐름도이다.
도 67은 본 발명의 제 2 실시예의 1입력 1출력의 테스트 패턴 압축장치의 기능구성의 변형예를 도시하는 블록도이다.
도 68은 본 발명의 제 2 실시예의 테스트 패턴 압축방법의 변형예를 설명하는 흐름도이다.
도 69는 본 발명의 제 2 실시예의 1입력 다출력 테스트 패턴 압축장치의 기능구성의 일예를 도시하는 블록도이다.
도 70은 본 발명의 제 2 실시예의 테스트 패턴 압축방법을 설명하는 흐름도이다.
도 71은 본 발명의 제 2 실시예의 1입력 1출력의 테스트 패턴 신장장치의 기능구성의 일예를 도시하는 블록도이다.
도 72는 본 발명의 제 2 실시예의 테스트 패턴 신장방법을 설명하는 흐름도이다.
도 73은 본 발명의 제 2 실시예의 1입력 1출력의 테스트 패턴 신장장치의 기능구성의 변형예를 도시하는 블록도이다.
도 74는 본 발명의 제 2 실시예의 테스트 패턴 신장방법의 변형예를 설명하는 흐름도이다.
도 75는 본 발명의 제 2 실시예의 1입력 다출력의 테스트 패턴 신장장치의 기능구성의 일예를 도시하는 블록도이다.
도 76은 본 발명의 제 2 실시예의 테스트 패턴 신장방법을 설명하는 흐름도이다.
도 77은 본 발명의 제 2 실시예의 다입력 1출력의 테스트 패턴 신장장치의 기능구성의 일예를 도시하는 블록도이다.
도 78은 본 발명의 제 2 실시예의 테스트 패턴 신장방법을 설명하는 흐름도이다.
도 79는 본 발명의 제 2 실시예의 다입력 1출력의 테스트 패턴 신장장치의 기능구성의 변형예를 도시하는 블록도이다.
도 80은 본 발명의 제 2 실시예의 테스트 패턴 신장방법의 변형예를 설명하는 흐름도이다.
도 81은 도 65, 도 67 및 도 69에 도시하는 테스트 패턴 압축장치중의 테스트 시퀀스 압축수단의 기능구성예를 도시하는 블록도이다.
도 82는 도 81에 도시하는 테스트 시퀀스 압축수단의 처리수순을 설명하는 흐름도이다.
도 83은 도 81에 도시하는 테스트 시퀀스 압축수단중의 반복 BW 변환수단의 기능구성의 일예를 도시하는 블록도이다.
도 84는 도 83에 도시하는 반복 BW 변환수단의 처리수순을 설명하는 흐름도이다.
도 85는 도 81에 도시하는 테스트 시퀀스 압축수단중의 런 길이 압축수단의 처리수순을 설명하는 흐름도이다.
도 86은 도 81에 도시하는 테스트 시퀀스 압축수단중의 BW 변환수단의 처리수순을 설명하는 흐름도이다.
도 87은 BW 변환에서 사용되는 순환 문자열의 일예를 도시하는 도면이다.
도 88은 BW 변환에서 사용되는 순환 문자열의 분류예를 도시하는 도면이다.
도 89은 BW 변환에 있어서 출력 데이터의 일예를 도시하는 도면이다.
도 90은 도 81에 도시하는 테스트 시퀀스 압착수단중의 LZ 압축수단의 처리수순을 설명하는 흐름도이다.
도 91은 도 71, 도 73, 도 75 및 도 77에 도시하는 테스트 패턴 신장장치중의 테스트 시퀀스 신장수단의 기능구성예를 도시하는 블록도이다.
도 92는 도 91에 도시하는 테스트 시퀀스 신장수단의 처리수순을 설명하는 흐름도이다.
도 93는 도 91에 도시하는 테스트 시퀀스 신장수단중의 반복 역 BW 변환수단의 기능구성의 일예를 도시하는 블록도이다.
도 94는 도 93에 도시하는 반복 역 BW 변환수단의 처리수순을 설명하는 흐름도이다.
도 95는 도 91에 도시하는 테스트 시퀀스 신장수단중의 런 길이 신장수단의 처리수순을 설명하는 흐름도이다.
도 96은 도 91에 도시하는 테스트 시퀀스 신장수단중의 반복 역 BW 변환수단의 처리수순을 설명하는 흐름도이다.
도 97은 역 BW 변환에 있어서 문자열(L)과 문자열(F)의 대응 일예를 도시하는 도면이다.
도 98은 역 BW 변환에 있어서 문자열(S)의 복원예를 도시하는 도면이다.
도 99는 도 91에 도시하는 테스트 시퀀스 신장수단중의 LZ 신장수단의 처리수순을 설명하는 흐름도이다.
도 100은 도 81에 도시하는 테스트 시퀀스 압축수단중의 압축방법 결정수단의 기능구성의 일예를 도시하는 블록도이다.
도 101은 도 100에 도시하는 압축방법 결정수단의 처리수순을 설명하는 흐름도이다.
도 102는 본 발명의 제 2실시예의 BWT 런 길이 압축수단의 기능구성의 일예를 도시하는 블록도이다.
도 103은 도 102에 도시하는 BWT 런 길이 압축수단의 처리수순을 설명하는 흐름도이다.
도 104는 본 발명의 제 2 실시예의 BWT 런 길이 신장수단의 기능구성의 일예를 도시하는 블록도이다.
도 105는 도 104에 도시하는 BWT 런 길이 신장수단의 처리수순을 설명하는 흐름도이다.
도 106은 본 발명을 적용한 반도체 집적회로를 자동적으로 테스트하는 자동테스트 시스템의 일구성을 도시하는 블록도이다.
도 107은 본 발명을 적용한 반도체 집적회로를 자동적으로 테스트하는 자동테스트 시스템의 다른 구성을 도시하는 블록도이다.
도 108은 도 106 및 도 107에 도시하는 자동 테스트 시스템중에 사용되는 측정계의 일구성을 도시하는 블록도이다.
도 109는 본 발명을 적용한 반도체 집적회로를 자동적으로 테스트하는 자동테스트 시스템의 또 다른 구성을 도시하는 블록도이다.
도 110은 본 발명의 적용한 반도체 집적회로를 자동적으로 테스트하는 자동테스트 시스템의 또 다른 구성을 도시하는 블록도이다.
도 111은 도 109 및 도 110에 도시하는 자동테스트 시스템중에 사용되는 측정계의 일구성을 도시하는 블록도이다.
도 112는 본 발명을 적용한 반도체 집적회로를 자동적으로 테스트하는 자동테스트 시스템의 또 다른 구성을 도시하는 블록도이다.
도 113은 본 발명을 적용한 반도체 집적회로를 자동적으로 테스트하는 자동테스트 시스템의 또 다른 구성을 도시하는 블록도이다.
도 114는 본 발명에 의한 테스트 패턴 압축장치의 압축율에 대한 효과를 도시하는 그래프이다.
도 115는 본 발명에 의한 테스트 패턴 신장장치의 신장속도에 대한 효과를 도시하는 그래프이다.
도 116은 본 발명에 의한 BWT 런 길이 압축수단의 압축율에 대한 효과를 도시하는 그래프이다.
이하, 본 발명의 실시예에 대하여 첨부도면을 참조하여 상세히 설명한다. 더우기, 이하에 있어서는 설명을 간단히 하기 위하여, 시험하기 위하여 IC에 인가하는 테스트 패턴의 압축과 그의 신장에 본 발명을 적용한 사례에 대하여 설명하지만, 본 발명은 IC에 인가하는 테스트 패턴 이외의 다른 데이터 패턴의 압축 및 신장에도 적용되는 것은 말할 것도 없다.
복잡한 IC를 시험하기 위한 테스트 패턴은 통상 IC내의 특정 모듈을 시험하기 위하여 생성된다. 따라서, 테스트 패턴은 그 특정 모듈에 대응하는 IC의 어떤 일정한 핀에 대한 테스트 패턴만이 빈번히 천이하고, 다른 대부분의 핀에 대한 테스트 패턴은 대부분 천이하지 않는 특징이 있다.
그래서, 본 발명의 제 1 면에 있어서는 예를 들면 테스트 패턴의 천이 회수등 입력 테스트 패턴의 구조나 통계적 성질에 착안하여 테스트 패턴을 관련 블록으로 분할하고, 각각의 블록에 대하여 적절한 압축방법을 적용하므로써 효율이 좋은 압축율을 얻을 수 있도록 한 것이다.
도 1은 IC에 인가되는 테스트 패턴의 일예를 도시한다. 도 1에 있어서 수평방향(좌우방향)이 IC의 핀 배열 방향이고, 수직방향(상하방향)이 테스트 패턴의 시퀀스 방향이다. 즉, 도 1의 예에서는 우선 패턴(1)이 IC의 핀(1)으로부터 핀(6)으로 인가되고, 다음에 패턴(2), 패턴(3)의 순으로 테스트 패턴이 IC에 인가된다. 또, 테스트패턴은 1, 0, X의 3개의 기호로 표시되고, 1은 하이(고)레벨의 신호, 0는 로(저)레벨의 신호를 나타내고, X는 던트케어(don't care)를 나타낸다. 즉, X는 하이레벨 신호 또는 로우레벨 신호중 하나이고, IC의 시험에 영향을 주지 않는 신호인 것을 나타낸다.
블록분할에 런 길이 압축법을 사용한 경우에는 우선 처음에 압축후의 데이터 사이즈를 견적함으로써 테스트 패턴 천이회수의 임계값을 계산한다. 다음에 각각의 핀에 대한 테스트 패턴의 천이회수를 계수한다. 그리고 이 실제의 천이회수를 임계값과 비교함으로써 테스트 패턴을 그 천이회수가 임계값에 대하여 작은 블록과 큰 블록으로 분할하여 천이회수가 작은블록에는 런 길이 압축법을 적용하고, 다른 블록에는 각각 다른 적절한 압축법을 적용한다. 이로서, 효율있게 압축할 수 있도록 한 것이다.
런 길이 압축법을 사용한 천이회수의 임계값(ømax)의 견적계산에는 허용할 수 있는 압축율의 하한값(α)을 부여하고, 다음식을 만족하는 최대의 ømax을 구한다.
여기서, M는 천이회수를 계산하는 테스트패턴의 시퀀스의 길이,|A|는 테스트패턴에 출현하는 기호의 집합의 크기이다.
예를들면 '0' 로우 레벨(Low Level)신호, '1' 하이레벨(High Level)신호, 'X' 던트케어(Don't care)의 3개의 신호로 구성된 100핀, 10000시퀀스의 테스트 패턴의 경우에는 M=10000, |A|=3 으로된다. 또 기호 ‖X‖ 는 X이상의 정수이고, 동시에 최소의 정수인 것을 의미한다. 상기 방법으로 구해진 임계값과 실제의 천이회수를 비교함으로써 천이회수가 다른 복수의 블록을 얻을 수가 있다.
또 입력 데이터의 엔트로피에 착안한 경우에는, 우선 처음에 데이터중에 나타나는 기호의 출현확률 Pi(i=1, …, N)을 계측하고, 다음 식을 사용하여 입력 데이터의 엔트로피(H)를 계산한다.
다음에, 압축후의 압축율을 견적함으로써, 엔트로피의 임계값을 계산한다. 예를 들면, 임계값의 계산에 Huffman의 알고리즘을 사용하는 경우에는 엔트로피의 임계값(Hmax)은 허용할 수 있는 최소의 압축율(α)을 부여하고, 다음식을 만족하는 최대의 Hmax을 구한다.
이 임계값을 실제의 엔트로피와 비교함으로써, 테스트 패턴을 엔트로피가 임계값에 대하여 작은 블록과 큰 블록으로 분할하고, 엔트로피가 작은 블록에는 Huffman 압축법 또는 산술부호화 압축법을 적용하고, 다른 블록에는 각각 다른 적절한 압축법을 적용한다. 이로서, 효율의 좋은 압축을 얻을 수 있다.
또, 본 발명의 제 2 면에 있어서는 테스트 패턴을 각 핀에 대한 테스트 시퀀스마다 분할하고, 패턴 테이터의 천이 회수등, 입력 테스트 패턴 데이터의 구조나 통계적 성질에 착안하여 각각의 테스트 시퀀스에 대하여 최적의 압축방법을 적용한다. 이로서, 효율이 좋은 압축율을 얻을 수 있다.
또한, 도 1에 도시하는 테스트 패턴에 있어서, 테스트 패턴의 가로 일열을 테스트 벡터라 부르고, 세로 일열을 어떤 핀에 대한 테스트 시퀀스라 부른다.
테스트 시퀀스에 대하여 적용하는 최적의 압축방법을 결정할 때, 테스트 시퀀스를 어떤 지정된 회수 n=N 일때만 BW 변환하고, 0회∼ N회 BW 변환된 데이터의 천이회수(øi(i=0,1,…N))를 각각 계측한다. BW 변환에 대하여는 예를들면 Burrows M. and Wheeler D. "A Block-sorting Lossless, Data Compression Algorithm, SRC Research Report 124" Digital Systems Research Center, Palo Alto, CA, May, 1994에 기재되어 있다.
여기서, 천이회수는 데이터 열에 있어서, 서로 이웃하는 2개의 데이터가 0에서 1, 1에서 X등으로 변화하는 회수를 나타낸다. 다음에, BW 변환된 데이터를 런 길이 압축방법에 의하여 압축하였을 때의 압축율을 데이터의 천이회수(øi)로 부터 계산함으로써 압축율의 최대치(Rmax)와 압축율이 최대로 될때의 BW 변환의 적용회수 (m)를 취득한다.
다음에 얻어진 압축율의 최대치(Rmax)를 경험적으로 설정한 압축율의 임계값 (Rth)과 비교하고, 압축율의 최대치가 임계값 이상이면 테스트 시퀀스에 대하여 m회 BW 변환한 후, 런 길이 압축방법을 적용하여 압축한다. 여기서, BW 변환의 적용회수(m)가 0인 경우에는 테스트 시퀀스에 대하여 BW 변환하지 않고, 런 길이 압축방법만을 적용하여 압축한다. 압축율의 최대치(Rmax)가 임계값(Rth)보다 작은 경우에는 테스트 시퀀스에 대하여 LZ 압축방법만을 적용하여 압축한다. 이와 같이, 테스트 시퀀스에 대하여 최적한 압축방법을 적용함으로써 효율있게 압축할 수 있다.
또, 본 발명에 있어서는 테스트 패턴을 각 핀의 테스트 시퀀스로 분할하기 때문에, 테스트 시퀀스마다 압축이 가능하고, 따라서, 각 핀에 대하여 하나의 신장장치를 사용함으로써 리얼타임으로 테스트 패턴을 신장할 수가 있다.
데이터의 천이회수를 사용하여 i회 BW 변환한 데이터를 런 길이 압축하였을 때의 압축율(Ri)을 계산하는데는 천이회수(øi) 및 BW 변환의 회수(i)을 사용하여, 다음식으로부터 압축율(Ri)을 구한다.
여기서, L는 테스트 시퀀스의 길이, |A|는 테스트 패턴에 출현하는 기호의 집합의 크기이다.
예를들면, '0' 로우 레벨(Low Level)신호, '1' 하이레벨(High Level)신호, 'X' 던트케어(Don't care)의 3개의 신호로 구성된 10000 시퀀스의 테스트 시퀀스의 경우에는 L=10000, |A|=3으로 된다. 또 기호 [X]는 X이상의 최소의 정수인 것을 의미한다.
상기의 방법으로 구해진 압축율 Ri(i=0,1,…,N)로부터 최대의 압축율(Rmax)과 압축율이 최대로 되는 BW 변환의 회수(m)을 취득하고, Rmax와 임계값(Rth)을 비교함으로써 최적의 압축방법을 결정할 수가 있다.
이상과 같이, 각 테스트 시퀀스에 대하여 최적의 압축방법으로 압축할 수 있기 때문에, 테스트 패턴 전체를 효율있게 압축할 수가 있다. 따라서, 본 발명에 의한 압축방법을 사용하여 테스트 패턴의 데이터를 보다 작은 데이터로 압축함으로써, 데이터의 전송시간을 단축할 수가 있고, 그 결과, 테스트 패턴의 다운로드 시간을 단축하는 것이 가능하다.
상기 블록 분할 방법의 테스트 패턴에의 적용예에 대하여, 이하 구체예를 표시하여 상세히 설명한다.
도 2는 본 발명의 제 1 실시예에 있어서, 사용되는 테스트 패턴 압축장치의 기능구성의 일예를 도시하는 블록도이다. 이 테스트 패턴 압축장치(21)는 입력된 테스트 패턴의 데이터의 구조 또는 통계적 성질에 따라 이 테스트 패턴을 복수의 블록으로 분할하는 테스트 패턴 분할수단(22)과, 분할된 데이터를 압축하는 복수의 데이터 압축수단(A23, B24, C25,…)으로 구성되어 있다.
다음에, 이 테스트 패턴 압축장치(21)를 사용하여 테스트 패턴을 압축하는 경우의 동작을 설명한다.
도 3은 본 발명의 제 1 실시예에 의한 테스트 패턴 압축방법을 설명하는 흐름도이다. 도 2의 테스트 패턴 압축장치(21)중의 테스트 패턴 분할수단(22)은, 단계(31)에 있어서 각 핀마다의 테스트 패턴을 데이터의 구조 또는 통계적 성질에 따라 복수의 블록중 하나에 소속시킴으로써 분할한다.
분할된 각 블록의 데이터 패턴은 단계(32)에 있어서, 각각의 블록에 대하여, 최적의 압축 알고리즘을 갖는 복수의 데이터 압축수단(A23,B24,C25…)에 스위치(S1)를 통하여 송신된다. 그리고, 단계(33a,33b,33c)에 있어서 각 데이터 패턴이 데이터 압축수단에 의하여 압축되고, 최후에 단계(34)에서 각 압축데이터가 스위치(S2)를 통하여 출력된다.
이 경우 데이터 압축수단(A23)의 압축데이터의 선두에 그 압축법을 표시하는 플래그(1)를 압축수단(A23,B24)의 각 압축데이터의 선두에 각각 그 압축법을 표시하는 플래그(2,3)를 붙인다. 또, 각 핀 대응의 테스트 패턴이 어느 핀에 대응하는가를 나타내는 예를들면 핀번호를 각각 붙여둔다.
도 4는 본 발명의 제 1 실시예에 있어서, 사용되는 테스트 패턴 신장장치의 기능구성의 일예를 도시하는 블록도이다. 이 테스트 패턴 신장장치(41)는 신장의 대상이 되는 압축데이터에 대하여 압축방법이 상이한 데이터로 분류하는 압축데이터 분할수단(42)과 분류된 압축데이터를 정보손실없이 본래의 테스트 패턴으로 신장하는 복수의 데이터 신장수단(A43,B44,C45,…)으로 구성되어 있다. 여기서, 데이터 신장수단(43,44,45,…)은 각각 테스트 패턴 압축장치(21)내에 있는 압축수단(23,24,25…)과 1 대 1 대응하고 있다.
다음에, 이 테스트 패턴 신장장치(41)를 사용하여 압축데이터를 신장하는 경우의 동작을 설명한다. 도 5는 본 발명의 제 1 실시예의 테스트 패턴 신장방법을 설명하는 흐름도이다.
우선 단계(51)에 있어서, 압축 데이터 분할수단(42)이 신장 대상의 압축 데이터를 압축 방법이 다른 데이터로 분할한다. 이 분할은 예를들면 압축법을 표시하는 플래그(1,2,3)에 의하여 행한다. 분할된 압축데이터는 단계(52)에 있어서 각각 적절한 데이터 신장수단(A43,B44,C45,…)에 스위치(S3)를 통하여 송신된다. 즉, 플래그(1)의 압축 데이터는 데이터 신장수단(43)으로 송신되고, 플래그(2,3)의 압축데이터는 데이터 신장수단(44,45)에 각각 송신된다. 송신된 데이터는 단계(53)에서 각 데이터 신장수단에 의하여 정보손실없이 본래의 블록으로 신장된다.
최후로 단계(54)에 있어서, 신장된 각 핀마다의 테스트 패턴이 스위치(S4)를 통하여 출력된다.
도 6은 본 발명의 제 1 실시예에 있어서, 사용되는 테스트 패턴 분할수단(22)의 구체적 기능구성의 일예를 도시하는 블록도이다. 이 테스트 패턴 분할수단(22)은 블록분할을 위한 환경 파라미터를 입력하는 파라미터 입력수단(62)과, 입력된 환경 파라미터를 기억하는 파라미터 기억수단(63)과, 파라미터 기억수단(63)에 기억된 환경 파라미터를 사용하여 테스트 패턴을 블록분할하기 위한 데이터 천이회수의 임계값을 계산하는 임계값 계산수단(64)과 입력된 테스트 패턴의 천이회수를 계수하는 천이회수 계수수단(65)과, 데이터 천이회수의 임계값과 실제의 천이회수를 비교하는 천이회수 비교수단(16)과 비교수단(66)의 비교결과에 따라 입력테스트 패턴을 복수의 블록으로 분할하는 블록분할수단(67)으로 구성되어 있다.
다음에 이 테스트 패턴 분할수단(22)을 사용하여 테스트 패턴을 블록분할하는 경우의 동작을 설명한다. 도 7은 본 발명의 제 1 실시예의 테스트 패턴 분할방법을 설명하는 흐름도이다. 또, 도 8은 이 블록 분할방법을 테스트 패턴에 대하여 적용한 예를 도시하고, 도 8(a)는 이하의 설명에서 사용되는 입력 테스트 패턴 예이다. 여기서 도 8(a)에 도시하는 테스트 패턴에 있어서, 수평방향(도면에서 좌우방향)이 집적회로의 핀의 방향이고, 수직방향(도면에서 상하방향)이 패턴의 시퀀스 방향이다.
우선, 파라미터 입력수단(62)을 사용하여 블록분할의 임계값을 계산하기 위한 환경 파라미터, 즉, 천이회수를 계산하는 테스트 패턴의 시퀀스 길이(M), 테스트 패턴에 출현하는 기호의 집합의 크기(|A|), 허용할 수 있는 압축율의 하한치( α)를 입력한다. 입력된 파라미터는 파라미터 기억수단(63)에 기억된다.
다음에, 단계(72)에 있어서, 임계값 계산수단(64)이 파라미터 기억수단(63)에 기억된 파라미터를 사용하여 입력 데이터 패턴을 복수의 블록으로 분할하기 위한 패턴의 천이회수의 임계값을 계산한다. 이 계산에는 식(1)이 사용되고, 도 8의 예에서는, α=1라 하면 M=6,|A|=3로 부터, 도8(b)와 같이 임계값(ømax)는 ømax=2로 구해진다.
다음에, 단계(73)에서, 천이회수 계수수단(65)은 입력된 테스트 패턴의 각 핀에 대한 테스트 패턴의 천이회수를 계수한다. 도 8의 예에서는 예를 들면, 핀(1)의 패턴 천이 회수는 0회이고, 핀(2)의 패턴은 0에서 X로 1회 전이하는 바와 같이, 도 8(c)에 도시하는 바와 같이 천이회수는 ø=[013205]로 얻어진다. 임계값 계산수단(64)으로 계산된 임계값(ømax)와 천이회수 계수수단(65)으로 얻어진 천이회수(ø)는 천이회수 비교수단(66)으로 송신되고 단계(74)에서 비교된다. 이 비교 결과는 블록분할수단(67)으로 송신된다.
다음에 단계(75,76)에 있어서, 블록분할수단(67)이 각핀의 테스트 패턴 데이터를 각각의 천이회수에 따라 복수의 블록으로 분할하는 즉, 복수블록중 하나에 분배시킨다. 도 8의 예에서는 도 8(d)와 같이, 임계값(ømax)에 대하여 천이회수가 ømax이하의 블록과 ømax보다 큰 블록으로 분할된다. 최후에 블록분할수단(67)은 단계(77)로 분할(분배)된 각 블록의 데이터(패턴)를 대응하는 복수의 압축수단으로 송신한다.
도 9는 본 발명의 제 1 실시예에 있어서, 사용되는 테스트 패턴 분할수단(22)의 다른 구체적 기능구성의 일예를 도시하는 블록도이다. 이 테스트 패턴 분할수단(22)은 블록분할하기 위한 환경 파라미터를 입력하는 파라미터 입력수단(92)과 입력된 환경 파라미터를 기억하는 파라미터 기억수단(93)과 이 파라미터 기억수단(93)에 기억된 환경 파라미터를 사용하여 테스트 패턴을 분할하기 위한 엔트로피의 임계값을 계산하는 임계값 계산수단(94)과, 입력 데이터에 있어서 기호의 출현확률을 계측하고, 그 기호의 출현확률로부터 데이터의 엔트로피를 계산하는 엔트로피 계측수단(75)과 엔트로피의 임계값과 실제 데이터의 엔트로피를 비교하는 엔트로피 비교수단(96)과, 이 비교수단(96)의 비교결과에 따라 입력테스트 패턴을 분할하는 블록분할수단(97)으로 구성되어 있다.
다음에, 이 테스트 패턴 분할수단(22)을 사용하여 테스트 패턴을 블록분할하는 경우의 동작을 설명한다. 도 10은 본 발명의 제 1 실시예의 테스트 패턴 분할방법을 설명하는 흐름도이다. 또 도 11은 이 블록 분할방법을 테스트 패턴에 대하여 적용한 예를 도시하고, 도 11(a)는 이하의 설명에서 사용되는 입력 테스트 패턴의 예이다. 여기서 도 11(a)의 테스트 패턴에 있어서, 수평방향(도면에서 좌우방향)이 IC의 핀방향이고, 수직방향(도면에서 상하방향)이 패턴의 시퀀스 방향이다.
우선, 단계(101)에 있어서, 파라미터 입력수단(92)을 사용하여 블록분할의 임계값을 계산하는 파라미터를 입력하고, 파라미터 기억수단(93)에 기억시킨다. 다음에 단계(102)에서, 임계값 계산수단(94)은 입력된 테스트 패턴을 복수의 블록으로 분할하는 엔트로피의 임계값을 계산한다. 임계값의 계산에는 식(3)이 사용되고, 도 11의 예에서는 α=2로 하면, |A|=3으로부터, 도 11(b)와 같이 임계값(Hmax)는 Hmax=1로 구해진다.
다음에 단계(103)에서, 입력된 테스트 패턴에 있어서 기호의 출현확률을 계측한다. 또, 단계(104)에서는, 단계(103)에서 얻어진 확률로부터 식(2)을 사용하여 입력 테스트 패턴의 엔트로피를 계산한다. 이상의 단계(103,104)는 엔트로피 계수수단(95)에서 행해진다. 도 11의 예에서는 예를 들면 핀(1)의 기호의 출현확률(p)은 p(0)=1, p(1)=0, p(X)=0이므로 엔트로피는 식(2)로부터 0으로 구해진다. 또, 핀(2)에 대하여는 p(0)=1/3, p(1)=0, p(X)=2/3이고, 엔트로피는 0.92로 구해진다.
유사하게, 각 핀에 대한 엔트로피(H)를 계산하면, 도 11(c)와 같이 H=[0.0 0.92 1.46 0.92 0.0 1.46]로 구할 수가 있다. 임계값 계산수단(94)으로 계산된 임계값(Hmax)과 엔트로피 계수수단(95)으로 얻어진 엔트로피(H)는 엔트로피 비교수단(96)으로 송신되고, 단계(105)에서 비교된다.
비교 결과는 블록분할수단(97)으로 송신된다. 다음에 단계(106),(107)에 있어서, 블록 분할수단(97)이 각 핀의 테스트 패턴 데이터를 각각의 엔트로피에 따라서 복수의 블록으로 분할한다. 도 11의 예에서는 도 11(d)와 같이, 임계값(Hmax)에 대하여 엔트로피가 Hmax이하의 블록과 Hmax보다 큰 블록으로 분할된다. 최후에 블록분할수단(97)은 단계(108)에서 분할된 각 블록의 데이터를 대응하는 복수의 압축수단에 송신한다.
다음에 본 발명에 의한 테스트 패턴 압축 및 신장장치, 및 테스트 패턴 분할수단(22)의 변형예에 대하여 설명한다.
도 12는 본 발명의 제 1 실시예에 있어서, 도 2에 도시하는 테스트 패턴 압축장치중의 데이터 압축수단의 하나가 런 길이 압축수단인 경우의 테스트 패턴 압축장치(21)의 기능구성의 일예를 도시하는 블록도이다. 이 테스트 패턴 압축장치(21)는 입력된 테스트 패턴 데이터의 천이회수를 계수하고, 데이터의 천이회수에 따라 입력 데이터를 블록분할하는 테스트 패턴 분할수단(122)과 천이회수가 작은 즉, 임계값 이하의 블록에 대하여 런 길이 압축법을 적용하는 런 길이 압축수단(123)과, 다른 블록에 대하여 기타의 방법, 예를 들면 LZ 압축법, Huffman 압축법등으로 데이터를 압축하는 적어도 하나의 데이터 압축수단(124,125,…)으로 구성되어 있다.
각 압축수단(123,124,…)에서 각각 압축된 데이터의 최초에 그 압축법을 나타내는 플래그가 붙여진다.
다음에 런 길이 압축수단(123)을 사용하여 데이터를 압축하는 경우의 동작에 대하여 설명한다. 도 13은 런 길이 압축방법의 처리수순을 설명하는 흐름도이고, 변형예 1의 런 길이 압축방법을 도시하고 있다.
우선 단계(131)에 있어서, 런 길이 부호를 생성하기 위한 초기치와 카운터를 설정한다. 다음에 단계(132)에서 데이터로부터 1문자를 취득하고, 단계(133)에서 문자수를 카운트한다. 단계(134)에서는 취득한 문자와 초기치를 비교하고, 문자가 초기치와 같으면, 단계(132,133)를 반복하고, 문자가 초기치와 같지 않으면, 단계(135)에서 지금까지의 카운트 수를 초기치가 연속한 길이로서 부호화한다. 단계(136)에서는 입력 데이터의 나머지를 확인하고, 입력 데이터가 남아 있으면, 지금까지의 단계를 반복하고, 입력 데이터가 남아 있지 않으면, 단계(137)에서 압축 데이터를 출력하고, 처리를 종료한다.
도 14는 본 발명의 제 1 실시예에 있어서, 데이터 신장수단의 하나가 런 길이 신장수단인 경우의 테스트 패턴 신장장치(41)의 일구성예를 도시하는 블록도이다. 이 테스트 패턴 신장장치(41)는 신장의 대상이 되는 압축데이터를 런 길이 압축법으로 압축된 데이터 및 기타 복수의 압축법으로 압축된 데이터로 각각 압축법을 나타내는 플래그에 의하여 분할하는 압축데이터 분할수단(142)과 각각 분할된 압축데이터를 정보 손실없이 본래의 테스트 패턴으로 신장하는 런 길이 신장수단(143)과 적어도 하나의 다른 방법, 예를 들면, LZ 신장법, Huffman 신장법등의 데이터 신장수단(144,145,…)으로 구성되어 있다. 다음에, 런 길이 신장수단(143)을 사용하여 신장하는 경우의 동작에 대하여 설명한다. 도 15는 런 길이 신장방법의 처리수순을 설명하는 흐름도이고, 본 발명의 변형예 1의 런 길이 신장방법을 도시하고 있다.
우선 단계(151)에 있어서 압축 데이터를 하나 취득하고, 단계(152)에 있어서 압축데이터로부터 초기치와 문자의 연속회수를 취득한다. 다음에 단계(153)에 있어서 초기치를 연속회수만큼 복사(copy)한다. 단계(154)에 있어서 압축데이터가 남아있는 여부를 확인하고, 남아 있으면 단계(151,152,153)를 반복한다. 압축 데이타가 남아 있지 않으면, 단계(155)에서 신장된 데이터를 출력하고, 처리를 종료한다.
도 16은 본 발명의 제 1 실시예에 있어서, 데이터 압축수단의 하나가 런 길이 압축수단이고, 런 길이 압축수단의 전단에 BW 변환수단을 갖는 경우의 테스트 페턴 압축장치(21)의 일구성예를 도시하는 블록도이다. 이 테스트 패턴 압축장치(21)는 입력된 테스트 패턴 데이터의 구조 또는 통계적인 성질에 따라 입력데이터를 블록분할하는 테스트 패턴 분할수단(162)과, 데이터의 주기성이 큰, 즉, 데이터의 천이 회수가 임계값보다 크고, 동시에 데이터의 엔트로피가 임계값 이하인 블록에 대하여 BW 변환하는 BW 변환수단(163)과, BW 변환된 데이터에 대하여 런 길이 압축법을 적용하는 런 길이 압축수단(164)과, 다른 블록에 대하여 다른 방법으로 데이터를 압축하는 적어도 하나의 데이터 압축수단(165,166)으로 구성되어 있다.
다음에, BW 변환수단(163)을 사용하여 변환하는 경우의 동작에 대하여 설명한다. 도 17은 BW 변환방법의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 변형예 2중 BW 변환방법을 도시하고 있다.
우선 단계(171)에 있어서, n개 문자의 문자열(S)을 취득한다. 다음에 단계(172)에서 취득한 문자열(S)의 n개의 순환 문자열(사이클링으로 시프트한 문자열)을 생성하고, 단계(173)에 있어서, 그 순환 문자열을 분류하여 행렬(M)을 작성한다. 단계(174,175)에 있어서는 작성된 행렬(M)로부터 행렬(M)의 최후열로부터 얻어지는 문자열(L)과 입력 문자열(S)과 같은 행의 번호(I)를 취득한다. 최후에 단계(176)에서 입력 데이터의 나머지를 확인하고, 입력 데이터가 남아 있으면, 지금까지의 단계(171,172,173,174,175)를 반복하고, 입력 데이터가 없으면, 단계(177)에서 변환된 데이터를 출력하여, 처리를 종료한다.
도 18은 본 발명의 제 1 실시예에 있어서, 데이터 신장수단의 하나가 런 길이 신장수단이고, 런 길이 압축수단의 후단에 BW 변환수단을 갖는 경우의 테스트 패턴 신장장치의 구성의 일예를 도시하는 블록도이다. 이 테스트 패턴 신장장치(41)는 신장의 대상이 되는 압축데이터를 BW 변환후에 런 길이 압축법으로 압축된 데이터 및 기타 복수의 압축법으로 압축된 데이터로 각각 분할하는 압축 데이터 분할수단(182)과 각각 분할된 압축데이터를 정보 손실없이 본래의 테스트 패턴으로 신장하는 런 길이 신장수단(183)과 런 길이 신장수단으로 신장된 데이터에 대하여 BW 역변환하는 BW 역변환 수단(184)과, 다른 데이터에 대하여 다른 방법으로 신장하는 적어도 하나의 데이터 신장수단(185,186)으로 구성되어 있다.
다음에, BW 역변환 수단(184)을 사용하여 역변환하는 경우의 동작에 대하여 설명한다. 도 19는 BW 역변환 방법의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 변형예 2의 BW 역변환 방법을 도시하고 있다. 우선 단계(191)에 있어서, n문자의 문자열(L)과 번호(I)를 취득한다. 다음에 단계(192)에 있어서, 취득한 문자열(L)의 문자를 분류하고, 문자열(F)을 생성한다. 단계(193)에 있어서는 문자열(L, F)의 각 문자의 대응을 표시하는 행렬(T)을 작성한다. 그리고, 단계(194)에 있어서는 문자열(L), 번호(I), 행렬(T)로부터 본래의 문자열(S)을 복원한다. 최후에, 단계(195)에서 데이터의 나머지를 확인하고, 데이터가 남아 있으면, 지금까지의 단계(191,192,193,194)를 반복하고, 입력 데이터가 없으면, 단계(196)에서 역변환된 데이터를 출력하고, 처리를 종료한다.
도 20은 본 발명의 제 1 실시예에 있어서, 하나의 데이터 압축수단, Huffman 압축수단의 테스트 패턴 압축장치(21)의 일구성예를 도시하는 블록도이다. 이 테스트 패턴 압축장치(21)는 입력된 테스트 패턴 데이터의 통계적인 성질에 따라 입력데이터를 블록분할하는 테스트 패턴 분할수단(202)과, 엔트로피가 작은 즉, 임계값 이하인 블록에 대하여 Huffman 압축법을 적용하는 Huffman 압축수단(203)과, 다른 블록에 대하여 데이터를 다른 방법, 예를 들면 LZ 압축법, 상술 부호화 압축법등으로 압축하는 적어도 하나의 데이터 압축수단(204,205)으로 구성되어 있다.
다음에, Huffman 압축수단(203)을 사용하여 압축하는 경우의 동작에 대하여 설명한다. 도 21은 Huffman 압축방법의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 변형예 3의 Huffman 압축방법을 도시하고 있다.
우선, 단계(211)에 있어서, 입력 데이터에 출현하는 문자의 출현확률을 계측한다. 다음에 단계(212)에서 취득한 출현확률로부터 Huffman 부호를 작성하는 2진목(binary tree)를 작성하고, 단계(213)에 있어서 Huffman의 2진목에 의거하여 각각의 문자에 부호를 할당한다. 그후, 단계(214)에 있어서 입력 데이터로부터 1문자를 취득하고, 단계(215)에서 취득한 문자를 할당된 부호로 변환한다. 최후에, 단계(216)에서 입력 데이터의 나머지를 확인하고, 입력 데이터가 남아 있으면, 단계(214,215)를 반복하고, 입력 데이터가 없으면, 단계(217)에서 압축데이터를 출력하고, 처리를 종료한다.
도 22는 본 발명의 제 1 실시예에 있어서, 데이터 신장수단의 하나가 Huffman 신장수단인 경우의 테스트 패턴 신장장치(41)의 일구성예를 도시하는 블록도이다. 이 테스트 패턴 신장장치(41)는 신장의 대상이 되는 압축데이터를 Huffman압축법으로 압축한 데이터, 및 기타 복수의 압축법으로 압축된 데이터로 분할하는 압축데이터 분할수단(222)과 각각 분할된 압축데이터를 정보 손실없이 본래의 테스트 패턴으로 신장하는 Huffman 신장수단(223)과 적어도 하나의 데이터 신장수단(224,225)으로 구성되어 있다.
다음에 Huffman 신장수단(223)을 사용하여 신장하는 경우의 동작에 대하여 설명한다. 도 3은 Huffman 신장방법의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 변형예 3의 Huffman 신장 방법을 도시하고 있다.
우선 단계(231)에 있어서, 압축에 사용한 2진목을 압축 데이터로부터 취득한다. 2진 부호로부터 본래의 문자를 얻는데는 Huffman의 2진목을 조사할 필요가 있기 때문에, 단계(232)에 있어서 2진목의 근의 노드(Node)로 이동한다. 다음에 단계(233)에 있어서 압축데이터로부터 2진부호를 하나 취득하고 단계(234)에서 취득한 2진 부호에 의거하여 Huffman의 2진목을 조사한다. 그리고, 단계(235)에서 현재의 노드가 2진목의 잎의 노드인가 여부를 조사하고, 잎의 노드가 아니면 잎의 노드에 도달할때가지 단계(233,234)를 반복하고, 잎의 노드이면, 단계(236)에 있어서 잎의 노드에 할당된 문자를 출력한다. 최후에 단계(237)에서 2진부호의 나머지를 확인하고, 2진부호가 남아 있으면, 지금까지의 단계(231, 232, 233, 234, 235, 236)를 반복하고, 입력 데이터가 없으면, 단계(238)에서 신장된 데이터를 출력하고, 처리를 종료한다.
도 24는 본 발명의 제 1 실시예에 있어서, 데이터 압축수단의 하나가 LZ압축수단인 경우의 테스트 패턴압축장치(21)의 일구성예를 도시하는 블록도이다. 이 테스트 패턴 압축장치(21)는 입력된 테스트 패턴 데이터의 통계적인 성질에 따라 입력 데이터를 블록분할하는 테스트 패턴 분할수단(242)과, 엔트로피가 작은, 즉, 임계값이하인 블록에 대하여 LZ 압축법을 적용하는 LZ압축수단(243)과 다른 블록에 대하여 데이터를 다른 방법, 예를 들면 Huffman 압축법, 산술부호화 압축법등으로 압축하는 적어도 하나의 데이터 압축수단(244,245)으로 구성되어 있다.
다음에 LZ압축수단(243)을 사용하여 압축하는 경우의 동작에 대하여 설명한다. 도 25는 LZ 압축방법의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 변형예 4의 LZ 압축방법을 도시하고 있다.
우선, 단계(251)에 있어서, 압축에 사용되는 사서를 초기화한다. 다음에 단계(252)에 있어서 입력 데이터를 취득하고, 단계(253)에서 취득한 문자열과 사서를 매칭한다. 단계(254)에서는 다른 것에 의하여 충분히 매칭되는 문자열이 있는가 여부를 확인하고, 그 가능성이 있으면 단계(253)의 매칭을 반복한다. 그 외에 보다 충분히 매칭되는 문자열이 없으면, 단계(255)에서 매칭한 문자열과 매칭되지 않았던 최초의 문자를 부호화하고, 단계(256)에 있어서 이 새로운 문자열을 사서에 등록한다. 최후로 단계(257)에서 입력 데이터의 나머지를 확인하고, 입력데이터가 남아 있으면, 단계(252,253,254,255,256)를 반복하고, 입력 데이터가 없으면, 단계(258)에서 압축 데이터를 출력하고, 처리를 종료한다.
도 26은 본 발명의 제 1 실시예에 있어서, 데이터 신장수단의 하나가 LZ 신장수단인 경우의 테스트 패턴 신장장치(41)의 일구성예를 도시하는 블록도이다. 이 테스트 패턴 신장장치(41)는 신장의 대상이 되는 압축 데이터를 LZ 압축법으로 압축한 데이터, 및 기타 복수의 압축법으로 압축된 데이터로 분할하는 압축 데이터 분할수단(262)과 각각 분할된 압축 데이터를 정보 손실없이 본래의 테스트 패턴으로 신장하는 LZ 신장수단(263)과 적어도 하나의 다른 방법의 데이터 신장수단(264,265)으로 구성되어 있다.
다음에 LZ 신장수단(263)을 사용하여 신장하는 경우의 동작에 대하여 설명한다. 도 27은 LZ 신장방법의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 변형예 4의 LZ 신장방법을 도시하고 있다.
우선 단계(271)에서, 신장에 사용되는 사서를 초기화한다. 다음에, 단계(272)에 있어서 입력 압축 데이터로부터 부호를 하나 취득하고, 단계(273)에서 취득한 부호로 사서를 검색한다. 더욱더, 단계(274)에서 부호를 문자열로 변환하고 단계(275)에서 새롭게 생성된 문자열을 사서에 등록한다. 최후에 단계(276)에서 압축된 데이터의 나머지를 확인하고, 압축 데이터가 남아 있으면, 단계(272,273,274, 275)를 반복하고 압축 데이터가 없으면, 단계(277)에서 신장된 데이터를 출력하고 처리를 종료한다.
도 28은 본 발명의 제 1 실시예에 있어서, 데이터 압축 수단의 하나가 산술부호화 압축수단인 경우의 테스트 패턴 압축장치(21)의 일구성예를 도시하는 블록도이다. 이 테스트 패턴 압축장치(21)는 입력된 테스트 패턴 데이터의 통계적인 성질에 따라 입력 데이터를 블록 분할하는 테스트 패턴 분할수단(282)과 엔트로피가 작은 즉 임계값 이하인 블록에 대하여 데이터를 다른 방법, 예를 들면 LZ 압축법, Huffman 압축법등으로 압축하는 적어도 하나의 데이터 압축수단(284,285)으로 구성되어 있다.
다음에, 산술 부호화 압축수단(283)을 사용하여 압축하는 경우의 동작에 대하여 설명한다. 도 29는 산술부호화 압축방법의 처리방법의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 변형예 5의 산술부호화 압축방법을 도시하고 있다.
우선 단계(291)에서, 입력 데이터중의 각각의 문자의 출현확률을 계측하고, 단계(292)에서 각각의 문자에 0∼1의 수직선상의 구간을 할당한다. 다음에 단계(293)에 있어서 입력 데이터로부터 1문자를 취득하고, 단계(294)에서 취득한 문자를 수직선상의 구간으로 변환한다. 최후로, 단계(295)에서 입력 데이터의 나머지를 확인하고, 입력 데이터가 남아 있으면, 단계(293,294)를 반복하고, 수직선상의 구간을 더욱더 좁히고, 입력 데이터가 없으면, 단계(296)에서 지금까지 얻어진 구간의 하한치를 취득하고, 단계(297)에 있어서 압축 데이터를 출력하고, 처리를 종료한다.
도 30은 본 발명의 제 1 실시예에 있어서, 데이터 신장수단의 하나가 산술부호화 신장수단인 경우의 테스트 패턴 신장장치(41)의 일구성예를 도시하는 블록도이다. 이 테스트 패턴 신장장치(41)는 신장의 대상이 되는 압축 데이터를 산술부호화 압축법으로 압축한 데이터 및 기타의 복수의 압축법으로 압축한 데이터로 분할하는 압축 데이터 분할수단(302)과 각각 분할된 압축데이터를 정보 손실없이 본래의 테스트 패턴으로 신장하는 산술부호화 신장수단(303)과 적어도 하나의 다른 방법의 데이터 신장수단(304,305)으로 구성되어 있다.
다음에, 산술부호화 신장수단(303)을 사용하여 신장하는 경우의 동작에 대하여 설명한다. 도 31은 산술부호화 신장방법의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 변형예 5의 산술부호화 신장방법을 도시하고 있다. 우선, 단계(311)에 있어서, 압축 데이터로부터 각각의 문자의 출연확률에 대한 정보를 취득하고, 압축의 경우와 완전히 동일하게, 각각의 문자에의 수직선상의 구간을 할당한다. 다음에 단계(312)에 있어서, 압축데이터로부터 실수치 부호를 취득하고, 단계(313)에 있어서 실수치가 포함되는 구간에 할당된 문자를 출력한다. 그리고 단계(314,315)에 있어서 실수치로부터 구간의 하한치를 빼고, 더욱더, 그 실수치를 구간의 폭으로 나눈다. 최후에 단계(316)에서 실수치가 0 인지 여부를 확인하고, 실수치가 0이 아니면, 실수치가 0이 될 때까지 단계(313,314,315)를 반복한다. 실수치가 0이 되었으면, 단계(317)에서 신장된 데이터를 출력하고, 처리를 종료한다.
도 32은 본 발명의 제 1 실시예에 있어서, 사용되는 테스트 패턴 분할수단922)의 내부구성의 일예를 도시하는 블록도이다. 이 테스트 패턴 분할수단(22)은 소정의 임계값을 기억하는 임계값 기억수단(322)과 입력된 데이터의 천이회수를 계수하는 천이회수 계수수단(323)과, 임계값과 실제의 데이터의 천이회수를 비교하는 천이회수 비교수단(324)과, 비교 결과에 따라 복수의 블록으로 분할하는 블록분할수단(325)으로 구성되어 있다.
다음에, 이 테스트 패턴 분할수단(22)을 사용하여 테스트 패턴을 블록분할하는 경우의 동작에 대하여 설명한다. 도 33은 도 32에 도시하는 테스트 패턴 분할수단(22)의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 테스트 패턴 분할방법을 도시하고 있다.
우선, 단계(331)에 있어서, 천이회수 계수수단(323)은 입력된 테스트 패턴의 각 핀에 대한 테스트 패턴의 천이회수를 계수한다. 임계값 기억수단(322)에 기억되어 있는 임계값과 천이회수 계수수단(325)에서 얻어진 천이회수가 천이회수 비교수단(324)으로 송신되고 단계(332)에서 비교된다. 비교 결과는 블록분할수단(325)에 송신된다. 다음에 단계(333,334)에 있어서, 블록분할수단(325)은 테스트 패턴 데이터를 각각의 천이회수에 따라 복수의 블록으로 분할한다. 최후로 블록분할수단(325)은 단계(335)에서 분할된 각 블록의 데이터를 대응하는 복수의 압축수단에 송신한다.
도 34는 본 발명의 제 1 실시예에 있어서, 사용되는 테스트 패턴 분할수단(22)의 내부구성의 다른 일예를 도시하는 블록도이다. 이 테스트 패턴 분할수단(22)는 소정의 임계값을 기억하는 임계값 기억수단(342)과 입력 데이터에 있어서 기호의 출력확률을 계측하고, 기호의 출현확률로부터 데이터의 엔드로피를 계산하는 엔트로피 계측수단(343)과, 임계값과 실제의 데이터 엔트로피를 비교하는 엔트로피 비교수단(344)과, 비교 결과에 따라 복수의 블록으로 분할하는 블록분할수단(345)으로 구성되어 있다.
다음에, 이 테스트 패턴 분할수단(22)을 사용하여 테스트 패턴를 블록분할하는 경우의 동작에 대하여 설명한다. 도 35는 도 34에 도시하는 테스트 패턴 분할수단(22)의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 테스트 패턴 분할방법을 도시하고 있다.
우선, 단계(351)에 있어서, 입력된 테스트 패턴에 있어서 기호의 출현확율을 계측한다. 단계(352)에 있어서, 단계(351)에서의 확률로부터 입력 데이터의 엔트로피를 계산한다. 상기 단계(351,352)는 엔트로피 계측수단(343)에서 행해진다.
임계값 기억수단(342)에 기억되어 있는 임계값과 엔트로피 계측수단(343)에서 얻어진 엔트로피가 엔트로피 비교수단(344)으로 송신되고, 단계(353)에서 비교된다. 비교결과는 블록분할수단(345)으로 송신된다. 다음에 단계(355,356)에 있어서, 블록분할수단(345)은 테스트 패턴 데이터를 각각의 엔트로피에 따라 복수의 블록으로 분할한다. 최후로, 블록분할수단(345)은 단계(356)에서 분할된 각 블록의 데이터를 대응하는 복수의 압축수단에 송신한다.
도 36은 본 발명의 제 1 실시예에 있어서, 사용되는 테스트 패턴 분할수단(22)의 내부구성의 다른 일예를 도시하는 블록도이다. 이 테스트 패턴 분할수단(22)은 블록분할을 위한 데이터 천이회수의 임계값을 계산하는 임계값 계산수단(362)과 임계값 계산수단(362)으로 계산된 임계값을 사용하여 압축율을 견적하고, 압축율이 최대로 되도록 임계값을 최적화하는 최적화수단(363)과 데이터의 천이회수를 계수하는 천이회수 계수수단(364)과 최적화된 임계값과 실제의 데이터의 천이회수를 비교하는 천이회수 비교수단(365)과 비교 결과에 따라 복수의 블록으로 분할하는 블록분할수단(366)으로 구성되어 있다.
다음에 이 테스트 패턴 분할수단(22)을 사용하여 테스트 패턴을 블록분할하는 경우의 동작에 대하여 설명한다. 도 37은 도 36에 도시하는 테스트 패턴 분할수단(22)의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 테스트 패턴 분할방법을 도시하고 있다.
우선 단계(371)에 있어서, 일어날 가능성이 있는 경우를 모두 열거한다. 다음에, 단계(372)에 있어서, 임계값 계산수단(362)이 단계(371)에서 열거한 케이스중의 하나를 선택하고, 입력 테스트패턴을 복수의 블록으로 분할하기 위한 패턴의 천이회수의 임계값을 계산한다. 다음에 단계(373)에 있어서, 블록분할 최적화수단(363)이 단계(372)에서 얻어진 임계값을 사용하여 블록분할 및 압축하고, 압축율을 계산한다.
다음에 단계(374)에 있어서, 압축율을 이전의 결과와 비교하고, 압축율이 높으면, 단계(375)에 있어서 임계값을 새로운 값으로 변경하고 압축율이 낮으면, 다음 단계(376)로 진행한다. 단계(376)에서는 검증되지 않는 다른 경우가 존재하는가 여부를 확인하고, 다른 경우가 있으면, 단계(372,373,374,375)를 반복한다. 그 외에 검증하여야 할 경우가 없으면, 단계(377)으로 이동한다. 단계(377)에서는 천이회수 계수수단(364)이 입력된 테스트 패턴의 각 핀에 대한 테스트 패턴의 천이회수를 계수한다. 최적화된 임계값과 천이회수 계수수단(364)에서 얻어진 천이회수는 천이회수 비교수단(365)으로 송신되고, 단계(378)에서 비교된다. 비교 결과는 블록분할수단(366)으로 송신된다.
다음에 단계(379,3710)에 있어서, 블록분할수단(366)이 테스트 패턴 데이터를 각각의 천이회수에 따라 복수의 블록으로 분할한다. 블록 분할수단(366)은 단계(3711)에서 분할된 각 블록의 데이터를 대응하는 복수의 압축수단에 송신한다.
도 38은 본 발명의 제 1 실시예에 있어서, 사용되는 테스트 패턴 분할수단(22)의 내부구성의 또 다른 예를 도시하는 블록도이다. 이 테스트 패턴 분할수단(22)은 블록분할을 위한 엔트로피의 임계값을 계산하는 임계값 계산수단(382)과 임계값 계산수단(382)으로 계산된 임계값을 사용하여 압축율을 견적하고, 압축율이 최대로 되도록 임계값을 최적화하는 최적화 수단(383)과 입력데이터에 있어서 기호의 출현확률을 계측하고 그 기호의 출현확률로부터 데이터의 엔트로피를 계산하는 엔트로피 계수수단(384)과 최적화된 임계값과 실제의 데이터 천이회수를 비교하는 천이회수 비교수단(385)과 비교 결과에 따라 복수의 블록으로 분할하는 블록 분할수단(386)으로 구성되어 있다.
다음에, 이 테스트 패턴 분할수단(22)을 사용하여 테스트 패턴을 블록분할하는 경우의 동작에 대하여 설명한다. 도 39은 도 38에 도시하는 테스트 패턴 분할수단의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 테스트 패턴 분할방법을 도시하고 있다.
우선 단계(391)에 있어서, 일어날 가능성이 있는 경우를 모두 열거한다. 다음에, 단계(392)에 있어서, 임계값 계산수단(382)이 단계(391)에서 열거한 케이스중의 하나를 선택하고, 입력 테스트 패턴을 복수의 블록으로 분할하기 위한 패턴의 엔트로피의 임계값을 계산한다. 다음에 단계(393)에 있어서, 블록 분할 최적화 수단(383)이 단계(392)에서 얻어진 임계값을 사용하여 블록분할 및 압축하고, 압축율을 계산한다.
다음에, 단계(394)에 있어서 압축율을 이전의 결과와 비교하고, 압축율이 높으면, 단계(395)에 있어서 임계값을 새로운 값으로 변경하고, 압축율이 낮으면, 다음 단계(396)로 진행한다. 단계(396)에서는 검증되지 않는 다른 경우가 존재하는가 여부를 확인하고, 다른 경우가 존재하면, 단계(392,393,394,395)를 반복한다. 그 외에 검증하여야 할 경우가 없으면, 단계(397)로 이동한다. 단계(397)에서는 입력된 테스트 패턴에 있어서 기호의 출현확률을 계측한다. 또 단계(398)에 있어서는 단계(397)에서 얻어진 확률로부터 입력 데이터의 엔트로피를 계산한다. 이상의 단계(397,398)는 엔트로피 계측수단(384)에서 행해진다. 최적화된 임계값과 엔트로피 계측수단(384)에서 얻어진 엔트로피는 엔트로피 비교수단(385)으로 송신되고, 단계(399)에서 비교된다. 비교 결과는 블록분할수단(386)으로 송신된다.
다음에 단계(3910,3911에서, 블록분할수단(386)은 테스트 패턴 데이터를 각각의 엔트로피에 따라 복수의 블록으로 분할한다. 최후로, 블록분할수단(386)은 단계(399)에서 분할된 각 블록의 데이터를 대응하는 복수의 압축수단에 송신한다.
도 40은 본 발명의 제 1 실시예에 있어서, 런 길이 압축수단, BW 변환수단, LZ 압축수단을 갖는 경우의 테스트 패턴 압축장치의 일구성예를 도시하는 블록도이다. 이 테스트 패턴 압축수단(21)은 입력된 테스트 패턴 데이터의 구조 또는 통계적인 성질에 따라 입력 데이터을 블록분할하는 테스트 패턴 분할수단(402)과 데이터의 천이회수가 임계값 이하인 블록에 대하여 런 길이 압축하는 런 길이 압축수단(403)과 데이터의 천이회수가 임계값보다 크고, 동시에 데이터의 엔트로피가 임계값 이하인 블록에 대하여 BW 변환하는 BW변환수단(404)과 BW 변환수단으로 BW 변환된 데이터에 대하여 런 길이 압축법을 적용하는 또 하나의 런 길이압축수단(405)과 데이터의 천이회수가 임계값보다 크고, 동시에 데이터의 엔트로피가 임계값보다 큰 블록에 대하여 LZ 압축하는 LZ 압축수단(406)으로 구성되어 있다.
다음에, 이 테스트 패턴 압축장치(21)를 사용하여 테스트 패턴을 압축하는 경우의 동작에 대하여 설명한다. 도 41은 도 40에 도시하는 테스트 패턴 압축장치(21)의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 테스트 패턴 압축방법을 도시하고 있다.
테스트 패턴 분할수단(402)은 단계(411)에 있어서 테스트 패턴 데이터를 데이터의 구조 또는 통계적 성질에 따라 복수의 블록으로 분할한다. 분할된 각 블록의 데이터는 단계(412)에서 각각의 블록에 대하여 최적의 압축 알고리즘을 갖는 런 길이 압축수단(403), BW 변환수단(404), LZ 압축수단(406)에 스위치를 통하여 송신된다. 그리고 단계(413,414,415,416)에서 각 데이터가 각각 런 길이 압축수단(403), BW 변환수단(404), 런 길이 압축수단(405), LZ 압축수단(406)에 의하여 압축되고, 최후로 단계(417)에서 압축 데이터가 스위치를 통하여 출력된다. 도 42는 본 발명의 제 1 실시예에 있어서, 런 길이 신장수단, BW 역변환수단, LZ 신장수단을 갖는 경우의 테스트 패턴 신장장치의 일구성예를 도시하는 블록도이다. 이 테스트 패턴 신장장치(41)는 신장의 대상이 되는 압축 데이터를 런 길이 압축법으로 압축한 데이터, BW 변환후에 런 길이 압축법으로 압축한 데이터, 및 LZ 압축법으로 압축한 데이터에 예를 들면 플래그에 의하여 각각 분할되는 압축 데이터 분할수단(422)과 각각 분할된 데이터를 정보 손실없이 본래의 테스트 패턴으로 신장하기 위한 런 길이 신장수단(423,424) 및 LZ 신장수단(426)과 BW 변환되어 있는 테스트 패턴 데이터에 대하여 BW 역변환하는 BW역변환수단(425)으로 구성되어 있다.
다음에, 이 테스트 패턴 신장장치(41)를 사용하여 압축 데이터를 신장하는 경우의 동작에 대하여 설명한다. 도 43은 도 42에 도시하는 테스트 패턴 신장장치의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 테스트 패턴 신장방법을 도시하고 있다.
우선, 단계(431)에서, 압축데이터 분할수단(422)은 신장 대상의 압축데이터를 런 길이 압축법으로 압축된 데이터, BW 변환후에 런 길이 압축법으로 압축된 데이터, 및 LZ압축법으로 압축된 데이터로 각각 분할한다. 분할된 각 압축데이터는 단계(432)에서 각각 런 길이 신장수단(423,424) 및 LZ 신장수단(426)에 스위치를 통하여 송신된다. 송신된 데이터는 단계(433,434,436)에서 각 데이터 신장수단에 의하여 정보 손실없이 본래의 데이터로 신장된다. 더욱더, BW 변환되어 있는 데이터는 단계(435)에서 본래의 데이터로 BW 역변환된다. 최후로 단계(437)에서 신장된 테스트 패턴이 스위치를 통하여 출력된다.
도 44는 본 발명의 제 1실시예에 있어서 사용되는 테스트 패턴 분할수단(422)의 기능구성의 일예를 도시하는 블록도이다. 이 테스트 패턴 분할수단(422)은 블록분할을 위한 환경 파라미터를 입력하는 파라미터 입력수단(422)과 입력된 환경파라미터를 기억하는 파라미터 기억수단(443)과, 파라미터 기억수단(443)에 기억된 환경 파라미터를 사용하여 블록분할하기 위한 데이터 천이회수의 임계값을 계산하는 천이회수 임계값 계산수단(444)과 입력된 데이터의 천이회수를 계수하는 천이회수 계수수단(445)과 천이회수 임계값과 실제의 데이터 천이회수를 비교하는 천이회수 비교수단(446)과 파라미터 기억수단(443)에 기억된 환경 파라미터를 사용하여 블록분할을 위한 엔트로피의 임계값을 계산하는 엔트로피 임계값 계산수단(447)과 입력된 데이터의 엔트로피를 계측하는 엔트로피 계측수단(448)과 엔트로피 임계값과 실제의 데이터 엔트로피를 비교하는 엔트로피 비교수단(449)과 천이회수 비교수단(446) 및 엔트로피 비교수단(449)에서 얻어진 비교 결과에 따라 데이터를 복수의 블록으로 분할하는 블록 분할수단(440)으로 구성되어 있다.
다음에 이 테스트 패턴 분할수단(422)을 사용하여 테스트 패턴을 블록분할하는 경우의 동작에 대하여 설명한다. 도 45는 도 44에 도시하는 테스트 패턴 분할수단(422)의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 테스트 패턴 분할방법을 도시하고 있다.
우선 단계(451)에서, 파라미터 입력수단(442)을 사용하여 블록분할의 임계값을 계산하기 위한 파라미터를 입력한다. 입력된 파라미터는 파라미터 기억수단(443)에 기억된다. 다음에 단계(452)에서 천이회수 임계값 계산수단(444)이 파라미터 기억수단(443)에 기억된 파라미터를 사용하여, 입력 테스트 패턴을 복수의 블록으로 분할하기 위한 패턴의 천이회수의 임계값을 계산한다. 다음에 단계(453)에서 천이회수 계수수단(445)이 입력된 테스트 패턴의 각 핀에 대한 데스트 패턴의 천이회수를 계수한다.
천이회수 임계값 계산수단(444)에서 계산된 천이회수 임계값과 천이회수 계수수단(445)에서 얻어진 천이회수는 천이회수 비교수단(446)으로 송신되고, 단계(454)에서 비교된다. 동시에 단계(455)에 있어서, 엔트로피 임계값 계산수단(447)이 입력테스트 패턴을 복수의 블록으로 분할하기 위한 엔트로피의 임계값을 계산한다. 다음에 단계(456)에서 입력된 테스트 패턴에 있어서 기호의 출현확률을 계측한다. 또 단계(457)에서는 단계(456)에서 얻어진 확률로부터 입력 데이터의 엔트로피를 계산한다. 이상의 단계(456,457)는 엔트로피 계측수단(448)에서 행해진다. 엔트로피 임계값 계산수단(447)에서 계산된 임계값과 엔트로피 계측수단(448)에서 얻어진 엔트로피는 엔트로피 비교수단(449)으로 송신되고, 단계(458)에서 비교된다. 여기서 단계(452∼454) 및 단계(455∼458)는 병렬로 처리할 수 있다.
단계(454, 458)에서 얻어진 비교 결과는 블록 분할수단(440)으로 송신된다. 블록 분할수단(440)에서는 우선 처음에 단계(459)에서 각 핀에 대한 테스트 패턴의 천이회수가 임계값이하인지 여부를 판정하고, 천이회수가 임계값 이하인 테스트 패턴을 단계(4510)에서 블록(1)으로 분류한다. 또, 천이회수가 임계값보다 큰 테스트 패턴에 대하여는 단계(4511)에서 엔트로피가 임계값이하인지 여부를 판정하고 테스트 패턴의 엔트로피가 임계값이하인 경우에는, 단계(4512)에서 테스트 패턴을 블록(2)으로 분류한다. 단계(4511)에서 엔트로피가 임계값보다 큰 테스트 패턴은 단계(4513)에서 블록(3)으로 분류된다. 최후에 블록 분할수단(440)은 단계(4514)에서 분할된 각 블록의 데이터를 복수의 압축수단에 송신한다.
도 46은 본 발명의 제 1 실시예에 있어서, 사용되는 테스트 패턴 분할수단(461)의 기능구성의 다른 일예를 도시하는 블록도이다. 이 테스트 패턴 분할수단(462)은 블록 분할을 위한 환경 파라미터를 입력하는 파라미터 입력수단(462)과 입력된 환경 파라미터를 기억하는 파라미터 기억수단(462)과 천이회수에 따라 블록분할하는 천이회수 분할수단(464)과 엔트로피에 따라 블록분할하는 엔트로피 분할수단(465)으로 구성되어 있다.
더욱더 천이회수 분할수단(464)은 파라미터 기억수단(463)에 기억된 환경 파라미터을 사용하여 블록분할하는 데이터 천이회수의 임계값을 계산하는 천이회수 임계값 계산수단(466)과 입력된 데이터의 천이회수를 계수하는 천이회수 계수수단(467)과 천이회수 임계값과 실제의 데이터 천이회수를 비교하는 천이회수 비교수단(468)과 천이회수 비교수단(468)으로 얻어진 비교 결과에 따라 복수의 블록으로 분할하는 블록분할수단(469)으로 구성되고, 엔트로피 분할수단(465)은 파라미터 기억수단(463)에 기억된 환경 파라미터를 사용하여 블록분할하는 엔트로피의 임계값을 계산하는 엔트로피 임계값 계산수단(4610)과 입력된 데이터의 엔트로피를 계측하는 엔트로피 계측수단(4611)과 엔드로피 임계값과 실제의 데이터 엔트로피를 비교하는 엔트로피 비교수단(4612)과, 엔트로피 비교수단(4612)에서 얻어진 비교 결과에 따라 데이터를 복수의 블록으로 분할하는 블록분할수단(4613)으로 구성되어 있다.
다음에, 이 테스트 패턴 분할수단(461)을 사용하여 테스트 패턴을 블록분할하는 경우의 동작에 대하여 설명한다. 도 47은 도 46에 도시하는 테스트 패턴분할수단의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 테스트 패턴 분할방법을 도시하고 있다.
우선, 단계(471)에서, 파라미터 입력수단(462)을 사용하여, 블록분할의 임계값을 계산하는 파라미터를 입력한다. 입력된 파라미터는 파라미터 기억수단(463)에 기억된다. 다음에, 단계(572)에서 파라미터 기억수단(463)에 기억된 파라미터를 사용하여, 천이회수 분할수단(464)의 천이회수 임계값 계산수단(466)은 입력테스트 패턴을 복수의 블록으로 분할하는 패턴의 천이회수의 임계값을 계산한다. 다음에, 단계(473)에서 천이회수 계수수단(467)은 입력된 테스트 패턴의 각 핀에 대한 테스트 패턴의 천이회수를 계수한다.
천이회수 임계값 계산수단(466)에서 계산된 천이회수 임계값과 천이회수 계수수단(467)에서 얻어진 천이회수는 천이회수 비교수단(468)으로 송신되고 단계(474)에서 비교된다. 단계(474)에서 얻어진 비교 결과는 블록분할수단(469)으로 송신된다. 다음에, 단계(475)에서 블록 분할수단(469)이 각 핀에 대한 테스트 패턴의 천이회수가 임계값이하인가 여부를 판정하고, 천이회수가 임계값이하인 테스트 패턴을 단계(476)에서 블록(A)으로 분류한다. 분류된 블록(A)은 단계(477)에서 스위치를 통하여 출력된다.
천이회수가 임계값보다 큰 테스트 패턴은 단계(478)에서 블록(B)으로 분류하고 단계(479)에서 분할된 블록(B)을 엔트로피 분할수단(465)에 송신한다. 다음에 단계(4710)에서 엔트로피 임계값 계산수단(4610)은 입력 테스트 패턴을 복수의 블록으로 분할하는 엔트로피의 임계값을 계산한다. 단계(4711)에서, 입력된 테스트 패턴에 있어서 기호의 출현확률을 계측한다. 또, 단계(4712)에 있어서, 단계(4711)에서 얻어진 확률로부터 입력 데이터의 엔트로피를 계산한다. 이상의 단계(4711,4712)는 엔트로피 계측수단(4611)에서 행해진다.
엔트로피 임계값 계산수단(4610)에서 계산된 임계값과 엔트로피 계측수단(4611)에서 얻어진 엔트로피는 엔트로피 비교수단(4612)에 송신되고, 단계(4713)에서 비교된다. 여기서 단계(472,4710)은 각각 독립이고, 병렬 처리가 가능하다.
단계(4713)에서 얻어진 비교 결과는 블록분할수단(4613)에 송신된다. 블록 분할수단(4613)에서는 단계(4714)에서 각 핀에 대한 테스트 패턴의 엔트로피가 임계값 이하인가 여부를 판정하고, 테스트 패턴의 엔트로피가 임계값 이하인 경우에는 단계(4715)에서 테스트 패턴을 블록(B1)으로 분류한다. 단계(4714)에서 엔트로피가 임계값보다도 큰 테스트 패턴은 단계(4716)에서 블록(B2)으로 분류된다. 최후로 블록 분할수단(4613)은 엔트로피 분할수단(465)으로 분할된 각 블록의 데이터를 단계(4717)에서 스위치를 통하여 출력한다.
도 48은 본 발명의 제 1 실시예에 있어서, 사용되는 테스트 패턴 압축장치(21)의 기능구성의 다른 일예를 도시하는 블록도이다. 이 테스트 패턴 압축장치는 입력된 테스트 패턴에 대하여 적응하는 최적의 압축방법을 결정하는 압축방법 결정수단(124)과 입력 테스트 패턴에 대하여 런 길이 압축방법을 사용하여 압축하는 런 길이 압축수단(125)과 입력 테스트 패턴에 대하여 BW 변환을 1회이상 적용하는 반복 BW 변환수단(126)과 입력테스트 패턴에 대하여 LZ 압축방법을 사용하여 압축하는 LZ 압축수단(127)과 압축방법 결정수단(124)에서 얻어진 압축 방법에 따라 테스트 패턴의 경로를 선택하는 3개의 스위치(128,129,131)로 구성되어 있다.
다음에, 이 테스트 패턴 압축장치를 사용하여 테스트 패턴을 압축하는 경우의 동작에 대하여 설명한다. 도 49는 도 48에 도시하는 테스트 패턴 압축장치의 처리수순을 설명하는 흐름도이고, 본 발명의 제 1 실시예의 테스트 패턴압축방법을 도시하고 있다.
우선, 단계(S1)에서 압축방법 결정수단(124)은 입력된 테스트 패턴에 대하여 적응하는 최적의 압축방법을 결정하고, 압축 방법을 임의로 결정할 수있는 플래그(flag)를 kind에 설정한다. 여기서 플래그는 런 길이 압축방법에 대하여는 0, BWT 런 길이 압축방법에 대하여는 BW변환의 적용회수 m(m=1,2,…,N, 다만, N는 BW 변환의 최대 적용회수를 나타내는 고정치이고, 예를 들면 N=5이다) LZ압축방법에 대하여는 N+1의 값을 취한다. 또, 테스트 패턴에 적용하는 최적의 압축방법을 결정하기 위하여 경험적으로 결정된 임계값 입력이 사용된다.
다음에, 단계(S2a, S2b, S2c)에서 결정된 압축 방법이 런 길이 압축방법(즉, kind = 0)인 경우에는 테스트 패턴 압축수단의 스위치(128,129,131)는 각각 그 단자1, 단자1, 단자1에 접속되고, 단계(S3)에서 테스트 패턴을 런 길이 압축수단(125)으로 송신한다. 다음에 단계(S4)에서 런 길이 압축수단(125)은 런 길이 압축방법을 사용하여 압축한다.
단계(S2b)에서, 결정된 압축방법이 BWT 런 길이 압축방법(즉, 0 < kind < N+1)인 경우에는 테스트 패턴 압축장치의 스위치(128, 129, 131)는 각각 그 단자2, 단자2, 단자 1에 접속되고, 단계(S5)에 있어서 테스트 패턴과, BW 변환의 적용회수 M(=kind)를 반복 BW 변환수단(126)에 송신한다. 다음에 단계(S6)에서 반복 BW 변환수단(126)은 테스트 패턴을 M회 BW 변환한다. 더욱더, 단계(S7)에서 BW 변환된 데이터를 런 길이 압축수단(125)으로 송신하고, 단계(S8)에서 런 길이 압축수단(125)은 데이터를 압축한다.
단계(S2c)에서, 결정된 압축방법이 LZ 압축방법(즉, Kind = N+1)인 경우에는 테스트 패턴 압축장치의 스위치(128, 131)는 각각 단자3, 단자 2에 접속되고, 단계 (S9)에서 테스트 패턴을 LZ 압축수단(127)에 송신한다. 다음에 단계(S10)에서 LZ 압축수단(127)이 테스트 패턴을 LZ 압축방법을 사용하여 압축한다. 최후로 단계(S11)에서 압축된 데이터와 압축에 사용한 방법을 임의로 나타내는 플래그 Kind를 출력하고, 처리를 종료한다.
도 50은 도 48에 도시하는 테스트 패턴이 압축장치중의 반복 BW 변환수단(126)의 기능구성의 일예를 도시하는 블록도이다. 이 반복 BW 변환수단은 입력된 테스트 패턴에 대하여 BW 변환하는 BW 변환수단(133)과 BW 변환의 적용 회수를 카운트하는 카운터(134)와 데이터의 경로를 선택하는 2개의 스위치(135,136)로 구성되어 있다.
다음에 이 반복 BW 변환수단(126)을 사용하여 데이터의 BW 변환하는 경우의 동작에 대하여 설명한다. 도 51은 도 50에 도시하는 반복 BW 변환수단(126)의 처리수순을 설명하는 흐름도이다.
우선, 단계 S1에 있어서, 입력된 테스트 패턴을 BW 변환수단(133)에 송신하고, BW 변환의 적용회수 M을 카운터(134)에 송신한다. 다음에 단계(S2)에 있어서 BW 변환의 적용회수 m을 m = M로 설정하고, 카운터(i)를 i=0으로 재설정한다. 단계(S3)에 있어서, 테스트 패턴을 BW 변환하고, BW 변환의 종료신호에 의하여 카운터 (134)는 i에 1을 가산한다. 단계(S4)에 있어서, m회 BW 변환되었는가의 여부, 즉 i = m을 확인하고, 적용회수가 i = m이 아니면, 스위치(135)를 오픈하고 동시에 스위치(136)을 단자 1에 접촉하여 단계(S3)의 BW 변환을 반복한다.
적용회수 i=m로 되면, 스위치(135)를 클로즈하고, 스위치(136)를 단자(2)에 접촉하여 다음 단계(S5)에서 BW 변환된 데이터를 출력하고, 처리를 종료한다.
다음에, BW 변환수단(133)을 사용하여 변환하는 경우의 동작에 대하여 설명한다. 도 52는 도 50에 도시하는 반복 BW 변환수단의 처리수순을 설명하는 흐름도이고, BW 변환방법을 표시하고 있다.
우선, 단계 S1에서 n문자의 문자열(S)을 취득한다. 여기서는 예로서 m=6문자의 문자열 S='abraca'를 사용하여 설명한다. 다음에, 단계(S2)에서 취득한 문자열(S)의 n개의 순환 문자열(사이클링으로 시프트된 문자열)을 생성한다. 순환 문자열은 문자열의 최초 문자를 사이클릭에 문자열의 최후에 이동한 문자열(도 53(a)에 도시하다)이고, 여기서 사용한 S='abraca'의 예에서는 도 53(b)에 도시하는 바와 같이 6개의 순환 문자열이 얻어진다.
다음에, 단계(S3)에 있어서, 단계(S2)에서 얻어진 순환 문자열을 사서에 등록하는 순번으로 분류하여 행렬(M)을 작성한다. S='abraca'의 예에서는 처음에 aa, 다음에 ab, 계속하여 ac와 같이, 이 예에서는 알파벳의 순으로 도 54에 도시하는 바와 같이 분류된다. 단계(S4, S5)에 있어서는, 작성된 행렬(M)로부터 행렬(M)의 최후열로부터 얻어지는 문자열(L)과 입력 문자열(S)과 같은 행의 번호(I)를 취득한다. S='abraca'의 예에서는 도 55에 도시하는 바와 같이 L='caraab', I=2가 얻어진다.
이상과 같이, S='abraca' 라는 문자열을 문자열 L='caraab'와 행번호 I=2라는 데이터로 변환된다. 최후로 단계(S6)에서 입력 데이터의 나머지를 확인하고, 입력 데이터가 남아 있으면, 지금까지의 단계(S1∼S5)를 반복하고, 입력 데이터가 없으면, 단계(S7)에서 BW 변환된 데이터를 출력하고, 처리를 종료한다.
도 56은 본 발명의 제 1 실시예에 있어서, 사용되는 테스트 패턴 신장장치의 기능구성의 일예를 도시하는 블록도이다. 이 테스트 패턴 신장장치는 압축데이터가 런 길이 압축방법으로 압축된 데이터인가, BWT 런 길이 압축방법으로 압축된 데이터인가, LZ 압축방법으로 압축된 데이터인가를 판정하는 압축방법 판정수단(147)과 압축데이터에 대하여 런 길이 신장방법을 사용하여 신장하는 런 길이 신장수단(142)과 런 길이 신장된 데이터에 대하여 역 BW 변환을 1회이상 적용하는 반복 역 BW 변환수단(143)과 압축 데이터에 대하여 LZ 신장방법을 사용하여 신장하는 LZ 신장수단(144)과 압축방법 판정수단(41)에서 얻어진 압축방법에 따라 압축 데이터의 경로를 선택하는 3개의 스위치(145,146,147)로 구성되어 있다.
다음에, 이 테스트 패턴 신장장치를 사용하여 테스트 패턴을 신장하는 경우의 동작에 대하여 설명한다. 도 57은 도 56에 도시하는 테스트 패턴 신장장치의 처리수순을 설명하는 흐름도이고, 본 발명에 의한 테스트 패턴 신장방법의 제 1 실시예를 도시하고 있다.
우선 단계(S1)에 있어서, 압축방법 판정수단(141)이 테스트 패턴 압축수단으로 부터 압축데이터와 함께 출력된 압축방법을 임의로 도시하는 플래그를 취득하고 이 플래그를 Kind에 Kind=flag로 설정한다. 여기서 flag는 런 길이 압축방법에 대하여는 0, BWT 런 길이 압축방법에 대하여는 BW 변환의 적용회수 m(m=1,2,…N,다만 N는 BW 변환의 최대 적용회수를 나타내는 고정치이고, 예를 들면, N=5이다), LZ압축방법에 대하여는 N+1의 값을 취하도록 정해져 있다.
다음에 단계(S2a∼S2c)에서, 압축방법 Kind에 따라 경우을 나누고, 판정된 압축방법이 런 길이 압축방법(Kind=0)인 경우에는 테스트 패턴 신장 장치의 스위치(145,146,147)는 각각 단자1, 단자1, 단자 1에 접속되어 단계(S3)에서 압축 데이터를 런 길이 신장수단(142)으로 송신하고, 단계(S4)에 있어서 런 길이 신장수단(142)은 런 길이 신장방법을 사용하여 신장한다. 단계(S2)에 있어서, 판정된 압축방법이 BWT 런 길이 신장방법(0 < Kind < N+1)인 경우에는 테스트 패턴 신장장치의 스위치(145,146,147)는 각각 단자1, 단자2, 단자 2에 접속되고, 단계(S5)에 있어서 압축데이터를 런 길이 신장수단(142)에 송신하고, 단계(S6)에서 런 길이 신장수단(142)은 압축데이터를 신장한다. 다음에, 단계(S7)에서 신장된 데이터와 역 BW 변환의 적용회수 M(=Kind)을 반복 역 BW변환수단(143)에 송신하고, 단계(S8)에서 반복역 BW 변환수단(143)이 데이터를 M회 역 BW변환한다. 단계(S2)에 있어서 판정된 압축방법이 LZ 압축방법(Kind=N+1)인 경우에는 테스트 패턴 신장 장치의 스위치(145,147)는 각각 단자2, 단자 3에 접촉되고 단계(S9)에서 압축 데이터를 LZ 신장수단(144)에 송신하고, 단계(S10)에서 LZ 신장수단(144)이 압축 데이터를 LZ 신장방법을 사용하여 신장한다. 최후로 단계(S11)에서 신장된 테스트 패턴을 출력하고, 처리를 종료한다.
도 58은 도 56에 도시하는 테스트 패턴 신장장치중의 반복역 BW변환수단(143)의 일구성예를 도시하는 블록도이다. 이 반복역 BW 변환수단(143)은 입력된 데이터에 대하여 역 BW 변환하는 역 BW 변환수단(148)과 역 BW변환의 적용회수를 카운트하는 카운터(149)와 데이터의 경로를 선택하는 2개의 스위치(151,152)로 구성되어 있다.
다음에, 이 반복역 BW 변환수단(143)을 사용하여 데이터를 역 BW 변환하는 경우의 동작에 대하여 설명한다. 도 59는 도 58에 도시하는 반복 BW 변환수단(143)의 처리수순을 설명하는 흐름도이고, 반복 BW 변환수단(143)에서 데이터를 BW 변환할 때의 동작을 도시하고 있다.
우선, 단계(S1)에서, 입력된 데이터를 역 BW변환수단(148)에 송신하고, 역 BW 변환의 적용회수(M)를 카운터(149)에 송신한다. 다음에, 단계(S2)에서, 역 BW 변환의 적용회수(m)를 m=M으로 설정하고, 카운터(149)를 i=0로 재설정한다. 단계 (S3)에서, 테스트 패턴을 역 BW 변환하고, 역 BW 변환의 종료 신호에 의해 카운터(149)는 i에 1을 가산한다. 단계(S4)에서 역 BW변환이 m회 행해졌는가 여부를, 즉 i=m을 확인하고, 적용회수가 i=m이 아니면 스위치(51)을 오픈하고, 스위치(152)를 단자(1)에 접속하여 단계(S3)의 역 BW 변환을 반복한다. 적용회수가 i=m로 되면 스위치(151)을 클로즈하고 스위치(152)를 단자(2)에 접속하여, 다음 단계(S5)에서 역 BW 변환된 데이터를 출력하고, 처리를 종료한다.
상기 역 BW 변환수단(143)을 사용하여, 역변환하는 경우의 다른 동작에 대하여 추가 설명한다. 도 60은 도 56에 도시하는 테스트 패턴 신장 장치중의 역 BW 변환수단의 처리수순을 설명하는 흐름도이고, 역 BW 변환방법을 도시하고 있다. 여기서는 BW 변환의 설명에서 사용한 L='caraab', I=2의 예를 사용하여 설명한다.
우선 단계(S1)에서 하나의 변환 데이터를 취득하고, 단계(S2)에서 변환 데이터로부터 얻어지는 문자열(L)과 번호(I), 문자열의 길이(n)를 설정한다. 이 예에서는 L='caraab' I=2, n=6이다.
다음에, 단계(S3)에서 취득한 문자열(L)의 문자를 알파벳순으로 분류하고, 문자열(F)을 생성한다. L='caraab'의 예는 도 61에 도시한 바와 같이 F='aaabcr'이다. 단계(S4)에서는 문자열(L, F)의 각 문자 L[i], F[i]의 대응을 나타내는 행렬(T)을 작성한다. 여기서 T는 L[T[i]]=F[i]을 만족하는 행렬이다. 또, 만일 문자열(L)중에서 같은 문자 ch가 사용될 때에는 문자열(L)에 있어서 ch가 문자열(F)에 있어서 ch와 같은 순서로 각각을 대응시킨다. 따라서, L='caraab', F='aaabcy'의 예는 도 61에 도시하는 바와 같이, T=[245613]을 얻게 된다.
다음에, 단계(S5)에서 카운터(149)를 i=0에 재설정한다. 단계(S6)에 있어서 카운터(149)에 1을 가산하고, 단계(S7)에서 문자열(F), 번호(I), 행렬(T)로부터 본래의 문자열(S)의 i번째의 문자(S[i])를 복원한다. 여기서 S[i]는 S[i]=F[Ti-1[I]], T0[I]=I, Ti-1[I]=T[Ti[I]]로 표시된다. 단계(S8)에서, 문자(S[i])를 출력한다. 즉, 우선 i=1이면, F[T0[I]]로 되고, 상기와 같이 T0[I]=I이고, 이 예에서는 I=2이므로 F[2]로 되고, F의 2번째 a가 S[I]=a로 되고, 다음에, I=2이면, F[T1[I]]로 되고, T1[2]=T[T0[I]]=T[2]로 되고 T의 2번째는 T=4이므로 F[4]로 되고, F의 4번째는 b이므로 S(2)=b로되고, i=3에서는 F[T2[I]]이고, T2[I]=T[T1[I]]=T[4]로 되고, T의 4번째는 6이므로 F[6]로 되고, F의 6번째로 r이므로 S[3]=r로 된다. 이하 동일하게 역 BW 변환된다.
다음에, 단계(S9)에서, 문자열(S)의 복원되지 않는 문자가 있는가 여부, 즉 i < n을 확인하고, 복원되지 않는 문자가 있으면(i < n이면), 단계(S6∼S8)를 반복하고, 최후의 문자까지 복원되면(i = n 이면), 단계(S10)으로 진행한다.
여기서, 사용한 예는 도 62에 도시하는 바와 같이, S[1]=a, S[2]=b, S[3]=r, S[4]=a, S[5]=c, S[6]=a로 된다. 따라서, 본래의 문자열 S='abraca'이 복원된다. 최후로, 단계(S10)에서 데이터의 나머지를 확인하고, 데이터가 남아 있으면, 지금까지의 단계(S1∼S9)를 반복하고, 입력데이터가 없으면, 처리를 종료한다.
도 63은 도 48에 도시하는 테스트 패턴 압축장치중의 압축방법 결정수단(124)의 기능구성의 일예를 도시하는 블록도이다. 이 압축방법 결정수단은 테스트 패턴에 대하여 BW 변환을 적용하는 경우의 최적의 적용회수를 계산하는 BW 변환 최적화 수단(154)과 압축율의 임계값을 기억하는 임계값 기억수단(155)과 BW 변환 최적화수단(154)에서 얻어진 압축율의 최대치 임계값 기억수단(155)의 임계값을 비교하는 압축율 비교수단(156)과 압축율 비교수단(156)으로부터 얻어진 비교 결과 및 BW 변환 최적화수단(154)으로부터 얻어진 BW 변환의 최적의 적용회수에 따라 런 길이 압축방법으로 또는 BWT 런 길이 압축방법으로 또는 LZ압축방법으로 압축하든가를 선택하는 압축방법 선택수단(157)으로 구성되어 있다.
다음에, 이 압축방법 결정수단(124)을 사용하여 테스트 패턴에 적용하는 최적의 압축방법을 결정하는 경우의 동작에 대하여 설명한다. 도 64는 도 63에 도시하는 압축방법 결정수단(124)의 처리수순을 설명하는 흐름도이고, 이 압축방법 결정방법의 동작을 도시하고 있다.
우선, 단계(S1)에서 초기화 BW 변환의 최대 적용회수(n)를 n = N(예를 들면, N=5)로 세트하고, 압축율의 임계값(R+h)을 외부의 임의값(예를 들면, R+h=10)으로 세트하고, 카운터(i), 압축율의 최대치(Rmax), BW 변환의 적용회수(n)를 0으로 세트하고, 환경 파라미터를 초기화한다. 단계(S2)에서는 입력된 테스트 패턴을 BW 변환최적화 수단(154)에 송신한다. 다음에 단계(S3)에서 테스트 패턴을 1회 BW 변환하여 카운터 i에 1을 가산하고, 단계(S4)에서 BW 변환된 데이터의 천이회수(øi)를 측정한다.
다음에 단계(S5)에서 얻어진 천이회수(øi)와 BW변환의 적응회수(i)로부터 식(1)을 사용하여 압축율(Ri)을 계산한다.
여기서, L: 테스터 패턴의 길이, |A|: 테스트 패턴에 출현하는 기호의 집합의 크기, 이 예에서는 0과 1과 X이므로|A|=3, [X]는 X이상의 최소 정수이다.
단계(S6)에서 지금까지 얻어진 압축율의 최대치(Rmax)와 새롭게 계산된 압축율(Ri)을 비교하고, 새롭게 계산된 압축율(Ri)이 크면(Ri>Rmax이면), 단계(S7)에서 압축율의 최대치(Rmax)을 Rmax=Ri로 갱신하고, BW변환의 적응회수(m)를 m=i로 갱신한다.
다음에, 단계(S8)에서, BW 변환의 적응회수가 단계(S1)에서 세트한 어떤 지정된 회수(n)로 되었는가 여부, 즉, i<n을 확인하고, 적응회수(i)가 지정회수(n)보다 작으면, 단계(S3∼S7)를 반복하고, 적응회수(i)가 지정회수(n)로 되었으면, 단계(S9)로 진행한다.
단계(S3∼S8)는 BW 변환 최적화 수단(154)에 의하여 행해진다. 즉, BW 변환최적화 수단(154)은 단계(S3∼S8)를 어떤 지정된 회수(n)만큼 반복함으로써, 압축율의 최대치(Rmax)와 BW변환의 적용회수(m)를 취득한다. 다음에 단계(S9)에서, BW 변환 최적화 수단(154)에서 얻어진 압축율의 최대치(Rmax)와 임계값 기억수단(155)에 기억되어 있는 경험적으로 구한 압축율의 임계값(R+h)을 압축율 비교수단(156)으로 송신하여, 비교한다.
단계(S10)에서, 압축율의 최대치(Rmax)가 임계값(R+h) 이하이면, 단계(S11)에서, 적용하는 압축방법을 LZ 압축방법으로 결정하고, 플래그(flag)를 Hag=N+1에 세트한다. 단계(S10)에서, 임계값(R+h)이 최대치(Rmax)보다 작으면, 다음 단계(S12)에 서 BW 변환의 적용회수(m)를 확인한다.
단계(S12)에서 BW 변환의 적용회수(m)가 0이면, 단계(S13)에서, 테스트 패턴에 적용하는 압축방법을 런 길이 압축방법으로 결정하여 flag=0으로 하고, BW 변환의 적용회수(m)가 0이 아니면, 단계(S14)에서, 테스트 패턴에 적용하는 압축방법을 BWT 런 길이 압축방법으로 결정하여 Hag=m로 한다. 단계(S11∼S14)는 압축방법 선택수단(157)에 의하여 행해진다. 최후에 압축방법 선택수단(157)이 단계(S15)에서 압축방법을 하나로 결정하는 플래그(flag)를 출력하여, 처리를 종료한다.
이상에서, 압축율의 임계값(Rth)은 외부로부터 세트할 수도 있고, 미리 고정된 값으로 세트할 수도 있다. 외부로부터 세트하는 경우에는 임계값 기억수단(155)이 RAM로서 동작한다. 한편, 미리 고정한 값을 세트하여 두는 경우에는 임계값 기억수단(155)은 ROM로서 동작하고, 이때 임계값 입력은 필요없다.
데이터 압축법의 조합이 현재로서 가장 효율이 좋은 결과가 얻어지고 있는 런 길이 압축방법, BW 변환방법+런 길이 압축방법, LZ 압축방법의 3개의 방법을 조합한 경우이다. 테스트 패턴은 패턴천이가 매우 적은 부분과, 패턴이 주기적으로 천이하는 부분과, 패턴이 랜덤으로 천이하는 부분, 3개의 부분으로 나눌 수가 있고, 이들 세부분에 각각 런 길이 압축방법, BW 변환방법+런 길이 압축방법, LZ 압축방법을 적용함으로써 효율이 좋은 압축을 얻을 수가 있다. 여기서, 패턴이 랜덤으로 천이하는 부분에 대하여, LZ 압축방법을 사용하고 있지만, Huffman 압축방법등을 사용하여도 좋다. 현재 누구나 이용할 수 있는 압축방법은 LZ 압축방법을 토대로 하고 있고, Huffman 압축방법보다 압축율이 좋기 때문에, 상기 예에서는 LZ 압축방법을 사용하였다.
상술에서는 본 발명을 테스트하기 위하여 LSI에 인가하는 테스트 패턴의 압축, 신장에 적용하였지만, 예를 들면, 텍스트 정보와 이미지 정보와 레이아웃 정보등으로 구성된 다큐멘트의 파일(데이터)를 성질이 다른 데이터 부분으로 블록분할하고, 각각을 최적의 알고리즘으로 압축함으로써, 압축율을 향상시킬 수 있다. 예를 들면, 덱스트 데이터 부분에는 LZ 압축방법등의 텍스트 압축기술을 적용하고, 이미지 데이터 부분에는 JBIG나 JPEG등의 이미지 압축기술을 적용하고, 레이아웃 정보부분에 대하여는 Huffman 압축방법등을 적용한다.
다음에, 본 발명의 제 2 실시예에 대하여 상세히 설명한다.
도 65는 본 발명의 제 2 실시예에 사용되는 테스트 패턴 압축장치의 기능구성의 일예를 도시하는 블록도이다. 이 테스트 패턴 압축장치는 1입력 1출력의 테스트 패턴 압축장치이고, 입력된 테스트 패턴 데이터를 각 핀마다의 테스트 시퀀스로 분할하는 테스트 패턴 분할수단(11)과 분할된 테스트 시퀀스를 최적의 압축방법으로 사용하여 압축하는 테스트 시퀀스 압축수단(12)과 압축된 데이터를 일시 기억하는 버퍼(13)로 구성되어 있다.
다음에, 이 테스트 패턴 압축장치를 사용하여 테스트 패턴을 압축하는 경우의 동작에 대하여 설명한다. 도 66은 본 발명의 제 2 실시예의 테스트 패턴 압축방법을 도시하고 있다. 테스트 패턴 분할수단(11)은 단계(S1)에서 입력된 테스트 패턴을 각 핀마다의 테스트 시퀀스로 분할한다. 다음에 단계(S2)에서, 테스트 시퀀스의 분할수(k)를 k=K에 설정하고, 카운터(i)를 i=0에 리세트한다. 여기서, K는 예를 들면, 집적회로의 핀수이다. 단계(S3)에서 분할된 테스트 시퀀스로부터 하나를 선택하고, 카운터(i)를 1만큼 가산하여, 단계(S4)에서 테스트 시퀀스 압축수단(12)에 송신한다. 테스트 시퀀스 압축수단(12)은 단계(S5)에서 테스트 시퀀스를 최적의 방법을 사용하여 압축한다.
여기서, 각 테스트 시퀀스에 적용하는 최적의 압축방법을 결정하기 위하여 임계값 입력이 사용된다. 압축된 데이터는 단계(S6)에서 버퍼(13)에 순차로 기억시킨다. 다음에, 단계(S7)에서 그 외의 테스트 시퀀스가 남아 있는가 여부, 즉, i<k인가를 확인하고, 남아 있으면(i<k이면), 단계(S3∼S6)를 반복하고, 그 밖에 테스트 시퀀스가 남아있지 않으면(i=k이면), 단계(S8)로 이동한다. 최후에 단계(S8)에서 압축된 데이터를 정리하여 출력하고, 처리를 종료한다.
도 67은 본 발명의 제 2 실시예에 사용되는 테스트 패턴 압축장치의 구성의 변형예를 도시하는 블록도이다. 이 테스트 패턴 압축장치는 1입력 1출력의 테스트 패턴 압축장치이고, 입력된 테스트 패턴 데이터는 각 핀마다의 테스트 시퀀스로 분할하는 테스트 패턴 분할수단(11)과 분할된 테스트 시퀀스를 최적의 압축방법을 사용하여 압축하는 테스트 시퀀스 압축수단(12)으로 구성되어 있다.
다음에, 이 테스트 패턴 압축장치를 사용하여 테스트 패턴을 압축하는 경우의 동작에 대하여 설명한다. 도 68은 본 발명의 제 2 실시예의 테스트 패턴 압축방법의 변형예를 도시하고 있다. 테스트 패턴 분할수단(11)은 단계(S1)에서 입력된 테스트 패턴을 각 핀마다의 테스트 시퀀스로 분할한다. 다음에 단계(S2)에서 테스트 시퀀스의 분할수 k를 k=K에 설정하고 카운터(i)를 i=0에 리세트한다. 여기서, K는 예를 들면, 집적회로의 핀 수이다. 단계(S3)에서 분할된 테스트 시퀀스로부터 하나를 선택하고, 카운터(i)를 1만큼 가산하여, 단계(S4)에서 테스트 시퀀스 압축수단(12)은 단계(S5)에서 테스트 시퀀스를 최적의 방법을 사용하여 압축한다. 여기서, 각 테스트 시퀀스에 적용하는 최적의 압축방법을 결정하기 위하여, 임계값 입력이 사용된다. 다음에 단계(S7)에서, 압축된 데이터를 테스트 시퀀스 단위로 출력한다. 최후에, 단계(S7)에서 그밖에 테스트 시퀀스가 남아 있는가 여부, 즉, i<k인가를 확인하고, 남아있으면(i<k이면), 단계(S3∼S6)를 반복하고, 그 밖에 테스트 시퀀스가 남아있지 않으면(i=k이면), 처리를 종료한다.
도 69는 본 발명의 제 2 실시예에 사용되는 테스트 패턴 압축 장치의 다른 기능구성의 일예를 도시하는 블록도이다. 이 테스트 패턴 압축장치는 1입력 다출력의 테스트 패턴 압축장치이고, 입력된 테스트 패턴 데이터를 각 핀마다의 테스트 시퀀스로 분할하는 테스트 패턴 분할수단(11)과 분할된 테스트 시퀀스를 최적의 압축방법을 사용하여 병렬로 압축하는 복수의 테스트 시퀀스 압축수단(121∼12n)과 이테스트 시퀀스 압축수단(121∼12n)을 선택하는 스위치(14)로 구성되어 있다.
다음에, 이 테스트 패턴 압축장치를 사용하여 테스트 패턴을 압축하는 경우의 동작에 대하여 설명한다. 도 70은 본 발명의 제 2 실시예의 테스트 패턴 압축방법의 다른 예를 도시하고 있다. 테스트 패턴 분할수단(11)은 단계(S1)에서 입력된 테스트 패턴을 각 핀마다의 테스트 시퀀스로 분할한다. 다음에 단계(S2)에서 분할된 각 테스트 시퀀스를 스위치(14)를 통하여 복수의 테스트 시퀀스 압축수단(121∼12n)에 순차 송신하고, 각 테스트 시쿼스 압축수단(121∼12n)을 기동한다.
각 테스트 시퀀스 압축수단(121∼12n)은 각각 단계(S31∼S3n)에서 테스트 시컨스를 최적의 방법을 사용하여 압축한다. 여기서, 각 테스트 시퀀스에 적용하는 최적의 압축방법을 결정하기 위하여, 임계값 입력이 사용된다. 최후로 단계(S41∼S4n)에서 압축된 데이터를 병렬로 출력하고, 처리를 종료한다. 테스트 시퀀스의 압축에는 비교적 시간이 걸리기 때문에, 이 병렬처리에 의하여 고속처리가 가능하게 된다.
도 71은 본 발명의 제 2 실시예에 사용되는 테스트 패턴 신장장치의 구성의 일예를 도시하고 있다. 이 테스트 패턴 신장장치는 1입력 1출력의 테스트 패턴 신장장치이고, 신장의 대상이되는 압축 데이터를 각 핀마다의 압축 데이터로 분할하는 압축 데이터 분할수단(16)과 분할된 압축 데이터를 정보 손실없이 본래의 테스트 시퀀스로 신장하는 테스트 시퀀스 신장수단(17)과 신장된 테스트 시퀀스를 일시 기억하는 버퍼(18)로 구성되어 있다.
다음에, 이 테스트 패턴 신장장치를 사용하여 압축 데이터를 신장하는 경우의 동작에 대하여 설명한다. 도 72는 본 발명의 제 2 실시예의 테스트 패턴 신장방법의 처리수순을 설명하는 흐름도이다.
우선, 단계(S1)에서, 압축 데이터 분할수단(16)이 신장대상의 압축 데이터를 각 핀마다의 압축 데이터로 분할한다. 다음에 단계(S2)에서 압축 데이터의 분할수 k를 k=K로 설정하고, 카운터(i)를 i=0으로 리세트한다. 여기서 K는 예를 들면 집적회로의 핀 수이다. 단계(S3)에서 분할된 압축 데이터로부터 하나 선택하고, 카운터 (i)를 1만큼 가산하여, 단계(S4)에서 테스트 시퀀스 신장수단(17)에 송신한다. 테스트 시퀀스 신장수단(17)은 단계(S5)에서 압축데이터를 완전히 본래의 테스트 시퀀스로 신장한다. 신장된 데이터는 단계(S6)에서 버퍼(18)에 순차 기억시킨다. 다음에, 단계(S7)에서 그밖에 압축 데이터가 남아 있는지 여부, 즉, i<k 인가를 확인하고, 남아 있으면(i<k이면), 단계(S3∼S6)를 반복하고, 그 밖에 압축 데이터가 남아있지 않으면(i=k이면), 단계(S8)로 이동한다. 최후에 단계(S8)에서 신장된 테스트 시퀀스를 정리하여 출력하고, 처리를 종료한다.
도 73은 본 발명의 제 2 실시예에 사용되는 테스트 패턴 신장장치의 구성의 변형예를 도시하는 블록도이다. 이 테스트 패턴 신장장치는 1입력 1출력의 테스트 패턴 신장장치이고, 신장의 대상이 되는 압축 데이터를 각 핀마다의 압축 데이터로 분할하는 압축 데이터 분할수단(16)과 분할된 압축 데이터를 정보 손실없이, 본래의 테스트 시퀀스로 신장하는 테스트 시퀀스 신장수단(17)으로 구성되어 있다.
다음에, 이 테스트 패턴 신장장치를 사용하여 압축 데이터를 신장하는 경우의 동작에 대하여 설명한다. 도 74는 본 발명의 제 2 실시예의 테스트 패턴 신장방법의 변형예를 도시하고 있다.
우선, 단계(S1)에서 압축 데이터 분할수단(16)이 신장대상의 압축 데이터를 각 핀마다의 압축데이터로 분할한다. 다음에, 단계(S2)에서 압축 데이터의 분할수 k를 k=K로 설정하고 카운터(i)를 i=0으로 리세트한다. 여기서 K는 예를 들면 집적회로의 핀 수이다. 단계(S3)에서 분할된 압축 데이터로부터 하나 선택하고, 카운터 (i)를 1만큼 가산하여, 단계(S4)에서 테스트 시퀀스 신장수단(17)에 송신한다. 테스트 시퀀스 신장수단(17)은 단계(S5)에서 압축데이터를 완전히 본래의 테스트 시퀀스로 신장한다. 다음에, 단계(S6)에서 신장된 테스트 시퀀스를 핀 단위로 출력한다. 최후로, 단계(S7)에서 그 밖에 압축 데이터가 남아 있는가 여부, 즉, i<k인가를 확인하고, 남아 있으면(i<k이면), 단계(S3∼S6)를 반복하고, 그 밖에 압축데이터가 남아있지 않으면(i=k이면), 처리를 종료한다.
도 75은 본 발명의 제 2 실시예에 사용되는 테스트 패턴 신장장치의 다른 기능 구성예를 도시하는 블록도이다. 이 테스트 패턴 신장장치는 1입력 1출력의 테스트 패턴 신장장치이고, 신장의 대상이 되는 압축 데이터에 대하여 각 핀마다의 압축 데이터로 분할하는 압축 데이터 분할수단(16)과 분할된 압축 데이터를 정보 손실없이 본래의 테스트 시퀀스로 병렬 신장하는 복수의 테스트 시퀀스 신장수단(171∼17n)과 테스트 시퀀스 신장수단을 선택하는 스위치(19)로 구성되어 있다.
다음에, 이 테스트 패턴 신장장치를 사용하여 압축 데이터를 신장하는 경우의 동작에 대하여 설명한다. 도 76는 본 발명의 제 2 실시예의 테스트 패턴 신장방법의 변형예를 도시하고 있다.
우선, 단계(S1)에서 압축 데이터 분할수단(16)이 신장대상의 압축 데이터를 각 핀마다의 압축데이터로 분할한다. 다음에, 단계(S2)에서 분할된 각 압축 데이터를 복수의 테스트 시퀀스 신장수단(171∼17n)에 송신하고, 각 테스트 시퀀스 신장수단(171∼17n)을 기동한다. 각 테스트 시퀀스 신장수단(171∼17n)은 단계(S31∼S3n)에서 각각의 압축 데이터를 완전히 본래의 테스트 시퀀스로 신장한다.
최후로, 단계(S41∼S4n)에서 신장된 테스트 시퀀스를 병렬로 출력하고, 처리를 종료한다. 데이터 신장은 데이터 압축보다 단시간에 행해지지만, 고속처리가 필요하고, 이와 같이, 각 핀마다 병열처리함으로써 각 신장수단의 처리속도가 낮은 것을 사용할 수가 있다.
도 77은 본 발명의 제 2 실시예에 사용되는 테스트 패턴 신장장치의 구성의 일예를 도시하는 블록도이다. 이 테스트 패턴 신장장치는 다입력 1출력의 테스트 패턴 신장장치이고, 병렬로 입력된 각 핀마다의 압축 데이터에 대하여 정보 손실없고, 본래의 테스트 시퀀스로 신장하기 위하여, 병렬로 접속된 복수의 테스트 시퀀스 신장수단(171∼17n)와 그 신장된 테스트 시퀀스를 각각 일시 기억하는 테스트 시퀀스 버퍼(5201∼520n)와 신장된 각 테스트 시퀀스를 출력하기 위하여, 이 테스트 시퀀스 버퍼(5201∼520n)를 선택하는 스위치(521)와 신장된 모든 테스트 시퀀스를 일시 기억하는 버퍼(522)로 구성되어 있다.
다음에, 이 테스트 패턴 신장장치를 사용하여 압축 데이터를 신장하는 경우의 동작에 대하여 설명한다. 도 78은 본 발명의 제 2 실시예의 테스트 패턴 신장방법을 도시하고 있다.
병렬로 입력된 각 핀마다의 압축 데이터는 복수의 테스트 시퀀스 신장장치에 송신된다. 우선 단계(S1)에서, 각 테스트 시퀀스 신장수단(171∼17n)을 기동한다. 다음에, 단계(S2)에서 각 테스트 시퀀스 신장수단(171∼17n)이 각각의 압축 데이터를 완전히 본래의 테스트 시퀀스로 신장하고, 각각 대응하여 테스트 시퀀스 버퍼(5201∼520n)에 일시 기억시킨다. 신장된 테스트 시퀀스는 단계(S3)에서 버퍼(522)에 기억된다. 여기서, 테스트 시퀀스는 테스트 시퀀스 신장수단(171∼17n)로부터 신장 종료신호를 수신함으로써, 모든 테스트 시퀀스를 신장한 후에, 고정된 순번으로 버퍼(522)에 기억하든가, 또는 신장된 순번으로 버퍼(522)에 기억하는 것이 가능하다. 최후로 단계(S4)에서 버퍼(522)로부터 신장된 테스트 시퀀스에 의하여 테스트 패턴을 구성하여 출력하고, 처리를 종료한다.
도 79는 본 발명의 제 2 실시예에 사용되는 테스트 패턴 신장장치의 구성이 변형예를 도시하고 있다. 이 테스트 패턴 신장장치는 다입력 1출력의 테스트 패턴신장장치이고, 병렬로 입력된 각 핀마다의 압축 데이터에 대하여 정보 손실없이, 본래의 테스트 시퀀스로 신장하기 위하여, 병렬로 접속된 복수의 테스트 시퀀스 신장수단(171∼17n)과 신장된 각 테스트 시퀀스가 일시 기억되는 테스트 시퀀스 버퍼 (5201∼520n)와 출력하기 위하여, 테스트 시퀀스 버퍼(5201∼520n)를 선택하는 스위치(521)로 구성되어 있다.
다음에, 이 테스트 패턴 신장장치를 사용하여 압축 데이터를 신장하는 경우의 동작에 대하여 설명한다. 도 80은 본 발명의 제 2 실시예의 테스트 패턴 신장방법의 변형예를 도시하고 있다.
병렬로 입력된 각 핀 마다의 압축 데이터는 복수의 테스트 시퀀스 신장장치에 송신된다. 우선 단계(S1)에서 각 테스트 시퀀스 신장수단(171∼17n)을 기동한다. 다음에, 단계(S21∼S2n)에서, 각 테스트 시퀀스 신장수단(171∼17n)이 각각의 압축 데이터를 완전히 본래의 테스트 시퀀스로 신장하여, 테스트 시퀀스 버퍼(5201∼520n)에 기억시킨다. 최후에, 단계(S31∼S3n)에서, 스위치(521)를 통하여 신장된 테스트 시퀀스를 핀 단위로 출력하고, 처리를 종료한다.
여기서, 테스트 시퀀스는 테스트 시퀀스 신장수단(171∼17n)로부터 신장 종료신호를 수신함으로써, 모든 테스트 시퀀스의 신장이 끝난 후에 고정된 순번으로 출력하든가, 또는 신장된 순번으로 출력하는 것이 가능하다. 도 77 및 도 79에 도시한 구성중 하나에 있어서도, 출력되는 신장된 테스트 시퀀스를 압축전의 테스트 패턴과 동일한 것으로 함으로써 IC 테스터내의 종래의 패턴 제네레이터에 공급하는 것이 가능하게 된다.
도 81은 본 발명의 제 2 실시예에 사용되는 테스트 시퀀스 압축장치의 기능구성의 일예를 도시하고 있다. 이 테스트 시퀀스 압축장치는 입력된 테스트 시퀀스에 대하여 적응하는 최적의 압축방법을 결정하는 압축방법 결정수단(524)과 테스트 시퀀스에 대하여 런 길이 압축방법을 사용하여 압축하는 런 길이 압축수단(525)과 테스트 시퀀스에 대하여 BW 변환을 1회이상 적용하는 반복 BW변환수단(526)과 테스트 시퀀스에 대하여 LZ 압축방법을 사용하여 압축하는 LZ 압축수단(527)과 압축방법 결정수단(524)에서 얻어진 압축방법에 따라 테스트 시퀀스의 경로를 선택하는 3개의 스위치(528,529,531)로 구성되어 있다.
다음에, 이 테스트 시퀀스 압축장치를 사용하여 테스트 시퀀스를 압축하는 경우의 동작에 대하여 설명한다. 도 82은 본 발명의 제 2 실시예의 테스트 시퀀스 압축방법을 도시하고 있다.
우선, 단계(S1)에서 압축방법 결정수단(524)은 입력된 테스트 시퀀스에 대하여 적응하는 최적의 압축방법을 결정하고, 압축방법을 임의로 결정할 수 있는 플래그(flag)를 Kind에 설정한다. 여기서, flag는 런 길이 압축방법에 대하여는 0, BWT런 길이 압축방법에 대하여는 BW 변환의 적용회수(m)(m=1,2,…,N, 다만, N는 BW 변환의 최대 적용회수를 나타내는 고정치이고, 예를 들면 N=5이다). LZ 압축방법에 대하여는 N+1의 값을 취한다. 또 테스트 시퀀스에 적용하는 최적한 압축방법을 결정하기 위하여 경험적으로 결정된 임계값 입력이 사용된다.
다음에, 단계(S2a, S2b, S2c)에서 결정된 압축방법이 런 길이 압축방법(즉, Kind=0)인 경우에는 테스트 시퀀스 압축장치의 스위치(528,529,531)는 각각 단자1, 단자1, 단자1에 접속되고, 단계(S3)에서 테스트 시퀀스를 런 길이 압축수단(525)에 송신한다. 다음에, 단계(S4)에서 런 길이 압축수단(525)은 런 길이 압축방법을 사용하여 압축한다. 단계(S2b)에서, 결정된 압축방법이 BWT 런 길이 압축 방법(즉, 0<Kind<N+1)인 경우에는 테스트 시퀀스 압축 장치의 스위치(528,529,531)는 각각 단자2, 단자2, 단자 1에 접속되고, 단계(S5)에서, 테스트 시퀀스와 BW 변환의 적용회수 M(=Kind)를 BW 변환수단(526)에 송신한다. 다음에, 단계(S6)에서 반복 BW변환수단(526), 테스트 시퀀스를 M회 BW 변환한다. 또한, 단계(S7)에서 BW 변환된 데이터를 런 길이 압축수단(525)에 송신하고, 단계(S8)에서, 런 길이 압축수단(525)은 데이터를 압축한다. 단계(S2c)에서, 결정된 압축방법이 LZ 압축방법(즉, Kind=N+1)인 경우에는 테스트 시퀀스 압축장치의 스위치(528,531)는 각각 단자3, 단자2에 접속되어, 단계(S9)에서 테스트 시퀀스를 LZ 압축수단(527)에 송신한다. 다음에, 단계(S10)에서 LZ 압축수단(527)은 테스트 시퀀스를 LZ 압축방법을 사용하여 압축한다. 최후로, 단계(S11)에서 압축된 데이터와 압축에 사용한 방법을 하나로 표시하는 플래그 Kind를 출력하고, 처리를 종료한다.
도 83은 도 81에 도시하는 테스트 시퀀스 압축수단중의 반복 BW변환수단(526)의 기능구성의 일예를 도시하고 있다. 이 반복 BW 변환수단은 입력된 테스트 시퀀스에 대하여 BW 변환하는 BW 변환수단(533)과 BW 변환이 적용회수를 카운트하는 카운터(534)와 데이터의 경로를 선택하는 2개의 스위치(535,536)로 구성되어 있다.
다음에, 이 반복 BW 변환수단(526)을 사용하여 데이터를 BW 변환하는 경우의 동작에 대하여 설명한다. 도 84은 반복 BW 변환수단에 의하여 데이터를 BW 변환할때의 흐름도이다.
우선, 단계(S1)에서, 입력된 테스트 시퀀스를 BW 변환수단(533)이 송신하고, BW 변환의 적용회수(M)를 카운터(534)에 송신한다. 다음에, 단계(S2)에서, BW 변환의 적용회수 m를 m=M로 세트하고, 카운터(i)를 i=0에 리세트한다. 단계(S3)에서 테스트 시퀀스를 BW 변환하고, BW 변환의 종료신호에 의하여 카운터(534)는 카운터(i)에 1을 가산한다. 단계(S4)에서 BW 변환이 m회 행해졌는가의 여부, 즉 i=m을 확인하고, 적용회수가 i=m이 아니면 스위치(535)를 오픈하고, 스위치(536)를 단자(1)에 접속하여, 단계(S3)의 BW 변환을 반복한다. 적용회수가 i=m로 되면, 스위치(535)를 클로즈하고, 스위치(536)을 단자(2)에 접속하여, 다음 단계(S5)에서 BW 변환된 데이터를 출력하여, 처리를 종료한다.
여기서, 런 길이 압축, BW변환, LZ 압축에 대하여 설명한다.
초기에, 런 길이 압축수단(525)을 사용하여 압축하는 경우의 동작을 설명한다. 도 85은 런 길이 압축방법을 도시하는 흐름도이다. 우선, 단계(S1)에서, 입력 문자열로부터 1문자 데이터를 취득하여 ch로 세트한다. 다음에, 단계(S2)에서, 취득한 문자(ch)를 런 길이 부호를 생성하기 위한 기호의 초기치(initial)로 세트하고, 카운터(i)를 1로 초기화한다. 다음에, 단계(S3)에서, 입력 데이터로부터 1문자를 취득하여 ch로 세트하고, 단계(S4)에서 카운터(i)에 1을 가산하고, 문자수를 카운트한다. 단계(S5)에서는 취득한 문자(ch)와 초기치(initial)를 비교하고, 문자 (ch)가 초기치(initial)와 같으면(ch=initial이면), 단계(S6)로 진행하고, 문자 (ch)가 초기치(initial)와 같지 않으면(ch≠initial이면), 단계(S7)로 진행한다.
단계(S6)에서, 입력 데이터가 남아 있는가 여부를 확인하고, 남아 있으면, 단계(S3, S4, S5)를 반복하고, 남아 있지 않으면, 단계(S7)로 진행한다. 단계(S7)에서는 초기치(initial)와 얻어진 카운트 수(i)를 사용하여 부호화한다. 다음에, 단계(S8)에서 입력 데이터의 나머지를 확인하고, 입력 데이터가 남아 있으면, 지금까지의 단계(S2∼S7)를 반복하고, 입력 데이터가 없으면, 단계(S9)에서 압축 데이터를 출력하고, 처리를 종료한다.
다음에 BW 변환수단(533)을 사용하여 변환하는 경우의 동작에 대하여 설명한다. 도 86은 BW 변환방법을 도시하는 흐름도이다. 우선, 단계(S1)에서 n문자의 문자열(S)을 취득한다. 여기서는 예로서 n=6 문자의 문자열 S='abraca'을 사용하여 설명한다. 다음에, 단계(S2)에서, 취득한 문자열(S)의 n개의 순환 문자열(사이클링으로 시프트된 문자열)을 생성한다. 순환 문자열은 문자열의 최초의 문자로 사이클링으로 문자열의 최후로 이동한 문자열(도 87(a)에 도시)이고, 여기서 사용한 S='abraca'의 예에서는 도 87(b)에 도시하는 바와 같이, 6개의 순환 문자열이 얻어진다. 다음에, 단계(S3)에서는 단계(S2)에서 얻어진 순환 문자열을 사서에 등록하는 순번으로 분류하여 행렬(M)을 작성한다. S='abraca'의 예에서는 처음에 aa, 다음에 ab, 계속하여 ac와 같이, 이 예에서는 알파벳 순으로 도 88에 도시하는 바와 같이 분류된다.
단계(S4, S5)에 있어서는, 작성된 행렬(M)로부터, 행렬(M)의 최후열로부터 얻어지는 문자열(L)과 입력 문자열(S)과 같은 행의 번호(I)를 취득한다. S= 'abraca'의 예에서는 도 89와 같이, L='caraab', I=2가 얻어진다. 이상과 같이, S='abraca'라는 문자열은 문자열 L='caraab'과 행번호 I=2라는 데이터로 변환된다. 최후로, 단계(S6)에서 입력 데이터의 나머지를 확인하고, 입력 데이터가 남아 있으면, 지금까지의 단계(S1∼S5)를 반복하고, 입력 데이터가 없으면, 단계(S7)에서 BW 변환된 데이터를 출력하고, 처리를 종료한다.
최후로, LZ 압축수단(527)을 사용하여 압축하는 경우의 동작에 대하여 설명한다. 도 90은 LZ 압축방법을 도시하는 흐름도이다. 우선, 단계(S1)에서 압축에 사용되는 사서(dic)를 초기화한다. 다음에, 단계(S2)에서 입력 데이터(in)를 취득하고, 단계(S3)에서 취득한 문자열(in)과 사서(dic)를 매칭한다. 단계(S4)에서는, 그밖에 보다 길게 매칭한 문자열이 있는지를 확인하고, 그 가능성이 있으면, 단계(S3)의 매칭을 반복한다. 단계(S4)에서 그 외에 보다 길게 매칭한 문자열이 없으면, 단계(S5)에서 매칭한 문자열(match)과 매칭하지 않었던 최초의 문자(ch)를 부호화하고, 단계(S6)에서 새로운 문자열(matchtch)을 사서에 등록한다. 최후로, 단계(S7)에서 입력 데이터의 나머지를 확인하고, 입력 데이터가 남아 있으면, 단계 (S2∼S6)를 반복하고, 입력 데이터가 없으면, 단계(S8)에서 압축 데이터를 출력하고, 처리를 종료한다.
도 91은 본 발명의 제 2 실시예에 사용되는 테스트 시퀀스 신장수단의 기능구성의 일예를 도시하는 블록도이다. 이 테스트 시퀀스 신장수단은 압축 데이터가 런 길이 압축방법으로, BWT 런 길이 압축방법으로, LZ 압축방법으로 압축된 데이터 인가를 판정하는 압축방법 판정수단(541)과 압축 데이터에 대하여 런 길이 신장방법을 사용하여 신장하는 런 길이 신장수단(542)과 런 길이 신장된 데이터에 대하여 역 BW 변환을 1회 이상 적용하는 반복 역 BW 변환수단(543)과 압축 데이터에 대하여 LZ 신장방법을 사용하여 신장하는 LZ 신장수단(544)과 압축방법 판정수단(541)으로 얻어진 압축방법에 따라 압축 데이터의 경로를 선택하는 3개의 스위치(545, 546,547)로 구성되어 있다.
다음에, 이 테스트 시퀀스 신장장치를 사용하여 테스트 시퀀스를 신장하는 경우의 동작에 대하여 설명한다. 도 92는 본 발명의 제 2 실시예의 테스트 시퀀스 신장방법을 도시하는 흐름도이다.
우선, 단계(S1)에서 압축방법 판정수단(541)이 테스트 시퀀스 압축수단에서 압축 데이터와 함께 출력된 압축방법을 하나로 나타내는 플래그를 취득하고, 이 플래그를 Kind에 대하여 Kind=flag로 세트한다.
여기서, flag는 런 길이 압축방법에 대하여는 0, BWT 런 길이 압축방법에 대하여는 BW 변환의 적용회수 m(m=1,2,…,N, 다만 N는 BW 변환의 최대적용회수를 나타내는 고정치이고, 예를 들면 N=5이다). LZ 압축방법에 대하여는 N+1의 값을 취하도록 정해져 있다. 다음에 단계(S2a∼S2c)에서, 압축방법 Kind에 따라 경우 나누고, 판정된 압축방법이 런 길이 압축방법(Kind=0)의 경우에는 테스트 시퀀스 신장수단의 스위치(545,546,547)는 각각 단자1, 단자1, 단자1에 접속되고, 단계(S3)에서 압축 데이터를 런 길이 신장수단(542)에 송신하고, 단계(S4)에서 런 길이 신장수단(542)이 런 길이 신장방법을 사용하여 신장한다.
단계(S2)에서 판정된 압축방법이 BWT 런 길이 신장방법(0<Kind<N+1)인 경우에는 테스트 시퀀스 신장장치의 스위치(545,546,547)는 각각 단자1, 단자2, 단자2에 접속되고, 단계(S5)에서 압축 데이터를 런 길이 신장수단(542)에 송신하고, 단계(S6)에서 런 길이 신장수단(542)은 압축 데이터를 신장한다. 다음에, 단계(S7)에서, 신장된 데이터와 역 BW 변환의 적용회수 M(=Kind)를 반복 역 BW 변환수단(543)에 송신하고, 단계(S8)에서 반복역 BW 변환수단(543)은 데이터를 M회 역 BW 변환한다.
단계(S2)에서 판정된 압축방법이 LZ 압축방법(Kind=N+1)인 경우에는 테스트 시퀀스 신장수단의 스위치(545,547)는 각각 단자2, 단자3에 접속되고, 단계(S9)에서, 압축 데이터를 LZ 신장수단(544)에 송신하고, 단계(S10)에서, LZ신장수단(544)은 압축 데이터를 LZ 신장방법을 사용하여 신장한다. 최후로, 단계(S11)에서 신장된 테스트 시퀀스를 출력하고, 처리를 종료한다.
도 93은 도 91에 도시하는 테스트 시퀀스 신장수단중의 반복 역 BW 변환수단(543)의 구성의 일예를 도시하는 블록도이다. 이 반복 역 BW 변환수단(543)은 입력된 데이터에 대하여 역 BW 변환하는 역 BW 변환수단(548)과 역 BW 변환의 적용회수를 카운트 하는 카운터(549)와 데이터의 경로를 선택하는 2개의 스위치(551,552)로 구성되어 있다.
다음에, 이 반복 역 BW 변환수단(543)을 사용하여 데이터를 역 BW변환하는 경우의 동작에 대하여 설명한다. 도 94는 반복 BW 변환수단(543)에 의하여 데이터를 BW 변환할 때의 흐름도이다. 우선, 단계(S1)에서 입력된 데이터를 역 BW 변환수단(548)에 송신하고, 역 BW 변환의 적용회수(M)를 카운터(549)에 송신한다. 다음에, 단계(S2)에서, 역 BW 변환의 적용회수(m)를 m=M에 세트하고, 카운터(549)를 i=0에 리세트한다. 단계(S3)에서 테스트 시퀀스를 역 BW 변환하고, 역 BW 변환의 종료신호에 의하여 카운터(549)는 i에 1을 가산한다. 단계(S4)에서 역 BW변환이 m회 행해졌는가의 여부, 즉 i=m을 확인하고 적용회수가 i=m이 아니면, 스위치(551)을 오픈하고, 스위치(552)를 단자(1)에 접속하고, 단계(S3)의 역 BW 변환을 반복한다. 적용회수가 i=m로 되면, 스위치(551)를 클로즈하고, 스위치(552)를 단자2에 접속하고, 다음 단계(S5)에서 역 BW변환된 데이터를 출력하고, 처리를 종료한다.
여기서 런 길이신장, 역 BW 변환, LZ 신장에 대하여 설명한다.
초기에, 런 길이 신장수단(542)을 사용하여 신장하는 경우의 동작에 대하여 설명한다. 도 95는 런 길이 신장방법을 도시하는 흐름도이다. 우선, 단계(S1)에서 압축 데이터를 하나 취득하고, 단계(S2)에서 압축 데이터로부터 초기치(initial)와 문자의 연속회수 n를 취득한다. 다음에, 단계(S3)에서 초기치(initial)를 연속회수 (n)만큼 카피한다. 단계(S4)에서 압축 데이터가 남아있는가의 여부를 확인하고, 남아 있으면, 단계(S1∼S3)를 반복한다. 압축 데이터가 남아있지 않으면, 단계(S5)에서 신장된 데이터를 출력하고, 처리를 종료한다.
다음에, 역 BW 변환수단(543)을 사용하여 역변환하는 경우의 동작에 대하여 설명한다.
도 96은 역 BW 변환방법을 도시하는 흐름도이다. 여기서, BW 변환의 설명에 사용한 L='caraab', I=2의 예를 사용하여 설명한다. 우선 단계(S1)에서 변환 데이터를 하나 취득하고, 단계(S2)에서 변환 데이터로부터 얻은 문자열(L)과 번호(I), 문자열의 길이(n)를 세트한다. 이 예에서는, L='caraab' I=2, n=6이다. 다음에 단계(S3)에서, 취득한 문자열(L)의 문자를 알파벳 순으로 분류하고, 문자열(F)을 생성한다. L='caraab'의 예에서는, 도 97에 도시하는 바와 같이, F='aaabcr'이다. 단계(S4)에서는, 문자열(L, F)의 각 문자 L[i], F[i]의 대응을 도시하는 행렬(T)을 작성한다. 여기서, T는 L[T[i]]=F[i]을 만족하는 행렬이다. 또 만일 문자열(L)중에서 같은 문자(ch)가 사용되고 있을 때, 문자열(L)에 있어서 ch가 문자열(F)에 있어서 ch와 같은 순서로 되도록 각각을 대응시킨다. 따라서 L='caraab', F='aaabcr'의 열에서는 도 97에 도시하는 바와 같이, T=[245613]가 얻어진다.
다음에 단계(S5)에서, 카운터(549)를 i=0에 리세트한다. 단계(S6)에서 카운터(549)에 1을 가산하고, 단계(S7)에서 문자열(F), 번호(I), 행렬(T)로부터 본래의 문자열(S)의 i번째의 문자 S[i]를 복원한다. 여기서, S[i]는 S[i]=F[Ti-1[I]], T0[I]=I, Ti+1[I]=T[TiI]]로 표시된다. 단계(S8)에서, 문자 S[i]를 출력한다. 즉, 우선 i=1라 하면 F[T0[I]]로 되고, 상기와 같이 T0[I]=I이고, 이 예에서는 I=2이므로 F[2]로 되고, F의 2번째 a가 S[1]=a로 되고, 다음에 i=2로 하면 F[T1[I]]로 되고, T1[I]=T[T0[I]]=T[2]로 되고 T의 2번째는 T=4이므로 F[4]로 되고 F의 4번째는 b이므로 S[2]=b로되고, i=3에서는 F[T2[I]]이고, T2[I]=T[T1[1]]=T[4]로 되고, T의 4번째는 6이고, F[6]로 되고 F의 6번째는 r이므로 S[3]=r로된다. 이하 동일하게, 역 BW변환된다.
다음에, 단계(S9)에서 문자열(S)의 복원되어 있지 않는 문자가 있는가의 여부, 즉 i<n를 확인하고, 복원되어 있지 않는 문자가 남아 있으면(i<n이면), 단계(S6∼S8)를 반복하고, 최후의 문자까지 복원되어 있으면(i=n이면), 단계(S10)로 진행한다. 여기서, 사용한 예에서는 도 98에 도시하는 바와 같이, S[1]=a, S[2]=b, S[3]=r, S[4]=a, S[5]=c, S[6]=a로 된다. 따라서, 본래의 문자열 S='abraca'이 복원된 것으로 된다. 최후로 단계(S10)에서, 데이터의 나머지를 확인하고, 데이터가 남아 있으면 지금까지의 단계(S1∼S9)를 반복하고, 입력 데이터가 없으면, 처리를 종료한다.
최후로, LZ 신장수단(544)을 사용하여 신장하는 경우의 동작에 대하여 설명한다. 도 99는 LZ 신장방법을 도시하는 흐름도이다. 우선, 단계(S1)에서 신장에 사용되는 사서(dic)를 초기화한다. 다음에, 단계(S2)에서 입력 압축 데이터로부터 부호를 하나 취득한다. 단계(S3)에서 취득한 부호로 사서를 검색하고, 단계(S4)에서 부호를 문자열(string)로 변환한다. 다음에 단계(S5)에서 새롭게 생성된 문자열(string)을 사서(dic)에 등록한다. 최후로, 단계(S6)에서 압축된 데이터의 나머지를 확인하고, 압축 데이터가 남아 있으면, 단계(S2∼S5)를 반복하고, 압축 데이터가 없으면, 단계(S7)에서, 신장된 데이터를 출력하고, 처리를 종료한다.
도 100은 도 81에 도시하는 테스트 시퀀스 압축수단중의 압축방법 결정수단(524)의 기능구성의 일예를 도시하는 블록도이다. 이 압축방법 결정수단(524)은 테스트 시퀀스에 대하여 BW 변환을 적용하는 경우의 최적의 적용회수를 계산하는 BW 변환 최적화 수단(554)과, 압축율의 임계값를 기억하는 임계값 기억수단(555)과 BW변환 최적화 수단(554)으로부터 얻어진 압축율의 최대치와 임계값 기억수단(555)의 임계값을 비교하는 압축율 비교수단(556)과 압축율 비교수단(556)으로 얻어진 비교 결과 및 BW 변환 최적화 수단(554)으로 얻어진 BW 변환의 최적의 적용회수에 따라 런 길이 압축방법, 또는 BWT 런 길이 압축방법, 또는 LZ 압축방법으로 압축하는가를 선택하는 압축방법 선택수단(557)으로 구성되어 있다.
다음에,이 압축방법 결정수단(524)을 사용하여 테스트 시퀀스에 적용하는 최적의 압축방법을 결정하는 경우의 동작에 대하여 설명한다.
도 101은 이 압축방법 결정방법을 도시하는 흐름도이다. 우선, 단계(S1)에서 초기화 BW 변환의 최대 적용회수(n)를 n=N(예를들면, N=5)로 세트하고, 압축율의 임계값(R+h)을 외부로부터의 임의값(예를 들면 R+h=10)에 세트하고, 카운터(i), 압축율의 최대치(Rmax), BW 변환의 적용회수(n)를 0으로 리세트하고, 환경변수를 초기화한다. 단계(S2)에서는, 입력된 테스트 시퀀스를 BW 변환 최적화 수단(554)에 송신한다. 다음에, 단계(S3)에서 테스트 시퀀스를 1회 BW 변환하여 카운터(i)에 1을 가산하고, 단계(S4)에서 BW 변환된 데이터의 천이회수(øi)를 측정한다.
다음에, 단계(S5)에서, 얻어진 천이회수(øi)와 BW 변환의 적용회수(i)로부터 식(4)을 사용하여 압축율(Ri)을 계산한다. 단계(S6)에서, 지금까지 얻어진 압축율의 최대치(Rmax)와 새롭게 계산된 압축율(Ri)을 비교하고, 새롭게 계산된 압축율(Ri)이 크면(Ri>Rmax이면), 단계(S7)에서 압축율의 최대치(Rmax)를 Rmax=Ri로 갱신하고, BW 변환의 적용회수(m)를 그 때의 m=i로 갱신한다.
다음에, 단계(S8)에서 BW 변환의 적용회수가 단계(S1)에서 세트한 어떤 지정된 회수(n)로 되었는가 여부, 즉, i<n을 확인하고, 적용회수(i)가 지정회수(n)보다 작으면, 단계(S3∼S7)를 반복하고, 적용회수(i)가 지정회수(n)로 되었으면, 단계(S9)로 진행한다. 단계(S3∼S8)는 BW 변환 최적화 수단(554)에 의해 행해진다. 즉, BW 변환 최적화 수단(554)은 단계(S3∼S8)를 어떤 지정된 회수(n)만큼 반복함으로써, 압축율의 최대치(Rmax)와 그 때의 BW 변환의 적용회수(m)를 취득한다. 다음, 단계(S9)에서, BW 변환 최적화 수단(554)에서 얻어진 압축율의 최대치(Rmax)와 임계값 기억수단(555)에 기억되어 있는 압축율의 임계값(R+h)을 압축율 비교수단(556)으로 송신하여 비교한다.
단계(S10)에서 압축율의 최대치(Rmax)가 임계값(R+h)이하이면, 단계(S11)에서 적용하는 압축방법을 LZ 압축방법으로 결정하고, 플래그(flag)를 flag=N+1로 세트한다. 단계(S10)에서 임계값(R+h)이 최대치(Rmax)보다 작으면, 다음 단계(S12)에서 BW 변환의 적용회수(m)를 확인한다.
단계(S12)에서 BW 변환의 적용회수(m)가 0이면, 단계(S13)에서, 테스트 시퀀스에 적용하는 압축방법을 런 길이 압축방법으로 결정하여 flag=0으로 하고, BW 변환의 적용회수(m)가 0이 아니면, 단계(S14)에서, 테스트 시퀀스에 적용하는 압축방법을 BWT 런 길이 압축방법으로 결정하여 flag=m로 한다. 단계(S11∼S14)는 압축방법 선택수단(557)에 의해 행해진다. 최후로, 압축방법 선택수단(557)은 단계(S15)에서 압축방법을 하나로 결정하는 flag를 출력하여 처리를 종료한다.
이상에서 압축율의 임계값(R+h)은 외부로부터 세트할 수도 있고, 소정값으로 세트할 수도 있다. 외부로부터 세트하는 경우에는, 임계값 기억수단(555)은 RAM으로서 동작한다. 한편, 소정값으로 세트하여 두는 경우에는, 임계값 기억수단(555)은 ROM으로서 동작하고, 이때 임계값 입력은 필요없다.
도 102는 BWT 런 길이 압축수단의 구성의 일예를 도시하는 블록도이다. 이 BWT 런 길이 압축수단은 테스트 시퀀스에 대하여 1회이상 BW 변환하는 반복 BW 변환수단(561)과 BW 변환된 데이터에 대하여 런 길이 압축방법을 사용하여 압축하는 런 길이 압축수단(562)으로 구성되어 있다.
다음에, 이 BWT 런 길이 압축수단을 사용하여 테스트 시퀀스를 정보 손실없이 압축하는 경우의 동작에 대하여 설명한다. 도 103은 BWT 런 길이 압축방법을 도시하는 흐름도이다. 우선, 단계(S1)에서 입력된 테스트 시퀀스와 BW 변환의 적용회수 M(=Kind)을 반복 BW 변환수단(561)으로 송신한다. 다음에, 단계(S2)에서 BW 변환의 적용회수(m)를 m=M로 세트하고, 카운터(i)를 i=0으로 리세트한다. 단계(S3)에서, 테스트 시퀀스를 BW 변환하고, 카운터(i)에 1을 가산한다. 단계(S4)에서 BW 변환이 m회 행해졌는가의 여부, 즉 i=m을 확인하고, 적용회수(i)가 m로 될 때까지 단계(S3)를 반복한다. 다음에, 단계(S5)에서 m회 BW 변환된 데이터를 런 길이 압축수단(562)에 송신하고, 단계(S6)에서 런 길이 압축방법을 사용하여 압축한다. 최후로, 단계(S7)에서 압축된 데이터를 출력하고, 처리를 종료한다.
도 104는 BWT런 길이 신장수단의 구성의 일예를 도시하는 블록도이다. 이 BWT 런 길이 신장수단은 입력된 압축 데이터를 런 길이 신장방법을 사용하여 신장하는 런 길이 신장수단(563)과 이 런 길이 신장수단으로 신장된 데이터에 대하여 1회이상 역 BW 변환하는 반복 역 BW 변환수단(564)으로 구성되어 있다.
다음에, 이 BWT 런 길이 신장수단을 사용하여 압축데이터를 정보 손실없이, 본래의 테스트 시퀀스로 신장하는 경우의 동작에 대하여 설명한다. 도 105는 BWT 런 길이 신장방법을 도시하는 흐름도이다. 우선, 단계(S1)에서 입력된 압축 데이터를 런 길이 신장수단(563)에 송신한다. 다음에, 단계(S2)에서 런 길이 신장수단(563)은 압축 데이터를 신장한다. 단계(S3)에서 신장된 데이터와 역 BW변환의 적용회수 M(=Kind)를 반복하고, 역 BW 변환수단(564)에 송신한다. 다음에, 단계(S4)에서, 역 BW 변환의 적용회수(m)를 m=M로 세트하고, 카운터(i)를 i=0에 리세트한다. 반복 역 BW 변환수단(564)은 단계(S5)에서 데이터를 역 BW 변환하고, 카운터(i)에 1를 가산한다. 다음에, 단계(S6)에서 역 BW 변환이 m회 행해졌는가 여부, 즉 i<m을 확인하고, 역 BW 변환의 적용회수가 m로 될때가지 단계(S5)를 반복한다. 최후로, 단계(S7)에서 복원된 테스트 시퀀스를 출력하고, 처리를 종료한다.
이상, 본 발명의 제 2 실시예의 테스트 패턴 압축 및 신장방법 및 테스트 패턴 압축 및 신장장치에 대하여 설명하였지만, 본 발명은 또한, 본 발명에 의한 테스트 패턴 압축장치 또는 방법 및 테스트 패턴 신장장치 또는 방법을 사용한, 테스트 패턴을 고속으로 전송하는 것을 가능하게 하는 IC의 자동 테스트 시스템까지도 포함하고 있다. 본 발명에 의한 테스트 패턴 신장장치를 구비한 IC 자동 테스트 시스템(IC테스터)은 그 테스트 본체의 패턴 제너레이터가 테스트 패턴을 보존하고 있는 디스크 장치와 테스트 프로세서를 통하여 접속되고 있는 환경, 테스터 본체의 패턴 제너레이터가 테스트 패턴을 보존하고 있는 디스크 어레이 장치와 직접 접속되는 환경등의 여러가지 테스트 환경에 대응할 수 있다. 이하, 테스트 패턴 신장장치를 구비한 IC 자동 테스트 시스템의 실시예 및 변형예, 및 테스트 패턴 압축장치를 구비한 IC 자동 테스트 시스템의 실시예 및 변형예에 대하여 도 106∼도 113을 참조하여 설명한다.
도 106은 본 발명에 의한 테스트 패턴 신장장치 및 테스트 패턴 압축장치를 구비한 IC 자동 테스트 시스템의 제 1 실시예의 구성을 도시하는 블록도이다. 이 테스트 시스템은 테스터 본체(579)내의 제어를 행하는 테스터 프로세서(570)와, 테스트 데이터를 기억하고, 테스트되는 반도체 집적회로(CUT)(571)에 인가하는 논리데이터를 기본 클록으로 동기하여 발생시키는 회로, 즉, 기억되는 논리 데이터가 순차 판독되어 출력되는 패턴 제너레이터(572)와 패턴 제너레이터(572)가 갖는 메모리를 보충하는 회로이고, 패턴 제너레이터(572)와 고속 데이터 전송이 가능한 버퍼 메모리(573)와, 압축 데이터를 고속 신장하여 패턴 제너레이터(572)에 기억하는 1입력 1출력의 테스트 패턴 신장장치(574)와 패턴 제너레이터(572)로부터 발생되는 논리 데이터로부터 상이한 폭을 갖는 펄스나 다른 펄스와 위상차가 있는 펄스를 만드는 1핀당 하나의 포맷 컨트롤(575)과 전기신호를 CUT(571)에 인가하는 드라이버 및 CUT(571)의 응답이 공급되는 콤퍼레이터를 갖는 1핀당 하나의 핀일렉트로닉스(576)와, CUT(571)와의 인터페이스(577)와, 테스터 본체 제어용 워크스테이션(578)으로 구성되어 있다.
제어용 워크스테이션(578)은 테스터 본체(579)를 조작하여, IC(571)의 자동테스트를 제어하는데 사용된다. 예를 들면, 선 마이크로시스템즈사(Sun Micro- systems)의 스파크 컴퓨터(SPARC Computer)을 사용할 수 있다. 테스트 패턴은 테스트 패턴 압축장치(581)에 의해 압축되고, 워크스테이션(578)의 디스크장치(582)에 보존된다.
CUT(571)의 테스트에 있어서, 테스트 패턴을 테스트 본체(579)의 패턴 제너레이터(572)로 다운로드하는 경우, 압축된 테스트 패턴 데이터를 워크스테이션(578) 및 테스트 프로세서(570)를 통하여 테스트 패턴 신장장치(574)에 전송하고, 고속으로 신장하여 패턴 제너레이터(572)에 기억시킨다. 패턴 제너레이터(572)에 들어갈 수 없는 테스트 패턴은 압축된 상태로 버퍼 메모리(573)에 기억되고, 필요할 때에 테스트 패턴신장장치(574)에서 신장된다. 이 경우, 종래의 테스트 패턴과 동일배열로 포함시킴으로써, 패턴 제너레이터(572)로서 종래의 것을 사용할 수가 있다. 이상의 구성을 사용함으로써, 전송경로를 지나는 데이터양을 작게 할 수가 있고, 테스트 패턴의 다운로드 시간을 단축할 수 있다.
도 107은 본 발명에 의한 테스트 패턴 신장장치를 구비한 IC 자동 테스트 시스템의 제 2 실시예의 구성을 도시하는 블록도이다. 이 테스트 시스템은 테스트 본체(579)내의 제어를 행하는 테스터 프로세서(570)와, 테스트 데이터를 기억하고, 테스트되는 반도체 집적회로(CUT)(571)에 인가하는 논리 데이터를 기본클릭으로 동기하여 발생시키는 회로인 패턴 제너레이터(572)와 압축 데이터를 고속으로 신장하여 패턴 제너레이터(572)에 기억시키는 1입력 1출력의 테스트 패턴 신장장치(574)와 테스트 패턴 데이터를 보존하고, 테스트 패턴 데이터를 고속으로 전송할 수 있는 네트워크(584)에 접속된 디스크 어레이장치(585)와 패턴 제너레이터(572)로부터 발생되는 논리 데이터로부터 상이한 폭을 갖는 펄스나 다른 펄스와 위상차를 갖는 펄스를 만드는 1핀당 하나의 포맷 컨트롤(575)과 전기 신호를 CUT(571)에 인가하는 드라이버 및 CUT(571)의 응답이 공급되는 콤퍼레이터를 갖는 1핀당 하나의 핀 일렉트로닉스(576)와, CUT(571)와의 인터페이스(577)와, 테스터 본체 제어용 워크스테이션(578)으로 구성되어 있다. 제어용 워크 스테이션(578)은 테스터 본체(579)를 조작하여, IC(571)의 자동 테스트를 제어하는데 사용된다. 예를 들면, 선 마이크로시스템즈사(Sun Microsystems)의 스파크 컴퓨터(SPARC Computer)를 사용할 수 있다. 디스크 패턴은 테스트 패턴 압축장치(도시 생략)에 의하여 압축되고, 네트워크(584)를 통하여 디스크 어레이 장치(585)에 보존된다. CUT(571)의 테스트에서 디스크 어레이 장치(585)에 보존된 테스트 패턴을 테스터 본체(579)의 패턴 제너레이터(572)에 다운로드하는 경우, 압축된 테스터 패턴 데이터를 디스크 어레이 장치(585)로부터 테스트 패턴 신장장치(574)에 전송하고, 고속으로 신장하여 패턴제너레이터(572)에 기억시킨다.
이상의 구성을 사용함으로써, 전송경로를 지나는 데이터량을 작게 할 수가 있고, 그 결과, 테스트 패턴의 다운로드 시간을 단축할 수 있다.
다음에, 테스터 본체의 측정계에 대하여 상세히 설명한다. 도 108은 도 106에 도시하는 실시예에서, 사용된 테스터 본체(579)의 측정계의 상세한 구성의 일예를 도시하고 있다. 상기 실시예에서 사용된 측정계는 지연, 폭 등의 시간을 규정하는 타이밍 펄스를 발생하는 타이밍 제너레이터(572a)와 기본 클록으로 동기하여 신장된 논리 데이터를 발생하는 패턴 제너레이터(572b)와, 이 패턴 제너레이터(572b)로부터 발생된 논리 데이터와 타이밍 제너레이터(572a)로부터의 클록 신호의 2개의 정보로부터 상이한 폭을 갖는 펄스나 다른 펄스와 위상차를 갖는 펄스를 만드는 1핀당 하나의 포맷컨트롤(575)과 전기신호를 CUT(571)에 인가하는 드라이버 및 CUT(571)의 응답이 공급되는 콤퍼레이터를 갖는 1핀당 하나의 핀 일렉트로닉스(576)와, CUT(571)와의 인터페이스(577)로 구성되어 있다.
CUT(571)의 테스트에서, 타이밍 제너레이터(572a)가 발생시키는 클록에 따라, 패턴제너레이터(572b)는 CUT(571)에 인가하는 논리 데이터를 발생하고, 이를 기초로 포맷 컨트롤(575)이 펄스를 형성한다. 포맷 컨트롤(575)로 발생한 펄스는 핀 일렉트로닉스(576)의 드라이버로 설정 레벨의 신호로 변환되어, 인터페이스(577)를 통하여 CUT(571)에 인가된다. CUT(571)로부터의 응답은 핀 일렉트로닉스(576)의 콤퍼레이터로 취득되고, 패턴 제너레이터(572b)로부터 출력되는 기대치 데이터와 비교된다.
도 109는 본 발명에 의한 테스트 패턴 신장장치 및 테스트 패턴 압축장치를 구비한 IC 자동테스트 시스템의 제 3 실시예의 구성을 도시하는 블록도이다. 이 테스트 시스템은 테스터 본체(579)내의 제어를 행하는 테스터 프로세서(570)와, 테스트 데이터를 기억하고, 테스트되는 반도체 집척회로(CUT)(571)에 인가하는 논리 데이터를 기본클록으로 동기하여 발생하는 회로, 즉, 기억 논리 데이터를 판독하여 출력하는 패턴 제너레이터(572)와, 패턴 제너레이터(572)가 갖는 메모리를 보조하는 회로이고, 패턴 제너레이터(572)와 고속 데이터 전송이 가능한 버퍼 메모리(573)와 패턴 제너레이터(572)로부터 출력되는 압축 데이터를 각 핀에 대하여 병렬로 고속 신장하는 1핀당 하나의 테스트 시퀀스 신장장치(574)와 패턴 제너레이터(572)로부터 발생되는 논리 데이터로부터 상이한 폭을 갖는 펄스나 다른 펄스와 위상차를 갖는 펄스를 만드는 1핀당 하나의 포맷 컨트롤(575)과 전기신호를 CUT(571)에 인가하는 드라이버 및 CUT(571)의 응답이 공급되는 콤퍼레이터를 갖는 1핀당 하나의 핀 일렉트로닉스(576)와 CUT(571)와의 인터페이스(577)와 테스트 본체 제어용 워크 스테이션(578)으로 구성되어 있다.
제어용 워크스테이션(578)은 테스터 본체(579)를 조작하여, IC(571)의 자동 테스트를 제어하는데 사용된다. 가령, 선마이크로시스템즈사(Sun Microsystems)의 스파크 컴퓨터(SPARC Computer)가 사용될 수 있다. 테스트 패턴은 테스트 패턴 압축장치(581)에 의해 압축되고, 워크스테이션(578)의 디스크장치(582)에 보존된다.
CUT(571)의 테스트에서 테스트 패턴을 테스트 본체(579)의 패턴 제너레이터(572)에 다운로드하는 경우, 압축된 테스트 패턴 데이터를 워크스테이션(578) 및 테스터 프로세서(570)를 통하여 패턴 제너레이터(572)에 기억시킨다. 패턴 제너레이터(572)에 들어갈 수 없는 테스트 패턴은 압축된 상태로 버퍼 메모리(573)에 기억하고, 필요할 때에 패턴 제너레이터(572)에 전송된다. 또, 패턴 제너레이터(572)로부터 출력되는 압축 데이터는 각 핀마다 테스트 시퀀스 신장장치(574)에 전송되고, 고속으로 신장되어, 각각 포맷 컨트롤(575)에 이송된다.
이상의 구성으로, 전송경로를 지나는 데이터양을 작게 할 수 있으므로, 테스트 패턴의 다운로드시간을 단축할 수 있다.
도 110은 본 발명에 의한 테스트 패턴 신장장치를 구비한 IC 자동 테스트 시스템의 제 4 실시예의 구성을 도시하는 블록도이다. 이 테스트 시스템은 테스터 본체(579)내의 제어를 행하는 테스터 프로세서(570)와 테스트 데이터를 기억하고 테스트되는 반도체 집적회로(CUT)(571)에 인가하는 논리 데이터를 기본클록으로 동기하여 발생하는 회로인 패턴 제너레이터(572)와, 패턴 제너레이터(572)로부터 출력되는 압축 데이터를 각 핀에 대하여 병렬로 고속 신장하는 1핀당 하나의 테스트 패턴 신장장치(574)와 테스트 패턴 데이터를 보존하고, 테스트 패턴 데이터를 고속으로 전송할 수 있는 네트워크에 접속된 디스크 어레이장치(585)와 테스트 패턴 신장장치(574)로부터 출력되는 논리 데이터로부터 상이한 폭을 갖는 펄스나 다른 펄스와 위상차를 갖는 펄스를 만드는 1핀당 하나의 포맷 컨트롤(525)와 전기 신호를 CUT(571)에 인가하는 드라이버 및 CUT(571)의 응답이 공급되는 콤퍼레이터를 갖는 1핀당 하나의 핀 일렉트로닉스(576)와, CUT(571)와의 인터페이스(577)와, 테스터 제어용 워크스테이션(578)으로 구성되어 있다.
제어용 워크스테이션(578)은 테스터 본체(579)를 조작하여, IC(571)의 자동테스트를 제어하는데 사용된다. 가령, 선 마이크로시스템즈사(Sun Microsystems)의 스파크 컴퓨터(SPARC Computer)를 사용할 수 있다. 테스트 패턴은 테스트 패턴 압축장치(도시 생략)에 의하여 압축되어 네트워크(584)를 통하여 디스크 어레이장치(585)에 보존된다.
CUT(571)의 테스트에서 디스크 어레이장치(585)에 보존된 테스트 패턴을 테스트 본체(579)의 패턴 제너레이터(572)로 다운로드하는 경우, 압축된 테스트 패턴 데이터를 디스크 어레이장치(585)로부터 패턴 제너레이터(572)에 기억시킨다. 패턴 제너레이터(572)로부터 출력되는 압축 데이터는 각 핀마다 테스트 시퀀스 신장장치(574)로 전송되어, 고속으로 신장되어 각각 포맷컨트롤(575)로 송신된다.
이상의 구성으로, 전송경로를 지나는 데이터량을 작게할 수 있고, 이로서 테스트 패턴의 다운로드 시간을 단축할 수 있다.
다음에, 테스트 본체의 측정계에 대하여 상세히 설명한다. 도 111은 도 109 또는 도 110에 도시하는 실시예에 있어서, 사용된 테스터본체(579)의 측정계의 상세한 구성의 일예를 도시하고 있다.
상기 실시예에서 사용된 측정계는 지연, 폭 등의 시간을 규정하는 타이밍 펄스를 발생하는 타이밍 제너레이터(572a)와 기본 클록으로 동기하여 신장된 논리 데이터를 발생하는 패턴 제너레이터(572b)와 압축 데이터를 각 핀마다 병렬로 신장하는 1핀당 하나의 테스트 시퀀스 신장장치(574)와 이 테스트 시퀀스 신장장치(574)로 신장된 논리 데이터와 타이밍 제너레이터(572a)로부터의 클록신호의 2개의 정보로부터 상이한 폭을 갖는 펄스나 다른 펄스와 위상차를 갖는 펄스를 만드는 1핀당 하나의 포맷 컨트롤(575)과 전기신호를 CUT(571)에 인가하는 드라이버 및 CUT(571)의 응답이 공급되는 콤퍼레이터를 갖는 1핀당 하나의 핀 일렉트로닉스(576)와 CUT(571)와의 인터페이스(577)로 구성되어 있다.
CUT(571)의 테스트에서 타이밍 제너레이터(572a)가 발생하는 클록에 따라 패턴 제너레이터(572b)로부터 출력된 압축 데이터를 기초로 테스트 시퀀스 신장장치(574)가 CUT(571)에 인가하는 논리 데이터를 발생시키고, 이것을 기초로 포맷 컨트롤(575)은 펄스를 형성한다. 포맷 컨트롤(575)에서 발생한 펄스는 핀일렉트로닉스(576)의 드라이버에서 전기신호로 변환되어, 인터페이스(577)를 통하여 CUT(571)에 인가된다. CUT(571)로부터의 응답은 핀일렉트로닉스(576)의 콤퍼레이터로 취득되어, 동일하게, 테스트 패턴 신장장치(574)로부터 출력되는 기대치 데이터와 비교된다.
이상과 같은 구성으로, 압축된 테스트 패턴을 리얼타임으로 신장하고, 신장한 논리 데이터를 사용하여 리얼타임으로 CUT(71)의 테스트를 행할 수가 있다. 더욱이, 압축된 데이터를 패턴 제너레이터(572b)에 보존함으로써, 메모리를 절약할 수도 있다.
도 112는 본 발명에 의한 테스트 패턴 압축장치를 구비한 IC 자동테스트 시스템의 제 5 실시예의 구성을 도시하는 블록도이다. 이 시스템은, 컴퓨터(601)의 CPU 메모리 버스(587)에 접속된 테스트 패턴 압축장치(581)을 구비하고 있다. 네트워크(584)을 통하여 다른 컴퓨터로부터 전송된 테스트 패턴은 I/O 컨트롤러(588), I/O버스(589), 버스어댑터(591), CPU 메모리버스(587)를 통하여 테스트 패턴 압축장치(581)에 송신되고, 정보 손실없이 압축되어 CPU 메모리버스(587), 버스어댑터(591), I/O 버스(589), I/O 컨트롤러(592)를 통하여, 디스크 장치(582)나 네트워크(584)에 접속된 다른 컴퓨터의 디스크에 보존된다. 또 테스트 패턴이 메인메모리(593)내에 있는 경우에는, 이 테스트 패턴은 CPU 메모리버스(587)를 통하여 테스트패턴 압축장치(581)에 송신되고, 정보 손실없이 압축되어 CPU 메모리버스(587), 버스어댑터(591), I/O 버스(589), I/O 컨트롤러(592)를 지나, 디스크장치(582)나 네트워크(584)에 접속된 다른 컴퓨터의 디스크에 보존된다.
디스크장치(582)에 보존된 압축 데이터는 I/O 컨트롤러(592, 593), I/O 버스(589)를 통하여 테스터 본체(579)에 전송된다. 전송되는 테스트 패턴은 압축되어 있고, 전송시간이 짧다. 따라서 테스터본체(579)로 압축 데이터를 고속으로 신장할 수 있으면, 테스트 시스템의 가동율을 향상시킬 수가 있다.
도 113은 본 발명에 의한 테스트 패턴 압축장치를 구비한 IC 자동 테스트 시스템의 제 6 실시예의 구성을 도시하는 블록도이다. 이 시스템은 디스크장치(582) 앞에 테스트 패턴 압축장치(581)을 구비하고 있다. 네트워크(584)을 통하여 다른 컴퓨터로부터 전송된 테스트 패턴은 I/O 컨트롤러(588,592), I/O 버스(589)를 통하여, 테스트 패턴 압축장치(581)로 송신되고, 정보 손실없이 압축되어 디스크장치(582)에 보존된다. 또, 테스트 패턴이 메인메모리(593)내에 있는 경우에는, 이 테스트 패턴은 CPU 메모리버스(587), 버스어댑터(591), I/O 버스(589), 및 I/O 컨트롤러(592)를 통하여 테스트 패턴 압축장치(581)로 송신되고, 정보 손실없이 압축되어 디스크 장치(582)에 보존된다. 디스크장치(582)에 보존된 압축 데이터는 I/O 컨트롤러(592), I/O버스(589)를 통하여 테스터본체(579)로 전송된다. 전송되는 테스트 패턴은 압축되고, 전송시간이 짧다. 이 때문에, 테스트 시스템으로 압축 데이터를 고속으로 신장할 수 있으면, 테스트 시스템의 가동을 향상시킬 수가 있다.
상술에 있어서는 데이터 압축의 경우 압축율이 임계값보다 클 경우에는, LZ 압축방법으로 압축하였지만, Huffman 압축방법, 산술부호화 압축방법등의 다른 압축방법을 사용할 수 있다.
본 발명에 의하면, 수신된 입력 데이터 패턴을 그 데이터 구조나 통계적 성질에 의하여, 복수의 블록중 하나에 분배하고, 그 각 블록에 대하여 적절한 압축방법을 적용함으로써 상이한 데이터 구조를 갖는 데이터 패턴으로 이루어지는 데이터를 효율좋게 압축할 수 있다.
또 본 발명에 의하면, 입력된 테스트 패턴 데이터를 각 핀마다의 테스트 시퀀스로 분할하고, 각각의 테스트 시퀀스에 대하여 적절한 압축방법을 적용하므로, 테스트 패턴 데이터의 효율이 좋은 압축이 가능하다.
도 114는 본 발명에 의한 테스트 패턴 압축방법 및 장치를 사용하여 실제 디바이스 테스트에 사용되는 테스트 패턴을 압축하고, 압축율을 측정한 결과를 도시하고 있다. 테스트 패턴의 샘플로서 5개의 테스트 패턴(테스트 시퀀스의 길이 15000)을 사용하였다. 도면내의 K1, K2는 CISC 마이컴(100핀)의 테스트 패턴, A1, A2는 디스크 컨트롤러(144핀)의 테스트 패턴, SI이 RISC 마이컴(144핀)의 테스트 패턴이다. 도 114에는 가장 일반적으로 사용되는 압축방법인 LZW(CNIX Compress등에 사용되고 있는 압축수법)와 비교 도시하고 있다. K1의 테스트 패턴이외에 대하여는, 본 발명의 테스트 패턴 압축방법 및 장치가 더 좋은 압축율을 나타내고 있고, 특히 SI의 테스트 패턴에 대하여는 1500:1 이상의 압축율을 얻는다.
또, 본 발명의 테스트 패턴 신장장치를 사용함으로써, 반도체 집적회로를 자동 테스트하는 자동 테스트 시스템에서 고속 데이터 신장이 가능하기 때문에, 테스트 패턴의 다운로드에 필요한 시간을 단축할 수가 있다.
도 115는 본 발명의 테스트 패턴 신장장치에 의한 압축데이터의 신장속도를 측정한 결과를 도시하고 있다. 도 115에서, LZ 압축방법의 신장속도도 동일하게 측정하고, 본 발명의 테스트 패턴 신장장치와 비교하였다. 이 도면에서, 본 발명의 테스트 패턴 신장장치는 종래는 LZ 압축방법에 비하여, 약 2배의 고속 데이터 신장이 가능함을 알 수 있다.
본 발명은 BWT 런 길이 압축장치를 사용함으로써, 의사 랜덤계열(Pseudo- random Noise sequence, PN sequence)의 하나인 M계열(Maximum length sequence)를 효율적으로 압축할 수가 있다. 도 116은 BWT 런 길이 압축장치를 사용하여, M계열을 압축하였을 때의 압축율의 결과를 도시하고 있다. 이 도면에서는 BW 변환을 1회적용하였을 때의 결과를 X로 표시하고, BW 변환을 2회 적용하였을 때의 결과를 0로 표시하고 있다. 또, 파선은 BWT 런 길이 압축장치로 얻어지는 압축율의 상한치를 표시하고 있다.
도 116에 도시하는 바와 같이, M계열에 대하여는, 본 발명의 BWT 런 길이 압축장치를 사용하여, BW 변환을 2회 적용함으로써, 상한에 가까운 압축율을 얻을 수가 있다. 더욱이, M계열을 생성하는 선형귀환 시프트 레지스터(Linear Feedback Shift Register, LFSR)의 스테이지(stage)수가 커짐에 따라 압축율도 향상되고, 최대로 약 700:1이라는 압축율을 얻을 수 있다.
이와같이, BW 변환을 복수회 적용한 후, 런 길이 압축방법으로 압축함으로써 높은 압축율을 얻는 것이 가능하다.

Claims (50)

  1. 입력된 데이터 패턴을 그 데이터의 구조에 따라 복수의 압축용 블록중 하나에 분배하여 분할하는 분할단계,
    상기 복수의 압축용 블록으로 분할된 데이터를 각 블록에 적합한 압축 방법으로 압축하는 압축단계,
    상기 압축단계로 압축된 압축 데이터를 그 압축 방법에 따라 복수의 신장용 블록으로 분할하는 분할단계, 및
    각 신장용 블록의 압축 데이터에 대하여 그 압축 방법에 대응하는 신장방법에 의해 데이터를 신장하는 신장단계를 포함하는 것을 특징으로 하는 데이터 패턴의 압축 및 신장방법.
  2. 입력된 데이터 패턴을 그 데이터의 통계적인 성질에 따라 복수의 압축용 블록중 하나에 분배하여 분할하는 분할단계,
    상기 복수의 압축용 블록으로 분할된 데이터를 각 블록에 적합한 압축 방법으로 압축하는 압축단계,
    상기 압축단계로 압축된 압축데이터를 그 압축 방법에 따라 복수의 신장용 블록으로 분할하는 분할단계, 및
    각 신장용 블록의 압축데이터에 대하여 그 압축 방법에 대응하는 신장방법에 의해 데이터를 신장하는 신장단계를 포함하는 것을 특징으로 하는 데이터 패턴의 압축 및 신장방법.
  3. 입력된 데이터 패턴의 데이터 천이회수를 계산하는 천이회수 계수 단계,
    상기 입력된 데이터 패턴에 있어서의 기호의 출현확률을 계측하고, 그 기호의 출현확률로부터 데이터의 엔트로피를 계산하는 엔트로피 계산단계,
    상기 입력 데이터 패턴의 데이터 천이회수를 천이회수 임계값과 비교함으로써, 그 데이터의 엔트로피를 엔트로피 임계값과 비교하는 비교단계,
    상기 입력 데이터 패턴을 상기 비교 결과에 따라 복수의 압축용 블록중 하나에 분배하여 분할하는 분할단계,
    상기 복수의 압축용 블록으로 분할된 데이터를 각 블록에 적합한 압축방법을 적용하여 데이터를 압축하는 압축단계,
    상기 압축단계로 압축된 압축 데이터를 그 압축방법에 따라 복수의 신장용 블록으로 분할하는 분할단계, 및
    각 신장용 블록의 압축 데이터에 대하여 그 압축방법에 대응하는 신장방법에 의해 데이터를 신장하는 신장단계를 포함하는 것을 특징으로 하는 데이터 패턴의 압축 및 신장방법.
  4. 입력된 데이터 패턴에 대하여 데이터를 압축하는 압축방법에 있어서,
    데이터의 구조에 따라 입력 데이터 패턴을 복수의 블록중 하나에 분배하여 분할하는 분할단계, 및
    상기 복수의 블록으로 분할된 데이터를 각 블록에 적합한 압축방법을 적용하여 데이터 압축하는 압축단계를 포함하는 것을 특징으로 하는 데이터 패턴 압축방법.
  5. 제 4 항에 있어서, 상기 분할단계는 상기 입력패턴의 데이터 천이회수를 계수하는 단계와 상기 계수한 천이회수를 임계값와 비교하는 비교단계를 포함하고,
    상기 분할단계는 상기 비교 결과에 따라 복수의 블록중 하나에 상기 데이터 패턴을 분배하는 단계를 포함하는 것을 특징으로 하는 데이터 패턴 압축방법.
  6. 제 5 항에 있어서, 상기 압축단계는 상기 천이회수가 임계값보다 작은 블록에 대하여 런 길이 압축법을 적용하고, 임계값보다 큰 블록에 대하여는 다른 압축법을 적용하는 것을 특징으로 하는 데이터 패턴 압축방법.
  7. 제 4 항에 있어서, 상기 분할된 블록중의 데이터의 주기성이 큰 블록에 대하여 브로우스 휠러(Burrows Wheeler) 변환(이하, BW변환)을 행하는 단계를 포함하고, 상기 BW 변환된 데이터에 대하여는 상기 압축단계에서 런 길이 압축법을 적용하는 것을 특징으로 하는 데이터 패턴 압축방법.
  8. 입력한 데이터 패턴에 대하여 압축하는 압축방법에 있어서,
    데이터의 통계적인 성질에 따라 입력 데이터 패턴을 복수의 블록중 하나에 분배하여 분할하는 분할단계, 및
    상기 복수의 블록으로 분할된 데이터를 각 블록에 적합한 압축방법을 적용하여 데이터를 압축하는 압축단계를 포함하는 것을 특징으로 하는 데이터 패턴 압축방법.
  9. 제 8 항에 있어서, 상기 분할 단계는 상기 입력 데이터 패턴에 있어서 기호의 출현확률을 계측하고, 그 기호의 출현확률로부터 데이터의 엔트로피를 계산하는 단계, 상기 데이터의 엔트로피를 임계값과 비교하는 비교단계, 상기 비교 결과에 따라 복수의 압축용 블록중 하나에 상기 입력 데이터 패턴을 분배하는 단계를 포함하는 것을 특징으로 하는 데이터 패턴 압축방법.
  10. 제 9 항에 있어서 상기 분할된 블록중의 엔트로피가 임계값보다 작은 블록에 대하여는 상기 압축단계에서 Huffman 압축법을 적용하는 것을 특징으로 하는 테스트 패턴 압축방법.
  11. 제 9 항에 있어서, 상기 분할된 블록중 엔트로피가 임계값보다 작은 블록에 대하여, 상기 압축단계에서 LZ 압축법을 적용하는 것을 특징으로 하는 데이터 패턴 압축방법.
  12. 제 9 항에 있어서, 상기 분할된 블록중 엔트로피가 임계값보다 작은 블록에 대하여, 상기 압축단계에서 산술부호화 압축법을 적용하는 것을 특징으로 하는 데이터 패턴 압축방법.
  13. 입력된 데이터 패턴에 대하여 데이터를 압축하는 압축방법에 있어서,
    입력된 데이터 패턴의 데이터 천이회수를 계산하는 천이회수 계수단계,
    상기 입력된 데이터 패턴에 있어서 기호의 출현확률을 계측하고, 그 기호의 출현 확률로부터 데이터의 엔트로피를 계산하는 엔트로피 계산단계,
    상기 입력 데이터 패턴의 데이터 천이회수를 천이회수 임계값과 비교함으로써, 그 데이터의 엔트로피를 엔트로피 임계값과 비교하는 비교단계,
    상기 비교결과에 따라 복수의 압축용 블록중 하나에 상기 입력된 데이터 패턴을 분배하여 분할하는 분할단계, 및
    상기 복수의 압축용 블록으로 분할된 데이터를 각 블록에 적합한 압축방법을 적용하여 데이터를 압축하는 압축단계를 포함하는 것을 특징으로 하는 데이터 패턴 압축방법.
  14. 제 13 항에 있어서, 상기 압축단계에 있어서는 상기 천이회수가 임계값 이하인 블록에 대하여 런 길이 압축법을 적용하고, 천이회수가 임계값보다 크고, 동시에 엔트로피가 임계값이하인 블록에 대하여, BW 변환을 적어도 1회 행한 후, 런 길이 압축법을 적용하여 데이터를 압축하는 것을 특징으로 하는 데이터 패턴 압축방법.
  15. 제 5 항, 제 9 항 및 제 13 항중 어느 한항에 있어서, 환경 파라미터를 입력하는 단계와 입력된 환경파라미터를 사용하여 상기 임계값을 계산하는 단계를 더 포함하는 것을 특징으로 하는 데이터 패턴 압축방법.
  16. 제 5 항, 제 9 항 및 제 13 항중 어느 한항에 있어서, 가능성이 있는 각 데이터 패턴에 대하여 임계값을 계산하는 단계와 상기 계산된 임계값을 사용하여 데이터 패턴의 압축율을 견적하고, 압축율이 최대로 되도록 임계값을 최적화하는 단계를 더 포함하고, 상기 최적화된 임계값을 상기 비교 단계에 사용하는 것을 특징으로 하는 테스트 패턴 압축방법.
  17. 제 4 항에 있어서, 상기 분할단계는,
    입력 데이터 패턴에 대하여, BW 변환을 적용하는 단계,
    상기 BW 변환된 데이터의 천이회수를 계수하는 단계,
    상기 천이회수로부터 압축율을 계산하는 단계,
    상기 압축율의 최대치와 그 압축율이 최대로 되는 BW 변환회수를 구하는 단계,
    압축율의 최대치와 압축율의 임계값을 비교하는 단계, 및
    그 비교 결과에 따라 입력 데이터 패턴을 복수의 블록으로 분배하여 분할하는 단계를 포함하는 것을 특징으로 하는 데이터 패턴 압축방법.
  18. 제 17 항에 있어서, 상기 압축단계는
    상기 임계값이상의 블록에 대하여, LZ 압축법, Huffman 압축법, 상술부호화 압축법등의 압축법을 적용하는 단계, 및
    상기 임계값이하의 블록에 대하여는, 상기 최대 압축율로 되는 BW 변환회수만 BW 변환한 후, 런 길이 압축을 적용하는 단계를 포함하는 것을 특징으로 하는 데이터 패턴 압축방법.
  19. 제 4 항 내지 제 18 항중 어느 한 항에 있어서, 상기 입력 데이터 패턴은 반도체 집적 회로의 테스트 패턴에 있어서, 각 핀에 대응하는 패턴인 것을 특징으로 하는 데이터 패턴 압축방법.
  20. 입력된 압축 데이터에 대하여 신장하는 신장방법에 있어서,
    입력된 압축 데이터의 압축방법에 따라서, 압축 데이터를 복수의 블록으로 분할하는 분할단계, 및
    상기 복수의 블록으로 분할된 데이터를 각 블록의 압축방법에 대응하는 신장방법에 의하여 데이터를 신장하는 신장단계를 포함하는 것을 특징으로 하는 데이터 패턴 신장방법.
  21. 제 20 항에 있어서, 상기 분할단계는 입력된 압축 데이터를 런 길이 압축법으로 압축된 데이터와 기타 압축법으로 압축된 데이터로 분할하고, 상기 신장단계에서 상기 런 길이 압축법으로 압축된 데이터에 대하여는 런 길이 신장법으로 신장하는 것을 특징으로 하는 데이터 패턴 신장방법.
  22. 제 20 항에 있어서, 상기 분할단계에 있어서는 입력된 압축 데이터를 직접 런 길이 압축법으로 압축된 데이터와 BW 변환 후에 런 길이 압축법으로 압축된 데이터로 분할하고,
    상기 신장 단계에서는 상기 직접 런 길이 압축법으로 압축된 데이터에 대하여 런 길이 신장법을 적용하여 데이터를 신장하여 출력하고, 상기 BW 변환후에 런 길이 압축법으로 압축된 데이터에 대하여는 런 길이 신장법을 적용한 후, 그 신장된 데이터를 BW 역 변환하여 출력하는 것을 특징으로 하는 데이터 패턴 신장방법.
  23. 제 20 항에 있어서, 상기 분할단계에 있어서는, 입력된 압축 데이터중에 LZ압축법으로 압축된 데이터가 있으면, 다른 압축 데이터로부터 분할하고, 상기 신장단계에서는 LZ 압축법으로 압축된 압축데이터에 대하여, LZ 신장법을 적용하여 데이터를 신장하여 출력하는 것을 특징으로 하는 데이터 패턴 신장방법.
  24. 제 20 항에 있어서, 상기 분할 단계에 있어서는, 입력된 압축데이터를 Huffman 압축법으로 압축된 데이터와 기타 압축법으로 압축된 데이터로 분할하고,
    상기 신장단계에서는 Huffman 압축법으로 압축된 데이터에 대하여 Huffman 신장법을 적용하는 것을 특징으로 하는 데이터 패턴 신장방법.
  25. 제 20 항에 있어서, 상기 분할 단계에서는 입력된 압축 데이터를 LZ 압축법으로 압축된 데이터와 기타 압축법으로 압축된 데이터로 분할하고,
    상기 신장단계에서는 상기 LZ 압축법으로 압축된 데이터에 대하여, LZ 신장법을 적용하는 것을 특징으로 하는 데이터 패턴 신장방법.
  26. 제 20 항에 있어서, 상기 분할단계에 있어서는 입력된 압축 데이터를 산술부호화 압축법으로 압축된 데이터와 기타 압축법으로 압축된 데이터로 분할하고,
    상기 신장단계에서는 상기 산술부호화 압축법으로 압축된 데이터에 대하여 상술부호화 신장법을 적용하는 것을 특징으로 하는 데이터 패턴 신장방법.
  27. 제 20 항에 있어서, 상기 분할 단계에 있어서는 입력된 압축 데이터를 직접 런 길이 압축법으로 압축된 데이터와 BW 변환후에 런 길이 압축법으로 압축된 데이터와 기타 압축법으로 압축된 데이터로 분할하고,
    상기 신장단계에서는 상기 직접 런 길이 압축법으로 압축된 데이터에 대하여 런 길이 신장법을 적용하여 데이터를 신장하여 출력하고, 상기 BW 변환후에 런 길이 압축법으로 압축된 데이터에 대하여는 런 길이 신장법을 적용한 후, 그 신장된 데이터를 압축시의 BW 변환회수만큼, BW 역변환하여 출력하고, 상기 다른 압축법으로 압축된 데이터에 대하여는 그 압축법에 대응하는 신장법을 적용하여 데이터를 신장하여 출력하는 것을 특징으로 하는 데이터 패턴 신장방법.
  28. 제 20 항 내지 제 27 항중 어느 한 항에 있어서, 상기 입력 압축 데이터는 반도체 집적회로의 테스트 패턴을 압축한 데이터이고, 상기 신장단계에서 출력되는 신장 데이터는 상기 테스트 패턴의 핀에 대응하는 패턴인 것을 특징으로 하는 데이터 패턴 신장방법.
  29. 압축법을 달리한 복수의 압축수단,
    입력된 테스트 패턴을 피시험 집적회로의 각 핀마다의 테스트 시퀀스로 분할하는 분할수단, 및
    각 테스트 시퀀스의 데이터의 구조에 따라 복수의 압축수단에서 적절한 것을 선택하여 대응하는 테스트 시퀀스를 핀마다 데이터를 압축시키는 압축방법 결정수단을 구비하는 것을 특징으로 하는 테스트 패턴 압축장치.
  30. 제 29 항에 있어서, 상기 압축방법 결정수단과 상기 복수의 압축수단은 상기 피시험 집적회로의 각 핀마다 설치되고, 상기 분할수단은 상기 테스트 시퀀스를 대응하는 핀의 압축방법 결정수단에 공급하는 것을 특징으로 하는 테스트 패턴 압축장치.
  31. 제 29 항 또는 제 30 항에 있어서, 상기 복수의 압축수단은 테스트 시퀀스에 대하여 런 길이 압축방법으로 압축하는 런 길이 압축수단과, 테스트 시퀀스에 대하여 적어도 1회의 BW 변환을 적용하는 BW 변환수단을 구비하고, 동시에 BW 변환출력을 상기 런 길이 압축수단으로 공급하는 BWT 런 길이 압축수단을 구비하는 것을 특징으로 하는 테스트 패턴 압축장치.
  32. 제 29 항 또는 제 30 항에 있어서, 상기 복수의 압축수단에 상기 런 길이 압축수단, 상기 BWT 런 길이 압축수단이외의 압축수단을 구비하는 것을 특징으로 하는 테스트 패턴 압축장치.
  33. 제 31 항 또는 제 32 항에 있어서, 상기 압축방법 결정수단은,
    입력된 테스트 시퀀스에 대하여 BW 변환을 적용하는 경우의 적절한 적용회수를 계산하는 BW 변환 최적화 수단,
    압축율의 임계값을 기억하는 임계값 기억수단,
    상기 BW 변환 최적화 수단으로부터 얻어지는 압축율의 최대치와 상기 임계값 기억수단의 임계값을 비교하는 압축율 비교수단, 및
    상기 압축율 비교수단에서 얻어진 비교 결과 및 상기 BW 변환 최적화 수단으로부터 얻어진 BW 변환의 적절한 적용회수에 따라 테스트 시퀀스를 압축하는 압축수단을 선택하는 압축방법 선택수단을 구비하는 것을 특징으로 하는 테스트 패턴 압축장치.
  34. 입력된 테스트 패턴을 피시험 집적회로의 각 핀마다의 테스트 시퀀스로 분할하는 단계, 및
    분할된 각 테스트 시퀀스의 데이터의 구조에 따라 적절한 압축방법을 선택하여 테스트 시퀀스를 핀마다 압축하는 단계를 포함하는 것을 특징으로 하는 테스트 패턴 압축방법.
  35. 입력된 테스트 패턴을 피시험 집적회로의 각 핀마다의 테스트 시퀀스로 분할하는 단계, 및
    분할된 각 테스트 시퀀스에 대하여 병렬로 테스트 시퀀스의 데이터 구조에 따라 적절한 압축방법을 선택하여 테스트 시퀀스를 핀마다 압축하는 단계를 포함하는 것을 특징으로 하는 테스트 패턴 압축방법.
  36. 제 34 항 또는 제 35 항에 있어서, 입력된 테스트 시퀀스에 대하여 적응하는 적절한 압축방법을 결정하는 단계, 및
    런 길이 압축방법 또는 BW 변환을 1회 이상 적용한 후, 런 길이 압축방법을 적용하는 압축방법(이하, BWT 런 길이 압축방법), 또는 LZ 압축방법, Huffman 압축법, 산술부호화 압축법 등의 다른 압축법중 하나를 적용하여 테스트 시퀀스를 압축하는 단계를 더 포함하는 것을 특징으로 하는 테스트 패턴 압축방법.
  37. 제 36 항에 있어서,
    상기 테스트 시퀀스에 대하여 BW 변환을 적용하는 단계,
    상기 BW 변환된 데이터의 천이회수를 측정하는 단계,
    상기 천이회수로부터 압축율을 계산하는 단계,
    압축율의 최대치와 그 압축율이 최대로 되는 BW 변환의 회수를 구하는 단계,
    압축율의 최대치와 압축율의 임계값을 비교하는 단계, 및
    그 비교의 결과에 따라, 런 길이 압축방법, BWT 런 길이 압축방법, 또는 다른 압축방법중에서 압축방법을 선택하는 단계를 더 포함하는 것을 특징으로 하는 테스트 패턴 압축방법.
  38. 입력된 압축데이터를 피시험 집적회로의 각 핀마다의 압축 데이터로 분할하는 압축 데이터 분할수단, 및
    각 분할된 압축 데이터에 대하여, 압축방법을 나타내는 플래그에 따른 신장방법을 선택하여 적용하는 복수의 테스트 시퀀스 신장수단을 구비하는 것을 특징으로 하는 테스트 패턴 신장장치.
  39. 제 38 항에 있어서, 상기 복수의 테스트 시퀀스 신장수단은 상기 피시험 집적회로의 각 핀마다 설치되고,
    상기 압축 데이터 분할수단은 상기 분할한 압축 데이터를 대응하는 테스트 시퀀스 신장수단에 공급하고,
    상기 복수의 테스트 시퀀스 신장수단은 병렬로 동작하는 것을 특징으로 하는 테스트 패턴 신장장치.
  40. 제 38 항 또는 제 39 항에 있어서, 상기 압축 데이터의 플래그에 의하여 런 길이 압축방법인가, BWT 런 길이 압축방법인가, 또는 다른 압축방법인가를 판정하는 압축방법 판정수단,
    압축 데이터에 대하여, 런 길이 신장방법을 사용하여 신장하는 런 길이 신장수단,
    상기 런 길이 신장수단에 의하여 신장된 데이터에 대하여 역 BW 변환을 1회이상 적용하여 데이터를 변환하는 반복 역 BW 변환수단, 및
    압축 데이터에 대하여 다른 신장방법을 사용하여 신장하는 다른 신장수단을 더 구비하는 것을 특징으로 하는 테스트 패턴 신장장치.
  41. 입력된 압축 데이터를 피시험 집적회로의 각 핀마다의 압축 데이터로 분할하는 단계, 및
    각 분할된 압축 데이터를 그 플래그에 따른 압축방법에 대응하는 신장방법에 의하여 신장하는 단계를 포함하는 것을 특징으로 하는 테스트 패턴 신장장치.
  42. 제 41 항에 있어서, 상기 신장단계는 각 핀마다 병렬로 행하는 것을 특징으로 하는 테스트 패턴 신장방법.
  43. 제 41 항 또는 제 42 항에 있어서, 상기 신장단계에서 사용하는 신장방법은 런 길이 신장방법 또는 런 길이 신장방법에 의하여 신장한 후, 역 BW 변환하는 신장방법중 하나인 것을 특징으로 하는 테스트 패턴 신장방법.
  44. 제 43 항에 있어서, 상기 신장 단계에서 사용하는 신장방법에 다른 신장방법을 더 포함하는 것을 특징으로 하는 테스트 패턴 신장방법.
  45. 압축법을 달리하는 복수의 압축수단,
    입력된 테스트 패턴을 피시험 집적회로의 각 핀마다의 테스트 시퀀스로 분할하는 분할수단,
    각 테스트 시퀀스의 데이터의 구조에 따라서, 복수의 압축수단에서 적절한 것을 선택하여 대응하는 테스트 시퀀스를 핀마다 데이터를 압축하는 압축방법 결정수단,
    입력된 압축 데이터를 피시험 집적회로의 각 핀마다의 압축 데이터로 분할하는 압축 데이터 분할수단,
    각 분할된 압축 데이터에 대하여, 압축방법을 표시하는 플래그에 따른 신장방법을 선택하여 적용하는 복수의 테스트 시퀀스 신장수단을 구비하는 것을 특징으로 하는 테스트 패턴 압축 및 신장장치.
  46. 입력된 테스트 패턴을 피시험 집적회로의 각 핀마다의 테스트 시퀀스로 분할하는 단계,
    분할된 각 테스트 시퀀스의 데이터의 구조에 따라서, 적절한 압축방법을 선택하여 테스트 시퀀스를 핀마다 압축하는 단계,
    입력된 압축 데이터를 피시험 집적회로의 각 핀마다의 압축데이터로 분할하는 단계, 및
    각 분할된 압축 데이터를 그 플래그에 따른 압축방법에 대응하는 신장방법에 의하여 신장하는 단계를 포함하는 것을 특징으로 하는 테스트 패턴 압축 및 신장방법.
  47. 입력된 테스트 패턴을 피시험 집적회로의 각 핀마다의 테스트 시퀀스로 분할하는 단계,
    분할된 각 테스트 시퀀스에 대하여 병렬로 데스트 시퀀스의 데이터의 구조에 따라 적절한 압축방법을 선택하여 테스트 시퀀스를 핀마다 압축하는 단계,
    입력된 압축 데이터를 피시험 집적회로의 각 핀 마다의 압축데이터로 분할하는 단계, 및
    각 분할된 압축 데이터를 그 플래그에 따른 압축방법에 대응하는 신장방법에 의하여 신장하는 단계를 포함하는 것을 특징으로 하는 테스트 패턴 압축 및 신장방법.
  48. 상기 청구의 범위 제 29 항에 기재된 테스트 패턴 압축장치,
    압축된 테스트 패턴 데이터를 보존하기 위한 대용량 기억장치,
    테스트 패턴 데이터를 기억하고, 테스트 패턴을 발생시키는 패턴 발생기, 및
    압축된 테스트 패턴 데이터를 정보 손실없이 완전히 본래의 테스트 패턴으로 복원하는 테스트 패턴 신장수단을 구비하는 것을 특징으로 하는 반도체 집적회로를 자동적으로 시험하는 반도체 집적회로 자동 테스트 시스템.
  49. 제 48 항에 있어서, 상기 테스트 패턴 신장수단은 각 핀마다 압축된 테스트 시퀀스 데이터를 각 핀에 대하여 병렬로 정보 손실없이 완전히 본래의 테스트 패턴으로 복원하는 복수의 테스트 시퀀스 신장수단을 포함하는 것을 특징으로 하는 반도체 집적 회로를 자동적으로 시험하는 반도체 집적회로 자동테스트 시스템.
  50. 테스트 패턴을 압축하는 수단,
    압축된 테스트 패턴 데이터를 보존하기 위한 대용량 기억장치,
    테스트 패턴 데이터를 기억하고, 테스트 패턴을 발생하는 패턴 발생기, 및
    상기 청구의 범위 제 45 항에 기재된 테스트 패턴 압축 및 신장장치를 구비하는 것을 특징으로 하는 반도체 집적회로를 자동적으로 시험하는 반도체 집적회로 자동 테스트 시스템.
KR1019980709083A 1997-03-24 1998-03-24 데이터패턴의압축및신장방법과압축및신장장치 KR100341211B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP9022597 1997-03-24
JP7029397 1997-03-24
JP97-90225 1997-03-24
JP97-70293 1997-03-24
PCT/JP1998/001273 WO1998043359A1 (fr) 1997-03-24 1998-03-24 Procede et dispositif de compression et de decompression de configuration binaire

Publications (2)

Publication Number Publication Date
KR20000010935A true KR20000010935A (ko) 2000-02-25
KR100341211B1 KR100341211B1 (ko) 2002-08-22

Family

ID=26411459

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980709083A KR100341211B1 (ko) 1997-03-24 1998-03-24 데이터패턴의압축및신장방법과압축및신장장치

Country Status (6)

Country Link
EP (1) EP0909037A4 (ko)
JP (1) JP3377217B2 (ko)
KR (1) KR100341211B1 (ko)
IL (1) IL127063A0 (ko)
TW (1) TW358165B (ko)
WO (1) WO1998043359A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000040750A (ko) * 1998-12-19 2000-07-05 오노 히로시게 반도체 테스트 시스템용 패턴 데이타 압축 및 압축 해제

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030009595A1 (en) * 2001-07-09 2003-01-09 Roger Collins System and method for compressing data using field-based code word generation
US7064688B2 (en) * 2001-07-09 2006-06-20 Good Technology, Inc. System and method for compressing data on a bandwidth-limited network
US7743119B2 (en) 2001-08-07 2010-06-22 Motorola, Inc. System and method for mapping identification codes
US7962622B2 (en) 2001-08-07 2011-06-14 Motorola Mobility, Inc. System and method for providing provisioning and upgrade services for a wireless device
US7155483B1 (en) 2001-08-07 2006-12-26 Good Technology, Inc. Apparatus and method for conserving bandwidth by batch processing data transactions
US7243163B1 (en) 2001-08-07 2007-07-10 Good Technology, Inc. System and method for full wireless synchronization of a data processing apparatus with a messaging system
US7039106B2 (en) 2002-03-25 2006-05-02 Intel Corporation Processing digital data prior to compression
US9813514B2 (en) 2002-06-12 2017-11-07 Good Technology Holdings Limited Information repository system including a wireless device and related method
US8516034B1 (en) 2002-07-08 2013-08-20 Good Technology Software, Inc System and method for modifying application behavior based on network bandwidth
JP4133172B2 (ja) 2002-09-27 2008-08-13 シャープ株式会社 論理回路テスト装置
CN1781029A (zh) * 2003-03-14 2006-05-31 爱德万测试株式会社 测试装置、测试装置的程式、测试图案记录媒体以及测试装置的控制方法
US7404109B2 (en) * 2003-06-12 2008-07-22 Verigy (Singapore) Pte. Ltd. Systems and methods for adaptively compressing test data
JP4719068B2 (ja) * 2005-04-21 2011-07-06 パナソニック株式会社 集積回路検査装置
US7516381B2 (en) 2005-04-21 2009-04-07 Panasonic Corporation Integrated circuit test system
US7620392B1 (en) 2006-02-27 2009-11-17 Good Technology, Inc. Method and system for distributing and updating software in wireless devices
CN101361140A (zh) * 2007-02-16 2009-02-04 爱德万测试株式会社 测试装置
JP5029172B2 (ja) * 2007-07-02 2012-09-19 横河電機株式会社 半導体試験装置
JP2012141860A (ja) * 2011-01-05 2012-07-26 Shuji Itai ソーターソーター(別名:ア・ソータロー)
CN105530013B (zh) * 2015-12-03 2018-08-31 四川中光防雷科技股份有限公司 一种波形数据压缩方法与系统
JP7493001B2 (ja) 2022-09-13 2024-05-30 株式会社日立製作所 圧縮伸長装置、ストレージシステム、および圧縮伸長方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3787669A (en) * 1972-06-30 1974-01-22 Ibm Test pattern generator
JPS613569A (ja) * 1984-06-18 1986-01-09 Nippon Denki Kanji Syst Kk ランレングス符号化方法
JPS61107818A (ja) * 1984-10-30 1986-05-26 Nec Corp エントロピ−符号化方式とその装置
JPH0789618B2 (ja) * 1985-10-07 1995-09-27 キヤノン株式会社 画像符号化方法
JPH0789621B2 (ja) * 1985-10-25 1995-09-27 キヤノン株式会社 符号化装置
JPH0789619B2 (ja) * 1985-10-25 1995-09-27 キヤノン株式会社 符号化装置
JPH07105730B2 (ja) * 1985-11-19 1995-11-13 キヤノン株式会社 符号化装置
JPH0193217A (ja) * 1987-10-02 1989-04-12 Matsushita Electric Ind Co Ltd データ圧縮伸長装置
JPH0234038A (ja) * 1988-07-23 1990-02-05 Hitachi Ltd データ圧縮装置
US5467087A (en) * 1992-12-18 1995-11-14 Apple Computer, Inc. High speed lossless data compression system
CA2127192C (en) * 1993-07-01 1999-09-07 Alan Brent Hussey Shaping ate bursts, particularly in gallium arsenide
US5535311A (en) * 1994-07-28 1996-07-09 Hewlett-Packard Company Method and apparatus for image-type determination to enable choice of an optimum data compression procedure

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000040750A (ko) * 1998-12-19 2000-07-05 오노 히로시게 반도체 테스트 시스템용 패턴 데이타 압축 및 압축 해제

Also Published As

Publication number Publication date
WO1998043359A1 (fr) 1998-10-01
EP0909037A1 (en) 1999-04-14
EP0909037A4 (en) 2000-11-22
IL127063A0 (en) 1999-09-22
TW358165B (en) 1999-05-11
JP3377217B2 (ja) 2003-02-17
KR100341211B1 (ko) 2002-08-22

Similar Documents

Publication Publication Date Title
KR100341211B1 (ko) 데이터패턴의압축및신장방법과압축및신장장치
US6661839B1 (en) Method and device for compressing and expanding data pattern
Wolff et al. Multiscan-based test compression and hardware decompression using LZ77
US7386777B2 (en) Systems and methods for processing automatically generated test patterns
CN102353894A (zh) 基于参考向量和位掩码的soc的测试方法
Lee et al. $2^{n} $ pattern run-length for test data compression
US5049880A (en) Bit-wise run-length encoding for data compression
Ranganathan et al. A lossless image compression algorithm using variable block size segmentation
CN102904579B (zh) 基于逐次逼近法的编码压缩方法
JP4000266B2 (ja) データ符号化装置、データ符号化方法、及びそのプログラム
Kajihara et al. Test data compression using don't-care identification and statistical encoding [logic testing]
JP3860910B2 (ja) データ圧縮装置およびデータ圧縮方法
US7516381B2 (en) Integrated circuit test system
KR101573983B1 (ko) 데이터 압축 및 데이터 복원 방법과 장치
Kalode et al. Test data compression based on Golomb coding and two-value Golomb coding
Lin et al. On reducing test power and test volume by selective pattern compression schemes
Yuan et al. An Efficiency Partially Compatible Test Decompression Technology Oriented RL-HC
CN110865299B (zh) 一种基于前向相容的折叠集分层压缩方法及装置
JPH09181610A (ja) パターン圧縮方法及び装置
Tho et al. VHDL Modeling of Boolean Function Classification Schemes for Lossless Data Compression
CN117560013A (zh) 数据压缩方法和电子设备
Ichihara et al. Test compression based on lossy image encoding
Saravanan et al. Run-length based compression for selective unspecified test pattern
Ichihara et al. A test decompression scheme for variable-length coding
Biswas et al. VLSI Circuit Test Vector Compression Technique

Legal Events

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