(57)【要約】【課題】複数のプロセッサが搭載されたチップの温度が高い場合にも、チップが全体として実現する機能が停止することを回避する。【解決手段】監視ＭＣＵ６８は、複数のＣＰＵ３８及び複数のＧＰＵ４０が搭載されたＳｏＣ３６の温度検出値から、ＳｏＣ３６の温度変化の予測値（Δtemp_cpu又はΔtemp_gpu）を演算する。そして、ＳｏＣ３６の温度が、第１閾値（ＳｏＣ３６の耐熱温度の上限値temp_soc_maxより0[℃]高い温度）以上に上昇することが予測される場合に、複数のＣＰＵ３８又は複数のＧＰＵ４０の何れかで各々実行されている複数のタスク（自動運転に関連する処理を行うタスク）のうち、優先度が低いタスクの実行を停止させる。【選択図】図２
2020113194.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサが搭載されたチップの温度情報に応じて、前記複数のプロセッサの何れかで各々実行されている複数のタスクのうち、予め設定した優先度が低いタスクの実行を停止させる制御部を含む情報処理装置。
【請求項２】
前記制御部は、前記チップの温度情報として前記チップの温度変化の予測値を演算し、前記チップの温度が第１閾値以上に上昇することが予測される場合に、前記優先度が低いタスクの実行を停止させる請求項１記載の情報処理装置。
【請求項３】
前記制御部は、前記チップの温度が前記第１閾値未満に低下することが予測される場合に、実行を停止させていた前記優先度が低いタスクの実行を再開させる請求項２記載の情報処理装置。
【請求項４】
前記制御部は、前記チップの温度が前記第１閾値よりも高い第２閾値以上となることが予測される場合に、前記優先度が低い順により多数のタスクの実行を停止させる請求項２又は請求項３記載の情報処理装置。
【請求項５】
前記複数のプロセッサにはＣＰＵとＧＰＵとが含まれており、
前記制御部は、前記ＧＰＵの温度が閾値以上に上昇することが予測されかつ前記ＣＰＵの温度が閾値以上に上昇することが予測されていない場合に、前記ＧＰＵで実行されていたタスクを前記ＧＰＵに代えて前記ＣＰＵで実行させる請求項１〜請求項４の何れか１項記載の情報処理装置。
【請求項６】
前記情報処理装置は車両に搭載され、
前記複数のタスクは、前記車両の自動運転に関連する処理を前記複数のプロセッサの何れかで行わせるタスクである請求項１〜請求項５の何れか１項記載の情報処理装置。
【請求項７】
前記複数のタスクのうち予め設定した優先度が高いタスクは、前記車両のスロットル操作、ブレーキ操作及びハンドル操作を行う処理を前記複数のプロセッサの何れかで行わせるタスクである請求項６記載の情報処理装置。
【請求項８】
前記チップはＳｏＣである請求項１〜請求項７の何れか１項記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置に関する。
【背景技術】
【０００２】
特許文献１には、複数のプロセッサの各々の温度を温度センサにより検出し、タスクを実行しておらずかつ温度が最低値を示すプロセッサに、発熱量が最高値を示すタスクを割り当てることで、プロセッサの温度を均一化する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−０９９６２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術は、全てのプロセッサの温度が高くなっている場合には、処理負荷が高いタスクにプロセッサを割り当てることができなくなり、これに伴い、複数のプロセッサが全体として実現する機能が停止する虞がある。
【０００５】
本発明は上記事実を考慮して成されたもので、複数のプロセッサが搭載されたチップの温度が高い場合にも、チップが全体として実現する機能が停止することを回避できる情報処理装置を得ることが目的である。
【課題を解決するための手段】
【０００６】
請求項１記載の発明に係る情報処理装置は、複数のプロセッサが搭載されたチップの温度情報に応じて、前記複数のプロセッサの何れかで各々実行されている複数のタスクのうち、予め設定した優先度が低いタスクの実行を停止させる制御部を含んでいる。
【０００７】
請求項１記載の発明では、複数のプロセッサが搭載されたチップの温度情報に応じて、実行されている複数のタスクのうち予め設定した優先度が低いタスクの実行を停止させるので、チップの温度が高い場合にも、チップの温度が更に上昇することを抑制できる。また、優先度が高いタスクの実行を継続させることができるので、タスクの実行停止が、チップが全体として実現する機能に及ぼす影響を小さく抑制することができる。従って、請求項１記載の発明によれば、複数のプロセッサが搭載されたチップの温度が高い場合にも、チップが全体として実現する機能が停止することを回避することができる。
【０００８】
請求項２記載の発明は、請求項１記載の発明において、前記制御部は、前記チップの温度情報として前記チップの温度変化の予測値を演算し、前記チップの温度が第１閾値以上に上昇することが予測される場合に、前記優先度が低いタスクの実行を停止させる。
【０００９】
請求項２記載の発明では、チップの温度変化の予測値を演算するので、チップの温度の上昇を事前に察知することができる。そして、チップの温度が第１閾値以上に上昇することが予測される場合に、優先度が低いタスクの実行を停止させるので、チップの温度が第１閾値以上に上昇することを抑制することができ、チップを少なくとも優先度が高いタスクを実行できる温度状態に維持することができる。
【００１０】
請求項３記載の発明は、請求項２記載の発明において、前記制御部は、前記チップの温度が前記第１閾値未満に低下することが予測される場合に、実行を停止させていた前記優先度が低いタスクの実行を再開させる。
【００１１】
請求項３記載の発明では、チップの温度が第１閾値未満に低下することが予測される場合に、実行を停止させていた優先度が低いタスクの実行を再開させるので、チップの予測温度が低下した場合に、優先度が低いタスクを含む全てのタスクが実行される正常な動作状態に早期に復帰させることができる。
【００１２】
請求項４記載の発明は、請求項２又は請求項３記載の発明において、前記制御部は、前記チップの温度が前記第１閾値よりも高い第２閾値以上となることが予測される場合に、前記優先度が低い順により多数のタスクの実行を停止させる。
【００１３】
請求項４記載の発明では、チップの温度が第１閾値よりも高い第２閾値以上となることが予測される場合に、優先度が低い順により多数のタスクの実行を停止させるので、チップの温度が、優先度が高いタスクの実行を継続できない温度にまで上昇することを回避することができる。
【００１４】
請求項５記載の発明は、請求項１〜請求項４の何れか１項記載の発明において、前記複数のプロセッサにはＣＰＵ（Central Processing Unit）とＧＰＵ（Graphics Processing Unit）とが含まれており、前記制御部は、前記ＧＰＵの温度が閾値以上に上昇することが予測されかつ前記ＣＰＵの温度が閾値以上に上昇することが予測されていない場合に、前記ＧＰＵで実行されていたタスクを前記ＧＰＵに代えて前記ＣＰＵで実行させる。
【００１５】
請求項５記載の発明では、ＧＰＵの温度が閾値以上に上昇することが予測されかつＣＰＵの温度が閾値以上に上昇することが予測されていない場合に、ＧＰＵで実行されていたタスクをＧＰＵに代えてＣＰＵで実行させるので、ＧＰＵで実行されていたタスクをＣＰＵで継続して実行させることができる。
【００１６】
請求項６記載の発明は、請求項１〜請求項５の何れか１項記載の発明において、前記情報処理装置は車両に搭載され、前記複数のタスクは、前記車両の自動運転に関連する処理を前記複数のプロセッサの何れかで行わせるタスクである。
【００１７】
請求項６記載の発明では、車両の自動運転に関連する処理を複数のプロセッサの何れかで行わせるが、本発明によれば、チップの温度が高い場合にも、チップが全体として実現する機能、この場合は自動運転を実現する機能が停止することを回避できるので、自動運転を実現する機能に対する信頼性を向上させることができる。
【００１８】
請求項７記載の発明は、請求項６記載の発明において、前記複数のタスクのうち予め設定した優先度が高いタスクは、前記車両のスロットル操作、ブレーキ操作及びハンドル操作を行う処理を前記複数のプロセッサの何れかで行わせるタスクである。
【００１９】
車両のスロットル操作、ブレーキ操作及びハンドル操作を行う処理は、車両の自動運転における基本的な処理であり、請求項７記載の発明によれば、チップの温度が高い場合にも、車両の自動運転における基本的な処理を継続して実行することができる。
【００２０】
請求項８記載の発明は、請求項１〜請求項７の何れか１項記載の発明において、前記チップはＳｏＣ（System on a Chip）である。
【００２１】
ＳｏＣは、複数のプロセッサに加えてその他の周辺回路も集積したチップであるので、請求項８記載の発明によれば、情報処理装置の一層の小型化を実現することができる。
【発明の効果】
【００２２】
本発明は、複数のプロセッサが搭載されたチップの温度が高い場合にも、チップが全体として実現する機能が停止することを回避できる、という効果を有する。
【図面の簡単な説明】
【００２３】
【図１】実施形態に係る車載システムの概略ブロック図である。
【図２】自動運転ＥＣＵの概略ブロック図である。
【図３】自動運転ソフトウェアの概略ブロック図である。
【図４】ＳｏＣ ＣＰＵ監視処理を示すフローチャートである。
【図５】ＳｏＣ ＧＰＵ監視処理を示すフローチャートである。
【図６】ソフトウェア実行制御処理を示すフローチャートである。
【図７】ＳｏＣ ＣＰＵの中・低優先度のタスクの実行を停止させる場合を示すイメージ図である。
【図８】ＳｏＣ ＣＰＵの中・低優先度のタスクの実行を再開させる場合を示すイメージ図である。
【発明を実施するための形態】
【００２４】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図１に示す車載システム１０はバス１２を備えており、バス１２には、周辺状況取得デバイス群１４、車両走行状態検出センサ群２６、自動運転ＥＣＵ(Electronic Control Unit)３４、及び、ディスプレイ８４が各々接続されている。なお、図１は車載システム１０の一部のみ示している。また、以下では車載システム１０が搭載された車両を自車両と称する。
【００２５】
周辺状況取得デバイス群１４は、自車両の周囲環境がどのような状況かを表す情報を取得するデバイスとして、ＧＰＳ(Global Positioning System)装置１６、車載通信機１８、ナビゲーションシステム２０、レーダ装置２２及びカメラ２４を含んでいる。
【００２６】
ＧＰＳ装置１６は、複数のＧＰＳ衛星からＧＰＳ信号を受信して自車両の位置を測位する。ＧＰＳ装置１６は受信可能なＧＰＳ信号の数が多くなるに従って測位の精度が向上する。車載通信機１８は、他の車両との間の車車間通信及び路側機との間の路車間通信の少なくとも一方を行う通信装置である。ナビゲーションシステム２０は、地図情報を記憶する地図情報記憶部２０Ａを含み、ＧＰＳ装置１６から得られる位置情報と地図情報記憶部２０Ａに記憶された地図情報とに基づいて、自車両の位置を地図上で表示したり目的地迄の経路を案内する処理を行う。
【００２７】
レーダ装置２２は、検出範囲が互いに異なる複数のレーダ装置を含み、自車両の周囲に存在する歩行者や他車両等の物体を点情報として検出し、検出した物体と自車両の相対位置及び相対速度を取得する。また、レーダ装置２２は周囲の物体の探知結果を処理する処理装置を内蔵している。当該処理装置は、直近の複数回の探知結果に含まれる個々の物体との相対位置や相対速度の変化等に基づき、ノイズやガードレール等の路側物等を監視対象から除外し、歩行者や他車両等の特定物体を監視対象物体として追従監視する。そしてレーダ装置２２は、個々の監視対象物体との相対位置や相対速度等の情報を出力する。カメラ２４は、自車両の周囲を複数のカメラで撮影し、撮影した画像を出力する。
【００２８】
また、車両走行状態検出センサ群２６は、車両の走行状態を取得する複数のセンサとして、自車両の操舵角を検出する舵角センサ２８、自車両の走行速度を検出する車速センサ３０及び自車両に加わる加速度を検出する加速度センサ３２を含んでいる。
【００２９】
自動運転ＥＣＵ３４は、自車両のスロットル開度を変更するスロットルＡＣＴ７８及び自車両の制動装置が発生する制動力を変更するブレーキＡＣＴ８０が接続されている。また自動運転ＥＣＵ３４は自車両の操舵装置による操舵量を変更する操舵ＡＣＴ８２が接続されている。
【００３０】
図２に示すように、自動運転ＥＣＵ３４は、ＳｏＣ３６及び監視ＭＣＵ（Micro Controller Unit）６８を含んでいる。ＳｏＣ３６は、複数個のＣＰＵ３８、個々のＣＰＵ３８の温度を検出する複数個の温度センサ３９、複数個のＧＰＵ４０、個々のＧＰＵ４０の温度を検出する複数個の温度センサ４２、メモリ４４及び不揮発性の記憶部４６を含み、これらが集積回路化されて各々搭載されたチップである。なお、ＳｏＣ３６はチップの一例であり、ＣＰＵ３８及びＧＰＵ４０はプロセッサの一例である。
【００３１】
ＳｏＣ３６の記憶部４６には、自動運転ソフトウェア４８及び基本ソフトウェア６６が記憶されている。自動運転ソフトウェア４８は、自動運転モードが選択されている場合に、自車両の乗員による運転操作を伴わずに、自車両を自動的に走行させる自動運転処理を行うソフトウェア群であり、図３に示すように、ＣＰＵ３８が実行するためのＣＰＵ実行用ソフトウェア５０と、ＧＰＵ４０が実行するためのＧＰＵ実行用ソフトウェア５８と、を含んでいる。
【００３２】
ＣＰＵ実行用ソフトウェア５０は、自動運転処理の基本機能を実現・提供するソフトウェア５２と、自動運転処理の補助機能を実現・提供するソフトウェア５４と、自動運転処理の付加機能を実現・提供するソフトウェア５６と、を含んでいる。
【００３３】
自動運転処理の基本機能は、周辺状況取得デバイス群１４及び車両走行状態検出センサ群２６から得られる情報に基づいて自車両及びその周辺の状況を判断し、スロットルＡＣＴ７８、ブレーキＡＣＴ８０及び操舵ＡＣＴ８２を制御する機能である。自動運転処理の基本機能を実現するソフトウェア５２は高い優先度（優先度0〜9）が設定されている。
【００３４】
自動運転処理の補助機能は、例えば、自車両の外部と通信を行う、自車両の乗員による入力操作を受け付ける、自動運転処理の状態をディスプレイ８４に表示させる、などの処理を行う機能である。自動運転処理の補助機能を実現するソフトウェア５４は中程度の優先度（優先度10〜29）が設定されている。
【００３５】
自動運転処理の付加機能は、例えば、新しいバージョンの自動運転ソフトウェア４８を外部からダウンロードして更新する、などの処理を行う機能である。自動運転処理の付加機能を実現するソフトウェア５６は低い優先度（優先度30〜50）が設定されている。
【００３６】
また、ＧＰＵ実行用ソフトウェア５８についても、高い優先度が設定されたソフトウェア６０と、中程度の優先度が設定されたソフトウェア６２と、低い優先度が設定されたソフトウェア６４と、を含んでいる。
【００３７】
基本ソフトウェア６６はスケジューラのソフトウェアを含んでいる。スケジューラは、ＣＰＵ実行ソフトウェアリストを管理しており、ＣＰＵ実行ソフトウェアリストに登録されている各ソフトウェアに対応するタスクの実行を複数のＣＰＵ３８の何れかに動的に割り当てる。なお、ＣＰＵ実行ソフトウェアリストは、初期状態で、ＣＰＵ実行用ソフトウェア５０に含まれる全てのソフトウェア５２，５４，５６が各々登録されている。
【００３８】
またスケジューラは、ＧＰＵ実行ソフトウェアリストも管理しており、ＧＰＵ実行ソフトウェアリストに登録されている各ソフトウェアに対応するタスクの実行を複数のＧＰＵ４０の何れかに動的に割り当てる。なお、ＧＰＵ実行ソフトウェアリストは、初期状態で、ＧＰＵ実行用ソフトウェア５８に含まれる全てのソフトウェア６０，６２，６４が各々登録されている。
【００３９】
ＳｏＣ３６は、基本ソフトウェア６６が記憶部４６から読み出されてメモリ４４に展開され、メモリ４４に展開された基本ソフトウェア６６がＳｏＣ３６の何れかのＣＰＵ３８によって実行されることで、後述するソフトウェア実行制御処理を行う。
【００４０】
監視ＭＣＵ６８は、ＣＰＵ７０、メモリ７２及び不揮発性の記憶部７４を含んでおり、ＳｏＣ３６の個々の温度センサ３９，４２とアナログの信号線で接続されていると共に、ＳｏＣ３６とデジタルの通信線（例えばイーサネット(登録商標)）で接続されている。記憶部７４には監視ソフトウェア７６が記憶されている。監視ＭＣＵ６８は、監視ソフトウェア７６が記憶部７４から読み出されてメモリ７２に展開され、メモリ７２に展開された監視ソフトウェア７６がＣＰＵ７０によって実行されることで、次に説明するＳｏＣ ＣＰＵ監視処理及びＳｏＣ ＧＰＵ監視処理を行う。
【００４１】
なお、自動運転ＥＣＵ３４は情報処理装置の一例であり、監視ＭＣＵ６８は制御部の一例である。
【００４２】
次に実施形態の作用として、まず図４を参照し、ＳｏＣ３６で自動運転ソフトウェア４８が実行されている間、監視ＭＣＵ６８で周期的に実行されるＳｏＣ ＣＰＵ監視処理について説明する。
【００４３】
ＳｏＣ ＣＰＵ監視処理のステップ１００において、監視ＭＣＵ６８は、ＳｏＣ３６に設けられた複数個の温度センサ３９から、ＳｏＣ３６の個々のＣＰＵ３８の温度の検出値を各々取得する。またステップ１０２において、監視ＭＣＵ６８は、ステップ１００で取得した個々のＣＰＵ３８の温度の検出値から、ＳｏＣ３６におけるＣＰＵ３８の最大温度を演算し、メモリ７２に記憶させる。
【００４４】
次のステップ１０４において、監視ＭＣＵ６８は、メモリ７２に記憶されている第１所定時間内（例えば過去1000ｍ秒内）におけるＳｏＣ３６のＣＰＵ３８の最大温度の推移に基づいて、第２所定時間後（例えば100ｍ秒後）におけるＳｏＣ３６のＣＰＵ３８の温度変化Δtemp_cpuを予測する。なお、温度変化Δtemp_cpuの予測は、例えば回帰分析などの公知の技術を適用して行うことができる。
【００４５】
ステップ１０６において、監視ＭＣＵ６８は、ステップ１０４で予測した温度変化Δtemp_cpuに基づいて、ＳｏＣ３６のＣＰＵ３８の温度が、第２所定時間後にＳｏＣ３６の耐熱温度の上限値temp_soc_maxより1.5[℃]高い温度以上へ上昇するか否か判定する（次の判定条件式（１）も参照）。
temp_current_cpu＋Δtemp_cpu≧temp_soc_max＋1.5[℃]  …（１）
なお、temp_current_cpuはステップ１０２で演算したＣＰＵ３８の現在の最大温度である。また、「ＳｏＣ３６の耐熱温度の上限値temp_soc_maxより1.5[℃]高い温度」は第２閾値の一例である。
【００４６】
上記の判定条件式（１）を満足しない場合は、ステップ１０６の判定が否定されてステップ１０８へ移行する。ステップ１０８において、監視ＭＣＵ６８は、ステップ１０４で予測した温度変化Δtemp_cpuに基づいて、ＳｏＣ３６のＣＰＵ３８の温度が、第２所定時間後にＳｏＣ３６の耐熱温度の上限値temp_soc_maxより0 [℃]高い温度以上へ上昇するか否か判定する（次の判定条件式（２）も参照）。
temp_soc_max＋1.5[℃]＞temp_current_cpu＋Δtemp_cpu≧temp_soc_max＋0[℃]
…（２）
なお、「ＳｏＣ３６の耐熱温度の上限値temp_soc_maxより0[℃]高い温度」は第１閾値の一例である。
【００４７】
上記の判定条件式（２）を満足しない場合は、ステップ１０８の判定が否定されてステップ１１４へ移行する。ステップ１１４において、監視ＭＣＵ６８は、ＣＰＵ実行制限指示(cpu_task_stop_L/M)のＳｏＣ３６への送信を停止させる。この場合、ＣＰＵ実行用ソフトウェア５０に含まれる各ソフトウェア５２，５４，５６は、対応するタスクが複数のＣＰＵ３８の何れかによって各々実行される。
【００４８】
一方、例えばＳｏＣ３６の処理負荷が増大したことなどを原因として、ＳｏＣ３６のＣＰＵ３８の温度が上昇した場合には、先の判定条件式（２）を満足することで、ステップ１０８の判定が肯定されてステップ１１２へ移行する。ステップ１１２において、監視ＭＣＵ６８は、優先度が低いソフトウェア５６に対応するタスクの実行停止を指示するＣＰＵ実行制限指示(cpu_task_stop_L)をＳｏＣ３６へ送信する。
【００４９】
これにより、後述するソフトウェア実行制御処理を経て、ＳｏＣ３６のＣＰＵ３８による優先度の低いソフトウェア５６に対応するタスクの実行が停止されることで、ＳｏＣ３６のＣＰＵ３８の温度上昇が抑制される。また、自動運転処理の付加機能は処理が停止されるものの、自動運転処理の基本機能及び補助機能は処理が継続される。
【００５０】
また、例えばＳｏＣ３６の処理負荷が更に増大したことなどを原因として、ＳｏＣ３６のＣＰＵ３８の温度が更に上昇した場合には、先の判定条件式（１）を満足することで、ステップ１０６の判定が肯定されてステップ１１０へ移行する。ステップ１１０において、監視ＭＣＵ６８は、優先度が中程度以下のソフトウェア５４，５６に対応するタスクの実行停止を指示するＣＰＵ実行制限指示(cpu_task_stop_M)をＳｏＣ３６へ送信する（図７に示す「停止指示」も参照）。
【００５１】
これにより、後述するソフトウェア実行制御処理を経て、ＳｏＣ３６のＣＰＵ３８による優先度の低いソフトウェア５６に対応するタスク及び優先度が中程度のソフトウェア５４に対応するタスクの実行が停止されることで、ＳｏＣ３６のＣＰＵ３８の温度上昇が抑制される。また、自動運転処理の補助機能及び付加機能は処理が停止されるものの、自動運転処理の基本機能は処理が継続される。
【００５２】
なお、ＳｏＣ３６のＣＰＵ３８の温度が一旦上昇した後に、ＣＰＵ実行制限指示(cpu_task_stop_L/M)を送信したことに伴い一部のタスクの実行が停止されることで、ＳｏＣ３６のＣＰＵ３８の温度が低下した場合には、ステップ１０６、１０８の判定が各々肯定されることで、ステップ１１４へ移行する。この場合、ＣＰＵ実行制限指示(cpu_task_stop_L/M)の送信が停止される（図８に示す「停止指示解除」も参照）ことで、実行が停止されていたタスクの実行が再開され、自動運転処理の全ての機能が提供される状態に復帰することになる。
【００５３】
次に図５を参照し、ＳｏＣ３６で自動運転ソフトウェア４８が実行されている間、監視ＭＣＵ６８で周期的に実行されるＳｏＣ ＧＰＵ監視処理について説明する。
【００５４】
ＳｏＣ ＧＰＵ監視処理のステップ１２０において、監視ＭＣＵ６８は、ＳｏＣ３６に設けられた複数個の温度センサ４２から、ＳｏＣ３６の個々のＧＰＵ４０の温度の検出値を各々取得する。またステップ１２２において、監視ＭＣＵ６８は、ステップ１２０で取得した個々のＧＰＵ４０の温度の検出値から、ＳｏＣ３６におけるＧＰＵ４０の最大温度を演算し、メモリ７２に記憶させる。
【００５５】
次のステップ１２４において、監視ＭＣＵ６８は、メモリ７２に記憶されている第１所定時間内（例えば過去1000ｍ秒内）におけるＳｏＣ３６のＧＰＵ４０の最大温度の推移に基づいて、第２所定時間後（例えば100ｍ秒後）におけるＳｏＣ３６のＧＰＵ４０の温度変化Δtemp_gpuを予測する。なお、温度変化Δtemp_gpuの予測についても、例えば回帰分析などの公知の技術を適用して行うことができる。
【００５６】
ステップ１２６において、監視ＭＣＵ６８は、ステップ１２４で予測した温度変化Δtemp_gpuに基づいて、ＳｏＣ３６のＧＰＵ４０の第２所定時間後の温度（temp_current_gpu＋Δtemp_gpu）が、ＳｏＣ３６の耐熱温度の上限値temp_soc_max以下か否か判定する。なお、temp_current_gpuはステップ１２２で演算したＧＰＵ４０の現在の最大温度である。
【００５７】
ステップ１２６の判定が肯定された場合はステップ１４０へ移行し、ステップ１４０において、監視ＭＣＵ６８は、ＧＰＵ実行制限指示(gpu_task_stop_L/M)のＳｏＣ３６への送信を停止させる。この場合、ＧＰＵ実行用ソフトウェア５８に含まれる各ソフトウェア６０，６２，６４は、対応するタスクが複数のＧＰＵ４０の何れかによって各々実行される。
【００５８】
また、ステップ１２６の判定が否定された場合にはステップ１２８へ移行する。ステップ１２８において、監視ＭＣＵ６８は、先に説明したＳｏＣ ＣＰＵ監視処理（図４）で得られたＣＰＵ３８の温度変化Δtemp_cpu及びＣＰＵ３８の現在の最大温度temp_current_cpuを取得し、ＳｏＣ３６のＣＰＵ３８の第２所定時間後の温度（temp_current_cpu＋Δtemp_cpu）が、ＳｏＣ３６の耐熱温度の上限値temp_soc_max以下か否かを判定する。
【００５９】
ステップ１２８の判定が肯定された場合はステップ１３４へ移行する。この場合、ＳｏＣ３６のＧＰＵ４０は温度が高くなっている一方で、ＳｏＣ３６のＣＰＵ３８は温度的な余裕があるので、ステップ１３４において、監視ＭＣＵ６８は、ＧＰＵ４０で実行されていたタスクをＣＰＵ３８で実行させるソフト実行移動指示(task_move_core)をＳｏＣ３６へ送信する。これにより、後述するソフトウェア実行制御処理を経て、ＳｏＣ３６のＧＰＵ４０で実行されていたタスクがＳｏＣ３６のＣＰＵ３８で実行されるように切り替わることで、ＳｏＣ３６のＧＰＵ４０の温度上昇が抑制される。
【００６０】
また、ステップ１２８の判定が否定された場合はステップ１３０へ移行する。ステップ１３０において、監視ＭＣＵ６８は、ステップ１２４で予測した温度変化Δtemp_gpuに基づいて、ＳｏＣ３６のＧＰＵ４０の温度が、第２所定時間後にＳｏＣ３６の耐熱温度の上限値temp_soc_maxより1.5[℃]高い温度以上へ上昇するか否か判定する（次の判定条件式（３）も参照）。
temp_current_gpu＋Δtemp_gpu≧temp_soc_max＋1.5[℃]  …（３）
【００６１】
上記の判定条件式（３）を満足しない場合は、ステップ１３０の判定が否定されてステップ１３２へ移行する。ステップ１３２において、監視ＭＣＵ６８は、ステップ１２４で予測した温度変化Δtemp_gpuに基づいて、ＳｏＣ３６のＧＰＵ４０の温度が、第２所定時間後にＳｏＣ３６の耐熱温度の上限値temp_soc_maxより0 [℃]高い温度以上へ上昇するか否か判定する（次の判定条件式（４）も参照）。
temp_soc_max＋1.5[℃]＞temp_current_gpu＋Δtemp_gpu≧temp_soc_max＋0[℃]
…（４）
【００６２】
上記の判定条件式（４）を満足しない場合は、ステップ１３２の判定が否定されてステップ１４０へ移行する。ステップ１４０において、監視ＭＣＵ６８は、前述のように、ＧＰＵ実行制限指示(gpu_task_stop_L/M)のＳｏＣ３６への送信を停止させる。
【００６３】
一方、例えばＳｏＣ３６の処理負荷が増大したことなどを原因として、ＳｏＣ３６のＧＰＵ４０の温度が上昇した場合には、先の判定条件式（４）を満足することで、ステップ１３２の判定が肯定されてステップ１３８へ移行する。ステップ１３８において、監視ＭＣＵ６８は、優先度が低いソフトウェア６４に対応するタスクの実行停止を指示するＧＰＵ実行制限指示(gpu_task_stop_L)をＳｏＣ３６へ送信する。
【００６４】
これにより、後述するソフトウェア実行制御処理を経て、ＳｏＣ３６のＧＰＵ４０による優先度の低いソフトウェア６４に対応するタスクの実行が停止されることで、ＳｏＣ３６のＧＰＵ４０の温度上昇が抑制される。また、より優先度の高いソフトウェア６０，６２に対応するタスクの実行は継続されるので、ＧＰＵ４０が一部のタスクの実行を停止したことが自動運転処理に及ぼす影響は小さく抑えられる。
【００６５】
また、例えばＳｏＣ３６の処理負荷が更に増大したことなどを原因として、ＳｏＣ３６のＧＰＵ４０の温度が更に上昇した場合には、先の判定条件式（３）を満足することで、ステップ１３０の判定が肯定されてステップ１３６へ移行する。ステップ１３６において、監視ＭＣＵ６８は、優先度が中程度以下のソフトウェア６２，６４に対応するタスクの実行停止を指示するＧＰＵ実行制限指示(gpu_task_stop_M)をＳｏＣ３６へ送信する。
【００６６】
これにより、後述するソフトウェア実行制御処理を経て、ＳｏＣ３６のＧＰＵ４０による優先度の低いソフトウェア６４に対応するタスク及び優先度が中程度のソフトウェア６２に対応するタスクの実行が停止されることで、ＳｏＣ３６のＧＰＵ４０の温度上昇が抑制される。また、より優先度の高いソフトウェア６０に対応するタスクの実行は継続されるので、ＧＰＵ４０が一部のタスクの実行を停止したことが自動運転処理に及ぼす影響は小さく抑えられる。
【００６７】
なお、ＳｏＣ３６のＧＰＵ４０の温度が一旦上昇した後に、ＧＰＵ実行制限指示(gpu_task_stop_L/M)を送信したことに伴い一部のタスクの実行が停止されることで、ＳｏＣ３６のＧＰＵ４０の温度が低下した場合には、ステップ１２６の判定が肯定されることでステップ１４０へ移行する。この場合、ＧＰＵ実行制限指示(gpu_task_stop_L/M)の送信が停止されることで、実行が停止されていたタスクの実行が再開される。
【００６８】
次に図６を参照し、ＳｏＣ３６で自動運転ソフトウェア４８が実行されている間、ＳｏＣ３６で周期的に実行されるソフトウェア実行制御処理について説明する。
【００６９】
ソフトウェア実行制御処理のステップ１５０において、ＳｏＣ３６のうち基本ソフトウェア６６を実行するＣＰＵ３８は、監視ＭＣＵ６８からＣＰＵ実行制限指示(cpu_task_stop_M)を受信したか否か判定する。ステップ１５０の判定が否定された場合はステップ１５２へ移行する。ステップ１５２において、ＳｏＣ３６のうち基本ソフトウェア６６を実行するＣＰＵ３８は、監視ＭＣＵ６８からＣＰＵ実行制限指示(cpu_task_stop_L)を受信したか否か判定する。
【００７０】
ステップ１５２の判定が否定された場合はステップ１５８へ移行する。ステップ１５８において、ＳｏＣ３６のうち基本ソフトウェア６６を実行するＣＰＵ３８は、ＣＰＵ実行ソフトウェアリストを、ＣＰＵ実行用ソフトウェア５０に含まれる全てのソフトウェア５２，５４，５６が各々登録されている状態（初期状態）にする。
【００７１】
これにより、ＣＰＵ実行用ソフトウェア５０に含まれる各ソフトウェア５２，５４，５６は、ＳｏＣ３６の複数のＣＰＵ３８の何れかによって対応するタスクが各々実行される。ステップ１５８の処理を行うとステップ１６０へ移行する。
【００７２】
また、ステップ１５２の判定が肯定された場合はステップ１５６へ移行する。ステップ１５６において、ＳｏＣ３６のうち基本ソフトウェア６６を実行するＣＰＵ３８は、ＣＰＵ実行ソフトウェアリストを、ＣＰＵ実行用ソフトウェア５０のうちソフトウェア５２，５４が登録され、ソフトウェア５６が登録されていない状態にする。
【００７３】
これにより、ソフトウェア５２に対応する優先度が高いタスク及びソフトウェア５４に対応する優先度が中程度のタスクは、ＳｏＣ３６の複数のＣＰＵ３８の何れかによって各々実行される一方、ソフトウェア５６に対応する優先度が低いタスク(優先度30〜50のタスク)はＣＰＵ３８による実行が停止される。ステップ１５６の処理を行うとステップ１６０へ移行する。
【００７４】
また、ステップ１５０の判定が肯定された場合はステップ１５４へ移行する。ステップ１５４において、ＳｏＣ３６のうち基本ソフトウェア６６を実行するＣＰＵ３８は、ＣＰＵ実行ソフトウェアリストを、ＣＰＵ実行用ソフトウェア５０のうちソフトウェア５２が登録され、ソフトウェア５４，５６が登録されていない状態にする。
【００７５】
これにより、ソフトウェア５２に対応する優先度が高いタスクは、ＳｏＣ３６の複数のＣＰＵ３８の何れかによって各々実行される一方、ソフトウェア５４に対応する優先度が中程度のタスク及びソフトウェア５６に対応する優先度が低いタスク(優先度10〜50のタスク)はＣＰＵ３８による実行が停止される（図７に示す「停止」も参照）。ステップ１５６の処理を行うとステップ１６０へ移行する。
【００７６】
ステップ１６０において、ＳｏＣ３６のうち基本ソフトウェア６６を実行するＣＰＵ３８は、監視ＭＣＵ６８からソフト実行移動指示(task_move_core)を受信したか否か判定する。ステップ１６０の判定が否定された場合はステップ１６２へ移行する。ステップ１６２において、ＳｏＣ３６のうち基本ソフトウェア６６を実行するＣＰＵ３８は、監視ＭＣＵ６８からＧＰＵ実行制限指示(gpu_task_stop_M)を受信したか否か判定する。ステップ１６２の判定が否定された場合はステップ１６４へ移行する。ステップ１６４において、ＳｏＣ３６のうち基本ソフトウェア６６を実行するＣＰＵ３８は、監視ＭＣＵ６８からＧＰＵ実行制限指示(gpu_task_stop_L)を受信したか否か判定する。
【００７７】
ステップ１６４の判定が否定された場合はステップ１７２へ移行する。ステップ１７２において、ＳｏＣ３６のうち基本ソフトウェア６６を実行するＣＰＵ３８は、ＧＰＵ実行ソフトウェアリストを、ＧＰＵ実行用ソフトウェア５８に含まれる全てのソフトウェア６０，６２，６４が各々登録されている状態（初期状態）にする。これにより、ＧＰＵ実行用ソフトウェア５８に含まれる各ソフトウェア６０，６２，６４は、ＳｏＣ３６の複数のＧＰＵ４０の何れかによって対応するタスクが各々実行される。
【００７８】
また、ステップ１６４の判定が肯定された場合はステップ１７０へ移行する。ステップ１７０において、ＳｏＣ３６のうち基本ソフトウェア６６を実行するＣＰＵ３８は、ＧＰＵ実行ソフトウェアリストを、ＧＰＵ実行用ソフトウェア５８のうちソフトウェア６０，６２が登録され、ソフトウェア６４が登録されていない状態にする。
【００７９】
これにより、ソフトウェア６０に対応する優先度が高いタスク及びソフトウェア６２に対応する優先度が中程度のタスクは、ＳｏＣ３６の複数のＧＰＵ４０の何れかによって各々実行される一方、ソフトウェア６４に対応する優先度が低いタスクはＧＰＵ４０による実行が停止される。
【００８０】
また、ステップ１６２の判定が肯定された場合はステップ１６８へ移行する。ステップ１６８において、ＳｏＣ３６のうち基本ソフトウェア６６を実行するＣＰＵ３８は、ＧＰＵ実行ソフトウェアリストを、ＧＰＵ実行用ソフトウェア５８のうちソフトウェア６０が登録され、ソフトウェア６２，６４が登録されていない状態にする。
【００８１】
これにより、ソフトウェア６０に対応する優先度が高いタスクは、ＳｏＣ３６の複数のＧＰＵ４０の何れかによって各々実行される一方、ソフトウェア６２に対応する優先度が中程度のタスク及びソフトウェア６４に対応する優先度が低いタスクはＧＰＵ４０による実行が停止される。
【００８２】
また、ステップ１６０の判定が肯定された場合はステップ１６６へ移行する。ステップ１６６において、ＳｏＣ３６のうち基本ソフトウェア６６を実行するＣＰＵ３８は、ＳｏＣ３６のＧＰＵ４０で実行されているタスクが、ＧＰＵ４０に代えてＳｏＣ３６のＣＰＵ３８で実行されるように、タスクを移動させる。
【００８３】
以上説明したように、本実施形態では、複数のＣＰＵ３８及び複数のＧＰＵ４０が搭載されたＳｏＣ３６の温度情報に応じて、監視ＭＣＵ６８が、複数のＣＰＵ３８又は複数のＧＰＵ４０の何れかで各々実行されている複数のタスクのうち、優先度が低いタスクの実行を停止させる。これにより、ＳｏＣ３６の温度が高い場合にも、ＳｏＣ３６の温度が更に上昇することを抑制できると共に、優先度が高いタスクの実行を継続させることができる。従って、複数のＣＰＵ３８及び複数のＧＰＵ４０が搭載されたＳｏＣ３６の温度が高い場合にも、ＳｏＣ３６が全体として実現する機能が停止することを回避することができる。
【００８４】
また、本実施形態では、ＳｏＣ３６の温度情報としてＳｏＣ３６の温度変化の予測値（Δtemp_cpu又はΔtemp_gpu）を演算する。これにより、ＳｏＣ３６の温度の上昇を事前に察知することができる。また、ＳｏＣ３６の温度が、第１閾値（ＳｏＣ３６の耐熱温度の上限値temp_soc_maxより0[℃]高い温度）以上に上昇することが予測される場合に、優先度が低いタスクの実行を停止させる。これにより、ＳｏＣ３６の温度が第１閾値以上に上昇することを抑制することができ、優先度が高いタスクを実行できる温度状態に維持することができる。
【００８５】
また、本実施形態では、ＳｏＣ３６の温度が第１閾値（ＳｏＣ３６の耐熱温度の上限値temp_soc_maxより0[℃]高い温度）未満に低下することが予測される場合に、実行を停止させていた優先度が低いタスクの実行を再開させる。これにより、ＳｏＣ３６の予測温度が低下した場合に、ＳｏＣ３６を正常な動作状態に早期に復帰させることができる。
【００８６】
また、本実施形態では、ＳｏＣ３６の温度が第１閾値よりも高い第２閾値（ＳｏＣ３６の耐熱温度の上限値temp_soc_maxより1.5[℃]高い温度）以上となることが予測される場合に、優先度が低い順により多数のタスクの実行を停止させる。これにより、ＳｏＣ３６の温度が、優先度が高いタスクの実行を継続できない温度にまで上昇することを回避することができる。
【００８７】
また、本実施形態では、ＧＰＵ４０の温度が閾値（ＳｏＣ３６の耐熱温度の上限値temp_soc_max）以上に上昇することが予測されかつＣＰＵ３８の温度が閾値以上に上昇することが予測されていない場合に、ＧＰＵ４０で実行されていたタスクをＣＰＵ３８で実行させる。これにより、ＧＰＵ４０で実行されていたタスクをＣＰＵ３８で継続して実行させることができる。
【００８８】
また、本実施形態では、ＳｏＣ３６を含む自動運転ＥＣＵ３４が車両に搭載され、複数のＣＰＵ３８及び複数のＧＰＵ４０の何れかで各々実行される複数のタスクは、車両の自動運転に関連する処理を前記複数のプロセッサの何れかで行わせるタスクである。これにより、自動運転を実現する機能に対する信頼性を向上させることができる。
【００８９】
なお、上記ではＣＰＵ３８又はＧＰＵ４０で実行されるソフトウェアの優先度を３段階に分けて設定した態様を説明したが、これに限定されるものではなく、優先度を２段階、或いは４段階以上に分けて設定してもよい。
【００９０】
また、上記では温度センサ３９，４２がプロセッサ（ＣＰＵ３８／ＧＰＵ４０）毎に温度を検出する態様を説明したが、これに限定されるものではなく、例えば複数のプロセッサが配置された領域の温度をプロセッサの数よりも少数の温度センサによって検出する構成であってもよい。
【００９１】
なお、上記では本発明に係るチップの一例としてＳｏＣを説明したが、これに限定されるものではなく、本発明に係るチップは、例えばＣＰＵを複数搭載する一方でＧＰＵを搭載しないマルチコアプロセッサなどであってもよい。
【符号の説明】
【００９２】
１０  車載システム
３４  自動運転ＥＣＵ（情報処理装置）
３６  ＳｏＣ（チップ）
３８  ＣＰＵ（プロセッサ）
３９  温度センサ
４０  ＧＰＵ（プロセッサ）
４２  温度センサ
４８  自動運転ソフトウェア
６８  監視ＭＣＵ（制御部）
【図１】
2020113194.tif 000003
【図２】
2020113194.tif 000004
【図３】
2020113194.tif 000005
【図４】
2020113194.tif 000006
【図５】
2020113194.tif 000007
【図６】
2020113194.tif 000008
【図７】
2020113194.tif 000009
【図８】
2020113194.tif 000010