WO2011065614A1 - Pipeline multi-core system and method for effective task allocation in said pipeline multi-core system - Google Patents

Pipeline multi-core system and method for effective task allocation in said pipeline multi-core system Download PDF

Info

Publication number
WO2011065614A1
WO2011065614A1 PCT/KR2009/007102 KR2009007102W WO2011065614A1 WO 2011065614 A1 WO2011065614 A1 WO 2011065614A1 KR 2009007102 W KR2009007102 W KR 2009007102W WO 2011065614 A1 WO2011065614 A1 WO 2011065614A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
group
processors
subgroup
tasks
Prior art date
Application number
PCT/KR2009/007102
Other languages
French (fr)
Korean (ko)
Inventor
신현철
김종대
김수현
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Publication of WO2011065614A1 publication Critical patent/WO2011065614A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

A method for task allocation in a pipeline multi-core system is provided. The task allocation method comprises: initially distributing first to third task groups to a plurality of processors; grouping the tasks from the second task group and the third task group into r number of subgroups (where r≥2 and r is a natural number); secondarily distributing tasks in each subgroup to the plurality of processors, so that slack is maximized for all subgroups in the second task group, and secondarily distributing corresponding subgroups in the third task group in the same manner whenever each subgroup in the second task group is secondarily distributed; and allocating repetitively provided task groups to the plurality of processors in the same manner as the secondarily distributed second task group.

Description

파이프라인 멀티 코어 시스템 및 파이프라인 멀티 코어 시스템의 효과적인 태스크 할당 방법 Effective Task Assignment Methods for Pipelined Multicore Systems and Pipelined Multicore Systems
본 발명은 파이프라인 멀티 코어 시스템 및 파이프라인 멀티 코어 시스템의 태스크 할당 방법에 관한 것이다.The present invention relates to a pipeline multi-core system and a task allocation method of a pipeline multi-core system.
멀티 코어 시스템(multi-core system)은 다수의 프로세서에 다수의 태스크(task)가 할당되어 처리되는 시스템이다. 그리고, 파이프라인(pipeline) 멀티 코어 시스템은 다수의 태스크를 포함하는 태스크 그룹이 반복적으로 제공되어 다수의 프로세서에서 처리되는 시스템이다.A multi-core system is a system in which a plurality of tasks are assigned to and processed by a plurality of processors. In addition, a pipeline multi-core system is a system in which a task group including a plurality of tasks is repeatedly provided and processed in a plurality of processors.
이러한 파이프라인 멀티 코어 시스템에서 태스크의 매핑(mapping)과 스케쥴링(scheduling)을 포함한 할당(allocation) 문제는 ‘NP-hard’로 알려져 있으며, 이러한 할당 문제를 해결하기 위해 많은 연구가 진행되어왔다.Allocation problems including mapping and scheduling of tasks in the pipeline multi-core system are known as 'NP-hard', and many studies have been conducted to solve such allocation problems.
본 발명이 해결하고자 하는 과제는 적절한 수행 시간 내에 반복적으로 제공되는 태스크 그룹을 효율적으로 처리하는 파이프라인 멀티 코어 시스템의 태스크 할당 방법을 제공하는 것이다.An object of the present invention is to provide a task allocation method of a pipeline multi-core system that efficiently processes a task group repeatedly provided within an appropriate execution time.
본 발명이 해결하고자 하는 다른 과제는 적절한 수행 시간 내에 반복적으로 제공되는 태스크 그룹을 효율적으로 처리하는 파이프라인 멀티 코어 시스템을 제공하는 것이다.Another problem to be solved by the present invention is to provide a pipeline multi-core system that efficiently handles task groups that are repeatedly provided within an appropriate execution time.
본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.Problems to be solved by the present invention are not limited to the above-mentioned problems, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.
상기 과제를 달성하기 위한 본 발명의 파이프라인 멀티 코어 시스템의 태스크 할당 방법의 일 태양(aspect)은, 제1 내지 제3 태스크 그룹을 다수의 프로세서에 초기 배치하고, 제2 태스크 그룹 및 제3 태스크 그룹의 태스크를 r(r≥2, r은 자연수)개의 서브 그룹으로 그룹핑하고, 제2 태스크 그룹의 모든 서브 그룹에 대해 슬랙(slack)이 최대가 되도록 각 서브 그룹에 속한 태스크를 다수의 프로세서에 제2 배치하되, 제2 태스크 그룹의 각 서브 그룹이 제2 배치될 때마다 제3 태스크 그룹의 대응되는 서브 그룹을 동일하게 제2 배치하고, 제2 배치된 제2 태스크 그룹과 동일하도록 반복적으로 제공되는 태스크 그룹을 다수의 프로세서에 할당하는 것을 포함한다.An aspect of the task allocation method of the pipeline multi-core system of the present invention for achieving the above object is to initially place the first to third task groups in a plurality of processors, the second task group and the third task Group the tasks in the group into r (r≥2, r is a natural number) subgroups, and assign the tasks belonging to each subgroup to multiple processors so that slack is maximum for all subgroups of the second task group. In a second arrangement, each subgroup of the second task group is disposed second, and the corresponding subgroup of the third task group is secondly arranged identically, and repeatedly to be identical to the second deployed second task group. Assigning the provided task group to multiple processors.
상기 다른 과제를 달성하기 위한 본 발명의 파이프라인 멀티 코어 시스템의 일 태양은, 다수의 프로세서, 다수의 태스크를 포함하는 다수의 태스크 그룹이 저장된 저장부, 및 저장부에 저장된 다수의 태스크 그룹을 반복적으로 다수의 프로세서에 할당하는 제어부를 포함하되, 다수의 태스크 그룹은 제1 내지 제3 태스크 그룹을 포함하고, 제어부는 제1 내지 제3 태스크 그룹을 다수의 프로세서에 초기 배치하고, 제2 태스크 그룹 및 제3 태스크 그룹의 태스크를 r(r≥2, r은 자연수)개의 서브 그룹으로 그룹핑하고, 제2 태스크 그룹의 모든 서브 그룹에 대해 슬랙(slack)이 최대가 되도록 각 서브 그룹에 속한 태스크를 다수의 프로세서에 제2 배치하되, 제2 태스크 그룹의 각 서브 그룹이 제2 배치될 때마다 제3 태스크 그룹의 대응되는 서브 그룹을 동일하게 제2 배치하고, 제2 배치된 제2 태스크 그룹과 동일하도록 반복적으로 제공되는 태스크 그룹을 다수의 프로세서에 할당한다.One aspect of the pipeline multi-core system of the present invention for achieving the above another object, iteratively repeats a plurality of processors, a storage in which a plurality of task groups including a plurality of tasks, and a plurality of task groups stored in the storage And a control unit for allocating the plurality of processors, wherein the plurality of task groups include first to third task groups, and the controller initially arranges the first to third task groups to the plurality of processors, and the second task group. And group the tasks of the third task group into r (r≥2, r is a natural number) subgroups, and assign tasks belonging to each subgroup such that slack is maximum for all subgroups of the second task group. A second arrangement on the plurality of processors, each time the respective subgroup of the second task group is placed second, and the corresponding subgroup of the third task group equally; Value and assigns the second task group supplied repeatedly to the same as the arrangement the second task group to the plurality of processors.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.
본 발명의 일 실시예에 따른 파이프라인 멀티 코어 시스템의 태스크 할당 방법을 따르게 되면, 하나의 태스크 그룹을 처리하는데 소요되는 시간은 비록 최적해 보다 더 클지 모르지만 반복적으로 제공되는 태스크 그룹을 적절한 수행 시간 내에 효율적으로 처리할 수 있다.According to the task allocation method of the pipeline multi-core system according to an embodiment of the present invention, the time required to process a single task group may be optimal, although it may be larger than that. Can be processed as
도 1은 본 발명의 일 실시예에 따른 파이프라인 멀티 코어 시스템의 태스크 할당 방법을 나타내는 순서도이다. 1 is a flowchart illustrating a task allocation method of a pipeline multi-core system according to an embodiment of the present invention.
도 5 내지 도 14는 본 발명의 일 실시예에 따른 파이프라인 멀티 코어 시스템의 태스크 할당 방법을 설명하기 위한 중간단계 도면들이다.5 to 14 are intermediate steps for explaining a task allocation method of a pipeline multi-core system according to an embodiment of the present invention.
도 15는 본 발명의 일 실시예에 따른 파이프라인 멀티 코어 시스템을 설명하기 위한 구조도이다.15 is a structural diagram illustrating a pipeline multi-core system according to an embodiment of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in various forms, and only the present embodiments are intended to complete the disclosure of the present invention, and the general knowledge in the art to which the present invention pertains. It is provided to fully convey the scope of the invention to those skilled in the art, and the present invention is defined only by the scope of the claims.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"는 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.Like reference numerals refer to like elements throughout the specification, and "and / or" includes each and every combination of one or more of the mentioned items.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "이루어지다(made of)"는 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” and / or “made of” refers to a component, step, operation, and / or element that includes one or more other components, steps, operations, and / or elements. It does not exclude existence or addition.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in the present specification may be used in a sense that can be commonly understood by those skilled in the art. In addition, the terms defined in the commonly used dictionaries are not ideally or excessively interpreted unless they are specifically defined clearly.
본 명세서에서 할당(allocation)은 매핑(mapping)과 스케쥴링(scheduling)을 포함하는 개념일 수 있다.Allocation herein may be a concept including mapping and scheduling.
이하, 도 1 내지 도 14를 참조하여 본 발명의 일 실시예에 따른 파이프라인 멀티 코어 시스템의 태스크 할당 방법에 대해 설명한다.Hereinafter, a task allocation method of a pipeline multi-core system according to an embodiment of the present invention will be described with reference to FIGS. 1 to 14.
먼저, 도 2 내지 도 4를 참조하여 본 명세서에서 사용되는 용어에 대해 설명한다.First, terms used in the present specification will be described with reference to FIGS. 2 to 4.
도 2는 15개의 태스크간 디펜던시 및 데이터 이전시간이 도시되어 있는 태스크 흐름도이다. 도 3은 15개의 태스크 각각이 3개 프로세서 각각에서 처리되는데 소요되는 처리시간을 나타낸 도면이다. 도 4는 처리시간, 데이터 이전시간, 처리시작시간 및 처리완료시간을 설명하기 위한 도면이다.2 is a task flow diagram illustrating dependency between 15 tasks and data transfer time. 3 is a diagram illustrating a processing time for each of the 15 tasks to be processed in each of the three processors. 4 is a diagram for explaining a processing time, a data transfer time, a processing start time, and a processing completion time.
도 2를 참조하면, 디펜던시(dependency)는 다수의 태스크간에 정의된 처리의 우선순위이다. 예를 들어 도 2에서, 태스크3(T3)는 태스크1(T1)의 석세서(successor)이기 때문에 태스크1(T1)이 처리 완료된 후 처리 시작될 수 있고, 태스크5(T5)는 태스크2(T2)의 석세서이기 때문에 태스크2(T2)가 처리 완료된 후 처리 시작될 수 있다.2, dependency is the priority of processing defined between multiple tasks. For example, in FIG. 2, since task 3 (T3) is a successor of task 1 (T1), processing may be started after task 1 (T1) is completed, and task 5 (T5) may be task 2 (T2). The task may be started after task 2 (T2) is completed because it is a successor.
다음 도 4를 참조하면, 데이터 이전시간(TTik)은 태스크 Ti의 석세서인 Tk가 태스크 Ti가 처리된 프로세서 Pj와 다른 프로세서인 Pu에서 처리될 경우, 프로세서 Pu에서 태스크 Tk의 처리를 시작하기 위해 프로세서 Pj에서 태스크 Ti의 처리완료 후 그 처리 데이터가 프로세서 Pu로 이전되는데 필요한 시간이다.Next, referring to FIG. 4, the data transfer time TTik is set to start processing of task Tk at processor Pu when Tk, which is a posture of task Ti, is processed on a processor different from processor Pj on which task Ti is processed. This is the time required for processing data to be transferred to processor Pu after completion of task Ti in processor Pj.
예를 들어 도 2의 태스크1(T1)과 태스크3(T3)이 동일한 프로세서에서 처리되지 않을 경우, 태스크3(T3)은 태스크1(T1)이 처리된 후 2 사이클(cycle) 후에 태스크1(T1)이 처리된 프로세서와 다른 프로세서에서 처리될 수 있다. 더욱 구체적으로 태스크1(T1)이 프로세서1(P1)에서 처리되었다고 했을 때, 태스크3(T3)이 프로세서1(P1)에서 처리되는 경우이면 바로 프로세서1(P1)에서 태스크3(T3)이 처리될 수 있지만, 태스크3(T3)이 프로세서2(P2) 또는 프로세서3(P3)에서 처리되는 경우라면 태스크1(T1)이 프로세서1(P1)에서 처리된 후 2 사이클 후에 프로세서2(P2) 또는 프로세서3(P3)에서 태스크3(T3)이 처리될 수 있다. 즉, 도 2에서 태스크1(T1)과 태스크3(T3)에 대한 데이터 이전시간(TT13)은 2 사이클이다. 마찬가지로 태스크1(T1)과 태스크4(T4)에 대한 데이터 이전시간(TT14)은 3 사이클이다.For example, if task 1 (T1) and task 3 (T3) of FIG. 2 are not processed in the same processor, task 3 (T3) is not processed after task 1 (T1) after two cycles. T1) may be processed in a processor different from the processed processor. More specifically, when task 1 (T1) is processed by processor 1 (P1), if task 3 (T3) is processed by processor 1 (P1), then task 3 (T3) is processed by processor 1 (P1). However, if task 3 (T3) is processed in processor 2 (P2) or processor 3 (P3), then two cycles after task 1 (T1) is processed in processor 1 (P1) or processor 2 (P2) or Task 3 (T3) may be processed in processor 3 (P3). That is, in FIG. 2, the data transfer time TT13 for task 1 (T1) and task 3 (T3) is two cycles. Similarly, the data transfer time TT14 for task 1 (T1) and task 4 (T4) is three cycles.
다음 도 4를 참조하면, 처리시간(PTij)은 태스크i(Ti)가 프로세서j(Pj)에서 처리되는데 소요되는 시간이다. 예를 들어 도 3을 참조하면, 태스크1(T1)은 프로세서1(P1)에서 처리될 경우 5 사이클이 소요되고, 프로세서2(P2)에서 처리될 경우 12 사이클이 소요되며, 프로세서3(P3)에서 처리될 경우 8 사이클이 소요된다. 즉, 이 경우 태스크1(T1)에 대한 프로세서1(P1)의 처리시간(PT11)은 5 사이클이고, 태스크1(T1)에 대한 프로세서2(P2)의 처리시간(PT12)은 12 사이클이며, 태스크1(T1)에 대한 프로세서3(P3)의 처리시간(PT13)은 8 사이클이다.Next, referring to FIG. 4, the processing time PTij is a time required for the task i (Ti) to be processed by the processor j (Pj). For example, referring to FIG. 3, task 1 (T1) takes 5 cycles when processed by processor 1 (P1), 12 cycles when processed by processor 2 (P2), and processor 3 (P3). 8 cycles when processed at. That is, in this case, the processing time PT11 of the processor 1 P1 to the task 1 T1 is 5 cycles, and the processing time PT12 of the processor 2 P2 to the task 1 T1 is 12 cycles. The processing time PT13 of the processor 3 P3 with respect to the task 1 T1 is 8 cycles.
다시, 도 4를 참조하면, 태스크i(Ti)의 처리시작시간(STi)은 태스크i(Ti)가 프로세서j(Pj)에 배치되어 처리가 시작되는 시간이다. 그리고, 처리완료시간(ETk)은 태스크k(Tk)가 프로세서u(Pu)에 배치되어 처리될 때 태스크k(Tk)의 처리가 완료되는 시간이다.Again, referring to FIG. 4, the processing start time STi of the task i (Ti) is a time at which the task i (Ti) is disposed in the processor j (Pj) and processing starts. The processing completion time ETk is a time at which the processing of the task k Tk is completed when the task k Tk is disposed and processed in the processor u (Pu).
여기서, 도 2 및 도 3에 도시된 디펜던시, 처리시간, 및 데이터 이전시간은 하나의 예시에 불과하며 얼마든지 바뀔 수 있다.Here, the dependencies, processing time, and data transfer time shown in FIGS. 2 and 3 are merely examples and may be changed as much as possible.
이제 도 1 및 도 5 내지 도 14를 참조하여 본 발명의 일 실시예에 따른 파이프라인 멀티 코어 시스템의 태스크 할당 방법을 순차적으로 설명한다. 본 명세서에서는 편의상 도 2 및 도 3에 도시된 15개의 태스크가 하나의 태스크 그룹을 이루고, 이러한 태스크 그룹이 반복적으로 제공되어 처리되는 파이프라인 멀티 코어 시스템을 예시하여 설명하나, 이는 하나의 예시에 불과하고 본 발명이 이에 제한되는 것은 아니다.A task allocation method of a pipeline multi-core system according to an embodiment of the present invention will now be described in detail with reference to FIGS. 1 and 5 to 14. In the present specification, for convenience, the 15 tasks illustrated in FIGS. 2 and 3 form one task group, and the pipeline multi-core system in which the task group is repeatedly provided and processed will be described by way of example. The present invention is not limited thereto.
도 1은 본 발명의 일 실시예에 따른 파이프라인 멀티 코어 시스템의 태스크 할당 방법을 나타내는 순서도이다. 도 5 내지 도 14는 본 발명의 일 실시예에 따른 파이프라인 멀티 코어 시스템의 태스크 할당 방법을 설명하기 위한 중간단계 도면들이다.1 is a flowchart illustrating a task allocation method of a pipeline multi-core system according to an embodiment of the present invention. 5 to 14 are intermediate steps for explaining a task allocation method of a pipeline multi-core system according to an embodiment of the present invention.
먼저, 도 1을 참조하면 제1 내지 제3 태스크 그룹을 다수의 프로세서에 초기 배치한다(S100). 이때, 제1 내지 제3 태스크 그룹은 서로 동일할 수 있다. 구체적으로 도 5를 참조하면, 태스크1(T1) 내지 태스크15(T15)를 포함하는 제1 태스크 그룹을 순차적으로 제1 내지 제3 프로세서(P1, P2, P3)에 배치하되, 제1 태스크 그룹에 속한 태스크의 디펜던시, 데이터 이전시간 및 처리시간을 반영하여, 리스트 스케쥴링(list scheduling)을 통해, 각 태스크의 처리완료시간이 최소가 되도록 초기 배치 한다. 그리고 초기 배치된 제1 태스크 그룹에 속한 태스크와 동일하게 제2 및 제3 태스크 그룹에 속한 태스크를 제1 내지 제3 프로세서(P1, P2, P3)에 배치한다.First, referring to FIG. 1, the first to third task groups are initially arranged in a plurality of processors (S100). In this case, the first to third task groups may be identical to each other. Specifically, referring to FIG. 5, a first task group including task 1 (T1) to task 15 (T15) is sequentially arranged in the first to third processors P1, P2, and P3, but the first task group By reflecting the dependency, data transfer time, and processing time of a task belonging to, through list scheduling, initial processing is performed so that the processing completion time of each task is minimized. The tasks belonging to the second and third task groups are arranged in the first to third processors P1, P2, and P3 in the same manner as the tasks belonging to the initially arranged first task group.
보다 구체적으로 제1 태스크 그룹의 태스크1(T1)은 도 2에 도시된 바와 같이 프리디세서(predecessor)가 없으므로 언제든지 처리될 수 있다. 이제 태스크1(T1)에 대한 처리시간(PT11, PT12, PT13)을 고려하여 태스크1(T1)의 처리완료시간을 구하면, 태스크1(T1)이 프로세서1(P1)에서 처리될 경우 처리시간(PT11)은 5 사이클이므로 이 경우 태스크1(T1)의 처리완료시간은 5 사이클이다. 또한, 프로세서2(P2)에서 처리될 경우 처리시간(PT12)은 12 사이클이므로 이 경우 태스크1(T1)의 처리완료시간은 12 사이클이다. 마지막으로, 프로세서3(P3)에서 처리될 경우 처리시간(PT13)은 8 사이클이므로 이 경우 태스크1(T1)의 처리완료시간은 8 사이클이다.More specifically, task 1 T1 of the first task group may be processed at any time because there is no predecessor as shown in FIG. 2. Now, considering the processing time (PT11, PT12, PT13) for task 1 (T1) to obtain the processing completion time of task 1 (T1), if task 1 (T1) is processed in processor 1 (P1) processing time ( Since PT11) is 5 cycles, the processing completion time of task 1 (T1) is 5 cycles in this case. In addition, since the processing time PT12 is 12 cycles when processed by the processor 2 P2, the processing completion time of the task 1 T1 is 12 cycles in this case. Finally, when the processor 3 (P3) is processed, the processing time PT13 is 8 cycles. In this case, the processing completion time of the task 1 (T1) is 8 cycles.
이와 같은 디펜던시, 데이터 이전시간, 및 처리시간(PT11, PT12, PT13)을 고려하여, 태스크1(T1)의 처리완료시간이 최소가 되는 프로세서에 태스크1(T1)이 배치되어야 하기 때문에, 프로세서1(P1)에 태스크1(T1)이 배치된다.In view of such dependency, data transfer time, and processing time PT11, PT12, PT13, since task 1 (T1) should be arranged in a processor in which the processing completion time of task 1 (T1) is minimized, Task 1 (T1) is arranged in processor 1 (P1).
다음 리스트 스케쥴링에 의해 태스크2(T2)가 다음으로 고려된다. 태스크2(T2)도 태스크1(T1)과 마찬가지로 프리디세서가 없으므로 처리시간이 가장 작은 프로세서2(P2)에 배치된다.Task 2 (T2) is considered next by the next list scheduling. Since task 2 (T2) has no preprocessor like task 1 (T1), it is placed in processor 2 (P2) with the smallest processing time.
다음 리스트 스케쥴링에 의해 태스크3(T3)이 다음으로 고려되는데, 태스크3(T3)은 태스크1(T1)의 석세서이므로 태스크1(T1)이 처리된 후 처리될 수 있다. 또한, 태스크1(T1)이 프로세서1(P1)에서 처리되었으므로, 태스크3(T3)이 프로세서1(P1)에서 처리된다면 데이터 이전시간이 발생하지 않지만, 프로세서2(P2) 또는 프로세서3(P3)에서 처리될 경우 데이터 이전시간(TT13) 2 사이클이 발생한다.Task 3 (T3) is considered next by the next list scheduling. Since task 3 (T3) is a successor of task 1 (T1), it can be processed after task 1 (T1) is processed. In addition, since task 1 (T1) is processed in processor 1 (P1), if task 3 (T3) is processed in processor 1 (P1), no data transfer time occurs, but processor 2 (P2) or processor 3 (P3). 2 cycles of data transfer time (TT13) occurs.
이제 태스크3(T3)에 대한 처리시간을 고려하여 태스크3(T3)의 처리완료시간을 구하면, 태스크3(T3)이 프로세서1(P1)에서 처리될 경우 처리시간은 14 사이클이므로 이 경우 태스크3(T3)의 처리완료시간은 19 사이클이다.Now, if the processing completion time of task 3 (T3) is obtained by considering the processing time for task 3 (T3), the processing time is 14 cycles when task 3 (T3) is processed by processor 1 (P1). The processing completion time of (T3) is 19 cycles.
반면, 태스크3(T3)이 프로세서2(P2)에서 처리될 경우 처리시간은 7 사이클이고, 앞서 프로세서2(P2)에서 태스크2(T2)가 처리되었기 때문에 그 뒤에 처리된다고 가정할 때, 태스크3(T3)의 처리완료 시간은 15 사이클이다. 이 때, 태스크1(T1)이 처리된 후 필요한 데이터 이전시간(TT13) 2 사이클은 만족하므로 문제될 것은 없다.On the other hand, when task 3 (T3) is processed in processor 2 (P2), the processing time is 7 cycles, and assumes that task 2 (T2) is processed afterward because processor 2 (P2) has been processed before, task 3 The treatment completion time of (T3) is 15 cycles. At this time, since the data transfer time TT13 two cycles required after the task 1 (T1) are processed are satisfied, there is no problem.
태스크3(T3)이 프로세서3(P3)에서 처리될 경우 처리시간은 9 사이클이고, 태스크1(T1)이 처리된 후 필요한 데이터 이전시간(TT13) 2 사이클을 만족시켜야 하므로, 이 경우 태스크3(T3)의 처리완료시간은 16 사이클이 된다.When task 3 (T3) is processed in processor 3 (P3), the processing time is 9 cycles, and since task 1 (T1) has to satisfy the required data transfer time (TT13) 2 cycles after processing, in this case, task 3 ( The processing completion time of T3) is 16 cycles.
이와 같은 디펜던시, 데이터 이전시간, 및 처리시간을 고려하여 배치할 경우, 태스크3(T3)의 처리완료시간이 최소가 되는 프로세서에 태스크3(T3)이 할당되어야 하기 때문에, 프로세서2(P2)에 태스크3(T3)이 배치된다.In the case where such a dependency, data transfer time, and processing time is taken into consideration, task 3 (T3) should be allocated to the processor whose processing completion time of task 3 (T3) is the minimum. ), Task 3 (T3) is arranged.
동일한 방법을 리스트 스케쥴링을 통해 태스크4(T4) 내지 태스크15(T15)에 대해 순차적으로 적용하여 제1 태스크 그룹에 속한 태스크를 초기 배치한다. 그리고, 초기 배치된 제1 태스크 그룹의 태스크와 동일하게 제2 및 제3 태스크 그룹에 속한 태스크를 프로세서1(P1) 내지 프로세서3(P3)에 배치하면, 도 5와 같이 제1 내지 제3 태스크 그룹을 프로세서1(P1) 내지 프로세서3(P3)에 초기 배치할 수 있다. 도 5를 참조하면, 초기 배치된 제1 태스크 그룹(T1~T15)은 처음부터 54 사이클까지 배치되어 있고, 제2 태스크 그룹(T1~T15)은 제1 태스크 그룹의 뒤를 이어 108 사이클까지 배치되어 있고, 제3 태스크 그룹(T1~T15)은 제2 태스크 그룹의 뒤를 이어 162 사이클까지 배치되어 있다.The same method is sequentially applied to task 4 (T4) to task 15 (T15) through list scheduling to initially place a task belonging to the first task group. If the tasks belonging to the second and third task groups are arranged in the processor 1 (P1) to the processor 3 (P3) in the same manner as the tasks of the first task group, the first to third tasks as shown in FIG. The group may be initially arranged in the processors 1 (P1) to 3 (P3). Referring to FIG. 5, initially arranged first task groups T1 to T15 are arranged from the beginning to 54 cycles, and second task groups T1 to T15 are arranged after the first task group up to 108 cycles. The third task groups T1 to T15 are arranged up to 162 cycles after the second task group.
다음 도 1을 참조하면, 초기 배치된 결과를 바탕으로 제1 DII를 계산한다(S101). 앞서 설명했듯이 DII(data Input Interval)는 반복적으로 제공되는 태스크 그룹 중 각 태스크 그룹의 처리시작시간이 가장 빠른 태스크의 처리시작시간 간의 시간 간격으로 정의할 수 있다. 따라서 도 5를 참조하면, 초기 배치된 제1 내지 제3 태스크 그룹의 처리시작시간이 가장 빠른 태스크는 태스크1(T1)이고, 이 태스크1(T1)의 처리시작시간 간의 간격인 DII는 54 사이클이며, 이 54 사이클이 제1 DII(DII_1)가 된다.Next, referring to FIG. 1, the first DII is calculated based on the initially arranged result (S101). As described above, DII (data input interval) may be defined as a time interval between processing start times of tasks having the fastest processing start time of each task group among repeatedly provided task groups. Therefore, referring to FIG. 5, the task having the earliest processing start time of the first to third task groups is task 1 (T1), and DII, which is the interval between the processing start times of this task 1 (T1), is 54 cycles. This 54 cycles becomes the first DII (DII_1).
다음 도 1을 참조하면, 초기 배치된 제2 태스크 그룹의 태스크 중에서 처리완료시간이 최대인 태스크의 처리완료시간은 변화시키지 않으면서 초기 배치된 프로세서 내에서 각 태스크의 처리완료시간이 최대가 되도록 제2 태스크 그룹의 각 태스크를 제1 배치한다(S102).Referring to FIG. 1, the processing completion time of each task in the initially deployed processor is maximized without changing the processing completion time of the task having the largest processing completion time among the tasks of the second task group that is initially arranged. Each task of the second task group is placed first (S102).
구체적으로 각 태스크간 디펜던시, 처리시간 및 데이터 이전시간을 고려하여, 초기 배치된 제 2 태스크 그룹에 속한 태스크에 대해 초기 배치된 프로세서 내에서 초기 배치된 다수의 태스크 중 처리완료시간이 최대인 태스크의 처리완료시간은 변화시키지 않으면서, 각 태스크의 처리완료시간이 최대가 되도록(ALAP; As Late As Possible) 제1 배치한다.Specifically, in consideration of dependency between each task, processing time, and data transfer time, the processing completion time of the plurality of tasks initially disposed in the initially deployed processor for the task belonging to the second initially deployed task group is maximum. A first arrangement is made so that the processing completion time of each task is maximized (ALAP; As Late As Possible) without changing the processing completion time of the task.
도 6은 제2 태스크 그룹에 속한 태스크 중에서 처리완료시간이 최대인 태스크(T15, 108사이클)의 처리완료시간은 변화시키지 않으면서, 각 태스크간 디펜던시, 처리시간 및 데이터 이전시간을 고려하여 제2 태스크 그룹에 속한 다른 태스크(T1~T14)의 처리완료시간이 최대가 되도록 제1 배치한 결과이다.FIG. 6 considers the dependency, processing time and data transfer time between tasks without changing the processing completion time of the task (T15, 108 cycles) having the maximum processing completion time among the tasks belonging to the second task group. The result of the first arrangement is such that the processing completion time of the other tasks T1 to T14 belonging to the second task group is maximum.
다음 도 1을 참조하면, 제1 배치된 제2 태스크 그룹 및 제3 태스크 그룹의 태스크를 r(r≥2, r은 자연수)개의 서브 그룹으로 동일하게 그룹핑하고, 제2 태스크 그룹의 모든 서브 그룹에 대해 슬랙(slack)이 최대가 되도록 각 서브 그룹에 속한 태스크를 다수의 프로세서에 제2 배치하되, 제2 태스크 그룹의 각 서브 그룹이 제2 배치될 때마다 제3 태스크 그룹의 대응되는 서브 그룹을 동일하게 제2 배치한다(S103).Next, referring to FIG. 1, the tasks of the first and second task groups disposed in the third task group are equally grouped into r (r≥2, r is a natural number) subgroups, and all subgroups of the second task group are Secondly deploying tasks belonging to each subgroup to a plurality of processors such that the slack is maximum for the second processor; each subgroup of the second task group is placed in the second, corresponding subgroup of the third task group 2 is arranged in the same manner (S103).
구체적으로 먼저 제1 배치된 제2 태스크 그룹 및 초기 배치된 제3 태스크 그룹의 태스크를 3개의 서브 그룹으로 동일하게 그룹핑한다. 도 6을 참조하면, 제1 배치된 제2 태스크 그룹 및 초기 배치된 제3 태스크 그룹의 태스크는 처리시작시간이 빠른 순서대로 제1 서브그룹(G1={T1, T2, T3, T4, T7}), 제2 서브그룹(G2={T5, T6, T8, T9, T10}), 제3 서브그룹(G3={T11, T12, T13, T14, T15})으로 그룹핑 될 수 있다. 여기서 도 6에는 처리시작시간이 빠른 순서대로 3개의 서브 그룹으로 그룹핑 하는 것을 예시하고 있으나, 이는 하나의 예시에 불과하며 본 발명은 이에 제한되지 않는다. 즉, 본 발명의 다른 실시예에 따른 파이프라인 멀티 코어 시스템의 태스크 할당 방법에서는 처리완료시간이 빠른 순서대로 3개의 서브 그룹으로 그룹핑하는 것을 예시할 수도 있다. 또한 3개의 서브 그룹이 아닌 4개, 5개 등의 서브 그룹으로 그룹핑 하는 것도 가능하다.Specifically, first, the tasks of the first and second task groups that are arranged first and the third task group, which are initially arranged, are equally grouped into three subgroups. Referring to FIG. 6, the tasks of the first arranged second task group and the initially arranged third task group include the first subgroup G1 = {T1, T2, T3, T4, T7} in order of increasing processing start time. ), The second subgroup G2 = {T5, T6, T8, T9, T10}, and the third subgroup G3 = {T11, T12, T13, T14, T15}. Here, although FIG. 6 illustrates grouping into three subgroups in the order of rapid start of processing, this is only one example and the present invention is not limited thereto. That is, in the task allocation method of the pipeline multi-core system according to another embodiment of the present invention, grouping into three subgroups in order of completion of processing time may be illustrated. It is also possible to group into four or five subgroups rather than three subgroups.
추가적으로 도 6에서는 각 서브 그룹에 속한 태스크의 수가 5개로 동일한 것을 예시하고 있으나, 이는 하나의 예시에 불과할 뿐이며 각 서브 그룹에 속한 태스크의 수는 서로 다를 수도 있다.In addition, although FIG. 6 illustrates that the same number of tasks belonging to each subgroup is five, this is only one example and the number of tasks belonging to each subgroup may be different.
다음 제2 태스크 그룹의 모든 서브 그룹(G1~G3)에 대해 슬랙(slack)이 최대가 되도록 각 서브 그룹(G1, G2, G3)에 속한 태스크를 다수의 프로세서에 제2 배치한다. 구체적으로 먼저, 제1 서브 그룹(G1)에 대해 도 6에 도시된 것과 같이 제1 그룹존(GZ1)을 설정하고, 제1 서브 그룹존(GZ1) 안에서 슬랙이 최대가 되도록 제1 서브 그룹(G1)에 속한 태스크를 제2 배치한다. Next, tasks belonging to each of the subgroups G1, G2, and G3 are secondly arranged in the plurality of processors such that slack is maximized for all the subgroups G1 to G3 of the second task group. Specifically, first, as shown in FIG. 6, for the first subgroup G1, the first group zone GZ1 is set, and the first subgroup ( The second task belongs to G1).
더욱 구체적으로 아래와 같이 정의된 제1 서브 그룹존(GZ1)을 선정한다.More specifically, the first sub group zone GZ1 defined as follows is selected.
* 서브 그룹 Gp(여기서 p는 2≤p≤r인 자연수)의 천장 = 제2 배치된 서브 그룹 G(p-1)에 속한 태스크 중 각 프로세서별로 처리완료시간이 최대인 태스크의 처리완료시간 (단, 서브 그룹 G1의 천장 = 초기 배치된 제1 태스크 그룹에 속한 태스크 중 각 프로세서별로 처리완료시간이 최대인 태스크의 처리완료시간)* The ceiling of the subgroup Gp (where p is a natural number of 2 ≦ p ≦ r) = the processing completion time of the task having the maximum processing completion time for each processor among the tasks belonging to the second arranged subgroup G (p-1) However, the ceiling of the subgroup G1 = the processing completion time of the task having the maximum processing completion time for each processor among the tasks belonging to the first task group that is initially arranged.)
* 서브 그룹 Gp(여기서 p는 1≤p≤(r-1)인 자연수)의 바닥 = 제1 배치된 서브 그룹 G(p+1)에 속한 태스크 중 각 프로세서별로 처리시작시간이 최소인 태스크의 처리시작시간 (단, 서브 그룹 Gr의 바닥 = 제2 배치된 제3 태스크 그룹에 속한 태스크 중 각 프로세서별로 처리시작시간이 최소인 태스크의 처리시작시간)* The bottom of the subgroup Gp (where p is a natural number of 1≤p≤ (r-1)) = of the task having the minimum processing start time for each processor among the tasks belonging to the first arranged subgroup G (p + 1) Processing start time (the bottom of the subgroup Gr = processing start time of the task whose processing start time is minimum for each processor among the tasks belonging to the second arranged third task group)
도 6을 참조하면, 제1 서브 그룹(G1)의 천장(ceiling_1)은 초기 배치된 제1 태스크 그룹에 속한 태스크 중 각 프로세서별로 처리완료시간이 최대인 태스크(T13, T14, T15)의 처리완료시간이다. 그리고 제1 서브 그룹(G1)의 바닥(floor_1)은 제2 서브 그룹(G2)에 속한 태스크 중 각 프로세서별로 처리시작시간이 최소인 태스크인 태스크(T5, T6, T11)의 처리시작시간이다. 따라서 도 6에 도시된 바와 같이 제1 서브 그룹(G1)의 서브 그룹존(GZ1)은 천장(ceiling_1)과 바닥(floor_1)으로 이루어질 수 있다.Referring to FIG. 6, the ceiling ceiling_1 of the first subgroup G1 completes the processing of tasks T13, T14, and T15 having a maximum processing completion time for each processor among tasks belonging to the first task group that is initially arranged. It's time. A floor_1 of the first subgroup G1 is a processing start time of tasks T5, T6, and T11, which are tasks having a minimum processing start time for each processor among tasks belonging to the second subgroup G2. Accordingly, as shown in FIG. 6, the subgroup zone GZ1 of the first subgroup G1 may be formed of a ceiling ceiling_1 and a floor_1.
다음 제1 서브 그룹(G1)에 대한 제1 서브 그룹존(GZ1) 내에서 제1 서브 그룹(G1)에 속한 태스크를 재배치할 수 있는 모든 경우를 고려하여 각 경우마다 슬랙(slack)을 구하되, 그 중에서 구해진 슬랙이 최대가 되는 배치를 찾아 제1 서브 그룹(G1)에 속한 태스크를 제2 배치한다.In each case, a slack is obtained in consideration of all cases in which a task belonging to the first subgroup G1 can be relocated within the first subgroup zone GZ1 for the first subgroup G1. The task belonging to the first subgroup G1 is secondly arranged by finding an arrangement in which the obtained slack is the maximum.
구체적으로, 제2 배치는 다음과 같은 순서로 배치하는 것을 의미한다. 먼저, 제1 서브 그룹(G1)의 제1 서브 그룹존(GZ1) 내에서, 제1 서브 그룹(G1)에 속한 태스크의 디펜던시, 데이터 이전시간, 및 처리시간을 반영하여 제1 서브 그룹(G1)에 속한 태스크가 프로세서(P1, P2, P3)에 배치되어 가장 빨리 처리될 수 있는 재배치 가능한 모든 경우를 고려한다. 다음, 각 배치 가능한 경우마다 슬랙을 계산한다. 여기서 슬랙은 제1 서브 그룹(G1)에 속한 태스크를 재배치하여 다음 서브그룹인 제2 서브 그룹(G2)에 속한 모든 태스크의 처리시작시간을 동일하게 앞당길 수 있는 여유분으로 정의할 수 있다. 마지막으로 각 경우를 비교하여, 이와 같이 계산된 슬랙이 최대가 되는 경우를 찾아 그 배치대로 제1 서브 그룹(G1)에 속한 태스크를 제2 배치한다.Specifically, the second arrangement means to arrange in the following order. First, in the first subgroup zone GZ1 of the first subgroup G1, the first subgroup is reflected by reflecting the dependency, data transfer time, and processing time of a task belonging to the first subgroup G1. Consider all the relocatable cases where tasks belonging to (G1) are placed on processors P1, P2, and P3 and can be processed fastest. Next, the slack is calculated for each possible placement. In this case, the slack may be defined as an allowance for rearranging a task belonging to the first subgroup G1 to advance the processing start time of all tasks belonging to the second subgroup G2 which is the next subgroup. Finally, each case is compared to find a case where the calculated slack is the maximum, and the tasks belonging to the first subgroup G1 are secondly arranged according to the arrangement.
도 7은 제1 서브 그룹(G1)에 속한 태스크v1(Tv1) 및 태스크v2(Tv2)가 프로세서1(P1) 및 프로세서2(P2)에 각각 배치되어 있는 것을 예로 든 것이다.FIG. 7 illustrates an example in which task v1 (Tv1) and task v2 (Tv2) belonging to the first subgroup G1 are disposed in the processor 1 P1 and the processor 2 P2, respectively.
구체적으로 태스크v1(Tv1)은 프로세서1(P1)에 디펜던시, 처리시간 및 데이터 이전시간을 반영하여 가장 빨리 처리될 수 있도록 배치되어 있고, 태스크v2(Tv2)는 프로세서2(P2)에 디펜던시, 처리시간 및 데이터 이전시간을 반영하여 가장 빨리 처리될 수 있도록 배치되어 있다. 그리고, 제2 서브 그룹(G2)에 속한 태스크w1(Tw1) 및 태스크w2(Tw2)는 프로세서1(P1) 및 프로세서2(P2)에 각각 제1 배치되어 있다.Specifically, task v1 (Tv1) is arranged in processor 1 (P1) to reflect the dependency, processing time, and data transfer time as soon as possible, and task v2 (Tv2) is defined in processor 2 (P2). It is arranged to be processed as soon as possible by reflecting dungeon, processing time and data transfer time. The tasks w1 (Tw1) and the tasks w2 (Tw2) belonging to the second subgroup G2 are first disposed in the processor 1 P1 and the processor 2 P2, respectively.
여기서, 태스크w1(Tw1) 및 태스크w2(Tw2)가 태스크v1(Tv1)과 태스크v2(Tv2)의 석세서가 아니라면, 도 7의 경우 슬랙은 태스크w1(Tw1)의 처리시작시간(STw1)과 태스크 v1(Tv1)의 처리완료시간(ETv1)의 차이와 태스크w2(Tw2)의 처리시작시간(STw2)과 태스크v2(Tv2)의 처리완료시간(ETv2)의 차이 중 최소값이 된다. 이 경우에는 태스크w2(Tw2)의 처리시작시간(STw2)과 태스크v2(Tv2)의 처리완료시간(ETv2)의 차이가 더 작기 때문에, 이 값이 이 경우의 슬랙이 되며, 태스크w1(Tw1) 및 태스크w2(Tw2)가 태스크v1(Tv1)과 태스크v2(Tv2)의 석세서가 아니기 때문에 추가적으로 데이터 이전시간을 고려할 필요가 없다. 따라서 이 경우, 그룹(G2)에 속한 모든 태스크는 태스크w2(Tw2)의 처리시작시간(STw2)과 태스크v2(Tv2)의 처리완료시간(ETv2)의 차이만큼 처리시작시간이 앞당겨질 수 있다.Here, if task w1 (Tw1) and task w2 (Tw2) are not the postures of task v1 (Tv1) and task v2 (Tv2), in the case of FIG. 7, the slack is the processing start time STw1 of task w1 (Tw1) The minimum value is the difference between the processing completion time ETv1 of task v1 (Tv1) and the processing starting time STw2 of task w2 (Tw2) and the processing completion time ETv2 of task v2 (Tv2). In this case, since the difference between the processing start time STw2 of task w2 (Tw2) and the processing completion time (ETv2) of task v2 (Tv2) is smaller, this value becomes a slack in this case, and task w1 (Tw1) And since task w2 (Tw2) is not a posture of task v1 (Tv1) and task v2 (Tv2), it is not necessary to consider additional data transfer time. Therefore, in this case, all tasks belonging to the group G2 may be advanced by the difference between the processing start time STw2 of the task w2 (Tw2) and the processing completion time (ETv2) of the task v2 (Tv2).
그런데, 만약 태스크w2(Tw2)가 태스크v1(Tv1)의 석세서이고, 태스크w1(Tw1)이 태스크v2(Tv2)의 석세서라면, 각 태스크간에는 데이터 이전시간이 고려되어야 하기 때문에 슬랙은 다음과 같이 계산된다.However, if task w2 (Tw2) is a posture of task v1 (Tv1), and task w1 (Tw1) is a posture of task v2 (Tv2), the data transfer time must be considered between the tasks, so the slack is as follows. Calculated as
슬랙 = MIN{(STw1-ETv1), (STw2-ETv2), (STw2-ETv1-TTv1w2), (STw1-ETv2-TTv2w1)}Slack = MIN {(STw1-ETv1), (STw2-ETv2), (STw2-ETv1-TTv1w2), (STw1-ETv2-TTv2w1)}
즉, 태스크w2(Tw2)가 태스크v1(Tv1)의 석세서이고, 태스크w1(Tw1)이 태스크v2(Tv2)의 석세서이기 때문에 슬랙을 계산할 때, 추가적으로 태스크v1(Tv1)과 태스크w2(Tw2)간 데이터 이전시간(TTv1w2) 및 태스크v2(Tv2)와 태스크w1(Tw1)간 데이터 이전시간(TTv2w1)이 추가적으로 고려되어야 한다. 이 경우 마찬가지로, 제2 서브 그룹(G2)에 속한 모든 태스크는 앞에서 계산한 슬랙 만큼 처리시작시간이 앞당겨질 수 있다.That is, since task w2 (Tw2) is a stoner of task v1 (Tv1) and task w1 (Tw1) is a stoner of task v2 (Tv2), additionally, task v1 (Tv1) and task w2 (Tw2) are calculated. The data transfer time between TTv1w2 and the data transfer time TTv2w1 between task v2 (Tv2) and task w1 (Tw1) should be additionally considered. In this case, similarly, all tasks belonging to the second subgroup G2 may have their processing start time advanced by the slack calculated previously.
제1 서브 그룹(G1)에 속한 태스크를 프로세서(P1, P2, P3)에 배치한 모든 경우 중, 위와 같이 계산된 슬랙이 최대인 경우를 찾아 그 배치대로 제2 배치한다.Of all the cases in which tasks belonging to the first subgroup G1 are arranged in the processors P1, P2, and P3, the case where the calculated slack is the maximum is found, and the second arrangement is performed according to the arrangement.
도 8을 참조하면, 이와 같은 방법으로 제1 서브 그룹(G1)에 속한 태스크(T1, T2, T3, T4, T7)가 제1 서브 그룹존(GZ1) 내에서 제2 배치된 상태가 도시되어 있다.Referring to FIG. 8, a state in which tasks T1, T2, T3, T4, and T7 belonging to the first subgroup G1 are disposed in the first subgroup zone GZ1 in the same manner is illustrated. have.
다음 제2 태스크 그룹의 제1 서브 그룹이 제2 배치된 결과와 동일하게 제3 태스크 그룹의 제1 서브 그룹도 제2 배치시킨다. 도 9는 제3 태스크 그룹의 제1 서브 그룹을 제2 태스크 그룹의 제1 서브 그룹과 동일하게 제2 배치한 결과이다.Next, the first subgroup of the third task group is also placed in a second manner as a result of the first arrangement of the second subgroup of the second task group. 9 is a result of second arrangement of the first subgroup of the third task group in the same manner as the first subgroup of the second task group.
다음 도 10을 참조하면, 제2 태스크 그룹의 제2 서브 그룹(G2)의 제2 서브 그룹존(GZ2) 내에서, 디펜던시, 데이터 이전시간, 및 처리시간을 반영하여 제2 서브 그룹(G2)에 속한 태스크가 프로세서(P1, P2, P3)에 배치되어 가장 빨리 처리될 수 있는 모든 경우를 고려하되, 그 중에서 배치된 태스크를 대상으로 계산한 앞에서 설명한 슬랙이 최대가 되도록 제2 배치한다.Next, referring to FIG. 10, in the second subgroup zone GZ2 of the second subgroup G2 of the second task group, the second subgroup () reflects the dependency, the data transfer time, and the processing time. Consider all the cases where a task belonging to G2) is arranged in the processors P1, P2, and P3, and can be processed as soon as possible, and the second arrangement is performed so that the above-described slacks calculated for the arranged task are maximized. .
제2 태스크 그룹에 속한 제2 서브 그룹(G2)의 제2 배치방법은 제1 서브 그룹(G1)의 제2 배치방법과 기본적으로 동일한바 여기서 중복되는 자세한 설명은 생략하고, 여기서는 차이점에 대해서만 설명한다.The second disposition method of the second subgroup G2 belonging to the second task group is basically the same as the second disposition method of the first subgroup G1, and thus the detailed description thereof will not be repeated here, and only the differences will be described herein. do.
도 10을 참조하면, 제2 서브 그룹(G2)의 제2 서브 그룹존(GZ2)은 천장(ceiling_2)과 바닥(floor_2)으로 이루어진다. Referring to FIG. 10, the second subgroup zone GZ2 of the second subgroup G2 includes a ceiling ceiling_2 and a floor_2.
천장(ceiling_2)은 제2 배치 완료된 제1 서브 그룹(G1)에 속한 태스크 중 각 프로세서별로 처리완료시간이 최대인 태스크의 처리완료시간이 된다. 제1 프로세서(P1)에는 제2 배치된 제1 서브 그룹(G1)에 속한 태스크가 존재하지 않기 때문에 제1 태스크 그룹에 속한 태스크 중 제1 프로세서(P1)에 배치되고 처리완료시간이 최대인 태스크의 처리완료시간이 천장(ceiling_2)이 된다. 따라서, 태스크15(T15), 태스크7(T7), 및 태스크4(T4)의 처리완료시간이 천장(ceiling_2)이 된다. The ceiling ceiling_2 is the processing completion time of the task having the maximum processing completion time for each processor among the tasks belonging to the second sub-group G1 that has been arranged. Since the task belonging to the second sub-group G1 disposed in the first processor P1 does not exist, the task disposed in the first processor P1 among the tasks belonging to the first task group and having the maximum processing completion time The processing completion time of becomes the ceiling (ceiling_2). Therefore, the processing completion time of task 15 (T15), task 7 (T7), and task 4 (T4) becomes the ceiling (ceiling_2).
또한, 바닥(floor_2)은 제1 배치된 제3 서브 그룹(G3)에 속한 태스크 중 처리시작시간이 최소인 태스크의 처리시작시간이 된다. 따라서, 태스크12(T12), 태스크11(T11), 태스크13(T13)의 처리시작시간이 바닥(floor_2)이 된다.In addition, the floor floor_2 is a processing start time of a task having a minimum processing start time among tasks belonging to the third arranged subgroup G3. Therefore, the processing start time of task 12 (T12), task 11 (T11), and task 13 (T13) becomes the floor (floor_2).
이제 이 제2 서브 그룹존(GZ2) 내에서 디펜던시, 데이터 이전시간, 및 처리시간을 반영하여 제2 서브 그룹(G2)에 속한 태스크가 프로세서(P1, P2, P3)에 배치되어 가장 빨리 처리될 수 있는 모든 경우를 고려하되, 그 중에서 배치된 태스크를 대상으로 계산한 슬랙이 최대가 되도록 제2 배치한다.In this second subgroup zone GZ2, tasks belonging to the second subgroup G2 are placed in the processors P1, P2, and P3 to reflect the dependency, data transfer time, and processing time. Consider all cases that can be handled, with the second arrangement so that the slacks calculated for the deployed task are maximized.
도 11은 제2 태스크 그룹에 속한 제2 서브 그룹(G2)을 슬랙이 최대가 되도록 제2 배치하고, 그 결과대로 제3 태스크 그룹에 속한 제2 서브 그룹을 동일하게 제2 배치한 것을 도시하고 있다.FIG. 11 illustrates a second arrangement of the second subgroup G2 belonging to the second task group such that the slack is the maximum, and as a result, the second arrangement of the second subgroup belonging to the third task group equally second. have.
동일한 방법을 이용해서 도 12에 도시된 것과 같은 제2 태스크 그룹에 속한 제3 서브 그룹(G3)을 슬랙이 최대가 되도록 제2 배치하고, 그 결과대로 제3 태스크 그룹에 속한 제3 서브 그룹을 제2 배치하면 도 13과 같은 결과를 얻을 수 있다.Using the same method, the third subgroup G3 belonging to the second task group as shown in FIG. 12 is secondly arranged to have the maximum slack, and as a result, the third subgroup belonging to the third task group is arranged. In the second arrangement, a result as shown in FIG. 13 can be obtained.
다음 도 1을 참조하면, 제2 배치된 결과를 바탕으로 제2 DII를 계산한다(S104). 도 13을 다시 참조하면 제2 배치된 결과를 바탕으로 계산한 제2 DII(DII_2)는 44 사이클임을 알 수 있다.Referring to FIG. 1, a second DII is calculated based on the second arranged result (S104). Referring back to FIG. 13, it can be seen that the second DII (DII_2) calculated based on the second arranged result is 44 cycles.
다음 도 1을 참조하면, 계산된 제2 DII가 계산된 제1 DII보다 작을 경우 제2 배치된 제2 태스크 그룹과 동일하게 제1 내지 제3 태스크 그룹을 다수의 프로세서에 초기 배치한 후 제1 및 제2 배치를 반복한다(S105). 만약 반복한 결과 계산된 제2 DII가 계산된 제1 DII보다 크거나 같을 경우 제2 배치된 제2 태스크 그룹과 동일하도록 반복적으로 제공되는 태스크 그룹을 다수의 프로세서에 할당한다(S106).Referring to FIG. 1, when the calculated second DII is smaller than the calculated first DII, the first to third task groups are initially disposed in the plurality of processors in the same manner as the second arranged second task group, and then the first And the second arrangement is repeated (S105). If the calculated second DII is greater than or equal to the calculated first DII as a result of the repetition, the task group repeatedly provided to be identical to the second arranged second task group is allocated to the plurality of processors (S106).
이 예제의 경우에 최종적으로 제2 배치된 결과는 도 14와 같다. 이 때 DII(DII_F)는 44 사이클 임을 알 수 있다. 이제 반복적으로 제공되는 태스크 그룹은 다수의 프로세서에 도 14와 같이 할당되게 된다.In the case of this example, the second arranged result is as shown in FIG. At this time, it can be seen that DII (DII_F) is 44 cycles. Task groups that are repeatedly provided are now assigned to multiple processors as shown in FIG. 14.
다수의 프로세서에 다수의 태스크 그룹을 할당하는 방법을 찾는 가장 쉬운 방법은 할당 가능한 모든 경우를 고려하여 최적해를 구하는 방법이다. 이 경우 하나의 태스크 그룹을 가장 빨리 처리할 수 있는 최적해를 구할 수는 있지만, 이러한 최적 해를 구하는데 많은 수행시간이 필요하게 된다.The easiest way to find a way to assign multiple task groups to multiple processors is to find the optimal solution, taking into account all assignable cases. In this case, we can find the optimal solution that can process one task group as soon as possible, but it takes a lot of execution time to find the optimal solution.
한편, DII(data Input Interval)는 반복적으로 제공되는 태스크 그룹 중 각 태스크 그룹의 처리시작시간이 가장 빠른 태스크의 처리시작시간 간의 간격으로 정의할 수 있으므로, 파이프라인 멀티 코어 시스템에서 이러한 DII를 최소화하게 되면 하나의 태스크 그룹을 처리하는데 소요되는 시간은 비록 최적해 보다 더 클지 모르지만 반복적으로 제공되는 태스크 그룹을 적절한 수행 시간 내에 효율적으로 처리할 수 있다.On the other hand, DII (data input interval) can be defined as the interval between the processing start time of the task that has the fastest processing start time of each task group among the repeatedly provided task group, thereby minimizing such DII in pipeline multi-core system In this case, the time required to process one task group may be more optimal than the optimal one, but the task group that is repeatedly provided may be efficiently processed within a proper execution time.
즉, 앞서 설명한 방법으로 DII를 최소화하게 되면 반복적으로 제공되는 태스크 그룹을 적절한 수행 시간 내에 효율적으로 처리할 수 있다.That is, by minimizing DII in the above-described manner, it is possible to efficiently process a task group repeatedly provided within an appropriate execution time.
다음 도 15를 참조하여 본 발명의 일 실시예에 따른 파이프 라인 멀티 코어 시스템에 대해 설명한다.Next, a pipeline multicore system according to an embodiment of the present invention will be described with reference to FIG. 15.
도 15는 본 발명의 일 실시예에 따른 파이프라인 멀티 코어 시스템을 설명하기 위한 구조도이다.15 is a structural diagram illustrating a pipeline multi-core system according to an embodiment of the present invention.
도 15를 참조하면, 파이프라인 멀티 코어 시스템은 다수의 프로세서(100), 저장부(102) 및 제어부(103)를 포함한다.Referring to FIG. 15, a pipelined multicore system includes a plurality of processors 100, a storage 102, and a controller 103.
다수의 프로세서(100)는 다수의 태스크 그룹(101)을 처리하는 역할을 한다.The plurality of processors 100 serve to process the plurality of task groups 101.
저장부(102)에는 디펜던시가 정의된 다수의 태스크 및 다수의 태스크를 포함하는 서로 동일한 태스크 그룹(101)이 저장되어 있다.The storage unit 102 stores the same task group 101 including a plurality of tasks in which dependency is defined and a plurality of tasks.
제어부(103)는 저장부(102)에 저장된 태스크 그룹(101)을 다수의 프로세서(100)에 할당하는 역할을 한다. The controller 103 assigns the task group 101 stored in the storage 102 to the plurality of processors 100.
구체적으로 제어부(103)는 제1 내지 제3 태스크 그룹을 다수의 프로세서에 초기 배치하고, 초기 배치된 결과로 제1 DII(Data Input Interval)를 계산하고, 초기 배치된 제2 태스크 그룹의 태스크 중에서 처리완료시간이 최대인 태스크의 처리완료시간은 변화시키지 않으면서 초기 배치된 프로세서 내에서 각 태스크의 처리완료시간이 최대가 되도록 제2 태스크 그룹의 각 태스크를 제1 배치하고, 제1 배치된 제2 태스크 그룹 및 제3 태스크 그룹의 태스크를 r(r≥2, r은 자연수)개의 서브 그룹으로 동일하게 그룹핑하고, 제2 태스크 그룹의 모든 서브 그룹에 대해 슬랙(slack)이 최대가 되도록 각 서브 그룹에 속한 태스크를 다수의 프로세서에 제2 배치하되, 제2 태스크 그룹의 각 서브 그룹이 제2 배치될 때마다 제3 태스크 그룹의 대응되는 서브 그룹을 동일하게 제2 배치하고, 제2 배치된 결과로 제2 DII를 계산하고, 계산된 제2 DII가 상기 계산된 제1 DII보다 작을 경우 제2 배치된 제2 태스크 그룹과 동일하게 제1 내지 제3 태스크 그룹을 다수의 프로세서에 초기 배치한 후 제1 및 제2 배치를 반복하고, 계산된 제2 DII가 계산된 제1 DII보다 크거나 같을 경우 제2 배치된 제2 태스크 그룹과 동일하도록 반복적으로 제공되는 태스크 그룹(101)을 다수의 프로세서(100)에 할당할 수 있다.In detail, the controller 103 may initially arrange the first to third task groups in a plurality of processors, calculate a first data input interval (DII) as a result of the initial arrangement, and among the tasks of the second task group that are initially arranged. Each task of the second task group is first disposed to maximize the processing completion time of each task in the initially deployed processor without changing the processing completion time of the task having the maximum processing completion time, and the first arranged first Group the tasks of the 2 task group and the third task group equally into r (r≥2, r is a natural number) subgroups, and each sub group so that the slack is maximum for all subgroups of the second task group. Secondly placing tasks belonging to the group to a plurality of processors, each time corresponding to each subgroup of the second task group; Calculate the second DII based on the second arranged result, and if the calculated second DII is less than the calculated first DII, the first to third task groups may be the same as the second arranged second task group. A task group repeatedly provided to be identical to the second deployed second task group if the calculated second DII is greater than or equal to the calculated first DII, after the initial placement in the processor 101 may be allocated to a plurality of processors 100.
기타 상세한 사항에 대해서는 전술한 본 발명의 일 실시예에 따른 파이프라인 멀티 코어 시스템의 태스크 할당 방법을 통해 당업자가 충분히 유추 가능한바, 자세한 설명을 생략한다.Other details can be inferred by those skilled in the art through the task allocation method of the pipeline multi-core system according to an embodiment of the present invention as described above, and thus a detailed description thereof will be omitted.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.Although embodiments of the present invention have been described above with reference to the accompanying drawings, those skilled in the art to which the present invention pertains may implement the present invention in other specific forms without changing the technical spirit or essential features thereof. I can understand that. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive.
본 발명은 멀티 코어 시스템을 이용하는 전자 산업에 이용 가능하다. 그러나 이에 제한되는 것은 아니다.The present invention is applicable to the electronics industry using a multi-core system. However, it is not limited thereto.

