KR20140030660A - Performance analysis method and performance analysis apparatus for at least one execution unit - Google Patents

Performance analysis method and performance analysis apparatus for at least one execution unit Download PDF

Info

Publication number
KR20140030660A
KR20140030660A KR1020120097103A KR20120097103A KR20140030660A KR 20140030660 A KR20140030660 A KR 20140030660A KR 1020120097103 A KR1020120097103 A KR 1020120097103A KR 20120097103 A KR20120097103 A KR 20120097103A KR 20140030660 A KR20140030660 A KR 20140030660A
Authority
KR
South Korea
Prior art keywords
task
execution
graph
execution time
tasks
Prior art date
Application number
KR1020120097103A
Other languages
Korean (ko)
Other versions
KR101383225B1 (en
Inventor
하순회
김진우
최준철
하효진
오현옥
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020120097103A priority Critical patent/KR101383225B1/en
Publication of KR20140030660A publication Critical patent/KR20140030660A/en
Application granted granted Critical
Publication of KR101383225B1 publication Critical patent/KR101383225B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance 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

The present invention relates to a performance analysis method and performance analysis apparatus for at least one execution unit. The performance analysis method comprises the steps of: (a) loading task graph information including dependency between tasks; (b) selecting a task on the task graph, based on a specified priority; (c) calculating an execution time boundary of the selected task using the mapping relationship of the selection task to at least one execution unit, and the dependency between the tasks; and (d) repeating the step (b) and the step (c) for the remaining tasks on the task graph. By using the present invention, performance can be predicted at high speed in consideration of various scheduling types in a variety of embedded systems. [Reference numerals] (AA) A:= Task graph set; (BB) Q:= Order list of tasks aligned in the descending order of priority without breaking the dependency of an ancestor-descendant order of a task graph; (CC) S: Complete queue of a task (Task group in which minimum and maximum values are calculated); (S100) Start; (S200) Read a task graph set(A); (S300) Set Q; (S500) Calculate the execution time boundaries of all tasks; (S600) Execution time of at least one task is changed?; (S700) End

Description

하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치{PERFORMANCE ANALYSIS METHOD AND PERFORMANCE ANALYSIS APPARATUS FOR AT LEAST ONE EXECUTION UNIT}PERFORMANCE ANALYSIS METHOD AND PERFORMANCE ANALYSIS APPARATUS FOR AT LEAST ONE EXECUTION UNIT}

하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치에 관한 것으로서, 구체적으로는 하나 이상의 실행 유닛에서 실행되는 태스크 그래프와 이 태스크 그래프에 포함된 태스크들의 실행 유닛으로의 맵핑 관계를 이용하여 각 태스크 그래프의 최대 응답 시간과 같은 태스크 그래프의 성능을 빠른 속도로 그리고 최상의 결과에 근접하도록 예측 또는 결정할 수 있도록 하는, 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치에 관한 것이다.The present invention relates to a performance analysis method and a performance analysis apparatus for one or more execution units. Specifically, each task graph is performed by using a task graph executed in one or more execution units and a mapping relationship between tasks included in the task graph to execution units. A performance analysis method and a performance analysis apparatus for one or more execution units that enable predicting or determining performance of a task graph, such as a maximum response time, at high speed and close to best results.

자동차, 비행기, 가전 기기, 휴대형 기기 등과 같은 내장형 시스템은 각 기기의 응용에 따라 주어진 응용을 수행하기 위한 하나 이상의 프로세서와 이 프로세서를 연결하기 위한 버스(예를 들어 CAN 버스)를 구비한다.Embedded systems, such as automobiles, airplanes, consumer electronics, portable devices, etc., have one or more processors for performing a given application and a bus (e.g., CAN bus) for connecting the processors, depending on the application of each device.

이러한 내장형 시스템은 각 응용에 따라 특화된 기능을 수행하고, 각 응용은 각 내장형 시스템의 실시간성에 따라 지정된 응답 시간(Response time)에 맞추어 설계될 필요가 있다. 이에 따라 응용을 구성하는 소프트웨어가 주어진 내장형 시스템의 컴퓨터 아키텍처에 최적화되어 설계될 필요가 있고 또한 내장형 시스템의 컴퓨터 아키텍처가 응용이 지정된 응답 시간을 맞추지 못하는 경우에는 고속의 프로세서를 더 탑재하거나 하드웨어 가속기(accelator)를 더 포함하도록 설계 변경이 필요하게 된다.Such embedded systems perform specialized functions for each application, and each application needs to be designed according to the response time specified according to the real time of each embedded system. As a result, the software constituting the application needs to be designed to be optimized for the computer architecture of a given embedded system, and if the computer architecture of the embedded system fails to meet the specified response time, it may be equipped with a higher speed processor or a hardware accelerator. Design changes are needed to further include).

이러한 설계 변경 혹은 응용의 최적화가 지정된 응답 시간에 맞추어지는 지를 알기 위해서는 내장형 시스템의 하드웨어 내에서 응용의 소프트웨어가 어떻게 수행되는지 혹은 각 응용이 지정된 응답 시간에 충족하는지를 알기 위한 분석 장치 또는 분석 툴(tool)이 필요하다.To know whether these design changes or application optimizations are tailored to the specified response time, an analysis device or analysis tool to see how the application's software runs within the hardware of the embedded system or whether each application meets the specified response time. This is necessary.

이러한 분석 장치 또는 분석 툴로서 시뮬레이션 기반의 접근 방법이 알려져 있다. 이러한 시뮬레이션 기반의 접근 방법은 성능 측정의 대상인 실제 하드웨어를 시뮬레이션할 수 있는 가상 프로토타입(prototype) 시스템상에서 응용을 직접 실행하여 각 응용이 주어진 응답 시간에 맞추어지는 지를 알 수 있도록 한다.As such an analysis device or analysis tool, a simulation based approach is known. This simulation-based approach allows applications to be run directly on a virtual prototype system that can simulate the actual hardware being measured, so that each application can be tuned for a given response time.

이러한 시뮬레이션 기반의 접근 방법에서는 각 응용의 실행 시간 또는 응답 시간을 측정하기 위해서 많은 시간(즉 시뮬레이션 시간)이 필요하고 또한 다양한 아키텍처를 지원하지 못하여 유연성이 떨어지고 각 응용의 다양한 테스트 케이스를 구비하여야 정확한 성능 결과를 측정할 수 있도록 하고 이에 따라 모든 발생 가능한 테스트 케이스를 가상 프로토타입의 시스템상에 입력하는 것이 불가능하기에 가상 프로토타입의 시스템상에서 예측하지 못한 성능 결과가 실제의 기기에서 발생할 수도 있다.This simulation-based approach requires a lot of time (ie simulation time) to measure the execution time or response time of each application, and does not support various architectures, resulting in inflexibility and the need for various test cases for each application. Unexpected performance results on the virtual prototype's system may occur on the real device because the results are measurable and thus all possible test cases cannot be entered on the virtual prototype's system.

이에 따라 개발자는 불의의 성능 결과의 발생을 방지하기 위해서 주어진 응용이 요구하는 성능 이상의 성능을 수행할 수 있는 컴퓨터 아키텍처를 설계하고 불의의 성능 결과의 발생을 줄이고자 하는 경향이 발생하고 이는 각 기기의 개발 비용 또는 생산 비용을 증가시키는 경향이 발생한다.As a result, developers have a tendency to design computer architectures that can perform beyond the performance required by a given application in order to prevent inadvertent performance results and to reduce the incidence of unexpected performance results. There is a tendency to increase development costs or production costs.

이러한 시뮬레이션 기반의 접근 방법의 대안으로 분석적 방법(analytical method)이 알려져 있고 이 분석적 방법은 전체론적(holistic) 접근 방법과 구성적(compositional) 접근 방법이 알려져 있다. An analytical method is known as an alternative to the simulation-based approach, and the analytical method is known as a holistic approach and a compositional approach.

예를 들어 전체론적 접근 방법은, 주어진 내장형 시스템에서 주어진 응용의 태스크에 대한 스케쥴링과 주어진 내장형 시스템 내에서의 통신(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.] 참조)For example, the holistic approach is pessimistic by integrating scheduling for a given application's tasks in a given embedded system and communication within a given embedded system into a single analysis framework. Calculate the Worst Case Response Time of a specific task according to the scenario (K. Tindel and J. Clark, "Holistic Schedulability Analysis of Distributed Hard Real-time Systems", Microprocessing and microprogramming, Vol 40, pp. 117-134, April, 1994 and 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)을 고려하지 못하여 이 전체론적 접근 방법은 그 적용에 있어서 다양한 컴퓨터 아키텍처를 가지는 내장형 시스템에 범용으로 적용할 수 없는 문제가 있다.This holistic approach does not take into account the contention of communications resources that are limited or preemptive scheduling, so this holistic approach is universally applicable to embedded systems with various computer architectures in their application. There is a problem that is not applicable.

한편 일부의 전체론적 접근 방법에서는, 시간-오토마타(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)이어서 실제 내장형 시스템의 복잡한 응용에 대해서 성능을 측정 또는 결정하기에는 한계가 있다.On the other hand, in some holistic approaches, timed automata (G. Behrmann, A. David, KG Larsen, J. Hakansson, P. Petterson, W. Yi, and M. Hendriks. "UPPAAL 4.0" (See QEST, 2006.) or ILP (integer linear programming) -based model checking techniques are also known, but the complexity of measuring these performances is exponential, which can improve performance for complex applications in real embedded systems. There is a limit to measuring or determining.

이와 같이 전체론적 접근 방법은 확장성(scalability)과 유연성(flexibility)이라는 측면에서 심각한 문제점이 있다.As such, the holistic approach has serious problems in terms of scalability and 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.] 참조) 등이 대표적이다.On the other hand, a compositional approach is also known to solve the problem of the holistic approach. This constructive approach is described in 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.) and 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) 시간 경계를 제공한다.Although this constructive approach is more scalable than the holistic approach, and can provide its performance results with faster execution time, the constructive approach takes advantage of the dependencies between the execution order of each task. The WCRT (Worst Case Response Time) provided as a result of that performance provides a loose time boundary.

이러한 느슨한 시간 경계는 역시 주어진 응용이 복잡해짐에 따라 더 확대될 수 밖에 없고 결국에는 과 명세(over specification)된 컴퓨터 아키텍처로의 설계 유도와 이에 따라 설계 비용이나 생산 비용상의 비용을 증대시키는 문제가 있다.These loose time boundaries also have to be expanded as the given application becomes more complex, eventually leading to design induces over-specified computer architectures, thereby increasing design or production costs. .

따라서 상술한 기존의 접근 방법상에서 도출되는 여러 문제점을 해결하여 내장형 시스템의 응용에 적용될 수 있는, 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치가 필요하다.Accordingly, there is a need for a performance analysis method and a performance analysis apparatus for one or more execution units, which can be applied to the application of an embedded system by solving various problems derived from the aforementioned conventional approach.

본 발명은, 상술한 문제점을 해결하기 위해서 안출한 것으로서, 기존에 알려진 전체론적 접근 방법 및 구성적 접근 방법에 비하여 태스크 또는 태스크 그래프의 WCRT와 같은 성능 예측을 보다더 정확히 할 수 있도록 하는, 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치를 제공하는 데 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above-described problems, and at least one of them enables more accurate performance prediction, such as WCRT of a task or task graph, compared to known holistic approaches and constructive approaches. An object thereof is to provide a performance analysis method and a performance analysis apparatus for an execution unit.

또한 본 발명은, 기존의 성능 분석을 위한 접근 방법에 비하여 보다더 빠른 속도로 그 성능 예측을 제공할 수 있도록 하는, 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치를 제공하는 데 그 목적이 있다.It is also an object of the present invention to provide a performance analysis method and a performance analysis apparatus for one or more execution units, which can provide the performance prediction at a faster rate than the conventional approach for performance analysis. have.

또한 본 발명은, 다양한 태스크 스케쥴링 기법을 통합하여 다양한 컴퓨터 아키텍처 상에서 성능 예측이 가능하도록 하는, 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치를 제공하는 데 그 목적이 있다.Another object of the present invention is to provide a performance analysis method and a performance analysis apparatus for one or more execution units, which integrate various task scheduling techniques to enable performance prediction on various computer architectures.

또한 본 발명은, 내장형 시스템의 하드웨어 및 소프트웨어의 설계에 있어서 설계 비용과 생산 비용을 줄일 수 있도록 하는, 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치를 제공하는 데 그 목적이 있다.It is also an object of the present invention to provide a performance analysis method and a performance analysis apparatus for one or more execution units, which can reduce design and production costs in the design of hardware and software of an embedded system.

본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, unless further departing from the spirit and scope of the invention as defined by the appended claims. It will be possible.

상기와 같은 목적을 달성하기 위한, 하나 이상의 실행 유닛에 대한 성능 분석 방법은, (a) 태스크 간의 의존 관계를 포함하는 태스크 그래프 정보를 로딩하는 단계와 (b) 지정된 우선 순위에 기초하여 태스크 그래프의 태스크를 선택하는 단계와 (c) 선택된 태스크의 하나 이상의 실행 유닛에서의 맵핑 관계와 태스크 간의 의존 관계를 이용하여 선택된 태스크의 실행 시간 경계를 계산하는 단계와 (d) 태스크 그래프의 나머지 태스크에 대해서 단계 (b)와 단계 (c)를 반복하는 단계를 포함한다.In order to achieve the above object, a performance analysis method for one or more execution units includes the steps of (a) loading task graph information including dependencies between tasks and (b) Selecting a task; (c) calculating a run time boundary of the selected task using a mapping relationship between one or more execution units of the selected task and the task; and (d) for the remaining tasks in the task graph. repeating steps (b) and (c).

또한 상기와 같은 목적을 달성하기 위한, 하나 이상의 실행 유닛에 대한 성능 분석 방법은, 단계 (c)가, (c-1) 선택된 태스크의 실행 시간 경계가 계산될 수 있는 지를 결정하는 단계와 (c-2) 실행 시간 경계가 계산될 수 없는 경우에, 대기 큐에 선택된 태스크를 삽입하는 단계와 (c-3) 실행 시간 경계가 계산될 수 있는 경우에, 실행 시간 경계를 계산 완료한 완료 큐에 선택된 태스크를 삽입하는 단계를 포함한다.In addition, to achieve the above object, a performance analysis method for one or more execution units includes the steps of (c) determining whether (c-1) the execution time boundary of the selected task can be calculated; and (c -2) inserting the selected task into the wait queue if the runtime boundary cannot be computed and (c-3) if the runtime boundary can be computed, then executing the runtime boundary to the computed completion queue Inserting the selected task.

또한 상기와 같은 목적을 달성하기 위한, 하나 이상의 실행 유닛에 대한 성능 분석 장치는, 태스크 간의 의존 관계를 포함하는 태스크 그래프 정보를 로딩하는 태스크 그래프 로딩부와 지정된 우선 순위에 기초하여 태스크 그래프의 태스크를 선택하는 태스크 그래프 선택부와 선택된 태스크의 하나 이상의 실행 유닛에서의 맵핑 관계와 태스크 간의 의존 관계를 이용하여 선택된 태스크의 실행 시간 경계를 계산하는 태스크 실행 시간 계산부를 포함하며, 태스크 그래프 선택부 및 태스크 실행 시간 계산부는, 태스크 그래프의 모든 태스크에 대해서 선택하여 실행 시간 경계를 계산한다. In addition, to achieve the above object, the performance analysis apparatus for one or more execution units, the task graph loading unit for loading the task graph information including the dependency between the tasks and the task of the task graph based on the specified priority A task execution time calculation unit that calculates an execution time boundary of the selected task using a task graph selection unit to select a mapping relationship between one or more execution units of the selected task and a task; The time calculation unit selects all tasks in the task graph to calculate execution time boundaries.

또한 상기와 같은 목적을 달성하기 위한, 하나 이상의 실행 유닛에 대한 성능 분석 장치는, 태스크 그래프 로딩부가, 복수의 태스크 그래프의 실행 주기를 각각 결정하는 실행 주기 결정부와 복수의 태스크 그래프 각각의 실행 주기에 따라 복수의 태스크 그래프 각각의 태스크 그래프 인스턴스(instance)를 생성하는 태스크 그래프 인스턴스 생성부를 포함하며, 생성된 태스크 그래프의 인스턴스의 개수는, 복수의 태스크 그래프의 실행 주기 간의 최소 공배수를 이용하여 결정되며, 태스크 실행 시간 계산부는, 생성된 태스크 그래프의 인스턴스로부터 선택된 태스크에 대해서 실행 시간 경계를 계산한다.In addition, in order to achieve the above object, the performance analysis apparatus for one or more execution units, the task graph loading unit, each of the execution cycle determination unit for determining the execution cycle of the plurality of task graphs and the execution cycle of each of the plurality of task graphs And a task graph instance generating unit for generating a task graph instance of each of the plurality of task graphs, wherein the number of instances of the generated task graph is determined using a least common multiple between execution cycles of the plurality of task graphs. The task execution time calculation unit calculates an execution time boundary for the task selected from the generated instance of the task graph.

상기와 같은 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치는, 기존에 알려진 전체론적 접근 방법 및 구성적 접근 방법에 비하여 태스크 또는 태스크 그래프의 WCRT와 같은 성능 예측을 보다더 정확히 할 수 있도록 하는 효과가 있다. The performance analysis method and the performance analysis device for one or more execution units as described above are more accurate than the conventional holistic approach and the constitutional approach known to enable more accurate performance prediction such as WCRT of a task or task graph. It works.

또한 상기와 같은 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치는, 기존의 성능 분석을 위한 접근 방법에 비하여 보다더 빠른 속도로 그 성능 예측을 제공할 수 있도록 하는 효과가 있다.In addition, the performance analysis method and the performance analysis device for the one or more execution units as described above, it is effective to provide the performance prediction at a faster rate than the conventional approach for performance analysis.

또한 상기와 같은 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치는, 다양한 태스크 스케쥴링 기법을 통합하여 다양한 컴퓨터 아키텍처 상에서 성능 예측이 가능하도록 하는 효과가 있다. In addition, the performance analysis method and the performance analysis apparatus for one or more execution units as described above have an effect of integrating various task scheduling techniques to enable performance prediction on various computer architectures.

또한 상기와 같은 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치는, 내장형 시스템의 하드웨어 및 소프트웨어의 설계에 있어서 설계 비용과 생산 비용을 줄일 수 있도록 하는 효과가 있다. In addition, the performance analysis method and the performance analysis device for one or more execution units as described above, it is effective to reduce the design cost and production cost in the design of hardware and software of the embedded system.

