KR101229677B1 - 반복 비트 값 패턴을 결정하는 방법 및 비트 값 패턴 분석기, 테스트 시스템 및 컴퓨터 판독가능 저장 매체 - Google Patents

반복 비트 값 패턴을 결정하는 방법 및 비트 값 패턴 분석기, 테스트 시스템 및 컴퓨터 판독가능 저장 매체 Download PDF

Info

Publication number
KR101229677B1
KR101229677B1 KR1020107028608A KR20107028608A KR101229677B1 KR 101229677 B1 KR101229677 B1 KR 101229677B1 KR 1020107028608 A KR1020107028608 A KR 1020107028608A KR 20107028608 A KR20107028608 A KR 20107028608A KR 101229677 B1 KR101229677 B1 KR 101229677B1
Authority
KR
South Korea
Prior art keywords
bit
loop
value pattern
bit value
repeating
Prior art date
Application number
KR1020107028608A
Other languages
English (en)
Other versions
KR20110020840A (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 KR20110020840A publication Critical patent/KR20110020840A/ko
Application granted granted Critical
Publication of KR101229677B1 publication Critical patent/KR101229677B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

데이터 워드(2)의 시퀀스 중 사전 결정된 비트 위치와 연관된 반복 비트 값 패턴은 프로그램 루프 정보에 의해 결정될 수 있고, 여기에서 데이터 워드는 비트 순서로 된 2개 이상의 비트를 포함하고, 비트 위치는 비트 위치에 있는 비트로 표현되는 갓을 나타내는 비트 순서 내의 위치를 의미하며, 프로그램 루프 정보는 데이터 워드(2)의 시퀀스에서 업데이트된 데이터 워드를 결정하는 프로그램 표현식을 포함한다. 사전 결정된 비트 위치를 이용하면, 사전 결정된 비트 위치와 연관된 시퀀스 길이 값(8)이 결정된다. 프로그램 표현식을 시퀀스 길이 값(8)에 의해 표시된 루프 반복 횟수만큼 평가(6)하면, 사전 결정된 비트 위치와 연관된 업데이트된 비트 값을 획득할 수 있다. 반복 비트 값 패턴은 그 횟수의 루프 반복에 의해 업데이트된 비트 값을 이용하여 결정된다.

Description

반복 비트 값 패턴을 결정하는 방법 및 비트 값 패턴 분석기, 테스트 시스템 및 컴퓨터 판독가능 저장 매체{METHOD AND APPARATUS FOR THE DETERMINATION OF A REPETITIVE BIT VALUE PATTERN}
본 발명은 반복 비트 값 패턴을 결정하는 방법 및 장치에 관한 것으로, 특히 데이터 워드에 실행된 프로그램 표현식 또는 연산(program expressions or operations), 즉 데이터 워드 중 복수의 비트의 내용을 변경 또는 업데이트하는 프로그램 표현식 또는 연산에 의해 생성된 데이터 워드의 시퀀스 내의 사전 결정된 위치에 있는 비트에 대한 반복 비트 값 패턴을 결정하는 개념에 관한 것이다.
데이터 워드에 대해 작용하는 연산 또는 고급 프로그래밍 언어에 의해 생성된 데이터 워드의 특정 비트에 대해 반복 비트 값 패턴을 도출할 필요성은 넓은 범위의 분야에서 발생할 수 있다. 예를 들면, 이것은 C 또는 C++ 등과 같은 고급 프로그래밍 언어의 표현 결과를 효율적인 방식으로 저장하기 위해 필요할 수도 있다. 예를 들어, 프로그램 루프(program loop)를 평가한다면, 8비트 데이터 워드 내의 제 2 비트는 상수이거나 반복되는 패턴 내에서 변경될 수 있을 것이다. 비트는 그 값이 0에서 1로 반복적으로 변할 수 있다. 저장 효율성을 감안하면, 데이터 워드의 각 비트에 대해 루프의 결과적인 비트 시퀀스를 별도로 저장하는 것이 바람직할 수 있는데, 그 예로서 제 2 비트에 비트 시퀀스 "01"이 사전 결정된 횟수만큼 반복될 것임을 나타내는 최종 결과를 알고리즘 방식으로 저장할 수 있다.
다른 적용예로는 예를 들면, 메모리 장치 등과 같은 전기 장치를 테스트하는 분야가 있다. 고속의 현재 이용 가능한 전기 장치 또는 메모리에서는 그 장치의 최대 범위로 테스트할 수 있도록 하기 위해 장치의 각각의 개별적인 데이터 터미널을 나머지 데이터 터미널과는 별개로 처리하는 것이 바람직할 수 있다. 예를 들면, 이는 매우 많은 개수의 데이터 터미널을 포함하는 아트 메모리 장치(art memory devices)의 상태를 테스트하는 경우 등이 있다. 각각의 데이터 터미널이 메모리 테스터 또는 테스트 시스템의 개별적인 테스트 핀, 즉 그 자신의 프로그램 논리를 갖고 있는 각각의 테스트 핀에 접속될 때, 각각의 개별적인 테스트 핀에서 발생하는 비트 패턴을 도출해야하는 필요성이 존재한다. 테스트 프로그램 복잡도가 증가함에 따라, 사전 결정된 테스트 또는 데이터 핀에 연관된 반복 비트 값 패턴을 결정하여, 프로그램의 작동 과정 중 요구되는 반복의 횟수를 나타내는 알고리즘 기술과 연관된 반복 비트 값 패턴이 오로지 한번 저장되기만 하면 되게 하는 것이 매우 바람직할 것이다.
반복 비트 값 패턴을 결정하는 것과 관련된 종래의 접근법으로는, 예를 들어, "A True Test Processor Per-Pin Algorithmic Pattern Generator"라는 제목으로 Klaus-Dieter Hilliges 및 Jens Sundermann에 의해 1996년판 IEEE 발행물에 수록된 문헌에 서술된 내용에 따르면, 프로그램에 의해 생성된 결과적인 비트스트림 내의 반복을 탐색하기 위해 먼저 프로그램의 모든 표현식을 평가하도록 제안한다. 그러나, 이는 반복 가능성이 있는 비트 시퀀스를 추출하기 전에 전체 프로그램을 계산하도록 요구하고 그것은 매우 시간과 자원을 낭비하는 것이 될 것이다.
더욱이, 이 접근법에 따르면 반복 가능성이 있는 비트 값 패턴의 길이와 관련된 제한 사항이 없다. 그러므로 전체 처리 프로그램에 의해 생성된 비트스트림 내의 반복 비트 값 패턴을 탐색하는 것 또한, 임의의 비트 패턴 길이를 고려해야만 하기 때문에 극도의 시간 소모적인 일이 된다.
다른 접근법은 특정한 데이터 구조물(specialized data structure) 내에 평가된 비트스트림을 조직화하여, 이러한 데이터 구조물에 특정한 대칭 연산을 실행함으로써 반복 비트 값 패턴을 결정하도록 시도한다. 예를 들면, 이 접근법은 앞서 언급된 문헌 이전에 발표된 것이다. 그러나, 대칭 연산의 적용은 다량의 자원을 요구하여, 실시간 처리뿐만 아니라 다른 종래 기술의 시도에도 적용 불가능하다.
그러므로 보다 더 효과적인 방식으로 반복 비트 값 패턴을 결정하는 방법 및 장치를 제공할 필요성이 존재한다.
본 발명의 몇몇 실시예에 따르면, 프로그램 내에서 프로그램 표현식을 평가하기 전에, 사전 결정된 비트 위치와 연관된 시퀀스 길이 값을 계산함으로써 데이터 워드 내의 사전 결정된 비트 위치에 대한 반복 비트 값 패턴을 매우 효과적으로 결정할 수 있다. 시퀀스 길이 값은 대상이 되는 비트 위치에서 발생한 비트 값 패턴의 최대 반복 길이에 대한 정보를 보유한다.
몇몇 실시예에 따르면, 시퀀스 길이 값은 각각의 비트 위치에서 발생할 수 있는 반복 비트 값 패턴의 최대 길이로서 상한값이다. 다른 실시예에 따르면, 시퀀스 길이 값은 상한 값일 뿐만 아니라 발생한 반복 비트 값 패턴의 정확한 길이에 대한 예측값이다.
적어도 시퀀스 길이 값에 의해 표시된 상한 값을 알 수 있다면, 반복 비트 값 패턴을 결정하는 프로그램 표현식은 시퀀스 길이 값에 의해 지정된 횟수만큼만 평가되기만 하면 된다. 즉, 반복 비트 값 패턴을 결정하는 데 있어서, 한정된 횟수만큼만 평가를 실행하면 된다. 이것은 반복 비트 값 패턴을 결정하는 데 필요한 계산 용량을 크게 줄일 수 있게 한다.
다시 말해서, 사전 결정된 비트 위치와 연관된 업데이트된 비트 값을 획득하기 위해 시퀀스 길이 값에 의해 표시된 루프 반복 횟수만큼만 비트 값을 변경하는 프로그램 표현식을 평가하는 것에 의해 반복 비트 값 패턴을 생성할 수 있다.
다른 실시예에 따르면, 관심 대상이 되는 특정한 비트 위치를 가진 데이터 워드는 하나의 루프 반복 내에서 여러 번 액세스되고 변경된다. 이러한 실시예에서, 반복 비트 값 패턴을 결정하기 위해 시퀀스 길이 값에 의해 지정된 횟수만큼 루프 반복 내에서의 각각의 표현식을 평가할 수 있다. 이것은 각각의 반복 내에서 결정되는 업데이트된 비트 값의 연접(concatenation)으로 구성될 수 있다.
반복 비트 패턴이 결정되면, 분석된 루프 정보 또는 표현식으로부터 생성된 비트 값 패턴은 효과적인 방식으로 저장되거나 전송될 수 있다. 예를 들면, 프로그램 언어(고급 프로그램 언어)는 반복 비트 값 패턴 및 특정한 반복 비트 값 패턴에 대한 반복 회수를 나타내는 추가 명령어를 포함하는 저급 기술 방식(반복 언어 표현 또는 반복 표현)으로 변환될 수 있다.
본 발명의 몇몇 실시예에 따르면, 특정한 테스트에 적용될 반복 비트 값 패턴 또는 테스트 시스템의 데이터 핀은 다수의 데이터 핀에 동시에 영향을 주는 고급 프로그램 표현식을 기반으로 결정된다. 메모리 장치, 칩 또는 모듈에 대한 액세스 스케쥴은 때때로 고급 프로그래밍 언어를 이용하여 규정된다. 그러면 메모리 장치를 제어하기 위해 필요한 비트 시퀀스 또는 비트 값 패턴은 반복 비트 값 패턴과 각각의 반복 비트 값 패턴의 반복 횟수를 나타내는 연관 정보와 관련하여 기술될 수 있다.
이하에서 본 발명의 여러 실시예는 다음의 도면을 참조하여 보다 세부적으로 설명될 것이다.
도 1은 반복 비트 값 패턴을 결정하는 방법을 나타내는 흐름도.
도 2는 테스트 장치의 테스트 시스템을 도시하는 도면.
도 3은 고급 프로그램 체계를 도시하는 도면.
도 4는 고급 프로그램 언어로부터 반복 비트 값 패턴을 결정하는 체계를 나타내는 블록도.
도 5는 반복 언어 내에서 비트 값 패턴을 기술하는 신택스 요소(syntax elements)를 시각화하는 도면.
도 6은 프로그램 루프 내에서 프로그램 표현식에 의해 생성된 반복 비트 값 패턴에 대한 일례를 도시하는 도면.
도 7은 반복 비트 값 패턴 분석기에 대한 실시예를 도시하는 도면.
이하에서, 테스트 시스템의 다수의 테스트 핀에 접속된 메모리 칩, 모듈 또는 장치를 테스트하기 위해 고급 메모리 테스트 언어를 분석하는 데이터 워드 또는 데이터 워드의 시퀀스 내의 사전 결정된 비트 위치에 대한 반복 비트 값 패턴을 결정하는 것과 관련된 본 발명의 실시예에 대하여 설명한다. 메모리 장치의 각각의 데이터 터미널은 하나의 특정한 테스트 핀(데이터 핀)과 접속된다고 가정한다. 이를 위하여, 본 발명의 개념에 대한 설명은 다양한 가능한 적용예 중 하나의 적용예, 즉 메모리 장치의 테스트에 초점을 맞춘 적용예에서 실행된다. 그러나, 상술된 바와 같이 본 발명의 다른 실시예는 예를 들면, C, C++, 포트란(Fortran), 모듈라 2(modula 2), 펄(Perl), 파이썬(Phyton), 베이직(Basic), 비쥬얼 베이직(visual basic), 자바(java), 자바 스크립트(java script) 또는 다른 고급 프로그래밍 언어 등과 같은 다른 표준 프로그래밍 언어에 의해 생성된 반복 비트 값 패턴을 도출 또는 결정하는 데 이용될 수도 있다.
도 1은 데이터 워드의 시퀀스 내에 사전 결정된 비트 위치와 연관된 반복 비트 값 패턴을 결정하는 방법을 나타내는 블록도를 도시하는 도면으로서, 데이터 워드는 비트 순서로 된 두 개 이상의 비트를 포함하고, 비트 위치는 프로그램 루프 정보에 기초하여 비트 위치에 있는 비트로 표현되는 값을 나타내는 비트 순서 내의 특정 위치를 나타내고, 프로그램 루프 정보는 데이터 워드의 시퀀스 중 업데이트된 데이터 워드를 결정하는 프로그램 표현식을 포함한다.
즉, 프로그램 표현식은 예시적인 데이터 워드(2)에 대해 작용하여 데이터 워드의 시퀀스를 생성한다. 데이터 워드는 이 특정 실시예에서 0부터 3까지의 범위를 갖는 비트 위치(n)에서의 4개의 비트만을 포함한다. 이 특정 실시예에서는 표준 이진 표현법을 선택하였다. 그러나, 다른 실시예에 따르면 본 발명의 개념과 함께 다른 기반의 표현법도 사용할 수 있다.
사전 결정된 비트 위치, 예를 들면, 비트 위치 n=0과 연관된 반복 비트 값 패턴은 다음과 같이 결정될 수 있다.
예를 들면, 데이터 워드(2)에 영향을 주는 표현식이 얼마나 자주 평가되어야 하는지에 대한 정보를 포함할 수 있는 루프 정보에 기초하여, 사전 결정된 비트 위치(이 특정 실시예에서 n=0임)와 연관된 시퀀스 길이 값(8)이 결정된다. 이것은 결정 단계(4)에서 실행된다.
평가 단계(6)에서, 프로그램 표현식은 시퀀스 길이 값(8)에 의해 표시된 루프 반복 회수 동안 평가된다.
아래에 보다 상세히 설명된 바와 같이, 특정 조건을 만족시키는 표현식에 있어서, 하나의 단일 표현식에 기인하여 반복 비트 값 패턴을 형성하는 비트의 개수는 비트 위치(n)에 있는 비트에서 최대로 2n+1이 된다. 즉, 프로그램 표현식이 비트 위치(n)=0에서 데이터 워드 또는 비트를 변경하는 하나의 명령문만을 포함한다면, 프로그램 표현식은 2회만 평가될 것이고, 각각의 평가에서 사전 결정된 비트 위치와 연관된 업데이트된 비트 값이 결정된다.
구성 단계(10)에서, 다수의 루프 반복에서 업데이트된 비트 값은 반복 비트 값 패턴을 결정하는 데 이용된다.
시퀀스 길이 값이 2인 위의 실시예를 요약하자면, 루프 내의 표현식은 오로지 2회만 평가된다. 즉 예를 들어, 루프가 100개의 반복을 갖고 있다면, 루프를 100번 평가해야 하는 시간 소모적인 작업을 2회만 표현식을 평가하면 되는 것으로 감소시킬 수 있는데, 이는 사전 결정된 비트 위치(n=0)에서 루프 내에 있는 하나의 단일 표현식에 의해 발생될 수 있는 반복 비트 값 패턴의 최대 길이가 2이기 때문이다. 그러므로 전체 루프로부터 발생된 비트 패턴은 루프 내에서 표현식의 첫 번째와 두 번째 평가에서 도출된 비트 값이 25번 반복된 것으로 기술될 수 있다. 이 간단한 예시로도 반복 비트 값 패턴의 결정에 있어서의 계산 복잡도를 감소시키고 관심 대상이 되는 비트 위치에 대한 각각의 비트 패턴 출력을 기술 또는 저장하는 데 있어서 효율성을 증가시킬 수 있다는 큰 가능성을 이미 알 수 있을 것이다.
도 2는 예를 들면, 테스트 중인 장치(22) 등과 같은 장치를 테스트하는 테스트 시스템(20)의 일례를 도시한다. 이 장치는 예를 들면, 데이터 터미널(24a, 24b) 등과 같은 2개 이상의 데이터 터미널을 포함한다. 테스트 시스템은 예를 들면, 데이터 핀(26a, 26b) 등과 같은 복수의 데이터 핀을 구비하는데, 이 복수의 데이터 핀은 테스트 중인 장치(22)의 2개 이상의 데이터 터미널에 결합되도록 구성되어 있다. 이를 위하여, 데이터 핀은 데이터 핀을 포함하는 테스트 시스템(20)의 일부분인 특정 인터페이스 보드(interface board)(28)에 의해 호스팅(hosted)될 수 있다. 적용 범위를 넓히기 위해서, 본 발명의 테스트 시스템에 대한 다른 실시예는 테스트 중인 다른 장치에 접속하기 위한 호환 가능한 인터페이스 보드(28)를 포함할 수 있다.
테스트 중인 장치(22)의 데이터 터미널(24a, 24b)은 비트 순서로 된 2개 이상의 비트를 포함하는 데이터 워드를 수신하도록 구성되는데, 이 비트 순서 내의 비트 위치는 그 비트 위치에 있는 비트에 의해 표현되는 값을 나타낸다. 즉 예를 들면, 데이터 핀(26a)은 어드레스 데이터 워드의 비트 0을 수신하도록 구성될 수 있고, 데이터 핀(26b)은 각 어드레스의 비트 1을 수신하도록 구성될 수 있다.
데이터 핀(26a, 26b)에 대한 반복 비트 값 패턴을 결정하기 위해서, 테스트 시스템(20)은 사전 결정된 비트 또는 사전 결정된 비트 위치에 대한 반복 비트 값 패턴을 결정하는 데 적합한 비트 값 패턴 분석기(30)를 더 포함한다.
테스트 시스템(20)은 메모리 칩 또는 메모리 장치를 테스트하는 데 이용될 수 있는데, 여기에서 실행될 테스트 알고리즘 및 테스트 프로그램은 메모리 테스트 언어(memory test language : MTL)로 전개될 수 있고, 이 메모리 테스트 언어는 임의의 n비트 장치 트랜잭션(transaction)/명령/패킷(packet)/프레임을 지원하는 기본 및 복합 메모리 패턴의 모든 변형의 정의하는 데 있어서 큰 융통성과 사용 편의성을 제공한다. 이를 위하여 메모리 테스트 언어는 테스트 중인 장치(22)의 다수의 데이터 터미널, 즉 메모리 장치로 적용될 테스트 패턴을 정의하기 위한 고급 알고리즘 패턴 기술 언어인 것을 특징으로 할 수 있다.
일례로서, 베리지(Verigy) 테스터의 V93000 HSM 시리즈를 이용하여 메모리 장치를 테스트하면, 테스트 프로세서 퍼-핀(per-pin) 알고리즘 패턴 생성 아키텍처가 메모리 인터페이스 테스트 내에서 뿐만 아니라 메모리 코어 내의 고속 메모리 장치를 테스트하는 데 있어서 적용 가능성, 확장성 및 정확성을 제공한다.
V93000 HSM 시리즈는 다른 테스트 핀과 데이터를 상호 교환하지는 않지만, 당연히 그 다른 핀과 동기화되도록 작동하는 각각의 데이터 핀(테스트 핀)에 대한 비트 시퀀스를 정의하기 위해 사용된 저급 테스트 프로세서 언어를 더 제공한다. 종래의 공유형 리소스 아키텍쳐와 비교할 때, 퍼-핀 아키텍쳐(per-pin architecture)의 이점은 예를 들면 다음과 같다.
- 어드레스 폭 또는 데이터 폭에 대한 제한이 없으므로 임의의 채널-리소스(테스트 핀(26a) 또는 테스트 핀(26b))는 클록, 어드레스 및 데이터 신호를 위한 I, O 또는 I/O 핀으로 사용될 수 있다.
- APG 다중화(multiplexing)를 필요로 하지 않고, 즉 공통 데이터 버스에서 다수의 비트에 영향을 주는 명령어를 분배할 필요없이 동작 속도 테스트(at-speed testing)가 가능하다.
- 모든 N-비트 프로토콜을 지원하는 모든 메모리 액세스 모드에 사용 가능하다.
각각의 핀에 대한 비트 연산을 지정하기 위해, 이하에서 보다 상세하게 설명되는 바와 같이 V93000 HSM 시리즈는 한정된 개수의 언어 요소만을 갖는 반복 언어를 제공한다.
MTL 언어 및 퍼-핀 아키텍처의 융통성이 크기 때문에, MTL 설정(set-up)은 도 3에 도시된 바와 같이 서로 다른 설정 요소로 이루어진다.
가장 중요한 요소는 MTL 프로그램 파일(50) 그 자체로서, 이것은 메모리 장치 또는 모듈에서 작동하는 연산을 정의하는 프로그램 표현식을 포함한다. 테스트 시스템의 데이터 핀과 연관된 개별적인 비트의 비트-패턴에 대해 고급 병렬 표현식 및 연산을 매핑(map)하기 위해서는 메모리 패턴 기술, 메모리 장치 관련 정보 및 파형과 핀-매핑 표(pin-mapping tables) 등과 같은 다른 설정 관련 정보를 포함하는 다른 설정 요소가 필요하다.
주된 파일은 APG-패턴 파일(52), 장치 아키텍처 파일(54), 장치 액세스 정의를 포함하는 장치 액세스 파일(56) 및 상술된 바와 같은 MTL 프로그램 파일(50) 그 자체로 이루어지는데, MTL 프로그램 파일(50)은 장치 액세스 호출뿐만 아니라 루틴 호출(routine calls), 루프, 변수 및 산술식을 이용한 알고리즘 패턴 기술을 포함한다. 다른 보조 정보는 다른 설정 관련 파일(58) 내에 포함될 수 있다.
메모리 테스트 언어(MTL)는 다른 고급 프로그래밍 언어에서도 사용되는 표현식과 유사한 다양한 신택스 요소 및 구조를 포함한다.
특히, 메모리 패턴을 정의하는 모든 MTL 프로그램은 메인()(즉, main())으로 지칭되는 루틴을 구비해야 한다. 일반적으로 MTL 루틴은 리턴 값을 갖지 않는다. 메인() 루틴은 장치 중심 방식을 이용한 알고리즘 핀-병렬 메모리 패턴에 관해 기술한다. 테스트 프로세서 퍼-핀 APG 아키텍처는 사용자가 인식 가능하다. 사용자는 루프, 서브루틴-호출 또는 장치 액세스-호출과 높은 융통성의 표현 엔진의 조합을 이용하여 기본 메모리 패턴 또는 복합 메모리 패턴을 정의할 수 있다. 루프-카운터(loop-counters)는 일반적으로 메모리 어드레스를 지정하고, 산술-연산자 및 비트 단위-연산자와 조합되어 매우 다양한 어드레스-스텝핑(stepping)-시퀀스 및 데이터-시퀀스를 정의하는 데 이용될 수 있다.
또한 MTL은 서브루틴의 정의를 허용하므로 관련된 데이터와 장치 액세스 호출 또는 다른 서브루틴 호출을 그룹화하여 메모리 패턴 기술을 재사용 가능한 부분 또는 함수(서브루틴)로 조직화하는 메커니즘을 제공한다. 다음의 프로그램 예시는 예를 들면 루프 명령문 및 서브루틴 호출 등과 같이 앞서 소개된 신택스 요소 중 일부를 이용하는 메인 루프뿐만 아니라 몇몇 서브루틴을 포함한다.
Figure 112010083939591-pct00001
반복 비트 값 패턴의 결정을 위한 하나의 특정한 기반의 역할을 하는 MTL 언어는 다수의 신택스 요소를 포함하여, 비트 단위 연산 또는 2개 이상의 비트를 갖는 데이터 워드에 대해 연산하는 표현식의 생성을 가능하게 하는데, 이 연산은 사전 결정된 순서로 된 2개 이상의 비트에 의해 형성된 데이터 개체(data entities)에 대해 작동한다. 이용 가능한 신택스 요소 중 일부에 관해 이하에 간단하게 설명하였다.
MTL은 루프-변수 또는 비 루프-변수에 실행될 수 있는 매우 다양한 산술 연산자 및 비트 단위 연산자를 제공한다. MTL은 3가지 상이한 타입의 변수, 즉 APG-패턴 파일 또는 장치 아키텍처 파일에서 정의되는 전역 상수 변수(Global constant variables)와, 지역 정적 변수(local static variables)와, MTL 프로그램 파일에서 정의되는 루프 변수를 구별한다. 지역 정적 변수는 유도 변수(Induction variables) 및 루프-불변 변수(loop-invariant variables)의 2가지 범주로 나눠진다. 유도 변수는 매 루프 반복마다 고정된 양만큼 증가 또는 감소하거나, 다른 유도 변수의 선형 함수의 형태를 갖는다. 모든 타입의 변수로 사용 가능한 모든 연산자를 이하의 표에 나타내었다.
Figure 112010083939591-pct00002
지역 정적 변수로 이용 가능한 연산자를 다음의 표에 나타내었다. 이러한 연산자가 루프 내의 지역-정적 변수에 대해 사용된다면, 상기 변수는 유도 변수가 된다.
Figure 112010083939591-pct00003
앞서 설명된 신택스 요소를 사용한 하나의 예시적인 코드는 다음과 같다.
Figure 112010083939591-pct00004
위의 예에서 포-루프(for-loop) 내의 어떤 액세스 호출도 테스트 중인 메모리 어레이의 특정 열 또는 행에 대한 액세스를 개시할 수 있다는 것을 주지하라. 이 시나리오에서 액세스된 어드레스가 루프 변수 및/또는 유도 변수에 의존할 수 있으므로, 테스트 중인 장치의 연관된 열 어드레스 또는 행 어드레스 터미널에 있는 비트가 변경될 수 있다. 즉 액세스 호출 명령어에 의해 액세스 또는 변경되는 데이터 워드의 비트는 변경될 수 있다.
또한 루프 조건이 만족되는 한 비트의 변화는 여러 번 일어난다. 본 발명의 개념을 구현하기 위해서, 상기 명령문에 의해 생성된 반복 비트 값 패턴은 시퀀스 길이 값을 결정하는 것에 의해 도출될 수 있는데, 이 시퀀스 길이 값은 각각의 액세스 호출에 의해 액세스된 어드레스를 저장하는 데이터 워드의 하나의 선택된 비트에 대한 반복 비트 값 패턴의 시퀀스 길이를 나타낸다. 시퀀스 길이 값이 확인되면, 반복 비트 값 패턴에 의해 표시된 횟수만큼만 루프 내의 표현식을 평가함으로써 결과적인 반복 비트 값 패턴을 도출할 수 있다. 즉, 비트 값 결과 패턴은 루프 조건에 의해 표시된 횟수만큼 루프가 진행되는 것과 같다. 루프가 반복되는 횟수는 루프 정보 내에 포함된 반복 정보(예를 들면 포-명령문(for-statement)을 뒤따르는 명령문 내에 포함된 정보)에 의해 주어진다.
예를 들어, 위치(n=0)에 있는 비트의 반복 비트 값 패턴만이 관심 대상이라면, 포-루프 내의 표현식만 평가하면 된다.
다시 말해서, 본 발명의 개념을 적용하면 특히 유리한 분야 중 하나는 MTL 등과 같은 고급 프로그램 언어 내의 루프 명령문에 의해 생성된 반복 비트 값 패턴을 결정하는 분야이다.
MTL은 포-명령문을 이용한 정규 루프를 정의하는 하나의 방법을 제공한다.
Figure 112010083939591-pct00005
포-루프 증가분은 양수 및 음수 중 어느 것이 될 수도 있고, 다른 루프-변수 또는 유도-변수에 의존하지 않아야 한다.
다수의 네스트형(nested) 포-루프를 이용하여 메모리 장치 내의 모든 메모리 셀에 액세스하는 다른 일례가 이하에 설명되어 있다.
Figure 112010083939591-pct00006
전형적인 메모리 테스트 시나리오에서, 예를 들어 테스트 중인 장치의 어드레스 라인에 연결되거나 접속되어 있는 핀 등과 같은 단일 핀은 높은 수준의 반복성을 보인다. 즉 이 핀은 때때로 여러 번 반복되는 하나의 특정한 반복 비트 값 패턴으로 이루어지는 비트 값 패턴을 나타낸다. 앞서 설명된 바와 같이, 이러한 반복 비트 값 패턴을 결정할 때의 한 가지 도전 과제는, 연관된 데이터 워드(벡터)가 루프-변수 또는 유도 변수(예를 들면 어드레스에 대한 루프 카운터)를 포함하는 비트-표현식 또는 프로그램 표현식에 의존할 때 반복을 결정하는 것, 즉 반복 비트 값 패턴의 길이를 결정하는 것이다.
위의 테스트 설정에서, 예를 들면 도 4에 도시된 바와 같이 데이터 워드의 시퀀스의 사전 결정된 비트 위치에 연관된 반복 비트 값 패턴을 결정하는 방법을 구현하는 데 있어, 예를 들어 테스트 시스템(20)을 이용할 때 MTL 변환을 이용할 수 있다. MTL 변환기(100)는 MTL 프로그램 코드(104)를 반복 언어 표시문(106)으로 변환하기 위해서 반복 비트 값 패턴의 결정 방법을 실행하는 코어 변환기(core translator)(102)를 포함할 수 있고, 여기에서 반복 언어 표시문(106)은 반복 비트 값 패턴과, 예를 들면, 특정한 핀 또는 특정한 비트 위치에서 반복 비트 값 패턴이 반복되는 횟수를 나타내는 관련 정보를 포함한다.
MTL 코어 변환기는 사전에 제공된 다항 표현식에 기초하여, 다시 말해 모든 루프 반복을 실행하지 않고, 반복 비트 시퀀스 길이(시퀀스 길이 값)을 계산하는 방법을 제공한다. 반복 비트 시퀀스 길이(시퀀스 길이 값)는 루프-개시 명령문(loop-init statement), 루프-조건(loop-condition) 및 루프-증가분(loop-increment)을 고려하여, 핀 또는 비트 위치에서 반복 비트-시퀀스(반복 비트 값 패턴)를 생성하기 위해 필요한 최대 평가 횟수를 나타낸다. 도출된 반복 비트-시퀀스(반복 비트 값 패턴)는 선택적으로 이진 루프 분할 트리(loop split up tree : LST)로 변환될 수 있다. 루프 분할 트리는 반복 언어 내의 메모리 테스트 언어 평가 결과를 가시화하기 위해서 반복 언어의 한정된 개수의 신택스 요소를 가시화하고, 그에 따라 또한 포-루프가 테스트 시스템의 데이터 핀에 연관된 테스트 프로세서의 반복 언어로 매핑되는 방식에 대한 변환 규칙을 정의한다.
각각의 개별적인 핀 또는 테스트 핀에 대한 반복 언어로 된 프로그램의 표현이 생성될 때, 테스트 프로세서 객체 코드(test processor object code)(110)는 각각의 테스트 핀에 연관된 테스트 프로세서에 로딩되는 순서대로 추가적으로 생성될 수 있다. 이것은 테스트 프로세서가 연산을 수행할 수 있게 하기 위해 필요한 정보를 제공한다. 그러나 다른 실시예에서, 테스트 프로세서는 반복 언어 표현을 직접 실행하도록 작동될 수도 있다
도 5는 포-루프를 네스트형(nested) 반복 명령문으로 변환될 수 있게 하는 규칙을 정의하는 루프 분할 트리의 요소를 가시화한 것을 도시한다. 루프 분할 트리는 3개의 주요 요소, 즉 반복-노드(repeat-nodes)(120), 분할-노드(split-nodes)(122) 및 단말-노드(end nodes)(124a, 124b)로 이루어진다. 반복 노드는 단일 차일드(child) 노드를 갖고, 이 차일드는 앞서 정의된 3개의 요소 중 어느 것도 될 수 있으나 공백 상태가 아니어야 한다. 반복 노드(122)는 트리 내에서 그 후속하는 모든 노드가 반복된다는 것을 나타내는데, 다시 말해 모든 후속 노드는 2회 실행된다. 분할-노드는 2개의 차일드를 갖는데, 이 2개의 차일드는 좌측 차일드(126a) 및 우측 차일드(126b)로 지칭된다. 이 차일드는 모두 좌측 차일드 노드(126a)에서 시작하는 노드의 시퀀스를 정의한다. 이들은 동일한 개수의 레벨을 가져야 하고 3개의 노드 중 어느 것도 될 수 있지만, 또한 공백 상태가 아니어야 한다. 단말 노드(124a, 124b)는 차일드를 갖지 않는 리프 노드(leaf nodes)이다. 이진법에서의 단말 노드의 값은 "0" 또는 "1"이 될 수 있다.
신택스 요소에 의해 표시된 최대 반복 회수가 2일 때, 각각의 루프가 2개 이상의 반복을 갖는다면 루프 분할 트리에 의해 표현되는 루프의 모든 반복을 포함하기 위해서 추가 반복 노드가 추가된다.
요약하자면 상술된 메모리 테스트 설정에 사용된 MTL 변환기(100)는 고급 핀-병렬 기술을 퍼-핀 APG 프로그램으로 변환하면서 다음의 단계를 실행할 수 있다.
· 각각의 데이터 핀에서 알고리즘 메모리 패턴 기술을 그 핀과 관련된 모든 장치-액세스 호출로 축소하는 단계.
· 변수를 분석하고 모든 상수 표현식을 평가하는 단계. 루프 외부에서 정의되는 장치-액세스 정의의 상수 표현식은 이 장치 액세스의 비트를 표현하는 벡터로 직접 변환될 수 있다.
· 상수 표현식이 루프 내의 핀으로 할당된다면, MTL 변환기가 정의된 핀에 대응하는 비트를 반복 언어로 직접 매핑하는 단계. 핀에 할당되는 표현식이 루프 변수 또는 유도 변수에 의존한다면, 핀의 벡터 데이터를 생성하는 표현식의 특정 비트에 대한 반복이 결정되어야 한다. 표현식 결과가 데이터- 또는 어드레스-스크램블링 매크로(scrambling macro)에 대해 인수로서 전달되는 경우에, 정의 가능한 비트 단위 불리언 스크램블 표현식(bitwise Boolean scramble expression)을 고려해야만 한다. 전체 루프 범위를 포괄하는 특정 비트를 나타내는 반복 시퀀스를 생성한 후에, MTL 변환기는 이 시퀀스를 이진 루프 분할 트리(LST)로 전환한다.
· LST를 기반으로 하는 모든 포-루프 및 가능한 최소의 비트-시퀀스를 반복 언어로 전환하는 단계.
· 반복 언어 프로그램을 벡터 메모리에 로딩될 객체 코드로 변환하는 단계.
MTL 변환기는 성능 및 퍼-핀 벡터 메모리 소모량에 있어 최적화될 수 있다. 이 접근법은 장치 특성화에 사용되는 메모리 패턴뿐만 아니라 테스트 프로그램의 생성에 사용되는 복합 코어 및 인터페이스 테스트 패턴에 적용될 수 있다.
시퀀스 길이 값에 의해 표시된 횟수만큼 연관 프로그램 루프를 평가하는 것에 의해 반복 비트 값 패턴을 결정하는 접근법은, 컴파일 시간(compile times) 및 벡터 메모리 소모를 증가시키지 않고 현대의 고속 메모리 장치 아키텍처를 테스트하는 데 필요한 융통성을 제공한다. 각각의 개별적인 핀에 연관된 테스트 프로세서에서 테스트 프로그램의 실행이 개시될 수 있기 전에, 허용 불가능한 정도의 시간을 대기할 필요없이 테스트를 실행할 수 있다. 이 목적을 달성하기 위해서, MTL 변환기의 코어 변환 알고리즘은 현재의 핀에 대한 루프-개시-명령문(loop-init-statement), 종료-조건(end-condition) 및 루프를 획득하는 표현식으로부터 반복 시퀀스 길이를 계산하고, 이 변환기는 MTL 프로그램 파일 또는 장치 액세스 정의로 지정될 수 있는 다항식 표현을 평가함으로써 반복 비트 시퀀스를 생성한다.
루프가 다수의 액세스를 포함한다면, 각각의 액세스의 개별적인 LST는 합병되어, 결과적인 트리가 해당 루프에 대한 가능한 최소 반복 비트 시퀀스를 나타내게 한다. 네스트형 포-루프는 가장 외부의 루프로부터 가장 내부의 루프로 진행된다.
앞서 정의된 바와 같이, 반복 비트-시퀀스 길이는 하나의 핀이 나타내는 특정 비트에 의존한다. 다음을 만족시키는 다항식에 대해, 반복 비트-시퀀스 길이를 계산하는 일반식은 2(n+1)이다.
Figure 112010083939591-pct00007
여기에서 n은 특정 비트를 나타낸다.
표준 이진 표현에 따라서 비트 순서로 4개의 비트를 갖는 데이터 워드에 기초하는 다음의 예시는 반복 비트 값 패턴을 결정하는 방법의 적용예에 관해 보다 상세히 설명한다. 평가는 데이터 워드 x에 의해 표현되는 메모리 어드레스에 대한 액세스 호출을 포함하는 다음의 루프 명령문에 대해 실행되어야 한다.
Figure 112010083939591-pct00008
루프-변수 'x'는 장치 액세스에 대한 변수로서 전달된다. x의 비트 '0'에 대한 반복 시퀀스 길이는 2(0+1)로 계산되고 이것은 2이다. 다음에 MTL 변환기는 루프의 첫 번째 2번의 반복을 평가하고 비트 '0'의 결과만을 탐색함으로써 반복 비트-시퀀스를 설계한다. 이 예에서 결과적인 반복 비트 시퀀스는 비트 '0'에 대해 "01"이 될 것이다. 도 6은 각각의 반복 비트 값 패턴을 4개 비트 각각에 대해 나타내는 방식으로 루프에 대한 평가 완료 결과를 도시한다. 앞서 설명된 바와 같이, 비트 숫자 0은 시퀀스 길이 값(반복 시퀀스 길이)에 의해 표시된 바와 같이 2의 시퀀스 길이를 갖는다. 즉, 비트 숫자 0에 대한 반복 비트 값 패턴을 결정하기 위해서, 포-루프는 오로지 2회만 평가되면 되지만 추출된 반복 비트 값 패턴의 반복 횟수는 알고리즘 방식으로 루프 조건을 평가하는 것에 의해 계산될 수 있다.
나머지 비트 위치와 연관된 반복 비트 값 패턴도 도 6에 도시되어 있다. 요약하면 이러한 반복 비트 값 패턴은 다음과 같다.
Figure 112010083939591-pct00009
요약하면 현재 상용 가능한 V93000 HSM 시리즈 테스터를 이용한 메모리 테스트 방법에 본 발명의 개념을 적용할 때, 현재와 미래의 고속 메모리 장치를 동작 속도로 테스트하고, 성능과 정확성을 획득하기 위해서는 APG 퍼-핀 아키텍처가 필요하다. V93000 HSM 시리즈의 일부분으로서의 메모리 테스트 언어는 고속 메모리를 테스트할 때 필요하게 되는 새로운 메모리 테스트 패턴뿐만 아니라 종래의 메모리 테스트 패턴도 정의하기 위해 요구되는 융통성을 제공한다. 그와 동시에 이 언어 및 MTL 변환기는 그 적용 범위를 광범위하게 만들어주는 임의의 n-비트 장치 액세스 모드를 지원한다. MTL 언어 및 MTL 변환기는 현재 및 미래의 비휘발성 메모리 장치에 대한 최첨단 메모리 테스트 조건에 적합한 것으로 증명되었다.
이하에서 앞서 설명된 MTL 기술에 기초하여 반복 비트 값 패턴을 도출하는 방법에 관한 몇몇 추가적인 예시들이 제공된다. 이는 루프 정보를 갖는, 즉 관련 프로그램 표현식의 반복 평가를 유발하는 신택스 요소를 포함하는 고급 프로그램 기술에 대한 일례일 뿐이다.
일반적으로, 프로그램 코드는 하나 이상의 단일 루프 명령문을 갖고, 네스트형 루프 명령문, 즉 다른 루프 명령문 내에서 발생하는 루프 명령문을 포함한다. 그 뒤에 주어진 예시는 보다 더 복잡할 것이고, 특히 네스트형 루프명령문을 포함할 것이다.
포-루프는 신택스 트리(syntax tree)의 루트(root)로부터 트리의 리프까지 횡단하도록 순환하여 진행된다. 반복 비트 값 패턴을 결정하기 위한 변환기 실행 방법은, 사용자에 의해 정의되었거나 포-루프 변환의 결과로서 포-루프가 네스트형이 된 경우에 가장 외곽의 포-루프를 먼저 변환한 다음 내부의 루프로 진행하여 변환하는 방식으로 시작된다. 분할 트리(LST)의 실행이 선택되었다면 LST는 변환 규칙을 정의한다. 그러나, 변환은 LST를 중간 표현으로서 구성하지 않고도 실행될 수 있을 것이다. 이 때문에, LST는 기저 알고리즘을 더 잘 이해하기 위한 가시화라고 하는 것이 더 맞다. 반복 노드 및 분할 노드가 이하에 설명되는 변환에서 중요하기는 하지만, LST의 리프는 결과적인 비트 반복 패턴에 기여하지 않는 분할 트리의 종료를 표시한다.
다음의 예시는 먼저 네스트형 포-루프를 처리하는 개념을 간단히 설명하고, 그 다음의 예시는 MTL 프로그램을 반복 비트 값 패턴 및 연관 반복 명령문만을 포함하는 비트 값 패턴의 표현이 되도록 완전히 처리할 것이다.
처리되는 하나의 예시로서 이하의 프로그램 리스트를 고려해 보면,
Figure 112010083939591-pct00010
앞서 정의된 바와 같이 반복 비트 값 패턴을 결정하는 변환 알고리즘 실행 방법은, 루프 변수로서 "x"를 포함하는 외곽 루프에서 시작하는데, 다시 말해 처리는 'for (x=50;x>0;x-=9) { ... }' 루프에서 시작한다. 이하에서 설명의 단순성을 위해 비트 숫자 "0" 의 반복 비트 값 패턴이 결정된다. 더 높은 차수의 비트에 있어 반복 비트 값 패턴은 이하의 설명에서 명확해지는 바와 같이 매우 간단히 결정될 수 있다. 비트 숫자 0에 대한 시퀀스 길이 값을 계산할 때, 수식 2(n+1)이 평가되고 그 결과로 시퀀스 길이 값은 2가 된다. 즉 비트 숫자 0은 단일 표현식에 의해 생성된 반복 비트 값 패턴의 최대 길이가 2가 된다. 이는 예를 들면, 2진법, 8진법, 10진법, 16진법 및 다른 진법의 경우에 앞서 정의된 다음의 전제, 즉
Figure 112010083939591-pct00011
가 진실인 한 진실이 된다. 외곽 루프의 루프 정보의 분석, 즉 루프 개시, 루프 단계 및 루프 증가분으로부터 명확해지는 바와 같이, 포-루프는 6개의 반복을 갖는다. 다시 말해 단일 명령문은 비트 위치 0에서 비트의 비트 값에 대해 6회의 변동을 유발할 수 있다. 중간 LST 표현에서 루프의 결과를 변환하려는 단순한 접근법은 포-루프를 다음의 표현식으로 대체할 수 있게 한다.
Figure 112010083939591-pct00012
다시 말해, 시퀀스 길이 값이 2라는 것이 확인되면, 즉 반복 비트 값 패턴이 단지 2 비트의 길이를 갖는다는 것이 확인되면, 단말 노드(Nleft, Nright)는 반복 연산자를 후속적으로 사용하여 표시한 바와 같이 8번 반복되는 각각의 반복 비트 값 패턴을 포함할 것이다. 그러나 루프는 오로지 6개의 반복만을 가지고, 그에 따라 비트 값 패턴의 길이가 6이 된다. 이것은 LST 표현의 한정된 신택스 요소로는 직접 설명될 수 없다. 그러므로 표현은 이하에 설명되는 바와 같이 수정되어야 한다.
LST 표현에 의하면, 외곽 포-루프는 LST를 이용하여 반복 루프로 순환 방식으로 변환된다. 각각의 반복-노드('2x'로 정의됨)에서, "다음의 명령문을 2회 반복하라(repeat the next instructions 2 times)"의 형태로 반복 명령문이 생성된다. 각각의 분할 노드에서, 루프의 바디(body) 내에 포함된 모든 표현식을 단순히 중복시키는 좌측 노드 및 우측 노드를 생성한다. 각각의 단말 노드에서 대응하는 반복의 루프-변수 값, 카운팅 방향(내림차순 또는 오름차순) 및 페어런트-노드(parent-node)에 대한 위치(예를 들면 페어런트가 분할 노드인 경우에 좌측 또는 우측)을 고려하여 표현식을 생성한다. 다음에 변환기는 여기에서 이용된 모든 표현식 내에서 루프-변수를 결과 값으로 대체한다.
시퀀스 길이 값의 결정으로부터, 반복 비트 값 패턴은 그 최대값이 2인 길이를 갖는다는 것이 확인되었다. 즉, 루프 내의 표현식은 오로지 2회만 평가되면 된다. 외곽 루프로부터 내부 루프까지 실행되는 다른 처리에 있어서, 내부 루프 명령문은 단일 표현식이 되도록 간단한 방식으로 선택되는데, 이것은 2회만 평가된다. 그러므로 첫 번째 변환 단계 이후에 프로그램은 다음과 같이 판독된다.
Figure 112010083939591-pct00013
첫 번째의 'repeat 2' 명령문을 고려하면, 외곽 포-루프로부터 내부 포-루프로의 처리가 명확해진다. 루프 변수 x를 갖는 외곽 루프가 시퀀스 길이 값에 의해 표시된 바와 같이 오로지 2개의 평가만 필요로 하는 것으로 간주한다. 포-명령문(for-statement)은 어떠한 다른 "정규" 표현식과 동일하게 처리되므로, 내부 루프의 포-명령문은 오로지 2회만 평가된다.
그러나, 물론 평가는 적절한 외부 루프 변수 값 x를 이용하여 실행되야 한다. 다시 말해, 내부 포-루프 명령문은 2회 평가되는데, 여기에서 첫 번째 평가는 첫 번째 x값(x=50)을 이용하고, 두 번째 평가는 두 번째 x값(x=41)을 이용한다. 2의 자승만큼의 반복 횟수는 네스트형 'repeat 2' 명령문에 의해 직접 액세스 가능하므로, 원 MTL 프로그램의 외곽 포-루프의 6번의 평가를 온전히 기술하기 위해서 내부 포-루프는 첫 번째 'repeat 2' 명령문의 외부에서 2번 더 평가되어야 한다. 이 때문에 2개의 추가적인 평가가 'repeat 2' 명령문 뒤에 첨부되고 또 다시 루프 변수 x의 정확한 값을 고려하게 되는데 즉 첫 번째 평가는 x=14를 사용하고 두 번째 평가는 x=5를 이용한다.
위의 예시로부터 네스트형 포-루프 명령문이 처리되는 방식이 명확해질 것이다. 다른 예시는 마지막까지 처리되는, 즉 반복 비트 값 패턴 및 반복 비트 값 패턴이 반복되어야 하는 횟수를 나타내는 연관 반복 명명문만을 포함하는 표현식이 될 때까지 처리되는 네스트형 포-루프를 포함하는 MTL 프로그램을 포함한다.
Figure 112010083939591-pct00014
메모리 어레이가 어드레스 x에서 액세스되는 앞의 단순한 예시로부터 시작하자면, 비트 위치 "0"에 있는 비트에 관해 고려할 때 시퀀스 길이 값이 2가 된다는 것이 확인되었다. 반복 비트 값 패턴을 도출하기 위해서, 대응하는 포-루프에 대한 평가는 오로지 2회만 실행되어야 한다. 다시 말해서, 비트 위치 0에 있는 데이터 워드 x의 비트 값은 처음 2개의 루프 반복에 대해 평가되어 비트 시퀀스 "01"이 되게 한다. 또한 "포(for)" 명령문의 루프 정보에 의해 도출된 바와 같이 루프 반복 회수는 50이다. 그러므로 MTL 프로그램의 포-루프에 의해 생성된 비트 위치 "0"에서의 비트 값 패턴을 온전히 기술하기 위해서 반복 비트 값 패턴은 25회 반복되어야 한다.
그러나 LST 가시화와 관련하여, 5개의 연속적인 "repeat 2" 명령문이 필요하고 이것은 정확히 32번의 반복에 대응한다. 결과적인 반복 언어 표현식에서, 상술된 바와 같이 오로지 4개의 "repeat 2" 명령문만이 네스트형이 되고 나머지 반복은 4개의 네스트형 "repeat 2" 명령문에 첨부된다는 것을 고려해야 한다.
다음의 예시는 상술된 포-루프를 외곽 루프로서 사용하는 반면, 첫 번째 예시에서의 3의 스텝 크기(step size)를 갖는 루프는 네스트형 포-루프의 완전한 처리를 나타내기 위해서 내부 루프로서 사용된다. 여기에서도 비트 숫자 0이 대상이 된다. 그 예시는 다음과 같다.
Figure 112010083939591-pct00015
앞서 설명된 바와 같이, 외부 루프는 내부 루프에 대한 2개의 평가를 25회 반복하도록 요구되는데 이는 아래의 표현식에 나타나 있다.
Figure 112010083939591-pct00016
동일한 고려 사항으로 내부 포-루프(22개의 반복을 가짐)도 오로지 2회만 평가되면 되는데, 각각의 평가는 외부 루프 변수 x의 정확한 값에 기초한다. 이것은 비트 위치 0에서 MTL 프로그램으로부터 생성된 비트 시퀀스가 다음과 같은 표현식이 되게 한다.
Figure 112010083939591-pct00017
위의 예시를 가정하면, 데이터 워드의 전체 시퀀스를 도출할 필요없이 데이터 워드(액세스 명령문에 의해 사용된 데이터 워드) 시퀀스의 사전 결정된 비트 위치와 연관된 반복 비트 값 패턴을 결정할 수 있는 방식이 명확해지는데, 여기에서 데이터 워드는 비트 순서로 된 2개 이상의 비트를 포함하고, 비트 위치는 비트 위치에서의 비트에 의해 표현되는 값(각각의 숫자 표현식에서 비트의 가중치)으로 표시된 비트 순서 내의 위치를 나타낸다.
다른 가정은 LST 표현식에 대한 신택스 요소를 제한하는데 LST 표현식은 다음과 같이 도출 가능하다.
Figure 112010083939591-pct00018
Figure 112010083939591-pct00019
Figure 112010083939591-pct00020
Figure 112010083939591-pct00021
Figure 112010083939591-pct00022
Figure 112010083939591-pct00023
Figure 112010083939591-pct00024
Figure 112010083939591-pct00025
Figure 112010083939591-pct00026
Figure 112010083939591-pct00027
Figure 112010083939591-pct00028
각 신택스의 첫 번째 최적화는 약간 강화된 신택스 요소의 세트에 기초하여 하나의 명령문 내에 짝수의 반복을 허용하므로 신택스가 크게 축소될 수 있다는 것을 주지하라.
다음의 예시는 내부 루프 내에서 각각의 데이터 워드를 변경하는 다수의 명령문을 더 포함한다. 그 처리는 상술된 원칙을 정확히 따르기 때문에 이하의 명령문에 대한 추가 설명을 생락할 것이다.
Figure 112010083939591-pct00029
Figure 112010083939591-pct00030
Figure 112010083939591-pct00031
Figure 112010083939591-pct00032
Figure 112010083939591-pct00033
Figure 112010083939591-pct00034
Figure 112010083939591-pct00035
위의 예시는 순수한 소프트웨어 상에서 실현되는 것처럼 논의되었으나 도 7에 도시된 바와 같이 하드웨어 상에서도 본 발명의 개념을 구현할 수 있다.
도 7은 데이터 워드 시퀀스의 사전 결정된 비트 위치와 연관된 반복 비트 값 패턴을 결정하는 비트 값 패턴 분석기(200)를 도시하는데, 여기에서 데이터 워드는 비트 순서로 된 2개 이상의 비트를 포함하고, 비트 위치는 프로그램-루프 정보(202)에 기초하여 비트 위치에 있는 비트로 표현되는 값을 나타내는 비트 순서 내의 위치를 나타내며, 프로그램-루프 정보(202)는 데이터 워드 시퀀스 중 업데이트된 데이터 워드를 결정하는 프로그램 표현식을 포함한다. 비트 값 패턴 분석기(200)는 시퀀스 추정기(sequence estimator)(204), 표현식 평가기(expression evaluator)(206) 및 비트 값 패턴 생성기(208)를 포함한다.
시퀀스 추정기(204)는 사전 결정된 비트 위치를 이용하여 사전 결정된 비트 위치와 연관된 시퀀스 길이 값(210)을 결정할 수 있다.
표현식 평가기는 사전 결정된 비트 위치와 연관된 업데이트된 비트 값들을 획득하기 위해 시퀀스 길이 값(210)에 의해 표시된 루프 반복 회수만큼 프로그램 표현식(212)을 평가할 수 있다.
비트 값 패턴 생성기(208)는 그 루프 반복 회수의 업데이트된 비트 값들을 이용하여 반복 비트 값 패턴을 결정할 수 있는데, 이는 예를 들면, 비트 값 패턴 분석기의 선택적 출력부(optional output)(220)에서의 출력일 수 있다.
상술된 실시예는 본 발명의 개념을 데이터 워드 내의 비트에 대한 반복 비트 값 패턴을 결정하기 위해 데이터 워드의 숫자 값에 대해 작동하는 고급 프로그램 언어 표현식에 적용하는 것을 설명한다. 그러나 본 발명의 개념은 이러한 적용 분야로 한정되지 않는다. 본 발명의 개념은 또한 비트 위치에서 다른 표현식에 의해 변경되도록 유도된 반복 비트 값 패턴을 결정하는 데 이용될 수 있다. 예를 들면, 텍스트 처리 시스템의 워드 또는 문장에 의해 유발된 반복 비트 값 패턴도 도출할 수 있다.
이 때문에 가능한 최대 반복 비트 시퀀스 길이를 나타내는 시퀀스 길이 값을 결정하기 위해 앞서 설명된 숫자 표현식에 대한 전제 외의 다른 전제도 실현될 수 있다. 각각의 시퀀스 길이 값을 도출하는 방법에 대한 규칙은 특정 구현 시나리오에 맞춰서 적용되어야 하는데, 이는 당업자들에게는 자명한 사실일 것이다.
또한, 발견적 프로그램(heuristics)을 도입하여 루프 명령문 또는 다른 명령문 내의 표현식이 반복 비트 시퀀스(반복 비트 값 패턴)을 이용하여 기술될 수 있는지 여부를 일반적으로 결정할 수 있다. 반복 비트 시퀀스의 도출을 허용하지 않는 경우가 검출되면, 적절한 변환기는 각각의 루프 반복에 대한 표현식을 평가하여, 루프 반복 내의 가장 복잡한 표현식도 평가될 수 있게 할 것이다. 따라서 종래의 공유형 리소스 아키텍처에서는 상당히 복잡했었던 어드레스-스텝핑 시퀀스 및 데이터 시퀀스를 위한 큰 융통성을 제공할 수 있다.
상술된 예시에서는 설명의 명확성을 위해서 실행될 루프 반복의 횟수가 시퀀스 길이 값의 몇 배수인 것으로 하였다. 위에서는 본 발명의 개념이 이러한 제약을 따르지 않는 루프에도 적용될 수 있다는 것을 언급하지 않고 진행하였다. 본 발명의 개념이 오로지 메모리 테스트에만 유용하게 사용되지는 않는다는 것을 다시 강조하고자 한다. 또한 다른 디지털 데이터 처리 분야 또는 예를 들면, 프로그램 코드를 디버깅(debugging)하면서 비트 시퀀스를 결정하는 것과 같은 진단(diagnostic) 응용 분야에 적용되어 예컨대, C, C++등과 같은 다른 고급 프로그램 언어에 의해 생성된 비트 시퀀스를 결정할 수 있다.
본 발명의 방법에 대한 특정 구현 조건에 따라서, 본 발명의 방법은 하드웨어 또는 소프트웨어로 구현될 수 있다. 그 구현은 본 발명의 방법이 실행될 수 있는 프로그래밍 가능 컴퓨터 시스템과 협력하여 동작하는 디지털 저장 매체, 특히 그 매체에 전기적으로 판독가능한 제어 신호가 저장되어 있는 디스크, DVD 또는 CD를 이용하여 실행될 수 있다. 그에 따라 일반적으로 본 발명은 머신 판독 가능 매체 상에 저장된 프로그램 코드를 갖는 컴퓨터 프로그램 판독 가능 제품에 관한 것이고, 이 프로그램 코드는 컴퓨터 프로그램 판독 가능 제품이 컴퓨터에서 실행될 때 본 발명을 실행하도록 작동 가능하다. 다시 말해서 본 발명의 방법은 컴퓨터 프로그램이 컴퓨터에서 실행될 때 적어도 하나의 본 발명의 방법을 실행하는 프로그램 코드를 갖는 컴퓨터 프로그램에 관한 것이다.
상술된 내용은 그 특정 실시예를 참조하여 특정하게 도시되고 설명되었으나, 당업자라면 본 발명의 정신 및 범주를 벗어나지 않으면서 그 형태 및 세부 사항에 대한 다양한 다른 변경이 이루어질 수 있다는 것을 이해할 것이다. 본 명세서에 개시된 넓은 개념으로부터 벗어나지 않고 이하의 청구항에 의해 이해되는 바와 같이 상이한 실시예를 적용하여 다양한 변형이 이루어질 수 있다는 것을 이해할 것이다.

Claims (20)

  1. 프로그램 루프 정보(202) 및 상기 프로그램 루프 정보로부터 도출된 반복 정보에 기초하여 데이터 워드(2)의 시퀀스 중 사전 결정된 비트 위치에 연관된 반복 비트 값 패턴을 결정하는 방법으로서,
    상기 데이터 워드(2)는 비트 순서로 된(in a bit order) 2개 이상의 비트를 포함하며, 상기 비트 순서 내의 위치를 나타내는 상기 비트 위치는 상기 비트 위치에 있는 비트에 의해 표현되는 값을 나타내고, 상기 프로그램 루프 정보(202)는 상기 데이터 워드의 시퀀스 중 업데이트된 데이터 워드를 결정하는 프로그램 표현식(program expression)-상기 프로그램 표현식은 프로그램 루프 내의 연산을 정의함-을 포함하고, 상기 반복 정보는 상기 데이터 워드의 시퀀스를 생성하기 위해 실행되어야할 루프 반복 횟수를 나타내며,
    상기 방법은,
    상기 사전 결정된 비트 위치를 이용하여, 모든 루프 반복을 수행하지 않고 다항식에 기초하여 상기 사전 결정된 비트 위치에 연관된 시퀀스 길이 값(8)을 결정하는 단계와,
    상기 시퀀스 길이 값을 결정한 이후, 상기 시퀀스 길이 값(8)에 의해 표시된 루프 반복 횟수만큼만 상기 프로그램 표현식을 평가하여, 상기 사전 결정된 비트 위치와 연관된 업데이트된 비트 값들을 획득하는 단계(6)와,
    상기 횟수의 루프 반복에 의한 상기 업데이트된 비트 값들을 이용하여 상기 반복 비트 값 패턴을 결정하는 단계(10)를 포함하는
    반복 비트 값 패턴의 결정 방법.
  2. 제 1 항에 있어서,
    상기 시퀀스 길이 값(8)은, 상기 데이터 워드(2)로 표현될 수 있고 상기 비트 위치에 있는 비트로 표현되는 값보다 더 적은 상이한 값의 개수를 나타내는
    반복 비트 값 패턴의 결정 방법.
  3. 제 1 항에 있어서,
    상기 데이터 워드(2)는 숫자 값의 이진 표현식으로서 비트 위치 n에 있는 비트의 비트 값 x가 x*2n의 숫자 값을 나타내는
    반복 비트 값 패턴의 결정 방법.
  4. 제 3 항에 있어서,
    상기 시퀀스 길이 값 l(8)은 다음의 표현식
    l=2n+1
    으로 기술되는 방식으로 결정되는
    반복 비트 값 패턴의 결정 방법.
  5. 제 1 항에 있어서,
    상기 반복 비트 값 패턴은 각각의 루프 반복에 의한 상기 업데이트된 비트 값들을 연접(concatenating)하여 결정(10)되는
    반복 비트 값 패턴의 결정 방법.
  6. 제 1 항에 있어서,
    상기 시퀀스 길이 값으로 표시된 루프 반복 횟수 동안 상기 프로그램 루프 정보에 포함된 제 2 프로그램 표현식을 평가하여 상기 사전 결정된 비트 위치에 연관된 제 2 업데이트된 비트 값들을 획득하는 단계와,
    상기 제 2 업데이트된 비트 값들을 더 이용하여 상기 반복 비트 값 패턴을 결정하는 단계를 더 포함하는
    반복 비트 값 패턴의 결정 방법.
  7. 제 6 항에 있어서,
    상기 반복 비트 값 패턴은 동일한 루프 반복에서 생성된 제 1 업데이트된 비트 값 및 제 2 업데이트된 비트 값의 쌍을 연접함으로써 도출되는
    반복 비트 값 패턴의 결정 방법.
  8. 제 1 항에 있어서,
    상기 프로그램 표현식의 평가 단계는,
    상기 데이터 워드(2)의 시퀀스 중 업데이트된 데이터 워드를 도출하는 단계와,
    상기 사전 결정된 위치에 위치된 상기 데이터 워드(2)의 비트의 비트 값을 추출하는 단계를 포함하는
    반복 비트 값 패턴의 결정 방법.
  9. 제 1 항에 있어서,
    상기 시퀀스 길이 값(8)과 상기 반복 정보를 이용하여 반복 비트 값 패턴과 연관된 반복 값을 도출하는 단계를 더 포함하는
    반복 비트 값 패턴의 결정 방법.
  10. 제 9 항에 있어서,
    상기 반복 값은 상기 반복 정보로 표시된 루프 반복 횟수를 상기 시퀀스 길이 값(8)으로 나눠서 도출되는
    반복 비트 값 패턴의 결정 방법.
  11. 제 9 항에 있어서,
    상기 데이터 워드(2)의 시퀀스 중 상기 사전 결정된 비트 위치에 연관된 상기 비트 값 패턴의 반복 표현을 생성하는 단계를 더 포함하고,
    상기 반복 표현은 상기 반복 값 및 상기 반복 비트 값 패턴을 이용하여, 상기 데이터 워드의 시퀀스 중 상기 사전 결정된 비트 위치에서의 상기 비트 값 패턴을 생성하기 위해 상기 반복 비트 값 패턴이 반복되어야 하는 횟수를 나타내는
    반복 비트 값 패턴의 결정 방법.
  12. 제 9 항에 있어서,
    상기 반복 값으로 표시된 상기 반복 횟수를 네스트형(nested) 반복 명령문으로 변환함으로써 상기 반복 표현을 반복 언어 표현으로 변환하는 단계를 더 포함하고,
    각각의 반복 명령문은 상기 반복 명령문에 의해 참조되는 표현의 단일 반복을 나타내는
    반복 비트 값 패턴의 결정 방법.
  13. 제 1 항에 있어서,
    상기 데이터 워드는 메모리를 액세스하는 데 이용되는
    반복 비트 값 패턴의 결정 방법.
  14. 제 13 항에 있어서,
    상기 데이터 워드는 액세스되는 데이터 요소의 행 어드레스 또는 열 어드레스와 연관되는
    반복 비트 값 패턴의 결정 방법.
  15. 제 1 항에 있어서,
    상기 시퀀스 길이 값은 상기 반복 정보로 표시된 루프 반복 횟수보다 작은
    반복 비트 값 패턴의 결정 방법.
  16. 프로그램 루프 정보(202) 및 상기 프로그램 루프 정보로부터 도출된 반복 정보에 기초하여 데이터 워드의 시퀀스 중 사전 결정된 비트 위치와 연관된 반복 비트 값 패턴을 결정하도록 구성된 비트 값 패턴 분석기(200)로서,
    상기 데이터 워드는 비트 순서로 된 2개 이상의 비트를 포함하며, 상기 비트 순서 내의 위치를 나타내는 상기 비트 위치는 상기 비트 위치에 있는 비트에 의해 표현되는 값을 나타내고, 상기 프로그램 루프 정보는 상기 데이터 워드의 시퀀스 중 업데이트된 데이터 워드를 결정하는 프로그램 표현식(program expression)-상기 프로그램 표현식은 프로그램 루프 내의 연산을 정의함-을 포함하고, 상기 반복 정보는 상기 데이터 워드의 시퀀스를 생성하기 위해 실행되어야할 루프 반복 횟수를 나타내며,
    상기 분석기는,
    상기 사전 결정된 비트 위치를 이용하여, 모든 루프 반복을 수행하지 않고 다항식에 기초하여 상기 사전 결정된 비트 위치에 연관된 시퀀스 길이 값(210)을 결정하도록 구성된 시퀀스 추정기(204)와,
    앞서 결정된 상기 시퀀스 길이 값(210)에 의해 표시된 루프 반복 횟수만큼만 상기 프로그램 표현식을 평가하여, 상기 사전 결정된 비트 위치와 연관된 업데이트된 비트 값들을 획득하도록 구성된 표현식 평가기(206)와,
    상기 횟수의 루프 반복에 의한 상기 업데이트된 비트 값들을 이용하여 상기 반복 비트 값 패턴을 결정하도록 구성된 비트 값 패턴 생성기(208)를 포함하는
    비트 값 패턴 분석기.
  17. 컴퓨터에서 실행될 때, 제 1 항 내지 제 15 항 중 어느 한 항에 기재된 방법을 실행하는 프로그램이 수록된 컴퓨터 판독가능 저장 매체.
  18. 데이터 워드의 시퀀스를 수신하도록 구성된 2개 이상의 데이터 터미널을 갖는 장치(22)를 테스트하기 위한 테스트 시스템(20)으로서,
    상기 데이터 워드는 비트 순서로 된 2개 이상의 비트를 포함하고, 상기 비트 순서 내의 위치를 나타내는 상기 비트 위치는 상기 비트 위치에 있는 비트로 표현되는 값을 나타내고, 상기 테스트 시스템(20)은 상기 장치(22)의 상기 2개 이상의 데이터 터미널 중 제 1 데이터 터미널(24a) 및 제 2 데이터 터미널(24b)에 결합되도록 구성된 제 1 데이터 핀(26a) 및 제 2 데이터 핀(26b)을 포함하며,
    상기 테스트 시스템은, 상기 데이터 워드의 시퀀스 중 업데이트된 데이터 워드를 결정하는 프로그램 표현식-상기 프로그램 표현식은 프로그램 루프 내의 연산을 정의함-을 포함한 프로그램 루프 정보, 및 상기 프로그램 루프 정보로부터 도출되며 상기 데이터 워드의 시퀀스를 생성하기 위해 실행되어야 할 루프 반복 횟수를 나타내는 반복 정보에 기초하여, 사전 결정된 데이터 핀에 연관된 반복 비트 값 패턴을 결정하도록 구성된 비트 값 패턴 분석기(30)를 포함하고,
    상기 비트 값 패턴 분석기(30)는,
    상기 사전 결정된 데이터 핀에 연관된 사전 결정된 비트 위치를 이용하여, 모든 루프 반복을 수행하지 않고 다항식에 기초하여 상기 사전 결정된 데이터 핀에 연관된 시퀀스 길이 값을 결정하도록 구성된 시퀀스 추정기(204)와,
    앞서 결정된 시퀀스 길이 값에 의해 표시된 루프 반복 횟수만큼만 상기 프로그램 표현식을 평가하여, 상기 사전 결정된 데이터 핀에 연관된 업데이트된 비트 값들을 획득하도록 구성된 표현식 평가기(206)와,
    상기 횟수의 루프 반복에 의한 상기 업데이트된 비트 값들을 이용하여 상기 사전 결정된 데이터 핀에 대한 상기 반복 비트 값 패턴을 생성하는 비트 값 패턴 생성기(208)를 포함하는
    테스트 시스템.
  19. 제 18 항에 있어서,
    메모리 장치를 테스트하도록 구성된
    테스트 시스템.
  20. 제 19 항에 있어서,
    상기 사전 결정된 데이터 핀은 메모리 장치의 어드레스 터미널에 결합되도록 구성되는
    테스트 시스템.
KR1020107028608A 2008-05-21 2008-05-21 반복 비트 값 패턴을 결정하는 방법 및 비트 값 패턴 분석기, 테스트 시스템 및 컴퓨터 판독가능 저장 매체 KR101229677B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2008/004092 WO2009140981A1 (en) 2008-05-21 2008-05-21 Method and apparatus for the determination of a repetitive bit value pattern

Publications (2)

Publication Number Publication Date
KR20110020840A KR20110020840A (ko) 2011-03-03
KR101229677B1 true KR101229677B1 (ko) 2013-02-05

Family

ID=40096761

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107028608A KR101229677B1 (ko) 2008-05-21 2008-05-21 반복 비트 값 패턴을 결정하는 방법 및 비트 값 패턴 분석기, 테스트 시스템 및 컴퓨터 판독가능 저장 매체

Country Status (6)

Country Link
US (1) US8645775B2 (ko)
JP (1) JP2011524039A (ko)
KR (1) KR101229677B1 (ko)
CN (1) CN102037445B (ko)
DE (1) DE112008003878T5 (ko)
WO (1) WO2009140981A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10509653B2 (en) * 2017-02-10 2019-12-17 Intel Corporation Vector processing system
DE102018128980A1 (de) * 2018-11-19 2020-05-20 Technische Universität München Verfahren und vorrichtung zum betreiben einer speicheranordnung
CN110825444B (zh) * 2019-09-19 2023-10-20 潍柴动力股份有限公司 一种电子控制单元的针脚配置方法
KR102308990B1 (ko) * 2021-07-20 2021-10-06 (주) 에이블리 반도체 테스트 패턴 발생 장치 및 방법
US20230385040A1 (en) * 2022-05-24 2023-11-30 Xilinx, Inc. Splitting vector processing loops with an unknown trip count

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3731210A (en) * 1972-05-04 1973-05-01 Itt Corp Nutley Reduction of timing resolution in digital phase lock loops
US4639919A (en) 1983-12-19 1987-01-27 International Business Machines Corporation Distributed pattern generator
US5225772A (en) * 1990-09-05 1993-07-06 Schlumberger Technologies, Inc. Automatic test equipment system using pin slice architecture
US6215762B1 (en) * 1997-07-22 2001-04-10 Ericsson Inc. Communication system and method with orthogonal block encoding
US6151001A (en) * 1998-01-30 2000-11-21 Electro Plasma, Inc. Method and apparatus for minimizing false image artifacts in a digitally controlled display monitor
CA2474325C (en) * 2002-01-30 2010-09-28 Lg Electronics Inc. Method for scrambling packet data using a variable number of fixed length slots and apparatus thereof
JP4418713B2 (ja) * 2004-06-11 2010-02-24 キヤノン株式会社 乱数発生方法及び乱数発生装置
JP2007280546A (ja) * 2006-04-10 2007-10-25 Advantest Corp 半導体試験装置および半導体装置の試験方法
US7752531B2 (en) * 2007-09-12 2010-07-06 Seagate Technology Llc Defect sensing Viterbi based detector
JP4498409B2 (ja) * 2007-12-28 2010-07-07 株式会社エスグランツ データベースのインデックスキー更新方法及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"A true testprocessor-per-pin-algorithmic pattern generator", K.Hilliges 외 1인, MTDT '96, 1996. *

Also Published As

Publication number Publication date
WO2009140981A1 (en) 2009-11-26
US20110145654A1 (en) 2011-06-16
KR20110020840A (ko) 2011-03-03
JP2011524039A (ja) 2011-08-25
CN102037445A (zh) 2011-04-27
CN102037445B (zh) 2014-05-14
DE112008003878T5 (de) 2011-05-05
US8645775B2 (en) 2014-02-04

Similar Documents

Publication Publication Date Title
CN110149800B (zh) 一种用于处理与源程序的源代码相关联的抽象语法树的装置
US9081586B2 (en) Systems and methods for customizing optimization/transformation/ processing strategies
KR101229677B1 (ko) 반복 비트 값 패턴을 결정하는 방법 및 비트 값 패턴 분석기, 테스트 시스템 및 컴퓨터 판독가능 저장 매체
CN111367786B (zh) 一种符号执行方法、电子设备以及存储介质
US10802806B1 (en) Generating vectorized control flow using reconverging control flow graphs
CN112346730B (zh) 一种中间表示的生成方法、计算机设备及存储介质
EP3757760A1 (en) Method and apparatus for generating chip-based computing function, device, and storage medium
CN113157597A (zh) 结构解析方法、装置、电子设备和存储介质
CN111435352A (zh) 一种分布式实时计算方法、装置、系统及其存储介质
EP3996009A1 (en) Method and apparatus of converting schema in deep learning freamwork, and computer storage medium
da Silva et al. Module-per-Object: a human-driven methodology for C++-based high-level synthesis design
CN114611697A (zh) 神经网络量化及部署方法、系统、电子设备及存储介质
KR20200010396A (ko) 집적 회로 테스트 장치 및 방법
CN108920149A (zh) 编译方法和编译装置
US11762762B1 (en) Static and automatic inference of inter-basic block burst transfers for high-level synthesis
EP2820547B1 (en) Debugging method and computer program product
Acharya et al. Branch guided functional test generation at the RTL
CN116414396A (zh) 一种llvm的目标定义文件生成方法、装置和电子设备
CN105867992A (zh) 代码编译方法和装置
Lagartinho-Oliveira et al. GPGPU applied to support the construction of the state-space graphs of IOPT Petri net models
Fang et al. Performance of parallel prefix circuit transition localization of pulsed waveforms
CN113467778B (zh) 一种异构众核处理器中算法转换方法和系统
KR20130088285A (ko) 데이터 처리 시스템 및 그 시스템에서 데이터 시뮬레이션 방법
CN116911219A (zh) 用于逻辑系统设计的仿真的方法、电子设备和存储介质
CN117873607A (zh) 自定义功能对应目标操作的处理方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161226

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171226

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 7