(57)【特許請求の範囲】
【請求項１】
イーサネット内の順方向誤り訂正（ＦＥＣ）層で受信したデータ・ストリームのフレーム境界を検出するための方法であって、下記ステップを装置が実行し、当該ステップが、
前記データ・ストリームから１フレームの長さを有するデータをインターセプトするステップと、
１フレームの長さを有する前記データの開始位置から１フレームの長さを有する前記データに関するＦＥＣチェックの妥当性を検査するステップと、
１フレームの長さを有する前記データに関する前記ＦＥＣチェックが正しくない場合に、１フレームの長さを有する前記データの終了位置の次のビットから、インターセプトすべき次のデータ・フレームの開始位置としてｓｂｎビットをジャンプしたデータ・ストリーム位置を想定するステップであって、ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、前記フレームの長さに対して素である整数であるステップと、
前記インターセプト・ステップに戻るステップと、
１フレームの長さを有する前記データに関する前記ＦＥＣチェックが正しい場合に、１フレームの長さを有する現行データの開始位置が前記データ・ストリームのフレーム境界位置であると判断するステップと、
を含む、方法。
【請求項２】
イーサネット内の順方向誤り訂正層内のハードウェア回路の前記パイプライン遅延を決定するステップをさらに含む、請求項１記載の方法。
【請求項３】
ｓｂｎがイーサネット内のＦＥＣ層内の前記ハードウェア回路の前記パイプライン遅延より大きく、前記フレームの長さに対して素である整数のうちの最小のものである、請求項１または２記載の方法。
【請求項４】
１フレームの長さを有する前記データに関するＦＥＣチェックの妥当性を検査する前に前記データについて逆スクランブル動作が実行される、請求項１または２記載の方法。
【請求項５】
イーサネット内の順方向誤り訂正（ＦＥＣ）層で受信したデータ・ストリームに関するフレーム同期方法であって、下記ステップを装置が実行し、当該ステップが、
前記データ・ストリームから１フレームの長さを有するデータをインターセプトするステップと、
１フレームの長さを有する前記データの開始位置から１フレームの長さを有する前記データに関するＦＥＣチェックの妥当性を検査するステップと、
１フレームの長さを有する前記データに関する前記ＦＥＣチェックが正しくない場合に、１フレームの長さを有する前記データの終了位置の次のビットから、インターセプトすべき次のデータ・フレームの開始位置としてｓｂｎビットをジャンプしたデータ・ストリーム位置を想定するステップであって、ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、前記フレームの長さに対して素である整数である、ステップと、
インターセプトする前記ステップに戻るステップと、
１フレームの長さを有する前記データに関する前記ＦＥＣチェックが正しい場合に、１フレームの長さを有する次のｎ個の連続データに関するＦＥＣチェックが正しいかどうかを判断することであって、ｎが１より大きい整数であるステップと、
１フレームの長さを有する前記次のｎ個の連続データのいずれかに関する前記ＦＥＣチェックが正しくない場合に、１フレームの長さを有する前記データの前記終了位置の次のビットから、インターセプトすべき次のデータ・フレームの前記開始位置としてｓｂｎビットをジャンプした前記データ・ストリーム位置を想定するステップであって、ｓｂｎがイーサネット内のＦＥＣ層内の前記ハードウェア回路の前記パイプライン遅延より大きく、前記フレームの長さに対して素である整数であるステップと、
インターセプトする前記ステップに戻るステップと、
１フレームの長さを有する前記次のｎ個の連続データのそれぞれに関する前記ＦＥＣチェックが正しい場合に、前記データがフレーム同期していると判断するステップと、
を含む、方法。
【請求項６】
イーサネット内の順方向誤り訂正層内のハードウェア回路の前記パイプライン遅延を決定するステップをさらに含む、請求項５記載の方法。
【請求項７】
ｓｂｎがイーサネット内のＦＥＣ層内の前記ハードウェア回路の前記パイプライン遅延より大きく、前記フレームの長さに対して素である整数のうちの最小のものである、請求項５または６記載の方法。
【請求項８】
１フレームの長さを有する前記データに関するＦＥＣチェックの妥当性を検査する前に前記データについて逆スクランブル動作が実行される、請求項５または６記載の方法。
【請求項９】
請求項１〜８のいずれかに記載の方法の各ステップを装置に実行させる、プログラム。
【請求項１０】
請求項１〜８のいずれかに記載の方法の各ステップを実行するための手段を備える、装置。
【請求項１１】
イーサネット内の順方向誤り訂正（ＦＥＣ）層で受信したデータ・ストリームのフレーム境界を検出するためのシステムであって、前記システムが、
前記データ・ストリームから１フレームの長さを有するデータをインターセプトするためのインターセプト手段と、
１フレームの長さを有する前記データの開始位置から１フレームの長さを有する前記データに関するＦＥＣチェックの妥当性を検査するためのＦＥＣ妥当性検査手段と、
１フレームの長さを有する前記データに関する前記ＦＥＣチェックが正しくない場合に、１フレームの長さを有する前記データの終了位置の次のビットから、インターセプトすべき次のデータ・フレームの開始位置としてｓｂｎビットをジャンプしたデータ・ストリーム位置を想定するためのジャンプ手段であって、ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、前記フレームの長さに対して素である整数であるジャンプ手段と
を含み、
前記ジャンプ手段がｓｂｎビットをジャンプした後、１フレームの長さを有する前記インターセプト済みデータに関する前記ＦＥＣチェックが正しいことを前記ＦＥＣ妥当性検査手段が確認するまで前記インターセプト手段が１フレームの長さを有する次のデータをインターセプトし、１フレームの長さを有する現行データの開始位置が前記データ・ストリームのフレーム境界位置であると判断される、システム。
【請求項１２】
イーサネット内の順方向誤り訂正層で受信したデータ・ストリームに関するフレーム同期システムであって、前記システムが、
前記データ・ストリームから１フレームの長さを有するデータをインターセプトするためのインターセプト手段と、
１フレームの長さを有する前記データの開始位置から１フレームの長さを有する前記データに関するＦＥＣチェックの妥当性を検査するためのＦＥＣ妥当性検査手段と、
１フレームの長さを有する前記データに関する前記ＦＥＣチェックが正しくない場合に、１フレームの長さを有する前記データの終了位置の次のビットから、インターセプトすべき次のデータ・フレームの開始位置としてｓｂｎビットをジャンプしたデータ・ストリーム位置を想定するためのジャンプ手段であって、ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、前記フレームの長さに対して素である整数であるジャンプ手段と、
１フレームの長さを有する前記データに関する前記ＦＥＣチェックが正しい場合に、１フレームの長さを有する次のｎ個の連続データに関する前記ＦＥＣチェックが正しいかどうかを判断するための判断手段であって、ｎが１より大きい整数である判断手段と
を含み、
前記ジャンプ手段がｓｂｎビットをジャンプした後、１フレームの長さを有する前記インターセプト済みデータに関する前記ＦＥＣチェックが正しいことを前記ＦＥＣ妥当性検査手段が確認するまで前記インターセプト手段が１フレームの長さを有する次のデータをインターセプトし、１フレームの長さを有する前記次のｎ個の連続データに関する前記ＦＥＣチェックが正しいかどうかを前記判断手段が判断し、１フレームの長さを有する前記次のｎ個の連続データのいずれかに関する前記ＦＥＣチェックが正しくないと前記判断手段が判断した場合に、前記ジャンプ手段がもう一度ｓｂｎビットをジャンプした後、前記インターセプト手段が１フレームの長さを有する次のデータをインターセプトし、１フレームの長さを有する前記次のｎ個の連続データのそれぞれに関する前記ＦＥＣチェックが正しいと前記判断手段が判断した場合に、前記データがフレーム同期していると前記判断手段が判断する、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データ処理方法およびシステムに関し、詳細には、イーサネット内の順方向誤り訂正層（Forward ErrorCorrection layer）で受信したデータ・ストリームのフレーム境界を検出するための方法およびシステムに関する。
【背景技術】
【０００２】
ＩＥＥＥ規格８０２．３ａｐ−２００７の条項７４（最新版はＩＥＥＥ８０２．３−２００８である）およびＩＥＥＥＰ８０２．３Ｄ１．２では、１０Ｇイーサネットに適用されるＢＡＳＥ−Ｒ物理層の順方向誤り訂正（略してＦＥＣ）副層を定義している。このＦＥＣ副層規格は、システムのＢＥＲレートを１０−７から１０−１２に改善するものであり、また、この規格から４０Ｇ／１００Ｇイーサネット・アプリケーションへと派生している。
【０００３】
種々のイーサネット・アプリケーション層と互換性のあるものになるために、このプロトコルでは、ＦＥＣ層が元のフレーム・ヘッダを圧縮して、ＦＥＣチェック・ビットをアップロードするためのスペースを取っておくことを規定しており、その結果、この層が他のアプリケーション層と同じフレーム長（ＩＥＥＥ規格８０２．３ａｐ−２００７の条項７４では２１１２ビットのフレーム長を定義している）を保持することが保証される。しかし、このような処理方法では、受信機側でそれぞれのフレーム間のフレーム境界を識別することが極めて困難になり、正しいフレーム境界位置を見つけるために送信機側フレームに同期させるには大量の時間を必要とする。
【０００４】
図１は、ＩＥＥＥ規格８０２．３ａｐ−２００７の条項７４に定義されているフレーム同期のためのユニバーサル回路構造を示している。この回路構造によって使用される方法は以下のものを含む。
ａ）想定されたフレーム境界位置をテストする。
ａ１）この想定されたフレーム境界位置から始めて、ＰＮ−２１１２ジェネレータによって受信データを逆スクランブルする。
ａ２）仮定のフレーム境界から始めて、１フレームの長さを有するデータについてＦＥＣチェックを実行する。
ｉ）チェックが一致しない（すなわち、受信したチェック・ビットが計算したチェック・ビットと一致しない）場合に、想定されたフレーム境界位置を１ビット位置だけシフトし、ステップａ）を繰り返す。
ｂ）想定されたフレーム境界について、ｎ個の連続フレームのそれぞれに対するＦＥＣチェックが正しいことを確認する。
ｂ１）ｎ個の連続フレームのいずれかに対するＦＥＣチェックが正しくない場合に、想定されたフレーム境界位置を１ビット位置だけシフトし、フレーム同期手順全体を再始動する。
ｂ）受信しているｎ個の連続フレームのそれぞれに対するＦＥＣチェックが正しい場合に、ステップｃ）に移行する。
ｃ）フレーム同期を確立する。
ｄ）ｍ個の連続的に受信したデータ・フレームのそれぞれに対するＦＥＣチェックが正しくない場合に、フレーム同期を同期外れと見なし、フレーム同期手順全体を再始動する。
【０００５】
２１１２ビットのフレーム長の場合、可能な２１１２通りの位置のすべてをトラバースして正しいフレーム境界位置を見つけるために、多くても２１１１回、上記のステップが繰り返される。典型的に、上記の説明ではｍ＝８およびｎ＝４である。
【０００６】
手短に言えば、フレーム同期ロジックは、フレーム同期を達成できるように１フレーム内の正しいフレーム境界位置を特定する必要がある。一般的な方法の欠陥は、正しいフレーム開始位置を見つける前に、一度に１ビットずつシフトするステップに適合させるために多くのフレームが廃棄されることである。
【０００７】
図２は、一般的な方法によってフレーム同期を達成する方法を概略的に示している。図２によれば、フレーム同期ロジックは始めに正しい開始位置を把握しておらず、したがって、フレーム開始位置を想定し、想定されたフレームをチェックすることになる。しかし、第１のフレーム・データの最後のビットがフレーム同期ロジックに入ると、フレーム同期ロジックはこのフレームに関するチェック結果を直ちに示すことができない。これは、ハードウェア実装例におけるパイプライン構造ベースの設計によって遅延が引き起こされるためであり、この遅延はスクランブル・ロジックのような何らかの機能ロジックによって引き起こされ、避けがたいものである。このパイプライン遅延の後、第１のフレーム境界の位置が正しくないことをフレーム同期ロジックが検出した場合、フレーム同期ロジックは、その後の仮定のフレーム境界位置を１ビットだけシフトした後で次のフレーム境界を想定する必要がある。図２に示されているパイプライン遅延のために、この瞬間に第２のフレームのフレーム境界から１ビット・シフトして、第２のフレーム・データに関するチェックに移行する時間はまったくない。このため、フレーム同期ロジックは第２のフレーム・データをすべて廃棄しなければならない。次に、第３のフレーム・データが到着するまで、フレーム同期ロジックは、第３のフレームのフレーム境界に基づいて１ビット・シフトを行い、第１のフレームで行われたように第３のフレームに関するチェックを繰り返すことになる。
【０００８】
したがって、最悪の場合、フレーム同期ロジックは、２１１２個のフレームをチェックし、２１１１個のフレームを廃棄し、２１１１回、１ビット・シフトを実行することになり、正しいフレーム境界（すなわち、そのフレームの正しい開始ビット）を取得するのに（２１１２＋２１１１）＊２１１２＋２１１１＝８，９２１，０８７ＢＴ（ビット時間）を要することになる。この同期時間は、互角のデータ転送速度（ＳＡＴＡ２．０では約６００，０００ＢＴおよびＰＣＩＥ２．０では約５００，０００ＢＴなど）で機能する他の高速インターフェースよりかなり長い。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＩＥＥＥ規格８０２．３ａｐ−２００７に記載されているように一度に１ビットのシフトという上記の位置アルゴリズムとは異なり、本発明は、イーサネット内の順方向誤り訂正層で受信したデータ・ストリームのフレーム境界を検出するための方法およびシステムならびに順方向誤り訂正層におけるデータ・ストリームに関するフレーム同期方法およびシステムを最適化するものである。
【課題を解決するための手段】
【００１０】
本発明の一態様により、イーサネット内の順方向誤り訂正層で受信したデータ・ストリームのフレーム境界を検出するための方法が開示され、この方法は、データ・ストリームから１フレームの長さを有するデータをインターセプトすることと、１フレームの長さを有するデータの開始位置から１フレームの長さを有するデータに関するＦＥＣチェックの妥当性を検査することと、１フレームの長さを有するデータに関するＦＥＣチェックが正しくない場合に、１フレームの長さを有するデータの終了位置の次のビットから、インターセプトすべき次のデータ・フレームの開始位置としてｓｂｎビットをジャンプしたデータ・ストリーム位置を想定することであって、ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、そのフレームの長さに対して素（prime）である整数であることと、インターセプト・ステップに戻ることと、１フレームの長さを有するデータに関するＦＥＣチェックが正しい場合に、１フレームの長さを有する現行データの開始位置がデータ・ストリームのフレーム境界位置であると判断することを含む。
【００１１】
本発明の他の態様により、イーサネット内の順方向誤り訂正層で受信したデータ・ストリームに関するフレーム同期方法が開示され、この方法は、データ・ストリームから１フレームの長さを有するデータをインターセプトすることと、１フレームの長さを有するデータの開始位置から１フレームの長さを有するデータに関するＦＥＣチェックの妥当性を検査することと、１フレームの長さを有するデータに関するＦＥＣチェックが正しくない場合に、１フレームの長さを有するデータの終了位置の次のビットから、インターセプトすべき次のデータ・フレームの開始位置としてｓｂｎビットをジャンプしたデータ・ストリーム位置を想定することであって、ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、そのフレームの長さに対して素である整数であることと、インターセプトするステップに戻ることと、１フレームの長さを有するデータに関するＦＥＣチェックが正しい場合に、１フレームの長さを有する次のｎ個の連続データに関するＦＥＣチェックが正しいかどうかを判断することであって、ｎが１より大きい整数であることと、１フレームの長さを有する次のｎ個の連続データのいずれかに関するＦＥＣチェックが正しくない場合に、１フレームの長さを有するデータの終了位置の次のビットから、インターセプトすべき次のデータ・フレームの開始位置としてｓｂｎビットをジャンプしたデータ・ストリーム位置を想定することであって、ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、そのフレームの長さに対して素である整数であることと、インターセプトするステップに戻ることと、１フレームの長さを有する次のｎ個の連続データのそれぞれに関するＦＥＣチェックが正しい場合に、データがフレーム同期していると判断することを含む。
【００１２】
本発明の他の態様によれば、イーサネット内の順方向誤り訂正層で受信したデータ・ストリームのフレーム境界を検出するためのシステムが開示され、このシステムは、データ・ストリームから１フレームの長さを有するデータをインターセプトするためのインターセプト手段と、１フレームの長さを有するデータの開始位置から１フレームの長さを有するデータに関するＦＥＣチェックの妥当性を検査するためのＦＥＣ妥当性検査手段と、１フレームの長さを有するデータに関するＦＥＣチェックが正しくない場合に、１フレームの長さを有するデータの終了位置の次のビットから、インターセプトすべき次のデータ・フレームの開始位置としてｓｂｎビットをジャンプしたデータ・ストリーム位置を想定するためのジャンプ手段であって、ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、そのフレームの長さに対して素である整数であるジャンプ手段とを含み、ジャンプ手段がｓｂｎビットをジャンプした後、１フレームの長さを有するインターセプト済みデータに関するＦＥＣチェックが正しいことをＦＥＣ妥当性検査手段が確認するまでインターセプト手段が１フレームの長さを有する次のデータをインターセプトし、１フレームの長さを有する現行データの開始位置がデータ・ストリームのフレーム境界位置であると判断される。
【００１３】
本発明のさらに他の態様により、イーサネット内の順方向誤り訂正層で受信したデータ・ストリームに関するフレーム同期システムが開示され、このシステムは、データ・ストリームから１フレームの長さを有するデータをインターセプトするためのインターセプト手段と、１フレームの長さを有するデータの開始位置から１フレームの長さを有するデータに関するＦＥＣチェックの妥当性を検査するためのＦＥＣ妥当性検査手段と、１フレームの長さを有するデータに関するＦＥＣチェックが正しくない場合に、１フレームの長さを有するデータの終了位置の次のビットから、インターセプトすべき次のデータ・フレームの開始位置としてｓｂｎビットをジャンプしたデータ・ストリーム位置を想定するためのジャンプ手段であって、ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、そのフレームの長さに対して素である整数であるジャンプ手段と、１フレームの長さを有するデータに関するＦＥＣチェックが正しい場合に、１フレームの長さを有する次のｎ個の連続データに関するＦＥＣチェックが正しいかどうかを判断するための判断手段であって、ｎが１より大きい整数である判断手段とを含み、ジャンプ手段がｓｂｎビットをジャンプした後、１フレームの長さを有するインターセプト済みデータに関するＦＥＣチェックが正しいことをＦＥＣ妥当性検査手段が確認するまでインターセプト手段が１フレームの長さを有する次のデータをインターセプトし、１フレームの長さを有する次のｎ個の連続データに関するＦＥＣチェックが正しいかどうかを判断手段が判断し、１フレームの長さを有する次のｎ個の連続データのいずれかに関するＦＥＣチェックが正しくないと判断手段が判断した場合に、ジャンプ手段がもう一度ｓｂｎビットをジャンプした後、インターセプト手段が１フレームの長さを有する次のデータをインターセプトし、１フレームの長さを有する次のｎ個の連続データのそれぞれに関するＦＥＣチェックが正しいと判断手段が判断した場合に、データがフレーム同期していると判断手段が判断する。
【００１４】
本発明の技術的解決策により、順方向誤り訂正層のハードウェア設計における種々のパイプライン遅延に応じてジャンプの数を調整し、それにより、フレーム境界検出の速度を増加し、高速フレーム同期を達成することが可能である。加えて、本発明は、フレーム境界検出の速度およびフレーム同期の速度をほぼ一度に増加しながら、ハードウェアのオーバヘッドを増加しない。本発明の方法は、規格に規定された１０Ｇ／４０Ｇ／１００Ｇイーサネットだけでなく、イーサネットのどの帯域幅にも適用される。同時に、本発明の方法は、規格に採用されたＢＡＳＥ−Ｒ伝送媒体とイーサネットの任意の伝送媒体のいずれにも適用される。
【００１５】
本発明の上記その他の目的、特徴、および利点は、図面に併せて示されている模範的な諸実施形態に関する以下の説明からより明らかになるが、図面では、同様の参照番号は通常、模範的な諸実施形態の同じ構成要素を示している。
【図面の簡単な説明】
【００１６】
【図１】ＩＥＥＥ規格８０２．３ａｐ−２００７の条項７４に定義されているフレーム同期のための汎用回路構造を示す図である。
【図２】一般的な方法によってフレーム同期を実現する方法を概略的に示す図である。
【図３】７ビットの長さを有するフレームについて一度に１ビットをジャンプする場合を示す図である。
【図４】７ビットの長さを有するフレームについて一度に３ビットをジャンプする場合を示す図である。
【図５】本発明により、ｓｂｎビットのジャンプを使用することによってフレーム境界検出を実行する方法を概略的に示す図である。
【図６】図５においてデータ・ストリームのフレーム境界を検出するための方法の流れ図である。
【図７】本発明の一実施形態により、イーサネット内の順方向誤り訂正層におけるデータ・ストリームに関するフレーム同期方法の流れ図である。
【図８】イーサネット内の順方向誤り訂正層で受信したデータ・ストリームのフレーム境界を検出するためのシステムの構造ブロック図である。
【図９】イーサネット内の順方向誤り訂正層で受信したデータ・ストリームに関するフレーム同期システムの構造ブロック図である。
【発明を実施するための形態】
【００１７】
本発明の好ましい諸実施形態が示されている図面を参照することにより、その好ましい諸実施形態に関する詳細な説明を提供する。しかし、本発明は、様々な方法で実現可能であり、本明細書に記載されている諸実施形態に限定されるものと解釈してはならない。これに反して、これらの諸実施形態は、本発明をより徹底的かつ完全なものにし、本発明の範囲を当業者に完全に伝達するために示されている。
【００１８】
既存の解決策では、ハードウェア内にパイプライン構造が存在するために、一度に１ビットをジャンプする方法を使用するときに、半分のフレームを廃棄しなければならない。これにより、フレーム境界検出の時間遅延および低速のフレーム同期が発生する。第１の仮定のフレーム境界位置に関するＦＥＣチェックが失敗した場合、従来技術の方法は、２１１１回の１ビット・ジャンプにより残っている２１１１通りの可能なフレーム境界位置をトラバースするよう意図されている。本発明の発明者は、一度に１ビットをジャンプすることに比較して、ビット数が２１１２または１フレームの長さに対して素である（すなわち、ビット数と１フレームの長さが１以外に公約数を持たない）場合、２１１１回のシフトによりすべての可能なフレーム境界位置がトラバースされることを提案している。このようにして、ほぼ半分のフレームを廃棄せずに、フレーム境界検出の速度が改善され、フレーム同期の時間が節約される。
【００１９】
たとえば、図３は、７ビットの長さを有するフレームについて一度に１ビットをジャンプする場合を示している。図３に示されている通り、一度に１ビットをジャンプする場合、１ビットずつ６回のシフト、すなわち、０−１、１−２、２−３、３−４、４−５、および５−６により、７通りの可能なフレーム開始位置を完全にトラバースすることができる。特に、この手順は以下の通りである。すなわち、図３の７つのポイントは、フレーム境界が位置する可能性のある７通りの位置であり、最初に、ポイント０がフレーム・ヘッダであるかどうかがチェックされ、そうではない場合、チェックされた位置は位置１つ分だけ（反時計回りに）ジャンプしてポイント１にシフトし、以下同様に行われる。このようにして、６回のジャンプにより、すなわち、０−＞１−＞２−＞３−＞４−＞５−＞６という順序で、フレーム境界が位置する可能性のある７通りの位置のすべてがトラバースされる。この場合、ジャンプのビット数は１である。
【００２０】
図４は、７ビットの長さを有するフレームについて一度に３ビットをジャンプする場合を示している。図４に示されている通り、一度に３ビットをジャンプする場合、３ビットずつ６回のジャンプ、すなわち、０−３、３−６、６−２、２−５、５−１、および１−４により、７通りの候補ビットを完全にトラバースすることができる。特に、この手順は以下の通りである。すなわち、図４の７つのポイントは、フレーム境界が位置する可能性のある７通りの位置であり、最初に、ポイント０がフレーム・ヘッダであるかどうかがチェックされ、そうではない場合、チェックされた位置は位置３つ分だけ（反時計回りに）ジャンプしてポイント３にシフトし、以下同様に行われる。このようにして、６回のシフトにより、すなわち、０−＞３−＞６−＞２−＞５−＞１−＞４という順序で、フレーム境界が位置する可能性のある７通りの位置のすべてがトラバースされる。この場合、３というジャンプ数および７というフレーム長は互いに素である。
【００２１】
１フレームの長さを有するデータの場合、フレーム長がｆｌであり、一度にジャンプするビット数がｓｂｎであり、ｆｌおよびｓｂｎが互いに素であると想定すると、そのフレームの各位置はｆｌ−１回のシフトによってトラバースされる。
【００２２】
証明すべきことは、０≦ａ＜ｂ＜ｆｌという任意の整数について、（ａ×ｓｂｎ）ｍｏｄ  ｆｌ≠（ｂ×ｓｂｎ）ｍｏｄ  ｆｌが成り立つことである。換言すれば、任意の異なるジャンプ数ａ，ｂ∈（０，ｆｌ−１）の場合、ジャンプ後の位置も異なっている。したがって、ｆｌ−１回のジャンプにより、すべての可能なフレーム・ヘッダ位置がトラバースされることになる。
【００２３】
上記の不等式は、以下のように反駁によって証明できるであろう。
【００２４】
ｆｌおよびｓｂｎは互いに素であるので、互いに素である数の特性により、ｆｌおよびｓｂｎが（ｆｌ×ｓｂｎ）という最小公倍数を有することは明白であり、整数ａおよびｂが０≦ａ＜ｂ＜ｆｌを満たし、（ａ×ｓｂｎ）ｍｏｄ  ｆｌ＝（ｂ×ｓｂｎ）ｍｏｄ  ｆｌを満たすａおよびｂの群が存在すると想定すると、ａおよびｂの群について、以下の式が得られる。
（ｂ×ｓｂｎ）ｍｏｄ  ｆｌ−（ａ×ｓｂｎ）ｍｏｄ  ｆｌ＝０
【００２５】
モジュラス演算の結合法則により、以下の式が得られる。
（ｂ×ｓｂｎ−ａ×ｓｂｎ）ｍｏｄ  ｆｌ＝０
［（ｂ−ａ）×ｓｂｎ］ｍｏｄ  ｆｌ＝０
【００２６】
上記の式が成り立つためには、ｆｌで割り切れる整数［（ｂ−ａ）×ｓｂｎ］を見つけることが必要である（明らかに［（ｂ−ａ）×ｓｂｎ］はｓｂｎで割り切れる）。
０≦ａ＜ｂ＜ｆｌであり、したがって、０＜（ｂ−ａ）＜ｆｌである。
【００２７】
さらに、
０＜［（ｂ−ａ）×ｓｂｎ］＜（ｆｌ×ｓｂｎ）
【００２８】
ｆｌおよびｓｂｎの最小公倍数が（ｆｌ×ｓｂｎ）であるので、（ｆｌ×ｓｂｎ）未満であって、ｓｂｎとｆｌの両方で割り切れる整数［（ｂ−ａ）×ｓｂｎ］はまったく存在せず、したがって、この式は成り立たないと想定される。
【００２９】
したがって、０≦ａ＜ｂ＜ｆｌという任意の整数について、（ａ×ｓｂｎ）ｍｏｄ  ｆｌ≠（ｂ×ｓｂｎ）ｍｏｄ  ｆｌが成り立つ。
【００３０】
このように、フレームの長さに対して素数になるようにジャンプ数を選択することにより（以後、ジャンプ数はｓｂｎであると想定する）、１フレーム内の各位置をトラバースすることは可能である。
【００３１】
しかし、ハードウェアにおけるパイプライン遅延のために、ｓｂｎがパイプライン遅延より小さい場合、第２のフレームのデータを廃棄しなければならない。したがって、本発明では、ｓｂｎはハードウェアにおけるパイプライン遅延より大きい。当業者であれば、当技術分野ではデータの長さと持続時間が互いに対応するので、区別なく両者を使用できることを認識するであろう。たとえば、パイプライン遅延自体は持続時間の単位であり、その持続時間の単位が通信システム内のデータ・ストリーム長の単位、すなわち、ビット数に対応するので、当業者はパイプライン遅延を直接示すためにビット数を使用する。
【００３２】
図５は、本発明により、ｓｂｎを使用することによってフレーム境界検出を実行する方法を概略的に示している。図５に示されている通り、フレーム同期ロジックは、最初は正しいフレーム開始位置を把握しておらず、したがって、フレーム境界位置として１フレームの長さを有するインターセプト済みデータの開始位置を想定する。想定されたフレーム境界位置が正しくないことをフレーム同期ロジックが検出した場合、そのロジックは、１フレームの長さを有する次のインターセプト済みデータの開始位置としてｓｂｎビットをジャンプしてその後受信したデータを想定する。この瞬間に、図５に示されている通り、ｓｂｎはパイプライン遅延より大きいので、ジャンプ数を計算するための式およびフレーム同期時間を計算する方法は以下の式から導出することができる。
【００３３】
フレーム同期を必要とするフレームの長さがｆｌであり、パイプライン遅延がＫであると想定すると、ジャンプ数ｓｂｎの可能な値は以下の通りである。
ｓｂｎ≧Ｋであり、さらに、ｓｂｎはｆｌに対して素である。
【００３４】
最悪の場合のフレーム同期時間は以下の通りである。
ｆｌ×ｆｌ＋（ｆｌ−１）×ｓｂｎ
【００３５】
第２のフレームのデータは廃棄する必要がなく、ｓｂｎビットのみが廃棄される。このように、廃棄データのビット数は最小限になり、したがって、フレーム境界検出の時間とフレーム同期時間はいずれも節約される。
【００３６】
図６は、図５においてデータ・ストリームのフレーム境界を検出するための方法の流れ図を示している。図６に示されている通り、ステップＳ５０１で、１フレームの長さを有するデータがデータ・ストリームからインターセプトされ、ステップＳ５０２で、データの開始位置から１フレームの長さを有するデータに関するＦＥＣチェックの妥当性を検査し、ステップＳ５０３で、１フレームの長さを有するデータに関するＦＥＣチェックが正しいかどうかについて判断が行われ、このＦＥＣチェックはＩＥＥＥ規格８０２．３ａｐ−２００７の条項７４に定義されたチェック方法を使用することができ、１フレームの長さを有するデータに関するＦＥＣチェックが正しくない場合に、１フレームの長さを有するデータの終了位置の次のビットから、インターセプトすべき次のデータ・フレームの開始位置としてｓｂｎビットをジャンプしたデータ・ストリーム位置が想定され、ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、そのフレームの長さに対して素である整数であり、次に処理の流れはインターセプト・ステップＳ５０２に戻り、１フレームの長さを有するデータに関するＦＥＣチェックが正しい場合に、ステップＳ５０５で、１フレームの長さを有するデータの開始位置がデータ・ストリームのフレーム境界位置であると判断される。
【００３７】
図７は、本発明の一実施形態により、イーサネット内の順方向誤り訂正層におけるデータ・ストリームに関するフレーム同期方法の流れ図を示している。図７に示されている通り、ステップＳ６０１で、１フレームの長さを有するデータがデータ・ストリームからインターセプトされ、ステップＳ６０２で、データの開始位置から１フレームの長さを有するデータに関するＦＥＣチェックの妥当性を検査し、ステップＳ６０３で、１フレームの長さを有するデータに関するＦＥＣチェックが正しいかどうかについて判断が行われ、正しくない場合に、ステップＳ６０４で、１フレームの長さを有するデータの終了位置の次のビットから、インターセプトすべき次のデータ・フレームの開始位置としてｓｂｎビットをジャンプしたデータ・ストリーム位置が想定され、ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、そのフレームの長さに対して素である整数であり、次に処理の流れはインターセプト・ステップＳ６０２に戻り、１フレームの長さを有するデータに関するＦＥＣチェックが正しい場合に、１フレームの長さを有する次のｎ個の連続データに関するＦＥＣチェックが正しいかどうかについて判断が行われ、ｎが１より大きい整数であり、１フレームの長さを有する次のｎ個の連続データのいずれかに関するＦＥＣチェックが正しくないとステップＳ６０５で判断された場合に、ステップＳ６０６で、１フレームの長さを有するデータの終了位置の次のビットから、インターセプトすべき次のデータ・フレームの開始位置としてｓｂｎビットをジャンプしたデータ・ストリーム位置が想定され、ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、そのフレームの長さに対して素である整数であり、次に処理の流れは１フレームの長さを有するデータをデータ・ストリームからインターセプトするステップに戻り、１フレームの長さを有する次のｎ個の連続データのそれぞれに関するＦＥＣチェックが正しい場合に、データがフレーム同期しているとステップＳ６０７で判断される。
【００３８】
図６および図７の流れ図では、ｓｂｎはイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、そのフレームの長さに対して素である整数である。このため、ｓｂｎが取り得る値が複数存在する可能性がある。ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、そのフレームの長さに対して素である整数のうちの最小のものである場合、この時点で、最悪の場合のフレーム同期時間に関する式により、フレーム同期時間は最短になる。加えて、この手順の間、イーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延が使用されるので、一実施形態では、イーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延を決定することがさらに含まれる。さらに、ＩＥＥＥ規格８０２．３ａｐ−２００７の条項７４の要件により、１フレームの長さを有するデータに関するＦＥＣチェックを実行する前に、そのデータを逆スクランブルすることが必要である。
【００３９】
本発明の方法により、パイプライン遅延が９６ＢＴであり、ジャンプ数が９７に選択された場合（９７は２１１２に対して素である）、フレーム同期時間は最小限の２１１２＊２１１２＋２１１１＊９７＝４，６６５，３１１ＢＴになり、従来技術の方法による８，９２１，０８７ＢＴの半分になる。本発明の方法では、各シフト後に１フレーム全体のデータを廃棄することは不要であり、廃棄されるものはジャンプ数と同じビット数のデータのみである。したがって、ジャンプ数が小さいほど、廃棄されるデータのビット数が少なくなり、フレーム同期の高速化が達成される。
【００４０】
同じ発明の概念に基づき、図８は、イーサネット内の順方向誤り訂正層におけるデータ・ストリームのフレーム境界を検出するためのシステム７００の構造ブロック図を示している。図８に示されている通り、このシステムは、データ・ストリームから１フレームの長さを有するデータをインターセプトするためのインターセプト手段７０１と、データの開始位置から１フレームの長さを有するデータに関するＦＥＣチェックの妥当性を検査するためのＦＥＣ妥当性検査手段７０２と、１フレームの長さを有するデータに関するＦＥＣチェックが正しくない場合に、１フレームの長さを有するデータの終了位置の次のビットから、インターセプトすべき次のデータ・フレームの開始位置としてｓｂｎビットをジャンプしたデータ・ストリーム位置を想定するためのジャンプ手段７０３であって、ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、そのフレームの長さに対して素である整数であるジャンプ手段７０３とを含み、ジャンプ手段がｓｂｎビットをジャンプした後、１フレームの長さを有するインターセプト済みデータに関するＦＥＣチェックが正しいことを妥当性検査手段が確認するまでインターセプト手段が１フレームの長さを有する次のデータをインターセプトし、１フレームの長さを有するデータの開始位置がデータ・ストリームのフレーム境界位置であると判断される。
【００４１】
同じ発明の概念に基づき、図９は、イーサネット内の順方向誤り訂正層で受信したデータ・ストリームに関するフレーム同期システム８００の構造ブロック図を示している。図９に示されている通り、このシステムは、データ・ストリームから１フレームの長さを有するデータをインターセプトするためのインターセプト手段８０１と、データの開始位置から１フレームの長さを有するデータに関するＦＥＣチェックの妥当性を検査するためのＦＥＣ妥当性検査手段８０２と、１フレームの長さを有するデータに関するＦＥＣチェックが正しくない場合に、１フレームの長さを有するデータの終了位置の次のビットから、インターセプトすべき次のデータ・フレームの開始位置としてｓｂｎビットをジャンプしたデータ・ストリーム位置を想定するためのジャンプ手段８０３であって、ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、そのフレームの長さに対して素である整数であるジャンプ手段８０３と、１フレームの長さを有するデータに関するＦＥＣチェックが正しい場合に、１フレームの長さを有する次のｎ個の連続データに関するＦＥＣチェックが正しいかどうかを判断するための判断手段８０４であって、ｎが１より大きい整数である判断手段８０４とを含み、ジャンプ手段８０３がｓｂｎビットをジャンプした後、１フレームの長さを有するインターセプト済みデータに関するチェックが正しいことをＦＥＣ妥当性検査手段８０２が確認するまでインターセプト手段８０１が１フレームの長さを有する次のデータをインターセプトし、１フレームの長さを有する次のｎ個の連続データに関するＦＥＣチェックが正しいかどうかを判断手段８０４が判断し、１フレームの長さを有する次のｎ個の連続データのいずれかに関するＦＥＣチェックが正しくないと判断手段８０４が判断した場合に、ジャンプ手段８０３がもう一度ｓｂｎビットをジャンプし、インターセプト手段８０１がＦＥＣチェックのために１フレームの長さを有する次のデータをインターセプトし、１フレームの長さを有する次のｎ個の連続データのそれぞれに関するＦＥＣチェックが正しいと判断手段８０４が判断した場合に、データがフレーム同期していると判断手段が判断する。
【００４２】
図８に示されているフレーム境界を検出するためのシステム７００ならびに図９に示されているフレーム同期システム８００では、ｓｂｎはイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、そのフレームの長さに対して素である整数である。このため、ｓｂｎが取り得る値が複数存在する可能性がある。ｓｂｎがイーサネット内のＦＥＣ層内のハードウェア回路のパイプライン遅延より大きく、そのフレームの長さに対して素である整数のうちの最小のものである場合、この時点で、最悪の場合のフレーム同期時間に関する式により、フレーム同期時間は最短になる。さらに、ＩＥＥＥ規格８０２．３ａｐ−２００７の条項７４の要件により、この２つのシステムは、ＦＥＣチェッカが１フレームの長さを有するデータに関するＦＥＣチェックを実行する前にそのデータを逆スクランブルするためのデスクランブラを必要とする。
【００４３】
本発明は、図１に示されているようにＦＥＣデコーダを改善するために使用することができる。具体的には、本発明は、図１に示されているようにＦＥＣブロック・フレーム同期モジュールを改善するために使用することができ、ハードウェアのオーバヘッドを増加せずに、受信したデータ・ストリームのフレーム境界を検出する速度およびフレーム同期速度を増加することができる。
【００４４】
図面に関連して本発明の模範的な諸実施形態について説明してきたが、本発明はこれらの具体的な実施形態に限定されないことは言うまでもないことであり、当業者であれば、本発明の範囲および原理から逸脱せずに諸実施形態に対して様々な改変および変更を行うことができる。これらの改変および変更はいずれも、特許請求の範囲によって定義された本発明の範囲に含まれるものである。
【００４５】
当業者であれば、装置、方法、またはコンピュータ・プログラム（computer programproduct）として本発明を実施できることを上記の説明から認識するであろう。したがって、本発明は、完全なハードウェア、完全なソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、または本明細書で「回路」、「モジュール」、あるいは「システム」と呼ばれるソフトウェア部分とハードウェア部分との組み合わせとして実現することができる。加えて、本発明は、コンピュータ使用可能プログラム・コードを収容する任意の有形の表現媒体に実施されたコンピュータ・プログラムの形を取ることができる。
【００４６】
１つまたは複数のコンピュータ使用可能媒体またはコンピュータ可読媒体の任意の組み合わせを使用することができる。コンピュータ使用可能媒体またはコンピュータ可読媒体は、たとえば、電気、磁気、光学、電磁、赤外線、または半導体のシステム、装置、デバイス、または伝搬媒体にすることができ、これらに限定されない。コンピュータ可読媒体のより具体的な例（非網羅的リスト）としては、１つまたは複数のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光学記憶装置、インターネットあるいはイントラネットをサポートするものなどの伝送媒体、または磁気記憶装置を含むことになるであろう。プログラムは、たとえば、紙またはその他の媒体の光学走査を介して電子的に取り込み、コンパイルし、解釈し、または必要であれば、その他の適切な方法で処理し、次にコンピュータ・メモリに保管することができるので、コンピュータ使用可能媒体またはコンピュータ可読媒体は、その上にプログラムが印刷される紙または他の適切な媒体にさえなり得ることに留意されたい。本明細書の文脈では、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによりあるいはそれに関連して使用するためのプログラムを収容、保管、通信、伝搬、または伝送可能な任意の媒体にすることができる。コンピュータ使用可能媒体は、ベースバンドにおいてまたは搬送波の一部として、コンピュータ使用可能プログラム・コードがそれによって実施された伝搬データ信号を含むことができる。コンピュータ使用可能プログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦなどを含むがこれらに限定されない任意の適切な媒体を使用して伝送することができる。
【００４７】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来のプロシージャ型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組み合わせで作成することができる。このプログラム・コードは、完全にユーザのコンピュータ上で、一部分はユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、一部分はユーザのコンピュータ上であって一部分はリモート・コンピュータ上で、または完全にリモート・コンピュータあるいはサーバ上で、実行することができる。後者のシナリオでは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してリモート・コンピュータがユーザのコンピュータに接続される場合もあれば、（たとえば、インターネット・サービス・プロバイダを使用してインターネットにより）外部のコンピュータに対して接続が行われる場合もある。
【００４８】
加えて、本発明の流れ図あるいはブロック図またはその両方の各ブロックおよびそれぞれのブロックの組み合わせはコンピュータ・プログラム命令によって実装することができる。これらのコンピュータ・プログラム命令は、マシンを生産するために汎用コンピュータ、専用コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに提供することができ、それにより、流れ図あるいはブロック図またはその両方のブロックに指定された機能／動作を実行する手段は、コンピュータまたはその他のプログラマブル・データ処理装置によって実行されるこれらの命令によって生産される。
【００４９】
また、これらのコンピュータ・プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置を特定の方法で機能させることができるコンピュータ可読媒体に保管することができる。このように、コンピュータ可読媒体に保管された命令は、流れ図あるいはブロック図またはその両方のブロックに指定された機能／動作を実行する命令手段を含む装置（article of manufacture）を生産する。
【００５０】
また、これらのコンピュータ・プログラム命令は、コンピュータまたはその他のプログラマブル・データ装置にアップロードすることができ、それにより、コンピュータで実行される手順を実装するために一連の動作ステップがコンピュータまたはその他のプログラマブル・データ装置上で実行される。このように、流れ図あるいはブロック図またはその両方のブロックに指定された機能／動作を実行する手順は、コンピュータまたはその他のプログラマブル・データ装置上で実行される命令によって提供される。
【００５１】
図面の流れ図およびブロック図は、本発明の諸実施形態によるコンピュータ・プログラム、方法、およびシステムによって実装可能なアーキテクチャ、機能、および動作を例示している。流れ図またはブロック図の各ブロックは、指定の論理機能を実装するための１つまたは複数の実行可能命令を含む、コードのモジュール、プログラム・セグメント、または一部分を提示することができる。いくつかの代替実装例では、ブロック内に示された機能は図面内に記載されたものとは異なる順序で実行される可能性があることに留意されたい。たとえば、２つの連続ブロックは、関係する機能に応じて、実質的に同時に実行される場合もあれば、逆の順序で実行される場合もある。加えて、流れ図あるいはブロック図またはその両方の各ブロックおよびそれぞれのブロックの組み合わせは、指定の機能または動作を実行するための専用ハードウェアベースのシステムによって、または専用ハードウェアとコンピュータ命令の組み合わせによって実装することができる。
【図１】
0005536889.tif 000002
【図２】
0005536889.tif 000003
【図３】
0005536889.tif 000004
【図４】
0005536889.tif 000005
【図５】
0005536889.tif 000006
【図６】
0005536889.tif 000007
【図７】
0005536889.tif 000008
【図８】
0005536889.tif 000009
【図９】
0005536889.tif 000010