본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtained by the present invention are not limited to the above-mentioned effects, and other effects not mentioned can be clearly understood by those skilled in the art from the following description will be.

도 1은 성능 분석 장치의 예시적인 하드웨어 블록도를 도시한 도면이다.
도 2는 예시적인 태스크 그래프와 실행 유닛 그래프 및 태스크 그래프와 실행 유닛 그래프 간의 맵핑 관계를 도시한 예제이다.
도 3은 태스크 그래프의 성능 분석을 위한 기본적인 제어 흐름을 도시한 도면이다.
도 4는, 도 3의 단계 S500에 대한 상세 제어 흐름을 도시한 도면이다.
도 5는, 도 4의 단계 S550에 대한 상세 제어 흐름을 도시한 도면이다.
도 6은, 도 2의 예제에 Min-Max 분석 방법의 적용에 따른 스케쥴링 결과를 나타내는 도면이다.
도 7은 Min-Max 분석 방법을 적용하기 위한 또다른 예시적인 태스크 그래프와 실행 유닛 간의 맵핑 관계 그리고 이 맵핑 관계에 따라 계산된 각 태스크의 실행 시간 경계를 도시한 도면이다.
도 8은 불가능한 배제를 포함하는 태스크 그래프와 실행 유닛간의 맵핑 관계와 이에 따라 반복에 따라 변화하는 실행 시간 경계를 도시한 도면이다.
도 9는, 최소 시작 시간 및 최소 종료 시간의 타이트한 계산을 위한 태스크 그래프와 실행 유닛 간의 맵핑 관계 및 계산된 실행 시간 경계를 도시한 도면이다.
도 10은, 본발명에 따른 성능 분석 장치의 예시적인 기능 블록도를 도시한 도면이다.
1 is a diagram illustrating an exemplary hardware block diagram of a performance analysis apparatus.
2 is an example illustrating a mapping relationship between an exemplary task graph and an execution unit graph and a task graph and an execution unit graph.
3 is a diagram illustrating a basic control flow for performance analysis of a task graph.
4 is a diagram illustrating a detailed control flow of step S500 of FIG. 3.
FIG. 5 is a diagram illustrating a detailed control flow for step S550 of FIG. 4.
6 is a diagram illustrating a scheduling result according to the application of the Min-Max analysis method to the example of FIG. 2.
FIG. 7 is a diagram illustrating a mapping relationship between another exemplary task graph and execution units for applying the Min-Max analysis method and execution time boundaries of each task calculated according to the mapping relationship.
FIG. 8 is a diagram illustrating a mapping relationship between task graphs and execution units including impossible exclusions and thus execution time boundaries that change according to repetition.
FIG. 9 is a diagram illustrating a mapping relationship between calculated task graphs and execution units and calculated execution time boundaries for tight calculation of minimum start time and minimum end time.
10 is a diagram illustrating an exemplary functional block diagram of a performance analysis apparatus according to the present invention.

상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술 되어 있는 상세한 설명을 통하여 더욱 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다.
The above and other objects, features and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings, in which: It can be easily carried out. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명은 하나 이상의 실행 유닛에 대하여 주어진 태스크( 그래프)의 실행 성능을 분석하기 위한 전체론적 분석 방법과 그 장치에 관한 것이다. 이 분석 방법은 이하에서 "Min-Max 분석 방법"이라고 지칭된다. 이 Min-Max 분석 방법은 구성적 접근 방법에 비하여 보다더 정확한 또는 타이트(tight)한 시간 경계(bound)를 제공하고 복잡도가 다항(polynomial) 복잡도에 이르러 빠른 시간 내에 태스크 또는 태스크 그래프의 WCRT와 같은 성능 예측 결과를 제공할 수 있도록 한다.
The present invention relates to a holistic analysis method and apparatus therefor for analyzing the performance of execution of a given task (graph) for one or more execution units. This analysis method is referred to as "Min-Max analysis method" below. This Min-Max analysis method provides more accurate or tight time bounds than the constitutional approach, and the complexity reaches polynomial complexity, such as WCRT in a task or task graph in a short time. Allows you to provide performance prediction results.

먼저 본 발명에 따른 성능 분석 장치의 하드웨어 블록도(도 1)를 살펴보면, 이 성능 분석 장치는, 메모리(101), 대용량 저장 매체(103), 입력 인터페이스(105), 출력 인터페이스(107), 통신 인터페이스(109) 및 프로세서(111)와 각 하드웨어 블록 간의 데이터나 제어 신호를 송수신하기 위한 시스템 버스/제어 버스(113)를 포함한다. First, referring to a hardware block diagram (FIG. 1) of a performance analyzing apparatus according to the present invention, the performance analyzing apparatus includes a memory 101, a mass storage medium 103, an input interface 105, an output interface 107, and communication. And a system bus / control bus 113 for transmitting and receiving data or control signals between the interface 109 and the processor 111 and each hardware block.

이 성능 분석 장치는, 이 성능 분석 장치의 기능 또는 용도에 따라 하드웨어 블록도 중 일부의 블록을 생략하는 구성으로 구성될 수 있다. 예를 들어 성능 분석 장치는, 개인 사용자(또는 개발자)를 위한 예를 들어 개인용 PC 등일 수 있고 이 경우에는 통신 인터페이스(109)는 생략될 수 있다. 또는 성능 분석 장치는 다수의 사용자에 연결되어 다수의 사용자의 성능 분석 요구를 처리할 수 있는 원격 서버일 수 있고 이 경우에는 입력 인터페이스(105)와 출력 인터페이스(107)는 필요에 따라 생략될 수 있다. The performance analyzing apparatus may be configured to omit some of the blocks in the hardware block diagram according to the function or use of the performance analyzing apparatus. For example, the performance analysis device may be, for example, a personal PC or the like for an individual user (or developer), in which case the communication interface 109 may be omitted. Alternatively, the performance analysis device may be a remote server connected to multiple users and capable of processing performance analysis requests of multiple users, in which case the input interface 105 and output interface 107 may be omitted as necessary. .

성능 분석 장치의 각 하드웨어 블록들을 간단히 살펴보면, 메모리(101)는, SDRAM과 같은 휘발성 메모리이다. 이 메모리(101)는 대용량 저장 매체(103)에 저장되거나 또는 통신 인터페이스(109)를 통해 수신된 태스크 그래프의 정보를 프로세서(111)의 제어하에 로딩할 수 있고, 또는 대용량 저장 매체(103) 등에 저장된 Min-Max 분석 방법을 수행하기 위한 프로그램을 프로세서(111)의 제어하에 로딩하여 이 프로그램이 실행될 수 있도록 한다.Looking briefly at each hardware block of the performance analysis device, memory 101 is a volatile memory, such as SDRAM. The memory 101 can load the information of the task graph stored in the mass storage medium 103 or received through the communication interface 109 under the control of the processor 111, or the mass storage medium 103 or the like. A program for performing the stored Min-Max analysis method is loaded under the control of the processor 111 so that the program can be executed.

대용량 저장 매체(103)는, 하드 디스크나 USB 메모리 등과 같이 다수의 데이터 등을 저장할 수 있는 저장 매체이다. 이 대용량 저장 매체(103)는 프로세서(111)에 이용될 각종 프로그램을 저장하고 각종 데이터를 저장한다.The mass storage medium 103 is a storage medium that can store a large number of data, such as a hard disk or a USB memory. The mass storage medium 103 stores various programs to be used for the processor 111 and stores various data.

예를 들어 대용량 저장 매체(103)는, 프로세서(111)에 의해 수행되는 Min-Max 분석 방법에 대한 프로그램과 이 Min-Max 분석 방법으로 분석할 하나 이상의 태스크 그래프와 이 태스크 그래프가 수행되는 대상 하드웨어 아키텍처 또는 대상 하드웨어 아키텍처에서 태스크 그래프의 태스크를 수행할 수 있는 프로세서나 버스와 같은 실행 유닛의 연결 관계를 나타내는 실행 유닛 그래프를 포함한다.For example, the mass storage medium 103 may include a program for the Min-Max analysis method performed by the processor 111, one or more task graphs to be analyzed by the Min-Max analysis method, and the target hardware on which the task graph is performed. It contains an execution unit graph that represents the connection of execution units, such as processors or buses, that can perform tasks in the architecture or target hardware architecture.

여기서 태스크 그래프나 실행 유닛 그래프는 반드시 이미지의 형태로 표현될 필요는 없으며, 태스크 그래프나 실행 유닛 그래프에 포함되는 태스크 또는 실행 유닛 사이에서의 연결 관계나 의존 관계를 표현할 수 있는 자료 구조로 표현되거나 혹은 이미지와 함께 표현될 수 있다. Here, the task graph or execution unit graph does not necessarily need to be expressed in the form of an image, but is represented by a data structure that can express a connection or dependency relationship between tasks or execution units included in the task graph or execution unit graph. It can be represented with an image.

물론 성능 분석 장치의 응용 예에 따라서 이러한 태스크 그래프와 실행 유닛 그래프는 통신 인터페이스(109)를 통해서 수신될 수도 있다.Of course, this task graph and execution unit graph may be received through the communication interface 109 according to the application of the performance analysis apparatus.

여기서, 태스크 그래프와 실행 유닛 그래프에 대해서 예제를 통해서 살펴보도록 한다.Here, the task graph and the execution unit graph will be described with examples.

도 2를 참조하여, 태스크 그래프와 실행 유닛 그래프 및 태스크 그래프의 태스크와 실행 유닛 그래프 상의 하나 이상의 실행 유닛의 맵핑 관계를 살펴보면, 태스크 그래프는 실행 유닛 그래프 상에서 수행되는 태스크 모델을 나타낸다.Referring to FIG. 2, referring to the mapping relationship between a task graph, an execution unit graph, and a task of the task graph and one or more execution units on the execution unit graph, the task graph represents a task model performed on the execution unit graph.

이 태스크 그래프는, 예를 들어 순환하지 않는(acyclic) 그래프로 표현되고, 각각의 태스크 그래프 T = {V,E}로 표현된다. 여기서 V는 태스크 그래프 내에 포함된 태스크의 세트를 나타내고, E는 태스크 간의 의존 관계를 나타내는 에지의 세트를 나타낸다. This task graph is represented by an acyclic graph, for example, and is represented by each task graph T = {V, E}. Where V represents a set of tasks included in the task graph, and E represents a set of edges representing dependencies between tasks.

예를 들어 E의 세트에 포함된 에지는 두 개의 태스크의 페어(pair)로 표현될 수 있고, 이러한 의존 관계는 두 개의 태스크의 수행 순서를 정의한다. 예를 들어 도 2의 (a)에서 알 수 있는 바와 같이

