JP7457589B2 - Information processing device, information processing method, and information processing system - Google Patents

Information processing device, information processing method, and information processing system Download PDF

Info

Publication number
JP7457589B2
JP7457589B2 JP2020113696A JP2020113696A JP7457589B2 JP 7457589 B2 JP7457589 B2 JP 7457589B2 JP 2020113696 A JP2020113696 A JP 2020113696A JP 2020113696 A JP2020113696 A JP 2020113696A JP 7457589 B2 JP7457589 B2 JP 7457589B2
Authority
JP
Japan
Prior art keywords
core
execution time
executes
group
information
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
JP2020113696A
Other languages
Japanese (ja)
Other versions
JP2022012115A (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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
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 Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2020113696A priority Critical patent/JP7457589B2/en
Priority to PCT/JP2021/016512 priority patent/WO2022004108A1/en
Publication of JP2022012115A publication Critical patent/JP2022012115A/en
Application granted granted Critical
Publication of JP7457589B2 publication Critical patent/JP7457589B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、情報を処理する情報処理装置、情報処理方法、および情報処理システムに関する。 The present invention relates to an information processing apparatus, an information processing method, and an information processing system that process information.

下記特許文献1は、複数のCPUコアを有するマルチコア演算装置を開示する。このマルチコア演算装置は、第1コアと、第1コアとは独立して動作する第2コアと、共有メモリとを備え、両コアは共有メモリを介して通信する。第1コアは、制御対象である車両用駆動伝達装置の挙動変化の順序を示す挙動スケジュールを決定する挙動スケジュールアプリケーションを実行する。第2コアは、車両用駆動伝達装置を動作させるアクチュエータを制御するアクチュエータ制御アプリケーションと、物理情報を取得して提供するセンシングアプリケーションとを実行する。 Patent Document 1 listed below discloses a multi-core arithmetic device having a plurality of CPU cores. This multi-core arithmetic device includes a first core, a second core that operates independently of the first core, and a shared memory, and both cores communicate via the shared memory. The first core executes a behavior schedule application that determines a behavior schedule that indicates the order of behavior changes of a vehicle drive transmission device that is a controlled object. The second core executes an actuator control application that controls an actuator that operates the vehicle drive transmission device, and a sensing application that acquires and provides physical information.

下記特許文献2は、車両ユーザインターフェースと統合されるコンピュータシステムに含まれる処理システムを開示する。この処理システムは、マルチコアプロセッサを含む。処理システムは、マルチコアプロセッサの1つ又は複数の第1のコアにおいて第1のゲストオペレーティングシステムに仮想化を提供するように構成される。また、処理システムは、マルチコアプロセッサの1つ又は複数の第2の異なるコアにおいて第2のゲストオペレーティングシステムに仮想化を提供するようにも構成される。第1のゲストオペレーティングシステムは、高信頼性動作用に構成される。仮想化は、第2のゲストオペレーティングシステムの動作が第1のゲストオペレーティングシステムの高信頼性動作を中断することを防ぐ。 Patent Document 2 below discloses a processing system included in a computer system that is integrated with a vehicle user interface. The processing system includes a multi-core processor. The processing system is configured to provide virtualization to a first guest operating system on one or more first cores of the multi-core processor. The processing system is also configured to provide virtualization to a second guest operating system on one or more second different cores of the multi-core processor. The first guest operating system is configured for reliable operation. Virtualization prevents the operation of the second guest operating system from disrupting the reliable operation of the first guest operating system.

特開2018-013843号公報JP 2018-013843 A 特表2017-507401号公報Special table 2017-507401 publication

しかしながら、上述した特許文献1および特許文献2では、組込みシステムに要求されるリアルタイム性について考慮されていない。特に車載のECU(Electronic Control Unit)においては、制御演算結果を後段のコントローラまたはアクチュエータに一定の時間内で情報を伝える必要がある。したがって、ECUの処理の開始から終了までに時間制約が存在する。 However, in Patent Document 1 and Patent Document 2 mentioned above, real-time performance required of an embedded system is not considered. In particular, in an on-vehicle ECU (Electronic Control Unit), it is necessary to transmit control calculation results to a downstream controller or actuator within a certain period of time. Therefore, there is a time constraint from the start to the end of ECU processing.

ECUが既定の時間内に処理を完了するためには、当該処理を構成するすべてのタスクの実行時間を正確に予測し、実行時間の合計が時間の要求を満たすようにスケジューリングを実施する必要がある。しかし、マルチコアプロセッサにおいては、複数のコアが同時にキャッシュメモリを使用することで競合が発生し、実行時間の変動を引き起こす。キャッシュの挙動は複雑でモデル化が難しく、キャッシュの競合による実行時間の変動は予測が困難である。 In order for the ECU to complete a process within a predetermined time, it is necessary to accurately predict the execution time of all the tasks that make up the process, and to perform scheduling so that the total execution time meets the time requirement. be. However, in a multi-core processor, contention occurs when multiple cores use the cache memory at the same time, causing fluctuations in execution time. Cache behavior is complex and difficult to model, and variations in execution time due to cache contention are difficult to predict.

また、キャッシュの競合が多発した場合、コアの処理効率は著しく低下する。したがって、マルチコアプロセッサが実行するタスクのコアへの割り当てとスケジューリングとをキャッシュの競合を低減するように設計する必要がある。 Furthermore, if there is a lot of cache contention, the processing efficiency of the cores drops significantly. Therefore, the allocation and scheduling of tasks to be executed by a multi-core processor must be designed to reduce cache contention.

本発明は、リアルタイム性を維持しつつマルチコアの処理効率の向上を図ることを目的とする。 The present invention aims to improve the processing efficiency of multi-core processors while maintaining real-time performance.

本願において開示される発明の一側面となる情報処理装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、コア群と前記コア群内の複数のコアが共有する共有メモリを含むメモリリソースとを有するマルチコアプロセッサが処理群を実行するスケジュールを生成する情報処理装置であって、処理群情報と、実行時間変動率情報と、にアクセス可能であり、前記処理群情報は、前記処理群の各々の処理について、前記コア群内の1つのコアでの単独実行時間と、前記処理の制御周期と、他の処理との依存関係と、を規定し、前記実行時間変動率情報は、前記コアが他のコアと並列実行した場合の実行時間変動率を規定し、前記プロセッサは、前記処理群の各々の処理について、前記処理の制御周期と、前記処理の前記単独実行時間と、前記処理を実行するコアが他の処理を実行する他のコアと並列実行した場合の前記コアによる前記処理の実行時間変動率と、前記依存関係において前記処理の後に実行される後続処理の実行時間変動率と、に基づいて、前記処理の実行開始までの猶予時間を算出する算出工程と、前記算出工程によって算出された処理ごとの猶予時間に基づいて、前記処理群を前記コア群に割り当てる割当工程と、前記割当工程による割当結果に基づいて、前記コアごとの前記実行順序を決定する決定工程と、前記決定工程によって決定された前記コアごとの実行順序と前記実行時間変動率情報とを参照して、第1処理を実行する第1コアが第2処理を実行する第2コアと並列実行した場合の前記第1コアによる前記第1処理の実行時間変動率を特定する特定工程と、前記第1コアの実行時間変動率と、前記処理群情報における前記第1コアが前記第1処理を単独実行する場合の単独実行時間と、に基づいて、前記実行順序において前記第1コアが前記第1処理を実行する実行時間を算出して、前記スケジュールを生成する生成工程と、を実行することを特徴とする。 An information processing device that is one aspect of the invention disclosed in this application includes a processor that executes a program, and a storage device that stores the program, and is shared by a core group and a plurality of cores in the core group. An information processing device that generates a schedule for a multi-core processor having memory resources including a shared memory to execute a processing group, the information processing device being able to access processing group information and execution time fluctuation rate information, and having access to processing group information and execution time fluctuation rate information. defines, for each process in the process group, the independent execution time on one core in the core group, the control cycle of the process, and the dependence relationship with other processes, and The rate information defines an execution time variation rate when the core executes parallel execution with other cores, and the processor determines the control cycle of the process and the independent execution of the process for each process of the process group. time, the rate of variation in the execution time of the process by the core when the core that executes the process is executed in parallel with another core that executes another process, and the subsequent process that is executed after the process in the dependency relationship. a calculation step of calculating grace time until the start of execution of the process based on the execution time fluctuation rate of , and a grace time for each process calculated by the calculation process, an allocation step for determining the execution order for each core based on the allocation result of the allocation step, and an execution order for each core determined by the determination step and the execution time fluctuation rate information. A specific step of identifying an execution time variation rate of the first process by the first core when a first core that executes the first process executes the second core that executes the second process in parallel with the second core that executes the second process. , the execution time variation rate of the first core, and the independent execution time when the first core independently executes the first process in the processing group information, the first core in the execution order A generation step of calculating an execution time for executing the first process and generating the schedule.

本発明の代表的な実施の形態によれば、リアルタイム性を維持しつつマルチコアの処理効率の向上を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。 According to a typical embodiment of the present invention, it is possible to improve multi-core processing efficiency while maintaining real-time performance. Problems, configurations, and effects other than those described above will become clear from the description of the following examples.

図1は、実施例1にかかるスケジュール生成装置によるマルチコアプロセッサへのタスク群のスケジューリング例を示す説明図である。FIG. 1 is an explanatory diagram showing an example of scheduling a group of tasks to a multi-core processor by the schedule generation device according to the first embodiment. 図2は、移動体制御装置のハードウェア構成例を示すブロック図である。FIG. 2 is a block diagram showing an example of a hardware configuration of the mobile object control device. 図3は、ECUのハードウェア構成例を示すブロック図である。FIG. 3 is a block diagram showing an example of the hardware configuration of the ECU. 図4は、マルチコアプロセッサのハードウェア構成例を示すブロック図である。FIG. 4 is a block diagram showing an example of a hardware configuration of a multi-core processor. 図5は、マルチコアプロセッサで実行される自動運転アプリケーションの処理構成例を示す説明図である。FIG. 5 is an explanatory diagram showing an example of a processing configuration of an automatic driving application executed by a multi-core processor. 図6は、タスクセットの一例を示す説明図である。FIG. 6 is an explanatory diagram showing an example of a task set. 図7は、スケジュール生成装置のハードウェア構成例を示すブロック図である。FIG. 7 is a block diagram showing an example of the hardware configuration of the schedule generation device. 図8は、実施例1にかかる情報処理システムの機能的構成例を示すブロック図である。FIG. 8 is a block diagram of an example of a functional configuration of the information processing system according to the first embodiment. 図9は、実施例1にかかる実行時間変動率テーブルの一例を示す説明図である。FIG. 9 is an explanatory diagram showing an example of an execution time fluctuation rate table according to the first embodiment. 図10は、実施例1にかかる生成部によるスケジュール生成処理手順例を示すフローチャートである。FIG. 10 is a flowchart illustrating an example of a schedule generation processing procedure by the generation unit according to the first embodiment. 図11は、実施例1にかかるECUの機能的構成例を示すブロック図である。FIG. 11 is a block diagram showing an example of the functional configuration of the ECU according to the first embodiment. 図12は、実施例2にかかる情報処理システムの機能的構成例1を示すブロック図である。FIG. 12 is a block diagram showing a functional configuration example 1 of the information processing system according to the second embodiment. 図13は、実施例2にかかる割当部によるコア割当処理手順例を示すフローチャートである。FIG. 13 is a flowchart illustrating an example of a core allocation processing procedure by the allocation unit according to the second embodiment. 図14は、割当部によるコア割当処理例1を示す説明図である。FIG. 14 is an explanatory diagram showing an example 1 of core allocation processing by the allocation unit. 図15は、割当部によるコア割当処理例2を示す説明図である。FIG. 15 is a diagram illustrating a second example of a core allocation process performed by the allocation unit. 図16は、実施例2にかかる生成部によるスケジュール生成処理手順例を示すフローチャートである。FIG. 16 is a flowchart illustrating an example of a schedule generation processing procedure by the generation unit according to the second embodiment. 図17は、実施例2にかかる情報処理システムの機能的構成例2を示すブロック図である。FIG. 17 is a block diagram showing a functional configuration example 2 of the information processing system according to the second embodiment. 図18は、実施例2にかかるECUの機能的構成例を示すブロック図である。FIG. 18 is a block diagram showing an example of the functional configuration of the ECU according to the second embodiment. 図19は、リソース属性の定義を示す説明図である。FIG. 19 is an explanatory diagram showing the definition of resource attributes. 図20は、実施例3にかかる実行時間変動率テーブルの一例を示す説明図である。FIG. 20 is a diagram illustrating an example of an execution time variation rate table according to the third embodiment. 図21は、実施例3において決定された実行順序の一例を示す説明図である。FIG. 21 is an explanatory diagram showing an example of the execution order determined in the third embodiment. 図22は、単独実行時の最悪実行時間に基づくタスク実行結果の一例を示す説明図である。FIG. 22 is an explanatory diagram showing an example of a task execution result based on the worst execution time during independent execution. 図23は、実施例3の実行時間変動率テーブルに基づきキャッシュ競合による実行時間変動率を考慮したスケジュールを示す説明図である。FIG. 23 is an explanatory diagram showing a schedule that takes into account the execution time fluctuation rate due to cache contention based on the execution time fluctuation rate table of the third embodiment. 図24は、実施例4にかかる実行時間変動率テーブルの一例を示す説明図である。FIG. 24 is an explanatory diagram showing an example of an execution time fluctuation rate table according to the fourth embodiment.

<スケジューリング例>
図1は、実施例1にかかるスケジュール生成装置によるマルチコアプロセッサへのタスク群のスケジューリング例を示す説明図である。図1では、例として、タスクA~Hの割り当て対象となるコア#0とコア#1とを含むマルチコアプロセッサ100を例に挙げて説明する。マルチコアプロセッサ100では、コア#0およびコア#1は、タスクA~Hの並列実行により、共有メモリ(たとえば、2次キャッシュ)で競合が生じる可能性がある。タスクA~Hとは、たとえば、アプリケーションまたはアプリケーションを構成するプロセス内の並列実行可能な処理単位である。
<Scheduling example>
FIG. 1 is an explanatory diagram showing an example of scheduling a group of tasks to a multi-core processor by the schedule generation device according to the first embodiment. In FIG. 1, a multi-core processor 100 including core #0 and core #1 to which tasks A to H are assigned will be exemplified and explained. In multi-core processor 100, core #0 and core #1 may compete in shared memory (for example, secondary cache) due to parallel execution of tasks A to H. Tasks A to H are, for example, processing units that can be executed in parallel within an application or a process that constitutes the application.

スケジュール生成装置は、スケジューリング対象である車載のECU内のマルチコアプロセッサ100のために、スケジュール102を生成する情報処理装置である。具体的には、たとえば、スケジュール生成装置は、(a)タスクA~Hごとに、他のタスクとの並列実行による2次キャッシュの競合を考慮した猶予時間を算出し、(b)(a)の猶予時間の短い順でタスクごとにコアを割り当て、(c)(b)の割り当てによるコア#0,#1ごとのタスクA~Hの実行開始時点を示す実行順序101を決定する。これにより、スケジュール102が生成される。生成されたスケジュール102は、マルチコアプロセッサ100に実装される。 The schedule generation device is an information processing device that generates a schedule 102 for a multi-core processor 100 in a vehicle-mounted ECU that is a scheduling target. Specifically, for example, the schedule generation device (a) calculates a grace period for each task A to H, taking into account contention for the secondary cache due to parallel execution with other tasks; Cores are assigned to each task in order of the shortest grace time, and (c) an execution order 101 indicating the start point of execution of tasks A to H for each core #0 and #1 based on the assignment in (b) is determined. As a result, schedule 102 is generated. The generated schedule 102 is implemented in the multi-core processor 100.

(a)において、スケジュール生成装置は、タスクA~Hごとに実行開始までの猶予時間を算出する。猶予時間は、他のタスクとの並列実行による2次キャッシュの競合を考慮するため、タスクA~Hが単独で実行される単独実行時間に比べて短く設定される。 In (a), the schedule generation device calculates the grace period until the start of execution for each of tasks A to H. The grace period is set to be shorter than the individual execution time when tasks A to H are executed alone, in order to take into account secondary cache contention due to parallel execution with other tasks.

(b)において、スケジュール生成装置は、(a)のタスクA~Hの猶予時間の短い順(A⇒G⇒B⇒E⇒H⇒D⇒F⇒C。なお、猶予時間が同一の場合はアルファベット順。)に、タスクA~Hを累積コア使用率が少ないコアに優先的に割り当てる。累積コア使用率とは、各コア#0,#1において、タスクA~Hが割り当てられることで割り当て済みとなったタスクのコア使用率の累積値である。 In (b), the schedule generation device performs tasks A to H in (a) in order of shortest grace time (A⇒G⇒B⇒E⇒H⇒D⇒F⇒C. Note that if the grace times are the same, In alphabetical order), tasks A to H are preferentially assigned to cores with a low cumulative core usage rate. The cumulative core usage rate is the cumulative value of the core usage rates of tasks that have been assigned by being assigned tasks A to H in each core #0 and #1.

たとえば、まず、スケジュール生成装置は、タスクAをコア#0に割り当てる。タスクAのコア使用率は「0.2」とする。これにより、コア#0の累積コア使用率は、「0」から「0.2」に更新される。 For example, first, the schedule generation device assigns task A to core #0. The core usage rate of task A is assumed to be "0.2". As a result, the cumulative core usage rate of core #0 is updated from "0" to "0.2".

つぎに、スケジュール生成装置は、タスクGを累積コア使用率が少ない方のコア#1に割り当てる。タスクGのコア使用率は「0.2」とする。これにより、コア#1の累積コア使用率は、「0」から「0.2」に更新される。 Next, the schedule generation device assigns task G to core #1 with a lower cumulative core usage rate. The core usage rate of task G is assumed to be "0.2". As a result, the cumulative core usage rate of core #1 is updated from "0" to "0.2".

つぎに、スケジュール生成装置は、タスクBを累積コア使用率が少ない方(累積コア使用率が同一の場合はコア番号#の若い方)のコア#0に割り当てる。タスクBのコア使用率は「0.3」とする。これにより、コア#0の累積コア使用率は、「0.2」から「0.5」に更新される。スケジュール生成装置は、このような割り当てを猶予時間が最長のタスクCまで実行し、(c)に示したような、コア#0,#1ごとのタスクA~Hの実行順序101を生成する。 Next, the schedule generation device assigns task B to the core #0 with the smaller cumulative core usage rate (if the cumulative core usage rates are the same, the core number #0 is smaller). The core usage rate of task B is assumed to be "0.3". As a result, the cumulative core usage rate of core #0 is updated from "0.2" to "0.5". The schedule generation device executes such allocation up to task C with the longest grace period, and generates an execution order 101 of tasks A to H for each core #0 and #1 as shown in (c).

(c)において、実行順序101は、コア#0が、猶予時間の短い順に割り当てられたタスクA,B,Hを実行し、コア#1が、猶予時間の短い順に割り当てられたタスクG,E,F,Cを実行する順序を示す。なお、同一猶予時間のタスクが同一のコアに割り当てられている場合は、スケジュール生成装置は、猶予時間が異なるように調整してもよい。 In (c), the execution order 101 indicates an order in which core #0 executes tasks A, B, and H assigned in the order of shortest grace time, and core #1 executes tasks G, E, F, and C assigned in the order of shortest grace time. Note that if tasks with the same grace time are assigned to the same core, the schedule generation device may adjust the grace time to be different.

(c)つぎに、スケジュール生成装置は、タスクA~Hの単独実行時間と実行時間の変動とを考慮して、スケジュール102を作成する。単独実行時間とは、タスクを実行するコアが、他のタスクを実行する他のコアとキャッシュメモリの競合が発生せずに当該タスクを実行する実行時間である。たとえば、1次キャッシュのみを使用するタスクの実行時間である。 (c) Next, the schedule generation device generates the schedule 102, taking into account the individual execution times of tasks A to H and variations in execution times. The independent execution time is the execution time during which a core executing a task executes the task without cache memory contention with other cores executing other tasks. For example, it is the execution time of a task that uses only the primary cache.

実行時間の変動とは、他のタスクとの並列実行によるキャッシュメモリの競合を考慮することにより、実行時間が増減することである。具体的には、たとえば、他のタスクとの並列実行時には、タスクA~Hの実行時間は、当該タスクを単独で実行した場合に比べて長くなる。したがって、スケジュール生成装置は、タスクA~Hの各々の他のタスクとの並列実行による実行時間の変動を考慮して、タスクA~Hの実行時間を予測してスケジューリングし、スケジュール102を生成する。 Fluctuation in execution time means that the execution time increases or decreases due to consideration of cache memory contention due to parallel execution with other tasks. Specifically, for example, when tasks A to H are executed in parallel with other tasks, the execution time becomes longer than when the tasks are executed alone. Therefore, the schedule generation device generates the schedule 102 by predicting and scheduling the execution times of tasks A to H, taking into account variations in execution time due to parallel execution of each of tasks A to H with other tasks. .

このあと、スケジュール生成装置は、デッドライン検証する。デッドラインとはタスクA~Hの制御周期である。たとえば、タスクA,GのデッドラインをDL1(例として50[ms])、タスクB~F,HのデッドラインをDL2(例として100[ms])とする。 Then, the schedule generation device performs deadline verification. Deadlines are the control periods of tasks A to H. For example, the deadline for tasks A and G is DL1 (for example, 50 ms), and the deadline for tasks B to F and H is DL2 (for example, 100 ms).

タスクA,GはデッドラインDL1を満たし、タスクB~F、HもデッドラインDL2を満たしているため、スケジュール102が確定し、マルチコアプロセッサ100に実装される。このように、マルチコアプロセッサ100におけるタスクA~Hの処理のリアルタイム性を改善し、タスクA~Hの処理効率の向上を図ることができる。 Since tasks A and G meet the deadline DL1, and tasks B to F and H also meet the deadline DL2, the schedule 102 is finalized and implemented in the multi-core processor 100. In this way, it is possible to improve the real-time performance of the processing of tasks A to H in the multi-core processor 100, and to improve the processing efficiency of tasks A to H.

<移動体制御装置のハードウェア構成例>
図2は、移動体制御装置のハードウェア構成例を示すブロック図である。移動体制御装置200は、制御対象である車両のような移動体V1,V2に搭載され、移動体V1,V2を制御する情報処理装置であり、図1に示したスケジュール102が実装される。
<Example of hardware configuration of mobile object control device>
FIG. 2 is a block diagram showing an example of the hardware configuration of the mobile object control device. The mobile object control device 200 is an information processing device that is mounted on the mobile objects V1 and V2 such as vehicles to be controlled and controls the mobile objects V1 and V2, and the schedule 102 shown in FIG. 1 is implemented.

移動体制御装置200は、ECU群210sと、ゲートウェイ211と、通信モジュール212と、を有する。ECU群210sは、たとえば、自動運転ECU210A、センサECU210B、ブレーキECU210C、ドアECU210D、ディスプレイECU210E、カーナビECU210Fなど各種ECUを含む(これらを区別しない場合は、単にECU210と表記する。)。ECU210は、図1に示したマルチコアプロセッサ100を有する。各ECU210は、他のECU210と直接またはゲートウェイ211を介して通信可能である。 The mobile control device 200 includes an ECU group 210s, a gateway 211, and a communication module 212. The ECU group 210s includes various ECUs such as an automatic driving ECU 210A, a sensor ECU 210B, a brake ECU 210C, a door ECU 210D, a display ECU 210E, and a car navigation ECU 210F (if these are not distinguished, they are simply referred to as ECU 210). ECU 210 includes multi-core processor 100 shown in FIG. Each ECU 210 can communicate with other ECUs 210 directly or via gateway 211.

ゲートウェイ211は、ECU210間の通信を可能にする。また、ゲートウェイ211は、交通事故や交通渋滞の回避、地図情報の取得や最適経路の計算のため、ECU210とクラウド201や他の移動体V2の移動体制御装置200との通信を可能にする。移動体制御装置200は、ECU群210sとゲートウェイ211とによりCAN(Controller Area Network)を構成する。 Gateway 211 enables communication between ECUs 210. Further, the gateway 211 enables communication between the ECU 210 and the cloud 201 and the mobile body control device 200 of the other mobile body V2 in order to avoid traffic accidents and traffic jams, obtain map information, and calculate optimal routes. The mobile control device 200 includes a group of ECUs 210s and a gateway 211 to form a CAN (Controller Area Network).

<ECUのハードウェア構成例>
図3は、ECU210のハードウェア構成例を示すブロック図である。ECU210は、MCU(Micro Controller Unit)301と、電源回路302と、入出力処理回路303と、通信回路304と、を有する。MCU301は、マルチコアプロセッサ100と、外部メモリ310と、を有する。
<ECU hardware configuration example>
FIG. 3 is a block diagram showing an example of the hardware configuration of the ECU 210. ECU 210 includes an MCU (Micro Controller Unit) 301, a power supply circuit 302, an input/output processing circuit 303, and a communication circuit 304. MCU 301 includes a multi-core processor 100 and external memory 310.

電源回路302は、MCU301、入出力処理回路303および通信回路304への電力供給および遮断を実行する。入出力処理回路303は、MCU303への入力信号やMCU303からの出力信号を処理する。通信回路304は、他のECU210からMCU301へのデータを受信したり、MCU301から他のECU210へのデータを送信したりする。 The power supply circuit 302 supplies and cuts off power to the MCU 301, the input/output processing circuit 303, and the communication circuit 304. The input/output processing circuit 303 processes input signals to the MCU 303 and output signals from the MCU 303. The communication circuit 304 receives data from other ECUs 210 to MCU 301, and transmits data from MCU 301 to other ECUs 210.

<マルチコアプロセッサ100のハードウェア構成例>
図4は、マルチコアプロセッサ100のハードウェア構成例を示すブロック図である。マルチコアプロセッサ100は、コア群(図4では、例として、コア#0~コア#3、…)401と、1次キャッシュ402と、コア間で使用される2次キャッシュ403と、内部バス404と、を有する。
<Example of hardware configuration of multi-core processor 100>
FIG. 4 is a block diagram showing an example of the hardware configuration of the multi-core processor 100. The multi-core processor 100 includes a core group (in FIG. 4, for example, core #0 to core #3, ...) 401, a primary cache 402, a secondary cache 403 used between the cores, and an internal bus 404. , has.

1次キャッシュ402はコアごとに設けられ、1つのコアのみアクセス可能であり、他のコアとは非共有なキャッシュメモリである。2次キャッシュ403は、1次キャッシュ402を介して複数のコアが共有アクセス可能なキャッシュメモリである。図4では、2次キャッシュ403を2つ設けたが、コア#0~コア#3が共有する1つの2次キャッシュ403としてもよい。 The primary cache 402 is a cache memory that is provided for each core, can be accessed by only one core, and is not shared with other cores. The secondary cache 403 is a cache memory that can be shared and accessed by a plurality of cores via the primary cache 402. Although two secondary caches 403 are provided in FIG. 4, one secondary cache 403 may be shared by core #0 to core #3.

内部バス404は、コア群401と周辺機器(外部メモリ310や入出力処理回路303、通信回路304、センサ410)とを通信可能に接続する。たとえば、センサ410の検出信号は、入出力処理回路303および内部バス404を介して外部メモリ310に書き込まれる。同様に、他のECU210からの通信データも、通信回路304および内部バス404を介して外部メモリ310に書き込まれる。 The internal bus 404 communicably connects the core group 401 and peripheral devices (external memory 310, input/output processing circuit 303, communication circuit 304, sensor 410). For example, a detection signal from sensor 410 is written to external memory 310 via input/output processing circuit 303 and internal bus 404. Similarly, communication data from other ECUs 210 is also written to external memory 310 via communication circuit 304 and internal bus 404.

なお、外部メモリ310も、2次キャッシュ403と同様、複数のコアが共有アクセス可能なメモリである。1次キャッシュ402、2次キャッシュ403、および外部メモリ310を総称して、メモリリソースと称する。また、2次キャッシュ403および外部メモリ310を総称して、共有メモリと称する。なお、コアに近いメモリリソースほどアクセス時間が短く、サイズも小さい。 Note that, like the secondary cache 403, the external memory 310 is also a memory that can be shared and accessed by a plurality of cores. The primary cache 402, secondary cache 403, and external memory 310 are collectively referred to as memory resources. Furthermore, the secondary cache 403 and external memory 310 are collectively referred to as shared memory. Note that memory resources closer to the core have shorter access times and smaller sizes.

なお、図3では、MCU301内に1つのマルチコアプロセッサ100が実装された例を示したが、マルチコアプロセッサ100は複数実装されてもよい。また、MCU301内にシングルコアのプロセッサが複数実装されたプロセッサ群も、マルチコアプロセッサ100としてもよい。 Note that although FIG. 3 shows an example in which one multi-core processor 100 is installed in the MCU 301, a plurality of multi-core processors 100 may be installed. Further, a processor group in which a plurality of single-core processors are mounted in the MCU 301 may also be used as the multi-core processor 100.

<自動運転アプリケーションの処理構成例>
図5は、マルチコアプロセッサ100で実行される自動運転アプリケーションの処理構成例を示す説明図である。図5では、自動運転アプリケーション500は、たとえば、タスクA~Hにより構成される。例として、タスクAはセンサデータ受信、タスクBは地図統合、タスクCは経路計画、タスクDはHMI(Human Machine Interface)表示、タスクEは画像処理、タスクFはクラウド通信、タスクGがセンサ診断(受信)、タスクHはセンサ診断(チェック)とする。
<Example of processing configuration of automatic driving application>
FIG. 5 is an explanatory diagram showing an example of a processing configuration of an automatic driving application executed by the multi-core processor 100. In FIG. 5, the automatic driving application 500 is composed of tasks A to H, for example. For example, task A is sensor data reception, task B is map integration, task C is route planning, task D is HMI (Human Machine Interface) display, task E is image processing, task F is cloud communication, and task G is sensor diagnosis. (reception), and task H is sensor diagnosis (check).

矢印はタスク間の依存関係606を示す。矢印の始端から終端への方向は共有メモリ(2次キャッシュ403または外部メモリ)へのデータの書き込み(write)を示し、矢印の終端から始端への方向は共有メモリ(2次キャッシュ403または外部メモリ310)からのデータの読み出し(read)を示す。 The arrows indicate dependencies 606 between tasks. The direction from the start of the arrow to the end indicates writing (write) data to the shared memory (secondary cache 403 or external memory), and the direction from the end of the arrow to the start indicates reading (read) data from the shared memory (secondary cache 403 or external memory 310).

タスクAが受信した100KBのセンサデータのうち、90KBのデータ501ABが、タスクBで使用され、10KBのデータ501ADが、タスクDで使用される。また、タスクBの地図統合結果のデータのうち、501KBのデータ501BCが、タスクCでの経路計画に使用される。 Of the 100 KB of sensor data that task A received, 90 KB of data 501AB is used by task B, and 10 KB of data 501AD is used by task D. Further, among the map integration result data of task B, 501 KB of data 501BC is used for route planning in task C.

また、タスクEからの3MBの画像データ501EFは、タスクFで共有され、その一部がクラウド201に送信される。センサ診断では、タスクGで取得された1KBのセンサデータ501GHが、タスクHで診断に使用される。 Further, 3 MB of image data 501EF from task E is shared by task F, and a portion of it is sent to cloud 201. In sensor diagnosis, 1 KB of sensor data 501GH acquired in task G is used in task H for diagnosis.

<タスクセット>
図6は、タスクセットの一例を示す説明図である。タスクセット600とは、タスクA~Hに関する情報を有するデータテーブルである。タスクセット600は、たとえば、スケジュール生成装置や移動体制御装置200に記憶される。
<Task set>
FIG. 6 is an explanatory diagram showing an example of a task set. The task set 600 is a data table having information regarding tasks A to H. The task set 600 is stored in, for example, the schedule generation device or the mobile object control device 200.

タスクセット600は、フィールドとして、タスク名601と、制御周期602と、単独実行時の最悪実行時間603と、コア使用率604と、メモリ消費量605と、依存関係606と、を有する。タスク名601は、タスクA~Hを一意に特定する識別情報のような名称である。以下、タスクA~Hの中のいずれかのタスクをタスクXとする。 The task set 600 has the following fields: task name 601, control period 602, worst execution time when executed alone 603, core usage rate 604, memory consumption 605, and dependency relationship 606. The task name 601 is a name that acts as identification information to uniquely identify tasks A to H. Hereinafter, any one of tasks A to H will be referred to as task X.

制御周期602は、そのタスクXを制御する周期であり、そのタスクXが実行開始してから終了しなければならない期間、すなわち、デッドラインDL1,DL2である。単独実行時の最悪実行時間603は、そのタスクXを2次キャッシュ403の競合を発生せずに単独で実行した場合の最悪実行時間である。最悪実行時間とは、そのタスクXの単独実行時間を複数回計測した時の最長となる実行時間である。なお、最悪実行時間ではなく、単独実行時間の平均値や中央値でもよい。 The control period 602 is a period for controlling the task X, and is a period during which the task X starts executing and must end, that is, the deadlines DL1 and DL2. The worst execution time 603 during independent execution is the worst execution time when the task X is executed independently without conflicting with the secondary cache 403. The worst execution time is the longest execution time when the individual execution time of the task X is measured multiple times. Note that instead of the worst execution time, the average value or median of individual execution times may be used.

コア使用率604は、そのタスクXをコアで実行したときのコアの使用率である。コア使用率604は、たとえば、単独実行時の最悪実行時間603を制御周期602で除算することにより求められる。 The core usage rate 604 is the usage rate of the core when the task X is executed by the core. The core usage rate 604 is obtained, for example, by dividing the worst execution time 603 during single execution by the control period 602.

メモリ消費量605は、そのタスクXが実行された場合に使用されるメモリ(1次キャッシュ402、2次キャッシュ403、外部メモリ310)の消費量、すなわち、タスクXを実行したコアからメモリに書き込まれるデータ量である。 The memory consumption amount 605 is the consumption amount of the memory (primary cache 402, secondary cache 403, external memory 310) used when the task X is executed, that is, the amount of memory written to the memory from the core that executed the task This is the amount of data that can be stored.

依存関係606は、そのタスクXとのデータの受け渡し先または受け渡し元となる他のタスク、すなわち、データを共有する他のタスクを規定する。依存関係606において「(w)」は、そのタスクXからのデータの受け渡し先となる他のタスクを規定する。すなわち、図5のタスク間の矢印の終端側のタスクを示す。 The dependency relationship 606 defines other tasks to which task X receives or receives data, that is, other tasks that share data. In the dependency relationship 606, "(w)" defines another task to which task X will receive data. That is, it shows the task at the end of the arrow between tasks in FIG.

「(r)」は、そのタスクXへのデータの受け渡し元となる他のタスクを規定する。すなわち、図5のタスク間の矢印の始端側のタスクを示す。たとえば、タスクBの場合、タスクAが、タスクBへのデータの受け渡し元であり、タスクCが、タスクBからのデータの受け渡し先である。 “(r)” defines another task from which data is delivered to task X. That is, it shows the task on the starting end side of the arrow between tasks in FIG. For example, in the case of task B, task A is the source of data transfer to task B, and task C is the destination of data transfer from task B.

図5および図6に示したように、自動運転アプリケーション500(ADAS(Advanced Driver-Assistance Systems)アプリケーションでもよい)では、タスク間で多数のデータの受け渡しが実行される。また、センシングから車両制御までの一連の処理には時間制約が存在する。 As shown in FIGS. 5 and 6, in the automatic driving application 500 (which may also be an ADAS (Advanced Driver-Assistance Systems) application), a large amount of data is exchanged between tasks. Furthermore, there are time constraints on the series of processes from sensing to vehicle control.

図5に示した自動運転アプリケーション500をマルチコアプロセッサ100で実行する場合、2次キャッシュ403の挙動が処理効率に強く影響する。データが2次キャッシュ403を介してタスク間で共有されるようコア割り当てを実施することができれば、2次キャッシュ403の利用効率が向上する。 When the automatic driving application 500 shown in FIG. 5 is executed on the multi-core processor 100, the behavior of the secondary cache 403 has a strong influence on processing efficiency. If core allocation can be performed so that data is shared between tasks via the secondary cache 403, the efficiency of use of the secondary cache 403 will improve.

一方で、コア群401が同時に2次キャッシュ403を使用した場合、競合が発生し外部メモリ310へのアクセスが多発することで、マルチコアプロセッサ100の処理性能が低下する。したがって、スケジュール生成装置によって生成されたスケジュール102をマルチコアプロセッサ100に適用することにより、2次キャッシュ403の競合を低減し、2次キャッシュ403の利用効率を向上させる。したがって、マルチコアプロセッサ100による処理のリアルタイム性を維持しつつ処理効率の向上が可能になる。 On the other hand, if the core group 401 simultaneously uses the secondary cache 403, contention occurs and the external memory 310 is frequently accessed, resulting in a decrease in the processing performance of the multi-core processor 100. Therefore, by applying the schedule 102 generated by the schedule generating device to the multi-core processor 100, contention for the secondary cache 403 is reduced and the utilization efficiency of the secondary cache 403 is improved. This makes it possible to improve processing efficiency while maintaining the real-time nature of processing by the multi-core processor 100.

<スケジュール生成装置のハードウェア構成例>
図7は、スケジュール生成装置のハードウェア構成例を示すブロック図である。スケジュール生成装置700は、プロセッサ701と、記憶デバイス702と、入力デバイス703と、出力デバイス704と、通信インターフェース(通信IF)705と、を有する。プロセッサ701、記憶デバイス702、入力デバイス703、出力デバイス704、および通信IF705は、バス706により接続される。プロセッサ701は、スケジュール生成装置700を制御する。記憶デバイス702は、プロセッサ701の作業エリアとなる。また、記憶デバイス702は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス702としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス703は、データを入力する。入力デバイス703としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス704は、データを出力する。出力デバイス704としては、たとえば、ディスプレイ、プリンタ、スピーカがある。通信IF705は、ネットワークと接続し、データを送受信する。
<Example of hardware configuration of schedule generation device>
7 is a block diagram showing an example of a hardware configuration of a schedule generating device. The schedule generating device 700 includes a processor 701, a storage device 702, an input device 703, an output device 704, and a communication interface (communication IF) 705. The processor 701, the storage device 702, the input device 703, the output device 704, and the communication IF 705 are connected by a bus 706. The processor 701 controls the schedule generating device 700. The storage device 702 is a working area for the processor 701. The storage device 702 is a non-transient or temporary recording medium that stores various programs and data. Examples of the storage device 702 include a ROM (Read Only Memory), a RAM (Random Access Memory), a HDD (Hard Disk Drive), and a flash memory. The input device 703 inputs data. The input device 703 may be, for example, a keyboard, a mouse, a touch panel, a numeric keypad, or a scanner. The output device 704 outputs data. The output device 704 may be, for example, a display, a printer, or a speaker. The communication IF 705 connects to a network and transmits and receives data.

<情報処理システムの機能的構成例>
図8は、実施例1にかかる情報処理システムの機能的構成例を示すブロック図である。情報処理システム800は、スケジュール生成装置700と、ECU210と、を有する。スケジュール生成装置700は、図1に示したように、スケジューリング対象である車載のECU210内のマルチコアプロセッサ100のために、(a)タスクXごとにコアを割り当て、(b)コアごとのタスクXの実行順序101に基づいて、(c)各コアがタスクXを実行するスケジュール102を生成する情報処理装置である。
<Example of functional configuration of information processing system>
FIG. 8 is a block diagram showing an example of the functional configuration of the information processing system according to the first embodiment. Information processing system 800 includes schedule generation device 700 and ECU 210. As shown in FIG. 1, the schedule generation device 700 (a) allocates a core to each task The information processing apparatus generates (c) a schedule 102 in which each core executes task X based on an execution order 101.

スケジュール生成装置700とECU210とは、通信可能に接続されていてもよく、通信可能に接続されていなくても人手によりデータの受け渡しが可能であればよい。たとえば、ECU210のタスク設計時では、スケジュール生成装置700は、ECU210と通信可能に接続されていなくてもよい。 The schedule generation device 700 and the ECU 210 may be connected to be able to communicate with each other, or may not be connected to be able to communicate with each other as long as data can be transferred manually. For example, when designing a task for the ECU 210, the schedule generation device 700 does not need to be connected to be able to communicate with the ECU 210.

ECU210の製造時には、スケジュール102を記憶した外部メモリ310をECU210に実装すればよい。また、ECU210の製造時には、スケジュール生成装置700とECU210とを通信可能に接続して、スケジュール生成装置700からECU210にスケジュール102を送信してもよい。 When manufacturing the ECU 210, the external memory 310 storing the schedule 102 may be mounted on the ECU 210. Further, when manufacturing the ECU 210, the schedule generation device 700 and the ECU 210 may be communicably connected, and the schedule 102 may be transmitted from the schedule generation device 700 to the ECU 210.

スケジュール生成装置700は、クラウド201を構成するサーバ群の1つでもよい。この場合、たとえば、ECU210の移動体V1への実装後は、スケジュール生成装置700が、たとえば、タスクXのアップデートにしたがって、スケジュール102を再生成して移動体制御装置200に送信する。移動体制御装置200は、受信した最新のスケジュール102を、当該タスクXを実行するECU210の外部メモリ310に上書きする。 The schedule generation device 700 may be one of the servers that make up the cloud 201. In this case, for example, after ECU 210 is installed in mobile body V1, schedule generation device 700 regenerates schedule 102 and transmits it to mobile body control device 200, for example, in accordance with the update of task X. The mobile control device 200 overwrites the received latest schedule 102 in the external memory 310 of the ECU 210 that executes the task X.

ECU210は、タスクセット600と、オペレーティングシステム810と、を有する。タスクセット600は、たとえば、外部メモリ310に格納される。オペレーティングシステム810は、たとえば、タスクA~Hが割り当てられないコアにより実行される。具体的には、たとえば、タスクA~Hの割当先がコア#0、コア#1であれば、オペレーティングシステム810は、コア#0およびコア#1と2次キャッシュ403の競合が発生しないコア#2またはコア#3で実行される。 ECU 210 includes a task set 600 and an operating system 810. Task set 600 is stored in external memory 310, for example. Operating system 810 is executed by, for example, cores to which tasks AH are not assigned. Specifically, for example, if tasks A to H are assigned to core #0 and core #1, the operating system 810 selects core #0 and core #1 that do not conflict with the secondary cache 403. 2 or core #3.

また、タスクA~Hの割当先がコア#0~コア#3であれば、オペレーティングシステム810は、コア#0~コア#3と2次キャッシュ403の競合が発生しない不図示のコアで実行される。オペレーティングシステム810がタスクXの割り当て対象となるコア#0~コア#3で実行される場合には、コア#0~コア#3の各累積コア使用率には、オペレーティングシステム810によるコア使用率が含まれることになる。 Furthermore, if tasks A to H are assigned to cores #0 to #3, the operating system 810 runs on a core (not shown) where there is no contention between cores #0 to #3 and the secondary cache 403. If the operating system 810 runs on cores #0 to #3 to which task X is assigned, the cumulative core usage rates of cores #0 to #3 will include the core usage rate by the operating system 810.

オペレーティングシステム810は、スケジューラ811と、リソース監視部812と、を有する。ECU210のタスク設計時において、オペレーティングシステム810は、入力されたタスクセット600に含まれる各タスクA~Hのコアへの割り当てを実行し、スケジューラ811により、コアに割り当てられた各タスクA~Hの実行開始時刻を設定する。 The operating system 810 includes a scheduler 811 and a resource monitoring unit 812. When designing tasks for the ECU 210, the operating system 810 assigns each task A to H included in the input task set 600 to the core, and the scheduler 811 assigns each task A to H assigned to the core. Set the execution start time.

リソース監視部812は、タスクXの実行時間、コア#0~#3,…、1次キャッシュ402、2次キャッシュ403、外部メモリ310などの使用情報、キャッシュヒット率などのリソース使用情報をログデータとして外部メモリ310に保存する。 The resource monitoring unit 812 records resource usage information such as the execution time of task It is saved in the external memory 310 as a file.

スケジュール生成装置700は、タスクセット600と、実行時間変動率テーブル820と、生成部830と、を有する。タスクセット600および実行時間変動率テーブル820は、具体的には、たとえば、図6に示した記憶デバイス702に記憶される。生成部830は、具体的には、たとえば、図6に示した記憶デバイス702に記憶されたプログラムをプロセッサ701に実行させることにより実現される。 The schedule generating device 700 has a task set 600, an execution time variation rate table 820, and a generating unit 830. Specifically, the task set 600 and the execution time variation rate table 820 are stored in, for example, the storage device 702 shown in FIG. 6. Specifically, the generating unit 830 is realized by, for example, having the processor 701 execute a program stored in the storage device 702 shown in FIG. 6.

生成部830は、図1に示したように、タスクセット600を参照して、(a)タスクA~Hごとに猶予時間を算出し、(b)タスクA~Hごとのコアの割り当てを実行し、(c)コアごとのタスクA~Hの実行開始時点を示す実行順序101を決定し、(d)実行順序101にしたがって各コアがタスクA~Hを実行する実行時間を予測してスケジュール102を生成する。 As shown in FIG. 1, the generation unit 830 refers to the task set 600 and (a) calculates grace time for each task A to H, and (b) executes core assignment for each task A to H. (c) determine an execution order 101 indicating the start point of execution of tasks A to H for each core, and (d) predict and schedule the execution time for each core to execute tasks A to H according to the execution order 101. 102 is generated.

具体的には、たとえば、生成部830は、上記(a)~(d)を実行するために、タスクXのメモリ消費量605から当該タスクXと他のタスク(Yとする)とを並列実行したときの当該タスクXの並列実行時間を予測する実行時間予測モデルを有する。実行時間予測モデルは、リソース監視部812から得たリソース使用情報を基に作成される。生成部830は、タスクXのメモリ消費量605を実行時間予測モデルに入力することで当該タスクXの実行時間を予測する。 Specifically, for example, in order to execute (a) to (d) above, the generation unit 830 executes parallel execution of the task X and another task (referred to as Y) based on the memory consumption amount 605 of the task X. It has an execution time prediction model that predicts the parallel execution time of the task X when the task X is executed in parallel. The execution time prediction model is created based on the resource usage information obtained from the resource monitoring unit 812. The generation unit 830 predicts the execution time of the task X by inputting the memory consumption amount 605 of the task X into the execution time prediction model.

コア群401によるキャッシュメモリの使用状況は、それぞれのコアで実行するタスクXによって使用されるメモリサイズに応じて変化する。タスクXのメモリ消費量605を用いることで、生成部830は、キャッシュ競合によって生じる実行時間の変動を予測することが可能になる。 The cache memory usage status by the core group 401 changes depending on the memory size used by the task X executed by each core. By using the memory consumption amount 605 of task X, the generation unit 830 can predict fluctuations in execution time caused by cache contention.

生成部830は、このような実行時間の変動を考慮して、並列実行時間の増加が低減するような各タスクXの猶予時間と、コア割り当てと、実行開始時刻と、を決定し、スケジュール102を生成する。これにより、リアルタイム性を維持したタスク群のスケジューリングが可能となる。 The generation unit 830 takes such fluctuations in execution time into account and determines the grace time, core allocation, and execution start time for each task X that will reduce the increase in parallel execution time, and creates the schedule 102 generate. This makes it possible to schedule a group of tasks while maintaining real-time performance.

上述した実行時間予測モデルは、予測対象のタスクXを他のタスクYと同時に実行した場合に発生する、予測対象のタスクXのみを実行した場合の単独実行時間に対する実行時間変動を予測するモデルである。生成部830は、多種多様なリソース使用情報を取得しておき、そのリソース使用情報に基づいて実行時間予測モデルが作成される。これにより、実行時間の予測精度が向上する。生成部830は、実行時間予測モデルにより、キャッシュ競合による実行時間変動率テーブル820を用いて、タスクXの実行時間を予測する。 The execution time prediction model described above is a model that predicts the execution time variation that occurs when the prediction target task X is executed simultaneously with another task Y, compared to the independent execution time when only the prediction target task be. The generation unit 830 acquires a wide variety of resource usage information, and creates an execution time prediction model based on the resource usage information. This improves the execution time prediction accuracy. The generation unit 830 uses the execution time prediction model to predict the execution time of the task X using the execution time variation rate table 820 due to cache contention.

<実行時間変動率テーブル820>
図9は、実施例1にかかる実行時間変動率テーブル820の一例を示す説明図である。実行時間変動率テーブル820は、リソース使用情報を参照して、タスクXを実行するコア#j(jは0以上の整数)のメモリ消費量605と、タスクY(≠X)を実行するコア#k(kは0以上の整数で、k≠j)のメモリ消費量605と、により、実行時間変動率α を規定する実行時間変動率情報である。実行時間変動率α は、たとえば、コア#jでのタスクXのメモリ消費量605とコア#kでのタスクYのメモリ消費量605との組み合わせごとに、下記式(1)により設定される。
<Execution time fluctuation rate table 820>
FIG. 9 is an explanatory diagram showing an example of the execution time fluctuation rate table 820 according to the first embodiment. The execution time fluctuation rate table 820 refers to the resource usage information and calculates the memory consumption amount 605 of core #j (j is an integer greater than or equal to 0) that executes task X, and the memory consumption amount 605 of core #j that executes task Y (≠X). This is execution time fluctuation rate information that defines the execution time fluctuation rate α For example, the execution time variation rate α Ru.

α =e /e・・・(1) α X Y = e X Y / e X ...(1)

上記式(1)において、eは、コア#jがタスクXを実行したときの実行時間(単独実行時間)であり、e は、コア#j,#kがタスクX、Yを並列実行した場合のコア#jによるタスクXの実行時間(並列実行時間)である。実行時間変動率α は1以上の値となる。すなわち、α =1であれば、コア#jはタスクXを単独実行してもコア#kでタスクYと並列実行しても、コア#jでのタスクXの実行時間は変わらないことを意味する。 In the above formula (1), e X is the execution time (independent execution time) when core #j executes task X , and e This is the execution time (parallel execution time) of task X by core #j when executed. The execution time variation rate α X Y takes a value of 1 or more. In other words, if α X Y = 1, the execution time of task X on core #j does not change even if core #j executes task means.

一方、α >1であれば、タスクX,Yをコア#j,コア#kが並列実行した場合、コア#jでのタスクXの並列実行時間e は、単独実行時間eよりも長くなることを意味する。たとえば、コア#jで実行されるタスクXのメモリ消費量605が8MB、コア#kで実行されるタスクYのメモリ消費量605が8MBの場合、実行時間変動率α =1.7(>1)である。 On the other hand, if α X Y > 1, when tasks X and Y are executed in parallel by core #j and core #k , the parallel execution time e means it will be longer than For example , if the memory consumption 605 of task >1).

実行時間変動率テーブル820は、コア#jとコア#kとの組み合わせと同一性能のコアの組み合わせに流用可能である。コア#jとコア#kとの組み合わせと同一性能のコアの組み合わせについては、別途、実行時間変動率テーブル820が用意される。また、実行時間変動率テーブル820は、2つのコアの組み合わせについての実行時間変動率α を規定したが、3以上のコアの組み合わせについて実行時間変動率α を規定してもよい。 The execution time variation rate table 820 can be used for a combination of cores with the same performance as the combination of core #j and core #k. A separate execution time variation rate table 820 is prepared for a combination of cores with the same performance as the combination of core #j and core #k. Furthermore, although the execution time variation rate table 820 defines the execution time variation rate α X Y for a combination of two cores, the execution time variation rate α X Y may be defined for a combination of three or more cores.

また、実行時間変動率テーブル820において、コア#jのメモリ消費量605およびコア#kのメモリ消費量605は離散値で規定されているが、範囲で規定してもよい。たとえば、「10KB」は、10KB以下という意味とし、「20KB」は、20KB以下(10KB以下を含まない)という意味としてもよい。30KB、…、8MBについても同様である。また、実行時間変動率情報は、実行時間変動率テーブル820のようなテーブル形式ではなく、コア#jのメモリ消費量605およびコア#kのメモリ消費量605を与えた場合に実行時間変動率αXYを出力する関数としてもよい。 In the execution time variation rate table 820, the memory consumption amount 605 of the core #j and the memory consumption amount 605 of the core #k are specified as discrete values, but may be specified as ranges. For example, "10 KB" may mean 10 KB or less, and "20 KB" may mean 20 KB or less (excluding 10 KB or less). The same applies to 30 KB, ..., 8 MB. In addition, the execution time variation rate information may be a function that outputs the execution time variation rate α XY when the memory consumption amount 605 of the core #j and the memory consumption amount 605 of the core #k are given, instead of a table format like the execution time variation rate table 820.

生成部830は、並列実行時間を予測する場合、コア#jが実行するタスクXのメモリ消費量605をタスクセット600から読み出し、コア#kが実行するタスクYのメモリ消費量605をタスクセット600から読み出して、実行時間変動率テーブル820から、読み出した両メモリ消費量605で特定される実行時間変動率α を読み出す。また、生成部830は、コア#jが実行するタスクXの単独実行時の最悪実行時間603を単独実行時間eとしてタスクセット600から読み出す。 When predicting parallel execution time, the generation unit 830 reads the memory consumption amount 605 of task X executed by core #j from the task set 600, and reads the memory consumption amount 605 of task Y executed by core #k from the task set 600 Then, from the execution time fluctuation rate table 820, the execution time fluctuation rate α X Y specified by the read memory consumption amount 605 is read out. The generation unit 830 also reads out the worst execution time 603 of the individual execution of the task X executed by the core #j from the task set 600 as the individual execution time eX .

生成部830は、読み出した実行時間変動率α と単独実行時間eとを上記式(1)に代入することにより、コア#kと並列実行したときのコア#jのタスクXの並列実行時間e を、タスクXの実行時間の予測値として算出する。 By substituting the read execution time variation rate α The execution time e X Y is calculated as a predicted value of the execution time of the task X.

<スケジュール生成処理手順例>
図10は、実施例1にかかる生成部830によるスケジュール生成処理手順例を示すフローチャートである。生成部830は、各タスクXについて、後続タスクZと実行時間変動率α とに基づいて、実行開始までの猶予時間を計算する(ステップS1001)。後続タスク(Zとする)とは、タスクXからのデータの直接または間接的な受け渡し先となる1つの経路のタスクである。
<Example of schedule generation processing procedure>
FIG. 10 is a flowchart illustrating an example of a schedule generation processing procedure by the generation unit 830 according to the first embodiment. The generation unit 830 calculates the grace time until the start of execution for each task X based on the subsequent task Z and the execution time fluctuation rate α X Y (step S1001). The successor task (referred to as Z) is a task on one route to which data from task X is directly or indirectly transferred.

たとえば、タスクA⇒B⇒Cまでの経路において、タスクCには後続タスクZは存在せず、タスクBの後続タスクZはタスクCであり、タスクAの1つの後続タスクZはB,Cである。また、タスクA⇒Dまでの経路において、タスクDには後続タスクZは存在せず、タスクAの後続タスクZはタスクDである。ステップS1001は、いずれのタスクXも割当先のコアが決定しておらず、また、どのタスクXと並列実行されるかわからない。 For example, on the path from task A⇒B⇒C, task C has no successor task Z, task B's successor task Z is task C, and task A's one successor task Z is B and C. be. Further, on the path from task A to D, task D does not have a successor task Z, and task A's successor task Z is task D. In step S1001, the core to which any task X is assigned has not been determined, and it is not known which task X will be executed in parallel.

したがって、タスクXがコア#jに割り当てられたと仮定して、実行時間変動率テーブル820内のコア#jで実行されるタスクXのメモリ消費量605の行内の実行時間変動率α のいずれかの値、たとえば、最悪値(ここでは、最大値)が用いられる。たとえば、コア#jに割り当てられたタスクXのメモリ消費量605が8MBであれば、「1.7」が実行時間変動率α の最悪値となる。なお最悪値に限らず、平均値や中央値などの統計値でもよい。 Therefore, assuming that task X is assigned to core #j, which of the execution time fluctuation rates α For example, the worst value (here, the maximum value) is used. For example, if the memory consumption amount 605 of task X assigned to core #j is 8 MB, "1.7" is the worst value of the execution time variation rate α X Y. Note that the value is not limited to the worst value, but may be a statistical value such as an average value or a median value.

また、コア#jについての実行時間変動率テーブル820が複数存在する場合、複数の実行時間変動率テーブル820において、コア#jで実行されるタスクXのメモリ消費量605の行内の実行時間変動率α のいずれかの値、たとえば、最悪値(ここでは、最大値)が用いられる。 In addition, when there are multiple execution time fluctuation rate tables 820 for core #j, in the multiple execution time fluctuation rate tables 820, the execution time fluctuation rate in the row of memory consumption 605 of task X executed on core #j Any value of α X Y , for example, the worst value (here, the maximum value) is used.

そして、生成部830は、以下の式(2)により、タスクXの猶予時間Tg(X)を算出する。 Then, the generation unit 830 calculates the grace period Tg(X) of the task X using the following equation (2).

Tg(X)=DL(X)-{αwst(X)×Twst(X)+Σ(αwst(Z)×Twst(Z))}
ただし、Tg(X)<0であれば、Tg(X)=0
・・・(2)
Tg(X)=DL(X)−{α wst (X)×T wst (X)+Σ(α wst (Z i )×T wst (Z i ))}
However, if Tg(X)<0, Tg(X)=0
...(2)

DL(X)は、タスクXの制御周期602である。αwst(X)は、実行時間変動率テーブル820内のコア#jで実行されるタスクXのメモリ消費量605の行内の実行時間変動率α のいずれかの値(たとえば、最悪値)である。Twst(X)は、タスクXの単独実行時の最悪実行時間603である。 DL(X) is the control period 602 of task X. α wst (X) is any value (for example, the worst value) of the execution time fluctuation rate α X Y in the row of the memory consumption amount 605 of task It is. T wst (X) is the worst execution time 603 when task X is executed alone.

αwst(Z)は、実行時間変動率テーブル820内のコア#jで実行されるタスクXに後続するi番目の後続タスクZのメモリ消費量605の行内の実行時間変動率α の最悪値である。ただし、後続タスク数iは、0≦i≦nを満たす整数である。i=0の場合は、後続タスクZは存在しない。 α wst (Z i ) is the worst value of the execution time variation rate α XY in the row of the memory consumption 605 of the i-th succeeding task Z i of task X executed on core #j in the execution time variation rate table 820. Here, the number of succeeding tasks i is an integer satisfying 0≦i≦n. When i=0, there is no succeeding task Z i .

具体的には、たとえば、生成部830は、タスクセット600の依存関係606を参照して、最後に実行されるタスクXから順次選択する。たとえば、生成部830は、タスクCを選択する。タスクCには後続タスクZがないため(i=0)、生成部830は、上記式(2)により、i=0として、タスクCの実行開始までの猶予時間Tg(C)を算出する。 Specifically, for example, the generation unit 830 refers to the dependency relationship 606 of the task set 600 and sequentially selects the task X to be executed last. For example, the generation unit 830 selects task C. Since task C has no successor task Z i (i=0), the generation unit 830 calculates the grace time Tg(C) until the start of execution of task C using the above equation (2) with i=0. .

この場合、タスクCの制御周期602はDL(C)=100[ms]であり、単独実行時の最悪実行時間603はTwst(C)=10[ms]である。実行時間変動率テーブル820から参照されるタスクCの最悪値αwst(C)を、たとえば、「1.2」とした場合、タスクCの猶予時間Tg(C)は、以下の式(3)のようになる。 In this case, the control period 602 of task C is DL(C)=100 [ms], and the worst execution time 603 during independent execution is T wst (C)=10 [ms]. If the worst value α wst (C) of task C referenced from the execution time variation rate table 820 is, for example, "1.2", the grace period Tg(C) of task C is expressed by the following formula (3).

Tg(C)=100-(1.2×10)=88[ms]・・・(3) Tg(C) = 100 - (1.2 x 10) = 88 [ms] ... (3)

つぎに、生成部830は、タスクCの依存元となるタスクBを選択する。タスクBの制御周期602はDL(B)=100[ms]であり、タスクBの単独実行時の最悪実行時間603はTwst(B)=30[ms]である。タスクBの後続タスクはタスクCである。したがって、i=1である。実行時間変動率テーブル820から参照されるタスクBの最悪値αwst(B)を、たとえば、「1.0」とした場合、タスクBの猶予時間Tg(B)は、以下の式(4)のようになる。 Next, the generation unit 830 selects task B on which task C depends. The control cycle 602 of task B is DL(B)=100 [ms], and the worst execution time 603 when task B is executed alone is T wst (B)=30 [ms]. Task B's successor task is task C. Therefore, i=1. If the worst value α wst (B) of task B referred to from the execution time fluctuation rate table 820 is, for example, “1.0”, the grace time Tg (B) of task B is calculated by the following formula (4). become that way.

Tg(B)=100-{(1.0×30)+(1.2×10)}=58[ms]
・・・(4)
Tg(B)=100-{(1.0×30)+(1.2×10)}=58[ms]
...(4)

つぎに、生成部830は、タスクBの依存元となるタスクAを選択する。タスクAの制御周期602はDL(A)=50[ms]であり、タスクAの単独実行時の最悪実行時間603はTwst(A)=10[ms]である。タスクAの後続タスクはタスクB,Cである。したがって、i=2である。実行時間変動率テーブル820から参照されるタスクAの最悪値αwst(A)を、たとえば、「1.1」とした場合、タスクAの猶予時間Tg(A)は、以下の式(5)のようになる。 Next, the generation unit 830 selects task A on which task B depends. The control cycle 602 of task A is DL(A)=50 [ms], and the worst execution time 603 when task A is executed alone is T wst (A)=10 [ms]. Task A's successor tasks are tasks B and C. Therefore, i=2. When the worst value α wst (A) of task A referred to from the execution time fluctuation rate table 820 is, for example, “1.1”, the grace time Tg (A) of task A is calculated by the following formula (5). become that way.

Tg(A)=50-{(1.1×10)+(1.0×30)+(1.2×10)}
=-3[ms]・・・・・(5)
猶予時間Tg(A)が負の値となったため、Tg(A)=0とする。
Tg(A)=50-{(1.1×10)+(1.0×30)+(1.2×10)}
=-3[ms]...(5)
Since grace time Tg(A) has become a negative value, Tg(A) is set to 0.

つぎに、生成部830は、タスクDを選択する。タスクDには後続タスクZがないため(i=0)、生成部830は、上記式(2)により、i=0として、タスクDの実行開始までの猶予時間Tg(D)を算出する。この場合、タスクDの制御周期602はDL(D)=100[ms]であり、単独実行時の最悪実行時間603はTwst(D)=20[ms]である。実行時間変動率テーブル820から参照されるタスクDの最悪値αwst(C)を、たとえば、「1.3」とした場合、タスクDの猶予時間Tg(D)は、以下の式(6)のようになる。 Next, the generation unit 830 selects task D. Since task D has no successor task Z i (i=0), the generation unit 830 calculates the grace time Tg(D) until the start of execution of task D using the above equation (2) with i=0. . In this case, the control period 602 of task D is DL(D)=100 [ms], and the worst execution time 603 when executed alone is T wst (D)=20 [ms]. When the worst value α wst (C) of task D referred to from the execution time fluctuation rate table 820 is, for example, “1.3”, the grace time Tg (D) of task D is calculated by the following formula (6). become that way.

Tg(D)=100-(1.3×20)=74[ms]・・・(6) Tg(D)=100-(1.3×20)=74[ms]...(6)

つぎに、生成部830は、タスクDの依存元となるタスクAを選択する。タスクAの制御周期602はDL(A)=50[ms]であり、タスクAの単独実行時の最悪実行時間603はTwst(A)=10[ms]である。タスクAの後続タスクはタスクDである。したがって、i=1である。実行時間変動率テーブル820から参照されるタスクAの最悪値αwst(A)を、たとえば、「1.1」とした場合、タスクAの猶予時間Tg(A)は、以下の式(7)のようになる。 Next, the generation unit 830 selects task A on which task D depends. The control cycle 602 of task A is DL(A)=50 [ms], and the worst execution time 603 when task A is executed alone is T wst (A)=10 [ms]. Task A's successor task is task D. Therefore, i=1. When the worst value α wst (A) of task A referred to from the execution time fluctuation rate table 820 is, for example, “1.1”, the grace time Tg (A) of task A is calculated by the following formula (7). become that way.

Tg(A)=50-{(1.1×10)+(1.3×20)}=13[ms]
・・・・・(7)
Tg(A)=50-{(1.1×10)+(1.3×20)}=13[ms]
・・・・・・(7)

ただし、タスクAの猶予時間Tg(A)は上記式(5)でも算出されているため、生成部830は、猶予時間が短い方を選択する。この場合、上記式(5)のタスクAの猶予時間Tg(A)=0が選択される。生成部830は、タスクE~Hについても同様に猶予時間Tg(E)~Tg(H)を算出する。このようにして、タスクA~Hの猶予時間Tg(A)~Tg(H)が算出され、ステップS1001が終了する。 However, since the grace period Tg(A) of task A is also calculated by the above equation (5), the generation unit 830 selects the shorter grace period. In this case, grace time Tg(A)=0 for task A in equation (5) above is selected. The generation unit 830 similarly calculates grace times Tg(E) to Tg(H) for tasks E to H. In this way, grace times Tg(A) to Tg(H) for tasks A to H are calculated, and step S1001 ends.

つぎに、生成部830は、猶予時間Tg(X)が短いタスクXから順に累積コア使用率が最小のコアに割り当てる(ステップS1002)。具体的には、たとえば、生成部830は、図1の(a),(b)に示したように、タスクA~Hをコアに割り当てる。 Next, the generation unit 830 allocates the task X to the core with the lowest cumulative core usage rate in order from the task X with the shortest grace time Tg(X) (step S1002). Specifically, for example, the generation unit 830 assigns tasks A to H to cores as shown in FIGS. 1A and 1B.

つぎに、生成部830は、コア毎に、猶予時間Tg(X)に基づいてタスクXの実行順を決定する(ステップS1003)。具体的には、たとえば、生成部830は、図1の(b)に示したように、(a)の割当結果からタスクA~Hの実行順序101を決定する。 Next, the generation unit 830 determines the execution order of tasks X based on the grace period Tg(X) for each core (step S1003). Specifically, for example, as shown in FIG. 1B, the generation unit 830 determines the execution order 101 of tasks A to H from the assignment result in FIG. 1A.

つぎに、生成部830は、実行順序101から並列実行されているタスクX,Yのメモリ消費量605をタスクセット600から特定し、タスクX,Yの並列実行時におけるタスクXの実行時間変動率α を実行時間変動率テーブル820から特定する(ステップS1004)。 Next, the generation unit 830 identifies the memory consumption amount 605 of the tasks X and Y that are executed in parallel from the execution order 101 from the task set 600, and determines the execution time variation rate of the task X when the tasks X and Y are executed in parallel. α X Y is specified from the execution time variation rate table 820 (step S1004).

つぎに、生成部830は、タスクXの単独実行時の最悪実行時間603と、タスクXの実行時間変動率α と、に基づいて、コア#jでのタスクXの実行時間を予測する(ステップS1005)。具体的には、たとえば、生成部830は、上述したように、実行時間変動率テーブル820の実行時間変動率α と単独実行時間eとを上記式(1)に代入することにより、コア#kが並列実行したときのタスクYを実行したときのコア#jの並列実行時間e を予測値として算出する。タスクXの並列実行時間e は、実行順序101におけるタスクXの実行開始時点からの時間長となる。これにより、図1の(c)に示したようなスケジュール102が生成される。 Next, the generation unit 830 predicts the execution time of task X in core #j based on the worst execution time 603 when task X is executed alone and the execution time fluctuation rate αXY of task X (step S1005). Specifically, for example, the generation unit 830 calculates the parallel execution time eXY of core #j when task Y is executed in parallel by core #k as a predicted value by substituting the execution time fluctuation rate αXY and the independent execution time eX of the execution time fluctuation rate table 820 into the above formula ( 1 ) as described above. The parallel execution time eXY of task X is the time length from the start of execution of task X in the execution order 101. As a result , a schedule 102 as shown in FIG. 1C is generated.

最後に、生成部830は、全タスクA~Hについてデッドライン超過がないか検証する(ステップS1006)。具体的には、たとえば、生成部830は、スケジュール102を参照して、タスクXごとの実行終了時点が、そのタスクXの制御周期602を超えていないか否かを判定する。いずれのタスクXも制御周期602を超えていなければ、生成部830は、スケジュール102を確定する。 Finally, the generation unit 830 verifies whether the deadlines for all tasks A to H are exceeded (step S1006). Specifically, for example, the generation unit 830 refers to the schedule 102 and determines whether the execution end point of each task X does not exceed the control cycle 602 of that task X. If none of the tasks X exceeds the control period 602, the generation unit 830 finalizes the schedule 102.

確定したスケジュール102は、たとえば、マルチコアプロセッサ100の製造時に実装される。また、移動体制御装置200におけるマルチコアプロセッサ100の運用時に、スケジュール生成装置700は、最新のスケジュール102をマルチコアプロセッサ100に送信してもよい。これにより、マルチコアプロセッサ100は、最新のスケジュール102を受信して更新し、最新のスケジュール102にしたがって自動運転アプリケーション500を実行し、移動体V1を制御する。このように、マルチコアプロセッサ100におけるタスクA~Hの処理のリアルタイム性を改善し、タスクA~Hの処理効率の向上を図ることができる。 The determined schedule 102 is implemented, for example, when the multi-core processor 100 is manufactured. Furthermore, during operation of the multi-core processor 100 in the mobile control device 200, the schedule generation device 700 may transmit the latest schedule 102 to the multi-core processor 100. Thereby, the multi-core processor 100 receives and updates the latest schedule 102, executes the automatic driving application 500 according to the latest schedule 102, and controls the mobile object V1. In this way, it is possible to improve the real-time performance of the processing of tasks A to H in the multi-core processor 100, and to improve the processing efficiency of tasks A to H.

なお、いずれか1つでも制御周期602を超えたタスクXが存在する場合、実行時間変動率テーブル820を参照して、ユーザが、処理性能が向上するタスクA~Hの実行順序101を探索し、生成部830が、探索された実行順序101を用いてスケジュール102を再生成する。また、実行時間変動率テーブル820から得られる制御周期602までの猶予時間の範囲内で、ユーザは、他のコア#kで並列実行される他のタスクYとのデータ共有やキャッシュ競合の回避を考慮して、実行順序101における実行開始時刻のオフセットを設定してもよい。 Note that if there is any task X that exceeds the control period 602, the user refers to the execution time variation rate table 820 to search for an execution order 101 of tasks A to H that improves processing performance. , the generation unit 830 regenerates the schedule 102 using the searched execution order 101. Furthermore, within the grace period up to the control cycle 602 obtained from the execution time variation rate table 820, the user can share data with other tasks Y that are executed in parallel on other cores #k and avoid cache conflicts. In consideration, an offset of the execution start time in the execution order 101 may be set.

このように、実施例1によれば、実行順の遅い後続タスクZから、並列実行時の最悪実行時間Twst(X)から実行開始までの猶予時間Tg(X)を逆算することで、高精度なデッドライン検証が可能になり、スケジュール102のリアルタイム性の改善、および、タスクA~Hの処理効率の向上を図ることができる。 As described above, according to the first embodiment, by calculating backwardly the grace time Tg (X) from the worst execution time T wst (X) in parallel execution to the start of execution from the succeeding task Z n with a slow execution order, Highly accurate deadline verification becomes possible, and it is possible to improve the real-time performance of the schedule 102 and the processing efficiency of tasks A to H.

なお、図8では、生成部830および実行時間変動率テーブル820をスケジュール生成装置700に実装したが生成部830および実行時間変動率テーブル820をECU210に実装してもよい。この場合について、図11を例に挙げて説明する。 Note that in FIG. 8, the generation unit 830 and the execution time fluctuation rate table 820 are installed in the schedule generation device 700, but the generation unit 830 and the execution time fluctuation rate table 820 may be installed in the ECU 210. This case will be explained using FIG. 11 as an example.

<ECU210の機能的構成例>
図11は、実施例1にかかるECU210の機能的構成例を示すブロック図である。図11のECU210は、生成部830および実行時間変動率テーブル820を有する。たとえば、移動体制御装置200の運用時に、ECU210で実行されるタスクXの追加、削除、更新がクラウド201を通じて実行された場合に、ECU210がスケジュール102を生成し、更新することができる。
<Functional configuration example of ECU 210>
FIG. 11 is a block diagram showing an example of the functional configuration of the ECU 210 according to the first embodiment. ECU 210 in FIG. 11 includes a generation unit 830 and an execution time fluctuation rate table 820. For example, when the ECU 210 adds, deletes, or updates a task X through the cloud 201 during operation of the mobile control device 200, the ECU 210 can generate and update the schedule 102.

具体的には、たとえば、自動運転アプリケーション500の実行中の各タスクXによるリソース使用情報を、リソース監視部812が逐次取得し、生成部830にフィードバックする。生成部830は、受け取ったリソース使用情報に基づいて、実行時間変動率テーブル820の実行時間変動率α を更新する。これにより、生成部830は、各タスクXのコア割り当てと実行開始時刻を変更することができる。 Specifically, for example, the resource monitoring unit 812 sequentially acquires resource usage information by each task X that is being executed in the automatic driving application 500 and feeds it back to the generation unit 830. The generation unit 830 updates the execution time fluctuation rate α X Y in the execution time fluctuation rate table 820 based on the received resource usage information. Thereby, the generation unit 830 can change the core allocation and execution start time of each task X.

つぎに、実施例2について説明する。実施例2は、タスクXのコアへの割り当てを生成部830によるスケジュール102の生成に先立って実行する例である。なお、実施例2では、実施例1との相違点を中心に説明するため、実施例1との共通部分については説明を省略する。 Next, Example 2 will be explained. The second embodiment is an example in which assignment of task X to a core is performed prior to generation of the schedule 102 by the generation unit 830. Note that in the second embodiment, since the explanation will focus on the differences from the first embodiment, the explanation of the common parts with the first embodiment will be omitted.

<情報処理システム800の機能的構成例>
図12は、実施例2にかかる情報処理システム800の機能的構成例1を示すブロック図である。図8との相違点は、図12では、スケジュール生成装置700は、タスクXをコアに割り当てる割当部1200を有する点である。したがって、実施例2では、生成部830は、図1の(b)に示したようなタスクXのコアへの割り当てを実行しない。なお、割当部1200は、具体的には、たとえば、図6に示した記憶デバイス702に記憶されたプログラムをプロセッサ701に実行させることにより実現される。
<Functional configuration example of information processing system 800>
FIG. 12 is a block diagram showing a functional configuration example 1 of an information processing system 800 according to the second embodiment. The difference from FIG. 8 is that in FIG. 12, schedule generation device 700 includes an allocation unit 1200 that allocates task X to a core. Therefore, in the second embodiment, the generation unit 830 does not perform the assignment of task X to the cores as shown in FIG. 1(b). Note that the allocation unit 1200 is specifically realized, for example, by causing the processor 701 to execute a program stored in the storage device 702 shown in FIG. 6.

<割当部1200によるコア割当処理手順>
図13は、実施例2にかかる割当部1200によるコア割当処理手順例を示すフローチャートである。図14は、割当部1200によるコア割当処理例1を示す説明図であり、図15は、割当部1200によるコア割当処理例2を示す説明図である。
<Core allocation processing procedure by allocation unit 1200>
FIG. 13 is a flowchart illustrating an example of a core allocation processing procedure by the allocation unit 1200 according to the second embodiment. FIG. 14 is an explanatory diagram showing example 1 of core allocation processing by the allocation unit 1200, and FIG. 15 is an explanatory diagram showing example 2 of core allocation processing by the allocation unit 1200.

割当部1200は、図14の(a)に示した未グルーピングタスク集合1400に、タスクセット600内のタスクA~Hを追加する(ステップS1301)。図14の(a)に示したように、未グルーピングタスク集合1400には、グルーピング前のタスクA~Hが存在する。 The allocation unit 1200 adds tasks A to H in the task set 600 to the ungrouped task set 1400 shown in FIG. 14(a) (step S1301). As shown in FIG. 14(a), the ungrouped task set 1400 includes tasks A to H before grouping.

つぎに、割当部1200は、未グルーピングタスク集合1400中に依存関係606のあるタスク組が存在するか否かを判断する(ステップS1302)。存在する場合は、割当部1200はステップS1303~S1305を実行し、タスク組が存在しない場合には、ステップS1306に移行する。 Next, the allocation unit 1200 determines whether a task set with the dependency relationship 606 exists in the ungrouped task set 1400 (step S1302). If the task set exists, the allocation unit 1200 executes steps S1303 to S1305, and if the task set does not exist, the process moves to step S1306.

ステップS1303では、割当部1200は、タスクセット600を参照して、依存関係606によってつながっているタスク組を1組選択してグルーピングする。たとえば、図14の(b)に示したように、タスクA~Dは、依存関係606でつながっているタスク組としてグルーピングされ(グループ1401)、タスクE,Fは、依存関係606でつながっているタスク組としてグルーピングされ(グループ1402)、タスクG,Hは、依存関係606でつながっているタスク組としてグルーピングされる(グループ1403)。 In step S1303, the allocation unit 1200 refers to the task set 600, selects one set of tasks connected by the dependency relationship 606, and groups them. For example, as shown in FIG. 14(b), tasks A to D are grouped as a task set (group 1401) that are connected by a dependency relationship 606, and tasks E and F are connected by a dependency relationship 606. They are grouped as a task set (group 1402), and tasks G and H are grouped as a task set connected by a dependency relationship 606 (group 1403).

ステップS1304では、割当部1200は、グループ1401~1403の各々について、グループ内コア使用率を算出する。グループ内コア使用率とは、グループ1401~1403内のタスクXのコア使用率の総和である。図14の(c)に示したように、グループ1401は「0.8」、グループ1402は「0.4」、グループ1403は「0.6」である。 In step S1304, the allocation unit 1200 calculates the intra-group core usage rate for each of the groups 1401-1403. The in-group core usage rate is the sum of the core usage rates of tasks X in groups 1401 to 1403. As shown in FIG. 14(c), the group 1401 is "0.8", the group 1402 is "0.4", and the group 1403 is "0.6".

そして、割当部1200は、グループ内コア使用率が1を超えるグループについては、グループ内コア使用率が1以下になるまで、コア使用率が最小のタスクXをグループから除外する。図14の(c)のグループ1401~1403のグループ内コア使用率はいずれも1以下であるため、タスクXの除外は実行されない。このあと、ステップS1305では、グループ1401~1403内の全タスクを未グルーピングタスク集合1400から除外する。なお、ステップS1305で除外されたグループ1401~1403は、ステップS1306で用いられる。 Then, for groups where the intra-group core usage rate exceeds 1, the allocation unit 1200 excludes the task X with the minimum core usage rate from the group until the intra-group core usage rate becomes 1 or less. Since the intra-group core usage rates of groups 1401 to 1403 in FIG. 14(c) are all less than or equal to 1, task X is not excluded. After this, in step S1305, all tasks in groups 1401 to 1403 are excluded from the ungrouped task set 1400. Note that the groups 1401 to 1403 excluded in step S1305 are used in step S1306.

このあと、割当部1200は、図15に示したように、グループ1401~1403をグループ内コア使用率の大きい順(1401⇒1403⇒1402)に並び替える(ステップS1306)。そして、割当部1200は、グループ内コア使用率が大きいグループから、累積コア使用率が最小のコアに割り当てる(ステップS1307)。 After that, the allocation unit 1200 rearranges the groups 1401 to 1403 in descending order of intra-group core usage rate (1401⇒1403⇒1402) as shown in FIG. 15 (step S1306). Then, the allocation unit 1200 allocates the core with the lowest cumulative core usage rate from the group with the highest intra-group core usage rate (step S1307).

たとえば、図15に示したように、割り当て前のコア#0およびコア#0の累積コア使用率はともに「0」である。まず、割当部1200は、グループ内コア使用率が最大のグループ1401をコア#0に割り当てる。これにより、コア#0の累積コア使用率は、「0」から「0.8」に更新される。 For example, as shown in FIG. 15, the cumulative core usage rates of core #0 and core #0 before allocation are both "0". First, the allocation unit 1200 allocates the group 1401 with the highest in-group core usage rate to core #0. As a result, the cumulative core usage rate of core #0 is updated from "0" to "0.8".

つぎに、割当部1200は、グループ内コア使用率が2番目に大きいグループ1403を、累積コア使用率が小さい方のコア#1に割り当てる。これにより、コア#1の累積コア使用率は、「0」から「0.6」に更新される。つぎに、割当部1200は、グループ内コア使用率が3番目に大きいグループ1402を、累積コア使用率が小さい方のコア#1に割り当てる。これにより、コア#1の累積コア使用率は、「0.6」から「1.0」に更新される。 Next, the allocation unit 1200 allocates the group 1403 with the second highest intra-group core usage rate to core #1 with the smaller cumulative core usage rate. As a result, the cumulative core usage rate of core #1 is updated from "0" to "0.6". Next, the allocation unit 1200 allocates the group 1402 with the third highest intra-group core usage rate to core #1 with the smaller cumulative core usage rate. As a result, the cumulative core usage rate of core #1 is updated from "0.6" to "1.0".

これにより、グループ1401内のタスクA~Dはコア#0に割り当てられ、グループ1402内のタスクE,Fはコア#1に割り当てられ、グループ1403内のタスクG,Hはコア#1に割り当てられる。 As a result, tasks A to D in group 1401 are assigned to core #0, tasks E and F in group 1402 are assigned to core #1, and tasks G and H in group 1403 are assigned to core #1. .

<スケジュール生成処理手順例>
図16は、実施例2にかかる生成部830によるスケジュール生成処理手順例を示すフローチャートである。図16では、図10に示したステップS1001~S1006のうち、ステップS1001、S1003~S1006が実行される。
<Example of schedule generation processing procedure>
FIG. 16 is a flowchart illustrating an example of a schedule generation processing procedure by the generation unit 830 according to the second embodiment. In FIG. 16, among steps S1001 to S1006 shown in FIG. 10, steps S1001 and S1003 to S1006 are executed.

具体的には、たとえば、生成部830は、実施例1と同様、図9に示した実行時間変動率テーブル820を用いて、タスクXごとの猶予時間を算出する(ステップS1001)。すでに、図13~図15に示したように、コアの割り当ては実行済みであるため、生成部830は、割当部1200による割当結果(図15)を用いて、実施例1と同様、ステップS1003~S1006を実行する。 Specifically, for example, the generation unit 830 calculates the grace time for each task X using the execution time fluctuation rate table 820 shown in FIG. 9, as in the first embodiment (step S1001). As shown in FIGS. 13 to 15, the core allocation has already been performed, so the generation unit 830 uses the allocation result (FIG. 15) by the allocation unit 1200 to perform step S1003 as in the first embodiment. - Execute S1006.

確定したスケジュール102は、たとえば、マルチコアプロセッサ100の製造時に実装される。また、移動体制御装置200におけるマルチコアプロセッサ100の運用時に、スケジュール生成装置700は、最新のスケジュール102をマルチコアプロセッサ100に送信してもよい。これにより、マルチコアプロセッサ100は、最新のスケジュール102を受信して更新し、最新のスケジュール102にしたがって自動運転アプリケーション500を実行し、移動体V1を制御する。このように、マルチコアプロセッサ100におけるタスクA~Hの処理のリアルタイム性を改善し、タスクA~Hの処理効率の向上を図ることができる。 The determined schedule 102 is implemented, for example, when the multi-core processor 100 is manufactured. Furthermore, during operation of the multi-core processor 100 in the mobile control device 200, the schedule generation device 700 may transmit the latest schedule 102 to the multi-core processor 100. Thereby, the multi-core processor 100 receives and updates the latest schedule 102, executes the automatic driving application 500 according to the latest schedule 102, and controls the mobile object V1. In this way, it is possible to improve the real-time performance of the processing of tasks A to H in the multi-core processor 100, and to improve the processing efficiency of tasks A to H.

このように、実施例2によれば、データを共有するタスク組を同一コアに割り当てることができるため、複数のコア間でのキャッシュ競合の発生を抑制することができる。また、グループ内コア使用率が大きいタスク組ほど、累積コア使用率が最小のコアに割り当てられるため、複数のコア間での処理負荷の偏りを緩和し、各コアの利用効率の向上を図ることができる。 In this way, according to the second embodiment, a task set that shares data can be assigned to the same core, so it is possible to suppress the occurrence of cache contention among a plurality of cores. In addition, the task set with a higher core usage rate within a group is assigned to the core with the lowest cumulative core usage rate, which alleviates the imbalance in processing load among multiple cores and improves the usage efficiency of each core. Can be done.

また、実施例2では、スケジュール生成装置700が、生成部830と割当部1200とを有する構成としたが、生成部830と割当部1200とを別々の情報処理装置に設けてもよい。この場合について、図17を例に挙げて説明する。 In addition, in the second embodiment, the schedule generating device 700 is configured to include the generating unit 830 and the allocating unit 1200, but the generating unit 830 and the allocating unit 1200 may be provided in separate information processing devices. This case will be described with reference to FIG. 17 as an example.

<情報処理システム800の機能的構成例>
図17は、実施例2にかかる情報処理システム800の機能的構成例2を示すブロック図である。図17の情報処理システム800は、割当装置1700と、ECU210と、により構成される。割当装置1700は、タスクセット600と割当部1200とを有する。生成部830および実行時間変動率テーブル820はECU210に設けられ、生成部830による生成処理は、コア#0~#3のいずれかのコアまたはコア群401内の不図示のコアにより実行される。割当装置1700は、図13~図15に示した割当部1200によるコアの割当処理を実行する情報処理装置である。
<Functional configuration example of information processing system 800>
FIG. 17 is a block diagram showing a second functional configuration example of an information processing system 800 according to the second embodiment. Information processing system 800 in FIG. 17 is configured by allocation device 1700 and ECU 210. The allocation device 1700 includes a task set 600 and an allocation unit 1200. The generation unit 830 and the execution time variation rate table 820 are provided in the ECU 210, and the generation process by the generation unit 830 is executed by any one of cores #0 to #3 or a core (not shown) in the core group 401. The allocation device 1700 is an information processing device that executes core allocation processing by the allocation unit 1200 shown in FIGS. 13 to 15.

割当装置1700は、クラウド201に設けられてもよい。これにより、たとえば、移動体制御装置200の運用時に、ECU210で実行されるタスクXの追加、削除、更新がクラウド201を通じて実行された場合に、クラウド201内の割当装置1700が図13~図15に示した割当部1200によるコアの割当処理を実行し、ECU210が割当部1200による割当結果(図15)を用いて、スケジュール102を生成し、更新することができる。 The allocation device 1700 may be provided in the cloud 201. As a result, for example, when the addition, deletion, or update of task The ECU 210 can generate and update the schedule 102 by executing the core allocation process by the allocation unit 1200 shown in FIG.

なお、図11では、割当部1200を割当装置1700に実装したが割当部1200をECU210に実装してもよい。この場合について、図18を例に挙げて説明する。 In FIG. 11, the allocation unit 1200 is implemented in the allocation device 1700, but the allocation unit 1200 may be implemented in the ECU 210. This case will be explained using FIG. 18 as an example.

<ECU210の機能的構成例>
図18は、実施例2にかかるECU210の機能的構成例を示すブロック図である。図18のECU210は、割当部1200、生成部830および実行時間変動率テーブル820を有する。生成部830による生成処理および割当部1200による割当処理は、コア#0~#3のいずれかのコアまたはコア群401内の不図示のコアにより実行される。図18のECU210では、たとえば、移動体制御装置200の運用時に、ECU210で実行されるタスクの追加、削除、更新がクラウド201を通じて実行された場合に、ECU210が図13~図15に示した割当部1200によるコアの割当処理を実行し、割当部1200による割当結果(図15)を用いて、スケジュール102を生成し、更新する。
<Functional configuration example of ECU 210>
FIG. 18 is a block diagram showing an example of the functional configuration of the ECU 210 according to the second embodiment. ECU 210 in FIG. 18 includes an allocation section 1200, a generation section 830, and an execution time fluctuation rate table 820. The generation process by the generation unit 830 and the allocation process by the allocation unit 1200 are executed by any one of cores #0 to #3 or a core (not shown) in the core group 401. In the ECU 210 of FIG. 18, for example, when adding, deleting, or updating a task to be executed by the ECU 210 is performed through the cloud 201 during operation of the mobile control device 200, the ECU 210 assigns the assignments shown in FIGS. 13 to 15. The core allocation process by the allocation unit 1200 is executed, and the schedule 102 is generated and updated using the allocation result (FIG. 15) by the allocation unit 1200.

具体的には、たとえば、自動運転アプリケーション500の実行中の各タスクA~Hによるリソース使用情報を、リソース監視部812が逐次取得し、割当部1200および生成部830にフィードバックする。割当部1200は受け取ったリソース使用情報を基に、現状のコア割り当てよりもキャッシュ利用効率が向上するコア割り当てを実行して、割当結果を生成部830に推奨する。生成部830は、受け取ったリソース使用情報や推奨割当結果を受け、実行時間変動率テーブル820を更新する。これにより、生成部830は、各タスクのコア割り当てと実行開始時刻を変更することができる。 Specifically, for example, the resource monitoring unit 812 sequentially acquires resource usage information by each task A to H during execution of the automatic driving application 500, and feeds it back to the allocation unit 1200 and the generation unit 830. Based on the received resource usage information, the allocation unit 1200 executes core allocation that improves cache utilization efficiency than the current core allocation, and recommends the allocation result to the generation unit 830. The generation unit 830 receives the received resource usage information and recommended allocation results and updates the execution time fluctuation rate table 820. Thereby, the generation unit 830 can change the core allocation and execution start time of each task.

このように、実施例2によれば、たとえば、高速道路走行時や渋滞時などの運転シーンに応じ周囲の認識物体数が変化し、タスクのメモリ消費量605やタスク間で共有されるデータのサイズが変化した場合においても有効である。たとえば、割当部1200におけるタスクのグルーピング結果およびキャッシュ競合時の実行時間変動の予測の追従が可能であり、キャッシュメモリの実挙動を考慮した効果的な処理や高精度な実行時間予測が可能となる。 As described above, according to the second embodiment, the number of surrounding recognized objects changes depending on the driving scene, such as when driving on a highway or in traffic jams, and the memory consumption 605 of a task and the data shared between tasks change. This is effective even when the size changes. For example, it is possible to follow the task grouping results in the allocation unit 1200 and predictions of execution time fluctuations during cache contention, making it possible to perform effective processing that takes into account the actual behavior of the cache memory and to predict execution times with high precision. .

つぎに、実施例3について説明する。上述した実施例1および実施例2では、図9に示した実行時間変動率テーブル820を用いて猶予時間の計算やタスクの実行時間を予測した。これに対し、実施例3では、実施例1および実施例2において、図9に示した実行時間変動率テーブル820に替えて、タスクXがどの階層までメモリリソース(1次キャッシュ402、2次キャッシュ403、外部メモリ310)を使用するかを示すリソース属性を定義し、定義したリソース属性の組み合わせで実行時間変動率テーブル820が規定される。 Next, Example 3 will be explained. In the first and second embodiments described above, the grace period was calculated and the task execution time was predicted using the execution time fluctuation rate table 820 shown in FIG. On the other hand, in the third embodiment, in place of the execution time variation rate table 820 shown in FIG. 9 in the first and second embodiments, task 403 and external memory 310) are defined, and the execution time fluctuation rate table 820 is defined by a combination of the defined resource attributes.

これにより、実行時間変動率テーブル820のテーブルサイズが削減され、保存先の省メモリ化および更新時間の短縮化を図ることができる。なお、実施例3では、実施例1および実施例2との相違点を中心に説明するため、実施例1および実施例2との共通部分については説明を省略する。 This reduces the table size of the execution time variation rate table 820, making it possible to save memory at the storage location and shorten update time. Note that in the third embodiment, since the explanation will focus on the differences from the first embodiment and the second embodiment, the explanation of the common parts with the first embodiment and the second embodiment will be omitted.

図19は、リソース属性L#の定義を示す説明図である。リソース属性L#の階層番号が小さいほど、コアに近い(アクセス時間が短くてサイズも小さい)メモリリソースに対応する。図19において、cworstは、タスクXを実行する場合のメモリリソースの使用量の最悪値(たとえば、メモリ消費量605)である。cL1は、1次キャッシュ402のキャッシュサイズであり、cL2は、2次キャッシュ403のキャッシュサイズである。cL2>cL1である。 FIG. 19 is an explanatory diagram showing the definition of resource attribute L#. The smaller the layer number of the resource attribute L#, the closer the memory resource is to the core (shorter access time and smaller size). In FIG. 19, c worst is the worst value of memory resource usage when executing task X (for example, memory consumption 605). c L1 is the cache size of the primary cache 402, and c L2 is the cache size of the secondary cache 403. c L2 > c L1 .

worst≦cL1である場合、タスクXは1次キャッシュ402まで使用するため、タスクXのリソース属性はL1となる。cL1≦cworst≦cL2である場合、タスクXは2次キャッシュ403まで利用するため、タスクXのリソース属性はL2となる。cworst>cL2である場合、タスクXは外部メモリ310まで使用するため、タスクXのリソース属性はL3となる。 If c worst ≦c L1 , task X uses up to the primary cache 402, so the resource attribute of task X becomes L1. If c L1 ≦c worst ≦c L2 , task X uses up to the secondary cache 403, so the resource attribute of task X becomes L2. If c worst > c L2 , task X uses up to the external memory 310, so the resource attribute of task X becomes L3.

実施例3では、例として、cL1=32KB、cL2=2MBとする。したがって、タスクセット600を参照すると、タスクD,G,Hがリソース属性L1に所属し、タスクA,Cがリソース属性L2に所属し、タスクB,E,Fがリソース属性L3に所属する。 In the third embodiment, as an example, c L1 =32KB and c L2 =2MB. Therefore, referring to the task set 600, tasks D, G, and H belong to resource attribute L1, tasks A and C belong to resource attribute L2, and tasks B, E, and F belong to resource attribute L3.

<実行時間変動率テーブル>
図20は、実施例3にかかる実行時間変動率テーブルの一例を示す説明図である。実行時間変動率テーブル2000では、リソース使用情報を参照して、タスクXを実行するコア#j(jは0以上の整数)のリソース属性と、タスクY(≠X)を実行するコア#k(kは0以上の整数で、k≠j)のリソース属性と、により、実行時間変動率αLx Lyが規定される。実行時間変動率αLx Lyは、たとえば、コア#jでのタスクXのリソース属性とコア#kでのタスクYのリソース属性との組み合わせごとに、上記式(8)により設定される。
<Execution time fluctuation rate table>
20 is an explanatory diagram showing an example of an execution time variation rate table according to the third embodiment. In the execution time variation rate table 2000, the execution time variation rate α Lx Ly is defined by the resource attribute of the core #j (j is an integer equal to or greater than 0) that executes task X and the resource attribute of the core #k (k is an integer equal to or greater than 0, k ≠ j) that executes task Y (≠ X) with reference to the resource usage information. The execution time variation rate α Lx Ly is set, for example, by the above formula (8) for each combination of the resource attribute of task X in core #j and the resource attribute of task Y in core #k.

αLx Ly=eLx Ly/eLx・・・(8) α Lx Ly =e Lx Ly /e Lx ...(8)

実施例3では、上記式(8)のeLxは、コア#jがリソース属性LxのタスクXを実行したときの実行時間(単独実行時間)であり、eLx Lyは、コア#j,#kがリソース属性Lx,LyのタスクX、Yを並列実行した場合のコア#jによるタスクXの実行時間(並列実行時間)である。たとえば、コア#jで実行されるタスクXのリソース属性LxがL2、コア#kで実行されるタスクYのリソース属性LyがL3の場合、実行時間変動率αL2 L3=2.2(>1)である。 In the third embodiment, e Lx in the above formula (8) is the execution time (single execution time) when core #j executes task X with resource attribute Lx, and e Lx Ly is the execution time when core #j executes task k is the execution time (parallel execution time) of task X by core #j when tasks X and Y with resource attributes Lx and Ly are executed in parallel. For example, if the resource attribute Lx of task ).

なお、実行時間変動率テーブル2000は、コア#jとコア#kとの組み合わせと同一性能のコアの組み合わせに流用可能である。コア#jとコア#kとの組み合わせと同一性能のコアの組み合わせについては、別途、実行時間変動率テーブル2000が用意される。また、実行時間変動率テーブル2000は、2つのコアの組み合わせについての実行時間変動率αLx Lyを規定したが、3以上のコアの組み合わせについて実行時間変動率を規定してもよい。 Note that the execution time variation rate table 2000 can be used for a combination of cores with the same performance as the combination of core #j and core #k. A separate execution time variation rate table 2000 is prepared for the combination of cores with the same performance as the combination of core #j and core #k. Further, although the execution time variation rate table 2000 defines the execution time variation rate α Lx Ly for a combination of two cores, the execution time variation rate may be defined for a combination of three or more cores.

<猶予時間の算出例>
実施例3にかかる生成部830によるタスクXの猶予時間の算出例について説明する。実施例3では、図10および図16に示したステップS1001において、生成部830は、実行時間変動率テーブル2000を参照して、上記式(2)を用いてタスクXの猶予時間を算出する。
<Example of calculating grace time>
An example of calculating the grace period for task X by the generation unit 830 according to the third embodiment will be described. In the third embodiment, in step S1001 shown in FIGS. 10 and 16, the generation unit 830 refers to the execution time fluctuation rate table 2000 and calculates the grace period of task X using the above equation (2).

実施例3の場合、αwst(X)は、実行時間変動率テーブル2000内のコア#jで実行されるタスクXのリソース属性Lxの行内の実行時間変動率αLx Lyのいずれかの値(たとえば、最悪値)αLx である。たとえば、コア#jで実行されるタスクXのリソース属性LxがLx=L2の場合、L2の行で実行時間変動率αL2 L1は「1.0」、αL2 L2は「1.8」、αL2 L3は「2.2」である。したがって、最悪値αL2 は、αL2 L3の「2.2」である。 In the case of the third embodiment, α wst (X) is one of the values ( For example, the worst value) α Lx W. For example, if the resource attribute Lx of task α L2 L3 is “2.2”. Therefore, the worst value α L2 W is “2.2” of α L2 L3 .

同様に、αwst(Z)は、実行時間変動率テーブル2000内のコア#jで実行されるタスクXに後続するi番目の後続タスクZのリソース属性Lzの行内の実行時間変動率αLx Lyのいずれかの値(たとえば、最悪値)である。ただし、後続タスク数iは、0≦i≦nを満たす整数である。i=0の場合は、後続タスクZは存在しない。 Similarly, α wst (Z i ) is the intra-row execution time fluctuation rate α of the resource attribute Lz of the i-th successor task Z i that follows task X executed on core #j in the execution time fluctuation rate table 2000. It is any value (for example, the worst value) of Lx Ly . However, the number of subsequent tasks i is an integer satisfying 0≦i≦n. If i=0, there is no subsequent task Z i .

生成部830は、タスクセット600の依存関係606を参照して、最後に実行されるタスクXから順次選択する。たとえば、生成部830は、タスクCを選択する。タスクCには後続タスクZがないため(i=0)、生成部830は、上記式(2)により、i=0として、タスクCの実行開始までの猶予時間Tg(C)を算出する。 The generation unit 830 refers to the dependency relationships 606 of the task set 600 and sequentially selects the task X to be executed last. For example, the generation unit 830 selects task C. Since task C has no successor task Z i (i=0), the generation unit 830 calculates the grace time Tg(C) until the start of execution of task C using the above equation (2) with i=0. .

この場合、タスクCの制御周期602はDL(C)=100[ms]であり、単独実行時の最悪実行時間603はTwst(C)=10[ms]である。タスクCのリソース属性はL2であるため、L2の最悪値αL2 として実行時間変動率テーブル2000から「2.2」を読み出す。したがって、タスクCの猶予時間Tg(C)は、以下の式(9)のようになる。 In this case, the control cycle 602 of task C is DL(C)=100 [ms], and the worst execution time 603 when executed alone is T wst (C)=10 [ms]. Since the resource attribute of task C is L2, "2.2" is read from the execution time variation rate table 2000 as the worst value α L2 W of L2. Therefore, the grace time Tg(C) of task C is expressed by the following equation (9).

Tg(C)=100-(2.2×10)=78[ms]・・・(9) Tg(C) = 100 - (2.2 x 10) = 78 [ms] ... (9)

つぎに、生成部830は、タスクCの依存元となるタスクBを選択する。タスクBの制御周期602はDL(B)=100[ms]であり、タスクBの単独実行時の最悪実行時間603はTwst(B)=30[ms]である。タスクBの後続タスクはタスクCである。したがって、i=1である。タスクBのリソース属性はL3であるため、L3の最悪値αL3 として実行時間変動率テーブル2000から「1.2」を読み出す。したがって、タスクBの猶予時間Tg(B)は、以下の式(10)のようになる。 Next, the generation unit 830 selects task B on which task C depends. The control cycle 602 of task B is DL(B)=100 [ms], and the worst execution time 603 when task B is executed alone is T wst (B)=30 [ms]. Task B's successor task is task C. Therefore, i=1. Since the resource attribute of task B is L3, "1.2" is read from the execution time variation rate table 2000 as the worst value α L3 W of L3. Therefore, the grace time Tg(B) for task B is expressed by the following equation (10).

Tg(B)=100-{(1.2×30)+(2.2×10)}=42[ms]
・・・(10)
Tg(B)=100-{(1.2×30)+(2.2×10)}=42[ms]
...(10)

つぎに、生成部830は、タスクBの依存元となるタスクAを選択する。タスクAの制御周期602はDL(A)=50[ms]であり、タスクAの単独実行時の最悪実行時間603はTwst(A)=10[ms]である。タスクAの後続タスクはタスクB,Cである。したがって、i=2である。タスクAのリソース属性はL2であるため、L2の最悪値αL2 として実行時間変動率テーブル2000から「2.2」を読み出す。したがって、タスクAの猶予時間Tg(A)は、以下の式(11)のようになる。 Next, the generation unit 830 selects task A on which task B depends. The control cycle 602 of task A is DL(A)=50 [ms], and the worst execution time 603 when task A is executed alone is T wst (A)=10 [ms]. Task A's successor tasks are tasks B and C. Therefore, i=2. Since the resource attribute of task A is L2, "2.2" is read from the execution time variation rate table 2000 as the worst value α L2 W of L2. Therefore, the grace period Tg(A) for task A is expressed by the following equation (11).

Tg(A)=50-{(2.2×10)+(1.2×30)+(2.2×10)}
=-30[ms]・・・・(11)
猶予時間Tg(A)が負の値となったため、Tg(A)=0とする。
Tg(A)=50-{(2.2×10)+(1.2×30)+(2.2×10)}
=-30[ms]...(11)
Since grace time Tg(A) has become a negative value, Tg(A) is set to 0.

つぎに、生成部830は、タスクDを選択する。タスクDには後続タスクZがないため(i=0)、生成部830は、上記式(2)により、i=0として、タスクDの実行開始までの猶予時間Tg(D)を算出する。この場合、タスクDの制御周期602はDL(D)=100[ms]であり、単独実行時の最悪実行時間603はTwst(D)=20[ms]である。タスクDのリソース属性はL1であるため、L1の最悪値αL1 として実行時間変動率テーブル820から「1.0」を読み出す。したがって、タスクDの猶予時間Tg(D)は、以下の式(12)のようになる。 Next, the generation unit 830 selects task D. Since task D has no successor task Z i (i=0), the generation unit 830 calculates the grace time Tg(D) until the start of execution of task D using the above equation (2) with i=0. . In this case, the control period 602 of task D is DL(D)=100 [ms], and the worst execution time 603 when executed alone is T wst (D)=20 [ms]. Since the resource attribute of task D is L1, "1.0" is read from the execution time variation rate table 820 as the worst value α L1 W of L1. Therefore, the grace time Tg(D) of task D is expressed as the following equation (12).

Tg(D)=100-(1.0×20)=80[ms]・・・(12) Tg(D)=100-(1.0×20)=80[ms]...(12)

つぎに、生成部830は、タスクDの依存元となるタスクAを選択する。タスクAの制御周期602はDL(A)=50[ms]であり、タスクAの単独実行時の最悪実行時間603はTwst(A)=10[ms]である。タスクAの後続タスクZはタスクDである。したがって、i=1である。タスクAのリソース属性はL2であるため、L2の最悪値αL2 として実行時間変動率テーブル820から「2.2」を読み出す。したがって、タスクAの猶予時間Tg(A)は、以下の式(13)のようになる。 Next, the generation unit 830 selects task A on which task D depends. The control cycle 602 of task A is DL(A)=50 [ms], and the worst execution time 603 when task A is executed alone is T wst (A)=10 [ms]. Task A's successor task Z is task D. Therefore, i=1. Since the resource attribute of task A is L2, "2.2" is read from the execution time variation rate table 820 as the worst value α L2 W of L2. Therefore, the grace time Tg(A) of task A is expressed as the following equation (13).

Tg(A)=50-{(2.2×10)+(1.0×20)}=8[ms]
・・・・(13)
Tg(A)=50-{(2.2×10)+(1.0×20)}=8[ms]
...(13)

ただし、タスクAの猶予時間Tg(A)は上記式(11)でも算出されているため、生成部830は、猶予時間が短い方を選択する。この場合、上記式(11)のタスクAの猶予時間Tg(A)=0が選択される。生成部830は、タスクE~Hについても同様に猶予時間Tg(E)~Tg(H)を算出する。このようにして、タスクA~Hの猶予時間Tg(A)~Tg(H)が算出され、ステップS1001が終了する。 However, since the grace period Tg(A) of task A is also calculated by the above equation (11), the generation unit 830 selects the shorter grace period. In this case, grace time Tg(A)=0 for task A in equation (11) above is selected. The generation unit 830 similarly calculates grace times Tg(E) to Tg(H) for tasks E to H. In this way, grace times Tg(A) to Tg(H) for tasks A to H are calculated, and step S1001 ends.

図21は、実施例3において決定された実行順序の一例を示す説明図である。実行順序2101は、コア割当前において、タスクXの猶予時間で決定される。実行順序2102は、実施例1の生成部830または実施例2の割当部1200によるコアの割り当て後に実行順序2101に基づいて決定される。 FIG. 21 is an explanatory diagram showing an example of the execution order determined in the third embodiment. The execution order 2101 is determined by the grace time of task X before core allocation. The execution order 2102 is determined based on the execution order 2101 after core allocation by the generation unit 830 of the first embodiment or the allocation unit 1200 of the second embodiment.

図21の実行順序2102は、たとえば、実施例2の割当部1200によるコアの割り当て後に決定された実行順序である。したがって、コア#0には、グループ1401に所属するタスクA~Dが割り当てられ、コア#1には、グループ1402,1403に所属するタスクE~Hが割り当てられている。 The execution order 2102 in FIG. 21 is, for example, the execution order determined after the allocation unit 1200 of the second embodiment allocates cores. Therefore, tasks A to D belonging to group 1401 are assigned to core #0, and tasks E to H belonging to groups 1402 and 1403 are assigned to core #1.

図22は、単独実行時の最悪実行時間603に基づくタスク実行結果の一例を示す説明図である。タスク実行結果2200は、図21の実行順序2102において、タスクA~Hの単独実行時の最悪実行時間603に基づき、制御周期602までの猶予時間が短いものから順に実行した場合の実行結果である。ただし、タスクXの実行時間は、実施例3の実行時間変動率テーブル2000に基づきキャッシュ競合による実行時間変動率αLx Lyを考慮した実行時間である。特にタスクCではタスクEとの並列実行により実行時間が大きく増加することがわかる。 FIG. 22 is an explanatory diagram showing an example of a task execution result based on the worst execution time 603 during single execution. The task execution result 2200 is the execution result when the tasks A to H are executed in descending order of grace period until the control cycle 602 based on the worst execution time 603 when executing them alone in the execution order 2102 of FIG. 21. . However, the execution time of task X is an execution time based on the execution time variation rate table 2000 of the third embodiment, taking into consideration the execution time variation rate α Lx Ly due to cache contention. In particular, it can be seen that the execution time of task C increases significantly due to parallel execution with task E.

図23は、実施例3の実行時間変動率テーブル2000に基づきキャッシュ競合による実行時間変動率αLx Lyを考慮したスケジュール2300を示す説明図である。スケジュール2300では、タスク実行結果2200に比べて、タスクCとタスクGとが並列実行される。タスクGのリソース属性はL1、すなわち、1次キャッシュ402までの利用となるため、タスクCと並列実行しても2次キャッシュ403の競合は発生しない。このため、タスク実行結果2200に比べてタスクCの実行時間が短縮される。したがって、コア#0の実行時間が、タスク実行結果2200の83[ms]に対し、74[ms]に短縮され、処理効率が向上する。 FIG. 23 is an explanatory diagram showing a schedule 2300 based on the execution time fluctuation rate table 2000 of the third embodiment, taking into consideration the execution time fluctuation rate α Lx Ly due to cache contention. In schedule 2300, task C and task G are executed in parallel compared to task execution result 2200. Since the resource attribute of task G is L1, that is, it is used up to the first level cache 402, even if it is executed in parallel with task C, there will be no conflict with the second level cache 403. Therefore, the execution time of task C is shorter than that of task execution result 2200. Therefore, the execution time of core #0 is reduced from 83 [ms] in the task execution result 2200 to 74 [ms], improving processing efficiency.

つぎに、実施例4について説明する。実施例4は、実施例3に示した実行時間変動率テーブル2000の変形例である。なお、実施例4では、実施例1~実施例3との相違点を中心に説明するため、実施例1~実施例3との共通部分については説明を省略する。 Next, Example 4 will be explained. The fourth embodiment is a modification of the execution time fluctuation rate table 2000 shown in the third embodiment. Note that in the fourth embodiment, since the explanation will focus on the differences from the first to third embodiments, the explanation of the common parts with the first to third embodiments will be omitted.

図24は、実施例4にかかる実行時間変動率テーブルの一例を示す説明図である。実施例3の実行時間変動率テーブル2000との相違は、実行時間変動率テーブル2400は、リソース属性L2がL2´とL2″とに分割されている点である。 FIG. 24 is an explanatory diagram showing an example of an execution time fluctuation rate table according to the fourth embodiment. The difference from the execution time fluctuation rate table 2000 of the third embodiment is that in the execution time fluctuation rate table 2400, the resource attribute L2 is divided into L2' and L2''.

具体的には、たとえば、コア#jの単独実行時のタスクXのメモリ消費量605およびコア#j,#kの並列実行時のタスクX,Yの総メモリ消費量がともに2次キャッシュ403のメモリサイズcL2(たとえば、2MB)より小さいタスクXのリソース属性を、L2´とする。コア#jの単独実行時のタスクXのメモリ消費量605が2次キャッシュ403のメモリサイズcL2より小さく、かつ、コア#j,#kの並列実行時のタスクX,Yの総メモリ消費量が2次キャッシュ403のメモリサイズcL2以上のタスクXのリソース属性を、L2″とする。 Specifically, for example, the memory consumption amount 605 of task X when core #j is executed alone and the total memory consumption amount of tasks The resource attribute of task X smaller than the memory size c L2 (for example, 2 MB) is assumed to be L2'. The memory consumption amount 605 of task X when core #j is executed independently is smaller than the memory size c L2 of the secondary cache 403, and the total memory consumption amount of tasks X and Y when core #j and #k are executed in parallel. The resource attribute of task

実施例3の実行時間変動率テーブル2000に比べ、実行時間変動率テーブル2400では、コア#j,#kの並列実行時の2次キャッシュ403の使用状況がより詳細に反映される。すなわち、リソース属性L2´であれば、キャッシュ競合による並列実行の影響がリソース属性L2″よりも小さいため、リソース属性L2´の行の実行時間変動率αLx Lyは、リソース属性L2″の行の実行時間変動率αLx Lyの値以下に規定される。したがって、キャッシュ競合による実行時間変動に基づく実行時間の予測精度が向上する。 Compared to the execution time variation rate table 2000 of the third embodiment, the execution time variation rate table 2400 reflects the usage status of the secondary cache 403 during parallel execution of cores #j and #k in more detail. In other words, for the resource attribute L2', the influence of parallel execution due to cache contention is smaller than for the resource attribute L2'', so the execution time variation rate α Lx Ly of the line with the resource attribute L2'' is The execution time variation rate α Lx Ly is specified to be less than or equal to the value. Therefore, the accuracy of predicting execution time based on execution time fluctuations due to cache contention is improved.

なお、実施例1の図8、実施例2の図12および図17に示したように、移動体制御装置200外の情報処理装置(スケジュール生成装置700、割当装置1700)において生成部830や割当部1200が処理を実行するような構成では、ECU210の設計時およびECU210の運用時の両方で収集されたリソース使用情報から実行時間の予測精度向上に寄与する情報をサンプリングすることが可能である。これにより、効率的なスケジューリングが可能になる。 Note that, as shown in FIG. 8 of the first embodiment and FIGS. 12 and 17 of the second embodiment, the generation unit 830 and the assignment In a configuration in which the unit 1200 executes the processing, it is possible to sample information that contributes to improving the prediction accuracy of execution time from resource usage information collected both when designing the ECU 210 and when operating the ECU 210. This enables efficient scheduling.

また、生成部830で使用する実行時間変動率テーブル820は、同時に実行されるタスクのそれぞれのメモリ使用量と実行開始時刻のずれを入力としそれぞれのタスクの実行時間変動率αを出力とするモデルによって代替可能である。このようなモデルは機械学習などによって獲得することが可能である。 Furthermore, the execution time fluctuation rate table 820 used by the generation unit 830 is a model that inputs the memory usage and execution start time deviation of each task executed simultaneously and outputs the execution time fluctuation rate α of each task. It can be replaced by Such a model can be obtained by machine learning or the like.

また、上述した実施例1~4にかかる情報処理装置は、下記(1)~(11)のように構成することもできる。 Furthermore, the information processing apparatuses according to the first to fourth embodiments described above can also be configured as shown in (1) to (11) below.

(1)プログラムを実行するプロセッサ701と、プログラムを記憶する記憶デバイス702と、を有し、コア群401とコア群401内の複数のコアが共有する共有メモリを含むメモリリソースとを有するマルチコアプロセッサ100が処理群を実行するスケジュール102を生成する情報処理装置(スケジュール生成装置700、移動体制御装置200)は、タスク群の各々のタスクA~Hについてコア群401内の単独実行時の最悪実行時間603を規定するタスクセット600と、コアが他のコアと並列実行した場合の実行時間変動率を規定する実行時間変動率テーブル820と、にアクセス可能であり、プロセッサ701は、タスク群がコアごとに割り当てられた実行順序101と実行時間変動率テーブル820とを参照して、第1タスクXを実行する第1コア#jが第2タスクYを実行する第2コア#kと並列実行した場合の第1コア#jによる第1タスクXの実行時間変動率α を特定する特定工程(ステップS1004)と、第1コア#jの実行時間変動率α と、タスクセット600における第1コア#jが第1タスクXを単独実行する場合の単独実行時間eと、に基づいて、実行順序101において第1コア#jが第1タスクXを実行する実行時間を算出して、スケジュール102を生成する生成工程(ステップS1005)と、を実行する。 (1) A multi-core processor that has a processor 701 that executes a program, a storage device 702 that stores the program, and has a core group 401 and memory resources including a shared memory shared by multiple cores in the core group 401 The information processing device (schedule generation device 700, mobile object control device 200) that generates the schedule 102 in which 100 executes the processing group calculates the worst execution of each task A to H of the task group when executed alone in the core group 401. The processor 701 can access the task set 600 that defines the time 603 and the execution time variation rate table 820 that defines the execution time variation rate when a core executes in parallel with other cores. The first core #j that executes the first task X executes the second core #k that executes the second task Y in parallel with the execution order 101 assigned to each task The identification step (step S1004) of specifying the execution time variation rate α X Y of the first task X by the first core #j in the case of Calculate the execution time for the first core #j to execute the first task X in the execution order 101 based on the independent execution time e X when the first core #j independently executes the first task X. , a generation step (step S1005) of generating the schedule 102.

これにより、第2タスクYを実行する第2コア#kとの並列実行を考慮した第1タスクXの実行時間を予測することができ、リアルタイム性の向上を図ることができる。 Thereby, it is possible to predict the execution time of the first task X in consideration of parallel execution with the second core #k that executes the second task Y, and it is possible to improve real-time performance.

(2)また、上記(1)の情報処理装置において、タスクセット600は、タスク群の各々のタスクA~Hについて、タスクXの制御周期602と、他のタスクYとの依存関係606と、を規定し、プロセッサ701は、タスク群の各々のタスクA~Hについて、タスクの制御周期602と、タスクの単独実行時の最悪実行時間603と、タスクを実行するコアが他のタスクを実行する他のコアと並列実行した場合のコアによるタスクの実行時間変動率と、依存関係606においてタスクの後に実行される後続タスクの実行時間変動率と、に基づいて、タスクXの実行開始までの猶予時間を算出する算出工程(ステップS1001)と、算出工程によって算出されたタスクXごとの猶予時間に基づいて、タスク群をコア群401に割り当てる割当工程(ステップS1002)と、割当工程による割当結果に基づいて、コアごとの実行順序101を決定する決定工程(ステップS1003)と、を実行し、特定工程(ステップS1004)では、プロセッサ701は、決定工程によって決定されたコアごとの実行順序101と実行時間変動率テーブル820とを参照して、第1コア#jによる第1タスクXの実行時間変動率α を特定する。 (2) In the information processing apparatus of (1) above, the task set 600 also includes, for each task A to H of the task group, a control period 602 of the task X, a dependency relationship 606 with another task Y, For each task A to H of the task group, the processor 701 determines the task control period 602, the worst execution time 603 when the task is executed alone, and the time when the core executing the task executes other tasks. The grace period until the start of execution of task A calculation step of calculating the time (step S1001), an allocation step of allocating the task group to the core group 401 based on the grace time for each task X calculated in the calculation step (step S1002), and Based on the determination step (step S1003), the processor 701 determines the execution order 101 for each core based on the execution order 101 for each core determined by the determination step (step S1004). With reference to the time variation rate table 820, the execution time variation rate α X Y of the first task X by the first core #j is specified.

これにより、第2タスクYを実行する第2コア#kとの並列実行を考慮した第1タスクXの猶予時間を予測することができ、リアルタイム性の向上を図ることができる。 Thereby, it is possible to predict the grace period of the first task X in consideration of parallel execution with the second core #k that executes the second task Y, and it is possible to improve real-time performance.

(3)上記(1)の情報処理装置において、タスクセット600は、タスク群の各々のタスクA~Hについて、コアがタスクを実行する場合のメモリ消費量605を規定し、特定工程(ステップS1004)では、プロセッサ701は、第1コア#jが第1タスクXを実行する場合の第1タスクXのメモリ消費量605と、第2コア#kが第2タスクYを実行する場合の第2タスクYのメモリ消費量605と、に基づいて、第1コア#jによる第1タスクXの実行時間変動率α を特定する。 (3) In the information processing apparatus of (1) above, the task set 600 defines the memory consumption amount 605 when the core executes the task for each task A to H of the task group, and ), the processor 701 calculates the memory consumption amount 605 of the first task X when the first core #j executes the first task X, and the memory consumption amount 605 of the first task X when the first core #j executes the second task Based on the memory consumption amount 605 of the task Y, the execution time variation rate α X Y of the first task X by the first core #j is specified.

これにより、第2タスクYを実行する第2コア#kとの並列実行をメモリ消費量に応じて考慮した第1タスクXの実行時間をより高精度に予測することができ、リアルタイム性の向上を図ることができる。 This makes it possible to more accurately predict the execution time of the first task can be achieved.

(4)上記(1)の情報処理装置において、タスクセット600は、タスク群の各々のタスクA~Hについて、コアがタスクを実行する場合のメモリ消費量605と、他のタスクとの依存関係606と、を規定し、プロセッサ701は、タスクのメモリ消費量605に基づいて、コアによるタスクXの実行時間変動率α を特定し、依存関係606においてタスクXの後に実行される後続タスクZのメモリ消費量605に基づいて、後続タスクZの実行時間変動率α を特定し、タスク群の各々のタスクA~Hについて、タスクXの制御周期602と、タスクXの単独実行時の最悪実行時間603と、特定したタスクXの実行時間変動率α と、特定した後続タスクZの実行時間変動率α と、に基づいて、タスクXの実行開始までの猶予時間を算出する算出工程を実行する。 (4) In the information processing device of (1) above, the task set 600 includes the memory consumption 605 when the core executes the task and the dependency relationship with other tasks for each task A to H of the task group. 606, the processor 701 specifies the execution time variation rate α Based on the memory consumption amount 605 of Z, the execution time fluctuation rate α Z Y of the subsequent task Z is specified, and for each task A to H of the task group, the control period 602 of task X and the time when task X is executed independently are determined. Based on the worst execution time 603 of , the specified execution time variation rate α Execute the calculation process to calculate.

これにより、タスクYを実行するコア#kとの並列実行をメモリ消費量に応じて考慮したタスクXの猶予時間をより高精度に予測することができ、リアルタイム性の向上を図ることができる。 As a result, it is possible to more accurately predict the grace period of task X, taking into consideration parallel execution with core #k that executes task Y according to memory consumption, and improve real-time performance.

(5)上記(1)の情報処理装置において、タスクセット600は、タスク群の各々のタスクA~Hについて、他のタスクとの依存関係606と、コア使用率604と、を規定し、プロセッサ701は、タスク群を依存関係606があるグループにグループ分けし、グループごとにグループ内のタスクによるコア使用率604の総和であるグループ内コア使用率を算出し、グループ内コア使用率に基づいて、タスク群をコア群401に割り当てる割当工程(ステップS1301~S1307)と、割当工程による割当結果に基づいて、コアごとの実行順序101を決定する決定工程(ステップS1003)と、を実行し、特定工程(ステップS1004)では、プロセッサ701は、決定工程によって決定されたコアごとの実行順序101と実行時間変動率テーブル820とを参照して、第1コア#jによる第1タスクXの実行時間変動率α を特定する。 (5) In the information processing apparatus of (1) above, the task set 600 defines the dependency relationship 606 with other tasks and the core usage rate 604 for each task A to H of the task group, and 701 divides tasks into groups with dependencies 606, calculates for each group an in-group core usage rate which is the sum of core usage rates 604 by tasks in the group, and calculates the intra-group core usage rate based on the in-group core usage rate. , an assignment process (steps S1301 to S1307) that assigns the task group to the core group 401, and a determination process (step S1003) that determines the execution order 101 for each core based on the assignment result of the assignment process, and In the step (step S1004), the processor 701 refers to the execution order 101 for each core determined in the determination step and the execution time variation rate table 820, and determines the execution time variation of the first task X by the first core #j. Identify the rate α X Y.

これにより、タスクの割り当てに先立って依存関係606のあるタスクをグルーピングして、グループ内のタスクをまとめてコアに割り当てるため、複数のコア間でのキャッシュ競合の発生をより効率的に抑制することができる。また、グループ内コア使用率が大きいタスク組ほど、累積コア使用率が最小のコアに割り当てられるため、複数のコア間での処理負荷の偏りを緩和し、各コアの利用効率の向上を図ることができる。 As a result, prior to task assignment, tasks with dependencies 606 are grouped and the tasks in the group are collectively assigned to cores, which makes it possible to more efficiently suppress the occurrence of cache contention among multiple cores. Can be done. In addition, the task set with a higher core usage rate within a group is assigned to the core with the lowest cumulative core usage rate, which alleviates the imbalance in processing load among multiple cores and improves the usage efficiency of each core. Can be done.

(6)上記(5)の情報処理装置において、タスクセット600は、タスク群の各々のタスクA~Hについて、タスクの制御周期602を規定し、プロセッサ701は、タスク群の各々のタスクA~Hについて、タスクXの制御周期602と、タスクXの単独実行時間と、タスクXを実行するコア#jが他のタスクYを実行する他のコア#kと並列実行した場合のコア#jによるタスクXの実行時間変動率α と、依存関係606においてタスクXの後に実行される後続タスクZの実行時間変動率α と、に基づいて、タスクXの実行開始までの猶予時間を算出する算出工程(ステップS1001)を実行し、決定工程(ステップS1003)では、プロセッサ701は、割当工程による割当結果と、算出工程によって算出されたタスクXごとの猶予時間と、に基づいて、コアごとの実行順序101を決定する。 (6) In the information processing apparatus of (5) above, the task set 600 defines a task control period 602 for each of the tasks A to H of the task group, and the processor 701 defines the task control period 602 for each of the tasks A to H of the task group. Regarding H, it depends on the control period 602 of task X, the independent execution time of task X, and core #j when core #j that executes task Based on the execution time variation rate α X Y of task X and the execution time variation rate α Z Y of the subsequent task Z that is executed after task The processor 701 executes the calculation step (step S1001) to calculate, and in the determination step (step S1003), the processor 701 determines whether the core The execution order 101 for each is determined.

これにより、タスクYを実行するコア#kとの並列実行をメモリ消費量に応じて考慮したタスクXの猶予時間をより高精度に予測することができ、リアルタイム性の向上を図ることができる。 This makes it possible to more accurately predict the grace period for task X, taking into account parallel execution with core #k that executes task Y according to memory consumption, thereby improving real-time performance.

(7)また、上記(1)の情報処理装置において、実行時間変動率テーブル820は、コアの性能(クロック周波数など)と他のコアの性能との組み合わせごとに規定されている。これにより、コアの性能に即した実行時間変動率を適用することができ、予測する実行時間のリアルタイム性の向上を図ることができる。 (7) Furthermore, in the information processing apparatus of (1) above, the execution time variation rate table 820 is defined for each combination of the performance of a core (clock frequency, etc.) and the performance of other cores. As a result, it is possible to apply an execution time variation rate that matches the performance of the core, and it is possible to improve the real-time nature of the predicted execution time.

(8)また、上記(1)の情報処理装置において、タスクセット600は、タスク群の各々のタスクA~Hについて、コアがタスクを実行する場合のメモリ消費量605を規定し、実行時間変動率テーブル2000は、タスクXによりコア#jがどの程度まで2次キャッシュ403を使用するかを示すコア#jのリソース属性Lxと、他のタスクYにより他のコア#kがどの程度まで2次キャッシュ403を使用するかを示す他のコア#kのリソース属性Lyと、の組み合わせにより、コア#jが他のコア#kと並列実行した場合の実行時間変動率αLx Lyを規定し、特定工程では、プロセッサ701は、第1コア#jが第1タスクXを実行する場合の第1タスクXのメモリ消費量605に対応する第1コア#jのリソース属性Lxと、第2コア#kが第2タスクYを実行する場合の第2タスクYのメモリ消費量605に対応する第2コア#kのリソース属性Lyと、に基づいて、第1コア#jによる第1タスクXの実行時間変動率αLx Lyを特定する。 (8) In the information processing device of (1) above, the task set 600 defines the memory consumption amount 605 when the core executes the task for each task A to H of the task group, and The rate table 2000 shows the resource attribute Lx of core #j indicating to what extent core #j uses the secondary cache 403 due to task The execution time variation rate α Lx Ly when core #j executes parallel execution with other core #k is defined and specified by the combination of resource attribute Ly of other core #k indicating whether to use the cache 403. In the step, the processor 701 calculates the resource attribute Lx of the first core #j corresponding to the memory consumption amount 605 of the first task X when the first core #j executes the first task X, and the resource attribute Lx of the second core #k. The execution time of the first task X by the first core #j is based on the resource attribute Ly of the second core #k corresponding to the memory consumption amount 605 of the second task Y when Specify the fluctuation rate α Lx Ly .

このように、リソース属性により実行時間変動率αLx Lyを規定することにより、2次キャッシュ403の使用量に応じた実行時間を予測することができる。 In this way, by defining the execution time variation rate α Lx Ly based on the resource attribute, it is possible to predict the execution time according to the usage amount of the secondary cache 403.

(9)また、上記(8)の情報処理装置において、実行時間変動率テーブル2000は、リソース属性が、メモリ消費量が非共有メモリのメモリサイズ以下であることを示すリソース属性と、メモリ消費量が非共有メモリのメモリサイズよりも大きいことを示すリソース属性と、を含む。 (9) Furthermore, in the information processing apparatus of (8) above, the execution time fluctuation rate table 2000 includes a resource attribute indicating that the memory consumption is less than or equal to the memory size of the non-shared memory, and a memory consumption and a resource attribute indicating that the memory size is larger than the memory size of non-shared memory.

これにより、1次キャッシュ402のメモリサイズに対応するリソース属性よりも、2次キャッシュ403のメモリサイズに対応するリソース属性の実行時間を、キャッシュ競合を反映した実行時間として予測することができる。 This makes it possible to predict the execution time of the resource attribute corresponding to the memory size of the secondary cache 403 as an execution time that reflects cache contention rather than the resource attribute corresponding to the memory size of the primary cache 402.

(10)また、上記(8)の情報処理装置において、実行時間変動率テーブル2400は、タスクのメモリ消費量605と、タスクおよび他のタスクの総メモリ消費量と、のいずれもが、2次キャッシュ403のメモリサイズより小さいことを示すリソース属性L2´と、タスクのメモリ消費量605は2次キャッシュ403のメモリサイズより小さいが総メモリ消費量は2次キャッシュ403のメモリサイズ以上であることを示すリソース属性L2″と、を含む。 (10) In the information processing apparatus of (8) above, the execution time variation rate table 2400 shows that both the memory consumption amount 605 of the task and the total memory consumption amount of the task and other tasks are The resource attribute L2' indicates that the memory size is smaller than the memory size of the cache 403, and the memory consumption amount 605 of the task is smaller than the memory size of the secondary cache 403, but the total memory consumption is greater than or equal to the memory size of the secondary cache 403. resource attribute L2''.

これにより、実行時間変動率テーブル2000よりも、キャッシュ競合による実行時間変動に基づく実行時間の予測精度の向上を図ることができる。 This allows for improved prediction accuracy of execution time based on execution time fluctuations due to cache contention compared to the execution time fluctuation rate table 2000.

(11)また、上記(1)の情報処理装置において、プロセッサ701は、マルチコアプロセッサ100のコア群401のいずれかのコアでもよい。これにより、情報処理装置は、移動体制御装置200として、生成部830による処理(ステップS1001~S1006)を実行することができる。 (11) In the information processing device of (1) above, the processor 701 may be any one of the cores in the core group 401 of the multi-core processor 100. This allows the information processing device, as the mobile object control device 200, to execute the processing by the generation unit 830 (steps S1001 to S1006).

(12)プログラムを実行するプロセッサ701と、プログラムを記憶する記憶デバイス702と、を有し、コア群401とコア群401内の複数のコアが共有する2次キャッシュ403を含むメモリリソースとを有するマルチコアプロセッサ100のコア群401にタスク群を割り当てる情報処理装置(割当装置1700)は、タスク群の各々のタスクA~Hについて、他のタスクとの依存関係606と、コア使用率604と、を規定するタスクセット600にアクセス可能であり、プロセッサ701は、タスク群を依存関係606があるグループにグループ分けするグループ分け工程(ステップS1303~S1305)と、グループ分け工程によってグループ分けされたグループごとにグループ内のタスクによるコア使用率604の総和であるグループ内コア使用率を算出する算出工程(ステップS1306)と、算出工程によって算出されたグループ内コア使用率に基づいて、タスク群をコア群401に割り当てる割当工程(ステップS1307)と、を実行する。 (12) It has a processor 701 that executes a program, a storage device 702 that stores the program, and a memory resource that includes a core group 401 and a secondary cache 403 shared by a plurality of cores in the core group 401. The information processing device (assignment device 1700) that allocates a task group to the core group 401 of the multi-core processor 100 calculates the dependency relationship 606 with other tasks and the core usage rate 604 for each task A to H in the task group. The processor 701 can access the defined task set 600, and performs a grouping step (steps S1303 to S1305) in which tasks are grouped into groups with dependency relationships 606, and a grouping step for each group divided by the grouping step. A calculation step (step S1306) of calculating the intra-group core usage rate which is the sum of the core usage rates 604 by the tasks in the group, and a task group to the core group 401 based on the intra-group core usage rate calculated in the calculation step. An assignment step (step S1307) is performed.

これにより、タスクの割り当てに先立って依存関係606のあるタスクをグルーピングして、グループ内のタスクをまとめてコアに割り当てるため、複数のコア間でのキャッシュ競合の発生をより効率的に抑制することができる。また、グループ内コア使用率が大きいタスク組ほど、累積コア使用率が最小のコアに割り当てられるため、複数のコア間での処理負荷の偏りを緩和し、各コアの利用効率の向上を図ることができる。 As a result, prior to task assignment, tasks with dependencies 606 are grouped and the tasks in the group are collectively assigned to cores, which makes it possible to more efficiently suppress the occurrence of cache contention among multiple cores. Can be done. In addition, the task set with a higher core usage rate within a group is assigned to the core with the lowest cumulative core usage rate, which alleviates the imbalance in processing load among multiple cores and improves the usage efficiency of each core. Can be done.

なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。たとえば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。 Note that the present invention is not limited to the embodiments described above, and includes various modifications and equivalent configurations within the scope of the appended claims. For example, the embodiments described above have been described in detail to explain the present invention in an easy-to-understand manner, and the present invention is not necessarily limited to having all the configurations described. Further, a part of the configuration of one embodiment may be replaced with the configuration of another embodiment. Further, the configuration of one embodiment may be added to the configuration of another embodiment. Furthermore, other configurations may be added to, deleted from, or replaced with some of the configurations of each embodiment.

また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、たとえば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサ701がそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。 Further, each of the above-described configurations, functions, processing units, processing means, etc. may be realized in part or in whole by hardware, for example, by designing an integrated circuit, and the processor 701 may implement each function. It may be realized by software by interpreting and executing a program to be realized.

各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。 Information such as programs, tables, and files that realize each function is stored in storage devices such as memory, hard disks, and SSDs (Solid State Drives), or on IC (Integrated Circuit) cards, SD cards, and DVDs (Digital Versatile Discs). It can be stored on a medium.

また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。 Furthermore, the control lines and information lines shown are those considered necessary for explanation, and do not necessarily show all the control lines and information lines necessary for implementation. In reality, almost all configurations can be considered interconnected.

A~H、X タスク
Y 他のタスク
Z 後続タスク
Tg 猶予時間
wst 最悪実行時間
V1,V2 移動体
単独実行時間
並列実行時間
α 実行時間変動率
100 マルチコアプロセッサ
101 実行順序
102 スケジュール
200 移動体制御装置
201 クラウド
210s ECU群
211 ゲートウェイ
212 通信モジュール
310 外部メモリ
401 コア群
402 1次キャッシュ
403 2次キャッシュ
500 自動運転アプリケーション
600 タスクセット
602 制御周期
603 最悪実行時間
604 コア使用率
605 メモリ消費量
606 依存関係
700 スケジュール生成装置
701 プロセッサ
702 記憶デバイス
800 情報処理システム
820,2000,2400 実行時間変動率テーブル
830 生成部
1200 割当部
1401~1403 グループ
1700 割当装置
A to H, X Task Y Other task Z Subsequent task Tg Grace time T Wst Worst execution time V1, V2 Mobile object e X independent execution time e X Y parallel execution time α X Y execution time fluctuation rate 100 Multi-core processor 101 Execution order 102 Schedule 200 Mobile object control device 201 Cloud 210s ECU group 211 Gateway 212 Communication module 310 External memory 401 Core group 402 Primary cache 403 Secondary cache 500 Autonomous driving application 600 Task set 602 Control period 603 Worst execution time 604 Core usage rate 605 Memory consumption 606 Dependency relationship 700 Schedule generation device 701 Processor 702 Storage device 800 Information processing system 820, 2000, 2400 Execution time fluctuation rate table 830 Generation unit 1200 Allocation unit 1401 to 1403 Group 1700 Allocation Device

Claims (14)

プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、コア群と前記コア群内の複数のコアが共有する共有メモリを含むメモリリソースとを有するマルチコアプロセッサが処理群を実行するスケジュールを生成する情報処理装置であって、
処理群情報と、実行時間変動率情報と、にアクセス可能であり、
前記処理群情報は、前記処理群の各々の処理について、前記コア群内の1つのコアでの単独実行時間と、前記処理の制御周期と、他の処理との依存関係と、を規定し、
前記実行時間変動率情報は、前記コアが他のコアと並列実行した場合の実行時間変動率を規定し、
前記プロセッサは、
前記処理群の各々の処理について、前記処理の制御周期と、前記処理の前記単独実行時間と、前記処理を実行するコアが他の処理を実行する他のコアと並列実行した場合の前記コアによる前記処理の実行時間変動率と、前記依存関係において前記処理の後に実行される後続処理の実行時間変動率と、に基づいて、前記処理の実行開始までの猶予時間を算出する算出工程と、
前記算出工程によって算出された処理ごとの猶予時間に基づいて、前記処理群を前記コア群に割り当てる割当工程と、
前記割当工程による割当結果に基づいて、前記コアごとの実行順序を決定する決定工程と、
前記決定工程によって決定された前記コアごとの前記実行順序と前記実行時間変動率情報とを参照して、第1処理を実行する第1コアが第2処理を実行する第2コアと並列実行した場合の前記第1コアによる前記第1処理の実行時間変動率を特定する特定工程と、
前記第1コアの実行時間変動率と、前記処理群情報における前記第1コアが前記第1処理を単独実行する場合の単独実行時間と、に基づいて、前記実行順序において前記第1コアが前記第1処理を実行する実行時間を算出して、前記スケジュールを生成する生成工程と、
を実行することを特徴とする情報処理装置。
A multi-core processor having a processor that executes a program, a storage device that stores the program, and a memory resource including a core group and a shared memory shared by a plurality of cores in the core group executes a processing group. An information processing device that generates a schedule for
Processing group information and execution time variation rate information can be accessed,
The processing group information defines, for each process in the processing group, an independent execution time on one core in the core group, a control cycle of the process, and a dependency relationship with other processes,
The execution time variation rate information defines an execution time variation rate when the core executes in parallel with other cores,
The processor includes:
For each process in the process group, the control cycle of the process, the independent execution time of the process, and the dependence of the core when the core that executes the process is executed in parallel with another core that executes another process. a calculation step of calculating a grace period until the start of execution of the process based on an execution time variation rate of the process and an execution time variation rate of a subsequent process executed after the process in the dependency relationship;
an allocation step of allocating the processing group to the core group based on the grace time for each processing calculated in the calculation step;
a determining step of determining an execution order for each core based on the allocation result of the allocation step;
A first core that executes a first process executes the second core that executes a second process in parallel with reference to the execution order for each core determined in the determination step and the execution time variation rate information. a specifying step of specifying an execution time variation rate of the first process by the first core in the case;
Based on the execution time variation rate of the first core and the independent execution time when the first core independently executes the first process in the processing group information, the first core executes the first process in the execution order. a generation step of calculating the execution time for executing the first process and generating the schedule;
An information processing device characterized by executing.
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、コア群と前記コア群内の複数のコアが共有する共有メモリを含むメモリリソースとを有するマルチコアプロセッサが処理群を実行するスケジュールを生成する情報処理装置であって、A multi-core processor having a processor that executes a program, a storage device that stores the program, and a memory resource including a core group and a shared memory shared by a plurality of cores in the core group executes a processing group. An information processing device that generates a schedule for
処理群情報と、実行時間変動率情報と、にアクセス可能であり、Processing group information and execution time variation rate information can be accessed,
前記処理群情報は、前記処理群の各々の処理について、前記コア群内の1つのコアでの単独実行時間と、前記コアが前記処理を実行する場合のメモリ消費量と、を規定し、The processing group information specifies, for each process of the processing group, an independent execution time on one core in the core group and a memory consumption when the core executes the process;
前記実行時間変動率情報は、前記コアが他のコアと並列実行した場合の実行時間変動率を規定し、The execution time variation rate information defines an execution time variation rate when the core executes in parallel with other cores,
前記プロセッサは、The processor includes:
前記処理群が前記コアごとに割り当てられた実行順序と前記実行時間変動率情報とを参照して、第1コアが第1処理を実行する場合の前記第1処理のメモリ消費量と、第2コアが第2処理を実行する場合の第2処理のメモリ消費量と、に基づいて、前記第1処理を実行する前記第1コアが前記第2処理を実行する前記第2コアと並列実行した場合の前記第1コアによる前記第1処理の実行時間変動率を特定する特定工程と、The processing group refers to the execution order assigned to each core and the execution time variation rate information, and calculates the memory consumption amount of the first process when the first core executes the first process, and the second process. Based on the memory consumption of the second process when the core executes the second process, the first core that executes the first process is executed in parallel with the second core that executes the second process. a specifying step of specifying an execution time variation rate of the first process by the first core in the case;
前記第1コアの実行時間変動率と、前記処理群情報における前記第1コアが前記第1処理を単独実行する場合の単独実行時間と、に基づいて、前記実行順序において前記第1コアが前記第1処理を実行する実行時間を算出して、前記スケジュールを生成する生成工程と、a generating step of calculating an execution time for the first core to execute the first process in the execution sequence based on an execution time variation rate of the first core and an independent execution time for the first core to independently execute the first process in the process group information, to generate the schedule;
を実行することを特徴とする情報処理装置。An information processing device characterized by executing.
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、コア群と前記コア群内の複数のコアが共有する共有メモリを含むメモリリソースとを有するマルチコアプロセッサが処理群を実行するスケジュールを生成する情報処理装置であって、A multi-core processor having a processor that executes a program, a storage device that stores the program, and a memory resource including a core group and a shared memory shared by a plurality of cores in the core group executes a processing group. An information processing device that generates a schedule for
処理群情報と、実行時間変動率情報と、にアクセス可能であり、Processing group information and execution time variation rate information can be accessed,
前記処理群情報は、前記処理群の各々の処理について、前記コア群内の1つのコアでの単独実行時間と、前記コアが前記処理を実行する場合のメモリ消費量と、他の処理との依存関係と、を規定し、The processing group information includes, for each process in the processing group, the independent execution time on one core in the core group, the memory consumption when the core executes the process, and the comparison with other processes. Specify the dependencies and,
前記実行時間変動率情報は、前記コアが他のコアと並列実行した場合の実行時間変動率を規定し、The execution time variation rate information defines an execution time variation rate when the core executes in parallel with other cores,
前記プロセッサは、The processor includes:
前記処理群が前記コアごとに割り当てられた実行順序と前記実行時間変動率情報とを参照して、第1処理を実行する第1コアが第2処理を実行する第2コアと並列実行した場合の前記第1コアによる前記第1処理の実行時間変動率を特定する特定工程と、When the processing group refers to the execution order assigned to each core and the execution time variation rate information, and the first core that executes the first process executes in parallel with the second core that executes the second process. identifying an execution time variation rate of the first process by the first core;
前記第1コアの実行時間変動率と、前記処理群情報における前記第1コアが前記第1処理を単独実行する場合の単独実行時間と、に基づいて、前記実行順序において前記第1コアが前記第1処理を実行する実行時間を算出して、前記スケジュールを生成する生成工程と、a generating step of calculating an execution time for the first core to execute the first process in the execution sequence based on an execution time variation rate of the first core and an independent execution time for the first core to independently execute the first process in the process group information, to generate the schedule;
第3コアによる第3処理のメモリ消費量に基づいて、前記第3処理の実行時間変動率を特定し、前記依存関係において前記第3処理の後に実行される第4処理のメモリ消費量に基づいて、前記第4処理の実行時間変動率を特定し、前記第3処理の制御周期と、前記第3処理の前記単独実行時間と、特定した前記第3処理の実行時間変動率と、特定した前記第4処理の実行時間変動率と、に基づいて、前記第3処理の実行開始までの猶予時間を算出する算出工程と、 The execution time fluctuation rate of the third process is specified based on the memory consumption of the third process by the third core, and the execution time variation rate of the third process is determined based on the memory consumption of the fourth process executed after the third process in the dependency relationship. The execution time fluctuation rate of the fourth process is specified, and the control period of the third process, the independent execution time of the third process, and the specified execution time fluctuation rate of the third process are specified. a calculation step of calculating a grace period until the start of execution of the third process based on the execution time fluctuation rate of the fourth process;
を実行することを特徴とする情報処理装置。2. An information processing device comprising:
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、コア群と前記コア群内の複数のコアが共有する共有メモリを含むメモリリソースとを有するマルチコアプロセッサが処理群を実行するスケジュールを生成する情報処理装置であって、A multi-core processor having a processor that executes a program, a storage device that stores the program, and a memory resource including a core group and a shared memory shared by a plurality of cores in the core group executes a processing group. An information processing device that generates a schedule for
処理群情報と、実行時間変動率情報と、にアクセス可能であり、Processing group information and execution time variation rate information can be accessed,
前記処理群情報は、前記処理群の各々の処理について、前記コア群内の1つのコアでの単独実行時間と、他の処理との依存関係と、コア使用率と、を規定し、The processing group information defines, for each process in the processing group, an independent execution time on one core in the core group, a dependency relationship with other processes, and a core usage rate,
前記実行時間変動率情報は、前記コアが他のコアと並列実行した場合の実行時間変動率を規定し、The execution time variation rate information defines an execution time variation rate when the core executes in parallel with other cores,
前記プロセッサは、The processor,
前記処理群を前記依存関係があるグループにグループ分けし、グループごとに前記グループ内の前記処理による前記コア使用率の総和であるグループ内コア使用率を算出し、前記グループ内コア使用率に基づいて、前記処理群を前記コア群に割り当てる割当工程と、The processing group is divided into groups having the dependency relationship, and for each group, an in-group core usage rate, which is the sum of the core usage rates by the processes in the group, is calculated, and based on the in-group core usage rate. an assignment step of assigning the processing group to the core group;
前記割当工程による割当結果に基づいて、前記コアごとの実行順序を決定する決定工程と、a determining step of determining an execution order for each core based on the allocation result of the allocation step;
前記決定工程によって決定された前記コアごとの前記実行順序と前記実行時間変動率情報とを参照して、第1処理を実行する第1コアが第2処理を実行する第2コアと並列実行した場合の前記第1コアによる前記第1処理の実行時間変動率を特定する特定工程と、A first core that executes a first process executes the second core that executes a second process in parallel with reference to the execution order for each core determined in the determination step and the execution time variation rate information. a specifying step of specifying an execution time variation rate of the first process by the first core in the case;
前記第1コアの実行時間変動率と、前記処理群情報における前記第1コアが前記第1処理を単独実行する場合の単独実行時間と、に基づいて、前記実行順序において前記第1コアが前記第1処理を実行する実行時間を算出して、前記スケジュールを生成する生成工程と、Based on the execution time variation rate of the first core and the independent execution time when the first core independently executes the first process in the processing group information, the first core executes the first process in the execution order. a generation step of calculating the execution time for executing the first process and generating the schedule;
を実行することを特徴とする情報処理装置。An information processing device characterized by executing.
請求項4に記載の情報処理装置であって、The information processing device according to claim 4,
前記処理群情報は、前記処理群の各々の処理について、前記処理の制御周期を規定し、The processing group information defines a control cycle of the processing for each processing of the processing group,
前記プロセッサは、The processor includes:
前記処理群の各々の処理について、前記処理の制御周期と、前記処理の前記単独実行時間と、前記処理を実行するコアが他の処理を実行する他のコアと並列実行した場合の前記コアによる前記処理の実行時間変動率と、前記依存関係において前記処理の後に実行される後続処理の実行時間変動率と、に基づいて、前記処理の実行開始までの猶予時間を算出する算出工程を実行し、For each process in the process group, the control cycle of the process, the independent execution time of the process, and the dependence of the core when the core that executes the process is executed in parallel with another core that executes another process. a calculation step of calculating a grace period until the start of execution of the process based on an execution time variation rate of the process and an execution time variation rate of a subsequent process to be executed after the process in the dependency relationship; ,
前記決定工程では、前記プロセッサは、前記割当工程による割当結果と、前記算出工程によって算出された前記処理ごとの猶予時間と、に基づいて、前記コアごとの前記実行順序を決定する、In the determination step, the processor determines the execution order for each of the cores based on a result of the allocation step and the grace time for each of the processes calculated in the calculation step.
ことを特徴とする情報処理装置。23. An information processing apparatus comprising:
請求項1に記載の情報処理装置であって、The information processing device according to claim 1,
前記実行時間変動率情報は、前記コアの性能と前記他のコアの性能との組み合わせごとに規定されている、The execution time variation rate information is defined for each combination of the performance of the core and the performance of the other core,
ことを特徴とする情報処理装置。An information processing device characterized by:
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、コア群と前記コア群内の複数のコアが共有する共有メモリを含むメモリリソースとを有するマルチコアプロセッサが処理群を実行するスケジュールを生成する情報処理装置であって、A multi-core processor having a processor that executes a program, a storage device that stores the program, and a memory resource including a core group and a shared memory shared by a plurality of cores in the core group executes a processing group. An information processing device that generates a schedule for
処理群情報と、実行時間変動率情報と、にアクセス可能であり、 Processing group information and execution time variation rate information can be accessed,
前記処理群情報は、前記処理群の各々の処理について、前記コア群内の1つのコアでの単独実行時間と、前記コアが前記処理を実行する場合のメモリ消費量と、を規定し、The processing group information defines, for each process in the processing group, an independent execution time on one core in the core group and a memory consumption amount when the core executes the process,
前記実行時間変動率情報は、前記処理により前記コアがどの程度まで前記共有メモリを使用するかを示す前記コアのリソース属性と、前記他の処理により前記他のコアがどの程度まで前記共有メモリを使用するかを示す前記他のコアのリソース属性と、の組み合わせにより、前記コアが他のコアと並列実行した場合の実行時間変動率を規定し、The execution time variation rate information includes a resource attribute of the core indicating to what extent the shared memory is used by the core due to the process, and a resource attribute of the core indicating how much the shared memory is used by the other core due to the other process. A resource attribute of the other core indicating whether to use the resource attribute of the other core, and defining an execution time fluctuation rate when the core executes in parallel with other cores,
前記プロセッサは、The processor includes:
前記処理群が前記コアごとに割り当てられた実行順序と前記実行時間変動率情報とを参照して、第1コアが第1処理を実行する場合の前記第1処理のメモリ消費量に対応する前記第1コアのリソース属性と、第2コアが第2処理を実行する場合の前記第2処理のメモリ消費量に対応する前記第2コアのリソース属性と、に基づいて、前記第1処理を実行する前記第1コアが前記第2処理を実行する前記第2コアと並列実行した場合の前記第1コアによる前記第1処理の実行時間変動率を特定する特定工程と、a step of referring to the execution order assigned to each of the cores by the process group and the execution time variation information, and based on a resource attribute of the first core corresponding to the memory consumption of the first process when the first core executes the first process and a resource attribute of the second core corresponding to the memory consumption of the second process when the second core executes the second process, the step of identifying a variation in execution time of the first process by the first core when the first core executes the first process in parallel with the second core executing the second process;
前記第1コアの実行時間変動率と、前記処理群情報における前記第1コアが前記第1処理を単独実行する場合の単独実行時間と、に基づいて、前記実行順序において前記第1コアが前記第1処理を実行する実行時間を算出して、前記スケジュールを生成する生成工程と、Based on the execution time variation rate of the first core and the independent execution time when the first core independently executes the first process in the processing group information, the first core executes the first process in the execution order. a generation step of calculating the execution time for executing the first process and generating the schedule;
を実行することを特徴とする情報処理装置。An information processing device characterized by executing.
請求項7に記載の情報処理装置であって、The information processing device according to claim 7,
前記実行時間変動率情報は、前記リソース属性が、前記メモリ消費量が非共有メモリのメモリサイズ以下であることを示すリソース属性と、前記メモリ消費量が前記非共有メモリのメモリサイズよりも大きいことを示すリソース属性と、を含む、The execution time fluctuation rate information includes a resource attribute indicating that the memory consumption amount is less than or equal to the memory size of the non-shared memory, and a resource attribute indicating that the memory consumption amount is larger than the memory size of the non-shared memory. a resource attribute indicating;
ことを特徴とする情報処理装置。23. An information processing apparatus comprising:
請求項7に記載の情報処理装置であって、The information processing device according to claim 7,
前記実行時間変動率情報は、前記処理のメモリ消費量と、前記処理および前記他の処理の総メモリ消費量と、のいずれもが、前記共有メモリのメモリサイズより小さいことを示すリソース属性と、前記処理のメモリ消費量は前記共有メモリのメモリサイズより小さいが前記総メモリ消費量は前記共有メモリのメモリサイズ以上であることを示すリソース属性と、を含む、The execution time variation rate information includes a resource attribute indicating that both the memory consumption of the process and the total memory consumption of the process and the other processes are smaller than the memory size of the shared memory; a resource attribute indicating that the memory consumption of the process is smaller than the memory size of the shared memory, but the total memory consumption is greater than or equal to the memory size of the shared memory;
ことを特徴とする情報処理装置。An information processing device characterized by:
請求項1に記載の情報処理装置であって、2. The information processing device according to claim 1,
前記プロセッサは、前記マルチコアプロセッサの前記コア群のいずれかのコアである、The processor is one of the cores of the core group of the multi-core processor,
ことを特徴とする情報処理装置。An information processing device characterized by:
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、コア群と前記コア群内の複数のコアが共有する共有メモリを含むメモリリソースとを有するマルチコアプロセッサが処理群を実行するスケジュールを生成する情報処理装置が実行する情報処理方法であって、A multi-core processor having a processor that executes a program, a storage device that stores the program, and a memory resource including a core group and a shared memory shared by a plurality of cores in the core group executes a processing group. An information processing method executed by an information processing device that generates a schedule for
処理群情報と、実行時間変動率情報と、にアクセス可能であり、Processing group information and execution time variation rate information can be accessed,
前記処理群情報は、前記処理群の各々の処理について、前記コア群内の1つのコアでの単独実行時間と、前記処理の制御周期と、他の処理との依存関係と、を規定し、The processing group information defines, for each process in the processing group, an independent execution time on one core in the core group, a control cycle of the process, and a dependency relationship with other processes,
前記実行時間変動率情報は、前記コアが他のコアと並列実行した場合の実行時間変動率を規定し、The execution time variation rate information defines an execution time variation rate when the core executes in parallel with other cores,
前記情報処理方法は、The information processing method includes:
前記プロセッサが、The processor,
前記処理群の各々の処理について、前記処理の制御周期と、前記処理の前記単独実行時間と、前記処理を実行するコアが他の処理を実行する他のコアと並列実行した場合の前記コアによる前記処理の実行時間変動率と、前記依存関係において前記処理の後に実行される後続処理の実行時間変動率と、に基づいて、前記処理の実行開始までの猶予時間を算出する算出工程と、For each process in the process group, the control cycle of the process, the independent execution time of the process, and the dependence of the core when the core that executes the process is executed in parallel with another core that executes another process. a calculation step of calculating a grace period until the start of execution of the process based on an execution time variation rate of the process and an execution time variation rate of a subsequent process executed after the process in the dependency relationship;
前記算出工程によって算出された処理ごとの猶予時間に基づいて、前記処理群を前記コア群に割り当てる割当工程と、an allocating step of allocating the processing groups to the core groups based on the grace time for each processing calculated in the calculating step;
前記割当工程による割当結果に基づいて、前記コアごとの実行順序を決定する決定工程と、a determination step of determining an execution order for each of the cores based on a result of the allocation step;
前記決定工程によって決定された前記コアごとの前記実行順序と前記実行時間変動率情報とを参照して、第1処理を実行する第1コアが第2処理を実行する第2コアと並列実行した場合の前記第1コアによる前記第1処理の実行時間変動率を特定する特定工程と、A first core that executes a first process executes the second core that executes a second process in parallel with reference to the execution order for each core determined in the determination step and the execution time variation rate information. a specifying step of specifying an execution time variation rate of the first process by the first core in the case;
前記第1コアの実行時間変動率と、前記処理群情報における前記第1コアが前記第1処理を単独実行する場合の単独実行時間と、に基づいて、前記実行順序において前記第1コアが前記第1処理を実行する実行時間を算出して、前記スケジュールを生成する生成工程と、Based on the execution time variation rate of the first core and the independent execution time when the first core independently executes the first process in the processing group information, the first core executes the first process in the execution order. a generation step of calculating the execution time for executing the first process and generating the schedule;
を実行することを特徴とする情報処理方法。An information processing method characterized by performing the following.
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、コア群と前記コア群内の複数のコアが共有する共有メモリを含むメモリリソースとを有するマルチコアプロセッサが処理群を実行するスケジュールを生成する情報処理装置が実行する情報処理方法であって、
処理群情報と、実行時間変動率情報と、にアクセス可能であり、
前記処理群情報は、前記処理群の各々の処理について、前記コア群内の1つのコアでの単独実行時間と、前記コアが前記処理を実行する場合のメモリ消費量と、を規定し、
前記実行時間変動率情報は、前記コアが他のコアと並列実行した場合の実行時間変動率を規定し、
前記情報処理方法は、
前記プロセッサが、
前記処理群が前記コアごとに割り当てられた実行順序と前記実行時間変動率情報とを参照して、第1コアが第1処理を実行する場合の前記第1処理のメモリ消費量と、第2コアが第2処理を実行する場合の前記第2処理のメモリ消費量と、に基づいて、前記第1処理を実行する前記第1コアが前記第2処理を実行する前記第2コアと並列実行した場合の前記第1コアによる前記第1処理の実行時間変動率を特定する特定工程と、
前記第1コアの実行時間変動率と、前記処理群情報における前記第1コアが前記第1処理を単独実行する場合の単独実行時間と、に基づいて、前記実行順序において前記第1コアが前記第1処理を実行する実行時間を算出して、前記スケジュールを生成する生成工程と、
を実行することを特徴とする情報処理方法。
A multi-core processor having a processor that executes a program, a storage device that stores the program, and a memory resource including a core group and a shared memory shared by a plurality of cores in the core group executes a processing group. An information processing method executed by an information processing device that generates a schedule for
Processing group information and execution time variation rate information can be accessed,
The processing group information defines, for each process in the processing group, an independent execution time on one core in the core group and a memory consumption amount when the core executes the process,
The execution time variation rate information defines an execution time variation rate when the core executes in parallel with other cores,
The information processing method includes:
The processor,
The processing group refers to the execution order assigned to each core and the execution time variation rate information, and calculates the memory consumption amount of the first process when the first core executes the first process, and the second process. Based on the memory consumption of the second process when the core executes the second process, the first core that executes the first process is executed in parallel with the second core that executes the second process. a specifying step of specifying an execution time variation rate of the first process by the first core in the case of
Based on the execution time variation rate of the first core and the independent execution time when the first core independently executes the first process in the processing group information, the first core executes the first process in the execution order. a generation step of calculating the execution time for executing the first process and generating the schedule;
An information processing method characterized by performing the following.
コア群と前記コア群内の複数のコアが共有する共有メモリを含むメモリリソースとを有するマルチコアプロセッサが処理群を実行するスケジュールを生成するスケジュール生成装置と、前記マルチコアプロセッサを有し前記マルチコアプロセッサにより制御対象を制御する制御装置と、が通信可能な情報処理システムであって、
前記スケジュール生成装置は、
処理群情報と、実行時間変動率情報と、にアクセス可能であり、
前記処理群情報は、前記処理群の各々の処理について、前記コア群内の1つのコアでの単独実行時間と、前記処理の制御周期と、他の処理との依存関係と、を規定し、
前記実行時間変動率情報は、前記コアが他のコアと並列実行した場合の実行時間変動率を規定し、
前記処理群の各々の処理について、前記処理の制御周期と、前記処理の前記単独実行時間と、前記処理を実行するコアが他の処理を実行する他のコアと並列実行した場合の前記コアによる前記処理の実行時間変動率と、前記依存関係において前記処理の後に実行される後続処理の実行時間変動率と、に基づいて、前記処理の実行開始までの猶予時間を算出する算出工程と、
前記算出工程によって算出された処理ごとの猶予時間に基づいて、前記処理群を前記コア群に割り当てる割当工程と、
前記割当工程による割当結果に基づいて、前記コアごとの実行順序を決定する決定工程と、
前記決定工程によって決定された前記コアごとの前記実行順序と前記実行時間変動率情報とを参照して、第1処理を実行する第1コアが第2処理を実行する第2コアと並列実行した場合の前記第1コアによる前記第1処理の実行時間変動率を特定する特定工程と、
前記第1コアの実行時間変動率と、前記処理群情報における前記第1コアが前記第1処理を単独実行する場合の単独実行時間と、に基づいて、前記実行順序において前記第1コアが前記第1処理を実行する実行時間を算出して、前記スケジュールを生成する生成工程と、
前記生成工程によって生成されたスケジュールを前記制御装置に送信する送信工程と、
を実行し、
前記制御装置は、
前記送信工程によって送信されたスケジュールを受信する受信工程と、
前記受信工程によって受信されたスケジュールに基づいて、前記マルチコアプロセッサにより前記制御対象を制御する制御工程と、
を実行することを特徴とする情報処理システム。
a schedule generation device that generates a schedule for executing a processing group by a multi-core processor having a core group and a memory resource including a shared memory shared by a plurality of cores in the core group; An information processing system capable of communicating with a control device that controls a controlled object,
The schedule generation device includes:
Processing group information and execution time variation rate information can be accessed,
The processing group information defines, for each process in the processing group, an independent execution time on one core in the core group, a control cycle of the process, and a dependency relationship with other processes,
The execution time variation rate information defines an execution time variation rate when the core executes in parallel with other cores,
For each process in the process group, the control cycle of the process, the independent execution time of the process, and the dependence of the core when the core that executes the process is executed in parallel with another core that executes another process. a calculation step of calculating a grace period until the start of execution of the process based on an execution time variation rate of the process and an execution time variation rate of a subsequent process executed after the process in the dependency relationship;
an allocation step of allocating the processing group to the core group based on the grace time for each processing calculated in the calculation step;
a determining step of determining an execution order for each core based on the allocation result of the allocation step;
A first core that executes a first process executes the second core that executes a second process in parallel with reference to the execution order for each core determined in the determination step and the execution time variation rate information. a specifying step of specifying an execution time variation rate of the first process by the first core in the case;
Based on the execution time variation rate of the first core and the independent execution time when the first core independently executes the first process in the processing group information, the first core executes the first process in the execution order. a generation step of calculating the execution time for executing the first process and generating the schedule;
a transmission step of transmitting the schedule generated in the generation step to the control device;
Run
The control device includes:
a receiving step of receiving the schedule transmitted by the transmitting step;
a control step of controlling the control target by the multi-core processor based on the schedule received by the receiving step;
An information processing system characterized by executing.
コア群と前記コア群内の複数のコアが共有する共有メモリを含むメモリリソースとを有するマルチコアプロセッサの前記コア群に処理群を割り当てる割当装置と、前記マルチコアプロセッサを有し前記マルチコアプロセッサにより制御対象を制御する制御装置と、が通信可能な情報処理システムであって、
前記割当装置は、
前記処理群の各々の処理について、他の処理との依存関係と、コア使用率と、を規定する処理群情報にアクセス可能であり、
前記処理群を前記依存関係があるグループにグループ分けするグループ分け工程と、
前記グループ分け工程によってグループ分けされたグループごとに前記グループ内の前記処理による前記コア使用率の総和であるグループ内コア使用率を算出する算出工程と、
前記算出工程によって算出されたグループ内コア使用率に基づいて、前記処理群を前記コア群に割り当てる割当工程と、
前記割当工程による割当結果を前記制御装置に送信する送信工程と、を実行し、
前記制御装置は、
前記処理群の各々の処理について前記コア群内の1つのコアでの単独実行時間を規定する処理群情報と、前記コアが他のコアと並列実行した場合の実行時間変動率を規定する実行時間変動率情報と、にアクセス可能であり、
前記送信工程によって送信された割当結果を受信する受信工程と、
前記受信工程によって受信された割当結果に基づいて、前記処理群が前記コアごとに割り当てられた実行順序を決定する決定工程と、
前記決定工程によって決定された前記コアごとの実行順序と前記実行時間変動率情報とを参照して、第1処理を実行する第1コアが第2処理を実行する第2コアと並列実行した場合の前記第1コアによる前記第1処理の実行時間変動率を特定する特定工程と、
前記第1コアの実行時間変動率と、前記処理群情報における前記第1コアが前記第1処理を単独実行する場合の単独実行時間と、に基づいて、前記実行順序において前記第1コアが前記第1処理を実行する実行時間を算出して、前記マルチコアプロセッサが前記処理群を実行するスケジュールを生成する生成工程と、
前記生成工程によって受信されたスケジュールに基づいて、前記マルチコアプロセッサにより前記制御対象を制御する制御工程と、
を実行することを特徴とする情報処理システム。
an allocation device that allocates a processing group to the core group of a multi-core processor having a core group and a memory resource including a shared memory shared by a plurality of cores in the core group; An information processing system capable of communicating with a control device that controls the
The allocation device includes:
For each process in the process group, it is possible to access process group information that defines dependencies with other processes and core usage rate;
a grouping step of grouping the processing group into groups having the dependency relationship;
a calculation step of calculating an in-group core usage rate, which is the sum of the core usage rates by the processing in the group, for each group divided by the grouping step;
an allocation step of allocating the processing group to the core group based on the in-group core usage rate calculated by the calculation step;
a transmitting step of transmitting the allocation result of the allocation step to the control device;
The control device includes:
Processing group information that defines the independent execution time on one core in the core group for each process in the processing group, and execution time that defines the execution time fluctuation rate when the core executes in parallel with other cores. Volatility information is accessible to
a receiving step of receiving the allocation result transmitted by the transmitting step;
a determining step of determining an execution order in which the processing group is allocated to each core based on the allocation result received by the receiving step;
When a first core that executes a first process executes parallel execution with a second core that executes a second process with reference to the execution order for each core determined in the determination step and the execution time variation rate information. identifying an execution time variation rate of the first process by the first core;
Based on the execution time variation rate of the first core and the independent execution time when the first core independently executes the first process in the processing group information, the first core executes the first process in the execution order. a generation step of calculating an execution time for executing a first process and generating a schedule for the multi-core processor to execute the process group;
a control step of controlling the control target by the multi-core processor based on the schedule received by the generation step;
An information processing system characterized by executing.
JP2020113696A 2020-07-01 2020-07-01 Information processing device, information processing method, and information processing system Active JP7457589B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020113696A JP7457589B2 (en) 2020-07-01 2020-07-01 Information processing device, information processing method, and information processing system
PCT/JP2021/016512 WO2022004108A1 (en) 2020-07-01 2021-04-23 Information processing device, information processing method, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020113696A JP7457589B2 (en) 2020-07-01 2020-07-01 Information processing device, information processing method, and information processing system

Publications (2)

Publication Number Publication Date
JP2022012115A JP2022012115A (en) 2022-01-17
JP7457589B2 true JP7457589B2 (en) 2024-03-28

Family

ID=79315741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020113696A Active JP7457589B2 (en) 2020-07-01 2020-07-01 Information processing device, information processing method, and information processing system

Country Status (2)

Country Link
JP (1) JP7457589B2 (en)
WO (1) WO2022004108A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230244821A1 (en) * 2022-01-28 2023-08-03 Honeywell International Inc. Processor core unique encryption

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013018184A1 (en) 2011-07-29 2013-02-07 富士通株式会社 Allocation method, and multi-core processor system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4241921B2 (en) * 2004-06-10 2009-03-18 株式会社日立製作所 Computer system and its resource allocation method
JP6218645B2 (en) * 2014-03-05 2017-10-25 三菱電機株式会社 Program analysis apparatus, program analysis method, and program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013018184A1 (en) 2011-07-29 2013-02-07 富士通株式会社 Allocation method, and multi-core processor system

Also Published As

Publication number Publication date
JP2022012115A (en) 2022-01-17
WO2022004108A1 (en) 2022-01-06

Similar Documents

Publication Publication Date Title
US10831387B1 (en) Snapshot reservations in a distributed storage system
JP5773065B2 (en) Scheduling program, multi-core processor system, and scheduling method
US11520632B1 (en) Specifying behavior among a group of computing tasks
CN108205469B (en) MapReduce-based resource allocation method and server
AU2020283588B2 (en) Reducing cache interference based on forecasted processor use
JP6201591B2 (en) Information processing apparatus and information processing apparatus control method
US11593003B2 (en) Method and systems for recommending storage management actions based on capacities of storage systems
US20160117199A1 (en) Computing system with thermal mechanism and method of operation thereof
US11954419B2 (en) Dynamic allocation of computing resources for electronic design automation operations
JP7457589B2 (en) Information processing device, information processing method, and information processing system
JP2009087282A (en) Parallel computation system and parallel computation method
WO2020137566A1 (en) Test environment determination device and test environment determination method
US11494083B2 (en) Performing resynchronization jobs in a distributed storage system based on a parallelism policy
CN110389817B (en) Scheduling method, device and computer readable medium of multi-cloud system
US20220222177A1 (en) Systems, apparatus, articles of manufacture, and methods for improved data transfer for heterogeneous programs
WO2014027444A1 (en) Scheduling device and scheduling method
JP6753521B2 (en) Computational resource management equipment, computational resource management methods, and programs
CN110659312B (en) Data processing method, device, equipment and computer storage medium
JPH10143400A (en) Method for evaluating performance of computer system for control
CN116755893B (en) Job scheduling method and device of deep learning-oriented distributed computing system
KR102456005B1 (en) Method, system, and computer readable record medium for scheduling containers that use page cache
US20180107520A1 (en) Apparatus and method to control calculation resources of an information processing device based on predictive values of reference data
US12141440B2 (en) Performing resynchronization jobs in a distributed storage system based on a parallelism policy
Kopanski Optimisation of job scheduling for supercomputers with burst buffers
JP6303584B2 (en) Data processing apparatus, computer system, data processing method, and data processing program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240228

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240315

R150 Certificate of patent or registration of utility model

Ref document number: 7457589

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150