Claims (13)

  1. 제1 내지 제3 태스크 그룹을 다수의 프로세서에 초기 배치하고,Initially deploying the first to third task groups to multiple processors,
    상기 제2 태스크 그룹 및 상기 제3 태스크 그룹의 태스크를 r(r≥2, r은 자연수)개의 서브 그룹으로 그룹핑하고, 상기 제2 태스크 그룹의 모든 서브 그룹에 대해 슬랙(slack)이 최대가 되도록 각 서브 그룹에 속한 태스크를 상기 다수의 프로세서에 제2 배치하되, 상기 제2 태스크 그룹의 각 서브 그룹이 상기 제2 배치될 때마다 상기 제3 태스크 그룹의 대응되는 서브 그룹을 동일하게 제2 배치하고,Group the tasks of the second task group and the third task group into r (r≥2, r is a natural number) subgroups, so that slack is maximum for all subgroups of the second task group. Secondly, a task belonging to each subgroup is arranged in the plurality of processors, and each corresponding subgroup of the second task group is identically arranged in a second subgroup of the third task group whenever each subgroup of the second task group is disposed in the second. and,
    상기 제2 배치된 제2 태스크 그룹과 동일하도록 반복적으로 제공되는 태스크 그룹을 상기 다수의 프로세서에 할당하는 것을 포함하는 파이프라인 멀티 코어 시스템의 태스크 할당 방법.And allocating a task group repeatedly provided to be identical to the second deployed second task group to the plurality of processors.
  2. 제 1항에 있어서,The method of claim 1,
    상기 초기 배치 후, 상기 초기 배치된 상기 제2 태스크 그룹의 태스크 중에서 처리완료시간이 최대인 태스크의 처리완료시간은 변화시키지 않으면서 초기 배치된 프로세서 내에서 각 태스크의 처리완료시간이 최대가 되도록 상기 제2 태스크 그룹의 각 태스크를 제1 배치하는 것을 더 포함하는 파이프라인 멀티 코어 시스템의 태스크 할당 방법.After the initial arrangement, the processing completion time of each task in the initially arranged processor is maximized without changing the processing completion time of the task having the maximum processing completion time among the tasks of the second task group which is initially arranged. And disposing each task of the second task group first.
  3. 제 2항에 있어서,The method of claim 2,
    상기 초기 배치 후 상기 초기 배치된 결과로 제1 DII(Data Input Interval)를 계산하고,Calculate a first data input interval (DII) as a result of the initial arrangement after the initial arrangement,
    상기 제2 배치 후 상기 제2 배치된 결과로 제2 DII를 계산하고,Calculate a second DII as the result of the second placement after the second placement,
    상기 계산된 제2 DII가 상기 계산된 제1 DII보다 작을 경우 상기 제2 배치된 제2 태스크 그룹과 동일하게 상기 제1 내지 제3 태스크 그룹을 상기 다수의 프로세서에 초기 배치한 후 상기 제1 및 제2 배치를 반복하고, 상기 계산된 제2 DII가 상기 계산된 제1 DII보다 크거나 같을 경우 상기 제2 배치된 제2 태스크 그룹과 동일하도록 상기 반복적으로 제공되는 태스크 그룹을 상기 다수의 프로세서에 할당하는 것을 더 포함하는 파이프라인 멀티 코어 시스템의 태스크 할당 방법.When the calculated second DII is smaller than the calculated first DII, the first to third task groups are initially disposed in the plurality of processors in the same manner as the second arranged second task group, and then the first and second DIIs. Repeating the second batch, and if the calculated second DII is greater than or equal to the calculated first DII, repeating the provided task group to the plurality of processors so as to be equal to the second deployed second task group. The task assignment method of the pipeline multi-core system further comprising the assignment.
  4. 제 1항에 있어서,The method of claim 1,
    상기 제1 내지 제3 태스크 그룹은 각각 다수의 태스크를 포함하고,The first to third task groups each include a plurality of tasks,
    상기 다수의 태스크는 각 태스크가 서로 다른 태스크인 파이프라인 멀티 코어 시스템의 태스크 할당 방법.The plurality of tasks is a task assignment method of a pipeline multi-core system, each task is a different task.
  5. 제 1항에 있어서,The method of claim 1,
    상기 제1 내지 제3 태스크 그룹은 서로 동일한 태스크 그룹인 파이프라인 멀티 코어 시스템의 태스크 할당 방법.And the first to third task groups are the same task group.
  6. 제 1항에 있어서,The method of claim 1,
    상기 제1 내지 제3 태스크 그룹을 상기 다수의 프로세서에 초기 배치하는 것은 상기 제1 태스크 그룹에 속한 각 태스크의 처리완료시간이 최소가 되도록 상기 제1 태스크 그룹에 속한 태스크를 상기 다수의 프로세서에 초기 배치하고, 상기 제2 및 제3 태스크 그룹에 속한 태스크를 상기 제1 태스크 그룹에 속한 태스크와 동일하도록 상기 다수의 프로세서에 배치하는 것을 포함하는 파이프라인 멀티 코어 시스템의 태스크 할당 방법.Initially disposing the first to third task groups to the plurality of processors initializes tasks belonging to the first task group to the plurality of processors such that processing completion time of each task belonging to the first task group is minimal. And arranging a task belonging to the second and third task groups to the plurality of processors to be identical to a task belonging to the first task group.
  7. 제 1항에 있어서,The method of claim 1,
    상기 슬랙이 최대가 되도록 각 서브 그룹에 속한 태스크를 제2 배치하는 것은 상기 각 서브 그룹별로 천장(ceiling) 및 바닥(floor)으로 이루어진 서브 그룹존을 설정하고, 디펜던시, 데이터 이전시간, 및 처리시간을 반영하여 상기 각 서브 그룹존 내에서 상기 각 서브 그룹에 속한 태스크가 상기 다수의 프로세서에 배치되어 가장 빨리 처리될 수 있는 모든 경우 중 슬랙이 최대가 되는 경우대로 제2 배치하는 것을 포함하는 파이프라인 멀티 코어 시스템의 태스크 할당 방법.Arranging a task belonging to each subgroup so that the slack is maximum sets a subgroup zone consisting of a ceiling and a floor for each subgroup, the dependency, the data transfer time, and A second arrangement in which the task belonging to each subgroup in each subgroup zone is disposed in the plurality of processors in the sub-group zone reflecting the processing time, in which case the slack becomes the maximum among all the cases that can be processed fastest. How tasks are assigned in pipeline multicore systems.
  8. 제 1항에 있어서,The method of claim 1,
    상기 제1 배치된 제2 태스크 그룹 및 상기 제3 태스크 그룹의 태스크를 r개의 서브 그룹으로 동일하게 그룹핑하는 것은 상기 제1 배치된 제2 태스크 그룹 및 상기 제3 태스크 그룹의 태스크를 각 태스크의 처리시작시간이 빠른 순서대로 그룹핑하는 것을 포함하는 파이프라인 멀티 코어 시스템의 태스크 할당 방법.Grouping the tasks of the first and second task groups and the third task group into r subgroups equally processes the tasks of the first and second task groups and the third task group for each task. Task assignment method for pipelined multicore systems, including groupings in ascending order of start time.
  9. 제 1항에 있어서,The method of claim 1,
    상기 각 서브 그룹에 속한 태스크의 수는 서로 동일한 파이프라인 멀티 코어 시스템의 태스크 할당 방법.The task allocation method of the pipeline multi-core system with the same number of tasks belonging to each subgroup.
  10. 다수의 프로세서;A plurality of processors;
    다수의 태스크를 포함하는 다수의 태스크 그룹이 저장된 저장부; 및A storage unit for storing a plurality of task groups including a plurality of tasks; And
    상기 저장부에 저장된 상기 다수의 태스크 그룹을 반복적으로 상기 다수의 프로세서에 할당하는 제어부를 포함하되,And a controller for repeatedly allocating the plurality of task groups stored in the storage to the plurality of processors.
    상기 다수의 태스크 그룹은 제1 내지 제3 태스크 그룹을 포함하고,The plurality of task groups includes first to third task groups,
    상기 제어부는 상기 제1 내지 제3 태스크 그룹을 상기 다수의 프로세서에 초기 배치하고, 상기 제2 태스크 그룹 및 상기 제3 태스크 그룹의 태스크를 r(r≥2, r은 자연수)개의 서브 그룹으로 그룹핑하고, 상기 제2 태스크 그룹의 모든 서브 그룹에 대해 슬랙(slack)이 최대가 되도록 각 서브 그룹에 속한 태스크를 상기 다수의 프로세서에 제2 배치하되, 상기 제2 태스크 그룹의 각 서브 그룹이 상기 제2 배치될 때마다 상기 제3 태스크 그룹의 대응되는 서브 그룹을 동일하게 제2 배치하고, 상기 제2 배치된 제2 태스크 그룹과 동일하도록 상기 반복적으로 제공되는 태스크 그룹을 상기 다수의 프로세서에 할당하는 파이프라인 멀티 코어 시스템.The controller initially arranges the first to third task groups in the plurality of processors, and groups the tasks of the second task group and the third task group into r subgroups (r ≧ 2, r is a natural number). In addition, a second task is placed in the plurality of processors so that a slack is maximized for all subgroups of the second task group in the plurality of processors, wherein each subgroup of the second task group is the first group. Secondly arranging corresponding subgroups of the third task group equally every time they are deployed, and allocating the repeatedly provided task groups to the plurality of processors to be identical to the second deployed second task group; Pipeline multi-core system.
  11. 제 10항에 있어서,The method of claim 10,
    상기 제어부는 상기 초기 배치 후 상기 초기 배치된 상기 제2 태스크 그룹의 태스크 중에서 처리완료시간이 최대인 태스크의 처리완료시간은 변화시키지 않으면서 초기 배치된 프로세서 내에서 각 태스크의 처리완료시간이 최대가 되도록 상기 제2 태스크 그룹의 각 태스크를 제1 배치하는 것을 더 포함하는 파이프라인 멀티 코어 시스템.The controller is configured to maximize the processing completion time of each task in the initially arranged processor without changing the processing completion time of the task having the maximum processing completion time among the tasks of the second task group that is initially arranged after the initial arrangement. And further disposing each task of the second task group to a first position.
  12. 제 11항에 있어서,The method of claim 11,
    상기 제어부는 상기 초기 배치 후 상기 초기 배치된 결과로 제1 DII(Data Input Interval)를 계산하고,The controller calculates a first data input interval (DII) as a result of the initial arrangement after the initial arrangement,
    상기 제2 배치 후 상기 제2 배치된 결과로 제2 DII를 계산하고,Calculate a second DII as the result of the second placement after the second placement,
    상기 계산된 제2 DII가 상기 계산된 제1 DII보다 작을 경우 상기 제2 배치된 제2 태스크 그룹과 동일하게 상기 제1 내지 제3 태스크 그룹을 상기 다수의 프로세서에 초기 배치한 후 상기 제1 및 제2 배치를 반복하고, 상기 계산된 제2 DII가 상기 계산된 제1 DII보다 크거나 같을 경우 상기 제2 배치된 제2 태스크 그룹과 동일하도록 상기 반복적으로 제공되는 태스크 그룹을 상기 다수의 프로세서에 할당하는 것을 더 포함하는 파이프라인 멀티 코어 시스템.When the calculated second DII is smaller than the calculated first DII, the first to third task groups are initially disposed in the plurality of processors in the same manner as the second arranged second task group, and then the first and second DIIs. Repeating the second batch, and if the calculated second DII is greater than or equal to the calculated first DII, repeating the provided task group to the plurality of processors so as to be equal to the second deployed second task group. Pipeline multi-core system further comprising allocating.
  13. 제 10항에 있어서,The method of claim 10,
    상기 제1 내지 제3 태스크 그룹은 서로 동일한 태스크 그룹인 파이프라인 멀티 코어 시스템.And the first to third task groups are the same task group.