Figure pat00001
(
Figure pat00002
의 후행 또는 자손 태스크, 이하에서는 후행 태스크 및 자손 태스크란 용어를 혼용하여 사용한다.)은
Figure pat00003
(
Figure pat00004
의 선행 또는 선조 태스크, 이하에서는 선행 태스크 및 선조 태스크란 용어를 혼용하여 사용한다.)의 수행이 완료된 후에 수행될 수 있다. 또한 각 태스크 그래프는 선행하는 태스크에 의존하지 않는 소스 태스크(
Figure pat00005
,
Figure pat00006
)를 포함하며 이러한 소스 태스크는 (p,j,d)의 튜플에 의한 제어하에 시간의 흐름에 따라 실행될 수 있는 태스크이다. 여기서 p는 소스 태스크 또는 이 소스 태스크를 포함하는 태스크 그래프의 실행 주기(period)를 나타내고, j는 소스 태스크 또는 태스크 그래프가 맵핑된 실행 유닛으로 릴리스 되는 시간의 오차 범위, d는 이 태스크 그래프가 다수의 태스크 그래프 인스턴스(instance)로 생성될 때에 태스크 그래프 인스턴스의 릴리스 되는 시간 간의 최소 시간 거리를 나타낸다.For example, an edge included in a set of E may be represented as a pair of two tasks, and this dependency defines the order of execution of the two tasks. For example, as can be seen in Figure 2 (a)
Figure pat00001
(
Figure pat00002
Trailing or descendant tasks in, hereinafter, the terms trailing task and descendant task are used interchangeably.)
Figure pat00003
(
Figure pat00004
In the preceding or ancestor task, hereinafter, the terms preceding task and ancestor task are used interchangeably. In addition, each task graph is a source task (depending on the preceding task).
Figure pat00005
,
Figure pat00006
This source task is a task that can be executed over time under the control of a tuple of (p, j, d). Where p represents the period of execution of the source task or task graph that contains this source task, j is the margin of error in the time that the source task or task graph is released to the mapped execution unit, d is the number of this task graph Represents the minimum time distance between when a task graph instance is released when it is created by a task graph instance.

도 2의 (b)에서 알 수 있는 바와 같이, 태스크 그래프

Figure pat00007
는 주기 100을 가지고 주기적으로 수행되고 태스크 그래프
Figure pat00008
도 동일한 주기를 가지고 주기적으로 수행된다.As can be seen in Figure 2 (b), the task graph
Figure pat00007
Is performed periodically with cycle 100 and the task graph
Figure pat00008
Also performed periodically with the same period.

한편 도 2의 (c)는 실행 유닛 그래프와 각 태스크와 각 실행 유닛에 대해서 주어지는 우선 순위와 스케쥴링 방식과 맵핑 관계를 도시하고 있다. 이러한 정보에는 각 태스크의 최소 실행 시간과 최대 실행 시간과, 각 태스크 간의 우선 순위 및 각 실행 유닛의 스케쥴링 방식을 포함한다. 이러한 정보들은 개발자나 사용자로부터 주어진다. 그리고 스케쥴링 방식에는 선점형(P)과 비선점형(N) 등이 있을 수 있다. On the other hand, Fig. 2 (c) shows the execution unit graph, each task, the priority given to each execution unit, the scheduling scheme, and the mapping relationship. This information includes the minimum and maximum execution times of each task, the priority between each task, and the scheduling scheme of each execution unit. This information comes from the developer or the user. The scheduling method may include a preemptive type ( P ) and a non-preemptive type ( N ).

그리고 각각의 실행 유닛(PE0, PE1)은 하나 이상의 태스크를 실행할 수 있고, 이러한 실행 유닛은 태스크 그래프가 실제로 수행될 대상 프로세서이거나 혹은 프로세서와 프로세서를 연결하기 위한 버스 등과 같은 하드웨어 리소스를 나타낸다. 예를 들어 도 2의 (c)에서 PE0는

Figure pat00009
,
Figure pat00010
를 수행하도록 맵핑되고 PE0는 선점형(P) 스케쥴링 방식을 가지고, PE1은 버스로서 태스크 간의 데이터를 전달하거나 수신하기 위한 통신 태스크인
Figure pat00011
,
Figure pat00012
를 맵핑하여 비선점형(N) 스케쥴링 방식을 가질 수 있다.Each of the execution units PE0 and PE1 may execute one or more tasks, and these execution units represent hardware resources such as a target processor on which a task graph is actually executed or a bus for connecting the processor and the processor. For example, in FIG. 2C, PE0 is
Figure pat00009
,
Figure pat00010
PE0 has a preemptive ( P ) scheduling scheme, and PE1 is a communication task for transferring or receiving data between tasks as a bus.
Figure pat00011
,
Figure pat00012
By mapping to have a non-preemptive ( N ) scheduling scheme.

여기서 태스크는 도 2의 (c)에서 알 수 있는 바와 같이, 실행 유닛 그래프의 실행 유닛에 맵핑되는 기본 단위이다. 이러한 태스크는 최소 실행 시간과 최대 실행 시간이 주어진다. 이러한 최소(최대) 실행 시간은 맵핑된 대상 실행 유닛에서 이 태스크가 실행될 때의 최소(최대)로 걸리는 시간으로서 이러한 시간은 시간 단위로 혹은 명령어의 개수 또는 이 명령어를 시간 단위로 환산한 형태로 주어진다. Here, the task is a basic unit mapped to the execution unit of the execution unit graph, as can be seen in FIG. These tasks are given a minimum execution time and a maximum execution time. This minimum (maximum) execution time is the time taken by the minimum (maximum) when this task is executed in the mapped target execution unit, which is given in hours or the number of instructions or the equivalent of this instruction in hours. .

그리고 실행 유닛 그래프의 통신 네트워크(도 2의 PE1)에 맵핑된 태스크는 통신 태스크로 간주된다. And the task mapped to the communication network (PE1 in Fig. 2) of the execution unit graph is considered as the communication task.

이러한 태스크 그래프와 실행 유닛 그래프 및 맵핑 및 각종 정보는 개발자(사용자)에 의해서 주어지고, 이 정보를 이용하여 태스크 그래프의 각 태스크가 특정 실행 유닛에 맵핑되어 실행될 때 각 태스크 또는 각 태스크 그래프의 실행 시간 경계(예를 들어 WCRT)와 같은 성능 예측을 성능 분석 방법 또는 성능 분석 장치가 할 수 있도록 한다. These task graphs and execution unit graphs and mappings and various information are given by the developer (user), and the information is used to execute each task or execution time of each task graph when each task in the task graph is mapped to a specific execution unit and executed. Allows performance analysis methods or performance analysis devices to make performance predictions such as boundaries (eg WCRT).

이러한 태스크 그래프와 실행 유닛 그래프 및 맵핑 정보 등은 프로그램이 인식할 수 있는 자료 구조의 형태로 표현될 수 있고 이러한 자료 구조의 형태로 표현된 정보들은 프로세서(111)로 하여금 성능 예측 또는 분석을 가능하게 하며 이하에서 좀 더 상세히 살펴보도록 한다. Such task graphs, execution unit graphs, and mapping information may be represented in the form of data structures that can be recognized by the program, and the information expressed in the form of such data structures enables the processor 111 to predict or analyze performance. See below for more details.

입력 인터페이스(105)는, 개발자 등으로부터 제어 입력을 수신하기 위한 인터페이스로서 예를 들어 마우스나 키보드 등으로부터 제어 입력을 수신하기 위한 제어 포트를 포함한다. The input interface 105 is an interface for receiving control input from a developer or the like and includes a control port for receiving control input from, for example, a mouse or a keyboard.

출력 인터페이스(107)는, 개발자의 제어에 따라 수행된 결과를 출력하기 위한 인터페이스로서 예를 들어 디스플레이나 스피커 등으로 이미지나 음향을 출력하기 위한 제어 포트를 포함한다. The output interface 107 is an interface for outputting a result performed under the control of a developer, and includes a control port for outputting an image or sound to a display or a speaker, for example.

통신 인터페이스(109)는, 유선 랜 또는 무선 랜 등을 통해 인터넷 또는 인트라넷 등에 연결하기 위한 인터페이스이다. 이러한 통신 인터페이스(109)를 통해 원격의 개발자 등으로부터 그래프 등과 같은 정보나 제어 명령을 수신하고 이 제어 명령에 따라 주어진 그래프 정보를 이용하여 성능 분석 또는 예측을 수행할 수 있다.The communication interface 109 is an interface for connecting to the Internet or an intranet via a wired LAN or a wireless LAN. The communication interface 109 may receive information such as a graph or a control command from a remote developer or the like, and perform performance analysis or prediction using the graph information given according to the control command.

프로세서(111)는, 성능 분석 장치의 각 블록들을 제어하는 예를 들어 프로그램을 메모리(101)를 통해 로딩하여 로딩된 프로그램에 따라 각 하드웨어 블록을 제어할 수 있는 하나 이상의 프로세싱 코어를 포함한다.The processor 111 includes one or more processing cores that control each block of the performance analysis apparatus, for example, by loading a program through the memory 101 and controlling each hardware block according to the loaded program.

이러한 프로세서(111)는 예를 들어 대용량 저장 매체(103)에 저장된 각종 프로그램을 로딩하고 입력 인터페이스(105)나 통신 인터페이스(109)를 통해 수신된 개발자 등으로부터의 제어에 따라 각 태스크 그래프의 성능을 예측하여 그 예측된 결과를 통신 인터페이스(109)나 출력 인터페이스(107)를 통해 출력한다.The processor 111 loads various programs stored in the mass storage medium 103, for example, and performs performance of each task graph according to control from a developer received through the input interface 105 or the communication interface 109, or the like. The predicted result is output through the communication interface 109 or the output interface 107.

프로세서(111) 상에서 수행되는 Min-Max 분석 방법은 이하의 도면을 통해서 좀 더 상세히 살펴보도록 한다. The Min-Max analysis method performed on the processor 111 will be described in more detail with reference to the following drawings.

시스템 버스/제어 버스(113)는, 각 하드웨어 블록들을 연결하여 각 하드웨어 블록들로부터 데이터나 제어 신호를 송수신할 수 있도록 하는 예를 들어 병렬 버스이거나 혹은 시리얼 버스 등일 수 있다.
The system bus / control bus 113 may be, for example, a parallel bus or a serial bus that connects each hardware block to transmit and receive data or control signals from the hardware blocks.

먼저 Min-Max 분석 방법을 구체적으로 들어가기에 앞서 본 발명에서 해결하고자 하는 문제와 기본적인 용어 등에 대해서 정리하면,
First, prior to entering the Min-Max analysis method in detail, the problems and basic terms to be solved in the present invention are summarized.

입력 : 태스크 그래프의 세트와 실행 유닛 그래프와 태스크와 실행 유닛 사이의 맵핑 정보 Input: Set of Task Graphs and Execution Units Mapping Information between Graphs and Tasks and Execution Units

문제 : 각 태스크 그래프

Figure pat00013
에 대해서 WCRT,
Figure pat00014
의 결정.
Problem: each task graph
Figure pat00013
About WCRT,
Figure pat00014
Decision.

물론 본 발명은 각 태스크 그래프의 WCRT(최악 응답 시간, Worst Case Response Time)의 계산에 국한될 필요는 없고, 이 태스크 그래프의 WCRT의 결정으로부터 도출되는 또는 이 도출 과정에서 생성되는 각 태스크의 WCRT 등이나 응답 시간의 범위 등과 같은 다른 성능 분석 또는 예측의 결과 역시 본 발명의 아이디어에 따라 자명하게 계산할 수 있다.
Of course, the present invention is not limited to the calculation of the Worst Case Response Time (WCRT) of each task graph, and the WCRT of each task derived from or generated during the determination of the WCRT of this task graph. The results of other performance analysis or prediction, such as the range of response time, etc. can also be self-explanatory according to the idea of the present invention.

표기Mark 타입* Type * 설명Explanation

Figure pat00015
Figure pat00015
vv
Figure pat00016
의 최소 릴리스 시간
Figure pat00016
Release time
Figure pat00017
Figure pat00017
vv
Figure pat00018
의 최대 릴리스 시간
Figure pat00018
Release time for
Figure pat00019
Figure pat00019
vv
Figure pat00020
의 최소 시작 시간
Figure pat00020
Minimum start time for
Figure pat00021
Figure pat00021
vv
Figure pat00022
의 최대 시작 시간
Figure pat00022
Maximum start time of
Figure pat00023
Figure pat00023
vv
Figure pat00024
의 시작 시간
Figure pat00024
Start time
Figure pat00025
Figure pat00025
vv
Figure pat00026
의 최소 종료 시간
Figure pat00026
Minimum end time of
Figure pat00027
Figure pat00027
vv
Figure pat00028
의 최대 종료 시간
Figure pat00028
Max end time of
Figure pat00029
Figure pat00029
vv
Figure pat00030
의 종료 시간
Figure pat00030
End time of
Figure pat00031
Figure pat00031
cc
Figure pat00032
의 최소(lower bound) 수행(실행) 시간
Figure pat00032
(Lower) execution time of lower bound
Figure pat00033
Figure pat00033
cc
Figure pat00034
의 최대(upper bound) 수행(실행) 시간
Figure pat00034
Upper bound execution (execute) time
Figure pat00035
Figure pat00035
cc
Figure pat00036
의 선행(predecessor) 태스크의 세트
Figure pat00036
Set of predecessor tasks
Figure pat00037
Figure pat00037
cc
Figure pat00038
의 후행(successor) 태스크의 세트
Figure pat00038
Set of successor tasks
Figure pat00039
Figure pat00039
cc
Figure pat00040
의 우선 순위
Figure pat00040
Priority of
Figure pat00041
,
Figure pat00042
,
Figure pat00043
Figure pat00041
,
Figure pat00042
,
Figure pat00043


c


c
소스 태스크
Figure pat00044
의 기간(Period), 최대 지터(maximum jitter), 및 인스턴스 간 최소 지연(minimum delay) 정보
Source task
Figure pat00044
Period, maximum jitter, and minimum delay information between instances
Figure pat00045
Figure pat00045

v

v
Figure pat00046
에서 처음으로 시작하는 태스크에 대한 초기 시간 이후의 지연 오프셋
Figure pat00046
Offset after initial time for task starting first in
Figure pat00047
Figure pat00047
cc
Figure pat00048
가 맵핑된 실행 유닛의 인덱스
Figure pat00048
Of execution units that are mapped
Figure pat00049
Figure pat00049
vv
Figure pat00050
를(보다) 선점할 수 있는 태스크의 세트
Figure pat00050
Set of tasks that can preempt
Figure pat00051
Figure pat00051
vv
Figure pat00052
를(보다) 선점할 수 없는 태스크의 세트
Figure pat00052
Set of tasks that cannot preempt
Figure pat00053
Figure pat00053
vv
Figure pat00054
보다 먼저 스케쥴링된 태스크의 세트
Figure pat00054
Set of tasks that were scheduled earlier
PP cc 선점형(preemptive) 스케쥴링 방식을 사용하는 실행 유닛의 세트Set of execution units using preemptive scheduling NN cc 비선점형(non-preemptive) 스케쥴링 방식을 사용하는 실행 유닛의 세트Set of execution units using non-preemptive scheduling scheme

* 타입 v 는 계산될 변수를 나타내고 타입 c는 개발자 등에 의해서 주어지는 파라미터를 나타낸다.* Type v represents the variable to be calculated and type c represents a parameter given by the developer or the like.

각 변수에 대해서 간단히 살펴보면, 릴리스 시간은 해당 태스크가 주어진(맵핑된) 실행 유닛에서 수행 가능한 상태가 된 시간을 나타내며, 시작 시간은 맵핑된 실행 유닛에서 스케쥴링되어 수행을 시작한 시간을 나타내며, 종료 시간은 맵핑된 실행 유닛에서 수행을 완료한 시간을 나타낸다. 이러한 릴리스 시간, 시작 시간 및 종료 시간은 최소 및 최대 시간의 형태로 표현된다. 이러한 최소 및 최대의 릴리스 시간, 시작 시간 및 종료 시간은 각 태스크에 대해서 계산될 수 있다. 이러한 릴리스 시간, 시작 시간 및 종료 시간은 각 태스크의 성능을 분석을 위한 실행 시간 경계(execution time boundary)에 포함될 수 있고, 이로부터 태스크 그래프의 WCRT 등을 계산할 수 있도록 한다.
For each variable, briefly, the release time represents the time when the task became available to run on a given (mapped) execution unit, the start time represents the time when it was scheduled to start execution in the mapped execution unit, and the end time is Represents the time when the execution is completed in the mapped execution unit. These release times, start times and end times are expressed in the form of minimum and maximum times. These minimum and maximum release times, start time, and end time can be calculated for each task. Such release time, start time, and end time can be included in execution time boundaries for analyzing the performance of each task, from which WCRT, etc. of the task graph can be calculated.

본 발명에 따르는 문제를 해결하기 위해, 도 3은 태스크 그래프의 성능 분석을 위한 기본적인 제어 흐름을 도시한 도면이다. 이러한 제어 흐름은 성능 분석 장치의 프로세서(111)에 의해서 수행되며 바람직하게는 소프트웨어로 된 프로그램을 이용하여 구성될 수 있다. In order to solve the problem according to the present invention, Figure 3 shows the basic control flow for performance analysis of the task graph. This control flow is performed by the processor 111 of the performance analysis device and may be preferably configured using a program in software.

먼저 개발자 등에 의한 성능 분석 요구에 따라 시작(S100)하고, 성능 분석 종료 요구에 따라 종료(S700)된다. First, it starts according to the performance analysis request by the developer (S100), and ends according to the performance analysis end request (S700).

그리고 단계 S200에서 개발자 등으로부터 성능 분석을 요구한 태스크 그래프의 세트를 읽어(로딩하여 메모리(101)로) 들인다. 이 단계 S200에서, 하나 이상의 태스크 그래프를 포함하는 태스크 그래프의 세트로부터 각 태스크 그래프에서의 태스크 간의 의존 관계(에지)와 각 태스크의 수행(실행) 시간(

Figure pat00055
,
Figure pat00056
)과 같은 주어진 파라미터 등을 태스크 그래프 정보로서 태스크 그래프로부터 추출하거나 혹은 주어진 자료 구조를 통해 결정하여 결정된 태스크 그래프 정보를 예를 들어 메모리(101)에 임시로 저장한다. In step S200, a set of task graphs for which performance analysis is requested from a developer or the like is read (loaded and loaded into the memory 101). In this step S200, the dependency (edge) between the tasks in each task graph and the execution (execution) time of each task (from the set of task graphs including one or more task graphs)
Figure pat00055
,
Figure pat00056
A given parameter such as e.g.) may be extracted from the task graph as task graph information or determined through a given data structure to temporarily store the determined task graph information in the memory 101, for example.

태스크 그래프의 세트는 주어진 실행 유닛 그래프 상에서 동시에 수행될 수 있는 하나 이상의 태스크 그래프를 포함한다. 그리고 이 태스크 그래프의 태스크들은 동일한 실행 유닛 상에서 실행될 수 있거나 상이한 실행 유닛 상에서 실행 될 수 있다. 이에 따라 특정 실행 유닛에 맵핑된 태스크는 수행 중에도 다른 태스크에 의해서 스케쥴링 기법(예를 들어 선점형)에 따라 각 태스크의 우선 순위에 의해 실행 도중에 배제될 수 있다. 또한 각 태스크 그래프는 서로 상이한 실행 주기(period)를 가질 수 있다. 이에 따라 하나의 태스크 그래프는 다른 태스크 그래프의 실행 주기의 차이에 따라 다른 태스크 그래프의 여러 주기에 걸쳐서 수행의 영향을 받을 수 있다. The set of task graphs includes one or more task graphs that can be performed simultaneously on a given execution unit graph. And the tasks in this task graph can be executed on the same execution unit or can be executed on different execution units. Accordingly, a task mapped to a specific execution unit may be excluded during execution by the priority of each task according to a scheduling technique (for example, preemptive) by another task while performing the task. In addition, each task graph may have a different execution period. Accordingly, one task graph may be affected by performance over several periods of another task graph according to differences in execution cycles of other task graphs.

이러한 문제점을 고려하여, 단계 S200은, 태스크 그래프의 세트에 있는 복수의 태스크 그래프의 실행 주기를 각각 결정한다. 그리고 각각의 태스크 그래프 별 실행 주기에 따라 태스크 그래프의 인스턴스(instance)를 생성하고, 이 생성된 인스턴스의 태스크에 대해서 실행 시간 경계를 계산하도록 구성할 수 있다.In consideration of this problem, step S200 determines each of the execution cycles of the plurality of task graphs in the set of task graphs. The task graph may be configured to generate an instance of the task graph according to the execution cycle of each task graph, and calculate an execution time boundary for the task of the generated instance.

여기서 생성되는 각 태스크 그래프의 인스턴스의 개수는 (모든 태스크 그래프 실행 주기의 최소 공배수) / (각 태스크 그래프의 실행 주기)로 결정될 수 있다. The number of instances of each task graph generated here may be determined by (minimum common multiple of all task graph execution cycles) / (execution cycle of each task graph).

표 1에서,

Figure pat00057
는 태스크 그래프
Figure pat00058
에 대하여 생성된 인스턴스의 세트를 나타낸다. In Table 1,
Figure pat00057
Task graph
Figure pat00058
Represents a set of instances created for.

이에 따라 이후의 단계에서 이 태스크 그래프의 인스턴스(

Figure pat00059
에 포함되는 인스턴스)에 대해서 각각의 실행 시간 경계가 계산될 수 있도록 한다. 여기서 이 인스턴스는 원 태스크 그래프로부터 추출되거나 획득된 태스크 그래프 정보를 공유하고 이에 따라 태스크의 실행 유닛에 대한 맵핑 정보나 우선 순위 정보 등을 공유하고, 다만 각 인스턴스는 실행 주기에 의해서 각 인스턴스의 실행 순서가 결정되고 실행 시기가 한정될 수 있다.Therefore, in a later step, an instance of this task graph (
Figure pat00059
Each runtime boundary can be calculated for each instance included in. Here, this instance shares the task graph information extracted or obtained from the original task graph and accordingly, the mapping information or priority information of the execution unit of the task, etc. Can be determined and the timing of execution can be limited.

이러한 최소 공배수(Least Common Multiple)를 이용하여 여러 태스크 그래프가 비록 실행 주기가 서로 달라도 각 태스크 그래프의 다른 태스크 그래프로의 스케쥴링에 따른 실행 시간 경계의 변화를 정확히 예측할 수 있도록 한다. By using the least common multiple, multiple task graphs can accurately predict the change in execution time boundaries according to the scheduling of each task graph to another task graph even though the execution cycles are different.

또한 단계 S200은, 실행 유닛과 관련된 정보(예를 들어 태스크와 실행 유닛과의 맵핑 관계, 실행 유닛 간의 연결 관계 등)를 더 로딩하여 메모리(101)에 저장할 수 있다.In operation S200, information related to an execution unit (eg, a mapping relationship between a task and the execution unit, a connection relationship between the execution unit, etc.) may be further loaded and stored in the memory 101.

이후 단계 S300에서 태스크 그래프 세트의 모든 태스크를 태스크 간의 우선 순위에 따라 그리고 토폴로지(topology) 순서를 더 반영하여 순서 리스트(260)(Sorted list, Q)를 설정하여 저장하고, 단계 S400에서 실행 시간 경계가 계산 완료된 태스크를 저장하기 위한 완료 큐(250)(S)를 초기화한다.Subsequently, in step S300, all the tasks of the task graph set are set and stored according to the priority between the tasks and further reflect the topology order, and the ordered list 260 (Sorted list, Q ) is stored, and in step S400, the execution time boundary Initializes a completion queue 250 ( S ) for storing the computed task.

여기서 순서 리스트(260)의 예시적인 생성(설정) 과정을 살펴보면, 실행 유닛 그래프의 각 실행 유닛별로 맵핑된 하나 이상의 태스크를 지정된 우선 순위에 따라, 예를 들어 내림 차순으로, 정렬하여 각 실행 유닛별 정렬 리스트를 생성한다.Looking at an exemplary generation (setting) process of the order list 260 here, one or more tasks mapped to each execution unit in the execution unit graph are sorted according to a specified priority, for example in descending order, for each execution unit. Create a sort list.

그리고 각 실행 유닛별로 우선 순위에 따라 정렬된 하나 이상의 태스크를 다시 토폴로지를 더 고려하여 재정렬한다. 즉 특정 실행 유닛에 맵핑된 하나 이상의 태스크 간에 에지에 의한 의존 관계가 있는 경우에(예를 들어 하나의 실행 유닛에 맵핑된 두 개의 태스크가 에지에 따른 연결 관계에 의해서 선조(predecessor) 태스크와 자손(successor) 태스크의 관계에 있는 경우, 도 2에서

Figure pat00060
는 에지에 의해서
Figure pat00061
의 자손 태스크이고
Figure pat00062
의 선조 태스크이다. 단, 도 2에서는 다른 실행 유닛에 맵핑되어 재정렬이 일어나지 않는다), 이 에지에 의한 의존 관계가 반영되도록 재정렬된다. Then, one or more tasks arranged in order of priority for each execution unit are rearranged by further considering the topology. In other words, if there is a dependency by edge between one or more tasks mapped to a particular execution unit (for example, two tasks mapped to one execution unit have a predecessor task and a descendant) successor) in the relationship of the task,
Figure pat00060
By the edge
Figure pat00061
Is a descendant of
Figure pat00062
The ancestor task of. However, in FIG. 2, it is mapped to another execution unit so that realignment does not occur), and the reordering is reflected to reflect the dependency relationship by this edge.

이에 따라 내림 차순에 의한 정렬에서의 태스크의 순서는 변경될 수 있고, 예를 들어 하나의 실행 유닛에서의 더 높은 우선 순위를 가지는 태스크는 에지에 의한 의존 관계에 따라 더 낮은 우선 순위를 가진 태스크(상기 더 높은 우선 순위를 가지는 태스크의 선조 태스크인 경우) 뒤에 위치하도록 정렬 리스트가 재정렬될 수 있다. 이로 인해 동일한 실행 유닛에 맵핑된 태스크 사이에서는 토폴로지에 의한 의존 관계가 지정된 우선 순위보다 우선적으로 고려하여 정렬될 수 있도록 한다.Accordingly, the order of tasks in sorting in descending order may be changed, for example, a task having a higher priority in one execution unit may have a lower priority in accordance with a dependency by edge. The sort list may be rearranged so as to be located after the ancestor task of the higher priority task. This allows the dependencies by topology to be prioritized over the specified priority among tasks mapped to the same execution unit.

