(57)【要約】      （修正有）【課題】パケットのエラー誤判定確率を低減しエラーパケットを確実に廃棄する装置を提供する。【解決手段】パケット処理回路２５３は、パケットの帯域制御を行うポリサブロック２５４と、パケット伝送に用いられるプロトコルの一つであるＭＰＬＳ化を行うＭＰＬＳ化ブロック２５５と、パケットの出力レートを平滑化するシェーパブロック２５６により構成される。各処理回路ブロック毎に具備される診断回路２５９−１〜２５９−３と、ユーザロジック情報を読み出し一時的に保持するＣＲＡＭ２５２に発生するエラーを監視するＣＲＡＭ監視／訂正部２６３と、診断回路の診断結果及び、ＣＲＡＭ監視／訂正部の監視結果に基づき、セレクタ部２６１に対してシェーパブロックからのパケットを後段に転送する動作と、パケット検査ブロック２６０からのパケットを後段に転送する動作とを切り替える切り替え指示信号２８６を送信する異常処理ブロック２６２を具備する。【選択図】図２
2016052074.tif 000002
【特許請求の範囲】
【請求項１】
外部から入力されたデータに所定の処理を行うデータ処理部と、
前記データ処理部と接続され、前記入力されたデータに基づいて誤り検出に関する情報を生成し、生成した前記誤り検出に関する情報を前記データ処理部へ送信する誤り検出情報生成部と、
前記データ処理部と接続され、前記データ処理部から前記所定の処理が行われたデータおよび前記誤り検出に関する情報を受信し、受信した前記所定の処理が行われたデータおよび前記誤り検出に関する情報に対して正常性に関する検査を行い、検査結果に応じて検査した前記所定の処理が行われたデータの廃棄を制御するデータ検査部と、
前記データ処理部および前記データ検査部と接続され、前記データ処理部から受信するデータと前記データ検査部から受信するデータとのいずれかのデータを選択して転送する第１の選択部と、
前記データ処理部の状態を監視し、前記第１の選択部を制御する状態監視制御部とを有することを特徴とする通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記状態監視制御部は、
前記データ処理部に異常が検出された場合、前記データ検査部から受信するデータを選択して転送するよう前記第１の選択部を制御し、
前記データ検査部は、
受信した前記所定の処理が行われたデータまたは前記誤り検出に関する情報のうち、少なくともいずれか一方に異常を検出した場合、検査した前記所定の処理が行われたデータを廃棄することを特徴とする通信装置。
【請求項３】
請求項２に記載の通信装置であって、
前記状態監視制御部は、
前記データ検査部と接続され、前記データ検査部の状態を監視する監視部を備え、
前記監視部は、
前記データ検査部の状態を診断する診断信号を生成し、前記データ検査部へ送信する診断信号生成部と、
前記診断信号生成部が生成し前記データ検査部へ送信した前記診断信号を前記データ検査部から受信し、受信した前記診断信号の確認を行うことによって前記データ検査部の状態を監視する診断信号確認部とを有し、
前記データ検査部は、
前記データ処理部および前記監視部と接続され、受信した前記所定の処理が行われたデータおよび前記誤り検出に関する情報と前記診断信号生成部から受信する前記診断信号とのいずれかを選択して転送する第２の選択部と、
前記第２の選択部と接続され、前記所定の処理が行われたデータおよび前記誤り検出に関する情報に対して誤り検出によって前記正常性に関する検査を行う誤り検出部とを備えることを特徴とする通信装置。
【請求項４】
請求項３に記載の通信装置であって、
プログラミング可能な論理回路を有するプログラマブルゲートアレイと、
前記論理回路を定義する情報である機能情報を保持する機能情報保持部とを有し、
前記プログラマブルゲートアレイは、
前記機能情報保持部が保持する前記機能情報を読み出して、一時的に保持する機能情報一時保持部と、
前記機能情報一時保持部が一時的に保持する前記機能情報によって、前記データ処理部と前記誤り検出情報生成部と前記データ検査部と前記第１の選択部と前記状態監視制御部と前記機能情報一時保持部の監視を行う機能情報一時保持部監視部とを構成する機能情報部とを備え、
前記状態監視制御部は、
前記データ処理部に異常が検出された場合、前記データ検査部から受信するデータを選択して転送するよう前記第１の選択部を制御し、前記データ処理部に異常が検出された旨を前記機能情報一時保持部監視部に通知し、
前記機能情報一時保持部監視部は、
前記情報監視制御部から前記通知を受信すると、前記機能情報一時保持部の状態を検査して前記機能情報一時保持部の状態を監視することを特徴とする通信装置。
【請求項５】
請求項４に記載の通信装置であって、
前記機能情報一時保持部監視部は、
前記機能情報一時保持部の状態を検査した結果、前記機能情報一時保持部に異常が発生している場合は、前記機能情報保持部が保持する前記機能情報を用いて前記機能情報一時保持部の異常の訂正を実行することを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、「Ｗｈｅｎ Ｔｈｅ ＣＲＣ ａｎｄ ＴＣＰ Ｃｈｅｃｋｓｕｍ Ｄｉｓａｇｒｅｅ」Ｊｏｎａｔｈａｎ Ｓｔｏｎｅ著（非特許文献１）がある。この文献には、パケットを伝送するパケット伝送装置などの通信装置を有するネットワークにおいて、何らかのエラーが発生し、このエラーを含むパケット（以下、「エラーパケット」と呼ぶ。）を正常なパケットであると、各通信装置が誤判定する誤判定確率についての記載がある。
【０００３】
例えば、レイヤ２のプロトコルで知られるＥｔｈｅｒｎｅｔ（イーサネット）（登録商標）フレームに採用されている、３２ビットのＣＲＣ（Ｃｙｃｌｉｃ Ｒｅｄｕｎｄａｎｃｙ Ｃｈｅｃｋ：巡回冗長検査）では、フレームにエラーが発生していたとしても、正常と誤判定する誤判定確率は約４０億分の１であり、さらに上位にあるレイヤ３のプロトコルで知られるＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）パケットに採用されている、１６ビットのチェックサムでは、パケットにエラーが発生していたとしても、正常と誤判定する誤判定確率は約６万分の１となるので、３２ビットＣＲＣと１６ビットチェックサム双方が、正常と誤判定する確率は単純には約２５０兆分の１と計算されることが記載されている。
【０００４】
さらに、実際のネットワーク上の誤判定確率は、計算される誤判定確率よりも高い確率である１６００万分の1から１００億分の1の間で発生していると記載されている。
【０００５】
また、特開２００６−６０６９５号公報（特許文献１）がある。この公報には、情報通信システムにおいて、「ブロック符号化された符号語を通信路を介して受信することで得られる受信語の復号に際して演算負荷の軽減、誤り率特性の改善を実現する」（要約参照）ことを課題として、通信路を介して送信するＣＲＣ符号が付加された符号語に対し、さらにＬＤＰＣ（Ｌｏｗ Ｄｅｎｓｉｔｙ Ｐａｒｉｔｙｃｈｅｃｋ Ｃｏｄｅ：低密度パリティ検査符号）符号化することで誤り率特性の改善により、通信品質を向上させることが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−６０６９５号公報
【非特許文献】
【０００７】
【非特許文献１】「Ｗｈｅｎ Ｔｈｅ ＣＲＣ ａｎｄ ＴＣＰ Ｃｈｅｃｋｓｕｍ Ｄｉｓａｇｒｅｅ」Ｊｏｎａｔｈａｎ Ｓｔｏｎｅ著
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ネットワーク上でエラーパケットを正常と誤判定することによって、上位レイヤでの再送処理によるデータ転送効率の低下や、データ破損など、ネットワークに影響を与え、ネットワーク上での通信品質を下げる要因の一つとなっていることが一般的に知られている。
誤判定することについて、例えば、コンピュータなどの通信端末Ａから別の通信端末Ｂへデータを送信する場合に、パケット伝送装置Ｃでパケットを処理する際にエラーが発生し、このエラーパケットをパケット伝送装置Ｄが正常であると誤判定すると、通信端末Ｂへエラーパケットが送信され、通信端末Ｂはエラーパケットを受信することになる。
【０００９】
この場合、通信端末Ａは、通信端末Ｂに対して送信すべきデータに宛先などを示すヘッダを付与してパケット化し、パケット伝送装置Ｃへ送信する。パケットを受信したパケット伝送装置Ｃは、伝送網での転送プロトコル変換などの処理をして伝送網を介して対向装置であるパケット伝送装置Ｄに対して受信したパケットを伝送する。ここで、パケット伝送装置Ｃでパケットを処理する際に、何らかのエラーが発生すると、エラーパケットがパケット伝送装置Ｄに伝送されることになる。
【００１０】
エラーパケットを受信したパケット伝送装置Ｄにおいて、ＣＲＣおよびチェックサムを実行するデータチェック処理により、受信したエラーパケットを正常であると誤判定すると、エラーパケットをパケット伝送装置Ｄにて廃棄することなく、通信端末Ｂに送信してしまう。
エラーパケットを受信した通信端末Ｂは、受信したパケットから各種ヘッダを取り除き、元のデータに復元する。受信したパケットには、パケット伝送装置Ｃで発生したエラーが含まれていることから、この復元されたデータもエラーを含む破損データとなっている。
このように、データの転送途中でエラーが発生し、エラーパケットを正常であると誤判定することで、エラーを含む破損データが送信先に送信される。この破損データが送信先に送信されることで、ダウンロードしたファイルが破損している事で再度ダウンロードの試行をしたり、下位プロトコルによる再送処理がなされるなど、ネットワークに影響を与える。
【００１１】
このような事象を防止する為には、エラーパケットのエラー検出率の改善又は、エラー訂正機構などによる誤り率特性の改善が考えられる。特許文献１では、ＣＲＣ符号が付加された情報語に対しさらにＬＤＰＣ符号化することで誤り率特性の改善を図りことが記載されており、エラーパケットを正常と誤判定する確率を低減する効果もあると考えられる。しかしながら、パケット伝送装置では一般的に規格化されたフレーム又はパケット、例えばＥｔｈｅｒｎｅｔフレームやＭＰＬＳ（Ｍｕｌｔｉ-Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）パケットにより通信を行うため、特許文献１に記載されるＬＤＰＣ符号をこれらの規格化されたフレーム又はパケットに適用することは、汎用性及び互換性が損なわれるという課題があった。
【００１２】
そこで、本発明は、ネットワークに影響を与えるエラーパケットの誤判定率を低減するとともに、既存の通信装置との汎用性及び互換性を確保する通信装置を提供する。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明は、外部から入力されたデータに所定の処理を行うデータ処理部と、前記データ処理部と接続され、前記入力されたデータに基づいて誤り検出に関する情報を生成し、生成した前記誤り検出に関する情報を前記データ処理部へ送信する誤り検出情報生成部と、前記データ処理部と接続され、前記データ処理部から前記所定の処理が行われたデータおよび前記誤り検出に関する情報を受信し、受信した前記所定の処理が行われたデータおよび前記誤り検出に関する情報に対して正常性に関する検査を行い、検査結果に応じて検査した前記所定の処理が行われたデータの廃棄を制御するデータ検査部と、前記データ処理部および前記データ検査部と接続され、前記データ処理部から受信するデータと前記データ検査部から受信するデータとのいずれかのデータを選択して転送する第１の選択部と、前記データ処理部の状態を監視し、前記第１の選択部を制御する状態監視制御部とを有することを特徴とする通信装置を有する。
【発明の効果】
【００１４】
本発明によれば、ネットワークの汎用性及び互換性を保ったまま、ネットワーク上での誤判定率を下げる通信装置を提供することができる。
【００１５】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにする。
【図面の簡単な説明】
【００１６】
【図１】ネットワーク全体の構成例を示した図である。
【図２】パケット伝送装置のパケット処理部がプログラマブルロジックデバイスにより構成される例を示した図である。
【図３】パケット検査ブロックと診断回路の構成例を示した図である。
【図４】パケットデータへのパリティ付加及び、診断パターン挿入の様子を示した図である。
【図５】パケットの処理に関わる機能ブロックでのエラー発生を起点としたエラーパケットを廃棄し、発生したエラーから回復する処理の動作フローチャート図である。
【図６】パケット検査ブロックでのエラー発生を起点としてエラーパケットを廃棄し、発生したエラーから回復する処理の動作フローチャート図である。
【図７】ＣＲＡＭエラーを検出した場合の処理フロー図である。
【発明を実施するための形態】
【００１７】
以下、実施例を図面を用いて説明する。
図１は、本実施例におけるネットワーク全体の構成例を示した図である。
ネットワークは、所定のデータをパケット化して送受信する通信端末１００と、通信端末１００から受信したデータを伝送網１０３を介して対向装置へ送信し、伝送網１０３を介して対向装置から受信したデータを通信端末１００へ送信するパケット伝送装置１０２とを有する。
【００１８】
ここで、パケット化とは、レイヤ３での処理であり、データの宛先ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスと送信元ＩＰアドレスなどを特定するＩＰヘッダをデータに付与するＴＣＰ／ＩＰパケット化、及び、レイヤ２での処理であり、宛先ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスと送信元ＭＡＣアドレスなどと特定するフレームヘッダをＴＣＰ／ＩＰパケットに付与するフレーム化などのデータに各種ヘッダを付与することを意味する。
なお、本実施例では、フレーム化されたＴＣＰ／ＩＰパケットも便宜上「パケット」と呼ぶ。
【００１９】
また、伝送網１０３は、例えば、インターネット、広域網、または、専用線網などで構成される。
なお、パケット伝送装置１０２と通信端末１００との間にルータやスイッチなどの他の通信装置が接続されていてもよい。
なお、通信端末１００はパケット伝送装置１０２に複数接続されていてもよい。
なお、パケット伝送装置１０２−２と伝送網１０３との間は、複数の経路で接続されていてもよい。
以下、各通信装置（パケット伝送装置と通信端末）を特定する場合は、各通信装置の参照符号に枝番（「−１」など）を付して説明する。
【００２０】
パケット伝送装置１０２は、データ（パケット）の伝送に関わる処理部である、インタフェース部２０１、パケット処理部２０２、クロスコネクト部２０３、光インタフェース部２０４と、各処理部を監視制御バス２０６を介して装置内の警報等の監視又は、制御などを行う監視制御部２０５とを有する。
通信端末１００からの電気信号であるパケットをインタフェース部２０１にて受信し、インタフェース部２０１は、受信したパケットをパケット処理部２０２に転送する。パケット処理部２０２は、転送されたパケットに対して、伝送方式に応じたプロトコル変換やクロスコネクト処理に必要なアドレス解決等の各種処理を行いクロスコネクト部へ転送する。クロスコネクト部２０３は、転送されたパケットを所定の方路（伝送路）に対応する光インタフェース部２０４にクロスコネクトする。ここで、「クロスコネクトする」とは、パケットを転送すべき方路にスイッチングすることを意味する。光インタフェース部２０４は、クロスコネクト部２０３にてクロスコネクトされたパケットを光信号に変換し、伝送網１０３と接続する光伝送路２０７に送信する。
【００２１】
また、伝送網１０３と接続する光伝送路２０７からの光信号であるパケットを光インタフェース部２０４にて受信し、光インタフェース部２０４は、パケットを電気信号に変換し、クロスコネクト部２０３に転送する。クロスコネクト部２０３は、転送されたパケットを所定の方路に対応するパケット処理部２０２にクロスコネクトし、パケット処理部２０２は、各種の処理を行いインタフェース部２０１に転送する。インタフェース部２０１は、パケットを通信端末１００に送信する。
なお、パケット伝送装置１０２は、パケットの伝送に関わる各処理部（インタフェース部２１０、パケット処理部２０２、光インタフェース部２０４）を、各方路に対応して複数有していてもよい。
なお、パケット伝送装置１０２のインタフェース部２０１は、光インタフェース部２０４と同様に、通信端末１００側から受信した光信号を電気信号に変換する光インタフェース部であってもよい。
【００２２】
図２は、図１のパケット伝送装置１０２のパケット処理部２０２がプログラマブルロジックデバイス（プログラマブルゲートアレイ）により構成される例を示している。プログラマブルロジックデバイスとは、その製造後に内部論理回路（ロジック）を定義・変更できる集積回路のことである。本実施例では、プログラマブルロジックデバイスの例として、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を用いて説明するが、プログラマブルなデバイスであれば、ＦＰＧＡに限られない。
また、パケット処理部２０２は、インタフェース部２０１から多数のパケットを受信し、クロスコネクタ部２０３へ多数のパケットを転送する例で説明する。
【００２３】
パケット処理部２０２は、ＦＰＧＡ２５０と、ＦＰＧＡ２５０の内部論理回路（ロジック、ユーザロジック、ユーザ論理、機能ブロック）を定義する情報であるユーザロジック情報（機能情報）を保持する機能情報保持部である不揮発性メモリ（コンフィギュレーションデータ保持用）２９９を具備する。
ＦＰＧＡ２５０は、ユーザロジック情報により構成されるＦＰＧＡ２５０の内部論理回路であるユーザロジック部２５１と、不揮発性メモリ（コンフィギュレーションデータ保持用）２９９に保持されているユーザロジック情報を読み出して一時的に保持するコンフィギュレーションＲＡＭ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）（以下、「ＣＲＡＭ」と呼ぶ。）（機能情報一時保持部）２５２を具備する。
【００２４】
ＦＰＧＡ２５０により構成されるユーザロジック部２５１内のパケット処理回路２５３は、パケットの帯域制御を行うポリサブロック２５４と、パケット伝送に用いられるプロトコルの一つであるＭＰＬＳ化を行うＭＰＬＳ化ブロック２５５と、パケットの出力レートを平滑化する処理を受け持つシェーパブロック２５６により構成される例を示している。
なお、パケット処理回路２５３は、データ処理部とも呼ぶ。
ここでＭＰＬＳ化とは、ＭＰＬＳでの転送処理で用いられるＭＰＬＳラベルと呼ばれる宛先情報を含むヘッダデータを付与することである。また、これらパケット処理ブロック（ポリサブロック２５４とＭＰＬＳ化ブロック２５５とシェーパブロック２５６）は監視／制御信号２８１を介して、警報等の監視及び制御を行う監視／制御レジスタ２５７に接続される構成をとる。この監視／制御レジスタ２５７は、監視制御バス２８０を介し、パケット伝送装置１０２内の監視制御バス２０６と接続され、監視制御部２０５から監視及び制御される。
【００２５】
ＦＰＧＡ２５０は、パケット伝送装置１０２の一機能であるパケット処理回路２５３の他、入力されたパケット２８５に基づいて誤り検出の情報であるパリティを生成するパリティ生成部２５８と、パケット２８５の正常性検査及び、異常データ（エラーデータ）を持つパケットの廃棄を行うパケット検査ブロック２６０と、シェーパブロック２５６からのパケット２８５を後段に送信するか、パケット検査ブロック２６０の処理を行ったパケットを後段に送信するかを切り替える（選択する）セレクタ部２６１と、ＦＰＧＡ２５０の内部回路（ロジック、ユーザロジック、機能ブロック）と接続し、ＦＰＧＡ２５０の内部論理回路（ロジック、ユーザロジック、機能ブロック）の状態を監視する、つまり、異常（エラー）を診断する（正常性を確認する）診断回路２５９-１〜２５９-５と、ＣＲＡＭ２５２に発生するエラーを監視し、ＣＲＡＭ２５２を訂正するなど、ＣＲＡＭ２５２を制御するＣＲＡＭ監視／訂正部２６３と、診断回路２５９−１〜２５９−５での診断結果及び、ＣＲＡＭ監視／訂正部２６３でのＣＲＡＭ２５２に対する監視結果に基づき、セレクタ部２６１に対してシェーパブロック２５６からのパケット２８５を後段に転送する動作とパケット検査ブロック２６０からのパケット２８５を後段に転送する動作とを切り替える指示である切り替え指示信号２８６を送信する異常処理ブロック２６２を具備する。
なお、診断回路２５９-１〜２５９-５は、監視回路（監視部）とも呼ぶ。また、ＣＲＡＭ監視／訂正部２６３は、ＣＲＡＭ監視部（機能情報一時保持部監視部）とも呼ぶ。
【００２６】
パリティ生成部２５８は、入力されたパケットに対して垂直パリティを生成し、生成したパリティをパケット２８５と並走する様にパリティビット２８８としてパケット処理回路２５３に付与する。
【００２７】
異常処理ブロック２６２は、診断回路２５９−１〜２５９−５での診断結果及び、ＣＲＡＭ監視／訂正部２６３でのＣＲＡＭ２５２に対する監視結果に基づいて、セレクタ部２６１を制御する。異常（エラーが発生した）と判定した場合に、セレクタ部２６１に対して切り替え指示信号２８６を送信して、セレクタ部２６１の動作をシェーパブロック２５６からのパケット２８５を後段に転送する動作からパケット検査ブロック２６０からのパケット２８５を後段に転送する動作へ切り替えさせる。
また、異常処理ブロック２６２は、ＣＲＡＭ２５２にエラーが発生した可能性がある場合に、ＣＲＡＭ監視／訂正部２６３に対して、ＣＲＡＭ２５２のエラーチェックスキャンを行い、ＣＲＡＭ２５２にエラーが発生しているときにＣＲＡＭ２５２のエラーを訂正するよう要求するエラーチェックスキャン及びＣＲＡＭエラー訂正リクエスト２８９を送信する。
【００２８】
また、異常処理ブロック２６２は、異常（エラー）から回復したと判断した場合に、セレクタ部２６１に対して切り替え指示信号２８６を送信して、セレクタ部２６１の動作をパケット検査ブロック２６０からのパケット２８５を後段に転送する動作からシェーパブロック２５６からのパケット２８５を後段に転送する動作へ切り替えさせる。
なお、異常処理ブロック２６２と診断回路２５９-１〜２５９-５とをまとめて状態監視制御部と呼ぶことがある。
【００２９】
なお、セレクタ部２６１の動作について、シェーパブロック２５６からのパケット２８５を後段に送信する動作を「シェーパブロック２５６側動作」と呼ぶことがある。また、パケット検査ブロック２６０の処理を行ったパケットを後段に送信する動作を「パケット検査ブロック２６０側動作」と呼ぶことがある。
【００３０】
インタフェース部２０１からパケット２８５を受信すると、ポリサブロック２５４は、通信ポリシーに基づきポリシーデータをパケット２８５に付与し、ポリサブロック２５４と接続するＭＰＬＳ化ブロック２５５は、ＭＰＬＳラベルを含むＭＰＬＳヘッダをパケット２８５に付与し、ＭＰＬＳ化ブロック２５５と接続するシェーパブロック２５６は、ネットワークで要求される帯域にシェーピングして、シェーパブロック２５６と接続するセレクタ部２６１およびシェーパブロック２５６と接続するパケット検査ブロック２６０にパケット２８５を転送して、シェーパブロック２５６及びパケット検査ブロック２６０と接続するセレクタ部２６１は、異常処理ブロック２６２からの切り替え指示信号２８６に従った切替え処理をして、クロスコネクタ部２０３へパケット２８５を転送する。
【００３１】
診断回路２５９−１〜２５９-５は、それぞれ、ポリサブロック２５４、ＭＰＬＳ化ブロック２５５、シェーパブロック２５６、パケット検査ブロック２６０、監視／制御レジスタ２５７と回路診断信号２８３−１〜２８３−５を送受信して異常を診断し、診断結果をそれぞれ異常処理ブロック２６２へ異常通知信号２８２−１〜２８２−５として通知する。なお、診断回路２５９は、各機能ブロックを診断できるのであれば、１つの診断回路で２つの機能ブロックを診断するなど、どのような構成であってもよい。
【００３２】
ＣＲＡＭ監視／訂正部２６３は、ＦＰＧＡ２５０のユーザロジック情報を保持するＣＲＡＭ２５２のエラー監視及びエラー発生時にはエラー訂正を行うブロックである。ＣＲＡＭ監視／訂正機能を具備していれば、ＦＰＧＡメーカが提供する回路で構成しても、ユーザロジックにより同等機能を有する回路で構成しても良い。
【００３３】
図３は、パケット検査ブロック２６０と、診断回路２５９−４の構成例を示した図である。
診断回路２５９−４は例えば疑似ランダム（疑似乱数）符号（ＰＮ（Ｐｓｅｕｄｏ Ｒａｎｄａｍ）符号）等の診断パターン（診断符号）を生成し、診断パターンを含む信号である診断パターン信号３５３を送信する診断パターン生成部３０４と、診断パターンのチェックを行う診断パターンチェック部３０５と、パリティ生成部２５８で生成されパケット２８５と並走されてきたパリティビット２８８およびパケット２８５のパリティチェックを行うパリティチェック部３０６と、診断パターンチェック部３０５及びパリティチェック部３０６でのチェックの結果を論理演算し、その結果を異常処理ブロック２６２に通知する論理演算部３０７で構成される。なお、診断パターン生成部３０４は、診断信号生成部とも呼ぶことがある。
【００３４】
また、パケット検査ブロック２０６は、パケット２８５のデータを解析するデータ解析部３００と、シェーパブロック２５６から受信したパケットを後段に送信するか、診断パターン生成部３０４からの診断パターン信号３５３を後段に送信するかを切り替える（選択する）セレクタ部３０１と、セレクタ部３０１から受信するパケットとパリティに対して、ＣＲＣとパリティのチェックを行い誤り検出を行うＣＲＣ／パリティチェック部３０２と、受信したパケットをバッファに格納するデータバッファメモリ３０３で構成される。
【００３５】
パケット検査ブロック２６０は、シェーパブロック２５６からパケット２８５を受信すると、データ解析部３００が、パケット２８５のデータを解析し、パケット２８５が存在しないアイドル区間、つまり、パケットとパケットの間（境目）を判定する。
なお、パケット２８５が途切れたことを検知して、アイドル区間の開始を判定してよい。
アイドル区間と判定された場合には、診断パターン生成部３０４に対し、診断パターン信号３５３を送信するように指示する診断パターン送信指示信号３５２を送信するとともに、セレクタ部３０１に対して、切り替え指示信号３５０により、シェーパブロック２５６から受信したパケット２８５を後段に送信する動作から、パケット２８５のデータ以外の部分での信号正常性を診断する為の診断パターン信号３５３を後段に送信する動作に切替える指示を送信する。
【００３６】
そして、データ解析部３００は、アイドル区間後にパケット２８５の受信を検知すると、セレクタ部３０１に対して、切り替え指示信号３５０により、診断パターン信号３５３を後段に送信する動作からシェーパブロック２５６から受信したパケット２８５を後段に送信する動作に切替える指示を送信する。
つまり、データ解析部３００は、パケット２８５のデータを解析してセレクタ部３０１を制御する。パケット２８５の間は、シェーパブロック２５６から受信したパケット２８５を後段に送信するようにセレクタ部３０１を制御し、アイドル区間の間は、診断パターン信号３５３を後段に送信するようにセレクタ部３０１を制御する。なお、データ解析部３００は、セレクタ部制御部とも呼ぶ。
【００３７】
また、データ解析部３００は、アイドル区間後にパケット２８５の受信を検知すると、診断パターン信号３５３の送信停止を指示する診断パターン送信停止指示信号３６０を送信する。なお、データ解析部３００は、アイドル区間の間、診断パターン送信指示信号３５２を送信し続け、パケット２８５の受信を検知すると、診断パターン送信指示信号３５２の送信を停止してもよい。つまり、パケット２８５とアイドル区間を診断パターン生成部３０４に通知することができればよい。
【００３８】
また、セレクタ部３０１は、データ解析部３００からの指示によって、後段に送信する信号の選択を切り替える。パケット２８５の間は、シェーパブロック２５６から受信したパケット２８５を後段に送信し、アイドル区間の間は、診断パターン信号３５３を後段に送信する。
なお、セレクタ部３０１の動作について、シェーパブロック２５６からのパケット２８５を後段に送信する動作をセレクタ部２６１の動作と同様に「シェーパブロック２５６側動作」と呼ぶことがある。また、診断パターン生成部３０４からの診断パターン信号３５３を後段に送信する動作を「診断パターン生成部３０４側動作」と呼ぶことがある。
【００３９】
ＣＲＣ／パリティチェック部３０２は、パケット２８５に付与されているＣＲＣデータ、例えばＥｔｈｅｒｎｅｔの場合ではＦＣＳ（Ｆｒａｍｅ Ｃｈｅｃｋ Ｓｅｑｕｅｎｃｅ）と呼ばれるデータの正常性を判断するためのパリティデータによる検査及び、パリティ生成部２５８で付与したパリティビット２８８に対して正常性に関する検査を行い、パリティ演算結果で異常と判定した場合は処理下流に位置するデータバッファメモリ３０３に対して、パケット廃棄指示信号３５１により異常データと判定されたパケットの廃棄指示を行う。ＣＲＣ／パリティチェック部３０２は、正常性に関する検査の結果、パケット２８５の異常またはパリティビット２８８の異常のうち、少なくともいずれか一方の異常を検出すると、パケット２８５の異常と判定する。
【００４０】
なお、ＣＲＣ／パリティチェック部３０２でパリティチェックが完了後にデータバッファメモリ３０３にパケット２８５の格納が完了し、データバッファメモリ３０３は、格納完了時にパケット廃棄指示信号３５１が無ければ格納したパケット２８５を後段に転送する。パケット廃棄指示信号３５１により廃棄指示を受けたデータバッファメモリ３０３は該当パケットを廃棄する。
【００４１】
ＦＣＳによるエラーチェックは、パケットデータ全体に対してＣＲＣ演算によるチェックを行うものである一方、パリティによるエラーチェックはパケットデータのパラレル処理毎に演算されるもので、双方のチェックを行うことで、エラーが発生しているにもかかわらず正常と誤判定する確率を低下させることが出来る。
【００４２】
診断パターン生成部３０４は、データ解析部３００から診断パターン送信指示信号３５２を受信すると、診断パターン信号３５３をセレクタ部３０１へ送信する。そして、データ解析部３００から診断パターン送信停止指示信号３６０を受信すると、診断パターン信号３５３の送信を停止する。
なお、データ解析部３００が、アイドル区間の間、診断パターン送信指示信号３５２を送信し続ける場合、診断パターン生成部３０４は、データ解析部３００からの診断パターン送信指示信号３５２の送信の停止を検知すると、診断パターン信号３５３の送信を停止してもよい。
【００４３】
診断パターンチェック部３０５は、ＣＲＣ／パリティチェック部３０２から転送された診断パターン信号３５３に対して疑似ランダム符号の規則性のチェック（確認）を行い、その結果である規則性のチェック結果３５６を論理演算部３０７へ送信する。これにより、セレクタ部３０１からＣＲＣ／パリティチェック部３０２の間で発生した異常を検出することができる。なお、診断パターンチェック部３０５は、診断信号確認部とも呼ぶ。
【００４４】
パリティチェック部３０６は、データバッファメモリ３０３に格納されているパケットのデータと格納時に付与されるパリティデータとを演算し、その結果であるチェック結果３５７を論理演算部３０７へ送信する。これにより、データバッファメモリ３０３で発生した異常を検出することができる。
【００４５】
論理演算部３０７は、診断パターンチェック部３０５のチェック結果３５６とパリティチェック部３０６のチェック結果３５７とを論理演算し、論理演算した結果を異常通知信号２８２−４として異常処理ブロック２６２に通知する。なお、論理演算は、例えば、パリティ演算（ＥＸＯＲ）などにより行う。
なお、診断パターン送信指示信号３５２と診断パターン送信停止指示信号３６０、診断パターン信号３５３、３５４、３５５をまとめて、回路診断信号２８３−４と呼ぶ。
【００４６】
以上のように、パケットに付与されたＣＲＣデータによるチェックの場合、複数ビットにエラーが発生した場合には、異常データを正常であると誤判定をする可能性があるが、ＣＲＣデータとは独立に、パリティ生成部２５８でパリティを付与し、ＣＲＣ／パリティチェック部３０２により、ＣＲＣデータによるチェックとパリティによるチェックとの２重に検査を行うことで、誤検出確率を０に近づけることが可能となる。
【００４７】
また、ＦＰＧＡ２５０の内部回路が異常となるパターンとしては、内部回路を構成する配線の異常又は、メモリ（記憶部）の異常が考えられる。配線異常に関しては、ＰＮ符号などの診断パターンを挿入することによる診断手法により検出が可能であり、データバッファメモリ３０３などのメモリで発生した異常に関しては、パリティ検査により検出が可能である。
異常と判断されたエラーパケットを、クロスコネクト部２０３などの後段の処理部へ転送することなく、データバッファメモリ３０３にて確実に廃棄させることが出来る。
【００４８】
診断回路２５９−４以外の他の診断回路２５９−１〜２５９−３、２５９−５も、診断回路２５９−４と同様な構成、同様な動作を行う。なお、診断回路２５９−１〜２５９−３、２５９−５は、パリティチェック部３０６および論理演算部３０７を有していなくてもよい。
また、パケットの処理に関わる、ポリサブロック２５４と、ＭＰＬＳ化ブロック２５５、シェーパブロック２５６、監視／制御レジスタ２５７は、パケット検査ブロック２６０と同様に、データ解析部３００とセレクタ部３０１を備える。
また、ＣＲＡＭ監視／訂正部２６３は、ＣＲＡＭ２５２に対して監視／訂正信号２８７によりエラースキャンを実施する。また、ＣＲＡＭ監視／訂正部２６３は、異常処理ブロック２６２に対してＣＲＡＭエラー通知信号２９０を送信して、ＣＲＡＭエラーの有無を通知し、ＣＲＡＭ訂正中信号２９１を送信してＣＲＡＭエラー訂正の終了を通知する。
【００４９】
図４は、ＣＲＣ／パリティチェック部３０２が受信するデータを示した図である。パリティ生成部２５８でパリティがパケット２８５と並走するように付与され、診断パターン生成部３０４で生成された診断パターンがパケット２８５のアイドル区間に挿入される。
本図では、パケット２８５がＦＰＧＡ２５０の内部で８ビットのパラレルデータとして扱われている場合の例を示している。また、パリティビット２８８は、パケット２８５の８ビットパラレルデータの各ビットをＸＯＲ（Ｅｘｃｌｕｓｉｖｅ ＯＲ：排他的論理和）による論理演算をすることで”１”の数が偶数個又は奇数個かどうかにより決まる、一般的に用いられる偶数パリティビット或いは奇数パリティビットを付与する例で説明する。誤り検出について、その他の誤り検出アルゴリズム及び誤り訂正アルゴリズムを用いても良い。
【００５０】
パケット２８５−１は、ＦＰＧＡ２５０に入力される前の機能ブロックで８ビットのパラレルデータに変換されたものが、セレクタ部３０１から転送される。セレクタ部３０１は、パケット２８５−１が途切れ、データ解析部３００から切り替え指示信号３５０を受信すると、診断パターン３５３−１を選択して後段に送信する。
また、セレクタ部３０１は、データ解析部３００からパケット２８５−２の受信を通知する切り替え指示信号３５０を受信すると、パケット２８５−２を選択して後段に送信する。
以上の動作を繰り返すことで、パケット２８５とパケット２８５の間に診断パターン３７１が挿入されることになる。
パリティビット２８８は、パケット２８５−１の先頭の８ビットのパラレルデータ（図４の点線枠部分１０００）をパリティ演算したパリティビット１ビットを示したものである。またパリティ３７２−１は、パケット２８５−１の各８ビットのパラレルデータをパリティ演算したパリティビット列である。
【００５１】
また、パケットが存在しないアイドル区間に診断パターン３７１を挿入し、挿入された診断パターン３７１をチェックすることで正常性を確認する診断対象の内部回路（機能ブロック）の正常性を確認する診断方法に関しては、診断パターンとして、ＰＮ符号を用いる手法について示しているが、その他の診断手法を用いてもよい。
【００５２】
次に、診断回路２５９-１〜２５９-５又はＣＲＡＭ監視／訂正部２６３で異常を検出したことを起点に、セレクタ部２６１の選択をパケット検査ブロック２６０側動作に切替え、エラーが発生したパケットのみをパケット検査ブロック２６０で確実に廃棄し、発生したエラーから回復する動作について説明する。
これらの動作としては、１）パケットの処理に関わる、ポリサブロック２５４と、ＭＰＬＳ化ブロック２５５、シェーパブロック２５６、監視／制御レジスタ２５７に対する診断の結果、エラー発生を起点とした動作、２）パケット検査ブロック２６０に対する診断の結果、エラー発生を起点とした動作、３）ＣＲＡＭ監視／訂正部２６３によるＣＲＡＭ２５２に対する監視の結果、ＣＲＡＭ２５２に発生するエラーの検出を起点とした動作がある。以下それぞれの動作について説明する。
【００５３】
１）パケットの処理に関わる、ポリサブロック２５４と、ＭＰＬＳ化ブロック２５５、シェーパブロック２５６、監視制御レジスタ２５７に対する診断の結果、エラー発生を起点とした動作について説明する。
図５は、パケットの処理に関わる機能ブロックでのエラー発生を起点としたエラーパケットを廃棄し、発生したエラーから回復する処理の動作フローチャート図である。
【００５４】
異常処理ブロック２６２は、診断回路２５９−１〜２５９−３、２５９−５それぞれによるポリサブロック２５４と、ＭＰＬＳ化ブロック２５５、シェーパブロック２５６、監視制御レジスタ２５７に対する診断の結果、いずれかの機能ブロックにてエラーが発生したことを通知する異常通知信号２８２-１〜２８２-３、２８２-５による診断異常通知を受信するかどうかを監視して、いずれかの機能ブロックにエラーが発生したか否かを判定する（４００）。例えば、異常通知信号２８２−１を受信することで、ポリサブロック２５４でエラーが発生したと判定することができる。
【００５５】
異常通知信号２８２-１〜２８２-３、２８２-５による診断異常通知を受信したと判定した場合は（４００のＹｅｓ）、異常処理ブロック２６２は、切り替え指示信号２８６を送信してセレクタ部２６１の動作をシェーパブロック２５６側動作からパケット検査ブロック２６０側動作に切り替える（４０１）。
これにより、図３及びその説明にて説明したように、ポリサブロック２５４と、ＭＰＬＳ化ブロック２５５、シェーパブロック２５６、監視制御レジスタ２５７のいずれかの異常により生成されたエラーパケットを、パケット検査ブロック２６０においてパケット２８５及びパリティビット２８８の正常性を検査することで、確実にエラー（異常）判定を行い、エラー（異常）と判定された場合は、エラーパケットを廃棄することが出来る。
また、異常通知信号２８２-１〜２８２-３、２８２-５による診断異常通知を受信しないと判定した場合は（４００のＮｏ）、ステップ４３０（図６）に進む。
【００５６】
次に、ポリサブロック２５４と、ＭＰＬＳ化ブロック２５５、シェーパブロック２５６、監視制御レジスタ２５７のいずれかの異常は、ＣＲＡＭ２５２に発生したエラーに起因している可能性があるため、異常処理ブロック２６２は、ＣＲＡＭ監視／訂正部２６３に対して、異常が発生した機能ブロックに対応するＣＲＡＭ２５２内の領域に対するエラーチェックスキャン及びＣＲＡＭエラー訂正リクエスト２８９を送信して、ＣＲＡＭ２５２に対するエラーチェック及びエラー訂正を実施させる（４０２）。
【００５７】
エラースキャン及びＣＲＡＭエラー訂正リクエスト２８９を受信したＣＲＡＭ監視／訂正部２６３は、ＣＲＡＭ２５２に対して監視／訂正信号２８７によりエラースキャンを実施する（４０３）。ＣＲＡＭ監視／訂正部２６３は、ＣＲＡＭ２５２に格納されているデータとそのデータから演算されたＣＲＣ等のエラーチェック符号を用いて実施したエラースキャンの結果から、ＣＲＡＭ２５２にエラーが発生しているか否かを判定する（４０４）。ＣＲＡＭ監視／訂正部２６３が、ＣＲＡＭ２５２にエラーが発生していない（ＣＲＭＡエラー無し）と判定した場合（４０４のＮｏ）は、ＣＲＡＭ監視／訂正部２６３が、異常処理ブロック２６２に対してＣＲＡＭエラー通知信号２９０を送信して、ＣＲＡＭエラー無しであることを通知する（４０５）。この通知を受けた異常処理ブロック２６２は、ポリサブロック２５４と、ＭＰＬＳ化ブロック２５５、シェーパブロック２５６、監視制御レジスタ２５７に診断エラーが発生し且つ、ＣＲＡＭ２５２にエラーが発生していないことから、ハードウエアの故障であること判定し処理を終了する（４１２）。
【００５８】
次に、ＣＲＡＭ監視／訂正部２６３が、ＣＲＡＭ２５２にエラーが発生している（ＣＲＡＭエラー有り）と判定した場合（４０４のＹｅｓ）、ＣＲＡＭ監視／訂正部２６３が、異常処理ブロック２６２に対し、ＣＲＡＭエラー通知信号２９０を送信してエラー発生を通知するとともに、ＣＲＡＭエラー訂正中信号２９１を送信して、ＣＲＡＭ２５２のエラー訂正処理中（ＣＲＡＭエラー訂正処理中）であることを通知し、ＣＲＡＭ２５２のエラー訂正処理（ＣＲＡＭエラー訂正処理）を実施する（４０６）。ＣＲＡＭ２５２のエラー訂正処理（ＣＲＡＭエラー訂正処理）は、ＣＲＡＭ監視／訂正部２６３が不揮発性メモリ２９９に保持されたユーザロジック情報を読み出して、読み出したユーザロジック情報にてＣＲＡＭ２５２のエラーを訂正する。
【００５９】
ＣＲＡＭ監視／訂正部２６３は、ＣＲＡＭエラー訂正処理によって、ＣＲＡＭ２５２のエラー訂正（ＣＲＡＭエラー訂正）が正常に完了したか否かを判定する（４０７）。このＣＲＡＭエラー訂正処理において正常にＣＲＡＭエラー訂正が完了しなかった場合は（４０７のＮｏ）、ＣＲＡＭ２５２にハードウエア故障が発生していると考えられることから、ＣＲＡＭ監視／訂正部２６３は、異常処理ブロック２６２に対してＣＲＡＭエラー通知信号２９０を送信してＣＲＡＭエラー有りを通知し、ＣＲＡＭ訂正中信号２９１を送信してＣＲＡＭエラー訂正の終了を通知する（４０９）。この通知を受けた異常処理ブロック２６２は、ＣＲＡＭエラー訂正が終了し且つ、ＣＲＡＭエラー有りであることから、ハードウエアの故障と判定し処理を終了する（４１２）。
【００６０】
ＣＲＡＭエラー訂正処理において正常にＣＲＡＭエラー訂正が完了した場合は（４０７のＹｅｓ）、ＣＲＡＭ監視／訂正部２６３は、異常処理ブロック２６２に対してＣＲＡＭエラー通知信号２９０を送信してＣＲＡＭエラー無しを通知するとともに、ＣＲＡＭ訂正中信号２９１を送信してＣＲＡＭエラー訂正の完了を通知する（４０８）。
【００６１】
この通知を受けた異常処理ブロック２６２は、再度、異常通知信号２８２-１〜２８２-３、２８２-５による診断異常通知を受信したかどうか確認する（４１０）。診断異常通知を受信した場合は（４１０のＹｅｓ）、ＣＲＡＭエラー訂正が正常に完了したにもかかわらず診断異常通知があることから、異常処理ブロック２６２は、ハードウエアの故障と判定し処理を終了する（４１２）。
また、異常通知信号２８２-１〜２８２-３、２８２-５による診断異常通知を受信しない場合は（４１０のＮｏ）、全てのエラーが回復したと判断出来ることから、異常処理ブロック２６２は、切り替え指示信号２８６を送信してセレクタ部２６１の動作をシェーパブロック２６５側動作に切替えを実施し処理を終了する（４１１）。
なお、ハードウエアの故障と判定した（４１２）後に、パケット伝送装置１０２を管理している運用者に対して、ハードウエアの故障である旨を通知してもよい。
【００６２】
次に、２）パケット検査ブロック２６０に対する診断の結果、エラー発生を起点とした動作について説明する。
図６は、パケット検査ブロック２６０でのエラー発生を起点とし、発生したエラーから回復する処理の動作フローチャート図である。本処理は、図５のステップ４００でＮｏと判定された場合に始まる処理フローである。
【００６３】
異常処理ブロック２６２は、診断回路２５９−４によるパケット検査ブロック２６０に対する診断の結果、パケット検査ブロック２６０にてエラーが発生したことを通知する異常通知信号２８２-４による異常通知を受信するかどうかを監視して、パケット検査ブロック２６０にエラーが発生したか否かを判定する（４３０）。異常通知信号２８２-４による診断異常通知を受信したと判定した場合は（４３０のＹｅｓ）、異常処理ブロック２６２は、ＣＲＡＭ監視／訂正部２６３に対して、異常が発生したパケット検査ブロック２６０に対応したＣＲＡＭ２５２内の領域に対するエラースキャン及びＣＲＡＭエラー訂正リクエスト２８９を送信してＣＲＡＭ２５２に対するエラーチェック及びエラー訂正を実施させる（４３１）。
【００６４】
本処理ではパケット検査ブロック２６０に異常が発生していることから、セレクタ部２６１によるパケット検査ブロック２６０側動作への切替は行わない。また、異常通知信号２８２-４による診断異常通知を受信しないと判定した場合は（４３０のＮｏ）、ステップ４５０（図７）に進む。
【００６５】
エラースキャン及びＣＲＡＭエラー訂正リクエスト２８９を受信したＣＲＡＭ監視／訂正部２６３は、ＣＲＡＭ２５２に対して監視／訂正信号２８７によりエラースキャンを実施する（４３２）。ＣＲＡＭ監視／訂正部２６３は、ＣＲＡＭに格納されているデータとそのデータから演算されたＣＲＣ等のエラーチェック符号を用いて実施したエラースキャンの結果から、ＣＲＡＭ２５２にエラーが発生しているか否かを判定する（４３３）。ＣＲＡＭ監視／訂正部２６３が、ＣＲＡＭエラー無しと判定した場合（４３３のＮｏ）は、ＣＲＡＭ監視／訂正部２６３が異常処理ブロック２６２に対してＣＲＡＭエラー通知信号２９０を送信して、ＣＲＡＭエラー無しであることを通知する（４３５）。この通知を受けた異常処理ブロック２６２は、パケット検査ブロック２６０に診断エラーが発生し且つ、ＣＲＡＭ２５２にエラーが発生していないことから、ハードウエアの故障であること判定し処理を終了する（４４０）。
【００６６】
次に、ＣＲＡＭ監視／訂正部２６３が、ＣＲＡＭエラー有りと判定した場合（４３３のＹｅｓ）、ＣＲＡＭ監視／訂正部２６３が、異常処理ブロック２６２に対し、ＣＲＡＭエラー通知信号２９０を送信してエラー発生を通知するとともに、ＣＲＡＭエラー訂正中信号２９１を送信してＣＲＡＭエラー訂正処理中であることを通知し、ＣＲＡＭエラー訂正処理を実施する（４３４）。ＣＲＡＭ監視／訂正部２６３は、ＣＲＡＭエラー訂正処理によって、ＣＲＡＭ２５２のエラー訂正（ＣＲＡＭエラー訂正）が正常に完了したか否かを判定する（４３６）。
【００６７】
このＣＲＡＭエラー訂正処理において正常にＣＲＡＭエラー訂正が完了しなかった場合は（４３６のＮｏ）、ＣＲＡＭ２５２にハードウエア故障が発生していると考えられることから、ＣＲＡＭ監視／訂正部２６３は、異常処理ブロック２６２に対してＣＲＡＭエラー通知信号２９０を送信してＣＲＡＭエラー有りを通知し、ＣＲＡＭ訂正中信号２９１を送信してＣＲＡＭ訂正の終了を通知する（４３８）。この通知を受けた異常処理ブロック２６２は、ＣＲＡＭエラー訂正が終了し且つ、ＣＲＡＭエラー有りであることから、ハードウエアの故障と判定し処理を終了する（４４０）。
【００６８】
ＣＲＡＭエラー訂正処理において正常にＣＲＡＭエラー訂正が完了した場合は（４３６のＹｅｓ）、ＣＲＡＭ監視／訂正部２６３は、異常処理ブロック２６２に対してＣＲＡＭエラー通知信号２９０を送信してＣＲＡＭエラー無しを通知するとともに、ＣＲＡＭ訂正中信号２９１を送信してＣＲＡＭエラー訂正の完了を通知する（４３７）。
【００６９】
この通知を受けた異常処理ブロック２６２は、再度、異常通知信号２８２-４による診断異常通知を受信したかどうか確認する（４３９）。診断異常通知を受信した場合は（４３９のＹｅｓ）、ＣＲＡＭエラー訂正が正常に完了したにもかかわらず診断異常通知があることから、異常処理ブロック２６２は、ハードウエアの故障と判定し処理を終了する（４１２）。また、異常通知信号２８２-４による診断異常通知を受信しない場合は（４３９のＮｏ）、全てのエラーが回復したと判断されるため処理を終了する。
なお、ハードウエアの故障と判定した（４４０）後に、パケット伝送装置１０２を管理している運用者に対して、ハードウエアの故障である旨を通知してもよい。
また、ステップ４３０は、ステップ４００にて「Ｎｏ」と判定した後に実行するのではなく、図５の処理とは独立して実行してもよい。
【００７０】
次に３）ＣＲＡＭ監視／訂正部２６３によるＣＲＡＭ２５２に対する監視の結果、ＣＲＡＭ２５２に発生するエラーの検出を起点とした動作について説明する。
図７は、ＣＲＡＭ２５２でのエラー発生を起点とし、発生したエラーから回復する処理の動作フローチャート図である。本処理は、図６のステップ４３０でＮｏと判定された場合、つまり全ての診断回路２５９−１〜２５９−５で正常と判定された場合に始まる処理フローである。
【００７１】
異常処理ブロック２６２は、ＣＲＡＭ２５２にエラーが発生しているかどうかを、ＣＲＡＭエラー通知信号２９０により監視する。つまり、異常処理ブロック２６２は、ＣＲＡＭ監視／訂正部２６３に対して、ＣＲＡＭ２５２内の全領域に対するエラースキャン及びＣＲＡＭエラー訂正リクエスト２８９を送信してＣＲＡＭ２５２に対するエラーチェック及びエラー訂正を実施させる（４６０）。エラースキャン及びＣＲＡＭエラー訂正リクエスト２８９を受信したＣＲＡＭ監視／訂正部２６３は、ＣＲＡＭ２５２に対して監視／訂正信号２８７によりエラースキャンを実施する（４６１）。ＣＲＡＭ監視／訂正部２６３は、実施したエラースキャンの結果から、ＣＲＡＭ２５２にエラーが発生しているか否かを判定する（４５０）。ＣＲＡＭ監視／訂正部２６３が、ＣＲＡＭエラー無しと判定した場合は（４５０のＮｏ）、ＣＲＡＭ監視／訂正部２６３が異常処理ブロック２６２に対してＣＲＡＭエラー通知信号２９０を送信して、ＣＲＡＭエラー無しであることを通知する（４６２）。この通知を受けた異常処理ブロック２６２は、ＦＰＧＡ２５０の回路が全て正常と判断し処理を終了する。
【００７２】
また、ＣＲＡＭ監視／訂正部２６３が、ＣＲＡＭエラー有りと判定した場合は（４５０のＹｅｓ）、ＣＲＡＭ監視／訂正部２６３が異常処理ブロック２６２に対してＣＲＡＭエラー通知信号２９０を送信して、ＣＲＡＭエラー有りであることを通知し、この通知を受けた異常処理ブロック２６２は、切り替え指示信号２８６を送信してセレクタ部２６１の動作をシェーパブロック２５６側動作からパケット検査ブロック２６０側動作に切り替える。（４５１）これにより、ポリサブロック２５４、ＭＰＬＳ化ブロック２５５、シェーパブロック２５６又は監視制御レジスタ２５７の異常により生成されたエラーパケットを、パケット検査ブロック２６０でのデータ解析、ＣＲＣ／パリティチェックが完了するまで、データバッファメモリ３０３でパケットを保持することによりエラー判定及びエラーと判定された場合は、確実に廃棄することが出来る。
【００７３】
次にＣＲＡＭ監視／訂正部２６３は、異常処理ブロック２６２に対してＣＲＡＭエラー訂正中信号２９１を送信してＣＲＡＭエラー訂正処理中であることを通知するとともに、ＣＲＡＭエラー訂正処理を実施する。（４５２）このＣＲＡＭエラー訂正処理において正常にＣＲＡＭエラー訂正が完了しなかった場合は（４５３のＮｏ）、ＣＲＡＭ２５２にハードウエア故障があると考えられることから、ＣＲＡＭ監視／訂正部２６３は、異常処理ブロック２６２に対してＣＲＡＭエラー通知信号２９０を送信してＣＲＡＭエラー有りを通知し、且つ、ＣＲＡＭ訂正中信号２９１を送信してＣＲＡＭ訂正の終了を通知する。（４５５）この通知を受けた異常処理ブロック２６２は、ＣＲＡＭエラー訂正が終了し、且つＣＲＡＭエラー有りであることからハードウエアの故障と判定し処理を終了する（４５８）。
【００７４】
ＣＲＡＭエラー訂正処理において正常にＣＲＡＭエラー訂正が完了した場合は（４５３のＹｅｓ）、ＣＲＡＭ監視／訂正部２６３は、異常処理ブロック２６２に対してＣＲＡＭエラー通知信号２９０を送信してＣＲＡＭエラー無しを通知するとともに、ＣＲＡＭ訂正中信号２９１を送信してＣＲＡＭエラー訂正の完了を通知する（４５４）。ここで、通知を受けた異常処理ブロック２６２は、再度、異常通知信号２８２-１〜２８２-５による診断異常通知を受信したかどうかを確認する（４５６）。診断異常通知を受信した場合は（４５６のＹｅｓ）、ＣＲＡＭエラー訂正が正常に完了したにもかかわらず診断異常通知があることから、異常処理ブロック２６２は、ハードウエアの故障と判定し処理を終了する（４５８）。また、異常通知信号２８２-１〜２８２-５による診断異常通知を受信しない場合は（４５６のＮｏ）、全てのエラーが回復したと判断出来ることから、異常処理ブロック２６２は、切り替え指示信号２８６を送信してセレクタ部２６１の動作をシェーパブロック２６５側動作に切替えを実施し処理を終了する（４５７）。
【００７５】
なお、ハードウエアの故障と判定した（４５８）後に、パケット伝送装置１０２を管理している運用者に対して、ハードウエアの故障である旨を通知してもよい。
また、ステップ４５０は、ステップ４３０にて「Ｎｏ」と判定した後に実行するのではなく、図５および図６の処理とは独立して実行してもよい。
【００７６】
以上のように、ネットワークの汎用性及び互換性を保ったまま、ネットワーク上での誤判定率を下げる通信装置を提供することができる。また、診断回路において異常と判定された場合、又はＣＲＡＭエラー発生及び訂正中に、パケット検査回路を動作させるように切替えることで、異常パケットを確実に廃棄させることが可能となる。
また、ＦＰＧＡ内部回路に閉じた回路と出来る為、ＦＰＧＡ内部パケットデータの処理フォーマットは特に汎用性及び互換性を持たせる必要がないことから、パケットに付与されているＣＲＣの他、パリティビットや前記したＬＤＰＣ符号を付加して、パケットのエラー検出精度を上げることも可能となる。
【００７７】
さらに、パケット検査回路ではパケットの廃棄をさせるため、メモリバッファにパケットを一旦格納する必要があり、パケット伝送装置の性能の一つの指標である低遅延性能に影響を及ぼし遅延を増大させることが考えられるが、本実施例によれば診断回路において異常と判定された場合、又はＣＲＡＭエラー発生及び訂正中の様に異常状態時に、セレクタ部にてパケット検査回路のパケットを選択するように動作させることから、正常状態ではメモリバッファにパケットを格納することによる遅延が増加しないという効果もある。
また、ソフトエラーによるＦＰＧＡのＣＲＡＭエラー又は回路故障により発生する異常データを持つパケットを確実に検出し廃棄することで、ネットワークへの悪影響を防止することができる。
【００７８】
本実施例においては、パケット処理回路及びパケット検査ブロックに対して診断回路による回路の正常性診断及び、ＣＲＡＭ監視／訂正部によるＣＲＡＭの正常性診断結果に基づき異常時の処理について示した。但し、本構成によると、異常処理を実施する異常処理ブロック、ＣＲＡＭ監視訂正部及び各診断回路で異常が発生した場合の判定が出来ない。但しこれら異常処理及び診断回路に対してさらに診断回路を設けることは対処にはならない。以下に異常処理回路に異常が発生した場合の対処として考えられる一実施例を示す。
【００７９】
本実施例に対し、以下の異常処理ブロックやＣＲＡＭ監視／訂正部の様な異常処理回路は、２重化等の冗長構成としてお互いの回路同士で正常性の診断を行う診断回路を設け、片方が異常の場合は正常回路側で動作させる方法を適用すればさらに信頼性の高いシステムが構築可能である。
【００８０】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。
【００８１】
また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えばＦＰＧＡのような集積回路で設計する等によりハードウエアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウエアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（ＳｏｌｉｄＳｔａｔｅＤｒｉｖｅ）等の記録装置、または、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【００８２】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００８３】
１０２  パケット伝送装置
２０２  パケット処理部
２５０  ＦＰＧＡで構成されたパケット処理部
２５１  ユーザロジック部
２５２  ＣＲＡＭ
２５３  パケット処理回路
２５４  ポリサブロック
２５５  ＭＰＬＳ化ブロック
２５６  シェーパブロック
２５７  監視／制御レジスタ
２５８  パリティ生成部
２５９-１〜２５９-５  診断回路
２６０  パケット検査ブロック
２６１  セレクタ部
２６２  異常処理ブロック
２６３  ＣＲＡＭ監視／訂正部
３００  データ解析部
３０１  セレクタ部
３０２  ＣＲＣ／パリティチェック部
３０３  データバッファメモリ
３０４  診断パターン生成部
３０５  診断パターンチェック部
３０６  パリティチェック部
３０７  論理演算回路
【図１】
2016052074.tif 000003
【図２】
2016052074.tif 000004
【図３】
2016052074.tif 000005
【図４】
2016052074.tif 000006
【図５】
2016052074.tif 000007
【図６】
2016052074.tif 000008
【図７】
2016052074.tif 000009