PCT/KR2009/007102 2009-11-25 2009-12-01 Pipeline multi-core system and method for effective task allocation in said pipeline multi-core system WO2011065614A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020090114755A KR101086905B1 (en) 2009-11-25 2009-11-25 Pipeline multi-core system and method for efficient task allocation in the system
KR10-2009-0114755 2009-11-25

Publications (1)

Publication Number Publication Date
WO2011065614A1 true WO2011065614A1 (en) 2011-06-03

Family

ID=44066716

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2009/007102 WO2011065614A1 (en) 2009-11-25 2009-12-01 Pipeline multi-core system and method for effective task allocation in said pipeline multi-core system

Country Status (2)

Country Link
KR (1) KR101086905B1 (en)
WO (1) WO2011065614A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377032A (en) * 2012-04-11 2013-10-30 浙江大学 Fine granularity scientific computation parallel processing device on basis of heterogenous multi-core chip

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418953A (en) * 1993-04-12 1995-05-23 Loral/Rohm Mil-Spec Corp. Method for automated deployment of a software program onto a multi-processor architecture
KR20020022049A (en) * 1999-05-14 2002-03-23 추후보정 Task scheduling and message passing
US20030101084A1 (en) * 2001-11-19 2003-05-29 Otero Perez Clara Maria Method and system for allocating a budget surplus to a task
US20060168571A1 (en) * 2005-01-27 2006-07-27 International Business Machines Corporation System and method for optimized task scheduling in a heterogeneous data processing system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100834408B1 (en) 2006-09-14 2008-06-04 한국전자통신연구원 The system and the method of task assignment in the distributed processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418953A (en) * 1993-04-12 1995-05-23 Loral/Rohm Mil-Spec Corp. Method for automated deployment of a software program onto a multi-processor architecture
KR20020022049A (en) * 1999-05-14 2002-03-23 추후보정 Task scheduling and message passing
US20030101084A1 (en) * 2001-11-19 2003-05-29 Otero Perez Clara Maria Method and system for allocating a budget surplus to a task
US20060168571A1 (en) * 2005-01-27 2006-07-27 International Business Machines Corporation System and method for optimized task scheduling in a heterogeneous data processing system