여기서는 우선 순위에 의한 정렬, 이후에 토폴로지 즉 에지에 의한 의존 관계에 따른 재정렬 순으로 설명하였으나, 정렬의 수행 순서를 반대로 할 수도 있다. Here, the sorting is performed in order of priority, and the rearrangement is performed according to the topology, that is, the dependency of edges. However, the order of sorting may be reversed.

이후 각 실행 유닛에 대해서 재정렬된 태스크들은, 순서 리스트(260)에 통합된다. 통합을 하는 방법의 예로서는, 각 실행 유닛에 대해서 재정렬된 태스크의 정렬 리스트에서, 재정렬 순서에 따라서 하나씩 순차적으로 태스크를 추출(예를 들어 실행 유닛이 PE0, PE1으로 된 경우에 PE0의 재정렬 리스트에서 최선의 태스크를 추출하고 다음에는 PE1의 재정렬 리스트에서 최선의 태스크를 추출하고 이후 반복하여)하고 추출된 태스크를 순서 리스트(260)에 저장하도록 할 수 있다. The rearranged tasks for each execution unit are then incorporated into the order list 260. As an example of how to integrate, extract tasks sequentially from the sorted list of reordered tasks for each execution unit, one by one in the reordering order (for example, if the execution unit is PE0, PE1, the best from the reorder list of PE0). And then extract the best task from the reorder list of PE1 and then repeat it) and store the extracted task in the order list 260.

이와 같이 구성된 순서 리스트(260)는, 우선 순위뿐 아니라 토폴로지에 의한 순서까지 고려되어 설정된다.The order list 260 configured as described above is set in consideration of not only the priority but also the order by topology.

이후 단계 S500에서, 순서 리스트(260) Q 에 포함된 모든 태스크에 대해서 실행 시간 경계를 계산한다. 이러한 단계 S500은 하나 이상의 중첩된 루프로 구성되며 도 4와 도 5를 통해서 상세히 살펴보도록 한다. Subsequently, in step S500, execution time boundaries are calculated for all tasks included in the order list 260 Q. This step S500 consists of one or more nested loops and will be described in detail with reference to FIGS. 4 and 5.

여기서 실행 시간 경계는, 각 태스크의 최소 시작 시간(minS), 최대 시작 시간(maxS), 최소 종료 시간(minF) 및 최대 종료 시간(maxF) 중에서 하나 이상의 시간 정보를 포함되도록 구성된다. 이에 따라 각 태스크에 대하여 다른 태스크의 스케쥴링에 따라 변경되는 하나 이상의 시간 정보를 획득할 수 있고 이로부터의 스케쥴링의 영향을 고려하여 태스크 또는 이 태스크를 포함하는 태스크 그래프의 성능 분석 또는 예측이 가능하도록 한다. Here, the execution time boundary is configured to include one or more time information among the minimum start time minS, the maximum start time maxS, the minimum end time minF, and the maximum end time maxF of each task. Accordingly, one or more time information changed according to scheduling of other tasks can be obtained for each task, and performance analysis or prediction of a task or a task graph including the task can be performed in consideration of the effect of the scheduling therefrom. .

그리고 단계 S600에서, 모든 태스크 중에서 적어도 하나 이상의 태스크에 대한 실행 시간 경계가 변경되었는지를 결정하여, 만일 하나 이상의 태스크의 실행 시간 경계가 변경된 경우에는 단계 S400으로 전이하여 변경된 실행 시간 경계를 반영하여 다시 각 태스크에 대한 실행 시간 경계를 계산하도록 하고, 그렇지 않으면 각 태스크 그래프에 대한 성능 분석 결과를, 예를 들어 WCRT, 계산하여 단계 S700으로 전이한다.In step S600, it is determined whether the execution time boundary of at least one task among all the tasks is changed, and if the execution time boundary of one or more tasks is changed, the process proceeds to step S400 to reflect the changed execution time boundary again. The execution time boundary for the task is calculated, otherwise the performance analysis result for each task graph, for example, WCRT, is calculated and transferred to step S700.

이러한 단계 S600은, 실행 시간 경계의 변경을 모니터링하여 변경된 경우에는 변경된 실행 시간 경계를 이용하여 다시 다른 태스크의 실행 시간 경계의 값을 변경하도록 하여 정확한 실행 시간 경계가 수렴될 수 있도록 한다.This step S600 monitors the change in the execution time boundary and, if it is changed, changes the value of the execution time boundary of another task again using the changed execution time boundary so that the correct execution time boundary can be converged.

이러한 성능 분석 결과는 각 태스크 그래프별로 생성될 수 있고, 이로부터 각 태스크 그래프의 최악 응답 시간으로부터 주어진 실행 유닛 그래프 상에서 태스크 그래프가 원하는 응답 시간을 가지는지를 알 수 있도록 한다.
This performance analysis result can be generated for each task graph, from which the worst response time of each task graph can be seen as to whether the task graph has the desired response time on a given execution unit graph.

도 4는, 도 3의 단계 S500에 대한 상세 제어 흐름을 도시한 도면이다. 4 is a diagram illustrating a detailed control flow of step S500 of FIG. 3.

도 3의 단계 S500의 진입에 따라서, 도 4의 단계 S510에서, 대기 큐(240)(W)와 반복 회수에 대한 변수(n)을 초기화한다. 이 대기 큐(240)는, 순서 리스트(260)에서 높은 우선 순위와 토폴로지 순서에 따라 계산을 시도한 태스크가 이 태스크의 태스크 그래프 상의 선행하는 태스크(에지 등으로 인해)의 실행 시간 경계가 아직 계산되지 못해 실행 시간 경계가 계산되지 못하는 경우에 임시로 이 태스크를 저장하기 위한 큐이다. 이러한 대기 큐(240)는 다른 태스크의 실행 시간 경계가 계산 완료됨에 따라 다시 방문되여 대기 큐(240)에 저장된 각 태스크에 대해서 다시 실행 시간 경계가 계산될 수 있도록 한다.According to the entry of step S500 of FIG. 3, in step S510 of FIG. 4, the waiting queue 240 ( W ) and the variable n for the number of repetitions are initialized. This wait queue 240 is not yet computed for the execution time boundary of the task that attempted the calculation according to the high priority and topology order in the order list 260 (due to edges, etc.) on the task graph of this task. It is a queue to temporarily store this task when the execution time boundary is not calculated. The wait queue 240 is revisited as the execution time boundary of another task is calculated, so that the execution time boundary can be calculated again for each task stored in the wait queue 240.

그리고 단계 S520에서, 각 태스크에 대해서 지정된 우선 순위와 토폴로지 순서에 따라 순서화된 순서 리스트(260)(Q)에서 가장 높은 순위(순서)를 가진 태스크를 선택한다. In operation S520, the task having the highest priority (order) is selected from the ordered list 260 ( Q ) according to the priority and topology order specified for each task.

이후 단계 S530에서, 이 선택된 태스크의 실행 유닛 그래프로의 맵핑 관계와 태스크 그래프 상의 에지에 따른 의존 관계를 이용하여, 선택된 태스크의 실행 시간 경계를 계산한다. Subsequently, in step S530, the execution time boundary of the selected task is calculated by using the mapping relationship of the selected task to the execution unit graph and the dependency relation according to the edge on the task graph.

이 단계 S530에 의해서 이루어지는 실행 시간 경계의 계산은 이후에 자세히 살펴보도록 한다.The calculation of the execution time boundary made by this step S530 will be described later in detail.

그리고 단계 S530에서, 선택된 태스크의 실행 시간 경계가 계산될 수 없는 경우에 단계 S560으로 전이하고, 계산될 수 있는 경우에는 단계 S540으로 전이한다.In step S530, if the execution time boundary of the selected task cannot be calculated, the process shifts to step S560, and if it can be calculated, the process shifts to step S540.

단계 S540에서, 선택된 태스크를 완료 큐(250)에 삽입하고, 단계 S550에서 다시 대기 큐(240)에 저장되어 있는 태스크에 대해서 이 선택된 태스크에 의해서 실행 시간 경계를 다시 계산할 수 있는 지를 결정한다. 이 단계 S550은 도 5에서 다시 살펴보도록 한다. In step S540, the selected task is inserted into the completion queue 250, and in step S550 it is determined whether the execution time boundary can be recalculated by the selected task for the task stored in the waiting queue 240 again. This step S550 will be described again with reference to FIG. 5.

그리고 만일 실행 시간 경계가 계산될 수 없는 경우에는 단계 S560에서 선택된 태스크를 대기 큐(240)(W)에 삽입하고, 이후 반복 회수에 대한 변수(n)을 증분한다. If the execution time boundary cannot be calculated, the task selected in step S560 is inserted into the waiting queue 240 ( W ), and then the variable n for the number of iterations is incremented.

그리고 단계 S580과 단계 S590에서 변수(n 등)을 이용하여 도 4의 단계 등을 다시 반복할 것인지를 결정하고 각 단계에서의 결정에 따라 나머지 태스크에 대하여 단계 S520 이하를 반복하거나 또는 단계 S510 이하를 다시 반복한다.
Then, in step S580 and step S590, it is determined whether to repeat the step of FIG. 4 using the variable (n, etc.), and according to the determination in each step, repeating step S520 or less for the remaining tasks or performing step S510 or less. Repeat again.

도 5는, 도 4의 단계 S550에 대한 상세 제어 흐름을 도시한 도면이다. 도 5에 따르면 단계 S551에서 루프의 반복 횟수를 결정하기 위한 변수 k와 변수 n을 초기화한다. 이 변수 k는 대기 큐(240)에 삽입된 태스크의 총 개수를 나타낸다.FIG. 5 is a diagram illustrating a detailed control flow for step S550 of FIG. 4. According to FIG. 5, in step S551, the variable k and the variable n for determining the number of iterations of the loop are initialized. This variable k represents the total number of tasks inserted into the waiting queue 240.

그리고 단계 S552에서 대기 큐(240)로부터 하나의 태스크를 추출하고, 단계 S553에서 실행 시간 경계를 계산한다. In operation S552, one task is extracted from the waiting queue 240, and in operation S553, an execution time boundary is calculated.

그리고 단계 S553에서 실행 시간 경계의 계산이 이루어진 진 경우에는 단계 S554로 전이하여 완료 큐(250)에 추출된 태스크를 저장하고, 그렇지 않은 경우에는 다시 단계 S555로 전이하여 다시 대기 큐(240)(W)에 삽입한 후에 변수(n)을 증분(S556)한다.When the calculation of the execution time boundary is made in step S553, the process proceeds to step S554, and the extracted task is stored in the completion queue 250, otherwise, the process proceeds to step S555 again and wait queue 240 again ( W ). Variable n is incremented (S556).

그리고 이후 단계 S557에서 종료 조건에 부합하는지를 결정하여 그 결정에 따라서 다시 단계 S552로 전이하거나 혹은 종료 한다.After that, it is determined whether the termination condition is satisfied in step S557, and the process returns to step S552 or terminates according to the determination.

이상 도 3 내지 도 5에서 알 수 있는 바와 같이, 본 발명에 따른 Min-Max 분석 방법은, 각 태스크의 실행 시간 경계를 결정할 수 있도록 하고 이 실행 시간 경계는 높은 우선 순위를 가지고 토폴로지 순서에 따라 정해지는 순서에 따라서 순차적으로 결정된다. 이러한 각 태스크의 실행 시간 경계는 도 3 내지 도 5의 루프에 의해서 결정되며, 이 Min-Max 분석 방법에 의한 시간 복잡도는

Figure pat00063
으로 한정된다. As can be seen from FIG. 3 to FIG. 5, the Min-Max analysis method according to the present invention enables the execution time boundary of each task to be determined and the execution time boundary is determined according to the topology order with high priority. Loss is decided sequentially. The execution time boundary of each of these tasks is determined by the loops of FIGS. 3 to 5, and the time complexity by the Min-Max analysis method is
Figure pat00063
It is limited to.

이러한 시간 복잡도는 태스크의 개수로 한정되고 실행 유닛 그래프의 개수나 실행 유닛의 스케쥴링 방식에 의존하지 않게 되어 기존의 성능 분석 방법에 비하여 더욱더 빠른 속도로 성능 분석이 이루어지도록 하며 비록 태스크의 개수가 늘어남에 따라서도 예상 가능한 시간 내로(즉 다항의 시간 복잡도로) 그 성능 분석의 결과를 제공할 수 있도록 한다.
This time complexity is limited to the number of tasks and does not depend on the number of execution unit graphs or the scheduling method of execution units, so that performance analysis can be performed at a faster speed than conventional performance analysis methods. It also allows you to provide the results of that performance analysis within the foreseeable time (ie with polynomial time complexity).

앞서 도 4 내지 도 5에서 단계 S530과 단계 S553은, 선택된 하나의 태스크에 대해서 실행 시간 경계를 계산한다. 이러한 단계 S530과 단계 S553은, 태스크 그래프 간의 에지에 따른 의존 관계와 태스크 그래프의 실행 유닛으로의 맵핑 관계에 따라서 계산된다. 그리고 각 실행 유닛은 선점형 또는 비선점형 등과 같은 스케쥴링 방식을 가질 수 있고 이러한 스케쥴링 방식은 또한 실행 시간 경계의 계산에 반영된다. 4 to 5, step S530 and step S553 calculate an execution time boundary for one selected task. Such step S530 and step S553 are calculated according to the dependency relation along the edge between the task graph and the mapping relation to the execution unit of the task graph. And each execution unit may have a scheduling scheme such as preemptive or non preemptive, and this scheduling scheme is also reflected in the calculation of the execution time boundary.

이하에서는 여러 조건들을 반영한 선택된 태스크의 실행 시간 경계를 계산하기 위한 정형화된 수학식을 이용해서 설명된다. 이러한 수학식을 적용하여 각 태스크에 대한 최소 시작 시간, 최대 시작 시간, 최소 종료 시간 및/또는 최대 종료 시간이 분석적인 방식으로 계산된다. Hereinafter, a description will be given using a formula for calculating the execution time boundary of the selected task reflecting various conditions. Applying these equations, the minimum start time, maximum start time, minimum end time and / or maximum end time for each task are calculated in an analytical manner.

물론 이러한 최소 시작 시간, 최대 시작 시간, 최소 종료 시간 및/또는 최대 종료 시간은 보수적인 관점에서 계산이 되어야 하나 실제 이상적으로 계산될 수 있는 시간 정보와 가능한 근접하도록 계산될 수 있도록 하는 것이 필요하다. 이러한 관점에서 각 수학식을 수정하고 수정에 따라 변경된 수학식을 표현하도록 한다.
Of course, such minimum start time, maximum start time, minimum end time and / or maximum end time should be calculated from a conservative point of view, but it is necessary to be able to be calculated as close as possible to the time information that can be calculated in practice. In this regard, the equations are modified and the equations changed according to the modifications are expressed.

태스크 그래프 상의 각 태스크는 이 태스크의 선행(또는 선조) 태스크가 수행 완료된 후에 릴리스(수행 가능한) 될 수 있다. 이에 따라 태스크 그래프의 토폴로지를 조사함으로써 따라 최소, 최대 릴리스 시간을 결정할 수 있다.Each task on the task graph can be released (performed) after the preceding (or ancestor) task of this task is completed. Thus, by examining the topology of the task graph, the minimum and maximum release time can be determined accordingly.

예를 들어 소스 태스크

Figure pat00064
에 대해서는 최소, 최대 릴리스 시간은, 아래 수학식 1 및 2에 의해서 결정될 수 있고 예를 들어 아무런 선행 태스크가 없는 소스 태스크는 태스크 그래프에 대해서 주어지는 오프셋과 이 태스크 그래프 또는 소스 태스크에 대해서 주어지는 지터(예를 들어 시작의 변화 범위)에 의해서 최소, 최대 릴리스 시간이 결정되어 질 수 있다. For example, source task
Figure pat00064
For the minimum and maximum release times, the minimum and maximum release times can be determined by Equations 1 and 2 below, for example, a source task without any predecessor task has an offset given for the task graph and jitter given for this task graph or source task (eg For example, the minimum and maximum release times can be determined by the starting range.

Figure pat00065
Figure pat00065

Figure pat00066
Figure pat00066

그리고 태스크 그래프의 에지 등으로 표현되는 의존 관계, 즉 선행 태스크,를 가진 태스크에 대한 최소, 최대 릴리스 시간은,And the minimum, maximum release time for a task with a dependency, such as an edge in the task graph,

Figure pat00067
Figure pat00067

Figure pat00068
Figure pat00068

이상의 수학식 1 내지 4에서 알 수 있는 바와 같이 각 태스크는 소스 태스크와 선행 태스크를 가지는 태스크로 분류되어, 소스 태스크는 태스크의 오프셋과 지터를 이용하여 맵핑된 실행 유닛에 릴리스 될 수 있는 최소 및 최대 릴리스 시간을 계산할 수 있고, 반면에 다른 태스크는 선행 태스크의 최소 종료 시간 및/또는 최대 종료 시간을 이용하여 최소 및 최대 릴리스 시간을 계산할 수 있다.As can be seen from Equations 1 to 4, each task is classified into a task having a source task and a preceding task, so that the source task can be released to the mapped execution unit using the offset and jitter of the task. The release time can be calculated, while other tasks can use the minimum and / or maximum end time of the preceding task to calculate the minimum and maximum release time.

이러한 최소 및 최대 릴리스 시간은 태스크 그래프의 의존 관계를 이용하여 결정되고 선행하는 태스크의 최소 또는 최대 완료 시간을 이용하여 각 태스크가 맵핑된 실행 유닛에서 릴리스 될 수 있는 시간을 알 수 있도록 한다. This minimum and maximum release time is determined using the dependencies of the task graph, and the minimum or maximum completion time of the preceding task allows the user to know how long each task can be released in the mapped execution unit.

이러한 수학식 1 내지 4를 이용하여, 각각의 태스크의 맵핑된 실행 유닛에서 수행을 시작할 수 있는 경계(boundary) 시간인 최소 시작 시간과 최대 시작 시간을 아래의 수학식 5 내지 6을 이용하여 계산할 수 있다.Using the equations (1) through (4), the minimum start time and the maximum start time, which are boundary times that can start execution in the mapped execution unit of each task, can be calculated using the following equations (5) through (6). have.

Figure pat00069
Figure pat00069

Figure pat00070
Figure pat00070

여기서

Figure pat00071
Figure pat00072
는 태스크 그래프의 다른 태스크들의 실행 유닛에서의 실행을 고려하여 태스크
Figure pat00073
가 맵핑된 실행 유닛(PE)이 이용가능한 상태가 되는 최소 시간과 최대 시간을 나타낸다. 이 실행 유닛은 태스크
Figure pat00074
가 릴리스 될 때 다른 태스크를 수행할 수 있으므로, 계산하고자 하는 태스크
Figure pat00075
는 맵핑된 실행 유닛에서 현재 실행되고 있는 태스크의 수행이 완료될 때까지 기다릴 필요가 있다. 이러한 기다림은 실행 유닛의 스케쥴링 방식에 따라 달라질 수 있다. 예를 들어 선점형 스케쥴링에서는 현재 수행되는 태스크가 더 높은 우선 순위를 가지고 있다면 기다릴 필요가 있다. 반면에 비-선점형 스케쥴링 방식에서는 이미 스케쥴링되어 수행되고 있는 현재의 태스크의 우선 순위에 상관없이 기다려야 한다. here
Figure pat00071
Wow
Figure pat00072
The task takes into account the execution in the execution unit of other tasks in the task graph.
Figure pat00073
Represents the minimum time and the maximum time for which the mapped execution unit PE becomes available. This execution unit is a task
Figure pat00074
You can perform other tasks when the
Figure pat00075
Needs to wait until the execution of the task currently being executed in the mapped execution unit is completed. This wait may vary depending on the scheduling scheme of the execution units. In preemptive scheduling, for example, you need to wait if the task currently being performed has a higher priority. On the other hand, non-preemptive scheduling requires waiting regardless of the priority of the current task that is already scheduled and performed.

이에 따라

Figure pat00076
Figure pat00077
는 스케쥴링 방식에 따라 상이한 형식으로 정규화된다. Accordingly
Figure pat00076
Wow
Figure pat00077
Is normalized to a different format according to the scheduling scheme.

Figure pat00078
Figure pat00078

선점형 스케쥴링 방식에 대해서, For preemptive scheduling,

Figure pat00079
= {
Figure pat00080
|
Figure pat00081
=
Figure pat00082
,
Figure pat00083
>
Figure pat00084
, 그리고
Figure pat00085
<=
Figure pat00086
},
Figure pat00079
= {
Figure pat00080
|
Figure pat00081
=
Figure pat00082
,
Figure pat00083
>
Figure pat00084
, And
Figure pat00085
<=
Figure pat00086
},

비선점형 스케쥴링 방식에 대해서,For non preemptive scheduling,

Figure pat00087
= {
Figure pat00088
|
Figure pat00089
=
Figure pat00090
그리고 ((
Figure pat00091
>
Figure pat00092
, 그리고
Figure pat00093
<=
Figure pat00094
) 또는 (
Figure pat00095
<
Figure pat00096
그리고
Figure pat00097
<=
Figure pat00098
<
Figure pat00099
))},
Figure pat00087
= {
Figure pat00088
|
Figure pat00089
=
Figure pat00090
And ((
Figure pat00091
>
Figure pat00092
, And
Figure pat00093
<=
Figure pat00094
) or (
Figure pat00095
<
Figure pat00096
And
Figure pat00097
<=
Figure pat00098
<
Figure pat00099
))},

이 수학식 7의 의미를 살펴보면,

Figure pat00100
는 태스크가 시간 t 이후에 맵핑된 실행 유닛에 이 태스크를 수행 가능한 상황이 되는 시간을 나타내고 이
Figure pat00101
는 릴리스 가능한 시점 이후에 태스크의 시작을 지연시킬 수 있는 다른 태스크의 상태를 고려하여 반영되며, 수학식 5에 따른
Figure pat00102
Figure pat00103
로부터 시작하여 계산하여 이
Figure pat00104
가 수렴될 때까지 계산된다. Looking at the meaning of this equation 7,
Figure pat00100
Represents the time when the task becomes available to perform this task in the mapped execution unit after time t
Figure pat00101
Is reflected in consideration of the status of other tasks that may delay the start of the task after the release possible point,
Figure pat00102
The
Figure pat00103
Starting from
Figure pat00104
Until is converged.

그리고 수학식 7의

Figure pat00105
는 이미 스케쥴된 태스크 들 중에서 태스크
Figure pat00106
의 최소 시작 시간을 지연할 수 있도록 하는 조건에 해당하는 태스크를 나타내고, 수학식 7에서 알 수 있는 바와 같이, 태스크
Figure pat00107
와 같은 실행 유닛에 맵핑되어 있고, 태스크
Figure pat00108
보다 우선 순위가 높고,
Figure pat00109
의 최대 시작 시간이 태스크
Figure pat00110
의 최소 시작 시간보다 작거나 같은 것에 해당하는 태스크에 의해서 태스크
Figure pat00111
의 최소 시작 시간이 계산된다. And of equation (7)
Figure pat00105
Is one of the tasks already scheduled
Figure pat00106
A task corresponding to a condition for delaying the minimum start time of the task is represented, and as can be seen from Equation 7,
Figure pat00107
Mapped to an execution unit, such as
Figure pat00108
Higher priority,
Figure pat00109
Maximum start time of the task
Figure pat00110
Task by a task less than or equal to the minimum start time of
Figure pat00111
The minimum start time is calculated.

그리고 비선점형 스케쥴링 방식에 대해서는, 앞선 조건에 더하여 우선 순위가 낮은

Figure pat00112
Figure pat00113
<=
Figure pat00114
<
Figure pat00115
조건을 만족한 다면 해당 태스크
Figure pat00116
의 최소 시작 시간을 지연시킬 수 있는 태스크의 집합에 해당함을 알 수 있다. The non-preemptive scheduling method has a lower priority in addition to the preceding conditions.
Figure pat00112
Degree
Figure pat00113
<=
Figure pat00114
<
Figure pat00115
If the condition is met, the task
Figure pat00116
You can see that this corresponds to a set of tasks that can delay the minimum start time of.

이러한 수학식 7의 조건들은 태스크

Figure pat00117
가 맵핑된 특정 실행 유닛에서 수행될 수 있는 최소 시작 시간을 나타내고, 이에 따라 이 최소 시작 시간에 대하여 영향을 줄 수 있는 다른 태스크의 실행 시간 경계의 정보를 반영하여 계산된다. The condition of Equation 7 is a task
Figure pat00117
Represents the minimum start time that can be performed in the mapped specific execution unit, and is thus calculated by reflecting information of execution time boundaries of other tasks that may affect this minimum start time.

Figure pat00118
Figure pat00118

여기서, 선점형 스케쥴링 방식에 대해서, Here, for the preemptive scheduling method,

Figure pat00119
= {
Figure pat00120
|
Figure pat00121
=
Figure pat00122
,
Figure pat00123
>
Figure pat00124
그리고
Figure pat00125
<=
Figure pat00126
},
Figure pat00119
= {
Figure pat00120
|
Figure pat00121
=
Figure pat00122
,
Figure pat00123
>
Figure pat00124
And
Figure pat00125
<=
Figure pat00126
},

비선점형 스케쥴링 방식에 대해서,For non preemptive scheduling,

Figure pat00127
= {
Figure pat00128
|
Figure pat00129
=
Figure pat00130
그리고 ((
Figure pat00131
>
Figure pat00132
, 그리고
Figure pat00133
<=
Figure pat00134
) 또는 ( <
Figure pat00136
그리고
Figure pat00137
<=
Figure pat00138
<
Figure pat00139
))},
Figure pat00127
= {
Figure pat00128
|
Figure pat00129
=
Figure pat00130
And ((
Figure pat00131
>
Figure pat00132
, And
Figure pat00133
<=
Figure pat00134
) or ( <
Figure pat00136
And
Figure pat00137
<=
Figure pat00138
<
Figure pat00139
))},

이 수학식 8은, 주어진 태스크

Figure pat00140
의 최대 시작 시간의 계산에서
Figure pat00141
에 속하는 태스크의 최대 종료 시간 값들을 기준으로 하여
Figure pat00142
에서의 태스크의 최대 종료 시간 값이
Figure pat00143
의 최대 시작 시간을 가지는 것을 의미한다. 그리고
Figure pat00144
Figure pat00145
는 이 주어진 태스크
Figure pat00146
의 최대 시작 시간을 지연할 수 있는 조건에 해당하는 태스크이다. Equation 8 is given a task
Figure pat00140
In the calculation of the maximum start time of
Figure pat00141
Based on the maximum end time values of the tasks belonging to
Figure pat00142
The maximum end time value for the task at
Figure pat00143
Means having a maximum start time. And
Figure pat00144
of
Figure pat00145
Is given the task
Figure pat00146
This task corresponds to a condition that can delay the maximum start time.

이상의 수학식 8에서 알 수 있는 바와 같이, 선점형 스케쥴링 방식과 비선점형 스케쥴링 방식에서 상이한 조건에 부합하는 태스크가 이 주어진 태스크

Figure pat00147
의 최대 시작 시간을 지연시킬 수 있다. 이러한 태스크
Figure pat00148
는 이미 스케쥴링된 태스크 중에서
Figure pat00149
의 최대 시작 시간을 지연시킬 수 있도록 하는 태스크이다.As can be seen from Equation 8 above, a task that meets different conditions in a preemptive scheduling scheme and a non-preemptive scheduling scheme is a given task.
Figure pat00147
Can delay the maximum start time. These tasks
Figure pat00148
Of the tasks already scheduled
Figure pat00149
This task allows you to delay the maximum start time of.

이와 같이 수학식 5 내지 8을 이용하여, 각 태스크의 시작 시간을 계산할 수 있다. 이러한 시작 시간은 각 태스크의 시작 시간에 영향을 미치는 태스크의 시작 시간 또는 종료 시간의 변화에 따라서 또한 변경될 수 있다. 또한 특정 태스크는 의존 관계에 의해서 선행하는 태스크에 대한 실행 시간 경계가 아직 계산되지 못한 경우가 있을 수 있고 이 경우에는 대기 큐(W)에 삽입되어 이후 해당 선행하는 태스크에 대한 실행 시간 경계가 계산이 되면 다시 계산되도록 구성된다.
As such, using Equations 5 to 8, the start time of each task may be calculated. This start time can also be changed in accordance with a change in the start time or end time of the task that affects the start time of each task. In addition, a task may have a dependency that has not yet been computed for its predecessor by its dependencies, in which case it is inserted into a wait queue ( W ), whereby the execution boundary for that predecessor is not calculated. Is recalculated.

한편 아래의 수학식 9 내지 12를 이용하여 각 태스크 그래프 상의 태스크 각각에 대한 종료 시간을 계산할 수 있다. Meanwhile, an end time of each task on each task graph may be calculated using Equations 9 to 12 below.

Figure pat00150
Figure pat00150

Figure pat00151
Figure pat00151

여기서,

Figure pat00152
Figure pat00153
는 이 태스크
Figure pat00154
가 더 높은 우선 순위를 가진 태스크에 의해서 태스크
Figure pat00155
의 맵핑된 실행 유닛에서 수행 시작 후 수행 동안에 스케쥴링이 배제(preemption)되는 시간 기간의 최소 및 최대 시간을 나타낸다. 물론 비선점형 스케쥴링 방식에서는 이러한 변수가 0으로 설정되고, 선점형 스케쥴링 방식에서는, 이
Figure pat00156
Figure pat00157
가 다음과 같은 수학식으로 결정된다. here,
Figure pat00152
Wow
Figure pat00153
Is this task
Figure pat00154
By a task with a higher priority
Figure pat00155
Represents a minimum and maximum time of a time period during which scheduling is excluded during execution after the start of execution in a mapped execution unit of. Of course, in non-preemptive scheduling, this variable is set to 0. In preemptive scheduling,
Figure pat00156
Wow
Figure pat00157
Is determined by the following equation.

Figure pat00158
Figure pat00158

여기서

Figure pat00159
= {
Figure pat00160
|
Figure pat00161
=
Figure pat00162
,
Figure pat00163
>
Figure pat00164
그리고
Figure pat00165
<=
Figure pat00166
<=
Figure pat00167
<=
Figure pat00168
}here
Figure pat00159
= {
Figure pat00160
|
Figure pat00161
=
Figure pat00162
,
Figure pat00163
>
Figure pat00164
And
Figure pat00165
<=
Figure pat00166
<=
Figure pat00167
<=
Figure pat00168
}

이 태스크 세트

Figure pat00169
는 태스크
Figure pat00170
가 실행 동안에 동일한 실행 유닛에 스케쥴링되는 우선 순위가 높은 모든 태스크를 포함한다. This task set
Figure pat00169
Is a task
Figure pat00170
Contains all high priority tasks that are scheduled in the same execution unit during execution.

Figure pat00171
Figure pat00171

여기서

Figure pat00172
= {
Figure pat00173
|
Figure pat00174
=
Figure pat00175
,
Figure pat00176
>
Figure pat00177
,
Figure pat00178
<=
Figure pat00179
그리고
Figure pat00180
<=
Figure pat00181
}here
Figure pat00172
= {
Figure pat00173
|
Figure pat00174
=
Figure pat00175
,
Figure pat00176
>
Figure pat00177
,
Figure pat00178
<=
Figure pat00179
And
Figure pat00180
<=
Figure pat00181
}

이 태스크 세트

Figure pat00182
는 태스크
Figure pat00183
가 실행 동안에 주어진 조건에 부합하고 스케쥴링되는 우선 순위가 높은 모든 태스크를 포함한다.
This task set
Figure pat00182
Is a task
Figure pat00183
Contains all of the high priority tasks that meet the given conditions and are scheduled during execution.

이러한 수학식 1 내지 12를 이용하여, 태스크의 실행 시간 경계를 계산할 수 있다. 이러한 실행 시간 경계는 주어진 복수의 태스크 그래프가 주어진 실행 유닛 그래프의 아키텍처 상에서 수행될 때의 각 태스크의 최소 시작 시간, 최대 시작 시간, 최소 종료 시간 및 최대 종료 시간을 포함한다. Using Equations 1 to 12, an execution time boundary of a task may be calculated. This execution time boundary includes the minimum start time, maximum start time, minimum end time and maximum end time of each task when a given plurality of task graphs are performed on the architecture of a given execution unit graph.

이상의 수학식 1 내지 12에서 알 수 있는 바와 같이 Min-Max 분석 방법에서의 실행 시간 경계의 계산은, 우선 순위와 함께 각 태스크 간의 토폴로지에 따른 태스크 간의 의존 관계를 이용하여 계산된다. 이에 따라 비록 우선 순위가 높은 태스크가 먼저 실행 시간 경계에 대한 계산을 하는 경우에도 선행 태스크에 대한 실행 시간 경계의 계산이 이루어지지 않은 경우에는 이 태스크는 대기 큐(240)에 기록되고, 이후에 선행 태스크의 실행 시간 경계의 계산이 완료된 후에, 다시 대기 큐(240)의 태스크에 대한 실행 시간 경계를 계산할 수 있다. As can be seen from Equations 1 to 12, the calculation of the execution time boundary in the Min-Max analysis method is calculated using the dependencies between tasks according to the topology between the tasks together with the priority. Thus, even if a higher priority task first computes a runtime boundary, if the runtime boundary for the preceding task is not computed, the task is written to the wait queue 240 and subsequently After the calculation of the execution time boundary of the task is completed, the execution time boundary for the task of the wait queue 240 may be calculated again.

이러한 Min-Max 분석 방법을 적용하기 위해서, 도 3 내지 도 5에서 알 수 있는 바와 같이 적어도 3개의 루프를 이용하여 계산이 이루어지고, 다시 하나 이상의 태스크의 실행 시간 경계의 값이 변경된 경우에는 현재 변경된 실행 시간 경계 값들을 다시 이용하여 모든 태스크의 실행 시간의 값의 변경이 없을 때까지 계산이 이루어지게 된다.In order to apply the Min-Max analysis method, as shown in FIGS. 3 to 5, the calculation is performed using at least three loops, and when the value of the execution time boundary of one or more tasks is changed again, the current change is performed. By using the execution time boundary values again, the calculation is made until there is no change in the execution time value of all tasks.

물론 이러한 과정에서 모든 실행 시간의 계산이 완료되기 전에 적어도 하나의 태스크에 대한 실행 시간의 값이 계산되지 못하는 경우에는 스케쥴링이 불가능한 태스크 그래프를 포함하는 것을 의미할 수 있다. Of course, if the execution time value for at least one task is not calculated before the calculation of all execution time is completed in this process, it may mean that the task graph that cannot be scheduled is included.

그리고 이러한 수학식 1 내지 12에 의해서 계산된 실행 시간 경계들은 최소한의 정확성을 보장한다. 이러한 정확성은 증명될 수 있다.And the execution time boundaries calculated by Equations 1 to 12 guarantee minimum accuracy. This accuracy can be proved.

이러한 수학식 1 내지 12와 도 3 내지 도 5를 이용하여, 각 태스크의 실행 시간 경계가 결정되면 각 태스크 그래프의 WCRT가 수학식 13과 같이 계산되어 질 수 있다. Using the equations 1 to 12 and FIGS. 3 to 5, when an execution time boundary of each task is determined, the WCRT of each task graph may be calculated as in Equation 13.

Figure pat00184
Figure pat00184

물론 이러한 수학식 13은 태스크에 대한 실행 시간 경계가 보수적으로 계산되어 실제 WCRT의 값보다 더 큰 응답 시간 결과로서 제공한다. Of course, Equation 13 calculates the execution time boundary for the task conservatively as a result of response time larger than the actual WCRT value.

물론 태스크 그래프가 하나 이상의 태스크 그래프 인스턴스를 포함하는 경우에는 각 태스크 그래프 인스턴스 각각에 대한 WCRT를 계산하고, 계산된 WCRT 중 최대의 WCRT를 해당 태스크 그래프의 WCRT로 결정할 수 있다.
Of course, if the task graph includes one or more task graph instances, the WCRT for each task graph instance may be calculated, and the maximum WCRT among the calculated WCRTs may be determined as the WCRT of the task graph.

도 6은, 도 2의 예제에 대하여 도 3 내지 도 5의 Min-Max 분석 방법을 적용한 스케쥴링 결과를 나타낸다. 이 도 2에서는 두개의 태스크 그래프가 있고 각 태스크 그래프의 실행 주기(period)는 100 시간 유닛이고 각 태스크 그래프는 지연 오프셋(

Figure pat00185
)은 0으로 설정되어 소스 태스크는 시간 유닛 0에서 릴리스된다. 도 6의 스케쥴링 결과를 간단히 살펴보면, 가장 우선 순위가 높은 소스 태스크인
Figure pat00186
가 스케쥴링되어
Figure pat00187
Figure pat00188
는 0으로 결정된다. 그리고
Figure pat00189
의 실행 시간이 10에서 20 시간 유닛이므로
Figure pat00190
는 10으로
Figure pat00191
는 20으로 결정된다. 유사하게 다음으로 우선 순위가 높은 다른 소스 태스크인
Figure pat00192
에 대하여 계산하여 최소 및 최대 시작 시간이 0으로 결정되고 최소 및 최대 종료 시간이 각각 20으로 결정된다. FIG. 6 illustrates scheduling results of applying the Min-Max analysis method of FIGS. 3 to 5 with respect to the example of FIG. 2. In Figure 2, there are two task graphs, each task graph has a period of 100 units of time, and each task graph has a delay offset (
Figure pat00185
) Is set to 0 so that the source task is released in time unit 0. Referring briefly to the scheduling result of Figure 6, the highest priority source task
Figure pat00186
Is scheduled
Figure pat00187
Wow
Figure pat00188
Is determined to be zero. And
Figure pat00189
Since the execution time of 10 to 20 time units
Figure pat00190
To 10
Figure pat00191
Is determined to be 20. Similarly, the next higher priority source task
Figure pat00192
The minimum and maximum start times are determined to be zero and the minimum and maximum end times are determined to be 20, respectively.

그 다음으로 우선 순위가 높은 태스크

Figure pat00193
Figure pat00194
로부터의 의존 관계(에지)가 있으므로 이 태스크는
Figure pat00195
의 종료 후에 시작할 수 있고 이에 따라 이 태스크의 최소 및 최대 시작 시간은 각각 10과 20으로 계산된다. 그리고 이 태스크
Figure pat00196
이 맵핑되는 PE1은 비선점형 스케쥴링 정책을 이용하므로, 이 태스크의 최소 및 최대 종료 시간은 다른 우선 순위가 높은 태스크의 선점에 따른 영향 없이 15와 40으로 각각 결정된다. Next highest priority task
Figure pat00193
silver
Figure pat00194
Since there are dependencies (edges) from
Figure pat00195
You can start after the end of, so the minimum and maximum start times for this task are calculated to be 10 and 20, respectively. And this task
Figure pat00196
Since this mapped PE1 uses a non-preemptive scheduling policy, the minimum and maximum end times of this task are determined to be 15 and 40, respectively, without affecting the preemption of other higher priority tasks.

그리고 태스크

Figure pat00197
의 스케쥴링 시에는 이전에 스케쥴링된 태스크
Figure pat00198
이 고려되어야 한다. 이에 따라
Figure pat00199
의 최소 시작 시간은
Figure pat00200
의 최소 종료 시간이
Figure pat00201
의 최소 릴리스 시간보다 작기에 토폴로지 의존 관계에 따라 결정되어 20으로 계산된다. 그리고 최대 시작 시간은
Figure pat00202
에 의해 야기되는 지연을 고려하여 결정되고 이에 따라 40으로 계산되고 그리고 최소 종료 시간은 30으로 최대 종료 시간은 60으로 결정된다. 유사하게 나머지
Figure pat00203
Figure pat00204
에 대해서도 실행 시간 경계가 계산된다. 이러한 모든 태스크의 실행 시간 경계로부터 태스크 그래프
Figure pat00205
의 WCRT는 60으로, 그리고 태스크 그래프
Figure pat00206
의 WCRT는 80으로 결정된다. And tasks
Figure pat00197
Previously scheduled tasks when scheduling
Figure pat00198
This should be considered. Accordingly
Figure pat00199
Minimum start time of
Figure pat00200
Has a minimum end time of
Figure pat00201
It is determined according to the topology dependence on the smaller than the minimum release time of 20 is calculated. And the maximum start time
Figure pat00202
It is determined taking into account the delay caused by and calculated accordingly and the minimum end time is 30 and the maximum end time is 60. Similarly rest
Figure pat00203
Wow
Figure pat00204
The run time boundary is also calculated for. Task graph from the run time boundary of all these tasks
Figure pat00205
WCRT is 60, and the task graph
Figure pat00206
The WCRT is determined to be 80.

이와 같이 본 발명에 따른 Min-Max 분석 방법은, 각 태스크의 우선 순위와 태스크 간의 의존 관계를 고려하여 정확히 그리고 빠른 속도로 계산할 수 있도록 한다.
As described above, the Min-Max analysis method according to the present invention allows accurate and fast calculation in consideration of the priority of each task and the dependency between the tasks.

도 2 내지 도 5에 따른, Min-Max 분석 방법에 따른 실행 시간 경계를 이상적인 결과에 근접하도록 보다더 타이트하게 계산하도록 하는 것은 많은 개발상의 유용함을 제공할 수 있을 것이다. 이하에서는 도 2 내지 도 5, 그리고 수학식 1 내지 12에 따른 Min-Max 분석 방법의 실행 시간 경계를 이상적인 실행 시간 경계에 근접하도록 하는, 태스크 그래프의 분석을 통한 몇 가지 적용 기법을 예를 통해서 살펴보도록 한다. 2 to 5, allowing the execution time boundary of the Min-Max analysis method to be more tightly calculated to approximate the ideal result may provide a number of developmental benefits. Hereinafter, some application techniques through the analysis of the task graph to bring the execution time boundary of the Min-Max analysis method according to Equations 1 to 12 to the ideal execution time boundary according to FIGS. Let's see.

도 7은 Min-Max 분석 방법을 적용하기 위한 또다른 예시적인 태스크 그래프와 실행 유닛 간의 맵핑 관계 그리고 이 맵핑 관계에 따라 계산된 각 태스크의 실행 시간 경계를 도시한 도면이다.FIG. 7 is a diagram illustrating a mapping relationship between another exemplary task graph and execution units for applying the Min-Max analysis method and execution time boundaries of each task calculated according to the mapping relationship.

도 7의 (b)에서 알 수 있는 바와 같이 태스크

Figure pat00207
의 WCRT는
Figure pat00208
의 최대 종료 시간에 따라 45로 결정된다. 여기서 실제의
Figure pat00209
의 WCRT는 35로 계산될 수 있다. 이러한 과(over) 예측의 이유는
Figure pat00210
이 태스크 그래프
Figure pat00211
의 그래프 체인 상에서의
Figure pat00212
의 최대 종료 시간과
Figure pat00213
의 최대 시작 시간의 계산에 2회에 걸쳐서 영향을 미쳤기 때문이다. 즉
Figure pat00214
에 의해 야기되는 배제가
Figure pat00215
의 WCRT의 계산에서 복수회에 걸쳐서 고려되었기 때문이다. As can be seen in Figure 7 (b)
Figure pat00207
WCRT
Figure pat00208
Is determined by 45 depending on the maximum end time. Where real
Figure pat00209
The WCRT can be calculated as 35. The reason for this over prediction is
Figure pat00210
This task graph
Figure pat00211
On the graph chain
Figure pat00212
With the maximum end time of
Figure pat00213
This is because two times influenced the calculation of the maximum start time of. In other words
Figure pat00214
Exclusion caused by
Figure pat00215
Is considered multiple times in the calculation of the WCRT.

이에 따라 특정 태스크가 다른 태스크의 실행 시간 경계의 계산에 있어서 배제에 따른 영향을 단 1회만 반영되도록 할 필요가 있고, 이에 따라 최대 시작 시간과 최대 종료 시간의 계산에서 배제 히스토리(preemption history)를 검사할 필요가 있다. As a result, it is necessary to ensure that one task reflects the impact of exclusion only once in the calculation of the execution time boundary of another task, thus checking the exclusion history in the calculation of the maximum start time and the maximum end time. Needs to be.

이에 따라 태스크

Figure pat00216
의 최대 종료 시간과 최대 시작 시간에 영향을 미치는 태스크의 세트인 프리엠트(preemptor) 세트
Figure pat00217
를 정의한다. 이
Figure pat00218
는 초기에는 빈 세트로 정의되고, 이후 수학식 4에 따라 최대 릴리스 시간을 계산할 때, 태스크 그래프 상에서 의존 관계(에지)에 따른 선행 태스크의 프리엠트 세트를 물려 받아 태스크의 프리엠트 세트를, 아래 수학식 14에 따라 계산한다.Accordingly task
Figure pat00216
Set of preemptors, which is a set of tasks that affects the maximum end time and the maximum start time
Figure pat00217
. this
Figure pat00218
Is initially defined as an empty set, and then, when calculating the maximum release time according to Equation 4, the pre-set set of the task is inherited by inheriting the pre-set set of the preceding task according to the dependency (edge) on the task graph. Calculate according to equation 14.

Figure pat00219
Figure pat00219

여기서

Figure pat00220
는 태스크
Figure pat00221
의 최대 릴리스 시간을 결정하는 데 이용되는 선행하는 태스크이다. 그리고 수학식 8과 수학식 12에 따라 태스크의 스케쥴링 지연(delay)를 계산할 때 이
Figure pat00222
에 속하지 않는 태스크만을 고려하도록 수정하면 된다.here
Figure pat00220
Is a task
Figure pat00221
The preceding task is used to determine the maximum release time of the. When calculating the scheduling delay of the task according to Equations 8 and 12,
Figure pat00222
You only need to modify it to consider only tasks that do not belong.

이에 따라 수학식 8의

Figure pat00223
= {
Figure pat00224
|
Figure pat00225
=
Figure pat00226
,
Figure pat00227
>
Figure pat00228
,
Figure pat00229
<=
Figure pat00230
그리고
Figure pat00231
Figure pat00232
Figure pat00233
}로 수정되고, 수학식 12의
Figure pat00234
= {
Figure pat00235
|
Figure pat00236
=
Figure pat00237
,
Figure pat00238
>
Figure pat00239
,
Figure pat00240
<=
Figure pat00241
,
Figure pat00242
<=
Figure pat00243
그리고
Figure pat00244
Figure pat00245
Figure pat00246
}로 수정되어 태스크 그래프 상에서 의존 관계에 따라 의존하는 선행 태스크에서 이미 반영한 다른 태스크를 이후의 태스크에서는 더 이상 실행 시간 경계의 계산에 반영되지 않도록 하여, 더욱더 타이트한 실행 시간 경계를 계산할 수 있도록 한다.Accordingly, Equation 8
Figure pat00223
= {
Figure pat00224
|
Figure pat00225
=
Figure pat00226
,
Figure pat00227
>
Figure pat00228
,
Figure pat00229
<=
Figure pat00230
And
Figure pat00231
Figure pat00232
Figure pat00233
}, And in Equation 12
Figure pat00234
= {
Figure pat00235
|
Figure pat00236
=
Figure pat00237
,
Figure pat00238
>
Figure pat00239
,
Figure pat00240
<=
Figure pat00241
,
Figure pat00242
<=
Figure pat00243
And
Figure pat00244
Figure pat00245
Figure pat00246
}, So that other tasks already reflected in the preceding task that depend on the dependency on the task graph are no longer reflected in the calculation of execution time boundaries in later tasks, so that a tighter execution time boundary can be calculated.

즉 이러한 다른 태스크는, 현재 최대 시작 시간 및/또는 최대 종료 시간을 계산하고자 하는 대상 태스크를 포함하는 태스크 그래프 상의 에지(의존 관계)로 연결된 체인(예를 들어 도 7의

Figure pat00247
,
Figure pat00248
Figure pat00249
의 체인)에서 단 1회만 실행 시간 경계의 계산에 반영되도록 한다. That is, these other tasks may be chained together by an edge (dependency relationship) on the task graph that includes the target task for which the current maximum start time and / or maximum end time are to be calculated (eg, in FIG. 7).
Figure pat00247
,
Figure pat00248
Wow
Figure pat00249
Only one time in the chain of.

이와 동일한 변경이 또한 비선점형 스케쥴링 경우에도 적용될 수 있다.
This same change can also be applied to the non-preemptive scheduling case.

비록 이러한 프리엠트 세트를 모든 태스크에 대해서 관리하더라도 느슨한 시간 경계의 계산이 또한 발생할 수 있다. Although managing this set of premets for all tasks, the calculation of loose time boundaries may also occur.

예를 들어 도 8을 통해 살펴보면, 세 개의 태스크의 우선 순위가 토폴로지 순서에 따르지 않고 있다. 이 예에서 도 3의 단계 S500의 첫번째 반복에 의해서 도 8의 (b)와 같은 각 태스크의 실행 시간 경계가 계산되고 단계 S500의 두번째 반복에서 수학식 12에서

Figure pat00250
Figure pat00251
에 속하고 의 최소 시작 시간이
Figure pat00253
의 최대 종료 시간보다 작기에 태스크
Figure pat00254
는 태스크
Figure pat00255
의 최대 종료 시간의 계산에 영향을 미친다. 그리고 태스크
Figure pat00256
는 복수의 배제를 회피하기 위해서 태스크
Figure pat00257
의 프리엠트 세트에 삽입되고 의존 관계에 따라
Figure pat00258
의 프리엠트 세트를 상속받는(inherited) 태스크
Figure pat00259
의 프리엠트 세트 역시
Figure pat00260
을 포함한다. 이에 따라
Figure pat00261
의 최대 시작 시간과 최대 종료 시간은 이에 따라 변경된다. 그리고 3번째 반복에서
Figure pat00262
의 최대 시작 시간과 최대 종료 시간은 또한 변경된다. 그리고 태스크 그래프의 WCRT는
Figure pat00263
에 연결된
Figure pat00264
에 의해 100으로 예측된다.For example, referring to FIG. 8, the priority of the three tasks does not follow the order of the topology. In this example, the execution time boundary of each task as shown in FIG. 8 (b) is calculated by the first iteration of step S500 of FIG. 3, and in Equation 12 in the second iteration of step S500.
Figure pat00250
end
Figure pat00251
Belong to Has a minimum start time of
Figure pat00253
Task less than the maximum end time of
Figure pat00254
Is a task
Figure pat00255
Affects the calculation of the maximum end time. And tasks
Figure pat00256
To avoid multiple exclusions
Figure pat00257
Is inserted into the prem set of
Figure pat00258
Tasks inheriting a preempt set from
Figure pat00259
Prem set
Figure pat00260
. Accordingly
Figure pat00261
The maximum start time and the maximum end time of are changed accordingly. And in the third iteration
Figure pat00262
The maximum start time and maximum end time are also changed. And the WCRT in the task graph
Figure pat00263
Connected to
Figure pat00264
Is predicted by 100.

이 예에서 과 예측(over-estimation)의 원인은 선행 태스크

Figure pat00265
에 대한 태스크
Figure pat00266
에 의한 일어날 수 없는 배제에 기인한다. 이러한 불가능한 배제의 가능성을 제거하기 위해서, 각 태스크에 대해서 또 다른 태스크 세트인 제외(exclusion) 세트
Figure pat00267
를 정의한다. In this example, the cause of over-estimation is the predecessor task.
Figure pat00265
Task for
Figure pat00266
Due to exclusion that cannot occur by. To eliminate this possibility of exclusion, an exclusion set, which is another set of tasks for each task
Figure pat00267
.

이러한 태스크의 제외 세트는 토폴로지 순서에 의해 태스크가 의존하는 우선 순위가 높은 태스크이다. 도 8의 예에서 태스크

Figure pat00268
는 태스크
Figure pat00269
Figure pat00270
의 제외 세트에 포함된다. 물론 이러한 제외 세트는 Min-Max 분석이 이루어지기 전에 우선 순위와 태스크 그래프의 토폴로지를 검색 혹은 분석하여 먼저 결정될 수 있다.The exclusion set of these tasks is the high priority task upon which the task depends on the topology order. Task in the example of FIG. 8
Figure pat00268
Is a task
Figure pat00269
and
Figure pat00270
Included in the exclusion set. Of course, this exclusion set can be determined first by searching or analyzing the priority and topology of the task graph before the Min-Max analysis is performed.

이러한 제외 세트는, 비록 우선 순위가 높은 태스크가 동일한 실행 유닛에 맵핑되는 경우에도 토폴로지 순서를 더 고려하여 해당 태스크의 실행 시간 경계의 계산에 배제하도록 하여 더욱더 타이트한(엄격한) 실행 시간 경계의 계산이 이루어지도록 한다. This exclusion set allows the calculation of tighter (strict) execution time boundaries by allowing the higher priority tasks to be mapped to the same execution unit, taking into account the topology order, and excluding them from the calculation of the execution time boundaries of those tasks. To lose.

이러한 제외 세트를 고려하여, 수학식 8의

Figure pat00271
와 수학식 12의
Figure pat00272
는 아래와 같이 수정된다.
Given this set of exclusions,
Figure pat00271
And of Equation 12
Figure pat00272
Is modified as follows.

Figure pat00273
= {
Figure pat00274
|
Figure pat00275
=
Figure pat00276
,
Figure pat00277
>
Figure pat00278
,
Figure pat00279
<=
Figure pat00280
,
Figure pat00281
Figure pat00282
Figure pat00283
그리고
Figure pat00284
Figure pat00285
Figure pat00286
},
Figure pat00273
= {
Figure pat00274
|
Figure pat00275
=
Figure pat00276
,
Figure pat00277
>
Figure pat00278
,
Figure pat00279
<=
Figure pat00280
,
Figure pat00281
Figure pat00282
Figure pat00283
And
Figure pat00284
Figure pat00285
Figure pat00286
},

Figure pat00287
= {
Figure pat00288
|
Figure pat00289
=
Figure pat00290
,
Figure pat00291
>
Figure pat00292
,
Figure pat00293
<=
Figure pat00294
,
Figure pat00295
<=
Figure pat00296
,
Figure pat00297
Figure pat00298
Figure pat00299
그리고
Figure pat00300
Figure pat00301
Figure pat00302
}
Figure pat00287
= {
Figure pat00288
|
Figure pat00289
=
Figure pat00290
,
Figure pat00291
>
Figure pat00292
,
Figure pat00293
<=
Figure pat00294
,
Figure pat00295
<=
Figure pat00296
,
Figure pat00297
Figure pat00298
Figure pat00299
And
Figure pat00300
Figure pat00301
Figure pat00302
}

이에 따라 현재 실행 시간 계산을 하고 있는 태스크 보다 더 높은 우선 순위를 가지더라도 실제 발생할 수 없는 스케쥴링상의 배제를 야기하는 태스크를 최대 시작 시간 및 최대 종료 시간의 계산에서 제외하고 대신에 현 태스크보다 낮은 우선 순위를 가진 태스크만이 최대 시작 시간 및 최대 종료 시간의 계산에 반영된다. This excludes tasks that cause scheduling exclusion that cannot actually occur even if they have a higher priority than the task that is currently calculating the execution time, but instead of calculating the maximum start time and maximum end time, instead of lower priority than the current task. Only tasks with are reflected in the calculation of maximum start time and maximum end time.

이상 도 7과 도 8의 예에서는 최대 시작 시간 및 최대 종료 시간의 계산에 타이트한 실행 시간 경계를 계산하기 위한 적용 기법을 살펴보았다.
In the example of FIG. 7 and FIG. 8, the application technique for calculating the tight execution time boundary in calculating the maximum start time and the maximum end time has been described.

이러한 최대 시작 시간 및 최대 종료 시간의 적용된 계산 기법뿐 아니라, 최소 시작 시간 및 최소 종료 시간에 적용할 수 있는 기법을 이하 도 9에서 살펴본다. In addition to the applied calculation technique of the maximum start time and the maximum end time, a technique applicable to the minimum start time and the minimum end time will be described with reference to FIG. 9.

이러한 최소 시작 시간 및 최소 종료 시간에 적용되는 기법은 또한 최대 시작 시간과 최대 종료 시간의 계산에 영향을 미쳐 최대 시작 시간과 최대 종료 시간 역시 타이트한 결과를 제공할 수 있도록 한다. The technique applied to the minimum start time and the minimum end time also affects the calculation of the maximum start time and the maximum end time so that the maximum start time and the maximum end time can also provide tight results.

도 9에서 알 수 있는 바와 같이 5 개의 태스크가 선점형 스케쥴링 기법을 따르는 하나의 실행 유닛에 할당되어 있다. 그리고 이 태스크 그래프의 태스크에 대하여 계산된 실행 시간 경계가 도 9에 표시되어 있다. As can be seen in FIG. 9, five tasks are assigned to one execution unit following the preemptive scheduling technique. The execution time boundaries calculated for the tasks in this task graph are shown in FIG.

이 예에서 태스크

Figure pat00303
Figure pat00304
의 최대 시작 시간이 태스크
Figure pat00305
의 최소 릴리스 시간보다 크기에
Figure pat00306
Figure pat00307
는 태스크
Figure pat00308
Figure pat00309
에 포함되지 않는다. 이에 따라
Figure pat00310
의 최소 시작 시간은 태스크
Figure pat00311
Figure pat00312
에 따라 야기되는 스케쥴링 지연을 고려하지 않아 과소 평가(under estimated) 된다. 이에 따라 태스크
Figure pat00313
의 최대 종료 시간은 또한 과 평가(over estimated)된다. Task in this example
Figure pat00303
Wow
Figure pat00304
Maximum start time of the task
Figure pat00305
In size less than the minimum release time
Figure pat00306
Wow
Figure pat00307
Is a task
Figure pat00308
of
Figure pat00309
Not included in Accordingly
Figure pat00310
Minimum start time for a task
Figure pat00311
Wow
Figure pat00312
It is underestimated without taking into account the scheduling delay caused by. Accordingly task
Figure pat00313
The maximum end time of is also over estimated.

이러한 과소 평가의 문제를 회피하기 위해서, 모든 경우에서 태스크

Figure pat00314
에 앞서 스케쥴링되는 태스크를 포함하는
Figure pat00315
을 구성한다. 이 예에서 태스크
Figure pat00316
Figure pat00317
는 태스크
Figure pat00318
보다 먼저 스케쥴링되기에
Figure pat00319
Figure pat00320
에 포함된다. 그리고 수학식 7은 아래의 수학식 15로 변경되어 최소 시작 시간이 선 스케쥴된 태스크의 최소 종료 시간보다 작지 않은 경우로 수정된다.To avoid this underestimation problem, the task in all cases
Figure pat00314
Which contains tasks that are scheduled prior to
Figure pat00315
Configure Task in this example
Figure pat00316
Wow
Figure pat00317
Is a task
Figure pat00318
Is scheduled ahead of time
Figure pat00319
of
Figure pat00320
. Equation (7) is changed to Equation (15) below to modify the case where the minimum start time is not smaller than the minimum end time of the pre-scheduled task.

Figure pat00321
Figure pat00321

이러한 수학식 15의 적용으로 보다더 타이트한 최소 시작 시간 및 최소 종료 시간의 계산이 가능하도록 하고 또한 최대 시작 시간 및 최대 종료 시간의 계산 역시 보다더 타이트하게 이루어질 수 있도록 한다(도 9의 "

Figure pat00322
를 고려하는 경우").The application of Equation 15 enables the calculation of the tighter minimum start time and the minimum end time, and also allows the calculation of the maximum start time and the maximum end time to be made even tighter (see FIG. 9 ").
Figure pat00322
If you consider ").

이상 도 7 내지 도 9에서는 도 3 내지 도 5에 따르는 Min-Max 분석 방법을 태스크 그래프의 의존 관계의 유형 또는 형태와 또한 우선 순위를 더 고려하여 보다더 정확히 실행 시간 경계의 계산을 할 수 있도록 하는 기법을 살펴보았다. 이러한 기법들은 태스크 그래프의 사이즈(예를 들어 태스크 그래프의 태스크의 개수 등)가 클수록 더욱더 효과적인 경계 계산의 결과를 제공할 수 있도록 한다.
In FIGS. 7 to 9, the Min-Max analysis method according to FIGS. 3 to 5 can calculate the execution time boundary more accurately in consideration of the type or form of dependency relationship and also priority of the task graph. We looked at the technique. These techniques allow for larger task graph sizes (eg, the number of tasks in the task graph, etc.) to provide more effective results of boundary calculations.

도 10은, 하나 이상의 실행 유닛에 대한 성능 분석 장치의 기능 블록도를 도시한 도면이다. 10 is a functional block diagram of a performance analysis device for one or more execution units.

이러한 기능 블록도는, 도 1의 하드웨어 블록도 상에서 구현되며 예를 들어 메모리(101)를 활용하고 프로세서(111) 상에서 수행되는 프로그램의 형태로 구현된다. This functional block diagram is implemented on the hardware block diagram of FIG. 1 and is implemented, for example, in the form of a program that utilizes the memory 101 and is executed on the processor 111.

도 10에서는 도 2 내지 도 5와 중복되지 않는 범위 내에서 간단히 살펴보도록 한다.In FIG. 10, a brief review will be made within a range that does not overlap with FIGS. 2 to 5.

도 10에 따르면, 성능 분석 장치의 기능 블록도는, 태스크 그래프 로딩부(210)와 태스크 그래프 선택부(220)와 태스크 실행 시간 계산부(230)와 반복 제어부(270)를 포함하고, 또한 대기 큐(240)와 완료 큐(250)와 순서 리스트(260)을 포함한다.According to FIG. 10, the functional block diagram of the performance analysis apparatus includes a task graph loading unit 210, a task graph selecting unit 220, a task execution time calculating unit 230, and an iteration control unit 270, and are also in standby. A queue 240, a completion queue 250, and an order list 260 are included.

여기서 대기 큐(240)는, 비록 높은 우선 순위로 태스크가 먼저 선택된 경우라도 예를 들어 토폴로지에 의한 의존 관계로 인해 이 태스크의 실행 시간의 계산이 완료 되지 못한 태스크를, 저장하고, 완료 큐(250)는 실행 시간 경계의 계산이 이루어진 태스크를 저장한다. 이러한 대기 큐(240)와 완료 큐(250)는 예를 들어 메모리(101)상에 구성될 수 있다. The wait queue 240 here stores a task whose calculation of execution time of this task has not been completed, for example because of a topology dependence, even if the task is first selected with a high priority, and the completion queue 250 ) Stores the task for which the execution time boundary has been calculated. This waiting queue 240 and completion queue 250 may be configured on memory 101, for example.

각 기능 블록들을 살펴보면, 태스크 그래프 로딩부(210)는 입력 인터페이스(105)나 통신 인터페이스(109)를 통해 수신되거나 입력된 개발자(또는 사용자)의 제어 입력에 따라 태스크 간의 의존 관계를 나타내는 태스크 그래프와 이 태스크 그래프가 맵핑된 실행 유닛 그래프와 태스크 그래프에 포함된 각 태스크의 우선 순위나 실행 유닛에 관련된 스케쥴링 기법 등과 같은 태스크 그래프와 실행 유닛 그래프에 관련된 각종 파라미터 정보를 로딩하고 이를 예를 들어 메모리(101) 및/또는 대용량 저장 매체(103)에 저장한다.Referring to each of the functional blocks, the task graph loading unit 210 may include a task graph indicating a dependency relationship between tasks according to a control input of a developer (or user) received or input through the input interface 105 or the communication interface 109. This task graph loads various parameter information related to the task graph and the execution unit graph, such as the execution unit graph to which the task graph is mapped and the priority of each task included in the task graph, the scheduling technique related to the execution unit, and the like. And / or to mass storage medium 103.

이러한 파라미터 정보는 예를 들어 표 1에 기재되어 있는 각종 파라미터를 포함한다. 이러한 파라미터를 이용하여 태스크 그래프나 태스크 그래프에 포함된 태스크의 실행 시간 경계를 계산할 수 있다.Such parameter information includes, for example, various parameters described in Table 1. Using these parameters, the execution time boundary of a task included in a task graph or a task graph can be calculated.

