KR20040108037A - 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법 - Google Patents

코어 기반 시스템 온 칩의 테스트 스케쥴링 방법 Download PDF

Info

Publication number
KR20040108037A
KR20040108037A KR1020030038778A KR20030038778A KR20040108037A KR 20040108037 A KR20040108037 A KR 20040108037A KR 1020030038778 A KR1020030038778 A KR 1020030038778A KR 20030038778 A KR20030038778 A KR 20030038778A KR 20040108037 A KR20040108037 A KR 20040108037A
Authority
KR
South Korea
Prior art keywords
test
resources
time
resource
core
Prior art date
Application number
KR1020030038778A
Other languages
English (en)
Other versions
KR100528137B1 (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 학교법인 명지학원 관동대학교
Priority to KR10-2003-0038778A priority Critical patent/KR100528137B1/ko
Publication of KR20040108037A publication Critical patent/KR20040108037A/ko
Application granted granted Critical
Publication of KR100528137B1 publication Critical patent/KR100528137B1/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/31704Design for test; Design verification
    • 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/31721Power aspects, e.g. power supplies for test circuits, power saving during test

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

본 발명은 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법에 관한 것으로, 시스템 온 칩(SoC)을 테스트할 때 시스템 온 칩의 테스트 자원 집단 중 전력·시간 곱의 크기가 큰 자원부터 우선 순위로 배열하여 방법을 사용하여 테스트를 위한 테스트 자원의 병렬 처리 능력을 향상시켜 스케쥴링 시간을 줄이는 효과를 가지고 있다.
이를 위한 본 발명에 의한 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법은 시스템 온 칩 내 테스트자원의 충돌을 조사하고 확장 나무 성장 그래프를 이용하여 자원의 선택 및 집단화를 이루어 병렬 처리 가능한 자원을 구성하는 단계; 상기 테스트 자원들의 각 시간구역별 전력·시간 곱의 비를 조사하는 단계; 및 상기 전력·시간 곱의 비가 높은 테스트 자원 그룹을 우선하여 배열하는 단계를 포함하는 것을 특징으로 한다.

Description

코어 기반 시스템 온 칩의 테스트 스케쥴링 방법{METHOD OF TEST SCHEDULING FOR CORE-BASED SYSTEM-ON-CHIPS}
본 발명은 코어 기반 시스템 온 칩의 테스트 스케쥴링(Test scheduling for core-based system-on-chips) 방법에 관한 것으로, 특히 시스템 온 칩(System-on-Chips; 이하, 'SoC'라 함)을 위한 테스트 자원의 집단 중 전력·시간 곱의 크기가 높은 자원을 우선 순위로 배열하여 병렬 처리 능력을 향상시킨 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법에 관한 것이다.
반도체 공정 기술이 발전하고 시스템 복잡도가 증가함에 따라 SoC 기술의 필요성이 대두되어 이에 대한 활발한 연구가 진행되어 왔다. 최근 SoC는 다양한 응용 분야에서 메모리와 각종 시스템 IC를 집적하여 각종 정보 기기의 핵심 소자로서 사용되며 그 활용 영역이 점차 확대되고 있다. 일반적으로, SoC란 중앙처리장치(CPU), 메모리 반도체, 디지털 신호 처리 칩(DSP), 마이크로 컨트롤러(MCU), 사용자 정의 회로(UDL: user defined logic) 또는 아날로그 회로 등의 개별 소자들을 설계 단계에서부터 하나의 칩에 집적하는 디바이스 혹은 기술을 의미한다.
1. 시스템 온 칩(SoC) 테스트 스케줄링의 개요
1-1. 시스템 온 칩(SoC)의 테스트 문제
SoC는 구동 가능한 완전한 시스템이 하나의 칩 상에 집적된 것을 말한다. 즉, 프로세서, 메모리, 그리고 다양한 주변 장치와 사용자 정의 회로 등을 하나의 칩에 집적하는 기술이다. 이러한 SoC는 서로 다른 설계자에 의하여 이전에 설계 검증되었던 IP(Intellectual Property) 코어를 재사용함으로써 시장의 개발 시간 요구를 충족하여주지 못하는 신제품 사이클(Cycle)을 단축하여 설계자가 원하는TTM(Time-to-Market) 이내의 시간에 제품을 개발하여 생산할 수 있게 해준다. 또한 SoC는 단일 칩에 시스템을 구성함으로써 면적 및 무게의 감소, 동작속도의 증가, 제품의 신뢰성 향상 및 가격의 절감이라는 장점을 가진다. 그런데 기존의 VLSI에 비해 그 복잡도가 크게 증가한 SoC는 많은 테스트 수행시간을 필요로 하고 이로 인하여 제품 생산 기간과 생산비용의 증가를 가져온다. 따라서 SoC의 테스트 수행시간을 감소시키고 시스템의 신뢰도를 높이는 것이 SoC 설계의 주요 관건이 되고 있다.
SoC를 설계하는 과정에서 시스템 레벨(System Level)에서 하위레벨로 이동할 각 단계마다 반드시 테스트를 수행하여 시스템의 신뢰도와 기능 및 속도를 검사하고 필요시 설계를 보완해야한다. 그런데, SoC는 시스템의 복잡도가 높고 공급되는 IP 코어들의 사양에 관한 정보가 제한되어 있어서 시스템 설계자가 효율적인 테스트 방법을 찾아내는데 어려움이 있다. 또한 시스템 내부가 미세하여지고 복잡하여 짐으로 인해 발생하는 전기용량성 커플링과 유도성 결합 문제들의 발생으로 인하여 기존에 발생하지 않았던 문제가 생기게되는데 이러한 것들은 인접한 회로내의 데이터 패턴에 따라 좌우된다. 따라서 SoC는 기존의 방식으로는 테스트가 복잡하고 많은 시간이 요구되기 때문에 테스를 줄이기 위한 방법과 IP 코어를 갖춘 단순 어셈블리 테스트 방식이 아닌 시스템 레벨에서의 보다 효과적인 테스트 방법을 필요로 한다. 지금까지 테스트의 수행 시간을 줄이기 위하여 여러 방법들이 제시되어 왔다. 수행시간을 감소시키기 위해서는 압축된 테스트 벡터의 공급, 적절한 테스트 억세스 구조(TAM)의 설계 또는 효과적인 시스템 레벨에서의 테스트 스케줄링의 공급 등이 요구된다. 이 중 시스템 레벨에서 효과적인 테스트 스케줄링은 총 테스트 수행시간의 감소를 가능하게 하므로 제품 생산비용 절감과 밀접한 관계를 가진다. 특별히 테스트 수행 중 반드시 고려하여야하는 테스트 병렬처리, 자원의 충돌, 그리고 전력 소비량 등이 회로 복잡도의 증가와 비례함으로써 테스트 스케줄링은 시스템 온 칩(SoC) 설계의 매우 중요한 부분이다.
1-2. 테스트 스케줄링
테스트 스케줄링의 기본 목적은 모든 제한 조건들을 만족하면서 테스트 자원들이 서로 충돌하지 않도록 테스트 자원들을 병렬로 배치하여 총 테스트 시간이 최소가 되게 하는 것이다. 테스트 시간을 최소화하기 위하여 시스템 내부의 데이터 버스, BIST 회로와 같은 테스트 자원 등이 여러 코어들에게 적절히 배분되어야하고, 코어를 위한 테스트들은 최적으로 스케줄되어야 한다. 테스트 스케줄링에서 고려하여야 하는 사항은 다음과 같다.
첫째로, 모든 코어들의 테스트는 SoC 내에서 공유되어 있는 TAM과 BIST를 사용함으로써 일어나는 자원의 충돌 때문에 동시에 수행될 수 없다. SoC를 테스트 할 때 각 코어들은 요구된 고장검출율에 도달하여야 만 하기 때문에 요구된 고장검출율을 얻기 위하여 하나 이상의 방법으로 테스트하는 것이 필요로 된다. 이러한 이유로 일반적으로 하나의 코어는 다중 테스팅이 요구된다. SoC 개발 초기에는 단일 외부 테스트와 하나의 BIST 엔진이 모든 코어를 테스트하는 방법으로 시스템 모델링이 되었지만 현재는 시스템의 복잡도 증가와 더불어서 하나의 코어 내에서도 다수 개의 테스트 요소를 사용할 가능성이 높아지고 있다. 예를 들어, 만약 코어가 외부 테스트와 BIST를 모두 수행하여야만 한다면, 하나의 코어를 서로 다른 두 개의 프로세서가 공유하는 것이므로 서로의 수행시간은 개별화되어야 한다. 즉 총 수행시간은 외부테스트 수행시간과 BIST 수행시간의 합으로 나타난다. 또한 여러 개의 각 코어들이 같은 테스트 생성기나 응답검사기를 공유할 가능성도 있으며, 각 자원들이 동일 버스라인을 사용할 수 있기 때문에 이러한 것들로 발생하는 자원의 충돌을 제거하기 위한 테스트가 반드시 이루어져야만 한다.
둘째로, 안정된 회로동작을 위하여 전력 소비를 반드시 고려하여야만 한다. SoC는 테스트 모드에서 일반 동작 모드일 경우에 사용되어지는 전력보다 월등히 많은 전력이 쓰일 수 있다. 왜냐하면, 일반 동작 모드에서는 병렬로 사용되지 않았던 코어 모듈들이 최소화된 테스트 벡터를 사용하는 테스트 모드에서는 동시에 사용될 수 있기 때문이다. 또한, 코어 내의 스위칭 동작이 일반 모드에서보다 테스트 모드일 경우 더욱 많아 질 수도 있고, 그 결과로 내부의 코어나 자원의 일부가 과다 전력 소모로 인하여 시스템에 손상을 줄 수 있기 때문이다.
도 1a는 종래의 테스트 자원의 2차원적 표현을 나타낸 그래프도이고, 도 1b는 종래의 테스트 스케줄링의 2차원적 표현을 나타낸 그래프도이다.
도 1a에서의 x축은 테스트의 수행 시간, y축은 테스트의 수행시간 중 최대 전력 사용량을 의미하며, 도 1b에서의 x축은 총 테스트 수행시간의 합, 그리고 y축은 SoC 최대 전력사용 가능치를 나타내는 2차원적 다중배열 형태로 나타낸다.
1-3. 종래의 테스트 스케줄링 방법
시스템 온 칩(SoC)의 테스트 스케줄링을 위한 여러 가지 방법들이 제안되어왔다. 이들은 크게 병렬처리 능력을 높이는 방법이거나, 코어 공급자가 제공하는 테스트 집합들 중에서 효율적인 테스트를 선택하는 방법 또는 효율적인 자원 분배를 수행하여 테스트 충돌을 제거하는 등으로 구분할 수 있다. 그러나 이들 대부분의 테스트 스케줄링 알고리즘들은 한정된 조건내에서의 수행 가능성만을 제시하고 있어 전력을 고려하거나 자원을 균등하게 분할하는 제한사항을 추가할 경우 도 1b에서 볼 수 있는 스케줄링된 테스트 자원 사이에 발생하는 EDT(Explicit Dead Time)와 스케줄링의 시작과 종료 부분에 IDT(Implicit Dead Time)가 많이 발생하는 단점을 갖는다.
기존에 제시되었던 테스트를 스케줄링 알고리즘으로서 스케줄링의 기본 구성과 MILP(Mixed-Integer Programming)를 사용하여 테스트 스케줄링을 생성하는 방법은 초기 SoC를 위한 테스트 스케줄링의 개념 정립 및 병렬처리수행의 가능성을 제시한 알고리즘이다. 그러나 이 알고리즘은 테스트 모드에서 각 코어의 실질적인 전력 소비량을 고려하지 않았으며, 특히 코어와 자원의 수가 증가하면 할수록 코어들의 테스트 시작시간을 찾는 계산량과 테스트의 위치선정에 필요한 계산량이 지수적으로 증가하는 단점을 가지고 있다. 둘째로, Chakrabarty의 논문에서는 MILP를 응용한 3가지(Precedence-Based, Preemptive, and Power-Constrained Scheduling) 테스트 스케줄링 방법을 제시하였는데 이러한 방법들은 코어 공급자들과의 긴밀한 협조가 이루어 져야만 좋은 효과를 발휘할 수 있고, 각 테스트의 병렬성을 충분히 활용하지 못한 단점을 갖고 있다. 셋째로, 동적 분할 한정전력 동시 테스트 집합(Dynamically Partition Power-Constrained Test Sets) 알고리즘을 이용한 스케줄링 방법은 전력 소비량이 고려된 나무 성장 그래프를 이용하여 충돌하지 않는 코어들을 찾아 다중 배치가 가능하도록 하는 테스트 스케줄링 방법인데 코어 내에서 존재하는 개별적인 자원의 세부적인 충돌을 고려하지 않아서 최악의 경우 다른 제안들보다 총 테스트 시간이 더 증가될 수 있다는 문제점을 안고 있다. 또한 Zhao D. 논문은 자원의 사용을 기준으로 한 테스트 스케줄링 방법으로서 EDT와 IDT를 제거하는 장점이 있지만 전력소비량을 전혀 고려하고 있지 않다. 이 밖에도 신경망을 이용한 테스트 스케줄링 방식과 TAM 구조를 이용한 테스트 스케줄링 알고리즘등이 있다.
2. 테스트 스케줄링을 위한 SoC 모델링
도 2는 일반적인 시스템 온 칩(SoC)의 구성을 나타낸 블록도이다.
상기 도 2에 도시된 바와 같이, 상기 SoC(10)는 제 1 및 제 2 기능 블록(B1)(B2)을 구비한 제 1 디지털 코어(1)와, 제 1 기능 블록(B1)을 구비한 제 2 디지털 코어(2)와, 제 1 및 제 2 기능 블록(B1)(B2)을 구비한 제 1 아날로그 코어(3)와, 제 1 기능 블록(B1)과 제 5 테스트 자원(R5)을 구비한 제 2 아날로그 코어(4)와, 제 1 내지 제 3 기능 블록(B1-B3)을 구비한 D-UDL(Digital User Defined Logic)(5)과, 제 1 기능 블록(B1)을 구비한 A-UDL(Analog User Defined Logic)(6)과, 제 1 내지 제 3 기능 블록(B1-B3)을 구비한 혼합 신호 코어(Mixed-Signal Core)(7)와, 다수개의 테스트 자원(R1-R9)을 포함한다.
상기 SoC(10)는 도 2에 도시된 바와 같이, 디지털 코어뿐만 아니라 아날로그 코어도 포함하고 있으며 또한 두 가지의 성격을 모두다 수용하는 복합 신호 코어그리고 사용자의 의도에 따라서 설계되는 UDL 등이 포함된 회로를 고려한다. SoC 내의 코어들은 그들의 기능에 의하여 여러 가지의 다양한 테스트 방법들을 필요로 한다. 또한 일정한 고장검출율에 도달하기 위하여 각 코어들은 서로 다른 자원들이 사용되어지는 다중 테스트 집합을 가질 수 있다. 다음절에서는 일반적인 테스트의 기본 요소들을 정의하고 코어의 다중 사용과 자원의 공유로 발생하는 자원의 충돌과 병렬처리 가능 집합 선택 방법 및 최고 전력 사용량 한정에 따른 테스트 배열의 변화 등을 정의하고 자원의 충돌을 제거하면서 동시에 전력까지 고려할 수 있는 확장 나무 성장 그래프에 관하여 기술한다.
2-1. 테스트 요소의 정의
설계하고자하는 SoC가 n개의 코어들을 포함하고 테스팅이 가능한 m개의 자원을 가지고 있다고 가정하자. 각 테스트 집합들은 테스트 벡터의 집합들을 포함하고 한번에 하나의 코어를 위하여 사용될 수 있는 하나의 자원을 필요로 한다. 일정한 고장검출율에 도달하기 위하여 하나의 코어는 여러 가지 방법의 테스트 방식을 필요로 한다. 만약 코어들이 동시에 병렬로 수행된다면 같은 자원을 동시에 사용하는 코어들간에 충돌이 발생한다. 즉 같은 테스트 방식의 자원이 동시에 두 개 이상의 코어에서 사용될 수 없다. 또한 모델 내의 테스트 수행 시 발생하는 전력 소비는 어떠한 시간에서도 반드시 최대 허용 전력을 초과할 수는 없다.
테스트 스케줄링을 위한 SoC의 모델링을 위하여 필요한 용어들을 다음과 같이 정의한다.
(정의 1) SoC 내 코어는 C로 표시하며 C={C1,C2,...,Cn}로 나타내고, 테스팅 가능한 전체의 자원은 R로 표시하며 R={R1,R2,...,Rm}로 나타낸다. 여기서 C는 유한개의 원소를 가지는 집합이고, n은 코어 모듈의 수를 의미한다. 코어의 수를 Nc로 나타내고 Nc=n이다. R은 유한개의 원소를 가지는 집합이고 m은 자원의 수를 의미한다. 코어 내에서 구성되는 테스트 자원은 크게 외부테스트(ET)들과 BIST 엔진(BT)들로 구성된다. 각 코어는 외부 테스트 혹은 BIST 하나의 프로세서만으로도 테스트가 가능하고, 두 테스트 프로세서를 동시로 또는 3개 이상의 테스트 프로세서들로 구성되어 질 수 있다. 그러므로 코어 C={ET1,ET2,...,ETi,BT1,BT2,...,BTj}로 표현된다. 여기서, i는 외부 테스트 자원의 수, j는 BIST 엔진 자원의 수이다. 그리고 코어 내 자원의 수 NRC=i+j이다. 코어의 테스트 방식을 기준으로 하는 대신 코어가 몇 가지로 테스트가 되어야 하는지를 기준으로 자원을 구성하면 코어 Cn내 자원 Rc를 Rc=RCn1,RCn2,...,RCnNRC로 표현할 수 있다.
(정의 2) 각 코어는 테스트 수행 시간을 가진다. 테스트 수행시간은 테스트의 길이와 같은 차원이며, 시작시간과 종료시간으로 구성된다. 코어 Cn에서 테스트 수행 시간을 Tn이라 하면 Tn= Tnf-Tns, 여기서 Tnf는 n 코어의 테스트 종료 시간, 그리고 Tns는 테스트 시작시간을 의미한다. 또한 각 코어 Cn의 내부자원 RC도 각각의 테스트 수행시간 TRC={TRCn1,TRCn2,...,TRCnNRC}를 가진다. 이 때 코어의 테스트 수행시간 Tn은 TRC 집합들의 총 합이다. 즉 Tn= ∑TRCn이다.
(정의 3) 코어 Cn의 전력 사용량은 테스트를 수행하는 시간동안에 소비하는 전력의 최대치로 정의하고 PCn으로 표시한다. 각 코어 내부의 자원 Rc도 각각의 전력 최대치를 가지며 PRC={PRCn1,PRCn2,...,PRCnNRC}로 표한다. 이때 PCn은 PRC 집합의 전력소비량 중의 최대값을 의미한다. 즉 PCn=MAX(PRC)이다. 테스트에서 총 테스트 수행시간 OTT(Overall Test Time)은 테스트 동작의 시작시간인 0 시간(사이클; cycle)부터 마지막 테스트 작업이 종료될 때 x 시간까지의 기간으로 정의한다. 그리고 SoC에서 허용되는 최대 전력 사용량을 Pmax라 한다. Pmax는 설계 사양에 준하여 정하여지며 어떠한 시간대에서도 Pmax는 각 코어의 전력 사용량의 합보다 커야 한다. 즉, Pmax 〉∑PRC, anytime이다.
2-2. 테스트 자원 충돌 및 소비 전력의 제한
만약에 테스트를 수행할 경우 모든 코어 내부의 자원들이 서로 자원을 공유하지 않고 또한 전력 소비량이 영향을 미치지 않는다고 가정하면, 총 테스트의 수행시간은 자원들 중 가장 긴 테스트 시간이 된다. 그러나, 자원들은 서로 유기적으로 연결되어 있고 시스템의 안정을 위한 전력 소비량이 제한되어서, 자원의 충돌이 발생하고 그로 인한 총 테스트 시간을 증가하게 된다. 첫째로 동일 코어를 사용함으로써 발생할 수 있는 자원의 충돌을 고려하자.
(정의 4) 코어들 사이의 자원 중에서 두 개의 테스트 시간을 비교할 경우 하나의 테스트 시간 내에 다른 테스트의 시작시간이 위치되고 동일한 자원을 공유하고 있다면 그것을 자원의 충돌(RC)이라 하고 다음과 같이 표현된다.
Tsm-Tsm+α〈 0 and Tsm+α-Tfm〈 0 and Tfm-Tfm+α〈 0 , RC{m,m+α}=1
여기서, α는 임의의 상수로 α번째 자원을 의미한다. 그리고 RC 값이 1이면 m자원과 m+α자원은 충돌이고, 0이면 비충돌이다. 다시 말하여 RC 값이 1이면 같은 시간대에 배열되어서 사용되어 질 수 없다.
둘째로, 소비전력 초과로 발생하는 자원의 충돌을 고려 할 경우를 생각해본다. 첫 번째 충돌의 조건을 만족하는 즉, RC 값이 0인 자원들의 집합이 있다. 그리고 각 자원은 자원을 테스트함으로 인하여 발생하는 전력 소비량 Pm을 가진다.
(정의 5) 각 테스트 자원은 테스트 모드에서 발생하는 전력 소비량 Pm을 가지며 같은 시간 구역 내에서 집합 {Pm,Pm+1,...,Pm+k}으로 표현된다. 만약 전력 소비량 집합 원소들의 총합이 SoC의 총 전력소비량인 Pmax를 초과한다면 다음과 같이 나타난다.
Pmax〈 ∑Pm+i이면 RC{m,m+1,...,m+k}=1
여기서 RC 값이 1이면 테스트 전력 자원의 충동함을 의미한다. 즉, 주어진 자원의 집합을 모두 같은 시간대에 배치할 수는 없다.
2-3. 테스트 집합 선택 및 자원의 집단화(Grouping)
SoC 설계를 위하여 주어진 n 개의 코어와 m 개의 자원 그리고 각 자원의 테스트 시간 Tm과 전력 소비량 Pm을 아래 표 1과 같이 표한다.
자원/코어 C1 C2 ... Cn
R1 T11,P11 T21,P21 ... Tn1,Pn1
R2 T12,P12 T22,P22 ... Tn2,Pn2
... ... ... ... ...
Rm T1m,P1m T2m,P2m ... Tnm,Pnm
표 1에서 T21, P21은 두 번째 코어에서 R1 자원을 사용하는 테스트 시간과 전력소비량을 의미한다.
표 1에서 같은 행이나 열에 하나 이상의 값을 가지는 경우 그 자원들은 서로 충돌하는 자원을 뜻한다. 따라서 동일 행과 열에 속하지 않은 자원들은 서로 충돌하지 않는 자원들이므로 병렬 처리가 가능하다.
아래 표 2는 도 3과 같은 5개의 코어와 7개의 자원을 사용하는 SoC 예제를 표 1을 기준으로 하여 임의의 값을 대입한 것이다.
자원/코어 C1 C2 C3 C4 C5 코어수
R1 T11,P11(200,60) T21,P21(70,30) T41,P41(120,80) 3
R2 T12,P12(100,35) 1
R3 T23,P23(25,100) 1
R4 T24,P24(43,50) 1
R5 T35,P35(43,50) 1
R6 T46,P46(50,100) 1
R7 T47,P47(75,80) T57,P57(130,120) 2
자원수 2 3 1 3 1
(정의 6) 테스트 자원의 연결 관계 집합에서 충돌하는 자원을 제외하며 그 나머지 자원들로 테스트 집합을 구성하는 것을 테스트 자원의 집단화(grouping)라 한다.
상기 표 2에서 우선적인 선택 자원으로 T11이 선택되었다면 T21과 T41그리고 T12는 같은 코어 또는 동일한 테스트 방식으로 자원이 공유되어서 병렬 처리가 불가능하다. 그러나 그것들을 제외한 나머지는 병렬처리가 가능하다.
자원의 충돌 관계를 고려하여서 테스트 자원을 집단화한 후에는 주어지는 전력 최대값(Pmax)의 기준에 적합한지 확인하고 테스트를 선택한다. 만약 집단화된 테스트 집합 내에 있는 자원의 전력 사용량의 총 합이 전력 최대값(Pmax)보다 크다면 테스트 집합을 부분 집합으로 나눈다. 예를 들어서 p번째 그룹인 Gp={T11,T35,T57}은 서로 충돌이 없는 테스트 자원의 집단이다. 그러나 각각의 전력 소비량이{60,50,120}이어서 총 합은 230이다. 만약에 전력 최대값(Pmax)이 350 UP(Unit of Power)라면 Gp의 전력 소비량은 전력 최대값(Pmax)을 초과하는 값이다. 그러므로 Gp는 병렬처리 테스트 그룹으로 선택될 수 없다. 이럴 경우는 Gp를 Gp1=T11,T35, Gp2=T35,T57, Gp3=T57,T11의 부분 집합으로 나눈 후 각 전력사용량의 합을 비교하여 전력 최대값(Pmax)에 가장 근사한 값으로 선택한다. 여기서는 전력 최대값(Pmax)에 가장 근접하는 Gp3(320)을 선택한다.
2-4. 나무 성장 그래프(Tree Growing Graph)
자원의 충돌 여부와 병렬 처리가 가능한 자원들을 찾아내기 위하여 나무성장 그래프(TGG: tree growing graph)를 이용한다. 도 4는 표 2의 내용을 TGG로 나타낸 것이다. 최상위 레벨은 코어, 그리고 두 번째 레벨을 각 코어 내에 공유되어 있는 테스트 자원, 그리고 그 다음 레벨로부터는 각 자원이 공유하는 코어를 확인하기 위한 연결로 구성된다. 각 레벨을 연결하는 연결선은 자원의 사용을 의미하기 때문에 하나의 코어에 동시에 연결되어 있는 자원은 병렬 처리를 수행할 수 없고, 같은 레벨에 속하여 있는 자원들 역시도 병렬 처리가 불가능하다.
도 4의 TGG는 테스트 수행 때 소비되는 전력사용량을 고려하지 않은 것이다. 자원의 공유관계와 전력 사용량을 함께 고려한 나무 성장 그래프를 도 5에 나타내었고, 이것을 확장 나무 성장 그래프(Expanded TGG: ETGG)라 한다. 이것을 각 자원들의 테스트 시간과 전력 사용량을 나타내며 동시 사용 가능한 자원들의 연결선으로 표시한 것이다.
SoC의 설계는 일반적으로 서로 다른 코어(Core) 공급자들로부터 제공되는 성능이 보장된 IP(Intellectual Property) 블록들과 특별 기능을 수행하도록 시스템 설계자가 설계한 IP(UDL)가 하나의 칩에 구성된다. 시스템 개발 시 IP 코어를 사용함으로써 시스템 설계개발자가 설계 초기부터 전체 시스템을 완성할 때까지의 노력이 크게 줄어들고 생산에서 제품의 시장 출하까지 걸리는 시간(Time-to-Market)을 감소시킬 수 있다. 그러나, 시스템 온 칩(SoC) 시스템은 서로 다른 코어 공급자가 제공하는 IP 코어들이 하나의 칩에 가능함수의 블록으로 구성되는 것이므로 개별 코어의 테스트보다 다양하고 복잡한 테스트 기법을 요구하기 때문에 테스트가 어렵고 많은 설계 시간을 필요로 한다.
SoC내 각 IP 코어들은 기술력 보호를 위하여 제한된 정보만을 제공하기 때문에 시스템 개발자는 각 IP 코어의 함수적 논리 관계와 입출력 사양만을 알 수 있다. 그래서 비록 설계자가 짧은 시간 내에 SoC를 설계한다할 지라도 각 코어의 특성에 따른 복합된 테스트 수행이 반드시 요구된다. SoC 테스트에서는 일정한 고장검출율과 함께 수행시간과 소비전력의 최적화가 요구된다. SoC 설계에서 테스트 수행시간은 테스트 비용과 밀접한 관계를 가지므로 긴 수행시간은 제품 개발 및 생산비용의 증가를 유발한다.
테스트 수행시간의 감소를 위한 효과적인 방법으로서 테스트 벡터의 압축, 적절한 테스트 억세스 구조(TAM: Test Access Mechanism)의 설계 및 효과적인 시스템 레벨에서의 테스트 스케줄링 등이 필요하다.
이 가운데 테스트 스케줄링은 SoC 설계 자체에는 하드웨어적으로 부담을 주지 않으면서 테스트 수행 시간을 감소시켜 테스트 비용을 줄일 수 있는 효과적인방법이다. 테스트 스케줄링에서 고려해야할 사항으로는 첫째 모든 테스트는 SoC에서 공유되어 있는 TAM과 BIST(Built In Self Test)를 사용함으로써 일어나는 자원의 충돌 때문에 동시에 수행될 수 없다는 것이다. 예를 들어, 여러 개의 각 코어들은 같은 테스트 생성기와 응답검사기를 공유할 수도 있고, 또한 각 자원들도 같은 버스 라인을 사용할 수 있기 때문에 자원들의 충돌이 발생한다. 둘째로 테스트 동작의 안정된 운영 상태를 이루게 하기 위하여 테스트 모드에서의 전력 소비가 고려되어야만 한다. SoC는 테스트 모드에서 그것들이 일반모드일 경우에 쓰여지는 총 전력소비량보다 많은 전력을 소비할 수 있다. 왜냐하면 일반적으로는 병렬로 사용되지 않았던 코어들이 최소화된 테스트 벡터를 사용하는 시간동안 동시적으로 테스트 될 수 있기 때문이다. 그 결과 내부 코어가 과열되고 시스템의 손상으로 이어질 수 있다. 마지막으로 SoC의 각 코어들을 테스트할 때 일정한 고장검출율에 도달하도록 하기 위하여 하나 이상의 테스트 방법이 사용될 수 있다.
테스트 자원의 병렬 구조 속에서 테스트 배열을 합리적으로 배치하여 총 테스트 시간을 감소시키는 것이 테스트 스케줄링의 목표이다. 이러한 목표에 도달하기 위하여 여러 제안들이 제시되어 왔다. 예를 들어, 코어 벤더가 제공하는 테스트 집합에서 가장 적합한 테스트를 선택하는 방법, 자원을 효율적으로 배분하여 배열하는 방법 및 전력이 한정된 나무 성장(tree growing) 알고리즘을 이용하는 방법 등이 있다. 그러나 기존의 제안들은 규정되어 있는 몇 가지의 조건 내에서만 동작하도록 되어 있어서 반드시 고려하여야만 하는 전력소비량을 고려하면 계산량이 증가하고 총 테스트 수행시간이 최적화 되지 않는 단점이 있다. 그리고 전력소비량을 고려한 알고리즘들도 스케줄링 최소단위를 코어로 하기 때문에 코어 내부의 자원으로 스케줄링 하는 것보다 병렬처리 능력이 떨어져 많은 ITT(Idle Test Time)를 갖게된다.
본 발명의 목적은 상기 문제점을 해결하기 위하여 이루어진 것으로, 시스템 온 칩(SoC)을 위한 테스트 자원의 집단 중 전력·시간 곱의 크기가 높은 자원을 우선 순위로 배열하여 병렬 처리 능력을 향상시킨 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법을 제공하는데 있다.
도 1a는 종래의 테스트 자원의 2차원적 표현을 나타낸 그래프도
도 1b는 종래의 테스트 스케줄링의 2차원적 표현을 나타낸 그래프도
도 2는 종래의 일반적인 시스템 온 칩(SoC)의 구성을 나타낸 블록도
도 3은 5개 코어 7개 테스트 자원으로 구성된 SoC 시스템의 연결관계를 나타낸 구성도
도 4는 SoC 시스템의 나무 성장 그래프를 나타낸 도면
도 5는 SoC 시스템의 다른 나무 성장 그래프를 나타낸 도면
도 6a 내지 도 6d는 본 발명에 의한 SoC 시스템의 스케줄링 과정을 나타낸 그래프도
도 7은 본 발명에 의한 SoC 시스템의 DP-PCTS 알고리즘 시뮬레이션 결과를 나타낸 그래프도
도 8은 본 발명에 의한 벤치마크 회로의 확장 나무 성장 그래프도
상기 목적을 달성하기 위한 본 발명에 의한 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법은,
시스템 온 칩 내 테스트자원의 충돌을 조사하고 확장 나무 성장 그래프를 이용하여 자원의 선택 및 집단화를 이루어 병렬 처리 가능한 자원을 구성하는 단계;
상기 테스트 자원들의 각 시간구역별 전력·시간 곱의 비를 조사하는 단계; 및
상기 전력·시간 곱의 비가 높은 테스트 자원 그룹을 우선하여 배열하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 의한 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법은,
상기 확장 나무 성장 그래프를 이용하여 자원의 충돌(RC=0)인 자원을 그룹화하는 단계;
상기 테스트 자원의 전력·시간 곱의 크기(SUR) 및 전력소비량의 합(OPG)을 측정하는 단계;
상기 테스트 자원의 각 그룹(p)의 전력 소비량의 합(OPGP)이 최대 전력 소비량의 합(Pmax)보다 작으면 상기 OPGP를 Pmax값에 가장 근접한 우선 순위 그룹(PrGn)으로 선택하고, 상기 OPGP값이 상기 Pmax값보다 크면 OPGp= OPGp- 최소값(gi)으로 선택하는 단계; 및
상기 각 PrGn에 대하여 ┃Pmax- PrGn┃이 가장 작은 값을 정렬하여 PrG로 생성하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명에 의한 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법은,
상기 확장 나무 성장 그래프를 이용하여 생성된 상기 PrG를 선택하는 단계;
상기 PrG 내부 원소를 테스트가 긴 순서대로 정렬하는 단계;
상기 테스트 자원 중 미 배치된 데스트 자원에 대하여 상기 PrG 원소와 동일 레벨의 자원이 존재하면 동일 레벨의 자원을 선택하여 연속적으로 배치하고 시작과 종료시간을 업데이터하며 여분의 배치 공간 전력소비 가능량(RC)과 각 그룹 내에서 가장 작은 전력 소비량(Pnm)을 조사하는 단계;
상기 모든 테스트 자원에 대하여 각 구역별 종료시간(B)과 배치공간(SUGBσ)을 조사하여 RC=0이고 MSBσ+SUGBσ〈 Pmax이면 테스트를 배치하고 시작과 종료시간을 업데이트하고, 자원의 수가 2보다 크면 자원의 SUR을 비교 큰 값을 우선 배치하고 시작과 종료시간을 업데이트하는 단계; 및
상기 각 구역별 종료시간(B)의 최대값을 테스트 총 수행시간(OTT)에 대입하는 단계를 더 포함하는 것을 특징으로 한다.
이하, 본 발명에 의한 실시예는 첨부된 도면을 참조하여 더욱 상세하게 설명한다.
시스템 온 칩(SoC) 내 테스트자원의 충돌을 고려하고 확장 나무 성장 그래프를 이용하여 자원의 선택 및 집단화를 이루어 병렬 처리 가능한 자원을 구성하고 제한된 전력 사용량과 유사한 자원의 집합 중에서 전력, 시간 곱의 크기가 큰 테스트 집합을 우선 순위로 하여서 자원을 배치하는 새로운 테스트 스케줄링 알고리즘을 제안한다. 미 선택된 집합 중 병렬 처리가 가능하고 여분의 전력배치공간과 유사한 테스트를 우선 순위로 하여 자원을 재배치하고 각 자원의 수행시간을 수정하여 최적화된 테스트 스케줄링 결과를 얻는다.
3-1. 기본정의
시스템 S는 n개의 코어 Cn으로 구성되며 단일 코어는 다중 테스트 집합을 포함할 수 있다. 그리고 m개의 자원 Rm은 동일한 자원을 공유할 수 있으며 어떠한 시간대에도 자원의 전력 소비량의 합은 Pmax를 넘지 않는다고 가정한다. 시스템의 일반적 정의를 아래 알고리즘 1에서 나타내었다.
확장 나무 성장 그래프로 생성된 자원의 충돌이 없는 테스트의 그룹을 Gp(1≤Gp≤q)라 표한다. Gp는 한정된 집합이고 q는 집합의 수를 의미한다. RC값이 0인 집합내의 원소들은 각각 테스트 시간과 전력 소비량을 포함하며 전체의 전력소비량의 합을 OPG(Overall Power dissipation Group) 그리고 테스트 시간 중 가장 긴 테스트 시간을 LTG(Logiest Test time in Group)라 한다. 우선 순위를 그룹별로 비교하기 위하여 테스트 자원 및 그룹의 전력·시간 곱의 크기를 연산한다.
<테스트 스케줄링을 위한 SoC의 일반적 정의>
SoC S(core : n, Resource : m)
Core : C = {C1,C2,...,Cn}(코어의 수 : Nc=n)
Resource : R={R1,R2,...,Rm}(자원의 수 : m)
외부테스트 : ET, BIST engine : BT
Cn={ET1,ET2,...,ETi,BT1,BT2,...,BTj}
(i,j 그리고 NRC=i+j는 외부, BIST 그리고 총 자원의 수)
코어 Cn내 자원 Rc는 Rc={RCn1,RCn2,...,RCnNRC}
코어 Cn에서 테스트 수행 시간 Tn=Tnf-Tns
(Tnf는 n 코어의 테스트 종료 시각, Tns는 테스트 시작 시각)
Cn의 내부자원 Rc의 테스트 수행시간 :
TRC = {TRCn1,TRCn2,...,TRCnNRC}
Tn은 TRC 집합들의 총 합 : Tn=∑TRCn
Cn의 전력 사용량 : PCn
Cn의 내부자원 Rc의 전력 소비량 :
PRC = {PRCn1,PRCn2,...,PRCnNRC}
PCn은 PRC 집합의 전력소비량 중의 최고 값 : PCn=MAX(PRC)
총 테스트 수행시간 : OTT(Overall Test Time)
SoC에서 허용되는 최대 전력 사용량 : Pmax 〉∑PRC, anytime
(정의 7) 테스트 자원의 전력·시간 곱의 크기를 SUR이라 표하고 SURnm=Tnm×Pnm이다. 테스트 그룹의 공간 이용률은 그룹내의 테스트 자원의 공간 이용률의 총 합을 의미하며, SUGp=∑SURnm으로 나타낸다.
3-2. 전력사용량을 고려한 우선 순위 테스트 집합 생성
시스템 S에서 주어지는 자원들을 조사하고 2-4절에서 보인 전력 사용량이 고려된 확장 나무성장 그래프로부터 각 자원의 요소들에 대한 테스트 자원의 행렬표현을 얻은 후 비 충돌 테스트 집합인 Gp를 생성한다. Gp를 생성하여 배치하는 방법은 다음과 같다.
첫째로, 표 2의 내용을 표현한 도 5와 같은 ETGG를 이용하여 같은 레벨과 같은 코어를 공유하지 않는 자원의 연결선으로 연결되어 있는 테스트 자원들 순서대로 집단화한다. 이때 단독 코어에 단독 자원으로 사용되어지는 열(queue)은 맨 좌측으로 위치를 변동한다. 처음에 위치하는 테스트부터 연결선을 따라가면서 그룹화하며 동일한 레벨에 1회 이상 접근할 수 없다. 이러한 방법으로 조사된 Gp는 구성될 수 있는 그룹 중 가장 많은 테스트 수를 포함하는 그룹이다.
다음으로 각 자원의 SUR 및 그룹의 OPG를 계산한다. 만약에 조사된 Gp에서 OPGP〉Pmax이면 우선 순위에서 제외되고 그렇지 않으면 우선 순위로 선택된다. 반면에 조사된 Gp들 중에서 OPGp〈Pmax인 그룹이 2개 이상일 경우는 그들 중에서 Pmax에 가장 근접하는 값으로 선택된다. 모든 그룹의 OPG가 Pmax를 초과할 경우는 각 그룹 내에서 가장 작은 Pnm값을 하나씩 제거해 나가면서 Pmax값에 가장 근접하는 우선 순위 그룹 PrG를 선택한다. 만약 동일한 OPG값을 가지는 그룹이 하나 이상일 경우는 그것들의 SUG 값을 계산하여서 큰 값을 갖는 OPG를 선택한다. 이상의 PrG 생성 알고리즘을 다음과 같이 나타낸다.
<PrG 생성 알고리즘>
{
1. ETGG를 이용하여 자원의 충돌(RC=0)인 자원을 그룹화 함;
2. SUR 및 OPG를 측정함;
3. For 각 그룹 p에 대하여
4. IF OPGP〈 Pmax, then
OPGP를 PrGn으로 선택;
5. IF OPGP〉Pmax, then
OPGp= OPGp- Minimum gi;
6. For 각 PrGn에 대하여
Sort(┃Pmax- PrGn┃이 가장 작은 값)
PrG 생성;
}
3-3. 휴리스틱 테스트 스케줄링 알로리듬
최우선그룹 PrG는 PrG = {g1,g2,...,gr}로 구성되고, 여기서 r는 테스트 자원의 수이다. 또한 g는 Tnm과 Pnm값을 가지는 단일화된 변수를 의미한다. 이어서 집합 내 g의 값들 중 테스트 시간의 값을 서로 비교해서 가장 긴 테스트 순으로 Y축의 0에서부터 테스트를 배치한다. 그 이유는 테스트 전력 사용량은 누적되는 값이기 때문에 테스트 자원의 위치는 크게 중요하지 않지만 여기서는 알고리즘 중에서 남아 있는 전력사용량의 계산을 용이하게 하기 위하여 테스트 시간이 가장 긴 테스트 자원을 우선으로 배치한다.
상기 표 2를 대상으로 하여 알고리즘 2와 같은 알고리즘으로 PrG를 선택하면 PrG = {T57,T41,T12,T24,T35}이고 도 6a와 같이 배치된다.
PrG를 도 6a와 같이 배치할 경우 각 g의 테스트 시작 시각은 모두 0(zero)이고, 각 g의 종료 시각은 테스트의 수행시간 즉 Tmn의 값이다. PrG 배치 후 g1의 시작 시각은 0, 종료 시각을 ε이라 가정하자. PrG 배치 후 그 다음으로 선택되어질 테스트의 자원은 g1과 동일 레벨에 속한 다른 테스트 자원이다. 만약 g1과 동일한 레벨에서 테스트 자원의 테스트 수행시간 Tn'm'가 검출되면 g1과 연속적으로 테스트를 재치하고 그 테스트의 시작 시각을 ε, 종료 시각을 ε+Tn'm'로 변환한다. 만약에 동일한 레벨에서의 테스트 자원의 수가 3 이상일 경우는 각 자원의 SUR 값이 큰 순서로 배치하며, 반복적으로 이전의 테스트의 종료시각을 시작 시각으로 그리고 이전의 테스트 종료시각과 테스트 수행시간의 합을 종료 시각으로 갱신한다. 상기 표 2에서와 같이 g1인 T57은 동일 레벨에 T47을 가지므로 도 6b와 같이 T47을 연속적으로 배치하며, T47의 시작 시간은 T57의 종료 시각인 130, 그리고 종료시각은 130+75=205으로 변화한다.
(정의 8) 테스트 시간 구역은 테스트의 시작 시간인 x좌표의 영점(zero)부터 배치된 자원의 종료시각까지를 의미하며 B로 표시하고 집합인 B={B0,B1,...,Ba-1}로 나타낸다.
자원의 효율적인 배치를 위하여 각 시간구역별 전력·시간 곱의 크기를 조사한다. 정의 8에서 a는 배치된 자원의 수이고, 원소 중 종료시각이 작은 순으로 배열된다. 일반적으로 B0시간대에서는 자원의 전력의 합인 OPG가 Pmax와 유사함으로 고려 대상에 들어가지 않고 B1시간대부터 여분의 배치 공간 전력 소비 가능량(MS)을 조사하고 동시에 나머지 선택되지 않은 자원들 중에서 B1구역에서의 병렬 처리가능성을 조사한다.
만약 일치하는 자원을 찾을 수 없다면 구역을 B2로 변화하여 동일한 작업을 수행한다. 그러나 충돌이 없는 테스트 자원을 찾을 수 있다면, 자원을 선택하고 임의의 Bσ구역에서 MSBσ+ SUGBσ〈 Pmax 이면 자원을 선택한다.
만약 선택되는 자원이 2개 이상일 경우는 각 자원의 SUR을 비교하여 큰 값을 우선 배치한다. 이때 시작 시각은 Bσ이고 종료 시각은 Bσ와 Tn'm'의 합이다. 새롭게 추가되는 종료 시각을 B 집합에 추가한다. 이러한 일련의 과정을 도 6c와 같이 모든 테스트의 집합이 선택되어서 배치될 때까지 반복적으로 수행한다. 표 2에서 나타낸 시스템 S는 도 6과 같은 테스트 스케줄링 결과를 얻는다. 여기서 테스트 총 수행시간인 OTT는 B집합에서 가장 큰 값이다. 위와 같은 테스트 스케줄링 알고리즘은 다음과 같다.
<테스트 스케줄링 알고리즘>
{
1. ETGG를 이용하여 생성된 PrG를 선택;
2. Sort(PrG 내부 원소를 테스트가 긴 순서대로);
3. For 미 배치 테스트 자원에 대하여
4. IF PrG 원소와 동일 레벨의 자원이 존재, then
동일 레벨 자원 선택 연속적으로 배치;
시작과 종료시간 Update;
Else
RC, Pnm조사;
5. For 모든 자원에 대하여
각 구역별 종료시간 B와 배치공간 SUGBσ조사;
6. IF RC=0 and MSBσ+ SUGBσ〈 Pmax , then
테스트를 배치하고 시작과 종료시간 Update;
7. IF 자원의 수 〉2, then
자원의 SUR을 비교 큰 값을 우선 배치;
시작과 종료시간 Update;
8. B 집합의 최대값을 OTT에 대입
}
3-4. 실험 결과
제안한 휴리스틱 테스트 스케줄링 알고리즘을 비쥬얼(Visual) C++로 구현하여 시뮬레이션하고 기존에 제시된 스케줄링 알고리즘과 비교 검토한다. 시뮬레이션을 위해서 ITC'02(IEEE International Test Conference)에서 지정한 SoC 테스트 벤치마크(Test Benchmarks) 자료를 사용한다. 제안한 알고리즘과 효율성을 비교하기 위한 기존의 스케줄링 방법으로 전력 소비량이 고려된 DP-PCTS 알고리즘을 사용한다. 기존 논문에서는 SoC의 총 소비전력을 고려하였고 테스팅의 최소단위로 코어를사용한다.
알고리즘의 동작을 설명하기 위하여 SoC S를 대상으로 DP-PCTS 방법을 적용하여 스케줄링한 결과 총 테스트 시간은 도 7과 같이 683 UT(Units of Time)을 얻을 수 있었다. 제안한 휴리스틱 테스트 스케줄링 알고리즘으로 시뮬레이션 한 결과를 도 7에서 보였다. 우선 순위 병렬 처리 가능 그룹을 배치한 후에 충돌하는 테스트 자원을 우선하여 배치함으로써 테스트 자원들 사이의 무위 테스트 시간의 발생을 최소화하여 총 테스트 시간 390UT를 얻었다. 두 가지의 알고리즘으로 테스트 스케줄링한 결과 제안된 알고리즘이 293 UT(42.9%)감소됨을 확인할 수 있다.
전력 소비량을 고려한 기존에 알고리즘에서는 외부테스트와 BIST 엔진이 수행될 경우 발생하는 각 전력 소비량의 최고 값을 코어의 전력 사용량으로 결정한다. 이 결과 발생하지 않는 전력량이 실질적인 전력 사용량 이상으로 부가되기 때문에 테스트 시간에 따른 병렬 처리 능력을 제한하였다. 그러나 제안한 전력소비량을 고려한 테스트 스케줄링 알고리즘에서는 테스트 자원을 테스팅의 최소 단위로 사용함으로써 실질적인 전력소비량 이상으로 부가되는 전력 사용량을 제거할 수 있고 제한된 총 전력소비 내에서 테스트 자원의 병렬 처리 능력을 향상시킨다. 테스트 자원의 병렬 처리 능력의 향상은 총 테스트 수행 시간의 최소화로 이어진다. 또한 확장 나무성장 그래프(ETGG)를 이용하여 테스트 수행시간의 증가를 줄이기 위한 방법은 전력·시간 곱의 비가 높은 자원을 우선하여서 배열함으로 최적화된 테스트 수행시간을 얻을 수 있다.
제안된 알고리즘을 ITC'02 SoC 테스트 벤치마크(Test Benchmarks)에서 구현되어 있는 회로 중 전력사용량이 규정되어 있는 h593.SoC 회로를 사용하여 실험하였다. 아래 표 3은 h593 회로의 테스트 정보를 나타낸다. h593 회로는 총 9개의 모듈로 구성되어 있으며 그중 모듈 0은 SoC의 외형 입출력만을 나타내는 것이기 때문에 테스트가 수행되지는 않는다. 그러므로 시스템 내부의 IP 코어는 총 8개이다.
모듈 번호 !/O 번호 스캔엘러먼트 스캔패턴 스캔사이클 익스터널테스트전력 BIST사이클 BIST전력
0 12/41 - - - - - -
1 112/152 500 341 14615 388 341 191
2 68/89 416 9 - - 359 140
3 9/17 49 39 239 267 - -
4 88/67 109 49 549 61 341/220 202/178
5 19/13 140 110 - - 1162 1600
6 15/11 200 182 3293 6200 2730 2873
7 80/32 80 65 - - 527 270
8 35/69 258 305 7037 4298 341 367
총 전력소비량은 7300 UP(Unit of Power)로 한다. IP코어 1,3,4,6과 8은 공통 외부 테스트를 공유한다. 그리고 코어 2,5와 7은 BIST를 단독으로 사용한다. 또한 코어 1,4와 8은 공통 BIST 엔진을 공유하며 코어 4는 이것 이외에 또 다른 BIST 엔진을 하나 더 포함하고 있다. 나머지 코어 2,5,6과 8은 개별된 BIST 엔진을 갖는다.
주어진 표 3을 고려한 테스트 자원의 행렬 표현을 표 4에서 나타낸다.
코어자원 C1 C2 C3 C4 C5 C6 C7 C8 코어수
R1 T11,P11(1461,388) T31,P31(239,267) T41,P41(569,61) T61,P61(3293,6200) T81,P61(737,4298) 5
R2 T12,P12(341,191) T42,P42(341,202) T82,P82(341,3670) 3
R3 T23,P23(359,160) 1
R4 T44,P44(220,178) 1
R5 T55,P55(1162,1600) 1
R6 T66,P66(2730,2873) 1
R7 T77,P77(527,270) 1
자원수 2 1 1 3 1 2 1 2
표 4의 벤치마크 정보를 기초로 제안한 알고리즘을 수행한 결과 도 8과 같은 ETGG를 얻고, 표 5와 같은 테스트 자원의 시작 시각과 종료 시각을 얻는다. 이 결과를 DP-PCTS 알고리즘과 비교하면 총 테스트 시간이 10292에서 6592으로 35.95% 감소됨으로 제안한 알고리즘의 종래 방식에 비해 보다 효율적임을 알 수 있다.
테스트 자원 제안된 알고리즘 이용 DP-PCTS 알고리즘 이용
시작시각 종료시각 시작시각 종료시각
T11,P11 0 1461 1098 2559
T12,P12 1461 1802 2559 2900
T23,P23 0 359 0 359
T31,P31 1461 1700 2900 3139
T41,P41 6023 6592 3139 3708
T42,P42 341 700 3708 4049
T44,P44 0 220 4049 4269
T55,P55 341 1503 0 1162
T61,P61 2730 6023 4269 7562
T66,P66 0 2730 7562 10292
T77,P77 341 883 0 527
T81,P81 1802 2539 0 737
T82,P82 0 341 737 1098
테스트수행 시간 0 6592 0 10292
아울러 본 발명의 바람직한 실시예들은 예시의 목적을 위해 개시된 것이며, 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가등이 가능할 것이며, 이러한 수정 변경등은 이하의 특허청구범위에 속하는 것으로 보아야 할 것이다.
이상에서 설명한 바와 같이, 본 발명에 의한 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법은 내장 코어 방식의 SoC에서 최대허용 소비전력을 고려한 휴리스틱 테스트 스케줄링 알고리즘을 제안하였다. SoC 내 테스트자원의 충돌을 고려하고 테스트 자원들의 전력·시간 곱의 비가 높은 테스트 자원그룹을 우선하여 배열하는 확장 나무 성장 그래프를 이용하여 자원의 선택 및 집단화에 의해 병렬 처리 기능을 높였다. 허용 전력 소비량과 제한된 전력 사용량과의 차가 최소가 되는 그룹을우선 선택하고 그룹 내 테스트 자원의 시작시각이 일치되도록 배치함으로써 무위 테스트 시간을 최소화하였다. 선택되지 않은 테스트 자원들은 앞서 배치된 테스트 자원들과의 충돌이 없는 자원들과 충돌이 있는 자원들로 분리하고 충돌이 발생하는 테스트 자원을 우선 배열함으로써, 총 테스트 시간을 최소화하고 최적화된 테스트 스케줄링 결과를 얻었다. 벤치마크 회로를 이용한 실험을 통하여 제안한 휴리스틱 스케줄링 알고리즘의 효율성을 보였다.
SoC에서 주어지는 테스트 자원들의 테스트 순서를 변화하여 총 테스트 운영시간이 최소화되도록 자원들을 배치하여주는 테스트 스케줄링을 시스템 레벨에서 하드웨어의 연결관계 및 수행능력의 향상을 가질 수 있는 DET(Design for Testability)에 적용함으로써 스케줄링 알고리즘으로 해결할 수 없는 테스트 자원들을 하드웨어적으로 수정하여 SoC의 총 테스트 시간의 감소와 SoC 회로의 성능 향상을 기대할 수 있을 것이다. 또한, 지속적인 테스트 스케줄링 알고리즘의 개발에 따라 그것들의 수행 검증을 위한 다양한 벤치마크 회로 설계가 이루어질 것이고, 다양한 벤치마크 회로를 통하여 검증된 최적화된 테스트 스케줄링 결과는 칩 내에서 스케줄링을 수행하는 테스트 컨트롤러의 성능향상 및 개발 가속화에 기여할 수 있을 것이다.
향후 연구 과제로는 제안된 알고리즘들을 효과적으로 검증할 수 있는 벤치마크 회로의 개발과 효과적인 테스트 스케줄링이 생성된 이후에 자동적으로 범용 테스트 컨트롤러 IP를 SoC의 코어로 사용 가능하도록 시스템 레벨의 VHDL 코드로 생성할 수 있는 CAD의 개발 또는 테스트의 시가과 전력 소비량 그리고 TAM을 동시에고려하여 SoC 개발자가 코어제공자에게 시스템의 부분적인 수정을 제안할 수 있고 코어 제공자가 SoC 개발자에게 효과적인 테스트 방식을 제시할 수 있도록 상호 정보교환이 가능한 스케줄링의 표준화 등이 있다.

Claims (3)

  1. 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법에 있어서,
    시스템 온 칩 내 테스트자원의 충돌을 조사하고 확장 나무 성장 그래프를 이용하여 자원의 선택 및 집단화를 이루어 병렬 처리 가능한 자원을 구성하는 단계;
    상기 테스트 자원들의 각 시간구역별 전력·시간 곱의 비를 조사하는 단계; 및
    상기 전력·시간 곱의 비가 높은 테스트 자원 그룹을 우선하여 배열하는 단계를 포함하는 것을 특징으로 하는 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법.
  2. 제 1 항에 있어서,
    상기 확장 나무 성장 그래프를 이용하여 자원의 충돌(RC=0)인 자원을 그룹화하는 단계;
    상기 테스트 자원의 전력·시간 곱의 크기(SUR) 및 전력소비량의 합(OPG)을 측정하는 단계;
    상기 테스트 자원의 각 그룹(p)의 전력 소비량의 합(OPGP)이 최대 전력 소비량의 합(Pmax)보다 작으면 상기 OPGP를 Pmax값에 가장 근접한 우선 순위 그룹(PrGn)으로 선택하고, 상기 OPGP값이 상기 Pmax값보다 크면 OPGp= OPGp- 최소값(gi)으로 선택하는 단계; 및
    상기 각 PrGn에 대하여 ┃Pmax- PrGn┃이 가장 작은 값을 정렬하여 PrG로 생성하는 단계를 더 포함하는 것을 특징으로 하는 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 확장 나무 성장 그래프를 이용하여 생성된 상기 PrG를 선택하는 단계;
    상기 PrG 내부 원소를 테스트가 긴 순서대로 정렬하는 단계;
    상기 테스트 자원 중 미 배치된 데스트 자원에 대하여 상기 PrG 원소와 동일 레벨의 자원이 존재하면 동일 레벨의 자원을 선택하여 연속적으로 배치하고 시작과 종료시간을 업데이터하며 여분의 배치 공간 전력소비 가능량(RC)과 각 그룹 내에서 가장 작은 전력 소비량(Pnm)을 조사하는 단계;
    상기 모든 테스트 자원에 대하여 각 구역별 종료시간(B)과 배치공간(SUGBσ)을 조사하여 RC=0이고 MSBσ+SUGBσ〈 Pmax이면 테스트를 배치하고 시작과 종료시간을 업데이트하고, 자원의 수가 2보다 크면 자원의 SUR을 비교 큰 값을 우선 배치하고 시작과 종료시간을 업데이트하는 단계; 및
    상기 각 구역별 종료시간(B)의 최대값을 테스트 총 수행시간(OTT)에 대입하는 단계를 더 포함하는 것을 특징으로 하는 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법.
KR10-2003-0038778A 2003-06-16 2003-06-16 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법에 대한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 KR100528137B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2003-0038778A KR100528137B1 (ko) 2003-06-16 2003-06-16 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법에 대한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0038778A KR100528137B1 (ko) 2003-06-16 2003-06-16 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법에 대한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체

Publications (2)

Publication Number Publication Date
KR20040108037A true KR20040108037A (ko) 2004-12-23
KR100528137B1 KR100528137B1 (ko) 2005-11-15

Family

ID=37382034

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0038778A KR100528137B1 (ko) 2003-06-16 2003-06-16 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법에 대한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체

Country Status (1)

Country Link
KR (1) KR100528137B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100674933B1 (ko) * 2005-01-06 2007-01-26 삼성전자주식회사 온 칩 버스(On Chip Bus)에서 최적화된코어-타일-스위치(core-tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체
CN109901050A (zh) * 2019-02-25 2019-06-18 哈尔滨师范大学 一种三维系统芯片测试资源优化方法及系统
CN112099929A (zh) * 2020-09-07 2020-12-18 中电科仪器仪表有限公司 一种适用于射频芯片并行测试的测试资源调度管理方法
CN112597009A (zh) * 2020-12-15 2021-04-02 北京时代民芯科技有限公司 一种基于覆盖率排序的FPGA内嵌PCIExpressIP核量产测试优化方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102664020B1 (ko) * 2021-10-28 2024-05-08 연세대학교 산학협력단 분할 스케줄링을 이용한 테스트 시간 감소 방법 및 장치

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100674933B1 (ko) * 2005-01-06 2007-01-26 삼성전자주식회사 온 칩 버스(On Chip Bus)에서 최적화된코어-타일-스위치(core-tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체
CN109901050A (zh) * 2019-02-25 2019-06-18 哈尔滨师范大学 一种三维系统芯片测试资源优化方法及系统
CN112099929A (zh) * 2020-09-07 2020-12-18 中电科仪器仪表有限公司 一种适用于射频芯片并行测试的测试资源调度管理方法
CN112597009A (zh) * 2020-12-15 2021-04-02 北京时代民芯科技有限公司 一种基于覆盖率排序的FPGA内嵌PCIExpressIP核量产测试优化方法
CN112597009B (zh) * 2020-12-15 2024-04-02 北京时代民芯科技有限公司 一种基于覆盖率排序的FPGA内嵌PCIExpressIP核量产测试优化方法

Also Published As

Publication number Publication date
KR100528137B1 (ko) 2005-11-15

Similar Documents

Publication Publication Date Title
Iyengar et al. On using rectangle packing for SOC wrapper/TAM co-optimization
Goel et al. SOC test architecture design for efficient utilization of test bandwidth
Zou et al. SOC test scheduling using simulated annealing
TWI431497B (zh) 用於序列胞元的近似配置之方法和裝置
US7146300B2 (en) Method of co-simulating a digital circuit
US8245173B2 (en) Scheduling for parallel processing of regionally-constrained placement problem
Ghribi et al. R-codesign: Codesign methodology for real-time reconfigurable embedded systems under energy constraints
Koranne et al. A novel reconfigurable wrapper for testing of embedded core-based SOCs and its associated scheduling algorithm
Majzoub et al. Energy optimization for many-core platforms: communication and PVT aware voltage-island formation and voltage selection algorithm
US20030163297A1 (en) Logic verification in large systems
Lari et al. Hierarchical power management for adaptive tightly-coupled processor arrays
KR100528137B1 (ko) 코어 기반 시스템 온 칩의 테스트 스케쥴링 방법에 대한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
Gonsiorowski et al. Modeling large scale circuits using massively parallel discrete-event simulation
Lai et al. GPU-based hybrid parallel logic simulation for scan patterns
Fanni et al. Hardware design methodology using lightweight dataflow and its integration with low power techniques
Iyengar et al. Design and optimization of multi-level TAM architectures for hierarchical SOCs
Zhao et al. A generic resource distribution and test scheduling scheme for embedded core-based SoCs
US10810341B1 (en) Method and system for making pin-to-pin signal connections
Vartziotis et al. Test-access-mechanism optimization for multi-Vdd SoCs
US7673206B2 (en) Method and system for routing scan chains in an array of processor resources
Ravi et al. Test synthesis of systems-on-a-chip
Huang et al. Constraint Driven pin mapping for concurrent SOC testing
Vartziotis et al. A Branch-&-Bound Test-Access-Mechanism Optimization Method for Multi-$ V_ {\mathrm {dd}} $ SoCs
Hussin et al. Core-based testing of multiprocessor system-on-chips utilizing hierarchical functional buses
US6650139B1 (en) Modular collection of spare gates for use in hierarchical integrated circuit design process

Legal Events

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

Payment date: 20121031

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131025

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee