(57)【要約】  伝送装置（１０）は、複数の経路を介してデータを送信する。また、伝送装置（１０）は、対向装置の動作クロックと、自身の動作クロックとを比較し、どちらの動作クロックが速いかを判別する。また、伝送装置（１０）は、伝送装置（１０ｂ）の動作クロックが速いと判別した場合には、所定のデータ長よりも短い第２の誤差吸収データを各経路を介して送信するデータに格納する。また、伝送装置（１０）は、自身の動作クロックが速いと判別した場合には、所定のデータ長よりも長い第３の誤差吸収データを各経路を介して送信するデータに挿入する。
2013001631.tif 000002
【特許請求の範囲】
【請求項１】
対向装置に対してそれぞれ異なる経路でデータを送信する複数の送信部と、
前記対向装置の動作クロックと、自身の動作クロックとを比較し、どちらの動作クロックが速いかを判別する判別部と、
前記判別部が、前記対向装置の動作クロックと前記自身の動作クロックとが同じであると判別した場合には、所定のデータ長を有する第１の誤差吸収データを各送信部が送信するデータに挿入し、前記判別部が前記対向装置の動作クロックが速いと判別した場合には、前記所定のデータ長よりも短い第２の誤差吸収データを各送信部が送信するデータに挿入し、前記判別部が前記自身の動作クロックが速いと判別した場合には、前記所定のデータ長よりも長い第３の誤差吸収データを各送信部が送信するデータに挿入する挿入部と
を有することを特徴とする伝送装置。
【請求項２】
前記第１の誤差吸収データは、前記対向装置が削除および複製を行わないシンボルを有し、
前記第２の誤差吸収データは、前記対向装置が複製するシンボルを有し、
前記第３の誤差吸収データは、前記対向装置が削除するシンボルを前記第１の誤差吸収データに付加したデータであることを特徴とする請求項１に記載の伝送装置。
【請求項３】
前記伝送装置は、
前記対向装置が返信したデータを格納するバッファを有し、
当該バッファに格納したデータの読出しを行い、
前記読み出したデータに前記第２の誤差吸収データが含まれていた場合は、前記第２の誤差吸収データに含まれるシンボルを削除し、
前記読み出したデータに前記第３の誤差吸収データが含まれていた場合は、前記第３の誤差吸収データに含まれるシンボルを複製することを特徴とする請求項２に記載の伝送装置。
【請求項４】
前記判別部は、
前記自身の動作クロックに合わせて動作する第１カウンタと、
前記対向装置の動作クロックに合わせて動作する第２カウンタと、
前記第１カウンタの値が所定の値となった際に、前記第２カウンタの値を取得し、第２カウンタから取得した値と前回第２カウンタから取得した値とを比較し、今回取得した値が前回取得した値よりも大きいと判別した場合には前記対向装置の動作クロックが速いと判定し、前記取得した値が今回取得した値よりも大きいと判別した場合には自身の動作クロックが速いと判定する判定部と
を有することを特徴とする請求項１〜３のいずれか１つに記載の伝送装置。
【請求項５】
対向装置からデータを受信する受信部と、
前記受信部が受信したデータから、前記対向装置の動作クロックと自身の動作クロックとの誤差を吸収するために用いる誤差吸収データを検出する検出部と、
前記検出部が検出した誤差吸収データが所定のデータ長よりも長い場合には、当該誤差吸収データの一部を削除し、前記検出部が検出した誤差吸収データが所定のデータ長よりも短い場合には、当該誤差吸収データの一部を複製する誤差吸収部と
を有する事を特徴とする伝送装置。
【請求項６】
対向装置に対してデータを送信する送信装置に対し、前記対向装置の動作クロックと自身の動作クロックとの誤差を吸収する誤差吸収データを挿入したデータを供給する伝送回路であって、
前記対向装置の動作クロックと、自身の動作クロックとを比較し、どちらの動作クロックが速いかを判別する判別部と、
前記判別部が、前記対向装置の動作クロックと前記自身の動作クロックとが同じであると判別した場合には、所定のデータ長を有する第１の誤差吸収データを送信部が送信するデータに挿入し、前記判別部が前記対向装置の動作クロックが速いと判別した場合には、前記所定のデータ長よりも短い第２の誤差吸収データを送信部が送信するデータに挿入し、前記判別部が前記自身の動作クロックが速いと判別した場合には、前記所定のデータ長よりも長い第３の誤差吸収データを送信部が送信するデータに挿入する挿入部と、
前記挿入部がいずれかの誤差吸収データを挿入したデータを送信装置に供給する供給部と、
を有することを特徴とする伝送回路。
【請求項７】
前記第２の誤差吸収データは、データを受信した対向装置が前記第２の誤差吸収データからシンボルを削除することを示すシンボルを含み、
前記第３の誤差吸収データは、データを受信した対向装置が前記第３の誤差吸収データにシンボルを付加することを示すシンボルを含む
ことを特徴とする請求項６に記載の伝送回路。
【請求項８】
対向装置の動作クロックと、自身の動作クロックとの誤差を吸収する誤差吸収データを挿入したデータを、複数の経路を介して前記対向装置へ送信する伝送装置と、
前記伝送装置が送信したデータを受信する対向装置と
を有する伝送システムであって、
前記伝送装置は、
前記対向装置に対してそれぞれ異なる経路でデータを送信する複数の送信部と、
前記対向装置の動作クロックと、自身の動作クロックとを比較し、どちらの動作クロックが速いかを判別する判別部と、
前記判別部が、前記対向装置の動作クロックと前記自身の動作クロックとが同じであると判別した場合には、所定のデータ長を有する第１の誤差吸収データを各送信部が送信するデータに挿入し、前記判別部が前記対向装置の動作クロックが速いと判別した場合には、前記所定のデータ長よりも短い第２の誤差吸収データを各送信部が送信するデータに挿入し、前記判別部が前記自身の動作クロックが速いと判別した場合には、前記所定のデータ長よりも長い第３の誤差吸収データを各送信部が送信するデータに挿入する挿入部と
を有することを特徴とする伝送システム。
【請求項９】
受信したデータをバッファに格納し、当該バッファに格納したデータを読み出す対向装置に対し、複数の経路を介してデータを送信する伝送装置の制御方法であって、
前記対向装置の動作クロックと、自身の動作クロックとを比較し、どちらの動作クロックが速いかを判別し、
前記対向装置の動作クロックと前記自身の動作クロックとが同じであると判別した場合には、所定のデータ長を有する第１の誤差吸収データを送信するデータに挿入し、前記対向装置の動作クロックが速いと判別した場合には、前記所定のデータ長よりも短い第２の誤差吸収データを送信するデータに挿入し、前記自身の動作クロックが速いと判別した場合には、前記所定のデータ長よりも長い第３の誤差吸収データを送信するデータに挿入する
処理を前記伝送装置に実行させることを特徴とする伝送装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法に関する。
【背景技術】
【０００２】
従来、複数の経路を介してデータの送受信を行う伝送装置の技術が知られている。このような伝送装置の一例として、対向する伝送装置との間を複数の経路で接続し、複数の経路をリンクさせてデータを送受信するＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）の技術が知られている。【０００３】
このようなＰＣＩｅの技術が適用された伝送装置においては、データの送受信を行うポートごとにそれぞれ異なるクロックで動作するため、送信側のポートが動作するクロック周波数と、受信側のポートが動作するクロック周波数との間に誤差が存在する。このような誤差が存在する場合には、送受信するデータの欠損や重複読出しが発生するので、送信側の伝送装置は、以下の処理を実行する。【０００４】
すなわち、送信側の伝送装置は、ＳＫＰ（Ｓｋｉｐ）  Ｏｒｄｅｒｄ  Ｓｅｔ（以下、スキップオーダードセットと記載する）と呼ばれる固定長のデータを定期的に生成し、各経路を介して送信するデータに対して同時に挿入する。具体的には、送信側の伝送装置は、１つの「Ｃ（ＣＯＭ）」シンボルと３つの「Ｓ（ＳＫＩＰ）」シンボルとを有する４シンボル長のスキップオーダードセットを挿入する。そして、送信側の伝送装置は、スキップオーダードセットを挿入したデータを対向する伝送装置へ送信する。【０００５】
一方、受信側の伝送装置は、受信したデータを格納する複数のエラスティックバッファを伝送経路ごとに有し、送信側の伝送装置から受信したデータを各エラスティックバッファに格納する。また、受信側の伝送装置は、各エラスティックバッファに格納されたデータの読出しを行う場合には、クロック周波数の誤差による各エラスティックバッファのオーバーフローやアンダーフローを防止するため、以下の処理を各エラスティックバッファごとに独立して実行する。【０００６】
すなわち、受信側の伝送装置は、エラスティックバッファに格納されているデータ量が所定の閾値よりも多い場合には、データに挿入されたスキップオーダードセットが有する「Ｓ」シンボルの一部を削除する。また、受信側の伝送装置は、エラスティックバッファに格納されているデータ量が所定の閾値よりも少ない場合には、データに挿入されたスキップオーダードセットが有する「Ｓ」シンボルの一部を２度読み出すことにより、スキップオーダードセットの一部を追加する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−２０２２８１号公報
【特許文献２】特開２００６−０６０５０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した固定長のスキップシンボルを全レーンに対して定期的に挿入する技術では、エラスティックバッファごとに独立して「Ｓ」シンボルの削除や追加を行う。このため、各エラスティックバッファから読み出したデータの先頭を合わせるデスキュー処理の論理が複雑になる。【０００９】
すなわち、受信側の伝送装置は、各エラスティックバッファごとに独立して「Ｓ」シンボルの追加又は削除を行うので、検出されたスキップオーダードセットの「Ｃ」シンボルの位置をそろえるだけでは、各データのデスキュー処理を行うことができない。そこで、受信側の伝送装置は、各データに挿入されたスキップオーダードセットを検出し、検出されたスキップオーダードセットの「Ｃ」シンボルの位置をそろえる。そして、受信側の伝送装置は、各データに挿入されたスキップオーダードセットのシンボル長を比較し、スキップオーダードセットの一部を削除、または追加することで、各スキップオーダードセットのシンボル長をそろえる合わせ込み処理を行う。【００１０】
以下、図面を用いて、このような伝送装置が実行処理の一例を説明する。図２２は、従来の伝送装置の一例を説明するための図である。図２２に示す例では、送信側の伝送装置５０と受信側の伝送装置５１とは、それぞれ８つのポート＃１〜＃８を有し、８本のシリアル伝送路＃１〜＃８をリンクさせて、データの送受信を行うものとする。【００１１】
また、各シリアル伝送路＃１〜＃８を介して送信されるデータをデータ＃１〜＃８とする。また、伝送装置５１は、各シリアル伝送路＃１〜＃８を介して受信したデータ＃１〜＃８を格納するエラスティックバッファ（以下、ＥＳと記載する）＃１〜＃８を有するものとする。【００１２】
図２２中（Ａ）に示すように、伝送装置５０は、スキップオーダードセットを挿入したデータ＃１〜＃８を、ＳｅｒＤｅｓ（ＳＥＲｉａｌｉｚｅｒ／ＤＥＳｅｒｉａｌｉｚｅｒ）からそれぞれ異なるシリアル伝送路＃１〜＃８を介して、伝送装置５１へ送信する。ここで、伝送装置５０は、図２３中（ｅ）に示すように、所定の時間間隔でスキップオーダードセットの挿入指示であるＳＫＰ  Ｉｎｓ指示を生成する。そして、伝送装置５０は、図２３中（ｆ）、（ｇ）に示すように、ＳＫＰ  Ｉｎｓ直後のデータの区切りに対して、全データ＃１〜＃８同時にスキップオーダードセットを挿入する。なお、図２３は、従来のスキップオーダードセットの挿入処理を説明するための図である。【００１３】
すると、図２２中（Ｂ）に示すように、伝送装置５１は、スキップオーダードセットが挿入されたデータ＃１〜＃８をそれぞれ異なるタイミングで受信し、受信した各データ＃１〜＃８をそれぞれ異なるＥＳ＃１〜＃８に格納する。そして、伝送装置５１は、各ＥＳ＃１〜＃８からデータ＃１〜＃８を読み出す場合には、以下の処理を実行する。【００１４】
すなわち、伝送装置５１は、図２２中（Ｃ）に示すように、各ＥＳ＃１〜＃８に格納されたデータの量に応じて、各データ＃１〜＃８に挿入されたスキップオーダードセットの一部を削除、又は追加する。その後、伝送装置５１は、読み出されたデータ＃２〜＃８に挿入されたスキップオーダードセットの先頭位置をデータ＃１のスキップオーダードセットの位置に合わせるとともに、各データ＃２〜＃８に挿入されたスキップオーダードセットの長さをデータ＃１のスキップオーダードセットの長さとそろえる。【００１５】
具体的には、図２２中（Ｄ）に示す例では、伝送装置５１は、データ＃２、＃８に挿入されたスキップオーダードセットを検出し、検出したスキップオーダードセットのシンボル長とデータ＃１に挿入されたスキップオーダードセットのシンボル長とを比較する。そして、伝送装置５１は、データ＃２に挿入されたスキップオーダードセットがデータ＃１に挿入されたスキップオーダードセットよりも短いと判別し、データ＃８に挿入されたスキップオーダードセットがデータ＃１に挿入されたスキップオーダードセットよりも長いと判別する。そして、伝送装置５１は、データ＃２に挿入されたスキップオーダードセットの一部を２回読み出すことで複製し、データ＃８に挿入されたスキップオーダードセットの一部を削除することで、各データ＃１、＃２、＃８に挿入されたスキップオーダードセットと同じ長さにする。【００１６】
ここで、図２４は、従来のデスキュー処理の一例を説明するための図（１）である。例えば、図２４中（ｈ）に示すように、伝送装置５１は、データ＃８のスキップシンボルを削除する。すると、図２４中（ｉ）に示すように、スキップオーダードセットの「ＣＯＭ」シンボルを合わせた際に、データの先頭がずれるので、伝送装置５１は、図２４中（ｊ）に示すように、デスキュー処理を行う際にスキップシンボルを追加する。【００１７】
また、図２５は、従来のデスキュー処理の一例を説明するための図（２）である。例えば、図２５中（ｋ）に示すように、伝送装置５１は、データ＃８のスキップシンボルを追加する。すると、図２４中（ｌ）に示すように、スキップオーダードセットの「ＣＯＭ」シンボルを合わせた際に、データの先頭がずれるので、伝送装置５１は、図２４中（ｍ）に示すように、デスキュー処理を行う際にスキップシンボルを削除する。【００１８】
このように、受信側の伝送装置は、複雑なデスキュー処理を行うため、処理遅延を大きくしてしまう。また、受信側の遅延装置は、スキップシンボルの追加や削除を行うためのデータバッファを各レーンに設置するので、回路規模が大きくなってしまう。【００１９】
本願に開示の技術は、上述した問題に鑑みてなされたものであって、デスキュー処理の論理を単純化する。
【課題を解決するための手段】
【００２０】
１つの側面では、受信したデータをバッファに格納し、当該バッファに格納したデータを読み出す対向装置に対してデータを送信する伝送装置である。このような伝送装置は、対向装置に対してそれぞれ異なる経路でデータを送信する。また、伝送装置は、対向装置の動作クロックと、自身の動作クロックとを比較し、どちらの動作クロックが速いかを判別する。また、伝送装置は、対向装置の動作クロックと自身の動作クロックとが同じであると判別した場合には、所定のデータ長を有する第１の誤差吸収データを送信するデータに挿入する。また、伝送装置は、対向装置の動作クロックが速いと判別した場合には、所定のデータ長よりも短い第２の誤差吸収データを送信するデータに挿入する。また、伝送装置は、自身の動作クロックが速いと判別した場合には、所定のデータ長よりも長い第３の誤差吸収データを送信するデータに挿入する。
【発明の効果】
【００２１】
１つの側面では、受信側の伝送装置によるデスキュー処理の論理を容易にする。
【図面の簡単な説明】
【００２２】
【図１】図１は、実施例１に係る情報処理システムの一例を説明するための図である。
【図２】図２は、実施例１に係る伝送装置の一例を説明するための図である。
【図３】図３は、実施例１に係るスキップ挿入部を説明するための図である。
【図４】図４は、動作クロックに違いが無い場合に挿入するスキップオーダードセットを説明するための図である。
【図５】図５は、送信側の動作クロックが速い場合に挿入するスキップオーダードセットを説明するための図である。
【図６】図６は、受信側の動作クロックが速い場合に挿入するスキップオーダードセットを説明するための図である。
【図７】図７は、実施例１に係るスリップ検出部が実行する処理の流れを説明するための図である。
【図８】図８は、実施例１に係るスリップ検出部が計数する値を説明するための図である。
【図９】図９は、実施例１に係るスリップ検出部が実行する判別処理の一例を説明するための図である。
【図１０】図１０は、実施例１に係るエラスティックバッファの一例を説明するための図である。
【図１１ａ】図１１ａは、動作クロックに差がない場合に送信されたスキップオーダードセットの処理の流れを説明するための図である。
【図１１ｂ】図１１ｂは、送信側の動作クロックが受信側の動作クロックよりも速い場合に挿入されるスキップオーダードセットの処理の流れを説明するための図である。
【図１１ｃ】図１１ｃは、受信側の動作クロックが送信側の動作クロックよりも速い場合に挿入されるスキップオーダードセットの処理の流れを説明するための図である。
【図１２】図１２は、実施例１に係る伝送装置がスキップオーダードセットを挿入する処理を説明するための図である。
【図１３】図１３は、実施例１に係る受信側の伝送装置によるスキップオーダードセットの処理を説明するための図である。
【図１４】図１４は、実施例２に係る伝送装置の動作クロックが送信先の動作クロックよりも速い場合に挿入されるスキップオーダードセットの一例を説明するための図である。
【図１５】図１５は、実施例２に係る伝送装置の動作クロックが送信先の動作クロックよりも遅い場合に挿入されるスキップオーダードセットの一例を説明するための図である。
【図１６ａ】図１６ａは、実施例２に係る送信側の伝送装置の動作クロックが受信側の伝送装置の動作クロックよりも速い場合に挿入されるスキップシンボルの一例を説明するための図である。
【図１６ｂ】図１６ｂは、実施例２に係る受信側の伝送装置の動作クロックが送信側の伝送装置の動作クロックよりも速い場合に挿入されるスキップシンボルの一例を説明するための図である。
【図１７】図１７は、実施例３に係る伝送装置の動作クロックが送信先の動作クロックよりも速い場合に挿入されるスキップオーダードセットの一例を説明するための図である。
【図１８】図１８は、実施例３に係る伝送装置の動作クロックが送信先の動作クロックよりも遅い場合に挿入されるスキップオーダードセットの一例を説明するための図である。
【図１９ａ】図１９ａは、実施例３に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図（１）である。
【図１９ｂ】図１９ｂは、実施例３に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図（２）である。
【図１９ｃ】図１９ｃは、実施例３に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図（３）である。
【図２０】図２０は、実施例３に係る受信側の伝送装置が実行する処理の流れを説明する図である。
【図２１】図２１は、実施例３に係る送信側の伝送装置が実行する処理の流れを説明するための図である。
【図２２】図２２は、従来の伝送装置の一例を説明するための図である。
【図２３】図２３は、従来のスキップオーダードセットの挿入処理を説明するための図である。
【図２４】図２４は、従来のデスキュー処理の一例を説明するための図（１）である。
【図２５】図２５は、従来のデスキュー処理の一例を説明するための図（２）である。
【発明を実施するための形態】
【００２３】
以下に添付図面を参照して本願に係る伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法について説明する。
【実施例１】
【００２４】
以下の実施例１では、図１を用いて、伝送装置を有する情報処理システムの一例を説明する。図１は、実施例１に係る情報処理システムの一例を説明するための図である。【００２５】
図１に示すように、情報処理システム１は、ＣＰＵ（Central  Processing  Unit）２、データ伝送装置３、メモリ４、スイッチ５、入出力デバイス６〜６ｂを有する。ここで、データ伝送装置３とは、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）規格に準拠したＲｏｏｔ  Ｃｏｍｐｌｅｘ等のデータ伝送装置である。入出力デバイス６〜６ｂとは、いわゆる終端ポイント（Ｅｎｄ  Ｐｏｉｎｔ）である。【００２６】
また、データ伝送装置３は、伝送装置１０、１０ａを有し、スイッチ５は、伝送装置１０ｂ〜１０ｄを有し、入出力デバイス６〜６ｂは、それぞれ伝送装置１０ｅ〜１０ｇを有する。また、データ伝送装置３は、伝送装置１０、１０ｂを介してスイッチ５と接続され、伝送装置１０ａおよび１０ｅを介して入出力デバイス６と接続される。また、スイッチ５は、伝送装置１０ｃ、１０ｆを介して入出力デバイス６ｂと接続され、伝送装置１０ｄ、１０ｇを介して入出力デバイス６ａと接続される。【００２７】
各伝送装置１０〜１０ｇは、８本のシリアルリンクで接続され、ＰＣＩｅ規格に準拠したプロトコルでデータの送受信を行う。また、各伝送装置１０〜１０ｇは、８本のシリアルリンクをリンクさせてデータの送受信を行う。なお、伝送装置１０ａ〜１０ｇは、伝送装置１０と同様の機能を発揮するものとして、以下の説明を省略する。【００２８】
以下、図面を用いて、伝送装置１０の一例について説明する。なお、以下の説明においては、伝送装置１０と伝送装置１０ｂとがデータの送受信を行う例について説明するものとする。また、伝送装置１０が伝送装置１０ｂへ送信する複数のデータを送信データ＃１〜＃８とし、伝送装置１０が伝送装置１０ｂから受信した複数のデータを受信データ＃１〜＃８とする。【００２９】
図２は、実施例１に係る伝送装置の一例を説明するための図である。図２に示す例では、伝送装置１０は、データの送受信を要求する上位層１１、ＭＡＣ（Media  Access  Control）層の処理を行うＭＡＣ部２０を有する。また、伝送装置１０は、データの符号化を行うＰＣＳ（Physical  Coding  Sublayer）部３０、データの送受信を行うＳｅｒＤｅｓ（ＳＥＲｉａｌｉｚｅｒ／ＤＥＳｅｒｉａｌｉｚｅｒ）４０を有する。【００３０】
ＭＡＣ部２０は、スキップ挿入部２１、スクランブラ２３、スリップ検出部２２、デスキュー２４、デスクランブラ２５、制御部２６を有する。またＰＣＳ部３０は、８つのＰＣＳレイヤ３０ａ〜３０ｈを有する。ＰＣＳレイヤ３０ａは、エンコーダ３１、ループバック部３２、転極部３３、アライン３４、エラスティックバッファ３５、デコーダ３６、受信ステータス判定部３７を有する。なお、各ＰＣＳレイヤ３０ａ〜３０ｈは、同様の処理を実行するものとし、ＰＣＳレイヤ３０ａ以外のＰＣＳレイヤ３０ｂ〜３０ｈについては、以下の説明を省略する。【００３１】
スキップ挿入部２１は、上位層１１から、伝送装置１０ｂに対して送信する送信データ＃１〜＃８を受信する。また、スキップ挿入部２１は、受信したデータに伝送装置１０と伝送装置１０ｂとの誤差を吸収するためのスキップシンボルを挿入する。そして、スキップ挿入部２１は、スキップシンボルを挿入したデータをスクランブラ２３に送信する。【００３２】
ここで、スキップ挿入部２１がデータにスキップシンボルを挿入する処理について具体的に説明する。図３は、実施例１に係るスキップ挿入部を説明するための図である。図３に示す例では、スキップ挿入部２１は、複数のバッファ２１ａ〜２１ｈ、生成部２１ｉ、制御部２１ｋ、スキップ挿入セレクタ２１ｊを有する。【００３３】
各バッファ２１ａ〜２１ｈは、いわゆるＦＩＦＯ（First  In,  First  Out）であり、上位層２１から、それぞれ送信データ＃１〜＃８を受信する。そして、各バッファ２１ａ〜２１ｈは、受信した送信データ＃１〜＃８をスキップ挿入セレクタ２１ｊに送信する。生成部２１ｉは、伝送装置１０の動作クロックの周波数と伝送装置１０ｂの動作クロックの周波数とに基づいて、各送信データ＃１〜＃８に格納するスキップシンボルを生成する。【００３４】
具体的には、生成部２１ｉは、スリップ検出部２２から、伝送装置１０の動作クロックが速い旨の通知、または、伝送装置１０ｂの動作クロックが速い旨の通知、又は、動作クロックに違いが無い旨の通知を受信する。そして、生成部２１ｉは、スリップ検出部２２から各通知を受信した場合には、以下の処理を実行する。以下、図４〜図６を用いて説明する。【００３５】
図４は、動作クロックに違いが無い場合に挿入するスキップオーダードセットを説明するための図である。生成部２１ｉは、動作クロックに違いが無い旨の通知をスリップ検出部２２から受信した場合には、以下の処理を実行する。すなわち、生成部２１ｉは、図４に示すように、１つの「ＣＯＭ」シンボルと３つの「ＳＫＰ（Ｓｋｉｐ）」シンボルとを有するスキップオーダードセットを生成し、生成したスキップオーダードセットをスキップ挿入セレクタ２１ｊに送信する。【００３６】
図５は、送信側の動作クロックが速い場合に挿入するスキップオーダードセットを説明するための図である。生成部２１ｉは、スリップ検出部２２から、伝送装置１０の動作クロックが速い旨の通知を受信した場合には、図５に示すように、１つの「ＣＯＭ」シンボルと４つの「ＳＫＰ」シンボルとを有するスキップオーダードセットを生成する。つまり、生成部２１ｉは、伝送装置１０の動作クロックが伝送装置１０ｂの動作クロックよりも速い場合には、図４に示すスキップオーダードセットよりも長いスキップオーダードセットを生成する。そして、生成部２１ｉは、生成したスキップオーダードセットをスキップ挿入セレクタ２１ｊへ送信する。【００３７】
図６は、受信側の動作クロックが速い場合に挿入するスキップオーダードセットを説明するための図である。生成部２１ｉは、スリップ検出部２２から、伝送装置１０ｂの動作クロックが速い旨の通知を受信した場合には、図６に示すように、１つの「ＣＯＭ」シンボルと２つの「ＳＫＰ」シンボルとを有するスキップオーダードセットを生成する。つまり、生成部２１ｉは、伝送装置１０ｂの動作クロックが伝送装置１０の動作クロックよりも速い場合には、図４に示すスキップオーダードセットよりも短いスキップオーダードセットを生成する。そして、生成部２１ｉは、生成したスキップオーダードセットをスキップ挿入セレクタ２１ｊへ送信する。【００３８】
図３に戻って、スキップ挿入セレクタ２１ｊは、各バッファ２１ａ〜２１ｈから送信データ＃１〜＃８を受信する。そして、スキップ挿入セレクタ２１ｊは、受信した送信データ＃１〜＃８をそれぞれ異なる経路を介してスクランブラ２３に送信する。また、スキップ挿入セレクタ２１ｊは、制御部２１ｋから経路を切替える旨の通知を受付けた場合には、生成部２１ｉが生成したスキップオーダードセットを受信し、受信したスキップオーダードセットを各経路を介してスクランブラ２３に送信する。【００３９】
その後、スキップ挿入セレクタ２１ｊは、制御部２１ｋから再度経路を切替える旨の通知を受付けた場合には、再度バッファ２１ａ〜２１ｈから受信した送信データをスクランブラ２３に送信する。つまり、スキップ挿入セレクタ２１ｊは、各バッファ２１ａ〜２１ｈとの経路と、生成部２１ｉとの経路を切替えることによって、各送信データ＃１〜＃８と、生成部２１ｉが生成したスキップオーダードセットを挿入する。【００４０】
制御部２１ｋは、スキップ挿入セレクタ２１ｊの制御を行う。具体的には、制御部２１ｋは、一定期間ごとに、スキップオーダードセットを挿入するタイミングを示すＳＫＰ  Ｉｎｓ指示を生成し、生成したＳＫＰ  Ｉｎｓ指示をスリップ検出部２２に送信する。また、制御部２１ｋは、スリップ検出部２２から伝送装置１０の動作クロックが速い旨の通知、または、伝送装置１０ｂの動作クロックが速い旨の通知、又は、動作クロックに違いが無い旨の通知を受信する。【００４１】
そして、制御部２１ｋは、動作クロックに違いが無い旨の通知を受信した場合には、ＳＫＰ  Ｉｎｓ指示を生成したタイミングで、以下の処理を実行する。すなわち、制御部２１ｋは、経路を切替える旨の通知をスキップ挿入セレクタ２１ｊに送信し、生成部２１ｉが４つのシンボル長を有するスキップオーダードセットを送信する時間が経過した後に、再度経路を切替える旨の通知をスキップ挿入セレクタ２１ｊに送信する。【００４２】
また、制御部２１ｋは、伝送装置１０の動作クロックが速い旨の通知を受信した場合には、ＳＫＰ  Ｉｎｓ指示を生成したタイミングで、以下の処理を実行する。すなわち、制御部２１ｋは、経路を切替える旨の通知をスキップ挿入セレクタ２１ｊに送信し、生成部２１ｉが５つのシンボル長を有するスキップオーダードセットを送信する時間が経過した後に、再度経路を切替える旨の通知をスキップ挿入セレクタ２１ｊに送信する。【００４３】
また、制御部２１ｋは、伝送装置１０ｂの動作クロックが速い旨の通知を受信した場合には、ＳＫＰ  Ｉｎｓ指示を生成したタイミングで、以下の処理を実行する。すなわち、制御部２１ｋは、経路を切替える旨の通知をスキップ挿入セレクタ２１ｊに送信し、生成部２１ｉが３つのシンボル長を有するスキップオーダードセットを送信する時間が経過した後に、再度経路を切替える旨の通知をスキップ挿入セレクタ２１ｊに送信する。【００４４】
図２に戻って、スリップ検出部２２は、伝送装置１０の動作クロックと伝送装置１０ｂの動作クロックとを比較し、どちらの動作クロックが速いかを判別する。つまり、スリップ検出部２２は、送信側の伝送装置１０と受信側の伝送装置１０ｂとの動作クロックに生じた誤差であるスリップの検出を行う。具体的には、スリップ検出部２２は、後述するＳｅｒＤｅｓ４０から伝送装置１０ｂの動作クロックであるリカバリクロックを取得する。そして、スリップ検出部２２は、リカバリクロックと伝送装置１０の動作クロックとを比較する。【００４５】
以下、スリップ検出部２２がリカバリクロックと伝送装置１０の動作クロックとを比較する処理の一例について説明する。図７は、実施例１に係るスリップ検出部が実行する処理の流れを説明するための図である。図７に示す例では、スリップ検出部２２は、グレーコードカウンタ２２ａ、２２ｂ、Ｄ型フリップフロップ２２ｃ、シフトレジスタ２２ｄ、比較部２２ｅを有する。【００４６】
グレーコードカウンタ２２ａは、ＳｅｒＤｅｓ４０からリカバリクロックを受信する。そして、グレーコードカウンタ２２ａは、受信したリカバリクロックのアップエッジを周期的にカウントする。例えば、グレーコードカウンタ２２ａは、リカバリクロックのアップエッジが入力されるたびに「００（０）」、「０１（１）」、「１１（２）」、「１０（３）」、「００（０）」というように「０」〜「３」までの値を周期的にカウントする。そして、グレーコードカウンタ２２ａは、カウントした値をフリップフロップ２２ｃのＤ端子に入力する。【００４７】
グレーコードカウンタ２２ｂは、伝送装置１０の動作クロックであるシステムクロックを受信する。そして、グレーコードカウンタ２２ｂは、受信したシステムクロックのアップエッジを周期的に計数する。例えば、グレーコードカウンタ２２ｂは、システムクロックのアップエッジが入力されるたびに「００（０）」、「０１（１）」、「１１（２）」、「１０（３）」、「００（０）」というように「０」〜「３」までの値を周期的にカウントする。そして、グレーコードカウンタ２２ｂは、カウントした値が「０」の時に、チェックタイミングを示す信号をフリップフロップ２２ｃのＣ端子に入力する。【００４８】
フリップフロップ２２ｃは、システムクロックのアップエッジに合わせて以下のように動作する。すなわち、フリップフロップ２２ｃは、Ｃ端子に入力された値が「０」から「１」に遷移するタイミングで、Ｄ端子に入力された値を保持し、保持した値をシフトレジスタ２２ｄに出力する。【００４９】
ここで、図８を用いて、フリップフロップ２２ｃが出力する値について説明する。図８は、実施例１に係るスリップ検出部が計数する値を説明するための図である。図８に示す例では、伝送装置１０のシステムクロックの波形、グレーコードカウンタ２２ｂが計数した値（システムクロックカウンタ：ＳＣＮＴ）、グレーコードカウンタ２２ｂが出力するチェックタイミングを示す信号を示す。また、図８には、リカバリクロックの波形、グレーコードカウンタ２２ａが計数した値（リカバリクロックカウンタ：ＲＣＮＴ）、フリップフロップ２２ｃが出力するＲＣＮＴの値を示す。【００５０】
図８に示すように、グレーコードカウンタ２２ｂは、ＳＣＮＴが「０」の時に「Ｈｉｇｈ」となる信号をフリップフロップ２２ｃに入力する。また、グレーコードカウンタ２２ａは、リカバリクロックに合わせて、ＲＣＮＴを計数し、フリップフロップ２２ｃに入力する。【００５１】
そして、フリップフロップ２２ｃは、チェックタイミングが「Ｈｉｇｈ」から「Ｌｏｗ」へと遷移するダウンエッジのタイミングで、グレーコードカウンタ２２ａの出力、すなわちＲＣＮＴを保持する。なお、図８に示す例では、フリップフロップ２２ｃが保持するＲＣＮＴ値は、「１」、「１」、「１」、「１」、「２」、「２」、「２」、「２」と遷移する。すなわち、図８に示す例は、伝送装置１０ｂの動作クロックが伝送装置１０の動作クロックよりも速いため、定期的に測定するＲＣＮＴの値が時間と共に増加方向にずれている例である。【００５２】
図７に戻って、シフトレジスタ２２ｄは、フリップフロップ２２ｃの出力を２回分保持するレジスタである。具体的には、シフトレジスタ２２ｄは、制御部２１ｋからＳＫＰ  Ｉｎｓ指示を受信した場合には、以下の処理を実行する。すなわち、シフトレジスタ２２ｄは、システムクロックのアップエッジに合わせて、フリップフロップ２２ｃの出力を記憶する。また、シフトレジスタ２２ｄは、前々回に記憶したフリップフロップ２２ｃの出力を消去する。そして、シフトレジスタ２２ｄは、記憶したフリップフロップ２２ｃの出力、すなわち、フリップフロップ２２ｃが今回出力した値とフリップフロップ２２ｃが前回出力した値とを比較部２２ｅに出力する。【００５３】
比較部２２ｅは、シフトレジスタ２２ｄから、フリップフロップ２２ｃが前回出力した値と今回出力した値とを受信する。そして、比較部２２ｅは、フリップフロップ２２ｃが今回出力した値と前回出力した値とを比較し、今回出力した値が前回出力した値よりも大きいか否かを判別する。そして、比較部２２ｅは、フリップフロップ２２ｃが今回出力した値が大きいと判別した場合には、伝送装置１０ｂの動作クロックが速い旨の通知をスキップ挿入部２１へ送信する。【００５４】
また、比較部２２ｅは、フリップフロップ２２ｃが前回出力した値が大きいと判別した場合には、伝送装置１０の動作クロックが速い旨の通知をスキップ挿入部２１へ送信する。また、比較部２２ｅは、フリップフロップ２２ｃが今回出力した値と前回出力した値とが同じ場合には、動作クロックに違いがない旨の通知をスキップ挿入部２１へ送信する。【００５５】
ここで、図９を用いて、シフトレジスタ２２ｄが記憶する値および比較部２２ｅが実行する判別処理の一例を説明する。図９は、実施例１に係るスリップ検出部が実行する判別処理の一例を説明するための図である。図９に示す例では、ＳＫＰ  Ｉｎｓ指示のタイミングと、シフトレジスタ２２ｄの出力、すなわち、前回のＲＣＮＴの値と今回のＲＣＮＴの値と、比較部２２ｅによる判別結果とを示す。【００５６】
図９に示す例では、ＳＫＰ  Ｉｎｓ指示に合わせて、シフトレジスタ２２ｄが今回のＲＣＮＴ値と前回のＲＣＮＴ値とを出力する。なお、図９に示す例では、シフトレジスタ２２ｄが出力する値を「今回のＲＣＮＴ値、前回のＲＣＮＴ値」というように記載すると、以下のようになる。すなわち、シフトレジスタ２２ｄが出力する値は、「１、ｎｕｌｌ」、「２、１」、「２、２」、「３、２」、「３、３」、「０、３」、「１、０」、「１、１」、「２、１」と遷移する。なお、「ｎｕｌｌ」は、空欄を表す。【００５７】
このため、比較部２２ｅは、前回のＲＣＮＴ値に対する今回のＲＣＮＴ値の増減を「ｎｕｌｌ」、「＋１」、「±０」、「＋１」、「±０」、「＋１」、「＋１」、「±０」、「＋１」と判別する。そして、比較部２２ｅは、前回のＲＣＮＴ値に対する今回のＲＣＮＴ値の増減が正の値である際、つまり図９に示す例では「＋１」である際に、伝送装置１０ｂの動作クロックが速い旨の通知を出力する。【００５８】
また、比較部２２ｅは、前回のＲＣＮＴ値と今回のＲＣＮＴ値が同じ、つまり図９に示す例では「±０」である際に、動作クロックが変わらない旨の通知を出力する。また、図９には記載されていないが、前回のＲＣＮＴ値に対して今回のＲＣＮＴ値の増減が負の値（例えば「−１」）である際には、伝送装置１０の動作クロックが速い旨の通知を出力する。【００５９】
ＰＣＩｅの規格では、動作クロックの誤差が「±３００ｐｐｍ」以内に収まるよう定められている。このため、送信側のクロック誤差が「−３００ｐｐｍ」であり、受信側のクロック誤差が「３００ｐｐｍ」であった場合には、双方で「６００ｐｐｍ」の誤差が存在することとなる。「６００ｐｐｍ」の誤差が存在する場合には、動作クロックが約１６６６周期するたびに１回のスリップが発生することとなる。スリップの発生によって、送信側の伝送装置の動作クロックが速い場合には、受信側の伝送装置においてデータの欠落が発生し、受信側の伝送装置の動作クロックが速い場合には、受信側の伝送装置においてデータの重複が発生する。【００６０】
このようなスリップが発生した際のデータ欠落および重複を回避するため、伝送装置１０は、スキップオーダードセットによる誤差吸収処理を行う。ここで、伝送装置１０は、スキップオーダードセットによる誤差吸収処理を行う場合には、送信側と受信側のどちらの動作クロックが速いかというスリップの方向とスリップの発生度合いを識別する必要がある。このため、伝送装置１０は、スリップ検出部２２を用いて、スリップの方向とスリップの発生度合いを検出する。【００６１】
図２に戻って、スクランブラ２３は、スクランブル処理を実行する。具体的には、スクランブラ２３は、スキップ挿入部２１によってスキップオーダードセットが挿入された各送信データ＃１〜＃８に対して、スクランブル処理を実行する。そして、スクランブラ２３は、スクランブル処理を施した各送信データ＃１〜＃８をエンコーダ３１に送信する。具体的には、スクランブラ２３は、各送信データ＃１〜＃８を、それぞれ異なるＰＣＳレイヤ３０ａ〜３０ｈのエンコーダに送信する。【００６２】
デスキュー部２４は、ＰＣＳ部３０から受信したデータのデスキュー処理を行う。具体的には、デスキュー部２４は、ＰＣＳ部３０から複数の受信データ＃１〜＃８を受信する。そしてデスキュー部２４は、伝送遅延誤差による伝送経路間のスキューや、後述するエラスティックバッファ３５での処理タイミングの差による遅延誤差を吸収するデスキュー処理を実行する。【００６３】
具体的には、デスキュー部２４は、受信した受信データ＃１〜＃８に挿入されたスキップオーダードセットを検出する。そして、デスキュー部２４は、各受信データ＃１〜＃８に挿入されたスキップオーダードセットのうち、「ＣＯＭ」シンボルの位置をそろえる。例えば、デスキュー部２４は、各受信データ＃１〜＃８の「ＣＯＭ」シンボルを検出する。【００６４】
そして、デスキュー部２４は、受信データ＃８の「ＣＯＭ」シンボルの位置が他の受信データ＃１〜＃７の「ＣＯＭ」シンボルの位置よりも１シンボル分遅い場合には、各受信データ＃１〜＃７の出力を１シンボル分遅延させる。そして、デスキュー部２４は、デスキュー処理を行った各受信データ＃１〜＃８をデスクランブラ２５へ送信する。【００６５】
デスクランブラ２５は、デスキュー部２４から受信データ＃１〜＃８を受信した場合には、受信した各受信データ＃１〜＃８のデスクランブル処理を行う。そして、デスクランブラ２５は、デスクランブル済みの受信データ＃１〜＃８を上位層１１へ送信する。【００６６】
制御部２６は、ＰＣＳ部３０が有する受信ステータス判定部３７から受信データ＃１に関する受信ステータスを取得する。そして、制御部２６は、取得した受信ステータスに基づいて、正しく受信データ＃１が受信できているかを判別し、受信できていないと判別した場合には、転極部３３に、極性反転指示を送信する。なお、制御部２６は、ＰＣＳ部３０が有する各ＰＣＳレイヤ３０ａ〜３０ｈが有する各受信ステータス判定部から、各受信データ＃１〜＃８の受信ステータスを受信しており、各ＰＣＳレイヤ３０ａ〜３０ｈが有する転極部ごとに独立して極性反転指示を送信する。【００６７】
続いて、ＰＣＳ部３０が有する各部およびＳｅｒＤｅｓ４０が実行する処理について説明する。エンコーダ３１は、スクランブラ２３から受信したデータを８ｂｉｔのデータから１０ｂｉｔのデータにエンコードする。これは、ＳｅｒＤｅｓ４０がクロック・データ・リカバリ（Clock  Data  Recovery、CDR）等の技術を用いて、伝送装置１０ｂの動作クロックを取得するために行われる。その後、エンコーダ３１は、１０ｂｉｔにエンコードしたデータをループバック部３２へ送信する。【００６８】
ループバック部３２は、伝送装置１０ｂに対して送信するデータを選択する選択部である。すなわち、ループバック部３２には、送信データ＃１の他に、伝送装置１０ｂから受信したデータが入力される。そして、ループバック部３２は、ループバックを行わない場合には、エンコーダ３１によって１０ｂｉｔのデータにエンコードされた送信データ＃１をＳｅｒＤｅｓ４０に送信する。【００６９】
また、ループバック部３２は、ループバックを行う指示を受けた場合には、後述するエラスティックバッファ３５から読み出されたデータ、つまり、伝送装置１０ｂからシリアルリンクを介して受信したデータをＳｅｒＤｅｓ４０へ送信する。なお、ループバック部３２がループバック処理を実行するか否かは、任意の方法で設定することができる。また、以下の説明においては、伝送装置１０ｂからシリアルリンクを介して受信したデータを受信データ＃１〜＃８とする。【００７０】
なお、上述した説明においては、ＰＣＳレイヤ３０ａが有するエンコーダ３１およびループバック部３２が実行する処理について説明したが、他のＰＣＳレイヤ３０ｂ〜３０ｈが有するエンコーダおよびループバック部も、同様の処理を実行するものとする。【００７１】
ＳｅｒＤｅｓ４０は、ＰＣＳ部３０が有する各ＰＣＳレイヤ３０ａ〜３０ｈから送信データ＃１〜＃８、または、伝送装置１０ｂへループバックする受信データ＃１〜＃８を受信する。そして、ＳｅｒＤｅｓ４０は、受信した送信データ＃１〜＃８または、受信データ＃１〜＃８を、それぞれシリアルデータに変換し、変換後のシリアルデータをそれぞれ異なる経路を介して、伝送装置１０ｂへ送信する。【００７２】
また、ＳｅｒＤｅｓ４０は、伝送装置１０ｂから受信データ＃１〜＃８を受信する。そして、ＳｅｒＤｅｓ４０は、受信データ＃１〜＃８を、各ＰＣＳレイヤ３０ａ〜３０ｈの転極部に送信する。また、ＳｅｒＤｅｓ４０は、伝送装置１０ｂから受信データ＃１〜＃８を受信する際に、クロック・データ・リカバリ（Clock  Data  Recovery、CDR）等の技術を用いて伝送装置１０ｂの動作クロックを取得する。【００７３】
そして、ＳｅｒＤｅｓ４０は、取得した動作クロックをリカバリクロックとして、各ＰＣＳレイヤ３０ａ〜３０ｈが有する転極部、アライン、エラスティックバッファ、およびＭＡＣ部２０が有するスリップ検出部２２へ送信する。例えば、ＳｅｒＤｅｓ４０は、リカバリクロックを、ＰＣＳレイヤ３０ａが有する転極部３３、アライン３４、エラスティックバッファ３５、スリップ検出部２２へ送信する。【００７４】
転極部３３は、リカバリクロックに合わせて動作する極性反転装置であり、制御部２６から極性反転指示を受信した場合には、ＳｅｒＤｅｓ４０から受信した受信データ＃１の極性を反転させる。そして、転極部３３は、受信データ＃１をアライン３４に送信する。【００７５】
アライン３４は、リカバリクロックに合わせて、シンボル同期を確立させる処理を行う。すなわち、アライン３４は、転極部３３から受信した受信データ＃１をエラスティックバッファ３５に格納するため、エラスティックバッファ３５に格納するデータのデータ幅に受信データ＃１のデータ幅をそろえる。そして、アライン３４は、データ幅をそろえた受信データ＃１をエラスティックバッファ３５に送信する。【００７６】
エラスティックバッファ３５は、伝送装置１０ｂと伝送装置１０とのクロック乗せ換え用のバッファである。すなわち、エラスティックバッファ３５は、伝送装置１０と伝送装置１０ｂとの動作クロックの誤差を吸収するために用いられるバッファである。具体的には、伝送装置１０は、伝送装置１０ｂの動作クロックに合わせて受信データ＃１〜＃８を受信するので、一度受信データ＃１〜＃８をエラスティックバッファ３５に格納する。そして、伝送装置１０は、エラスティックバッファ３５に格納した受信データ＃１〜＃８を自身の動作クロックで読み出すことで、クロックの乗せ換えを行う。【００７７】
また、エラスティックバッファ３５は、受信データ＃１を記憶する際、および、記憶した受信データ＃１を読み出す際に、各受信データ＃１に挿入されたスキップオーダードセットを検出する。そして、エラスティックバッファ３５は、シンボル長が４つ以上のスキップオーダードセットを検出した場合には、検出したスキップオーダードセットのシンボル長を４つに修正し、スキップオーダードセットを修正した受信データ＃１を記憶する。【００７８】
また、エラスティックバッファ３５は、記憶した受信データ＃１を読み出す際に、シンボル長が４つ以下のスキップオーダードセットを検出する。そして、エラスティックバッファ３５は、検出したスキップオーダードセットのシンボル長を４つに修正し、スキップオーダードセットを修正した受信データ＃１をデコーダ３６へ送信する。【００７９】
具体的には、エラスティックバッファ３５は、受信データ＃１を記憶する際に、１つの「ＣＯＭ」シンボルと４つの「ＳＫＩＰ」シンボルとを有するスキップオーダードセットを検出した場合には、「ＳＫＩＰ」シンボルを１つ削除する。そして、エラスティックバッファ３５は、１つの「ＣＯＭ」シンボルと３つの「ＳＫＩＰ」シンボルとを有するスキップオーダードセットが挿入された受信データ＃１を記憶する。【００８０】
また、エラスティックバッファ３５は、受信データ＃１の読出しの際に、１つの「ＣＯＭ」シンボルと２つの「ＳＫＩＰ」シンボルとを有するスキップオーダードセットを検出した場合には、「ＳＫＩＰ」シンボルを２度読みすることで複製する。そして、エラスティックバッファ３５は、１つの「ＣＯＭ」シンボルと３つの「ＳＫＩＰ」シンボルとを有するスキップオーダードセットが挿入された受信データ＃１をデコーダ３６に送信する。【００８１】
このように、エラスティックバッファ３５は、受信データ＃１を記憶する際にシンボル長が４以上のスキップオーダードセットを検出した場合には、検出したスキップオーダードセットをシンボル長４のスキップオーダードセットに修正し、その後、受信データ＃１を記憶する。また、エラスティックバッファ３５は、受信データ＃１の読出しを行う際に、シンボル長が４以下のスキップオーダードセットを検出した場合には、検出したスキップオーダードセットの「ＳＫＩＰ」シンボルを２度読みすることにより、シンボル長４のスキップオーダードセットに修正する。また、エラスティックバッファ３５は、エラーの有無や、受信データ＃１の書き込みおよび読み出し処理の内容を、受信ステータス判定部３７に送信する。【００８２】
デコーダ３６は、エラスティックバッファ３５から読み出された受信データ＃１を１０ｂｉｔデータから８ｂｉｔデータへのデコードを行う。そして、デコーダ３６はデコード済みの受信データ＃１をＭＡＣ部２０のデスキュー部２４へ送信する。また、デコーダ３６は、デコード処理におけるエラーの有無を受信ステータス判定部３７に送信する。【００８３】
受信ステータス判定部３７は、エラスティックバッファ３５およびデコーダ３６から受信したエラーの有無や受信データ＃１の書き込みおよび読み出し処理の内容に応じて、受信データ＃１を正常に受信できたか否かを判定する。そして、受信ステータス判定部３７は、判定結果を受信ステータスとして、ＭＡＣ部２０の制御部２６へ送信する。【００８４】
次に、図１０を用いて、エラスティックバッファ３５が実行する処理の一例について説明する。図１０は、実施例１に係るエラスティックバッファの一例を説明するための図である。なお、図１０に示す例では、ＰＣＳレイヤ３０ａが有するエラスティックバッファ３５、デコーダ３６、およびＭＡＣ部２０が有するデスキュー部２４の一例について説明する。【００８５】
図１０に示す例では、エラスティックバッファ３５は、クロック乗せ換え用データレジスタ３５ａ、書き込み制御部３５ｂ、読み出し制御部３５ｃを有する。クロック乗せ換え用データレジスタ３５ａは、アライン３４から受信した受信データ＃１を記憶するレジスタである。書き込み制御部３５ｂは、ＳｅｒＤｅｓ４０から受信したリカバリクロックに合わせて、クロック乗せ換え用データレジスタ３５ａへの受信データ＃１の書き込みを制御する制御部である。【００８６】
ここで、書き込み制御部３５ｂは、アライン３４からクロック乗せ換え用データレジスタ３５ａに送信される受信データ＃１を監視し、シンボル長が４つ以上のスキップオーダードセットを検出する。そして、書き込み制御部３５ｂは、シンボル長が４つ以上のスキップオーダードセットを検出した場合には、最後のシンボル、つまり「ＳＫＩＰ」シンボルをクロック乗せ換え用データレジスタ３５ａに格納せずに破棄する。【００８７】
また、読み出し制御部３５ｃは、伝送装置１０のシステムクロックに合わせて、クロック乗せ換え用データレジスタ３５ａから受信データ＃１の読み出しを制御する制御部である。具体的には、読み出し制御部３５ｃは、クロック乗せ換え用データレジスタ３５ａから読み出される受信データ＃１から、シンボル長が３つ以下のスキップオーダードセットを検出する。【００８８】
そして、読み出し制御部３５ｃは、シンボル長が３つ以下のスキップオーダードセットを検出した場合には、検出したスキップオーダードセットの最後の「ＳＫＩＰ」シンボルを２度読みさせることによって、スキップオーダードセットのシンボル長を４つに修正する。次に、デコーダ３６は、読み出し制御部３５ｃによって読み出された受信データ＃１を８ｂｉｔにデコードし、デコード済みのデータをデスキュー部２４に送信する。【００８９】
デスキュー部２４は、遅延吸収用データレジスタ２４ａとデスキュー制御部２４ｂとを有する。まず、遅延吸収用データレジスタ２４ａは、ＰＳＣ部３０から受信データ＃１〜＃８を受信し、一時的に記憶する。次に、デスキュー制御部２４ｂは、遅延吸収用データレジスタ２４ａに記憶された各受信データ＃１〜＃８から「ＣＯＭ」シンボルを検出する。そして、デスキュー制御部２４ｂは、検出した「ＣＯＭ」シンボルの位置をそろえて各受信データ＃１〜＃８を出力する。【００９０】
例えば、デスキュー制御部２４ｂは、各受信データ＃１〜＃８の「ＣＯＭ」シンボルの位置を検出し、受信データ＃２のスキップオーダードセットの「ＣＯＭ」シンボルが最も遅い位置に存在すると判別する。このような場合には、デスキュー制御部２４ｂは、他の受信データ＃１、＃３〜＃８の出力タイミングを遅延させる。そして、デスキュー制御部２４ｂは、受信データ＃２のスキップオーダードセットの「ＣＯＭ」シンボルが出力されると同時に、他の受信データ＃１、＃３〜＃８の「ＣＯＭ」シンボルを出力させるように、遅延吸収用データレジスタ２４ａを制御する。【００９１】
例えば、スキップ挿入部２１、スリップ検出部２２、スクランブラ２３、デスキュー部２４、デスクランブラ２５、制御部２６、エンコーダ３１、ループバック部３２、転極部３３、アライン３４、デコーダ３６、受信ステータス判定部３７とは、電子回路である。ここで、電子回路の例として、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ  （Field  Programmable  Gate  Array）などの集積回路、またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などを適用する。【００９２】
また、エラスティックバッファ３５とは、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ  （flash  memory）などの半導体メモリ素子と電子回路等との組み合わせによって実現される。【００９３】
次に、図１１ａ〜図１１ｃを用いて、伝送装置１０が挿入したスキップオーダードセットが伝送装置１０ｂによってどのように処理されるかを説明する。なお、以下の説明においては、伝送装置１０ｂは、伝送装置１０と同様の処理を実行するものとする。【００９４】
まず、図１１ａを用いて、動作クロックに差が無い場合に送信されるシンボル長が４つのスキップオーダードセットがどのように処理されるかを説明する。図１１ａは、動作クロックに差がない場合に送信されたスキップオーダードセットの処理の流れを説明するための図である。なお、図１１ａには、挿入されるスキップオーダードセット、伝送装置１０ｂが受信した際のスキップオーダードセット、伝送装置１０ｂがエラスティックバッファに格納する際のスキップオーダードセット、伝送装置１０ｂがエラスティックバッファから読み出す際のスキップオーダードセットを示す。【００９５】
図１１ａに示す例では、伝送装置１０は、１つの「ＣＯＭ」シンボルと３つの「ＳＫＩＰ」シンボルとを有するスキップオーダードセットを送信データ＃１〜＃８に挿入する。このような場合には、伝送装置１０ｂは、各送信データ＃１〜＃８に挿入されたスキップオーダードセットの修正を行わず、エラスティックバッファへの書き込み、および、読み出しを行う。【００９６】
次に、図１１ｂを用いて、伝送装置１０の動作クロックが伝送装置１０ｂの動作クロックよりも速い場合に挿入されるシンボル長が５つのスキップオーダードセットがどのように処理されるかを説明する。図１１ｂは、送信側の動作クロックが受信側の動作クロックよりも速い場合に挿入されるスキップオーダードセットの処理の流れを説明するための図である。図１１ｂに示す例では、伝送装置１０は、１つの「ＣＯＭ」シンボルと４つの「ＳＫＩＰ」シンボルとを有するスキップオーダードセットを各送信データ＃１〜＃８に挿入する。【００９７】
このような場合には、伝送装置１０ｂは、各送信データ＃１〜＃８をエラスティックバッファに格納する際に、最後の「ＳＫＩＰ」シンボルを破棄することで、挿入されたスキップオーダードセットのシンボル長を４つに修正する。【００９８】
次に、図１１ｃを用いて、伝送装置１０ｂの動作クロックが伝送装置１０の動作クロックよりも速い場合に挿入されるシンボル長が３つのスキップオーダードセットがどのように処理されるかを説明する。図１１ｃは、受信側の動作クロックが送信側の動作クロックよりも速い場合に挿入されるスキップオーダードセットの処理の流れを説明するための図である。図１１ｃに示す例では、伝送装置１０は、１つの「ＣＯＭ」シンボルと２つの「ＳＫＩＰ」シンボルとを有するスキップオーダードセットを各送信データ＃１〜＃８に挿入する。【００９９】
このような場合には、伝送装置１０ｂは、各送信データ＃１〜＃８をエラスティックバッファから読み出す際に、最後の「ＳＫＩＰ」シンボルを２度読みすることで複製し、挿入されたスキップオーダードセットのシンボル長を４つに修正する。【０１００】
このように、伝送装置１０は、伝送装置１０の動作クロックと伝送装置１０ｂの動作クロックとが等しい場合には、通常のスキップオーダードセットとして、４シンボル長のスキップオーダードセットを送信データ＃１〜＃８に挿入する。また、伝送装置１０は、伝送装置１０の動作クロックが伝送装置１０ｂの動作クロックよりも速い場合には、通常のスキップオーダードセットよりも長い５シンボル長のスキップオーダードセットを送信データ＃１〜＃８に挿入する。【０１０１】
また、伝送装置１０は、伝送装置１０ｂの動作クロックが伝送装置１０の動作クロックよりも速い場合には、通常のスキップオーダードセットよりも短い３シンボル長のスキップオーダードセットを送信データ＃１〜＃８に挿入する。このため伝送装置１０は、伝送装置１０と伝送装置１０ｂとの間のクロック誤差を吸収することができる。【０１０２】
また、伝送装置１０ｂは、スキップオーダードセットのシンボル長を、各送信データ＃１〜＃８ごとに検出および比較して修正するのではなく、スキップオーダードセットのシンボル長を、通常のスキップオーダードセットと同じシンボル長に修正する。このため、伝送装置１０は、容易にスキップオーダードセットのシンボル長を修正することができる結果、デスキュー処理を行う際の論理を容易にすることができる。【０１０３】
また、伝送装置１０は、伝送装置１０ｂがデスキュー処理を行う際にスキップオーダードセットのシンボル長を修正する処理を不要とする結果、シンボル長を修正するためのデータレジスタを不要とする。この結果、伝送装置１０は、デスキュー処理を行うための回路規模を減少させることができる。【０１０４】
次に、図１２を用いて、伝送装置１０がスキップオーダードセットを挿入する処理の流れについて説明する。図１２は、実施例１に係る伝送装置がスキップオーダードセットを挿入する処理を説明するための図である。なお、図１２に示す例では、上位層１１からＭＡＣ部２０に送信される各送信データ＃１〜＃８の内容であるデータＡ＿１〜Ｇ＿８、スリップ検出部２２が検出したスリップ、挿入するスキップオーダードセット、ＳＫＰ  Ｉｎｓ指示のタイミングを示す。また、図１２に示す例では、スキップオーダードセットが挿入された各送信データ＃１〜＃８を示す。【０１０５】
図１２に示す例では、上位層１１から送信データ＃１〜＃８が入力される。また、図１２中（Ａ）に示すように、スキップ挿入部２１は、約１５００シンボルごとに、ＳＫＰ  Ｉｎｓ指示を生成する。このため、伝送装置１０は、図１２中（Ｂ）に示すように、通常の４シンボル長を有するスキップシンボルをデータＡ＿１〜Ａ＿８とデータＢ＿１〜Ｂ＿８との間に同時に挿入する。【０１０６】
ここで、図１２中（Ｃ）に示すように、正のスリップが検出された場合、すなわち、伝送装置１０の動作クロックが伝送装置１０ｂの動作クロックよりも速いと判別された場合には、伝送装置１０は、以下の処理を実行する。すなわち、伝送装置１０は、図１２中（Ｄ）に示すように、通常よりも長い５シンボル長のスキップオーダードセットを生成する。そして、伝送装置１０は、図１２中（Ｅ）に示すように、ＳＫＰ  Ｉｎｓ指示が生成された後に、データの区切りであるデータＢ＿１〜＿８とデータＣ＿１〜Ｃ＿８との間に生成したスキップオーダードセットを挿入する。また、図１２中（Ｆ）に示すように、５シンボル長のスキップオーダードセットを挿入した場合には、通常の４シンボル長のスキップオーダードセットを生成する。【０１０７】
次に、伝送装置１０は、図１２中（Ｇ）に示すように、ＳＫＰ  Ｉｎｓ指示が生成された際に、通常の４シンボル長のスキップオーダードセットが生成されているため、データＤ＿１〜Ｄ＿８とデータＥ＿１〜Ｅ＿８との間に通常の４シンボル長のスキップオーダードセットを挿入する。次に、伝送装置１０は、図１２中（Ｈ）に示すように、負のスリップが検出された場合、すなわち、伝送装置１０ｂの動作クロックが伝送装置１０の動作クロックよりも速いと判別された場合には、伝送装置１０は、以下の処理を実行する。【０１０８】
すなわち、伝送装置１０は、図１２中（Ｉ）に示すように、通常よりも短い３シンボル長のスキップオーダードセットを生成する。そして、伝送装置１０は、図１２中（Ｊ）に示すように、ＳＫＰ  Ｉｎｓ指示が生成された後に、図１２中（Ｋ）に示すように、データの区切りであるデータＦ＿１〜Ｆ＿８とデータＧ＿１〜Ｇ＿８との間に同時に挿入する。その後、図１２中（Ｌ）に示すように、伝送装置１０は、通常よりも短い３シンボル長のスキップオーダードセットを挿入したので、通常の４シンボル長を有するスキップオーダードセットを生成する。【０１０９】
次に、図１３を用いて、伝送装置１０ｂに送信されたスキップオーダードセットがどのように処理されるかを説明する。図１３は、実施例１に係る受信側の伝送装置によるスキップオーダードセットの処理を説明するための図である。なお、図１３には、伝送装置１０ｂが受信した送信データ＃１〜＃８、伝送装置１０ｂがエラスティックバッファに格納する送信データ＃１〜＃８、エラスティックバッファから読み出す送信データ＃１〜＃８を示した。また、図１３には、伝送装置１０ｂによるデスキュー処理の内容を示した。また、図１３中では、「ＣＯＭ」シンボルを「Ｃ」で、通常の「ＳＫＩＰ」シンボルを「Ｓ」で、追加された「ＳＫＩＰ」シンボルを「Ｘ」で、２度読みされることで複製される「ＳＫＩＰ」シンボルを「Ｙ」で示す。【０１１０】
例えば、図１３中（Ｍ）に示すように、データＢ＿１〜Ｂ＿８とデータＣ＿１〜Ｃ＿８との間には、５シンボル長のスキップオーダードセットが挿入されている。また、図１３中（Ｎ）に示すように、データＦ＿１〜Ｆ＿８とデータＧ＿１〜Ｇ＿８との間には、３シンボル長のスキップオーダードセットが挿入されている。【０１１１】
このため、伝送装置１０ｂは、図１３中（Ｏ）に示すように、各送信データ＃１〜＃８をエラスティックバッファに格納する際に、スキップオーダードセットの最後のシンボル「Ｘ」を削除し、４シンボル長のスキップオーダードセットに修正する。また、伝送装置１０ｂは、図１３中（Ｐ）に示すように、各送信データ＃１〜＃８をエラスティックバッファから読み出す際に、スキップオーダードセットの最後のシンボル「Ｙ」を２度読みし、複製することによって、４シンボル長のスキップオーダードセットに修正する。【０１１２】
また、伝送装置１０ｂは、図１３中（Ｑ）に示すように、送信データ＃８を遅延させることで、各送信データ＃１〜＃８に挿入されたスキップオーダードセットの「ＣＯＭ」の位置をそろえるデスキュー処理を行う。つまり、伝送装置１０ｂは、各送信データ＃１〜＃８に挿入されたスキップオーダードセットの数を検出および比較することなく、デスキュー処理を行う事ができる。【０１１３】
［実施例１の効果］
上述したように、伝送装置１０は、複数の送信データ＃１〜＃８をそれぞれ異なる経路を介して、伝送装置１０ｂに送信する。この際、伝送装置１０は、伝送装置１０の動作クロックと伝送装置１０ｂとの動作クロックとを比較する。【０１１４】
そして、伝送装置１０は、自身の動作クロックが伝送装置１０ｂの動作クロックよりも速いと判別した場合には、通常よりも長い５シンボル長のスキップオーダードセットを各送信データ＃１〜＃８に挿入する。また、伝送装置１０は、伝送装置１０ｂの動作クロックが自身の動作クロックよりも速いと判別した場合には、通常よりも短い３シンボル長のスキップオーダードセットを各送信データ＃１〜＃８に挿入する。このため、伝送装置１０は、自身の動作クロックと、伝送装置１０ｂの動作クロックとの誤差を吸収させることができる。【０１１５】
また、伝送装置１０ｂは、各送信データ＃１〜＃８に挿入されたスキップオーダードセットのシンボル長を、通常のシンボル長である４シンボル長に修正するだけで、各送信データ＃１〜＃８に挿入されたスキップオーダードセットのシンボル長をそろえることができる。この結果、伝送装置１０は、伝送装置１０ｂにおけるデスキュー処理において、スキップオーダードセットのシンボル長の検出や比較を不要とするため、デスキュー処理の論理を容易にすることができる。また、伝送装置１０は、デスキュー処理の論理を容易にすることにより、回路規模の縮小や、回路の検証や設計を容易にすることができる。【０１１６】
また、伝送装置１０は、自身の動作クロックに合わせて周期的に動作するグレーコードカウンタ２２ｂと、伝送装置１０ｂの動作クロックに合わせて周期的に動作するグレーコードカウンタ２２ａとを有する。そして、伝送装置１０は、グレーコードカウンタ２２ｂの値が「０」となった際に、グレーコードカウンタ２２ａの値を取得し、取得した値が前回取得した値よりも大きいか否かを判別することで、自身の動作クロックと伝送装置１０ｂの動作クロックとを比較する。このため、伝送装置１０は、伝送装置１０の動作クロックと伝送装置１０ｂの動作クロックとの誤差が小さい場合にも、蓄積した誤差に基づいて、各送信データ＃１〜＃８に挿入するスキップオーダードセットを適切に変更することができる。【０１１７】
また、伝送装置１０は、受信したデータからスキップオーダードセットを検出し、検出したスキップオーダードセットの長さが所定の長さよりも短い場合には、スキップオーダードセットの一部を複製する。また、伝送装置１０は、検出したスキップオーダードセットの長さが所定の長さよりも長い場合には、スキップオーダードセットの一部を削除する。このため、伝送装置は、自身の動作クロックと伝送装置１０ｂの動作クロックとの誤差を容易に吸収することができる。
【実施例２】
【０１１８】
上述した実施例１では、自身の動作クロックと伝送装置１０ｂの動作クロックとの誤差に基づいて、シンボル長の異なるスキップオーダードセットを各送信データ＃１〜＃８に挿入する伝送装置１０を説明した。しかし、実施例は、これに限定されるものではない。例えば、伝送装置１０は、異なる形式のスキップオーダードセットを挿入することとしてもよい。以下、送信データ＃１〜＃８の送信元の伝送装置を伝送装置１０ｈ、送信先の伝送装置を伝送装置１０ｉとして説明する。【０１１９】
例えば、実施例２に係る伝送装置１０ｈは、自身の動作クロックと伝送装置１０ｉの動作クロックとに差がない場合には、１つの「ＣＯＭ」シンボルと３つの「ＳＫＰ」シンボルとを有する４シンボル長のスキップオーダードセットを各送信データ＃１〜＃８に同時に挿入する。また、自身の動作クロックが送信データ＃１〜＃８の送信先となる伝送装置１０ｉの動作クロックよりも速い場合には以下の処理を実行する。【０１２０】
すなわち、伝送装置１０ｈは、図１４に示すように、１つの「ＣＯＭ」シンボルと３つの「ＳＫＰ」シンボルとに、伝送装置１０ｉがエラスティックバッファに格納する際に削除するシンボル「ＲＭＶ」を追加した５シンボル長のスキップオーダードセットを生成する。そして、伝送装置１０ｈは、生成したスキップオーダードセットを各送信データ＃１〜＃８に対して同時に挿入する。図１４は、実施例２に係る伝送装置の動作クロックが送信先の動作クロックよりも速い場合に挿入されるスキップオーダードセットの一例を説明するための図である。【０１２１】
また伝送装置１０ｈは、伝送装置１０ｉの動作クロックが自身の動作クロックよりも速い場合には、以下の処理を実行する。すなわち、伝送装置１０ｈは、図１５に示すように、１つの「ＣＯＭ」と１つの「ＳＫＰ」とに加えて、伝送装置１０ｈがバッファから読み出す際に複製するシンボル「ＡＤＤ」を有するスキップオーダードセットを生成する。そして、伝送装置１０ｈは、生成したスキップオーダードセットを各送信データ＃１〜＃８に対して同時に挿入する。図１５は、実施例２に係る伝送装置の動作クロックが送信先の動作クロックよりも遅い場合に挿入されるスキップオーダードセットの一例を説明するための図である。【０１２２】
このような場合には、伝送装置１０ｉは、容易にスキップオーダードセットの修正を行う事が可能となる。すなわち、伝送装置１０ｉは、スキップオーダードセットの数を計数せずとも、各送信データ＃１〜＃８をエラスティックバッファに格納する場合には、各送信データ＃１〜＃８に挿入されたシンボル「ＲＭＶ」のみを検出し、検出した「ＲＭＶ」を削除すればよい。また、伝送装置１０ｉは、各送信データ＃１〜＃８をエラスティックバッファから読み出す場合には、シンボル「ＡＤＤ」のみを検出し、検出した「ＡＤＤ」を２つの「ＳＫＰ」に変換すればよい。【０１２３】
このように、伝送装置１０ｉは、伝送装置１０ｈが図１４、図１５に示すスキップオーダードセットを各送信データ＃１〜＃８に同時に挿入した場合には、スキップオーダードセットのシンボル長を検出せずとも、２種類のシンボルを検出するだけでよい。このため、伝送装置１０ｈは、動作クロックの誤差を吸収するための処理をより容易にすることができる。【０１２４】
次に、図１６ａ、１６ｂを用いて、伝送装置１０ｈが各送信データ＃１〜＃８に対して同時に挿入したスキップシンボルを伝送装置１０ｉがどのように処理するかを説明する。図１６ａは、実施例２に係る送信側の伝送装置の動作クロックが受信側の伝送装置の動作クロックよりも速い場合に挿入されるスキップシンボルの一例を説明するための図である。【０１２５】
図１６ａに示す例では、伝送装置１０ｈは、１つの「ＣＯＭ」シンボルと、３つの「ＳＫＰ」シンボルと、１つの「ＲＭＶ」シンボルとを有するスキップオーダードセットを、送信データ＃１〜＃８に対して同時に挿入する。このような場合には、伝送装置１０ｉは、各送信データ＃１〜＃８をエラスティックバッファに格納する際に、「ＲＭＶ」を検出し、検出した「ＲＭＶ」を削除する。【０１２６】
一方、図１６ｂは、実施例２に係る受信側の伝送装置の動作クロックが送信側の伝送装置の動作クロックよりも速い場合に挿入されるスキップシンボルの一例を説明するための図である。図１６ｂに示す例では、伝送装置１０ｈは、１つの「ＣＯＭ」シンボルと、１つの「ＳＫＰ」シンボルと、１つの「ＡＤＤ」シンボルとを有するスキップオーダードセットを各送信データ＃１〜＃８に対して同時に挿入する。【０１２７】
このような場合には、伝送装置１０ｉは、各送信データ＃１〜＃８をエラスティックバッファに格納し、その後、各送信データ＃１〜＃８を読み出す際に「ＡＤＤ」シンボルのみを検出する。そして、伝送装置１０ｉは、検出した「ＡＤＤ」シンボルを２つの「ＳＫＰ」シンボルに変換する。【０１２８】
なお、このようなスキップオーダードセットを定義するためには、伝送装置１０ｉおよび伝送装置１０ｈのディスパリティーがニュートラルなコードとして定義される。すなわち、ＰＣＩｅのシリアル伝送には送信時にデータを８ｂｉｔから１０ｂｉｔに変換し、受信時にデータを１０ｂｉｔから８ｂｉｔにデコードする。ここで、１つの８ｂｉｔのコードには、対応する２種類の１０ｂｉｔのコード（Ｃｕｒｒｅｎｔ  ＲＤ−、Ｃｕｒｒｅｎｔ  ＲＤ＋）が存在し、直前のエンコード処理における１０ｂｉｔのコードの内容によりいずれかのコードが選択される。【０１２９】
ここで、８Ｂ／１０Ｂエンコード処理には、ディスパリティーのルールがある。すなわち、送信側は、電源投入後、ランニングディスパリティの初期値が（−）に設定され、送信側は、送信した１０ｂｉｔコードの内容に基づき新しいランニングディスパリティーの値を計算する。このようなランニングディスパリティーは、送信したデータビットの「０」よりも「１」が多ければ（＋）となり、「１」よりも「０」が多ければ（−）となる。また、送信したデータビットの「０」と「１」が同じニュートラルであれば、ランニングディスパリティーは変化しない。このようなルールの下、送信側は、８ｂｉｔのコードを１０ｂｉｔのコードへ変換する場合、ランニングディスパリティーに応じた１０ｂｉｔのコードを選択する。【０１３０】
また受信側は、電源投入後、ランニングディスパリティの初期値が（＋）および（−）の両方が想定される。受信側は、受信した１０ｂｉｔコードが有効化無効化を判断し、受信した１０ｂｉｔコードの内容に基づき、新たなランニングディスパリティーの値を計算する。また、受信側は、受信した１０ｂｉｔコードが現在のランニングディスパリティーのテーブルに存在する場合には、受信した１０ｂｉｔコードが有効であるとみなし、８ｂｉｔのコードにデコードする。一方、受信側は、受信した１０ｂｉｔコードが現在のランニングディスパリティーのテーブルに存在しない場合には、受信した１０ｂｉｔコードが無効であるとみなす。【０１３１】
このようなルールの下、上記「ＡＤＤ」シンボルと「ＲＭＶ」シンボルとがニュートラルなコードでないとすると、「ＡＤＤ」シンボル、または、「ＲＭＶ」シンボルの送信時にランニングディスパリティが変化する。すると、受信側で「ＲＭＶ」シンボルが削除された場合には、ランニングディスパリティの変化が起きないので、「ＲＭＶ」シンボルの次に受信したシンボルでディスパリティーエラーが生する可能性がある。この結果、「ＡＤＤ」シンボルおよび「ＲＭＶ」シンボルは、ディスパリティーがニュートラルなコードとして定義される。【０１３２】
［実施例２の効果］
上述したように、伝送装置１０ｈは、自身の動作クロックよりも速い場合には、通常の４シンボル長のスキップオーダードセットに、伝送装置１０ｉで削除されるシンボルを追加したスキップオーダードセットを各送信データ＃１〜＃８に同時に挿入する。また、伝送装置１０は、伝送装置１０ｉの動作クロックが自身の動作クロックよりも速い場合には、通常よりも短い３シンボル長のスキップオーダードセットであって、伝送装置１０ｉが複製を行うシンボルを有するスキップオーダードセットを各送信データ＃１〜＃８に同時に挿入する。【０１３３】
このため、伝送装置１０ｈは、伝送装置１０ｉでスキップオーダードセットの長さを修正せずとも、自身の動作クロックと受信側の伝送装置１０ｉの動作クロックとの誤差を吸収することができるので、デスキュー処理の論理を容易にすることができる。また、伝送装置１０ｉは、スキップオーダードセットのシンボル長を検出せずとも、「ＲＭＶ」シンボルと「ＡＤＤ」シンボルとを検出し、検出したシンボルに応じた処理を行えば各送信データ＃１〜＃８に挿入されたスキップオーダードセットのシンボル長をそろえることができる。このため、伝送装置１０ｈは、受信側において、スキップオーダードセットのシンボル長をそろえる処理をさらに容易にすることができる。
【実施例３】
【０１３４】
上述した各伝送装置１０〜１０ｉは、送信先の伝送装置における処理を容易にするものであった。しかし、実施例はこれに限定されるものではなく、例えば、各伝送装置１０〜１０ｉは、ループバック処理によって返信された各送信データ＃１〜＃８を受信する際の処理を容易にする処理をさらに実行してもよい。以下、送信データ＃１〜＃８の送信元の伝送装置を伝送装置１０ｊ、送信先の伝送装置を伝送装置１０ｋとして説明する。【０１３５】
例えば、送信装置１０ｊおよび伝送装置１０ｋは、各送信データ＃１〜＃８をエラスティックバッファに格納する際に「ＲＭＶ」シンボルを検出し、検出した「ＲＭＶ」シンボルを削除する。また、伝送装置１０ｊおよび伝送装置１０ｋは、各送信データ＃１〜＃８をエラスティックバッファから読み出す際に「ＡＤＤ」シンボルを検出し、検出した「ＡＤＤ」シンボルを「ＳＫＰ」シンボルと「ＡＤＤ」シンボルとに修正する。また、送信装置１０ｊおよび伝送装置１０ｋは、各送信データ＃１〜＃８をエラスティックバッファから読み出す際に「ＡＤＤ−ｒ」シンボルを検出し、検出した「ＡＤＤ−ｒ」シンボルを「ＳＫＰ」シンボルと「ＲＭＶ」シンボルとに修正する。【０１３６】
つまり、「ＳＫＰ」シンボルとは、追加および削除が行われないシンボルであり、「ＲＭＶ」シンボルとは、エラスティックバッファに格納される際に削除されるシンボルである。また、「ＡＤＤ」シンボルとは、エラスティックバッファから読み出される際に追加および削除が行われないシンボルを１つ追加するシンボルである。また、「ＡＤＤ−ｒ」シンボルとは、エラスティックバッファから読み出される際に、追加及び削除が行われない１つのシンボルとエラスティックバッファに格納される際に削除される１つのシンボルとに変換されるシンボルである。【０１３７】
このような処理を行う伝送装置１０ｊは、自身の動作クロックが伝送装置１０ｋの動作クロックよりも速い場合には、図１７に示すように、「ＣＯＭ」、「ＳＫＰ」、「ＡＤＤ」、「ＲＭＶ」、「ＲＭＶ」シンボルを有する５シンボル長のスキップオーダードセットを生成する。そして、伝送装置１０ｊは、生成したスキップオーダードセットを各送信データ＃１〜＃８に同時に挿入する。なお、図１７は、実施例３に係る伝送装置の動作クロックが送信先の動作クロックよりも速い場合に挿入されるスキップオーダードセットの一例を説明するための図である。【０１３８】
また、伝送装置１０ｊは、伝送装置１０ｋの動作クロックが自身の動作クロックよりも速い場合には、図１８に示すように、「ＣＯＭ」、「ＳＫＰ」、「ＡＤＤ−ｒ」シンボルを有する３シンボル長のスキップオーダードセットを生成する。そして、伝送装置１０ｊは、生成したスキップオーダードセットを各送信データ＃１〜＃８に同時に挿入する。なお、図１８は、実施例３に係る伝送装置の動作クロックが送信先の動作クロックよりも遅い場合に挿入されるスキップオーダードセットの一例を説明するための図である。【０１３９】
次に、図１９ａ、１９ｂ、１９ｃを用いて、伝送装置１０ｋが各送信データ＃１〜＃８に対して同時に挿入したスキップシンボルをどのように処理するかを説明する。図１９ａは、実施例３に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図（１）である。図１９ｂは、実施例３に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図（２）である。図１９ｃは、実施例３に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図（３）である。【０１４０】
なお、図１９ａ〜図１９ｃに示す例では、伝送装置１０ｊが挿入するスキップオーダードセットを自装置送信側処理として示す。また、図１９ａ〜図１９ｃには、対向受信側処理として、送信先の伝送装置１０ｋに入力されるスキップオーダードセット、伝送装置１０ｋがエラスティックバッファに格納するスキップオーダードセット、伝送装置１０ｋがエラスティックバッファから読み出すスキップオーダードセットを示す。また、図１９ａ〜図１９ｃには、自装置受信側処理として、伝送装置１０ｊにループバック送信されたスキップオーダードセット、伝送装置１０ｊがエラスティックバッファに格納するスキップオーダードセット、伝送装置１０ｊがエラスティックバッファから読み出すスキップオーダードセットを示す。【０１４１】
図１９ａに示すように、送信側の伝送装置１０ｊは、「ＣＯＭ」、「ＳＫＰ」、「ＳＫＰ」、「ＳＫＰ」を有するスキップオーダードセットを各送信データ＃１〜＃８に同時に挿入する。このような場合には、受信側の伝送装置１０ｋは、エラスティックバッファに各送信データ＃１〜＃８を格納する際や、エラスティックバッファから各送信データ＃１〜＃８を読み出す際に、「ＳＫＰ」シンボルの削除や追加を行わない。このため、送信側の伝送装置１０ｊは、送信した際と同じシンボル長のスキップオーダードセットが格納された各送信データ＃１〜＃８を取得することができる。【０１４２】
図１９ｂは、実施例３に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図（２）である。図１９ｂに示すように、送信側の伝送装置１０ｊは、「ＣＯＭ」、「ＳＫＰ」、「ＡＤＤ」、「ＲＭＶ」、「ＲＭＶ」を有するスキップオーダードセットを各送信データ＃１〜＃８に同時に挿入する。このような場合には、受信側の伝送装置１０ｋは、エラスティックバッファに各送信データ＃１〜＃８を格納する際に、２つの「ＲＭＶ」シンボルを削除する。【０１４３】
また、伝送装置１０ｋは、エラスティックバッファから各送信データ＃１〜＃８を読み出す際に「ＡＤＤ」シンボルを「ＳＫＰ」シンボルと「ＡＤＤ」シンボルとに修正する。つまり、伝送装置１０ｋは、「ＳＫＰ」シンボルを追加する。そして、伝送装置１０ｋは、エラスティックバッファから読み出した送信データ＃１〜＃８を伝送装置１０ｊにループバック送信する。【０１４４】
一方、伝送装置１０ｊは、ループバック送信された各送信データ＃１〜＃８をエラスティックバッファに格納する。そして、伝送装置１０ｊは、各送信データ＃１〜＃８をエラスティックバッファから読み出す際に、「ＡＤＤ」シンボルを「ＳＫＰ」シンボルと「ＡＤＤ」シンボルとに修正する。このため、伝送装置１０ｊは、自身が挿入した５シンボル長のスキップオーダードセットと同じシンボル長のスキップオーダードセットが格納された各送信データ＃１〜＃８を取得することができる。【０１４５】
また、図１９ｃは、実施例３に係る送信側および受信側の伝送装置がスキップシンボルをどのように処理するかを説明するための図（３）である。図１９ｃに示すように、送信側の送信装置１０ｊは、「ＣＯＭ」、「ＳＫＰ」、「ＡＤＤ−ｒ」を有するスキップシンボルを各送信データ＃１〜＃８に同時に格納する。このような場合には、送信装置１０ｋは、エラスティックバッファから各送信データ＃１〜＃８を読取る際に、「ＡＤＤ−ｒ」シンボルを「ＳＫＰ」シンボルと「ＲＭＶ」シンボルとに修正する。そして、送信装置１０ｋは、エラスティックバッファから読み出した各送信データ＃１〜＃８を伝送装置１０ｊにループバック送信する。【０１４６】
一方、伝送装置１０ｊは、ループバック送信された各送信データ＃１〜＃８をエラスティックバッファに格納する際に、各送信データ＃１〜＃８に挿入された「ＲＭＶ」シンボルを削除する。そして、伝送装置１０ｊは、エラスティックバッファに格納された各送信データ＃１〜＃８を取得する。つまり、伝送装置１０ｊは、自身が挿入した３シンボル長のスキップオーダードセットと同じシンボル長のスキップオーダードセットが格納された各送信データ＃１〜＃８を取得することができる。【０１４７】
次に、図２０および図２１を用いて、伝送装置１０ｊおよび伝送装置１０ｋが実行する処理の流れについて説明する。図２０は、実施例３に係る受信側の伝送装置が実行する処理の流れを説明する図である。また、図２１は、実施例３に係る送信側の伝送装置が実行する処理の流れを説明するための図である。なお、図２０、２１に示す例では、「ＣＯＭ」シンボルを「Ｃ」、「ＳＫＩＰ」シンボルを「Ｓ」、「ＡＤＤ」シンボルを「Ａ」、「ＲＭＶ」シンボルを「Ｒ」、「ＡＤＤ−ｒ」シンボルを「Ａｒ」と示す。【０１４８】
まず、図２０を用いて、伝送装置１０ｋが実行する処理の流れの一例を説明する。図２０に示す例では、伝送装置１０ｋが伝送装置１０ｊから受信した受信データ＃１〜＃８、伝送装置１０ｋがエラスティックバッファに格納する受信データ＃１〜＃８、伝送装置１０ｋがエラスティックバッファから読み出す受信データ＃１〜＃８を示す。【０１４９】
図２０中（Ｒ）に示すように、伝送装置１０ｋは、「ＲＭＶ」シンボルが含まれるスキップシンボルと、図２０中（Ｓ）に示すように、「ＡＤＤ−ｒ」シンボルが含まれるスキップシンボルとが挿入された各受信データ＃１〜＃８を取得する。このような場合には、伝送装置１０ｋは、図２０中（Ｔ）に示すように、各受信データ＃１〜＃８をエラスティックバッファに格納する際に、「ＲＭＶ」シンボルを破棄する。また、伝送装置１０ｋは、図２０中（Ｕ）に示すように、各受信データ＃１〜＃８をエラスティックバッファから読み出す際に、「ＡＤＤ−ｒ」シンボルを「ＳＫＰ」シンボルと「ＲＭＶ」シンボルとに変換する。【０１５０】
次に、図２１を用いて、伝送装置１０ｊが実行する処理の流れの一例を説明する。図２１に示す例では、伝送装置１０ｊが伝送装置１０ｋからループバック送信された受信データ＃１〜＃８、伝送装置１０ｊがエラスティックバッファに格納する受信データ＃１〜＃８を示す。また、図２１に示す例では、伝送装置１０ｊがエラスティックバッファから読み出す受信データ＃１〜＃８、伝送装置１０ｊがデスキュー処理を行った受信データ＃１〜＃８を示す。【０１５１】
図２１に示す例では、伝送装置１０ｊは、図２０に示した伝送装置１０ｋがエラスティックバッファから読み出した各受信データ＃１〜＃８を取得する。次に、伝送装置１０ｊは、図２１中（Ｖ）に示すように、エラスティックバッファに各受信データ＃１〜＃８を書き込む際に、「ＲＭＶ」シンボルを削除する。【０１５２】
次に、伝送装置１０ｊは、図２１中（Ｗ）に示すように、エラスティックバッファから各受信データ＃１〜＃８を読み出す際に、「ＡＤＤ」シンボルを「ＡＤＤ」シンボルと「ＳＫＰ」シンボルとに変換する。このため、伝送装置１０ｊは、ループバック送信された各受信データ＃１〜＃８に挿入されたスキップオーダードセットのシンボル数を、自身が挿入したスキップオーダードセットと同じシンボル数のスキップオーダードセットに修正することができる。【０１５３】
次に、伝送装置１０ｊは、図２１中（Ｘ）に示すように、受信データ＃８に挿入された「ＣＯＭ」シンボルの位置と他の受信データ＃１〜＃７に挿入された「ＣＯＭ」シンボルの位置とをそろえるデスキュー処理を行う。このように、伝送装置１０ｊは、ループバック送信された各受信データ＃１〜＃８についても、各スキップオーダードセットのシンボル数を検出、修正することなく、容易にデスキュー処理を行うことができる。【０１５４】
なお、実施例３に係る「ＡＤＤ」シンボル、「ＲＭＶ」シンボルおよび「ＡＤＤ−ｒ」シンボルは、実施例２に係る「ＲＭＶ」、「ＡＤＤ」シンボルと同様に、ディスパリティーがニュートラルなコードとして定義される。【０１５５】
［実施例３の効果］
上述したように、伝送装置１０ｊは、自身の動作クロックが伝送装置１０ｋの動作クロックよりも速い場合には、「ＣＯＭ」、「ＳＫＰ」、「ＡＤＤ」、「ＲＭＶ」、「ＲＭＶ」シンボルを有するスキップオーダードセットを各送信データ＃１〜＃８に同時に挿入する。また、伝送装置１０ｊは、伝送装置１０ｋの動作クロックが自身の動作クロックよりも速い場合には、「ＣＯＭ」、「ＳＫＰ」、「ＡＤＤ−ｒ」シンボルを有するスキップオーダードセットを各送信データ＃１〜＃８に同時に挿入する。【０１５６】
このため伝送装置１０ｊは、自身の動作クロックと伝送装置１０ｋの動作クロックとの誤差を吸収することができる。また、伝送装置１０ｊは、複雑な処理をおこなうことなく、「ＡＤＤ」シンボルおよび「ＲＭＶ」シンボルを検出するだけで、以下のような効果をえることができる。すなわち、伝送装置１０ｊは、ループバック処理によって返信された各送信データ＃１〜＃８に挿入されるスキップオーダードセットのシンボル数を自身が挿入したスキップオーダードセットのシンボル数と容易にそろえることができる。また、伝送装置１０ｊは、ループバック処理によって返信された各送信データ＃１〜＃８のデスキュー処理を容易に行う事ができる。【０１５７】
また、伝送装置１０ｊは、伝送装置１０ｋにおけるデスキュー処理を容易にすることができる。このため、伝送装置１０ｊは、ループバック処理を行う場合にも、送信側および受信側のデスキュー処理の論理を容易にし、回路規模を抑え、設計および検証を容易にすることができる。また、伝送装置１０ｊは、デスキュー処理に係る処理遅延を減少させることができる。【０１５８】
また、伝送装置１０ｋは、ループバック処理を行う際に、自身の動作クロックと送信先となる伝送装置１０ｊの動作クロックとの比較を行わずとも、適切なスキップオーダードセットが挿入されたデータを伝送装置１０ｊに送信することができる。このため、伝送装置１０ｊは、伝送装置１０ｊ、ｋの回路規模をさらに減少させることができる。
【実施例４】
【０１５９】
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例４として本発明に含まれる他の実施例を説明する。【０１６０】
（１）伝送経路の数について
上述した各伝送装置１０〜１０ｋは、ぞれぞれ他の伝送装置と８本のシリアルリンクで接続されているものとした。しかし、実施例はこれに限定されるものではなく、各伝送装置１０〜１０ｋは、他の伝送装置と任意の数の伝送経路で接続することができる。【０１６１】
（２）シンボルについて
上述した各伝送経路１０〜１０ｋは、スキップオーダードセットに格納するシンボルとして「ＣＯＭ」シンボル、「ＳＫＰ」シンボル、「ＡＤＤ」シンボル、「ＲＭＶ」シンボル、「ＡＤＤ−ｒ」シンボルを定義した。しかし、実施例はこれに限定されるものではなく、各伝送経路１０〜１０ｋが検出した際に、各実施例１〜３と同様の処理を実行するものであれば、任意のシンボルを定義することができる。
【符号の説明】
【０１６２】
１  情報処理システム
２  ＣＰＵ
３  データ伝送装置
４  メモリ
５  スイッチ
６〜６ｂ  入出力デバイス
１０〜１０ｋ  伝送装置
１１  上位層
２０  ＭＡＣ部
２１  スキップ挿入部
２１ａ〜２１ｈ  バッファ
２１ｉ  生成部
２１ｋ  制御部
２１ｊ  スキップ挿入セレクタ
２２  スリップ検出部
２２ａ、２２ｂ  グレーコードカウンタ
２３ｃ  フリップフロップ
２２ｄ  シフトレジスタ
２２ｅ  比較部
２３  スクランブラ
２４  デスキュー部
２４ａ  遅延吸収用データレジスタ
２４ｂ  デスキュー制御部
２５  デスクランブラ
２６  制御部
３０  ＰＣＳ部
３０ａ〜３０ｈ  ＰＣＳレイヤ
３１  エンコーダ
３２  ループバック部
３３  転極部
３４  アライン
３５  エラスティックバッファ
３５ａ  クロック載せ換え用データレジスタ
３５ｂ  書き込み制御部
３６ｃ  読み出し制御部
３６  デコーダ
３７  受信ステータス判定部
４０  ＳｅｒＤｅｓ
５０、５１  伝送装置
【図１】
2013001631.tif 000003
【図２】
2013001631.tif 000004
【図３】
2013001631.tif 000005
【図４】
2013001631.tif 000006
【図５】
2013001631.tif 000007
【図６】
2013001631.tif 000008
【図７】
2013001631.tif 000009
【図８】
2013001631.tif 000010
【図９】
2013001631.tif 000011
【図１０】
2013001631.tif 000012
【図１１ａ】
2013001631.tif 000013
【図１１ｂ】
2013001631.tif 000014
【図１１ｃ】
2013001631.tif 000015
【図１２】
2013001631.tif 000016
【図１３】
2013001631.tif 000017
【図１４】
2013001631.tif 000018
【図１５】
2013001631.tif 000019
【図１６ａ】
2013001631.tif 000020
【図１６ｂ】
2013001631.tif 000021
【図１７】
2013001631.tif 000022
【図１８】
2013001631.tif 000023
【図１９ａ】
2013001631.tif 000024
【図１９ｂ】
2013001631.tif 000025
【図１９ｃ】
2013001631.tif 000026
【図２０】
2013001631.tif 000027
【図２１】
2013001631.tif 000028
【図２２】
2013001631.tif 000029
【図２３】
2013001631.tif 000030
【図２４】
2013001631.tif 000031
【図２５】
2013001631.tif 000032
【国際調査報告】
2013001631.tif 000033
2013001631.tif 000034