이를 위해 태스크 그래프 로딩부(210)는 실행 주기 결정부(211)와 태스크 그래프 인스턴스 생성부(213)를 포함한다. 이 실행 주기 결정부(211)는, 로딩된 태스크 그래프의 파라미터에 포함된 실행 주기를 결정하고, 태스크 그래프 인스턴스 생성부(213)는 복수의 태스크 그래프 각각의 실행 주기의 최소 공배수에 따라서 각 태스크 그래프의 인스턴스를 생성한다. 생성된 인스턴스는 이후 실행 시간 경계의 계산에 이용된다.To this end, the task graph loading unit 210 includes an execution cycle determiner 211 and a task graph instance generator 213. The execution cycle determination unit 211 determines the execution cycle included in the parameters of the loaded task graph, and the task graph instance generator 213 determines each task graph according to the least common multiple of the execution cycles of each of the plurality of task graphs. Create an instance of. The created instance is then used to calculate runtime boundaries.

여기서 생성된 각 태스크 그래프의 인스턴스의 개수는 복수의 태스크 그래프의 실행 주기로부터 결정된 최소 공배수에 의해서 공통되는 실행 주기를 가질 수 있도록 계산된다. The number of instances of each task graph generated here is calculated to have a common execution cycle by the least common multiple determined from the execution cycles of the plurality of task graphs.

또한 태스크 그래프 인스턴스 생성부(213)는, 이에 더하여 각 태스크 그래프의 WCRT가 각 태스크 그래프의 실행 주기보다 더 큰 경우에 태스크 그래프의 인스턴스를 더 생성할 수 있다. 예를 들어 다음 주기의 태스크가 이전 주기의 태스크의 실행에 영향을 미칠 수 있기 때문이다. In addition, the task graph instance generator 213 may further generate an instance of the task graph when the WCRT of each task graph is larger than the execution period of each task graph. For example, tasks in the next cycle can affect the execution of tasks in the previous cycle.

이 태스크 그래프 인스턴스 생성부(213)는 태스크 그래프 각각의 인스턴스를 각각 생성하는 것 외에 순차적으로 태스크 그래프의 인스턴스를 생성하여 이 인스턴스에 대해서 실행 시간 경계를 계산하고 다시 이후에 새로운 인스턴스를 생성하는 식으로 반복적으로 구성할 수도 있다. 이러한 구현 방식은 선택의 문제로서 이 성능 분석 장치가 적용되는 하드웨어 구조에 따라서 또는 프로그램의 구조에 따라 여러 선택 방식 중에서 하나를 선택할 수 있다. This task graph instance generating unit 213 not only generates each instance of each task graph, but also sequentially generates instances of the task graph, calculates execution time boundaries for the instances, and generates new instances later. It can also be configured repeatedly. This implementation method is a matter of selection, and according to the hardware structure to which the performance analyzer is applied or the structure of a program, one of several selection methods can be selected.

그리고 태스크 그래프 선택부(220)는, 반복 제어부(270)의 제어하에 복수의 태스크 그래프에 포함된 태스크를 태스크 간의 지정된 우선 순위와 이에 더하여 토폴로지 순서에 따라 순서화된 순서 리스트(260)(Q)에서 가장 높은 순서 위치를 가진 하나를 선택하고, 이후의 선택에서는 그 다음으로 높은 순서 위치를 가진 태스크를 선택한다. The task graph selecting unit 220 controls the tasks included in the plurality of task graphs under the control of the repeating control unit 270 in the order list 260 (Q) ordered according to the priority order of the tasks and the topology order. The one with the highest order position is selected, and the subsequent selection selects the task with the next highest order position.

이러한 순서 리스트(260)(Q)는 반복 제어부(270)의 제어하에 초기에 태스크를 순서화시킬 수 있고 이후 태스크 그래프 선택부(220)에 의한 태스크의 선택에 따라 선택된 태스크를 순서 리스트(260) 상에서 삭제하도록 구성될 수 있다. 물론 다시 계산의 재반복을 다시 시작하는 경우에는 다시 초기의 태스크간의 순서로 순서화될 수 있다. The order list 260 (Q) may order the tasks initially under the control of the repeating control unit 270, and then select the tasks selected according to the task selection by the task graph selector 220 on the order list 260. Can be configured to delete. Of course, when resuming the repetition of the calculation can be ordered again in the order between the initial tasks.

여기서 순서 리스트(260)에 순서화되는 태스크의 순서는 예를 들어 우선 순위에 따라 순서화되고 태스크 그래프의 토폴로지 순서를 더 고려하여 순서화된다. Here, the order of tasks ordered in the order list 260 is ordered according to priority, for example, and further considering the topology order of the task graph.

여기서 동일한 태스크 그래프는, 여러 개의 인스턴스로 생성될 수 있고 이 경우에는 각 인스턴스의 생성 순서에 따라서 인스턴스에 포함된 태스크 들에 대해서 순서 리스트(260)상에서 순서화된다. Here, the same task graph may be generated by several instances, in which case, the order of tasks included in the instance is ordered on the order list 260 according to the generation order of each instance.

그리고 태스크 실행 시간 계산부(230)는, 태스크 그래프 선택부(220)에 의해서 선택된 태스크에 대해서 태스크 그래프 로딩부(210)에서 로딩된 실행 유닛과의 맵핑 관계와 태스크 간의 의존 관계를 이용하여 실행 시간 경계를 계산한다.The task execution time calculation unit 230 executes the execution time using the mapping relationship with the execution unit loaded by the task graph loading unit 210 and the dependency relationship between the tasks with respect to the task selected by the task graph selection unit 220. Calculate the boundary.

이 태스크 실행 시간 계산부(230)와 태스크 그래프 선택부(220)는, 반복 제어부(270)의 제어하에서 로딩된 모든 태스크 그래프의 모든 태스크에 대해서 반복하여 계산하고 순서에 따라 반복하여 선택한다. The task execution time calculation unit 230 and the task graph selection unit 220 repeatedly calculate and repeatedly select all the tasks of all the task graphs loaded under the control of the repetition control unit 270 in order.

그리고 태스크 실행 시간 계산부(230)는, 선택된 태스크의 실행 시간 경계가 계산될 수 있는 지를 결정하는 실행 시간 경계 결정부(231)를 포함한다. 이 실행 시간 경계 결정부(231)는, 앞서 수학식 1 내지 15를 이용하여 각각의 실행 시간 경계를 계산하고, 선택된 태스크가 토폴로지 순서에 의해서 선행하는 태스크에 대한 실행 시간 경계가 계산되지 못한 경우에는 현재 선택된 실행 시간 경계가 계산되지 않을 수 있다. The task execution time calculator 230 includes an execution time boundary determiner 231 that determines whether an execution time boundary of the selected task may be calculated. The execution time boundary determination unit 231 calculates each execution time boundary using Equations 1 to 15 above, and if the execution time boundary for the task to which the selected task is preceded by the topology order is not calculated, The currently selected runtime boundary may not be calculated.

이 경우에는 태스크 실행 시간 계산부(230)에 더 포함되는 대기 큐 삽입부(233)를 이용하여 대기 큐(240)에 실행 시간 경계가 계산되지 않은 선택된 태스크를 삽입한다.In this case, the selected task whose execution time boundary is not calculated is inserted into the standby queue 240 by using the standby queue insertion unit 233 further included in the task execution time calculator 230.

반면에 실행 시간 경계가 계산될 수 있는 경우에는, 완료 큐 삽입부(235)를 이용하여 완료 큐(250)에 이 선택된 태스크를 삽입한다. On the other hand, if the execution time boundary can be calculated, the selected task is inserted into the completion queue 250 using the completion queue insertion unit 235.

그리고 반복 제어부(270)는, 모든 태스크의 실행 시간 경계가 계산완료될 수 있도록 각 기능 블록들을 제어하고, 예를 들어 도 3 내지 도 5에 따르는 Min-Max 분석 방법의 반복을 제어하고 각 변수들을 초기화한다.In addition, the iteration control unit 270 controls each function block so that execution time boundaries of all tasks can be completed, for example, controls the iteration of the Min-Max analysis method according to FIGS. 3 to 5 and sets each variable. Initialize

이에 따라 반복 제어부(270)는, 순서 리스트(260)를 태스크 그래프 로딩부(210)에서 로딩한 태스크 그래프의 정보에 기초하여 초기(순서)화하고, 실행 시간 경계 결정부(231)에서 실행 시간 경계가 계산되었는 지를 모니터링하고 그 결과에 따라 대기 큐(240)에 삽입되어 있는 태스크에 대한 실행 시간 경계의 계산을 제어하고, 모든 태스크에 대한 전체 반복에 따라 하나 이상의 태스크의 실행 시간 경계가 변경되었는 지를 결정하여 이 결정에 따라 다시 재 반복(도 3 참조)할 것인지를 결정한다. 이러한 반복 제어부(270)의 제어 흐름은 도 3 내지 도 5를 참조하면 쉽게 이해할 수 있을 것이다. Accordingly, the iteration control unit 270 initializes the order list 260 based on the information of the task graph loaded by the task graph loading unit 210, and executes the execution time in the execution time boundary determination unit 231. Monitor if the boundary is calculated and control the calculation of the run time boundary for the task inserted into the wait queue 240 as a result, and change the run time boundary of one or more tasks according to the overall iteration for all tasks. Then decide whether to repeat again (see Figure 3). The control flow of the repeating control unit 270 will be easily understood with reference to FIGS. 3 to 5.

이러한 도 10의 기능 블록도에 따르는 성능 분석 장치를 이용함으로써, 빠른 속도로 더욱더 타이트한 성능 분석 결과를 제공할 수 있도록 한다.
By using the performance analysis apparatus according to the functional block diagram of FIG. 10, it is possible to provide more tight performance analysis results at a high speed.

