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