KR101383225B1 - 하나 이상의 실행 유닛에 대한 성능 분석 방법, 성능 분석 장치 및 성능 분석 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체 - Google Patents
하나 이상의 실행 유닛에 대한 성능 분석 방법, 성능 분석 장치 및 성능 분석 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체 Download PDFInfo
- Publication number
- KR101383225B1 KR101383225B1 KR1020120097103A KR20120097103A KR101383225B1 KR 101383225 B1 KR101383225 B1 KR 101383225B1 KR 1020120097103 A KR1020120097103 A KR 1020120097103A KR 20120097103 A KR20120097103 A KR 20120097103A KR 101383225 B1 KR101383225 B1 KR 101383225B1
- Authority
- KR
- South Korea
- Prior art keywords
- task
- execution
- graph
- execution time
- time
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은, (a) 태스크 간의 의존 관계를 포함하는 태스크 그래프 정보를 로딩하는 단계와 (b) 지정된 우선 순위에 기초하여 태스크 그래프의 태스크를 선택하는 단계와 (c) 선택된 태스크의 하나 이상의 실행 유닛에서의 맵핑 관계와 태스크 간의 의존 관계를 이용하여 선택된 태스크의 실행 시간 경계를 계산하는 단계와 (d) 태스크 그래프의 나머지 태스크에 대해서 단계 (b)와 단계 (c)를 반복하는 단계를 포함하는, 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치에 관한 것이다.
본 발명을 이용함으로써, 다양한 내장형 시스템에서 다양한 스케쥴링 타입을 고려하여 빠른 속도로 성능 예측이 가능하도록 한다.
본 발명을 이용함으로써, 다양한 내장형 시스템에서 다양한 스케쥴링 타입을 고려하여 빠른 속도로 성능 예측이 가능하도록 한다.
Description
하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치에 관한 것으로서, 구체적으로는 하나 이상의 실행 유닛에서 실행되는 태스크 그래프와 이 태스크 그래프에 포함된 태스크들의 실행 유닛으로의 맵핑 관계를 이용하여 각 태스크 그래프의 최대 응답 시간과 같은 태스크 그래프의 성능을 빠른 속도로 그리고 최상의 결과에 근접하도록 예측 또는 결정할 수 있도록 하는, 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치에 관한 것이다.
자동차, 비행기, 가전기기, 휴대형 기기 등과 같은 내장형 시스템은 각 기기의 응용에 따라 주어진 응용을 수행하기 위한 하나 이상의 프로세서와 이 프로세서를 연결하기 위한 버스(예를 들어 CAN 버스)를 구비한다.
이러한 내장형 시스템은 각 응용에 따라 특화된 기능을 수행하고, 각 응용은 각 내장형 시스템의 실시간성에 따라 지정된 응답 시간(Response time)에 맞추어 설계될 필요가 있다. 이에 따라 응용을 구성하는 소프트웨어가 주어진 내장형 시스템의 컴퓨터 아키텍처에 최적화되어 설계될 필요가 있고 또한 내장형 시스템의 컴퓨터 아키텍처가 응용이 지정된 응답 시간을 맞추지 못하는 경우에는 고속의 프로세서를 더 탑재하거나 하드웨어 가속기(accelerator)를 더 포함하도록 설계 변경이 필요하게 된다.
이러한 설계 변경 혹은 응용의 최적화가 지정된 응답 시간에 맞추어지는지를 알기 위해서는 내장형 시스템의 하드웨어 내에서 응용의 소프트웨어가 어떻게 수행되는지 혹은 각 응용이 지정된 응답 시간에 충족하는지를 알기 위한 분석 장치 또는 분석 툴(tool)이 필요하다.
이러한 분석 장치 또는 분석 툴로서 시뮬레이션 기반의 접근 방법이 알려져 있다. 이러한 시뮬레이션 기반의 접근 방법은 성능 측정의 대상인 실제 하드웨어를 시뮬레이션할 수 있는 가상 프로토타입(prototype) 시스템상에서 응용을 직접 실행하여 각 응용이 주어진 응답 시간에 맞추어지는지를 알 수 있도록 한다.
이러한 시뮬레이션 기반의 접근 방법에서는 각 응용의 실행 시간 또는 응답 시간을 측정하기 위해서 많은 시간(즉 시뮬레이션 시간)이 필요하고 또한 다양한 아키텍처를 지원하지 못하여 유연성이 떨어지고 각 응용의 다양한 테스트 케이스를 구비하여야 정확한 성능 결과를 측정할 수 있도록 하고 이에 따라 모든 발생 가능한 테스트 케이스를 가상 프로토타입의 시스템상에 입력하는 것이 불가능하기에 가상 프로토타입의 시스템상에서 예측하지 못한 성능 결과가 실제의 기기에서 발생할 수도 있다.
이에 따라 개발자는 불의의 성능 결과의 발생을 방지하기 위해서 주어진 응용이 요구하는 성능 이상의 성능을 수행할 수 있는 컴퓨터 아키텍처를 설계하고 불의의 성능 결과의 발생을 줄이고자 하는 경향이 발생하고 이는 각 기기의 개발 비용 또는 생산 비용을 증가시키는 경향이 발생한다.
이러한 시뮬레이션 기반의 접근 방법의 대안으로 분석적 방법(analytical method)이 알려져 있고 이 분석적 방법은 전체론적(holistic) 접근 방법과 구성적(compositional) 접근 방법이 알려져 있다.
예를 들어 전체론적 접근 방법은, 주어진 내장형 시스템에서 주어진 응용의 태스크에 대한 스케쥴링과 주어진 내장형 시스템 내에서의 통신(communication)을 하나의 단일 분석 프레임워크(analysis framework)에 통합하여 회의적인(pessimistic) 시나리오에 따라 특정 태스크의 최악 응답 시간(Worst Case Response Time)을 계산한다.([K. Tindel and J. Clark, "Holistic Schedulability Analysis of Distributed Hard Real-time Systems", Microprocessing and microprogramming, Vol 40, pp. 117-134, April, 1994] 및 [F. Slomka, J. Zant, and L. Lambert, "Schedulability analysis of heterogeneous systems for performance message sequence chart", Proceedings of the 6th international workshop on Hardware/software codesign, pp..91-95, March, 1998.] 참조)
이러한 전체론적 접근 방법은, 선점형(preemptive) 스케쥴링에 국한되거나 공유되는 통신 리소스에 대한 충돌(contention)을 고려하지 못하여 이 전체론적 접근 방법은 그 적용에 있어서 다양한 컴퓨터 아키텍처를 가지는 내장형 시스템에 범용으로 적용할 수 없는 문제가 있다.
한편 일부의 전체론적 접근 방법에서는, 시간-오토마타(timed automata)([G. Behrmann, A. David, K. G. Larsen, J. Hakansson, P. Petterson, W. Yi, and M. Hendriks. "UPPAAL 4.0",QEST, 2006.]참조)나 ILP(integer linear programming) 기반의 모델 체킹 기법이 또한 알려져 있으나, 이러한 기법들의 성능 측정을 위한 복잡도가 기하급수적(exponential)이어서 실제 내장형 시스템의 복잡한 응용에 대해서 성능을 측정 또는 결정하기에는 한계가 있다.
이와 같이 전체론적 접근 방법은 확장성(scalability)과 유연성(flexibility)이라는 측면에서 심각한 문제점이 있다.
한편 전체론적 접근 방법의 문제점을 해결하기 위해서 구성적(compositional) 접근 방법이 또한 알려져 있다. 이러한 구성적 접근 방법은 SymTA/S([K. Richter, M. Jersak., and R. Ernst, "A formal approach to MpSoC performance verifcation", IEEE Comput., 36(4), pp. 60-67, Apr. 2003.] 참조)와 MPA([L. Thiele, E. Wandeler, and S. Chakraborty, "Performance analysis of multiprocessor DSPs: A stream-oriented component model", IEEE Signal Process. Mag., 22( 3), pp. 38-46, May 2005.] 참조) 등이 대표적이다.
비록 이러한 구성적 접근 방법이 전체론적 접근 방법에 비하여, 확장성을 더 가지고 또한 빠른 수행 시간 내로 그 성능 결과를 제공할 수 있지만, 이 구성적 접근 방법이 각 태스크의 실행 순서 간의 의존 관계 등을 이용하지 못하여 그 성능 결과로서 제공되는 WCRT(최악 응답 시간, Worst Case Response Time)가 느슨한(loose) 시간 경계를 제공한다.
이러한 느슨한 시간 경계는 역시 주어진 응용이 복잡해짐에 따라 더 확대될 수밖에 없고 결국에는 과 명세(over specification)된 컴퓨터 아키텍처로의 설계 유도와 이에 따라 설계 비용이나 생산 비용상의 비용을 증대시키는 문제가 있다.
따라서 상술한 기존의 접근 방법상에서 도출되는 여러 문제점을 해결하여 내장형 시스템의 응용에 적용될 수 있는, 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치가 필요하다.
본 발명은, 상술한 문제점을 해결하기 위해서 안출한 것으로서, 기존에 알려진 전체론적 접근 방법 및 구성적 접근 방법에 비하여 태스크 또는 태스크 그래프의 WCRT와 같은 성능 예측을 보다더 정확히 할 수 있도록 하는, 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치를 제공하는 데 그 목적이 있다.
또한 본 발명은, 기존의 성능 분석을 위한 접근 방법에 비하여 보다더 빠른 속도로 그 성능 예측을 제공할 수 있도록 하는, 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치를 제공하는 데 그 목적이 있다.
또한 본 발명은, 다양한 태스크 스케쥴링 기법을 통합하여 다양한 컴퓨터 아키텍처 상에서 성능 예측이 가능하도록 하는, 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치를 제공하는 데 그 목적이 있다.
또한 본 발명은, 내장형 시스템의 하드웨어 및 소프트웨어의 설계에 있어서 설계 비용과 생산 비용을 줄일 수 있도록 하는, 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치를 제공하는 데 그 목적이 있다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 목적을 달성하기 위한, 하나 이상의 실행 유닛에 대한 성능 분석 방법은, (a) 태스크 간의 의존 관계를 포함하는 태스크 그래프 정보를 로딩하는 단계와 (b) 지정된 우선 순위에 기초하여 태스크 그래프의 태스크를 선택하는 단계와 (c) 선택된 태스크의 하나 이상의 실행 유닛에서의 맵핑 관계와 태스크 간의 의존 관계를 이용하여 선택된 태스크의 실행 시간 경계를 계산하는 단계와 (d) 태스크 그래프의 나머지 태스크에 대해서 단계 (b)와 단계 (c)를 반복하는 단계를 포함한다.
또한 상기와 같은 목적을 달성하기 위한, 하나 이상의 실행 유닛에 대한 성능 분석 방법은, 단계 (c)가, (c-1) 선택된 태스크의 실행 시간 경계가 계산될 수 있는 지를 결정하는 단계와 (c-2) 실행 시간 경계가 계산될 수 없는 경우에, 대기 큐에 선택된 태스크를 삽입하는 단계와 (c-3) 실행 시간 경계가 계산될 수 있는 경우에, 실행 시간 경계를 계산 완료한 완료 큐에 선택된 태스크를 삽입하는 단계를 포함한다.
또한 상기와 같은 목적을 달성하기 위한, 하나 이상의 실행 유닛에 대한 성능 분석 장치는, 태스크 간의 의존 관계를 포함하는 태스크 그래프 정보를 로딩하는 태스크 그래프 로딩부와 지정된 우선 순위에 기초하여 태스크 그래프의 태스크를 선택하는 태스크 그래프 선택부와 선택된 태스크의 하나 이상의 실행 유닛에서의 맵핑 관계와 태스크 간의 의존 관계를 이용하여 선택된 태스크의 실행 시간 경계를 계산하는 태스크 실행 시간 계산부를 포함하며, 태스크 그래프 선택부 및 태스크 실행 시간 계산부는, 태스크 그래프의 모든 태스크에 대해서 선택하여 실행 시간 경계를 계산한다.
또한 상기와 같은 목적을 달성하기 위한, 하나 이상의 실행 유닛에 대한 성능 분석 장치는, 태스크 그래프 로딩부가, 복수의 태스크 그래프의 실행 주기를 각각 결정하는 실행 주기 결정부와 복수의 태스크 그래프 각각의 실행 주기에 따라 복수의 태스크 그래프 각각의 태스크 그래프 인스턴스(instance)를 생성하는 태스크 그래프 인스턴스 생성부를 포함하며, 생성된 태스크 그래프의 인스턴스의 개수는, 복수의 태스크 그래프의 실행 주기 간의 최소 공배수를 이용하여 결정되며, 태스크 실행 시간 계산부는, 생성된 태스크 그래프의 인스턴스로부터 선택된 태스크에 대해서 실행 시간 경계를 계산한다.
상기와 같은 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치는, 기존에 알려진 전체론적 접근 방법 및 구성적 접근 방법에 비하여 태스크 또는 태스크 그래프의 WCRT와 같은 성능 예측을 보다더 정확히 할 수 있도록 하는 효과가 있다.
또한 상기와 같은 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치는, 기존의 성능 분석을 위한 접근 방법에 비하여 보다더 빠른 속도로 그 성능 예측을 제공할 수 있도록 하는 효과가 있다.
또한 상기와 같은 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치는, 다양한 태스크 스케쥴링 기법을 통합하여 다양한 컴퓨터 아키텍처 상에서 성능 예측이 가능하도록 하는 효과가 있다.
또한 상기와 같은 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치는, 내장형 시스템의 하드웨어 및 소프트웨어의 설계에 있어서 설계 비용과 생산 비용을 줄일 수 있도록 하는 효과가 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 성능 분석 장치의 예시적인 하드웨어 블록도를 도시한 도면이다.
도 2는 예시적인 태스크 그래프와 실행 유닛 그래프 및 태스크 그래프와 실행 유닛 그래프 간의 맵핑 관계를 도시한 예제이다.
도 3은 태스크 그래프의 성능 분석을 위한 기본적인 제어 흐름을 도시한 도면이다.
도 4는, 도 3의 단계 S500에 대한 상세 제어 흐름을 도시한 도면이다.
도 5는, 도 4의 단계 S550에 대한 상세 제어 흐름을 도시한 도면이다.
도 6은, 도 2의 예제에 Min-Max 분석 방법의 적용에 따른 스케쥴링 결과를 나타내는 도면이다.
도 7은 Min-Max 분석 방법을 적용하기 위한 또다른 예시적인 태스크 그래프와 실행 유닛 간의 맵핑 관계 그리고 이 맵핑 관계에 따라 계산된 각 태스크의 실행 시간 경계를 도시한 도면이다.
도 8은 불가능한 배제를 포함하는 태스크 그래프와 실행 유닛간의 맵핑 관계와 이에 따라 반복에 따라 변화하는 실행 시간 경계를 도시한 도면이다.
도 9는, 최소 시작 시간 및 최소 종료 시간의 타이트한 계산을 위한 태스크 그래프와 실행 유닛 간의 맵핑 관계 및 계산된 실행 시간 경계를 도시한 도면이다.
도 10은, 본발명에 따른 성능 분석 장치의 예시적인 기능 블록도를 도시한 도면이다.
도 2는 예시적인 태스크 그래프와 실행 유닛 그래프 및 태스크 그래프와 실행 유닛 그래프 간의 맵핑 관계를 도시한 예제이다.
도 3은 태스크 그래프의 성능 분석을 위한 기본적인 제어 흐름을 도시한 도면이다.
도 4는, 도 3의 단계 S500에 대한 상세 제어 흐름을 도시한 도면이다.
도 5는, 도 4의 단계 S550에 대한 상세 제어 흐름을 도시한 도면이다.
도 6은, 도 2의 예제에 Min-Max 분석 방법의 적용에 따른 스케쥴링 결과를 나타내는 도면이다.
도 7은 Min-Max 분석 방법을 적용하기 위한 또다른 예시적인 태스크 그래프와 실행 유닛 간의 맵핑 관계 그리고 이 맵핑 관계에 따라 계산된 각 태스크의 실행 시간 경계를 도시한 도면이다.
도 8은 불가능한 배제를 포함하는 태스크 그래프와 실행 유닛간의 맵핑 관계와 이에 따라 반복에 따라 변화하는 실행 시간 경계를 도시한 도면이다.
도 9는, 최소 시작 시간 및 최소 종료 시간의 타이트한 계산을 위한 태스크 그래프와 실행 유닛 간의 맵핑 관계 및 계산된 실행 시간 경계를 도시한 도면이다.
도 10은, 본발명에 따른 성능 분석 장치의 예시적인 기능 블록도를 도시한 도면이다.
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술 되어 있는 상세한 설명을 통하여 더욱 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다.
본 발명은 하나 이상의 실행 유닛에 대하여 주어진 태스크( 그래프)의 실행 성능을 분석하기 위한 전체론적 분석 방법과 그 장치에 관한 것이다. 이 분석 방법은 이하에서 "Min-Max 분석 방법"이라고 지칭된다. 이 Min-Max 분석 방법은 구성적 접근 방법에 비하여 보다더 정확한 또는 타이트(tight)한 시간 경계(bound)를 제공하고 복잡도가 다항(polynomial) 복잡도에 이르러 빠른 시간 내에 태스크 또는 태스크 그래프의 WCRT와 같은 성능 예측 결과를 제공할 수 있도록 한다.
먼저 본 발명에 따른 성능 분석 장치의 하드웨어 블록도(도 1)를 살펴보면, 이 성능 분석 장치는, 메모리(101), 대용량 저장 매체(103), 입력 인터페이스(105), 출력 인터페이스(107), 통신 인터페이스(109) 및 프로세서(111)와 각 하드웨어 블록 간의 데이터나 제어 신호를 송수신하기 위한 시스템 버스/제어 버스(113)를 포함한다.
이 성능 분석 장치는, 이 성능 분석 장치의 기능 또는 용도에 따라 하드웨어 블록도 중 일부의 블록을 생략하는 구성으로 구성될 수 있다. 예를 들어 성능 분석 장치는, 개인 사용자(또는 개발자)를 위한 예를 들어 개인용 PC 등일 수 있고 이 경우에는 통신 인터페이스(109)는 생략될 수 있다. 또는 성능 분석 장치는 다수의 사용자에 연결되어 다수의 사용자의 성능 분석 요구를 처리할 수 있는 원격 서버일 수 있고 이 경우에는 입력 인터페이스(105)와 출력 인터페이스(107)는 필요에 따라 생략될 수 있다.
성능 분석 장치의 각 하드웨어 블록들을 간단히 살펴보면, 메모리(101)는, SDRAM과 같은 휘발성 메모리이다. 이 메모리(101)는 대용량 저장 매체(103)에 저장되거나 또는 통신 인터페이스(109)를 통해 수신된 태스크 그래프의 정보를 프로세서(111)의 제어하에 로딩할 수 있고, 또는 대용량 저장 매체(103) 등에 저장된 Min-Max 분석 방법을 수행하기 위한 프로그램을 프로세서(111)의 제어하에 로딩하여 이 프로그램이 실행될 수 있도록 한다.
대용량 저장 매체(103)는, 하드 디스크나 USB 메모리 등과 같이 다수의 데이터 등을 저장할 수 있는 저장 매체이다. 이 대용량 저장 매체(103)는 프로세서(111)에 이용될 각종 프로그램을 저장하고 각종 데이터를 저장한다.
예를 들어 대용량 저장 매체(103)는, 프로세서(111)에 의해 수행되는 Min-Max 분석 방법에 대한 프로그램과 이 Min-Max 분석 방법으로 분석할 하나 이상의 태스크 그래프와 이 태스크 그래프가 수행되는 대상 하드웨어 아키텍처 또는 대상 하드웨어 아키텍처에서 태스크 그래프의 태스크를 수행할 수 있는 프로세서나 버스와 같은 실행 유닛의 연결 관계를 나타내는 실행 유닛 그래프를 포함한다.
여기서 태스크 그래프나 실행 유닛 그래프는 반드시 이미지의 형태로 표현될 필요는 없으며, 태스크 그래프나 실행 유닛 그래프에 포함되는 태스크 또는 실행 유닛 사이에서의 연결 관계나 의존 관계를 표현할 수 있는 자료 구조로 표현되거나 혹은 이미지와 함께 표현될 수 있다.
물론 성능 분석 장치의 응용 예에 따라서 이러한 태스크 그래프와 실행 유닛 그래프는 통신 인터페이스(109)를 통해서 수신될 수도 있다.
여기서, 태스크 그래프와 실행 유닛 그래프에 대해서 예제를 통해서 살펴보도록 한다.
도 2를 참조하여, 태스크 그래프와 실행 유닛 그래프 및 태스크 그래프의 태스크와 실행 유닛 그래프 상의 하나 이상의 실행 유닛의 맵핑 관계를 살펴보면, 태스크 그래프는 실행 유닛 그래프 상에서 수행되는 태스크 모델을 나타낸다.
이 태스크 그래프는, 예를 들어 순환하지 않는(acyclic) 그래프로 표현되고, 각각의 태스크 그래프 T = {V,E}로 표현된다. 여기서 V는 태스크 그래프 내에 포함된 태스크의 세트를 나타내고, E는 태스크 간의 의존 관계를 나타내는 에지의 세트를 나타낸다.
예를 들어 E의 세트에 포함된 에지는 두 개의 태스크의 페어(pair)로 표현될 수 있고, 이러한 의존 관계는 두 개의 태스크의 수행 순서를 정의한다. 예를 들어 도 2의 (a)에서 알 수 있는 바와 같이 (의 후행 또는 자손 태스크, 이하에서는 후행 태스크 및 자손 태스크란 용어를 혼용하여 사용한다.)은 (의 선행 또는 선조 태스크, 이하에서는 선행 태스크 및 선조 태스크란 용어를 혼용하여 사용한다.)의 수행이 완료된 후에 수행될 수 있다. 또한 각 태스크 그래프는 선행하는 태스크에 의존하지 않는 소스 태스크(,)를 포함하며 이러한 소스 태스크는 (p,j,d)의 튜플에 의한 제어하에 시간의 흐름에 따라 실행될 수 있는 태스크이다. 여기서 p는 소스 태스크 또는 이 소스 태스크를 포함하는 태스크 그래프의 실행 주기(period)를 나타내고, j는 소스 태스크 또는 태스크 그래프가 맵핑된 실행 유닛으로 릴리스 되는 시간의 오차 범위, d는 이 태스크 그래프가 다수의 태스크 그래프 인스턴스(instance)로 생성될 때에 태스크 그래프 인스턴스의 릴리스 되는 시간 간의 최소 시간 거리를 나타낸다.
한편 도 2의 (c)는 실행 유닛 그래프와 각 태스크와 각 실행 유닛에 대해서 주어지는 우선 순위와 스케쥴링 방식과 맵핑 관계를 도시하고 있다. 이러한 정보에는 각 태스크의 최소 실행 시간과 최대 실행 시간과, 각 태스크 간의 우선 순위 및 각 실행 유닛의 스케쥴링 방식을 포함한다. 이러한 정보들은 개발자나 사용자로부터 주어진다. 그리고 스케쥴링 방식에는 선점형(P)과 비선점형(N) 등이 있을 수 있다.
그리고 각각의 실행 유닛(PE0, PE1)은 하나 이상의 태스크를 실행할 수 있고, 이러한 실행 유닛은 태스크 그래프가 실제로 수행될 대상 프로세서이거나 혹은 프로세서와 프로세서를 연결하기 위한 버스 등과 같은 하드웨어 리소스를 나타낸다. 예를 들어 도 2의 (c)에서 PE0는 ,를 수행하도록 맵핑되고 PE0는 선점형(P) 스케쥴링 방식을 가지고, PE1은 버스로서 태스크 간의 데이터를 전달하거나 수신하기 위한 통신 태스크인 ,를 맵핑하여 비선점형(N) 스케쥴링 방식을 가질 수 있다.
여기서 태스크는 도 2의 (c)에서 알 수 있는 바와 같이, 실행 유닛 그래프의 실행 유닛에 맵핑되는 기본 단위이다. 이러한 태스크는 최소 실행 시간과 최대 실행 시간이 주어진다. 이러한 최소(최대) 실행 시간은 맵핑된 대상 실행 유닛에서 이 태스크가 실행될 때의 최소(최대)로 걸리는 시간으로서 이러한 시간은 시간 단위로 혹은 명령어의 개수 또는 이 명령어를 시간 단위로 환산한 형태로 주어진다.
그리고 실행 유닛 그래프의 통신 네트워크(도 2의 PE1)에 맵핑된 태스크는 통신 태스크로 간주된다.
이러한 태스크 그래프와 실행 유닛 그래프 및 맵핑 및 각종 정보는 개발자(사용자)에 의해서 주어지고, 이 정보를 이용하여 태스크 그래프의 각 태스크가 특정 실행 유닛에 맵핑되어 실행될 때 각 태스크 또는 각 태스크 그래프의 실행 시간 경계(예를 들어 WCRT)와 같은 성능 예측을 성능 분석 방법 또는 성능 분석 장치가 할 수 있도록 한다.
이러한 태스크 그래프와 실행 유닛 그래프 및 맵핑 정보 등은 프로그램이 인식할 수 있는 자료 구조의 형태로 표현될 수 있고 이러한 자료 구조의 형태로 표현된 정보들은 프로세서(111)로 하여금 성능 예측 또는 분석을 가능하게 하며 이하에서 좀 더 상세히 살펴보도록 한다.
입력 인터페이스(105)는, 개발자 등으로부터 제어 입력을 수신하기 위한 인터페이스로서 예를 들어 마우스나 키보드 등으로부터 제어 입력을 수신하기 위한 제어 포트를 포함한다.
출력 인터페이스(107)는, 개발자의 제어에 따라 수행된 결과를 출력하기 위한 인터페이스로서 예를 들어 디스플레이나 스피커 등으로 이미지나 음향을 출력하기 위한 제어 포트를 포함한다.
통신 인터페이스(109)는, 유선 랜 또는 무선 랜 등을 통해 인터넷 또는 인트라넷 등에 연결하기 위한 인터페이스이다. 이러한 통신 인터페이스(109)를 통해 원격의 개발자 등으로부터 그래프 등과 같은 정보나 제어 명령을 수신하고 이 제어 명령에 따라 주어진 그래프 정보를 이용하여 성능 분석 또는 예측을 수행할 수 있다.
프로세서(111)는, 성능 분석 장치의 각 블록들을 제어하는 예를 들어 프로그램을 메모리(101)를 통해 로딩하여 로딩된 프로그램에 따라 각 하드웨어 블록을 제어할 수 있는 하나 이상의 프로세싱 코어를 포함한다.
이러한 프로세서(111)는 예를 들어 대용량 저장 매체(103)에 저장된 각종 프로그램을 로딩하고 입력 인터페이스(105)나 통신 인터페이스(109)를 통해 수신된 개발자 등으로부터의 제어에 따라 각 태스크 그래프의 성능을 예측하여 그 예측된 결과를 통신 인터페이스(109)나 출력 인터페이스(107)를 통해 출력한다.
프로세서(111) 상에서 수행되는 Min-Max 분석 방법은 이하의 도면을 통해서 좀 더 상세히 살펴보도록 한다.
시스템 버스/제어 버스(113)는, 각 하드웨어 블록들을 연결하여 각 하드웨어 블록들로부터 데이터나 제어 신호를 송수신할 수 있도록 하는 예를 들어 병렬 버스이거나 혹은 시리얼 버스 등일 수 있다.
먼저 Min-Max 분석 방법을 구체적으로 들어가기에 앞서 본 발명에서 해결하고자 하는 문제와 기본적인 용어 등에 대해서 정리하면,
입력 : 태스크 그래프의 세트와 실행 유닛 그래프와 태스크와 실행 유닛 사이의 맵핑 정보
물론 본 발명은 각 태스크 그래프의 WCRT(최악 응답 시간, Worst Case Response Time)의 계산에 국한될 필요는 없고, 이 태스크 그래프의 WCRT의 결정으로부터 도출되는 또는 이 도출 과정에서 생성되는 각 태스크의 WCRT 등이나 응답 시간의 범위 등과 같은 다른 성능 분석 또는 예측의 결과 역시 본 발명의 아이디어에 따라 자명하게 계산할 수 있다.
표기 | 타입* | 설명 |
v | 의 최소 릴리스 시간 | |
v | 의 최대 릴리스 시간 | |
v | 의 최소 시작 시간 | |
v | 의 최대 시작 시간 | |
v | 의 시작 시간 | |
v | 의 최소 종료 시간 | |
v | 의 최대 종료 시간 | |
v | 의 종료 시간 | |
c | 의 최소(lower bound) 수행(실행) 시간 | |
c | 의 최대(upper bound) 수행(실행) 시간 | |
c | 의 선행(predecessor) 태스크의 세트 | |
c | 의 후행(successor) 태스크의 세트 | |
c | 의 우선 순위 | |
,, | c |
소스 태스크 의 기간(Period), 최대 지터(maximum jitter), 및 인스턴스 간 최소 지연(minimum delay) 정보 |
v |
에서 처음으로 시작하는 태스크에 대한 초기 시간 이후의 지연 오프셋 | |
c | 가 맵핑된 실행 유닛의 인덱스 | |
v | 를(보다) 선점할 수 있는 태스크의 세트 | |
v | 를(보다) 선점할 수 없는 태스크의 세트 | |
v | 보다 먼저 스케쥴링된 태스크의 세트 | |
P | c | 선점형(preemptive) 스케쥴링 방식을 사용하는 실행 유닛의 세트 |
N | c | 비선점형(non-preemptive) 스케쥴링 방식을 사용하는 실행 유닛의 세트 |
* 타입 v 는 계산될 변수를 나타내고 타입 c는 개발자 등에 의해서 주어지는 파라미터를 나타낸다.
각 변수에 대해서 간단히 살펴보면, 릴리스 시간은 해당 태스크가 주어진(맵핑된) 실행 유닛에서 수행 가능한 상태가 된 시간(시각)을 나타내며, 시작 시간은 맵핑된 실행 유닛에서 스케쥴링되어 수행을 시작한 시간(시각)을 나타내며, 종료 시간은 맵핑된 실행 유닛에서 수행을 완료한 시간(시각)을 나타낸다. 이러한 릴리스 시간, 시작 시간 및 종료 시간은 최소 및 최대 시간의 형태로 표현된다. 이러한 최소 및 최대의 릴리스 시간, 시작 시간 및 종료 시간은 각 태스크에 대해서 계산될 수 있다. 이러한 릴리스 시간, 시작 시간 및 종료 시간은 각 태스크의 성능 분석을 위한 실행 시간 경계(execution time boundary)에 포함될 수 있고, 이로부터 태스크 그래프의 WCRT 등을 계산할 수 있도록 한다.
본 발명에 따르는 문제를 해결하기 위해, 도 3은 태스크 그래프의 성능 분석을 위한 기본적인 제어 흐름을 도시한 도면이다. 이러한 제어 흐름은 성능 분석 장치의 프로세서(111)에 의해서 수행되며 바람직하게는 소프트웨어로 된 프로그램을 이용하여 구성될 수 있다.
먼저 개발자 등에 의한 성능 분석 요구에 따라 시작(S100)하고, 성능 분석 종료 요구에 따라 종료(S700)된다.
그리고 단계 S200에서 개발자 등으로부터 성능 분석을 요구한 태스크 그래프의 세트를 읽어(로딩하여 메모리(101)로) 들인다. 이 단계 S200에서, 하나 이상의 태스크 그래프를 포함하는 태스크 그래프의 세트로부터 각 태스크 그래프에서의 태스크 간의 의존 관계(에지)와 각 태스크의 수행(실행) 시간(, )과 같은 주어진 파라미터 등을 태스크 그래프 정보로서 태스크 그래프로부터 추출하거나 혹은 주어진 자료 구조를 통해 결정하여 결정된 태스크 그래프 정보를 예를 들어 메모리(101)에 임시로 저장한다.
태스크 그래프의 세트는 주어진 실행 유닛 그래프 상에서 동시에 수행될 수 있는 하나 이상의 태스크 그래프를 포함한다. 그리고 이 태스크 그래프의 태스크들은 동일한 실행 유닛 상에서 실행될 수 있거나 상이한 실행 유닛 상에서 실행 될 수 있다. 이에 따라 특정 실행 유닛에 맵핑된 태스크는 수행 중에도 다른 태스크에 의해서 스케쥴링 기법(예를 들어 선점형)에 따라 각 태스크의 우선 순위에 의해 실행 도중에 배제될 수 있다. 또한 각 태스크 그래프는 서로 상이한 실행 주기(period)를 가질 수 있다. 이에 따라 하나의 태스크 그래프는 다른 태스크 그래프의 실행 주기의 차이에 따라 다른 태스크 그래프의 여러 주기에 걸쳐서 수행의 영향을 받을 수 있다.
이러한 문제점을 고려하여, 단계 S200은, 태스크 그래프의 세트에 있는 복수의 태스크 그래프의 실행 주기를 각각 결정한다. 그리고 각각의 태스크 그래프 별 실행 주기에 따라 태스크 그래프의 인스턴스(instance)를 생성하고, 이 생성된 인스턴스의 태스크에 대해서 실행 시간 경계를 계산하도록 구성할 수 있다.
여기서 생성되는 각 태스크 그래프의 인스턴스의 개수는 (모든 태스크 그래프 실행 주기의 최소 공배수) / (각 태스크 그래프의 실행 주기)로 결정될 수 있다.
이에 따라 이후의 단계에서 이 태스크 그래프의 인스턴스(에 포함되는 인스턴스)에 대해서 각각의 실행 시간 경계가 계산될 수 있도록 한다. 여기서 이 인스턴스는 원 태스크 그래프로부터 추출되거나 획득된 태스크 그래프 정보를 공유하고 이에 따라 태스크의 실행 유닛에 대한 맵핑 정보나 우선 순위 정보 등을 공유하고, 다만 각 인스턴스는 실행 주기에 의해서 각 인스턴스의 실행 순서가 결정되고 실행 시기가 한정될 수 있다.
이러한 최소 공배수(Least Common Multiple)를 이용하여 여러 태스크 그래프가 비록 실행 주기가 서로 달라도 각 태스크 그래프의 다른 태스크 그래프로의 스케쥴링에 따른 실행 시간 경계의 변화를 정확히 예측할 수 있도록 한다.
또한 단계 S200은, 실행 유닛과 관련된 정보(예를 들어 태스크와 실행 유닛과의 맵핑 관계, 실행 유닛 간의 연결 관계 등)를 더 로딩하여 메모리(101)에 저장할 수 있다.
이후 단계 S300에서 태스크 그래프 세트의 모든 태스크를 태스크 간의 우선 순위에 따라 그리고 토폴로지(topology) 순서를 더 반영하여 순서 리스트(260)(Sorted list, Q)를 설정하여 저장하고, 단계 S400에서 실행 시간 경계가 계산 완료된 태스크를 저장하기 위한 완료 큐(250)(S)를 초기화한다.
여기서 순서 리스트(260)의 예시적인 생성(설정) 과정을 살펴보면, 실행 유닛 그래프의 각 실행 유닛별로 맵핑된 하나 이상의 태스크를 지정된 우선 순위에 따라, 예를 들어 내림 차순으로, 정렬하여 각 실행 유닛별 정렬 리스트를 생성한다.
그리고 각 실행 유닛별로 우선 순위에 따라 정렬된 하나 이상의 태스크를 다시 토폴로지를 더 고려하여 재정렬한다. 즉 특정 실행 유닛에 맵핑된 하나 이상의 태스크 간에 에지에 의한 의존 관계가 있는 경우에(예를 들어 하나의 실행 유닛에 맵핑된 두 개의 태스크가 에지에 따른 연결 관계에 의해서 선조(predecessor) 태스크와 자손(successor) 태스크의 관계에 있는 경우, 도 2에서 는 에지에 의해서의 자손 태스크이고 의 선조 태스크이다. 단, 도 2에서는 다른 실행 유닛에 맵핑되어 재정렬이 일어나지 않는다), 이 에지에 의한 의존 관계가 반영되도록 재정렬된다.
이에 따라 내림 차순에 의한 정렬에서의 태스크의 순서는 변경될 수 있고, 예를 들어 하나의 실행 유닛에서의 더 높은 우선 순위를 가지는 태스크는 에지에 의한 의존 관계에 따라 더 낮은 우선 순위를 가진 태스크(상기 더 높은 우선 순위를 가지는 태스크의 선조 태스크인 경우) 뒤에 위치하도록 정렬 리스트가 재정렬될 수 있다. 이로 인해 동일한 실행 유닛에 맵핑된 태스크 사이에서는 토폴로지에 의한 의존 관계가 지정된 우선 순위보다 우선적으로 고려하여 정렬될 수 있도록 한다.
여기서는 우선 순위에 의한 정렬, 이후에 토폴로지 즉 에지에 의한 의존 관계에 따른 재정렬 순으로 설명하였으나, 정렬의 수행 순서를 반대로 할 수도 있다.
이후 각 실행 유닛에 대해서 재정렬된 태스크들은, 순서 리스트(260)에 통합된다. 통합을 하는 방법의 예로서는, 각 실행 유닛에 대해서 재정렬된 태스크의 정렬 리스트에서, 재정렬 순서에 따라서 하나씩 순차적으로 태스크를 추출(예를 들어 실행 유닛이 PE0, PE1으로 된 경우에 PE0의 재정렬 리스트에서 최선의 태스크를 추출하고 다음에는 PE1의 재정렬 리스트에서 최선의 태스크를 추출하고 이후 반복하여)하고 추출된 태스크를 순서 리스트(260)에 저장하도록 할 수 있다.
이와 같이 구성된 순서 리스트(260)는, 우선 순위뿐 아니라 토폴로지에 의한 순서까지 고려되어 설정된다.
이후 단계 S500에서, 순서 리스트(260) Q 에 포함된 모든 태스크에 대해서 실행 시간 경계를 계산한다. 이러한 단계 S500은 하나 이상의 중첩된 루프로 구성되며 도 4와 도 5를 통해서 상세히 살펴보도록 한다.
여기서 실행 시간 경계는, 각 태스크의 최소 시작 시간(minS), 최대 시작 시간(maxS), 최소 종료 시간(minF) 및 최대 종료 시간(maxF) 중에서 하나 이상의 시간 정보를 포함되도록 구성된다. 이에 따라 각 태스크에 대하여 다른 태스크의 스케쥴링에 따라 변경되는 하나 이상의 시간 정보를 획득할 수 있고 이로부터의 스케쥴링의 영향을 고려하여 태스크 또는 이 태스크를 포함하는 태스크 그래프의 성능 분석 또는 예측이 가능하도록 한다.
그리고 단계 S600에서, 모든 태스크 중에서 적어도 하나 이상의 태스크에 대한 실행 시간 경계가 변경되었는지를 결정하여, 만일 하나 이상의 태스크의 실행 시간 경계가 변경된 경우에는 단계 S400으로 전이하여 변경된 실행 시간 경계를 반영하여 다시 각 태스크에 대한 실행 시간 경계를 계산하도록 하고, 그렇지 않으면 각 태스크 그래프에 대한 성능 분석 결과를, 예를 들어 WCRT, 계산하여 단계 S700으로 전이한다.
이러한 단계 S600은, 실행 시간 경계의 변경을 모니터링하여 변경된 경우에는 변경된 실행 시간 경계를 이용하여 다시 다른 태스크의 실행 시간 경계의 값을 변경하도록 하여 정확한 실행 시간 경계가 수렴될 수 있도록 한다.
이러한 성능 분석 결과는 각 태스크 그래프별로 생성될 수 있고, 이로부터 각 태스크 그래프의 최악 응답 시간으로부터 주어진 실행 유닛 그래프 상에서 태스크 그래프가 원하는 응답 시간을 가지는지를 알 수 있도록 한다.
도 4는, 도 3의 단계 S500에 대한 상세 제어 흐름을 도시한 도면이다.
도 3의 단계 S500의 진입에 따라서, 도 4의 단계 S510에서, 대기 큐(240)(W)와 반복 회수에 대한 변수(n)을 초기화한다. 이 대기 큐(240)는, 순서 리스트(260)에서 높은 우선 순위와 토폴로지 순서에 따라 계산을 시도한 태스크가 이 태스크의 태스크 그래프 상의 선행하는 태스크(에지 등으로 인해)의 실행 시간 경계가 아직 계산되지 못해 실행 시간 경계가 계산되지 못하는 경우에 임시로 이 태스크를 저장하기 위한 큐이다. 이러한 대기 큐(240)는 다른 태스크의 실행 시간 경계가 계산 완료됨에 따라 다시 방문되여 대기 큐(240)에 저장된 각 태스크에 대해서 다시 실행 시간 경계가 계산될 수 있도록 한다.
그리고 단계 S520에서, 각 태스크에 대해서 지정된 우선 순위와 토폴로지 순서에 따라 순서화된 순서 리스트(260)(Q)에서 가장 높은 순위(순서)를 가진 태스크를 선택한다.
이후 단계 S530에서, 이 선택된 태스크의 실행 유닛 그래프로의 맵핑 관계와 태스크 그래프 상의 에지에 따른 의존 관계를 이용하여, 선택된 태스크의 실행 시간 경계를 계산한다.
이 단계 S530에 의해서 이루어지는 실행 시간 경계의 계산은 이후에 자세히 살펴보도록 한다.
그리고 단계 S530에서, 선택된 태스크의 실행 시간 경계가 계산될 수 없는 경우에 단계 S560으로 전이하고, 계산될 수 있는 경우에는 단계 S540으로 전이한다.
단계 S540에서, 선택된 태스크를 완료 큐(250)에 삽입하고, 단계 S550에서 다시 대기 큐(240)에 저장되어 있는 태스크에 대해서 이 선택된 태스크에 의해서 실행 시간 경계를 다시 계산할 수 있는 지를 결정한다. 이 단계 S550은 도 5에서 다시 살펴보도록 한다.
그리고 만일 실행 시간 경계가 계산될 수 없는 경우에는 단계 S560에서 선택된 태스크를 대기 큐(240)(W)에 삽입하고, 이후 반복 회수에 대한 변수(n)을 증분한다.
그리고 단계 S580과 단계 S590에서 변수(n 등)을 이용하여 도 4의 단계 등을 다시 반복할 것인지를 결정하고 각 단계에서의 결정에 따라 나머지 태스크에 대하여 단계 S520 이하를 반복하거나 또는 단계 S510 이하를 다시 반복한다.
도 5는, 도 4의 단계 S550에 대한 상세 제어 흐름을 도시한 도면이다. 도 5에 따르면 단계 S551에서 루프의 반복 횟수를 결정하기 위한 변수 k와 변수 n을 초기화한다. 이 변수 k는 대기 큐(240)에 삽입된 태스크의 총 개수를 나타낸다.
그리고 단계 S552에서 대기 큐(240)로부터 하나의 태스크를 추출하고, 단계 S553에서 실행 시간 경계를 계산한다.
그리고 단계 S553에서 실행 시간 경계의 계산이 이루어진 진 경우에는 단계 S554로 전이하여 완료 큐(250)에 추출된 태스크를 저장하고, 그렇지 않은 경우에는 다시 단계 S555로 전이하여 다시 대기 큐(240)(W)에 삽입한 후에 변수(n)을 증분(S556)한다.
그리고 이후 단계 S557에서 종료 조건에 부합하는지를 결정하여 그 결정에 따라서 다시 단계 S552로 전이하거나 혹은 종료 한다.
이상 도 3 내지 도 5에서 알 수 있는 바와 같이, 본 발명에 따른 Min-Max 분석 방법은, 각 태스크의 실행 시간 경계를 결정할 수 있도록 하고 이 실행 시간 경계는 높은 우선 순위를 가지고 토폴로지 순서에 따라 정해지는 순서에 따라서 순차적으로 결정된다. 이러한 각 태스크의 실행 시간 경계는 도 3 내지 도 5의 루프에 의해서 결정되며, 이 Min-Max 분석 방법에 의한 시간 복잡도는 으로 한정된다.
이러한 시간 복잡도는 태스크의 개수로 한정되고 실행 유닛 그래프의 개수나 실행 유닛의 스케쥴링 방식에 의존하지 않게 되어 기존의 성능 분석 방법에 비하여 더욱더 빠른 속도로 성능 분석이 이루어지도록 하며 비록 태스크의 개수가 늘어남에 따라서도 예상 가능한 시간 내로(즉 다항의 시간 복잡도로) 그 성능 분석의 결과를 제공할 수 있도록 한다.
앞서 도 4 내지 도 5에서 단계 S530과 단계 S553은, 선택된 하나의 태스크에 대해서 실행 시간 경계를 계산한다. 이러한 단계 S530과 단계 S553은, 태스크 그래프 간의 에지에 따른 의존 관계와 태스크 그래프의 실행 유닛으로의 맵핑 관계에 따라서 계산된다. 그리고 각 실행 유닛은 선점형 또는 비선점형 등과 같은 스케쥴링 방식을 가질 수 있고 이러한 스케쥴링 방식은 또한 실행 시간 경계의 계산에 반영된다.
이하에서는 여러 조건들을 반영한 선택된 태스크의 실행 시간 경계를 계산하기 위한 정형화된 수학식을 이용해서 설명된다. 이러한 수학식을 적용하여 각 태스크에 대한 최소 시작 시간, 최대 시작 시간, 최소 종료 시간 및/또는 최대 종료 시간이 분석적인 방식으로 계산된다.
물론 이러한 최소 시작 시간, 최대 시작 시간, 최소 종료 시간 및/또는 최대 종료 시간은 보수적인 관점에서 계산이 되어야 하나 실제 이상적으로 계산될 수 있는 시간 정보와 가능한 근접하도록 계산될 수 있도록 하는 것이 필요하다. 이러한 관점에서 각 수학식을 수정하고 수정에 따라 변경된 수학식을 표현하도록 한다.
태스크 그래프 상의 각 태스크는 이 태스크의 선행(또는 선조) 태스크가 수행 완료된 후에 릴리스(수행 가능한) 될 수 있다. 이에 따라 태스크 그래프의 토폴로지를 조사함으로써 따라 최소, 최대 릴리스 시간을 결정할 수 있다.
예를 들어 소스 태스크 에 대해서는 최소, 최대 릴리스 시간은, 아래 수학식 1 및 2에 의해서 결정될 수 있고 예를 들어 아무런 선행 태스크가 없는 소스 태스크는 태스크 그래프에 대해서 주어지는 오프셋과 이 태스크 그래프 또는 소스 태스크에 대해서 주어지는 지터(예를 들어 시작의 변화 범위)에 의해서 최소, 최대 릴리스 시간이 결정되어 질 수 있다.
그리고 태스크 그래프의 에지 등으로 표현되는 의존 관계, 즉 선행 태스크,를 가진 태스크에 대한 최소, 최대 릴리스 시간은, 아래 수학식 3 및 4에 의해서 결정될 수 있다.
이상의 수학식 1 내지 4에서 알 수 있는 바와 같이 각 태스크는 소스 태스크와 선행 태스크를 가지는 태스크로 분류되어, 소스 태스크는 태스크의 오프셋과 지터를 이용하여 맵핑된 실행 유닛에 릴리스 될 수 있는 최소 및 최대 릴리스 시간을 계산할 수 있고, 반면에 다른 태스크는 선행 태스크의 최소 종료 시간 및/또는 최대 종료 시간을 이용하여 최소 및 최대 릴리스 시간을 계산할 수 있다.
이러한 최소 및 최대 릴리스 시간은 태스크 그래프의 의존 관계를 이용하여 결정되고 선행하는 태스크의 최소 또는 최대 완료 시간을 이용하여 각 태스크가 맵핑된 실행 유닛에서 릴리스 될 수 있는 시간을 알 수 있도록 한다.
이러한 수학식 1 내지 4를 이용하여, 각각의 태스크의 맵핑된 실행 유닛에서 수행을 시작할 수 있는 경계(boundary) 시간인 최소 시작 시간과 최대 시작 시간을 아래의 수학식 5 내지 6을 이용하여 계산할 수 있다.
여기서 와 는 태스크 그래프의 다른 태스크들의 실행 유닛에서의 실행을 고려하여 태스크 가 맵핑된 실행 유닛(PE)이 이용가능한 상태가 되는 최소 시간과 최대 시간을 나타낸다. 이 실행 유닛은 태스크 가 릴리스 될 때 다른 태스크를 수행할 수 있으므로, 계산하고자 하는 태스크 는 맵핑된 실행 유닛에서 현재 실행되고 있는 태스크의 수행이 완료될 때까지 기다릴 필요가 있다. 이러한 기다림은 실행 유닛의 스케쥴링 방식에 따라 달라질 수 있다. 예를 들어 선점형 스케쥴링에서는 현재 수행되는 태스크가 더 높은 우선 순위를 가지고 있다면 기다릴 필요가 있다. 반면에 비-선점형 스케쥴링 방식에서는 이미 스케쥴링되어 수행되고 있는 현재의 태스크의 우선 순위에 상관없이 기다려야 한다.
선점형 스케쥴링 방식에 대해서,
비선점형 스케쥴링 방식에 대해서,
이 수학식 7의 의미를 살펴보면, 는 태스크가 시간 t 이후에 맵핑된 실행 유닛에 이 태스크를 수행 가능한 상황이 되는 시간을 나타내고 이 는 릴리스 가능한 시점 이후에 태스크의 시작을 지연시킬 수 있는 다른 태스크의 상태를 고려하여 반영되며, 수학식 5에 따른 는 로부터 시작하여 계산하여 이 가 수렴될 때까지 계산된다.
그리고 수학식 7의 는 이미 스케쥴된 태스크 들 중에서 태스크 의 최소 시작 시간을 지연할 수 있도록 하는 조건에 해당하는 태스크를 나타내고, 수학식 7에서 알 수 있는 바와 같이, 태스크 와 같은 실행 유닛에 맵핑되어 있고, 태스크 보다 우선 순위가 높고, 의 최대 시작 시간이 태스크 의 최소 시작 시간보다 작거나 같은 것에 해당하는 태스크에 의해서 태스크 의 최소 시작 시간이 계산된다.
그리고 비선점형 스케쥴링 방식에 대해서는, 앞선 조건에 더하여 우선 순위가 낮은 도 <= < 조건을 만족한 다면 해당 태스크 의 최소 시작 시간을 지연시킬 수 있는 태스크의 집합에 해당함을 알 수 있다.
이러한 수학식 7의 조건들은 태스크 가 맵핑된 특정 실행 유닛에서 수행될 수 있는 최소 시작 시간을 나타내고, 이에 따라 이 최소 시작 시간에 대하여 영향을 줄 수 있는 다른 태스크의 실행 시간 경계의 정보를 반영하여 계산된다.
여기서, 선점형 스케쥴링 방식에 대해서,
비선점형 스케쥴링 방식에 대해서,
이 수학식 8은, 주어진 태스크 의 최대 시작 시간의 계산에서 에 속하는 태스크의 최대 종료 시간 값들을 기준으로 하여 에서의 태스크의 최대 종료 시간 값이 의 최대 시작 시간을 가지는 것을 의미한다. 그리고 의 는 이 주어진 태스크 의 최대 시작 시간을 지연할 수 있는 조건에 해당하는 태스크이다.
이상의 수학식 8에서 알 수 있는 바와 같이, 선점형 스케쥴링 방식과 비선점형 스케쥴링 방식에서 상이한 조건에 부합하는 태스크가 이 주어진 태스크 의 최대 시작 시간을 지연시킬 수 있다. 이러한 태스크 는 이미 스케쥴링된 태스크 중에서 의 최대 시작 시간을 지연시킬 수 있도록 하는 태스크이다.
이와 같이 수학식 5 내지 8을 이용하여, 각 태스크의 시작 시간을 계산할 수 있다. 이러한 시작 시간은 각 태스크의 시작 시간에 영향을 미치는 태스크의 시작 시간 또는 종료 시간의 변화에 따라서 또한 변경될 수 있다. 또한 특정 태스크는 의존 관계에 의해서 선행하는 태스크에 대한 실행 시간 경계가 아직 계산되지 못한 경우가 있을 수 있고 이 경우에는 대기 큐(W)에 삽입되어 이후 해당 선행하는 태스크에 대한 실행 시간 경계가 계산이 되면 다시 계산되도록 구성된다.
한편 아래의 수학식 9 내지 12를 이용하여 각 태스크 그래프 상의 태스크 각각에 대한 종료 시간을 계산할 수 있다.
여기서, 와 는 이 태스크 가 더 높은 우선 순위를 가진 태스크에 의해서 태스크 의 맵핑된 실행 유닛에서 수행 시작 후 수행 동안에 스케쥴링이 배제(preemption)되는 시간 기간의 최소 및 최대 시간을 나타낸다. 물론 비선점형 스케쥴링 방식에서는 이러한 변수가 0으로 설정되고, 선점형 스케쥴링 방식에서는, 이 와 가 다음과 같은 수학식으로 결정된다.
이러한 수학식 1 내지 12를 이용하여, 태스크의 실행 시간 경계를 계산할 수 있다. 이러한 실행 시간 경계는 주어진 복수의 태스크 그래프가 주어진 실행 유닛 그래프의 아키텍처 상에서 수행될 때의 각 태스크의 최소 시작 시간, 최대 시작 시간, 최소 종료 시간 및 최대 종료 시간을 포함한다.
이상의 수학식 1 내지 12에서 알 수 있는 바와 같이 Min-Max 분석 방법에서의 실행 시간 경계의 계산은, 우선 순위와 함께 각 태스크 간의 토폴로지에 따른 태스크 간의 의존 관계를 이용하여 계산된다. 이에 따라 비록 우선 순위가 높은 태스크가 먼저 실행 시간 경계에 대한 계산을 하는 경우에도 선행 태스크에 대한 실행 시간 경계의 계산이 이루어지지 않은 경우에는 이 태스크는 대기 큐(240)에 기록되고, 이후에 선행 태스크의 실행 시간 경계의 계산이 완료된 후에, 다시 대기 큐(240)의 태스크에 대한 실행 시간 경계를 계산할 수 있다.
이러한 Min-Max 분석 방법을 적용하기 위해서, 도 3 내지 도 5에서 알 수 있는 바와 같이 적어도 3개의 루프를 이용하여 계산이 이루어지고, 다시 하나 이상의 태스크의 실행 시간 경계의 값이 변경된 경우에는 현재 변경된 실행 시간 경계 값들을 다시 이용하여 모든 태스크의 실행 시간의 값의 변경이 없을 때까지 계산이 이루어지게 된다.
물론 이러한 과정에서 모든 실행 시간의 계산이 완료되기 전에 적어도 하나의 태스크에 대한 실행 시간의 값이 계산되지 못하는 경우에는 스케쥴링이 불가능한 태스크 그래프를 포함하는 것을 의미할 수 있다.
그리고 이러한 수학식 1 내지 12에 의해서 계산된 실행 시간 경계들은 최소한의 정확성을 보장한다. 이러한 정확성은 증명될 수 있다.
이러한 수학식 1 내지 12와 도 3 내지 도 5를 이용하여, 각 태스크의 실행 시간 경계가 결정되면 각 태스크 그래프의 WCRT가 수학식 13과 같이 계산되어 질 수 있다.
물론 이러한 수학식 13은 태스크에 대한 실행 시간 경계가 보수적으로 계산되어 실제 WCRT의 값보다 더 큰 응답 시간 결과로서 제공한다.
물론 태스크 그래프가 하나 이상의 태스크 그래프 인스턴스를 포함하는 경우에는 각 태스크 그래프 인스턴스 각각에 대한 WCRT를 계산하고, 계산된 WCRT 중 최대의 WCRT를 해당 태스크 그래프의 WCRT로 결정할 수 있다.
도 6은, 도 2의 예제에 대하여 도 3 내지 도 5의 Min-Max 분석 방법을 적용한 스케쥴링 결과를 나타낸다. 이 도 2에서는 두개의 태스크 그래프가 있고 각 태스크 그래프의 실행 주기(period)는 100 시간 유닛이고 각 태스크 그래프는 지연 오프셋()은 0으로 설정되어 소스 태스크는 시간 유닛 0에서 릴리스된다. 도 6의 스케쥴링 결과를 간단히 살펴보면, 가장 우선 순위가 높은 소스 태스크인 가 스케쥴링되어 와 는 0으로 결정된다. 그리고 의 실행 시간이 10에서 20 시간 유닛이므로 는 10으로 는 20으로 결정된다. 유사하게 다음으로 우선 순위가 높은 다른 소스 태스크인 에 대하여 계산하여 최소 및 최대 시작 시간이 0으로 결정되고 최소 및 최대 종료 시간이 각각 20으로 결정된다.
그 다음으로 우선 순위가 높은 태스크 은 로부터의 의존 관계(에지)가 있으므로 이 태스크는 의 종료 후에 시작할 수 있고 이에 따라 이 태스크의 최소 및 최대 시작 시간은 각각 10과 20으로 계산된다. 그리고 이 태스크 이 맵핑되는 PE1은 비선점형 스케쥴링 정책을 이용하므로, 이 태스크의 최소 및 최대 종료 시간은 다른 우선 순위가 높은 태스크의 선점에 따른 영향 없이 15와 40으로 각각 결정된다.
그리고 태스크 의 스케쥴링 시에는 이전에 스케쥴링된 태스크 이 고려되어야 한다. 이에 따라 의 최소 시작 시간은 의 최소 종료 시간이 의 최소 릴리스 시간보다 작기에 토폴로지 의존 관계에 따라 결정되어 20으로 계산된다. 그리고 최대 시작 시간은 에 의해 야기되는 지연을 고려하여 결정되고 이에 따라 40으로 계산되고 그리고 최소 종료 시간은 30으로 최대 종료 시간은 60으로 결정된다. 유사하게 나머지 와 에 대해서도 실행 시간 경계가 계산된다. 이러한 모든 태스크의 실행 시간 경계로부터 태스크 그래프 의 WCRT는 60으로, 그리고 태스크 그래프 의 WCRT는 80으로 결정된다.
이와 같이 본 발명에 따른 Min-Max 분석 방법은, 각 태스크의 우선 순위와 태스크 간의 의존 관계를 고려하여 정확히 그리고 빠른 속도로 계산할 수 있도록 한다.
도 2 내지 도 5에 따른, Min-Max 분석 방법에 따른 실행 시간 경계를 이상적인 결과에 근접하도록 보다더 타이트하게 계산하도록 하는 것은 많은 개발상의 유용함을 제공할 수 있을 것이다. 이하에서는 도 2 내지 도 5, 그리고 수학식 1 내지 12에 따른 Min-Max 분석 방법의 실행 시간 경계를 이상적인 실행 시간 경계에 근접하도록 하는, 태스크 그래프의 분석을 통한 몇 가지 적용 기법을 예를 통해서 살펴보도록 한다.
도 7은 Min-Max 분석 방법을 적용하기 위한 또다른 예시적인 태스크 그래프와 실행 유닛 간의 맵핑 관계 그리고 이 맵핑 관계에 따라 계산된 각 태스크의 실행 시간 경계를 도시한 도면이다.
도 7의 (b)에서 알 수 있는 바와 같이 태스크 의 WCRT는 의 최대 종료 시간에 따라 45로 결정된다. 여기서 실제의 의 WCRT는 35로 계산될 수 있다. 이러한 과(over) 예측의 이유는 이 태스크 그래프 의 그래프 체인 상에서의 의 최대 종료 시간과 의 최대 시작 시간의 계산에 2회에 걸쳐서 영향을 미쳤기 때문이다. 즉 에 의해 야기되는 배제가 의 WCRT의 계산에서 복수 회에 걸쳐서 고려되었기 때문이다.
이에 따라 특정 태스크가 다른 태스크의 실행 시간 경계의 계산에 있어서 배제에 따른 영향을 단 1회만 반영되도록 할 필요가 있고, 이에 따라 최대 시작 시간과 최대 종료 시간의 계산에서 배제 히스토리(preemption history)를 검사할 필요가 있다.
이에 따라 태스크 의 최대 종료 시간과 최대 시작 시간에 영향을 미치는 태스크의 세트인 프리엠트(preemptor) 세트 를 정의한다. 이 는 초기에는 빈 세트로 정의되고, 이후 수학식 4에 따라 최대 릴리스 시간을 계산할 때, 태스크 그래프 상에서 의존 관계(에지)에 따른 선행 태스크의 프리엠트 세트를 물려 받아 태스크의 프리엠트 세트를, 아래 수학식 14에 따라 계산한다.
여기서 는 태스크 의 최대 릴리스 시간을 결정하는 데 이용되는 선행하는 태스크이다. 그리고 수학식 8과 수학식 12에 따라 태스크의 스케쥴링 지연(delay)를 계산할 때 이 에 속하지 않는 태스크만을 고려하도록 수정하면 된다.
이에 따라 수학식 8의 = {| = , > , <= 그리고 }로 수정되고, 수학식 12의 = {| = , > , <= , <= 그리고 }로 수정되어 태스크 그래프 상에서 의존 관계에 따라 의존하는 선행 태스크에서 이미 반영한 다른 태스크를 이후의 태스크에서는 더 이상 실행 시간 경계의 계산에 반영되지 않도록 하여, 더욱더 타이트한 실행 시간 경계를 계산할 수 있도록 한다.
즉 이러한 다른 태스크는, 현재 최대 시작 시간 및/또는 최대 종료 시간을 계산하고자 하는 대상 태스크를 포함하는 태스크 그래프 상의 에지(의존 관계)로 연결된 체인(예를 들어 도 7의 ,와 의 체인)에서 단 1회만 실행 시간 경계의 계산에 반영되도록 한다.
이와 동일한 변경이 또한 비선점형 스케쥴링 경우에도 적용될 수 있다.
비록 이러한 프리엠트 세트를 모든 태스크에 대해서 관리하더라도 느슨한 시간 경계의 계산이 또한 발생할 수 있다.
예를 들어 도 8을 통해 살펴보면, 세 개의 태스크의 우선 순위가 토폴로지 순서에 따르지 않고 있다. 이 예에서 도 3의 단계 S500의 첫번째 반복에 의해서 도 8의 (b)와 같은 각 태스크의 실행 시간 경계가 계산되고 단계 S500의 두번째 반복에서 수학식 12에서 가 에 속하고 의 최소 시작 시간이 의 최대 종료 시간보다 작기에 태스크 는 태스크 의 최대 종료 시간의 계산에 영향을 미친다. 그리고 태스크 는 복수의 배제를 회피하기 위해서 태스크 의 프리엠트 세트에 삽입되고 의존 관계에 따라 의 프리엠트 세트를 상속받는(inherited) 태스크 의 프리엠트 세트 역시 을 포함한다. 이에 따라 의 최대 시작 시간과 최대 종료 시간은 이에 따라 변경된다. 그리고 3번째 반복에서 의 최대 시작 시간과 최대 종료 시간은 또한 변경된다. 그리고 태스크 그래프의 WCRT는 에 연결된 에 의해 100으로 예측된다.
이 예에서 과 예측(over-estimation)의 원인은 선행 태스크 에 대한 태스크 에 의한 일어날 수 없는 배제에 기인한다. 이러한 불가능한 배제의 가능성을 제거하기 위해서, 각 태스크에 대해서 또 다른 태스크 세트인 제외(exclusion) 세트 를 정의한다.
이러한 태스크의 제외 세트는 토폴로지 순서에 의해 태스크가 의존하는 우선 순위가 높은 태스크이다. 도 8의 예에서 태스크 는 태스크 과 의 제외 세트에 포함된다. 물론 이러한 제외 세트는 Min-Max 분석이 이루어지기 전에 우선 순위와 태스크 그래프의 토폴로지를 검색 혹은 분석하여 먼저 결정될 수 있다.
이러한 제외 세트는, 비록 우선 순위가 높은 태스크가 동일한 실행 유닛에 맵핑되는 경우에도 토폴로지 순서를 더 고려하여 해당 태스크의 실행 시간 경계의 계산에 배제하도록 하여 더욱더 타이트한(엄격한) 실행 시간 경계의 계산이 이루어지도록 한다.
이에 따라 현재 실행 시간 계산을 하고 있는 태스크 보다 더 높은 우선 순위를 가지더라도 실제 발생할 수 없는 스케쥴링상의 배제를 야기하는 태스크를 최대 시작 시간 및 최대 종료 시간의 계산에서 제외하고 대신에 현 태스크보다 낮은 우선 순위를 가진 태스크만이 최대 시작 시간 및 최대 종료 시간의 계산에 반영된다.
이상 도 7과 도 8의 예에서는 최대 시작 시간 및 최대 종료 시간의 계산에 타이트한 실행 시간 경계를 계산하기 위한 적용 기법을 살펴보았다.
이러한 최대 시작 시간 및 최대 종료 시간의 적용된 계산 기법뿐 아니라, 최소 시작 시간 및 최소 종료 시간에 적용할 수 있는 기법을 이하 도 9에서 살펴본다.
이러한 최소 시작 시간 및 최소 종료 시간에 적용되는 기법은 또한 최대 시작 시간과 최대 종료 시간의 계산에 영향을 미쳐 최대 시작 시간과 최대 종료 시간 역시 타이트한 결과를 제공할 수 있도록 한다.
도 9에서 알 수 있는 바와 같이 5 개의 태스크가 선점형 스케쥴링 기법을 따르는 하나의 실행 유닛에 할당되어 있다. 그리고 이 태스크 그래프의 태스크에 대하여 계산된 실행 시간 경계가 도 9에 표시되어 있다.
이 예에서 태스크 와 의 최대 시작 시간이 태스크 의 최소 릴리스 시간보다 크기에 와 는 태스크 의 에 포함되지 않는다. 이에 따라 의 최소 시작 시간은 태스크 와 에 따라 야기되는 스케쥴링 지연을 고려하지 않아 과소 평가(under estimated) 된다. 이에 따라 태스크 의 최대 종료 시간은 또한 과 평가(over estimated)된다.
이러한 과소 평가의 문제를 회피하기 위해서, 모든 경우에서 태스크 에 앞서 스케쥴링되는 태스크를 포함하는 을 구성한다. 이 예에서 태스크 와 는 태스크 보다 먼저 스케쥴링되기에 의 에 포함된다. 그리고 수학식 7은 아래의 수학식 15로 변경되어 최소 시작 시간이 선 스케쥴된 태스크의 최소 종료 시간보다 작지 않은 경우로 수정된다.
이러한 수학식 15의 적용으로 보다더 타이트한 최소 시작 시간 및 최소 종료 시간의 계산이 가능하도록 하고 또한 최대 시작 시간 및 최대 종료 시간의 계산 역시 보다더 타이트하게 이루어질 수 있도록 한다(도 9의 "를 고려하는 경우").
이상 도 7 내지 도 9에서는 도 3 내지 도 5에 따르는 Min-Max 분석 방법을 태스크 그래프의 의존 관계의 유형 또는 형태와 또한 우선 순위를 더 고려하여 보다더 정확히 실행 시간 경계의 계산을 할 수 있도록 하는 기법을 살펴보았다. 이러한 기법들은 태스크 그래프의 사이즈(예를 들어 태스크 그래프의 태스크의 개수 등)가 클수록 더욱더 효과적인 경계 계산의 결과를 제공할 수 있도록 한다.
도 10은, 하나 이상의 실행 유닛에 대한 성능 분석 장치의 기능 블록도를 도시한 도면이다.
이러한 기능 블록도는, 도 1의 하드웨어 블록도 상에서 구현되며 예를 들어 메모리(101)를 활용하고 프로세서(111) 상에서 수행되는 프로그램의 형태로 구현된다.
도 10에서는 도 2 내지 도 5와 중복되지 않는 범위 내에서 간단히 살펴보도록 한다.
도 10에 따르면, 성능 분석 장치의 기능 블록도는, 태스크 그래프 로딩부(210)와 태스크 그래프 선택부(220)와 태스크 실행 시간 계산부(230)와 반복 제어부(270)를 포함하고, 또한 대기 큐(240)와 완료 큐(250)와 순서 리스트(260)을 포함한다.
여기서 대기 큐(240)는, 비록 높은 우선 순위로 태스크가 먼저 선택된 경우라도 예를 들어 토폴로지에 의한 의존 관계로 인해 이 태스크의 실행 시간의 계산이 완료 되지 못한 태스크를, 저장하고, 완료 큐(250)는 실행 시간 경계의 계산이 이루어진 태스크를 저장한다. 이러한 대기 큐(240)와 완료 큐(250)는 예를 들어 메모리(101)상에 구성될 수 있다.
각 기능 블록들을 살펴보면, 태스크 그래프 로딩부(210)는 입력 인터페이스(105)나 통신 인터페이스(109)를 통해 수신되거나 입력된 개발자(또는 사용자)의 제어 입력에 따라 태스크 간의 의존 관계를 나타내는 태스크 그래프와 이 태스크 그래프가 맵핑된 실행 유닛 그래프와 태스크 그래프에 포함된 각 태스크의 우선 순위나 실행 유닛에 관련된 스케쥴링 기법 등과 같은 태스크 그래프와 실행 유닛 그래프에 관련된 각종 파라미터 정보를 로딩하고 이를 예를 들어 메모리(101) 및/또는 대용량 저장 매체(103)에 저장한다.
이러한 파라미터 정보는 예를 들어 표 1에 기재되어 있는 각종 파라미터를 포함한다. 이러한 파라미터를 이용하여 태스크 그래프나 태스크 그래프에 포함된 태스크의 실행 시간 경계를 계산할 수 있다.
이를 위해 태스크 그래프 로딩부(210)는 실행 주기 결정부(211)와 태스크 그래프 인스턴스 생성부(213)를 포함한다. 이 실행 주기 결정부(211)는, 로딩된 태스크 그래프의 파라미터에 포함된 실행 주기를 결정하고, 태스크 그래프 인스턴스 생성부(213)는 복수의 태스크 그래프 각각의 실행 주기의 최소 공배수에 따라서 각 태스크 그래프의 인스턴스를 생성한다. 생성된 인스턴스는 이후 실행 시간 경계의 계산에 이용된다.
여기서 생성된 각 태스크 그래프의 인스턴스의 개수는 복수의 태스크 그래프의 실행 주기로부터 결정된 최소 공배수에 의해서 공통되는 실행 주기를 가질 수 있도록 계산된다.
또한 태스크 그래프 인스턴스 생성부(213)는, 이에 더하여 각 태스크 그래프의 WCRT가 각 태스크 그래프의 실행 주기보다 더 큰 경우에 태스크 그래프의 인스턴스를 더 생성할 수 있다. 예를 들어 다음 주기의 태스크가 이전 주기의 태스크의 실행에 영향을 미칠 수 있기 때문이다.
이 태스크 그래프 인스턴스 생성부(213)는 태스크 그래프 각각의 인스턴스를 각각 생성하는 것 외에 순차적으로 태스크 그래프의 인스턴스를 생성하여 이 인스턴스에 대해서 실행 시간 경계를 계산하고 다시 이후에 새로운 인스턴스를 생성하는 식으로 반복적으로 구성할 수도 있다. 이러한 구현 방식은 선택의 문제로서 이 성능 분석 장치가 적용되는 하드웨어 구조에 따라서 또는 프로그램의 구조에 따라 여러 선택 방식 중에서 하나를 선택할 수 있다.
그리고 태스크 그래프 선택부(220)는, 반복 제어부(270)의 제어하에 복수의 태스크 그래프에 포함된 태스크를 태스크 간의 지정된 우선 순위와 이에 더하여 토폴로지 순서에 따라 순서화된 순서 리스트(260)(Q)에서 가장 높은 순서 위치를 가진 하나를 선택하고, 이후의 선택에서는 그 다음으로 높은 순서 위치를 가진 태스크를 선택한다.
이러한 순서 리스트(260)(Q)는 반복 제어부(270)의 제어하에 초기에 태스크를 순서화시킬 수 있고 이후 태스크 그래프 선택부(220)에 의한 태스크의 선택에 따라 선택된 태스크를 순서 리스트(260) 상에서 삭제하도록 구성될 수 있다. 물론 다시 계산의 재반복을 다시 시작하는 경우에는 다시 초기의 태스크간의 순서로 순서화될 수 있다.
여기서 순서 리스트(260)에 순서화되는 태스크의 순서는 예를 들어 우선 순위에 따라 순서화되고 태스크 그래프의 토폴로지 순서를 더 고려하여 순서화된다.
여기서 동일한 태스크 그래프는, 여러 개의 인스턴스로 생성될 수 있고 이 경우에는 각 인스턴스의 생성 순서에 따라서 인스턴스에 포함된 태스크 들에 대해서 순서 리스트(260)상에서 순서화된다.
그리고 태스크 실행 시간 계산부(230)는, 태스크 그래프 선택부(220)에 의해서 선택된 태스크에 대해서 태스크 그래프 로딩부(210)에서 로딩된 실행 유닛과의 맵핑 관계와 태스크 간의 의존 관계를 이용하여 실행 시간 경계를 계산한다.
이 태스크 실행 시간 계산부(230)와 태스크 그래프 선택부(220)는, 반복 제어부(270)의 제어하에서 로딩된 모든 태스크 그래프의 모든 태스크에 대해서 반복하여 계산하고 순서에 따라 반복하여 선택한다.
그리고 태스크 실행 시간 계산부(230)는, 선택된 태스크의 실행 시간 경계가 계산될 수 있는 지를 결정하는 실행 시간 경계 결정부(231)를 포함한다. 이 실행 시간 경계 결정부(231)는, 앞서 수학식 1 내지 15를 이용하여 각각의 실행 시간 경계를 계산하고, 선택된 태스크가 토폴로지 순서에 의해서 선행하는 태스크에 대한 실행 시간 경계가 계산되지 못한 경우에는 현재 선택된 실행 시간 경계가 계산되지 않을 수 있다.
이 경우에는 태스크 실행 시간 계산부(230)에 더 포함되는 대기 큐 삽입부(233)를 이용하여 대기 큐(240)에 실행 시간 경계가 계산되지 않은 선택된 태스크를 삽입한다.
반면에 실행 시간 경계가 계산될 수 있는 경우에는, 완료 큐 삽입부(235)를 이용하여 완료 큐(250)에 이 선택된 태스크를 삽입한다.
그리고 반복 제어부(270)는, 모든 태스크의 실행 시간 경계가 계산완료될 수 있도록 각 기능 블록들을 제어하고, 예를 들어 도 3 내지 도 5에 따르는 Min-Max 분석 방법의 반복을 제어하고 각 변수들을 초기화한다.
이에 따라 반복 제어부(270)는, 순서 리스트(260)를 태스크 그래프 로딩부(210)에서 로딩한 태스크 그래프의 정보에 기초하여 초기(순서)화하고, 실행 시간 경계 결정부(231)에서 실행 시간 경계가 계산되었는 지를 모니터링하고 그 결과에 따라 대기 큐(240)에 삽입되어 있는 태스크에 대한 실행 시간 경계의 계산을 제어하고, 모든 태스크에 대한 전체 반복에 따라 하나 이상의 태스크의 실행 시간 경계가 변경되었는 지를 결정하여 이 결정에 따라 다시 재 반복(도 3 참조)할 것인지를 결정한다. 이러한 반복 제어부(270)의 제어 흐름은 도 3 내지 도 5를 참조하면 쉽게 이해할 수 있을 것이다.
이러한 도 10의 기능 블록도에 따르는 성능 분석 장치를 이용함으로써, 빠른 속도로 더욱더 타이트한 성능 분석 결과를 제공할 수 있도록 한다.
본발명에 따르는 성능 분석 방법과 성능 분석 장치를 이용함으로써, 기존에 알려져 있는 구성적 접근 방법에 비하여 최소 30% 이상 더욱더 타이트한 성능 분석 예측 결과를 제공하는 것으로 판단되었고, 분석적 접근 방법에 근접하는 성능 분석 예측 결과를 가져옴을 알 수 있었다. 물론 기존의 분석적 접근 방법은 태스크 그래프의 태스크의 개수가 늘어남에 따라서 실제 수행 시간이 기하급수적으로 늘어나 실제로 적용되기에는 문제가 있다는 것이 알려져 있다.
그리고 다양한 스케쥴링 기법에 대한 적용은 많은 유용함을 제공한다. 예를 들어 대부분의 컴퓨터 아키텍처는 하나 이상의 프로세서와 이 프로세서 사이를 연결하기 위한 버스 등을 포함한다. 이러한 프로세서는 OS(Operating System)에 따라 일반적으로 선점형 또는 비선점형 스케쥴링 기법을 포함한다. 반면에 버스 등은 고속의 자동화된 전송을 위해 하드웨어(하드와이어 형태의 FIFO) 등을 이용하여 비선점형 스케쥴링 기법을 이용하는 것이 일반적이다. 물론 버스 자체도 버스 내에 내장되어 있는 특정 로직에 의해서 우선순위에 따른 선점형 스케쥴링 기법을 적용할 수도 있다.
그리고 본 발명에 따르면 버스 자체도 하나의 실행 유닛(예를 들어 도 2의 PE1)으로 모델링될 수 있고, 버스 상에서의 통신 태스크도 또한 하나의 태스크(예를 들어 도 2의 와 )로 모델링할 수 있도록 한다.
이러한 다양한 모델링과 다양한 스케쥴링 기법의 적용은, 개발자에게 물론 내장형 시스템 설계의 유연성을 제공하고, 빠른 성능 분석 결과의 예측은 개발 기간을 단축할 수 있도록 한다.
이와 같은 본발명에 따른 성능 분석 방법은 프로그램의 형태로 컴퓨터 판독가능한 기록 매체 상에 기록되어 배포될 수 있다. 이러한 기록 매체는 예를 들어 USB 메모리이거나 CD, DVD 등과 같은 프로그램을 기록할 수 있는 대용량 저장 매체일 수 있다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.
101 : 메모리 103 : 대용량 저장 매체
105 : 입력 인터페이스 107 : 출력 인터페이스
109 : 통신 인터페이스 111 : 프로세서
113 : 시스템 버스/제어 버스
210 : 태스크 그래프 로딩부
211 : 실행 주기 결정부 213 : 태스크 그래프 인스턴스 생성부
220 : 태스크 그래프 선택부
230 : 태스크 실행 시간 계산부
231 : 실행 시간 경계 결정부 233 : 대기 큐 삽입부
235 : 완료 큐 삽입부
240 : 대기 큐 250 : 완료 큐
260 : 순서 리스트 270 : 반복 제어부
105 : 입력 인터페이스 107 : 출력 인터페이스
109 : 통신 인터페이스 111 : 프로세서
113 : 시스템 버스/제어 버스
210 : 태스크 그래프 로딩부
211 : 실행 주기 결정부 213 : 태스크 그래프 인스턴스 생성부
220 : 태스크 그래프 선택부
230 : 태스크 실행 시간 계산부
231 : 실행 시간 경계 결정부 233 : 대기 큐 삽입부
235 : 완료 큐 삽입부
240 : 대기 큐 250 : 완료 큐
260 : 순서 리스트 270 : 반복 제어부
Claims (12)
- 하나 이상의 실행 유닛에 대한 성능 분석 방법으로서,
(a) 태스크 간의 의존 관계를 포함하는 태스크 그래프 정보를 로딩하는 단계;
(b) 지정된 우선 순위에 기초하여 태스크 그래프의 태스크를 선택하는 단계;
(c) 선택된 태스크의 상기 하나 이상의 실행 유닛에서의 맵핑 관계와 태스크 간의 의존 관계를 이용하여 선택된 태스크의 실행 시간 경계를 계산하는 단계; 및
(d) 태스크 그래프의 나머지 태스크에 대해서 상기 단계 (b)와 단계 (c)를 반복하는 단계;를 포함하며,
상기 단계 (a)는, (a-1) 복수의 태스크 그래프의 실행 주기를 결정하는 단계; 및 (a-2) 복수의 태스크 그래프 각각의 실행 주기에 따라 복수의 태스크 그래프 각각의 태스크 그래프 인스턴스(instance)를 생성하는 단계;를 포함하며,
생성된 태스크 그래프의 인스턴스의 개수는, 복수의 태스크 그래프의 실행 주기 간의 최소 공배수를 이용하여 결정되며, 상기 단계 (c)는, 상기 생성된 태스크 그래프의 인스턴스로부터 선택된 태스크에 대해서 실행 시간 경계를 계산하는,
성능 분석 방법. - 제1항에 있어서,
상기 단계 (c)는,
(c-1) 선택된 태스크의 실행 시간 경계가 계산될 수 있는 지를 결정하는 단계;
(c-2) 상기 실행 시간 경계가 계산될 수 없는 경우에, 대기 큐에 상기 선택된 태스크를 삽입하는 단계; 및
(c-3) 상기 실행 시간 경계가 계산될 수 있는 경우에, 실행 시간 경계를 계산 완료한 완료 큐에 상기 선택된 태스크를 삽입하는 단계;를 포함하는,
성능 분석 방법. - 제2항에 있어서,
상기 단계 (c)는,
(c-4) 상기 실행 시간 경계가 계산될 수 있는 경우에, 상기 선택된 태스크의 계산된 실행 시간 경계를 이용하여 대기 큐의 태스크에 대하여 실행 시간 경계를 계산하는 단계;를 더 포함하는,
성능 분석 방법. - 제2항에 있어서,
(e) 태스크 그래프의 태스크 중 하나 이상의 태스크의 실행 시간 경계가 변경되었는지를 결정하는 단계; 및
(f) 하나 이상의 태스크의 실행 시간 경계가 변경된 경우에 단계 (b) 내지 단계 (d)를 변경된 실행 시간 경계를 이용하여 재 반복하는 단계;를 더 포함하는,
성능 분석 방법. - 제1항에 있어서,
상기 실행 시간 경계는, 최소 시작 시간(min start time)과 최대 시작 시간(max start time)을 포함하여 선택된 태스크의 시작 시간 범위를 나타내거나 최소 종료 시간(min finish time)과 최대 종료 시간(max finish time)을 포함하여 선택된 태스크의 종료 시간 범위를 나타내는,
성능 분석 방법. - 제2항에 있어서,
상기 실행 시간 경계는, 최소 시작 시간(min start time), 최대 시작 시간(max start time), 최소 종료 시간(min finish time) 및 최대 종료 시간(max finish time) 중 하나 이상의 시간 정보를 포함하고,
상기 단계 (c-1)은, 선택된 태스크의 실행 시간 경계를, 상기 선택된 태스크가 맵핑된 실행 유닛의 스케쥴링 타입과 태스크 그래프에 포함된 다른 태스크의 우선 순위와 실행 시간 경계에 기초하여, 계산하는,
성능 분석 방법. - 제6항에 있어서,
선택된 태스크와는 다른 태스크 그래프에 포함된 상기 다른 태스크는, 상기 다른 태스크의 실행 시간 경계와 상기 선택된 태스크의 실행 시간 경계의 비교로 결정되고, 또한
상기 다른 태스크는, 선택된 태스크를 포함하는 태스크 그래프에서의 의존 관계의 체인 상의 태스크들에 대한 실행 시간 경계의 계산에 1회만 반영되도록 선택되는,
성능 분석 방법. - 제6항에 있어서,
상기 단계 (c-1)은, 선택된 태스크의 태스크 그래프에서의 토폴로지(topology) 순서와 태스크의 우선 순위에 따라 상기 다른 태스크를 결정하여 선택된 태스크의 실행 시간 경계를 계산하며,
결정된 상기 다른 태스크는, 토폴로지 순서상에서 선택된 태스크보다 낮은 우선 순위를 가지는 태스크인,
성능 분석 방법. - 하나 이상의 실행 유닛에 대한 성능 분석 장치로서,
태스크 간의 의존 관계를 포함하는 태스크 그래프 정보를 로딩하는 태스크 그래프 로딩부;
지정된 우선 순위에 기초하여 태스크 그래프의 태스크를 선택하는 태스크 그래프 선택부; 및
선택된 태스크의 상기 하나 이상의 실행 유닛에서의 맵핑 관계와 태스크 간의 의존 관계를 이용하여 선택된 태스크의 실행 시간 경계를 계산하는 태스크 실행 시간 계산부;를 포함하며,
상기 태스크 그래프 선택부 및 태스크 실행 시간 계산부는, 태스크 그래프의 모든 태스크에 대해서 선택하여 실행 시간 경계를 계산하며,
상기 태스크 그래프 로딩부는, 복수의 태스크 그래프의 실행 주기를 각각 결정하는 실행 주기 결정부; 및 복수의 태스크 그래프 각각의 실행 주기에 따라 복수의 태스크 그래프 각각의 태스크 그래프 인스턴스(instance)를 생성하는 태스크 그래프 인스턴스 생성부;를 포함하며,
생성된 태스크 그래프의 인스턴스의 개수는, 복수의 태스크 그래프의 실행 주기 간의 최소 공배수를 이용하여 결정되며, 상기 태스크 실행 시간 계산부는, 상기 생성된 태스크 그래프의 인스턴스로부터 선택된 태스크에 대해서 실행 시간 경계를 계산하는,
성능 분석 장치. - 제9항에 있어서,
상기 태스크 실행 시간 계산부는,
선택된 태스크의 실행 시간 경계가 계산될 수 있는 지를 결정하는 실행 시간 경계 결정부;
상기 실행 시간 경계가 계산될 수 없는 경우에, 대기 큐에 상기 선택된 태스크를 삽입하는 대기 큐 삽입부; 및
상기 실행 시간 경계가 계산될 수 있는 경우에, 실행 시간 경계를 계산 완료한 완료 큐에 상기 선택된 태스크를 삽입하는 완료 큐 삽입부;를 포함하는,
성능 분석 장치. - 제9항에 있어서,
상기 실행 시간 경계는, 최소 시작 시간(min start time)과 최대 시작 시간(max start time)을 포함하여 선택된 태스크의 시작 시간 범위를 나타내거나 최소 종료 시간(min finish time)과 최대 종료 시간(max finish time)을 포함하여 선택된 태스크의 종료 시간 범위를 나타내는,
성능 분석 장치. - 제1항에 따르는 하나 이상의 실행 유닛에 대한 성능 분석 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120097103A KR101383225B1 (ko) | 2012-09-03 | 2012-09-03 | 하나 이상의 실행 유닛에 대한 성능 분석 방법, 성능 분석 장치 및 성능 분석 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120097103A KR101383225B1 (ko) | 2012-09-03 | 2012-09-03 | 하나 이상의 실행 유닛에 대한 성능 분석 방법, 성능 분석 장치 및 성능 분석 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140030660A KR20140030660A (ko) | 2014-03-12 |
KR101383225B1 true KR101383225B1 (ko) | 2014-04-09 |
Family
ID=50643062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120097103A KR101383225B1 (ko) | 2012-09-03 | 2012-09-03 | 하나 이상의 실행 유닛에 대한 성능 분석 방법, 성능 분석 장치 및 성능 분석 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101383225B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101621280B1 (ko) * | 2015-02-02 | 2016-05-17 | 서울대학교산학협력단 | 최악 응답 시간 분석 방법 및 컴퓨터 프로그램 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086152B (zh) * | 2017-06-14 | 2021-12-14 | 杭州海康威视数字技术股份有限公司 | 图片分析方法、装置及系统、计算机设备及存储介质 |
CN117934259B (zh) * | 2024-03-20 | 2024-06-28 | 浙江凌迪数字科技有限公司 | 任务流程图的生成方法、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008176804A (ja) * | 2008-02-18 | 2008-07-31 | Nec Corp | タスクスケジューリングシステム、方法、およびプログラム |
WO2010092146A1 (en) * | 2009-02-16 | 2010-08-19 | Inchron Gmbh | Method for analysing the real-time capability of a system |
KR20110112640A (ko) * | 2010-04-07 | 2011-10-13 | 삼성전자주식회사 | 태스크의 실시간 처리를 위한 큐 관리 장치 및 방법 |
-
2012
- 2012-09-03 KR KR1020120097103A patent/KR101383225B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008176804A (ja) * | 2008-02-18 | 2008-07-31 | Nec Corp | タスクスケジューリングシステム、方法、およびプログラム |
WO2010092146A1 (en) * | 2009-02-16 | 2010-08-19 | Inchron Gmbh | Method for analysing the real-time capability of a system |
KR20110112640A (ko) * | 2010-04-07 | 2011-10-13 | 삼성전자주식회사 | 태스크의 실시간 처리를 위한 큐 관리 장치 및 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101621280B1 (ko) * | 2015-02-02 | 2016-05-17 | 서울대학교산학협력단 | 최악 응답 시간 분석 방법 및 컴퓨터 프로그램 |
Also Published As
Publication number | Publication date |
---|---|
KR20140030660A (ko) | 2014-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10387605B2 (en) | System and method for managing and composing verification engines | |
US20090024381A1 (en) | Simulation device for co-verifying hardware and software | |
Rox et al. | Compositional performance analysis with improved analysis techniques for obtaining viable end-to-end latencies in distributed embedded systems | |
Sun et al. | A pre-order relation for exact schedulability test of sporadic tasks on multiprocessor Global Fixed-Priority scheduling | |
Tolosana-Calasanz et al. | Model-driven development of data intensive applications over cloud resources | |
Nouri et al. | Building faithful high-level models and performance evaluation of manycore embedded systems | |
KR101383225B1 (ko) | 하나 이상의 실행 유닛에 대한 성능 분석 방법, 성능 분석 장치 및 성능 분석 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체 | |
Cicirelli et al. | Analyzing stochastic reward nets by model checking and parallel simulation | |
Bobrek et al. | Stochastic contention level simulation for single-chip heterogeneous multiprocessors | |
Guan | Techniques for building timing-predictable embedded systems | |
Knorreck | UML-based design space exploration, fast simulation and static analysis | |
US9740529B1 (en) | High throughput synchronous resource-constrained scheduling for model-based design | |
Knorreck et al. | Fast simulation techniques for design space exploration | |
JP6249827B2 (ja) | シミュレーション装置及びシミュレーションプログラム | |
KR101621280B1 (ko) | 최악 응답 시간 분석 방법 및 컴퓨터 프로그램 | |
Anssi et al. | AUTOSAR vs. MARTE for enabling timing analysis of automotive applications | |
Frijns et al. | Timing analysis of first-come first-served scheduled interval-timed directed acyclic graphs | |
Tripakis et al. | Tokens vs. signals: On conformance between formal models of dataflow and hardware | |
Muhammad et al. | Modelling embedded systems with AADL: a practical study | |
Bobrek et al. | Shared resource access attributes for high-level contention models | |
Chen et al. | Forming spn-MapReduce model for estimation job execution time in cloud computing | |
Haggarty et al. | Distributed response time analysis of GSPN models with MapReduce | |
Feljan et al. | Enhancing model-based architecture optimization with monitored system runs | |
Sun et al. | Real-time schedulability analysis with formal techniques | |
Richter et al. | Bottom-up performance analysis of HW/SW platforms |
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: 20160224 Year of fee payment: 6 |