본발명에 따르는 성능 분석 방법과 성능 분석 장치를 이용함으로써, 기존에 알려져 있는 구성적 접근 방법에 비하여 최소 30% 이상 더욱더 타이트한 성능 분석 예측 결과를 제공하는 것으로 판단되었고, 분석적 접근 방법에 근접하는 성능 분석 예측 결과를 가져옴을 알 수 있었다. 물론 기존의 분석적 접근 방법은 태스크 그래프의 태스크의 개수가 늘어남에 따라서 실제 수행 시간이 기하급수적으로 늘어나 실제로 적용되기에는 문제가 있다는 것이 알려져 있다. By using the performance analysis method and the performance analysis device according to the present invention, it has been determined to provide at least 30% more tight performance analysis prediction results than the conventionally known constitutional approaches, and performance analysis close to the analytical approach. It can be seen that the prediction results are obtained. Of course, the conventional analytical approach is known to have a problem that the actual execution time increases exponentially as the number of tasks in the task graph increases.

그리고 다양한 스케쥴링 기법에 대한 적용은 많은 유용함을 제공한다. 예를 들어 대부분의 컴퓨터 아키텍처는 하나 이상의 프로세서와 이 프로세서 사이를 연결하기 위한 버스 등을 포함한다. 이러한 프로세서는 OS(Operating System)에 따라 일반적으로 선점형 또는 비선점형 스케쥴링 기법을 포함한다. 반면에 버스 등은 고속의 자동화된 전송을 위해 하드웨어(하드와이어 형태의 FIFO) 등을 이용하여 비선점형 스케쥴링 기법을 이용하는 것이 일반적이다. 물론 버스 자체도 버스 내에 내장되어 있는 특정 로직에 의해서 우선순위에 따른 선점형 스케쥴링 기법을 적용할 수도 있다.And the application of various scheduling techniques provides a lot of usefulness. For example, most computer architectures include one or more processors and a bus to connect between them. Such processors typically include preemptive or non-preemptive scheduling techniques, depending on the operating system (OS). Buses, on the other hand, generally use non-preemptive scheduling techniques using hardware (hardwire-type FIFO) for high speed, automated transmission. Of course, the bus itself can also be applied to preemptive scheduling based on specific logic embedded in the bus.

그리고 본 발명에 따르면 버스 자체도 하나의 실행 유닛(예를 들어 도 2의 PE1)으로 모델링될 수 있고, 버스 상에서의 통신 태스크도 또한 하나의 태스크(예를 들어 도 2의

Figure pat00323
Figure pat00324
)로 모델링할 수 있도록 한다. And according to the invention the bus itself can also be modeled as a single execution unit (e.g. PE1 in FIG. 2) and the communication task on the bus is also a task (e.g. in FIG.
Figure pat00323
Wow
Figure pat00324
To be modeled.

이러한 다양한 모델링과 다양한 스케쥴링 기법의 적용은, 개발자에게 물론 내장형 시스템 설계의 유연성을 제공하고, 빠른 성능 분석 결과의 예측은 개발 기간을 단축할 수 있도록 한다.
The application of these various modeling and scheduling techniques provides the developer with the flexibility of embedded system design as well as the rapid prediction of performance analysis results that can shorten the development period.

이와 같은 본발명에 따른 성능 분석 방법은 프로그램의 형태로 컴퓨터 판독가능한 기록 매체 상에 기록되어 배포될 수 있다. 이러한 기록 매체는 예를 들어 USB 메모리이거나 CD, DVD 등과 같은 프로그램을 기록할 수 있는 대용량 저장 매체일 수 있다.
Such a performance analysis method according to the present invention can be recorded and distributed on a computer-readable recording medium in the form of a program. Such a recording medium may be, for example, a USB memory or a mass storage medium capable of recording a program such as a CD or a DVD.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention. The present invention is not limited to the drawings.

101 : 메모리 103 : 대용량 저장 매체
105 : 입력 인터페이스 107 : 출력 인터페이스
109 : 통신 인터페이스 111 : 프로세서
113 : 시스템 버스/제어 버스
210 : 태스크 그래프 로딩부
211 : 실행 주기 결정부 213 : 태스크 그래프 인스턴스 생성부
220 : 태스크 그래프 선택부
230 : 태스크 실행 시간 계산부
231 : 실행 시간 경계 결정부 233 : 대기 큐 삽입부
235 : 완료 큐 삽입부
240 : 대기 큐 250 : 완료 큐
260 : 순서 리스트 270 : 반복 제어부
101: memory 103: mass storage media
105: input interface 107: output interface
109: communication interface 111: processor
113: system bus / control bus
210: task graph loading unit
211: execution cycle determination unit 213: task graph instance generation unit
220: task graph selector
230: task execution time calculation unit
231: execution time boundary determination unit 233: standby queue insertion unit
235: completion queue insertion unit
240: waiting queue 250: completion queue
260: order list 270: repeat control

Claims (12)

하나 이상의 실행 유닛에 대한 성능 분석 방법으로서,
(a) 태스크 간의 의존 관계를 포함하는 태스크 그래프 정보를 로딩하는 단계;
(b) 지정된 우선 순위에 기초하여 태스크 그래프의 태스크를 선택하는 단계;
(c) 선택된 태스크의 상기 하나 이상의 실행 유닛에서의 맵핑 관계와 태스크 간의 의존 관계를 이용하여 선택된 태스크의 실행 시간 경계를 계산하는 단계; 및
(d) 태스크 그래프의 나머지 태스크에 대해서 상기 단계 (b)와 단계 (c)를 반복하는 단계;를 포함하는,
성능 분석 방법.
A method of performance analysis of one or more execution units,
(a) loading task graph information including dependency relationships between tasks;
(b) selecting a task in the task graph based on the specified priority;
(c) calculating an execution time boundary of the selected task using a dependency relationship between a task and a mapping relationship in the one or more execution units of the selected task; And
(d) repeating steps (b) and (c) for the remaining tasks in the task graph;
Performance analysis method.
제1항에 있어서,
상기 단계 (c)는,
(c-1) 선택된 태스크의 실행 시간 경계가 계산될 수 있는 지를 결정하는 단계;
(c-2) 상기 실행 시간 경계가 계산될 수 없는 경우에, 대기 큐에 상기 선택된 태스크를 삽입하는 단계; 및
(c-3) 상기 실행 시간 경계가 계산될 수 있는 경우에, 실행 시간 경계를 계산 완료한 완료 큐에 상기 선택된 태스크를 삽입하는 단계;를 포함하는,
성능 분석 방법.
The method of claim 1,
The step (c)
(c-1) determining whether an execution time boundary of the selected task can be calculated;
(c-2) inserting the selected task into a wait queue if the execution time boundary cannot be calculated; And
(c-3) if the execution time boundary can be calculated, inserting the selected task into the completion queue for which the execution time boundary has been calculated;
Performance analysis method.
제2항에 있어서,
상기 단계 (c)는,
(c-4) 상기 실행 시간 경계가 계산될 수 있는 경우에, 상기 선택된 태스크의 계산된 실행 시간 경계를 이용하여 대기 큐의 태스크에 대하여 실행 시간 경계를 계산하는 단계;를 더 포함하는,
성능 분석 방법.
3. The method of claim 2,
The step (c)
(c-4) if the execution time boundary can be calculated, calculating an execution time boundary for a task in a wait queue using the calculated execution time boundary of the selected task;
Performance analysis method.
제2항에 있어서,
(e) 태스크 그래프의 태스크 중 하나 이상의 태스크의 실행 시간 경계가 변경되었는지를 결정하는 단계; 및
(f) 하나 이상의 태스크의 실행 시간 경계가 변경된 경우에 단계 (b) 내지 단계 (d)를 변경된 실행 시간 경계를 이용하여 재 반복하는 단계;를 더 포함하는,
성능 분석 방법.
3. The method of claim 2,
(e) determining whether an execution time boundary of one or more of the tasks in the task graph has changed; And
(f) repeating steps (b) to (d) using the changed execution time boundary when the execution time boundary of the one or more tasks has changed;
Performance analysis method.
제1항에 있어서,
상기 단계 (a)는,
(a-1) 복수의 태스크 그래프의 실행 주기를 결정하는 단계; 및
(a-2) 복수의 태스크 그래프 각각의 실행 주기에 따라 복수의 태스크 그래프 각각의 태스크 그래프 인스턴스(instance)를 생성하는 단계;를 포함하며,
생성된 태스크 그래프의 인스턴스의 개수는, 복수의 태스크 그래프의 실행 주기 간의 최소 공배수를 이용하여 결정되며, 상기 단계 (c)는, 상기 생성된 태스크 그래프의 인스턴스로부터 선택된 태스크에 대해서 실행 시간 경계를 계산하는,
성능 분석 방법.
The method of claim 1,
The step (a)
(a-1) determining execution cycles of the plurality of task graphs; And
(a-2) generating a task graph instance of each of the plurality of task graphs according to an execution period of each of the plurality of task graphs;
The number of instances of the generated task graph is determined using the least common multiple between execution periods of the plurality of task graphs, and step (c) calculates execution time boundaries for tasks selected from the instances of the generated task graph. doing,
Performance analysis method.
제2항에 있어서,
상기 실행 시간 경계는, 최소 시작 시간(min start time), 최대 시작 시간(max start time), 최소 종료 시간(min finish time) 및 최대 종료 시간(max finish time) 중 하나 이상의 시간 정보를 포함하고,
상기 단계 (c-1)은, 선택된 태스크의 실행 시간 경계를, 상기 선택된 태스크가 맵핑된 실행 유닛의 스케쥴링 타입과 태스크 그래프에 포함된 다른 태스크의 우선 순위와 실행 시간 경계에 기초하여, 계산하는,
성능 분석 방법.
3. The method of claim 2,
The execution time boundary includes at least one time information of a minimum start time, a maximum start time, a maximum start time, a minimum finish time, and a maximum finish time.
In step (c-1), the execution time boundary of the selected task is calculated based on the scheduling type of the execution unit to which the selected task is mapped and the priority and execution time boundary of other tasks included in the task graph.
Performance analysis method.
제6항에 있어서,
선택된 태스크와는 다른 태스크 그래프에 포함된 상기 다른 태스크는, 상기 다른 태스크의 실행 시간 경계와 상기 선택된 태스크의 실행 시간 경계의 비교로 결정되고, 또한
상기 다른 태스크는, 선택된 태스크를 포함하는 태스크 그래프에서의 의존 관계의 체인 상의 태스크들에 대한 실행 시간 경계의 계산에 1회만 반영되도록 선택되는,
성능 분석 방법.
The method according to claim 6,
The other task included in a task graph different from the selected task is determined by comparing the execution time boundary of the other task with the execution time boundary of the selected task.
The other task is selected to be reflected only once in the calculation of the execution time boundary for tasks on the chain of dependencies in the task graph containing the selected task,
Performance analysis method.
제6항에 있어서,
상기 단계 (c-1)은, 선택된 태스크의 태스크 그래프에서의 토폴로지(topology) 순서와 태스크의 우선 순위에 따라 상기 다른 태스크를 결정하여 선택된 태스크의 실행 시간 경계를 계산하며,
결정된 상기 다른 태스크는, 토폴로지 순서상에서 선택된 태스크보다 낮은 우선 순위를 가지는 태스크인,
성능 분석 방법.
The method according to claim 6,
In the step (c-1), the execution time boundary of the selected task is calculated by determining the other task according to the topology order in the task graph of the selected task and the priority of the task.
The other task that is determined is a task having a lower priority than the task selected in the topology order,
Performance analysis method.
하나 이상의 실행 유닛에 대한 성능 분석 장치로서,
태스크 간의 의존 관계를 포함하는 태스크 그래프 정보를 로딩하는 태스크 그래프 로딩부;
지정된 우선 순위에 기초하여 태스크 그래프의 태스크를 선택하는 태스크 그래프 선택부; 및
선택된 태스크의 상기 하나 이상의 실행 유닛에서의 맵핑 관계와 태스크 간의 의존 관계를 이용하여 선택된 태스크의 실행 시간 경계를 계산하는 태스크 실행 시간 계산부;를 포함하며,
상기 태스크 그래프 선택부 및 태스크 실행 시간 계산부는, 태스크 그래프의 모든 태스크에 대해서 선택하여 실행 시간 경계를 계산하는,
성능 분석 장치.
A performance analysis device for one or more execution units,
A task graph loading unit that loads task graph information including dependency relationships between tasks;
A task graph selecting unit that selects a task of the task graph based on a specified priority; And
And a task execution time calculation unit configured to calculate an execution time boundary of the selected task using a mapping relationship between the at least one execution unit of the selected task and the task.
The task graph selecting unit and the task execution time calculating unit selects all tasks of the task graph to calculate execution time boundaries.
Performance analysis device.
제9항에 있어서,
상기 태스크 실행 시간 계산부는,
선택된 태스크의 실행 시간 경계가 계산될 수 있는 지를 결정하는 실행 시간 경계 결정부;
상기 실행 시간 경계가 계산될 수 없는 경우에, 대기 큐에 상기 선택된 태스크를 삽입하는 대기 큐 삽입부; 및
상기 실행 시간 경계가 계산될 수 있는 경우에, 실행 시간 경계를 계산 완료한 완료 큐에 상기 선택된 태스크를 삽입하는 완료 큐 삽입부;를 포함하는,
성능 분석 장치.
10. The method of claim 9,
The task execution time calculation unit,
An execution time boundary determining unit that determines whether an execution time boundary of the selected task may be calculated;
A standby queue insertion unit inserting the selected task into a standby queue when the execution time boundary cannot be calculated; And
If the execution time boundary can be calculated, Completion queue insertion unit for inserting the selected task in the completion queue, the execution time boundary has been completed; including;
Performance analysis device.
제9항에 있어서,
상기 태스크 그래프 로딩부는,
복수의 태스크 그래프의 실행 주기를 각각 결정하는 실행 주기 결정부; 및
복수의 태스크 그래프 각각의 실행 주기에 따라 복수의 태스크 그래프 각각의 태스크 그래프 인스턴스(instance)를 생성하는 태스크 그래프 인스턴스 생성부를 포함하며,
생성된 태스크 그래프의 인스턴스의 개수는, 복수의 태스크 그래프의 실행 주기 간의 최소 공배수를 이용하여 결정되며, 상기 태스크 실행 시간 계산부는, 상기 생성된 태스크 그래프의 인스턴스로부터 선택된 태스크에 대해서 실행 시간 경계를 계산하는,
성능 분석 장치.
10. The method of claim 9,
The task graph loading unit,
An execution cycle determination unit for determining execution cycles of the plurality of task graphs, respectively; And
A task graph instance generating unit generating a task graph instance of each of the plurality of task graphs according to an execution cycle of each of the plurality of task graphs,
The number of instances of the generated task graph is determined using a least common multiple between execution cycles of a plurality of task graphs, and the task execution time calculator calculates an execution time boundary for a task selected from the instances of the generated task graph. doing,
Performance analysis device.
제1항에 따르는 하나 이상의 실행 유닛에 대한 성능 분석 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체.A computer-readable recording medium having recorded thereon a program for performing a method for performance analysis of one or more execution units according to claim 1.
KR1020120097103A 2012-09-03 2012-09-03 Performance analysis method, performance analysis apparatus for at least one execution unit, and computer readable recording medium recording program performing the performance analysis method KR101383225B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120097103A KR101383225B1 (en) 2012-09-03 2012-09-03 Performance analysis method, performance analysis apparatus for at least one execution unit, and computer readable recording medium recording program performing the performance analysis method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120097103A KR101383225B1 (en) 2012-09-03 2012-09-03 Performance analysis method, performance analysis apparatus for at least one execution unit, and computer readable recording medium recording program performing the performance analysis method

Publications (2)

Publication Number Publication Date
KR20140030660A true KR20140030660A (en) 2014-03-12
KR101383225B1 KR101383225B1 (en) 2014-04-09

Family

ID=50643062

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120097103A KR101383225B1 (en) 2012-09-03 2012-09-03 Performance analysis method, performance analysis apparatus for at least one execution unit, and computer readable recording medium recording program performing the performance analysis method

Country Status (1)

Country Link
KR (1) KR101383225B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086152A (en) * 2017-06-14 2018-12-25 杭州海康威视数字技术股份有限公司 Picture analyzing method, apparatus and system, computer equipment and storage medium
CN117934259A (en) * 2024-03-20 2024-04-26 浙江凌迪数字科技有限公司 Task flow chart generation method, electronic device and storage medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101621280B1 (en) * 2015-02-02 2016-05-17 서울대학교산학협력단 Worst case response time analysis method and computer program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4404228B2 (en) * 2008-02-18 2010-01-27 日本電気株式会社 Task scheduling system, method, and program
CA2752806C (en) * 2009-02-16 2018-07-17 Inchron Gmbh Method for analysing the real-time capability of a system
KR20110112640A (en) * 2010-04-07 2011-10-13 삼성전자주식회사 Apparatus and method for real-time task queue processing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086152A (en) * 2017-06-14 2018-12-25 杭州海康威视数字技术股份有限公司 Picture analyzing method, apparatus and system, computer equipment and storage medium
CN109086152B (en) * 2017-06-14 2021-12-14 杭州海康威视数字技术股份有限公司 Picture analysis method, device and system, computer equipment and storage medium
CN117934259A (en) * 2024-03-20 2024-04-26 浙江凌迪数字科技有限公司 Task flow chart generation method, electronic device and storage medium

Also Published As

Publication number Publication date
KR101383225B1 (en) 2014-04-09

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
JP2019527396A (en) System and method for creating a model adapter
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
Verhoef Modeling and validating distributed embedded real-time control systems
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 (en) Performance analysis method, performance analysis apparatus for at least one execution unit, and computer readable recording medium recording program performing the performance analysis method
Bobrek et al. Stochastic contention level simulation for single-chip heterogeneous multiprocessors
Cicirelli et al. Analyzing stochastic reward nets by model checking and parallel simulation
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
US20150227661A1 (en) Computer product, simulation apparatus, simulation method, bus model, and bus circuit
Anssi et al. AUTOSAR vs. MARTE for enabling timing analysis of automotive applications
KR101621280B1 (en) Worst case response time analysis method and computer program
Tripakis et al. Tokens vs. signals: On conformance between formal models of dataflow and hardware
Arpinen et al. Performance evaluation of UML2-modeled embedded streaming applications with system-level simulation
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
Richter et al. Bottom-up performance analysis of HW/SW platforms
Hatvani et al. Adaptive task automata with earliest-deadline-first scheduling
Sun et al. Real-time schedulability analysis with formal techniques

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