(57)【要約】【課題】  メモリに記録されたデータの誤りを効果的に検出する通信装置、及び通信装置内メモリの検査方法を提供する。【解決手段】  スイッチ装置１は、ユーザフレームの処理においてアクセスされるメモリ６４と、メモリ６４を検査するための検査フレームを受信したときに、メモリ６４にアクセスするフレーム処理部６０と、フレーム処理部６０のアクセスによってメモリ６４から読み出されたデータの誤りを検出するエラー検出部６２とを有する。スイッチ装置１は、検査フレームを受信することによって、メモリ６４内のデータを効果的に検査し、データ誤りによるユーザフレームの廃棄などを防止する。【選択図】図４
2013236281.tif 000002
【特許請求の範囲】
【請求項１】
ユーザフレームの処理においてアクセスされるメモリと、
前記メモリを検査するための検査フレームを受信したときに、前記メモリにアクセスするフレーム処理部と、
前記フレーム処理部のアクセスによって前記メモリから読み出されたデータの誤りを検出するエラー検出部とを有することを特徴とする通信装置。
【請求項２】
複数組の前記メモリ、及び前記フレーム処理部を有し、
前記検査フレーム、及び前記ユーザフレームは、共通の順序に従って前記フレーム処理部の各々により順次に受信され、処理されることを特徴とする請求項１に記載の通信装置。
【請求項３】
前記フレーム処理部は、前記検査フレームに含まれる制御情報に基づいて、アクセス対象となる前記メモリ内のアドレスを決定することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記検査フレームを生成して、前記フレーム処理部に送信する生成部を、さらに有することを特徴とする請求項１乃至３の何れかに記載の通信装置。
【請求項５】
前記生成部により生成された前記検査フレームは、前記ユーザフレームより低い優先度に基づいて前記フレーム処理部に送信されることを特徴とする請求項４に記載の通信装置。
【請求項６】
前記検査フレームを受信したときに廃棄する廃棄処理部を、さらに有することを特徴とする請求項１乃至５の何れかに記載の通信装置。
【請求項７】
前記エラー検出部は、前記検査フレーム、及び前記ユーザフレームの処理において読み出されたデータの誤り検出に、共通に用いられることを特徴とする請求項１乃至６の何れかに記載の通信装置。
【請求項８】
ユーザフレームの処理においてアクセスされるメモリに、該メモリを検査するための検査フレームを受信したときにアクセスし、該アクセスによって読み出されたデータの誤りを検出することを特徴とする通信装置内メモリの検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、通信装置、及び通信装置内メモリの検査方法に関する。
【背景技術】
【０００２】
半導体技術の進歩に伴い、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などの半導体集積回路の規模が増加し、実装される機能も増加している。このため、集積回路の内部、または外部には、これらの機能に関連する情報を記憶する多くのメモリが設けられている。
【０００３】
例えば、イーサネット（登録商標、以下同様）フレームを中継するレイヤ２のスイッチ装置は、特許文献１及び２に記載されているように、ポート間の転送機能、及び帯域制御機能を備え、多くの設定テーブル、及びバッファメモリなどが設けられている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２３４０６３号公報
【特許文献２】国際公開第２００４／０４０８５４号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
メモリを搭載した装置が抱える問題として、ソフトエラーが挙げられる。ソフトエラーは、製造誤差、または経年劣化による故障ではなく、宇宙線などの放射線の衝突に起因して発生する一過性の故障である。なお、宇宙線とは、宇宙から地球に、絶えず降り注いでいる原子核や素粒子である。
【０００６】
ソフトエラーは、放射線がメモリ内のセルに衝突したときに、該セルに充電されていた電荷を消滅させることにより発生する。ソフトエラーが発生すると、装置は、当該メモリから誤ったデータを読み出すため、動作に異常が生ずる。
【０００７】
例えば、レイヤ２のスイッチ装置は、送信先の情報が記録された設定テーブルにソフトエラーが生じた場合、誤ったデータを読み出すことにより、イーサネットフレームを誤った通信ポートに転送し得る。また、バッファメモリにソフトエラーを生じた場合、スイッチ装置は、イーサネットフレームを誤って廃棄し得る。このような誤動作によって通信障害が引き起こされた場合、公共の通信ネットワークに損害を与えかねない。
【０００８】
ソフトエラーは、上述したように実質的なハードウェア故障ではないから、メモリに正しいデータを再度書き込むことによって、装置の動作の復旧は可能である。したがって、通信障害が発生する前段階においてソフトエラーを検出して、誤ったデータを早期に訂正することが望ましい。なお、このような問題は、スイッチ装置に限られず、他の通信装置についても共通に存在する。
【０００９】
そこで本件は上記の課題に鑑みてなされたものであり、メモリに記録されたデータの誤りを効果的に検出する通信装置、及び通信装置内メモリの検査方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本明細書に記載の通信装置は、ユーザフレームの処理においてアクセスされるメモリと、前記メモリを検査するための検査フレームを受信したときに、前記メモリにアクセスするフレーム処理部と、前記フレーム処理部のアクセスによって前記メモリから読み出されたデータの誤りを検出するエラー検出部とを有する。
【００１１】
また、本明細書に記載の通信装置内メモリの検査方法は、ユーザフレームの処理においてアクセスされるメモリに、該メモリを検査するための検査フレームを受信したときにアクセスし、該アクセスによって読み出されたデータの誤りを検出する。
【発明の効果】
【００１２】
本明細書に記載の通信装置、及び通信装置内メモリの検査方法は、メモリに記録されたデータの誤りを効果的に検出することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】レイヤ２のスイッチ装置の構成図である。
【図２】フレームの一例を示す構成図である。
【図３】スイッチ装置の詳細な構成図である。
【図４】入力処理部、及び出力処理部の各部の構成を示す構成図である。
【図５】各メモリの内容を示す構成図である。
【図６】検査フレームによる全体的な処理を示すフロー図である。
【図７】検査フレームの生成処理、及び送信処理を示すフロー図である。
【図８】検査フレームによるメモリの検査処理を示すフロー図である。
【図９】ユーザフレームの処理を示すフロー図である。
【図１０】検査フレームの終端処理を示すフロー図である。
【図１１】制御部によるソフトエラーの訂正処理を示すフロー図である。
【発明を実施するための形態】
【００１４】
図１は、レイヤ２のスイッチ装置の構成図である。スイッチ装置１は、他装置から受信したイーサネットフレームを、該フレームに含まれる宛先情報に従ってスイッチングし、宛先となる装置に中継する装置である。なお、本実施例において、イーサネットフレームを対象とするスイッチ装置１を挙げるが、これに限定されず、例えばＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ）セルを対象とする装置であってもよい。
【００１５】
スイッチ装置１は、複数の送受信部（１）〜（ｎ）１０、及びスイッチ部１１とを含む。複数の送受信部（１）〜（ｎ）１０は、それぞれ、例えば端末装置９と接続され、端末装置９から受信したユーザフレームを、他装置に中継する処理を行う。また、スイッチ部１１は、複数の送受信部（１）〜（ｎ）１０の間において、ユーザフレームを交換する処理を行う。なお、送受信部（１）〜（ｎ）１０の接続対象は、パーソナルコンピュータなどの端末装置９に限定されず、サーバ装置、またはルータなどの他の装置であってもよい。
【００１６】
複数の送受信部（１）〜（ｎ）１０は、それぞれ、複数のポート（１）〜（ｍ）１００と、ＭＵＸ／ＤＥＭＵＸ部２と、入力処理部３と、出力処理部４とを有する。複数のポート（１）〜（ｍ）１００は、それぞれ、個別の通信回線に対応し、例えばＲＪ−４５などの通信ケーブル用コネクタ、及び、ＰＨＹレイヤ（物理レイヤ）とＭＡＣレイヤとの機能を備える通信処理回路を含む。通信回線としては、例えば、ＩＥＥＥ（Ｔｈｅ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ，  Ｉｎｃ．）により規定された１０００ＢＡＳＥ−Ｔ、及び１０ＧＢＡＳＥ−Ｔなどが挙げられる。
【００１７】
図中、実線の矢印は、ユーザフレームの経路を例示しており、他方、点線の矢印は、検査フレームの経路を例示している。ここで、ユーザフレームとは、端末装置９、またはサーバ装置などにおいて生成され、ユーザが送受信する情報を含むフレームを指す。一方、検査フレームは、装置１内のメモリの検査に用いられるフレームを指す。
【００１８】
ユーザフレームは、例えば、送受信部（２）１０のポート（１）１００から入力され、ＭＵＸ／ＤＥＭＵＸ部２と、入力処理部３とを介してスイッチ部１１に出力される。スイッチ部１１は、入力処理部３から入力されたユーザフレームを、送受信部（２）１０の出力処理部４に出力する。そして、ユーザフレームは、ＭＵＸ／ＤＥＭＵＸ部２を介して、ポート（２）１００から端末装置９に送信される。
【００１９】
一方、検査フレームは、ＭＵＸ／ＤＥＭＵＸ部２内の生成点Ｐｉｎにおいて生成され、入力処理部３を介してスイッチ部１１に出力される。スイッチ部１１は、入力処理部３から入力された検査フレームを折り返して、送受信部（２）１０の出力処理部４に出力する。そして、検査フレームは、出力処理部４からＭＵＸ／ＤＥＭＵＸ部２に出力され、ＭＵＸ／ＤＥＭＵＸ部２の終端点Ｐｏｕｔにおいて終端される。
【００２０】
検査フレームは、上記の経路を伝送される過程において、入力処理部３、及び出力処理部４に設けられた各メモリの検査に用いられる。入力処理部３、及び出力処理部４は、イングレス（ＩＮＧＲＥＳＳ）、及びイーグレス（ＥＧＲＥＳＳ）のフレーム処理をそれぞれ行うものであり、ユーザフレーム、及び検査フレームに共通の伝送路が設けられている。なお、検査フレームの生成点Ｐｉｎ、及び終端点Ｐｏｕｔは、検査対象の装置１内ではなく、外部の他装置に設けてもよい。この場合、装置１のハードウェアの規模が低減されるという利点が得られる。
【００２１】
図２は、フレームの一例を示す構成図である。図２（ａ）は、イーサネットフレームの基本的な構成を示している。イーサネットフレームは、ＤＡ（Ｄｉｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）、ＳＡ（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）、ＴＹＰＥ、ペイロード、及びＦＣＳの各領域を含む。ＤＡは、送信先装置のＭＡＣアドレス（ＭＡＣ：Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）であり、ＳＡは、送信元装置のＭＡＣアドレスである。ＴＹＰＥは、ＩＰ（Ｉｎｔｅｒｎａｔ  Ｐｒｏｔｏｃｏｌ）などのプロトコルの種別である。ペイロードは、当該フレームにより送受信される情報である。ＦＣＳ（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）は、フレームのデータ誤りを検出するための情報である。
【００２２】
図２（ｂ）は、装置１の内部におけるフレームの基本的な構成を示している。この装置内フレームは、上記のイーサネットフレームにヘッダを付与したものである。ヘッダは、ＭＵＸ／ＤＥＭＵＸ部２内において、ユーザフレームに付与、及び削除される。
【００２３】
検査フレームのヘッダは、生成点Ｐｉｎにおいてフレーム本体と同時に生成される。また、検査フレームのＤＡ、ＳＡ、ＴＹＰＥ、及びペイロードは、限定がなく、例えば、全て０であってもよい。ＦＣＳは、ユーザフレームと同様に、他の各領域の値に基づいて算出された値となる。なお、検査フレームが外部装置により生成される場合、ＭＵＸ／ＤＥＭＵＸ部２内においてヘッダが付与される。
【００２４】
ヘッダは、識別情報、及び、各種の制御情報を含む。識別情報は、ユーザフレーム、及び検査フレームを識別するための情報である。例えば、識別情報が、「０」の場合、該フレームがユーザフレームであることを示し、他方、「１」の場合、該フレームが検査フレームであることを示す。入力処理部３、及び出力処理部４の各機能部は、この識別情報を参照して、フレームの処理を区別する。また、スイッチ部１１は、識別情報により検査フレームを認識すると、上述したように、当該検査フレームを出力元の送受信部（ｉ）１０に折り返す（図１の点線参照）。
【００２５】
制御情報は、例えば、フレームの転送先となる送受信部１０の識別番号１〜ｎ、及び当該出力先送受信部１０の送信先ポート１００の識別番号１〜ｍを含む。送受信部１０の識別番号１〜ｎは、例えば入力処理部３によりヘッダに付与される。スイッチ部１１は、ヘッダ内の識別番号１〜ｎを参照して、転送先の送受信部（１）〜（ｎ）１０を判断する。また、出力処理部４は、ヘッダに送信先ポート１００の識別番号１〜ｍを付与し、ＭＵＸ／ＤＥＭＵＸ部２は、この識別番号１〜ｍを参照して、送信先のポート（１）〜（ｍ）１００を判断する。このように、スイッチ装置１は、ＭＰＬＳ（Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）に基づくスイッチ動作を行う。
【００２６】
また、制御情報は、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｃｅ）のサービスクラスなどの帯域制御に関する情報、及びフレームの長さ情報なども含む。入力処理部３、及び出力処理部４の各機能部は、これらの情報を参照して、帯域制御を実行する。なお、検査フレームは、ユーザフレームの帯域への影響が低減されるように、最短の６４（Ｂｙｔｅ）（ヘッダを除く）とすると好ましい。
【００２７】
図３は、スイッチ装置１の詳細な構成図である。スイッチ装置１は、ＭＵＸ／ＤＥＭＵＸ部２と、入力処理部３と、出力処理部３と、制御部５０と、設定保持部５１とを含む。ＭＵＸ／ＤＥＭＵＸ部２、入力処理部３、及び出力処理部４は、例えば、ＦＰＧＡなどの集積回路である。なお、制御部５０と、設定保持部５１は、図１において省略されている。
【００２８】
まず、ＭＵＸ／ＤＥＭＵＸ部２を説明する。ＭＵＸ／ＤＥＭＵＸ部２は、受信側インターフェース部（ＲｘＩＮＦ部）（１）〜（ｍ）２０と、生成部２１と、ＭＵＸ処理部２２と、送信側インターフェース部（ＴｘＩＮＦ部）（１）〜（ｍ）２５と、廃棄処理部２６と、ＤＥＭＵＸ処理部２７を含む。受信側インターフェース部（ＲｘＩＮＦ部）（１）〜（ｍ）２０、及び送信側インターフェース部（ＴｘＩＮＦ部）（１）〜（ｍ）２５は、ポート（１）〜（ｍ）１００とそれぞれ接続されている。
【００２９】
各受信側インターフェース部（ｉ）２０は、受信したユーザフレームの処理速度の変換処理（パラレル変換）、及び上記のヘッダの付与処理などを行う。生成部２１は、上記の生成点Ｐｉｎに該当し、制御部５０からの指示に基づいて検査フレームの生成処理を行う。生成部２１は、生成処理において、フレーム本体に加え、ヘッダ、及びＦＣＳも生成する。また、生成部２１は、制御部５０からの設定に基づき、検査フレームの送信タイミングの制御を行う。送信タイミングは、例えば一定周期（１（ｍｓ）、または１０（ｍｓ）など）をおいて到来するように設定されてもよい。
【００３０】
ＭＵＸ処理部２２は、各受信側インターフェース部（ｉ）２０からのユーザフレーム、及び生成部２１からの検査フレームの入力処理部３への出力制御を行う。すなわち、ＭＵＸ処理部２２は、複数のユーザフレーム、及び検査フレームの出力を調停する。
【００３１】
例えば、ＭＵＸ処理部２２は、各受信側インターフェース部（ｉ）２０に対してラウンドロビン方式に従って出力許可を与える。これにより、出力待ちのユーザフレームを有する各受信側インターフェース部（ｉ）２０は、順次にユーザフレームを出力する。
【００３２】
また、生成部２１により生成された検査フレームは、ユーザフレームの帯域に対する圧迫を避けるために、ユーザフレームより低い優先度に基づいて、入力処理部３内のフレーム処理部に送信される。したがって、ＭＵＸ処理部２２は、出力待ちの検査フレームがあり、かつ、出力待ちのユーザフレームがある場合、ユーザフレームを優先して出力する。一方、出力待ちのユーザフレームがなく、かつ、出力待ちのユーザフレームがある場合、ＭＵＸ処理部２２は、生成部２１に出力許可を与え、検査フレームを出力する。なお、ＭＵＸ処理部２２は、これに限定されず、出力待ちのユーザフレームの有無に関わらず、上記の送信タイミングに従って、検査フレームを出力してもよい。
【００３３】
一方、ＤＥＭＵＸ処理部２７は、出力処理部４から入力されたユーザフレーム、及び検査フレームを、各送信側インターフェース部（ｉ）２５、及び廃棄処理部２６に振り分けて出力する。ＤＥＭＵＸ処理部２７は、検査フレームをヘッダ内の識別情報により認識して、廃棄処理部２６に出力する。また、ＤＥＭＵＸ処理部２７は、同様に、ユーザフレームを識別情報により認識し、ヘッダ内の制御情報に含まれる送信先ポート１００の識別番号１〜ｍに対応する送信側インターフェース部（ｉ）２５に出力する。
【００３４】
各送信側インターフェース部（ｉ）２５は、入力されたユーザフレームからヘッダを除去し、処理速度を変換（シリアル変換）して対応ポート（ｉ）１００に出力する。廃棄処理部２６は、上記の終端点Ｐｏｕｔに該当し、検査フレームを受信したときに廃棄する。廃棄処理部２６は、廃棄に先立ち、入力された検査フレームの正常性を、フレーム内のＦＣＳ（図２参照）に基づいて検査し、結果を制御部５０に通知する。
【００３５】
次に、入力処理部３を説明する。入力処理部３は、転送先解析部３３と、アドレスフィルタ部３６と、フレーム計数部３４と、帯域制御部３５と、アドレステーブル３０と、フィルタテーブル３７と、カウンタ値保持部３１と、ポリシング設定テーブル３２とを含む。このうち、アドレステーブル３０、フィルタテーブル３７、カウンタ値保持部３１、及びポリシング設定テーブル３２は、検査フレームによる検査対象となるメモリである。
【００３６】
このメモリは、ＦＰＧＡなどの集積回路に内蔵される記憶素子、及び、集積回路の外部に設けられるメモリデバイスの何れであってもよい。また、メモリは、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＦＲＡＭ（Ｆｌａｓｈ  ＲＡＭ）などの不揮発性メモリ、及びＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）などの揮発性メモリの何れであってもよい。さらに、メモリは、記憶するデータの種類に応じて、ＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）であってもよい。
【００３７】
転送先解析部３３は、ユーザフレームの送信先アドレスＤＡに基づいて、アドレステーブル３０を参照し、スイッチ部１１による転送先の送受信部（ｉ）１０の識別番号１〜ｎを特定する。アドレステーブル３０には、例えば、送信先アドレスＤＡ、及び該識別番号１〜ｎが対応付けられて記録されている。アドレステーブル３０のデータは、例えば、フラッディングによる学習機能によって構築される。
【００３８】
転送先解析部３３は、ユーザフレームを受信した場合、特定した識別番号１〜ｎをユーザフレームのヘッダに書き込み、ユーザフレームをアドレスフィルタ部３６に送信する。一方、転送先解析部３３は、検査フレームを受信した場合、アクセス対象のアドレスを決定し、アドレステーブル３０の該当アドレスのデータを読み出し、検査フレームを、ヘッダへの書き込み処理を行わずに、アドレスフィルタ部３６に送信する。
【００３９】
アドレスフィルタ部３７は、フィルタテーブル３７を参照して、送信元アドレスＳＡ、または送信先アドレスＤＡが、フィルタテーブル３７に書き込まれたＭＡＣアドレスに一致するユーザフレームを廃棄する。フィルタテーブル３７のデータは、制御部５０により設定される。なお、廃棄されなかったユーザフレームは、フレーム計数部３４に送信される。
【００４０】
一方、検査フレームを受信した場合、アドレスフィルタ部３６は、アクセス対象のアドレスを決定し、アドレステーブル３０の該当アドレスのデータを読み出し、検査フレームをフレーム計数部３４に送信する。
【００４１】
フレーム計数部３４は、通過するユーザフレーム数を計数し、カウンタ値保持部３１に記録する。カウンタ値保持部３１には、通過フレーム数、及び廃棄フレーム数のカウンタ値が記録されている。フレーム計数部３４は、ユーザフレームを受信した場合、カウンタ値保持部３１から通過フレーム数のカウンタ値を読み出して、該カウンタ値に１を加算して得た値を、カウンタ値保持部３１に書き込み、ユーザフレームを帯域制御部３５に送信する。
【００４２】
一方、フレーム計数部３４は、検査フレームを受信した場合、カウンタ値保持部３１から通過フレーム数のカウンタ値を読み出して、該カウンタ値を、加算処理することなく、カウンタ値保持部３１に書き込み、検査フレームを帯域制御部３５に送信する。なお、計数の単位は、フレーム数に限定されず、例えば、オクテット（Ｂｙｔｅ）数であってもよい。なお、カウンタ値保持部３１に記録されたフレーム数は、例えば、制御部５０により読み出され、装置１のパフォーマンス測定に用いられる。
【００４３】
帯域制御部３５は、例えばユーザフレームのポリシング制御を行うポリサーである。帯域制御部３５は、ユーザフレームのトラヒック量を監視し、トラヒック量が一定値を超えると、ユーザフレームを廃棄する。これにより、スイッチ部１１に出力されるユーザフレームの帯域は、スイッチ部１１の転送能力の上限を超えないように制御される。また、帯域制御部３５は、ポリシング制御により廃棄したフレーム数を、カウンタ値保持部３１に記録する。カウンタ値保持部３１に対するカウンタ値の記録処理は、上述したとおりである。
【００４４】
帯域制御部３５は、ポリシング制御において、ポリシング設定テーブル３２を参照する。ポリシング設定テーブル３２には、サービスクラスごとに設けられたポリサーについて、各種のパラメータが記録されている。パラメータとしては、例えば、出力するフレームを格納するバッファ（バケット）の最大値、及びフレームの出力レートの最大値（トークンの供給レート）などが挙げられる。ポリシング設定テーブル３２のデータは、制御部５０により設定される。
【００４５】
帯域制御部３５は、ユーザフレームを受信した場合、ユーザフレームに設定されたＶＬＡＮタグ（ＶＬＡＮ：Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などを参照して、サービスクラスを判定し、該サービスクラスに応じたポリサーを選択する。そして、帯域制御部３５は、ユーザフレームに対して、選択したポリサーによって帯域制御を行い、ユーザフレームをスイッチ部１１に出力し、または廃棄する。
【００４６】
また、帯域制御部３５は、検査フレームを受信した場合、カウンタ値保持部３１から廃棄フレーム数のカウンタ値を読み出して、加算処理せずに、カウンタ値保持部３１に書き込む。そして、帯域制御部３５は、アクセス対象のアドレスを決定し、ポリシング設定テーブル３２の該当アドレス（ポリサーの識別番号に対応）のデータを読み出し、検査フレームに対して帯域制御を行うことなく、検査フレームをスイッチ部１１に出力する。検査フレームは、上述したように、スイッチ部１１において折り返され、出力元の送受信部１０の出力処理部４に入力される。
【００４７】
次に、出力処理部４を説明する。出力処理部４は、帯域制御部４０と、フレーム計数部４１と、送信ポート解析部４２と、フィルタ部４４と、蓄積処理部４３とを含む。また、出力処理部４は、ポリシング設定テーブル４５と、カウンタ値保持部４６と、アドレステーブル４７と、フィルタテーブル４９と、バッファメモリ４８とを含む。ポリシング設定テーブル４５、カウンタ値保持部４６、アドレステーブル４７、フィルタテーブル４９、及びバッファメモリ４８は、検査フレームによる検査対象となるメモリである。
【００４８】
蓄積処理部４３は、スイッチ部１１から入力されたユーザフレーム、及び検査フレームを、バッファメモリ４８に一時的に蓄積する。蓄積処理部４３は、ユーザフレーム、及び検査フレームをバッファメモリ４８に書き込み、送信タイミングが到来するごとに読み出して、送信ポート解析部４２に送信する。
【００４９】
送信ポート解析部４２は、アドレステーブル４７を参照し、フレームの送信先アドレスＤＡに基づいて送信先ポート１００を特定する。アドレステーブル４７には、送信先アドレスＤＡ、及び送信先ポート１００の識別番号１〜ｍが対応付けられて登録されている。アドレステーブル４７のデータは、例えば、フラッディングによる学習機能によって構築される。
【００５０】
送信ポート解析部４２は、ユーザフレームを受信した場合、特定した識別番号１〜ｍをユーザフレームのヘッダに書き込み、ユーザフレームをフィルタ部４４に送信する。一方、送信ポート解析部４２は、検査フレームを受信した場合、アクセス対象のアドレスを決定し、アドレステーブル４７の該当アドレスのデータを読み出して、検査フレームを、ヘッダへの書き込み処理を行うことなく、フィルタ部４４に送信する。
【００５１】
フィルタ部４４は、フィルタテーブル４９を参照して、該当するユーザフレームを廃棄する。フィルタテーブル４９には、例えば、ポート１〜ｍごとに対応して、送信元の送受信部１０の識別番号１〜ｎ、及び送信可能な最大フレーム長が記録されている。フィルタテーブル４９のデータは、制御部５０により設定される。
【００５２】
フィルタ部４４は、ユーザフレームを受信した場合、ユーザフレームのヘッダに記録された送信先ポート１００の識別番号１〜ｍに基づいて、フィルタテーブル４９の該当ポート１００のデータを参照する。そして、フィルタ部４４は、ユーザフレームが廃棄対象である場合、フレームを廃棄し、そうでない場合、フレーム計数部４１に送信する。一方、フィルタ部４４は、検査フレームを受信した場合、アクセス対象のアドレスを決定し、フィルタテーブル４９の該当アドレス（送信先ポート１００の識別番号に対応）のデータを読み出し、検査フレームをフレーム計数部４１に送信する。
【００５３】
フレーム計数部４１は、上述した入力処理部３のフレーム計数部３４と同様に、通過フレーム数、及び廃棄フレーム数を計数する。計数されたカウンタ値は、カウンタ値保持部４６に記録される。
【００５４】
帯域制御部４０は、上述した入力処理部３の帯域制御部３５と同様に、ＤＥＭＵＸ処理部２７に出力されるユーザフレームの帯域を制御する。ポリシング設定テーブル４５には、上述した入力処理部３のポリシング設定テーブル３２と同様に、帯域制御に関するパラメータが記録されている。
【００５５】
ユーザフレームは、ＤＥＭＵＸ処理部２７により、ヘッダに含まれる送信先ポートの識別番号１〜ｍに従って、送信側インターフェース部（１）〜（ｍ）２５に出力される。また、検査フレームは、廃棄処理部２６に出力される。
【００５６】
次に、制御部５０、及び設定保持部５１を説明する。制御部５０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のような演算処理回路である。制御部５０は、例えば、ポリシング設定テーブル３２，４５、及びフィルタテーブル３７，４７にデータを設定し、また、検査フレームの生成などを制御する。なお、制御部５０は、使用者の操作を受け付けるため、装置１を管理する管理装置と通信可能であってもよい。
【００５７】
設定保持部５１には、メモリなどの記憶手段であり、例えば、ポリシング設定テーブル３２，４５、及びフィルタテーブル３７，４７の設定データを保持する。この設定データは、例えば、使用者の操作に応じ、制御部５０を介して設定保持部５１に書き込まれる。制御部５０は、装置１の起動時、設定保持部５１に保持された設定データを読み込み、ポリシング設定テーブル３２，４５、及びフィルタテーブル３７，４７に書き込む。書き込み処理は、帯域制御部３５，４０、アドレスフィルタ部３６、及びフィルタ部４４を介してそれぞれ行われる。
【００５８】
また、制御部５０は、上述したように、生成部２１に検査フレームの生成を指示する。制御部５０は、例えば、使用者の操作に応じ、検査フレームのヘッダの内容、ＤＡやＳＡなどのフレーム本体の内容、及び、送信周期などを指定する。
【００５９】
制御部５０は、各機能部３３〜３６，４０〜４４において、検査フレームによりデータ誤りが検出されたとき、エラー通知を受ける。制御部５０は、エラー通知を受けた場合、データ誤りが生じているメモリに対応する設定データが設定保持部５１に保持されているとき、データ誤りを訂正するために、設定保持部５１のデータを当該メモリに設定する。なお、設定対象となるメモリは、例えば、ポリシング設定テーブル３２，４５、及びフィルタテーブル３７，４７である。
【００６０】
さらに、制御部５０は、廃棄処理部２６から検査フレームのＦＣＳチェックの結果が通知される。制御部５０は、ＦＣＳチェックの結果が異常である場合、その旨を使用者に通知する。
【００６１】
図４は、入力処理部３、及び出力処理部４の各機能部３３〜３６，４５〜４９の構成を示す構成図である。図４に示されたメモリ６４は、ユーザフレームの処理においてアクセスされるメモリ３０〜３２，３７，４０〜４４である。機能部３３〜３６，４５〜４９は、それぞれ、フレーム処理部６０と、エラー検出部６２と、エラー検出情報付与部６３とを含む。つまり、スイッチ装置１は、複数組のメモリ６４、及び、該メモリ６４にアクセスするフレーム処理部６０を有している。
【００６２】
フレーム処理部６０は、ヘッダの識別情報に基づいて、ユーザフレーム、及び検査フレームを識別して、上述した機能部３３〜３６，４０〜４４のフレーム処理を行い、次段の機能部３３〜３６，４０〜４４、またはスイッチ部１１にフレームを送信する。フレーム処理部６０は、メモリ６４を検査するための検査フレームを受信したときに、メモリ６４にアクセスする。フレーム処理部６０は、メモリ６４に対して、アクセス対象のアドレスを指定し、エラー検出情報付与部６３を介してデータを書き込み、また、エラー検出部６２を介してデータを読み込む。これは、ユーザフレームの処理においても同様である。データの書き込みは、フレームの処理において、または制御部５０からの指示に基づいて行われる。後者の場合、設定保持部５１に保持された設定データが、メモリ６４に書き込まれる。
【００６３】
エラー検出情報付与部６３は、フレーム処理部６０のアクセスによってメモリ６４に書き込まれるデータに、データの誤りを検出するためのエラー検出情報を付与する。エラー検出情報としては、例えばＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  Ｃｏｄｅ）が挙げられるが、これに限定されない。
【００６４】
エラー検出部６２は、フレーム処理部６０のアクセスによってメモリ６４から読み出されたデータの誤りを検出する。検出処理は、データに付与されたエラー検出情報に基づいて行われる。エラー検出部６２は、データ誤りを検出したとき、エラー通知を制御部５０に出力する。
【００６５】
図５は、各メモリ６４の内容を示す構成図である。メモリ６４には、アドレスごとに、エラー検出コード、及びデータが記録されている。なお、図５に示されたアドレス値は、一例であり、メモリ３０〜３２，３７，４０〜４４ごとに異なる。
【００６６】
エラー検出コードは、例えばＥＣＣである。データは、メモリ６４がポリシング設定テーブル３２，４５である場合、上述した帯域制御に関するパラメータである。この場合、アドレスは、ポリサーの識別番号に対応する。一方、メモリ６４がフィルタテーブル４９である場合、データは、上述したフィルタ設定に関するパラメータである。この場合、アドレスは、送信先ポート１００の識別番号１〜ｍに対応する。
【００６７】
フレーム処理部６０は、例えば、アクセス対象となるアドレスを決定するためのカウンタ値を有し、検査フレームを受信するごとに該カウンタ値を変更する。カウンタ値は、例えば、一定値の加算により変化してもよい。これにより、フレーム処理部６０は、メモリ６４内の各アドレスを網羅するようにデータを読み出して、エラー検出部６２により検査することができる。
【００６８】
したがって、フレーム処理部６０は、例えば、メモリ６４がフィルタテーブル４９である場合、未使用状態のポート１００の識別番号、つまりアクセスされないアドレスに対応するデータを読み出して検査することができる。通常の運用において、フィルタテーブル４９は、ユーザフレームの送信先ポート１００に対応するデータのみが読み出される。このため、未使用ポート１００のデータ、つまりアクセスされないアドレスのデータは、該当するポート１００を送信先とするユーザフレームを受信した後に、はじめて誤りが検出される場合がある。したがって、上述したように、アクセスされないアドレスのデータ誤りを、該ユーザフレームの受信に先立って早期に検出することは有効である。これは、他のフィルタ部３７、及びポリシング設定テーブル３２，４５などについても同様である。
【００６９】
また、フレーム処理部６０は、上記のカウンタ値によらず、検査フレームのヘッダに含まれる制御情報に基づいて、アクセス対象となるメモリ６４内のアドレスを決定してもよい。この場合、フレーム処理部６０は、カウンタを保持することがないので、ハードウェアの規模が低減されるという利点が得られる。なお、検査フレームの制御情報は、例えば制御部５０により設定される。
【００７０】
次に、検査フレームによるメモリの検査方法について図６〜図１１を参照して説明する。図６は、検査フレームによる全体的な処理を示すフロー図である。
【００７１】
まず、生成部２１は、制御部５０の指示に従って検査フレームを生成し、ＭＵＸ処理部２２から出力許可を受けたときに検査フレームを送信する（ステップＳｔ１）。次に、各機能部３０〜３２，３７，４０〜４４において、フレーム処理部６０は、検査フレームによりメモリ６４（３０〜３２，３７，４５〜４９）を検査する（ステップＳｔ２）。検査は、検査フレームを受信した各フレーム処理部６０のエラー検出部６２によって順次に行われる。次に、廃棄処理部２６は、検査フレームを廃棄する（ステップＳｔ３）。このように、装置１内メモリ６４（３０〜３２，３７，４５〜４９）の検査が行われる。
【００７２】
次に、上述した各ステップＳｔ１〜３について詳細に説明する。図７は、検査フレームの生成処理、及び送信処理を示すフロー図である。
【００７３】
生成部２１は、制御部５０から検査フレームの生成指示があるまで待機する（ステップＳｔ１１のＮＯ）。生成部２１は、制御部５０から生成指示を受けると（ステップＳｔ１１のＹＥＳ）、検査フレームを生成する（ステップＳｔ１２）。
【００７４】
次に、生成部２１は、検査フレームの送信タイミングが到来するまで待機する（ステップＳｔ１３のＮＯ）。生成部２１は、送信タイミングが到来したときに（ステップＳｔ１３のＹＥＳ）、受信側インターフェース部（１）〜（ｍ）２０に送信待ちのユーザフレームがなければ（ステップＳｔ１４のＹＥＳ）、検査フレームを入力処理部３に出力する（ステップＳｔ１５）。一方、受信側インターフェース部（１）〜（ｍ）２０に送信待ちのユーザフレームがあれば（ステップＳｔ１４のＮＯ）、生成部２１は、ユーザフレームがなくなるまで待機する。このように、検査フレームの生成処理、及び送信処理が行われる。
【００７５】
また、図８は、検査フレームによるメモリ６４（３０〜３２，３７，４５〜４９）の検査処理を示すフロー図である。フレーム処理部６０は、検査フレームを受信すると（ステップＳｔ２１のＹＥＳ）、アクセス対象となるアドレスを決定する（ステップＳｔ２２）。アドレスは、上述したように、例えば、検査フレームの受信ごとに変化するカウンタ値を用いて決定され、または、検査フレームのヘッダ内の制御情報に基づいて決定されてもよい。なお、フレーム処理部６０は、ヘッダ内の識別情報に基づいて検査フレームを認識する。
【００７６】
次に、フレーム処理部６０は、メモリ６４（３０〜３２，３７，４５〜４９）の該当アドレスのデータを読み出す（ステップＳｔ２３）。そして、エラー検出部６２は、読み出されたデータに付与されたエラー検出情報（図５参照）に基づき、誤りの有無を判定する（ステップＳｔ２４）。
【００７７】
次に、エラー検出部６２は、データ誤りを検出した場合（ステップＳｔ２５のＹＥＳ）、エラー検出情報に基づく論理演算の結果から、データ誤りが訂正可否を判定する（ステップＳｔ２６）。なお、ＥＣＣの場合、１ビットのエラー訂正が可能である。
【００７８】
エラー検出部６２は、データ誤りの訂正が可能である場合（ステップＳｔ２６のＹＥＳ）、メモリ３０〜３２，３７，４０〜４４内の当該データを訂正する（ステップＳｔ２７）。一方、訂正不可能である場合（ステップＳｔ２６のＮＯ）、エラー検出部６２は、制御部５０にエラー通知を送信する（ステップＳｔ２９）。制御部５０は、エラー通知を受けると、設定保持部５１に正常なデータが保持されている場合、後述するようにメモリに、当該正常なデータを書き込むことによって訂正処理を行う。なお、エラー通知は、例えば、誤りが検出されたメモリ６４を示す識別情報、及びアドレスを含む。
【００７９】
次に、フレーム処理部６０は、検査フレームを、次段の機能部３４〜３６，４０〜４２，４４、またはスイッチ部１１に送信する。これは、データ誤りが検出されない場合（ステップＳｔ２５のＮＯ）も同様に行われる。このように、フレーム処理部６０は、検査フレームによりメモリ６４（３０〜３２，３７，４５〜４９）を検査する。
【００８０】
また、検査フレームの処理との比較のために、図９には、ユーザフレームの処理が示されている。図９は、ユーザフレームのヘッダの更新を伴う処理を示す。このような処理としては、例えば転送先解析部３３、及び送信ポート解析部４２における処理が挙げられる。
【００８１】
フレーム処理部６０は、ユーザフレームを受信すると（ステップＳｔ４１のＹＥＳ）、アクセス対象となるアドレスを特定する（ステップＳｔ４２）。アドレスは、ユーザフレームの送信先アドレスＤＡ、送信元アドレスＳＡ、またはヘッダ内の制御情報などに基づいて決定される。なお、フレーム処理部６０は、ヘッダ内の識別情報に基づいてユーザフレームを認識する。
【００８２】
次に、フレーム処理部６０は、メモリ６４の該当アドレスのデータを読み出す（ステップＳｔ４３）。そして、エラー検出部６２は、読み出されたデータに付与されたエラー検出情報に基づき、データ誤りの有無を判定する（ステップＳｔ４４）。このように、エラー検出部６２は、検査フレーム、及びユーザフレームの処理において読み出されたデータの誤り検出に、共通に用いられるため、ハードウェアの規模が低減される。
【００８３】
エラー検出部６２は、図８の検査フレームの処理と同様に、データ誤りを検出すると（ステップＳｔ４５のＹＥＳ）、データ誤りの訂正可否を判定する（ステップＳｔ４６）。訂正不可能である場合（ステップＳｔ４６のＮＯ）、フレーム処理部６０は、ユーザフレームを誤った端末装置９に送信しないように、ユーザフレームを廃棄する（ステップＳｔ５０）。一方、データ誤りが訂正可能である場合（ステップＳｔ４６のＹＥＳ）、エラー検出部６２は、図８の検査フレームの処理と同様に、データを訂正する（ステップＳｔ４７）。
【００８４】
次に、フレーム処理部６０は、メモリ６４から読み出したデータに基づいてヘッダを更新する（ステップＳｔ４８）。これは、データ誤りが検出されない場合（ステップＳｔ４５のＮＯ）も同様に行われる。例えば、転送先解析部３３は、アドレステーブル３０から読み出した転送先の送受信部１０の識別番号１〜ｎを、制御情報としてヘッダに書き込む。また、送信ポート解析部４２は、アドレステーブル４７から読み出した送信先ポート１００の識別番号１〜ｍを、制御情報としてヘッダに書き込む。なお、検査フレームの処理の場合、検査フレームは、端末装置９に送信されないので、ヘッダの更新は行われない。
【００８５】
ヘッダの更新後、フレーム処理部６０は、ユーザフレームを、次段の機能部３４〜３６，４０〜４２，４４、またはスイッチ部１１に送信する（ステップＳｔ４９）。このように、フレーム処理部６０は、ユーザフレームを処理する。
【００８６】
ユーザフレーム、及び検査フレームは、共通の伝送経路を通り、順次に各機能部３３〜３６，４０〜４４に送信される。つまり、検査フレーム、及びユーザフレームは、共通の順序に従ってフレーム処理部６０の各々により順次に受信され、処理される。したがって、本実施例によると、ハードウェアの規模が低減されるだけでなく、複数のメモリ６４（３０〜３２，３７，４５〜４９）を効率よく検査できる。
【００８７】
また、図１０は、検査フレームの終端処理を示すフロー図である。廃棄処理部２６は、検査フレームを受信するまで待機し（ステップＳｔ３１のＮＯ）、検査フレームを受信すると（ステップＳｔ３１のＹＥＳ）、検査フレームのＦＣＳをチェックする（ステップＳｔ３２）。
【００８８】
廃棄処理部２６は、ＦＣＳエラーを検出した場合（ステップＳｔ３３のＮＯ）、制御部５０にＦＣＳエラーの検出を通知する（ステップＳｔ３４）。一方、ＦＣＳエラーが検出されなかった場合（ステップＳｔ３３のＹＥＳ）、廃棄処理部２６は、制御部５０に検査の終了を通知する（ステップＳｔ３５）。そして、廃棄処理部２６は、検査フレームを廃棄する（ステップＳｔ３６）。このように、検査フレームは終端される。
【００８９】
また、図１１は、制御部によるソフトエラーの訂正処理を示すフロー図である。訂正処理の対象となるメモリ６４は、例えばポリシング設定テーブル３２，４５、及びフィルタテーブル３７，４７である。
【００９０】
制御部５０は、エラー検出部６２からエラー通知を受信すると（ステップＳｔ５１のＹＥＳ）、エラー通知の内容に基づき、誤りが検出されたデータに該当する正常な設定データを、設定保持部５１から読み出す（ステップＳｔ５２）。そして、制御部５０は、設定データを、該当するメモリ６４の該当アドレスに書き込む（ステップＳｔ５３）。このように、データの誤りが訂正される。
【００９１】
これまで述べたように、スイッチ装置１は、ユーザフレームの処理においてアクセスされるメモリ６４に、該メモリ６４を検査するための検査フレームを受信したときにアクセスし、該アクセスによって読み出されたデータの誤りを検出する。したがって、スイッチ装置１は、検査フレームを受信することによって、ユーザフレームの処理に先立ってメモリ６４内のデータを効果的に検査し、データ誤りによるユーザフレームの廃棄などを防止する。
【００９２】
また、本実施例に係るスイッチ装置１は、検査フレームを生成して、フレーム処理部６０に送信する生成部２１、及び、検査フレームを受信したときに廃棄する廃棄処理部２６を有する。したがって、スイッチ装置１は、外部に特別な試験装置を接続することなく、自装置において生成した検査フレームを用いて、簡便にデータ誤りを検出することができる。
【００９３】
本実施例において、通信装置の例として、スイッチ装置１を挙げたが、これに限定されない。上述した内容は、例えば、ルータ装置などの他の通信装置にも適用可能である。
【００９４】
以上、好ましい実施例を参照して本発明の内容を具体的に説明したが、本発明の基本的技術思想及び教示に基づいて、当業者であれば、種々の変形態様を採り得ることは自明である。
【００９５】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  ユーザフレームの処理においてアクセスされるメモリと、
前記メモリを検査するための検査フレームを受信したときに、前記メモリにアクセスするフレーム処理部と、
前記フレーム処理部のアクセスによって前記メモリから読み出されたデータの誤りを検出するエラー検出部とを有することを特徴とする通信装置。
（付記２）  複数組の前記メモリ、及び前記フレーム処理部を有し、前記検査フレーム、及び前記ユーザフレームは、共通の順序に従って前記フレーム処理部の各々により順次に受信され、処理されることを特徴とする付記１に記載の通信装置。
（付記３）  前記フレーム処理部は、前記検査フレームに含まれる制御情報に基づいて、アクセス対象となる前記メモリ内のアドレスを決定することを特徴とする付記１または２に記載の通信装置。
（付記４）  前記検査フレームを生成して、前記フレーム処理部に送信する生成部を、さらに有することを特徴とする付記１乃至３の何れかに記載の通信装置。
（付記５）  前記生成部により生成された前記検査フレームは、前記ユーザフレームより低い優先度に基づいて前記フレーム処理部に送信されることを特徴とする付記４に記載の通信装置。
（付記６）  前記検査フレームを受信したときに廃棄する廃棄処理部を、さらに有することを特徴とする付記１乃至５の何れかに記載の通信装置。
（付記７）  前記エラー検出部は、前記検査フレーム、及び前記ユーザフレームの処理において読み出されたデータの誤り検出に、共通に用いられることを特徴とする付記１乃至６の何れかに記載の通信装置。
（付記８）  ユーザフレームの処理においてアクセスされるメモリに、該メモリを検査するための検査フレームを受信したときにアクセスし、該アクセスによって読み出されたデータの誤りを検出することを特徴とする通信装置内メモリの検査方法。
（付記９）  複数組の前記メモリ、及び該メモリにアクセスする前記フレーム処理部を有し、前記検査フレーム、及び前記ユーザフレームは、共通の順序に従って前記フレーム処理部の各々により順次に受信され、処理されることを特徴とする付記１に記載の通信装置内メモリの検査方法。
（付記１０）  前記検査フレームに含まれる制御情報に基づいて、アクセス対象となる前記メモリ内のアドレスを決定することを特徴とする付記８、または９に記載の通信装置内メモリの検査方法。
（付記１１）  前記検査フレームを生成して、前記メモリにアクセスするフレーム処理部に送信することを特徴とする付記８乃至１０の何れかに記載の通信装置内メモリの検査方法。
（付記１２）  生成された前記検査フレームは、前記ユーザフレームより低い優先度に基づいて前記フレーム処理部に送信されることを特徴とする付記１１に記載の通信装置内メモリの検査方法。
（付記１３）  前記フレーム処理部から出力された前記検査フレームを廃棄することを特徴とする付記８乃至１２の何れかに記載の通信装置内メモリの検査方法。
【符号の説明】
【００９６】
１                    スイッチ装置
１０                  送受信部
１００                ポート
２                    ＭＵＸ／ＤＥＭＵＸ部
２１                  生成部
２６                  廃棄処理部
３                    入力処理部
４                    出力処理部
５０                  制御部
６０                  フレーム処理部
６２                  エラー検出部
６４                  メモリ
【図１】
2013236281.tif 000003
【図２】
2013236281.tif 000004
【図３】
2013236281.tif 000005
【図４】
2013236281.tif 000006
【図５】
2013236281.tif 000007
【図６】
2013236281.tif 000008
【図７】
2013236281.tif 000009
【図８】
2013236281.tif 000010
【図９】
2013236281.tif 000011
【図１０】
2013236281.tif 000012
【図１１】
2013236281.tif 000013