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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치에 관한 것으로서, 구체적으로는 하나 이상의 실행 유닛에서 실행되는 태스크 그래프와 이 태스크 그래프에 포함된 태스크들의 실행 유닛으로의 맵핑 관계를 이용하여 각 태스크 그래프의 최대 응답 시간과 같은 태스크 그래프의 성능을 빠른 속도로 그리고 최상의 결과에 근접하도록 예측 또는 결정할 수 있도록 하는, 하나 이상의 실행 유닛에 대한 성능 분석 방법 및 성능 분석 장치에 관한 것이다.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,
이러한 전체론적 접근 방법은, 선점형(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
이 성능 분석 장치는, 이 성능 분석 장치의 기능 또는 용도에 따라 하드웨어 블록도 중 일부의 블록을 생략하는 구성으로 구성될 수 있다. 예를 들어 성능 분석 장치는, 개인 사용자(또는 개발자)를 위한 예를 들어 개인용 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
성능 분석 장치의 각 하드웨어 블록들을 간단히 살펴보면, 메모리(101)는, SDRAM과 같은 휘발성 메모리이다. 이 메모리(101)는 대용량 저장 매체(103)에 저장되거나 또는 통신 인터페이스(109)를 통해 수신된 태스크 그래프의 정보를 프로세서(111)의 제어하에 로딩할 수 있고, 또는 대용량 저장 매체(103) 등에 저장된 Min-Max 분석 방법을 수행하기 위한 프로그램을 프로세서(111)의 제어하에 로딩하여 이 프로그램이 실행될 수 있도록 한다.Looking briefly at each hardware block of the performance analysis device,
대용량 저장 매체(103)는, 하드 디스크나 USB 메모리 등과 같이 다수의 데이터 등을 저장할 수 있는 저장 매체이다. 이 대용량 저장 매체(103)는 프로세서(111)에 이용될 각종 프로그램을 저장하고 각종 데이터를 저장한다.The
예를 들어 대용량 저장 매체(103)는, 프로세서(111)에 의해 수행되는 Min-Max 분석 방법에 대한 프로그램과 이 Min-Max 분석 방법으로 분석할 하나 이상의 태스크 그래프와 이 태스크 그래프가 수행되는 대상 하드웨어 아키텍처 또는 대상 하드웨어 아키텍처에서 태스크 그래프의 태스크를 수행할 수 있는 프로세서나 버스와 같은 실행 유닛의 연결 관계를 나타내는 실행 유닛 그래프를 포함한다.For example, the
여기서 태스크 그래프나 실행 유닛 그래프는 반드시 이미지의 형태로 표현될 필요는 없으며, 태스크 그래프나 실행 유닛 그래프에 포함되는 태스크 또는 실행 유닛 사이에서의 연결 관계나 의존 관계를 표현할 수 있는 자료 구조로 표현되거나 혹은 이미지와 함께 표현될 수 있다. 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
여기서, 태스크 그래프와 실행 유닛 그래프에 대해서 예제를 통해서 살펴보도록 한다.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)에서 알 수 있는 바와 같이 (의 후행 또는 자손 태스크, 이하에서는 후행 태스크 및 자손 태스크란 용어를 혼용하여 사용한다.)은 (의 선행 또는 선조 태스크, 이하에서는 선행 태스크 및 선조 태스크란 용어를 혼용하여 사용한다.)의 수행이 완료된 후에 수행될 수 있다. 또한 각 태스크 그래프는 선행하는 태스크에 의존하지 않는 소스 태스크(,)를 포함하며 이러한 소스 태스크는 (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) ( Trailing or descendant tasks in, hereinafter, the terms trailing task and descendant task are used interchangeably.) ( 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). , 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)에서 알 수 있는 바와 같이, 태스크 그래프 는 주기 100을 가지고 주기적으로 수행되고 태스크 그래프 도 동일한 주기를 가지고 주기적으로 수행된다.As can be seen in Figure 2 (b), the task graph Is performed periodically with
한편 도 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는 ,를 수행하도록 맵핑되고 PE0는 선점형(P) 스케쥴링 방식을 가지고, PE1은 버스로서 태스크 간의 데이터를 전달하거나 수신하기 위한 통신 태스크인 ,를 맵핑하여 비선점형(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 , PE0 has a preemptive ( P ) scheduling scheme, and PE1 is a communication task for transferring or receiving data between tasks as a bus. , 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
입력 인터페이스(105)는, 개발자 등으로부터 제어 입력을 수신하기 위한 인터페이스로서 예를 들어 마우스나 키보드 등으로부터 제어 입력을 수신하기 위한 제어 포트를 포함한다. The
출력 인터페이스(107)는, 개발자의 제어에 따라 수행된 결과를 출력하기 위한 인터페이스로서 예를 들어 디스플레이나 스피커 등으로 이미지나 음향을 출력하기 위한 제어 포트를 포함한다. The
통신 인터페이스(109)는, 유선 랜 또는 무선 랜 등을 통해 인터넷 또는 인트라넷 등에 연결하기 위한 인터페이스이다. 이러한 통신 인터페이스(109)를 통해 원격의 개발자 등으로부터 그래프 등과 같은 정보나 제어 명령을 수신하고 이 제어 명령에 따라 주어진 그래프 정보를 이용하여 성능 분석 또는 예측을 수행할 수 있다.The
프로세서(111)는, 성능 분석 장치의 각 블록들을 제어하는 예를 들어 프로그램을 메모리(101)를 통해 로딩하여 로딩된 프로그램에 따라 각 하드웨어 블록을 제어할 수 있는 하나 이상의 프로세싱 코어를 포함한다.The
이러한 프로세서(111)는 예를 들어 대용량 저장 매체(103)에 저장된 각종 프로그램을 로딩하고 입력 인터페이스(105)나 통신 인터페이스(109)를 통해 수신된 개발자 등으로부터의 제어에 따라 각 태스크 그래프의 성능을 예측하여 그 예측된 결과를 통신 인터페이스(109)나 출력 인터페이스(107)를 통해 출력한다.The
프로세서(111) 상에서 수행되는 Min-Max 분석 방법은 이하의 도면을 통해서 좀 더 상세히 살펴보도록 한다. The Min-Max analysis method performed on the
시스템 버스/제어 버스(113)는, 각 하드웨어 블록들을 연결하여 각 하드웨어 블록들로부터 데이터나 제어 신호를 송수신할 수 있도록 하는 예를 들어 병렬 버스이거나 혹은 시리얼 버스 등일 수 있다.
The system bus /
먼저 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
문제 : 각 태스크 그래프 에 대해서 WCRT, 의 결정.
Problem: each task graph About WCRT, 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.
c
c
v
v
* 타입 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
먼저 개발자 등에 의한 성능 분석 요구에 따라 시작(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에서, 하나 이상의 태스크 그래프를 포함하는 태스크 그래프의 세트로부터 각 태스크 그래프에서의 태스크 간의 의존 관계(에지)와 각 태스크의 수행(실행) 시간(, )과 같은 주어진 파라미터 등을 태스크 그래프 정보로서 태스크 그래프로부터 추출하거나 혹은 주어진 자료 구조를 통해 결정하여 결정된 태스크 그래프 정보를 예를 들어 메모리(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) , 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
태스크 그래프의 세트는 주어진 실행 유닛 그래프 상에서 동시에 수행될 수 있는 하나 이상의 태스크 그래프를 포함한다. 그리고 이 태스크 그래프의 태스크들은 동일한 실행 유닛 상에서 실행될 수 있거나 상이한 실행 유닛 상에서 실행 될 수 있다. 이에 따라 특정 실행 유닛에 맵핑된 태스크는 수행 중에도 다른 태스크에 의해서 스케쥴링 기법(예를 들어 선점형)에 따라 각 태스크의 우선 순위에 의해 실행 도중에 배제될 수 있다. 또한 각 태스크 그래프는 서로 상이한 실행 주기(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에서, 는 태스크 그래프 에 대하여 생성된 인스턴스의 세트를 나타낸다. In Table 1, Task graph Represents a set of instances created for.
이에 따라 이후의 단계에서 이 태스크 그래프의 인스턴스(에 포함되는 인스턴스)에 대해서 각각의 실행 시간 경계가 계산될 수 있도록 한다. 여기서 이 인스턴스는 원 태스크 그래프로부터 추출되거나 획득된 태스크 그래프 정보를 공유하고 이에 따라 태스크의 실행 유닛에 대한 맵핑 정보나 우선 순위 정보 등을 공유하고, 다만 각 인스턴스는 실행 주기에 의해서 각 인스턴스의 실행 순서가 결정되고 실행 시기가 한정될 수 있다.Therefore, in a later step, an instance of this task graph ( 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
이후 단계 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
그리고 각 실행 유닛별로 우선 순위에 따라 정렬된 하나 이상의 태스크를 다시 토폴로지를 더 고려하여 재정렬한다. 즉 특정 실행 유닛에 맵핑된 하나 이상의 태스크 간에 에지에 의한 의존 관계가 있는 경우에(예를 들어 하나의 실행 유닛에 맵핑된 두 개의 태스크가 에지에 따른 연결 관계에 의해서 선조(predecessor) 태스크와 자손(successor) 태스크의 관계에 있는 경우, 도 2에서 는 에지에 의해서의 자손 태스크이고 의 선조 태스크이다. 단, 도 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, By the edge Is a descendant of 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
이와 같이 구성된 순서 리스트(260)는, 우선 순위뿐 아니라 토폴로지에 의한 순서까지 고려되어 설정된다.The
이후 단계 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
그리고 단계 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
그리고 만일 실행 시간 경계가 계산될 수 없는 경우에는 단계 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
그리고 단계 S552에서 대기 큐(240)로부터 하나의 태스크를 추출하고, 단계 S553에서 실행 시간 경계를 계산한다. In operation S552, one task is extracted from the waiting
그리고 단계 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
그리고 이후 단계 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 분석 방법에 의한 시간 복잡도는 으로 한정된다. 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 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.
예를 들어 소스 태스크 에 대해서는 최소, 최대 릴리스 시간은, 아래 수학식 1 및 2에 의해서 결정될 수 있고 예를 들어 아무런 선행 태스크가 없는 소스 태스크는 태스크 그래프에 대해서 주어지는 오프셋과 이 태스크 그래프 또는 소스 태스크에 대해서 주어지는 지터(예를 들어 시작의 변화 범위)에 의해서 최소, 최대 릴리스 시간이 결정되어 질 수 있다. For example, source task For the minimum and maximum release times, the minimum and maximum release times can be determined by
그리고 태스크 그래프의 에지 등으로 표현되는 의존 관계, 즉 선행 태스크,를 가진 태스크에 대한 최소, 최대 릴리스 시간은,And the minimum, maximum release time for a task with a dependency, such as an edge in the task graph,
이상의 수학식 1 내지 4에서 알 수 있는 바와 같이 각 태스크는 소스 태스크와 선행 태스크를 가지는 태스크로 분류되어, 소스 태스크는 태스크의 오프셋과 지터를 이용하여 맵핑된 실행 유닛에 릴리스 될 수 있는 최소 및 최대 릴리스 시간을 계산할 수 있고, 반면에 다른 태스크는 선행 태스크의 최소 종료 시간 및/또는 최대 종료 시간을 이용하여 최소 및 최대 릴리스 시간을 계산할 수 있다.As can be seen from
이러한 최소 및 최대 릴리스 시간은 태스크 그래프의 의존 관계를 이용하여 결정되고 선행하는 태스크의 최소 또는 최대 완료 시간을 이용하여 각 태스크가 맵핑된 실행 유닛에서 릴리스 될 수 있는 시간을 알 수 있도록 한다. 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.
여기서 와 는 태스크 그래프의 다른 태스크들의 실행 유닛에서의 실행을 고려하여 태스크 가 맵핑된 실행 유닛(PE)이 이용가능한 상태가 되는 최소 시간과 최대 시간을 나타낸다. 이 실행 유닛은 태스크 가 릴리스 될 때 다른 태스크를 수행할 수 있으므로, 계산하고자 하는 태스크 는 맵핑된 실행 유닛에서 현재 실행되고 있는 태스크의 수행이 완료될 때까지 기다릴 필요가 있다. 이러한 기다림은 실행 유닛의 스케쥴링 방식에 따라 달라질 수 있다. 예를 들어 선점형 스케쥴링에서는 현재 수행되는 태스크가 더 높은 우선 순위를 가지고 있다면 기다릴 필요가 있다. 반면에 비-선점형 스케쥴링 방식에서는 이미 스케쥴링되어 수행되고 있는 현재의 태스크의 우선 순위에 상관없이 기다려야 한다. here Wow The task takes into account the execution in the execution unit of other tasks in the task graph. Represents the minimum time and the maximum time for which the mapped execution unit PE becomes available. This execution unit is a task You can perform other tasks when the 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.
이에 따라 와 는 스케쥴링 방식에 따라 상이한 형식으로 정규화된다. Accordingly Wow Is normalized to a different format according to the scheduling scheme.
선점형 스케쥴링 방식에 대해서, For preemptive scheduling,
= {| = , > , 그리고 <= }, = { | = , > , And <= },
비선점형 스케쥴링 방식에 대해서,For non preemptive scheduling,
= {| = 그리고 (( > , 그리고 <= ) 또는 ( < 그리고 <= < ))},
= { | = And (( > , And <= ) or ( < And <= < ))},
이 수학식 7의 의미를 살펴보면, 는 태스크가 시간 t 이후에 맵핑된 실행 유닛에 이 태스크를 수행 가능한 상황이 되는 시간을 나타내고 이 는 릴리스 가능한 시점 이후에 태스크의 시작을 지연시킬 수 있는 다른 태스크의 상태를 고려하여 반영되며, 수학식 5에 따른 는 로부터 시작하여 계산하여 이 가 수렴될 때까지 계산된다. Looking at the meaning of this equation 7, Represents the time when the task becomes available to perform this task in the mapped execution unit after time t Is reflected in consideration of the status of other tasks that may delay the start of the task after the release possible point, The Starting from Until is converged.
그리고 수학식 7의 는 이미 스케쥴된 태스크 들 중에서 태스크 의 최소 시작 시간을 지연할 수 있도록 하는 조건에 해당하는 태스크를 나타내고, 수학식 7에서 알 수 있는 바와 같이, 태스크 와 같은 실행 유닛에 맵핑되어 있고, 태스크 보다 우선 순위가 높고, 의 최대 시작 시간이 태스크 의 최소 시작 시간보다 작거나 같은 것에 해당하는 태스크에 의해서 태스크 의 최소 시작 시간이 계산된다. And of equation (7) Is one of the tasks already scheduled 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, Mapped to an execution unit, such as Higher priority, Maximum start time of the task Task by a task less than or equal to the minimum start time of The minimum start time is calculated.
그리고 비선점형 스케쥴링 방식에 대해서는, 앞선 조건에 더하여 우선 순위가 낮은 도 <= < 조건을 만족한 다면 해당 태스크 의 최소 시작 시간을 지연시킬 수 있는 태스크의 집합에 해당함을 알 수 있다. The non-preemptive scheduling method has a lower priority in addition to the preceding conditions. Degree <= < If the condition is met, the task You can see that this corresponds to a set of tasks that can delay the minimum start time of.
이러한 수학식 7의 조건들은 태스크 가 맵핑된 특정 실행 유닛에서 수행될 수 있는 최소 시작 시간을 나타내고, 이에 따라 이 최소 시작 시간에 대하여 영향을 줄 수 있는 다른 태스크의 실행 시간 경계의 정보를 반영하여 계산된다. The condition of Equation 7 is a task 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.
여기서, 선점형 스케쥴링 방식에 대해서, Here, for the preemptive scheduling method,
= {| = , > 그리고 <= }, = { | = , > And <= },
비선점형 스케쥴링 방식에 대해서,For non preemptive scheduling,
= {| = 그리고 (( > , 그리고 <= ) 또는 ( < 그리고 <= < ))}, = { | = And (( > , And <= ) or ( < And <= < ))},
이 수학식 8은, 주어진 태스크 의 최대 시작 시간의 계산에서 에 속하는 태스크의 최대 종료 시간 값들을 기준으로 하여 에서의 태스크의 최대 종료 시간 값이 의 최대 시작 시간을 가지는 것을 의미한다. 그리고 의 는 이 주어진 태스크 의 최대 시작 시간을 지연할 수 있는 조건에 해당하는 태스크이다.
이상의 수학식 8에서 알 수 있는 바와 같이, 선점형 스케쥴링 방식과 비선점형 스케쥴링 방식에서 상이한 조건에 부합하는 태스크가 이 주어진 태스크 의 최대 시작 시간을 지연시킬 수 있다. 이러한 태스크 는 이미 스케쥴링된 태스크 중에서 의 최대 시작 시간을 지연시킬 수 있도록 하는 태스크이다.As can be seen from
이와 같이 수학식 5 내지 8을 이용하여, 각 태스크의 시작 시간을 계산할 수 있다. 이러한 시작 시간은 각 태스크의 시작 시간에 영향을 미치는 태스크의 시작 시간 또는 종료 시간의 변화에 따라서 또한 변경될 수 있다. 또한 특정 태스크는 의존 관계에 의해서 선행하는 태스크에 대한 실행 시간 경계가 아직 계산되지 못한 경우가 있을 수 있고 이 경우에는 대기 큐(W)에 삽입되어 이후 해당 선행하는 태스크에 대한 실행 시간 경계가 계산이 되면 다시 계산되도록 구성된다.
As such, using
한편 아래의 수학식 9 내지 12를 이용하여 각 태스크 그래프 상의 태스크 각각에 대한 종료 시간을 계산할 수 있다. Meanwhile, an end time of each task on each task graph may be calculated using Equations 9 to 12 below.
여기서, 와 는 이 태스크 가 더 높은 우선 순위를 가진 태스크에 의해서 태스크 의 맵핑된 실행 유닛에서 수행 시작 후 수행 동안에 스케쥴링이 배제(preemption)되는 시간 기간의 최소 및 최대 시간을 나타낸다. 물론 비선점형 스케쥴링 방식에서는 이러한 변수가 0으로 설정되고, 선점형 스케쥴링 방식에서는, 이 와 가 다음과 같은 수학식으로 결정된다. here, Wow Is this task By a task with a higher priority 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, Wow Is determined by the following equation.
여기서 = {| = , > 그리고 <= <= <= }here = { | = , > And <= <= <= }
이 태스크 세트 는 태스크 가 실행 동안에 동일한 실행 유닛에 스케쥴링되는 우선 순위가 높은 모든 태스크를 포함한다. This task set Is a task Contains all high priority tasks that are scheduled in the same execution unit during execution.
여기서 = {| = , > , <= 그리고 <= }here = { | = , > , <= And <= }
이 태스크 세트 는 태스크 가 실행 동안에 주어진 조건에 부합하고 스케쥴링되는 우선 순위가 높은 모든 태스크를 포함한다.
This task set Is a task Contains all of the high priority tasks that meet the given conditions and are scheduled during execution.
이러한 수학식 1 내지 12를 이용하여, 태스크의 실행 시간 경계를 계산할 수 있다. 이러한 실행 시간 경계는 주어진 복수의 태스크 그래프가 주어진 실행 유닛 그래프의 아키텍처 상에서 수행될 때의 각 태스크의 최소 시작 시간, 최대 시작 시간, 최소 종료 시간 및 최대 종료 시간을 포함한다. Using
이상의 수학식 1 내지 12에서 알 수 있는 바와 같이 Min-Max 분석 방법에서의 실행 시간 경계의 계산은, 우선 순위와 함께 각 태스크 간의 토폴로지에 따른 태스크 간의 의존 관계를 이용하여 계산된다. 이에 따라 비록 우선 순위가 높은 태스크가 먼저 실행 시간 경계에 대한 계산을 하는 경우에도 선행 태스크에 대한 실행 시간 경계의 계산이 이루어지지 않은 경우에는 이 태스크는 대기 큐(240)에 기록되고, 이후에 선행 태스크의 실행 시간 경계의 계산이 완료된 후에, 다시 대기 큐(240)의 태스크에 대한 실행 시간 경계를 계산할 수 있다. As can be seen from
이러한 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
이러한 수학식 1 내지 12와 도 3 내지 도 5를 이용하여, 각 태스크의 실행 시간 경계가 결정되면 각 태스크 그래프의 WCRT가 수학식 13과 같이 계산되어 질 수 있다. Using the
물론 이러한 수학식 13은 태스크에 대한 실행 시간 경계가 보수적으로 계산되어 실제 WCRT의 값보다 더 큰 응답 시간 결과로서 제공한다. Of course,
물론 태스크 그래프가 하나 이상의 태스크 그래프 인스턴스를 포함하는 경우에는 각 태스크 그래프 인스턴스 각각에 대한 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 시간 유닛이고 각 태스크 그래프는 지연 오프셋()은 0으로 설정되어 소스 태스크는 시간 유닛 0에서 릴리스된다. 도 6의 스케쥴링 결과를 간단히 살펴보면, 가장 우선 순위가 높은 소스 태스크인 가 스케쥴링되어 와 는 0으로 결정된다. 그리고 의 실행 시간이 10에서 20 시간 유닛이므로 는 10으로 는 20으로 결정된다. 유사하게 다음으로 우선 순위가 높은 다른 소스 태스크인 에 대하여 계산하여 최소 및 최대 시작 시간이 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 ( ) Is set to 0 so that the source task is released in
그 다음으로 우선 순위가 높은 태스크 은 로부터의 의존 관계(에지)가 있으므로 이 태스크는 의 종료 후에 시작할 수 있고 이에 따라 이 태스크의 최소 및 최대 시작 시간은 각각 10과 20으로 계산된다. 그리고 이 태스크 이 맵핑되는 PE1은 비선점형 스케쥴링 정책을 이용하므로, 이 태스크의 최소 및 최대 종료 시간은 다른 우선 순위가 높은 태스크의 선점에 따른 영향 없이 15와 40으로 각각 결정된다. Next highest priority task silver Since there are dependencies (edges) from 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 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.
그리고 태스크 의 스케쥴링 시에는 이전에 스케쥴링된 태스크 이 고려되어야 한다. 이에 따라 의 최소 시작 시간은 의 최소 종료 시간이 의 최소 릴리스 시간보다 작기에 토폴로지 의존 관계에 따라 결정되어 20으로 계산된다. 그리고 최대 시작 시간은 에 의해 야기되는 지연을 고려하여 결정되고 이에 따라 40으로 계산되고 그리고 최소 종료 시간은 30으로 최대 종료 시간은 60으로 결정된다. 유사하게 나머지 와 에 대해서도 실행 시간 경계가 계산된다. 이러한 모든 태스크의 실행 시간 경계로부터 태스크 그래프 의 WCRT는 60으로, 그리고 태스크 그래프 의 WCRT는 80으로 결정된다. And tasks Previously scheduled tasks when scheduling This should be considered. Accordingly Minimum start time of Has a minimum end time of 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 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 Wow The run time boundary is also calculated for. Task graph from the run time boundary of all these tasks WCRT is 60, and the task graph 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
도 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)에서 알 수 있는 바와 같이 태스크 의 WCRT는 의 최대 종료 시간에 따라 45로 결정된다. 여기서 실제의 의 WCRT는 35로 계산될 수 있다. 이러한 과(over) 예측의 이유는 이 태스크 그래프 의 그래프 체인 상에서의 의 최대 종료 시간과 의 최대 시작 시간의 계산에 2회에 걸쳐서 영향을 미쳤기 때문이다. 즉 에 의해 야기되는 배제가 의 WCRT의 계산에서 복수회에 걸쳐서 고려되었기 때문이다. As can be seen in Figure 7 (b) WCRT Is determined by 45 depending on the maximum end time. Where real The WCRT can be calculated as 35. The reason for this over prediction is This task graph On the graph chain With the maximum end time of This is because two times influenced the calculation of the maximum start time of. In other words Exclusion caused by 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.
이에 따라 태스크 의 최대 종료 시간과 최대 시작 시간에 영향을 미치는 태스크의 세트인 프리엠트(preemptor) 세트 를 정의한다. 이 는 초기에는 빈 세트로 정의되고, 이후 수학식 4에 따라 최대 릴리스 시간을 계산할 때, 태스크 그래프 상에서 의존 관계(에지)에 따른 선행 태스크의 프리엠트 세트를 물려 받아 태스크의 프리엠트 세트를, 아래 수학식 14에 따라 계산한다.Accordingly task Set of preemptors, which is a set of tasks that affects the maximum end time and the maximum start time . this 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.
여기서 는 태스크 의 최대 릴리스 시간을 결정하는 데 이용되는 선행하는 태스크이다. 그리고 수학식 8과 수학식 12에 따라 태스크의 스케쥴링 지연(delay)를 계산할 때 이 에 속하지 않는 태스크만을 고려하도록 수정하면 된다.here Is a task The preceding task is used to determine the maximum release time of the. When calculating the scheduling delay of the task according to
이에 따라 수학식 8의 = {| = , > , <= 그리고 }로 수정되고, 수학식 12의 = {| = , > , <= , <= 그리고 }로 수정되어 태스크 그래프 상에서 의존 관계에 따라 의존하는 선행 태스크에서 이미 반영한 다른 태스크를 이후의 태스크에서는 더 이상 실행 시간 경계의 계산에 반영되지 않도록 하여, 더욱더 타이트한 실행 시간 경계를 계산할 수 있도록 한다.Accordingly,
즉 이러한 다른 태스크는, 현재 최대 시작 시간 및/또는 최대 종료 시간을 계산하고자 하는 대상 태스크를 포함하는 태스크 그래프 상의 에지(의존 관계)로 연결된 체인(예를 들어 도 7의 ,와 의 체인)에서 단 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). , Wow 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에서 가 에 속하고 의 최소 시작 시간이 의 최대 종료 시간보다 작기에 태스크 는 태스크 의 최대 종료 시간의 계산에 영향을 미친다. 그리고 태스크 는 복수의 배제를 회피하기 위해서 태스크 의 프리엠트 세트에 삽입되고 의존 관계에 따라 의 프리엠트 세트를 상속받는(inherited) 태스크 의 프리엠트 세트 역시 을 포함한다. 이에 따라 의 최대 시작 시간과 최대 종료 시간은 이에 따라 변경된다. 그리고 3번째 반복에서 의 최대 시작 시간과 최대 종료 시간은 또한 변경된다. 그리고 태스크 그래프의 WCRT는 에 연결된 에 의해 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. end Belong to Has a minimum start time of Task less than the maximum end time of Is a task Affects the calculation of the maximum end time. And tasks To avoid multiple exclusions Is inserted into the prem set of Tasks inheriting a preempt set from Prem set . Accordingly The maximum start time and the maximum end time of are changed accordingly. And in the third iteration The maximum start time and maximum end time are also changed. And the WCRT in the task graph Connected to Is predicted by 100.
이 예에서 과 예측(over-estimation)의 원인은 선행 태스크 에 대한 태스크 에 의한 일어날 수 없는 배제에 기인한다. 이러한 불가능한 배제의 가능성을 제거하기 위해서, 각 태스크에 대해서 또 다른 태스크 세트인 제외(exclusion) 세트 를 정의한다. In this example, the cause of over-estimation is the predecessor task. Task for 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 .
이러한 태스크의 제외 세트는 토폴로지 순서에 의해 태스크가 의존하는 우선 순위가 높은 태스크이다. 도 8의 예에서 태스크 는 태스크 과 의 제외 세트에 포함된다. 물론 이러한 제외 세트는 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 Is a task and 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의 와 수학식 12의 는 아래와 같이 수정된다.
Given this set of exclusions, And of Equation 12 Is modified as follows.
= {| = , > , <= , 그리고 }, = { | = , > , <= , And },
= {| = , > , <= , <= , 그리고 } = { | = , > , <= , <= , And }
이에 따라 현재 실행 시간 계산을 하고 있는 태스크 보다 더 높은 우선 순위를 가지더라도 실제 발생할 수 없는 스케쥴링상의 배제를 야기하는 태스크를 최대 시작 시간 및 최대 종료 시간의 계산에서 제외하고 대신에 현 태스크보다 낮은 우선 순위를 가진 태스크만이 최대 시작 시간 및 최대 종료 시간의 계산에 반영된다. 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.
이 예에서 태스크 와 의 최대 시작 시간이 태스크 의 최소 릴리스 시간보다 크기에 와 는 태스크 의 에 포함되지 않는다. 이에 따라 의 최소 시작 시간은 태스크 와 에 따라 야기되는 스케쥴링 지연을 고려하지 않아 과소 평가(under estimated) 된다. 이에 따라 태스크 의 최대 종료 시간은 또한 과 평가(over estimated)된다. Task in this example Wow Maximum start time of the task In size less than the minimum release time Wow Is a task of Not included in Accordingly Minimum start time for a task Wow It is underestimated without taking into account the scheduling delay caused by. Accordingly task The maximum end time of is also over estimated.
이러한 과소 평가의 문제를 회피하기 위해서, 모든 경우에서 태스크 에 앞서 스케쥴링되는 태스크를 포함하는 을 구성한다. 이 예에서 태스크 와 는 태스크 보다 먼저 스케쥴링되기에 의 에 포함된다. 그리고 수학식 7은 아래의 수학식 15로 변경되어 최소 시작 시간이 선 스케쥴된 태스크의 최소 종료 시간보다 작지 않은 경우로 수정된다.To avoid this underestimation problem, the task in all cases Which contains tasks that are scheduled prior to Configure Task in this example Wow Is a task Is scheduled ahead of time of . 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.
이러한 수학식 15의 적용으로 보다더 타이트한 최소 시작 시간 및 최소 종료 시간의 계산이 가능하도록 하고 또한 최대 시작 시간 및 최대 종료 시간의 계산 역시 보다더 타이트하게 이루어질 수 있도록 한다(도 9의 "를 고려하는 경우").The application of
이상 도 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
도 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
여기서 대기 큐(240)는, 비록 높은 우선 순위로 태스크가 먼저 선택된 경우라도 예를 들어 토폴로지에 의한 의존 관계로 인해 이 태스크의 실행 시간의 계산이 완료 되지 못한 태스크를, 저장하고, 완료 큐(250)는 실행 시간 경계의 계산이 이루어진 태스크를 저장한다. 이러한 대기 큐(240)와 완료 큐(250)는 예를 들어 메모리(101)상에 구성될 수 있다. The
각 기능 블록들을 살펴보면, 태스크 그래프 로딩부(210)는 입력 인터페이스(105)나 통신 인터페이스(109)를 통해 수신되거나 입력된 개발자(또는 사용자)의 제어 입력에 따라 태스크 간의 의존 관계를 나타내는 태스크 그래프와 이 태스크 그래프가 맵핑된 실행 유닛 그래프와 태스크 그래프에 포함된 각 태스크의 우선 순위나 실행 유닛에 관련된 스케쥴링 기법 등과 같은 태스크 그래프와 실행 유닛 그래프에 관련된 각종 파라미터 정보를 로딩하고 이를 예를 들어 메모리(101) 및/또는 대용량 저장 매체(103)에 저장한다.Referring to each of the functional blocks, the task
이러한 파라미터 정보는 예를 들어 표 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
여기서 생성된 각 태스크 그래프의 인스턴스의 개수는 복수의 태스크 그래프의 실행 주기로부터 결정된 최소 공배수에 의해서 공통되는 실행 주기를 가질 수 있도록 계산된다. 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
이 태스크 그래프 인스턴스 생성부(213)는 태스크 그래프 각각의 인스턴스를 각각 생성하는 것 외에 순차적으로 태스크 그래프의 인스턴스를 생성하여 이 인스턴스에 대해서 실행 시간 경계를 계산하고 다시 이후에 새로운 인스턴스를 생성하는 식으로 반복적으로 구성할 수도 있다. 이러한 구현 방식은 선택의 문제로서 이 성능 분석 장치가 적용되는 하드웨어 구조에 따라서 또는 프로그램의 구조에 따라 여러 선택 방식 중에서 하나를 선택할 수 있다. This task graph
그리고 태스크 그래프 선택부(220)는, 반복 제어부(270)의 제어하에 복수의 태스크 그래프에 포함된 태스크를 태스크 간의 지정된 우선 순위와 이에 더하여 토폴로지 순서에 따라 순서화된 순서 리스트(260)(Q)에서 가장 높은 순서 위치를 가진 하나를 선택하고, 이후의 선택에서는 그 다음으로 높은 순서 위치를 가진 태스크를 선택한다. The task
이러한 순서 리스트(260)(Q)는 반복 제어부(270)의 제어하에 초기에 태스크를 순서화시킬 수 있고 이후 태스크 그래프 선택부(220)에 의한 태스크의 선택에 따라 선택된 태스크를 순서 리스트(260) 상에서 삭제하도록 구성될 수 있다. 물론 다시 계산의 재반복을 다시 시작하는 경우에는 다시 초기의 태스크간의 순서로 순서화될 수 있다. The order list 260 (Q) may order the tasks initially under the control of the repeating
여기서 순서 리스트(260)에 순서화되는 태스크의 순서는 예를 들어 우선 순위에 따라 순서화되고 태스크 그래프의 토폴로지 순서를 더 고려하여 순서화된다. Here, the order of tasks ordered in the
여기서 동일한 태스크 그래프는, 여러 개의 인스턴스로 생성될 수 있고 이 경우에는 각 인스턴스의 생성 순서에 따라서 인스턴스에 포함된 태스크 들에 대해서 순서 리스트(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
그리고 태스크 실행 시간 계산부(230)는, 태스크 그래프 선택부(220)에 의해서 선택된 태스크에 대해서 태스크 그래프 로딩부(210)에서 로딩된 실행 유닛과의 맵핑 관계와 태스크 간의 의존 관계를 이용하여 실행 시간 경계를 계산한다.The task execution
이 태스크 실행 시간 계산부(230)와 태스크 그래프 선택부(220)는, 반복 제어부(270)의 제어하에서 로딩된 모든 태스크 그래프의 모든 태스크에 대해서 반복하여 계산하고 순서에 따라 반복하여 선택한다. The task execution
그리고 태스크 실행 시간 계산부(230)는, 선택된 태스크의 실행 시간 경계가 계산될 수 있는 지를 결정하는 실행 시간 경계 결정부(231)를 포함한다. 이 실행 시간 경계 결정부(231)는, 앞서 수학식 1 내지 15를 이용하여 각각의 실행 시간 경계를 계산하고, 선택된 태스크가 토폴로지 순서에 의해서 선행하는 태스크에 대한 실행 시간 경계가 계산되지 못한 경우에는 현재 선택된 실행 시간 경계가 계산되지 않을 수 있다. The task
이 경우에는 태스크 실행 시간 계산부(230)에 더 포함되는 대기 큐 삽입부(233)를 이용하여 대기 큐(240)에 실행 시간 경계가 계산되지 않은 선택된 태스크를 삽입한다.In this case, the selected task whose execution time boundary is not calculated is inserted into the
반면에 실행 시간 경계가 계산될 수 있는 경우에는, 완료 큐 삽입부(235)를 이용하여 완료 큐(250)에 이 선택된 태스크를 삽입한다. On the other hand, if the execution time boundary can be calculated, the selected task is inserted into the
그리고 반복 제어부(270)는, 모든 태스크의 실행 시간 경계가 계산완료될 수 있도록 각 기능 블록들을 제어하고, 예를 들어 도 3 내지 도 5에 따르는 Min-Max 분석 방법의 반복을 제어하고 각 변수들을 초기화한다.In addition, the
이에 따라 반복 제어부(270)는, 순서 리스트(260)를 태스크 그래프 로딩부(210)에서 로딩한 태스크 그래프의 정보에 기초하여 초기(순서)화하고, 실행 시간 경계 결정부(231)에서 실행 시간 경계가 계산되었는 지를 모니터링하고 그 결과에 따라 대기 큐(240)에 삽입되어 있는 태스크에 대한 실행 시간 경계의 계산을 제어하고, 모든 태스크에 대한 전체 반복에 따라 하나 이상의 태스크의 실행 시간 경계가 변경되었는 지를 결정하여 이 결정에 따라 다시 재 반복(도 3 참조)할 것인지를 결정한다. 이러한 반복 제어부(270)의 제어 흐름은 도 3 내지 도 5를 참조하면 쉽게 이해할 수 있을 것이다. Accordingly, the
이러한 도 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의 와 )로 모델링할 수 있도록 한다. 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. Wow 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.
상기 단계 (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.
상기 단계 (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.
(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.
상기 단계 (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.
상기 실행 시간 경계는, 최소 시작 시간(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.
선택된 태스크와는 다른 태스크 그래프에 포함된 상기 다른 태스크는, 상기 다른 태스크의 실행 시간 경계와 상기 선택된 태스크의 실행 시간 경계의 비교로 결정되고, 또한
상기 다른 태스크는, 선택된 태스크를 포함하는 태스크 그래프에서의 의존 관계의 체인 상의 태스크들에 대한 실행 시간 경계의 계산에 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.
상기 단계 (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.
상기 태스크 실행 시간 계산부는,
선택된 태스크의 실행 시간 경계가 계산될 수 있는 지를 결정하는 실행 시간 경계 결정부;
상기 실행 시간 경계가 계산될 수 없는 경우에, 대기 큐에 상기 선택된 태스크를 삽입하는 대기 큐 삽입부; 및
상기 실행 시간 경계가 계산될 수 있는 경우에, 실행 시간 경계를 계산 완료한 완료 큐에 상기 선택된 태스크를 삽입하는 완료 큐 삽입부;를 포함하는,
성능 분석 장치.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.
상기 태스크 그래프 로딩부는,
복수의 태스크 그래프의 실행 주기를 각각 결정하는 실행 주기 결정부; 및
복수의 태스크 그래프 각각의 실행 주기에 따라 복수의 태스크 그래프 각각의 태스크 그래프 인스턴스(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.
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)
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)
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)
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 |
-
2012
- 2012-09-03 KR KR1020120097103A patent/KR101383225B1/en active IP Right Grant
Cited By (3)
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 |