(57)【要約】【課題】リモートによるロジックの更新時に書き込みが失敗した場合でも、装置がネットワークから切り離されず、容易に復旧させるようにしたプログラマブルデバイス搭載装置を得る。【解決手段】インタフェース４を介してＬＡＮからリモートで送信されるＦＰＧＡ５の更新データを、ＣＰＵ１は、まずＳＤＲＡＭ２へ書き込み、その後、ＳＤＲＡＭ２に格納された更新データをバックアップ用のフラッシュメモリ７へ書き込み、その後に、ＳＤＲＡＭ２に格納された更新データを、ＦＰＧＡ５の更新データ格納用メモリであるフラッシュメモリ６へ書き込むようにし、更新データのフラッシュメモリ６への書込みが失敗した場合には、ＣＰＵ１は、フラッシュメモリ７に格納された更新データをフラッシュメモリ６へ書き込むようにした。【選択図】図１
2011197870.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されたローカルバスにプログラマブルデバイスが接続されたプログラマブルデバイス搭載装置であって、
上記ローカルバスに接続され、上記プログラマブルデバイスにコンフィギュレーションされるプログラマブルデバイス用データを格納する第１の不揮発性メモリ、
上記ローカルバスに接続され、上記プログラマブルデバイス用データのバックアップ用データを格納する第２の不揮発性メモリ、
上記ネットワークを介して上記プログラマブルデバイス用の更新データが送信された場合に、上記更新データを上記第２の不揮発性メモリに書き込んだ後に、上記第１の不揮発性メモリに書き込むＣＰＵを備え、
上記ＣＰＵは、上記第１の不揮発性メモリへの上記更新データの書き込みに失敗した場合には、上記第２の不揮発性メモリに格納された上記更新データを上記第１の不揮発性メモリへ書き込むことを特徴とするプログラマブルデバイス搭載装置。
【請求項２】
上記ＣＰＵは、上記更新データの書き込みを行わない場合には、上記第２の不揮発性メモリを通常モード以外のモードに移行させることを特徴とする請求項１記載のプログラマブルデバイス搭載装置。
【請求項３】
上記ＣＰＵは、上記第１の不揮発性メモリに格納された更新データが不正なデータである場合に、上記第２の不揮発性メモリに格納された上記更新データを上記第１の不揮発性メモリへ書き込むことを特徴とする請求項１または請求項２記載のプログラマブルデバイス搭載装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのプログラマブルデバイスのロジックを、リモートにより更新するプログラマブルデバイス搭載装置に関するものである。
【背景技術】
【０００２】
従来のＦＰＧＡのロジックの更新をリモートで行う方法としては、ＣＰＵと揮発性メモリと不揮発性メモリとＦＰＧＡとＦＰＧＡのデータ格納用メモリをローカルバスで接続し、ＬＡＮ通信等によりロジックの更新データをＦＰＧＡのデータ格納用メモリにリモートで書き込む方式があった。（特許文献１参照）
このとき、ＦＰＧＡデータ格納用メモリへの書き込み指示を受けたＣＰＵは、ＬＡＮ通信から受信したＦＰＧＡの更新データをまず、揮発性メモリに一旦格納する。次いで、ＣＰＵは、揮発性メモリに格納されたＦＰＧＡの更新データを、ＦＰＧＡデータ格納用メモリへ書き込む。最後に、ＣＰＵが装置のリブート（再起動）命令を実施し、次回、起動時にＦＰＧＡデータ格納用メモリからＦＰＧＡへ更新データがコンフィギュレーションされる。
このようなＦＰＧＡの更新方法により、ネットワークで接続された現地出荷装置に対し、リモート書き込みによりロジックの更新ができるため、出荷装置をすべて引き上げて工場でロジックを書き込むことや、現場にて各装置の書き込みを行う必要がなくなる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２５８９９６号公報（第５〜７頁、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のリモートメンテナンス方式では、更新データの書き込み中に、現場で予期せぬ装置の電源ＯＦＦ等がなされた場合に、更新データの書き込みが失敗し、次回起動時に装置が正常に立ち上がらず、ネットワークの構成によっては、ネットワークから装置が切り離される可能性があった。
このような場合には、リモートでアクセス不可となるため、装置を引き上げて工場でロジックの書き込みを行うか、現場にて書き込みを行う必要が出てしまうため、コスト、時間が掛かってしまう。
そのため、ロジックの書き込みに失敗した場合に、リモートにより容易に再度書き込みを行うことができるようにする必要がある。
【０００５】
この発明は、上記のような課題を解決するためになされたものであり、プログラマブルデバイスへのリモートによるロジックの更新時に更新データの書き込みが失敗した場合でも、装置がネットワークから切り離されず、容易に復旧できるようにしたプログラマブルデバイス搭載装置を得ることを目的にしている。
【課題を解決するための手段】
【０００６】
この発明に係わるプログラマブルデバイス搭載装置においては、ネットワークに接続されたローカルバスにプログラマブルデバイスが接続されたプログラマブルデバイス搭載装置であって、ローカルバスに接続され、プログラマブルデバイスにコンフィギュレーションされるプログラマブルデバイス用データを格納する第１の不揮発性メモリ、ローカルバスに接続され、プログラマブルデバイス用データのバックアップ用データを格納する第２の不揮発性メモリ、ネットワークを介してプログラマブルデバイス用の更新データが送信された場合に、更新データを第２の不揮発性メモリに書き込んだ後に、第１の不揮発性メモリに書き込むＣＰＵを備え、ＣＰＵは、第１の不揮発性メモリへの更新データの書き込みに失敗した場合には、第２の不揮発性メモリに格納された更新データを第１の不揮発性メモリへ書き込むものである。
【発明の効果】
【０００７】
この発明は、以上説明したように、ネットワークに接続されたローカルバスにプログラマブルデバイスが接続されたプログラマブルデバイス搭載装置であって、ローカルバスに接続され、プログラマブルデバイスにコンフィギュレーションされるプログラマブルデバイス用データを格納する第１の不揮発性メモリ、ローカルバスに接続され、プログラマブルデバイス用データのバックアップ用データを格納する第２の不揮発性メモリ、ネットワークを介してプログラマブルデバイス用の更新データが送信された場合に、更新データを第２の不揮発性メモリに書き込んだ後に、第１の不揮発性メモリに書き込むＣＰＵを備え、ＣＰＵは、第１の不揮発性メモリへの更新データの書き込みに失敗した場合には、第２の不揮発性メモリに格納された更新データを第１の不揮発性メモリへ書き込むので、第１の不揮発性メモリへの書き込みが失敗した場合にも、装置がネットワークから切り離されず、容易に復旧させることができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１〜実施の形態３によるＦＰＧＡ搭載装置を示す構成図である。
【図２】この発明の実施の形態１によるＦＰＧＡ搭載装置のリモートメンテナンス方式の手順を示すフローチャートである。
【図３】この発明の実施の形態１によるＦＰＧＡ搭載装置の書き込み経路１を示す図である。
【図４】この発明の実施の形態１によるＦＰＧＡ搭載装置の書き込み経路２を示す図である。
【図５】この発明の実施の形態１によるＦＰＧＡ搭載装置の書き込み経路３を示す図である。
【図６】この発明の実施の形態１によるＦＰＧＡ搭載装置の書込み失敗時の書込み経路を示す図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
以下、この発明の実施の形態１を図に基づいて説明する。
図１は、この発明の実施の形態１によるＦＰＧＡ搭載装置を示す構成図である。
図１において、ＣＰＵ１はＦＰＧＡ搭載装置１０（プログラマブルデバイス搭載装置）全体を制御するとともに、ＦＰＧＡのロジック更新のための更新データの書き込みを行う。ＳＤＲＡＭ２は、ＣＰＵ１によって使用される揮発性メモリである。フラッシュメモリ３は、ＣＰＵ１により実行されるソフトウェアが格納されている不揮発性メモリである。インタフェース４は、ＬＡＮまたは専用回線あるいは他のネットワークに接続される。
ＦＰＧＡ５（プログラマブルデバイス）は、起動時にロジックデータをコンフィギュレーション（ダウンロード）してロジックにしたがって動作する。フラッシュメモリ６（第１の不揮発性メモリ）は、ＦＰＧＡ５のロジックの更新データの格納用の不揮発性メモリであり、ＦＰＧＡ５は、起動時にフラッシュメモリ６に格納された更新データをコンフィギュレーションする。
フラッシュメモリ７（第２の不揮発性メモリ）は、ＦＰＧＡ５のロジックの更新データのバックアップ用として、一時的に更新データを格納する不揮発性メモリである。
【００１０】
次に、本発明の構成をさらに詳しく説明する。
ＣＰＵ１とＳＤＲＡＭ２とフラッシュメモリ３とインタフェース４とＦＰＧＡ５とフラッシュメモリ６とフラッシュメモリ７は、ローカルバスにより接続されてＦＰＧＡ搭載装置１０を構成し、インタフェース４を介するＬＡＮ通信（ネットワーク通信）で、ローカルバスにリモートでアクセスされるようになっている。
ＣＰＵ１は、インタフェース４からリモートで書き込み指示、及び更新データを受け取った場合に、書き込み手順を制御し、書き込み失敗時に再度書き込みを指示する。ＳＤＲＡＭ２は、ＬＡＮ通信から受け取ったＦＰＧＡ５のロジックの更新データを一時的に格納する。フラッシュメモリ３は、ＣＰＵ１のデータを書き込むメモリとしても使用され、本発明ではログの格納に使用される。
ＦＰＧＡ５は、ＦＰＧＡ搭載装置１０の起動時にフラッシュメモリ６からロジックデータをコンフィギュレーションし、起動する。フラッシュメモリ６は、ＦＰＧＡ５のロジックデータを格納するためのメモリである。フラッシュメモリ７は、フラッシュメモリ６のバックアップ用のメモリであり、ＦＰＧＡ５のロジックの更新データをフラッシュメモリ６よりも先に格納するものである。
【００１１】
図２は、この発明の実施の形態１によるＦＰＧＡ搭載装置のリモートメンテナンス方式の手順を示すフローチャートである。
【００１２】
図３は、この発明の実施の形態１によるＦＰＧＡ搭載装置の書き込み経路１を示す図である。
図４は、この発明の実施の形態１によるＦＰＧＡ搭載装置の書き込み経路２を示す図であり、図３につづく経路を示している。
図５は、この発明の実施の形態１によるＦＰＧＡ搭載装置の書き込み経路３を示す図であり、図４につづく経路を示している。
図６は、この発明の実施の形態１によるＦＰＧＡ搭載装置の書込み失敗時の書込み経路を示す図である。
【００１３】
次に、実施の形態１のリモートメンテナンス方式の手順について、図２を参照して説明する。
リモートメンテナンスに当っては、ＬＡＮ通信からＦＰＧＡ搭載装置１０にアクセスし、ＣＰＵ１に対して、特定のコマンド等によりＦＰＧＡのロジックデータの書き込み指示を与え、更新データを送信する。
図２のステップＳ１で、ＣＰＵ１は、ＬＡＮ通信からインタフェース４を介して受信するデータを監視し、ＦＰＧＡ５のデータ格納用メモリであるフラッシュメモリ６への書き込み指示を受ける。
ステップＳ２で、ＣＰＵ１は、図３に示すように、ＬＡＮ通信からインタフェース４を介して受信したＦＰＧＡ５のロジックの更新データをＳＤＲＡＭ２に一旦格納する。
次いで、ステップＳ３で、ＣＰＵ１は、図４に示すように、ＳＤＲＡＭ２に格納されたＦＰＧＡ５のロジックの更新データを、フラッシュメモリ７に書き込む。
【００１４】
フラッシュメモリ７への書込み後に、ステップＳ４で、ＣＰＵ１は、図５に示すように、ＳＤＲＡＭ２に格納されたＦＰＧＡ５のロジックの更新データを、フラッシュメモリ６に書き込む。このとき、書込み中を示すビットをフラッシュメモリ３に設け、書込み中はそのビットを１に設定する。そして、書込みが完了したら、ビットを０にする。
フラッシュメモリ６への書き込みが完了後、ビットの０を確認してから、ステップＳ５で、ＣＰＵ１は、ＦＰＧＡ搭載装置１０のリブート処理（再起動）を実施し、ＦＰＧＡ搭載装置１０の再起動後、ＦＰＧＡ５は、更新データを書き込んだフラッシュメモリ６からコンフィギュレーションを行う。リモート更新者は、ＦＰＧＡ５が新規バージョンにて立ち上がったことを確認し、リモートによる更新作業を終える。
【００１５】
次に、書き込み失敗時の動作について説明する。
図３に示すとおり、ＬＡＮ通信から受け取ったＦＰＧＡ５のロジックの更新データをＳＤＲＡＭ２へ書き込んでいる状態で、ＦＰＧＡ搭載装置１０の電源ＯＦＦ等により書き込みが失敗した場合、次回ＦＰＧＡ搭載装置１０の起動時に、ＳＤＲＡＭ２へ書き込み途中であったデータは消去され、ＦＰＧＡ５は、前バージョンのデータを格納したフラッシュメモリ６からデータをコンフィギュレーションする。
そのため、ＦＰＧＡ搭載装置１０は正常に起動し、ネットワークから切り離されることはないため、リモート更新者は、ＦＰＧＡ５が更新データになっていないことを確認し、再度リモートにより更新データの書き込みを実施することができる。
【００１６】
同様に、図４に示すとおり、ＳＤＲＡＭ２に格納した更新データをフラッシュメモリ７へ書き込む途中で、書き込みが失敗した場合、次回、ＦＰＧＡ搭載装置１０の起動時にＦＰＧＡ５は、前バージョンのデータを格納したフラッシュメモリ６からデータをコンフィギュレーションする。そのため、ＦＰＧＡ搭載装置１０は、正常に起動し、ネットワークから切り離されることはないため、リモート更新者は、ＦＰＧＡ５が更新データになっていないことを確認し、再度リモートにより書き込みを実施することができる。
【００１７】
次に、図５に示すとおり、ＳＤＲＡＭ２に格納した更新データをフラッシュメモリ６へ書き込む途中で、書き込みが失敗した場合、次回、ＦＰＧＡ搭載装置１０の立ち上げ時にＦＰＧＡ５に不正データがコンフィギュレーションされるため、ＦＰＧＡ搭載装置１０は、正常に立ち上がらない。
ネットワークの構成によっては、ＣＰＵ１は、ＦＰＧＡ５へのアクセスが何度か失敗した場合、ネットワークから切り離し、リモートではアクセスができなくなる可能性があるが、ＦＰＧＡ搭載装置１０の起動後にＦＰＧＡ５のアクセスが失敗したときに、ＣＰＵ１がフラッシュメモリ３の書き込み中ビットを確認し、１であることを確認した場合、図６に示すとおり、フラッシュメモリ７に格納されたＦＰＧＡ５のロジックの更新データを、フラッシュメモリ６へ書き込みを行う。
書き込み完了後、ビットをゼロにし、ＣＰＵ１はリブート処理を実施し、ＦＰＧＡ５は更新データをフラッシュメモリ６からコンフィギュレーションするため、ＦＰＧＡ搭載装置１０を復旧させるとともに、ロジックの更新データをＦＰＧＡ搭載装置１０に書き込むことができる。
【００１８】
なお、フラッシュメモリ７に格納されたＦＰＧＡ５のロジックの更新データもエラーが発生した状態の場合には、リモートによって再度フラッシュメモリ７への書き込みを行う。
また、フラッシュメモリ７への書き込み中を示すビットを設け、書き込み中は１にし、書込みが完了すれば０にするようにしてもよい。こうすれば、フラッシュメモリ７への書き込みについてフラッシュメモリ６と同様の制御を行うことができる。
【００１９】
実施の形態１によれば、以上のとおり、リモートによるロジックデータ更新中に書き込みが失敗した場合でも、ＦＰＧＡ搭載装置がネットワークから切り離されることを回避し、自動でＦＰＧＡ搭載装置の復旧、またはリモートにより再度書き込みができるようになる。
【００２０】
実施の形態２．
なお、実施の形態１において、リモートによるＦＰＧＡ５のロジックデータの更新を行わない場合は、フラッシュメモリ７は使用されることはない。このため、実施の形態２は、ＬＡＮ通信によりデータの書き込み指示が来るまでは、ＣＰＵにより、フラッシュメモリ７を、通常モード以外のスタンバイモード等にモードを移行しておくようにする。スタンバイモードでは、フラッシュメモリ７は書き込み及び読み出しはできないようになっている。
【００２１】
実施の形態３によれば、これにより省電力化、フラッシュメモリ７からフラッシュメモリ６への誤書き込みを防止することができる。
【００２２】
実施の形態３．
なお、実施の形態１のようにローカルバスの構成にしている場合、フラッシュメモリ６のビット化け等により不正データとなることがあり、この場合にもＦＰＧＡ搭載装置１０が起動できなくなる。実施の形態３は、この場合の対策についてのものである。
【００２３】
次に、動作について説明する。
図１に示すとおり、通常フラッシュメモリ６に格納されたロジックデータがビット化け等により不正データになった場合、ＦＰＧＡ搭載装置１０の起動時にＦＰＧＡ５に不正なロジックデータがコンフィギュレーションされるため、ＣＰＵ１がＦＰＧＡ５へアクセスできず、ＦＰＧＡ搭載装置１０をネットワークから切り離す必要が生じる等の異常状態となる。
実施の形態３では、ＦＰＧＡ搭載装置１０の起動後に、ＣＰＵ１がＦＰＧＡ５へ何度かアクセスし、アクセスに失敗した場合に、図６に示すとおり、フラッシュメモリ７に格納されたＦＰＧＡ５のロジックの更新データを、フラッシュメモリ６へ再書き込みを行う。
書き込み完了後、ＣＰＵ１は、リブート処理を実施し、次回、ＦＰＧＡ搭載装置１０の起動時に、ＦＰＧＡ１は正常データをフラッシュメモリ６からコンフィギュレーションする。
【００２４】
実施の形態３によれば、以上のとおり、図１の構成時、フラッシュメモリ６がビット化け等により不正データとなった場合にも、フラッシュメモリ７に格納されたＦＰＧＡ５のロジックの更新データを、フラッシュメモリ６へ再書き込みを行うことで、ＦＰＧＡ搭載装置を異常状態から復旧させることができる。
【符号の説明】
【００２５】
１  ＣＰＵ
２  ＳＤＲＡＭ
３  フラッシュメモリ
４  インタフェース
５  ＦＰＧＡ
６  フラッシュメモリ（ＦＰＧＡデータ格納用）
７  フラッシュメモリ（ＦＰＧＡデータ格納用、バックアップ用）
【図１】
2011197870.tif 000003
【図２】
2011197870.tif 000004
【図３】
2011197870.tif 000005
【図４】
2011197870.tif 000006
【図５】
2011197870.tif 000007
【図６】
2011197870.tif 000008