JP2003029988A - Task scheduling system and method, program - Google Patents

Task scheduling system and method, program

Info

Publication number
JP2003029988A
JP2003029988A JP2001213599A JP2001213599A JP2003029988A JP 2003029988 A JP2003029988 A JP 2003029988A JP 2001213599 A JP2001213599 A JP 2001213599A JP 2001213599 A JP2001213599 A JP 2001213599A JP 2003029988 A JP2003029988 A JP 2003029988A
Authority
JP
Japan
Prior art keywords
task
execution time
tasks
processor
execution
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2001213599A
Other languages
Japanese (ja)
Other versions
JP4206653B2 (en
Inventor
Yasuhiro Yamazaki
康広 山崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2001213599A priority Critical patent/JP4206653B2/en
Publication of JP2003029988A publication Critical patent/JP2003029988A/en
Application granted granted Critical
Publication of JP4206653B2 publication Critical patent/JP4206653B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To improve processor using efficiency by shortening standby time and data transfer standby time by the dependency relation of each task. SOLUTION: A task arranging means 22 performs scheduling on the basis of a task graph 31 prepared by a task graph generation part 21. The task arranging means 22 shortens the interval between the leading task and final task of each processor by performing forward direction task scheduling when the highest priority task of each processor whose execution is specified in the processor whose design is started by a trigger generator 221 for the design start of each processor is already arranged and performing opposite direction task scheduling when it is not arranged. Further, at the time of task arrangement, the settable range of a transfer task is described in bus using information 34, and in the case that the data transfer standby time is generated, the data transfer standby time is shortened by rearranging the already arranged task by a task rearranging means 23.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、複数の演算処理装
置(プロセッサ)を備えるマルチプロセッサシステムに
おけるマルチタスク処理のタスクのスケジューリングを
タスクの実行前に行う静的なタスクスケジューリングシ
ステムおよび方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a static task scheduling system and method for scheduling a task of multitask processing in a multiprocessor system including a plurality of arithmetic processing units (processors) before executing the task.

【0002】[0002]

【従来の技術】従来、複数の演算処理装置を備えるマル
チタスクのマルチプロセッサシステムでは、各プロセッ
サで実行されるタスクのタスクスケジューリングを行っ
て各タスクの実行時刻を決定してから、各タスクを実行
している静的なタスクスケジューリングシステムが用い
られることがある。特開平4−253228号公報に
は、静的なタスクスケジューリングを行うタスクスケジ
ューリングシステムが記載されている。図11は、その
タスクスケジューリングシステムの構成を示すブロック
図である。図11に示すように、従来のタスクスケジュ
ーリングシステムは、プロセッサ指定タスク待ち行列5
13と、実行可能タスク待ち行列512と、タスク登録
手段511と、タスク選択手段514とから構成されて
いる。
2. Description of the Related Art Conventionally, in a multi-tasking multi-processor system having a plurality of arithmetic processing units, task scheduling of tasks executed by each processor is performed to determine the execution time of each task, and then each task is executed. Sometimes a static task scheduling system is used. Japanese Patent Laid-Open No. 4-253228 describes a task scheduling system that performs static task scheduling. FIG. 11 is a block diagram showing the configuration of the task scheduling system. As shown in FIG. 11, the conventional task scheduling system uses the processor-specified task queue 5
13, the executable task queue 512, the task registration means 511, and the task selection means 514.

【0003】プロセッサ指定タスク待ち行列513に
は、プロセッサが指定されたタスクが登録される。実行
可能タスク待ち行列512には実行可能タスクが登録さ
れる。タスク登録手段511は、実行プロセッサの指定
の有無によって、プロセッサ指定タスク待ち行列513
か実行可能タスク待ち行列512かに振り分けてタスク
を登録する。タスク選択手段514は、実行可能タスク
待ち行列512かプロセッサ指定タスク待ち行列513
かのいずれか一方の待ち行列から最も優先度の高いタス
クを選択する。
A task whose processor is designated is registered in the processor designated task queue 513. Executable tasks are registered in the executable task queue 512. The task registration unit 511 determines whether the execution processor is designated or not and the processor designation task queue 513.
The task is distributed to the executable task queue 512 and the task is registered. The task selection means 514 is provided with the executable task queue 512 or the processor-specified task queue 513.
Select the task with the highest priority from either of these queues.

【0004】このタスクスケジューリングシステムは、
各タスクのブロック構造や、真データ依存、反依存、出
力依存などの依存関係を示すタスクグラフ61に基づい
て、タスクスケジューリングを行う。タスク登録手段5
11は、このタスクグラフ61を参照し、実行可能なタ
スクのプロセッサの指定の有無を調べ、指定がある場合
には、そのタスクをプロセッサ指定タスク待ち行列51
3に登録し、指定がない場合には、そのタスクを実行可
能タスク待ち行列512に登録する。タスク選択手段5
14は、プロセッサ指定タスク待ち行列513にタスク
が存在する場合には、その中から最も高い優先度を持つ
タスクを選択し、タスクが存在しない場合には、実行可
能タスク待ち行列512中から最も高い優先度を有する
タスクを選択することによってタスクスケジューリング
を行う。
This task scheduling system is
Task scheduling is performed based on the block structure of each task and a task graph 61 showing dependency relationships such as true data dependency, anti-dependency, and output dependency. Task registration means 5
The reference numeral 11 refers to this task graph 61 to check whether or not a processor of an executable task is designated, and if there is a designation, the task is designated as a processor designated task queue 51.
3 is registered, and if not specified, the task is registered in the executable task queue 512. Task selection means 5
When a task exists in the processor-specified task queue 513, 14 selects the task with the highest priority from among them, and when there is no task, the highest task from the executable task queue 512. Task scheduling is performed by selecting tasks with priorities.

【0005】また、マルチプロセッサシステムでは、一
般的に、各プロセッサ間がバスで接続されており、各タ
スクの中に、バスを使用してデータ転送を行うタスクが
ある場合には、各タスクのバスアクセスの調停を行なう
必要がある。1996年に電気学会情報処理研究会から
発行された資料IP−96−24、Sep.1996に
は、そのようなバスアクセス調停に関する論文「無同期
近細粒度並列処理におけるデータ転送順序最適化」が掲
載されている。この論文に掲載されたデータ転送に関す
るタスクスケジューリングでは、転送タスク毎に基本ブ
ロック終端までの最長パス長に基づいたレベルを算出
し、複数のデータ転送タスクが同時に発生した場合に
は、最もレベルの高いデータ転送タスクを優先してスケ
ジューリングを行い、他のデータ転送タスクをバスが開
放されるまで待機させる。
Further, in a multiprocessor system, generally, each processor is connected by a bus, and if each task includes a task for transferring data using the bus, the task Bus access must be arbitrated. Material IP-96-24, published by the Information Processing Society of Japan in 1996, Sep. In 1996, a paper on such bus access arbitration, "Data transfer order optimization in non-synchronous near fine grain parallel processing", is published. In the task scheduling related to data transfer published in this paper, the level based on the longest path length to the end of the basic block is calculated for each transfer task, and the highest level is obtained when multiple data transfer tasks occur simultaneously. The data transfer task is prioritized for scheduling, and other data transfer tasks are made to wait until the bus is released.

【0006】[0006]

【発明が解決しようとする課題】以上述べたように、従
来のタスクスケジューリングシステムおよび方法は、以
下に示す問題を有する。 (1) 優先度の高いタスクであっても、そのタスクが
プロセッサを指定するタスクとの依存関係があるタスク
である場合には、そのプロセッサを指定するタスクが終
了するまで、そのタスクを実行することができない。し
たがって、そのようなタスクが多い場合には、プロセッ
サの使用効率が低くなってしまう。 (2) 複数のデータ転送タスクが同時に発生した場合
には、最もレベルの高いデータ転送タスクを優先する
が、そのタスクのデータ転送待ち時間のために、プロセ
ッサの使用効率が低くなってしまう場合がある。
As described above, the conventional task scheduling system and method have the following problems. (1) Even if a task with a high priority has a dependency relationship with a task that specifies a processor, the task is executed until the task that specifies the processor ends I can't. Therefore, if there are many such tasks, the utilization efficiency of the processor becomes low. (2) When multiple data transfer tasks occur at the same time, the data transfer task with the highest level is given priority, but the data transfer wait time of the tasks may reduce the efficiency of use of the processor. is there.

【0007】本発明は、プロセッサの使用効率を向上さ
せることができるタスクスケジューリングシステムおよ
び方法を提供することを目的とする。
It is an object of the present invention to provide a task scheduling system and method capable of improving the usage efficiency of a processor.

【0008】[0008]

【課題を解決するための手段】上記課題を解決するため
に、本発明のタスクスケジューリングシステムでは、複
数のプロセッサを備えるマルチプロセッサシステムにお
いて複数のタスクのマルチタスク処理を行う場合に、実
行プロセッサが指定されているタスクを含む前記各タス
クの依存関係を示すタスクグラフに基づいて、前記各タ
スクのタスクスケジューリングを前記各タスクの実行前
に行う静的なタスクスケジューリングシステムにおい
て、設計対象となるプロセッサを決定するトリガ発生器
と、前記設計対象であるプロセッサを実行プロセッサと
するタスクが優先度の高い順に登録される順方向リスト
と、前記設計対象であるプロセッサを実行プロセッサと
するタスクが優先度の低い順に登録される逆方向リスト
と、前記順方向リストと前記逆方向リストとにタスクを
登録するタスク登録手段と、前記順方向リストか前記逆
方向リストかのいずれかのリストを選択し、選択された
リストに基づいて前記各タスクの実行時刻を決定するタ
スク選択手段とを備えることを特徴とする。
In order to solve the above-mentioned problems, in the task scheduling system of the present invention, when performing multitask processing of a plurality of tasks in a multiprocessor system including a plurality of processors, the execution processor is designated. A processor to be designed in a static task scheduling system that performs task scheduling of each task before execution of each task based on a task graph showing the dependency relationship of each task including A trigger generator, a forward list in which tasks having the design target processor as an execution processor are registered in descending order of priority, and a task having the design target processor as execution processor in descending order of priority The backward list to be registered and the forward list And a task registration means for registering a task in the reverse direction list, and either the forward direction list or the reverse direction list is selected, and the execution time of each task is determined based on the selected list. And a task selecting means for performing the task selection.

【0009】本発明のタスクスケジューリングシステム
では、トリガ発生器を設けることによって、プロセッサ
が設計対象に含まれて始めてそのプロセッサを指定する
各タスクの実行時刻を決定するようになっており、順方
向リストと逆方向リストとタスク選択手段とを設けるこ
とによって、各タスクの実行時刻の間隔が空かないよう
に順方向と逆方向のスケジュールを選択して行えるよう
になっているため、各プロセッサの使用効率を向上させ
ることができる。
In the task scheduling system of the present invention, a trigger generator is provided to determine the execution time of each task that specifies the processor only after the processor is included in the design target. By providing a reverse direction list and task selection means, it is possible to select forward and backward schedules so that the execution time intervals of each task are not vacant. Can be improved.

【0010】また、本発明の他のタスクスケジューリン
グシステムでは、前記バスを介してデータ転送を行う転
送タスクの実行時刻と、該実行時刻を変化させても他の
転送タスクの実行時刻が変化しない前記転送タスクの実
行時刻の設定可能範囲とが登録されているバス使用情報
と、前記バス使用情報を参照して、複数の転送タスクの
実行時刻が重複する場合には、前記設定可能範囲の中で
前記各転送タスクの実行時刻を再配置するタスク再配置
手段とをさらに備える。
In another task scheduling system of the present invention, the execution time of a transfer task that transfers data via the bus, and the execution time of another transfer task does not change even if the execution time is changed. By referring to the bus use information in which the settable range of the execution time of the transfer task is registered and the bus use information, when the execution times of a plurality of transfer tasks are overlapped, within the settable range It further comprises task relocation means for relocating the execution time of each transfer task.

【0011】本発明のタスクスケジューリングシステム
では、転送タスクの実行時刻の設定可能範囲をバス使用
情報に記憶しておき、転送タスクで転送待ち時間が生じ
ないように、設定可能範囲中の時刻に転送タスクを再配
置するので、データ転送待ち時間を短くすることができ
るようになるため、各プロセッサの使用効率を向上させ
ることができる。
In the task scheduling system of the present invention, the settable range of the execution time of the transfer task is stored in the bus usage information, and the transfer task is transferred at the time within the settable range so that the transfer wait time does not occur. Since the tasks are rearranged, the data transfer waiting time can be shortened, so that the usage efficiency of each processor can be improved.

【0012】[0012]

【発明の実施の形態】次に、本発明の実施形態のタスク
スケジューリングシステムおよび方法を図面を参照して
詳細に説明する。全図において、同一の符号がつけられ
ている構成要素は、すべて同一のものを示す。
BEST MODE FOR CARRYING OUT THE INVENTION Next, a task scheduling system and method according to an embodiment of the present invention will be described in detail with reference to the drawings. In all the drawings, the components having the same reference numerals indicate the same components.

【0013】(第1の実施形態)まず、本発明の第1の
実施形態のタスクスケジューリングシステムおよび方法
について図面を参照して詳細に説明する。図1は、本実
施形態のタスクスケジューリングシステムが動作する環
境の構成を示すブロック図である。図1に示すように、
本実施形態のタスクスケジューリングシステム8は、3
つのプロセッサPE1〜PE3から成るマルチプロセッ
サシステム100のタスクスケジューリングを行うため
のシステムである。マルチプロセッサシステム100
は、プロセッサの数が3つで、バスの本数が1本となっ
ているが、本発明はこれらの数を限定するものではな
い。PE1〜3は、バス15を介して互いに接続されて
いる。各プロセッサ間や、プロセッサと他の機器との間
のデータ転送は、バス15を介して行われる。タスクス
ケジューリングシステム8は、タスク入力手段1からス
ケジューリング対象のタスクの集合を入力し、スケジュ
ーリングされた各タスクの実行時刻を実行時刻出力手段
4に出力する。
(First Embodiment) First, a task scheduling system and method according to a first embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 is a block diagram showing the configuration of an environment in which the task scheduling system of this embodiment operates. As shown in Figure 1,
The task scheduling system 8 of this embodiment has three
This is a system for performing task scheduling of a multiprocessor system 100 including one processor PE1 to PE3. Multiprocessor system 100
The number of processors is three and the number of buses is one, but the present invention does not limit these numbers. The PEs 1 to 3 are connected to each other via the bus 15. Data transfer between the processors and between the processor and another device is performed via the bus 15. The task scheduling system 8 inputs a set of tasks to be scheduled from the task input means 1 and outputs the execution time of each scheduled task to the execution time output means 4.

【0014】また、タスクスケジューリングシステム8
では、タスクスケジューリングの結果をPE1〜PE3
に送信する必要があるため、タスクスケジューリングシ
ステム8とPE1〜PE3との間は、データ通信が可能
となっている。タスクスケジューリングシステム8とP
E1〜PE3とは、バス結合によって接続されていても
よいし、LAN等の通信回線によって接続されていても
よい。したがって、このタスクスケジューリングシステ
ム8は、パーソナルコンピュータ(以下、PC)によっ
ても実現することができる。タスクスケジューリングシ
ステム8がPCである場合には、各タスクのプログラム
ファイルを記憶するディスクを読み取るディスク読み取
り装置等がタスク入力手段1となり、そのPCのディス
プレイや印刷装置などが実行時刻出力手段4となる。
Further, the task scheduling system 8
Then, the result of task scheduling is PE1 to PE3.
Therefore, data communication is possible between the task scheduling system 8 and PE1 to PE3. Task scheduling system 8 and P
The E1 to PE3 may be connected by a bus connection or may be connected by a communication line such as a LAN. Therefore, the task scheduling system 8 can also be realized by a personal computer (hereinafter, PC). When the task scheduling system 8 is a PC, a disk reading device or the like for reading the disk storing the program files of the respective tasks serves as the task input means 1, and the display or printing device of the PC serves as the execution time output means 4. .

【0015】図2は、本実施形態のタスクスケジューリ
ングシステム8の構成を示すブロック図である。図2に
示すように、タスクスケジューリングシステム8は、デ
ータ処理部2とデータ記憶部3とから構成される。デー
タ処理部2は、プログラム制御により動作し、例えば、
タスクスケジューリングシステム8が前述のようにPC
である場合には、PCのCPUがそのプログラムを実行
することによって動作する。この場合、データ記憶部3
は、PCの磁気ディスク装置等となる。
FIG. 2 is a block diagram showing the configuration of the task scheduling system 8 of this embodiment. As shown in FIG. 2, the task scheduling system 8 includes a data processing unit 2 and a data storage unit 3. The data processing unit 2 operates under program control, and, for example,
As described above, the task scheduling system 8 is a PC
, The CPU of the PC operates by executing the program. In this case, the data storage unit 3
Is a magnetic disk device of a PC or the like.

【0016】データ処理部2は、タスクグラフ生成部2
1と、タスク配置手段22とを備えている。また、デー
タ記憶部3は、タスクグラフ記憶部31と、タスク配置
リスト記憶部32と、バス使用情報記憶部33とを有し
ている。
The data processor 2 is a task graph generator 2
1 and task placement means 22. The data storage unit 3 also includes a task graph storage unit 31, a task arrangement list storage unit 32, and a bus usage information storage unit 33.

【0017】タスクグラフ生成部21は、タスク入力手
段1から入力された各タスクのブロック構造や、真デー
タ依存、反依存、出力依存などのタスク間の依存関係を
調べ、その依存関係に基づいてタスクグラフを作成す
る。タスクグラフ生成部21によって生成されたタスク
グラフは、タスクグラフ記憶部31に記憶される。この
タスクグラフの一例を図3に示す。図3に示すように、
グラフの節は各タスクA〜Pを示す。グラフの各辺の終
点に位置するタスクは、その辺の始点に位置する全ての
タスクの設計が終了しなければ実行することができな
い。なお、各節の()内は、そのタスクの実行プロセッ
サの指定を示す。
The task graph generator 21 examines the block structure of each task input from the task input means 1 and the dependency relationships between tasks such as true data dependency, anti-dependency, and output dependency, and based on the dependency relationships. Create a task graph. The task graph generated by the task graph generation unit 21 is stored in the task graph storage unit 31. An example of this task graph is shown in FIG. As shown in FIG.
The graph section shows each of the tasks A to P. The task located at the end point of each side of the graph cannot be executed unless the design of all tasks located at the start point of the side is completed. In addition, () in each section shows the designation of the execution processor of the task.

【0018】バス使用情報とは、図1に示すマルチプロ
セッサシステム1のバス15の使用状況を示す情報であ
る。プロセッサPE1〜PE3は、実行するタスクが転
送タスクであった場合には、バス15を介してデータ転
送を行う。通常、マルチプロセッサシステムでは、複数
の機器が同時に1本のバスを使用することはできないた
め、転送タスクのスケジューリングを行う際に、このバ
ス15の使用状況を把握しておく必要がある。バス使用
情報は、転送タスクをスケジューリングする際の有益な
情報となる。
The bus usage information is information indicating the usage status of the bus 15 of the multiprocessor system 1 shown in FIG. The processors PE1 to PE3 perform data transfer via the bus 15 when the task to be executed is a transfer task. Normally, in a multiprocessor system, a plurality of devices cannot use a single bus at the same time, so it is necessary to grasp the usage status of the bus 15 when scheduling transfer tasks. The bus usage information is useful information when scheduling transfer tasks.

【0019】タスク配置リスト記憶部32は、配置済み
のタスクの実行時刻や、実行プロセッサ情報などのタス
クのスケジューリング結果、すなわちタスク配置リスト
を記憶しておくためのものである。タスク配置手段22
は、タスクグラフ記憶部31に記録されたタスクグラフ
と、バス使用情報記憶部33に記憶されたバス使用情報
とに基づいて各タスクの実行時刻を決定し、その実行時
刻に基づいてタスク配置リストを作成してタスク配置リ
スト記憶部32に記憶するとともに、各タスクの実行時
刻の決定によって更新されたバスの使用状況をバス使用
情報記憶部33のバス使用情報に反映させる。タスク配
置手段22は、トリガ発生器221と、タスク登録手段
222と、順方向リスト223と、逆方向リスト224
と、タスク選択手段225とを備えている。トリガ発生
器221は、設計対象となるプロセッサを決定する。
The task allocation list storage unit 32 is for storing the execution time of the allocated tasks, the task scheduling result such as the execution processor information, that is, the task allocation list. Task placement means 22
Determines the execution time of each task based on the task graph recorded in the task graph storage unit 31 and the bus usage information stored in the bus usage information storage unit 33, and the task placement list based on the execution time. Is created and stored in the task allocation list storage unit 32, and the bus usage status updated by the determination of the execution time of each task is reflected in the bus usage information in the bus usage information storage unit 33. The task placement unit 22 includes a trigger generator 221, a task registration unit 222, a forward list 223, and a backward list 224.
And task selection means 225. The trigger generator 221 determines a processor to be designed.

【0020】タスク登録手段222は、順方向リスト2
23と逆方向リスト224とに、タスクを登録する。順
方向リスト223は、優先度の高い順に各タスクが記述
されたリストであり、逆方向リスト224は、優先度の
低い順に各タスクが記述されたリストである。タスク選
択手段225は、順方向リスト223か、逆方向リスト
224かのいずれか一方を選択し、選択されたリストに
記述される順に、スケジュール対象となったタスクの実
行時刻を決定する。
The task registration means 222 uses the forward list 2
The task is registered in 23 and the backward list 224. The forward list 223 is a list in which each task is described in descending order of priority, and the backward list 224 is a list in which each task is described in descending order of priority. The task selection means 225 selects either the forward list 223 or the backward list 224, and determines the execution time of the scheduled task in the order described in the selected list.

【0021】次に、本実施形態のタスクスケジューリン
グシステムの動作について説明する。図4は、本実施形
態のタスクスケジューリングシステムの動作を示すフロ
ーチャートである。まず、タスク入力手段1からタスク
集合が供給されると、タスクグラフ生成部21は、前述
のように、タスクグラフを生成してタスクグラフ記憶部
31に記憶するとともに、各タスクの優先度を計算し、
タスクグラフ記憶部31に記憶しておく(ステップA
1)。各タスクの優先度は、順方向の優先度と、逆方向
の優先度との両方を計算しておく。また、各タスクの優
先度は、以下のようにして算出される。
Next, the operation of the task scheduling system of this embodiment will be described. FIG. 4 is a flowchart showing the operation of the task scheduling system of this embodiment. First, when a task set is supplied from the task input means 1, the task graph generation unit 21 generates the task graph and stores it in the task graph storage unit 31 as described above, and calculates the priority of each task. Then
It is stored in the task graph storage unit 31 (step A
1). For the priority of each task, both the forward priority and the backward priority are calculated. The priority of each task is calculated as follows.

【0022】まず、各タスクの順方向の優先度について
は、各タスクから終端のタスクに至るまでのパス長が長
いタスクに高い優先度が与えられる。パス長が同じタス
クが存在する場合には、直接の後続タスク数の多いタス
クが優先される。さらに、各タスクの逆方向の優先度に
ついては、終端のタスクから各タスクに至るまでのパス
長が長いタスクに高い優先度が与えられる。パス長の同
じタスクが存在する場合には、直接の先行タスク数の少
ないタスクが優先される。
First, regarding the forward priority of each task, a task having a long path length from each task to the end task is given a higher priority. If there are tasks with the same path length, the task with the largest number of direct successor tasks is prioritized. Further, regarding the priority of each task in the backward direction, a task having a long path length from the terminal task to each task is given higher priority. When tasks with the same path length exist, the task with the smaller number of direct preceding tasks is prioritized.

【0023】ステップA1終了後、タスク配置手段22
では、まずトリガ発生器221が動作する。トリガ発生
器221は、タスクグラフ記憶部31に記憶されている
タスクグラフに基づいて、設計対象に含めるプロセッサ
を決定する(ステップA2)。ステップA2において、
トリガ発生器221は、まず、使用するプロセッサのう
ち、いずれのタスクにも指定されていないプロセッサを
設計対象に含める。トリガ発生器221は、未設計のタ
スクがプロセッサを指定するタスクのみであって、指定
されているプロセッサが設計対象に含まれていない場合
には、未設計のタスクのうち、順方向の優先度が最も高
いタスクが割り当てられているプロセッサを設計対象に
含める。また、トリガ発生器221は、設計対象プロセ
ッサに指定されているタスクと、設計対象になっていな
いプロセッサに指定されているタスクとの間にデータ転
送が生じたときには、その設計対象になっていないプロ
セッサを設計対象に含める。
After step A1 is completed, the task placement means 22
Then, first, the trigger generator 221 operates. The trigger generator 221 determines a processor to be included in the design target based on the task graph stored in the task graph storage unit 31 (step A2). In step A2,
The trigger generator 221 first includes, out of the processors to be used, a processor that is not designated for any task as a design target. The trigger generator 221 has only a task that specifies a processor as an undesigned task, and when the specified processor is not included in the design targets, the priority of the undesigned task in the forward direction is determined. Include the processor to which the highest task is assigned in the design target. Further, the trigger generator 221 is not a design target when data transfer occurs between a task designated as a design target processor and a task designated as a non-design target processor. Include the processor in the design target.

【0024】ステップA2終了後、タスク配置手段22
は、設計対象となっているプロセッサを対象にし、その
プロセッサが指定されているタスクで順方向の優先度が
最も高いタスクが配置済みであるか否かを判断する(ス
テップA3)。ステップA3において、設計対象になっ
ている全てのプロセッサで順方向の優先度が最も高いタ
スクが配置済みである場合には、タスク登録手段222
によって順方向リスト223を作成し(ステップA
4)、タスク選択手段225によって順方向のスケジュ
ールを行って、そのタスクの実行時刻をタスク配置リス
ト32に登録する(ステップA5)。
After step A2 is completed, the task placement means 22
Determines whether or not the task having the highest forward priority among the tasks for which the processor is designated is targeted (step A3). In step A3, if the task having the highest priority in the forward direction has already been arranged in all the processors to be designed, the task registration means 222
To create a forward list 223 (step A
4) The task selecting unit 225 schedules the task in the forward direction, and the execution time of the task is registered in the task placement list 32 (step A5).

【0025】ステップA4、A5では、タスク登録手段
222によって、先行タスクのスケジューリングが終了
していてスケジューリングの対象、すなわち実行可能に
なっているタスクを算出し、順方向リスト223を作成
する。ただし、設計対象となっていないプロセッサで実
行が指定されているタスクからの先行タスクは未設計で
あってもよい。タスク配置手段22では、このリストに
おいて順方向の優先度が最も高いタスクを取りだし、実
行可能な時刻の最も早い時刻にタスク配置を行い、その
結果をタスク選択手段225によって、タスク配置リス
ト32に登録する。また、タスク選択手段225は、実
行時刻を決定したタスクが、バス15を使用する場合に
は、バス使用情報記憶部33に記憶されるバス使用情報
を参照してバス15を使用する時刻をチェックしてお
く。
In steps A4 and A5, the task registration means 222 calculates the tasks to be scheduled, that is, the tasks that are ready to be executed, and the forward list 223 is created. However, the predecessor task from the task whose execution is designated by the processor that is not the design target may not be designed. The task placement unit 22 takes out the task with the highest forward priority in this list, places the task at the earliest executable time, and registers the result in the task placement list 32 by the task selection unit 225. To do. When the task whose execution time is determined uses the bus 15, the task selecting means 225 refers to the bus usage information stored in the bus usage information storage unit 33 to check the time when the bus 15 is used. I'll do it.

【0026】ステップA3において、設計対象になって
いる全てのプロセッサで順方向の優先度が最も高いタス
クが配置済みでない場合には、タスク登録手段222に
よって逆方向リスト223を作成し(ステップA6)、
タスク選択手段225によって逆方向のスケジュールを
行い、そのタスクの実行時刻をタスク配置リスト32に
登録する(ステップA7)。
In step A3, if the task having the highest priority in the forward direction has not been allocated in all the processors to be designed, the task registration means 222 creates the backward list 223 (step A6). ,
The task selecting means 225 schedules in the reverse direction, and the execution time of the task is registered in the task placement list 32 (step A7).

【0027】ステップA6、A7、すなわち逆方向のタ
スクスケジューリング処理では、タスク登録手段222
によって後続タスクの配置が終了していて、まだ設計さ
れていないタスクについて逆方向リスト224を作成す
る。ただし、設計対象となっていないプロセッサに実行
が指定されているタスクの後続タスクは未設計であって
もよい。また、そのプロセッサで、設計を開始するきっ
かけとなったタスクより逆方向の優先度の低いタスクか
らの後続タスクは未設計でもよいものとする。
In steps A6 and A7, that is, in the backward task scheduling process, the task registration means 222 is used.
Creates a backward list 224 for tasks that have not been designed yet after the placement of subsequent tasks has been completed. However, the subsequent task of the task whose execution is designated for the processor that is not the design target may be undesigned. Further, in the processor, subsequent tasks from a task having a lower priority in the opposite direction than the task that triggers the design may be undesigned.

【0028】図1のタスク配置手段22では、このリス
トにおいて逆方向の優先度が最も低いタスクを取りだ
し、実行可能な時刻のうち、最も遅い時刻にタスクの実
行時刻としてスケジューリングし、タスク選択手段22
5によってそのスケジューリング結果をタスク配置リス
ト32に登録する。また、このとき実行時刻を決定した
タスクがバス15を使用する場合には、バス使用情報記
憶部33に記憶されているバス使用情報を参照してバス
15を使用する時刻をチェックしておく。
The task placement means 22 of FIG. 1 takes out the task having the lowest backward priority in this list and schedules it as the execution time of the task at the latest executable time, and the task selection means 22.
5, the scheduling result is registered in the task allocation list 32. When the task whose execution time is determined uses the bus 15 at this time, the time when the bus 15 is used is checked with reference to the bus usage information stored in the bus usage information storage unit 33.

【0029】ステップA4、A5、ステップA6、A7
の処理、すなわちタスクスケジュール操作を行って、あ
るタスクの配置を終えると、タスク配置手段22は、全
てのタスクのスケジューリングが終了したか否かを調べ
る(ステップA8)。まだ、スケジューリングされてい
ないタスクが存在する場合には、先ほどのタスク配置
で、新たに設計対象に含まれるプロセッサが存在しない
か調べるために、トリガ発生プロセス(ステップA2)
に戻る。ステップA8において、全てのタスクのスケジ
ューリングが終了していたと判断した場合には、スケジ
ューリング結果を実行時刻出力手段4に出力して処理を
終了する。
Steps A4, A5, Steps A6, A7
When the task scheduling operation is performed by carrying out the process (1), that is, the placement of a certain task is completed, the task placement unit 22 checks whether or not the scheduling of all tasks is finished (step A8). If there are still unscheduled tasks, the trigger generation process (step A2) is performed in order to check whether or not there is a processor newly included in the design target in the task allocation.
Return to. When it is determined in step A8 that the scheduling of all the tasks has been completed, the scheduling result is output to the execution time output means 4 and the process is completed.

【0030】本実施形態のタスクスケジューリングシス
テムでは、トリガ発生プロセスを設けて、プロセッサが
設計対象に含まれてから各タスクを配置し、スケジュー
ル状況に応じて順方向と逆方向のスケジュールを適宜行
っていくため、各プロセッサの使用効率を向上させるこ
とができる。
In the task scheduling system of this embodiment, a trigger generation process is provided, each task is arranged after the processor is included in the design target, and the forward and backward schedules are appropriately performed according to the schedule situation. Therefore, the usage efficiency of each processor can be improved.

【0031】次に、図3のタスクグラフによって依存関
係が示される各タスク集合のタスクスケジューリングを
行った場合の本実施形態のタスクスケジューリングシス
テム動作について説明する。このタスクグラフでは、プ
ロセッサPE1〜PE3が指定されており、いずれのタ
スクにも指定されていないプロセッサは存在しないた
め、図3のステップA2の処理に示すように、トリガ発
生器221は、順方向の優先度が最も高いタスクAに割
り当てられているPE1を設計対象に含める。そして、
ステップA4、A5の処理によって、タスクAからタス
クFまで順方向のタスクスケジューリングが行われる。
Next, the operation of the task scheduling system of this embodiment when the task scheduling of each task set whose dependency is shown by the task graph of FIG. 3 is performed will be described. In this task graph, the processors PE1 to PE3 are designated, and there is no processor not designated in any of the tasks. Therefore, as shown in the process of step A2 of FIG. The PE1 assigned to the task A having the highest priority is included in the design target. And
Through the processing of steps A4 and A5, forward task scheduling from task A to task F is performed.

【0032】順方向のタスクスケジューリングでは、各
タスクA〜Fの実行時刻は、最高優先度を有するタスク
Aの配置時刻よりも後の時刻であって、指定プロセッサ
の空いている最も早い時刻とする。タスクがバス15を
使用する転送タスクである場合には、その転送タスクが
バスを使用する時刻をバス使用情報に反映させる。ま
た、そのタスクが、設計対象に含まれていないプロセッ
サを指定するタスクにデータ転送を行うタスクである場
合には、その設計対象になっていないプロセッサを設計
対象に含める。例えば、タスクFは、PE2を指定する
タスクIに対してデータ転送を行うタスクであるため、
本実施形態のタスクスケジューリングシステムは、PE
2を設計対象のプロセッサに含める。これ以後、PE2
を指定するタスクもスケジューリング対象に含まれるよ
うになる。
In the forward task scheduling, the execution time of each of the tasks A to F is later than the allocation time of the task A having the highest priority and is the earliest free time of the designated processor. . If the task is a transfer task that uses the bus 15, the time at which the transfer task uses the bus is reflected in the bus usage information. If the task is a task that transfers data to a task that specifies a processor that is not included in the design target, the processor that is not the design target is included in the design target. For example, since the task F is a task that transfers data to the task I that specifies PE2,
The task scheduling system of this embodiment is a PE
2 is included in the processor to be designed. After this, PE2
The task that specifies is also included in the scheduling target.

【0033】次に、本実施形態のタスクスケジューリン
グシステムは、PE2が設計対象に含まれるきっかけと
なったタスクIの設計を行うが、PE2が指定されてい
る順方向の優先度が高いタスクGが配置済みでないた
め、以後、タスクIよりも優先度が高いタスクを対象に
して、ステップA6、A7の処理によって、優先度の低
いタスクから順に逆方向にタスクスケジューリングを行
う。
Next, the task scheduling system of the present embodiment designs the task I that triggered PE2 to be included in the design target, but the task G with a high priority in the forward direction in which PE2 is designated is designed. Since it has not been arranged, task scheduling having a higher priority than the task I is performed thereafter in the reverse direction in order from the task having a lower priority by the processing of steps A6 and A7.

【0034】この逆方向のタスクスケジュールでは、設
計対象となっているプロセッサが指定されている後続タ
スクや、プロセッサの指定されていない後続タスクの設
計が終了しているタスクのうち、逆方向の優先度が最も
低いタスクを選択する。ただし、プロセッサが設計対象
に含まれる原因となったタスク(例えば、タスクI)よ
り低いCP(クリティカルパス)値を有する後続タスク
は、前述の後続タスクには含めない。タスクの配置時刻
は、タスク配置リストとバス使用情報とを参照して、プ
ロセッサが設計対象に含まれる原因となったタスクの配
置時刻より前の時刻、すなわち配置可能な時刻のうち、
最も遅い時刻とする。図3のタスクグラフでは、タスク
I設計後の逆方向の優先度が最も低いタスクは、タスク
Jであるとすると、タスク選択手段225は、タスクJ
をタスクIの直前に配置する。
In the backward task schedule, the backward priority is given to the succeeding task in which the processor to be designed is designated or the design of the succeeding task in which the processor is not designated is completed. Select the least frequent task. However, a successor task having a CP (critical path) value lower than the task (for example, task I) that caused the processor to be included in the design target is not included in the successor task described above. The task placement time refers to the task placement list and the bus usage information, and the time before the task placement time that caused the processor to be included in the design target, that is, the placeable time,
It is the latest time. In the task graph of FIG. 3, assuming that the task having the lowest backward priority after designing the task I is the task J, the task selecting unit 225 indicates that the task J is the task J.
Is placed immediately before task I.

【0035】タスクGが設計されると、設計対象となっ
ているプロセッサ(PE1、PE2)の順方向の最高優
先度タスクが設計された状態となるため、本実施形態の
タスクスケジューリングシステムでは、再び順方向のタ
スクスケジュールを行う。タスクLの設計後には、トリ
ガ発生器221によりPE3が設計対象に含まれるよう
になり、逆方向のタスクスケジュールが開始される。タ
スクMが設計されると、今度は再び、順方向のタスクス
ケジュールが行われるようになる。
When the task G is designed, the highest priority tasks in the forward direction of the processors (PE1 and PE2) that are the objects of design are in the designed state. Therefore, in the task scheduling system of this embodiment, Schedule tasks in the forward direction. After designing the task L, the PE 3 is included in the design target by the trigger generator 221, and the task schedule in the reverse direction is started. When the task M is designed, the task schedule in the forward direction is again performed.

【0036】本実施形態のタスクスケジューリングシス
テムのスケジュール結果を図5に示す。図5(a)は、
本実施形態のタスクスケジューリングシステムのスケジ
ューリング結果を示し、図5(b)は、従来のタスクス
ケジューリングシステムのスケジューリング結果を示
す。図5に示すように、各プロセッサでは、先頭タスク
が実行される時間と最後のタスクが実行される時間との
間には、タスクが実行されていない時間がないのがわか
る。
The schedule result of the task scheduling system of this embodiment is shown in FIG. Figure 5 (a) shows
FIG. 5B shows the scheduling result of the task scheduling system of this embodiment, and FIG. 5B shows the scheduling result of the conventional task scheduling system. As shown in FIG. 5, in each processor, there is no time during which no task is executed between the time when the first task is executed and the time when the last task is executed.

【0037】また、本実施形態のタスクスケジューリン
グシステムでは、タスク選択手段225は、バス15を
用いてデータを転送する転送タスクについては、バス使
用情報記憶部33に記憶されたバス使用情報を参照し
て、タスクの実行時刻を決定する。まず、プロセッサP
E1を指定する各タスクのタスク配置リストが、図6
(a)に示すようになっており、その時のバス使用情報
が図6(b)に示すようになっているとして、転送タス
クであるタスク4をスケジューリングする場合を考え
る。タスク4を時刻4に配置することを決定した後、タ
スク選択手段225は、タスク4を時刻4に配置した場
合に、バスの使用が先に配置された他のタスクと衝突す
るか否かをチェックする。図6(b)に示すように、時
刻4においては、タスクBがバスを使用するため、タス
ク4を時刻4に配置することができない。そこで、本実
施形態のタスクスケジューリングシステムでは、時刻4
以降の時刻のうち、バス15が他のタスクに使用されて
いない時刻である時刻6にタスク4を配置する。
Further, in the task scheduling system of this embodiment, the task selecting means 225 refers to the bus usage information stored in the bus usage information storage unit 33 for the transfer task for transferring the data using the bus 15. The task execution time. First, the processor P
The task allocation list of each task that specifies E1 is shown in FIG.
It is assumed that the bus usage information at that time is as shown in FIG. 6B, and the case where the task 4 which is the transfer task is scheduled will be considered. After deciding to place the task 4 at the time 4, when the task 4 is arranged at the time 4, the task selecting means 225 determines whether or not the use of the bus conflicts with another task placed earlier. To check. As shown in FIG. 6B, at time 4, since task B uses the bus, task 4 cannot be placed at time 4. Therefore, in the task scheduling system of this embodiment, the time 4
Among the subsequent times, the task 4 is arranged at the time 6 when the bus 15 is not used by another task.

【0038】本実施形態のタスクスケジューリングシス
テムを用いることによって、各プロセッサの使用効率が
上がると、タスクの処理コストが低減され、周期タスク
の高速処理が可能となる。図3のタスクグラフに示され
る各タスクの周期処理を行う場合、従来のタスクスケジ
ューリングシステムでは、図5(b)に示すように、先
頭タスクを実行してから最終タスクを実行するまでの間
に、各プロセッサにおいて、タスクを実行していない時
間が存在する。そのため、例えばプロセッサPE3で
は、全タスクを実行するのに11サイクルを要する。こ
れに対し、本実施形態のタスクスケジューリングシステ
ムでは、図5(a)に示すように、各プロセッサ毎の実
行時間は6サイクルとなる。プロセッサの使用効率を、
各プロセッサにおける先頭タスクの開始時刻から最後の
タスクの終了時刻までの時間に対する、プロセッサが実
際にタスクを実行している時間の割合であるとすると、
図5(b)の従来のタスクスケジューリングシステムで
は、プロセッサの使用効率は62%であるのに対し、図
5(a)の本実施形態のタスクスケジューリングシステ
ムでは、プロセッサの使用効率は100%となる。
By using the task scheduling system of this embodiment, when the usage efficiency of each processor is increased, the task processing cost is reduced and the periodic task can be processed at high speed. When performing the periodical processing of each task shown in the task graph of FIG. 3, in the conventional task scheduling system, as shown in FIG. , There is a time when each processor is not executing a task. Therefore, for example, the processor PE3 requires 11 cycles to execute all tasks. On the other hand, in the task scheduling system of this embodiment, as shown in FIG. 5A, the execution time for each processor is 6 cycles. The processor usage efficiency,
If the ratio of the time when the processor is actually executing the task to the time from the start time of the first task to the end time of the last task in each processor,
In the conventional task scheduling system of FIG. 5B, the processor usage efficiency is 62%, whereas in the task scheduling system of the present embodiment of FIG. 5A, the processor usage efficiency is 100%. .

【0039】(第2の実施形態)次に、本発明の第2の
実施形態のタスクスケジューリングシステムについて図
面を参照して説明する。図7は、本実施形態のタスクス
ケジューリングシステムの構成を示すブロック図であ
る。図7に示すように、本実施形態のタスクスケジュー
リングシステム9は、データ処理部2の代わりに、デー
タ処理部5を備えている点が、図2のタスクスケジュー
リングシステム8と異なっている。データ処理部5は、
タスクグラフ生成部21と、タスク配置手段24と、タ
スク再配置手段23とを備えている。タスク配置手段2
4は、図2のタスク配置手段22と同様に、タスクグラ
フ記憶部31に記憶されたタスクグラフに基づいて各タ
スクの実行時刻を決定してタスクスケジューリングを行
い、それらのスケジューリング結果をタスク配置リスト
としてタスク配置リスト記憶部32に記憶し、そのスケ
ジューリング結果に合わせてバス使用情報記憶部34の
バス使用情報を更新する。タスク再配置手段23は、タ
スク配置リスト記憶部32に記憶されたタスク配置リス
ト上のタスクの再配置を行う。
(Second Embodiment) Next, a task scheduling system according to a second embodiment of the present invention will be described with reference to the drawings. FIG. 7 is a block diagram showing the configuration of the task scheduling system of this embodiment. As shown in FIG. 7, the task scheduling system 9 of the present embodiment differs from the task scheduling system 8 of FIG. 2 in that a data processing unit 5 is provided instead of the data processing unit 2. The data processing unit 5
The task graph generation unit 21, the task placement unit 24, and the task relocation unit 23 are provided. Task placement means 2
Similar to the task placement means 22 of FIG. 2, 4 designates the execution time of each task based on the task graph stored in the task graph storage unit 31 to perform task scheduling, and the scheduling result is used as the task placement list. Is stored in the task allocation list storage unit 32 as described above, and the bus usage information in the bus usage information storage unit 34 is updated according to the scheduling result. The task rearrangement unit 23 rearranges the tasks on the task arrangement list stored in the task arrangement list storage unit 32.

【0040】また、データ記憶部6は、タスクグラフ記
憶部31と、タスク配置リスト記憶部32と、バス使用
情報記憶部34とを備えている。バス使用情報記憶部3
4は、図2のバス使用情報記憶部33と同様に、転送タ
スクがバスを使用可能な時刻を記憶する。タスク配置手
段24は、前述のタスクスケジューリングを行ってバス
使用情報を更新する際には、そのタスクがバス15の使
用が可能な配置可能時刻をすべて記憶しておく。配置可
能時刻とは、そのタスクの先行タスクのうち、そのタス
クと配置時刻が最も近い先行タスクが配置された時刻
と、そのタスクの後続タスクのうち、そのタスクともっ
とも配置時刻が近い後続タスクが配置された時刻との間
の時間であって、そのタスクが指定するプロセッサを指
定する各タスクの中でクリティカルパス値が等しい設定
可能範囲の中の時刻とする。したがって、タスクの配置
可能時刻を設定するためには、そのタスクの全ての先行
タスクおよび後続タスクの配置時刻が決定されている必
要がある。
The data storage unit 6 includes a task graph storage unit 31, a task arrangement list storage unit 32, and a bus use information storage unit 34. Bus usage information storage unit 3
Similarly to the bus use information storage unit 33 of FIG. 2, 4 stores the time when the transfer task can use the bus. When updating the bus usage information by performing the above-mentioned task scheduling, the task placement means 24 stores all the assignable times when the task can use the bus 15. The allocable time is the time at which the predecessor task that has the closest allocation time to that task among the predecessors of that task is allocated, and the successor task that has the closest allocation time to that task among the successor tasks to that task. It is a time between the allocated time and a time within a settable range in which the critical path values are equal among the tasks that specify the processor specified by the task. Therefore, in order to set the allocable time of the task, it is necessary to determine the allocating times of all the preceding tasks and the subsequent tasks of the task.

【0041】図8は、本実施形態のタスクスケジューリ
ングシステムにおける配置可能時刻を示す図である。タ
スクグラフが図8(a)のようになっているとすると、
タスクBは、タスクAとタスクDとの実行時刻の間に配
置可能である。したがって、図8(b)に示すように、
タスクBの配置可能時刻は時刻2、3となり、図8
(c)、(d)に示すように、タスクBとタスクCと
は、クリティカルパス値が同じであるため、その実行時
刻を入れ替え可能となる。
FIG. 8 is a diagram showing possible allocation times in the task scheduling system of this embodiment. If the task graph is as shown in Figure 8 (a),
Task B can be arranged between the execution times of task A and task D. Therefore, as shown in FIG.
The allocable time of task B is time 2 and 3, and
As shown in (c) and (d), since the task B and the task C have the same critical path value, their execution times can be exchanged.

【0042】タスク再配置手段23は、タスク配置手段
24によって転送タスクが配置されると、そのタスクの
データ転送待ち時間を調べる。本実施形態のタスクスケ
ジューリングシステムでは、順方向のスケジュール時に
バス15が使用できないためにプロセッサが空いている
のに転送タスクを早い時刻に配置できない場合や、逆方
向のスケジュール時にバスが使用できないためにプロセ
ッサが空いているのに転送タスクを遅い時刻に配置でき
ない場合には、データ転送待ちが生じる状態であると判
定する。データ転送待ち時間が生じる場合には、タスク
再配置手段24は、タスク再配置処理を試みる。
When the task allocating means 24 allocates the transfer task, the task rearranging means 23 checks the data transfer waiting time of the task. In the task scheduling system according to the present embodiment, the transfer task cannot be arranged at an early time while the processor is idle because the bus 15 cannot be used during forward scheduling, or the bus cannot be used during backward scheduling. If the transfer task cannot be placed at a later time even though the processor is free, it is determined that a data transfer wait state occurs. When the data transfer waiting time occurs, the task rearrangement unit 24 tries the task rearrangement processing.

【0043】タスク再配置手段24は、転送タスクを転
送待ち時間が生じない時刻に仮配置する。仮配置を行う
時刻は、順方向のスケジュールではプロセッサ空きが生
じない最も早い時刻とし、逆方向のスケジュールではプ
ロセッサ空きが生じない最も遅い時刻とする。
The task rearrangement means 24 temporarily arranges the transfer task at a time when the transfer waiting time does not occur. The time at which the temporary allocation is performed is the earliest time when no processor space is available in the forward schedule, and is the latest time when no processor space is available in the reverse schedule.

【0044】次に、タスク再配置手段24は、バス使用
情報を参照して仮配置を行ったタスクとバス衝突を生じ
るタスクを探し出し、その転送タスクの動かせる範囲を
調べる。バス衝突相手の転送タスク全ての動かせる範囲
が、動かした先でバス衝突を起こさない場合には、バス
衝突相手の転送タスクの実行時刻を動かした先の命令と
入れかえ、仮配置を行っていた転送タスクの実行時刻を
その時刻に確定する。バス衝突相手の転送タスクを他の
時間に移動させることができない場合には、転送タスク
の仮配置時刻を1サイクルずらす。ずらす時刻は、順方
向スケジュールでは、初め仮配置を行っていた時刻より
1サイクル遅い時刻とし、逆方向のスケジュールでは、
初め仮配置を行っていた時刻より1サイクル早い時刻と
する。
Next, the task relocation means 24 refers to the bus use information to find a task that causes a bus collision with the task that has been temporarily placed, and checks the movable range of the transfer task. If the moveable range of all transfer tasks of the bus collision partner does not cause a bus collision at the moved destination, the execution time of the transfer task of the bus collision partner is replaced with the instruction at the moved destination, and the temporary allocation is performed. Confirm the task execution time at that time. When the transfer task of the bus collision partner cannot be moved to another time, the temporary allocation time of the transfer task is shifted by one cycle. In the forward schedule, the time to shift is one cycle later than the time when the temporary placement was initially performed, and in the reverse schedule,
The time is one cycle earlier than the time when the temporary placement was initially performed.

【0045】タスク再配置手段23は、転送タスクの再
配置が終了すると、仮配置を行っていたタスクの実行時
刻と、それとバス衝突を起こす転送タスクの再配置時刻
と、再配置した転送タスクと実行時刻を入れ替えたタス
クの実行時刻とをタスク配置リスト記憶部32に記憶す
るタスク配置リストに反映させ、さらに再配置後の転送
タスクのバス使用時刻をバス使用情報記憶部32に記憶
するバス使用情報に反映させる.図9は、本実施形態の
タスクスケジューリングシステムにおけるタスク再配置
手段23の動作を示すフローチャートである。図9に示
すように、まず、タスク再配置手段23は、タスク配置
手段24によって作成されタスク配置リスト記憶部32
に記憶されたタスク配置リストを参照し、各タスクのう
ち、バス15を使用する転送タスクについて、転送待ち
時間が生じているか否かを判断する(ステップC1)。
転送待ち時間が生じている場合には、タスク再配置手段
23は、その転送タスクを転送待ちが生じない時刻に仮
配置する(ステップC2)。ステップC2後、タスク再
配置手段23は、バス使用情報記憶部34に記憶されて
いるバス使用情報を参照して、ステップC2において仮
配置を行ったタスクとバス衝突を生じるタスクがあるか
どうか検出し、そのタスクがあれば、そのタスクの配置
可能時刻を参照して、そのタスクが再配置可能であるか
否かを検出する(ステップC3)。ステップC3におい
て、バス衝突を生じるタスクが再配置可能でない場合に
は、仮配置したタスクをまた別の時刻に仮配置し(ステ
ップC4)、ステップC3に戻る。
When the relocation of the transfer task is completed, the task relocation means 23 executes the execution time of the task that was temporarily placed, the relocation time of the transfer task that causes a bus collision with it, and the relocated transfer task. The bus use time in which the execution time and the execution time of the task are exchanged is reflected in the task allocation list stored in the task allocation list storage unit 32, and the bus use time of the transfer task after rearrangement is stored in the bus use information storage unit 32. It is reflected in the information. FIG. 9 is a flowchart showing the operation of the task rearrangement unit 23 in the task scheduling system of this embodiment. As shown in FIG. 9, first, the task rearrangement unit 23 is created by the task placement unit 24, and the task placement list storage unit 32 is created.
By referring to the task allocation list stored in (3), it is determined whether or not a transfer waiting time has occurred for a transfer task that uses the bus 15 among the tasks (step C1).
If the transfer waiting time has occurred, the task rearrangement unit 23 temporarily arranges the transfer task at a time when the transfer waiting does not occur (step C2). After step C2, the task rearrangement unit 23 refers to the bus use information stored in the bus use information storage unit 34 and detects whether there is a task that causes a bus collision with the task that was provisionally placed in step C2. If there is such a task, the time at which the task can be arranged is referred to detect whether the task can be rearranged (step C3). If the task causing the bus collision is not relocatable at step C3, the temporarily placed task is temporarily placed at another time (step C4), and the process returns to step C3.

【0046】ステップC3において、バス衝突を生じる
タスクが再配置可能であった場合には、そのタスクの再
配置を行い、ステップC2において行った仮配置を確定
し(ステップC5)、処理を終了する。本実施形態のタ
スクスケジューリングシステムでは、タスク再配置手段
23による再配置終了後、全てのタスクの配置が完了し
ていない場合には、再び、タスク配置手段24によるタ
スクのスケジューリングを行う。
If the task causing the bus collision can be relocated in step C3, the task is relocated, and the temporary placement performed in step C2 is determined (step C5), and the process is terminated. . In the task scheduling system of this embodiment, after the task relocation means 23 completes the relocation, if all the task placements have not been completed, the task placement means 24 again schedules the tasks.

【0047】図10は、本実施形態のタスクスケジュー
リングシステムにおいてバス使用情報記憶部34に記憶
されるバス使用情報の一例を示す図である。転送タスク
は、現在、図10(a)のように配置されており、バス
使用情報は、図10(b)のようになっているとする。
本実施形態のタスクスケジューリングシステムでは、転
送タスクの配置でデータ転送待ち状態が生じた場合に
は、タスクの再配置を試みるが、図10では、タスク再
配置手段23が、タスク4を時刻4(4clk)に仮配
置する場合を示している。タスク再配置手段23は、バ
ス使用情報記憶部34に記憶されているバス使用情報を
参照して、仮配置を行ったタスクとバス衝突を生じるタ
スクを検出し、その転送タスクの配置時刻の移動可能範
囲、すなわち配置可能時刻を調べる。図10では、タス
クBがバス衝突相手となっており、タスクBの配置可能
時刻は、時刻3と時刻4となっている。したがって、本
実施形態のタスクスケジューリングシステムでは、タス
クBは時刻3にも配置可能なため、タスクBの配置時刻
を時刻4から時刻3に入れ替える。この入れ替えによ
り、タスクBはバス15を時刻3で使用することとな
り、タスク4が時刻4にバス15を使用することが可能
となる。しかし、タスクBの配置可能時刻が時刻4以外
に存在しなかった場合には、タスク再配置手段23は、
タスク4の仮配置時刻を時刻5とし、時刻5で上述した
処理を行う。タスク再配置手段23は、バス衝突が生じ
なくなるまで、この動作を繰り返す。
FIG. 10 is a diagram showing an example of bus usage information stored in the bus usage information storage unit 34 in the task scheduling system of this embodiment. It is assumed that the transfer task is currently arranged as shown in FIG. 10A and the bus use information is as shown in FIG. 10B.
In the task scheduling system of this embodiment, when a data transfer waiting state occurs due to the placement of a transfer task, the task relocation is attempted, but in FIG. 10, the task relocation means 23 assigns the task 4 to the time 4 ( 4 clk) is temporarily arranged. The task relocation unit 23 refers to the bus usage information stored in the bus usage information storage unit 34, detects a task that causes a bus collision with a task that has performed temporary allocation, and moves the allocation time of the transfer task. Check the possible range, that is, the possible arrangement time. In FIG. 10, the task B is the opponent of the bus collision, and the allocable time of the task B is the time 3 and the time 4. Therefore, in the task scheduling system of the present embodiment, the task B can be arranged also at the time 3, so the arrangement time of the task B is changed from the time 4 to the time 3. By this replacement, the task B uses the bus 15 at time 3, and the task 4 can use the bus 15 at time 4. However, when the allocable time of the task B does not exist other than the time 4, the task relocation means 23
The temporary placement time of task 4 is set to time 5, and the above-described processing is performed at time 5. The task relocation means 23 repeats this operation until the bus collision does not occur.

【0048】タスク再配置手段23は、タスクの配置が
可能になった時点で、転送タスクの設計を行い、仮配置
を行っていた転送タスクの実行時刻と、再配置されたタ
スクの実行時刻と、再配置したタスクと実行順序を入れ
替えたタスクの実行時刻とを、タスク配置リスト記憶部
32に記憶されているタスク配置リストに反映する。さ
らに、タスク再配置手段23は、再配置後の転送タスク
のバス使用時刻をバス使用情報記憶部34に記憶されて
いるバス使用情報に反映させる。上述のような、タスク
入れ替えを行うことによって、時刻6に配置されていた
タスク4を時刻4に配置することが可能となり、データ
転送待ち時間を短くすることができる。
The task relocation means 23, at the time when the task can be placed, designs the transfer task and indicates the execution time of the transfer task which was temporarily placed and the execution time of the relocated task. , And the execution time of the rearranged task and the task whose execution order is exchanged are reflected in the task allocation list stored in the task allocation list storage unit 32. Further, the task relocation unit 23 reflects the bus usage time of the transfer task after the relocation on the bus usage information stored in the bus usage information storage unit 34. By performing the task replacement as described above, the task 4 arranged at the time 6 can be arranged at the time 4, and the data transfer waiting time can be shortened.

【0049】また、バス衝突相手のタスクの配置可能時
刻が他になかった場合でも、初めに配置していた時刻に
タスクを配置することが可能である。このため、本実施
形態のタスクスケジューリングシステムでは、タスクの
データ転送待ち時間を、第1の実施形態のタスクスケジ
ューリングシステムと同じか、それよりも短くすること
が可能となる。
Further, even when there is no other possible allocation time of the task of the bus collision partner, the task can be allocated at the time when it was initially allocated. Therefore, in the task scheduling system of this embodiment, the task data transfer waiting time can be made equal to or shorter than that of the task scheduling system of the first embodiment.

【0050】以上述べたように、本実施形態のタスクス
ケジューリングシステムでは、データ転送タスクを配置
したときに、転送待ち時間が生じた場合には、そのタス
クの再配置を行うことによって、転送待ち時間を低減す
ることができる。
As described above, in the task scheduling system of this embodiment, when a transfer waiting time occurs when a data transfer task is arranged, the task is rearranged to transfer the transfer waiting time. Can be reduced.

【0051】なお、タスクスケジューリングシステム
8、9は、前述のように、コンピュータのメモリおよび
CPU(中央演算装置)によって構成され、上記の各部
の機能を実現するためのプログラムをメモリにロードし
て実行することによりその機能を実現させるものであっ
てもよい。このプログラムは、磁気ディスク、半導体メ
モリ、CD−ROMや、その他のコンピュータ読み取り
可能な記録媒体に記録されているものであってもよい。
As described above, the task scheduling systems 8 and 9 are composed of the memory of the computer and the CPU (central processing unit), and load and execute the programs for realizing the functions of the above-mentioned respective parts in the memory. The function may be realized by doing so. This program may be recorded in a magnetic disk, a semiconductor memory, a CD-ROM, or any other computer-readable recording medium.

【0052】また、本実施形態のタスクスケジューリン
グシステムでは、各タスクの優先度を、クリティカルパ
ス値と、先行タスク数(順方向リスト作成時)、後続タ
スク数(逆方向リスト作成時)を基準として求めた。し
かし、本発明は、これに限定されるものではなく、順方
向リスト作成時と、逆方向リスト作成時とで、まったく
同じ条件でタスクの優先度を求めてもよいし、CP法、
CP/MISF法、CP/DT/MISF法など、他の
方法を用いてタスクの優先度を求めてもよい。
In the task scheduling system of this embodiment, the priority of each task is based on the critical path value, the number of preceding tasks (when creating the forward list), and the number of subsequent tasks (when creating the backward list). I asked. However, the present invention is not limited to this, and the task priority may be obtained under exactly the same conditions when the forward list is created and when the backward list is created.
The task priority may be obtained using another method such as the CP / MISF method or the CP / DT / MISF method.

【0053】[0053]

【発明の効果】以上述べたように、本発明のタスクスケ
ジューリングシステムは、以下に示す効果を有する。 (1) 各プロセッサの設計開始を決定するトリガ発生
プロセスを設け、そのプロセスが実行されるまでそのプ
ロセッサ指定のタスクを配置せず、各プロセッサの最優
先タスクの設計状況によって、順方向と逆方向のタスク
スケジュールを適宜行うため、実行プロセッサが指定さ
れているタスクの待ち状態を少なくして、プロセッサの
使用効率を向上させることができる。 (2) 転送タスクの配置可能時刻をバス使用情報に記
憶しておき、データ転送タスクで待ち状態が生じる場合
にはそのタスクの再配置を行って、データ転送待ち状態
を短くすることができるため、プロセッサの使用効率を
向上させることができる。
As described above, the task scheduling system of the present invention has the following effects. (1) Provide a trigger generation process that determines the start of design of each processor, do not allocate the task specified by that processor until the process is executed, and forward or reverse depending on the design status of the highest priority task of each processor. Since the task schedule of (1) is appropriately performed, the waiting state of the task for which the execution processor is designated can be reduced and the utilization efficiency of the processor can be improved. (2) Since the time when the transfer task can be allocated is stored in the bus usage information, and when a wait state occurs in the data transfer task, the task can be relocated to shorten the data transfer wait state. , The use efficiency of the processor can be improved.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の第1の実施形態のタスクスケジューリ
ングシステムが動作する環境の構成を示すブロック図で
ある。
FIG. 1 is a block diagram showing a configuration of an environment in which a task scheduling system according to a first embodiment of the present invention operates.

【図2】本発明の第1の実施形態のタスクスケジューリ
ングシステムの構成を示すブロック図である。
FIG. 2 is a block diagram showing a configuration of a task scheduling system of the first exemplary embodiment of the present invention.

【図3】タスクグラフの一例を示す図である。FIG. 3 is a diagram showing an example of a task graph.

【図4】本発明の第1の実施形態のタスクスケジューリ
ングシステムの動作を示すフローチャートである。
FIG. 4 is a flowchart showing an operation of the task scheduling system according to the first exemplary embodiment of the present invention.

【図5】本発明の第1の実施形態のタスクスケジューリ
ングシステムのスケジュール結果を示す図である。
FIG. 5 is a diagram showing a schedule result of the task scheduling system according to the first embodiment of this invention.

【図6】本発明の第1の実施形態のタスクスケジューリ
ングシステムにおけるタスク配置リストとバス使用情報
とを示す図である。
FIG. 6 is a diagram showing a task allocation list and bus usage information in the task scheduling system of the first exemplary embodiment of the present invention.

【図7】本発明の第2の実施形態のタスクスケジューリ
ングシステムの構成を示すブロック図である。
FIG. 7 is a block diagram showing a configuration of a task scheduling system according to a second exemplary embodiment of the present invention.

【図8】本発明の第2の実施形態のタスクスケジューリ
ングシステムにおける配置可能時刻を示す図である。
FIG. 8 is a diagram showing possible arrangement times in the task scheduling system of the second exemplary embodiment of the present invention.

【図9】本発明の第2の実施形態のタスクスケジューリ
ングシステムにおけるタスク再配置手段の動作を示すフ
ローチャートである。
FIG. 9 is a flowchart showing an operation of a task rearrangement unit in the task scheduling system according to the second exemplary embodiment of the present invention.

【図10】本発明の第2の実施形態のタスクスケジュー
リングシステムにおいてバス使用情報記憶部に記憶され
るバス使用情報の一例を示す図である。
FIG. 10 is a diagram showing an example of bus usage information stored in a bus usage information storage unit in the task scheduling system of the second exemplary embodiment of the present invention.

【図11】従来のタスクスケジューリングシステムの構
成を示す図である。
FIG. 11 is a diagram showing a configuration of a conventional task scheduling system.

【符号の説明】[Explanation of symbols]

1 タスク入力手段 2、5 データ処理部 3、6 データ記憶部 4 実行時刻出力手段 8、9 タスクスケジューリングシステム 15 バス 21 タスクグラフ生成部 22、24、51 タスク配置手段 23 タスク再配置手段 31 タスクグラフ記憶部 32 タスク配置リスト記憶部 33、34 バス使用情報記憶部 61 タスクグラフ 62 タスク配置リスト 63 バス使用情報 100 マルチプロセッサシステム 221 トリガ発生器 222 タスク登録手段 223 順方向リスト 224 逆方向リスト 225 タスク選択手段 511 タスク登録手段 512 実行可能タスク待ち行列 513 プロセッサ指定タスク待ち行列 514 タスク選択手段 A1〜A8、C1〜C5 ステップ 1 task input means 2, 5 Data processing unit 3, 6 Data storage 4 Execution time output means 8, 9 task scheduling system 15 bus 21 task graph generator 22, 24, 51 task placement means 23 Task relocation means 31 task graph storage 32 task allocation list storage unit 33, 34 Bus usage information storage unit 61 task graph 62 Task placement list 63 Bus usage information 100 multiprocessor system 221 trigger generator 222 Task registration means 223 Forward list 224 Reverse list 225 task selection means 511 task registration means 512 Executable task queue 513 Processor-specified task queue 514 task selection means A1-A8, C1-C5 steps

Claims (33)

【特許請求の範囲】[Claims] 【請求項1】 複数のプロセッサを備えるマルチプロセ
ッサシステムにおいて複数のタスクのマルチタスク処理
を行う場合に、実行プロセッサが指定されているタスク
を含む前記各タスクの依存関係を示すタスクグラフに基
づいて、前記各タスクのタスクスケジューリングを前記
各タスクの実行前に行う静的なタスクスケジューリング
システムにおいて、 設計対象となるプロセッサを決定するトリガ発生器と、 前記設計対象であるプロセッサを実行プロセッサとする
タスクが優先度の高い順に登録される順方向リストと、 前記設計対象であるプロセッサを実行プロセッサとする
タスクが優先度の低い順に登録される逆方向リストと、 前記順方向リストと前記逆方向リストとにタスクを登録
するタスク登録手段と、 前記順方向リストか前記逆方向リストかのいずれかのリ
ストを選択し、選択されたリストに基づいて前記各タス
クの実行時刻を決定するタスク選択手段とを備えること
を特徴とするタスクスケジューリングシステム。
1. When performing multitask processing of a plurality of tasks in a multiprocessor system including a plurality of processors, based on a task graph showing a dependency of each task including a task whose execution processor is designated, In a static task scheduling system that performs task scheduling of each task before execution of each task, a trigger generator that determines a processor to be designed and a task whose execution processor is the processor to be designed are prioritized. A forward list registered in descending order of priority, a backward list in which tasks whose execution target is the processor to be designed is registered in descending order of priority, and a task in the forward list and the backward list Task registration means for registering the forward list or the reverse list. Select a list of either countercurrent list, task scheduling system, characterized in that it comprises a task selection means for determining the execution time of each task based on the selected list.
【請求項2】 前記バスを介してデータ転送を行う転送
タスクの実行時刻と、該実行時刻を変化させても他の転
送タスクの実行時刻が変化しない前記転送タスクの実行
時刻の設定可能範囲とが登録されているバス使用情報
と、 前記バス使用情報を参照して、複数の転送タスクの実行
時刻が重複する場合には、前記設定可能範囲の中で前記
各転送タスクの実行時刻を再配置するタスク再配置手段
とをさらに備える請求項1記載のタスクスケジューリン
グシステム。
2. An execution time of a transfer task that transfers data via the bus, and a settable range of the execution time of the transfer task in which the execution times of other transfer tasks do not change even if the execution time is changed. If the execution times of a plurality of transfer tasks overlap with each other, the execution times of the transfer tasks are relocated within the settable range by referring to the bus usage information registered in The task scheduling system according to claim 1, further comprising: a task relocation unit that performs the task relocation.
【請求項3】 前記転送タスクと実行時刻が最も近い直
接先行タスクの実行時刻と、前記転送タスクと実行時刻
が最も近い直接後続タスクの実行時刻との間で、クリテ
ィカルパス値が等しい範囲を前記設定可能範囲とする請
求項2記載のタスクスケジューリングシステム。
3. A range in which a critical path value is equal between an execution time of a direct predecessor task whose execution time is closest to that of the transfer task and an execution time of a direct successor task whose execution time is closest to that of the transfer task The task scheduling system according to claim 2, wherein the settable range is set.
【請求項4】 前記トリガ発生器は、 実行時刻が決定されていない全ての未決定タスクが、設
計対象に含まれていないプロセッサでの実行を指定され
ている場合には、前記各未決定タスクのうち、最も順方
向の優先度の高いタスクによって指定されているプロセ
ッサを設計対象に含め、 設計対象の第1のプロセッサを指定するタスクであっ
て、当該プロセッサと設計対象に含まれていない第2の
プロセッサとの間にデータ転送を行うタスクをスケジュ
ーリング対象とする場合には、前記第2のプロセッサを
設計対象に含める請求項1から3のいずれか1項記載の
タスクスケジューリングシステム。
4. The trigger generator, when all the undecided tasks whose execution times have not been decided are designated to be executed by processors not included in the design target, the undecided tasks Of the above tasks, the task specified by the task with the highest priority in the forward direction is included in the design target, and the first processor that is the design target is specified. The task scheduling system according to any one of claims 1 to 3, wherein the second processor is included in a design target when a task that performs data transfer with two processors is a scheduling target.
【請求項5】 前記各タスクの優先度は、順方向と逆方
向とで等しく与えられ、前記タスクグラフにおける終端
のタスクから前記各タスクに至る最長のパス長が長いほ
ど高くなるように与えられる請求項1から4のいずれか
1項記載のタスクスケジューリングシステム。
5. The priorities of the respective tasks are given equally in the forward direction and the backward direction, and are given such that the longer the longest path length from the end task to the respective tasks in the task graph, the higher the priority. The task scheduling system according to any one of claims 1 to 4.
【請求項6】 順方向の優先度としては、前記タスクグ
ラフにおける終端のタスクから各タスクに至る最長のパ
ス長が長いタスクに高い優先度が与えられ、パス長が同
じタスク同士では直接の後続タスク数が多いタスクに高
い優先度が与えられ、 逆方向の優先度としては、前記タスクグラフにおける終
端のタスクから各タスクに至る最長のパス長が長いタス
クに高い優先度が与えられ、パス長が同じタスク同士で
は直接の先行タスク数が少ないタスクに高い優先度が与
えられる請求項1から4のいずれか1項記載のタスクス
ケジューリングシステム。
6. As a forward priority, a task having a longest path length from a terminal task in the task graph to each task is given a high priority, and tasks having the same path length directly succeed each other. A task with a large number of tasks is given a high priority, and as a reverse direction priority, a task with the longest path length from the end task to each task in the task graph is given a high priority and the path length is The task scheduling system according to any one of claims 1 to 4, wherein tasks having the same number of are assigned a higher priority to a task having a smaller number of direct preceding tasks.
【請求項7】 前記タスク登録手段は、 前記順方向リストに前記各タスクを登録する場合には、
前記各タスクの直接先行タスクの実行時刻が決定されて
いるか、前記直接先行タスクの実行時刻が未決定であっ
ても当該直接先行タスクが設計対象に含まれていないプ
ロセッサでの実行が指定されているタスクを前記優先度
に従って順方向の優先度の高い順に登録し、 前記逆方向リストに前記各タスクを登録する場合には、
プロセッサが設計対象となるきっかけとなったタスクよ
り逆方向に優先度の低いタスクを除く各タスクの直接後
続タスクの実行時刻が決定されているか、当該直接後続
タスクの実行時刻が未決定であっても当該直接後続タス
クが設計対象に含まれていないプロセッサでの実行が指
定されている場合には、前記各タスクを前記優先度に従
って逆方向の優先度の低い順に登録する請求項5または
6記載のタスクスケジューリングシステム。
7. The task registration means, when registering each of the tasks in the forward list,
The execution time of the direct predecessor task of each task is determined, or even if the execution time of the direct predecessor task is undecided, execution is specified in a processor that does not include the direct predecessor task in the design target. Registered tasks in the order of higher priority in the forward direction according to the priority, when registering each of the tasks in the backward list,
The execution time of the direct successor task of each task excluding the task with lower priority in the opposite direction than the task that triggered the design of the processor has been determined, or the execution time of the direct successor task has not been determined. 7. If the direct successor task is also specified to be executed by a processor that is not included in the design target, the respective tasks are registered in the ascending order of priority in the backward direction according to the priority. Task scheduling system.
【請求項8】 前記タスク選択手段は、 設計対象になっているプロセッサで実行が指定されてい
るタスクのうち、順方向で最も優先度の高いタスクの実
行時刻が配置済みである場合には、前記順方向リストを
選択し、 当該タスクの実行時刻が配置済みでない場合には、前記
逆方向リストを選択する請求項1から7のいずれか1項
記載のタスクスケジューリングシステム。
8. The task selecting means, when the execution time of the task with the highest priority in the forward direction among the tasks whose execution is designated by the processor to be designed has already been arranged, 8. The task scheduling system according to claim 1, wherein the forward list is selected, and when the execution time of the task is not arranged, the backward list is selected.
【請求項9】 前記タスク選択手段は、 前記順方向リストを選択した場合には、設計対象になっ
ているプロセッサで実行が指定されているタスクのう
ち、順方向の優先度が最も高いタスクの実行時刻か、先
行タスクの直後の実行時刻かのどちらかの遅い時刻のう
ち、実行可能な最も早い時刻にスケジュール対象のタス
クの実行時刻を配置し、 前記逆方向リストを選択した場合には、プロセッサで設
計を開始するきっかけとなったタスクの実行時刻か、後
続タスクの直前の時刻かのどちらか早い方の時刻のう
ち、実行可能な最も遅い時刻にスケジュール対象のタス
クの実行時刻を配置する請求項1から8のいずれか1項
記載のタスクスケジューリングシステム。
9. The task selecting means selects, in the case of selecting the forward list, a task having the highest forward priority among the tasks designated to be executed by the processor to be designed. Of the later of either the execution time or the execution time immediately after the preceding task, the execution time of the scheduled task is placed at the earliest time that can be executed, and if the backward list is selected, Place the execution time of the scheduled task at the latest executable time of the execution time of the task that triggered the design on the processor or the time immediately before the subsequent task, whichever is earlier. The task scheduling system according to claim 1.
【請求項10】 バスで接続された複数のプロセッサを
備えるマルチプロセッサシステムにおいて複数のタスク
のマルチタスク処理を行う場合に、実行プロセッサが指
定されているタスクを含む複数のタスクの依存関係を示
すタスクグラフに基づいて、前記各タスクのタスクスケ
ジューリングを前記各タスクの実行前に行う静的なタス
クスケジューリングシステムにおいて、 転送タスクの実行時刻と、該実行時刻を変化させても他
の転送タスクの実行時刻が変化しない前記転送タスクの
実行時刻の設定可能範囲とが登録されているバス使用情
報と、 前記バス使用情報を参照して、複数の転送タスクの実行
時刻が重複する場合には、前記設定可能範囲の中で前記
各転送タスクの実行時刻を再配置するタスク再配置手段
とを備えることを特徴とするタスクスケジューリングシ
ステム。
10. A multiprocessor system including a plurality of processors connected by a bus, when performing multitask processing of a plurality of tasks, a task indicating a dependency relationship of a plurality of tasks including a task whose execution processor is designated. In a static task scheduling system that performs task scheduling of each task before execution of each task based on a graph, the execution time of a transfer task and the execution time of another transfer task even if the execution time is changed. When the execution time of a plurality of transfer tasks overlaps with each other by referring to the bus usage information in which the settable range of the execution time of the transfer task that does not change is registered and the bus usage information And a task rearrangement means for rearranging the execution time of each transfer task within the range. Task scheduling system.
【請求項11】 前記転送タスクと実行時刻が最も近い
直接先行タスクの実行時刻と、前記転送タスクと実行時
刻が最も近い直接後続タスクの実行時刻との間で、クリ
ティカルパス値が等しい範囲を前記設定可能範囲とする
請求項10記載のタスクスケジューリングシステム。
11. A range in which a critical path value is equal between the execution time of a direct predecessor task whose execution time is closest to that of the transfer task and the execution time of a direct successor task whose execution time is closest to that of the transfer task is The task scheduling system according to claim 10, wherein the range is settable.
【請求項12】 複数のプロセッサを備えるマルチプロ
セッサシステムにおいて複数のタスクのマルチタスク処
理を行う場合に、実行プロセッサが指定されているタス
クを含む前記各タスクの依存関係を示すタスクグラフに
基づいて、前記各タスクのタスクスケジューリングを前
記各タスクの実行前に行う静的なタスクスケジューリン
グ方法において、 設計対象となるプロセッサを決定する第1のステップ
と、 前記設計対象であるプロセッサを実行プロセッサとする
タスクを優先度の高い順に順方向リストに登録する第2
のステップと、 前記設計対象であるプロセッサを実行プロセッサとする
タスクを優先度の低い順に逆方向リストに登録する第3
のステップと、 前記順方向リストか前記逆方向リストかのいずれかのリ
ストを選択し、選択されたリストに基づいて前記各タス
クの実行時刻を決定する第4のステップを有することを
特徴とするタスクスケジューリング方法。
12. When performing multitask processing of a plurality of tasks in a multiprocessor system including a plurality of processors, based on a task graph showing a dependency relationship of each task including a task whose execution processor is designated, In a static task scheduling method of performing task scheduling of each task before execution of each task, a first step of determining a processor to be designed, and a task having the processor to be designed as an execution processor Second to register in the forward list in descending order of priority
And a step of registering a task whose execution target is the processor to be designed in the backward list in order of low priority.
And a fourth step of selecting either the forward list or the backward list and determining the execution time of each task based on the selected list. Task scheduling method.
【請求項13】 前記バスを介してデータ転送を行う転
送タスクの実行時刻と、該実行時刻を変化させても他の
転送タスクの実行時刻が変化しない設定可能範囲とをバ
ス使用情報に登録する第5のステップと、 前記バス使用情報を参照して、複数の転送タスクの実行
時刻が重複する場合には、前記設定可能範囲の中で前記
各転送タスクの実行時刻を再配置する第6のステップと
をさらに有する請求項12記載のタスクスケジューリン
グ方法。
13. An execution time of a transfer task that transfers data via the bus, and a settable range in which the execution time of another transfer task does not change even if the execution time is changed are registered in the bus use information. A fifth step, and referring to the bus usage information, when the execution times of a plurality of transfer tasks overlap, the execution times of the transfer tasks are rearranged within the settable range. The task scheduling method according to claim 12, further comprising:
【請求項14】 前記転送タスクと実行時刻が最も近い
直接先行タスクの実行時刻と、前記転送タスクと実行時
刻が最も近い直接後続タスクの実行時刻との間で、クリ
ティカルパス値が等しい範囲を前記設定可能範囲とする
請求項13記載のタスクスケジューリング方法。
14. A range in which a critical path value is equal between the execution time of a direct predecessor task whose execution time is closest to that of the transfer task and the execution time of a direct successor task whose execution time is closest to that of the transfer task is The task scheduling method according to claim 13, wherein the settable range is set.
【請求項15】 前記第1のステップでは、 実行時刻が決定されていない全ての未決定タスクが、設
計対象に含まれていないプロセッサでの実行を指定され
ている場合には、前記各未決定タスクのうち、順方向の
優先度の最も高いタスクによって指定されているプロセ
ッサを設計対象に含め、 設計対象の第1のプロセッサを指定するタスクのタスク
スケジュールを行い、当該プロセッサと設計対象に含ま
れていない第2のプロセッサとの間にデータ転送を行う
タスクをスケジューリングする場合には、前記第2のプ
ロセッサを設計対象に含める請求項12から14のいず
れか1項記載のタスクスケジューリング方法。
15. In the first step, if all undecided tasks whose execution times have not been decided are designated to be executed by a processor that is not included in the design target, each undecided task is undecided. Among the tasks, the processor specified by the task with the highest priority in the forward direction is included in the design target, the task that specifies the first processor of the design target is scheduled, and the processor is included in the target processor and the design target. The task scheduling method according to any one of claims 12 to 14, wherein the second processor is included in a design target when scheduling a task for performing data transfer with a second processor that is not included.
【請求項16】 前記各タスクの優先度を、順方向と逆
方向とで等しく与え、前記タスクグラフにおける終端の
タスクから前記各タスクに至る最長のパス長が長いほど
高くなるように与える請求項12から15のいずれか1
項記載のタスクスケジューリング方法。
16. The priority of each task is given equally in the forward direction and the backward direction, and is given such that the longer the longest path length from the end task to each of the tasks in the task graph, the higher. Any one from 12 to 15
The task scheduling method described in the item.
【請求項17】 順方向の優先度として、前記タスクグ
ラフにおける終端のタスクから各タスクに至る最長のパ
ス長が長いタスクに高い優先度を与え、パス長が同じタ
スク同士では直接の後続タスク数が多いタスクに高い優
先度を与え、 逆方向の優先度として、前記タスクグラフにおける終端
のタスクから各タスクに至る最長のパス長が長いタスク
に高い優先度を与え、パス長が同じタスク同士では直接
の先行タスク数が少ないタスクに高い優先度を与える請
求項12から15のいずれか1項記載のタスクスケジュ
ーリングシステム。
17. As a forward priority, a task having a longest path length from the end task to each task in the task graph is given a high priority, and tasks having the same path length have a direct successor number of tasks. Is assigned to a task having a longest path length from the end task to each task in the task graph as a priority in the opposite direction. The task scheduling system according to claim 12, wherein a task having a small number of direct preceding tasks is given high priority.
【請求項18】 前記第2のステップでは、前記各タス
クの直接先行タスクの実行時刻が決定されているか、前
記直接先行タスクの実行時刻が未決定であっても当該直
接先行タスクが設計対象に含まれていないプロセッサで
の実行が指定されている場合には、前記各タスクを前記
優先度に従って順方向の優先度の高い順に登録し、 前記第3のステップでは、プロセッサが設計対象となる
きっかけとなったタスクより逆方向に優先度の低いタス
クを除く各タスクの直接後続タスクの実行時刻が決定さ
れているか、当該直接後続タスクの実行時刻が未決定で
あっても当該直接後続タスクが設計対象に含まれていな
いプロセッサでの実行が指定されている場合には、前記
優先度に従って逆方向の優先度の低い順に前記各タスク
を登録する請求項16または17記載のタスクスケジュ
ーリング方法。
18. In the second step, the execution time of the direct predecessor task of each task is determined, or even if the execution time of the direct predecessor task is not determined, the direct predecessor task becomes the design target. When execution by a processor that is not included is specified, the tasks are registered in the order of higher priority in the forward direction according to the priority, and in the third step, the reason why the processor becomes a design target is given. The execution time of the direct successor task of each task excluding tasks with lower priority in the opposite direction to the specified task has been determined, or the direct successor task is designed even if the execution time of the direct successor task has not been determined. 17. When execution by a processor which is not included in the target is designated, the respective tasks are registered according to the priority in ascending order of priority in the backward direction. Task scheduling method of others 17 wherein.
【請求項19】 前記第4のステップでは、 設計対象になっているプロセッサで実行が指定されてい
るタスクのうち、順方向の優先度の最も高いタスクの実
行時刻が配置済みである場合には、前記順方向リストを
選択し、 当該タスクの実行時刻が配置済みでない場合には、前記
逆方向リストを選択する請求項12から18のいずれか
1項記載のタスクスケジューリング方法。
19. In the fourth step, when the execution time of the task with the highest priority in the forward direction among the tasks whose execution is specified by the processor to be designed has been allocated, 19. The task scheduling method according to claim 12, wherein the forward list is selected, and when the execution time of the task is not arranged, the backward list is selected.
【請求項20】 前記第4のステップでは、 前記順方向リストを選択した場合には、設計対象になっ
ているプロセッサで実行が指定されているタスクのう
ち、順方向の優先度が最も高いタスクの実行時刻か、先
行タスクの直後の実行時刻かのどちらかの遅い時刻のう
ち、実行可能な最も早い時刻に、スケジュール対象のタ
スクを配置し、 前記逆方向リストを選択した場合には、プロセッサで設
計を開始するきっかけとなったタスクの実行時刻か、後
続タスクの直前の時刻かのどちらか早い方の時刻のう
ち、実行可能な最も遅い時刻に、スケジュール対象のタ
スクを配置する請求項12から19のいずれか1項記載
のタスクスケジューリング方法。
20. In the fourth step, when the forward list is selected, the task with the highest forward priority is selected from among the tasks whose execution is designated by the processor to be designed. The scheduled task is placed at the earliest executable time, whichever is later, either the execution time of the task or the execution time immediately after the preceding task, and when the backward list is selected, the processor 13. The task to be scheduled is placed at the latest executable time of either the execution time of the task that triggered the design in 1. or the time immediately before the subsequent task, whichever is earlier. 20. The task scheduling method according to claim 1.
【請求項21】 バスで接続された複数のプロセッサを
備えるマルチプロセッサシステムにおいて複数のタスク
のマルチタスク処理を行う場合に、実行プロセッサが指
定されているタスクを含む複数のタスクの依存関係を示
すタスクグラフに基づいて、前記各タスクのタスクスケ
ジューリングを前記各タスクの実行前に行う静的なタス
クスケジューリング方法において、 転送タスクの実行時刻と、該実行時刻を変化させても他
の転送タスクの実行時刻が変化しない前記転送タスクの
実行時刻の設定可能範囲とをバス使用情報として登録す
る第1のステップと、 前記バス使用情報を参照して、複数の転送タスクの実行
時刻が重複する場合には、前記設定可能範囲の中で前記
各転送タスクの実行時刻を再配置する第2のステップと
を有することを特徴とするタスクスケジューリング方
法。
21. In a multiprocessor system including a plurality of processors connected by a bus, when performing multitask processing of a plurality of tasks, a task indicating a dependency relationship of a plurality of tasks including a task whose execution processor is designated. In a static task scheduling method for performing task scheduling of each task before execution of each task based on a graph, an execution time of a transfer task and an execution time of another transfer task even if the execution time is changed. The first step of registering the settable range of the execution time of the transfer task, which does not change, as bus usage information; and referring to the bus usage information, when the execution times of a plurality of transfer tasks overlap, A second step of rearranging the execution time of each transfer task within the settable range. Task scheduling method to the symptoms.
【請求項22】 前記転送タスクと実行時刻が最も近い
直接先行タスクの実行時刻と、前記転送タスクと実行時
刻が最も近い直接後続タスクの実行時刻との間で、クリ
ティカルパス値が等しい範囲を前記設定可能範囲とする
請求項21記載のタスクスケジューリング方法。
22. A range in which a critical path value is equal between the execution time of a direct predecessor task having the closest execution time to the transfer task and the execution time of a direct successor task having the closest execution time to the transfer task is set. The task scheduling method according to claim 21, wherein the settable range is set.
【請求項23】 複数のプロセッサを備えるマルチプロ
セッサシステムにおいて複数のタスクのマルチタスク処
理を行う場合に、実行プロセッサが指定されているタス
クを含む前記各タスクの依存関係を示すタスクグラフに
基づいて、前記各タスクの静的なタスクスケジューリン
グをコンピュータに実行させるプログラムであって、 設計対象となるプロセッサを決定し、 前記設計対象であるプロセッサを実行プロセッサとする
タスクを優先度の高い順に順方向リストに登録し、 前記設計対象であるプロセッサを実行プロセッサとする
タスクを優先度の低い順に逆方向リストに登録し、 前記順方向リストか前記逆方向リストかのいずれかのリ
ストを選択し、選択されたリストに基づいて前記各タス
クの実行時刻を決定する処理をコンピュータに実行させ
るためのプログラム。
23. When performing multitask processing of a plurality of tasks in a multiprocessor system including a plurality of processors, based on a task graph showing a dependency relationship of each task including a task whose execution processor is designated, A program for causing a computer to execute static task scheduling of each task, determining a processor to be designed, and assigning tasks having the processor to be designed as an execution processor to a forward list in descending order of priority. Register, register a task whose execution target is the processor to be designed in the backward list in order of low priority, select either the forward list or the backward list, and select The computer executes the process of determining the execution time of each task based on the list. Program to be executed.
【請求項24】 前記バスを介してデータ転送を行う転
送タスクの実行時刻と、該実行時刻を変化させても他の
転送タスクの実行時刻が変化しない設定可能範囲とをバ
ス使用情報に登録し、 前記バス使用情報を参照して、複数の転送タスクの実行
時刻が重複する場合には、前記設定可能範囲の中で前記
各転送タスクの実行時刻を再配置する処理をコンピュー
タにさらに実行させるための請求項23記載のプログラ
ム。
24. The execution time of a transfer task that transfers data via the bus, and a settable range in which the execution time of another transfer task does not change even if the execution time is changed are registered in the bus usage information. , If the execution times of a plurality of transfer tasks overlap with each other by referring to the bus use information, in order to further cause the computer to execute a process of rearranging the execution times of the transfer tasks within the settable range. 24. The program according to claim 23.
【請求項25】 前記転送タスクと実行時刻が最も近い
直接先行タスクの実行時刻と、前記転送タスクと実行時
刻が最も近い直接後続タスクの実行時刻との間で、クリ
ティカルパス値が等しい範囲を前記設定可能範囲とする
請求項24記載のプログラム。
25. A range in which a critical path value is equal between the execution time of a direct predecessor task having the closest execution time to the transfer task and the execution time of a direct successor task having the closest execution time to the transfer task The program according to claim 24, which is set within a settable range.
【請求項26】 実行時刻が決定されていない全ての未
決定タスクが、設計対象に含まれていないプロセッサで
の実行を指定されている場合には、前記各未決定タスク
のうち、順方向の優先度の最も高いタスクによって指定
されているプロセッサを設計対象に含め、 設計対象の第1のプロセッサを指定するタスクのタスク
スケジュールを行い、当該プロセッサと設計対象に含ま
れていない第2のプロセッサとの間にデータ転送を行う
タスクをスケジューリングする場合には、前記第2のプ
ロセッサを設計対象に含める請求項23から25のいず
れか1項記載のプログラム。
26. When all undecided tasks whose execution times have not been decided are designated to be executed by a processor that is not included in the design target, a forward direction Include the processor specified by the task with the highest priority in the design target, perform the task schedule of the task that specifies the first processor that is the design target, and set the target processor and the second processor not included in the design target. 26. The program according to any one of claims 23 to 25, wherein the second processor is included in a design target when a task for performing data transfer is scheduled.
【請求項27】 前記各タスクの優先度を、順方向と逆
方向とで等しく与え、前記タスクグラフにおける終端の
タスクから前記各タスクに至る最長のパス長が長いほど
高くなるように与える請求項23から26のいずれか1
項記載のプログラム。
27. The priorities of the respective tasks are given equally in the forward direction and the backward direction, and the higher the longer the longest path length from the end task to the respective tasks in the task graph, the higher the priority. Any one of 23 to 26
The program described in the section.
【請求項28】 順方向の優先度として、前記タスクグ
ラフにおける終端のタスクから各タスクに至る最長のパ
ス長が長いタスクに高い優先度を与え、パス長が同じタ
スク同士では直接の後続タスク数が多いタスクに高い優
先度を与え、 逆方向の優先度として、前記タスクグラフにおける終端
のタスクから各タスクに至る最長のパス長が長いタスク
に高い優先度を与え、パス長が同じタスク同士では直接
の先行タスク数が少ないタスクに高い優先度を与える請
求項23から26のいずれか1項記載のプログラム。
28. As a forward priority, a task having a longest path length from the end task to each task in the task graph is given a high priority, and tasks having the same path length are directly followed. Is assigned to a task having a longest path length from the end task to each task in the task graph as a priority in the opposite direction. 27. The program according to claim 23, wherein a task having a small number of direct preceding tasks is given high priority.
【請求項29】 前記各タスクの直接先行タスクの実行
時刻が決定されているか、前記直接先行タスクの実行時
刻が未決定であっても当該直接先行タスクが設計対象に
含まれていないプロセッサでの実行が指定されている場
合には、前記各タスクを前記優先度に従って順方向の優
先度の高い順に前記順方向リストに登録し、 プロセッサが設計対象となるきっかけとなったタスクよ
り逆方向に優先度の低いタスクを除く各タスクの直接後
続タスクの実行時刻が決定されているか、当該直接後続
タスクの実行時刻が未決定であっても当該直接後続タス
クが設計対象に含まれていないプロセッサでの実行が指
定されている場合には、前記優先度に従って逆方向の優
先度の低い順に前記各タスクを前記逆方向リストに登録
する請求項27または28記載のプログラム。
29. The execution time of the direct predecessor task of each task is determined, or even if the execution time of the direct predecessor task is undecided, the direct predecessor task is not included in the design targets. When execution is specified, each task is registered in the forward list in the order of high priority in the forward direction according to the priority, and the task is prioritized in the backward direction over the task that triggered the design. Execution time of the direct successor task of each task excluding infrequent tasks has been determined, or even if the execution time of the direct successor task has not been determined, the direct successor task is not included in the design target. 29. When execution is specified, the respective tasks are registered in the backward list in order of decreasing backward priority according to the priority. Of the program.
【請求項30】 設計対象になっているプロセッサで実
行が指定されているタスクのうち、順方向の優先度の最
も高いタスクの実行時刻が配置済みである場合には、前
記順方向リストを選択し、 当該タスクの実行時刻が配置済みでない場合には、前記
逆方向リストを選択する請求項23から29のいずれか
1項記載のプログラム。
30. Among the tasks whose execution is designated by the processor to be designed, when the execution time of the task with the highest forward priority has been allocated, the forward list is selected. The program according to any one of claims 23 to 29, wherein the backward list is selected when the execution time of the task has not been allocated.
【請求項31】 前記順方向リストを選択した場合に
は、設計対象になっているプロセッサで実行が指定され
ているタスクのうち、順方向の優先度が最も高いタスク
の実行時刻か、先行タスクの直後の実行時刻かのどちら
かの遅い時刻のうち、実行可能な最も早い時刻に、スケ
ジュール対象のタスクを配置し、 前記逆方向リストを選択した場合には、プロセッサで設
計を開始するきっかけとなったタスクの実行時刻か、後
続タスクの直前の時刻かのどちらか早い方の時刻のう
ち、実行可能な最も遅い時刻に、スケジュール対象のタ
スクを配置する請求項23から30のいずれか1項記載
のプログラム。
31. When the forward list is selected, the execution time of the task with the highest forward priority among the tasks whose execution is designated by the processor to be designed, or the preceding task The task to be scheduled is placed at the earliest time that can be executed, whichever is later than the execution time immediately after, and when the backward list is selected, there is an opportunity to start designing on the processor. 31. The task to be scheduled is arranged at the latest executable time of either the latest execution time of the failed task or the previous time of the succeeding task, whichever is earlier. The listed program.
【請求項32】 バスで接続された複数のプロセッサを
備えるマルチプロセッサシステムにおいて複数のタスク
のマルチタスク処理を行う場合に、実行プロセッサが指
定されているタスクを含む前記各タスクの依存関係を示
すタスクグラフに基づいて、前記各タスクの静的なタス
クスケジューリングをコンピュータに実行させるプログ
ラムであって、 転送タスクの実行時刻と、該実行時刻を変化させても他
の転送タスクの実行時刻が変化しない前記転送タスクの
実行時刻の設定可能範囲とをバス使用情報として登録
し、 前記バス使用情報を参照して、複数の転送タスクの実行
時刻が重複する場合には、前記設定可能範囲の中で前記
各転送タスクの実行時刻を再配置する処理をコンピュー
タに実行させるためのプログラム。
32. When performing multitask processing of a plurality of tasks in a multiprocessor system including a plurality of processors connected by a bus, a task indicating a dependency relationship among the tasks including a task whose execution processor is designated. A program for causing a computer to execute static task scheduling of each task based on a graph, wherein the execution time of a transfer task and the execution times of other transfer tasks do not change even if the execution time is changed. The settable range of the transfer task execution time is registered as bus usage information, and when the execution times of a plurality of transfer tasks are overlapped by referring to the bus usage information, each of the settable ranges is set in the settable range. A program that causes a computer to execute the process of rearranging the execution time of a transfer task.
【請求項33】 前記転送タスクと実行時刻が最も近い
直接先行タスクの実行時刻と、前記転送タスクと実行時
刻が最も近い直接後続タスクの実行時刻との間で、クリ
ティカルパス値が等しい範囲を前記設定可能範囲とする
請求項32記載のプログラム。
33. A range in which a critical path value is equal between the execution time of a direct predecessor task having the closest execution time to the transfer task and the execution time of a direct successor task having the closest execution time to the transfer task is defined as 33. The program according to claim 32, which is within a settable range.
JP2001213599A 2001-07-13 2001-07-13 Task scheduling system and method, program Expired - Fee Related JP4206653B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001213599A JP4206653B2 (en) 2001-07-13 2001-07-13 Task scheduling system and method, program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001213599A JP4206653B2 (en) 2001-07-13 2001-07-13 Task scheduling system and method, program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008036509A Division JP4404228B2 (en) 2008-02-18 2008-02-18 Task scheduling system, method, and program

Publications (2)

Publication Number Publication Date
JP2003029988A true JP2003029988A (en) 2003-01-31
JP4206653B2 JP4206653B2 (en) 2009-01-14

Family

ID=19048546

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001213599A Expired - Fee Related JP4206653B2 (en) 2001-07-13 2001-07-13 Task scheduling system and method, program

Country Status (1)

Country Link
JP (1) JP4206653B2 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004326788A (en) * 2003-04-28 2004-11-18 Xerox Corp Predictable and preemptive planning and scheduling for system, and method for different job priority
JP2007522561A (en) * 2004-02-06 2007-08-09 インテル・コーポレーション Method for reducing energy consumption in buffered applications using simultaneous multithreading processors
JP2009070264A (en) * 2007-09-14 2009-04-02 Toshiba Corp Hierarchy scheduling device, hierarchy scheduling method and program
JP2009230584A (en) * 2008-03-24 2009-10-08 Nomura Research Institute Ltd Job-processing system and job management method
JP2010508574A (en) * 2006-10-31 2010-03-18 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. Middleware framework
JP2013200667A (en) * 2012-03-23 2013-10-03 Ntt Data Corp Schedule creating method, and system and program therefor
JP2015038646A (en) * 2010-11-30 2015-02-26 株式会社東芝 Information processing apparatus and information processing method
WO2018180741A1 (en) * 2017-03-31 2018-10-04 日本電気株式会社 Calculation system, calculation method, and recording medium on which calculation program is recorded
WO2018180740A1 (en) * 2017-03-31 2018-10-04 日本電気株式会社 Calculation system, calculation method and recording medium on which calculation program is recorded
CN109684060A (en) * 2018-12-21 2019-04-26 中国航空工业集团公司西安航空计算技术研究所 A kind of mixed scheduling method of polymorphic type time-critical task
KR20200040088A (en) * 2018-10-08 2020-04-17 국방과학연구소 Method and apparatus for controlling robots
CN111832917A (en) * 2020-06-30 2020-10-27 中国船舶重工集团公司第七一六研究所 Fixed point output-oriented distributed manufacturing scheduling method and device

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004326788A (en) * 2003-04-28 2004-11-18 Xerox Corp Predictable and preemptive planning and scheduling for system, and method for different job priority
JP4571819B2 (en) * 2003-04-28 2010-10-27 ゼロックス コーポレイション Predictive and preemptive planning and scheduling for systems and methods with different job priorities
JP2007522561A (en) * 2004-02-06 2007-08-09 インテル・コーポレーション Method for reducing energy consumption in buffered applications using simultaneous multithreading processors
US9323571B2 (en) 2004-02-06 2016-04-26 Intel Corporation Methods for reducing energy consumption of buffered applications using simultaneous multi-threading processor
JP2010508574A (en) * 2006-10-31 2010-03-18 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. Middleware framework
JP2009070264A (en) * 2007-09-14 2009-04-02 Toshiba Corp Hierarchy scheduling device, hierarchy scheduling method and program
JP2009230584A (en) * 2008-03-24 2009-10-08 Nomura Research Institute Ltd Job-processing system and job management method
JP2015038646A (en) * 2010-11-30 2015-02-26 株式会社東芝 Information processing apparatus and information processing method
JP2013200667A (en) * 2012-03-23 2013-10-03 Ntt Data Corp Schedule creating method, and system and program therefor
WO2018180741A1 (en) * 2017-03-31 2018-10-04 日本電気株式会社 Calculation system, calculation method, and recording medium on which calculation program is recorded
WO2018180740A1 (en) * 2017-03-31 2018-10-04 日本電気株式会社 Calculation system, calculation method and recording medium on which calculation program is recorded
JPWO2018180741A1 (en) * 2017-03-31 2020-01-09 日本電気株式会社 Calculation system, calculation method and calculation program
JPWO2018180740A1 (en) * 2017-03-31 2020-01-09 日本電気株式会社 Calculation system, calculation method and calculation program
KR20200040088A (en) * 2018-10-08 2020-04-17 국방과학연구소 Method and apparatus for controlling robots
KR102212352B1 (en) * 2018-10-08 2021-02-04 국방과학연구소 Method and apparatus for controlling robots
CN109684060A (en) * 2018-12-21 2019-04-26 中国航空工业集团公司西安航空计算技术研究所 A kind of mixed scheduling method of polymorphic type time-critical task
CN111832917A (en) * 2020-06-30 2020-10-27 中国船舶重工集团公司第七一六研究所 Fixed point output-oriented distributed manufacturing scheduling method and device

Also Published As

Publication number Publication date
JP4206653B2 (en) 2009-01-14

Similar Documents

Publication Publication Date Title
US7650601B2 (en) Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment
US7950016B2 (en) Apparatus for switching the task to be completed in a processor by switching to the task assigned time slot
JP3678414B2 (en) Multiprocessor system
KR970016979A (en) Queuing system and method of tasks in a multiprocessing system
JP2009265963A (en) Information processing system and task execution control method
EP1923784A1 (en) Scheduling method, and scheduling device
JP2003029988A (en) Task scheduling system and method, program
US8595747B2 (en) Efficient task scheduling by assigning fixed registers to scheduler
Tang et al. Combining hard periodic and soft aperiodic real-time task scheduling on heterogeneous compute resources
US20110125986A1 (en) Reducing inter-task latency in a multiprocessor system
JP4404228B2 (en) Task scheduling system, method, and program
JP2020095441A (en) Computation control device
Horowitz A run-time execution model for referential integrity maintenance
Handa et al. An integrated online scheduling and placement methodology
JP7054688B2 (en) Synchronous control system and synchronous control method
JP7204443B2 (en) VEHICLE CONTROL DEVICE AND PROGRAM EXECUTION METHOD
JPH02242434A (en) Task scheduling method
US10740150B2 (en) Programmable state machine controller in a parallel processing system
JP3576437B2 (en) Multiprocessor task control method and task control device
RU2239228C2 (en) Method for distributing time of central processor between tasks in automatized system for controlling technological processes
JP2986930B2 (en) Task Scheduling Method for Symmetric Multiprocessor
Poledna Optimizing interprocess communication for embedded real-time systems
Burns et al. Combining EDF and FP scheduling: Analysis and implementation in Ada 2005
JP2019204387A (en) Program execution control method and program converter
JPH11249917A (en) Parallel computers, their batch processing method, and storage medium

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20041207

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050221

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080702

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080827

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080924

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081007

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131031

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees