(57)【要約】【課題】信頼性を向上させることができる。【解決手段】電子制御装置は、論理回路情報が格納される複数のフレームから構成される書き換え可能な構成メモリと、フレームの論理回路情報を書き換える再構成制御部と、フレームに格納された論理回路情報に基づき論理回路を形成するロジック部と、構成メモリのフレームに格納された論理回路情報を読み込み、格納された論理回路情報のエラーの検出であるエラー検出を行う構成メモリ診断部とを備え、構成メモリ診断部は、再構成制御部によりフレームが書き換えられると、書き換えられていないフレームに優先して書き換えられたフレームのエラー検出を行う。【選択図】図３
2019144907.tif 000002
【特許請求の範囲】
【請求項１】
論理回路情報が格納される複数のフレームから構成される書き換え可能な構成メモリと、
前記フレームの論理回路情報を書き換える再構成制御部と、
前記フレームに格納された論理回路情報に基づき論理回路を形成するロジック部と、
前記構成メモリのフレームに格納された論理回路情報を読み込み、格納された論理回路情報のエラーの検出であるエラー検出を行う構成メモリ診断部とを備え、
前記構成メモリ診断部は、前記再構成制御部により前記フレームが書き換えられると、書き換えられていない前記フレームに優先して書き換えられた前記フレームの前記エラー検出を行う電子制御装置。
【請求項２】
請求項１に記載の電子制御装置であって、
前記構成メモリ診断部は、前記再構成制御部による前記フレームの書き換えが完了すると同時に、前記書き換えられた前記フレームの前記エラー検出を行う電子制御装置。
【請求項３】
請求項１に記載の電子制御装置であって、
前記構成メモリ診断部は、
前記フレームに書き込まれた論理回路情報を用いて誤り検出符号を算出する符号算出部と、
前記符号算出部の算出する誤り検出符号が予め算出された照合用誤り検出符号と一致するか否かを判断する比較部とを備え、
前記再構成制御部が前記構成メモリに論理回路情報を書き込む際に、前記再構成制御部が書き込む論理回路情報を用いて前記照合用誤り検出符号を算出する照合用符号計算部をさらに備える電子制御装置。
【請求項４】
請求項１に記載の電子制御装置であって、
前記構成メモリ診断部は、前記再構成制御部が書き換えを行っている間は、前記再構成制御部が書き換えを行っていないフレームのエラー検出を行う電子制御装置。
【請求項５】
請求項１に記載の電子制御装置であって、
前記構成メモリ診断部は、前記再構成制御部が前記フレームの書き換えを行うまでは前記構成メモリの番地順に前記フレームの前記エラー検出を行う連続検出を行い、前記再構成制御部が前記フレームの書き換えを行うと前記連続検出を中断して前記再構成制御部が書き換えたフレームの前記エラー検出を行い、前記再構成制御部が書き換えたフレームの前記エラー検出が完了すると、前記中断したフレームから前記連続検出を再開する電子制御装置。
【請求項６】
複数のフレームから構成され書き換えが可能な構成メモリのエラー検出方法であって、
前記構成メモリを構成する前記フレームが書き換えられると、書き換えられていない前記フレームに優先して書き換えられた前記フレームの前記エラー検出を行う構成メモリのエラー検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置および構成メモリのエラー検出方法に関する。
【背景技術】
【０００２】
自動運転の実用化を目指した技術開発が進められている。自動運転は人間に代わり認知、判断、操作を行う必要があり、高度な情報処理や走行制御が求められる。また、自動運転に必要となる処理性能や機能はＡＩを含めて加速度的に増大しており、その要求に柔軟に対応するため、従来のＣＰＵや、ＧＰＵ、専用ハードウェアチップに加え、論理回路を自由に再構成可能なＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのプログラマブルデバイスの活用が注目されている。特に、ＦＰＧＡの動的再構成と呼ばれる機能では、デバイスを動作させたまま、論理回路の一部を変更することができる。動的再構成では、単純な機能アップデートの用途だけでなく、時分割で論理回路を差し替えることで、本来は複数の論理回路や、複数のハードウェアとして備える処理を１つの回路や、１つのＦＰＧＡ上に実現できるメリットがある。デバイスサイズやデバイス数を抑制できるため、省電力・低コストな電子制御装置の実現が期待されている。一方で、車載システムは機能安全をベースにした厳しい信頼性が要求され、ＦＰＧＡおよび動的再構成の動作においても異常診断技術が重要となっている。
特許文献１には、回路設定情報を集積回路内の複数の回路設定部に転送することで、前記回路設定部に基づく、論理回路を構築するコンフィグレーション装置において、前記回路設定情報を格納した回路設定情報格納メモリと、前記複数の回路設定部を複数に分割して、形成された複数の回路設定ブロックと、初期化時、入力された回路設定情報を、ビットカウンタのカウントによって前記複数の回路設定ブロックから１つの回路設定ブロックを順次選択し、選択された回路設定ブロックへ前記回路設定情報を転送し、前記回路設定ブロックを特定する識別情報が入力された時、前記識別情報に基づいて、複数の回路設定ブロックのうち１つの回路設定ブロックを選択し、入力された回路設定情報を選択された前記回路設定ブロックの回路設定部へ転送する選択部と、前記識別情報が入力された時、前記回路設定ブロック単位の回路設定情報と前記回路設定ブロックを特定する前記識別情報とを対応づけた対応テーブルに基づいて、前記回路設定情報格納メモリに格納されている回路設定情報のうち前記識別情報に対応する回路設定情報を読出し、前記選択部へ出力する制御を行う設定情報制御部と、を有することを特徴とするコンフィグレーション装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−０１３８２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されている発明には、信頼性向上の余地がある。
【課題を解決するための手段】
【０００５】
本発明の第１の態様による電子制御装置は、論理回路情報が格納される複数のフレームから構成される書き換え可能な構成メモリと、前記フレームの論理回路情報を書き換える再構成制御部と、前記フレームに格納された論理回路情報に基づき論理回路を形成するロジック部と、前記構成メモリのフレームに格納された論理回路情報を読み込み、格納された論理回路情報のエラーの検出であるエラー検出を行う構成メモリ診断部とを備え、前記構成メモリ診断部は、前記再構成制御部により前記フレームが書き換えられると、書き換えられていない前記フレームに優先して書き換えられた前記フレームの前記エラー検出を行う。
本発明の第２の態様による構成メモリのエラー検出方法は、複数のフレームから構成され書き換えが可能な構成メモリのエラー検出方法であって、前記構成メモリを構成する前記フレームが書き換えられると、書き換えられていない前記フレームに優先して書き換えられた前記フレームの前記エラー検出を行う。
【発明の効果】
【０００６】
本発明によれば、信頼性を向上させることができる。
【図面の簡単な説明】
【０００７】
【図１】ＦＰＧＡのハードウエア構成を示す図
【図２】構成メモリ３のフレームを示す概念図
【図３】ＦＰＧＡ１の機能構成を示す図
【図４】符号格納部１７の一例を示す図
【図５】診断領域情報格納部１３の一例を示す図
【図６】再構成領域４および構成メモリ診断部１１の示すシーケンス図
【図７】第１の実施の形態における構成メモリ診断部１１の動作例を示す図
【図８】構成メモリ診断部１１の動作を表すフローチャート
【図９】図８におけるＳ６０２の詳細を示す図
【図１０】図８におけるＳ６０７の詳細を示す図
【図１１】第２の実施の形態におけるＦＰＧＡ１Ａの機能構成を示す図
【図１２】第２の実施の形態における診断領域情報格納部１３Ａの一例を示す図
【図１３】第２の実施の形態における構成メモリ３の診断処理シーケンスを示す図
【図１４】比較例の診断処理シーケンスを示す図
【図１５】第２の実施の形態における構成メモリ診断部１１の動作を表すフローチャート
【図１６】第３の実施の形態におけるＦＰＧＡ１Ｂの機能構成を示す図
【図１７】第３の実施の形態における構成メモリ３の診断処理シーケンスを示す図
【図１８】第３の実施の形態における構成メモリ診断部１１の動作例１を示す図
【図１９】第３の実施の形態における構成メモリ診断部１１の動作例２を示す図
【発明を実施するための形態】
【０００８】
―第１の実施の形態―
以下、図１〜図１０を参照して、本発明にかかる電子制御装置であるＦＰＧＡの第１の実施の形態を説明する。
【０００９】
（ハードウエア構成）
図１は、ＦＰＧＡ１およびＦＰＧＡ１に接続される機器のハードウエア構成を示す図である。ＦＰＧＡ１は、制御装置９６、論理回路情報格納部１０、および初期情報格納部９５と接続される。
【００１０】
ＦＰＧＡ１は、構成メモリ３と、ロジック部９１と、インタフェース６と、ＡＳＩＣ９３とを備える。構成メモリ３は揮発性メモリであり、部分的な書き換えに対応する。ロジック部９１は様々な回路素子であり、構成メモリ３に書き込まれた論理回路情報により様々な機能を有する論理回路を構成する。構成メモリ３には、後述するようにＦＰＧＡ１が起動するタイミングで初期の論理回路情報が書き込まれ、その後は一部の領域の論理回路情報が書き換えられる。ＦＰＧＡ１では、構成メモリ３のビット情報が論理回路の構成情報、たとえば配線接続のスイッチＯＮ／ＯＦＦの情報として使用される。なお論理回路が処理中に構成メモリ３の内容が読み出されることによる処理動作への影響はない。
【００１１】
本実施の形態では、構成メモリ３の領域であって直前に書き換えられた領域を再構成領域４と呼び、構成メモリ３のそれ以外の領域を非再構成領域５と呼ぶ。すなわち再構成領域４と非再構成領域５の区別は便宜的なものであり、それぞれの領域に物理的な特徴はない。なおＦＰＧＡ１が起動した直後は全領域に対して書き込みが行われるので、全領域が再構成領域４となる。また本実施の形態では、構成メモリ３のアドレスは、０以上の整数であらわされ、連番で設定され、その最大値は既知である。ただし以下では「アドレス」は「番地」とも呼ぶ。構成メモリ３のアドレスは所定のデータ長ごと、たとえば１バイトや８バイトごとに付与され、それぞれのデータ長の記憶領域を「フレーム」と呼ぶ。
【００１２】
図２は、構成メモリ３のフレームを示す概念図である。構成メモリ３は複数の固定サイズのデータブロックであるフレームから構成される。本実施の形態では、便宜的に各フレームにＦ１、Ｆ２、・・・という名称を付与する。ＦＰＧＡの種類によって異なるが、構成メモリ３の容量およびデータブロックのサイズは既知なので、フレームの最大数「ｎ」も既知である。また、本図では、Ｆ２〜Ｆ４のフレームに新たな論理回路情報（論理回路番号ＦＢ１）が書き込まれた後を示しており、Ｆ２〜Ｆ４が再構成領域４となり、それ以外の領域が非再構成領域５となる。図１に戻って説明を続ける。
【００１３】
インタフェース６は、構成メモリ３への読み書きを可能とするインタフェースである。本実施の形態におけるインタフェース６は、いわゆる１ポート構成であり、読み出しと書き込みの同時実行はできない。
【００１４】
換言すると構成メモリ３のいずれかの領域に対して書き込みを行っている際には、構成メモリ３のいずれの領域に対する読み出しも不可能である。本実施の形態におけるＡＳＩＣ９３は、ＦＰＧＡの初期コンフィグレーションを実行するハードウエア回路である。ＡＳＩＣ９３はＦＰＧＡ１の電源がオンになると動作を開始し、初期情報格納部９５から初期の論理回路情報を読み出して構成メモリ３に書き込む。
【００１５】
本実施の形態におけるＦＰＧＡ１は、たとえばカメラが撮影して得られた画像を解析するカメラ処理、レーザレンジファインダが取得した距離情報を解析するレーザ処理、およびカメラおよびレーザレンジファインダの出力を統合する統合処理を繰り返し実行する。ここでＦＰＧＡ１では、動的再構成の機能を活用し、カメラ処理を実行する機能ブロック、レーザ処理を実行する機能ブロック、および統合処理を実行する機能ブロックを順番に、ロジック部９１への構成を繰り返しながら処理を行う。
【００１６】
換言するとＦＰＧＡ１の構成メモリ３は、ある書き込みが行われることでロジック部９１がカメラ処理を行う回路を構成し、カメラ処理後に、別なある書き込みがおこなわれることでロジック部９１がレーザ処理を行う回路を構成し、さらにレーザ処理後に別なある書き込みがおこなわれることでロジック部９１が統合処理を行う回路を構成する。このとき書き込みが行われる構成メモリ３の領域が再構成領域４である。
【００１７】
論理回路情報格納部１０および初期情報格納部９５は読み出し専用の記憶領域、いわゆるＲＯＭである。論理回路情報格納部１０および初期情報格納部９５にはあらかじめ情報が格納される。論理回路情報格納部１０には再構成のために構成メモリ３に書き込む論理回路情報が格納される。すなわち先の例で言えば、論理回路情報格納部１０にはカメラ処理、レーザー処理、および統合処理のそれぞれを含む論理回路情報が格納される。この論理回路情報は、互いの論理回路を識別する情報、たとえば論理回路番号と対応付けて格納される。本実施の形態では、論理回路番号はＦＢ０、ＦＢ１、・・・と表現し、このうち初期の論理回路番号をＦＢ０とする。初期情報格納部９５にはＦＰＧＡ１の起動時に読み込まれる情報が格納される。詳しくは後述するが、初期情報格納部９５には一部の格納部に格納される情報も含まれる。
【００１８】
制御装置９６は、中央電子制御装置であるＣＰＵ９６Ａと、読み出し専用の記憶部であるＲＯＭ９６Ｂと、読み書き可能な記憶部であるＲＡＭ９６Ｃとを備える。ＣＰＵ９６ＡはＲＯＭ９６Ｂに格納されるプログラムをＲＡＭ９６Ｃに展開して実行する。
【００１９】
（機能構成）
図３はＦＰＧＡ１の機能構成を示す図である。制御装置９６は制御処理部２を備える。制御処理部２は、制御装置９６のＣＰＵ９６Ａが前述のプログラムを実行することにより実現される。ただし制御処理部２は、ＡＳＩＣやＦＰＧＡにより実現されてもよい。制御処理部２は、ＦＰＧＡ１に再構成を実行させる再構成制御信号２ａの出力、および再構成された論理回路を用いた演算指令の出力を行う。再構成制御信号２ａには、新たにＦＰＧＡ１に構成する論理回路を特定する情報、たとえば論理回路番号が含まれる。
【００２０】
ＦＰＧＡ１は、構成メモリ３の書替えを制御する再構成制御部７と、構成メモリ３に書き込まれた論理回路情報の正常性を診断する構成メモリ診断部１１とを備える。再構成制御部７および構成メモリ診断部１１は、構成メモリ３の非再構成領域５に格納された論理回路情報に基づきロジック部９１により実現される論理回路である。これらはＦＰＧＡ１の起動時に初期情報格納部９５から論理回路情報が読み込まれることで構成される。
【００２１】
再構成制御部７は、論理回路情報選択部８と、構成メモリライト制御部９とを備える。論理回路情報選択部８は、制御処理部２から送信される再構成制御信号２ａに基づき論理回路情報格納部１０から該当する論理回路情報を読み出す。構成メモリライト制御部９は、論理回路情報選択部８が読み出した論理回路情報をインタフェース６を介して構成メモリ３に書き込む。また構成メモリライト制御部９は、構成メモリ３への書き込み開始、および書き込み終了を構成メモリ診断部１１に伝達する。
【００２２】
構成メモリ診断部１１は、診断領域選択部１２と、診断領域情報格納部１３と、構成メモリリード制御部１４と、診断アドレス生成部１５と、エラー検出部１６とを備える。診断アドレス生成部１５は、エラー検出部１６が次に診断する構成メモリ３のアドレスを生成する。構成メモリ診断部１１は、原則として構成メモリ３の番地順にフレームのエラー検出を行う連続検出を行うが、後述するように不連続なメモリ番地のエラー検出を行う場合もある。
【００２３】
構成メモリリード制御部１４は、構成メモリ３の診断アドレス生成部１５が生成したアドレスに格納されている１フレーム分の論理回路情報を読み出す。エラー検出部１６は、符号格納部１７と、符号算出部１８と、比較部１９とを備える。符号格納部１７には、現在、構成メモリ３に格納されている論理回路情報に対応する、フレームごとの正しいＣＲＣ値が格納される。なお以下では、符号格納部１７に格納されるＣＲＣ値を「照合用ＣＲＣ値」と呼び、符号算出部１８が算出するＣＲＣ値と区別する。
【００２４】
診断領域情報格納部１３および符号格納部１７には構成時に情報が格納される。すなわち診断領域情報格納部１３および符号格納部１７に格納される情報は初期情報格納部９５にあらかじめ格納されている。ただし符号格納部１７に格納される情報は後述するように更新される。符号格納部１７に格納されるデータは、ＦＰＧＡ１の起動時を除いて診断領域選択部１２から書き込まれる。
【００２５】
図４は符号格納部１７の一例を示す図である。図４に示す例では、構成メモリ３の全フレームがＦ１〜Ｆｎであり、それぞれのフレームに対応する正しいＣＲＣ値であるＣＲＣ１〜ＣＲＣｎが符号格納部１７に格納されている。図３に戻って説明を続ける。
【００２６】
符号算出部１８は、構成メモリリード制御部１４が構成メモリ３から読み出した構成メモリ３のフレームデータ６ａを対象としてＣＲＣ巡回冗長検査（Cyclic Redundancy Check）値を算出する。前述のとおりインタフェース６は、いわゆる１ポート構成なので読み出しと書き込みの同時実行は不可能である。そのため、再構成制御部７と構成メモリ診断部１１の間で、再構成実施中を示す信号をやりとりし、再構成、すなわち書き込みと診断、すなわち読み出しが同時に実行されないように排他制御を行う。
【００２７】
比較部１９は、符号算出部１８が算出するＣＲＣ値と、構成メモリ３の診断アドレス生成部１５が生成したアドレスに対応する符号格納部１７に格納されるＣＲＣ値とを比較する。比較部１９は、両者が一致しない場合に、エラーがあったことを示す構成メモリエラー信号１６ａを構成メモリ３に出力する。診断領域情報格納部１３は、ＦＰＧＡ１に形成される記憶領域である。診断領域情報格納部１３はＦＰＧＡ１の起動時に作成され、書き換えられない。診断領域情報格納部１３には、論理回路番号ごとに構成メモリ３の全域の各フレームに対応するＣＲＣ値、および初期状態であるＦＢ０と同一であるか否かを示すフラグが格納される。
【００２８】
図５は、診断領域情報格納部１３の一例を示す図である。列方向に並ぶＦＢ０、ＦＢ１、・・は論理回路番号を示し、行方向に並ぶＦ１、Ｆ２、・・は構成メモリ３のフレーム番号を示す。そして回路番号ごとに、フレームに格納される情報が初期状態であるＦＢ０と同一であるか否かを示すフラグ行と、ＣＲＣ値を格納するＣＲＣ行とを有する。ここに示す例では、ＣＲＣ値は「ＣＲＣｍｎ」のフォーマットで記述しており、記号ｍは論理回路の固有番号、記号ｎはフレーム番号を示す。
【００２９】
フラグ行における「１」はそのフレームに格納される情報が初期状態であるＦＢ０と異なることを示し、「０」はそのフレームに格納される情報が初期状態であるＦＢ０と同一であることを示す。たとえば図５に示す例では、論理回路番号ＦＢ１における領域Ｆ１およびＦ５はエリアの値が「０」であり、それらのフレームに格納される情報が初期状態であるＦＢ０と同一なので、ＣＲＣの値はＦＢ０と同じ値になっている。ＦＰＧＡ１の起動時の構成が論理回路番号ＦＢ０であり、ＦＢ０に対応するＣＲＣ値、すなわちＣＲＣ０＿１、ＣＲＣ０＿２、ＣＲＣ０＿３、・・が起動時に符号格納部１７に書き込まれる。
【００３０】
診断領域選択部１２は、再構成制御信号２ａに含まれる論理回路番号をもとに、診断領域情報格納部１３を参照し、その論理回路の再構成によって書き替えられるフレームの番号、すなわち符号１２ａで示す再構成領域４のフレームの番号を特定して診断アドレス生成部１５に出力する。また診断領域選択部１２は、再構成制御信号２ａに含まれる論理回路番号に対応するＣＲＣ値を読み出して符号格納部１７に書き込む。
【００３１】
診断領域情報格納部１３から読み出されたＣＲＣ値は、再構成処理、すなわち構成メモリ３の書き込みが行われている間に、符号格納部１７に上書きすることで、符号格納部１７内の書き替え対象フレームのＣＲＣ値を更新する。また、再構成が正常に完了し、構成メモリ診断部１１が診断を再開する際は、まず再構成領域４のエラー検出を行い次に非再構成領域５の診断を行う。なお再構成領域４は、符号１２ａで示す再構成領域４のフレームの番号で特定される。
【００３２】
（シーケンス図）
図６は、再構成が行われる際の再構成領域４および構成メモリ診断部１１の動作概念を示すシーケンス図である。前述のとおり再構成領域４は便宜的な名称であり、論理回路番号ごとに再構成領域４は変化するので、図６に示す再構成領域４は概念的に示したものである。図６は図示左から右に時間が経過しており、左端においてＦＰＧＡ１の電源がオンにされた状態を示す。再構成領域４に書き込まれている初期の論理回路ＦＢ０では、まず符号１００で示すように演算を行い、このときに構成メモリ診断部１１は符号１０２で示すように構成メモリ３の全面を対象に順番に診断を行う。ここで符号１０１で示す論理回路番号ＦＢ１への再構成処理が再構成領域４で実行されると、構成メモリ診断部１１による構成メモリ３の診断が中断され、符号格納部１７の格納されるＣＲＣ値が論理回路番号ＦＢ１に対応するものに更新される。
【００３３】
再構成領域４の再構成処理１０１が完了すると、再構成領域４に書き込まれた論理回路ＦＢ１は演算１００を実行する。一方で構成メモリ診断部１１は、まず符号１０４で示すように再構成領域４の診断を実行し、その後に符号１０５で示すように非再構成領域５の診断を実行する。ただし図６の下部では再構成領域４を論理回路番号の名称で表し、非再構成領域５を論理回路番号にオーバーラインを付した記号で表している。その後、構成メモリ診断部１１は非再構成領域の診断１０５と再構成領域の診断１０４とを交互に繰り返すことで、構成メモリ全面の診断１０６を継続する。以下、同様に処理が繰り返される。なお符号１０２において領域を意識することなく全面を診断対象としているのは、ＦＰＧＡ１の電源がオンにされた直後は図５に示すＦＢ０が選択されており、全面が再構成領域４となるからである。
【００３４】
（動作例）
図７は、第１の実施の形態における構成メモリ診断部１１の動作例を示す図である。この動作例では、構成メモリのフレーム番号は０〜１００とし、再構成領域は６０〜８０の固定としている。図７は図示上から下に時間が経過している。
【００３５】
構成メモリ診断部１１は、時刻ｔ１から構成メモリ３のエラー検出をフレーム番号０から開始し１，２，３と順番に連続検出を行った。時刻ｔ２になると再構成制御部７が構成メモリ３の再構成を開始したので、構成メモリ診断部１１は連続検出を中断した。この再構成によりフレーム番号６０〜８０が書き換えられた。この書き換えが時刻ｔ３に終了すると、構成メモリ診断部１１は再構成領域であるフレーム番号６０〜８０のエラー検出を優先して行う。そして構成メモリ診断部１１は再構成領域のエラー検出が終了すると、時刻ｔ２に中断した箇所、すなわちフレーム番号５１からエラー検出を再開する。
【００３６】
そして時刻ｔ５にフレーム番号５９までエラー検出が終了すると、フレーム番号６０〜８０は再構成領域として先ほどエラー検出を行ったので、フレーム番号８１からエラー検出を再開し、時刻ｔ６には末尾のフレーム番号１００のエラー検出が完了した。次に構成メモリ診断部１１は、先ほどと同様にフレーム番号０〜５９、６０〜８０、８１〜１００、とエラー検出を繰り返す。なお図７では時刻ｔ１１で終わっているが、これ以後も同様にエラー検出が繰り返される。
【００３７】
（フローチャート）
図８は、構成メモリ診断部１１の動作を表すフローチャートである。以下に説明する各ステップの実行主体は、構成メモリ診断部１１を構成するロジック部９１である。構成メモリ診断部１１はまずＳ６００において変数ｉにゼロを代入する。続くＳ６０１において構成メモリ診断部１１は、再構成領域４、すなわち構成メモリ３のうち直前に書き換えが行われた領域を特定する。続くＳ６０２では構成メモリ診断部１１は、Ｓ６０１において特定した再構成領域のエラー検出を行う。Ｓ６０２の詳細は後述する。Ｓ６０２の次に実行されるＳ６０３では構成メモリ診断部１１は、再構成が開始されたか否か、すなわち構成メモリライト制御部９から構成メモリ３への書き込み開始を受信したか否かを判断する。構成メモリ診断部１１は、再構成が開始されたと判断する場合はＳ６０９に進み、再構成が開始されていないと判断する場合はＳ６０４に進む。
【００３８】
Ｓ６０４では構成メモリ診断部１１は、非再構成領域５を特定する。続くＳ６０５では構成メモリ診断部１１は、変数ｓｔａｒｔに変数ｉの値以上であって、非再構成領域のアドレスを代入する。続くＳ６０６では構成メモリ診断部１１は、変数ｉにＳ６０５において値を更新した変数ｓｔａｒｔの値を代入する。続くＳ６０７では構成メモリ診断部１１は、変数ｉを更新しつつ非再構成領域５のメモリ診断を行う。本ステップの詳細は後述する。続くＳ６０８では構成メモリ診断部１１は、再構成が開始されたか否か、すなわち構成メモリライト制御部９から構成メモリ３への書き込み開始を受信したか否かを判断する。構成メモリ診断部１１は、再構成が開始されたと判断する場合はＳ６０９に進み、再構成が開始されていないと判断する場合はＳ６０１に戻る。
【００３９】
Ｓ６０３またはＳ６０８において肯定判定されると実行されるＳ６０９では構成メモリ診断部１１は、再構成制御信号２ａに含まれる論理回路番号に対応するＣＲＣ値を読み出して符号格納部１７に書き込む。Ｓ６０９に続いて実行されるＳ６１０では構成メモリ診断部１１は、再構成が完了したか否か、換言すると構成メモリライト制御部９から構成メモリ３への書き込み終了を受信したか否かを判断する。構成メモリ診断部１１は、再構成が完了したと判断する場合はＳ６０１に戻り、再構成が開始されていないと判断する場合はＳ６１０に留まる。
【００４０】
（Ｓ６０２の詳細）
図９は、図８におけるＳ６０２の詳細を示す図である。Ｓ６２１では構成メモリ診断部１１は、変数ｊに再構成領域の先頭アドレスを代入する。なお変数ｊは図９に示す処理のみにおいて参照され、図８や図１０に記載の変数ｉとは連動しない。続くＳ６２２では構成メモリ診断部１１は、Ｓ６２３〜Ｓ６２６の処理対象をアドレスｊの領域に設定する。続くＳ６２３では構成メモリ診断部１１は、符号算出部１８に構成メモリ３の処理対象の領域からデータを読み込ませる。Ｓ６２４では構成メモリ診断部１１は、符号算出部１８にＳ６２３において読み込んだデータからＣＲＣ値を算出させる。続くＳ６２５では構成メモリ診断部１１は、符号格納部１７から処理対象の領域に対応する照合用ＣＲＣ値を読み込む。
【００４１】
続くＳ６２６では構成メモリ診断部１１は、比較部１９にＳ６２４において算出したＣＲＣ値とＳ６２５において読み込んだＣＲＣ値とを比較させ、構成メモリ３の診断を行う。両者が一致しない場合には、比較部１９は構成メモリエラー信号１６ａを出力する。続くＳ６２７では構成メモリ診断部１１は、変数ｊの値が再構成領域の末尾のアドレスであるか否かを判断し、末尾であると判断する場合は図９の処理を終了し、末尾ではないと判断する場合はＳ６２８に進む。Ｓ６２８では構成メモリ診断部１１は、再構成が開始されたか否か、すなわち構成メモリライト制御部９から構成メモリ３への書き込み開始を受信したか否かを判断する。構成メモリ診断部１１は、再構成が開始されたと判断する場合は図９の処理を終了し、再構成が開始されていないと判断する場合はＳ６２９に進む。Ｓ６２９では構成メモリ診断部１１は、ｊをインクリメント、すなわちｊを１だけ増加させてＳ６２２に戻る。以上がＳ６０２の詳細である。
【００４２】
（Ｓ６０７の詳細）
図１０は、図８におけるＳ６０７の詳細を示す図である。Ｓ６４２では構成メモリ診断部１１は、Ｓ６４３〜Ｓ６４６の処理対象を構成メモリ３における変数ｉのアドレスの領域に設定する。この変数ｉは、図８における変数ｉと同一であり、図１０において値が更新されると図８においてもその更新された値を参照できる。続くＳ６４３では構成メモリ診断部１１は、符号算出部１８に構成メモリ３の処理対象の領域からデータを読み込ませる。Ｓ６４４では構成メモリ診断部１１は、符号算出部１８にＳ６４３において読み込んだデータからＣＲＣ値を算出させる。続くＳ６４５では構成メモリ診断部１１は、符号格納部１７から処理対象の領域に対応する照合用ＣＲＣ値を読み込む。
【００４３】
続くＳ６４６では構成メモリ診断部１１は、比較部１９にＳ６４４において算出したＣＲＣ値とＳ６４５において読み込んだＣＲＣ値とを比較させ、構成メモリ３の診断を行う。両者が一致しない場合には、比較部１９は構成メモリエラー信号１６ａを出力する。続くＳ６４７では構成メモリ診断部１１は、変数ｉの値が構成メモリ３の末尾のアドレスであるか否かを判断し、末尾であると判断する場合はＳ６４８に進んでｉに「−１」を代入していわばリセットし、末尾ではないと判断する場合はＳ６４９に進む。なおここで「−１」を代入している理由は、後述するＳ６５１においてインクリメントした際にｉが「０」となるからである。前述のとおり構成メモリ３の先頭番地では「０」であり、Ｓ６４８において変数ｉの値をリセットすることで、先頭番地からの処理実行を可能とする。
【００４４】
Ｓ６４９では構成メモリ診断部１１は、再構成が開始されたか否か、すなわち構成メモリライト制御部９から構成メモリ３への書き込み開始を受信したか否かを判断する。構成メモリ診断部１１は、再構成が開始されたと判断する場合は図１０の処理を終了し、再構成が開始されていないと判断する場合はＳ６５０に進む。なおＳ６４９において肯定判定されると、図８に戻って次のステップＳ６０８においてＳ６４９と同一の処理が実行される。これはフローチャートの作図の都合上、いわゆる返り値を表現することが困難なための記述であり、図１０を図８と統合することでＳ６４９またはＳ６０８を省略可能である。
【００４５】
Ｓ６５０では構成メモリ診断部１１は、ｉ＋１のアドレスが再構成領域に含まれるか否かを判断する。再構成領域に含まれると判断する場合は図１０に示す処理を終了し、再構成領域に含まれないと判断する場合はＳ６５１に進む。Ｓ６５１では構成メモリ診断部１１は、ｊをインクリメント、すなわちｊを１だけ増加させてＳ６４２に戻る。以上がＳ６０７の詳細である。
【００４６】
上述した第１の実施の形態によれば、次の作用効果が得られる。
（１）ＦＰＧＡ１は、論理回路情報が格納される複数のフレームから構成される書き換え可能な構成メモリ３と、フレームの論理回路情報を書き換える再構成制御部７と、フレームに格納された論理回路情報に基づき論理回路を形成するロジック部９１と、構成メモリ３のフレームに格納された論理回路情報を読み込み、格納された論理回路情報のエラーの検出であるエラー検出を行う構成メモリ診断部１１とを備え、構成メモリ診断部１１は、再構成制御部７によりフレームが書き換えられると、書き換えられたフレーム、すなわち再構成領域４のエラー検出を行う。そのため構成メモリ３が書き換えられると、ＦＰＧＡ１は非再構成領域５に優先して再構成領域４のエラー検出を行うので、ＦＰＧＡ１、特に再構成処理の信頼性を向上できる。
【００４７】
また本実施の形態では初期情報格納部９５に診断領域情報格納部１３に格納される情報、すなわち論理回路番号ごと、フレームごとの照合用ＣＲＣ値があらかじめ格納されている。そのため比較部１９が照合に用いるＣＲＣ値は診断領域情報格納部１３から符号格納部１７にコピーすればよいのでわざわざ計算する必要がなく、迅速に構成メモリ３のエラー検出を開始できる。そのため、ＦＰＧＡ１の動作中に構成メモリを診断できない時間を短縮し、ＦＰＧＡ１の信頼性を向上できる。
【００４８】
（２）構成メモリ診断部１１は、再構成制御部７によるフレームの書き換えが完了すると同時に、書き換えられたフレームのエラー検出を行う。ＦＰＧＡ１に備えられるインタフェース６がいわゆる１ポート構成であり、書き込みと読み込みが同時に実行できない場合は、書き込み中はエラー検出が不可能である。そのため構成メモリ診断部１１は、最も早いタイミングである書き込み終了と同時にエラー検出を開始することで、再構成後にエラー検出が行われていない時間を可能な限り短くし、再構成処理の信頼性を向上できる。
【００４９】
（３）構成メモリ診断部１１は、再構成制御部７が書き換えを行うまでは構成メモリ３の番地順にフレームのエラー検出を行う連続検出を行い、再構成制御部７が書き換えを行うと連続検出を中断して再構成制御部７が書き換えたフレームである再構成領域４のエラー検出を行う。そして構成メモリ診断部１１は、再構成領域４のエラー検出が完了すると、中断したフレームから連続検出を再開する。そのため再構成が頻繁に行われた場合であっても、隙間の時間に非再構成領域５のエラー検出を順番に進めることができる。換言すると、非再構成領域５において長時間エラー検出が行われないフレームを減らすことができる。
【００５０】
（変形例１）
上述した第１の実施の形態では、誤り検出符号としてＣＲＣを用いた。しかし誤りの検出が可能な符号であればＣＲＣに限定されない。また誤りの検出だけでなく誤りの訂正も可能な符号も用いることができる。たとえばＣＲＣの代わりに、ｍｄ５、パリティビット、およびチェックサムのいずれかを用いてもよい。
【００５１】
―第２の実施の形態―
図１１〜図１３を参照して、本発明にかかる電子制御装置であるＦＰＧＡの第２の実施の形態を説明する。以下の説明では、第１の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第１の実施の形態と同じである。本実施の形態では、主に、照合用のＣＲＣ値を算出する点で、第１の実施の形態と異なる。
【００５２】
（機能構成）
図１１は、第２の実施の形態におけるＦＰＧＡ１Ａの機能構成を示す図である。ＦＰＧＡ１Ａは、第１の実施の形態におけるＦＰＧＡ１の構成に加え、照合用のＣＲＣ値を計算する照合用符号計算部３１を備える。照合用符号計算部３１は、再構成領域４において再構成処理が行われている際に動作し、論理回路情報格納部１０から読み出されるフレームデータを対象としてＣＲＣ値を計算し、符号格納部１７に上書きする。すなわち本実施の形態では、診断領域情報格納部１３Ａには初期状態以外は各フレームに対応する照合用のＣＲＣ値が格納されていなくてもよい。
【００５３】
図１２は、第２の実施の形態における診断領域情報格納部１３Ａの一例を示す図である。診断領域情報格納部１３Ａの構成は第１の実施の形態において図５に示した診断領域情報格納部１３と同一である。ただし、初期状態である論理回路番号ＦＢ０以外では、フラグ列の値が「１」のＣＲＣ値が格納されていない点が異なる。なお図１２ではフラグ列の値が「０」のフレームのＣＲＣ値が格納されているが、それらのＣＲＣ値は論理回路番号ＦＢ０の値と同一なので、論理回路番号ＦＢ０の値を参照することとして格納しなくてもよい。ただしフラグ列の値は必須である。
【００５４】
（シーケンス図）
図１３は、第２の実施の形態における構成メモリ３の診断処理シーケンスを示す図である。第１の実施の形態において示した図６と図１３の違いは、再構成領域４において再構成処理が行われている際に、符号１２０で示すようにＣＲＣ値の計算および符号格納部１７への格納が行われる点である。この点以外の動作は第１の実施の形態と同様である。
【００５５】
（比較例のシーケンス図）
図１４は、比較例の診断処理シーケンスを示す図である。この比較例では、符号１０１に示す再構成処理が完了してから、符号１０３で示す照合用ＣＲＣ算出処理を開始している。そのため符号１０３で示す時間だけ構成メモリ３の診断の開始が遅れる問題点を有する。
【００５６】
（フローチャート）
図１５は、第２の実施の形態における構成メモリ診断部１１の動作を表すフローチャートである。図１５は第１の実施の形態における図８と共通する動作が多いので、以下では相違点を説明する。図１５では、Ｓ６０９の代わりにＳ６０９Ａを実行する。すなわちＳ６０３またはＳ６０８において肯定判定がなされると、構成メモリ診断部１１はＳ６０９Ａを実行する。Ｓ６０９Ａでは構成メモリ診断部１１は、論理回路情報格納部１０から構成メモリライト制御部９と同様に構成メモリ３に書き込む各フレームの論理回路情報を受信し、各フレームのＣＲＣ値を算出する。そして算出したＣＲＣ値を符号格納部１７の対応する領域に照合用ＣＲＣ値として格納し、Ｓ６１０に進む。
【００５７】
上述した第２の実施の形態によれば、次の作用効果が得られる。
（４）構成メモリ診断部１１は、フレームに書き込まれた論理回路情報を用いて誤り検出符号を算出する符号算出部１８と、符号算出部１８の算出する誤り検出符号が予め算出された照合用誤り検出符号と一致するか否かを判断する比較部１９とを備える。ＦＰＧＡ１Ａは、再構成制御部７が構成メモリ３に論理回路情報を書き込む際に、再構成制御部７が書き込む論理回路情報を用いて誤り符号を算出して照合用誤り検出符号として記録する照合用符号計算部３１を備える。そのため、再構成領域４の照合用ＣＲＣ値をあらかじめ初期情報格納部９５に格納する必要がないので、初期情報格納部９５の作成が容易になる。
【００５８】
（第２の実施の形態の変形例１）
照合用符号計算部３１によるＣＲＣ値の算出は、１日に１回のみ、または電源が投入されるたびに１回のみとしてもよい。この場合は照合用符号計算部３１が算出したＣＲＣ値は診断領域情報格納部１３Ａに格納する。また照合用符号計算部３１の計算の要否を判断するために、１日に１回、または電源投入により初期化されるフラグをフレームごとに用意し、ＣＲＣ値を算出したフレームはフラグを立てることで実現できる。
【００５９】
（第２の実施の形態の変形例２）
論理回路情報格納部１０に格納される論理回路の情報は適宜更新されてもよい。この更新には、たとえば不図示の通信装置が用いられ、無線通信により論理回路情報格納部１０の論理回路情報が更新される。論理回路情報が更新されても、初期情報格納部９５には初期状態である論理回路番号ＦＢ０以外のＣＲＣ値は格納されていないため、初期情報格納部９５は更新する必要がなく、更新処理が簡便である。なお仮に初期情報格納部９５も更新する場合は、機種ごとに異なる可能性があるフレームのサイズを考慮してＣＲＣ値を算出する必要があり、煩雑な処理が必要になるが、本変形例ではそのような煩わしさがないという利点も有する。
【００６０】
―第３の実施の形態―
図１６〜図１９を参照して、本発明にかかる電子制御装置であるＦＰＧＡの第３の実施の形態を説明する。以下の説明では、第１の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第１の実施の形態と同じである。本実施の形態では、主に、２つのインタフェースを備える点で、第１の実施の形態と異なる。
【００６１】
（機能構成）
図１６は、第３の実施の形態におけるＦＰＧＡ１Ｂの機能構成を示す図である。ＦＰＧＡ１Ｂは、第１の実施の形態におけるＦＰＧＡ１の構成にインタフェースが１つ追加されている。正確にはインタフェース６が削除され、書き込み用インタフェース６１および読み込み用インタフェース６２が追加されている。そのため再構成処理と構成メモリ３の診断とを並行して実行できる。ただし書き込みと読み込みを同一のフレームに対しては実行できないので、再構成処理中は非再構成領域５の診断を行う。
【００６２】
（シーケンス図）
図１７は、第３の実施の形態における構成メモリ３の診断処理シーケンスを示す図である。第１の実施の形態において示した図６と図１７の違いは、再構成領域４において再構成処理１０１が実行されている間に、符号１３０に示すように非再構成領域５の診断を行う点である。この点以外の動作は第１の実施の形態と同様である。
【００６３】
（動作例１）
図１８は、第３の実施の形態における構成メモリ診断部１１の動作例１を示す図である。この動作例では、構成メモリのフレーム番号は０〜１００とし、再構成領域のフレーム番号は６０〜８０としている。図１８は図示上から下に時間が経過している。
【００６４】
構成メモリ診断部１１は、時刻ｔ１から構成メモリ３のエラー検出をフレーム番号０から開始し１，２，３と順番にエラー検出を進め、時刻ｔ２までにフレーム番号５０までエラー検出が完了した。時刻ｔ２になると再構成制御部７が構成メモリ３の再構成を開始したが、構成メモリ診断部１１はエラー検出を継続した。再構成されるフレーム番号は６０番以降であり構成メモリ診断部１１の処理対象は５１番だったので、構成メモリ診断部１１はそのままエラー検出をフレーム番号５２，５３まで完了させた。再構成は時刻ｔ３に完了し、フレーム番号６０〜８０が書き換えられた。
【００６５】
構成メモリ診断部１１は時刻ｔ３までにフレーム番号５３までエラー検出が完了しており、時刻ｔ３にはフレーム番号５４のエラー検出を行っていた。構成メモリ診断部１１は、再構成が完了したのでフレーム番号５４のエラー検出を中断し、再構成領域であるフレーム番号６０〜８０のエラー検出を行う。そして構成メモリ診断部１１は再構成領域のエラー検出が終了すると、時刻ｔ３に中断した箇所、すなわちフレーム番号５４からエラー検出を再開する。そしてフレーム番号５９までエラー検出が完了すると、再構成領域を除外してフレーム番号８１からエラー検出を再開する。以下は第１の実施の形態の動作例と同様なので説明を省略する。
【００６６】
（動作例２）
図１９は、第３の実施の形態における構成メモリ診断部１１の動作例２を示す図である。この動作例では、構成メモリのフレーム番号は０〜１００とし、再構成領域のフレーム番号は５０〜８０としている。図１９は図示上から下に時間が経過している。
【００６７】
構成メモリ診断部１１は、時刻ｔ１から構成メモリ３のエラー検出をフレーム番号０から開始し１，２，３と順番にエラー検出を進め、時刻ｔ２までにフレーム番号７０までエラー検出が完了した。時刻ｔ２になると再構成制御部７が構成メモリ３の再構成を開始したが、構成メモリ診断部１１はエラー検出を継続した。再構成されるフレーム番号は６０〜８０であり構成メモリ診断部１１の処理対象は７１番だったので、再構成領域を除いた領域であって直前の処理対象よりも大きい最小のフレーム番号である８１からエラー検出を行う。再構成制御部７が再構成を完了させる時刻ｔ３までに、構成メモリ診断部１１はフレーム番号８１〜８３のエラー検出を完了させた。
【００６８】
構成メモリ診断部１１は、時刻ｔ３から再構成領域であるフレーム番号６０〜８０のエラー検出を行う。なおフレーム番号６０〜７０は時刻ｔ２までにすでにエラー検出が行われているが、時刻ｔ２〜ｔ３の再構成により書き換えられているので、その書き換え後の論理回路情報が正常であるかを確認するために時刻ｔ３からのエラー検出が必要である。時刻ｔ４にフレーム番号８０のエラー検出が完了すると、構成メモリ診断部１１はフレーム番号８４からエラー検出を行う。以下は第１の実施の形態の動作例と同様なので説明を省略する。
【００６９】
上述した第３の実施の形態によれば、次の作用効果が得られる。
（５）構成メモリ診断部１１は、再構成制御部７が書き換えを行っている間は、再構成制御部７が書き換えを行っていないフレームのエラー検出を行う。そのため、いわゆる２ポート構成のＦＰＧＡ１Ｂでは、構成メモリ３の書き換えが行われている最中もエラー検出が中断されないのでＦＰＧＡ１Ｂの信頼性をさらに向上させることができる。
【００７０】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【００７１】
１…ＦＰＧＡ
２…制御処理部
３…構成メモリ
４…再構成領域
５…非再構成領域
７…再構成制御部
１０…論理回路情報格納部
１１…構成メモリ診断部
１６…エラー検出部
１７…符号格納部
１８…符号算出部
１９…比較部
３１…照合用符号計算部
【図１】
2019144907.tif 000003
【図２】
2019144907.tif 000004
【図３】
2019144907.tif 000005
【図４】
2019144907.tif 000006
【図５】
2019144907.tif 000007
【図６】
2019144907.tif 000008
【図７】
2019144907.tif 000009
【図８】
2019144907.tif 000010
【図９】
2019144907.tif 000011
【図１０】
2019144907.tif 000012
【図１１】
2019144907.tif 000013
【図１２】
2019144907.tif 000014
【図１３】
2019144907.tif 000015
【図１４】
2019144907.tif 000016
【図１５】
2019144907.tif 000017
【図１６】
2019144907.tif 000018
【図１７】
2019144907.tif 000019
【図１８】
2019144907.tif 000020
【図１９】
2019144907.tif 000021