(57)【要約】【課題】回路規模を大きくすることなく、ソフトエラーによる影響を最小限に抑制する。【解決手段】入力されたフレームの長さ情報と宛先情報を入力フレームの属性情報として取得する。入力されたフレームの全体に対して誤り検出符号を算出し、算出した誤り検出符号をそのフレームの末尾に付与する。入力フレームの属性情報を含む識別子を生成するとともに、この識別子に対して誤り訂正符号を算出し、算出した誤り訂正符号を識別子に埋め込む。誤り検出符号が付与されたフレームをバッファメモリに蓄積し、フレームの手前に予め確保したバッファメモリ領域に誤り訂正符号が埋め込まれた識別子を蓄積する。バッファメモリに蓄積されている識別子を読み出し、この識別子に埋め込まれている誤り訂正符号を用いて識別子の誤りの検知を行い、検知された誤りが訂正可能であるか否かを判断し、訂正可能であると判断した場合、識別子に含まれている入力フレームの属性情報のエラー訂正を行う。【選択図】  図２
2019004435.tif 000002
【特許請求の範囲】
【請求項１】
入力されたフレームをバッファメモリに蓄積するフレーム蓄積ステップと、前記バッファメモリに蓄積されているフレームを読み出すフレーム読出ステップとを備えたフレーム処理方法において、
前記フレーム蓄積ステップは、
前記入力されたフレームが備える固有の情報を入力フレームの属性情報として取得するとともに、前記入力されたフレームの全体に対して誤り検出符号を算出し、この算出した誤り検出符号を前記入力されたフレームに付与する入力フレーム処理ステップと、
前記取得された入力フレームの属性情報を含む識別子を生成するとともに、この識別子に対して誤り訂正符号を算出し、この算出した誤り訂正符号を前記識別子の特定領域に埋め込む識別子生成ステップと、
前記誤り訂正符号が埋め込まれた識別子と前記誤り検出符号が付与されたフレームとを前記バッファメモリに蓄積する識別子／フレーム蓄積ステップとを備え、
前記フレーム読出ステップは、
前記バッファメモリに蓄積されている前記識別子を読み出し、この識別子に埋め込まれている前記誤り訂正符号を用いて当該識別子の誤りの検知を行い、誤りが検知された場合、その検知された識別子の誤りが訂正可能であるか否かを判断する誤り検知ステップと、
前記検知された識別子の誤りが訂正可能であると判断された場合、前記識別子に含まれている前記入力フレームの属性情報のエラー訂正を行うエラー訂正ステップと
を備えることを特徴とするフレーム処理方法。
【請求項２】
請求項１に記載されたフレーム処理方法において、
前記識別子／フレーム蓄積ステップは、
前記バッファメモリに前記フレームを蓄積する際、このフレームを蓄積するメモリ領域の手前に、前記識別子を蓄積するメモリ領域を予め確保する
ことを特徴とするフレーム処理方法。
【請求項３】
請求項１に記載されたフレーム処理方法において、
前記エラー訂正ステップは、
前記検知された識別子の誤りが訂正不能であると判断された場合、少なくとも、前記バッファメモリに蓄積されている前記識別子と前記フレームを全て破棄する
ことを特徴とするフレーム処理方法。
【請求項４】
請求項１に記載されたフレーム処理方法において、
前記入力フレーム処理ステップは、
前記入力されたフレームの長さ情報および前記入力されたフレームの宛先情報を前記入力フレームの属性情報として取得する
ことを特徴とするフレーム処理方法。
【請求項５】
請求項１に記載されたフレーム処理方法において、
前記入力フレーム処理ステップは、
前記入力されたフレームに前記誤り検出符号として巡回冗長符号を付与する
ことを特徴とするフレーム処理方法。
【請求項６】
請求項１に記載されたフレーム処理方法において、
前記識別子生成ステップは、
前記識別子の特定領域に前記誤り訂正符号として単一エラー訂正ダブルエラー検出符号を埋め込む
ことを特徴とするフレーム処理方法。
【請求項７】
入力されたフレームをバッファメモリに蓄積するフレーム蓄積手段と、前記バッファメモリに蓄積されているフレームを読み出すフレーム読出手段とを備えたフレーム処理装置において、
前記フレーム蓄積手段は、
前記入力されたフレームが備える固有の情報を入力フレームの属性情報として取得するとともに、前記入力されたフレームの全体に対して誤り検出符号を算出し、この算出した誤り検出符号を前記入力されたフレームに付与する入力フレーム処理手段と、
前記取得された入力フレームの属性情報を含む識別子を生成するとともに、この識別子に対して誤り訂正符号を算出し、この算出した誤り訂正符号を前記識別子の特定領域に埋め込む識別子生成手段と、
前記誤り訂正符号が埋め込まれた識別子と前記誤り検出符号が付与されたフレームとを前記バッファメモリに蓄積し、前記バッファメモリに前記フレームを蓄積する際に、このフレームを蓄積するメモリ領域の手前に、前記識別子を蓄積するメモリ領域を予め確保する識別子／フレーム蓄積手段とを備え、
前記フレーム読出手段は、
前記バッファメモリに蓄積されている前記識別子を読み出し、この識別子に埋め込まれている前記誤り訂正符号を用いて当該識別子の誤りの検知を行い、誤りが検知された場合、その検知された識別子の誤りが訂正可能であるか否かを判断する誤り検出手段と、
前記検知された識別子の誤りが訂正可能であると判断された場合、前記識別子に含まれている前記入力フレームの属性情報のエラー訂正を行うエラー訂正手段と
を備えることを特徴とするフレーム処理装置。
【請求項８】
請求項１〜６の何れか１項に記載されたフレーム処理方法における各ステップの処理をコンピュータに実行させるためのフレーム処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、宇宙線によるソフトエラーによるフレームの誤処理防止を抑えるためのフレーム処理方法、フレーム処理装置及びフレーム処理プログラムに関するものである。
【背景技術】
【０００２】
近年、インターネット上でＳＮＳ（Social Networking Service）やＩＰ電話など様々なサービスが進展し、光ブロードバンドや高速モバイル通信等それらを提供するネットワークも進展、拡大化している。このような状況の中、ネットワークを支える通信装置はますます大容量の通信容量をハンドリングするため、高速化、大容量化が進んでいる。
【０００３】
このような高速化、大容量化に対応するために、通信装置に用いられる通信用ＬＳＩの微細化がますます進んでいる。このような微細化に伴い、特に、大規模集積回路（ＬＳＩ）上に搭載されるメモリ部については、宇宙線によるソフトエラーと言われるビット反転によるビットエラーの発生が懸念されている。
【０００４】
このビットエラーが、メモリ部にバッファリングされた信号に対して発生すると、メモリ部から信号を読み出した際に、信号の一部がビット反転した信号が読み出されてしまう。このような読み出された信号のビット誤りによって、通信障害や装置故障誤検知などが発生し、サービスの停止など深刻な影響へと発展する可能性が高まる。
【０００５】
従来、ソフトエラーに対する対処法として、ＴＭＲ（Triple Modular Redundancy）法がある（例えば、非特許文献１参照）。このＴＭＲ法では、回路を３重に冗長化することにより、多数決で決定した値を出力することによって、ソフトエラーによるビット反転による影響を回避する。
【０００６】
また、このような冗長回路ではなく、通信装置間で相互にやり取りされるセルに冗長符号を付与することによって、誤りチェックを行い、誤ったビットを復元する方法もある（例えば、特許文献１参照）。この方法では、セルを構成するセルヘッダ及び情報ビットに個別に誤り訂正を行うための冗長ビットを付与することにより、セル廃棄率を大幅に低減して、ビットエラーによる影響を回避する。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】SRAM型FPGAの部分再構成によるソフトコアプロセッサの高信頼化、電子情報通信学会論文誌D Vol. J92-D No. 12 pp. 2105-2113
【特許文献】
【０００８】
【特許文献１】特開平９-５１３３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ソフトエラーは、宇宙空間でＬＳＩを使用しない限り、頻度高く起こることはない。このため、ソフトエラーへの対処方法は、回路に大きなインパクトなく、効率的に実現することが望まれる。
【００１０】
しかしながら、例えば、非特許文献１に示されているＴＭＲ法だと、同じ回路が３つも必要となり回路規模が大きくなってしまうという問題があった。
【００１１】
また、特許文献１に示されているセルヘッダと情報ビット両方に誤り訂正を行う符号を付与する対処法だと、廃棄率は低減できるものの、バッファリングが必要な全てのメモリ部で誤り訂正を行う処理回路や１つのセルヘッダ乃至は情報ビット専用のメモリが必要となり、回路規模が比較的大きくなってしまうという問題があった。
【００１２】
本発明は、このような課題を解決するためになされたもので、その目的とするところは、回路規模を大きくすることなく、ソフトエラーによる影響を最小限に抑制することが可能なフレーム処理方法、フレーム処理装置及びフレーム処理プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
このような目的を達成するために本発明は、入力されたフレームをバッファメモリに蓄積するフレーム蓄積ステップと、バッファメモリに蓄積されているフレームを読み出すフレーム読出ステップとを備えたフレーム処理方法において、フレーム蓄積ステップは、入力されたフレームが備える固有の情報を入力フレームの属性情報として取得するとともに、入力されたフレームの全体に対して誤り検出符号を算出し、この算出した誤り検出符号を入力されたフレームに付与する入力フレーム処理ステップ（Ｓ１０１）と、取得された入力フレームの属性情報を含む識別子を生成するとともに、この識別子に対して誤り訂正符号を算出し、この算出した誤り訂正符号を識別子の特定領域に埋め込む識別子生成ステップ（Ｓ１０２）と、誤り訂正符号が埋め込まれた識別子と誤り検出符号が付与されたフレームとをバッファメモリに蓄積する識別子／フレーム蓄積ステップ（Ｓ１０３，Ｓ１０４）とを備え、フレーム読出ステップは、バッファメモリに蓄積されている識別子を読み出し、この識別子に埋め込まれている誤り訂正符号を用いて当該識別子の誤りの検知を行い、誤りが検知された場合、その検知された識別子の誤りが訂正可能であるか否かを判断する誤り検知ステップ（Ｓ１０７）と、検知された誤りが訂正可能であると判断された場合、識別子に含まれている入力フレームの属性情報のエラー訂正を行うエラー訂正ステップ（Ｓ１０８）とを備えることを特徴とする。
【００１４】
本発明では、入力されたフレームをバッファメモリに蓄積する際、入力されたフレームが備える固有の情報（例えば、フレームの長さ、フレームの宛先情報）を入力フレームの属性情報として取得する。また、入力されたフレームの全体に対して誤り検出符号（例えば、ＣＲＣ８（巡回冗長符号））を算出し、この算出した誤り検出符号を入力されたフレームに付与する。また、取得した入力フレームの属性情報を含む識別子を生成するとともに、この識別子に対して誤り訂正符号（例えば、ＳＥＣＤＥＤ符号（単一エラー訂正ダブルエラー検出符号））を算出し、この算出した誤り訂正符号を識別子の特定領域に埋め込む。そして、誤り訂正符号が埋め込まれた識別子と誤り検出符号が付与されたフレームとをバッファメモリに蓄積する。
【００１５】
また、本発明では、バッファメモリに蓄積されているフレームを読み出す際、バッファメモリに蓄積されている識別子を読み出し、この識別子に埋め込まれている誤り訂正符号を用いて識別子の誤り検知を行い、誤りが検知された場合、その検知された識別子の誤りが訂正可能であるか否かを判断する。ここで、検知された識別子の誤りが訂正可能であると判断された場合、その識別子に含まれる入力フレームの属性情報のエラー訂正を行う。
【００１６】
なお、上記説明では、一例として、発明の構成要素に対応する図面上の構成要素を、括弧を付した参照符号によって示している。
【発明の効果】
【００１７】
以上説明したことから分かるように、本発明によれば、入力フレームの属性情報を含む識別子がバッファメモリから読み出され、この識別子に埋め込まれている誤り訂正符号を用いてその識別子の誤りの検知が行われ、検知された誤りが訂正可能と判断された場合、その識別子に含まれる入力フレームの属性情報のエラー訂正が行われるものとなり、回路規模を大きくすることなく、ソフトエラーによる影響を最小限に抑制することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】図１は、本発明に係るフレーム処理方法が適用されたフレーム処理装置の要部の構成を示す図である。
【図２】図２は、このフレーム処理装置内の処理（本発明に係るフレーム処理）を示すフローチャートである。
【図３】図３は、本発明に係るフレーム処理方法を実装した通信装置に具備されたフレーム処理回路の要部を示す図である。
【図４】図４は、このフレーム処理回路におけるバッファメモリへのフレームの書き込み及び読み出しを説明する図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００２０】
〔実施の形態１〕
図１に、本発明に係るフレーム処理方法が適用されたフレーム処理装置１０の要部の構成を示す。
【００２１】
このフレーム処理装置１０は、入力フレーム初段処理部１と、識別子生成部２と、バッファメモリ３と、バッファメモリ制御監視部４と、誤り検知部５と、誤り訂正部６とを備えている。また、バッファメモリ制御監視部４は、識別子／フレーム書込部４−１と、パケット読出部４−２とを備えている。
【００２２】
このフレーム処理装置１０では、入力フレーム初段処理部１と識別子生成部２と識別子／フレーム書込部４−１とでフレーム蓄積部７が構成され、パケット読出部４−２と誤り検知部５と誤り訂正部６とでフレーム読出部８が構成されている。
【００２３】
図２は、このフレーム処理装置１０内の処理（本発明に係るフレーム処理）を示すフローチャートである。このフローチャートにおいて、ステップＳ１０１の処理は入力フレーム初段処理部１で行われ、ステップＳ１０２の処理は識別子生成部２で行われる。また、ステップＳ１０３，Ｓ１０４，Ｓ１０５の処理は識別子／フレーム書込部４−１で行われ、ステップＳ１０６の処理はパケット読出部４−２で行われる。また、ステップＳ１０７の処理は誤り検知部５で行われ、ステップＳ１０８，Ｓ１０９の処理は誤り訂正部６で行われる。
【００２４】
〔ステップＳ１０１〕
ステップＳ１０１は、誤り検出処理によってフレーム内にエラーのないことが確認されたフレームについて、フレームを特定したり、フレーム処理を誤りなく行うために、フレームの属性をフレームと確実に関連付けを行う最初の重要な工程である。
【００２５】
このステップＳ１０１では、入力されたフレームが備える固有の情報を入力フレームの属性情報として取得する。この例では、入力フレームの属性情報として、入力されたフレームの長さ情報と入力されたフレームの宛先情報を取得する。以下、フレームの長さ情報を＃１とし、フレームの宛先情報を＃２とする。また、入力されたフレームをＦとする。
【００２６】
この例において、フレームの長さ情報＃１は、入力されたフレームＦの長さを計測することによって取得する。また、フレームの宛先情報＃２は、例えば、入力されたフレームＦに埋め込まれている宛先ＭＡＣアドレスと通信装置が保有しているユーザ情報と照らし合わせるなどして、フレームＦの送信先を特定する番号が割り当てられるので、この割り当てられる番号をフレームの宛先情報＃２として取得する。
【００２７】
また、ステップＳ１０１では、後段のステップでフレームＦに誤りが重畳した場合に検出できるように、フレーム全体に対して誤り検出符号を算出し、この算出した誤り検出符号をフレームＦの末尾に付与する。この例では、ＣＲＣ８（Cyclic Redundancy Check 8）を誤り検出符号として付与する。なお、フレーム全体に対して算出する誤り検出符号はＣＲＣ８に限らず、類似の様々な誤り検出符号形式が適応可能である。
【００２８】
〔ステップＳ１０２〕
ステップＳ１０２は、ステップＳ１０１で得られた入力フレームの属性情報（＃１、＃２）とフレームＦとを紐付けるための識別子を生成する工程である。
【００２９】
この識別子の生成工程では、固定長の識別子を用意して、この識別子にステップＳ１０１で得られた入力フレームの属性情報（＃１，＃２）を埋め込む。この際、入力フレームの属性情報（＃１，＃２）を割り当てる識別子内の領域を予め決めおくとよい。この入力フレームの属性情報（＃１，＃２）を識別子に埋め込むことによって、入力されたフレームＦと入力フレームの属性情報（＃１，＃２）との紐付が行われる。以下、このステップＳ１０２で生成する識別子をＳとする。
【００３０】
識別子Ｓへの入力フレームの属性情報（＃１，＃２）の埋め込みが完了すると、識別子全体或いは入力フレームの属性情報（＃１，＃２）が埋め込まれた領域に対して誤り訂正が可能なように、識別子Ｓの全体で、誤り訂正符号の計算を行う。
【００３１】
例えば、誤り訂正符号として、単一エラー訂正、２つエラー検出を行うＳＥＣＤＥＤ（single error correction double error detection）符号を適応すれば、実際に発生するソフトエラーの誤りパタンをカバーすることが可能である。
【００３２】
そして、この算出した誤り訂正符号を、識別子Ｓ内の特定領域に埋め込む。なお、識別子Ｓに埋め込む誤り訂正符号はＳＥＣＤＥＤ符号に限られるものではなく、要件によって別の種類の誤り訂正符号を適宜設定可能である。
【００３３】
〔ステップＳ１０３〕
ステップＳ１０３は、フレームＦのバッファメモリ３へのバッファリング工程である。先のステップＳ１０２では、フレームＦから取得する情報を元に識別子Ｓを生成するため、識別子Ｓのバッファメモリ３へのバッファリングがフレームＦよりも遅れる。このため、ステップＳ１０３では、フレームＦのバッファリングを行う前に、識別子Ｓをバッファリングするバッファメモリ３内の領域を予約（確保）する。そして、この予約した領域を避けて、フレームＦをバッファメモリ３に蓄積させる。
【００３４】
〔ステップＳ１０４〕
ステップＳ１０４は、識別子Ｓのバッファメモリ３へのバッファリング工程である。ここでは、ステップＳ１０３で予約したバッファメモリ３内の領域に、ステップＳ１０２で生成した識別子Ｓを蓄積させる。
【００３５】
〔ステップＳ１０５〕
ステップＳ１０５は、フレームＦと識別子Ｓのバッファリング状態を制御監視する工程である。ここでは、例えばフレームＦが全てバッファリングされているか否かを監視し、状態を保持したり、後工程の指示が開始されるまで、蓄積されたフレームＦをバッファメモリ３内に待機させるといった制御などを担う。
【００３６】
〔ステップＳ１０６〕
ステップＳ１０６では、バッファメモリ３に対して出力指示を出すことにより、バッファメモリ３から識別子Ｓの全体を少なくとも含むパケット（識別子Ｓ＋フレームＦ）の一部を取り出す。
【００３７】
フレーム処理が必要になった際には、バッファメモリ３に対して、出力指示を出す。バッファメモリ３がＦＩＦＯ（first in first out）方式の場合、出力指示があると、バッファメモリ３に最初に格納されたパケットが最初に出力される。
【００３８】
すなわち、パケットが出力される際は、最初に格納されたパケットの識別子Ｓから出力されることになる。この際、バッファメモリ３のビット幅が識別子Ｓのビット数より大きく、尚且つ、バッファメモリ３の１層目先頭から識別子Ｓが格納されている場合は、少なくとも、バッファメモリ３の１層目のみ取り出せば、取り出したパケットの一部には、識別子Ｓを全て含むことになる。
【００３９】
〔ステップＳ１０７〕
ステップＳ１０７では、読み出した識別子Ｓに埋め込まれている誤り訂正符号（ＳＥＣＤＥＤ符号）を読み取り、この読み取った誤り訂正符号を用いて識別子Ｓの誤りの検知を行い、誤りが検知された場合、その検知された識別子Ｓの誤りが訂正可能であるか否かの判断を行う。
【００４０】
この場合、ソフトエラー等によって、識別子Ｓ内のビット誤りが１箇所であれば、誤りが訂正可能であると判断する。ソフトエラー等によって、識別子Ｓ内のビット誤りが２箇所以上であれば、誤りが訂正不能であると判断する。ここで、誤りが訂正可能である場合にはステップＳ１０８へ進み、誤りが訂正不能である場合にはステップＳ１０９へ進む。
【００４１】
〔ステップＳ１０８〕
ステップＳ１０８では、ステップＳ１０７で読み出した誤り訂正符号を用いて、識別子Ｓの誤り訂正を行う。この誤り訂正によって、バッファメモリ３から読み出された識別子Ｓに含まれているフレームの長さ情報＃１とフレームの宛先情報＃２は、誤りのない正しい情報であることが担保されることになる。
【００４２】
また、バッファメモリ３からフレームＦの末尾まで読み出して処理するのではなく、識別子Ｓに入力フレームの属性情報（＃１，＃２）を格納し、尚且つ、識別子Ｓに誤り訂正符号を付与するだけで、バッファメモリ３の１層目のみ読み出すといった簡易な処理で、バッファメモリ３に蓄積されているフレームＦに対する誤りのない正しい情報が取得できるというメリットが生まれる。
【００４３】
〔ステップＳ１０９〕
ステップＳ１０７において、誤りが訂正不能であると判断された場合、識別子Ｓ内のフレームの長さ情報＃１とフレームの宛先情報＃２には信頼性がないと判断される。これらの情報の中でフレームの長さ情報＃１が間違っている場合は、バッファメモリ３に他のパケットが格納されている場合、フレームＦの末尾と他のパケットの識別子Ｓの先頭との境目が不明瞭になり、逐次処理されるフレームＦは全て間違って処理されてしまう。このため、バッファメモリ３に格納されているパケットは、速やかにクリアされなければならない。
【００４４】
そこで、ステップＳ１０９において、バッファメモリ３に蓄積されている全パケット、バッファメモリ３へ蓄積途中の蓄積前パケットの一部、既にバッファメモリ３から読み込み済みのパケットの一部をそれぞれ全て廃棄する。この際、別のパケットがバッファリング途中の場合は、速やかに停止するか、当パケットのバッファリングが完了すると新たなパケットのバッファリングを行わず、速やかにバッファメモリ３をクリアし、蓄積された全てのパケットを廃棄する。
【００４５】
以上説明したように、フレームＦのバッファリングを行う際に、識別子Ｓのバッファリング領域を予約し、識別子Ｓの生成処理を行う間、フレームＦを予約領域を避けてバッファリングするステップを設けることにより、識別子Ｓの生成処理が完了するまでフレームＦのバッファリングを待機するために必要な１フレーム分用のバッファメモリが不要となり回路規模が増大することがない。
【００４６】
また、フレーム処理中にソフトエラーによる実装した誤り訂正可能なビットエラーが発生しても、フレームの長さ情報＃１、フレームの宛先情報＃２の誤りを訂正する簡易な処理によって、フレーム処理を停止させることなく、処理を行うことができる。
【００４７】
また、実装した誤り訂正では訂正できないエラーであっても、バッファメモリ３やバッファメモリ３の制御に対して、廃棄命令を行うステップを処理に設けることで、バッファメモリ３に蓄積されたフレームを犠牲にするだけで、その後のフレーム処理には全く影響を与えることがない。
【００４８】
〔実施の形態２〕
次に、実施の形態２として、イーサネット（登録商標）フレームを送受する通信システムに用いられる通信装置を例に挙げ、その内部に実装されるフレーム処理回路を用いて、本発明に係るフレーム処理方法によるフレーム処理をさらに詳細に説明する。
【００４９】
図３は、本発明に係るフレーム処理方法を実装した「IEEE802.3」のイーサネットをベースとした通信装置に具備されたフレーム処理回路１００の要部を示す図である。このフレーム処理回路１００では、「IEEE802.3」で規定されるイーサネットをベースとした通信方式において、「IEEE802.1Q」で規定されるタグ内のＣｏＳ（class of service）値により、優先度振り分け（ＱｏＳ：Quality of Service）を行う。
【００５０】
図３において、フレーム処理回路１００には、「IEEE802.3」で規定されるＰＣＳ（PHYSICAL CODING SUBLAYER）／ＲＳ（RECONCILIATION SUBLAYER）部１０１内のＰＣＳ部１０１1に対して、第１パケットＰ１から第３パケットＰ３までイーサネットパケットＰが最小のフレーム間ギャップ（ＩＦＧ）にて連続的に入力され、十分に時間を空けて、第４パケットＰ４が入力されている。
【００５１】
通信システムでは、このようにパケットＰが逐次的に入力されるが、パケットＰ内のイーサネットフレームに格納されるユーザデータは、通信相手やデータの内容などによって変わる。このため、イーサネットフレームの長さは異なるものとなる。
【００５２】
なお、本実施の形態では、フレーム内のタグは各同じ優先度のＣｏＳ値を前提としているため、図では省略している。詳細は省略するが、ＰＣＳ部１０１1ではパケットの符号化が行われ、次段のＲＳ部１０１2へ入力される。
【００５３】
また、本発明に関係ない部分の説明は省略するが、ＲＳ部１０１2では「IEEE802.3」で規定される「preamble」とイーサネットフレームの境にある「ＳＦＤ（start frame delimiter）」が検出されることで、イーサネットフレーム（フレームＦ）が抽出され、次段のＭＡＣ（Media Access Control）部１０２へ転送される。
【００５４】
本発明に係るフレーム処理方法を実装したＭＡＣ部１０２では、ＲＳ部１０１2から入力されたフレームＦに対し、その末尾にあるＦＣＳ（frame check sequence）による誤りの検出を行う。そして、フレームＦの長さチェックを行った後、再度誤り検出符号ＦＣＳを付与して、フレームＦを出力させる。
【００５５】
また、詳細については後述するが、ＭＡＣ部１０２において、フレームＦの長さ情報＃１とフレームＦの宛先情報＃２を取得し、その取得した長さ情報＃１と宛先情報＃２を入力フレームの属性情報（＃１，＃２）として識別子Ｓに含ませ、この識別子Ｓに誤り訂正符号を埋め込むものとする。
【００５６】
この場合、図３中、ＭＡＣ部１０２の出力部分に示しているように、処理したフレームＦが出力された後、続いて識別子Ｓが出力される。
【００５７】
次に、識別子Ｓがどのように生成されるかをここから詳細に述べる。ＭＡＣ部１０２では、フレームＦの長さをチェックして、フレームＦの長さ情報＃１を取得し、この取得した長さ情報＃１を識別子Ｓの特定領域に埋め込む処理を行う。
【００５８】
具体的には、図３中に示しているように、例えば８バイト［６３：０］長の識別子Ｓを用意する。例えば、フレーム長さとして、ジャンボフレームの長さ最大９０００バイトまで対応するためには、バイト単位の数値として２進数で値を割り当てるためには最小１４ビットを割り当てる必要がある。この場合、例えば、識別子Ｓの［６１：４８］領域に長さ情報＃１を格納する。
【００５９】
また、ＭＡＣ部１０２では、フレームＦの宛先情報＃２を取得し、この取得した宛先情報＃２を識別子Ｓの特定領域に埋め込む処理を行う。接続される対向の通信装置に割り振るフレームの種類を最大４０９６とすると、識別子Ｓの中の最小１２ビットを割り当てる必要がある。この場合、例えば、識別子Ｓの［４３：３２］領域を用意し、フレームＦの宛先情報＃２を格納する。
【００６０】
本実施の形態では、フレーム別の処理を誤りなく行うため、識別子Ｓに埋め込む情報の中でフレームの長さ情報＃１及び宛先情報＃２に着目し、これらの情報を確実に保護することで、誤りなく、フレームバイフレームで確実にフレーム処理を行うことができるようにしている。
【００６１】
すなわち、長さ情報＃１は、異なるフレームの境界を確定する。この長さ情報＃１を確実に保護することで、異なるフレームの境界を誤りなく知ることが可能となる。また、宛先情報＃２は、異なるフレームの宛先を確定する。この宛先情報＃２を確実に保護することで、フレームの誤送信を防ぐことが可能となる。
【００６２】
例えば、イーサネットフレームに埋め込まれている宛先ＭＡＣアドレス「ＤＡ（desnination address）」が「ＤＡ１」の場合、図３に示す宛先と宛先識別子との関係を示すテーブルＴＢ１によって、識別子Ｓに宛先情報＃２として「12b'000000000100」が埋め込まれる。この例において、ソフトエラーによって識別子Ｓの宛先情報＃２が「12b'000000000100」ではなく、「12b'000000000101」と誤ってしまったとすると、本来、宛先「12b'000000000100」のフレームとして処理されるはずが、宛先「12b'000000000101」のフレームとして処理されてしまう可能性がある。即ち、宛先情報＃２がソフトエラーにより情報が誤ってしまうと、別のユーザの信号を誤って誤送信してしまうということになってしまう。
【００６３】
以上説明したような、フレームの長さ情報＃１及び宛先情報＃２の誤りにより発生する誤フレーム処理や誤送信を防止するためには、識別子Ｓに格納された情報を保護することが必要となる。なお、この識別子Ｓは固定長であることがよい。理由は、識別子Ｓの長さが可変長であると、識別子Ｓが何処までなのか、パケットバイパケットで判定しなければならず、識別子Ｓの長さ計測用に判定回路が追加され、回路規模が大きくなってしまうためである。なお、識別子Ｓが可変長であっても、本発明の構成には影響はない。
【００６４】
識別子Ｓのフレームの長さ情報＃１と宛先情報＃２を保護するためには、誤り訂正技術の適応が重要になる。誤り訂正符号はいくつかあるが、本実施の形態では宇宙線によるビット反転という発生頻度が極めて小さいエラーを対象とするため、単一エラー訂正、２つエラー検出を行うＳＥＣＤＥＤ符号を適応することが回路インパクト上も大きくなく好適である。
【００６５】
本構成例の８バイト長の識別子Ｓにおいて計算したＳＥＣＤＥＤ符号を識別子Ｓの特定領域、例えば、識別子Ｓの［２３：１６］領域に埋め込むことによって、識別子Ｓ内にソフトエラーが１ビット発生した場合は、誤り訂正が可能となる。この為、フレームの長さ情報＃１及びフレームの宛先情報＃２を確実に保護でき、後段の処理で誤りなくフレーム処理することが期待できる。詳細については後述する。
【００６６】
このように、入力されたフレームＦから抽出した情報によって生成された識別子Ｓは、ＭＡＣ部１０２から処理されたフレームＦに遅れて出力される。なお、図３では、フレームＦが出力された後、識別子Ｓが出力されているが、識別子Ｓの出力先を別途設けておけば、フレーム出力を並行して出力させることが可能である。
【００６７】
ＭＡＣ部１０２では、以上説明したような、識別子Ｓへの少なくともフレームの長さ情報＃１及び宛先情報＃２を含む入力フレームの属性情報の埋め込み処理や、少なくともフレームの長さ情報＃１及び宛先情報＃２を示すビット列をソフトエラーによるビットエラーを保護する誤り訂正符号の計算及び計算した誤り訂正符号の識別子Ｓへの埋め込み処理を行う。これらの処理を第１フレームＦ１〜第４フレームＦ４まで逐次的に行うことになる。
【００６８】
次に、説明が前半と若干重複するが、フレーム自体の処理について説明を加えておく。フレームに付与されている誤り検出符号（ＦＣＳ）は、ＭＡＣ部にて誤り検出がなされた後、除外されることが多い。しかし、本実施の形態では、ＭＡＣ部１０２において、誤り検出符号をフレームの末尾に付与する処理を行う。フレーム処理の工程で、フレームの書換えを行わない場合は、ＰＣＳ／ＲＳ部１０２への入力段階から付与されていた誤り検出符号をフレームＦに再度付与し、フレームの書換えが行われた場合は、フレームＦに対して新たな誤り検出符号を算出し、フレームＦに付与する。このことによって、後段のフレーム処理において、ソフトエラーよって、例えば万が一フレームのＭＡＣアドレス情報が、存在するＭＡＣアドレスに書き換わっていたとしても、廃棄などの処理をすることで、後段のフレーム処理への影響を抑制することができる。
【００６９】
このようにして、ＭＡＣ部１０２でのフレーム処理が完了すると、優先制御処理部１０３で優先制御処理（ＱｏＳ（Quality of Service））を行う。この実施の形態では、第１フレームＦ１から第４フレームＦ４まで同じ優先度のフレームとする。第１フレームＦ１から第３フレームＦ３までは元々、最小のＩＦＧで入力されたイーサネットフレームであるため、メモリ１０４内の同じバッファメモリ（キュー）Ｍ内に時間間隔を置かず連続的に格納される。
【００７０】
この例では、図４（ａ）〜（ｄ）に示すように、第１フレームＦ１から第３フレームＦ３まで識別子Ｓ１〜Ｓ３も含めてバッファリングされた時点で、バッファメモリＭが満タンになるものとする。なお、図４（ａ）〜（ｉ）では、四角い外枠がメモリ１０４内のバッファメモリＭを示しており、横のビット幅×縦の階層数（図では５層）がバッファメモリＭに蓄積可能なビット数を表す。
【００７１】
また、この例では、バッファメモリＭが満タンになった瞬間に、優先制御処理部１０３からパケット（識別子Ｓ＋フレームＦ）の引き出し命令が出されるものとする。この引き出し命令が出されると、図４（ｅ）に示すように、バッファメモリＭの１層目が読み出される。すなわち、パケットの先頭の識別子Ｓの全てを少なくとも含むのに十分な為、１層目のみを読み出し、２層目以降は直ぐには取り出さない。これが実現できるのは、バッファメモリＭのどこからパケットの先頭を読み出しているのかという情報と、パケットの先頭に付与されている識別子Ｓのビット長を予め、保持しているからである。
【００７２】
バッファメモリＭの横幅を１２８ビット（１６バイト）とすると、既に例示したように識別子Ｓは６４ビット（８バイト）であるため、１層目の読み出し位置が先頭であることから、１層目のみ読み出せば、識別子Ｓが全て含まれることが事前に容易に分かる。優先制御処理部１０３は、読み出したパケットの先頭から６４ビット（８バイト）分から、識別子Ｓの部分のみを抽出し、識別子Ｓに埋め込まれているＳＥＣＤＥＤ符号から、識別子Ｓの誤りの検知を行う。
【００７３】
図４（ｄ）に示された状態では、ＳＥＵ（single error upset）が同一の識別子Ｓ１の内部で１箇所のみ発生しているので、誤り訂正が可能である。このため、優先制御処理部１０３は、識別子Ｓ１の誤り訂正を行い、訂正後の識別子Ｓ１からフレームの長さ情報＃１を抽出し、この長さ情報＃１を元に、第１パケットのＦＣＳ末尾（バッファメモリＭの２層目）まで読み出し（図４（ｆ）参照）、訂正後の識別子Ｓ１と１層目で読み出したフレームの一部と一緒に合成し、優先制御後の第１パケットＰ１として出力する。
【００７４】
引き続いて、優先制御処理部１０３は、第２パケットの識別子Ｓ２を読み出す。この例では、２層目の途中から、３層目にかけて第２パケットの識別子Ｓ２が格納されている。第１パケットと同様に識別子Ｓ２の長さが固定長８バイトであると、第２パケットの先頭がバッファメモリＭの２層目の途中のどの位置からかが分かっているので、第２パケットの識別子Ｓ２がバッファメモリＭの２〜３層目に渡って格納されていることが算出される。このように、識別子Ｓの長さが固定長である場合、逐次的に識別子Ｓの長さを測定する必要がないため、回路規模を最小限にすることができると共に、パケット処理時間を短くできるというメリットを持っている。
【００７５】
優先制御処理部１０３は、第２パケットの識別子Ｓ２を読み込み、同様に識別子Ｓ２に格納されているＳＥＣＤＥＤを用いて、識別子Ｓ２の誤りの検知を行う。図４（ｆ）に示された状態では、第２パケットの識別子Ｓ２には、同一の識別子Ｓ２の内部に２つのＳＥＵ、すなわち、ＤＥＵ（double error upset）が発生している。このため、ＳＥＣＤＥＤでは誤り訂正ができない。このまま、識別子Ｓ２の持つフレームの長さ情報＃１を用いて、第２パケットのパケット処理を行うと、長さ情報＃１に誤りがあった場合は、第２パケットと第３パケットの境目を正しく算出できない可能性がある。このため、優先制御処理部１０３では、バッファメモリＭに対して、バッファメモリＭに蓄積されているパケットを速やかに全て廃棄する命令を行う。
【００７６】
優先制御処理部１０３からの廃棄命令を受けたバッファメモリＭは、次のバッファリングすべきフレームが来る前に、バッファメモリＭに残っている４〜５層目のパケットを即座に廃棄する（図４（ｇ）、（ｈ）参照）。
【００７７】
図３では、第４パケットが十分時間をおいて、入力されているため、バッファメモリＭがクリアされてから、十分時間をおいて、第４パケットがバッファリングされているが（図４（ｉ）参照）、本実施の形態の構成では回路規模が小さく、処理が単純なため、高速なパケット処理が可能となり、第４パケットが第３パケットに引き続いて最小のＩＦＧで入力されていたとしても、バッファメモリＭのクリア工程に影響を与えることはない。
【００７８】
すなわち、第４パケットがバッファリングされるタイミングで、バッファメモリＭが速やかにクリアされているため、第４パケットをバッファリングするための待機用にバッファメモリをもう一つ持つ必要がない。１層目に第４パケットの識別子Ｓ４の先頭からバッファリングされる。第４パケットは、ソフトエラーが発生していないため、優先制御処理部１０３からの指示に従い、同様の誤りの検知が行われた後、優先制御処理部１０３から出力される。
【００７９】
以上説明したように、本発明のフレーム処理方法を「IEEE802.3」のイーサネットベースのフレーム処理回路に実装することで、ソフトエラーの発生パタンによって、フレームが適切に処理されるので、ソフトエラーが発生した後のフレーム処理が停止することなく、また、誤送信の可能性のあるフレームが送信されることがないという効果を有する。
【００８０】
〔実施の形態の拡張〕
以上、実施の形態を参照して本発明を説明したが、本発明は上記の実施の形態に限定されるものではない。本発明の構成や詳細には、本発明の技術思想の範囲内で当業者が理解し得る様々な変更をすることができる。
【００８１】
また、本発明に係るフレーム処理方法及びフレーム処理装置は、コンピュータとプログラムによっても実現することができ、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【符号の説明】
【００８２】
１…入力フレーム初段処理部、２…識別子生成部、３…バッファメモリ、４…バッファメモリ制御監視部、４−１…識別子／フレーム書込部、４−２…パケット読出部、５…誤り検知部、６…誤り訂正部、７…フレーム蓄積部、８…フレーム読出部、１０…フレーム処理装置、１００…フレーム処理回路、１０１…ＰＣＳ／ＲＳ部、１０２…ＭＡＣ部、１０３…優先制御処理部、１０４…メモリ、Ｍ…バッファメモリ、Ｓ…識別子、Ｆ…フレーム、Ｐ…パケット。
【図１】
2019004435.tif 000003
【図２】
2019004435.tif 000004
【図３】
2019004435.tif 000005
【図４】
2019004435.tif 000006