(57)【要約】【課題】再構成される論理回路において非連続なデータを処理する場合に処理時間を短縮することができる。【解決手段】電子制御装置は、再構成されて演算を実行する演算部、および演算部が演算対象とする演算対象データを格納する格納部が構成される部分再構成可能な論理回路と、演算部を再構成させるための回路データ、および演算対象データを論理回路に送信する処理制御部とを備え、処理制御部は、再構成の完了後の演算部である次回演算部にかかる演算対象データである次回演算対象データが得られると、次回演算部の再構成が完了しているか否かにかかわらず、格納部への次回演算対象データの送信を開始し、再構成が完了した次回演算部は次回演算対象データを用いて演算を行う。【選択図】図２
2018186332.tif 000002
【特許請求の範囲】
【請求項１】
再構成されて演算を実行する演算部、および前記演算部が演算対象とする演算対象データを格納する格納部が構成される部分再構成可能な論理回路と、
前記演算部を再構成させるための回路データ、および前記演算対象データを前記論理回路に送信する処理制御部とを備え、
前記処理制御部は、再構成の完了後の前記演算部である次回演算部にかかる前記演算対象データである次回演算対象データが得られると、前記次回演算部の再構成が完了しているか否かにかかわらず、前記格納部への前記次回演算対象データの送信を開始し、
再構成が完了した前記次回演算部は前記次回演算対象データを用いて演算を行う電子制御装置。
【請求項２】
請求項１に記載の電子制御装置において、
前記次回演算対象データが前記演算部以外の処理により生成される場合は、前記処理制御部は前記処理が完了すると前記次回演算対象データが得られると判断する電子制御装置。
【請求項３】
請求項１に記載の電子制御装置において、
前記処理制御部は、前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合は、前記回路データを優先して前記論理回路に送信する電子制御装置。
【請求項４】
請求項１に記載の電子制御装置において、
前記処理制御部は、前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合は、前記回路データの前記論理回路への送信に要する時間である回路データ転送時間、および前記演算対象データの前記論理回路への送信に要する時間である演算データ転送時間に基づき、前記回路データおよび前記演算対象データのいずれを先に送信する先送信データとし、他方を後に送信する後送信データとするかを決定する電子制御装置。
【請求項５】
請求項４に記載の電子制御装置において、
前記処理制御部は、前記回路データ転送時間と前記演算データ転送時間との差に基づき後送信待機時間を決定し、
前記処理制御部は、前記先送信データを送信した後に、前記後送信待機時間だけ待機した後に前記後送信データを送信する電子制御装置。
【請求項６】
請求項５に記載の電子制御装置において、
前記処理制御部は、前記回路データの送信の完了と前記演算対象データの送信の完了が同時になるように前記後送信待機時間を決定する電子制御装置。
【請求項７】
請求項３または請求項４に記載の電子制御装置において、
前記回路データを前記論理回路に送信可能な場合とは、前記演算部における前記演算が完了している場合であり、
前記演算対象データを前記論理回路に送信可能な場合とは、前記格納部から前記演算対象データがすべて読みだされ、かつ前記次回演算対象データが得られる場合である、電子制御装置。
【請求項８】
請求項１に記載の電子制御装置において、
前記論理回路には、前記演算部の演算結果を格納する結果格納部がさらに構成され、
前記処理制御部は、前記結果格納部に前記演算部の演算結果が格納されると、前記演算部の再構成のための前記回路データの送信を開始する電子制御装置。
【請求項９】
送信される回路データを用いて再構成されて演算を実行する演算部、および前記演算部が演算対象とする演算対象データを格納する格納部が構成される部分再構成可能な論理回路の制御方法であって、
再構成の完了後の前記演算部である次回演算部にかかる前記演算対象データである次回演算対象データが得られると、前記次回演算部の再構成が完了しているか否かにかかわらず、前記格納部への前記次回演算対象データの送信を開始することと、
前記次回演算部は再構成が完了すると前記次回演算対象データを用いて演算を行うこととを含む論理回路の制御方法。
【請求項１０】
請求項９に記載の論理回路の制御方法において、
前記次回演算対象データが前記演算部以外の処理により生成される場合は、前記処理が完了すると前記次回演算対象データが得られると判断する論理回路の制御方法。
【請求項１１】
請求項９に記載の論理回路の制御方法において、
前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合は、前記回路データを優先して前記論理回路に送信する論理回路の制御方法。
【請求項１２】
請求項９に記載の論理回路の制御方法において、
前記回路データおよび前記演算対象データの両方を前記論理回路に送信可能な場合は、前記回路データの前記論理回路への送信に要する時間である回路データ転送時間、および前記演算対象データの前記論理回路への送信に要する時間である演算データ転送時間に基づき、前記回路データおよび前記演算対象データのいずれを先に送信する先送信データとし、他方を後に送信する後送信データとするかを決定する論理回路の制御方法。
【請求項１３】
請求項１２に記載の論理回路の制御方法において、
前記回路データ転送時間と前記演算データ転送時間との差に基づき後送信待機時間を決定し、
前記先送信データを送信した後に、前記後送信待機時間だけ待機した後に前記後送信データを送信する論理回路の制御方法。
【請求項１４】
請求項１１または請求項１２に記載の論理回路の制御方法において、
前記回路データを前記論理回路に送信可能な場合とは、前記演算部における前記演算が完了している場合であり、
前記演算対象データを前記論理回路に送信可能な場合とは、前記格納部から前記演算対象データがすべて読みだされ、かつ前記次回演算対象データが得られる場合である、論理回路の制御方法。
【請求項１５】
請求項９に記載の論理回路の制御方法において、
前記論理回路には、前記演算部の演算結果を格納する結果格納部がさらに構成され、
前記結果格納部に前記演算部の演算結果が格納されると、前記演算部の再構成のための前記回路データを送信する論理回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置、および論理回路の制御方法に関する。
【背景技術】
【０００２】
車両の自動運転を目指した技術開発が進められている。自動運転は運転者に代わり周囲の認識、車両の制御を行う必要があり、膨大な情報処理が必要になる。増大する情報処理に対応するため、ＣＰＵに加え、ハードウェアチップを用いる検討が進められている。その中でも、論理回路を再構成可能なＦＰＧＡ(Field Programmable Gate Array)等のＰＬＤ(Programmable Logic Device)を用いて複数の処理を１つの論理回路上で実現することが期待されている。論理回路を用いて演算を行う場合は、論理回路の再構成に要する時間を考慮した適切な処理が求められる。
【０００３】
特許文献１には、回路素子と、この回路素子に接続されるコンフィギュレーションメモリとを備え、前記コンフィギュレーションメモリに書き込まれる回路情報に基づいて回路が構成されるプログラマブル論理回路部と、外部からの制御信号を受けて、前記コンフィギュレーションメモリに外部から入力される回路情報を書き込むための回路情報入力制御手段と、前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成された回路で処理されるデータを一時的に保持するデータキャッシュ手段と、前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成される回路に対して、前記データキャッシュ手段からのデータと、入力データとのいずれか一方を供給するように、外部からの切り替え制御信号に応じて切替制御する入力データ切替手段と、前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成される回路の出力データを、前記データキャッシュ手段に供給するか、あるいは出力データとして導出するかを、外部からの切り替え制御信号に応じて切替制御する出力データ切替手段と、を備えることを特徴とするプログラマブル論理回路装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３３３４９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載されている発明では、再構成される論理回路において非連続なデータを処理する場合には処理時間を短縮することができない。
【課題を解決するための手段】
【０００６】
本発明の第１の態様による電子制御装置は、再構成されて演算を実行する演算部、および前記演算部が演算対象とする演算対象データを格納する格納部が構成される部分再構成可能な論理回路と、前記演算部を再構成させるための回路データ、および前記演算対象データを前記論理回路に送信する処理制御部とを備え、前記処理制御部は、再構成の完了後の前記演算部である次回演算部にかかる前記演算対象データである次回演算対象データが得られると、前記次回演算部の再構成が完了しているか否かにかかわらず、前記格納部への前記次回演算対象データの送信を開始し、再構成が完了した前記次回演算部は前記次回演算対象データを用いて演算を行う。
本発明の第２の態様による論理回路の制御方法は、送信される回路データを用いて再構成されて演算を実行する演算部、および前記演算部が演算対象とする演算対象データを格納する格納部が構成される部分再構成可能な論理回路の制御方法であって、再構成の完了後の前記演算部である次回演算部にかかる前記演算対象データである次回演算対象データが得られると、前記次回演算部の再構成が完了しているか否かにかかわらず、前記格納部への前記次回演算対象データの送信を開始することと、前記次回演算部は再構成が完了すると前記次回演算対象データを用いて演算を行うこととを含む。
【発明の効果】
【０００７】
本発明によれば、再構成される論理回路において非連続なデータを処理する場合に処理時間を短縮することができる。
【図面の簡単な説明】
【０００８】
【図１】車載システム１のシステム構成図
【図２】自律走行制御装置２のハードウエア構成図
【図３】第１の実施の形態における自律走行制御装置２の機能構成図
【図４】処理情報ＤＢ３の一例を示す図
【図５】演算ＤＢ管理情報２１１の一例を示す図
【図６】結果ＤＢ管理情報２１２の一例を示す図
【図７】状態管理情報２１３の一例を示す図
【図８】第１の実施の形態における処理制御部２０２の動作を示すフローチャート
【図９】再構成回路２０３の動作を示すフローチャート
【図１０】自律走行制御装置２の動作を示すタイミングチャート
【図１１】従来技術との比較を示すタイミングチャート
【図１２】変形例２における処理制御部２０２の動作を表すフローチャート
【図１３】変形例３における処理制御部２０２の動作を表すフローチャート
【図１４】変形例４における処理制御部２０２の動作を表すフローチャート
【図１５】第２の実施の形態における自律走行制御装置２の機能構成図
【図１６】内部処理管理部２３０の動作を示すフローチャート
【図１７】外部処理管理部２４０の動作を示すフローチャート
【発明を実施するための形態】
【０００９】
―第1の実施の形態―
以下、図１〜図１１を参照して、本発明にかかる電子制御装置である自律走行制御装置の第１の実施の形態を説明する。
【００１０】
＜システム構成＞
図１は、自律走行制御装置２を含む車載システム１のシステム構成図である。車載システム１は、車両１００に搭載され、車両１００の外界状況をカメラにより認識するカメラ情報取得部１０１と、車両１００の外界状況をレーダにより認識するレーダ情報取得部１０２と、衛星航法システム、たとえばＧＰＳの受信機を用いて車両１００の位置を検出する自車位置情報取得部１０３とを備える。車載システム１はさらに、車両１００の自動運転を設定するための自動運転設定部１０４と、ＯＴＡ（Over−The−Air）により車載システム１の情報を更新するための無線通信部１０５を備える。
【００１１】
車載システム１はさらに、自律走行制御装置２と、補助制御部１０６と、ブレーキ制御部１０７と、エンジン制御部１０８と、パワーステアリング制御部１０９とを備える。自律走行制御装置２、補助制御部１０６、ブレーキ制御部１０７、エンジン制御部１０８、およびパワーステアリング制御部１０９は、たとえばＥＣＵ（Electronic Control Unit）である。
【００１２】
カメラ情報取得部１０１、レーダ情報取得部１０２、自車位置情報取得部１０３、自動運転設定部１０４、無線通信部１０５、自律走行制御装置２、補助制御部１０６、ブレーキ制御部１０７、エンジン制御部１０８、およびパワーステアリング制御部１０９は、ＣＡＮ（Controller Area Network）の車載ネットワークによって相互に通信可能に接続される。
【００１３】
カメラ情報取得部１０１、レーダ情報取得部１０２、および自車位置情報取得部１０３は、それぞれがセンサなどから受信した情報を自律走行制御装置２に送信する。自動運転設定部１０４は、自動運転時の目的地、ルート、走行速度等の設定情報を自律走行制御装置２に送信する。ただし自動運転設定部１０４が送信する情報の一部が無線通信部１０５を介してサーバ装置１１０など外部から受信したものであってもよい。
【００１４】
自律走行制御装置２は、自動運転制御のための処理を行い処理結果に基づいて制御指令を、ブレーキ制御部１０７、エンジン制御部１０８、およびパワーステアリング制御部１０９へ出力する。補助制御部１０６は、自律走行制御装置２と同様の制御を補助として行う。ブレーキ制御部１０７は、車両１００の制動力を制御する。エンジン制御部１０８は、車両１００の駆動力を制御する。パワーステアリング制御部１０９は、車両１００のステアリングを制御する。
【００１５】
自律走行制御装置２は、自動運転設定部１０４により自動運転の設定要求を受け付けると、カメラ情報取得部１０１、レーダ情報取得部１０２、自車位置情報取得部１０３等からの外界の情報を基に車両１００が移動する軌道を算出する。そして、自律走行制御装置２は、算出した軌道に従って車両１００を移動させるように、制動力、駆動力、操舵などの制御指令を、ブレーキ制御部１０７、エンジン制御部１０８、およびパワーステアリング制御部１０９に出力する。ブレーキ制御部１０７、エンジン制御部１０８、およびパワーステアリング制御部１０９は、自律走行制御装置２から制御指令を受けて、それぞれ不図示の制御対象であるアクチュエータに操作信号を出力する。
【００１６】
図２は、自律走行制御装置２のハードウエア構成図である。自律走行制御装置２は、ＣＰＵ２５１と、ＲＯＭ２５２と、ＲＡＭ２５３と、フラッシュメモリ２５４と、論理回路２５５と、通信インタフェース２５６とを備える。ＣＰＵ２５１は、ＲＯＭ２５２に格納されたプログラムをＲＡＭ２５３に展開して実行することで後述する機能を実現する。フラッシュメモリ２５４は不揮発性の記憶領域である。なおＣＰＵ２５１は、ロックステップ方式を採用した複数のコアを持つプロセッサであってもよい。
【００１７】
論理回路２５５は、ＦＰＧＡ（Field Programmable Gate Array）などのＰＬＤ（Programmable Logic Device）を用いた再構成可能な論理回路である。論理回路２５５はその一部のみを再構成することが可能な、いわゆる部分再構成可能な論理回路である。通信インタフェース２５６は、ＣＡＮ等の所定のプロトコルで通信するインタフェースである。自律走行制御装置２は、通信インタフェース２５６を介して他の装置に接続され、データを送受信する。ただし通信インタフェース２５６は、外部の機器と接続される２つの通信ポートを備えてもよいし、通信ポートを１つのみ備えてもよい。
【００１８】
＜自律走行制御装置の機能構成＞
図３は、自律走行制御装置２の機能構成図である。自律走行制御装置２は、第１通信インタフェース２０１Ａ、第２通信インタフェース２０１Ｂ、処理制御部２０２、再構成回路２０３、再構成管理部２０４、データベース管理部（以下、ＤＢ管理部）２０５、演算部２０６、処理情報データベース（以下、処理情報ＤＢ）３、演算データベース（以下、演算ＤＢ）４、結果データベース（以下、試験ＤＢ）５、および回路データベース（以下、回路ＤＢ）６を有する。以下では、第１通信インタフェース２０１Ａ、第２通信インタフェース２０１Ｂをまとめて、「通信インタフェース２０１」と呼ぶ。通信インタフェース２０１は、図２の通信インタフェース２５６により実現される。処理情報ＤＢ３および回路ＤＢ６は、フラッシュメモリ２５４により実現される。
【００１９】
再構成回路２０３は、論理回路２５５により実現される。再構成管理部２０４、ＤＢ管理部２０５、演算部２０６、演算ＤＢ４、および結果ＤＢ５は、再構成回路２０３に構成される。本実施の形態では、再構成回路２０３には再構成管理部２０４、ＤＢ管理部２０５、演算ＤＢ４、および結果ＤＢ５は再構成されず、演算部２０６のみが再構成される。換言すると、再構成回路２０３は部分的に再構成が可能であり、演算ＤＢ４などの回路を維持したまま演算部２０６に相当する回路を再構成する。
【００２０】
自律走行制御装置２は、第１通信インタフェース２０１Ａを介して、図１のカメラ情報取得部１０１、レーダ情報取得部１０２、自車位置情報取得部１０３、自動運転設定部１０４、および無線通信部１０５と接続され、第２通信インタフェース２０１Ｂを介して補助制御部１０６、ブレーキ制御部１０７、エンジン制御部１０８、およびパワーステアリング制御部１０９と接続される。なお図３では、自律走行制御装置２は第１通信インタフェース２０１Ａおよび第２通信インタフェース２０１Ｂの論理的な２つの通信インタフェースを備えるが、両者の機能を併せ持つ１つの論理的な通信インタフェースのみを備えてもよい。
【００２１】
処理制御部２０２は、ＣＰＵ２５１により実行されるプログラムにより実現される。処理制御部２０２は状態管理情報２１３を有し、処理制御部２０２は状態管理情報２１３を参照および編集しながら所定の処理周期Ｔで後述する処理を繰り返し実行する。なお状態管理情報２１３は、ＲＡＭ２５３またはフラッシュメモリ２５４により実現される。処理制御部２０２は、カメラ情報取得部１０１、レーダ情報取得部１０２、および自車位置情報取得部１０３からのセンサ情報や、自動運転設定部１０４からの自動運転設定情報を周期的に収集する。処理制御部２０２は、処理情報ＤＢ３を参照し、収集したセンサ情報や、自動運転設定情報に対して実施する処理回数、および処理情報を判定する。処理制御部２０２は、状態管理情報２１３を記憶する。
【００２２】
処理制御部２０２は、処理情報ＤＢ３で判定した処理回数、および処理情報に基づき、処理制御部２０２で実施する演算処理の有無や、演算部２０６で実施する演算処理の有無を判断する。処理制御部２０２は、演算部２０６に演算処理を実行させる場合は、回路データを含む再構成指示２１を再構成回路２０３に送信し、再構成管理部２０４を介して演算部２０６の論理回路を再構成する。また処理制御部２０２は、演算部２０６で演算処理を実施させる場合は、演算データ２３を再構成回路２０３に送信し、ＤＢ管理部２０５を経由して演算部２０６の演算処理に必要なデータを演算ＤＢ４に格納する。
【００２３】
処理制御部２０２は、演算部２０６の回路領域の再構成の状態、演算ＤＢ４の書き込みや読み出しの状態、および、結果ＤＢ５の書き込みや読み出しの状態を管理し、処理制御部２０２で実施する演算処理や、演算部２０６で実施する演算処理のタイミングを調整する。処理制御部２０２は、処理制御部２０２自身で実施した演算処理の結果や、ＤＢ管理部２０５から取得した結果データ２４を基に、制動力や駆動力などの制御指令を通信インタフェース２０１Ｂから出力する。
【００２４】
再構成管理部２０４は、処理制御部２０２から処理回路データを含む再構成指示２１を受信し、再構成回路２０３内の回路領域の演算部２０６の論理回路を変更する。再構成管理部２０４は、論理回路の変更が完了すると、再構成完了通知２２を処理制御部２０２に通知する。
【００２５】
ＤＢ管理部２０５は、処理制御部２０２および演算部２０６に演算ＤＢ４および結果ＤＢ５へのアクセスを提供する。たとえばＤＢ管理部２０５は、処理制御部２０２から演算データ２３を受信すると演算ＤＢ４に格納し、そのデータを演算部２０６に提供する。またＤＢ管理部２０５は、演算部２０６が出力する演算結果を結果ＤＢ５に格納し、格納が開始されたことを処理制御部２０２に通知する。ＤＢ管理部２０５は結果ＤＢ管理情報２１２および演算ＤＢ管理情報２１１を有し、これらを参照および編集しながら処理を実行する。詳しくは後述する。結果ＤＢ管理情報２１２および演算ＤＢ管理情報２１１は、再構成回路２０３に構成される記憶領域である。
【００２６】
演算ＤＢ４および試験ＤＢ５は、再構成回路２０３に構成される記憶領域である。演算ＤＢ４および試験ＤＢ５は演算部２０６と同じ再構成回路２０３に構成されるので、それらの間では再構成回路２０３の外部に存在する処理制御部２０２に比べて高速なデータの入出力が可能である。たとえば同一のデータを演算部２０６が読み込む場合に、処理制御部２０２から読み込むよりも演算ＤＢ４から読み込む方が演算部２０６の読み込みに要する時間が短い。なお演算部２０６が演算ＤＢ４からデータを読み込む場合には、処理制御部２０２から演算ＤＢ４へのデータの読み込みが別途必要となるが、後述するようにそのタイミングを工夫している。また同一のデータを演算部２０６が書き込む場合に、処理制御部２０２に書き込むよりも、結果ＤＢ５に書き込む方が、演算部２０６の書き込みに要する時間が短い。
【００２７】
回路ＤＢ６には、複数の処理回路データが格納される。これらの処理回路データは、再構成回路２０３内の回路領域に書き込まれて演算部２０６等の論理回路を形成する。
【００２８】
演算部２０６は、再構成管理部２０４により再構成され、再構成が完了すると所定の処理を実行する。演算部２０６が実行する所定の処理とは再構成された回路、換言すると再構成管理部２０４が処理制御部２０２から受信した処理回路データにより定まるものである。演算部２０６は、ＤＢ管理部２０５に演算ＤＢ４内に格納した演算データ２３の読み出しを要求し、取得したデータを用いて所定の処理を実行する。さらに、演算部２０６は、所定の処理の実行結果を結果ＤＢ５内に格納するようにＤＢ管理部２０５に書き込みを要求する。
【００２９】
ＤＢ管理部２０５は、演算部２０６から書き込み要求を受信すると、実行結果を結果ＤＢ５に格納する。ＤＢ管理部２０５の結果ＤＢ管理情報２１２の詳細は図６を参照して後述する。処理制御部２０２は、結果ＤＢ５に格納された実行結果を結果データ２４として取得する。
【００３０】
＜処理情報データベースの構成例＞
図４は、処理情報ＤＢ３の一例を示す図である。処理情報ＤＢ３は、処理制御部２０２によって参照され、収集したセンサ情報や、自動運転設定情報に対して実施する処理内容が格納されるデータベースである。処理情報ＤＢ３は、処理回数３０１、および処理情報３０２のフィールドを有する。処理回数３０１には、演算部２０６が演算を行う回数および処理制御部２０２が処理を行う回数の和が格納される。処理情報３０２には、複数の処理情報、たとえば処理情報１〜処理情報５から構成され、処理の名称およびそれぞれの処理に対応する演算部２０６の回路の名称が格納される。ただし、処理が処理制御部２０２において実行される場合は「回路：無」が格納される。
【００３１】
たとえば図４に示す例では、回数３０１のフィールドに「５」が格納されているので、演算部２０６による処理と処理制御部２０２における処理の回数の和が５回であることが示されている。符号３０２−１〜符号３０２−５で示す処理情報１〜処理情報５のフィールドに格納されている情報は以下のとおりである。符号３０２−１で示す処理情報１は、回路ＤＢ６内の論理回路Ａに対応する処理回路データを用いて演算部２０６を再構成し、演算処理Ｐ１を実施することを示している。符号３０２−２で示す処理情報２は、処理制御部が演算処理Ｐ２を実施することを示している。符号３０２−３で示す処理情報３は、回路ＤＢ６内の論理回路Ｂに対応する処理回路データを用いて演算部２０６を再構成し、演算処理Ｐ３を実施することを示している。符号３０２−４で示す処理情報４は、処理制御部が演算処理Ｐ４を実施することを示している。符号３０２−５で示す処理情報５は、回路ＤＢ６内の論理回路Ｃに対応する処理回路データを用いて演算部２０６を再構成し、演算処理Ｐ５を実施することを示している。なお図４に示す処理情報ＤＢ３は一例であり、処理情報３０２を構成する処理情報の数は３以外でもよい。すなわち処理情報３０２が２つの処理情報から構成されてもよいし、４以上の処理情報から構成されてもよい。
【００３２】
本実施の形態では、それぞれの演算処理は直前の演算処理の実行結果を元に所定の処理の実行結果を取得することとする。たとえば演算処理Ｐ１では、収集したセンサ情報や、自動運転設定情報に基づき演算を行い実行結果を取得し、演算処理Ｐ２は、演算処理Ｐ１の実行結果に基づき所定の処理を実行する。演算処理Ｐ３〜Ｐ５のそれぞれは、演算処理Ｐ２〜Ｐ４のそれぞれの実行結果に基づき所定の処理を実行する。ただし演算処理Ｐ２〜Ｐ４のそれぞれは、直前の演算処理の実行結果以外の情報も用いて演算を行ってもよい。
【００３３】
＜演算データベース管理情報＞
図５は、演算ＤＢ管理情報２１１の一例を示す図である。演算ＤＢ管理情報２１１は、回路種別４０１、総演算データ数４０２、１演算データサイズ４０３、書込データ数４０４、および読出データ数４０５のフィールドを有する。回路種別４０１のフィールドには、演算部２０６に処理を実施させる論理回路の種別情報が格納される。総演算データ数４０２のフィールドには、演算部２０６に実施させる所定の処理に必要な演算データの総数が格納される。１演算データサイズ４０３のフィールドには、演算部２０６に複数の演算を実施させる場合において、１つの演算に使用するデータサイズが格納される。書込データ数４０４のフィールドには、演算ＤＢ４に書き込まれたデータ数が格納される。読出データ数４０５のフィールドには、演算ＤＢ４から読み出されたデータ数が格納される。
【００３４】
総演算データ数４０２のフィールドに格納される演算データの総数の情報は、処理制御部２０２が演算データ２３とともに送信されてもよいし、処理制御部２０２から演算データ２３の送信が完了した際の書込データ数４０４のフィールドの値を用いてもよい。ＤＢ管理部２０５は、処理制御部２０２から演算データ２３を受信すると演算ＤＢ４に格納するとともに、書込データ数４０４のフィールドに受信した演算データ２３の数を書き込む。ＤＢ管理部２０５は、演算ＤＢ４から演算部２０６に演算データ２３を送信すると、読出データ数４０５のフィールドに送信した演算データ２３の数を書き込む。
【００３５】
書込データ数４０４のフィールドに格納される値と、総演算データ数４０２のフィールドに格納される値との一致は、演算部２０６の処理に必要な演算データが全て格納されたことを示す。これと同様に、読込データ数４０５のフィールドに格納される値と、総演算データ数４０２のフィールドに格納される値との一致は、演算データが全て読み出されたことを示す。詳細な説明は省略するが、書込データ数４０４および読出データ数４０５は、演算ＤＢ４のアドレスの管理ポインタである。
【００３６】
たとえば、処理制御部２０２が図４に符号３０２−１で示す処理情報１を実行する場合は、演算部２０６が論理回路Ａに構成されるので回路種別４０１のフィールドには「Ａ」が格納される。総演算データ数４０２のフィールドには、演算処理Ｐ１に必要な演算データの総数、たとえば「１０２４」が格納される。１演算データサイズ４０３のフィールドには、演算処理Ｐ１の１つの演算データのサイズ、たとえば「８Ｂｙｔｅ」が格納される。また図５に示す例では、書込データ数４０４のフィールドの値が「５１２」なので、総演算データ数４０２の１０２４のうち５１２が書き込まれていることが示されている。さらに、読出データ数４０５のフィールドの値が「０」なので、演算データが演算部２０６に１つも読み出されていないことが示されている。
【００３７】
＜結果データベース管理情報＞
図６は、結果ＤＢ管理情報２１２の一例を示す図である。結果ＤＢ管理情報２１２は、回路種別５０１、総結果データ数５０２、１結果データサイズ５０３、書込データ数５０４、および読出データ数５０５のフィールドを備える。回路種別５０１のフィールドには、実行結果を取得した演算部２０６の論理回路の種別情報が格納される。総結果データ数５０２のフィールドには、所定の処理を実行した演算部２０６の結果データの総数が格納される。１結果データサイズ５０３のフィールドには、演算部２０６から複数の演算結果を取得する場合において、１つの演算結果を格納するために必要な記憶領域のサイズが格納される。書込データ数５０４のフィールドには、結果ＤＢ５に書き込まれたデータ数が格納される。読出データ数５０５のフィールドには、結果ＤＢ５から読み出されたデータ数が格納される。
【００３８】
総結果データ数５０２のフィールドの値は、演算ＤＢ管理情報２１１の総演算データ数４０２のフィールドから転記してもよいし、処理制御部２０２から別途伝達されてもよい。ＤＢ管理部２０５は、演算部２０６から結果データ２４を受信すると結果ＤＢ５に格納するとともに書込データ数５０４のフィールドに受信した結果データ２４の数を書き込む。ＤＢ管理部２０５は、処理制御部２０２に結果データ２４を送信すると、読出データ数５０５のフィールドに送信した結果データ２４の数を書き込む。
【００３９】
書込データ数５０４のフィールドに格納される値と、総演算データ数５０２のフィールドに格納される値との一致は、演算部２０６の処理が完了し演算結果が全て格納されたことを示す。これと同様に、読込データ数５０５のフィールドに格納される値と、総演算データ数５０２のフィールドに格納される値との一致は、演算データが全て読み出されたことを示す。詳細な説明は省略するが、書込データ数５０４および読出データ数５０５は、結果ＤＢ５のアドレスの管理ポインタである。
【００４０】
たとえば、処理制御部２０２が図４に符号３０２−３で示す処理情報３を実行する場合は、演算部２０６が論理回路Ｂに構成されるので回路種別５０１のフィールドには「Ｂ」が格納される。総演算データ数５０２のフィールドには、演算処理Ｐ３に必要な演算データの総数、たとえば「１０２４」が格納される。１演算データサイズ５０３のフィールドには、演算処理Ｐ３の１つの演算結果のサイズ、たとえば「４Ｂｙｔｅ」が格納される。また図６に示す例では、書込データ数４０４のフィールドの値が「１０２４」なので、全ての結果データが書き込まれていることが示されている。さらに、読出データ数５０５のフィールドの値が「１２８」なので、結果データの一部が読み出されていることが示されている。
【００４１】
＜状態管理情報＞
図７は、状態管理情報２１３の一例を示す図である。状態管理情報２１３は、演算部２０６、演算ＤＢ４、および結果ＤＢ５の状態を示す。状態管理情報２１３は、演算部２０６の状態を示す回路種別６０１と再構成状態６０２のフィールド、演算ＤＢ４の状態を示す演算種別６０３と演算ＤＢ状態６０４のフィールド、結果ＤＢ５の状態を示す結果種別６０５と結果ＤＢ状態６０６のフィールドを備える。回路種別６０１のフィールドには、演算部２０６の論理回路の種別情報が格納される。再構成状態６０２のフィールドには、演算部２０６の再構成の状態、すなわち再構成の完了を示す「完了」または再構成中であることを示す「再構成中」が格納される。
【００４２】
演算種別６０３のフィールドには、演算ＤＢ４に格納される演算データ２３を処理する論理回路の種別情報が格納される。演算ＤＢ状態６０４のフィールドには、演算種別６０３のフィールドの値で特定される論理回路が処理する演算データ２３の演算ＤＢ４への格納状況を示す値が格納される。その値は、格納が完了していることを示す「格納済み」、または格納中または格納を開始していないことを示す「格納中」である。結果種別６０５のフィールドには、結果ＤＢ５に格納された実行結果を出力した論理回路の種別情報が格納される。結果ＤＢ状態６０６のフィールドには、結果種別６０５のフィールドの値で特定される論理回路で処理された実行結果の結果ＤＢ５からの取得状況を示す値が格納される。その値は、処理制御部２０２が結果ＤＢ５から全ての結果データ２４を取得したことを示す「取得済」、または取得していない結果データ２４が存在することを示す「格納有」である。
【００４３】
たとえば、図７に示す例では演算部２０６が論理回路Ｃに再構成されていることを、回路種別６０１のフィールドの値「Ｃ」、および再構成状態６０２のフィールドの値「完了」により表している。また演算種別６０３および演算ＤＢ状態６０４のフィールドの値は、回路種別「Ｃ」の演算データが演算ＤＢ４に「格納中」であることを示している。さらに結果種別６０５および結果ＤＢ状態６０６のフィールドの値は、回路種別「Ｂ」の演算結果を処理制御部２０２がすべて「取得済」であることを示している。
【００４４】
＜処理制御部のフローチャート＞
図８は、処理制御部２０２の動作を示すフローチャートである。以下に説明する各ステップの実行主体は、自律走行制御装置２のＣＰＵ２５１である。処理制御部２０２は、所定の処理周期Ｔごとに以下のフローチャートで示される動作を実行する。
【００４５】
ステップＳ６０１では、処理制御部２０２はループカウンタである処理ＩＤに「１」を代入する。続くステップＳ６０２では、処理制御部２０２は、処理情報ＤＢ３を参照し、処理ＩＤで示される処理情報の処理は、論理回路を使用するか否かを判断する。論理回路を使用すると判断する場合はステップＳ６０３に進み、論理回路を使用しないと判断する場合はステップＳ６２１に進む。たとえば処理情報ＤＢ３が図４に示すものであり処理ＩＤが「１」の場合は、処理制御部２０２は符号３０２−１で示される処理情報１を参照する。そして処理制御部２０２は、「回路：Ａ」と記載されているので論理回路を使用すると判断する。
【００４６】
ステップＳ６０３では、処理情報ＤＢ３の記載に基づき再構成管理部２０４に回路データの転送を開始する。本ステップでは回路データの転送の開始のみを規定しており、転送の終了を確認することなく、換言すると回路データの転送を開始するとすぐに次のステップＳ６０４に進む。なお本フローチャートには記載していないが、再構成管理部２０４は回路データを受信すると演算部２０６の再構成を直ちに開始する。そして再構成が完了すると、演算部２０６は演算ＤＢ４から演算データを取得して演算を実行し、結果ＤＢ５に結果データ２４を書き込む。
【００４７】
続くステップＳ６０４では演算データが入手可能であるか否か、換言すると直前の処理が完了しているか否かを判断する。入手可能であると判断するとステップＳ６０５に進み、まだ入手できないと判断するとステップＳ６３１で一定時間待機した後に再度ステップＳ６０４を実行する。続くステップＳ６０５では演算データをＤＢ管理部２０５に転送する。
【００４８】
続くステップＳ６０６では、結果ＤＢ５に書き込みがあるか否か、換言すると演算部２０６から結果データ２４の出力が開始されたか否かを判断する。書き込みがあると判断する場合はステップＳ６０７に進み、まだ書き込みがないと判断する場合はステップＳ６３２で一定時間待機した後に再度ステップＳ６０６を実行する。ステップＳ６０７では、ＤＢ管理部２０５を介して結果ＤＢ５から結果データ２４の読み出しを開始する。続くステップＳ６０８では、全ての結果データが結果ＤＢ５に格納されたか否かを判断する。前述のとおりこの判断は、結果ＤＢ管理情報２１２の総結果データ数５０２のフィールドの値と読出データ数５０５のフィールドの値が一致するか否かにより判断できる。全ての結果データ２４が結果ＤＢ５に格納されたかと判断する場合はステップＳ６０９に進み、格納されていない結果データ２４が存在すると判断する場合はステップＳ６３３で一定時間待機した後に再度ステップＳ６０８を実行する。
【００４９】
ステップＳ６０９では、処理ＩＤが規定値、すなわち処理情報ＤＢ３の処理回数のフィールドの値以上であるか否かを判断する。処理ＩＤがその値以上であると判断する場合は、処理情報ＤＢ３に示す全ての処理が完了しているので図８に示す動作を終了する。処理ＩＤがその値未満であると判断する場合は、ステップＳ６３４に進んで処理ＩＤをインクリメントし、ステップＳ６０２に戻る。
【００５０】
ステップＳ６０２において否定判断されると実行されるステップＳ６２１では、処理情報ＤＢ３を参照して、処理ＩＤで示される処理の実行のために、結果ＤＢ５からの結果データ２４の読み出しが不要であるか否かを判断する。たとえば、処理制御部２０２における処理が連続している場合や、処理ＩＤが「１」の場合は本ステップが肯定判断される。肯定判断する場合はステップＳ６２４に進み、否定判断する場合はステップＳ６２２に進む。ステップＳ６２２では、結果ＤＢ５からの結果データ２４の読み出しが完了したか否かを判断する。読み出しが完了したと判断する場合はステップＳ６２４に進み、読み出しが完了していないと判断する場合はステップＳ６２３で一定時間待機した後に再度ステップＳ６２２を実行する。なお本ステップにおいて完了を待っている読み出し処理は、ステップＳ６０７において開始されたものである。
【００５１】
ステップＳ６２４では、処理制御部２０２は処理ＩＤで示された処理を実行してステップＳ６０９に進む。
【００５２】
＜再構成管理部のフローチャート＞
図９は、再構成回路２０３の動作を示すフローチャートである。以下に説明するように再構成回路２０３は、再構成管理部２０４、ＤＢ管理部２０５、および演算部２０６の協調動作により動作する。再構成回路２０３は、処理制御部２０２から回路データを受信するたびに以下のフローチャートで示される動作を実行する。
【００５３】
ステップＳ８００では、再構成管理部２０４は、再構成回路２０３への受信した回路データの書き込み、すなわち演算部２０６の再構成を開始する。続くステップＳ８０１では、再構成管理部２０４は再構成回路２０３への演算部２０６の再構成が完了したか否かを判断する。完了したと判断する場合はステップＳ８０２に進み、完了していないと判断する場合はステップＳ８０１に戻る。ステップＳ８０２では、再構成管理部２０４は再構成が完了した旨を処理制御部２０２に通知する。続くステップＳ８０３では、ＤＢ管理部２０５が演算ＤＢ４に演算データが格納されているか否かを判断する。演算データが格納されていると判断する場合はステップＳ８０４に進み、演算データが格納されていないと判断する場合はステップＳ８０３を再度実行する。ステップＳ８０４では、演算部２０６は演算ＤＢ４から演算データを取得して処理を実行し、処理結果を結果ＤＢ５に格納する。以上で処理を終了する。
【００５４】
＜タイミングチャート＞
図１０は、自律走行制御装置２のある処理周期Ｔにおける動作を示すタイミングチャートである。図１０に示す例では、処理制御部２０２は図４に記載した処理情報ＤＢ３を参照して動作する。図１０は図示左から右に向かって時間が経過している。図１０の左端に示すように、図１０には上から処理制御部２０２の動作状態、状態管理情報２１３の符号６０１〜６０６の各フィールドの値、再構成指示２１の送信状態、再構成完了通知２２の送信状態、演算データ２３の送信状態、演算ＤＢ４の入出力、演算部２０６の動作、結果ＤＢ５の入出力、および結果データ２４の送信状態を示している。
【００５５】
処理制御部２０２は、時刻ｔ０で周期処理を開始し、処理情報ＤＢ３を参照して処理回数３０１および処理情報３０２を解釈する。図１０では時間Ｔの１周期分のみを示しているが、これらの処理は繰り返し実行される。
【００５６】
解釈が完了した時刻ｔ１において、処理制御部２０２は、図４で符号３０２−１で示す処理情報１の処理回路データ、すなわち論理回路Ａ、および演算部２０６への再構成指示２１を再構成管理部２０４に送信する。これにより演算部２０６は再構成中となる。また処理制御部２０２は、演算処理Ｐ１に必要な演算データ２３を演算ＤＢ４に書き込む。再構成中に演算データ２３を演算ＤＢ４に書き込むことで、再構成完了後の演算処理Ｐ１の実行開始に備える。このとき処理制御部２０２は、図７に記載した状態管理情報２１３の回路種別６０１に「Ａ」、再構成状態６０２に「再構成中」、演算種別６０３に「Ａ」、演算ＤＢ状態６０４に「格納中」をそれぞれ格納する。
【００５７】
時刻ｔ２において演算データ２３の演算ＤＢ４への書き込みが完了すると、処理制御部２０２は、演算ＤＢ状態６０４を「設定済」に変更する。
【００５８】
時刻ｔ３で論理回路Ａの回路データの送信が終了し演算部２０６の再構成が完了すると、再構成管理部２０４は再構成完了通知２２を処理制御部２０２に送信する。また処理制御部２０２は、再構成状態６０２を「完了」に変更する。また、再構成が完了した演算部２０６は、演算ＤＢ４に演算処理Ｐ１に必要なデータが格納されていることを確認し、ＤＢ管理部２０５経由で演算ＤＢ４からデータの読み出しつつ、演算処理Ｐ１を実行開始する。演算ＤＢ４から演算部２０６へのデータの読み出しは、同じ再構成回路２０３上に構成されているため、短時間で実施することができる。
【００５９】
時刻ｔ４において、演算処理Ｐ１を実行している演算部２０６は、ＤＢ管理部２０５経由で結果ＤＢ５への実行結果の格納を開始する。処理制御部２０２は、結果種別６０５を「Ａ」、結果ＤＢ状態６０６を「格納有」に変更する。処理制御部２０２は、ＤＢ管理部２０５経由で結果ＤＢ５の読み出しを開始し、演算処理Ｐ１の結果データ２４を取得する。演算部２０６から結果ＤＢ５へのデータの書き込みは、同じ再構成回路２０３上に構成されているため、短時間で完了する。
【００６０】
時刻ｔ５において演算部２０６の結果ＤＢ５への結果データの書き込みが完了する。すなわち演算部２０６の処理が完了しているため、処理制御部２０２は、次の回路データ、すなわち図３において符号３０２−３で示される処理情報３の処理回路データ、すなわち論理回路Ｂの回路データの送信を開始する。処理制御部２０２はさらに、演算部２０６への再構成指示２１を再構成管理部２０４に送信する。これにより、演算部２０６は再び再構成中となる。またこのとき処理制御部２０２は、回路種別６０１を「Ｂ」、再構成状態６０２を「再構成中」に変更する。
【００６１】
時刻ｔ６において、処理制御部２０２は、結果ＤＢ５から演算処理Ｐ１の結果データ２４の読み出しが完了し、結果ＤＢ状態６０６が「取得済」に変更される。そして、処理制御部２０２は、演算処理Ｐ２の実行を開始する。
【００６２】
時刻ｔ７において、論理回路Ｂの回路データの送信が終わり、演算部２０６の再構成が完了すると、再構成管理部２０４は、再構成完了通知２２を処理制御部２０２に送信する。そして再構成状態６０２が「完了」に変更される。ただし論理回路Ｂが処理対象とする演算データは、処理情報２がまだ実行中で得られないため演算部２０６における演算はまだ開始されない。
【００６３】
時刻ｔ８において処理制御部２０２が演算処理Ｐ２の実行を完了すると、処理制御部２０２は演算処理Ｐ３に必要な演算データ２３を演算ＤＢ４に書き込む。このとき処理制御部２０２は、演算種別６０３を「Ｂ」、演算ＤＢ状態６０４を「格納中」に変更する。また時刻ｔ７で演算部２０６の論理回路Ｂへの再構成が完了しているため、演算部２０６は、演算ＤＢ４に演算処理Ｐ３に必要なデータが格納されていることを確認し、ＤＢ管理部２０５経由で演算ＤＢ４からデータの読み出しつつ、演算処理Ｐ３の実行を開始する。
【００６４】
時刻ｔ９において演算データ２３の演算ＤＢ４への書き込みが完了すると、処理制御部２０２は演算ＤＢ状態６０４を「設定済」に変更する。なお、演算ＤＢ４から演算部２０６へのデータの読み出しは短時間で実施することができるため、同じ時刻ｔ９で読み出しを完了としている。
【００６５】
時刻ｔ１０において、演算処理Ｐ３を実行している演算部２０６は、ＤＢ管理部２０５経由で結果ＤＢ５への実行結果の格納を開始する。このとき処理制御部２０２による結果ＤＢ５からの結果データ２４の読み出しも開始される。処理制御部２０２は、結果種別６０５を「Ｂ」、結果ＤＢ状態６０６を「格納有」に変更する。
【００６６】
時刻ｔ１１において実行結果の結果ＤＢ５への書き込みが完了すると、処理制御部２０２は、次の演算部２０６を構成するために論理回路Ｃの回路データ、および再構成指示２１を再構成管理部２０４に送信する。なお時刻ｔ１０〜時刻ｔ１１の期間で結果ＤＢ５への書き込みは完了するが、処理制御部２０２は再構成回路２０３の外部に存在するため結果ＤＢ５からの読み出しは時刻ｔ１１では完了せず継続している。処理制御部２０２は、回路種別６０１を「Ｃ」、再構成状態６０２を「再構成中」に変更する。
【００６７】
時刻ｔ１２において、処理制御部２０２は結果ＤＢ５から演算処理Ｐ３の結果データ２４の読み出しを完了し、結果ＤＢ状態６０６を「取得済」に変更する。そして処理制御部２０２は、演算処理Ｐ４の実行を開始する。
【００６８】
時刻ｔ１３において、処理制御部２０２は演算処理Ｐ４の実行を完了すると、次の演算処理Ｐ５に必要な演算データ２３を演算ＤＢ４に書き込む。このとき演算部２０６は再構成を継続しており、この再構成に並行して演算データ２３を演算ＤＢ４に書き込むことで、再構成完了後の演算処理Ｐ５の実行開始に備える。またこのとき処理制御部２０２は、演算種別６０３を「Ｃ」、演算ＤＢ状態６０４を「格納中」に変更する。
【００６９】
時刻ｔ１４において論理回路Ｃの回路データの送信、および演算部２０６の再構成が完了すると、再構成管理部２０４は、再構成完了通知２２を処理制御部２０２に送信する。処理制御部２０２は、再構成状態６０２を完了に変更する。再構成が完了した演算部２０６は、演算ＤＢ４に演算処理Ｐ５に必要なデータが格納されていることを確認し、ＤＢ管理部２０５経由で演算ＤＢ４からデータの読み出しつつ、演算処理Ｐ５を実行開始する。
【００７０】
時刻ｔ１５において演算データ２３の演算ＤＢ４への書き込みが完了すると、処理制御部２０２は、演算ＤＢ状態６０４を「設定済」に変更する。なお、演算ＤＢ４から演算部２０６へのデータの読み出しは短時間で実施することができるため、同じ時刻ｔ１５で読み出しが完了する。
【００７１】
時刻ｔ１６において、演算処理Ｐ５を実行している演算部２０６は、ＤＢ管理部２０５経由で結果ＤＢ５への実行結果の格納を開始する。このとき処理制御部２０２による結果ＤＢ５からの結果データ２４の読み出しも開始される。処理制御部２０２は、結果種別６０５を「Ｃ」、結果ＤＢ状態６０６を「格納有」に変更する。
【００７２】
時刻ｔ１７において、実行結果の結果ＤＢ５への書き込みが完了する。なお結果ＤＢ５からの読み出しは時刻ｔ１７では完了せず継続している。
【００７３】
時刻ｔ１８において、処理制御部２０２は結果ＤＢ５から演算処理Ｐ５の結果データ２４の読み出しを完了し、結果ＤＢ状態６０６を「取得済」に変更する。また処理制御部２０２は、演算処理Ｐ５の結果データ２４に基づき制御指令を出力する。時刻ｔ１９において制御指令の出力を完了し、処理制御部２０２は、時間Ｔの１周期分の処理を終了する。
【００７４】
＜従来技術との比較＞
図１１は、第１の実施の形態における自律走行制御装置２と、従来の自律走行制御装置（以下、従来自律走行制御装置）の比較を示すタイミングチャートである。従来自律走行制御装置は、演算ＤＢ４および結果ＤＢ５を備えず、従来演算部は従来処理制御部から演算データを直接受信し、結果データを直接出力する。図１１は図示中ほどよりも少し下の記載した時刻情報により上半分と下半分に分断される。図１１の上半分には、図１０に示すいくつかの要素をそのまま示している。図１１の下半分には、従来自律走行制御装置における従来の処理制御部（以下、従来処理制御部）および従来の演算部（従来演算部）の動作タイミングを示す。ただしここでは、従来自律走行制御装置も図４に示した処理情報ＤＢ３の記述に従って動作することとする。
【００７５】
従来演算部は、時刻ｔ０から時刻ｔ１において処理制御部２０２と同様に処理情報ＤＢ３を参照して処理回数３０１および処理情報３０２を解釈する。従来演算部は、時刻ｔ１から時刻ｔ３において再構成を行う。そして従来演算部は、再構成が完了した時刻ｔ３にＰ１の演算を開始する。時刻ｔ３以降、従来演算部は従来処理制御部から演算データを受信して演算を行う。そして従来演算部は、演算により得られた結果データを従来処理制御部に出力する。
【００７６】
従来演算部は、再構成回路２０３の外部にある処理制御部から演算データを受信するので、演算部２０６が演算ＤＢ４から演算データを読み込む時間よりも長い時間をその読み込みに要する。従来演算部の結果データの出力についても同様である。そのため演算部２０６と従来演算部は同じ処理を行っているが、入出力に要する時間が異なるので所要時間が異なる。具体的には従来演算部が演算処理Ｐ１の演算データの出力を終了する時刻ｔ６Ａは、処理制御部２０２が結果ＤＢ５から全てのデータを読み出し終える時刻ｔ６よりも遅い。
【００７７】
従来処理制御部は、時刻ｔ６Ａから演算処理Ｐ２を開始する。この処理に要する時間は、処理制御部２０２が演算処理Ｐ２に要する時間と同一である。時刻ｔ８Ａにおいて、従来処理制御部が演算処理Ｐ２を完了したので、従来演算部は次の演算処理Ｐ３のために再構成を開始する。なおこの時刻ｔ８Ａは、演算部２０６が演算処理Ｐ３を開始する時刻ｔ８よりも遅い。時刻ｔ１０Ａにおいて、従来演算部の再構成が完了し、従来演算部は演算処理Ｐ３を開始する。従来演算部は、演算処理Ｐ１と同様に演算データを従来処理制御部から取得しつつ演算を行い、その結果データを従来処理制御部に出力する。そのため従来演算部が演算処理Ｐ３に要する時間は、演算部２０６が演算処理Ｐ３に要する時間よりも長い。
【００７８】
このように演算部２０６は、従来演算部に比していわば入出力に使用できる帯域が広い状態と等価なので、同一の処理を行う場合でも短時間で完了する。また演算部２０６は直前の演算部２０６の処理が完了するとすぐに次の処理のために再構成を開始するので、直前の演算が完了してから演算部２０６が動作を開始するまでに時間が短い。
【００７９】
上述した第１の実施の形態によれば、次の作用効果が得られる。
（１）自律走行制御装置２は、再構成されて演算を実行する演算部２０６、および演算部２０６が演算対象とする演算データを格納する演算ＤＢ４が構成される部分再構成可能な再構成回路２０３と、演算部２０６を再構成させるための回路データ、および演算データを再構成回路２０３の演算ＤＢ４に送信する処理制御部２０２とを備える。処理制御部２０２は、たとえば演算処理Ｐ１にかかる演算データが得られると、演算部２０６の再構成が完了しているか否かにかかわらず、演算ＤＢ４への演算データの送信を開始する。演算部２０６は、演算ＤＢ４に格納される演算データを用いて演算を行う。
【００８０】
演算ＤＢ４は演算部２０６と同一の再構成回路２０３に構成されているので、演算ＤＢ４から演算部２０６への演算データの転送は、処理制御部２０２から演算部２０６への直接のデータ転送よりも短時間で完了する。処理制御部２０２は演算部２０６の再構成の完了に先駆けて演算ＤＢ４への演算データの送信を開始するので、演算部２０６は演算ＤＢ４から演算データを読み込むことにより演算データの読み込みに要する時間を短縮できる。すなわち、自律走行制御装置２は上記構成を有するので処理制御部２０２と演算部２０６が交互に処理を行うような非連続にデータを処理する場合に処理時間を短縮することができる。また図１１に示す従来例との比較からわかるように、自律走行制御装置２は再構成回路２０３の利用効率を向上させている。
【００８１】
（２）演算部２０６が次に演算対象とするデータが処理制御部２０２のたとえば演算処理Ｐ２により生成される場合は、処理制御部２０２は処理制御部２０２における演算処理Ｐ２が完了すると、演算部２０６が次に演算対象とするデータが得られると判断する。
【００８２】
（３）処理制御部２０２は、回路データおよび演算データの両方を再構成回路２０３に送信可能な場合は、図８においてＳ６０５よりもＳ６０３が先に実行されるので、回路データを優先して再構成回路２０３に送信する。図１０のｔ８に示すように演算データの全てを演算ＤＢ４に格納しなくても演算部２０６の演算を開始できる。しかし回路データの全てを再構成回路２０３に送信完了した後でなければ、演算部２０６の演算を開始できない。そのため演算データよりも回路データを優先して再構成回路２０３に送信し、演算部２０６の演算を早期に開始させることができる。
【００８３】
（４）回路データを再構成回路２０３に送信可能な場合とは、演算部２０６における演算が完了している場合である。演算対象データを再構成回路２０３に送信可能な場合とは、演算ＤＢ４から演算データがすべて読みだされ、かつ次回演算対象データが得られる場合である。
【００８４】
（５）再構成回路２０３には、演算部２０６の演算結果を格納する結果ＤＢ５が構成される。処理制御部２０２は、結果ＤＢ５に演算部２０６の演算結果が格納されると、演算部２０６の再構成のための回路データを送信する。結果ＤＢ５は演算部２０６と同一の再構成回路２０３に構成されているので、演算部２０６から結果ＤＢ５へのデータ転送は、結果ＤＢ５から処理制御部２０２へのデータ転送よりも短時間で完了する。そのため、演算部２０６から処理制御部２０２へ結果データを転送する場合に比べて、早期に演算部２０６の再構成を開始することができる。
【００８５】
（変形例１）
処理制御部２０２は、図８のステップＳ８０３において回路データの転送を開始すると演算データの入手可能性を判断し、入手できる場合はすぐに演算データの転送を開始した。すなわち上述した実施の形態では、回路データの転送を開始した直後に演算データの転送が開始される場合があった。しかし、演算データの転送は回路データの転送開始からあらかじめ定めた時間が経過したことを条件として演算データの転送を開始してもよい。
【００８６】
（変形例２）
処理制御部２０２は、回路データの送信と演算データの送信とを略同時に開始してもよい。
図１２は、上述した実施の形態における図８に代わって本変形例における処理制御部２０２の動作を表すフローチャートである。ただし図１２では主に図８との相違点を記載しており、省略している部分は図８の動作と同様である。また図８と同一の処理を行うステップには、同一のステップ番号を付している。
【００８７】
ステップＳ６０２において肯定判断をすると、処理制御部２０２はステップＳ６０３ＡとステップＳ６０４Ａの処理を並列して開始する。ステップＳ６０３Ａにおいて、処理制御部２０２は回路データの転送を開始する。ステップＳ６０４Ａにおいて、処理制御部２０２は肯定判定をするとステップＳ６０５Ａの処理を行う。処理制御部２０２は、ステップＳ６０３ＡおよびステップＳ６０５Ａの両方の処理が完了すると、ステップＳ６０６の処理を開始する。
この変形例２によれば、回路データの送信と演算データの送信とを略同時に開始し、演算データの演算ＤＢ４への転送を少しでも早く完了させることができる。
【００８８】
（変形例３）
処理制御部２０２は、回路データと演算データの両方を送信可能な場合に、後続する処理に要する時間に基づき回路データおよび演算対象データのどちらの送信を優先するかを決定してもよい。
図１３は、上述した実施の形態における図８に代わって本変形例における処理制御部２０２の動作を表すフローチャートである。ただし図１３では主に図８との相違点を記載しており、省略している部分は図８の動作と同様である。また図８と同一の処理を行うステップには、同一のステップ番号を付している。
【００８９】
ステップＳ６０２において肯定判断をすると、処理制御部２０２はステップＳ６０４Ｂに進む。ステップＳ６０４Ｂにおいて、処理制御部２０２は、演算データが入手可能であるか否かを判断し、肯定判断する場合はステップＳ６４１に進み、否定判断する場合はステップＳ６０３Ｃに進む。ステップＳ６４１において、処理制御部２０２は、回路データの再構成管理部２０４への転送開始から演算部２０６の再構成完了までの時間が、演算データの演算ＤＢ４への転送に要する時間よりも短いか否かを判断する。前者の時間が後者の時間よりも短いと判断する場合はステップＳ６０５Ｂに進み、逆の判断をする場合はステップＳ６０３Ｄに進む。ステップＳ６０５Ｂでは演算データの転送を開始し、続くステップＳ６４３では所定の時間待機する。ステップＳ６４３における待機時間はたとえば、回路データの再構成管理部２０４への転送開始から演算部２０６の再構成完了までの時間と、演算データの演算ＤＢ４への転送に要する時間との差である。続くステップＳ６０３Ｂでは回路データの転送を開始し、ステップＳ６０６に進む。
【００９０】
ステップＳ６０４Ｂにおいて否定判断されると実行されるステップＳ６０３Ｃでは、処理制御部２０２は回路データの転送を開始してステップＳ６０４Ａに進む。ステップＳ６４１において否定判断されると実行されるステップＳ６０３Ｄでは、回路データの転送を開始してステップＳ６４２に進む。ステップＳ６４２では、所定の時間待機してステップＳ６０４Ａに進む。ステップＳ６４３における待機時間はたとえば、回路データの再構成管理部２０４への転送開始から演算部２０６の再構成完了までの時間と、演算データの演算ＤＢ４への転送に要する時間との差である。すなわちこの場合は、演算部２０６の再構成完了と演算データの転送の完了が略同時となる。
【００９１】
ステップＳ６０４Ａでは、処理制御部２０２は演算データが入手可能であるか否かを改めて判断し、否定判断する場合はステップＳ６３１Ａにおいて待機したのちに再度ステップＳ６０４Ａを実行する。ステップＳ６０４Ａにおいて肯定判断する場合はステップＳ６０５Ｃに進む。ステップＳ６０５Ｃでは演算データの転送を開始し、ステップＳ６０６に進む。ステップＳ６０６以降の処理は第１の実施の形態と同様なので説明を省略する。
【００９２】
なお演算部２０６の再構成が回路データ等の転送に比して短時間で完了する場合や、図１０のタイミングチャートに示したように回路データの転送と演算部２０６の再構成を同時に実行できる場合は、上述したフローチャートを以下のように変形してもよい。すなわち、ステップＳ６４１およびステップＳ６４２において、回路データの再構成管理部２０４への転送開始から演算部２０６の再構成完了までの時間の代わりに、回路データの再構成管理部２０４への転送に要する時間を評価してもよい。またステップＳ６４３において、演算データの転送の完了が演算部２０６の再構成完了よりも早く完了するように待機時間を決定してもよい。またステップＳ６４３において、先に送信を開始したデータの転送が完了するタイミングで後のデータの送信が開始されるように待機時間を決定してもよい。
【００９３】
この変形例３によれば、第１の実施の形態における作用効果に加えて次の作用効果が得られる。
（１）処理制御部２０２は、回路データおよび演算対象データの両方を再構成回路２０３に送信可能な場合は、回路データの送信に要する時間、および演算対象データの送信に要する時間に基づき、回路データおよび演算対象データのどちらの送信を優先するかを決定する。そのため長い転送時間を要するデータを先に送信し、演算部２０６の再構成完了後の演算開始までの時間を短縮することができる。
【００９４】
（２）処理制御部２０２は、回路データの送信に要する時間と演算対象データの送信に要する時間とに基づき、回路データおよび演算対象データのいずれを先に送信する先送信データとし、他方を後送信データとするかを決定し、回路データの送信に要する時間と演算対象データの送信に要する時間との差に基づき後送信待機時間を決定し、先送信データを送信した後に、後送信待機時間だけ待機した後に後送信データを送信する。そのため回路データおよび演算データを効率よく送信することができる。
【００９５】
（３）処理制御部２０２は、演算部２０６の再構成の完了と、演算データの演算ＤＢ４への転送の完了が同時になるように後送信待機時間を決定する。そのため演算部２０６の再構成完了後の演算開始までの時間を短くすることができる。
【００９６】
（変形例４）
処理制御部２０２は、回路データと演算データの両方を送信可能な場合に、後続する処理に要する時間に基づき演算データを優先して送信してもよい。
図１４は、上述した実施の形態における図８に代わって本変形例における処理制御部２０２の動作を表すフローチャートである。また図８と同一の処理を行うステップには、同一のステップ番号を付している。
【００９７】
ステップＳ６０１およびステップＳ６０２の処理は図８と同様なので説明を省略する。ステップＳ６０２において肯定判断すると、処理制御部２０２はステップＳ６０８ＡおよびステップＳ６５１を並行して実行する。なおステップＳ６０２において否定判断された場合の処理は第１の実施の形態と同様なので説明を省略する。
【００９８】
ステップＳ６０８Ａでは、処理制御部２０２は結果ＤＢ５に全ての結果データが格納されたか否か、すなわち演算部２０６の演算が完了したか否かを判断する。演算部２０６の演算が完了したと判断する場合はステップＳ６０３Ｅに進み、演算部２０６の演算が完了していないと判断する場合はステップＳ６０８Ａを再度実行する。ただしステップＳ６０８Ａを実行する前に所定の時間待機してもよい。なお処理ＩＤが「１」の場合はステップＳ６０８Ａでは肯定判断がされる。ステップＳ６０３Ｅでは、処理制御部２０２は回路データの転送を開始する。
【００９９】
ステップＳ６５１では、処理制御部２０２は演算ＤＢ４からの演算データの読み出しが完了したか否かを判断する。演算データの読み出しが完了したか否かの判断は、演算ＤＢ管理情報２１１における総演算データ数４０２のフィールドの値と読出データ数４０５のフィールドの値が一致するか否かにより可能である。ステップＳ６５１において肯定判断する場合はステップＳ６０４Ｂに進み、ステップＳ６５１において否定判断する場合はステップＳ６５１を再度実行する。ただしステップＳ６５１を実行する前に所定の時間待機してもよい。処理ＩＤが「１」の場合はステップＳ６５１では肯定判断がされる。ステップＳ６０４Ｂでは、処理ＩＤが示す演算処理が使用する演算データが入手可能であるか否かを判断する。入手可能と判断する場合はステップＳ６０５Ｅに進んで演算データの転送を開始し、演算データがまだ入手できないと判断する場合はステップＳ６０４Ｂを再度実行する。
【０１００】
ステップＳ６０３ＥおよびステップＳ６０５Ｅの両方が実行されると、処理制御部２０２はステップＳ６０６を実行する。処理制御部２０２は、ステップＳ６０６およびステップＳ６０７を実行するとステップＳ６０９を実行する。ステップＳ６０９の処理および、ステップＳ６０９において否定判断された場合に実行されるステップＳ６３４の処理は第１の実施の形態と同様なので説明を省略する。
【０１０１】
（変形例５）
演算部２０６において連続して処理が行われる場合は、結果ＤＢ５に格納された結果データを処理制御部２０２に転送することなく、次に構成された演算部２０６への入力としてもよい。その場合は、演算ＤＢ４と結果ＤＢ５とが一時的に役割を入れ替えることで対応が可能である。たとえば演算処理Ｑ１と演算処理Ｑ２を演算部２０６において続けて処理する場合を例に説明する。演算部２０６は、演算処理Ｑ１の演算結果を結果ＤＢ５に格納する。演算処理Ｑ１について全ての演算結果を結果ＤＢ５に格納すると、演算部２０６は演算処理Ｑ２を実行するために再構成を開始する。この再構成が完了すると、演算部２０６は結果ＤＢ５から演算処理Ｑ１の結果データ、すなわち演算処理Ｑ２の演算データを読み取り処理を開始する。そして演算部２０６は、演算処理Ｑ２の演算結果を演算ＤＢ４に出力する。本変形例によれば、演算部２０６において連続して処理が行われる場合に再構成回路２０３においてデータをキャッシュするので処理制御部２０２による読み書きを一部省略し、処理を高速化できる。
【０１０２】
−第２の実施の形態−
図１５〜図１７を参照して、本発明にかかる電子制御装置である自律走行制御装置の第２の実施の形態を説明する。以下の説明では、第１の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第１の実施の形態と同じである。本実施の形態では、主に、処理制御部が、処理制御部２０２における演算処理を管理する内部処理管理部と、再構成回路における演算処理を管理する外部処理管理部とを備える点で、第１の実施の形態と異なる。
【０１０３】
＜自律走行制御装置の機能構成＞
図１５は、第２の実施の形態における自律走行制御装置２の機能構成図である。第１の実施の形態との違いは、処理制御部２０２が内部処理管理部２３０と外部処理管理部２４０とをさらに備える点である。内部処理管理部２３０および外部処理管理部２４０は、ＣＰＵ２５１がＲＯＭ２５２に格納されたプログラムを実行することにより実現される。内部処理管理部２３０および外部処理管理部２４０は、処理ＩＤの情報を共有しており、いずれか一方が処理ＩＤの値を変更すると他方でも処理ＩＤの値が変更される。
【０１０４】
＜内部処理管理部のフローチャート＞
図１６は、内部処理管理部２３０の動作を示すフローチャートである。内部処理管理部２３０は、所定の処理周期Ｔごとに以下のフローチャートで示される動作を実行する。また図８と同一の処理を行うステップには、同一のステップ番号を付す。以下では主に図８と異なる点を説明する。以下に説明するフローチャートの書くステップの実施主体はＣＰＵ２５１である。図１６に示すフローチャートを開始する直前に、処理制御部２０２により処理ＩＤには「１」が代入されている。
【０１０５】
ステップＳ７０２では、内部処理管理部２３０は処理情報ＤＢ３を参照し、処理ＩＤが示す処理情報における処理は、処理制御部２０２において実行されるか否かを判断する。この判断は、処理ＩＤが示す処理情報において、回路が「無」に設定されていれば肯定判断され、それ以外に設定されていれば否定判断される。内部処理管理部２３０は、肯定判断する場合はステップＳ６２１に進み、否定判断する場合はステップＳ７０２を再度実行する。なおステップＳ７０２において否定判断された場合は、外部処理管理部２４０により処理ＩＤが更新されることを待つこととなる。
【０１０６】
ステップＳ６２１以下の処理は第１の実施の形態と同様である。ステップＳ６０９において処理ＩＤが規定値、すなわち処理情報ＤＢ３の処理回数のフィールドの値以上であると判断すると図１６に示す動作を終了する。
【０１０７】
＜外部処理管理部のフローチャート＞
図１７は、外部処理管理部２４０の動作を示すフローチャートである。外部処理管理部２４０は、所定の処理周期Ｔごとに以下のフローチャートで示される動作を実行する。また図８と同一の処理を行うステップには、同一のステップ番号を付す。以下では主に図８と異なる点を説明する。以下に説明するフローチャートの書くステップの実施主体はＣＰＵ２５１である。図１７に示すフローチャートを開始する直前に、処理制御部２０２により処理ＩＤには「１」が代入されている。
【０１０８】
ステップＳ７５２では、外部処理管理部２４０は処理情報ＤＢ３を参照し、処理ＩＤの値以降の処理で最初に演算部２０６で実行する演算を特定する。たとえば処理ＩＤが「２」であり処理情報ＤＢ３が図４に示す例の場合は、「Ｐ３」が特定される。処理情報２は「回路：無」と記録されているので演算Ｐ２は演算部２０６では実行されず、その次の処理情報３の演算Ｐ３は「回路：Ｂ」と記録されており演算部２０６で実行されるからである。ステップＳ７５２の処理が完了すると、外部処理管理部２４０はステップＳ６０３Ｆの処理とステップＳ６０４Ｆの処理を並列に実行する。
【０１０９】
ステップＳ６０３Ｆでは、外部処理管理部２４０はステップＳ７５２において特定した演算に対応する回路データの転送を開始する。ステップＳ６０４Ｆでは、外部処理管理部２４０はステップＳ７５２において特定した演算において使用される演算データが入手可能であるか否かを判断する。入手可能であると判断する場合はステップＳ６０５Ｆに進み、まだ入手できないと判断する場合は再度ステップＳ６０４Ｆを実行する。なおステップＳ６０４Ｆにおいて否定判断された場合は、内部処理管理部２３０の演算が完了することを待つこととなる。ステップＳ６０５Ｆでは、外部処理管理部２４０はステップＳ７５２において特定した演算において使用される演算データの演算ＤＢ４への転送を開始する。
【０１１０】
外部処理管理部２４０は、ステップＳ６０３ＦおよびステップＳ６０５Ｆの両方の実行が完了すると、ステップＳ６０６を実行する。ステップＳ６０６からステップＳ６０９までの処理は第１の実施の形態と同様なので説明を省略する。ステップＳ６０９において否定判断されると、処理ＩＤをインクリメント、すなわち「１」増加させてステップＳ７５２に戻る。
【０１１１】
上述した第２の実施の形態によれば、次の作用効果が得られる。
（１）処理制御部２０２は、内部処理管理部２３０と外部処理管理部２４０とを備える。内部処理管理部２３０および外部処理管理部２４０は並列に処理を実行する。外部処理管理部２４０は現在の処理ＩＤ以降で最初に演算部２０６で実行される演算を特定する。そして外部処理管理部２４０は、回路データの転送を開始するとともに、演算部２０６において次に演算対象とする演算データが入手可能であるかを判断して入手可能な場合には演算データの転送を開始する。
【０１１２】
そのため演算部２０６における処理の後に、処理制御部２０２における処理が２回以上している場合であっても、演算部２０６における処理が完了すると演算部２０６の再構成のための回路データの送信を開始することができる。
【０１１３】
自律走行制御装置２が実行するプログラムはＲＯＭ２５２に格納されるとしたが、プログラムはフラッシュメモリ２５４に格納されていてもよい。また、自律走行制御装置２が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースとＥＣＵ１が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、たとえば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。
【０１１４】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【０１１５】
１…車載システム
２…自律走行制御装置
３…処理情報データベース
４…演算データベース
５…結果データベース
６…回路データベース
２１…再構成指示
２２…再構成完了通知
２３…演算データ
２４…結果データ
２０２…処理制御部
２０３…再構成回路
２０４…再構成管理部
２０５…データベース管理部
２０６…演算部
２１１…演算データベース管理情報
２１２…結果データベース管理情報
２１３…状態管理情報
２１２…管理情報
２１３…状態管理情報
２３０…内部処理管理部
２４０…外部処理管理部
【図１】
2018186332.tif 000003
【図２】
2018186332.tif 000004
【図３】
2018186332.tif 000005
【図４】
2018186332.tif 000006
【図５】
2018186332.tif 000007
【図６】
2018186332.tif 000008
【図７】
2018186332.tif 000009
【図８】
2018186332.tif 000010
【図９】
2018186332.tif 000011
【図１０】
2018186332.tif 000012
【図１１】
2018186332.tif 000013
【図１２】
2018186332.tif 000014
【図１３】
2018186332.tif 000015
【図１４】
2018186332.tif 000016
【図１５】
2018186332.tif 000017
【図１６】
2018186332.tif 000018
【図１７】
2018186332.tif 000019