(57)【要約】【課題】複数の伝送路を用いてデータの送受信を行うシステムの運用中に、エラーが発生した伝送路を特定する技術を提供する。【解決手段】送信側は、レーン毎に、そのレーンで送信したデータを用いてＣＲＣ符号を計算し、レーン毎に計算したＣＲＣ符号を格納したＤＬＬＰを送信する。受信側は、レーン毎に、そのレーンで受信したデータを用いてＣＲＣ符号を計算し、ＤＬＬＰを受信すると、そのＤＬＬＰに格納されたＣＲＣ符号を、計算したＣＲＣ符号とレーン毎に比較する。それにより、システムの運用中であってもエラーが発生したレーンを受信側が検出可能にする。【選択図】図６
2012199724.tif 000002
【特許請求の範囲】
【請求項１】
データ受信装置に複数の伝送路を介して接続されるデータ送信装置において、
前記複数の伝送路のうちデータ伝送に使用する伝送路毎に、伝送対象のデータを分割した分割データを送信するデータ送信部と、
前記データ送信部により送信される分割データから、前記データ受信装置が前記伝送路毎にエラーを検出するためのエラー検出情報を生成する情報生成部と、
前記エラー検出情報を前記分割データに挿入した分割送信データを、前記データ送信部に送信させる送信制御部と、
を具備することを特徴とするデータ送信装置。
【請求項２】
複数の伝送路を介してデータ送信装置から送信される、前記複数の伝送路のうちデータ伝送に使用する伝送路毎に、伝送対象のデータを分割した分割データに、前記分割データから生成したエラーを検出するためのエラー検出情報を含めた分割送信データを受信するデータ受信装置において、
前記分割送信データの受信に用いるタイミング信号を、前記伝送路毎に生成するタイミング信号生成部と、
前記データ送信装置が送信した分割送信データを、前記タイミング信号生成部が生成したタイミング信号を用いて前記伝送路毎に受信するデータ受信部と、
前記データ受信部が前記伝送路別に受信した分割送信データから前記エラー検出情報を抽出し、抽出したエラー検出情報を用いて前記分割送信データに含まれる送信データのエラーを検出するエラー検出部と、
を具備することを特徴とするデータ受信装置。
【請求項３】
前記データ受信装置はさらに、
前記エラー検出部によるエラーの検出結果を基に、前記タイミング信号生成部が生成するタイミング信号の間隔を、伝送路毎に変更する設定部、
を具備することを特徴とする請求項２記載のデータ受信装置。
【請求項４】
前記データ受信装置はさらに、
前記エラー検出部がエラーを検出したエラー検出回数を、前記伝送路毎に計数するエラー計数部を具備し、
前記設定部は、
前記タイミング信号生成部が生成するタイミング信号の間隔を、前記エラー計数部が前記伝送路毎に計数したエラー検出回数に応じて変更する、
ことを特徴とする請求項３記載のデータ受信装置。
【請求項５】
他のデータ送受信装置に伝送路を介して接続されるデータ送受信装置において、
前記複数の伝送路のうちデータ伝送に使用する伝送路毎に、前記他の送受信装置への伝送対象のデータを分割した分割データを送信するデータ送信部と、
前記データ送信部により送信される分割データに基づいて、前記他の送受信装置が前記伝送路毎にエラーを検出する場合に使用するエラー検出情報を生成するエラー検出情報生成部と、
前記エラー検出情報を前記分割データに挿入した分割送信データを、前記データ送信部に送信させる送信制御部と、
前記他の送受信装置からの分割送信データの受信に用いるタイミング信号を、前記伝送路毎に生成するタイミング信号生成部と、
前記他のデータ送信装置が送信した分割送信データを、前記タイミング信号生成部が生成したタイミング信号に基づき、前記伝送路毎に受信するデータ受信部と、
前記データ受信部が前記伝送路別に受信した分割送信データから抽出したエラー検出情報を用いて、前記分割送信データに含まれる送信データのエラーを検出するエラー検出部と、
を具備することを特徴とするデータ送受信装置。
【請求項６】
前記データ送受信装置はさらに、
前記エラー検出部によるエラーの検出結果を基に、前記タイミング信号生成部が生成するタイミング信号の間隔を、前記伝送路毎に変更する設定部、
を具備することを特徴とする請求項５記載のデータ送受信装置。
【請求項７】
前記データ送受信装置はさらに、
前記エラー検出部がエラーを検出したエラー検出回数を、前記伝送路毎に計数するエラー計数部を具備し、
前記設定部は、
前記タイミング信号生成部が生成するタイミング信号の間隔を、前記エラー計数部が前記伝送路毎に計数したエラー検出回数に応じて変更する、
ことを特徴とする請求項６記載のデータ送受信装置。
【請求項８】
他のデータ送受信装置に伝送路を介して接続されるデータ送受信装置の制御方法において、
前記データ送受信装置から、前記複数の伝送路のうちデータ伝送に使用する伝送路毎に、他のデータ送受信装置への伝送対象のデータを分割した分割データを生成し、
前記データ送受信装置が、生成した分割データに基づいて、前記他のデータ送受信装置が前記伝送路毎にエラーを検出するためのエラー検出情報を生成し、
前記データ送受信装置から、前記エラー検出情報を前記分割データに挿入した分割送信データを、前記他のデータ送受信装置に送信し、
前記他のデータ送受信装置が、前記データ送受信装置から受信する分割送信データの受信に用いるタイミング信号を、前記伝送路毎に生成し、
前記他のデータ送受信装置が、前記データ送信装置から受信した分割送信データを、生成したタイミング信号を用いて前記伝送路毎に受信し、
前記他のデータ送受信装置が、前記伝送路毎に受信した分割送信データから抽出したエラー検出情報を用いて、前記分割送信データに含まれる送信データのエラーを検出する、
ことを特徴とするデータ送受信装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ送信装置、データ受信装置、データ送受信装置及びデータ送受信装置の制御方法に関する。
【背景技術】
【０００２】
近年、サーバ等に用いられるコンピュータ（データ処理装置）では、複数のＣＰＵをバスによって接続する構成が採用されるのが普通となっている。このような構成では、バスを介してデータを送受信するためにデータ送受信装置が搭載されたＣＰＵが採用される。
【０００３】
バスは、複数の伝送路を備えた伝送路群である。各伝送路は、通常、２本の差動駆動される伝送線を備えた差動伝送路（レーン）である。この差動伝送路によるレーンは、データ幅が１ビットのシリアル接続に２本の伝送線を必要とするが、シングルエンド伝送路によるレーンと比較すると、ノイズ発生が少ないため高速化に適しているという利点を備えている。
【０００４】
ＣＰＵに搭載されたデータ送受信装置は、バスを介してデータを送信する場合、送信の対象となるデータをレーン毎に分け、レーン毎に分けたデータをシリアルで送信する。データの受信に発生したエラーを受信側が検出できるように、データ送受信装置は、送信対象とするデータにエラー検出用のエラー検出符号を付加するのが普通である。エラー検出符号としては、ＣＲＣ（Cyclic Redundancy Check：巡回冗長検査）が広く用いられている。
【０００５】
このエラー検出符号は、通常、送信対象とするデータ全てを用いて生成される。このため、受信側は、エラー検出符号以外の受信データを用いてエラー検出符号を生成し、生成したエラー検出符号（ＣＲＣ符号）を受信したエラー検出符号と比較する。この比較の結果、２つのエラー検出符号が一致した場合、エラーが発生していないと見なされ、２つのエラー検出符号が一致していない場合、エラーが発生したと見なされる。エラーが発生したと見なした場合、受信側は受信データを破棄し、送信側にデータの再送を要求する。
【０００６】
ＣＰＵ間のデータ伝送は、ＣＰＵのデータ処理速度、更にはＣＰＵを搭載したデータ処理装置（コンピュータ）の処理性能に大きく影響する。このこともあり、データの高速伝送に対する要求は非常に高い。しかし、伝送速度が高速化するほど、ノイズの影響が大きくなる。それにより、安定動作への要求も非常に高いものとなっている。
【０００７】
上記レーンはそれぞれ独立に動作させることが可能である。そのため、レーンのなかで故障したものが発生した場合、故障したレーンを停止させる縮退が行われる。これは、故障したレーンでのデータ伝送にはエラーが発生する可能性が極めて高いからである。
【０００８】
受信側では、エラー検出符号を用いてパケット単位のエラーを検出することはできる。しかし、そのエラーが実際に発生したレーンを特定することはできない。それにより、従来は、予め用意したデータ（パターン）の送受信により、故障（エラー）が発生したレーンの特定を行っていた。予め用意したデータとは、例えばPBRS（Pseudo Random Binary (bit) Sequence）パターンである。 
【０００９】
そのような用意されたデータの送受信は、システム（データ処理装置）の運用を停止させた上で行わなければならない。データ処理装置の運用の停止は、データ処理装置の稼動可能時間を短くさせることから、データ処理装置の効率的な運用を阻害する。このことから、故障（エラー）が発生したレーンの特定は、データ処理装置の運用中に行えるようにすることが重要である。
【００１０】
各レーンにおけるデータの伝送波形の歪み方、つまりノイズの影響が同じであるとは限らない。また、プロセスのばらつき等により、レーン毎にデータの受信特性に違いがあることも考えられる。このようなことから、故障が発生していない何れかのレーンにエラーが集中するようなことも考えられる。そのようにエラーが発生する頻度の高いレーンを特定するうえでも、データ処理装置の運用中にレーン単位でエラーを検出できるようにする仕組みを用意することが望ましいと云える。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１０−６１６０６号公報
【特許文献２】特開２００９−２９４８５３号公報
【特許文献３】特開２０１０−１１４５４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は、複数の伝送路を用いてデータの送受信を行うデータ処理装置（システム）の運用中に、エラーが発生した伝送路を特定する技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明を適用した１システムでは、データ受信装置に複数の伝送路を介して接続されるデータ送信装置は、複数の伝送路のうちデータ伝送に使用する伝送路毎に、伝送対象のデータを分割した分割データを送信するデータ送信部と、データ送信部により送信される分割データから、データ受信装置が伝送路毎にエラーを検出するためのエラー検出情報を生成する情報生成部と、エラー検出情報を分割データに挿入した分割送信データを、データ送信部に送信させる送信制御部と、を具備し、データ受信装置は、分割送信データの受信に用いるタイミング信号を、伝送路毎に生成するタイミング信号生成部と、データ送信装置が送信した分割送信データを、タイミング信号生成部が生成したタイミング信号を用いて伝送路毎に受信するデータ受信部と、データ受信部が伝送路別に受信した分割送信データからエラー検出情報を抽出し、抽出したエラー検出情報を用いて分割送信データに含まれる送信データのエラーを検出するエラー検出部と、を具備する。
【発明の効果】
【００１４】
本発明を適用した場合には、複数の伝送路を用いてデータの送受信を行うシステムの運用中に、エラーが発生した伝送路を特定することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態によるデータ送受信装置が適用されたデータ処理装置（コンピュータ）の構成例を説明する図である。
【図２】本実施形態によるデータ送信装置の構成を説明する図である。
【図３】本実施形態によるデータ受信装置の構成を説明する図である。
【図４】伝送系の詳細を説明する図である。
【図５】ＤＦＥの構成を説明する図である。
【図６】ＬＡＮＥ−ＣＲＣ−ＤＬＬＰの構成、及びＬＡＮＥ−ＣＲＣ−ＤＬＬＰによってカバーされる送信範囲を説明する図である。
【図７】ＬＡＮＥ−ＣＲＣ−ＤＬＬＰの挿入制御方法を説明する図である。
【図８】ＬＡＮＥ−ＣＲＣ−ＤＬＬＰによってレーン毎に行われるエラー検出を説明する図である。
【図９】本実施形態におけるエラー計測方法を説明する図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態によるデータ送受信装置が適用されたデータ処理装置（コンピュータ）の構成例を説明する図である。このデータ処理装置１は、４つのＣＰＵ（Central Processing Unit）２を演算処理装置であるプロセッサとして備え、各ＣＰＵ２間はバス３により接続されている。各ＣＰＵ２には、図１中「ＤＩＭＭ」（Dual Inline Memory Module）と表記の複数のメモリモジュール４が接続されている。それにより、各ＣＰＵ２には、本実施形態による複数のデータ送受信装置１１、及びメモリモジュール４にアクセスするためのＭＣ（Memory Controller）１２が搭載されている。本実施形態によるプロセッサは、本実施形態によるデータ送受信装置１１を複数、ＣＰＵ２に搭載する形で実現されている。本実施形態によるデータ送受信装置１１のデータ処理装置１への適用は、ＣＰＵ２を複数、採用することで実現されている。
【００１７】
図１には表していないが、データ処理装置１は、データ処理の対象となるデータが格納されたストレージにアクセス可能か、或いは外部からデータを受信可能となっている。また、データ処理装置１には、外部から指示を行うための構成要素が存在する。しかし、これらの構成要素は説明上、重要でないため、これ以上の詳細は省略する。
【００１８】
上記バス３は、複数の伝送路を備え、各伝送路は双方向のデータの送受信が可能である。このため、ＣＰＵ２に搭載された各データ送受信装置１１は、データを送信するデータ送信装置１１ａ、及びデータを受信するデータ受信装置１１ｂを備えている。各伝送路は、２本の差動駆動される伝送線を備えた差動伝送路（レーン）である（図４）。ここでは、レーン数は８とする。
【００１９】
図１に表すデータ処理装置１では、各ＣＰＵ２は自身が直接アクセス可能なメモリモジュール４を用いてデータ処理を行う。各ＣＰＵ２は、そのデータ処理の実行に必要なデータを他のＣＰＵ２が保持している場合、その他のＣＰＵ２間を接続するバス３を介したデータの送受信により必要なデータを取得する。そのようにして、各ＣＰＵ２は、バス３を介したデータの送受信を必要に応じて行いつつ、自身が管理するメモリモジュール４を用いたデータ処理を実行する。
【００２０】
ＣＰＵ２間では、３種類のパケットが送受信される。３種類のパケットとは、データの送受信に用いられるＴＬＰ（Transaction Layer Packet）、ＴＬＰの送達確認、制御情報の送達などに補助的に用いられるＤＬＬＰ（Data Link Layer Packet）、電力管理や位相調整など、送受信されるデータの処理よりも低負荷の処理を行わせるためのＰＬＰ（Physical Layer Packet）である。
【００２１】
何れの種類のパケットにも、先頭と最後にフレーミングキャラクターが付加される。以降、先頭に付加されるフレーミングキャラクターはＳＴＰ、最後に付加されるフレーミングキャラクターはＥＮＤと表記する。
【００２２】
何れの種類のパケットも、パケットの受信に発生したエラーを検出するためのエラー検出符号が含まれる。そのエラー検出符号により、エラーはパケット単位で検出することができる。本実施形態では、レーン毎にエラーを検出できるようにするために、送信側から、レーン毎にエラーを検出するためのエラー検出符号を格納したパケットを送信させるようにしている。レーン毎にエラーを検出するためのエラー検出符号はＤＬＬＰに格納するようにしている。以降、このＤＬＬＰは他のＤＬＬＰと区別するために「ＬＡＮＥ−ＣＲＣ−ＤＬＬＰ」と呼ぶことにする。
【００２３】
本実施形態によるデータ送信装置１１ａは、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰを生成して送信する。そのデータ送信装置１１ａには図２及び図４に表すような構成が採用されている。本実施形態によるデータ受信装置１１ｂは、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰを受信し、エラーが発生したレーンを特定する。そのデータ受信装置１１ｂには図３〜図５に表すような構成が採用されている。ここでは、理解を容易とするために、図２〜図５の説明の前に、図６〜図８を参照して、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰの生成方法、及びＬＡＮＥ−ＣＲＣ−ＤＬＬＰによるレーン毎のエラー検出の仕組みについて具体的に説明する。
【００２４】
図６は、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰの構成、及びＬＡＮＥ−ＣＲＣ−ＤＬＬＰによってカバーされる送信範囲を説明する図である。図６（ａ）は、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰの構成、図６（ｂ）は１個のＬＡＮＥ−ＣＲＣ−ＤＬＬＰによりカバーされる送信範囲をそれぞれ表している。図６（ｂ）中に表記の「＃０」〜「＃７」はそれぞれ、異なるレーンを表している。
【００２５】
ここでは、各レーンは８ビット単位でデータをシリアル送信すると想定している。ＬＡＮＥ−ＣＲＣ−ＤＬＬＰに限らず、パケットの先頭の８ビットにはＳＴＰ、最後の８ビットにはＥＮＤが割り当てられる。エラー検出符号としてのＣＲＣ符号は１６ビットのデータであり、このＣＲＣ符号はＥＮＤの前に配置されている。
【００２６】
図６中の「ＣＲＣ１６」は１６ビットのＣＲＣ符号を表し、「ＣＲＣ１６−０」「ＣＲＣ１６−１」はそれぞれ先頭８ビット分のＣＲＣ符号、残りの８ビット分のＣＲＣ符号を表している。これは「ＣＲＣ３２」「ＣＲＣ３２−０」〜「ＣＲＣ３２−４」でも同様である。また、「ＴＬＰ０」〜「ＴＬＰ３３」はＳＴＰ及びＥＮＤ以外のＴＬＰを分割して得られる８ビットのデータを表している。この８ビットのデータは、データ伝送上の単位データである。「ＤＬＬＰ０」〜「ＤＬＬＰ３」も同様に、ＳＴＰ及びＥＮＤ以外のＤＬＬＰを分割して得られる８ビットのデータを表している。このようなことから、図６（ｂ）における列はデータ伝送が行われるレーンを表し、図６（ｂ）における行は１回のデータ伝送の対象となる単位データを表している。
【００２７】
図６（ａ）及び図６（ｂ）に表すように、ＤＬＬＰにはＳＴＰ、ＥＮＤ及び１６ビット分のＣＲＣ符号が格納されることから、８バイトのＤＬＬＰでは使用可能な領域はＳＴＰとＣＲＣ符号間の４バイトとなる。このことから、本実施形態では、レーン毎に４ビットのＣＲＣ符号を計算し、ＳＴＰとＣＲＣ符号間の４バイトのデータとして、８レーン分のＣＲＣ符号をＬＡＮＥ−ＣＲＣ−ＤＬＬＰに格納するようにしている。
【００２８】
ＴＬＰでは、ＳＴＰとＥＮＤの間に、パケット特定用のシーケンス番号、ヘッダ部、データ部、及びＣＲＣ符号が配置される。ＤＬＬＰの基本構成では、ＳＴＰとＥＮＤの間に、種別を表す１バイトのタイプデータ、３バイトのデータ部、及び２バイトのＣＲＣ符号が配置される。本実施形態では、ＳＴＰをタイプデータとしても用いるようにすることにより、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰに４バイト分のデータ部を確保している。
【００２９】
送信側は、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰの送信により、レーン毎のＣＲＣ符号の計算をリセットする。レーン毎のエラーの検出漏れを回避するために、送信側は、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰを送信した直後から、次のＬＡＮＥ−ＣＲＣ−ＤＬＬＰを送信する迄の間、レーン毎に、送信されるデータを用いてＣＲＣ符号を計算する。それにより、各ＬＡＮＥ−ＣＲＣ−ＤＬＬＰは、直前のＬＡＮＥ−ＣＲＣ−ＤＬＬＰの直後に位置するパケットから直前のパケットまでをカバーする。
【００３０】
図７は、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰの挿入制御方法を説明する図である。
ＬＡＮＥ−ＣＲＣ−ＤＬＬＰは、設定された挿入間隔が経過する毎に作成され送信される。挿入間隔は、時間、或いはパケット数により指定されるものであり、任意に変更可能となっている。それにより、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰは、設定された挿入間隔に従って随時、送信される。挿入間隔を任意に変更可能にしているのは、単位時間当たりに送受信されるパケット数、或いはエラーの発生頻度等に応じた調整を行えるようにするためである。エラーの発生頻度は、パケットに格納されたＣＲＣ符号を用いて特定することができる。
【００３１】
図８は、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰによってレーン毎に行われるエラー検出を説明する図である。図８中に表記の「伝送路」は図１のバス３に相当する。エラーが発生したデータ、及びエラーの発生を表すＣＲＣ符号はマーク８１により表している。図６（ｂ）と同様に、図８における列、及び行はそれぞれ、データ伝送が行われるレーン、１回のデータ伝送の対象となる単位データを表している。
【００３２】
図８は、「＃０」により表すレーンに例えば一時的な故障が発生した場合を例にとったものである。このレーンに一時的な故障が発生し、同じＴＬＰのデータＴＬＰ７、ＴＬＰ１５及びＴＬＰ２３の伝送にエラーが発生すると、そのＴＬＰのＣＲＣ３２−０〜ＣＲＣ３２−３は、受信したデータＴＬＰ０〜ＴＬＰ３３から計算されるＣＲＣ符号と一致しなくなる。このため、受信側は、このＴＬＰに発生したエラーを検出することができる。しかし、ＣＲＣ３２−０〜ＣＲＣ３２−３からは、エラーが発生したレーンを特定することができない。
【００３３】
受信側も送信側と同様に、レーン毎に、そのレーンで受信したデータを用いたＣＲＣ符号の計算を行う。それにより、受信側は、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰを受信した場合、レーン毎に計算したＣＲＣ符号を、受信したＬＡＮＥ−ＣＲＣ−ＤＬＬＰに格納されているレーン毎のＣＲＣ符号と対応付けて比較する。その比較により、ＣＲＣ符号が不一致のレーンにエラーが発生したと見なす。一時的な故障によって「＃０」のレーンでの伝送にエラーが発生している場合、「＃０」のレーンで比較するＣＲＣ符号が一致しないことから、受信側は「＃０」のレーンにエラーが発生していると特定することができる。他のパケット（ここではＴＬＰ）に格納されたＣＲＣ符号から、エラーが発生したパケットは特定することができる。ＬＡＮＥ−ＣＲＣ−ＤＬＬＰの受信に発生したエラーは、このＬＡＮＥ−ＣＲＣ−ＤＬＬＰに格納されたＣＲＣ符号を用いて検出することができる。このため、受信側は、データＴＬＰ７、ＴＬＰ１５、ＴＬＰ２３、及びＴＬＰ３１のうちの少なくとも一つにエラーが発生したことを認識できる。
【００３４】
高速シリアル送信では、ノイズ対策のために、データは送信側でスクランブルされ、受信側でデスクランブルされる。また、送信側では、データのパラレル−シリアル変換が行われ、受信側では、データのシリアル−パラレル変換が行われる。図８では便宜的に、これらの操作は省略している。
【００３５】
上記のように、送信側がＬＡＮＥ−ＣＲＣ−ＤＬＬＰを作成し送信することにより、受信側はエラーが発生したレーンを特定することができる。他のパケットにＣＲＣ符号が格納されていることから、エラーが発生したパケットを特定することができる。このため、エラーが発生したパケット、或いはそのパケットの正常受信されたものを保存するようにした場合には、エラーが発生したレーンを考慮した解析を行うことができる。
【００３６】
エラーが発生したレーン（故障したレーンを含む）の特定はパケットの送受信により行えることから、エラーが発生したレーンの特定のためにデータ処理装置１（システム）の運用を停止する必要はない。このため、エラーが発生したレーンへの対応に要する時間を最小限に抑えることができる。つまり、データ処理装置１の運用停止時間は最小限に抑えられ、運用稼動時間は最大化できる。この結果、データ処理装置１はより効率的に運用できることとなる。
【００３７】
以降は、上記のようなＬＡＮＥ−ＣＲＣ−ＤＬＬＰの送受信を可能にする本実施形態によるデータ送受信装置１１、及びデータ送受信装置について詳細に説明する。
図２は、本実施形態によるデータ送信装置の構成を説明する図である。このデータ送信装置１１ａは、図２に表すように、パケット生成回路２１、パケットＣＲＣ付与回路２２、パラレル−シリアル変換回路２３、レーン毎に用意された計８個のＣＲＣ計算回路２４（２４−０〜２４−７）、ＬＡＮＥ−ＣＲＣパケット生成回路２５、及びセレクタ２６を備える。
【００３８】
パケット生成回路２１は、搭載されたＣＰＵ２の例えばＣＰＵコアから送信対象とするデータ、及び送信指示を入力し、入力したデータを格納させたパケットを生成する。パケットＣＲＣ付加回路２２は、パケット生成回路２１が生成したパケットを入力し、入力したパケット全体を用いてエラー検出符号の一つであるＣＲＣ符号を計算し、得られたＣＲＣ符号をパケットに付加する。それにより、パケットＣＲＣ付加回路２２は、ＣＲＣ符号が付加されたパケットを出力する。なお、ＣＲＣ符号を得るアルゴリズムには多くの種類が存在するが、種類は特に限定されるものではない。また、エラー検出符号自体もＣＲＣ符号に限定されるものではない。つまりパリティ符号、或いはチェックサム等の他の種類のエラー検出符号を採用しても良い。
【００３９】
パケットＣＲＣ付与回路２２によりＣＲＣ符号が付加されたパケットは、８バイトの伝送路にパラレルに出力される。この８バイト単位のデータはセレクタ２６、及びＣＲＣ計算回路２４−０〜２４−７にそれぞれ入力される。
【００４０】
各ＣＲＣ計算回路２４−０〜２４−７は、８バイトのデータのなかから自身に対応する１バイトのデータを取り込み、４ビットのＣＲＣ符号を計算する。ＣＲＣ符号の計算は、パケットＣＲＣ付与回路２２が８バイトのデータを出力する度に行う。それにより、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰに格納される８レーン分のＣＲＣ符号は、各ＣＲＣ計算回路２４−０〜２４−７によって計算される。
【００４１】
ＬＡＮＥ−ＣＲＣパケット生成回路２５は、上記ＬＡＮＥ−ＣＲＣ−ＤＬＬＰを生成するものである。例えば、図７に表す挿入間隔を計時するためのカウンタを備えている。それにより、直前のＬＡＮＥ−ＣＲＣ−ＤＬＬＰを生成・出力してから挿入間隔が経過すると、ＬＡＮＥ−ＣＲＣパケット生成回路２５は、各ＣＲＣ計算回路２４−０〜２４−７が計算したＣＲＣ符号を取り込む。それにより、ＬＡＮＥ−ＣＲＣパケット生成回路２５は、取り込んだＣＲＣ符号を用いて２バイトのＣＲＣ符号を計算し、取り込んだＣＲＣ符号（４バイトのデータ）、及び計算したＣＲＣ符号を用いて図６（ａ）に表すようなＬＡＮＥ−ＣＲＣ−ＤＬＬＰを生成する。
【００４２】
ＬＡＮＥ−ＣＲＣパケット生成回路２５は、上記挿入間隔が経過すると、パケット生成回路２１に対し、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰを送信するためのＬＡＮＥ−ＣＲＣパケット挿入要求を行う。パケット生成回路２１は、そのＬＡＮＥ−ＣＲＣパケット挿入要求により、セレクタ２６にＬＡＮＥ−ＣＲＣパケット生成回路２５を選択させる切り換えを行う。現在、送信中のパケットが存在する場合、その切り換えは、パケットの送信が終了するのを待って行われる。それにより、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰは、設定された挿入間隔に応じて送信側から送信される。パケット生成回路２１によるセレクタ２６の切り換えが必要なことから、ＬＡＮＥ−ＣＲＣパケット生成回路２５によるＬＡＮＥ−ＣＲＣ−ＤＬＬＰの生成は、その切り換えタイミングに合わせて行われる。
【００４３】
ＬＡＮＥ−ＣＲＣパケット生成回路２５は、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰをセレクタ２６に出力した後、各ＣＲＣ計算回路２４−０〜２４−７をリセットする。それにより、各ＣＲＣ計算回路２４−０〜２４−７は、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰの送信後にパケットＣＲＣ付与回路２２から入力されるデータを用いたＣＲＣ符号の計算を行う。
【００４４】
ＬＡＮＥ−ＣＲＣ−ＤＬＬＰのパラレル−シリアル変換回路２３への出力が終了した後、セレクタ２６に対し、パケットＣＲＣ付与回路２２を選択させる切り換えが行われる。このようなことから、セレクタ２６によるＬＡＮＥ−ＣＲＣパケット生成回路２５の選択は、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰの送信用に一時的に行われる。
【００４５】
パラレル−シリアル変換回路２３は、８バイトのデータを１バイトのデータに分割し、分割後の各データにスクランブルを行い、スクランブルを行った後のデータに対してパラレル−シリアル変換を行う。それにより、レーン毎にデータをシリアル送信する。
【００４６】
このようにして、データ送信回路１１ａは、設定された挿入間隔に応じて、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰを送信する。次に図３を参照し、本実施形態によるデータ受信回路１１ｂの構成について詳細に説明する。
【００４７】
図３に表すように、本実施形態によるデータ受信装置１１ｂは、シリアル−パラレル変換回路３１、パケットＣＲＣ検査回路３２、回数カウント回路３３、デコーダ３４、レーン毎に用意されたＣＲＣ計算回路３５（３５−０〜３５−７）、レーン毎に用意された比較回路３６（３６−０〜３６−７）、レーン毎に用意された不一致回数カウント回路３７（３７−０〜３７−７）、エラーレーン特定部３８、及び設定変更指示回路３９を備えている。
【００４８】
シリアル−パラレル変換回路３１は、レーン毎にデータを受信してシリアル−パラレル変換を行い、変換後のデータをデスクランブルする。そのようにして得られた８バイトのデータをパラレルに出力する。
【００４９】
パケットＣＲＣ検査回路３２は、シリアル−パラレル変換回路３１から１パケット分のデータを入力する度に、１パケット分のデータのなかからＣＲＣ符号を抽出し、抽出したＣＲＣ符号、及びＣＲＣ符号以外のデータを用いてエラー検出を行う。ＣＲＣ符号以外のデータは、１パケット分のデータのなかから、ＳＴＰ及びエンドを更に除いた部分であり、この部分を用いてＣＲＣ符号が計算され、計算されたＣＲＣ符号が抽出されたＣＲＣ符号と比較される。この比較の結果、両者が一致していない場合に、エラーが発生していると見なされ、パケットＣＲＣ検査回路３２はエラー（ｅｒｒｏｒ）信号をアクティブにする。
【００５０】
回数カウント回路３３は、パケットＣＲＣ検査回路３２がエラー信号をアクティブにした回数を計数する。計数した回数（カウント値）が予め設定された閾値を越えた場合に、その回数が閾値を越えたか否かを表すエラー閾値オーバー信号をアクティブにする。このエラー閾値オーバー信号は設定変更指示回路３９に入力される。
【００５１】
シリアル−パラレル変換回路３１からパラレルに出力される８バイトのデータは、各ＣＲＣ計算回路３５−０〜３５−７に入力される。各ＣＲＣ計算回路３５−０〜３５−７は、図２の各ＣＲＣ計算回路２４−０〜２４−７と同様に、それぞれ対応する１バイトのデータを取り込み、４ビットのＣＲＣ符号を計算する。ＣＲＣ符号の計算は、シリアル−パラレル変換回路３１が８バイトのデータを出力する度に行う。それにより、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰに格納される８レーン分のＣＲＣ符号と比較する８レーン分のＣＲＣ符号は、各ＣＲＣ計算回路３５−０〜３５−７によって計算される。
【００５２】
デコーダ３４は、シリアル−パラレル変換回路３１からのＬＡＮＥ−ＣＲＣ−ＤＬＬＰのデータの出力に対応する。シリアル−パラレル変換回路３１からＬＡＮＥ−ＣＲＣ−ＤＬＬＰのデータが出力された場合、デコーダ３４は、８レーン分のＣＲＣ符号を抽出し、各ＣＲＣ符号を対応する比較回路３６に出力する。それにより、各比較回路３６−０〜３６−７は、デコーダ３４から入力したＣＲＣ符号と、対応するＣＲＣ計算回路３５が計算したＣＲＣ符号とを比較し、その比較結果を出力する。各比較回路３６−０〜３６−７は、その比較結果として、両者が一致していない場合に、その旨（不一致）を対応する不一致回数カウント回路３７に通知する。
【００５３】
デコーダ３４は、各比較回路３６−０〜３６−７にＣＲＣ符号を出力する一方、各比較回路３６−０〜３６−７による比較に影響を及ぼさないタイミングで各ＣＲＣ計算回路３５−０〜３５−７をリセットする。それにより、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰに続くパケットからＣＲＣ符号の計算を行わせる。
【００５４】
各不一致回数カウント回路３７−０〜３７−７は、対応する比較回路３６から不一致が通知された回数を計数する。不一致が通知される度に、回数をインクリメントし、論理値が１の信号を出力する。それにより、各不一致回数カウント回路３７−０〜３７−７が出力する信号のなかで論理値が１の信号は、対応するレーンでエラーが発生したか否かを表す情報となる。このことから以降、各不一致回数カウント回路３７−０〜３７−７が出力する信号は「エラー情報」と呼ぶこととし、その信号として論理値が１の信号を出力することは、エラー情報をアクティブにする等と表現する。
【００５５】
エラーレーン特定部３８は、各不一致回数カウント回路３７−０〜３７−７が出力するエラー情報を監視し、エラー情報をアクティブとした不一致回数カウント回路３７を設定変更指示回路３９に通知する。エラーレーン特定部３８は、不一致回数カウント回路３７毎に、エラー情報がアクティブになったか否かを表す信号であるエラーレーン情報を出力する。このことから、エラーレーン特定部３８は、例えばエラー情報をアクティブにした不一致回数カウント回路３７に対応するエラーレーン情報をアクティブにすることにより、その通知を行う。ここでは、アクティブのエラーレーン情報の論理値は１と想定する。
【００５６】
各エラーレーン情報は、それぞれ、対応するレーンでエラーが発生したか否かを表している。設定変更指示回路３９は、各エラーレーン情報の他に、エラーレーン特定部３８からエラー閾値オーバー信号を入力し、シリアル−パラレル変換回路３１に対する設定変更を行う。
【００５７】
設定変更指示回路３９は、設定指定部４０を備える。この設定指定部４０は、レーン毎に、そのレーンでのエラーの発生状況に応じて設定すべき内容を指定する。そのために、設定指定部４０は、レーン毎に、設定すべき内容を出力する設定出力部４１（４１−０〜４１−７）を備えている。
【００５８】
各設定出力部４１は、レジスタ４２〜４４、セレクタ４５、カウンタ４６、及びＡＮＤゲート４７を備えている。
各レジスタ４２〜４４には、それぞれ設定すべき内容（以降「設定情報」）が格納される。セレクタ４５は、各レジスタ４２〜４４のなかから一つを選択し、選択したレジスタに格納されているデータを出力する。カウンタ４６が出力するカウント値は、セレクタ４５に選択させるレジスタを指定する。カウンタ４６の初期値は０であり、カウンタ４６のカウント値が０の場合、セレクタ４５はレジスタ４２を選択する。同様にセレクタ４５は、カウンタ４６のカウント値が１の場合にはレジスタ４３、そのカウント値が２の場合にはレジスタ４４をそれぞれ選択する。
【００５９】
カウンタ４６のカウント値のインクリメントによってシリアル−パラレル変換回路３１に対し、設定変更指示回路３９から設定変更が指示される。インクリメントされたカウント値によってセレクタ４５が新たに選択したレジスタの設定情報は、今回、エラーが検出されたレーンで新たに設定すべき設定情報として、シリアル−パラレル変換回路３１に供給される。それにより、エラーが検出されたレーンの設定変更が行われる。回数カウント回路３３のカウント値は、その設定変更の後、例えばシリアル−パラレル変換回路３１によってリセットされる。
【００６０】
上記のように本実施形態では、エラーが発生したレーンを検出できることから、エラーが検出されたレーンの設定変更を必要に応じて行うようにしている。このため、エラーがより発生しないように、各レーンの設定を個別に最適化することができる。それにより、より適切なデータ伝送を実現させることができる。
【００６１】
カウンタ４６は、ＡＮＤゲート４７が出力する論理積の論理値が１となった回数を計数する。ＡＮＤゲート４７は、回数カウント回路３３から出力されるエラー閾値オーバー信号と、エラーレーン情報との論理積を出力する。エラー閾値オーバー信号は、パケット単位で検出されたエラーの回数が閾値を越えた場合にアクティブとなる。エラーレーン情報は、対応するレーンでエラーが検出された場合にアクティブとなる。このため、各設定出力部４１−０〜４１−７のカウンタ４６が計数する回数（カウント値）は、閾値を越える数のパケットにエラーが発生した状況下において、対応するレーンに発生したエラーの検出回数となる。
【００６２】
本実施形態では、このようにして、エラー閾値オーバー信号がアクティブとなることを、設定変更を行ううえでの前提条件としている。これは、パケットの伝送において、エラーの発生を完全に防ぐことが困難であり、許容できる範囲内で発生するエラーによる設定変更を回避するためである。このような前提条件を設けることにより、実際には適切と見なせる設定を別の内容の設定に変更するようなことを抑えることができる。
【００６３】
図４は、伝送系の詳細を説明する図である。図４に表すように、図２のパラレル−シリアル変換回路２３は、レーン３ａ毎に、Serdes（SERializer/DESerializer） Macro回路５０（５０−０〜５０−７）を備えている。図３のシリアル−パラレル変換回路３１も同様に、レーン３ａ毎に、Serdes Macro回路６０（５０−０〜５０−７）を備えている。レーン３ａは、一対の伝送線を含むものである。
【００６４】
パラレル−シリアル変換回路２３の各Serdes Macro回路５０−０〜５０−７は、パラレルのデータをシリアルのデータに変換するシリアライザ（Serializer）５１、及びシリアルでデータをレーン３ａ上に出力する送信回路５２を含む。
【００６５】
一方のシリアル−パラレル変換回路３１の各Serdes Macro回路６０−０〜６０−７は、ＬＥ（Linear Equalizer）６１、ＤＦＥ（Decision Feedback Equalizer）６２、及びデシリアライザ（Deserializer）６３を含む。
【００６６】
ＬＥ６１は、極性毎の増幅率の設定に従い、レーン３ａを介して受信したシリアルデータの減衰した高周波成分を極性別に増幅して信号品質を向上させる。ＤＦＥ６２は、過去の受信データ（信号）を用いて信号品質を向上させる。デシリアライザ６３は、ＤＦＥ６２から出力されたシリアルデータをパラレルデータに変換する。それにより、シリアル−パラレル変換回路３１は、８バイトのパラレルデータを出力する。
【００６７】
図５は、ＤＦＥの構成を説明する図である。図５に表すように、ＤＦＥ６２は、減算器７１、３つのバッファ７２〜７４、及び３つの増幅器７５〜７７を含む。
各バッファ７２〜７４には、それぞれ時間が異なる減算器７１の減算結果が格納される。各増幅器７５〜７７は、それぞれバッファ７２〜７５に格納された減算結果に対し、設定された増幅率であるタップ係数（図５中「DFE gain/tap」と表記）を乗算する。減算器７１は、ＬＥ６１から入力した１ビットの値から、各増幅器７５〜７７の出力する乗算結果を減算する。この減算結果が、ＤＦＥ６２の出力信号となり、バッファ７２に格納される。そのようにしてＤＦＥ６２は、現在の受信データから過去の受信データによる干渉成分を除去する。
【００６８】
図５に表すようなＤＦＥ６２を備えたSerdes Macro回路６０−０〜６０−７をシリアル−パラレル変換回路３１が搭載していた場合、図３の各レジスタ４２〜４４に格納される設定情報とは、ＬＥ６１及びＤＦＥ６２に係わる情報（共に増幅率を指定する情報等）である。カウンタ４６の初期値は０であり、カウンタ４６のカウント値が０のときにセレクタ４６はレジスタ４２を選択することから、レジスタ４２には最初に設定すべき内容の設定情報（図３中「設定Ａ（default）」と表記。以降「初期設定情報」と表記）が格納される。レジスタ４３には、初期設定情報の次に設定すべき内容の設定情報（図３中「設定Ｂ（予備）」と表記。以降「第１の変更設定情報」と表記）が格納される。レジスタ４４には、第１の変更設定情報の次に設定すべき内容の設定情報（図３中「設定Ｃ（予備）」と表記。以降「第２の変更設定情報」と表記）が格納される。
【００６９】
ＤＦＥ６２は、比較的に大きな電力を消費する。このことから、用意する設定情報は、ＤＦＥ６２を動作するか（イネーブルにするか）否かを指定する内容を含むものであっても良い。そのような設定情報を初期設定するような場合、ＤＦＥ６２は必要に応じて動作させることになるから、消費電力を抑えるのに効果的である。
【００７０】
その設定情報の内容は、パケットの受信側の構成に依存する。受信側の構成は、図４に表すようなものに限定されない。例えばイコライザとしては、ＬＥ、ＤＦＥ以外の種類も存在する（例えばＣＴＬＥ（Continuous-Time Linear Equalizer）。また、ＤＦＥのタップ係数を自動的に変更する機構（以降「自動変更機構」と表記）が搭載されることも多い。このため、タップ係数の変更の仕方を設定情報により変更するようにしても良い。これらのようなことから、設定情報も特に限定されるものではない。
【００７１】
本実施形態では、３つのレジスタ４２〜４４がそれぞれ設定情報を格納可能であることから、変更対象となる設定情報として第１及び第２の変更設定情報の２つを用意できるようにしている。しかし、変更対象とする設定情報は２つに限定されるものではない。
【００７２】
設定変更は、上記のように、エラー閾値オーバー信号がアクティブとなることを前提条件とすることにより、パケットＣＲＣ検査回路３２が閾値を越えるエラーを検出した場合に行われる。しかし、たとえデータ伝送が適切に行われていたとしても、非常に長い時間が経過する間に、パケットＣＲＣ検査回路３２が閾値を越えるエラーを検出することがありうる。また、ＤＦＥ６２、及び上記自動変更機構を備えている場合、エラーを発生させるデータ伝送は、後に続くデータ伝送にエラーを発生し易くすることから、短期間に多くのエラー（バーストエラー）を発生させる可能性がある。このようなことから本実施形態では、回数カウント回路３３を用いたエラー計測は以下のようにして行うようにしている。図９を参照して詳細に説明する。
【００７３】
この図９は、本実施形態におけるエラー計測方法を説明する図である。図９中の「ｂａｓｅ＿ｐｕｌｓｅ」「ｉｎｔｅｒｖａｌ［９：０］」「ｅｒｒ＿ｃｎｔ［３：０］」は、それぞれ、予め設定した時間が経過する度にレベルがＨ（論理値が１）になるパルス信号、エラー計測の単位となる単位計測期間を特定するための値、回数カウント回路３３のカウント値、をそれぞれ表している。また、マーク８１が重ねられた矢印は時間の流れを表している。それによりマーク８１はエラーが発生したタイミングをその位置で表している。
【００７４】
本実施形態では、パルス信号ｂａｓｅ＿ｐｕｌｓｅを用いて回数カウント回路３３の動作を制御することにより、そのパルス信号ｂａｓｅ＿ｐｕｌｓｅのレベルがＬとなっているＬ期間９１に回数カウント回路３３が計数可能なエラーを１つのみとしている。それにより、バーストエラーが発生したとしても、Ｌ期間９１に回数カウント回路３３はカウント値を１回インクリメントするだけとなる。このため、バーストエラーによる事実上、不必要な設定変更を抑えることができる。
【００７５】
ＬＡＮＥ−ＣＲＣ−ＤＬＬＰは、図７に表すように、設定された挿入間隔で送信側から送信される。このため、ＬＡＮＥ−ＣＲＣ−ＤＬＬＰによるエラーが発生したレーンの検出では、パルス信号ｂａｓｅ＿ｐｕｌｓｅによるエラーの検出と同様に、バーストエラーに対応できるようになっている。
【００７６】
値ｉｎｔｅｒｖａｌ［９：０］は、パルス信号ｂａｓｅ＿ｐｕｌｓｅがＨとなる度にデクリメントされる。図９中の「ｎ」は初期値を表し、単位計測期間は、初期値ｎ、及びパルス信号ｂａｓｅ＿ｐｕｌｓｅの１周期によって特定される時間となる。０の値ｉｎｔｅｒｖａｌ［９：０］は、単位計測期間の経過を意味し、デクリメントは０となることで終了する。
【００７７】
本実施形態では、より正確には、この単位計測期間内に発生するエラーの数が回数カウント回路３３に与える閾値を越えるか否かを、設定変更における前提条件としている。それにより、回数カウント回路３３のカウント値はＢＥＲ（Bit Error Rate）の値として用いている。
【００７８】
このために、回数カウント回路３３のカウント値は、値ｉｎｔｅｒｖａｌ［９：０］が０となる前に回数カウント回路３３がエラー閾値オーバー信号をアクティブにしない場合、初期値（＝０）にリセットされる。また、回数カウント回路３３がエラー閾値オーバー信号をアクティブにした場合、ＬＥ６１、ＤＦＥ６２の設定変更が行われた後、回数カウント回路３３のカウント値は初期値にリセットされる。そのリセットにより、エラー閾値オーバー信号はイナクティブとなる。
【００７９】
ＬＥ６１、ＤＦＥ６２の設定変更を行った場合、ＤＦＥ６２のリトレーニングが続けて行われ、そのリトレーニングを行った後、通常のデータ伝送が再開される。このため、回数カウント回路３３がエラー閾値オーバー信号をアクティブにした場合、回数カウント回路３３のカウント値のリセットは、通常のデータ伝送の再開時に行われる。このリセットは、シリアル−パラレル変換回路３１が例えばリトレーニングの終了により行う。
【００８０】
パルス信号ｂａｓｅ＿ｐｕｌｓｅによる回数カウント回路３３の動作制御は、例えばパケットＣＲＣ検査回路３２がＬ期間９１内にエラー信号をアクティブにした場合に、パルス信号ｂａｓｅ＿ｐｕｌｓｅのレベルが次にＨとなるまでその状態を維持させることで実現できる。
【００８１】
回数カウント回路３３は、エラー信号がアクティブになる回数を計数し、その回数が閾値を越えた場合にエラー閾値オーバー信号をアクティブにする。このことから、値ｉｎｔｅｒｖａｌ［９：０］のデクリメントは回数カウント回路３３に行わせても良い。その場合、値ｉｎｔｅｒｖａｌ［９：０］のデクリメントは、そのデクリメントを行っていない状況でエラー信号がアクティブになることを条件に開始させれば良い。エラー閾値オーバー信号をアクティブにすることなく、値ｉｎｔｅｒｖａｌ［９：０］が０になれば、回数カウント回路３３自身に計数したカウント値のリセット、値ｉｎｔｅｒｖａｌ［９：０］への初期値ｎのセット及びデクリメントの停止を行わせれば良い。エラー閾値オーバー信号がアクティブになった際には、回数カウント回路３３のカウント値のリセット時に、値ｉｎｔｅｒｖａｌ［９：０］への初期値ｎのセット及びデクリメントの停止を合わせて行わせれば良い。
【００８２】
例えば１０Ｇｂｐｓで１００秒間に８回のエラーまで許容できるとする場合、パルス信号ｂａｓｅ＿ｐｕｌｓｅの１周期は、１０９シンボル（１シンボル＝１０ビット）分のデータの送受信に要する時間とし、初期値ｎとして１００を設定すれば良い。エラー閾値オーバー信号をアクティブにするか否かを決定する閾値としては７を設定すれば良い。
【００８３】
なお、本実施形態では、データ送受信装置１１をＣＰＵ２に搭載させているが、データ送受信装置を搭載する半導体装置（ＬＳＩ：Large Scale Integration）はＣＰＵ２に眼底されるものではない。ＧＰＵ（Graphics Processing Unit）等にデータ送受信装置１１を搭載しても良い。
【００８４】
また、本実施形態では、受信側にレーン単位の設定変更を行わせているが、故障等の発生によりエラーの発生頻度が高いような場合、例えば許容範囲を超えるエラーが発生した場合、発生頻度の高いレーンを停止させる縮退を自動的に行わせるようにしても良い。例えば図３に表すような構成では、カウンタ４６のカウント値が３以上となった場合に、縮退を行わせるようにしても良い。エラーが発生したレーンを検出するためのＣＲＣ符号（エラー検出符号）はＬＡＮＥ−ＣＲＣ−ＤＬＬＰに格納して送信側から受信側に送信するようにしているが、そのようなＣＲＣ符号は別の方法で受信側に送信するようにしても良い。例えば送信すべきパケットが無くなった、或いは比較的に少ない状況に、１つのレーン３ａを用いて送信することも考えられる。
【００８５】
本実施形態では、システムの運用中に、エラーが発生したレーン（伝送路）の検出することを想定している。しかし、エラーが発生したレーンの検出は、レーン毎に設定を最適化することを可能にする。このことから、エラーが発生したレーンの検出は、システムの設定（調整）のために行うようにしても良い。つまり、エラーが発生したレーンの検出は、システムの運用中のみに行わなくとも良い。
【００８６】
上記システムは、本実施形態ではデータ処理装置１が相当する。しかし、本実施形態のようなデータ送受信装置１１は、データ処理装置間のデータ伝送に用いることもできる。その場合、システムは、複数のデータ処理装置を含むものとなる。このことから、データ処理装置は、複数のデータ処理装置を接続したものであっても良い。
【符号の説明】
【００８７】
１    データ処理装置
２    ＣＰＵ（プロセッサ）
３    バス
３ａ    レーン
１１    データ送受信装置
１１ａ    データ送信装置
１１ｂ    データ受信装置
２１    パケット生成回路
２２    パケットＣＲＣ付与回路
２３    パラレル−シリアル変換回路
２４、２４−０〜２４−７、３５、３５−０〜３５−７    ＣＲＣ計算回路
２５    ＬＡＮＥ−ＣＲＣパケット生成回路
２６、４５    セレクタ
３１    シリアル−パラレル変換回路
３２    パケットＣＲＣ検査回路
３３    回数カウンタ回路
３４    デコーダ
３６、３６−０〜３６−７    比較回路
３７、３７−０〜３７−７    不一致回数カウント回路
３８    エラーレーン特定部
３９    設定変更指示回路
４０    設定指定部
４１、４１−０〜４１−７    設定出力部
４２〜４４    レジスタ
４６    カウンタ
４７    ＡＮＤゲート
５０、５０−０〜５０−７、６０、６０−０〜６０−７    Serdes Macro回路
６１    ＬＥ
６２    ＤＦＥ
【図１】
2012199724.tif 000003
【図２】
2012199724.tif 000004
【図３】
2012199724.tif 000005
【図４】
2012199724.tif 000006
【図５】
2012199724.tif 000007
【図６】
2012199724.tif 000008
【図７】
2012199724.tif 000009
【図８】
2012199724.tif 000010
【図９】
2012199724.tif 000011