Also Published As

Publication number Publication date
KR101086905B1 (en) 2011-11-24
KR20110058092A (en) 2011-06-01

Similar Documents

Publication Publication Date Title
AU687381B2 (en) Queue managing system and method
Enslow Jr Multiprocessor organization—A survey
WO2012044015A2 (en) Method and apparatus for dynamic resource allocation of processing units
TWI541725B (en) Resource management in a multicore architecture
JP4832470B2 (en) Integrated post-exposure bake truck
WO2012050275A1 (en) Method and system for setting up sequential ids for multiple slaves of a battery pack
CN1038712A (en) The operating system that is used for the multi-job operation environment
EP1237092B1 (en) Multi-processor system apparatus with a multiple stage connection arrangement
CN100476741C (en) Processor array and processing method used for the same
WO2016064158A1 (en) Reconfigurable processor and operation method therefor
Dennis et al. A computer architecture for highly parallel signal processing
WO2011065614A1 (en) Pipeline multi-core system and method for effective task allocation in said pipeline multi-core system
SE451219B (en) DATA DEVICE MADE FOR THE EXECUTION OF PROGRAMS IN THE FORM OF SUCCESS, OR PARALLEL EXECUTION
Chou et al. On the asymptotic optimality of a simple on-line algorithm for the stochastic single-machine weighted completion time problem and its extensions
Sung et al. Minimizing maximum completion time in a two-batch-processing-machine flowshop with dynamic arrivals allowed
US10001773B2 (en) Optimal one-wafer scheduling of single-arm multi-cluster tools with tree-like topology
WO2015130093A1 (en) Method and apparatus for preventing bank conflict in memory
Narahari et al. Matching and scheduling in a generalized optimal selection theory
WO2023101368A1 (en) Multi-robot task processing method and apparatus for assigning tasks to robots
WO2012118268A2 (en) Multi-thread processing system using a multi-virtual machine, and method therefor
WO2019203573A1 (en) Method and apparatus for managing kernel services in multi-core system
US6049818A (en) Signal processing device
WO2015080531A1 (en) Method and apparatus for controlling reconfigurable processor
Huang et al. An efficient communication scheduling method for the processor mapping technique applied data redistribution
WO2019221569A1 (en) Parallel processing device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09851711

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09851711

Country of ref document: EP

Kind code of ref document: A1