(57)【要約】      （修正有）【課題】割り込み処理に対する高応答性と制御ソフトウェア間の非干渉とを両立させるための技術を提供する。【解決手段】本開示の車両制御装置は、車両制御のための各種プログラムを格納する記憶デバイスと、第１の演算装置と第２の演算装置を含み、前記記憶デバイスからプログラムを読み込んで実行する複数の演算装置と、を備えている。また、記憶デバイスは、時分割以外で実行される第１種演算処理のプログラムと、時分割で実行される第２種演算処理のプログラムと、を含む。そして、第１の演算装置は、第１種演算処理のプログラムを実行するように構成され、第２の演算装置は、第２種演算処理のプログラムを実行するように構成される。【選択図】図１
2017199266.tif 000002
【特許請求の範囲】
【請求項１】
車両制御のための各種プログラムを格納する記憶デバイスと、
第１の演算装置と第２の演算装置を含み、前記記憶デバイスからプログラムを読み込んで実行する複数の演算装置と、を備え、
前記記憶デバイスは、時分割以外で実行される第１種演算処理のプログラムと、時分割で実行される第２種演算処理のプログラムと、を含み、
前記第１の演算装置は、前記第１種演算処理のプログラムを実行し、
前記第２の演算装置は、前記第２種演算処理のプログラムを実行する、
車両制御装置。
【請求項２】
請求項１において、
前記第２の演算装置が算出した共有データを格納する記憶デバイスを備え、
前記第２の演算装置が前記共有データを参照していない期間に、前記第１の演算装置は前記共有データを更新する、車両制御装置。
【請求項３】
請求項１において、
前記第２の演算装置が算出した共有データを格納する記憶デバイスを備え、
前記第１の演算装置が前記共有データを参照していない時間に、前記第１の演算装置は前記共有データを複製し、当該複製された共有データを一時バッファ領域に格納する、車両制御装置。
【請求項４】
請求項２において、
前記第２の演算装置が前記共有データを参照していない期間は、実行すべき第２種演算処理が割り当てられていない期間、前記共有データが参照されない制御処理が実行される期間、又はマイコン診断処理が実行される期間である、車両制御装置。
【請求項５】
請求項１において、
前記第１種演算処理に対応する複数のタスクには優先度が定義されており、
前記第１の演算装置は、前記第１種演算処理に対応する複数のタスクの実行を前記優先度に基づいてスケジューリングする、車両制御装置。
【請求項６】
請求項１において、
前記第２種演算処理が実行される期間を規定するスロットが予め設定されており、
前記スロットの終了時間に達した際に、当該スロット内で終了すべき前記第２種演算処理が終了していない場合、前記第２の演算装置は、当該終了しなかった第２種演算処理の実行を待機状態に移行させ、次の周期におけるスロットで前記終了しなかった第２種演算処理の実行を再開させる、車両制御装置。
【請求項７】
請求項１において、
前記第１種演算処理が実行される期間を規定するスロットと、前記第２種演算処理が実行される期間を規定するスロットとが予め決められている、車両制御装置。
【請求項８】
請求項１において、
前記第１種演算処理に対応するタスク及び前記第２種演算処理に対応するタスクには、実行する際に掛かる最長の時間である最悪実行時間が予め付与されており、
前記第１の演算装置、或いは前記第２の演算装置は、前記最悪実行時間に基づいて、各タスクを実行するための期間であるスロットのサイズを決定する、車両制御装置。
【請求項９】
請求項１において、
前記第２種演算処理が実行される期間を規定するスロットが予め設定されており、
前記第１の演算装置は、前記第１種演算処理に対応するタスクを、前記スロットにおいて前記第２種演算処理が実行されていない空き時間で処理する、車両制御装置。
【請求項１０】
外界の状況を認識するための外界認識情報を取得する外界認識装置と、
請求項１に記載の車両制御装置と、
車載ネットワークと、を備え、
前記車両制御装置は、前記車載ネットワークを介して、前記外界認識装置から前記外界認識情報を取得し、当該外界認識情報に対して前記第２種演算処理を実行し、前記車載ネットワークを介して前記第２種演算処理の処理結果を他の車両装置或いは出力装置に送信する、車両システム。
【請求項１１】
請求項１０において、
前記車両制御装置は、前記第２種演算処理が実行される期間を規定するスロットで処理時間エラーを検知した場合、前記車載ネットワークを介して特定の機能エラーを通知する、車両システム。
【請求項１２】
請求項１０において、
前記車両制御装置は、前記第２種演算処理が実行される期間を規定するスロットで処理時間エラーを検知した場合、当該処理時間エラーに関連する機能を復旧させる、車両システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、車両制御装置、及び車両システムに関する。
【背景技術】
【０００２】
多くの車両システムは、電子化された車両制御機器を操作するＥＣＵ、すなわち電子制御装置（Electronic Control Unit）と、複数のＥＣＵ間の通信を可能にする車載ネットワーク（Local Area Network）から構成される。
【０００３】
近年、ドライバの操作なしに自動で目的地まで運ぶ自動運転システムの実現に対する要求が高まっている。自動運転システムの実現には、高精度な外界認識機能や、高演算負荷が求められる、周囲の数秒先の環境変化を予測した上で走行軌道を決定する機能が必要となるため、最先端のアルゴリズムを搭載したオープンソースソフトウェア（ＯＳＳ）の活用が望まれる。
【０００４】
しかしながら、ＯＳＳは広く公開されるもので一般的に高品質でない場合もある。このため、自動車制御システムのような高安全が求められるシステムにはそのまま搭載することが難しい。そこで、万が一の場合に備えて、ＯＳＳがＣＰＵを占有した場合に他のソフトウェアに影響を与えない方法が望まれる。
【０００５】
例えば、非特許文献１は、システムの実行周期を定め、周期内で実行する処理の時間帯を決定する時分割設計を行うことを開示している。この時間帯はタイムウィンドウやスロットと呼ばれる。システム実行時には設計通りに特定のタイムウィンドウの時間内で特定の処理を実行する。処理単位はタスクや割り込み処理である。特定の処理がタイムウィンドウの終了時間まで終わらないと、基本的にはエラーと判定され、処理が終了される。このように、非特許文献１によれば、各タイムウィンドウで実行するソフトウェア同士は互いに影響を与えない非干渉性を実現することが可能である。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】AVIONICS APPLICATION SOFTWARE STANDARD INTERFACE, PART 1 - REQUIRED SERVICES,ARINC SPECIFICATION 653P1-3, 2010
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、非特許文献１では、割り込み処理もタイムウィンドウに割り当てる必要がある。このため、割り込み処理用のタイムウィンドウが終了した直後に割り込み要求があったような場合には、他のタイムウィンドウに割り当てられた処理が終了するまで割り込み処理を待機させなければならないため、割り込みへの応答性が低下してしまう。そもそも割り込み処理には直ぐに処理すべきものである場合が多く、待ち時間が長くなるのは好ましくない。
【０００８】
本開示はこのような状況に鑑みてなされたものであり、割り込み処理に対する高応答性と制御ソフトウェア間の非干渉とを両立させるための技術を提供するものである。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本開示の車両制御装置は、車両制御のための各種プログラムを格納する記憶デバイスと、第１の演算装置と第２の演算装置を含み、前記記憶デバイスからプログラムを読み込んで実行する複数の演算装置と、を備えている。また、記憶デバイスは、時分割以外で実行される第１種演算処理のプログラムと、時分割で実行される第２種演算処理のプログラムと、を含む。そして、第１の演算装置は、第１種演算処理のプログラムを実行するように構成され、第２の演算装置は、第２種演算処理のプログラムを実行するように構成される。
【００１０】
本開示に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、本開示の態様は、要素及び多様な要素の組み合わせ及び以降の詳細な記述と添付される特許請求の範囲の様態により達成され実現される。なお、本明細書の記述は典型的な例示に過ぎず、本開示の特許請求の範囲又は適用例を如何なる意味に於いても限定するものではない。
【発明の効果】
【００１１】
本開示に係る車両制御装置によれば、時分割に基づいて時分割内で動かされるタスクは、同じコアで実行される他の時分割の処理から影響を受けないので非干渉性を担保できる。また、コア間通信は、共有データを参照していないタイミングで共有データを更新するので、コア間でも非干渉性を担保できる。また割り込み処理は時分割以外で実行されるため、高応答性を実現可能となる。よって、割り込み処理に対する高応答性と制御ソフトウェア間の非干渉とを両立させることが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本開示の実施形態による車両制御装置１の概略構成を示す図である。
【図２】本実施形態によるスロット設定情報１３１の構成例を示す図である。
【図３】本実施形態によるアラーム設定情報１３２の構成例を示す図である。
【図４】本実施形態によるタスク情報１３３の構成例を示す図である。
【図５】本実施形態による全体の処理の概要を示す動作説明図である。
【図６】本実施形態によるコア１初期化部１１０の処理内容を説明するためのフローチャートである。
【図７】スロット同期処理タイミング設定部１１１による処理（ステップ１１０３）の詳細を説明するためのフローチャートである。
【図８】アラーム処理部１１２による処理（ステップ１１１２）の詳細を説明するためのフローチャートである。
【図９】スロット同期ｒｅａｄ処理部１１３による処理の詳細を説明するためのフローチャートである。
【図１０】スロット同期ｗｒｉｔｅ処理部１１４による処理の詳細を説明するためのフローチャートである。
【図１１】優先度スケジューリング部１１５による処理の詳細を説明するためのフローチャートである。
【図１２】送信処理部１１６による処理の詳細を説明するためのフローチャートである。
【図１３】受信割込処理部１１７による処理の詳細を説明するためのフローチャートである。
【図１４】コア２初期化部１２０による処理の詳細を説明するためのフローチャートである。
【図１５】スロット設定部１２１による処理の詳細を説明するためのフローチャートである。
【図１６】センサフュージョン部１２２による処理の詳細を説明するためのフローチャートである。
【図１７】動的地図生成部１２３による処理の詳細を説明するためのフローチャートである。
【図１８】軌道生成部１２４による処理の詳細を説明するためのフローチャートである。
【図１９】時間駆動スケジューリング部１２５による処理の詳細を説明するためのフローチャートである。
【図２０】本実施形態による車両制御装置１で実行される各処理のタイミングを説明するためのタイミングチャートである。
【図２１】コア２_１２でも優先度スケジューリングで時分割を実行する際のタスク情報２３３の構成例（変形例）を示す図である。
【図２２】タスク設定情報２３３に基づいたアラーム設定情報２３２の構成例（変形例）を示す図である。
【図２３】変形例による、タスクの最悪実行時間（ＷＣＥＴ：特定のタスクを実行するのにかかる最長の時間）の情報を含むタスク情報３３３を示す図である。
【発明を実施するための形態】
【００１３】
本開示は、車両制御装置において、マルチコア環境で時間駆動スケジューリングとそれ以外のスケジューリングアルゴリズムを実行し、そのスケジューリングアルゴリズム間で非干渉にコア間通信を行うことにより、割り込み要求に対する高応答性と制御ソフトウェア間の非干渉を両立するものである。
【００１４】
本開示に係る車両制御装置は、非干渉にしたい制御用アプリケーションを時分割実行されるコアで実行し、高応答にしたい基本ソフトウェアをタスクの優先度に基づいて実行されるコアで実行する。これにより、非干渉性と高応答性を両立させる。なお、本明細書ではタイムウィンドウをスロットと呼ぶ。
【００１５】
以下、添付図面を参照して本開示の実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は本開示の原理に則った具体的な実施形態と実装例を示しているが、これらは本開示の理解のためのものであり、決して本開示を限定的に解釈するために用いられるものではない。
【００１６】
本実施形態では、当業者が本開示を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本開示の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
【００１７】
更に、本開示の実施形態は、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装しても良い。
【００１８】
なお、以後の説明では「テーブル」形式によって本開示の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、ＤＢ、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「ＤＢ」、「キュー」等について単に「情報」と呼ぶことがある。
【００１９】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
【００２０】
以下では「プログラム」を主語（動作主体）として本開示の実施形態における各処理について説明を行うが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行うため、プロセッサを主語とした説明としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。
【００２１】
（１）第１の実施形態
第１の実施形態は、マルチコアを搭載した車両制御装置において、例えば、１つのコア（例えば、コア１）に時分割で実行すべきタスクを担当させ、別のコア（例えば、コア２）に時分割以外で実行すべきタスクを担当させることを開示する。ここで、時分割以外のタスクとしては、例えば、通信などの割り込み処理が該当する。より具体的には、コア２は、設定されるスロットにおいて周期的に実行すべきタスクを実行する。コア１は空きスロットにおいて周期的に実行されないタスク（割り込み処理）を実行する。以下、第１の実施形態について詳細に説明する。
【００２２】
＜車両制御装置の構成＞
図１は、本開示の実施形態による車両制御装置１の概略構成を示す図である。
（i）車両制御装置１は、演算装置（コア１）１１と、演算装置（コア２）１２と、メモリ１３と、入出力回路１４と、ハードウェアタイマ１５と、車載ネットワーク１６と、を備える。本実施形態では、車載ネットワーク１６としてＣＡＮ（Controller Area Network）を想定しているが、これに限らない。例えば、ＣＡＮＦＤ、ＦｌｅｘＲａｙでも良いし、シリアル通信やＥｔｈｅｒｎｅｔでも良い。また、演算装置の個数も２個に限らず、２個以上であれば良い。メモリ１３は、プログラム領域１００と、データ記憶領域（本明細書では「共有データバッファ」と称する場合もある）１３０と、を有している。
【００２３】
メモリ１３のプログラム領域１００は、各種プログラムとして、コア１初期化部１１０と、スロット同期処理タイミング設定部１１１と、アラーム処理部１１２と、スロット同期ｒｅａｄ処理部１１３と、スロット同期ｗｒｉｔｅ処理部１１４と、優先度スケジューリング部１１５と、送信処理部１１６と、受信割込処理部１１７と、コア２初期化部１２０と、スロット設定部１２１と、センサフュージョン部１２２と、動的地図生成部１２３と、軌道生成部１２４と、時間駆動スケジューリング部１２５と、を有する。
【００２４】
コア１初期化部１１０、スロット同期処理タイミング設定部１１１、アラーム処理部１１２、スロット同期ｒｅａｄ処理部１１３、スロット同期ｗｒｉｔｅ処理部１１４、優先度スケジューリング部１１５、送信処理部１１６、及び受信割込処理部１１７は、コア１_１１によって実行される。スロット設定部１２１、センサフュージョン部１２２、動的地図生成部１２３、軌道生成部１２４、及び時間駆動スケジューリング部１２５は、コア２_１２によって実行される。具体的には、演算装置（コア１）１１及び演算装置（コア２）１２のそれぞれは、担当処理に対応する各プログラムを一時バッファに読み込み、図示しないＣＰＵなどのプロセッサにより各プログラムを実行する。
【００２５】
データ記憶領域１３０は、スロット設定情報１３１と、アラーム設定情報１３２と、タスク情報１３３と、外界認識情報１３４と、軌道情報１３５と、状態データ（例えば、エラー情報）１３６と、地図情報１３７と、を格納する。
【００２６】
入出力回路１４は、車載ネットワーク１６を介して外部（例えば、車両制御装置１に接続される各種機器や各種センサ等）と通信し、ハードウェアタイマ１５を設定したり、ハードウェアタイマ１５からの割込要求を受信したりする。
【００２７】
（ii）コア１初期化部１１０は、演算装置（コア１）１１に対して初期化処理を実行する。スロット同期処理タイミング設定部１１１は、コア１_１１で実行される通信処理とコア２_１２で実行される処理（例えば、センサフュージョン処理、動的地図生成処理、軌道生成処理が該当する）とのタイミングを計る処理を実行する。アラーム処理部１１２は、スロット同期処理タイミング設定部１１１で設定されたタイミングで割り込み処理が実行されるようにタイマを設定する処理を実行する。スロット同期ｒｅａｄ処理部１１３は、アラーム処理部１１２で設定された時間に共有データバッファ（データ記憶領域）１３０に格納されている所定のデータを読み込む処理を実行する。スロット同期ｗｒｉｔｅ処理部１１４は、アラーム処理部１１２で設定された時間に共有データバッファ（データ記憶領域）１３０に所定のデータを書き込む処理を実行する。優先度スケジューリング部１１５は、割り込み用スロット（空きスロット）で実行する処理（割り込み処理及び時分割処理を含む）を優先度に基づいてスケジューリングする処理を実行する。送信処理部１１６は、共有データバッファ１３０に保存されている各データをコア２_１２に送信する処理を実行する。受信割込処理部１１７は、車載ネットワーク１６を介して外界認識情報１３４をコア１_１１の一時バッファに格納する処理を実行する。なお、一時バッファは、コア２_１２の一時バッファであっても良いし、メモリ１３に設けられていればその中の一時バッファであっても良い。
【００２８】
コア２初期化部１２０は、演算装置（コア２）１２に対して初期化処理を実行する。スロット設定部１２１は、初期化処理時にスロット設定情報１３１を読み込み、スロットの構成を認識する処理を実行する。センサフュージョン部１２２は、各種センサ（例えば、カメラ及びレーダ）による外界情報を取得し、各外界情報に基づいて前方の状態を認識するための処理を実行する。動的地図生成部１２３は、センサフュージョン部１２２によって認識された前方の状態を地図情報に反映する処理を実行する。軌道生成部１２４は、センサフュージョン部１２２による前方の状態の情報に基づいて、採れる軌道を判定する処理を実行する。時間駆動スケジューリング部１２５は、スロットを切り替える処理を実行する。
【００２９】
＜スロット設定情報の構成例＞
図２は、本実施形態によるスロット設定情報１３１の構成例を示す図である。スロット設定情報１３１は、ＳＩＤ１３１１と、スロット開始時刻１３１２と、スロット終了時刻１３１３と、ＴＩＤ１３１４と、を構成項目として備えている。
ＳＩＤ１３１１は、スロットを一意に識別・特定可能な識別情報（ＩＤ）である。
【００３０】
スロットの開始時刻１３１２は、各スロットの開始時刻をｍｓ単位で示す情報である。スロット終了時刻１３１３は、各スロットの終了時刻をｍｓ単位で示す情報である。なお、本実施形態ではｍｓ単位で時刻を表しているが、これに限らない。
【００３１】
ＴＩＤ１３１４は、実行すべきタスクを一意に識別・特定可能な識別情報（ＩＤ）である。なお、本実施形態では、１つのスロットに対して１つのタスクしか割り当てていないが、これに限らない。例えば、１つのスロットに２つ以上のタスクを割り当てても良い。また、本実施形態においては、１０ｍｓのシステム周期を想定している。つまり、時刻が１０ｍｓ目まで進むと０ｍｓ目に戻る。ここでは、システム周期を１０ｍｓとしているが、これに限らない。例えば、５０ｍｓでも良いし、１００ｍｓでも良い。さらに、ＴＩＤ１３１４の値が「−」であることは、空きスロットであることを意味する。
【００３２】
本実施形態では、空きスロットの情報をスロット設定情報１３１に記載しているが、記載しなくても良い。その場合には、システム周期内でスロットが割り当てられていない時間やタスクが割り当たっていないスロットを調べることで、空きスロットを探すことが可能である。
【００３３】
＜アラーム設定情報の構成例＞
図３は、本実施形態によるアラーム設定情報１３２の構成例を示す図である。アラーム設定情報１３２は、ＡＩＤ１３２１と、オフセット１３２２と、周期１３２３と、ＴＩＤ１３２４と、を構成項目として備えている。
【００３４】
ＡＩＤ１３２１は、アラームを一意に識別・特定可能な識別情報（ＩＤ）である。ここで、アラームとは、オペレーティングシステムが提供するサービスであり、指定の時刻でハードウェアタイマ割り込みを入れ、特定のタスクを実行する処理を想定している。
【００３５】
オフセット１３２２は、アラーム時刻の基準時間からのズレを表す情報である。例えば、オフセットの値が９であることは、０ｍｓ目から９ｍｓ進んだ時間を表している。
【００３６】
周期１３２３は、アラームを再セットする周期を表している。例えば、オフセットが９で周期が１０の場合、１０ｍｓ周期の９ｍｓ目でハードウェアタイマ割り込みが入り、これが１０ｍｓ周期で行われるようにアラームがセットされることを意味する。
ＴＩＤ１３２４はアラームによって実行されるタスクＩＤを示す。
【００３７】
図３に示される例によれば、９ｍｓ（ＳＩＤ１３１１が４のとき：図２参照）にタスク３（スロット同期ｒｅａｄ処理）が割り込み処理され、９．５ｍｓにタスク４（スロット同期ｗｒｉｔｅ処理）が割り込み処理される。
【００３８】
＜タスク情報の構成例＞
図４は、本実施形態によるタスク情報１３３の構成例を示す図である。タスク情報１３３は、ＴＩＤ１３３１と、コア１３３２と、周期１３３３と、優先度１３３４と、タスク名１３３５と、を構成情報として備えている。
ＴＩＤ１３３１は、タスクを一意に識別・特定可能なタスク識別情報（ＩＤ）である。
【００３９】
コア１３３２は、対象のＴＩＤ１３３１を実行するコアの識別情報（ＩＤ）である。例えば、コア１３３２の値が１であることは、演算装置（コア１）１１で対象のＴＩＤ１３３１に対応するタスクまたは割り込み処理が実行されることを意味する。
【００４０】
周期１３３３は、対象のタスクの実行周期を示す情報である。当該カラムに数字が入っているタスクは周期タスクであり、周期の数字がないタスクは初期化時のみ実行されるタスク、割り込み要求で起動する割り込み処理、或いは特定のタイマ割り込みで起動するタスクや割り込み処理を示す。なお、本実施形態では、コア２_１２が担当する処理は全て周期タスク（時分割で実行される処理）であり、コア１_１１が担当する処理は送信処理を除いて割り込み処理となっている。
【００４１】
優先度１３３４は、タスクや割り込み処理の優先度を示す情報である。本実施形態では、数字が小さいほど優先度が高いことを意味する。同時刻に複数のタスクや割り込み処理が実行されている場合、優先度スケジューリング部１１５は、優先度１３３４が高いものを実行する。例えば、時分割で実行される処理の場合には、優先度１３３４の情報は設定されなくても良い。
【００４２】
タスク名１３３５は、タスクの名前を示す。なお、タスク名として、コア１初期化はコア１初期化部１１０を、送信処理は送信処理部１１６を、受信割込処理は受信割込処理部１１７を、スロット同期ｒｅａｄ処理はスロット同期ｒｅａｄ処理部１１３を、スロット同期ｗｒｉｔｅ処理はスロット同期ｗｒｉｔｅ処理部１１４を、コア２初期化はコア２初期化部１２０を、センサフュージョンはセンサフュージョン部１２２を、動的地図生成は動的地図生成部１２３を、軌道生成は軌道生成部１２４を、それぞれ意味している。
【００４３】
＜全体の処理概要＞
図５は、本実施形態による全体の処理の概要を示す動作説明図である。図５において、実線はデータの流れを、点線は処理の実行の流れを示す。
【００４４】
システム起動時にコア１_１１のコア１初期化部１１０がまず実行され、次いでコア２_１２のコア２初期化部１２０及びスロット同期処理タイミング設定部１１１が実行される。
【００４５】
スロット同期処理タイミング設定部１１１は、スロット設定情報１３１を参照し、空きスロットを検出する。そして、スロット同期処理タイミング設定部１１１は、検出した空きスロットの時間に実行したい処理（タスク）を実行できるようにアラーム設定情報１３２にタスク内容を保存し、アラーム処理部１１２を呼び出す。
アラーム処理部１１２は、アラーム設定情報１３２に記載された時間に特定の処理が実行されるようにハードウェアタイマ１５に当該時間を設定する。
【００４６】
優先度スケジューリング部１１５は、コア１_１１で実行するタスク、または割り込み処理を優先度に基づいて実行する。コア１_１１で実行する処理は、送信処理部１１６、受信割込処理部１１７、スロット同期ｒｅａｄ処理部１１３、スロット同期ｗｒｉｔｅ処理部１１４である。なお、常に全ての割り込み処理の要求がされているわけではないので、そのときに発行されている割り込み要求、及び周期的に行うべき処理（時分割処理）が優先度に基づいてスケジューリングされる。割り込み要求がなければ周期的に行われる送信処理のみがスケジューリングされることとなる。
【００４７】
スロット同期ｒｅａｄ処理部１１３、及びスロット同期ｗｒｉｔｅ処理部１１４は、アラーム処理部１１２によってセットされたハードウェアタイマ１５によって起動され、優先度スケジューリング部１１５がタスク情報１３３記載の優先度１３３４に基づいてこれらの処理を実行する。
【００４８】
コア２_１２のコア２初期化部１２０は、スロット設定部１２１を呼び出す。スロット設定部１２１は、スロット設定情報１３１に基づいて時間駆動スケジューリング部１２５が実行されるようにハードウェアタイマ１５の設定を行う。
【００４９】
時間駆動スケジューリング部１２５は、ハードウェアタイマ１５によって起動され、スロットに対応する処理を実行する。本実施形態では、センサフュージョン部１２２、動的地図生成部１２３、及び軌道生成部１２４が時間駆動スケジューリング部１２５によって実行される。
以下、図５に示した各処理部の動作について詳細に説明する。
【００５０】
＜コア１初期化処理の詳細＞
図６は、本実施形態によるコア１初期化部１１０の処理内容を説明するためのフローチャートである。ここではコア１初期化部１１０を動作主体として処理内容を説明するが、コア１初期化部１１０はコア１_１１によって実行されるプログラムであるので、コア１_１１或いはその内部のプロセッサを動作主体としても良い。後述するスロット同期ｒｅａｄ処理部１１３、スロット同期ｗｒｉｔｅ処理部１１４、優先度スケジューリング部１１５、送信処理部１１６、及び受信割込処理部１１７についても同様である。
【００５１】
（i）ステップ１１０１
コア１初期化部１１０は、コア２_１２を起動する。
【００５２】
（ii）ステップ１１０２
コア１初期化部１１０は、コア１_１１で実行されるソフトウェア、及び関連するマイコンレジスタを初期化する。
【００５３】
（iii）ステップ１１０３
コア１初期化部１１０は、スロットに同期して実行する処理の起動設定を行うために、スロット同期処理タイミング設定部１１１を呼び出す。ステップ１１０３の更なる詳細は、図７で説明する。
【００５４】
＜スロット同期処理タイミング設定処理：ステップ１１０３の詳細＞
図７は、スロット同期処理タイミング設定部１１１による処理（ステップ１１０３）の詳細を説明するためのフローチャートである。当該処理は初期化処理に含まれる処理であるため、初期化時に１回のみ実行される。
【００５５】
（i）ステップ１１１１
スロット同期処理タイミング設定部１１１は、スロット設定情報１３１から空きスロットを検出する。例えば、本実施形態では、ＳＩＤ１３１１が４のスロットがＴＩＤ１３１４にタスクが登録されていないため、空きスロットであることが判る。本実施形態ではスロット設定情報１３１に自明の空きスロットが明示されているが、これに限らない。例えば、システム周期とＳＩＤ１３１１の１から３までの情報から、タスクが実行されていないスロットの時間を算出し、それを空きスロットして良い。
【００５６】
（ii）ステップ１１１２
スロット同期処理タイミング設定部１１１は、空きスロットの時刻でスロットに対応するタスクを起動するため、空きスロットの開始時刻と対応するタスクＩＤを引数にアラーム処理部１１２を呼び出し、アラーム処理部１１２に時刻設定処理を実行させる。
【００５７】
＜アラーム処理：ステップ１１１２の詳細＞
図８は、アラーム処理部１１２による処理（ステップ１１１２）の詳細を説明するためのフローチャートである。
【００５８】
（i）ステップ１１２１
アラーム処理部１１２は、引数の時刻で対応するタスクＩＤが起動するように、ハードウェアタイマ１５に時刻をセットする。
【００５９】
＜スロット同期ｒｅａｄ処理の詳細＞
図９は、スロット同期ｒｅａｄ処理部１１３による処理の詳細を説明するためのフローチャートである。
【００６０】
（i）ステップ１１３１
スロット同期ｒｅａｄ処理部１１３は、ハードウェアタイマ１５によって起動され、共有データバッファ（データ記憶領域）１３０に格納されている軌道情報１３５をコア１_１１の一時バッファに複製する。軌道情報１３５は、コア２_１２（軌道生成部１２４）によって生成され、共有データバッファ１３０に格納される。そして、コア１_１１は、一時バッファに取り込んだ軌道情報１３５を送信処理によって車載ネットワーク１６に出力することになる。なお、一時バッファは、コア２_１２の一時バッファであっても良いし、メモリ１３に設けられていればその中の一時バッファであっても良い。
【００６１】
＜スロット同期ｗｒｉｔｅ処理の詳細＞
図１０は、スロット同期ｗｒｉｔｅ処理部１１４による処理の詳細を説明するためのフローチャートである。
【００６２】
（i）ステップ１１４１
スロット同期ｗｒｉｔｅ処理部１１４は、ハードウェアタイマ１５によって起動され、コア１_１１の一時バッファに保存されている外界認識情報１３４を共有データバッファ（データ記憶領域）１３０に格納する。つまり、外界認識情報（センシングデータ）１３４は各種センサ（カメラやレーダ：図示せず）によって取得されるが、当該情報は車載ネットワーク１６を介して取得され、コア１_１１の一時バッファに書き込まれ、その後共有データバッファ１３０に格納される。
【００６３】
＜優先度スケジューリング処理の詳細＞
図１１は、優先度スケジューリング部１１５による処理の詳細を説明するためのフローチャートである。
【００６４】
（i）ステップ１１５１
優先度スケジューリング部１１５は、タスク情報１３３の優先度１３３４に基づいて実行するタスクのスケジュールを決定し、当該スケジュールに基づいて各処理が実行されるように、該当する処理部（例えば、送信処理であれば送信処理部１１６、受信割込処理であれば受信割込処理部１１７等）に実行を指示する。
【００６５】
＜送信処理の詳細＞
図１２は、送信処理部１１６による処理の詳細を説明するためのフローチャートである。
【００６６】
（i）ステップ１１６１
送信処理部１１６は、コア１_１１の一時バッファに現在保存されている軌道情報１３５を、車載ネットワーク１６を介して車両制御装置１の外部（例えば、他のＥＣＵや検査装置等）に送信する。
【００６７】
（ii）ステップ１１６２
送信処理部１１６は、コア１_１１の一時バッファに現在保存されている状態データ１３６を、車載ネットワーク１６を介して車両制御装置１の外部（例えば、他のＥＣＵや検査装置等）に送信する。
【００６８】
＜受信割込処理の詳細＞
図１３は、受信割込処理部１１７による処理の詳細を説明するためのフローチャートである。
【００６９】
（i）ステップ１１７１
受信割込処理部１１７は、車載ネットワーク１６（例えば、ＣＡＮ）のメールボックスから外界認識情報１３４をコア１_１１の一時バッファにコピーする。このとき、受信割込処理部１１７は、外界認識情報１３４にコピーした時刻の情報（タイムスタンプ）を付与して一時バッファに格納する。当該時刻の情報は、センサフュージョン部１２２によって用いられる。なお、一時バッファは、コア２_１２の一時バッファであっても良いし、メモリ１３に設けられていればその中の一時バッファであっても良い。
【００７０】
センサフュージョン部１２２を例とすると、カメラやレーダで取得された外界認識情報１３４の取得時間軸とセンサフュージョン部１２２の処理時間軸とが異なる。しかし、異なる時間軸のままで演算してしまうと車両が２台存在することになってしまうため、外界の時間軸と内部の時間軸を合わせる必要がある。そこで、外界認識情報１３４を受信したときにタイムスタンプを付与して同一時間軸のデータとして取り扱えるようにしている。
【００７１】
＜コア２初期化処理の詳細＞
図１４は、コア２初期化部１２０による処理の詳細を説明するためのフローチャートである。ここではコア２初期化部１２０を動作主体として処理内容を説明するが、コア２初期化部１２０はコア２_１２によって実行されるプログラムであるので、コア２_１２或いはその内部のプロセッサを動作主体としても良い。後述のセンサフュージョン部１２２、動的地図生成部１２３、軌道生成部１２４、及び時間駆動スケジューリング部１２５についても同様である。
【００７２】
（i）ステップ１２０１
コア２初期化部１２０は、コア２で使用するソフトウェア、関連するマイコンレジスタを初期化する。
【００７３】
（ii）ステップ１２０２
コア２初期化部１２０は、スロットの設定を行うため、スロット設定部１２１を呼び出し、スロット設定処理の実行を指示する。
【００７４】
＜スロット設定処理の詳細＞
図１５は、スロット設定部１２１による処理の詳細を説明するためのフローチャートである。当該処理は初期化処理に含まれる処理のため、初期化時に１回のみ実行される。
【００７５】
（i）ステップ１２１１
スロット設定部１２１は、スロット設定情報１３１に基づいて最初のスロットを実行する時刻をハードウェアタイマ１５に設定する。
【００７６】
＜センサフュージョン処理の詳細＞
図１６は、センサフュージョン部１２２による処理の詳細を説明するためのフローチャートである。
【００７７】
（i）ステップ１２２１
センサフュージョン部１２２は、該当するスロットに同期して起動され、の共有データバッファ１３０に格納されている外界認識情報１３４を読み出し、フュージョンアルゴリズムに基づいて、外界認識情報の精度を上げる。つまり、カメラ（物体のサイズを認識することに適する）及びレーダ（物体との距離を認識することに適する）など複数のセンサによって取得された複数種類の情報を用いて検知精度を向上させる。
【００７８】
＜動的地図生成処理の詳細＞
図１７は、動的地図生成部１２３による処理の詳細を説明するためのフローチャートである。
【００７９】
（i）ステップ１２３１
動的地図生成部１２３は、該当するスロットに同期して起動され、外界認識情報１３４が示す物体の位置情報を地図情報１３７にマッピングし、物体の特性や距離、予測動作などを判るようにする。
【００８０】
＜軌道生成処理の詳細＞
図１８は、軌道生成部１２４による処理の詳細を説明するためのフローチャートである。
【００８１】
（i）ステップ１２４１
軌道生成部１２４は、該当するスロットに同期して起動され、動的地図生成部１２３によって生成された動的地図情報に基づいて、自車の走行軌道を生成し、共有データバッファ１３０の軌道情報１３５に保存する。
【００８２】
＜時間駆動スケジューリング処理の詳細＞
図１９は、時間駆動スケジューリング部１２５による処理の詳細を説明するためのフローチャートである。
【００８３】
（i）ステップ１２５１
時間駆動スケジューリング部１２５は、チェック対象のスロット終了時点において当該スロットで実行されていた現在のタスクがまだ実行されているか否か判定する。当該タスクが終了している場合（ステップ１２５１でＹｅｓの場合）、処理はステップ１２５２に進む。当該タスクがまだ実行されている場合（ステップ１２５１でＮｏの場合）、処理はステップ１２５３に進む。
【００８４】
（ii）ステップ１２５２
時間駆動スケジューリング部１２５は、現在時刻で起動すべきタスクを実行するように該当する処理部（例えば、軌道生成部１２４など）に指示する。
【００８５】
（iii）ステップ１２５３
時間駆動スケジューリング部１２５は、エラー情報を共有データバッファ１３０の状態データ１３６に格納し、対象のタスクを再起動（復旧）させる。再起動のタイミングは、例えば、次の周期における該当スロットの開始時間とすることができる。
【００８６】
本実施形態では、スロット終了時にタスクがまだ実行されている際にエラー情報を保存し、実行中のタスクを再起動させているが、これに限らない。例えば、タスクを強制終了させるだけでも良い。あるいは、エラー情報を保存し、次のスロットでタスクを継続実行しても良い。さらには、エラー情報を保存せずに、次のスロットでタスクを継続実行しても良い。これは１つのタスクを複数のスロットをまたいで実行する際に用いる。
【００８７】
（iv）ステップ１２５４
時間駆動スケジューリング部１２５は、次のスロットを実行する時刻をハードウェアタイマ１５にセットする。
【００８８】
＜処理タイミング＞
図２０は、本実施形態による車両制御装置１で実行される各処理のタイミングを説明するためのタイミングチャートである。図２０において、矢印はデータの流れを示し、説明の都合上、一部にのみ記載している。
【００８９】
車載ネットワーク１６を介して受信した外界認識情報１３４は、ＴＩＤ：２（Ｔ２：割込処理）の受信割込処理部１１７で受信され、一時バッファ（コア１_１１内の一時バッファ、コア２_１２内の一時バッファ、或いはメモリ１３内の一時バッファ）に保存される。
【００９０】
ＴＩＤ：４のスロット同期ｗｒｉｔｅ処理部１１４は、空きスロットで起動され、外界認識情報１３４を一時バッファから共有データバッファ１３０にコピーする。
【００９１】
外界認識情報１３４は、ＴＩＤ：６のセンサフュージョン部１２２で処理され、演算結果がＴＩＤ：７の動的地図生成部１２３で参照される。また、ＴＩＤ：８の軌道生成部１２４は、動的地図情報に基づいて、軌道情報１３５を共有データバッファ１３０に保存する。
ＴＩＤ：３のスロット同期ｒｅａｄ処理部１１３は、共有データバッファ１３０に格納されている軌道情報１３５をコア１_１１の一時バッファにコピーする。
【００９２】
そして、ＴＩＤ：１の送信処理では、送信処理部１１６が、車載ネットワーク１６を介して軌道情報１３５を他のＥＣＵや検査装置に送信する。なお、本実施形態では軌道情報１３５をコア２_１２から共有データバッファ１３０に直接保存しているが、これに限らない。例えば、一度コア２_１２の一時保存バッファに保存した後に共有データバッファ１３０に保存しても良い。
【００９３】
（２）変形例：他の実施形態
（i）変形例１
第１の実施形態では、時間駆動スケジューリングによって時分割を実現しているが、これに限らない。例えば、優先度スケジューリングであっても、処理を重複しないように実行し、スロットの処理の優先度を上げ、必ず実行されることを担保することで時分割を実現することができる。スロットの開始時刻をタスクのオフセットとし、スロットのサイズをデッドラインとして定義し、それを監視するタスク実行監視機能によって、スロット時に終了されていないタスクを検知することができる。
【００９４】
例えば、図２１は、コア２_１２でも優先度スケジューリングで時分割を実行する際のタスク情報２３３の構成例（変形例）を示す図である。また、図２２は、タスク設定情報２３３に基づいたアラーム設定情報２３２の構成例（変形例）を示す図である。
【００９５】
図２１に示されるタスク情報２３３では、タスク情報１３３（図４参照）のＴＩＤ：６〜８と比べると、新たに高い優先度（優先度１）が設定されている。また、オフセット２３３６にスロットの開始時刻が設定され、デッドライン２３３７にスロットのサイズが設定されている。このデッドライン２３３７の情報は、上述のように、スロットを設定する際に用いられる。
【００９６】
さらに、図２２に示されるアラーム設定情報２３２では、第１の実施形態によるアラーム設定情報１３２（図３参照）と比べ、ＡＩＤ：３〜５が追加となっている。
以上により、優先度スケジューリング処理によって、時分割処理を実現することができるようになる。
【００９７】
（ii）変形例２
第１の実施形態では、スロット設定情報１３１（図２参照）が与えられているが、システム起動時にタスク情報からスロット設定情報を算出するようにしても良い。図２３は、変形例による、タスクの最悪実行時間（ＷＣＥＴ：特定のタスクを実行するのにかかる最長の時間）の情報を含むタスク情報３３３を示す図である。図２３では、ＴＩＤ：６〜８のタスクのＷＣＥＴが判るため、これを超えないようにスロットサイズを決め、スロット同士が重複しないようにスロットをずらすことでスロット設定情報を自動生成することができる。例えば、コア１_１１或いはコア２_１２は、スロットサイズを最悪実行時間＋マージン（例えば５００ｍｓ）となるように決定し、それに固定して処理を継続する。ただし、例えばアルゴリズムの変更等により最悪実行時間が変更されるような場合には、システムを再起動してスロットサイズを再設定するようにしても良い。
【００９８】
（iii）変形例３
第１の実施形態では、共有データバッファ（データ記憶領域）１３０からコア１_１１の一時バッファへの複製処理をコア１_１１が担当しているが、これに限らない。例えば、コア２_１２が空きスロットで当該複製処理を行っても良い。
【００９９】
（iv）変形例４
第１の実施形態では、コア１_１１がコア１_１１の一時バッファに保存されたデータを共有データバッファに格納するが、これに限らない。例えば、コア２_１２が空きスロットで当該データ格納処理を行っても良い。
【０１００】
（v）変形例５
第１の実施形態において、時分割処理を実行するコアでは、１つのタスクが１つのスロットに割り当てられているが、これに限らない。例えば、１つのタスクがシステム周期内の複数のスロットに割り当てられても良い。このとき、実行されるタスクが最後のスロットを超えることはないようにシステム周期内でタスクが割り当てられる必要がある。最後のスロットをタスクが超える場合にはエラー（処理時間エラー）となる。また、当該エラーは、車載ネットワーク１６を介して、車両制御装置１に接続される他の制御装置（ＥＣＵ）、出力装置（例えば、モニターやメータ等）或いは検査装置等に送信（通知）される。
【０１０１】
（vi）変形例６
第１の実施形態において、時分割処理を実行するコアでは、１つのタスクが１つのスロットに割り当てられるが、これに限らない。例えば、時分割処理が割り当てられるスロット内に複数のタスクを割り当て、優先度スケジューリングによって実行するようにしても良い。
【０１０２】
（vii）変形例７
第１の実施形態では、同じハードウェアタイマ１５を参照するのでマルチコア間で時間を同期できる。しかし、この方法に限らない。
【０１０３】
（viii）変形例８
第１の実施形態では、空きスロットにおいてタスクは実行されていないが、これに限らない。空きスロット内ではコア間でｗｒｉｔｅ、ｒｅａｄする処理が発生しなければ良いため、例えば、マイコン診断処理や、同じコア内のデータを参照し、計算結果を出力する制御ソフトウェアを実行しても良い。
【０１０４】
１つのコアが共有データバッファ１３０からデータを読み込んでいるとき（ｒｅａｄ処理が行われているとき）に、他のコアがｗｒｉｔｅ処理によって共有データバッファ１３０に対してデータを書き込むと、共有データバッファ１３０内のデータが変更されてしまうため、適切にｒｅａｄ処理が実行されない可能性がある（データにバグが生じたような状態となる）。このため、空きスロットとして定義する場合、共有データバッファ１３０にアクセスしていないことが重要となる。
【０１０５】
なお、空きスロットは何も時分割処理が割り当てられていないスロットではあるが、仮に割り当てられていたとしても共有データバッファ１３０に対してｒｅａｄ処理及びｗｒｉｔｅ処理が実行される処理が割り当てられていなければ空きスロットと位置付けても良い。
【０１０６】
（ix）変形例９
第１の実施形態では、システム周期内に空きスロットを１つのみ設けているが、これに限らない。例えば、空きスロットを２つ以上設けても良い。
【０１０７】
（x）変形例１０
第１の実施形態では、コア間で共有するデータのｗｒｉｔｅ、ｒｅａｄを空きスロットで行っているが、これに限らない。スロットより細かいデータアクセス単位で空き時間を見つけて行っても良いし、複数のスロットにまたがっても良い。
【０１０８】
（xi）変形例１１
第１の実施形態では、コア間で共有するデータに対してｗｒｉｔｅ処理、或いはｒｅａｄ処理を実行するタイミングをハードウェアタイマ１５で管理しているが、これに限らない。例えば、コア間で共有するデータのタイミング指示を時分割のコアから指示しても良い。
【０１０９】
（xii）変形例１２
【０１１０】
同じハードウェアタイマ１５を参照するのでマルチコア間で時間を同期できる。しかし、この方法に限らない。例えば、ハードウェアタイマを２つ設け、システムが起動したときにハードウェアタイマ間で同期を取るようにしても良い。
【０１１１】
（３）まとめ
（i）本実施形態による車両制御装置では、マルチコアのうちコア１（第１の演算装置）に時分割以外で実行される第１種演算処理を実行させ、コア２（第２の演算装置）に時分割で実行される第２種演算処理を実行させるようにする。このようにすることにより、時分割処理を行わないコア（コア１）で割込処理を処理することが可能にあるため、高応答で高信頼なシステムを構築できるようになる。
【０１１２】
コア２は、所定の演算によってデータ（例えば、軌跡情報）を生成する。コア２が当該生成されたデータを参照しない期間に、コア１は、生成されたデータを共有データとして、共有データバッファに格納し、共有データを更新する（更新の動作主体はコア２でも良い）。また、コア１は、コア１が共有データを参照していない時間に、共有データを複製し、当該複製された共有データを一時バッファ領域に格納する（複製の動作主体はコア２でも良い）。このようにすることにより、時分割処理（周期的に実行すべき処理（例えば、センサフュージョン処理、動的地図生成処理、軌道生成処理など））で共有データが参照されない時間に割り込み処理を実行することができるので、時分割処理中に共有データが書き換えられることがなくなる。よって、時分割処理の結果の信頼性を保証することが可能となる。なお、コア２が共有データを参照していない期間としては、実行すべき時分割処理が割り当てられていない期間（空きスロット）、共有データが参照されない制御処理が実行される期間（時分割処理が割り当てられたスロットにおける空き時間）、又はマイコン診断処理が実行される期間を挙げることができる。
【０１１３】
コア１は、割り込み処理によって実行される複数のタスクについて、各タスクに付与された優先度に基づいて各タスクの実行をスケジューリングする。このようにすることにより、重要な割り込み処理を確実に実行することが可能となる。
【０１１４】
時分割処理されるタスクが割り当てられたスロットの終了時間に達した際に、当該スロット内で終了すべきタスクが終了していない場合、コア２は、当該終了しなかったタスクを待機状態に移行させる。そして、コア２は、次の周期におけるスロットで終了しなかったタスクを再開させる。この際、エラーを通知するようにしても良い。また、再開させずに単に終了させても良い。このようにすることにより、時分割で実行される処理が設計時の想定以上に演算時間が掛かり、スロット時間内に終わらないという事態が発生しても、その異常を検知し、対象の処理のみを再起動、または終了することができる。また、これにより、他の時分割で実行される処理に影響がでないため、高信頼性が求められる自動運転システムに好適である。
【０１１５】
（ii）本開示は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本開示を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１１６】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【０１１７】
さらに、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【０１１８】
最後に、ここで述べたプロセス及び技術は本質的に如何なる特定の装置に関連することはなく、コンポーネントの如何なる相応しい組み合わせによってでも実装できることを理解する必要がある。更に、汎用目的の多様なタイプのデバイスがここで記述した教授に従って使用可能である。ここで述べた方法のステップを実行するのに、専用の装置を構築するのが有益であることが判るかもしれない。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。本開示は、具体例に関連して記述したが、これらは、すべての観点に於いて限定の為ではなく説明の為である。本分野にスキルのある者には、本開示を実施するのに相応しいハードウェア、ソフトウェア、及びファームウエアの多数の組み合わせがあることが解るであろう。例えば、記述したソフトウェアは、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【０１１９】
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
【０１２０】
加えて、本技術分野の通常の知識を有する者には、本開示のその他の実装がここに開示された本開示の明細書及び実施形態の考察から明らかになる。記述された実施形態の多様な態様及び／又はコンポーネントは、単独又は如何なる組み合わせでも使用することが出来る。明細書と具体例は典型的なものに過ぎず、本開示の範囲と精神は後続する請求範囲で示される。
【符号の説明】
【０１２１】
１  車両制御装置
１１  演算装置（コア１）
１２  演算装置（コア２）
１３  メモリ
１４  入出力回路
１５  ハードウェアタイマ
１６  車載ネットワーク
１００  プログラム領域
１１０  コア１初期化部
１１１  スロット同期処理タイミング設定部
１１２  アラーム処理部
１１３  スロット同期ｒｅａｄ処理部
１１４  スロット同期ｗｒｉｔｅ処理部
１１５  優先度スケジューリング部
１１６  送信処理部
１１７  受信割込処理部
１２０  コア２初期化部
１２１  スロット設定部
１２２  センサフュージョン部
１２３  動的地図生成部
１２４  軌道生成部
１２５  時間駆動スケジューリング部
１３０  データ記憶領域（共有データバッファ）
１３１  スロット設定情報
１３２  アラーム設定情報
１３３  タスク情報
１３４  外界認識情報
１３５  軌道情報
１３６  状態データ
１３７  地図情報
【図１】
2017199266.tif 000003
【図２】
2017199266.tif 000004
【図３】
2017199266.tif 000005
【図４】
2017199266.tif 000006
【図５】
2017199266.tif 000007
【図６】
2017199266.tif 000008
【図７】
2017199266.tif 000009
【図８】
2017199266.tif 000010
【図９】
2017199266.tif 000011
【図１０】
2017199266.tif 000012
【図１１】
2017199266.tif 000013
【図１２】
2017199266.tif 000014
【図１３】
2017199266.tif 000015
【図１４】
2017199266.tif 000016
【図１５】
2017199266.tif 000017
【図１６】
2017199266.tif 000018
【図１７】
2017199266.tif 000019
【図１８】
2017199266.tif 000020
【図１９】
2017199266.tif 000021
【図２０】
2017199266.tif 000022
【図２１】
2017199266.tif 000023
【図２２】
2017199266.tif 000024
【図２３】
2017199266.tif 000025