(57)【要約】【課題】メモリに書き込まれた新たなコンフィギュレーションデータの誤りを簡易な構成で検出する。【解決手段】ＦＰＧＡ１１０の内部回路として構成されたチェック論理回路１１４は、ＣＰＵ１４０からフラッシュメモリ１３０に新たなコンフィギュレーションデータが書き込まれると、このデータを読み出し、チェックサムデータを算出する。フラッシュメモリ１３０には、新たなコンフィギュレーションデータとともに、予め算出されたチェックサムデータが記録されている。そのため、チェック論理回路１１４は、この予め記録されたチェックサムデータと、コンフィギュレーションデータの読み込みによって算出したチェックサムデータとを比較することにより、フラッシュメモリ１３０に対して、新たなコンフィギュレーションデータが正しく書き込まれているかを自立的に検出することができる。【選択図】図１
2008052389.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブル論理回路の回路構成を更新するプログラマブル論理回路更新装置であって、
所定のメモリに記憶されたコンフィギュレーションデータを読み込み、該コンフィギュレーションデータに基づいて、所定の機能を有する主論理回路と、前記メモリに記憶されたコンフィギュレーションデータの誤り検出を行うチェック論理回路とを実現するプログラマブル論理回路と、
前記メモリに、新たなコンフィギュレーションデータと、該新たなコンフィギュレーションデータに基づいて定まる誤り検出データとを書き込む書込部と、
前記チェック論理回路によって前記新たなコンフィギュレーションデータの誤り検出を行った結果、該新たなコンフィギュレーションデータに誤りが検出されなかった場合に、該新たなコンフィギュレーションデータに基づき、前記プログラマブル論理回路に回路構成を更新させる更新部とを備え、
前記チェック論理回路は、前記書込部によって前記新たなコンフィギュレーションデータと前記誤り検出データとが前記メモリに書き込まれた場合に、前記メモリから該新たなコンフィギュレーションデータを読み出して該コンフィギュレーションデータに基づき誤り検出データを算出し、該算出した誤り検出データと、前記書込部によって前記メモリに書き込まれた前記誤り検出データとを比較することで、前記メモリに書き込まれた新たなコンフィギュレーションデータの誤り検出を行う
プログラマブル論理回路更新装置。
【請求項２】
請求項１に記載のプログラマブル論理回路更新装置であって、
前記チェック論理回路は、前記誤り検出の結果、前記新たなコンフィギュレーションデータに誤りを検出した場合に、前記書込部に、再度、前記新たなコンフィギュレーションデータと前記誤り検出データとを書き込ませる
プログラマブル論理回路更新装置。
【請求項３】
請求項１または２に記載のプログラマブル論理回路更新装置であって、
前記誤り検出データは、前記新たなコンフィギュレーションデータから算出されたチェックサムデータ、ＣＲＣデータ、および、パリティデータのうち、いずれかのデータ、または、これらのデータを２以上組み合わせたデータである
プログラマブル論理回路更新装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載のプログラマブル論理回路更新装置であって、
前記プログラマブル論理回路は、フィールドプログラマブルゲートアレイである
プログラマブル論理回路更新装置。
【請求項５】
プログラマブル論理回路の回路構成を更新する更新方法であって、
前記プログラマブル論理回路が、所定のメモリに記憶されたコンフィギュレーションデータを読み込み、該コンフィギュレーションデータに基づいて、所定の機能を有する主論理回路と、前記メモリに記憶されたコンフィギュレーションデータの誤り検出を行うチェック論理回路とを実現し、
所定の書込部が、前記メモリに、新たなコンフィギュレーションデータと、該新たなコンフィギュレーションデータに基づいて定まる誤り検出データとを書き込み、
前記書込部によって前記新たなコンフィギュレーションデータと前記誤り検出データとが前記メモリに書き込まれた場合に、前記チェック論理回路が、前記メモリから前記新たなコンフィギュレーションデータを読み出して該コンフィギュレーションデータに基づき誤り検出データを算出し、該算出した誤り検出データと、前記メモリに書き込まれた前記誤り検出データとを比較して、前記メモリに書き込まれた新たなコンフィギュレーションデータの誤り検出を行い、
前記チェック論理回路による誤り検出の結果、前記新たなコンフィギュレーションデータに誤りが検出されなかった場合に、該新たなコンフィギュレーションデータに基づき、前記プログラマブル論理回路に回路構成を更新させる
更新方法。
【請求項６】
請求項１ないし請求項４のいずれかに記載のプログラマブル論理回路更新装置を備えるデータ処理装置であって、
前記主論理回路は、入力したデータに対して所定のデータ処理を行って出力するものである
データ処理装置。
【請求項７】
プログラマブル論理回路を備えるネットワーク装置であって、
それぞれ前記プログラマブル論理回路を有すると共に、複数の回線ポートを備え、該回線ポートのいずれかから入力したネットワークパケットを、該ネットワークパケットの宛先に応じて他の回線ポートに転送する複数の回線処理カードと、
前記各回線処理カードの統括管理を行うＣＰＵとを備え、
前記各回線処理カードのプログラマブル論理回路は、該各回線処理カードに搭載された所定のメモリからコンフィギュレーションデータを読み込み、該コンフィギュレーションデータに基づいて、該回線処理カードと前記ＣＰＵとの接続を行うインタフェース論理回路と、前記メモリに記憶されたコンフィギュレーションデータの誤り検出を行うチェック論理回路とを実現し、
前記ＣＰＵは、
前記インタフェース論理回路を介して、前記各回線処理カードに搭載されたメモリに、新たなコンフィギュレーションデータと、該新たなコンフィギュレーションデータに基づいて定まる誤り検出データとを書き込む手段と、
前記チェック論理回路によって前記新たなコンフィギュレーションデータの誤り検出を行った結果、前記新たなコンフィギュレーションデータに誤りが検出されなかった場合に、該新たなコンフィギュレーションデータに基づき、前記プログラマブル論理回路に回路構成を更新させる手段とを備え、
前記チェック論理回路は、前記ＣＰＵによって前記新たなコンフィギュレーションデータと前記誤り検出データとが前記メモリに書き込まれた場合に、前記メモリから該新たなコンフィギュレーションデータを読み出して該コンフィギュレーションデータに基づき誤り検出データを算出し、該算出した誤り検出データと、前記ＣＰＵによって前記メモリに書き込まれた前記誤り検出データとを比較することで、前記メモリに書き込まれた新たなコンフィギュレーションデータの誤り検出を行う
ネットワーク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル論理回路の内部回路を更新する技術に関する。
【背景技術】
【０００２】
近年、特定用途向けの集積回路であるＡＳＩＣ（Application Specific Integrated Circuit）に代わり、内部回路のプログラムが可能なＦＰＧＡ（Field Programmable Gate Array）やＣＰＬＤ（Complex Programmable Logic Device）といったプログラマブル論理回路が最終製品の基幹部品として実装されることが多くなっている。
【０００３】
上述したプログラマブル論理回路のうち、ＳＲＡＭ型のＦＰＧＡは、その起動時に不揮発性のメモリからコンフィギュレーションデータと呼ばれるデータをダウンロードして、このデータに基づき内部回路の構成を行うものが一般的である（下記特許文献１参照）。このようなプログラマブル論理回路では、不揮発性のメモリに記憶されるコンフィギュレーションデータを随時書き換えることで、容易に、内部回路の修正や更新を行うことができる。なお、以下では、プログラマブル論理回路がコンフィギュレーションデータを読み込んで内部回路を構成することを、「コンフィギュレーション」と呼ぶ。
【０００４】
【特許文献１】特開２００２−３０５４３８号公報
【特許文献２】特開２００５−２５８９９６号公報
【特許文献３】特開２００２−１９７９００号公報
【特許文献４】特開２００２−９４３６９号公報
【０００５】
こうしたプログラマブル論理回路を搭載した製品では、不揮発性のメモリに記憶されたコンフィギュレーションデータを書き換えた際に、何らかの原因でその書き込み時にエラーが生じてしまうと、システムの起動後のコンフィギュレーションによってＦＰＧＡが正常に機能しなくなるという問題があった。このような問題に対処するために、例えば、コンフィギュレーションデータの書き換え後に、そのＦＰＧＡを備える製品に搭載されたＣＰＵが、コンペアチェック等の方法で書き込み後のコンフィギュレーションデータの整合性を確認することが考えられる。ところが、このような方法では、ＣＰＵにかかる処理負担が増大してしまい、ＣＰＵが本来実行すべき処理に影響が及び、処理速度の低下や起動時間の遅延等が発生してしまうおそれがあった。特に、１つのＣＰＵに対して、複数のＦＰＧＡが接続されているシステムにおいて、このような影響は看過できないものとなる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このようなコンフィギュレーションデータの書き換え時に発生する問題を考慮し、本発明が解決しようとする課題は、メモリに書き込まれたコンフィギュレーションデータの誤りを簡易な構成で検出することにある。
【課題を解決するための手段】
【０００７】
上記課題を踏まえ、本発明のプログラマブル論理回路更新装置を次のように構成した。すなわち、
プログラマブル論理回路の回路構成を更新するプログラマブル論理回路更新装置であって、
所定のメモリに記憶されたコンフィギュレーションデータを読み込み、該コンフィギュレーションデータに基づいて、所定の機能を有する主論理回路と、前記メモリに記憶されたコンフィギュレーションデータの誤り検出を行うチェック論理回路とを実現するプログラマブル論理回路と、
前記メモリに、新たなコンフィギュレーションデータと、該新たなコンフィギュレーションデータに基づいて定まる誤り検出データとを書き込む書込部と、
前記チェック論理回路によって前記新たなコンフィギュレーションデータの誤り検出を行った結果、該新たなコンフィギュレーションデータに誤りが検出されなかった場合に、該新たなコンフィギュレーションデータに基づき、前記プログラマブル論理回路に回路構成を更新させる更新部とを備え、
前記チェック論理回路は、前記書込部によって前記新たなコンフィギュレーションデータと前記誤り検出データとが前記メモリに書き込まれた場合に、前記メモリから該新たなコンフィギュレーションデータを読み出して該コンフィギュレーションデータに基づき誤り検出データを算出し、該算出した誤り検出データと、前記書込部によって前記メモリに書き込まれた前記誤り検出データとを比較することで、前記メモリに書き込まれた新たなコンフィギュレーションデータの誤り検出を行うことを要旨とする。
【０００８】
また、本発明は、次のようなプログラマブル論理回路の更新方法としても構成することができる。すなわち、本発明の更新方法は、
プログラマブル論理回路の回路構成を更新する更新方法であって、
前記プログラマブル論理回路が、所定のメモリに記憶されたコンフィギュレーションデータを読み込み、該コンフィギュレーションデータに基づいて、所定の機能を有する主論理回路と、前記メモリに記憶されたコンフィギュレーションデータの誤り検出を行うチェック論理回路とを実現し、
所定の書込部が、前記メモリに、新たなコンフィギュレーションデータと、該新たなコンフィギュレーションデータに基づいて定まる誤り検出データとを書き込み、
前記書込部によって前記新たなコンフィギュレーションデータと前記誤り検出データとが前記メモリに書き込まれた場合に、前記チェック論理回路が、前記メモリから前記新たなコンフィギュレーションデータを読み出して該コンフィギュレーションデータに基づき誤り検出データを算出し、該算出した誤り検出データと、前記メモリに書き込まれた前記誤り検出データとを比較して、前記メモリに書き込まれた新たなコンフィギュレーションデータの誤り検出を行い、
前記チェック論理回路による誤り検出の結果、前記新たなコンフィギュレーションデータに誤りが検出されなかった場合に、該新たなコンフィギュレーションデータに基づき、前記プログラマブル論理回路に回路構成を更新させることを要旨とする。
【０００９】
本発明のプログラマブル論理回路更新装置および更新方法では、新たなコンフィギュレーションデータをメモリに書き込むと、プログラマブル論理回路内に実現されたチェック論理回路によって、そのコンフィギュレーションデータがメモリに正しく書き込まれたかを確認することができる。従って、電源の再投入に伴ってプログラム論理回路のコンフィギュレーションが実行されたとしても、メモリに対する書き込みエラー等に起因して、プログラマブル論理回路が動作不能となることを抑制することができる。
【００１０】
また、本発明では、コンフィギュレーションデータの誤り検出を行うチェック論理回路を、プログラマブル論理回路の内部回路として実現するものとした。そのため、新たなハードウェアを別途用意することなく簡易な構成で誤り検出を行うことができる。
【００１１】
なお、上記構成のプログラマブル論理回路更新装置において、前記プログラマブル論理回路としては、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を採用することができる。また、ＦＰＧＡ以外にも、電源の投入毎にコンフィギュレーションデータを入力して回路構成を行う他のデバイスを採用するものとしてもよい。
【００１２】
上記構成において、メモリに書き込まれる誤り検出データは、書込部がコンフィギュレーションデータの書き込み時に事前に算出して求めるものとしてもよい。また、その他にも、コンフィギュレーションデータを用意する他の機器によって予め算出されているものとしてもよい。
【００１３】
上記構成のプログラマブル論理回路更新装置において、
前記チェック論理回路は、前記誤り検出の結果、前記新たなコンフィギュレーションデータに誤りを検出した場合に、前記書込部に、再度、前記新たなコンフィギュレーションデータと前記誤り検出データとを書き込ませるものとしてもよい。
【００１４】
このような構成であれば、メモリに対する新たなコンフィギュレーションデータの書き込みが失敗した場合であっても、再度、書き込み処理を行うことができるため、コンフィギュレーションデータが正しく書き込まれる精度を高めることができる。
【００１５】
上記構成のプログラマブル論理回路更新装置において、
前記誤り検出データは、前記新たなコンフィギュレーションデータから算出されたチェックサムデータ、ＣＲＣデータ、および、パリティデータのうち、いずれかのデータ、または、これらのデータを２以上組み合わせたデータであるものとすることができる。
【００１６】
このような構成であれば、既存の誤り検出方法を用いて容易にメモリに書き込まれたコンフィギュレーションデータの誤りを検出することができる。特に、チェックサムデータによって誤り検出を行うものとすれば、単純な加算回路や比較回路によって誤り検出の精度が比較的高いチェック論理回路を実現することができる。この結果、プログラマブル論理回路の回路規模が増大することを抑制することができる。
【００１７】
また、本発明は、上述したプログラマブル論理回路更新装置を備え、前記主論理回路が、入力したデータに対して所定のデータ処理を行って出力するデータ処理装置として構成することができる。
【００１８】
このようなデータ処理装置であれば、例えば、入力したネットワークデータの宛先アドレスを解析したり、転送したパケットの数をカウントしたりする処理を行うことができる。また、その他にも、入力した画像データや映像データに対して、種々の画像処理を施すものとすることもできるし、入力した音声データに基づき音声を出力する処理を行うものとすることも可能である。
【００１９】
また、本発明は、次のようなネットワーク装置としても構成することができる。すなわち、本発明のネットワーク装置は、
プログラマブル論理回路を備えるネットワーク装置であって、
それぞれ前記プログラマブル論理回路を有すると共に、複数の回線ポートを備え、該回線ポートのいずれかから入力したネットワークパケットを、該ネットワークパケットの宛先に応じて他の回線ポートに転送する複数の回線処理カードと、
前記各回線処理カードの統括管理を行うＣＰＵとを備え、
前記各回線処理カードのプログラマブル論理回路は、該各回線処理カードに搭載された所定のメモリからコンフィギュレーションデータを読み込み、該コンフィギュレーションデータに基づいて、該回線処理カードと前記ＣＰＵとの接続を行うインタフェース論理回路と、前記メモリに記憶されたコンフィギュレーションデータの誤り検出を行うチェック論理回路とを実現し、
前記ＣＰＵは、
前記インタフェース論理回路を介して、前記各回線処理カードに搭載されたメモリに、新たなコンフィギュレーションデータと、該新たなコンフィギュレーションデータに基づいて定まる誤り検出データとを書き込む手段と、
前記チェック論理回路によって前記新たなコンフィギュレーションデータの誤り検出を行った結果、前記新たなコンフィギュレーションデータに誤りが検出されなかった場合に、該新たなコンフィギュレーションデータに基づき、前記プログラマブル論理回路に回路構成を更新させる手段とを備え、
前記チェック論理回路は、前記ＣＰＵによって前記新たなコンフィギュレーションデータと前記誤り検出データとが前記メモリに書き込まれた場合に、前記メモリから該新たなコンフィギュレーションデータを読み出して該コンフィギュレーションデータに基づき誤り検出データを算出し、該算出した誤り検出データと、前記ＣＰＵによって前記メモリに書き込まれた前記誤り検出データとを比較することで、前記メモリに書き込まれた新たなコンフィギュレーションデータの誤り検出を行うことを要旨とする。
【００２０】
本発明のネットワーク装置は、プログラマブル論理回路によって実現されたインタフェース論理回路を介して、１つのＣＰＵと複数の回線処理カードとが接続されている態様を採っている。こうした本発明のネットワーク装置によれば、各回線処理カードが備えるチェック論理回路によって、各回線処理カードが、それぞれ自立的に、メモリに書き込まれた新たなコンフィギュレーションデータの誤りを検出することができる。そのため、ＣＰＵにかかる処理負担が軽減されるとともに、コンフィギュレーションデータの書き込みエラーに伴う再起動後の動作不良を抑制することが可能になる。
【発明を実施するための最良の形態】
【００２１】
以下、上述した本発明の作用・効果を一層明らかにするため、本発明の実施の形態および実施例を次の順序で説明する。
Ａ．実施の形態：
（Ａ１）プログラマブル論理回路更新装置の構成：
（Ａ２）コンフィギュレーションデータ更新時の動作：
Ｂ．実施例：
（Ｂ１）ネットワークスイッチ装置の構成：
（Ｂ２）プログラマブル論理回路更新装置の構成：
（Ｂ３）コンフィギュレーションデータ更新時の動作：
【００２２】
Ａ．実施の形態：
（Ａ１）プログラマブル論理回路更新装置の構成：
図１は、本発明の実施形態としてのプログラマブル論理回路更新装置１００の概略構成を示す説明図である。図示するように、本実施形態のプログラマブル論理回路更新装置１００は、ＦＰＧＡ１１０と更新制御回路１２０とフラッシュメモリ１３０とＣＰＵ１４０とＲＡＭ１５０とを備えている。本実施形態のＦＰＧＡ１１０は、本願の「プログラマブル論理回路」に対応し、フラッシュメモリ１３０は「メモリ」に、ＣＰＵ１４０および更新制御回路１２０は「書込部」と「更新部」に、それぞれ対応する。
【００２３】
ＦＰＧＡ１１０は、制御信号線１２２と、データ信号線１２４と、要求信号線１２６とによって更新制御回路１２０に接続されている。この更新制御回路１２０には、フラッシュインタフェース１３５を介してフラッシュメモリ１３０が接続されている。ＦＰＧＡ１１０と更新制御回路１２０とには、ＣＰＵバス１４５を介して、ＣＰＵ１４０が接続されている。ＣＰＵ１４０には、メモリバス１５５を介してＲＡＭ１５０が接続されている。
【００２４】
ＦＰＧＡ１１０は、例えば、数十万ゲートの規模を有するプログラマブル論理回路であり、ＬＵＴ（Look Up Table）やセレクタ、フリップフロップ等の回路を多数備えている。ＬＵＴの内容は揮発性のＳＲＡＭによって保持されている。そのため、電源の投入毎に、外部のメモリからコンフィギュレーションデータと呼ばれるデータを入力し、これにより、内部の論理回路を構成（コンフィギュレーション）する。本実施形態では、このコンフィギュレーションにより、主機能論理回路１１２と、チェック論理回路１１４とが内部回路として構成される。
【００２５】
主機能論理回路１１２は、ＦＰＧＡ１１０の動作状態において所定の機能を発揮するメインの論理回路である。この主機能論理回路１１２によって実現する機能は、プログラマブル論理回路更新装置１００を備える装置に応じて適宜種々のものを適用できる。例えば、プログラマブル論理回路更新装置１００がネットワーク装置に搭載される場合には、ＭＩＢ（Management Information Base）情報としてパケットの転送数をカウントする論理回路や回線毎のＭＡＣアドレスを学習する論理回路等として構成することができる。また、映像機器や音声機器に搭載される場合には、画像処理や音声出力を行う回路としても構成することができる。一方、チェック論理回路１１４は、ＣＰＵ１４０が、フラッシュメモリ１３０に新たなコンフィギュレーションデータを書き込んだ場合に、書き込み後のデータの誤り検出を行う論理回路である。このチェック論理回路１１４によって行われる処理の詳細については後述する。
【００２６】
更新制御回路１２０は、プログラマブル論理回路更新装置１００の電源投入時やＣＰＵ１４０から指示を受けた場合に、ＦＰＧＡ１１０にコンフィギュレーションを行わせる機能と、ＣＰＵ１４０から転送された新たなコンフィギュレーションデータを、フラッシュメモリ１３０に中継する機能とを備える。更新制御回路１２０は、例えば、ＦＰＧＡ１１０とは異なるＦＰＧＡや、ＣＰＬＤ、マイクロコンピュータ等によって構成することができる。
【００２７】
更新制御回路１２０は、プログラマブル論理回路更新装置１００の電源投入時やＣＰＵ１４０から指示を受けた場合に、制御信号線１２２を駆動することで、ＦＰＧＡ１１０に対してコンフィギュレーションを行うよう命令する。ＦＰＧＡ１１０は、この命令を受けると、データ信号線１２４を通じて更新制御回路１２０によってフラッシュメモリ１３０から転送されたコンフィギュレーションデータを読み込み、内部回路（主機能論理回路１１２およびチェック論理回路１１４）を構成する。
【００２８】
ＣＰＵ１４０は、フラッシュメモリ１３０に記憶されたコンフィギュレーションデータを更新する機能を備える。この更新処理は、ＲＡＭ１５０に記憶された所定のプログラムを実行することで行われる。ＣＰＵ１４０に接続されたＲＡＭ１５０には、新たなコンフィギュレーションデータが記憶されている。この新たなコンフィギュレーションデータにも、チェック論理回路１１４を実現するためのデータが含まれている。ＣＰＵ１４０はメモリバス１５５を介してこのデータを読み込み、更新制御回路１２０を介してフラッシュメモリ１３０に書き込みを行う。ＲＡＭ１５０に記憶されている新たなコンフィギュレーションデータは、例えば、ネットワークやメモリカード、ＣＤ−ＲＯＭ等の媒体から入力することができる。
【００２９】
（Ａ２）コンフィギュレーションデータ更新時の動作：
図２は、本実施形態のプログラマブル論理回路更新装置１００において、コンフィギュレーションデータを更新する際の動作の流れを示すフローチャートである。
【００３０】
まず、ＣＰＵ１４０は、ＲＡＭ１５０から新たなコンフィギュレーションデータを読み出し、更新制御回路１２０を介して、フラッシュメモリ１３０内のコンフィギュレーションデータの書き換えを行う（ステップＳ１００）。このとき、ＣＰＵ１４０は、ＲＡＭ１５０から新たなコンフィギュレーションデータを読み込むと同時に、このデータの値を合計することで、誤り検出データとしてチェックサムデータを算出する。そして、このチェックサムデータを、新たなコンフィギュレーションデータとともにフラッシュメモリ１３０に書き込む（ステップＳ１１０）。なお、かかる処理では、予め算出されたチェックサムデータをＲＡＭ１５０から読み出し、これをフラッシュメモリ１３０に書き込むものとしてもよい。
【００３１】
コンフィギュレーションデータとチェックサムデータの書き換えが完了すると、ＣＰＵ１４０は、ＣＰＵバス１４５を介して、ＦＰＧＡ１１０内のチェック論理回路１１４に、新たなコンフィギュレーションデータの誤り検出を行うよう命令する（ステップＳ１２０）。チェック論理回路１１４は、この命令を受けると、要求信号線１２６を駆動して、更新制御回路１２０に対し、新たなコンフィギュレーションデータとチェックサムデータの転送を要求する（ステップＳ１３０）。かかる要求を受けると、更新制御回路１２０は、フラッシュメモリ１３０からコンフィギュレーションデータおよびチェックサムデータを読み出し、データ信号線１２４を介してこれらをチェック論理回路１１４に転送する（ステップＳ１４０）。なお、このとき更新制御回路１２０は、ＦＰＧＡ１１０が通常のコンフィギュレーションを開始しないよう、制御信号線１２２の駆動は行わない。
【００３２】
チェック論理回路１１４は、新たなコンフィギュレーションデータとチェックサムデータとを受信すると、受信したコンフィギュレーションデータを構成する各データの合計値からチェックサムデータを算出し、こうして算出したチェックサムデータと、データ信号線１２４を介して入力したチェックサムデータとを比較する（ステップＳ１５０）。比較の結果、値が異なれば、誤りが検出されたことになる。このように誤り検出を行うと、チェック論理回路１１４は、この誤り検出の結果をＣＰＵ１４０に通知する（ステップＳ１６０）。
【００３３】
ＣＰＵ１４０は、誤り検出の結果を受信し、その結果が「誤りなし」であれば（ステップＳ１７０：Ｙｅｓ）、更新制御回路１２０に指令を与え、ＦＰＧＡ１１０のコンフィギュレーションを行わせる（ステップＳ１８０）。こうすることで、書き換え後のコンフィギュレーションデータがフラッシュメモリ１３０から読み込まれ、ＦＰＧＡ１１０に新たな論理回路（新たな主機能論理回路１１２およびチェック論理回路１１４）が構成される。これに対して、誤り検出の結果が、「誤りあり」であれば（ステップＳ１７０：Ｎｏ）、ＣＰＵ１４０は、再度上記ステップＳ１００に処理を戻し、再度、コンフィギュレーションデータの書き換えを実行する。こうすることで、新たなコンフィギュレーションデータに誤りがなくなるまで、フラッシュメモリ１３０に新たなコンフィギュレーションデータが書き込まれることになる。なお、上記ステップＳ１８０で実行されるコンフィギュレーションのタイミングは、ステップＳ１７０で「誤りなし」と判定された直後でなくてもよい。例えば、主機能論理回路１１２が機能を停止しているタイミングや、装置全体が再起動されるタイミングで実行することができる。
【００３４】
以上で説明した本実施形態によれば、ＦＰＧＡ１１０の動作中にフラッシュメモリ１３０に新たなコンフィギュレーションデータが書き込まれると、チェック論理回路１１４によってそのデータが正しく書き込まれたか否かをチェックすることができる。従って、コンフィギュレーションデータの書き込みエラーを原因として、次回の電源投入等に行われるコンフィギュレーションにおいてＦＰＧＡ１１０に動作不良が発生することを防止することができる。
【００３５】
また、本実施形態では、フラッシュメモリ１３０に書き込まれたコンフィギュレーションデータの誤り検出を、ＦＰＧＡ１１０の内部回路として構成したチェック論理回路１１４で行うものとした。従って、誤り検出専用のハードウェアを別途用意することなく、低コストに装置を構成することができる。特に、本実施形態では、コンフィギュレーションデータが正しく書き込まれたか否かの確認をチェックサムデータを用いて行うものとしたため、チェック論理回路１１４は、比較的単純な加算回路や比較回路によって実現することができる。従って、ＦＰＧＡ１１０の回路規模が増大することを抑制することができるので、ＦＰＧＡ１１０にチェック論理回路を追加することに伴うコストアップを抑制することができる。
【００３６】
なお、上述したコンフィギュレーションデータ書き換え時の動作において、書き換え後のコンフィギュレーションデータに誤りが検出された場合には、ＣＰＵ１４０は、再度、フラッシュメモリ１３０に新たなコンフィギュレーションデータを書き込むものとしたが、この再書き込みには、回数制限を設けるものとしてもよい。例えば、３回連続して書き込みに失敗した場合には、警告音を発したり、所定のＬＥＤを点滅あるいは点灯したりするなどして、管理者に書き込みが正常に行えないことを報知するものとしてもよい。こうすることで、ハードウェアの不具合等によって正常な書き込みが行えないことを管理者に知らせることが可能になる。
【００３７】
Ｂ．実施例：
（Ｂ１）ネットワークスイッチ装置の構成：
次に、上述した実施の形態を踏まえ、本発明のより具体的な実施例について説明する。
図３は、実施例としてのプログラマブル論理回路更新装置５４０を備えるネットワークスイッチ装置２００の概略構成を示す説明図である。このネットワークスイッチ装置２００は、いわゆるシャーシ型のネットワークスイッチ装置であり、内部に、ＣＰＵカード３００と、スイッチ処理カード４００と、複数の回線処理カード５００とを備えている。本実施例では、回線処理カード５００にプログラマブル論理回路更新装置５４０が備えられているものとする。ただし、ＣＰＵカード３００やスイッチ処理カード４００にもプログラマブル論理回路更新装置が備えられているものとしてもよい。
【００３８】
ＣＰＵカード３００は、ネットワークスイッチ装置２００の全般的な統括制御を行うためのカードである。ＣＰＵカード３００は、ＣＰＵ３１０とＲＡＭ３３０とＲＯＭ３４０と、ＣＰＵインタフェースとして機能するＦＰＧＡ３２０とによって構成されている。ＲＯＭ３４０にはファームウェアが格納されており、ＣＰＵ３１０は、このファームウェアをＲＡＭ３３０に展開して実行することで種々の処理を行う。実行する処理としては、例えば、回線処理カード５００が備えるＦＰＧＡ５２０の回路内容の更新処理、図示していない外部機器や操作パネルからの設定操作の受け付け、ルーティングテーブルの維持管理、ＳＮＭＰ（Simple Network Management Protocol）プロトコルの処理、回線処理カード５００が備える各回線ポート５１０の有効／無効あるいは回線速度の設定などといった処理がある。
【００３９】
ＣＰＵカード３００のＲＡＭ３３０には、各回線処理カード５００に実装されたＦＰＧＡ５２０の回路内容を更新するための新たなコンフィギュレーションデータが記憶されている。このコンフィギュレーションデータは、例えば、ネットワークやメモリカード、ＣＤ−ＲＯＭ等の媒体を介してＲＡＭ３３０に入力することができる。
【００４０】
ＣＰＵカード３００に実装されたＦＰＧＡ３２０は、スイッチ処理カード４００のＦＰＧＡ４２０や各回線処理カード５００のＦＰＧＡ５２０とＣＰＵバス３６０によって接続されている。上述したように、これらのＦＰＧＡは、それぞれ、ＣＰＵ１４０との通信を仲介するインタフェース回路として機能する。
【００４１】
回線処理カード５００は、それぞれがスイッチングハブとしての機能を備えるカードである。回線処理カード５００は、複数の回線ポート５１０と、回線処理ＬＳＩ５３０と、ＣＰＵインタフェースとして機能するＦＰＧＡ５２０と、プログラマブル論理回路更新装置５４０とによって構成されている。回線処理ＬＳＩ５３０は、各回線ポート５１０から入力したパケットのＭＡＣアドレスを解析して最適な回線ポート５１０にパケットの転送を行う。この回線処理ＬＳＩ５３０は、スイッチ処理カード４００のスイッチＬＳＩ４１０に、広帯域な通信路４６０を介して接続されている。回線処理ＬＳＩ５３０は、入力したパケットが、自己の管理していないポート宛のパケットであれば、通信路４６０を通じてそのパケットをスイッチ処理カード４００に転送する。
【００４２】
スイッチ処理カード４００は、回線処理カード５００から転送されたパケットを他の回線処理カード５００に転送するためのカードである。スイッチ処理カード４００は、スイッチＬＳＩ４１０とＣＰＵインタフェースとして機能するＦＰＧＡ４２０とによって構成されている。スイッチＬＳＩ４１０には、各回線処理カード５００の回線処理ＬＳＩ５３０が接続されている。スイッチＬＳＩ４１０は、ある回線処理カード５００からパケットの転送を受けると、そのパケットの宛先を解析して、その宛先に適した回線処理カード５００に対してそのパケットを転送する機能を備える。
【００４３】
（Ｂ２）プログラマブル論理回路更新装置の構成：
図４は、回線処理カード５００が備えるプログラマブル論理回路更新装置５４０の詳細な構成を示す説明図である。プログラマブル論理回路更新装置５４０は、ＦＰＧＡ５２０と、更新制御回路５４２と、フラッシュメモリ５４４とから構成される。
【００４４】
ＦＰＧＡ５２０は、内部回路として、ＣＰＵインタフェース論理回路５２２とチェック論理回路５２４とを備えている。ＣＰＵインタフェース論理回路５２２は、ＣＰＵカード３００のＣＰＵ１４０と回線処理カード５００とを接続するためのインタフェース回路である。このＣＰＵインタフェース論理回路５２２は、バッファ領域として５１２バイト分の内蔵ＲＡＭ５２３を備えている。チェック論理回路５２４は、上述した実施形態のチェック論理回路１１４と同様に、フラッシュメモリ５４４に記憶されたコンフィギュレーションデータの誤り検出を行うための回路である。チェック論理回路５２４は、ＣＰＵ３１０からの種々の指令の受け付けや、誤り検出の結果を保存するためのレジスタ５２５を内部に備えている。ＣＰＵインタフェース論理回路５２２とチェック論理回路５２４とは、ＦＰＧＡ５２０が、フラッシュメモリ５４４に記憶されたコンフィギュレーションデータを読み込むことで構成される。
【００４５】
更新制御回路５４２は、上述した実施形態の更新制御回路１２０と同等の機能を備える。すなわち、回線処理カード５００の電源投入時に、制御信号線５５２を用いてＦＰＧＡ５２０にコンフィギュレーションを行わせる機能と、ＣＰＵカード３００からＣＰＵインタフェース論理回路５２２を介して転送された新たなコンフィギュレーションデータを、フラッシュメモリ５４４に中継する機能とを備える。本実施例の更新制御回路５４２は、不揮発性のプログラマブル論理回路であるＣＰＬＤによって構成されている。
【００４６】
ＣＰＵインタフェース論理回路５２２と更新制御回路５４２とは、ローカルバス５５１によって接続されている。また、チェック論理回路５２４と更新制御回路５４２とは、データ信号線５５３と、要求信号線５５４と、応答信号線５５５とによって接続されている。更新制御回路５４２とフラッシュメモリ５４４とは、フラッシュインタフェース５５６によって接続されている。
【００４７】
（Ｂ３）コンフィギュレーションデータ更新時の動作：
図５は、本実施例のプログラマブル論理回路更新装置５４０において、コンフィギュレーションデータを更新する際の動作の流れを示すフローチャートである。
【００４８】
まず、ＣＰＵカード３００に実装されたＣＰＵ３１０は、フラッシュメモリ５４４内に記憶された更新前のコンフィギュレーションデータの消去を行う（ステップＳ２００）。
【００４９】
次に、ＣＰＵ３１０は、ＣＰＵカード３００上のＲＡＭ３４０に記憶された新たなコンフィギュレーションデータを５１２バイト単位に分割し、分割した各データを、回線処理カード５００のＣＰＵインタフェース論理回路５２２に送信する。ＣＰＵインタフェース論理回路５２２は、このデータの転送を受けると、一旦、内蔵ＲＡＭ５２３にバッファリングし、これを、順次、フラッシュメモリ５４４に書き込む（ステップＳ２１０）。なお、本実施例では、ＲＡＭ３４０に記憶されている新たなコンフィギュレーションの先頭には、このコンフィギュレーションデータから予め計算されたチェックサムデータが付加されているものとする。
【００５０】
ＣＰＵインタフェース論理回路５２２は、５１２バイトのデータの書き込みが完了したと判断すると（ステップＳ２２０：Ｙｅｓ）、その旨をＣＰＵ３１０に通知する。ＣＰＵ３１０は、この通知を受けると、全てのデータの書き込みが完了したかを判断し（ステップＳ２３０）、完了していなければ（ステップＳ２３０：Ｎｏ）、次の５１２バイトのデータをＣＰＵインタフェース論理回路５２２に転送し、書き込みを行う。
【００５１】
上記ステップＳ２３０において、ＣＰＵ３１０が、全てのデータの書き込みが完了したと判断すると（ステップＳ２３０：Ｙｅｓ）、続いて、書き込みを行った新たなコンフィギュレーションデータのサイズをチェック論理回路５２４のレジスタに設定する（ステップＳ２４０）。チェック論理回路５２４は、この設定を受けると、要求信号線５５４を駆動して、更新制御回路５４２に対して上記ステップＳ２４０で設定を受けたサイズ分のコンフィギュレーションデータの転送を要求する（ステップＳ２５０）。更新制御回路５４２は、この要求を受けると、コンフィギュレーションデータの転送の準備が完了次第、応答信号線５５５を駆動し、これからデータの転送を開始する旨をチェック論理回路５２４に通知する。かかる通知の後、更新制御回路５４２は、フラッシュメモリ５４４からコンフィギュレーションデータを読み出し、データ信号線５５３を介して、チェック論理回路５２４に新たなコンフィギュレーションデータを転送する（ステップＳ２６０）。チェック論理回路５２４は、このデータの転送を受けて、コンフィグレーションデータの誤り検出を実行する（ステップＳ２７０）。
【００５２】
上述したように、フラッシュメモリ５４４に記憶された新たなコンフィギュレーションデータの先頭には、予め計算されたチェックサムデータが付加されている。従って、チェック論理回路５２４は、更新制御回路５４２からコンフィギュレーションデータの転送を受けると、まず、このチェックサムデータをコンフィギュレーションデータから分離し、その値を保持しておく。そして、データ信号線５５３を通じて受信したコンフィギュレーションデータの各値を加算していく。そして、その総計から算出されるチェックサムデータと、保持しておいたチェックサムデータの値とが一致しているかを確認する。これらの値が一致すれば、コンフィギュレーションデータが正しくフラッシュメモリ５４４に書き込まれていることになる。
【００５３】
以上の処理によって、書き換え後のコンフィギュレーションデータの誤り検出が完了すると、チェック論理回路５２４は、誤り検出の結果をレジスタ５２５に書き込み（ステップＳ２８０）、ＣＰＵ３１０に誤り検出が完了した旨を通知する。
【００５４】
ＣＰＵ３１０は、チェック論理回路５２４から誤り検出が完了した旨の通知を受けると、レジスタ５２５に記録された検出結果を読み込む（ステップＳ２９０）。そして、この読み込みの結果、コンフィギュレーションデータに誤りなしと判断すれば（ステップＳ３００：Ｙｅｓ）、更新制御回路５４２に指示を与え、ＦＰＧＡ５２０のコンフィギュレーションを行わせる（ステップＳ３１０）。これに対して、コンフィグレーションデータに誤りがあると判断すれば（ステップＳ３００：Ｎｏ）、コンフィギュレーションデータが正しくフラッシュメモリ５４４に書き込まれていないことになるため、再度、上記ステップＳ２００から処理をやり直す。こうすることで、新たなコンフィギュレーションデータが正しくフラッシュメモリ５４４に書き込まれるまで、上述した一連の処理が繰り返し実行されることになる。
【００５５】
なお、本実施例においても、上述した実施形態と同様に、新たなコンフィギュレーションデータが正しく書き込めなかった場合において、フラッシュメモリ５４４に対する再書き込み回数を制限するものとしてもよい。また、上記ステップＳ３１０で実行されるコンフィギュレーションは、ＣＰＵインタフェース論理回路５２２が機能を停止しているタイミングや、回線処理カード５００の電源が再投入されるタイミングで実行することができる。また、上記ステップＳ２７０によってチェック論理回路５２４が誤り検出を行った結果、その判断結果が、「誤りなし」であれば、各回線処理カード５００は、ＣＰＵ３１０からの指示を待つことなく、自立的にＦＰＧＡ５２０のコンフィギュレーションを行うものとすることができる。
【００５６】
以上で説明した実施例によれば、ネットワークスイッチ装置２００が備える複数の回線処理カード５００が、それぞれ自立的に新たなコンフィギュレーションデータのチェックを行うことになる。従って、ＣＰＵ３１０にかかる処理負担が軽減される。この結果、ＣＰＵ３１０は、早期に、コンフィギュレーションデータの更新処理から解放されるため、自身が本来実行すべき処理（例えば、ＳＮＭＰプロトコルの処理、設定操作の受け付け等）に早期に復帰することができる。
【００５７】
また、本実施例では、ＣＰＵ３１０が書き換え後のコンフィギュレーションデータをチェックするのではなく、各回線処理カード５００が自立的に書き換え後のコンフィギュレーションデータをチェックするため、各回線処理カード５００は、ＣＰＵ３１０によるチェック等を待たずに即座に自己が備えるＦＰＧＡ５２０の更新を行うことができる。従って、回線処理カード５００の更新自体が高速になり、ＦＰＧＡ５２０の更新を即座に行わないとネットワークスイッチ装置２００の実運用に支障をきたすような状況においても、迅速に対応することが可能になる。
【００５８】
また、本実施例では、ＣＰＵインタフェース論理回路５２２が備える内蔵ＲＡＭ５２３を利用して５１２バイト毎にコンフィギュレーションデータの転送を行うので、データの書き換え時にＣＰＵバス３６０を長期間占有することがない。従って、ＣＰＵバス３６０を利用した他の処理に対する影響を抑制しつつ、効率的にフラッシュメモリ５４４に対する書き込みを行うことができる。
【００５９】
また、本実施例においても、ＦＰＧＡ５２０の動作中に、新たなコンフィギュレーションデータが正しく書き込まれたかをチェックすることができるので、コンフィギュレーションデータの書き込みエラーに伴って、次回の電源投入時にＦＰＧＡ５２０が動作不良となることを防止することができる。
【００６０】
以上、本発明の実施の形態および実施例について説明したが、本発明はこれらの例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、上述した実施形態や実施例では、コンフィギュレーションデータの誤り検出にチェックサムデータを用いるものとしたが、その他にも、例えば、ＣＲＣデータやパリティデータを利用することができる。また、チェックサムデータやＣＲＣデータ、パリティデータ等のうち２以上のデータを組み合わせて誤り検出を行うことも可能である。
【図面の簡単な説明】
【００６１】
【図１】実施形態としてのプログラマブル論理回路更新装置１００の概略構成を示す説明図である。
【図２】実施形態においてコンフィギュレーションデータを更新する際の動作の流れを示すフローチャートである。
【図３】実施例としてのプログラマブル論理回路更新装置５４０を備えるネットワークスイッチ装置２００の概略構成を示す説明図である。
【図４】回線処理カード５００が備えるプログラマブル論理回路更新装置５４０の詳細な構成を示す説明図である。
【図５】実施例においてコンフィギュレーションデータを更新する際の動作の流れを示すフローチャートである。
【符号の説明】
【００６２】
１００…プログラマブル論理回路更新装置
１１０…ＦＰＧＡ
１１２…主機能論理回路
１１４…チェック論理回路
１２０…更新制御回路
１２２…制御信号線
１２４…データ信号線
１２６…要求信号線
１３０…フラッシュメモリ
１３５…フラッシュインタフェース
１４０…ＣＰＵ
１４５…ＣＰＵバス
１５０…ＲＡＭ
１５５…メモリバス
２００…ネットワークスイッチ装置
３００…ＣＰＵカード
３１０…ＣＰＵ
３２０…ＦＰＧＡ
３３０…ＲＡＭ
３４０…ＲＯＭ
３６０…ＣＰＵバス
４００…スイッチ処理カード
４１０…スイッチＬＳＩ
４２０…ＦＰＧＡ
４６０…通信路
５００…回線処理カード
５１０…回線ポート
５２０…ＦＰＧＡ
５２２…ＣＰＵインタフェース論理回路
５２３…内蔵ＲＡＭ
５２４…チェック論理回路
５２５…レジスタ
５３０…回線処理ＬＳＩ
５４０…プログラマブル論理回路更新装置
５４２…更新制御回路
５４４…フラッシュメモリ
５５１…ローカルバス
５５２…制御信号線
５５３…データ信号線
５５４…要求信号線
５５５…応答信号線
５５６…フラッシュインタフェース
【図１】
2008052389.tif 000003
【図２】
2008052389.tif 000004
【図３】
2008052389.tif 000005
【図４】
2008052389.tif 000006
【図５】
2008052389.tif 000007