JP7170957B2 - Distributed processing system, distributed processing method, distributed processing program and scheduling device - Google Patents

Distributed processing system, distributed processing method, distributed processing program and scheduling device Download PDF

Info

Publication number
JP7170957B2
JP7170957B2 JP2022554716A JP2022554716A JP7170957B2 JP 7170957 B2 JP7170957 B2 JP 7170957B2 JP 2022554716 A JP2022554716 A JP 2022554716A JP 2022554716 A JP2022554716 A JP 2022554716A JP 7170957 B2 JP7170957 B2 JP 7170957B2
Authority
JP
Japan
Prior art keywords
task
communication
execution
execution time
schedule
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.)
Active
Application number
JP2022554716A
Other languages
Japanese (ja)
Other versions
JPWO2022074721A1 (en
JPWO2022074721A5 (en
Inventor
功之郎 石原
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2022074721A1 publication Critical patent/JPWO2022074721A1/ja
Publication of JPWO2022074721A5 publication Critical patent/JPWO2022074721A5/en
Application granted granted Critical
Publication of JP7170957B2 publication Critical patent/JP7170957B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt

Description

本発明は、複数のタスクを複数のプロセッサによって分散処理する分散処理システムに関するものである。 The present invention relates to a distributed processing system that distributes and processes a plurality of tasks by a plurality of processors.

複数の機器がネットワークで接続される分散処理システムが検討されている。
分散処理システムは、複数の機器が同期した状態で多くのタスクを実行すること、あるいは、広い範囲で複数の機器を同期させて制御すること、を目的とする。
A distributed processing system in which a plurality of devices are connected by a network has been studied.
A distributed processing system is intended to execute many tasks in a state in which a plurality of devices are synchronized, or to synchronize and control a plurality of devices over a wide range.

分散処理システムでは、各機器が、互いに処理したタスクの処理結果の情報を共有し、さらなるタスクの処理を実行する。
分散処理システムでは、周期的な処理が行われる場合がある。その場合に周期を順守できないと、次に実行すべき処理が不明確になり、機器制御およびタスク処理同期ができなくなる。そして、分散処理システムが停止するなど、重大なエラーが発生する。
周期を順守するためにタスクまたは通信のための余計な待機時間を削減し、低遅延および定時性を守った通信および処理を行うことで、周期的な処理が行われる分散処理システムが実現可能となる。
In the distributed processing system, each device shares information on the processing results of tasks processed with each other, and executes processing of further tasks.
In a distributed processing system, periodic processing may be performed. In that case, if the period cannot be observed, the process to be executed next becomes unclear, and equipment control and task processing synchronization cannot be performed. Then, a serious error occurs, such as the distributed processing system stopping.
It is possible to realize a distributed processing system that performs periodic processing by reducing unnecessary waiting time for tasks or communication in order to observe the cycle, and by performing communication and processing with low delay and punctuality. Become.

分散処理システムは、複数の機器がネットワークで接続されたシステムでなくてもよい。
例えば、分散処理システムは、ネットワーク等を利用せずに、バスあるいはメモリ共有等が利用されるシステム、あるいは、バスおよびメモリ共有等が併せて利用されるシステムであってもよい。バスあるいはメモリ共有等を利用することにより、極僅かな遅延で情報交換を行うことができる。
A distributed processing system does not have to be a system in which multiple devices are connected via a network.
For example, the distributed processing system may be a system that uses bus or memory sharing without using a network, or a system that uses both bus and memory sharing. By using a bus or shared memory, information can be exchanged with very little delay.

特許文献1には、複数のCPUコアによって分散処理を行うシステムが開示されている。
このシステムは、各CPUコアの負荷の増加に伴う処理遅延の増加と通信時間の増加に伴う処理の待ち時間の増加を考慮して、タスクの時間割り当て(スケジューリング)を行い、処理の効率化を実現する。
CPUは、Central Processing Unitの略称である。
Patent Literature 1 discloses a system that performs distributed processing using a plurality of CPU cores.
This system allocates task time (scheduling) in consideration of the increase in processing delay due to an increase in the load on each CPU core and the increase in processing waiting time due to an increase in communication time, and improves the efficiency of processing. come true.
CPU is an abbreviation for Central Processing Unit.

特開2010-079622号公報JP 2010-079622 A

従来の方式は、単一処理を実行した場合の処理遅延時間とCPU負荷に基づく時間割り当てで用いる処理遅延時間とを算出する。また、従来の方式は、実際に通信を行った場合の通信時間を用いて時間割り当てを行う。
しかし、実際には、さまざまなタスクおよび通信が実行される。各タスクおよび各通信は、要求が発生した時点で実行可能であれば、即座に実行される。そして、各タスクが定常的なタスクであるか突発的なタスクであるかにかかわらず、また、各通信が定常的な通信であるか突発的な通信であるかにかかわらず、高優先度のタスクおよび通信が優先され、想定していたタイミングで各タスクおよび各通信が完了しないことがある。これにより、実行が遅れたタスクと通信は、連鎖的に次に実行されるタスクと通信の遅延を引き起こす。
The conventional method calculates the processing delay time when executing a single process and the processing delay time used for time allocation based on the CPU load. Further, in the conventional method, time allocation is performed using communication time when communication is actually performed.
However, in practice, various tasks and communications are performed. Each task and each communication is executed immediately if it can be executed when the request occurs. And regardless of whether each task is a regular task or a sudden task, and regardless of whether each communication is a regular communication or a sudden communication, a high-priority Tasks and communications are given priority, and each task and each communication may not be completed at the expected timing. As a result, a task and communication whose execution is delayed cause a delay in the next executed task and communication in a chain.

各機器にはタスクの内容とタスクの優先度のみが入力される。タスクの実行は、各機器のOS等の機能により行われる。その際に、各タスクと各通信の実行タイミング(実行時刻)は、OSによって、リアルタイムに、実行可能なタスクまたは通信から順に優先度等の基準に従って決定される。つまり、各タスクと各通信の実行タイミングに対して細かな制御ができない。
現状の分散処理システムでは、場当たり的に各タスクと各通信が実行されるため、各タスクと各通信の細かなタイミングが算出されない。
OSは、Operating Systemの略称である。
Only the content of the task and the priority of the task are input to each device. Task execution is performed by functions such as the OS of each device. At that time, the execution timing (execution time) of each task and each communication is determined by the OS in real time according to criteria such as priority in order from the executable task or communication. In other words, it is not possible to finely control the execution timing of each task and each communication.
In the current distributed processing system, each task and each communication are executed on a case-by-case basis, so detailed timings of each task and each communication cannot be calculated.
OS is an abbreviation for Operating System.

本発明は、場当たり的に各タスクと各通信を実行せずに、計画的に各タスクと各通信とを実行できるようにすることを目的とする。 SUMMARY OF THE INVENTION An object of the present invention is to enable each task and each communication to be executed in a planned manner without executing each task and each communication ad hoc.

本発明の分散処理システムは、複数のタスクを複数のプロセッサによって分散処理するシステムである。
前記分散処理システムは、
前記複数のタスクの実行順と、各タスクの実行に要する処理量と、各タスクの実行結果を次のタスクに与えるための通信に要する通信量と、各タスクの優先度と、各通信の優先度と、各タスクが割り当てられるプロセッサを識別する割り当て先と、を示すタスク情報を取得する情報取得部と、
前記複数のタスクの実行順と各タスクの処理量と各通信の通信量と各タスクの割り当て先とに基づいて、各タスクに割り当てられる実行時間と各通信に割り当てられる実行時間とを指定する仮スケジュール、を決定する仮スケジュール決定部と、
各タスクの優先度と各通信の優先度とに基づいて、前記仮スケジュールに指定された各タスクの実行時間と前記仮スケジュールに指定された各通信の実行時間とを調整することによって、タスク間の競合と通信間の競合とが解消されたスケジュール、を生成する競合解消部と、を備える。
A distributed processing system according to the present invention is a system in which a plurality of tasks are distributedly processed by a plurality of processors.
The distributed processing system comprises:
the execution order of the plurality of tasks, the amount of processing required to execute each task, the amount of communication required for communication for giving the execution result of each task to the next task, the priority of each task, and the priority of each communication an information acquisition unit that acquires task information indicating a degree and an assignment destination that identifies a processor to which each task is assigned;
Designating the execution time assigned to each task and the execution time assigned to each communication based on the execution order of the plurality of tasks, the processing amount of each task, the communication amount of each communication, and the assignment destination of each task a tentative schedule determining unit that determines a schedule;
Based on the priority of each task and the priority of each communication, by adjusting the execution time of each task specified in the tentative schedule and the execution time of each communication specified in the tentative schedule, and a conflict resolution unit that generates a schedule in which conflicts between communications and conflicts between communications are resolved.

本発明によれば、場当たり的に各タスクと各通信を実行せずに、計画的に各タスクと各通信とを実行することが可能となる。 According to the present invention, it is possible to systematically execute each task and each communication without executing each task and each communication ad hoc.

実施の形態1における分散処理システム100の構成図。1 is a configuration diagram of a distributed processing system 100 according to Embodiment 1. FIG. 実施の形態1におけるスケジューリング装置200の構成図。1 is a configuration diagram of a scheduling device 200 according to Embodiment 1. FIG. 実施の形態1における分散処理装置300の構成図。1 is a configuration diagram of a distributed processing device 300 according to Embodiment 1. FIG. 実施の形態1における分散処理方法のフローチャート。4 is a flowchart of a distributed processing method according to Embodiment 1; 実施の形態1におけるタスク情報111を示す図。4 shows task information 111 according to Embodiment 1. FIG. 実施の形態1における有向グラフ112を示す図。4 shows a directed graph 112 according to the first embodiment; FIG. 実施の形態1におけるトポロジグラフ113を示す図。4 shows a topology graph 113 according to the first embodiment; FIG. 実施の形態1における仮スケジュールグラフ114を示す図。4 shows the tentative schedule graph 114 according to the first embodiment; FIG. 実施の形態1における競合解消処理(S200)のフローチャート。4 is a flowchart of conflict resolution processing (S200) according to the first embodiment; 実施の形態1における競合解消処理(S200)のフローチャート。4 is a flowchart of conflict resolution processing (S200) according to the first embodiment; 実施の形態1におけるタスク調整処理(S300)のフローチャート。4 is a flowchart of task adjustment processing (S300) according to the first embodiment; 実施の形態1におけるタスク調整処理(S300)のフローチャート。4 is a flowchart of task adjustment processing (S300) according to the first embodiment; 実施の形態1における通信調整処理(S400)のフローチャート。4 is a flowchart of communication adjustment processing (S400) according to the first embodiment; 実施の形態1における通信調整処理(S400)のフローチャート。4 is a flowchart of communication adjustment processing (S400) according to the first embodiment; 実施の形態1における通信調整処理(S400)のフローチャート。4 is a flowchart of communication adjustment processing (S400) according to the first embodiment; 実施の形態2における分散処理システム100Xの構成図。FIG. 2 is a configuration diagram of a distributed processing system 100X according to Embodiment 2; 実施の形態2における分散処理装置300Xの構成図。FIG. 3 is a configuration diagram of a distributed processing device 300X according to Embodiment 2; 実施の形態2における分散処理方法のフローチャート。8 is a flowchart of a distributed processing method according to Embodiment 2; 実施の形態3における分散処理装置300の構成図。FIG. 4 is a configuration diagram of a distributed processing device 300 according to Embodiment 3; 実施の形態におけるスケジューリング装置200のハードウェア構成図。1 is a hardware configuration diagram of a scheduling device 200 according to an embodiment; FIG. 実施の形態における分散処理装置300のハードウェア構成図。3 is a hardware configuration diagram of the distributed processing device 300 according to the embodiment; FIG.

実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。 The same or corresponding elements are denoted by the same reference numerals in the embodiments and drawings. Descriptions of elements having the same reference numerals as those described will be omitted or simplified as appropriate. Arrows in the figure mainly indicate the flow of data or the flow of processing.

実施の形態1.
分散処理システム100について、図1から図15に基づいて説明する。
Embodiment 1.
The distributed processing system 100 will be described with reference to FIGS. 1 to 15. FIG.

***構成の説明***
図1に基づいて、分散処理システム100の構成を説明する。
分散処理システム100は、複数のタスクを複数のプロセッサによって分散処理するシステムである。
*** Configuration description ***
The configuration of the distributed processing system 100 will be described based on FIG.
A distributed processing system 100 is a system in which a plurality of tasks are distributedly processed by a plurality of processors.

分散処理システム100において、各プロセッサを備える装置を分散処理装置300と称する。 In the distributed processing system 100 , a device including each processor is called a distributed processing device 300 .

分散処理システム100は、複数の分散処理装置300を備える。
各分散処理装置300は、同期機能を有する。
複数の分散処理装置300は、各々の同期機能によって互いに同期している。
A distributed processing system 100 includes a plurality of distributed processing devices 300 .
Each distributed processing device 300 has a synchronization function.
A plurality of distributed processing apparatuses 300 are synchronized with each other by their respective synchronization functions.

図1において、分散処理システム100は、3台の分散処理装置(300A~300C)を備えている。
但し、分散処理システム100は、2台の分散処理装置300または4台以上の分散処理装置300を備えてもよい。
In FIG. 1, the distributed processing system 100 comprises three distributed processing devices (300A-300C).
However, the distributed processing system 100 may include two distributed processing apparatuses 300 or four or more distributed processing apparatuses 300 .

複数の分散処理装置300によって制御される複数の機器のそれぞれを対象機器101と称する。
対象機器101の具体例は、ロボットアーム、サーボまたはモータである。
Each of the plurality of devices controlled by the plurality of distributed processing apparatuses 300 is called a target device 101 .
A specific example of the target device 101 is a robot arm, servo or motor.

分散処理システム100は、複数の対象機器101を備える。
図1において、分散処理システム100は、3台の対象機器(101A~101C)を備えている。
各対象機器は、1台以上の分散処理装置300によって制御される。例えば、対象機器101Aを制御するための複数のタスクAxが存在する。複数の分散処理装置300は複数のタスクAxを連携して実行する。
但し、分散処理システム100は、2台の対象機器101または4台以上の対象機器101を備えてもよい。
A distributed processing system 100 includes a plurality of target devices 101 .
In FIG. 1, the distributed processing system 100 comprises three target devices (101A-101C).
Each target device is controlled by one or more distributed processing units 300 . For example, there are multiple tasks Ax for controlling the target device 101A. A plurality of distributed processing apparatuses 300 cooperate to execute a plurality of tasks Ax.
However, the distributed processing system 100 may include two target devices 101 or four or more target devices 101 .

分散処理システム100は、転送装置102を備える。
転送装置102は、分散処理装置300間でデータを転送する。転送装置102の具体例は、ルーター、スイッチ、ブリッジまたはハブである。
The distributed processing system 100 comprises a transfer device 102 .
The transfer device 102 transfers data between the distributed processing devices 300 . Examples of forwarding device 102 are routers, switches, bridges or hubs.

複数の分散処理装置300は、転送装置102を介して互いに通信を行う。
具体的には、各タスクの実行結果を次のタスクに与えるための通信が行われる。
但し、複数の分散処理装置300は、転送装置102を介さずに互いに通信を行ってもよい。その場合、転送装置102は不要であり、分散処理装置300同士が接続される。
A plurality of distributed processing apparatuses 300 communicate with each other via the transfer apparatus 102 .
Specifically, communication is performed to give the execution result of each task to the next task.
However, the plurality of distributed processing apparatuses 300 may communicate with each other without going through the transfer apparatus 102 . In that case, the transfer device 102 is unnecessary, and the distributed processing devices 300 are connected to each other.

分散処理システム100は、スケジューリング装置200を備える。
スケジューリング装置200は、複数のタスクを複数のプロセッサによって分散処理するためのスケジューリングを行う。スケジューリングは、各タスクと各通信とに対する時間割り当てを意味する。
つまり、スケジューリング装置200は、各タスクの実行時間と各通信の実行時間とが指定されたスケジュールを生成する。
The distributed processing system 100 has a scheduling device 200 .
The scheduling device 200 performs scheduling for distributed processing of multiple tasks by multiple processors. Scheduling means allocating time for each task and each communication.
That is, the scheduling device 200 generates a schedule in which the execution time of each task and the execution time of each communication are specified.

各分散処理装置300は、割り当てられた各タスクをスケジュールに指定された各タスクの実行時間に実行し、割り当てられた各タスクの実行結果の通信をスケジュールに指定された各通信の実行時間に実行する。 Each distributed processing unit 300 executes each assigned task at the execution time of each task specified in the schedule, and communicates the execution result of each assigned task at the execution time of each communication specified in the schedule. do.

図1において、スケジューリング装置200は、分散処理装置300Aに接続されている。
但し、スケジューリング装置200は、転送装置102に接続されてよい。
また、スケジューリング装置200が転送装置102の機能を有してもよい。その場合、転送装置102は不要であり、スケジューリング装置200が転送装置102の代わりに複数の分散処理装置300に接続される。
In FIG. 1, the scheduling device 200 is connected to the distributed processing device 300A.
However, the scheduling device 200 may be connected to the transfer device 102 .
Also, the scheduling device 200 may have the function of the transfer device 102 . In that case, the transfer device 102 is unnecessary, and the scheduling device 200 is connected to the multiple distributed processing devices 300 instead of the transfer device 102 .

分散処理システム100のネットワーク構成は、どのようなネットワーク構成であってもよい。
分散処理システム100のネットワークは、有線ネットワークと無線ネットワークとのいずれであってもよい。
The network configuration of distributed processing system 100 may be any network configuration.
The network of distributed processing system 100 may be either a wired network or a wireless network.

図2に基づいて、スケジューリング装置200の構成を説明する。
スケジューリング装置200は、プロセッサ201とメモリ202と補助記憶装置203と外部インタフェース204といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
The configuration of the scheduling device 200 will be described based on FIG.
The scheduling device 200 is a computer comprising hardware such as a processor 201 , a memory 202 , an auxiliary storage device 203 and an external interface 204 . These pieces of hardware are connected to each other via signal lines.

プロセッサ201は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ201は、CPUまたはシステムLSIである。
ICは、Integrated Circuitの略称である。
CPUは、Central Processing Unitの略称である。
LSIは、Large Scale Integrationの略称である。
A processor 201 is an IC that performs arithmetic processing and controls other hardware. For example, processor 201 is a CPU or system LSI.
IC is an abbreviation for Integrated Circuit.
CPU is an abbreviation for Central Processing Unit.
LSI is an abbreviation for Large Scale Integration.

メモリ202は揮発性または不揮発性の記憶装置である。メモリ202は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ202はRAMである。メモリ202に記憶されたデータは必要に応じて補助記憶装置203に保存される。
RAMは、Random Access Memoryの略称である。
Memory 202 is a volatile or non-volatile storage device. Memory 202 is also referred to as main storage or main memory. For example, memory 202 is RAM. The data stored in memory 202 is saved in auxiliary storage device 203 as needed.
RAM is an abbreviation for Random Access Memory.

補助記憶装置203は不揮発性の記憶装置である。例えば、補助記憶装置203は、ROM、HDD、SSDまたはメモリカードである。補助記憶装置203に記憶されたデータは必要に応じてメモリ202にロードされる。
ROMは、Read Only Memoryの略称である。
HDDは、Hard Disk Driveの略称である。
SSDは、Solid State Driveの略称である。
Auxiliary storage device 203 is a non-volatile storage device. For example, the auxiliary storage device 203 is ROM, HDD, SSD or memory card. Data stored in the auxiliary storage device 203 is loaded into the memory 202 as required.
ROM is an abbreviation for Read Only Memory.
HDD is an abbreviation for Hard Disk Drive.
SSD is an abbreviation for Solid State Drive.

外部インタフェース204は、外部の機器(例えば、分散処理装置300Aなど)と通信または入出力を行うためのインタフェースである。つまり、外部インタフェース204は、通信インタフェースと入出力インタフェースとを兼ねる。例えば、外部インタフェース204は、イーサネット(登録商標)、USBおよびUARTのそれぞれのポートである。
USBは、Universal Serial Busの略称である。
UARTは、Universal Asynchronous Receiver Transmitterの略称である。
The external interface 204 is an interface for communicating with, or inputting/outputting from, an external device (for example, the distributed processing device 300A). That is, the external interface 204 serves as both a communication interface and an input/output interface. For example, the external interfaces 204 are Ethernet (registered trademark), USB, and UART ports.
USB is an abbreviation for Universal Serial Bus.
UART is an abbreviation for Universal Asynchronous Receiver Transmitter.

スケジューリング装置200は、スケジューリング部210とスケジュール出力部220といった要素を備える。
スケジューリング部210は、情報取得部211と仮スケジュール決定部212と競合解消部213といった要素を備える。
これらの要素はソフトウェアで実現される。
The scheduling device 200 includes elements such as a scheduling section 210 and a schedule output section 220 .
The scheduling unit 210 includes elements such as an information acquisition unit 211 , a tentative schedule determination unit 212 and a conflict resolution unit 213 .
These elements are implemented in software.

補助記憶装置203には、スケジューリング部210とスケジュール出力部220としてコンピュータを機能させるためのスケジューリングプログラムが記憶されている。スケジューリングプログラムは、メモリ202にロードされて、プロセッサ201によって実行される。
補助記憶装置203には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ202にロードされて、プロセッサ201によって実行される。
プロセッサ201は、OSを実行しながら、スケジューリングプログラムを実行する。
OSは、Operating Systemの略称である。
Auxiliary storage device 203 stores a scheduling program for causing the computer to function as scheduling section 210 and schedule output section 220 . The scheduling program is loaded into memory 202 and executed by processor 201 .
The auxiliary storage device 203 further stores an OS. At least part of the OS is loaded into memory 202 and executed by processor 201 .
The processor 201 executes the scheduling program while executing the OS.
OS is an abbreviation for Operating System.

スケジューリングプログラムの入出力データは記憶部290に記憶される。
メモリ202は記憶部290として機能する。但し、補助記憶装置203、プロセッサ201内のレジスタおよびプロセッサ201内のキャッシュメモリなどの記憶装置が、メモリ202の代わりに、又は、メモリ202と共に、記憶部290として機能してもよい。
Input/output data of the scheduling program is stored in the storage unit 290 .
Memory 202 functions as storage unit 290 . However, a storage device such as the auxiliary storage device 203 , a register within the processor 201 and a cache memory within the processor 201 may function as the storage unit 290 instead of or together with the memory 202 .

スケジューリング装置200は、プロセッサ201を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ201の機能を分担する。 The scheduling device 200 may include multiple processors that substitute for the processor 201 . Multiple processors share the functions of processor 201 .

スケジューリングプログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。 The scheduling program can be recorded (stored) in a non-volatile recording medium such as an optical disc or flash memory in a computer-readable manner.

図3に基づいて、分散処理装置300の構成を説明する。
分散処理装置300は、プロセッサ301とメモリ302と補助記憶装置303と外部インタフェース304といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
The configuration of the distributed processing device 300 will be described based on FIG.
The distributed processing device 300 is a computer comprising hardware such as a processor 301 , a memory 302 , an auxiliary storage device 303 and an external interface 304 . These pieces of hardware are connected to each other via signal lines.

プロセッサ301は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ301は、CPUまたはシステムLSIである。
メモリ302は揮発性または不揮発性の記憶装置である。メモリ302は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ302はRAMである。メモリ302に記憶されたデータは必要に応じて補助記憶装置303に保存される。
補助記憶装置303は不揮発性の記憶装置である。例えば、補助記憶装置303は、ROM、HDD、SSDまたはメモリカードである。補助記憶装置303に記憶されたデータは必要に応じてメモリ302にロードされる。
外部インタフェース304は、外部の機器(例えば、対象機器101および転送装置102など)と通信または入出力を行うためのインタフェースである。つまり、外部インタフェース304は、通信インタフェースと入出力インタフェースとを兼ねる。例えば、外部インタフェース304は、イーサネット(登録商標)、USBおよびUARTのそれぞれのポートである。
A processor 301 is an IC that performs arithmetic processing and controls other hardware. For example, processor 301 is a CPU or system LSI.
Memory 302 is a volatile or non-volatile storage device. Memory 302 is also referred to as main storage or main memory. For example, memory 302 is RAM. The data stored in the memory 302 is saved in the auxiliary storage device 303 as required.
Auxiliary storage device 303 is a non-volatile storage device. For example, the auxiliary storage device 303 is ROM, HDD, SSD or memory card. Data stored in the auxiliary storage device 303 is loaded into the memory 302 as required.
The external interface 304 is an interface for communicating with, or inputting/outputting from, an external device (for example, the target device 101 and the transfer device 102). That is, the external interface 304 serves as both a communication interface and an input/output interface. For example, the external interfaces 304 are Ethernet (registered trademark), USB, and UART ports.

分散処理装置300は、実行制御部311とタスク実行部312と通信実行部313と機器制御部314とスケジュール受付部319といった要素を備える。これらの要素はソフトウェアで実現される。 The distributed processing device 300 includes elements such as an execution control unit 311 , a task execution unit 312 , a communication execution unit 313 , a device control unit 314 and a schedule reception unit 319 . These elements are implemented in software.

補助記憶装置303には、実行制御部311とタスク実行部312と通信実行部313と機器制御部314とスケジュール受付部319としてコンピュータを機能させるための分散処理プログラムが記憶されている。分散処理プログラムは、メモリ302にロードされて、プロセッサ301によって実行される。
補助記憶装置303には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ302にロードされて、プロセッサ301によって実行される。
プロセッサ301は、OSを実行しながら、分散処理プログラムを実行する。
The auxiliary storage device 303 stores a distributed processing program for causing the computer to function as an execution control unit 311 , a task execution unit 312 , a communication execution unit 313 , a device control unit 314 and a schedule reception unit 319 . The distributed processing program is loaded into memory 302 and executed by processor 301 .
The auxiliary storage device 303 further stores an OS. At least part of the OS is loaded into memory 302 and executed by processor 301 .
The processor 301 executes the distributed processing program while executing the OS.

分散処理プログラムの入出力データは記憶部390に記憶される。例えば、記憶部390には、スケジュール391などが記憶される。
メモリ302は記憶部390として機能する。但し、補助記憶装置303、プロセッサ301内のレジスタおよびプロセッサ301内のキャッシュメモリなどの記憶装置が、メモリ302の代わりに、又は、メモリ302と共に、記憶部390として機能してもよい。
Input/output data of the distributed processing program is stored in the storage unit 390 . For example, the storage unit 390 stores a schedule 391 and the like.
Memory 302 functions as storage unit 390 . However, a storage device such as the auxiliary storage device 303 , a register within the processor 301 and a cache memory within the processor 301 may function as the storage unit 390 instead of or together with the memory 302 .

分散処理装置300は、プロセッサ301を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ301の機能を分担する。 The distributed processing device 300 may include multiple processors in place of the processor 301 . Multiple processors share the functions of processor 301 .

分散処理プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。 The distributed processing program can be computer-readable and recorded (stored) in a non-volatile recording medium such as an optical disc or flash memory.

***動作の説明***
分散処理システム100の動作の手順は分散処理方法に相当する。また、分散処理システム100の動作の手順は分散処理プログラムによる処理の手順に相当する。スケジューリング装置200のためのスケジューリングプログラムは分散処理システム100のための分散処理プログラムの一部である。
***Description of operation***
The operating procedure of the distributed processing system 100 corresponds to the distributed processing method. Further, the procedure of operation of the distributed processing system 100 corresponds to the procedure of processing by the distributed processing program. The scheduling program for scheduling device 200 is part of the distributed processing program for distributed processing system 100 .

図4に基づいて、分散処理方法を説明する。
ステップS110において、スケジューリング装置200の情報取得部211は、外部インタフェース204または記録媒体を介して、システム情報を取得する。
システム情報は、構成情報と、タスク情報と、を含むデータである。
構成情報は、分散処理システム100の構成を示す。
タスク情報は、分散処理システム100によって実行される複数のタスクを示す。
The distributed processing method will be described based on FIG.
In step S110, the information acquisition unit 211 of the scheduling device 200 acquires system information via the external interface 204 or a recording medium.
System information is data that includes configuration information and task information.
The configuration information indicates the configuration of the distributed processing system 100. FIG.
The task information indicates multiple tasks to be executed by the distributed processing system 100 .

図5に基づいて、タスク情報111を説明する。タスク情報111はタスク情報の具体例である。
タスク情報111は、5つのタスク(A,B,C,D,A’)のそれぞれの情報を示している。
具体的には、タスク情報111は、タスク名、前タスク、次タスク、処理量、通信量、タスク優先度、通信優先度および割り当て先を示している。
タスク名は、タスクを識別する。
前タスクは、1つ前に実行されるタスクを識別する。
次タスクは、次に実行されるタスクを識別する。
処理量は、タスクの実行に要する処理の量である。処理量に応じて、タスクの実行時間の長さが決まる。例えば、処理量は、処理時間長またはステップ数などで表すことができる。処理時間長は、基準となる実行条件の元でタスクの実行に要する時間の長さである。例えば、実行条件はプロセッサ301などの条件である。
通信量は、タスクの実行結果を次のタスクに与えるための通信の量である。例えば、通信量は、通信時間長またはデータサイズなどで表される。通信時間長は、基準となる通信条件の元で実行結果の通信に要する時間の長さである。例えば、通信条件は通信速度などの条件である。分散処理装置300の構成および各タスクの割り当て方によっては、実行結果の通信が不要になる場合がある。例えば、タスクと次タスクが同じ分散処理装置300によって実行される場合、タスクの実行結果が分散処理装置300の中で共有されるため、通信量は限りなく小さい。つまり、通信量は無視できるほど小さい。
タスク優先度は、タスクの優先度である。
通信優先度は、タスクの実行結果を次のタスクに与えるための通信の優先度である。
割り当て先は、タスクが割り当てられたプロセッサ301を識別する。つまり、割り当て先は、タスクを実行するプロセッサ301を識別する。例えば、装置Aは、分散処理装置300Aのプロセッサ301を識別する。
The task information 111 will be described based on FIG. Task information 111 is a specific example of task information.
The task information 111 indicates information for each of five tasks (A, B, C, D, A').
Specifically, the task information 111 indicates task name, previous task, next task, processing amount, communication amount, task priority, communication priority, and assignment destination.
A task name identifies a task.
A previous task identifies the task to be executed immediately before.
Next task identifies the next task to be executed.
The amount of processing is the amount of processing required to execute the task. The length of task execution time is determined according to the amount of processing. For example, the amount of processing can be represented by the length of processing time or the number of steps. The processing time length is the length of time required to execute the task under the standard execution conditions. For example, the execution condition is the condition of the processor 301 or the like.
The amount of communication is the amount of communication for giving the task execution result to the next task. For example, the amount of communication is represented by communication time length or data size. The communication time length is the length of time required for communication of execution results under standard communication conditions. For example, the communication conditions are conditions such as communication speed. Depending on the configuration of the distributed processing device 300 and how each task is assigned, communication of execution results may not be necessary. For example, when the task and the next task are executed by the same distributed processing device 300, the execution result of the task is shared among the distributed processing devices 300, so the amount of communication is extremely small. In other words, the amount of communication is so small that it can be ignored.
A task priority is the priority of a task.
Communication priority is the priority of communication for giving the execution result of a task to the next task.
Assignee identifies the processor 301 to which the task is assigned. That is, the assignee identifies the processor 301 that executes the task. For example, device A identifies processor 301 of distributed processing device 300A.

タスク名、前タスクおよび次タスクは、タスク間の依存関係を示す。
タスク間の依存関係によって、複数のタスクの実行順が定まる。
The task name, previous task and next task indicate dependencies between tasks.
Dependencies between tasks determine the execution order of multiple tasks.

図4に戻り、ステップS120から説明を続ける。
ステップS120において、スケジューリング装置200の仮スケジュール決定部212は、システム情報に基づいて、仮スケジュールを決定する。
Returning to FIG. 4, the description continues from step S120.
In step S120, the provisional schedule determination unit 212 of the scheduling device 200 determines a provisional schedule based on the system information.

仮スケジュールは、各タスクに割り当てられる実行時間と各通信に割り当てられる実行時間とを指定する。 The tentative schedule specifies the execution time assigned to each task and the execution time assigned to each communication.

仮スケジュールは、タスク間の競合と通信間の競合とを考慮せずに決定される。
タスク間の競合は、同じ分散処理装置300に割り当てられたタスク間で実行時間の少なくとも一部が重複することを意味する。1台の分散処理装置300が1度に実行することが可能なタスクの数が1であると仮定する。つまり、各分散処理装置300は、2つ以上のタスクを同じタイミングで実行することができない。
通信間の競合は、同じ通信路を用いて実行される通信間で実行時間の少なくとも一部が重複することを意味する。各分散処理装置300が2本1組の通信路を用いて全二重通信を行うと仮定する。また、各通信路で1度に通信することが可能な実行結果の数が1であると仮定する。つまり、各通信路で2つ以上の実行結果を同じタイミングで通信することができない。
A tentative schedule is determined without considering conflicts between tasks and communications.
Conflict between tasks means that at least part of the execution time overlaps between tasks assigned to the same distributed processing device 300 . Assume that the number of tasks that can be executed by one distributed processing device 300 at one time is one. In other words, each distributed processing device 300 cannot execute two or more tasks at the same timing.
Contention between communications means that at least part of the execution time overlaps between communications carried out using the same channel. Assume that each distributed processing device 300 performs full-duplex communication using a set of two communication paths. It is also assumed that the number of execution results that can be communicated at one time through each communication channel is one. In other words, each communication path cannot communicate two or more execution results at the same timing.

各分散処理装置300の仮スケジュールは以下のように決定される。
まず、仮スケジュール決定部212は、タスク情報を参照し、タスク名の欄と前タスクの欄と次タスクの欄とに基づいて、複数のタスクの実行順を決定する。
また、仮スケジュール決定部212は、タスク情報を参照し、処理量の欄に基づいて、各タスクの実行時間の長さを決定する。
また、仮スケジュール決定部212は、タスク情報を参照し、通信量の欄に基づいて、各通信の実行時間の長さを決定する。
また、仮スケジュール決定部212は、タスク情報を参照し、割り当て先欄に基づいて各タスクの割り当て先となる分散処理装置300を決定する。
また、仮スケジュール決定部212は、各タスクの割り当て先欄と次タスクの割り当て先欄とに基づいて、各タスクの割り当て先が次タスクの割り当て先と異なるか判定する。各タスクの割り当て先が次タスクの割り当て先と異なる場合、仮スケジュール決定部212は通信処理の割り当てを行う。各タスクの割り当て先が次タスクの割り当て先と同一である場合、仮スケジュール決定部212は通信処理の割り当てを行わない。タスクの割り当て先が同一であるので、通信によるタスクを実行するためのデータを共有するための通信が不要であるためである。
そして、仮スケジュール決定部212は、複数のタスクの実行順と、各タスクの実行時間の長さと、各通信の実行時間の長さと、各タスクの割り当て先と、に基づいて、各分散処理装置300における各タスクの実行時間と、各分散処理装置300における各通信の実行時間と、を決定する。仮スケジュール決定部212は、決定した各情報を示すデータを生成する。例えば、仮スケジュール決定部212は、図8の仮スケジュールグラフ114に相当するデータを生成する。
The provisional schedule for each distributed processing device 300 is determined as follows.
First, the provisional schedule determining unit 212 refers to the task information, and determines the execution order of the plurality of tasks based on the task name column, the previous task column, and the next task column.
The provisional schedule determination unit 212 also refers to the task information and determines the length of execution time of each task based on the processing amount column.
The provisional schedule determination unit 212 also refers to the task information and determines the length of execution time of each communication based on the column of traffic.
The provisional schedule determination unit 212 also refers to the task information and determines the distributed processing device 300 to which each task is assigned based on the assignment destination column.
Also, the provisional schedule determination unit 212 determines whether the assignment destination of each task is different from the assignment destination of the next task based on the assignment destination column of each task and the assignment destination column of the next task. If the allocation destination of each task is different from the allocation destination of the next task, the provisional schedule determination unit 212 allocates communication processing. If the assignee of each task is the same as the assignee of the next task, the provisional schedule determining unit 212 does not assign the communication process. This is because the assignment destination of the task is the same, so communication for sharing data for executing the task by communication is unnecessary.
Then, the provisional schedule determination unit 212 determines each distributed processing device based on the order of execution of the plurality of tasks, the length of execution time of each task, the length of execution time of each communication, and the assignment destination of each task. Execution time of each task in 300 and execution time of each communication in each distributed processing device 300 are determined. The provisional schedule determination unit 212 generates data indicating each determined information. For example, the provisional schedule determination unit 212 generates data corresponding to the provisional schedule graph 114 of FIG.

図6に、有向グラフ112を示す。有向グラフ112は、タスク情報111(図5参照)に基づいて生成される有向グラフである。
有向グラフ112は、以下のような依存関係を表している。
タスクAの実行の後、タスクAの実行結果に基づいて、タスクB、タスクCおよびタスクDが実行される。
タスクB、タスクCおよびタスクDの実行の後、タスクBの実行結果とタスクCの実行結果とタスクDの実行結果とに基づいて、タスクA’が実行される。
The directed graph 112 is shown in FIG. The directed graph 112 is a directed graph generated based on the task information 111 (see FIG. 5).
The directed graph 112 represents the following dependencies.
After task A is executed, task B, task C, and task D are executed based on the execution result of task A. FIG.
After execution of task B, task C and task D, task A' is executed based on the execution result of task B, the execution result of task C, and the execution result of task D. FIG.

図7に、トポロジグラフ113を示す。トポロジグラフ113は、タスク情報111と共に取得された構成情報に基づいて生成される。
トポロジグラフ113は、以下のような構成を表している。
分散処理装置300Aのポート1が転送装置102のポート2に接続されている。
分散処理装置300Bのポート4が転送装置102のポート3に接続されている。
分散処理装置300Cのポート6が転送装置102のポート5に接続されている。
The topology graph 113 is shown in FIG. The topology graph 113 is generated based on configuration information acquired together with the task information 111 .
The topology graph 113 represents the following configuration.
Port 1 of the distributed processing device 300 A is connected to port 2 of the transfer device 102 .
Port 4 of distributed processing device 300B is connected to port 3 of transfer device 102 .
Port 6 of the distributed processing device 300C is connected to port 5 of the transfer device 102 .

図8に、仮スケジュールグラフ114を示す。仮スケジュールグラフ114は、タスク情報111(図5参照)と、タスク情報111と共に取得された構成情報(図7参照)と、に基づいて生成される。
「CPUn」は、分散処理装置300nのプロセッサ301を意味する。
「ポートx-y」は、ポートxからポートyへの通信路を意味する。
「スイッチ」は、転送装置102を意味する。
「A」、「B」、「C」、「D」または「A’」が記された丸は、タスクを表している。
「Tn」は、実行結果の通信nを表している。
「Sn」は、転送用のタスクnを表している。
仮スケジュールグラフ114は、例えば、以下のような仮スケジュールを表す。
タスクAには、実行時間「0~10」が割り当てられる。
通信T5には、実行時間「10~15」が割り当てられる。
タスクS3には、実行時間「10」が割り当てられる。タスクSnによるタイムラグがゼロであると仮定する。実際の処理に応じて、転送の遅延およびバッファリングの遅延が加えられてもよい。
通信T6には、実行時間「10+α~15+α」が割り当てられる。「α」は1フレーム分の通信時間を意味する。
タスクDには、実行時間「10~20」が割り当てられる。
The tentative schedule graph 114 is shown in FIG. The provisional schedule graph 114 is generated based on the task information 111 (see FIG. 5) and configuration information (see FIG. 7) acquired together with the task information 111. FIG.
"CPUn" means the processor 301 of the distributed processing device 300n.
"Port xy" means a communication path from port x to port y.
A “switch” means a forwarding device 102 .
Circles marked with 'A', 'B', 'C', 'D' or 'A'' represent tasks.
"Tn" represents the communication n of the execution result.
"Sn" represents task n for transfer.
The provisional schedule graph 114 represents, for example, the following provisional schedule.
Task A is assigned an execution time of "0 to 10".
The communication T5 is assigned an execution time of "10-15".
An execution time of "10" is assigned to task S3. Assume that the time lag due to task Sn is zero. Transfer delays and buffering delays may be added depending on the actual processing.
The communication T6 is assigned an execution time of "10+α to 15+α". “α” means communication time for one frame.
Task D is assigned an execution time of "10 to 20".

図4に戻り、ステップS200から説明を続ける。
ステップS200において、スケジューリング装置200の競合解消部213は、仮スケジュールとシステム情報とに基づいて、競合解消処理を実行する。
競合解消処理は、仮スケジュールに指定された各タスクの実行時間と仮スケジュールに指定された各通信の実行時間とを調整することによって、タスク間の競合と通信間の競合とが解消されたスケジュール391を生成する。
競合解消処理(S200)の詳細について後述する。
Returning to FIG. 4, the description continues from step S200.
In step S200, the conflict resolution unit 213 of the scheduling device 200 executes conflict resolution processing based on the provisional schedule and system information.
Conflict resolution processing adjusts the execution time of each task specified in the provisional schedule and the execution time of each communication specified in the provisional schedule, thereby eliminating conflicts between tasks and communications. 391 is generated.
Details of the conflict resolution process (S200) will be described later.

ステップS130において、各分散処理装置300にスケジュール391が設定される。
例えば、スケジューリング装置200のスケジュール出力部220は、外部インタフェース204を介して、各分散処理装置300へスケジュール391を送信する。各分散処理装置300のスケジュール受付部319は、スケジュール391を受信し、スケジュール391を記憶部390に記憶する。この場合、スケジュール出力部220は、スケジュール391を分散処理装置300Aへ送信する。そして、分散処理装置300Aが、転送装置102を介して、分散処理装置300Bと分散処理装置300Cとのそれぞれにスケジュール391を送信する。
例えば、スケジューリング装置200のスケジュール出力部220は、スケジュール391を記録媒体に書き込む。利用者は、記録媒体を用いて、各分散処理装置300にスケジュール391を入力する。そして、各分散処理装置300のスケジュール受付部319は、スケジュール391を受けつけ、スケジュール391を記憶部390に記憶する。
In step S<b>130 , the schedule 391 is set for each distributed processing device 300 .
For example, the schedule output unit 220 of the scheduling device 200 transmits the schedule 391 to each distributed processing device 300 via the external interface 204 . The schedule reception unit 319 of each distributed processing device 300 receives the schedule 391 and stores the schedule 391 in the storage unit 390 . In this case, the schedule output unit 220 transmits the schedule 391 to the distributed processing device 300A. The distributed processing device 300A then transmits the schedule 391 to each of the distributed processing devices 300B and 300C via the transfer device 102 .
For example, the schedule output unit 220 of the scheduling device 200 writes the schedule 391 to a recording medium. A user inputs a schedule 391 to each distributed processing device 300 using a recording medium. The schedule receiving unit 319 of each distributed processing device 300 receives the schedule 391 and stores the schedule 391 in the storage unit 390 .

ステップS140において、各分散処理装置300のプロセッサ301は、割り当てられた各タスクをスケジュール391に指定された各タスクの実行時間に実行する。
さらに、各分散処理装置300のプロセッサ301は、割り当てられた各タスクの実行結果の通信をスケジュール391に指定された各通信の実行時間に実行する。
In step S<b>140 , the processor 301 of each distributed processing device 300 executes each assigned task at the execution time of each task specified in the schedule 391 .
Furthermore, the processor 301 of each distributed processing device 300 communicates the execution result of each assigned task at the execution time of each communication specified in the schedule 391 .

具体的には、実行制御部311が、スケジュール391にしたがって、タスク実行部312と通信実行部313とを動作させる。
タスク実行部312は、割り当てられた各タスクを実行する。
通信実行部313は、割り当てられた各タスクの実行結果を通信する。
機器制御部314は、対象機器101を制御するためのタスクが実行されたときに、タスクからの命令にしたがって対象機器101を制御する。
Specifically, the execution control unit 311 operates the task execution unit 312 and the communication execution unit 313 according to the schedule 391 .
The task execution unit 312 executes each assigned task.
The communication execution unit 313 communicates execution results of each assigned task.
The device control unit 314 controls the target device 101 according to the command from the task when the task for controlling the target device 101 is executed.

実行制御部311は、タスク実行部312を以下のように動作させる。
実行制御部311は、各時刻に、プロセッサ301がアイドル状態であるか判定する。
プロセッサ301がアイドル状態である場合、実行制御部311は、スケジュール391を参照し、実行されていないタスクの有無を判定する。実行されていないタスクを未実行タスクと称する。
1つ以上の未実行タスクが有る場合、実行制御部311は、スケジュール391を参照し、現在時刻から規定時間以内の開始時刻が割り当てられている未実行タスクの有無を判定する。現在時刻から規定時間以内の開始時刻が割り当てられている未実行タスクを実行対象タスクと称する。
実行対象タスクが有る場合、実行制御部311は、タスク実行部312に実行対象タスクを実行させる。
The execution control unit 311 operates the task execution unit 312 as follows.
The execution control unit 311 determines at each time whether the processor 301 is in an idle state.
When the processor 301 is in an idle state, the execution control unit 311 refers to the schedule 391 and determines whether or not there is a task that has not been executed. A task that has not been executed is called an unexecuted task.
If there is one or more unexecuted tasks, the execution control unit 311 refers to the schedule 391 and determines whether there is an unexecuted task assigned a start time within a specified period of time from the current time. An unexecuted task assigned a start time within a specified period of time from the current time is called an execution target task.
If there is an execution target task, the execution control unit 311 causes the task execution unit 312 to execute the execution target task.

実行制御部311は、通信実行部313を以下のように動作させる。
実行制御部311は、各時刻に、通信路が空いているか判定する。
通信路が空いている場合、実行制御部311は、スケジュール391を参照し、実行されていない通信の有無を判定する。実行されていない通信を未実行通信と称する。
1つ以上の未実行通信が有る場合、実行制御部311は、スケジュール391を参照し、現在時刻から規定時間以内の開始時刻が割り当てられている未実行通信の有無を判定する。現在時刻から規定時間以内の開始時刻が割り当てられている未実行通信を実行対象通信と称する。
実行対象通信が有る場合、実行制御部311は、通信実行部313に実行対象通信を実行させる。
The execution control unit 311 operates the communication execution unit 313 as follows.
The execution control unit 311 determines whether the communication channel is available at each time.
If the communication path is available, the execution control unit 311 refers to the schedule 391 and determines whether or not there is communication that has not been executed. Communication that has not been executed is referred to as unexecuted communication.
If there is one or more unexecuted communications, the execution control unit 311 refers to the schedule 391 and determines whether there is an unexecuted communication assigned a start time within a specified period of time from the current time. An unexecuted communication assigned a start time within a specified period of time from the current time is referred to as an execution target communication.
If there is communication to be executed, the execution control unit 311 causes the communication executing unit 313 to execute the communication to be executed.

図9および図10に基づいて、競合解消処理(S200)の流れを説明する。
ステップS201において、競合解消部213は、処理の対象となる優先度の初期値を設定する。処理の対象となる優先度を対象優先度と称する。
具体的には、競合解消部213は、最高優先度を対象優先度にする。これにより、優先度が高いタスクおよび通信から順にスケジュール割り当てが決定される。
The flow of the conflict resolution process (S200) will be described with reference to FIGS. 9 and 10. FIG.
In step S201, the conflict resolution unit 213 sets an initial value of priority to be processed. A priority to be processed is referred to as a target priority.
Specifically, the conflict resolution unit 213 sets the highest priority as the target priority. As a result, schedule assignment is determined in descending order of priority for tasks and communications.

ステップS202において、競合解消部213は、未確定タスクおよび未確定通信の有無を判定する。
未確定タスクは、実行時間が確定していないタスクである。
未確定通信は、実行時間が確定していない通信である。
実行時間は、開始時刻と終了時刻とによって特定される。
In step S202, the conflict resolution unit 213 determines whether or not there is an undetermined task and an undetermined communication.
An undetermined task is a task whose execution time is not determined.
Undetermined communication is communication whose execution time is not determined.
Execution time is specified by a start time and an end time.

未確定タスクと未確定通信との少なくともいずれかが有る場合、処理はステップS203に進む。
未確定タスクと未確定通信とのいずれも無い場合、処理は終了する。
If there is at least one of the undetermined task and the undetermined communication, the process proceeds to step S203.
If there are no pending tasks or pending communications, the process ends.

ステップS203において、競合解消部213は、調整候補タスクおよび調整候補通信の有無を判定する。 In step S203, the conflict resolution unit 213 determines whether or not there are coordination candidate tasks and coordination candidate communications.

調整候補タスクは、対象優先度と同じタスク優先度を有し、実行可能状態であり、保留フラグが非保留(0)を示す未確定タスクである。
実行可能状態は、前タスクが無いか、または、前タスクと前通信とのそれぞれの実行時間が確定している状態である。
保留フラグは、保留(1)または非保留(0)を示す。保留フラグの初期値は非保留(0)である。
An adjustment candidate task is an undetermined task that has the same task priority as the target priority, is in a ready state, and has a pending flag indicating non-suspended (0).
The executable state is a state in which there is no previous task or the respective execution times of the previous task and previous communication are fixed.
The pending flag indicates pending (1) or not pending (0). The initial value of the pending flag is non-pending (0).

調整候補通信は、対象優先度と同じ通信優先度を有し、実行可能状態であり、保留フラグが非保留(0)を示す未確定通信である。
実行可能状態は、タスクの実行時間が確定している状態である。
An adjustment candidate communication is an unconfirmed communication that has the same communication priority as the target priority, is in an executable state, and has a hold flag indicating non-hold (0).
The executable state is a state in which task execution time is fixed.

調整候補タスクと調整候補通信との少なくともいずれかが有る場合、処理はステップS205に進む。
調整候補タスクと調整候補通信とのいずれも無い場合、処理はステップS204に進む。
If there is at least one of the adjustment candidate task and the adjustment candidate communication, the process proceeds to step S205.
If there is no adjustment candidate task or adjustment candidate communication, the process proceeds to step S204.

ステップS204において、競合解消部213は、対象優先度を1つ下げる。
ステップS204の後、処理はステップS202に進む。
In step S204, the conflict resolution unit 213 lowers the target priority by one.
After step S204, the process proceeds to step S202.

ステップS205において、競合解消部213は、調整候補タスクと調整候補通信との中から最も実行順が早いタスクまたは通信を選択する。選択されるタスクまたは選択される通信を調整対象と称する。なお、優先度が高いタスクおよび通信から順にスケジュール割り当てが決定される方針において、調整対象の優先度以上の優先度を有するタスクおよび通信が開始時刻の早い順に調整対象との比較の対象となる。つまり、優先度が低いタスクおよび通信が、優先度が高いタスクおよび通信を避けて割り当てられる。
調整対象がタスクである場合、処理はステップS300に進む。
調整対象が通信である場合、処理はステップS400に進む。
In step S205, the conflict resolution unit 213 selects the task or communication with the earliest execution order from among the coordination candidate tasks and coordination candidate communications. A selected task or selected communication is referred to as an adjustment target. In the policy that schedule allocation is determined in order of priority tasks and communications, tasks and communications having priorities equal to or higher than the priority to be adjusted are compared with those to be adjusted in order of earliest start time. That is, low priority tasks and communications are assigned avoiding high priority tasks and communications.
If the adjustment target is a task, the process proceeds to step S300.
If the adjustment target is communication, the process proceeds to step S400.

ステップS300において、競合解消部213は、タスク調整処理を実行する。
タスク調整処理は、同じプロセッサ301に割り当てられたタスク間で実行時間の少なくとも一部が重複する場合に、優先度が低い方のタスクの実行時間を調整する。
タスク調整処理(S300)の詳細について後述する。
In step S300, the conflict resolution unit 213 executes task adjustment processing.
Task adjustment processing adjusts the execution time of a task with a lower priority when at least part of the execution time overlaps between tasks assigned to the same processor 301 .
Details of the task adjustment processing (S300) will be described later.

ステップS400において競合解消部213は、通信調整処理を実行する。
通信調整処理は、同じ通信路を用いて実行される通信間で実行時間の少なくとも一部が重複する場合に優先度が低い方の通信の実行時間を調整する。
通信調整処理(S400)の詳細について後述する。
In step S400, the conflict resolution unit 213 executes communication adjustment processing.
The communication adjustment process adjusts the execution time of the communication with the lower priority when at least part of the execution time overlaps between the communications executed using the same communication channel.
Details of the communication adjustment process (S400) will be described later.

ステップS300またはステップS400の後、処理はステップS211に進む。 After step S300 or step S400, the process proceeds to step S211.

ステップS211において、競合解消部213は、調整対象の保留フラグを判定する。
調整対象の保留フラグが非保留(0)を示す場合、処理はステップS212に進む。
調整対象の保留フラグが保留(1)を示す場合、処理はステップS202に進む。
In step S211, the conflict resolution unit 213 determines the suspension flag to be adjusted.
If the suspension flag to be adjusted indicates non-suspension (0), the process proceeds to step S212.
If the suspension flag to be adjusted indicates suspension (1), the process proceeds to step S202.

ステップS212において、競合解消部213は、各更新対象を判別し、各更新対象の実行時間を調整し、各更新対象の状態を更新する。 In step S212, the conflict resolution unit 213 determines each update target, adjusts the execution time of each update target, and updates the state of each update target.

更新対象について説明する。
タスク調整処理(S300)が実行された場合、更新対象は、実行時間が調整されたタスクの実行後に実行される各タスクと、実行時間が調整されたタスクの実行後に実行される各通信である。
通信調整処理(S400)が実行された場合、更新対象は、実行時間が調整された通信の実行後に実行される各タスクと、実行時間が調整されたタスクの実行後に実行される各通信である。
Describe the update target.
When the task adjustment process (S300) is executed, the update targets are each task executed after execution of the task whose execution time is adjusted and each communication executed after execution of the task whose execution time is adjusted. .
When the communication adjustment process (S400) is executed, the update targets are each task executed after execution of the communication whose execution time is adjusted and each communication executed after execution of the task whose execution time is adjusted. .

各更新対象の実行時間は以下のように調整される。
調整対象の実行時間が変更された場合、競合解消部213は、更新後の実行時間を基準にして、各更新対象の実行時間をずらす。
The execution time of each update target is adjusted as follows.
When the execution time to be adjusted is changed, the conflict resolution unit 213 shifts the execution time of each update target based on the execution time after update.

各更新対象の状態は以下のように更新される。
調整対象の実行時間が確定していない場合、競合解消部213は、各更新対象の状態を実行不能状態とする。
The state of each update target is updated as follows.
If the execution time to be adjusted has not been determined, the conflict resolution unit 213 sets each update target to an unexecutable state.

ステップS213において、競合解消部213は、各未確定タスクの保留フラグと各未確定通信の保留フラグに非保留(0)を設定する。
ステップS213の後、処理はステップS201に進む。
In step S213, the conflict resolution unit 213 sets the pending flag of each undetermined task and the pending flag of each undetermined communication to non-suspended (0).
After step S213, the process proceeds to step S201.

図11および図12に基づいて、タスク調整処理(S300)の流れを説明する。
調整対象であるタスクを対象タスクと称する。
The flow of the task adjustment process (S300) will be described with reference to FIGS. 11 and 12. FIG.
A task to be adjusted is called a target task.

ステップS301において、競合解消部213は、同一優先度以上の共通タスクの有無を判定する。
同一優先度以上の共通タスクは、対象タスクのタスク優先度以上のタスク優先度を有する共通タスクである。
共通タスクは、対象タスクと割り当て先が共通するタスクである。
同一優先度以上の共通タスクが有る場合、処理はステップS302に進む。
同一優先度以上の共通タスクが無い場合、処理はステップS313に進む。
In step S301, the conflict resolution unit 213 determines whether or not there is a common task with the same priority or higher.
A common task having the same priority or higher is a common task having a task priority higher than the task priority of the target task.
A common task is a task that shares the same destination as the target task.
If there is a common task with the same priority or higher, the process proceeds to step S302.
If there is no common task with the same priority or higher, the process proceeds to step S313.

ステップS302において、競合解消部213は、競合タスクの有無を判定する。
競合タスクは、実行時間の少なくとも一部が対象タスクと重複する高優先度の共通タスクである。
競合タスクが有る場合、処理はステップS303に進む。
競合タスクが無い場合、処理はステップS311に進む。
In step S302, the conflict resolution unit 213 determines whether or not there is a conflict task.
A competing task is a high priority common task that overlaps at least part of its execution time with the target task.
If there is a competing task, the process proceeds to step S303.
If there is no competing task, the process proceeds to step S311.

ステップS303において、競合解消部213は、対象タスクの実行時間を調整する。 In step S303, the conflict resolution unit 213 adjusts the execution time of the target task.

対象タスクの実行時間は以下のように調整される。
対象タスクの実行順が競合タスクの実行順の前である場合、競合解消部213は、対象タスクの実行時間を競合タスクの実行時間の前の時間に変更する。
対象タスクの実行順が競合タスクの実行順の後である場合、競合解消部213は、対象タスクの実行時間を競合タスクの実行時間の後の時間に変更する。
The execution time of the target task is adjusted as follows.
When the execution order of the target task is before the execution order of the competing tasks, the conflict resolution unit 213 changes the execution time of the target task to the time before the execution time of the competing tasks.
If the execution order of the target task is after the execution order of the competing tasks, the conflict resolution unit 213 changes the execution time of the target task to a time after the execution time of the competing tasks.

対象タスクの保留フラグの値は非保留(0)のままである。
ステップS303の後、処理は終了する。
The pending flag value of the target task remains non-suspended (0).
After step S303, the process ends.

ステップS311において、競合解消部213は、可能性タスクの有無を判定する。
可能性タスクは、対象タスクと競合する可能性があるタスクである。具体的には、可能性タスクは、実行時間が確定していない高優先度の共通タスクである。
可能性タスクが有る場合、処理はステップS312に進む。
可能性タスクが無い場合、処理はステップS313に進む。
In step S311, the conflict resolution unit 213 determines whether or not there is a potential task.
A potential task is a task that may conflict with the target task. Specifically, a potential task is a high-priority common task with an uncertain execution time.
If there is a potential task, the process proceeds to step S312.
If there is no possible task, the process proceeds to step S313.

ステップS312において、競合解消部213は、対象タスクの保留フラグに保留(1)を設定する。
ステップS312の後、処理は終了する。
In step S312, the conflict resolution unit 213 sets the pending flag of the target task to pending (1).
After step S312, the process ends.

ステップS313において、競合解消部213は、対象タスクの実行時間を確定する。
対象タスクの保留フラグの値は非保留(0)のままである。
ステップS313の後、処理は終了する。
In step S313, the conflict resolution unit 213 determines the execution time of the target task.
The pending flag value of the target task remains non-suspended (0).
After step S313, the process ends.

図13、図14および図15に基づいて、通信調整処理(S400)を説明する。
調整対象である通信を対象通信と称する。
The communication adjustment process (S400) will be described with reference to FIGS. 13, 14 and 15. FIG.
A communication to be coordinated is referred to as a target communication.

ステップS401において、競合解消部213は、同一優先度以上の共通通信が有るか判定する。
同一優先度以上の共通通信は、対象通信の通信優先度以上の通信優先度を有する共通通信である。
共通通信は、対象通信と通信路が共通する通信である。
同一優先度以上の共通通信が有る場合、処理はステップS402に進む。
同一優先度以上の共通通信が無い場合、処理はステップS404に進む。
In step S401, the conflict resolution unit 213 determines whether there is common communication with the same priority or higher.
A common communication having the same priority or higher is a common communication having a communication priority higher than the communication priority of the target communication.
Common communication is communication that shares a communication path with the target communication.
If there is common communication with the same priority or higher, the process proceeds to step S402.
If there is no common communication with the same priority or higher, the process proceeds to step S404.

ステップS402において、競合解消部213は、競合通信の有無を判定する。
競合通信は、実行時間の少なくとも一部が対象通信と重複する高優先度の共通通信である。
競合通信が有る場合、処理はステップS403に進む。
競合通信が無い場合、処理はステップS411に進む。
In step S402, the contention resolution unit 213 determines whether or not there is contention communication.
A competing communication is a high priority common communication that overlaps at least a portion of its execution time with the target communication.
If there is contention communication, the process proceeds to step S403.
If there is no competing communication, the process proceeds to step S411.

ステップS403において、競合解消部213は、対象通信の実行時間を調整する。 In step S403, the conflict resolution unit 213 adjusts the execution time of the target communication.

対象通信の実行時間は以下のように調整される。
対象通信の実行順が競合通信の実行順の前である場合、競合解消部213は、対象通信の実行時間を競合通信の実行時間の前の時間に変更する。
対象通信の実行順が競合通信の実行順の後である場合、競合解消部213は、対象通信の実行時間を競合通信の実行時間の後の時間に変更する。
The execution time of the target communication is adjusted as follows.
When the execution order of the target communication is before the execution order of the contention communication, the contention resolution unit 213 changes the execution time of the target communication to the time before the execution time of the contention communication.
If the execution order of the target communication is after the execution order of the contention communication, the contention resolution unit 213 changes the execution time of the target communication to a time after the execution time of the contention communication.

対象通信の保留フラグの値は非保留(0)のままである。
ステップS403の後、処理は終了する。
The value of the hold flag of the target communication remains non-hold (0).
After step S403, the process ends.

ステップS404において、競合解消部213は、対象通信の実行時間を確定する。
対象通信の保留フラグの値は非保留(0)のままである。
ステップS404の後、処理は終了する。
In step S404, the conflict resolution unit 213 determines the execution time of the target communication.
The value of the hold flag of the target communication remains non-hold (0).
After step S404, the process ends.

ステップS411において、競合解消部213は、可能性通信の有無を判定する。
可能性通信は、対象通信と競合する可能性がある通信である。具体的には、可能性通信は、実行時間が確定していない高優先度の共通通信である。
可能性通信が有る場合、処理はステップS412に進む。
可能性通信が無い場合、処理はステップS413に進む
In step S411, the contention resolution unit 213 determines whether or not there is possible communication.
A potential communication is a communication that may conflict with the target communication. Specifically, the potential communication is a high-priority common communication whose execution time is not fixed.
If there is possible communication, the process proceeds to step S412.
If there is no possibility communication, the process proceeds to step S413.

ステップS412において、競合解消部213は、対象通信の保留フラグに保留(1)を設定する。
ステップS412の後、処理は終了する。
In step S412, the contention resolution unit 213 sets the hold flag of the target communication to hold (1).
After step S412, the process ends.

ステップS413において、競合解消部213は、混在通信および分割通信の適用の可否を判定する。
言い換えると、競合解消部213は、移行のステップに存在する混在通信および分割通信の判断を実施するための前準備が整っているかを確認する。具体的には、競合解消部213は、混在通信および分割通信の対象となる各競合通信の開始時刻が確定しているかを判断する。
混在通信は、対象通信と混在する通信である。具体的には、混在通信は、対象通信の実行時間と一部が重複する実行時間が割り当てられている通信である。
分割通信は、対象通信の分割を必要とする可能性通信である。具体的には、分割通信は、対象通信の実行時間内の実行時間が割り当てられている可能性通信である。
混在通信および分割通信の適用が可能である場合、処理はステップS414に進む。
混在通信および分割通信の適用が不可である場合、処理はステップS421に進む。
In step S413, the conflict resolution unit 213 determines whether mixed communication and divided communication are applicable.
In other words, the contention resolution unit 213 confirms whether preparations have been made to implement mixed communication and split communication determinations present in the transition step. Specifically, contention resolution section 213 determines whether the start time of each contention communication that is the target of mixed communication and divided communication is fixed.
Mixed communication is communication mixed with target communication. Specifically, mixed communication is communication to which an execution time that partially overlaps with the execution time of the target communication is assigned.
A split communication is a potential communication that requires splitting of the target communication. Specifically, division communication is a possibility communication to which an execution time within the execution time of the target communication is assigned.
If mixed communication and split communication can be applied, the process proceeds to step S414.
If mixed communication and split communication cannot be applied, the process proceeds to step S421.

ステップS414において、競合解消部213は、対象通信の開始時刻を判定する。
対象通信の開始時刻が確定している場合、処理はステップS415に進む。
対象通信の開始時刻が確定していない場合、処理はステップS416に進む。
In step S414, the contention resolution unit 213 determines the start time of the target communication.
If the start time of the target communication has been determined, the process proceeds to step S415.
If the start time of the target communication has not been determined, the process proceeds to step S416.

ステップS415において、競合解消部213は、対象通信の保留フラグに保留(1)を設定する。
ステップS415の後、処理は終了する。
In step S415, the contention resolution unit 213 sets the hold flag of the target communication to hold (1).
After step S415, the process ends.

ステップS416において、競合解消部213は、対象通信の開始時刻を確定する。
対象通信の保留フラグの値は非保留(0)のままである。
ステップS416の後、処理は終了する。
In step S416, the contention resolution unit 213 determines the start time of the target communication.
The value of the hold flag of the target communication remains non-hold (0).
After step S416, the process ends.

ステップS421において、競合解消部213は、混在通信および分割通信の有無を判定する。
混在通信と分割通信との両方が有る場合、処理はステップS423に進む。
混在通信と分割通信との少なくとも一方が無い場合、処理はステップS422に進む。
In step S421, the contention resolution unit 213 determines the presence or absence of mixed communication and divided communication.
If there are both mixed communication and split communication, the process proceeds to step S423.
If at least one of the mixed communication and the divided communication does not exist, the process proceeds to step S422.

ステップS422において、競合解消部213は、対象通信の実行時間を確定する。
対象通信の保留フラグの値は非保留(0)のままである。
ステップS422の後、処理は終了する。
In step S422, the conflict resolution unit 213 determines the execution time of the target communication.
The value of the hold flag of the target communication remains non-hold (0).
After step S422, the process ends.

ステップS423において、競合解消部213は、混在通信と分割通信とのうち開始時刻が早い方の通信を判定する。開始時刻が早い方の通信を先の通信と称する。
先の通信が混在通信である場合、処理はステップS424に進む。
先の通信が分割通信である場合、処理はステップS425に進む。
In step S423, the contention resolution unit 213 determines which of mixed communication and divided communication has an earlier start time. The communication with the earlier start time is referred to as the earlier communication.
If the previous communication is mixed communication, the process proceeds to step S424.
If the previous communication is divided communication, the process proceeds to step S425.

ステップS424において、競合解消部213は、対象通信と混在通信とを1つの通信として扱う。つまり、競合解消部213は、対象通信と混在通信とを混在させた通信を生成する。
対象通信の保留フラグの値は非保留(0)のままである。
ステップS424の後、処理は終了する。
In step S424, the contention resolution unit 213 treats the target communication and the mixed communication as one communication. That is, the contention resolution unit 213 generates communication in which target communication and mixed communication are mixed.
The value of the hold flag of the target communication remains non-hold (0).
After step S424, the process ends.

ステップS425において、競合解消部213は、対象通信を前半の通信と後半の通信とに分割する。
前半の通信は、分割通信の実行時間よりも前の時間の通信である。
後半の通信は、対象通信から前半の通信を除いた残りの通信である。
In step S425, the contention resolution unit 213 divides the target communication into the first half communication and the second half communication.
The first half of the communication is the communication before the execution time of the divided communication.
The second half of the communication is the communication remaining after removing the first half of the communication from the target communication.

そして、競合解消部213は、対象通信の前半の実行時間を確定する。
対象通信の保留フラグの値は非保留(0)のままである。
ステップS425の後、処理は終了する。
The conflict resolution unit 213 then determines the execution time of the first half of the target communication.
The value of the hold flag of the target communication remains non-hold (0).
After step S425, the process ends.

***実施の形態1の効果***
実施の形態1により、場当たり的に各タスクと各通信を実行せずに、計画的に各タスクと各通信とを実行することが可能となる。
*** Effect of Embodiment 1 ***
According to Embodiment 1, each task and each communication can be executed systematically without executing each task and each communication ad hoc.

***実施例1の説明***
スケジューリング装置200は、優先フレームの通信時間を考慮してスケジュール391を生成してもよい。
優先フレームは、各タスクの実行結果の通信よりも優先されるフレームである。具体的な優先フレームは、緊急フレームおよび定時フレームである。緊急フレームは、できるだけ早く通信されるべきフレームである。定時フレームは、通信タイミングが決まっているフレームである。
具体的には、仮スケジュール決定部212は、優先フレーム用の通信時間を予約し、予約された通信時間以外の時間を各タスクおよび各通信に割り当てる。例えば、タスク情報111において優先フレームに最高優先度が与えられることによって、優先フレーム用の通信時間が確保される。
***Description of Example 1***
The scheduling device 200 may generate the schedule 391 in consideration of the communication time of priority frames.
A priority frame is a frame prioritized over the communication of execution results of each task. Specific priority frames are emergency frames and scheduled frames. Urgent frames are frames that should be communicated as soon as possible. A fixed frame is a frame whose communication timing is determined.
Specifically, the provisional schedule determination unit 212 reserves communication time for priority frames, and allocates time other than the reserved communication time to each task and each communication. For example, by giving the priority frame the highest priority in the task information 111, communication time for the priority frame is secured.

***実施例2の説明***
ステップS110(図4参照)において、情報取得部211は、システム情報を自動で取得してもよい。
例えば、実際のタスクまたは実際のタスクと同等のタスクを実行し、実際の通信または実際の通信と同等の通信を実行することによって、システム情報を自動で取得することが可能である。機器の細かな遅延等は算出して補正することができる。
***Description of Example 2***
In step S110 (see FIG. 4), the information acquisition unit 211 may automatically acquire system information.
For example, the system information can be automatically acquired by executing an actual task or a task equivalent to the actual task, and by executing actual communication or communication equivalent to the actual communication. Small device delays and the like can be calculated and corrected.

***実施例3の説明***
スケジューリング装置200は、各タスクの割り当て先を変更することによって、各分散処理装置300の最適なスケジュール391を生成してもよい。つまり、スケジューリング装置200は、各タスクの割り当て先を変更することによって、最適で最短で通信量が少ない時間割り当てを算出してもよい。最適なスケジュール391は、複数のタスクの全体の実行時間が最短であるスケジュール、および、複数のタスクの全体の通信量が最少であるスケジュールである。
***Description of Example 3***
The scheduling device 200 may generate the optimum schedule 391 for each distributed processing device 300 by changing the allocation destination of each task. In other words, the scheduling device 200 may calculate an optimal, shortest time allocation with less communication traffic by changing the allocation destination of each task. The optimal schedule 391 is the schedule with the shortest overall execution time of the multiple tasks, and the schedule with the least overall communication volume of the multiple tasks.

実施の形態2.
1台の分散処理装置300で分散処理を実現する形態について、主に実施の形態1と異なる点を図16から図18に基づいて説明する。
Embodiment 2.
An embodiment in which distributed processing is realized by one distributed processing apparatus 300 will be described mainly with reference to FIGS. 16 to 18 for differences from the first embodiment.

***構成の説明***
図16に基づいて、分散処理システム100Xの構成を説明する。
分散処理システム100Xは、複数の分散処理装置(300A~300C)(図1参照)の代わりに、1台の分散処理装置300Xを備える。
分散処理装置300Xは、複数の分散処理装置(300A~300C)を代替するために、マルチコアプロセッサを備える。
*** Configuration description ***
The configuration of the distributed processing system 100X will be described based on FIG.
The distributed processing system 100X includes one distributed processing device 300X instead of multiple distributed processing devices (300A to 300C) (see FIG. 1).
The distributed processing device 300X comprises a multi-core processor to replace multiple distributed processing devices (300A to 300C).

図17に基づいて、分散処理装置300Xの構成を説明する。
分散処理装置300Xは、複数のプロセッサ(301A~301C)を備えている。
プロセッサ301Aは、分散処理装置300A(図1参照)を代替する。つまり、プロセッサ301Aは、対象機器101Aを制御する。
プロセッサ301Bは、分散処理装置300B(図1参照)を代替する。つまり、プロセッサ301Bは、対象機器101Bを制御する。
プロセッサ301Cは、分散処理装置300C(図1参照)を代替する。つまり、プロセッサ301Cは、対象機器101Cを制御する。
The configuration of the distributed processing device 300X will be described with reference to FIG.
The distributed processing device 300X comprises a plurality of processors (301A-301C).
The processor 301A replaces the distributed processing device 300A (see FIG. 1). That is, the processor 301A controls the target device 101A.
The processor 301B replaces the distributed processing device 300B (see FIG. 1). That is, the processor 301B controls the target device 101B.
The processor 301C replaces the distributed processing device 300C (see FIG. 1). That is, the processor 301C controls the target device 101C.

複数のプロセッサ(301A~301C)のそれぞれは、実行制御部311とタスク実行部312と通信実行部313と機器制御部314とスケジュール受付部319といった要素を備える。 Each of the plurality of processors (301A to 301C) includes elements such as an execution control unit 311, a task execution unit 312, a communication execution unit 313, a device control unit 314, and a schedule reception unit 319.

***動作の説明***
図18に基づいて、分散処理方法を説明する。
実施の形態2における分散処理方法は、実施の形態1における分散処理方法(図4参照)と同様である。
但し、複数のタスクは、複数の分散処理装置300の代わりに、分散処理装置300Xの複数のプロセッサ301によって分散処理される。
***Description of operation***
The distributed processing method will be described with reference to FIG.
The distributed processing method in the second embodiment is the same as the distributed processing method in the first embodiment (see FIG. 4).
However, the plurality of tasks are distributedly processed by the plurality of processors 301 of the distributed processing device 300X instead of the plurality of distributed processing devices 300. FIG.

***実施の形態2の効果***
実施の形態2により、1台の分散処理装置300で分散処理を実現することが可能となる。
*** Effect of Embodiment 2 ***
According to the second embodiment, it is possible to realize distributed processing with one distributed processing device 300 .

実施の形態3.
分散処理装置300においてタスクと通信とのそれぞれの実行開始のタイミングを調整する形態について、主に実施の形態1と異なる点を図19に基づいて説明する。
Embodiment 3.
A mode of adjusting the timings of starting execution of tasks and communications in the distributed processing device 300 will be described mainly with reference to FIG. 19 for differences from the first embodiment.

***構成の説明***
図19に基づいて、分散処理装置300の構成を説明する。
分散処理装置300は、さらに、タスク処理待機部315と通信待機部316とを備える。
分散処理プログラムは、さらに、タスク処理待機部315と通信待機部316としてコンピュータを機能させる。
*** Configuration description ***
The configuration of the distributed processing device 300 will be described with reference to FIG.
The distributed processing device 300 further includes a task processing waiting section 315 and a communication waiting section 316 .
The distributed processing program further causes the computer to function as a task processing waiting section 315 and a communication waiting section 316 .

***動作の説明***
実施の形態3における分散処理方法は、実施の形態1における分散処理方法(図4参照)と同様である。
但し、ステップS120において、仮スケジュール決定部212は、各タスクの処理時間と各通信時間とのそれぞれにマージンを持たせて、仮スケジュールを生成する。その結果、ステップS200において、各タスクの処理時間と各通信時間とのそれぞれにマージンを持たせて、スケジュール391が生成される。
***Description of operation***
The distributed processing method in Embodiment 3 is the same as the distributed processing method in Embodiment 1 (see FIG. 4).
However, in step S120, the provisional schedule determining unit 212 generates a provisional schedule by giving margins to the processing time of each task and the communication time. As a result, in step S200, a schedule 391 is generated with a margin between the processing time of each task and the communication time.

また、ステップS140において、タスク処理待機部315と通信待機部316は以下のように動作する。
タスク処理待機部315は、タスク実行部312が各タスクを実行する前に、スケジュール391に指定された各タスクの実行時間になるまでタスク実行部312を待機させる。例えば、タスク処理待機部315は、スケジュール391に指定された各タスクの実行時間になるまで、各タスクをタスク実行部312に入力しない。
通信待機部316は、各タスクが実行された後に、スケジュール391に指定された各通信の実行時間になるまで通信実行部313を待機させる。例えば、通信待機部316は、スケジュール391に指定された各通信の実行時間になるまで、各タスクの実行結果を通信実行部313に入力しない。
Also, in step S140, the task processing standby unit 315 and the communication standby unit 316 operate as follows.
The task processing standby unit 315 causes the task execution unit 312 to wait until the execution time of each task specified in the schedule 391 before the task execution unit 312 executes each task. For example, the task processing standby unit 315 does not input each task to the task execution unit 312 until the execution time of each task specified in the schedule 391 is reached.
The communication standby unit 316 causes the communication execution unit 313 to wait until the execution time of each communication specified in the schedule 391 after each task is executed. For example, the communication standby unit 316 does not input the execution result of each task to the communication execution unit 313 until the execution time of each communication specified in the schedule 391 .

***実施の形態3の効果***
分散処理方法により、各タスクの処理時間から通信タイミングを推定し、通信スケジュールが策定される。しかし、タスクの開始タイミングが通信スケジュールと同期するものの、各プロセッサでのタスクの実行タイミングは、あくまで処理内容から見積もる処理時間、あるいは計測した処理時間である。そのため、プロセッサの特性によって、または、割り込み処理等の想定しない処理によって、処理時間が増減する可能性がある。あるいは、各タスクのインプット情報の変更によって、つまり、周期的に処理が行われていても制御対象の状態に応じて入力される情報が変化することによって、計算量が増減し、それにともない処理時間が増減する可能性がある。通信についても、送信すべきデータが漸減させる場合がある。また、スイッチ等において送信処理による遅延が送信タイミングごとに異なる可能性がある。このような現象が発生した場合、特定の期間に特定の優先度のフレームに対する送信許可をあたえるだけでは、意図しないタイミングでフレーム送信が開始される可能性がある。そのフレーム送信が同一の優先度の送信スケジュールと適合した場合、本来意図したタイミングと異なるタイミングでフレームが送信される。このフレームAの送信が本来そのタイミングで送信すべきフレームBの送信の妨げになると、従来予定していたスケジュールがずれ、スケジュールが破綻する。この問題点は、特定のタイミングでタスクの処理が実行されないことと、特定のタイミングでフレームが送信されないことである。加えて、タスクの処理および通信の処理が揺らぐ場合がある。
これらの対処法として、分散処理装置300は、タスク処理待機部315と通信待機部316とを備える。これにより、分散処理装置300は、スケジュール391に従い、スケジュール391のタイミングに則って各タスクと各通信を実行することができる。また、揺らぎに対する対処法として、スケジューリング装置200は、揺らぎを想定した上で各タスクの処理時間と各通信時間にマージンを持たせてスケジュール391を生成することができる。
*** Effect of Embodiment 3 ***
By the distributed processing method, communication timing is estimated from the processing time of each task, and a communication schedule is established. However, although the task start timing is synchronized with the communication schedule, the task execution timing in each processor is the processing time estimated from the processing content or the measured processing time. Therefore, the processing time may increase or decrease depending on the characteristics of the processor or unexpected processing such as interrupt processing. Alternatively, if the input information of each task changes, that is, if the information input changes according to the state of the controlled object even if the processing is performed periodically, the amount of calculation increases or decreases, and the processing time increases accordingly. may increase or decrease. For communications, the data to be sent may also taper off. Also, there is a possibility that the delay due to transmission processing in a switch or the like differs for each transmission timing. If such a phenomenon occurs, there is a possibility that frame transmission will start at an unintended timing only by granting transmission permission to a frame with a specific priority during a specific period. If the frame transmission matches a transmission schedule with the same priority, the frame will be transmitted at a different timing than originally intended. If the transmission of the frame A interferes with the transmission of the frame B that should have been transmitted at that timing, the conventionally planned schedule will be shifted and the schedule will be broken. The problem is that task processing is not executed at specific timings and frames are not transmitted at specific timings. In addition, task processing and communication processing may be perturbed.
As a countermeasure against these, the distributed processing device 300 is provided with a task processing waiting section 315 and a communication waiting section 316 . As a result, the distributed processing device 300 can execute each task and each communication according to the timing of the schedule 391 according to the schedule 391 . Moreover, as a countermeasure against fluctuation, the scheduling apparatus 200 can generate the schedule 391 by assuming fluctuation and giving margins to the processing time of each task and each communication time.

***実施例の説明***
実施の形態3は、実施の形態2と組み合わせて実施されてもよい。複数の分散処理装置(300A~300C)を代替する1台の分散処理装置300Xが、タスク処理待機部315と通信待機部316とを備えてもよい。
***Description of Examples***
Embodiment 3 may be implemented in combination with Embodiment 2. A single distributed processing device 300X substituting for a plurality of distributed processing devices (300A to 300C) may comprise the task processing waiting section 315 and the communication waiting section 316. FIG.

***実施の形態の補足***
図20に基づいて、スケジューリング装置200のハードウェア構成を説明する。
スケジューリング装置200は処理回路209を備える。
処理回路209は、スケジューリング部210とスケジュール出力部220とを実現するハードウェアである。
処理回路209は、専用のハードウェアであってもよいし、メモリ202に格納されるプログラムを実行するプロセッサ201であってもよい。
*** Supplement to the embodiment ***
The hardware configuration of the scheduling device 200 will be described based on FIG.
The scheduling device 200 comprises processing circuitry 209 .
The processing circuit 209 is hardware that implements the scheduling section 210 and the schedule output section 220 .
The processing circuitry 209 may be dedicated hardware, or may be the processor 201 that executes programs stored in the memory 202 .

処理回路209が専用のハードウェアである場合、処理回路209は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
ASICは、Application Specific Integrated Circuitの略称である。
FPGAは、Field Programmable Gate Arrayの略称である。
If processing circuitry 209 is dedicated hardware, processing circuitry 209 may be, for example, a single circuit, multiple circuits, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
ASIC is an abbreviation for Application Specific Integrated Circuit.
FPGA is an abbreviation for Field Programmable Gate Array.

スケジューリング装置200は、処理回路209を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路209の機能を分担する。 The scheduling device 200 may include multiple processing circuits that replace the processing circuit 209 . A plurality of processing circuits share the functions of the processing circuit 209 .

処理回路209において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。 In the processing circuitry 209, some functions may be implemented in dedicated hardware and the remaining functions may be implemented in software or firmware.

このように、スケジューリング装置200の各機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。 Thus, each function of the scheduling device 200 can be realized by hardware, software, firmware, or a combination thereof.

図21に基づいて、分散処理装置300のハードウェア構成を説明する。
分散処理装置300は処理回路309を備える。
処理回路309は、実行制御部311とタスク実行部312と通信実行部313と機器制御部314とスケジュール受付部319とを実現するハードウェアである。
処理回路309は、専用のハードウェアであってもよいし、メモリ302に格納されるプログラムを実行するプロセッサ301であってもよい。
The hardware configuration of the distributed processing device 300 will be described with reference to FIG.
The distributed processing device 300 includes processing circuitry 309 .
The processing circuit 309 is hardware that realizes the execution control unit 311 , the task execution unit 312 , the communication execution unit 313 , the device control unit 314 and the schedule reception unit 319 .
The processing circuit 309 may be dedicated hardware, or may be the processor 301 that executes a program stored in the memory 302 .

処理回路309が専用のハードウェアである場合、処理回路309は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。 If processing circuitry 309 is dedicated hardware, processing circuitry 309 may be, for example, a single circuit, multiple circuits, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.

分散処理装置300は、処理回路309を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路309の機能を分担する。 The distributed processing device 300 may include a plurality of processing circuits that substitute for the processing circuit 309 . A plurality of processing circuits share the functions of the processing circuit 309 .

処理回路309において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。 In the processing circuitry 309, some functions may be implemented in dedicated hardware and the remaining functions may be implemented in software or firmware.

このように、分散処理装置300の各機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。 Thus, each function of the distributed processing device 300 can be realized by hardware, software, firmware, or a combination thereof.

各実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。各実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
各実施の形態で説明された各装置の要素である「部」は、「処理」または「工程」と読み替えてもよい。
Each embodiment is an illustration of preferred modes and is not intended to limit the technical scope of the present invention. Each embodiment may be implemented partially or in combination with other embodiments. The procedures described using flowcharts and the like may be changed as appropriate.
The “unit”, which is an element of each device described in each embodiment, may be read as “processing” or “step”.

100 分散処理システム、101 対象機器、102 転送装置、111 タスク情報、112 有向グラフ、113 トポロジグラフ、114 仮スケジュールグラフ、200 スケジューリング装置、201 プロセッサ、202 メモリ、203 補助記憶装置、204 外部インタフェース、209 処理回路、210 スケジューリング部、211 情報取得部、212 仮スケジュール決定部、213 競合解消部、220 スケジュール出力部、290 記憶部、300 分散処理装置、301 プロセッサ、302 メモリ、303 補助記憶装置、304 外部インタフェース、309 処理回路、311 実行制御部、312 タスク実行部、313 通信実行部、314 機器制御部、315 タスク処理待機部、316 通信待機部、319 スケジュール受付部、390 記憶部、391 スケジュール。 100 Distributed Processing System 101 Target Device 102 Transfer Device 111 Task Information 112 Directed Graph 113 Topology Graph 114 Temporary Schedule Graph 200 Scheduling Device 201 Processor 202 Memory 203 Auxiliary Storage Device 204 External Interface 209 Processing Circuit 210 Scheduling Unit 211 Information Acquisition Unit 212 Temporary Schedule Determination Unit 213 Conflict Resolution Unit 220 Schedule Output Unit 290 Storage Unit 300 Distributed Processing Unit 301 Processor 302 Memory 303 Auxiliary Storage Device 304 External Interface , 309 processing circuit, 311 execution control unit, 312 task execution unit, 313 communication execution unit, 314 device control unit, 315 task processing standby unit, 316 communication standby unit, 319 schedule reception unit, 390 storage unit, 391 schedule.

Claims (7)

複数のタスクを複数のプロセッサによって分散処理する分散処理システムであって、
前記複数のタスクの実行順と、各タスクの実行に要する処理量と、各タスクの実行結果を次のタスクに与えるための通信に要する通信量と、各タスクの優先度と、各通信の優先度と、各タスクが割り当てられるプロセッサを識別する割り当て先と、を示すタスク情報を取得する情報取得部と、
前記複数のタスクの実行順と各タスクの処理量と各通信の通信量と各タスクの割り当て先とに基づいて、各タスクに割り当てられる実行時間と各通信に割り当てられる実行時間とを指定する仮スケジュール、を決定する仮スケジュール決定部と、
各タスクの優先度と各通信の優先度とに基づいて、前記仮スケジュールに指定された各タスクの実行時間と前記仮スケジュールに指定された各通信の実行時間とを調整することによって、タスク間の競合と通信間の競合とが解消されたスケジュール、を生成する競合解消部と、
を備える分散処理システム。
A distributed processing system in which multiple tasks are distributedly processed by multiple processors,
the execution order of the plurality of tasks, the amount of processing required to execute each task, the amount of communication required for communication for giving the execution result of each task to the next task, the priority of each task, and the priority of each communication an information acquisition unit that acquires task information indicating a degree and an assignment destination that identifies a processor to which each task is assigned;
Designating the execution time assigned to each task and the execution time assigned to each communication based on the execution order of the plurality of tasks, the processing amount of each task, the communication amount of each communication, and the assignment destination of each task a tentative schedule determining unit that determines a schedule;
Based on the priority of each task and the priority of each communication, by adjusting the execution time of each task specified in the tentative schedule and the execution time of each communication specified in the tentative schedule, a conflict resolution unit that generates a schedule in which conflicts between and conflicts between communications are resolved;
Distributed processing system with
前記競合解消部は、同じプロセッサに割り当てられたタスク間で実行時間の少なくとも一部が重複する場合に優先度が低い方のタスクの実行時間を調整し、実行時間が調整されたタスクの実行後に実行される各タスクの実行時間と実行時間が調整されたタスクの実行後に実行される各通信の実行時間とを調整する
請求項1に記載の分散処理システム。
The conflict resolution unit adjusts the execution time of a task with a lower priority when at least part of the execution time overlaps between tasks assigned to the same processor, and after execution of the task whose execution time is adjusted 2. The distributed processing system according to claim 1, wherein the execution time of each task to be executed and the execution time of each communication executed after execution of the task whose execution time has been adjusted are adjusted.
前記競合解消部は、同じ通信路を用いて実行される通信間で実行時間の少なくとも一部が重複する場合に優先度が低い方の通信の実行時間を調整し、実行時間が調整された通信の実行後に実行される各タスクの実行時間と実行時間が調整された通信の実行後に実行される各通信の実行時間とを調整する
請求項1または請求項2に記載の分散処理システム。
The conflict resolution unit adjusts the execution time of communication with lower priority when at least part of the execution time overlaps between communications executed using the same communication path, and the communication whose execution time is adjusted. 3. The distributed processing system according to claim 1, wherein the execution time of each task to be executed after execution of and the execution time of each communication to be executed after execution of the communication whose execution time has been adjusted are adjusted.
前記分散処理システムは、前記複数のプロセッサを備え、
各プロセッサは、割り当てられた各タスクを前記スケジュールに指定された各タスクの実行時間に実行し、割り当てられた各タスクの実行結果の通信を前記スケジュールに指定された各通信の実行時間に実行する
請求項1から請求項3のいずれか1項に記載の分散処理システム。
The distributed processing system comprises the plurality of processors,
Each processor executes each assigned task at the execution time of each task specified in the schedule, and communicates the execution result of each assigned task at the execution time of each communication specified in the schedule. 4. The distributed processing system according to claim 1.
複数のタスクを複数のプロセッサによって分散処理するための分散処理方法であって、
情報取得部が、前記複数のタスクの実行順と、各タスクの実行に要する処理量と、各タスクの実行結果を次のタスクに与えるための通信に要する通信量と、各タスクの優先度と、各通信の優先度と、各タスクが割り当てられるプロセッサを識別する割り当て先と、を示すタスク情報を取得し、
仮スケジュール決定部が、前記複数のタスクの実行順と各タスクの処理量と各通信の通信量と各タスクの割り当て先とに基づいて、各タスクに割り当てられる実行時間と各通信に割り当てられる実行時間とを指定する仮スケジュール、を決定し、
競合解消部が、各タスクの優先度と各通信の優先度とに基づいて、前記仮スケジュールに指定された各タスクの実行時間と前記仮スケジュールに指定された各通信の実行時間とを調整することによって、タスク間の競合と通信間の競合とが解消されたスケジュール、を生成する
分散処理方法。
A distributed processing method for distributed processing of a plurality of tasks by a plurality of processors,
The information acquisition unit obtains the execution order of the plurality of tasks, the amount of processing required to execute each task, the amount of communication required for communication for giving the execution result of each task to the next task, and the priority of each task. , obtaining task information indicating the priority of each communication and the assignee identifying the processor to which each task is assigned;
A provisional schedule determining unit determines the execution time assigned to each task and the execution assigned to each communication based on the execution order of the plurality of tasks, the processing amount of each task, the communication amount of each communication, and the assignment destination of each task. Decide on a tentative schedule, specifying times and
A conflict resolution unit adjusts the execution time of each task specified in the provisional schedule and the execution time of each communication specified in the provisional schedule based on the priority of each task and the priority of each communication. A distributed processing method for generating a schedule in which competition between tasks and competition between communications are resolved.
複数のタスクを複数のプロセッサによって分散処理するための分散処理プログラムであって、
前記複数のタスクの実行順と、各タスクの実行に要する処理量と、各タスクの実行結果を次のタスクに与えるための通信に要する通信量と、各タスクの優先度と、各通信の優先度と、各タスクが割り当てられるプロセッサを識別する割り当て先と、を示すタスク情報を取得する情報取得処理と、
前記複数のタスクの実行順と各タスクの処理量と各通信の通信量と各タスクの割り当て先とに基づいて、各タスクに割り当てられる実行時間と各通信に割り当てられる実行時間とを指定する仮スケジュール、を決定する仮スケジュール決定処理と、
各タスクの優先度と各通信の優先度とに基づいて、前記仮スケジュールに指定された各タスクの実行時間と前記仮スケジュールに指定された各通信の実行時間とを調整することによって、タスク間の競合と通信間の競合とが解消されたスケジュール、を生成する競合解消処理と、
をコンピュータに実行させるための分散処理プログラム。
A distributed processing program for distributed processing of a plurality of tasks by a plurality of processors,
the execution order of the plurality of tasks, the amount of processing required to execute each task, the amount of communication required for communication for giving the execution result of each task to the next task, the priority of each task, and the priority of each communication an information acquisition process for acquiring task information indicating a degree and an assignment destination that identifies a processor to which each task is assigned;
Designating the execution time assigned to each task and the execution time assigned to each communication based on the execution order of the plurality of tasks, the processing amount of each task, the communication amount of each communication, and the assignment destination of each task a tentative schedule determination process for determining a schedule;
Based on the priority of each task and the priority of each communication, by adjusting the execution time of each task specified in the tentative schedule and the execution time of each communication specified in the tentative schedule, a conflict resolution process for generating a schedule in which conflicts between and conflicts between communications are resolved;
Distributed processing program for executing on a computer.
複数のタスクの実行順と、各タスクの実行に要する処理量と、各タスクの実行結果を次のタスクに与えるための通信に要する通信量と、各タスクの優先度と、各通信の優先度と、各タスクが割り当てられるプロセッサを識別する割り当て先と、を示すタスク情報を取得する情報取得部と、
前記複数のタスクの実行順と各タスクの処理量と各通信の通信量と各タスクの割り当て先とに基づいて、各タスクに割り当てられる実行時間と各通信に割り当てられる実行時間とを指定する仮スケジュール、を決定する仮スケジュール決定部と、
各タスクの優先度と各通信の優先度とに基づいて、前記仮スケジュールに指定された各タスクの実行時間と前記仮スケジュールに指定された各通信の実行時間とを調整することによって、タスク間の競合と通信間の競合とが解消されたスケジュール、を生成する競合解消部と、
を備えるスケジューリング装置。
The execution order of multiple tasks, the amount of processing required to execute each task, the amount of communication required for communication to give the execution result of each task to the next task, the priority of each task, and the priority of each communication and an assignment destination that identifies a processor to which each task is assigned, and an information acquisition unit that acquires task information indicating
Designating the execution time assigned to each task and the execution time assigned to each communication based on the execution order of the plurality of tasks, the processing amount of each task, the communication amount of each communication, and the assignment destination of each task a tentative schedule determining unit that determines a schedule;
Based on the priority of each task and the priority of each communication, by adjusting the execution time of each task specified in the tentative schedule and the execution time of each communication specified in the tentative schedule, a conflict resolution unit that generates a schedule in which conflicts between and conflicts between communications are resolved;
A scheduling device comprising:
JP2022554716A 2020-10-05 2020-10-05 Distributed processing system, distributed processing method, distributed processing program and scheduling device Active JP7170957B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/037780 WO2022074721A1 (en) 2020-10-05 2020-10-05 Distributed processing system, distributed processing method, distributed processing program, scheduling device, and distributed processing device

Publications (3)

Publication Number Publication Date
JPWO2022074721A1 JPWO2022074721A1 (en) 2022-04-14
JPWO2022074721A5 JPWO2022074721A5 (en) 2022-11-07
JP7170957B2 true JP7170957B2 (en) 2022-11-14

Family

ID=81126699

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022554716A Active JP7170957B2 (en) 2020-10-05 2020-10-05 Distributed processing system, distributed processing method, distributed processing program and scheduling device

Country Status (3)

Country Link
JP (1) JP7170957B2 (en)
TW (1) TW202232315A (en)
WO (1) WO2022074721A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008242983A (en) 2007-03-28 2008-10-09 Sony Computer Entertainment Inc Data processor, distributed processing system, data processing method and data processing program
JP2017142647A (en) 2016-02-10 2017-08-17 日本電信電話株式会社 Resource management device and resource management method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675786A (en) * 1992-08-26 1994-03-18 Hitachi Ltd Task scheduling method
JP4431126B2 (en) * 2006-06-23 2010-03-10 キャッツ株式会社 Timing chart creation support system, timing chart creation support method, and timing chart creation support program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008242983A (en) 2007-03-28 2008-10-09 Sony Computer Entertainment Inc Data processor, distributed processing system, data processing method and data processing program
JP2017142647A (en) 2016-02-10 2017-08-17 日本電信電話株式会社 Resource management device and resource management method

Also Published As

Publication number Publication date
JPWO2022074721A1 (en) 2022-04-14
TW202232315A (en) 2022-08-16
WO2022074721A1 (en) 2022-04-14

Similar Documents

Publication Publication Date Title
US7350004B2 (en) Resource management device
JP4485574B2 (en) Access control device, access control integrated circuit, and access control method
JP2007200245A (en) System bus controller, integrated circuit, and data processing system
KR100708096B1 (en) Bus system and execution scheduling method for access commands thereof
US8185679B2 (en) Controlling bus access
JP2012043375A (en) Data transfer device, data transfer method and program, and image forming device
US20040019749A1 (en) Apparatus, method, and computer program for resource request arbitration
JP7170957B2 (en) Distributed processing system, distributed processing method, distributed processing program and scheduling device
JP2001216279A (en) Method of interfacing, synchronizing and arbitrating plural processors using time division multiplex memory for real time system
JP6900690B2 (en) Control device
JP2006215621A (en) Dma controller
JP7146075B2 (en) Data processing device having multiple processor devices and multiple interfaces
JP2007102447A (en) Arithmetic processor
JP2006251875A (en) Bus arbitration device and bus arbitration method
JP2007018400A (en) Bus system, bus management apparatus, node device, and program for bus management apparatus
JP2780662B2 (en) Multiprocessor system
JP2008276322A (en) Information processing device, system, and method
JP2002288120A (en) Arbiter and bus system
JP2008250419A (en) Competition arbitration apparatus, master-slave system, and method for competition arbitration
JPH10232849A (en) Disk controller
WO2024070015A1 (en) Electronic control device, vehicle control system, and task control method
JP2007164713A (en) Device and method for managing resource
WO2021111586A1 (en) Distributed processing system
JP3317150B2 (en) Information processing device
JP2000099455A (en) First-come priority bus competition control system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220909

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220909

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220909

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: 20221004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221101

R150 Certificate of patent or registration of utility model

Ref document number: 7170957

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150