(57)【要約】【課題】ＣＰＵを内蔵したＦＰＧＡの再起動時間を短縮する。【解決手段】ＦＰＧＡ１０のコンフィグレーション装置１は、ＦＰＧＡ１０内に起動用回路を構成するための初期コンフィグレーションデータを保持する第１メモリ２と、ＦＰＧＡ１０内にメイン回路を構成するためのメイン回路用コンフィグレーションデータを保持する第２メモリ３と、稼働中のＦＰＧＡ１０の状態に基づいて前記メイン回路用コンフィグレーションデータを更新するデータ更新部４２とを含み、ＦＰＧＡ１０の電源投入時に前記初期コンフィグレーションデータをＦＰＧＡ１０に提供し、前記起動用回路の動作に応答して前記メイン回路用コンフィグレーションデータを提供する。【選択図】図１
2018109907.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵを内蔵したＦＰＧＡにコンフィグレーションデータを提供するコンフィグレーション装置であって、
前記ＦＰＧＡの再起動時に、当該再起動前の前記ＦＰＧＡの状態が反映されたコンフィグレーションデータを前記ＦＰＧＡに提供するように構成された、ＦＰＧＡのコンフィグレーション装置。
【請求項２】
稼働中の前記ＦＰＧＡの状態を取得し、取得した前記ＦＰＧＡの状態に基づいて再起動用のコンフィグレーションデータを作成して保持し、保持した再起動用のコンフィグレーションデータを前記ＦＰＧＡの再起動時に前記ＦＰＧＡに提供する、請求項１に記載のＦＰＧＡのコンフィグレーション装置。
【請求項３】
前記コンフィグレーションデータは、前記ＦＰＧＡの回路データ及び前記ＦＰＧＡの内部メモリに関するデータを含む、請求項１又は２に記載のＦＰＧＡのコンフィグレーション装置。
【請求項４】
前記ＦＰＧＡ内に起動用回路を構成するための初期コンフィグレーションデータを保持する第１メモリと、
前記ＦＰＧＡ内にメイン回路を構成するためのメイン回路用コンフィグレーションデータを保持する第２メモリと、
稼働中の前記ＦＰＧＡの状態に基づいて前記第２メモリに保持された前記メイン回路用コンフィグレーションデータを更新するデータ更新部と、
を含み、
前記ＦＰＧＡの電源投入時に前記第１メモリに保持された初期コンフィグレーションデータを前記ＦＰＧＡに提供し、前記起動用回路の動作に応答して前記第２メモリに保持された前記メイン回路用コンフィグレーションデータを提供する、
請求項１〜３のいずれか一つに記載のＦＰＧＡのコンフィグレーション装置。
【請求項５】
電源電圧が閾値以下となった場合に電源遮断を検知する電源遮断検知部を含み、
前記データ更新部は、前記電源遮断検知部が電源遮断を検知した場合に前記ＦＰＧＡの状態の読み出し及び前記コンフィグレーションデータの更新を行う、
請求項４に記載のＦＰＧＡのコンフィグレーション装置。
【請求項６】
前記データ更新部は、あらかじめ設定された所定のタイミングで前記ＦＰＧＡの状態の読み出し及び前記コンフィグレーションデータの更新を行う、請求項４に記載のＦＰＧＡのコンフィグレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）の起動時にコンフィグレーションデータを提供するＦＰＧＡのコンフィグレーション装置に関し、特に、ＣＰＵを内蔵したＦＰＧＡの再起動時間を短縮することのできるコンフィグレーション装置に関する。
【背景技術】
【０００２】
ＦＰＧＡの起動に関する従来技術として、特許文献１に記載のプログラマブル論理回路装置が知られている。特許文献１に記載のプログラマブル論理回路装置は、論理回路データを格納したメインメモリ及びサブメモリと、電源投入後の起動時に前記メインメモリに格納された論理回路データを読み出してコンフィグレーションを行うＦＰＧＡと、前記ＦＰＧＡにおけるコンフィグレーション完了までの経過時間が設定時間を超えると、前記メインメモリが異常であると判断して異常通知信号を発生する異常監視回路と、前記異常通知信号を受信すると、前記メインメモリを前記サブメモリに切り替え、前記サブメモリに格納された論理回路データにより再度ＦＰＧＡに対してコンフィグレーションを行わせるメモリ切替部と、を有している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−６６９６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、近年、ＣＰＵを内蔵したＦＰＧＡが増加している。このようなＦＰＧＡではＯＳを利用する場合が多く、ＦＰＧＡ回路のコンフィグレーション後にＯＳの起動処理が完了しなければ、ＦＰＧＡ全体としての起動が完了しない。このため、ＦＰＧＡの起動時間が長くならざるを得ないという課題がある。
【０００５】
そこで、本発明は、ＣＰＵを内蔵したＦＰＧＡの起動時間、特に再起動時間を短縮することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によると、ＣＰＵを内蔵したＦＰＧＡにコンフィグレーションデータを提供するＦＰＧＡのコンフィグレーション装置が提供される。前記コンフィグレーション装置は、前記ＦＰＧＡの再起動時に、当該再起動前の前記ＦＰＧＡの状態が反映されたコンフィグレーションデータを前記ＦＰＧＡに提供するように構成されている。
【発明の効果】
【０００７】
本発明によれば、ＣＰＵを内蔵したＦＰＧＡは、その再起動時に、当該再起動前の状態が反映されたコンフィグレーションデータを用いてコンフィグレーションを行えるので、前記ＦＰＧＡは、速やかに再起動前の状態（すなわち、稼働中の状態）に戻ることができる。このため、前記ＦＰＧＡの再起動時間が従来に比べて短縮される。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係るＦＰＧＡのコンフィグレーション装置の構成を示すブロック図である。
【図２】ＦＰＧＡに提供されるメイン回路用コンフィグレーションデータの一例を示す図であり、（Ａ）は初期状態の前記メイン回路用コンフィグレーションデータを示し、（Ｂ）は、更新後の前記メイン回路用コンフィグレーションデータを示す。
【図３】ＦＰＧＡの初回起動処理の概要を示すフローチャートである。
【図４】初期コンフィグレーションの説明図である。
【図５】メイン回路のコンフィグレーションの説明図である。
【図６】ＦＰＧＡの再起動処理の概要を示すフローチャートである。
【図７】ＦＰＧＡの再起動時の動作を模式的に示した図であり、（Ａ）は、従来のＦＰＧＡの再起動時の動作を示し、（Ｂ）は本実施形態に係るＦＰＧＡの再起動時の動作を示す。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して本発明の実施形態について説明する。
図１は、本発明の一実施形態に係るＦＰＧＡのコンフィグレーション装置の構成を示すブロック図である。実施形態に係るコンフィグレーション装置１は、ＣＰＵを内蔵したＦＰＧＡ１０の再起動時に、再起動前（すなわち、稼働中）のＦＰＧＡ１０の状態が反映されたコンフィグレーションデータをＦＰＧＡ１０に提供し、これにより、ＦＰＧＡ１０の再起動時の起動時間を短縮させる。
【００１０】
図１に示されるように、コンフィグレーション装置１は、第１メモリ２と、第２メモリ３と、コンフィグレーション制御部４とを含む。また、本実施形態において、ＦＰＧＡ１０は、例えば、いわゆるＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）  ＦＰＧＡとして構成されており、ＣＰＵを含むプロセッサシステム部（Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍ、以下「ＰＳ部」という）１１と、ＰＳ部１１の周囲に配置された論理回路部（Ｐｒｏｇｒａｍｂｌｅ  Ｌｏｇｉｃ、以下「ＰＬ部」という）１２とを含む。
【００１１】
第１メモリ２は、不揮発性メモリであり、例えばＳＰＲＯＭ（Ｓｅｒｉａｌ  Ｐｒｏｇｒａｍｍｂｌｅ  ＲＯＭ）で構成される。第１メモリ２は、ＦＰＧＡ１０の電源投入時にＦＰＧＡ１０内に起動処理（ブート処理）を実行する起動用回路を構成するための初期コンフィグレーションデータを保持する。
【００１２】
第２メモリ３は、書き込み可能な不揮発性メモリであり、例えば、フラッシュメモリやＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）で構成される。第２メモリ３は、ＦＰＧＡ１０内にメイン回路（すなわち、ＦＰＧＡ回路（＝ＰＳ部１１＋ＰＬ部１２））を構成するためのメイン回路用コンフィグレーションデータを保持する。前記メイン回路用コンフィグレーションデータは、前記メイン回路の回路データ（主にＰＬ部１２のデータ）及びＦＰＧＡ１０の内部メモリ（ＣＰＵ内部レジスタやワークメモリなどを含む）に関するデータを含む。
【００１３】
コンフィグレーション制御部４は、電源遮断検知部４１及びデータ更新部４２を含む。
【００１４】
電源遮断検知部４１は、ＦＰＧＡ１０の電源電圧を監視し、ＦＰＧＡ１０の電源電圧が閾値以下となった場合にＦＰＧＡ１０の電源遮断を検知する。すなわち、電源遮断検知部４１は、ＦＰＧＡ１０の電源が遮断される直前の状態を検知する。
【００１５】
データ更新部４２は、稼働中のＦＰＧＡ１０の状態に基づいて第２メモリ３に保持されている前記メイン回路用コンフィグレーションデータを更新する。具体的には、本実施形態において、データ更新部４２は、前記メイン回路用コンフィグレーションデータにおける前記メイン回路の回路データ及び前記内部メモリに関するデータを更新する。
【００１６】
図２は、前記メイン回路用コンフィグレーションデータの一例を示す図であり、図２（Ａ）は、初期状態の前記メイン回路用コンフィグレーションデータを示し、図２（Ｂ）は、データ更新部４２によって更新された後の前記メイン回路用コンフィグレーションデータを示す。
【００１７】
図２に示されるように、本実施形態において、前記メイン回路用コンフィグレーションデータは、ヘッダ部５１と、回路データ部５２と、メモリデータ部５３と、フッタ部５４とを含む。ヘッダ部５１には、前記メイン回路用コンフィグレーションデータの始まりを示す固有値などが書き込まれている。回路データ部５２には、前記メイン回路の回路データ（ＰＬ部１２のデータ）が書き込まれている。メモリデータ部５３には、前記内部メモリに関するデータが書き込まれている。フッタ部５４には、前記メイン回路用コンフィグレーションデータのチェックサムや前記メイン回路用コンフィグレーション回路のスタートコマンドなどが書き込まれている。
【００１８】
図２（Ａ）に示されるように、初期状態においては、前記メイン回路の初期回路データが回路データ部５２に書き込まれ、前記内部メモリのそれぞれの初期値がメモリデータ部５３に書き込まれている。そして、データ更新部４２は、稼働中のＦＰＧＡ１０の状態として前記メイン回路の状態（ＰＬ部１２の状態）及び前記内部メモリのそれぞれの内容を入力すると、入力した前記メイン回路の状態を回路データ部５２に上書きすると共に、入力した前記内部メモリのそれぞれの内容をメモリデータ部５３に上書きし、これにより、前記メイン回路用コンフィグレーションデータを更新する。その結果、更新後においては、図２（Ｂ）に示されるように、入力した前記メイン回路の状態が、更新された回路データとして回路データ部５２に書き込まれ、入力した前記内部メモリのそれぞれの内容が更新された内部メモリデータとしてメモリデータ部５３に書き込まれることになる。なお、ここでは、初期状態から更新された場合を示しているが、更新後の前記メイン回路用コンフィグレーションデータが更に更新される場合も同様である。また、データ更新部４２は、前記メイン回路用コンフィグレーションデータを更新する際、前記チェックサムの再計算を行って再計算後のチャックサムをフッタ部５４に書き込む。
【００１９】
次に、本実施形態におけるコンフィグレーション装置１及びＦＰＧＡ１０の動作について具体的に説明する。
【００２０】
［ＦＰＧＡ１０の初回起動時の動作］
図３は、ＦＰＧＡ１０の初回起動処理、すなわち、ＦＰＧＡ１０に最初に電源が投入されたときの起動処理の概要を示すフローチャートである。
【００２１】
ＦＰＧＡ１０に電源が投入されると、ＦＰＧＡ１０は、そこに搭載されているリセットＩＣなどによって初期化される（ステップＳ１）。そして、ＦＰＧＡ１０の初期化が完了すると（ステップＳ２）、初期コンフィグレーションが実行される（ステップＳ３）。具体的には、図４に示されるように、ＦＰＧＡ１０は、第１メモリ２から前記初期コンフィグレーションデータをロードする。換言すれば、コンフィグレーション装置１は、ＦＰＧＡ１０の電源投入時に、第１メモリ２に保持されている前記初期コンフィグレーションデータをＦＰＧＡ１０に提供する。これにより、ＦＰＧＡ１０内に前記起動用回路が構成される。
【００２２】
次いで、前記起動用回路が動作し（ステップＳ４）、前記メイン回路のコンフィグレーションが実行される（ステップＳ５）。具体的には、図５に示されるように、前記起動用回路が第２メモリ３にアクセスして第２メモリ３から前記メイン回路用コンフィグレーションデータを読み出し、ＦＰＧＡ１０内のＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）インターフェースを利用してＦＰＧＡ１０内に前記メイン回路を構成する。これにより、ＰＬ部１２のコンフィグレーションが完了する。換言すれば、コンフィグレーション装置１は、前記初期コンフィグレーションデータによって構成された前記起動用回路の動作に応答して、第２メモリ３に保持されている前記メイン回路用コンフィグレーションデータをＦＰＧＡ１０に提供する。なお、ここでは、初期状態の前記メイン回路用コンフィグレーションデータ（図２（Ａ）参照）がＦＰＧＡ１０に提供される。このため、前記内部メモリのそれぞれには、対応する初期値が設定されることになる。
【００２３】
次に、ＯＳの起動処理が実行される（ステップＳ６）。具体的には、前記起動用回路が図示省略のＯＳ格納部からＯＳをロードする。例えば、前記起動用回路は、前記ＯＳ格納部に格納されたＯＳを読み込み、前記内部メモリのうちの所定のメモリに書き込む。そして、ＰＳ部１１が前記所定のメモリに書き込まれたＯＳを実行すると、ＯＳがシステムの動作に必要な各処理を実行する。このような一連の起動処理を経てＯＳの起動が完了すると（ステップＳ７）、ＦＰＧＡ１０が動作可能な状態となり、ＦＰＧＡ１０の起動が完了する（ステップＳ８）。
【００２４】
［ＦＰＧＡ１０の稼働中の動作］
コンフィグレーション制御部４は、電源遮断検知部４１がＦＰＧＡ１０の電源遮断を検知すると、前記ＪＴＡＧインターフェースを介してＦＰＧＡ１０のＰＳ部１１に対してＦＰＧＡ１０の状態を出力するように指示する。ＦＰＧＡ１０のＰＳ部１１は、コンフィグレーション制御部４の指示に応答して、ＦＰＧＡ１０の状態としてＰＬ部１２の状態及び前記内部メモリの内容をコンフィグレーション制御部４に出力する。
【００２５】
コンフィグレーション制御部４のデータ更新部４２は、ＦＰＧＡ１０から出力されたＰＬ部１２の状態及び前記内部メモリの内容を入力し、入力したＰＬ部１２の回路状態を第２メモリ３に保持されている前記メイン回路用コンフィグレーションデータの回路データ部５２に上書きし、入力した前記内部メモリの内容を第２メモリ３の保持されている前記メイン回路用コンフィグレーションデータのメモリデータ部５３に上書きする。この結果、電源遮断直前のＦＰＧＡ１０の状態（ＰＳ部１１の状態及びＰＬ部１２の状態）が前記メイン回路用コンフィグレーションデータに反映される。
【００２６】
［ＦＰＧＡ１０の再起動時の動作］
図６は、ＦＰＧＡ１０の再起動処理の一例を示すフローチャートである。
ステップＳ１１〜Ｓ１４の処理は、図３のステップＳ１〜Ｓ４の処理と同じである。すなわち、ＦＰＧＡ１０が初期化された後、前記初期コンフィグレーションが実行されてＦＰＧＡ１０内に前記起動用回路が構成される。
【００２７】
ステップＳ１５では、図３のステップＳ５と同様、前記メイン回路のコンフィグレーションが実行される。すなわち、前記起動用回路が第２メモリ３から前記メイン回路用コンフィグレーションデータを読み出し、前記ＪＴＡＧインターフェースを利用してＦＰＧＡ１０内に前記メイン回路を構成する。ここで、上述のように、第２メモリ３に保持されている前記メイン回路用コンフィグレーションデータは、データ更新部４２によって電源遮断直前のＦＰＧＡ１０の状態が反映された状態に更新されている。このため、ＦＰＧＡ１０内には電源遮断直前のメイン回路と同じメイン回路が構成され、また、前記メイン回路用コンフィグレーションデータのメモリデータ部５３に書き込まれている前記内部メモリのそれぞれの内容が対応する内部メモリに転送されて、前記内部メモリの内容も電源遮断直前の状態に復帰する。すなわち、ＰＬ部１２のコンフィグレーションの完了によってＦＰＧＡ１０内には電源遮断直前のメイン回路と同じ状態のメイン回路が構成されると共に、それとほぼ同時にＰＳ部１１も電源遮断直前の状態に復帰する。ＦＰＧＡ１０は電源遮断直前の状態から動作を再開することができる。したがって、ＦＰＧＡ１０の再起動時においては、前記メイン回路のコンフィグレーションの実行後、速やかにＦＰＧＡ１０の起動が完了する（ステップＳ１６）。
【００２８】
図７は、ＦＰＧＡの再起動時の動作を模式的に示した図であり、図７（Ａ）は、従来のＦＰＧＡの再起動時の動作を示し、図７（Ｂ）は本実施形態に係るＦＰＧＡの再起動時の動作を示している。
【００２９】
図７（Ａ）に示されるように、従来は、本実施形態における初回起動時と同様に、ＦＰＧＡの初期化が完了し、ＰＳ部が動作を開始し、ＰＬ部のコンフィグレーションが完了した後に、ＯＳの起動が完了しなければ、ＦＰＧＡの起動が完了しない。また、ＯＳの起動が完了するまでには１０秒程度の時間を要していた。このため、ＦＰＧＡの再起動時間が長くならざるを得ない。
【００３０】
一方、本実施形態において、ＦＰＧＡの再起動時には、電源遮断直前のＦＰＧＡの状態（ＰＳ部及びＰＬ部の状態）が反映された前記メイン回路用コンフィグレーションデータが使用される。このため、上述のように、ＰＬ部のコンフィグレーションが完了すると電源遮断直前のメイン回路と同じメイン回路が構成され、また、それとほぼ同時にＰＳ部も電源遮断直前の状態に復帰し、ＦＰＧＡは電源遮断直前の状態から動作を再開することが可能となる。したがって、図７（Ｂ）に示されるように、ＰＬ部のコンフィグレーションが完了した後、速やかにＦＰＧＡの起動が完了する。すなわち、ＯＳの起動処理が省略される。この結果、ＦＰＧＡの再起動時間が従来に比べて大幅に短縮される。また、停電や瞬断が生じた場合であってもＦＰＧＡの動作の継続性が確保され得る。
【００３１】
上述の実施形態において、データ更新部４２によって更新された前記メイン回路用コンフィグレーションデータが、本発明の「再起動前のＦＰＧＡに状態が反映されたコンフィグレーションデータ」及び「再起動用コンフィグレーションデータ」に相当する。
【００３２】
なお、上述の実施形態において、データ更新部４２は、電源遮断検知部４１がＦＰＧＡ１０の電源遮断を検知した場合に、第２メモリ３に保持されている前記メイン回路用コンフィグレーションデータを更新している。しかし、これに限られるものではない。例えば、データ更新部４２は、所定のタイミングで第２メモリ３に保持されている前記メイン回路用コンフィグレーションデータを更新するように構成されてもよい。この場合、例えば、コンフィグレーション制御部４が前記所定のタイミングでＦＰＧＡ１０のＰＳ部１１に対してＦＰＧＡ１０の状態を出力するように指示するように構成される。また、データ更新部４２は、ＦＰＧＡ１０の初回起動完了直後に第２メモリ３に保持されている前記メイン回路用コンフィグレーションデータを更新するように構成されてもよい。この場合、例えば、ＦＰＧＡ１０の初回起動が完了すると、ＦＰＧＡ１０のＰＳ部１１がＦＰＧＡ１０の状態を出力するように構成される。
【００３３】
以上、本発明の実施形態について説明したが、本発明は上述の実施形態に限定されるものではなく、本発明の技術的思想に基づいて更なる変形や変更が可能である。
【符号の説明】
【００３４】
１…コンフィグレーション装置、２…第１メモリ、３…第２メモリ、４…コンフィグレーション制御部、１０…ＦＰＧＡ、１１…ＰＳ（Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍ）部、１２…ＰＬ（Ｐｒｏｇｒａｍｂｌｅ  Ｌｏｇｉｃ）部、４１…電源遮断検知部、４２…データ更新部
【図１】
2018109907.tif 000003
【図２】
2018109907.tif 000004
【図３】
2018109907.tif 000005
【図４】
2018109907.tif 000006
【図５】
2018109907.tif 000007
【図６】
2018109907.tif 000008
【図７】
2018109907.tif 000009