(57)【特許請求の範囲】
【請求項１】
Pチャネル（Pは２以上の正の整数）の信号線路を並列使用して同期信号を伝送するデータリンク装置において、
他の装置においてQ’ビットからQビットに符号化された各チャネルの信号を受信する受信部と、
前記受信部で受信した信号をQビットからQ’ビットに復号する復号処理部と、
前記復号された信号のうち一部または全ての並列信号線から受信した信号に含まれるY＋１個の連続データパターンを観測することで該並列信号間のスキュー（伝送遅延時間差）を検出し、Q’×Pビット（＝１ワード）単位で前記並列信号間のスキューを補正する検出部と、
前記並列信号同士を同期化する同期部とを有し、
前記データパターンは、以下の（１）〜（３）の条件を満たすことを特徴とするデータリンク装置。
（１）前記並列チャネル間で見込まれる最大スキューを、搬送波クロック周期を単位としてWビット幅、このWビットのスキューを、Qビットからなるキャラクタを単位として判定する（スキューの最大値をXキャラクタと表す）。但し、XはX＝２Y＋１で表せる整数であり、YはY＝Q×（２Y−１）≧Wを満たす正の整数とする。
（２）前記データパターンを、２種類の異なるキャラクタA、B（共にQビット幅）の配列で表すZ個のキャラクタ（但しZ＝X＋Y＋１）のデータパターンとする。前記A、Bの２つのデータパターンの内少なくとも一方は、通常のデータ交信時には出現しないスキュー検出・補正専用のデータパターンとする。
（３）前記スキュー検出・補正専用のデータパターンは、先頭からF番目（Fは２からX−１までの任意の整数）のキャラクタを先頭とするY＋１個の連続キャラクタパターンにおける、先頭からY個の連続パターンは、先頭からF−１番目のキャラクタを先頭とする、Y＋１個の連続キャラクタパターンにおける最後尾からY個の連続パターンと等しく、かつ先頭からF番目のキャラクタを先頭とする、Y＋１個の連続キャラクタパターンにおける最後尾からY個の連続パターンは、先頭からF＋１番目のキャラクタを先頭とするY＋１個の連続データパターンにおける先頭からY個の連続パターンと等しく、さらに先頭からF番目のキャラクタを先頭とするY＋１個のデータの連続パターンは、F＋１番目のキャラクタを先頭とするY＋１個のデータの連続パターンと、Fが２からX＋１の任意の整数の場合において異なる。
【請求項２】
請求項１記載のデータリンク装置であって、
前記AとBのデータパターンをそれぞれPINGとPONGのデータパターンとし、
前記PINGとPONGは、該PINGとPONGの間では同じY＋１個の連続パターンは出現しないものであって、
さらに、前記PINGは自装置のスキュー検出・補正が未完な場合に送信するものであり、前記PONGは自装置のスキュー検出・補正が完了し、かつ前記他の装置からPINGを受信している場合に送信するものであることを特徴とするデータリンク装置。
【請求項３】
さらに、並列チャネル毎にデータ信号とクロック信号を１クロック周期の範囲内で位相補正するビット同期機能と、並列チャネル毎にQビットで構成するキャラクタ信号の先頭ビットを検出して同期出力するキャラクタ同期機能を搭載することを特徴とする請求項１に記載のデータリンク装置。
【請求項４】
前記検出部は、前記他の装置より並列データ信号とは別に受信した、該データ信号に同期した搬送クロック信号を同期クロック信号として前記各並列データとクロック信号のスキューを検出・補正することを特徴とする請求項１から３までのいずれか１項に記載のデータリンク装置。
【請求項５】
前記一部もしくは全てのチャネルについて、データ信号の変動エッジから同期クロックを抽出するクロックデータリカバリー回路を搭載し、受信した一部もしくは全てのデータ信号から該クロックデータリカバリー回路にてクロック成分を抽出し、該クロック信号を同期クロック信号として各並列データ及びクロック信号間のスキューを検出・補正することを特徴とする請求項１から３までのいずれか１項に記載のデータリンク装置。
【請求項６】
スキューの検出補正に使用するデータ生成回路部を、レーザアレイを搭載した並列光送信モジュールの内部に実装することを特徴とする請求項１から５までのいずれか１項に記載のデータリンク装置。
【請求項７】
スキューの検出補正に使用するスキュー検出・補正回路部を、フォトダイオードアレイを搭載した並列光受信モジュールの内部に実装した構造を特徴とする請求項１から５までのいずれか１項に記載のデータリンク装置。
【請求項８】
並列信号を異なる波長の光信号にて多重搬送し、かつ該多重化信号を一本のシリアルファイバで伝送する構造を有することで、波長多重化した複数チャネルを用いた並列同期伝送を実現することを特徴とする請求項１から７までのいずれか１項に記載のデータリンク装置。
【請求項９】
検出と補正を要求するスキューの最大値を、外部信号にて入力し、該外部信号の大きさに応じて上記Yの値を、以下の式を満たす正の整数と決定条件を変更し、
Q×(２Y−１) ≧ W ＞ Q×(２Y-1−１)
さらに算出した該Yの値を元に、必要最小限の大きさのスキュー検出・補正用データパターンを、生成して交信することにより、任意の大きさのスキューに対して、そのスキューに応じた必要最小限のスキュー検出・補正機能を提供することを特徴とする請求項１から８までのいずれか１項に記載のデータリンク装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、伝搬遅延時間差（スキュー）を検出・補正する技術に関し、特に並列信号線路を用いて同期信号を伝送する装置において、並列データ信号間の伝搬遅延時間差を検出・補正する電子回路装置に関するものである。
【０００２】
【従来の技術】
計算機システム及び伝送・交換機の装置内、装置間のデータ接続、および長距離データ通信系において、伝送量を大容量化するには、複数のデータ伝送路を並列に使用して同期データを伝送する方法が、一般的に用いられる。中でも非常に距離の短い装置内部のデータ接続にはフラットケーブルが用いられる。そして、装置間などの数１００メートルまでのデータ伝送には、発光素子、受光素子と光ファイバからなる光信号伝送系を並列駆動して信号伝送する光リンク技術が用いられる。そして、長距離のデータ伝送には、波長多重伝送（WDM）通信技術が一般的に用いられている。これらを総称する「並列多重伝送技術」は、低速な信号線路を複数使用する事により、一本の高速変調した信号にデータを乗せるシリアルデータ伝送と比較して、低コストに大容量データ伝送が実現できる。
【０００３】
この並列データ伝送系を用いて同期データを伝送する場合に問題となるのは、信号線路の特性バラつきにより複数の信号線路間のデータ伝搬速度が異なる事による、信号間の伝搬遅延時間差（スキュー）である。スキューが存在する結果、送信側では同一のタイミングで送信した並列同期データが、受信側では相互に異なるタイミングで受信される。このためスキューを補正し、受信側での同期処理を可能にする方法が是非とも必要である。
従来のデータ通信システムにおける並列信号のスキュー検出・補正には、主に２つの技術が用いられている。一つはゲートラッチを用いてスキュー検出・補正する技術、もう一つはデータ信号内にスキュー検出・補正用のデータパターンを挿入し、ロジック回路にてスキュー検出・補正を実施する技術である。
【０００４】
ゲートラッチにてスキュー補正をする方式は、高井厚志らが雑誌IEEE Journal of Lightwave Technology, １２巻、第２６０頁から第２７０頁にて報告している。この報告においては、光送信インタコネクションモジュールのレーザ駆動回路と光受信インタコネクションモジュールのホトダイオード駆動回路の内部に、各々ゲートラッチ回路を配置し、並列駆動する１１チャネルのデータチャネル間のスキューを１チャネルのクロック信号にてリタイミングする構成を用いている。また、特開平５-２３４２６６のクロックスキュー補正回路でも、同じくフリップフロップ回路を用いてデータのクロック信号を補正する回路を実現している。また、特開平７-３０７７６４光並列受信装置に用いられるデータ識別回路、光並列受信装置、光並列伝送装置及び光伝送ファイバの端末構造では、多相クロックを用いてデータエッジを検出する回路を実現している。上記いずれの３つの方式ともに、クロック信号に対するデータ信号のエッジを検出する方式であり、補正できる信号のスキュー量は、クロック信号の１周期以内と小さい。
【０００５】
ロジック回路にて１周期以上のより大きなスキューを補正する技術は、以下の３つの方式が提案されている。第１の方式は、特許第３１９３３５２号および特開平１１-３４１１０２のチャネル間スキュー補償装置に提案されている。本発明では、mチャネルの並列信号路間のスキューを補償するために、m’チャネルの冗長信号線路を設けて、合計m+m’の並列信号路に符号化した信号を乗せる事で、常時のスキュー補償を実現している。第２の方式は、特開平１１-２９８４５７パラレル光送信/光受信モジュールで提案されている方式で、スキュー検出・補正用に専用の独立したスキュー補正用ロジック回路を受信部に設ける方式である。第３の方式は、イーサネットのマルチチャネル通信において一般的に用いられている方式で、８B１０B符号のスペシャルキャラクタから構成したスキュー検出・補正用の専用パターンを通信して受信側でスキューを補正する。この第３の方式では、常時のスキュー検出・補正は実施せず、スキュー検出・補正が必要な通信の初期状態（リセット解除直後）およびスキュー変動時のみ、以下のスキュー検出・補正専用のデータパターン”I+I+I-I-I+I-I+I-I+I-I+I-I+I-I+I-“もしくは”I-I-I+I+I-I+I-I+I-I+I-I+I-I+I-I+”(I+は８B１０BコードスペシャルキャラクタK２８.５+、 I-は同じくK２８.５-を表す)をチャネル毎に送信し、受信側でI+I+I-I-もしくはI-I-I+I+の位置を探索する事で、並列チャネル間でのスキュー量を検出、補正する。
図２に第３の方式による、スキュー量１２キャラクタを想定した場合の、ギガビットイーサネットのマルチリンクで用いられるデータパターンと、それを用いた３チャネルのスキュー判定例を示す。
【０００６】
【発明が解決しようとする課題】
本発明が解決しようとする課題は、数クロック以上の大きなスキュー量を補正する際に必要となる回路規模と判定時間を削減する事にある。
従来技術におけるゲートラッチ回路を用いた方式は、ゲートラッチのセットアップホールド時間を満足する必要上、補正可能な最大のスキューは、±０．５クロック程度と小さい。スキューが１クロック以内のデータ伝送は、短距離もしくは非常にデータ変調速度の遅い領域である。本発明はより高速で、よりスキュー量の大きな領域を対象としている。
【０００７】
一方、フレーム同期方式を用いた前記第１の方式は、スキュー調整用のm’個の冗長チャネルの数を増やす事で、データ通信中に常時数クロックのスキューを補正できるが、その実現にはmチャネルの信号を通信するのにm’チャネルの冗長チャネルを拡大設置する必要があり、装置規模の拡大が問題となる。
前記第２の方式も、スキュー検出・補正用に設置する独立した受信系回路の設置により、回路規模をデータ通信用の受信回路規模を２倍に拡大する方式である。
【０００８】
前記第３の方式は、第１のように信号線路の拡張が必要であり、第２の方式のように受信側にスキュー検出・補正専用の受信回路を設ける必要があるなど、装置構造の大幅な拡大は要らない反面、スキュー判定時間中（I+I+・・・パターンが通信中）データ通信を実現できないデメリットを有する。
【０００９】
本発明では、ゲートラッチ回路では補正不可能なスキュー量の補正を目的とするため、フレーム同期式のスキュー検出・補正の使用を前提と考え、第１および第２の方式の様な大幅な装置構成の拡大（チャネル数増や、光受信器を独立に設けるなど）はせず、第３の方式の様にデータ通信の初期状態（リセット解除直後）およびスキュー変動時のみに専用のデータパターンを通信する方式を用いる。しかし第３の方式は、スキュー検出・補正動作時にデータ通信が一時的に不可能になる方式のため、スキューの検出と補正動作は短時間で処理する必要がある。本発明の課題は、この専用のデータパターンを交信してスキュー検出・補正を実現する装置において、処理に要する時間と回路規模を削減する事にある。
【００１０】
【課題を解決するための手段】
上記の課題を解決するために本願発明では、スキューを検出するための特殊パターンを利用することを提案する。そして、送信側より、スキューを検出するための特殊パターンを受信側に送信し、受信側で、特殊パターン中の所定個数のキャラクタ配列を検出し、検出されたキャラクタ配列に基づいて、スキュー量を測定する。
【００１１】
今、保証したいスキューの最大値をXとする。言い換えると、検出すべきスキュー量はX種類である。ただし、スキュー０はX種類の中に含まないものとする。スキュー単位は例えば、搬送波クロック周期（単位をビットとする）である。このスキューそれぞれについて、ユニークなキャラクタ配列を定める。
例を挙げて説明すると１５ビットのスキューを保証する場合には、１５ビットにスキュー０（ずれ無し）の１ビットを加え、０〜１５ビットの１６通りのずれを表現できるキャラクタ配列を用いる。これを実現できる最小のキャラクタ配列は、キャラクタ単位としてAとBの２種類を用いた場合、これらを４個組み合わせた配列となる。Aを1（または0）に対応させ、またはBを0（または1）に対応させると、"0000"から"1111"の４桁となる。もちろん４桁以上であれば同様の効果が得られる。後に詳述するように、往復のスキューをそれぞれ検出するためには、
この倍の"00000"から"11111"の5桁とすればよい。
すなわち、２種類のキャラクタ（Y+1）個の配列により特定可能なスキューの最大値は2のY乗から1を引いた値X(=2Y-1)である。これにより、スキュー量に特定のキャラクタ配列が１対１に対応するので、キャラクタ配列の判定によってスキュー量を直ちに判定することができる。
【００１２】
次に、上述のキャラクタ配列を形成する方法について説明する。ここでは最も短いキャラクタ配列を用いることとする。この場合、所定個数のキャラクタ配列は、キャラクタがＹ＋１個並べられたものであり、上記特殊パターンは以下の規則（１）〜（７）に従って定義される。
（１）２つのキャラクタAとBを定義する。これらのキャラクタAとBは、"1"や"0"の１ビットで形成されても良いし、"0000"〜"1111"などの複数ビットから形成されても良い。
次に、 Y+１個のキャラクタからなるキャラクタ配列を少なくともX組、AとBを組合せて生成する。通常のデータとの弁別を容易にするために、AとBの少なくとも一方はスキュー検出専用のキャラクタとするのがよい。 X組のパターンを形成するルールは以下の（２）〜（７）のとおりである。
【００１３】
（２）キャラクタBのみをＹ＋１個数並べて、所定個数のキャラクタ配列を定義する
（３）直前に定義したキャラクタ配列の最上位キャラクタを削除する
（４）上記（３）で最上位キャラクタを削除したキャラクタ配列の最下位キャラクタの位置に（ａ）Aを加えることで、既に定義したキャラクタ配列と合致しなければAを加え、（ｂ）Aを加えることで、既に定義したキャラクタ配列と合致する場合Bを加えることにより、所定個数のキャラクタ配列を定義する
【００１４】
（５）上記（３）にもどり、（４）によってキャラクタ配列を順に定義していき、最上位キャラクタがAでその他がすべてBのキャラクタ配列が出現したら終了とする
（６）キャラクタBのみをＹ＋１個数並べ、その後に、（４）の（ａ）または（ｂ）で加えたキャラクタを順番に付加していき、最後のキャラクタの後ろに先頭のキャラクタＢを接続してキャラクタのループを定義する。すなわち、図３で説明されるように、このようなパターンの生成規則を用いると、生成されたパターン配列は、最終的に一定周期で循環する。
【００１５】
（７）定義されたループから少なくともＺ個の連続したキャラクタを抽出し、特殊パターンとして定義する（ただしＺ＝Ｘ＋Ｙ＋１）。
本発明の一つの特徴は、当該特殊パターンの配列自体にあるので、配列の形成手順自体は必ずしも上記（１）〜（７）に限定されないことに留意されたい。要するに形成された特殊パターンが結果として（１）〜（７）の条件を満たせばよい。
次に特殊パターン中の任意の連続するY+１個のキャラクタ列をスキュー０（スキュー無し）に対応させて定め、１キャラクタずつ順次シフトさせたY+１個のキャラクタ列を、それぞれ１ビットからXビットまでのスキューに対応させる。
【００１６】
以上により、スキューに対応されたY+１個のキャラクタ列は全て異なる配列となる。スキューを検出する際には、データ送信に先立ち（送信中でも良い）、上記のスキュー検出用パターンを送信し、受信側では所定の基準点においてウインド幅Y+１の観測用ウインドを形成して観測する。観測されたキャラクタ列によりスキュー量が検出できる。
【００１７】
以下に本発明を並列双方向リンクに適用した場合を説明する。２つの通信ノード間をつないだ双方向リンクの各通信路のスキューを以下に述べるルールを満たすパターンを交信してスキュー検出・補正する。
（１） 並列チャネル間で見込まれる最大のスキューを、搬送波クロック周期をずれの単位としてWビット幅とし、このWビットのスキューをQビットからなるキャラクタを単位として判定するとする（スキューの最大値をXキャラクタと表す）。但し、Xは２Y-１で表せる整数とし、Yは  Q×(２Y-１) ≧ W > Q×(２(Y-1)-１) を満たす正の整数とする。
（２） この時、スキュー検出・補正用のデータパターンとして２種類の異なるZ個キャラクタ（Z=X+Y+１）のデータパターンPINGとデータパターンPONGを交信してスキュー検出・補正を実施する。
【００１８】
（３） PINGとPONGの両パターンは、以下の特性を有する。
先頭からF番目（Fは２からX+１までの任意の整数）のキャラクタを先頭とするY+１個の連続キャラクタパターンにおける、先頭からY個の連続パターンは、先頭からF-１番目のキャラクタを先頭とする、Y+１個の連続キャラクタパターンにおける最後尾からY個の連続パターンと等しく、
なおかつ先頭からF番目のキャラクタを先頭とする、Y+１個の連続キャラクタパターンにおける最後尾からY個の連続パターンは、先頭からF+１番目のキャラクタを先頭とするY+１個の連続データパターンにおける先頭からY個の連続パターンと等しく、
しかも先頭からF番目のキャラクタを先頭とするY+１個の連続データのパターンは、F+１番目のキャラクタを先頭とするY+１個のデータの連続パターンと、PINGとPONGの相互において、Fが２からX+１の、任意の整数の場合において異なる（PINGとPONGの間でも同じY+１個の連続パターンは出現しない）。
【００１９】
（４） データパターンPINGは、双方向リンクで接続した両端のノード夫々において、自ノードのスキュー検出・補正が未完の場合に送信する。データパターンPONGは、双方向リンクで接続した両端のノード夫々において、自ノードのスキュー検出・補正が完了し、対向したノードからPINGパターンを受信している場合に送信する。
受信側では、PINGもしくはPONGパターンを受信した際に、全並列チャネル同時に、Y+１キャラクタ分のデータパターンを観測する事により、相互のデータチャネル間のスキュー値を判定する事が可能となる。さらに、PING、PONGと二つのデータパターンで交信する事により、双方向リンクを構成する両端ノードが、対向接続したノードのスキュー検出・補正状態を互いに監視する事が可能になる。
【００２０】
【発明の実施の形態】
以下、本発明の実施の形態を説明する。以下の例では、理解を容易にするために具体的数値を用いて説明するが、これらの数値はあくまでも例示であり、本発明がこれらの数値に限定されることを意味するものではない。
（実施例１）
図１はスキュー量最大１５キャラクタを想定した場合の、本発明で用いるPING/PONGデータパターンと、それを用いた３チャネルのスキュー判定例の概念図である。本実施例においては、変調速度１ギガビット毎秒の３つの並列チャネルにおいて、最大１５０nsのスキューを補正する。すなわち、１キャラクタのずれが１０nsに対応する。例えば、図１でＣＨ１とＣＨ２は４０ｎｓのずれを持っている。
【００２１】
まず、図１に示すデータパターン（PINGとPONG）を用意する。PINGとPONGの生成方法を以下に示す。
（１） 並列チャネル間で見込まれる最大のスキューを、搬送波クロック周期を単位としてWビット幅とし、このWビット幅のスキューをQビット幅からなるキャラクタを単位として判定するとする。ここで、スキューの最大値をXキャラクタと表す。すなわちW = Q×Xである。
但し、Xは２Y-１で表せる正の整数とし、Yは
Q×(２Y-１) ≧ W > Q×(２(Y-1)-１)   式１
を満たす正の整数とする。
図１の例ではスキューの最大値を15キャラクタとしており、キャラクタA, Bは10ビットで構成されているため、X＝15、Q＝10、W＝150、Y＝4である。
【００２２】
（２） この時、スキュー検出・補正用のデータパターンとして２種類の異なるキャラクタ（A、B）Z個からなるのデータパターンPINGとデータパターンPONGを交信してスキュー検出・補正を実施する。ここで、Z=X+Y+１である。スキュー検出は下述の様に、Y+1個のキャラクタを観測する事で実現する。Y+1個のキャラクタにより検出可能なスキューの最大値は2のY乗から1を引いた値X(=2Y-1)である。Xを想定するスキューの最大値を上回る最小の値とする事が、観測用のデータパターン幅を最適（最小）化する上で必要である。図１の例ではZ=15＋4＋1=20となる。
【００２３】
（３） PINGパターンは以下のルールで生成する。
(ア) まずQビットからなる２つのキャラクタを仮定する（以下AとB）。
(イ) Y+１個のキャラクタ列をX組、AとBを組合せて生成する。但し、該キャラクタ列においては、Aの合計数はBの合計数より少ない事を条件とする。ここで、AとBの少なくとも一方はスキュー検出・補正専用のキャラクタとする。
(ウ) 以下の順でX組のパターンを、０からXキャラクタまでのスキュー（合計X+１個）に対応させる（時間換算で０nsから１５０nsまでのスキューを、１０ns刻みで対応づける）。
(エ) ０nsスキューに対応するパターンは、Bのみを並べた構成とする。
(オ) １キャラクタ(１０ns)のスキューに対応したパターンは、０nsに対応したパターンの最上位キャラクタを消去した上で、１キャラクタずつ上位にシフトし、最下位キャラクタの位置に
▲１▼ Aを加えることで、既出のパターンと合致しなければAを加える。
▲２▼ Aを加えることで、既出のパターンと合致する場合Bを加える。
(カ) 以下（オ）にもどり、２キャラクタ(２０ns)からX+１個(１５０ns)までのスキューに対応したパターンは、順に生成していく。
(キ) Aが上位より最大数(AはBより少ない)ならんだパターンを、０nsのスキューに再度対応づける形で再整列し、その後（オ）から（カ）の工程で最下位に付加したキャラクタA,Bを順につなげる事でPINGパターンとする。
【００２４】
（５） PONGパターンは以下のルールで生成する。
(ア) まずQビットからなる２つのキャラクタを仮定する（以下AとB）。
(イ) Y+１個のキャラクタ列をX組、AとBの組合せを用いて生成する。但し、該キャラクタ列においては、Bの合計数はAの合計数より少ない事を条件とする。ここで、AとBの少なくとも一方はスキュー検出・補正専用のキャラクタとする。
(ウ) X組のパターンを、０からXキャラクタまでのスキュー（合計X+１個）に対応させる。
(エ) ０nsスキューに対応するパターンは、Aのみを並べた構成とする。
(オ) １キャラクタ(１０ns)のスキューに対応したパターンは、０nsに対応したパターンの最上位キャラクタを消去した上で、上位に１キャラクタシフトし、最下位キャラクタの位置に
▲１▼ Aを加えることで、既出のパターンと合致しなければAを加える。
▲２▼ Aを加えることで、既出のパターンと合致する場合Bを加える。
(カ) 以下（オ）にもどり、２キャラクタ(２０ns)からX+１個(１５０ns)までのスキューに対応したパターンは、順に生成していく。
(キ) Aが上位より（最大数-１）個ならんで、その後ろにBがならび、最後にAが付いたパターンを０nsのスキューに再度対応づける形で再整列し、その後（オ）から（カ）の工程で最下位に付加したキャラクタA,Bを順につなげることでPONGパターンとする。
【００２５】
実際にこの生成ルールを、１５０nsのスキューの補正に適用する。
（１） まず、スキュー検出・補正用のキャラクタとして、１０ビットのキャラクタK２８.５とK２８.１を用意する。K２８.５とK２８.１は８B１０Bコードにおけるスペシャルキャラクタである。本スキュー検出補正回路においては、K２８.１はスキュー検出・補正専用のキャラクタコードとし、K２８.１の検出により、スキュー検出・補正モードに入る。また、K２８.５およびK２８.１のディスパリティは８B１０Bコードのルールにしたがって交信する。
【００２６】
（２） １５０nsのスキューは、１ギガビット毎秒の変調速度（周期１ns）で１５０ビットに相当し、１０ビットのキャラクタ（K２８.５もしくはK２８.１）を単位とすると、１５キャラクタ分に相当する。
（３） １５キャラクタ分のスキューを仮定すると、生成ルールにおけるX,Y,Zは、１５、４，２０と算出される。
式１に代入すると以下の様に、条件式（式１）を満たす
１０×（２4-１）  ≧ １５０  > １０×（２3-１）          式２
【００２７】
（４） PINGパターンを以下の様に生成する。
(ア) まず、Y+１個（５個）のA(K２８.１),B(K２８.５)の組合せデータパターンを、BBBBBを初期値として１６個生成する。
１）BBBBB
２）BBBBA（A追加）
３）BBBAA（A追加）
４）BBAAB（Aは２個以内が条件、B追加）
５）BAABB（Aは２個以内が条件、B追加）
６）AABBB（Aは２個以内が条件、B追加）
７）ABBBA（A追加）
８）BBBAB（BBBAAは既出、B追加）
９）BBABA（A追加）
１０）BABAB（Aは２個以内が条件、B追加）
１１）ABABB（Aは２個以内が条件、B追加）
１２）BABBA（A追加
１３）ABBAB（Aは２個以内が条件、B追加）
１４）BBABB（BBABAは既出、B追加、）
１５）BABBB（BABBAは既出、B追加、）
１６）ABBBB（ABBBAは既出、B追加、）
(イ)   ６番目のAABBBを先頭に並べ替える（AAが最大数2個先頭にならぶ）。AABBBをスキュー値０に対応させる。
１）AABBB
２）ABBBA
３）BBBAB
４）BBABA
５）BABAB
６）ABABB
７）BABBA
８）ABBAB
９）BBABB
１０）BABBB
１１）ABBBB
１２）BBBBB
１３）BBBBA
１４）BBBAA
１５）BBAAB
１６）BAABB
(ウ)   AABBBを先頭に、下線部の記号をならべて、PING パターンとする。
AABBBABABBABBBBBAABB
【００２８】
以上のルールにより、図１に示すPINGパターンが形成される。このパターンは任意の連続する５キャラクタが全て異なる配列となっている。スキュー値ゼロがAABBBに対応しているが、これは相対的なものであることに留意されたい。
（５） PONGパターンを以下の様に生成する。
(ア) まず、Y+１個（５個）のA(K２８.１),B(K２８.５)の組合せデータパターンを、AAAAAを初期値として１６個生成する。
１）AAAAA
２）AAAAB
３）AAABB
４）AABBA
５）ABBAA
６）BBAAA
７）BAAAB
８）AAABA
９）AABAB
１０）ABABA
１１）BABAA
１２）ABAAB
１３）BAABA
１４）AABAA
１５）ABAAA
１６）BAAAA
(イ)４番目のAABBAを先頭に並べ替える（AAが最大数より1少ない2個、先頭にならぶ）。AABBAをスキュー値０に対応させる。
１）AABBA
２）ABBAA
３）BBAAA
４）BAAAB
５）AAABA
６）AABAB
７）ABABA
８）BABAA
９）ABAAB
１０）BAABA
１１）AABAA
１２）ABAAA
１３）BAAAA
１４）AAAAA
１５）AAAAB
１６）AAABB
(ウ)AABBAを先頭に、下線部の記号をならべて、PONG パターンとする。
AABBAAABABAABAAAAABB
【００２９】
以上のルールにより、図１に示すPINGパターンが形成される。このパターンは任意の連続する５キャラクタが全て異なる配列となっている。スキュー値ゼロがAABBAに対応しているが、これは相対的なものであることに留意されたい。
ここで、図１に示すように、全３チャネルにおいてスキュー検出・補正専用のA(８B１０BコードにおけるスペシャルキャラクタK２８.１)のパターンが観測されてから５キャラクタ分を３チャネル同時に観測する事により（図１のウィンドウ位置に相当する）、各チャネルのスキューが判定できる。図１の例によると、チャネル３（CH３）を基準（スキュー０(AABBB)）として、チャネル１（CH１）のスキューが４キャラクタ分(BABAB)、チャネル２のスキューが８キャラクタ(BBABB)と判定できる事が判る。スキュー検出後は、チャネル２を８キャラクタ分バッファにて遅らせ、チャネル１を４キャラクタ分バッファにて遅らせる事で、チャネル１，２，３を同期して（スキューを揃えて）後段の回路に渡す事ができる。
【００３０】
図３は図１の例に於けるデータパターンの、スキュー量と該当データパターン（５キャラクタ）の関係を示す。本発明における５キャラクタのデータパターン群は図３に示す関係となっており、PINGの最下位のBAABBのパターンから、PINGの最上位パターンAABBBおよびPONGの最上位パターンAABBAにそれぞれ１キャラクタのシフトとB,Aそれぞれを付加した関係になると共に、PONGの最下位のAAABBのパターンから、PINGの最上位パターンAABBBおよびPONGの最上位パターンAABBAにそれぞれ１キャラクタのシフトとB,Aそれぞれを付加した関係になっており、PINGとPONGのパターン切換が１キャラクタのシフトでスムーズにいける構造となっている。
【００３１】
図４に本データ伝送システムで使用するスキュー検出・補正のためのハンドシェークを状態遷移図にて示す。本システムでは、二つのスキュー検出・補正回路の受信側（DS/RX），スキュー検出・補正回路の送信側（DS/TX）のペアを対向接続し、両者間でハンドシェークすることにより、全二重系データ通信系を確立する構造となっている。
図８にそのようなスキュー検出・補正回路を用いた、双方向並列光リンクの構造ブロック図を示している。状態遷移は４つの状態から構成する。DSREADY, PNGRDY, PIGPOGの三つの状態変数をもって、４つの状態を定義する。
初期状態はINITと定義する。INITにてデータ信号よりクロック信号の抽出を開始し、クロック信号の安定を待って、二つの状態変数RDY信号とPIGPOG信号をLからHに変化させ、PING状態に遷移する。
【００３２】
PING状態では、PINGデータパターンをDS/TXからDS/RXに送信してスキュー検出・補正動作を実行する。DS/TX側は状態変数PNGRDY信号がLの間はPINGシークエンスデータ（図１のPING側）を、PNGRDY信号がHの場合はPONGシークエンスデータを送信する構造を有する。DS/RX側はPING状態でDS/TX側からPINGシークエンス信号を受信し、PINGシークエンスによるスキュー検出・補正動作が完了した場合、PNGRDY信号をLからHに遷移してPONG状態に移行する。一方、DS/RX側がPING状態の時に、DS/TXからPONGシークエンスデータ（図１のPONG側）を受信し、その後PONGシークエンスでのスキュー検出・補正動作が完了した場合は、状態変数PNGRDY信号とDSREADY信号を同時にLからHに遷移してOPERATIONモードに遷移する。さらにDS/RX側がPONG状態でDS/TXからPONGシークエンスデータ（PONG）もしくはデータ信号Dx.x（８B１０Bコードにおける任意のValidデータ）を受信し、PONGシークエンスでのスキュー検出・補正動作が完了した場合は、DSREADY信号をLからHに遷移してOPERATIONモードに遷移する。
【００３３】
OPERATIONモードでは、PING／PONG同期用シークエンスは完了し、全二重系の間でのデータ通信が可能になる。ハンドシェーク動作にPING／PONGの二状態を設けることにより、全二重系の２ノードは互いのスキュー検出・補正動作状態を監視でき、双方のスキュー検出・補正動作の完了をまってノード間データ交信を開始するハンドシェーク機能を実現している。
【００３４】
（実施例２）
以下、本発明の実施の形態を説明する。以下の例では、理解を容易にするために具体的数値を用いて説明するが、これらの数値はあくまでも例示であり、本発明がこれらの数値に限定されることを意味するものではない。
図５はスキュー量最大６３キャラクタを想定した場合の、本発明で用いるPING/PONGデータパターンである。 実施例１において用いたデータの生成方法を、最大スキューが６４キャラクタの場合に応用する。この場合、図５にしめしたPING,PONGデータパターンを交信し、７キャラクタ分のデータパターンを観測する事により、各チャネルのスキューが検出できる。そして、観測された信号列を参照することにより、各信号チャネル間のスキュー値を検出し、その検出した遅延値をバッファにて遅延して補正することで、受信側ではスキューの無い同期信号としての処理が可能になる（スキュー検出・補正が完了）。
【００３５】
従来型のギガビットイーサネットの方式を用いて、スキュー位置を判定する場合、最大で６８キャラクタのクロック数がスキュー判定に必要である（I+I+I-I-I+I-・・・２９個I+I-を繰返す）。これに対し、本発明の方式は７キャラクタの観測でスキュー判定が可能である。このように本発明は、補正を要求するスキュー量が大きくなる程、従来例と比較してスキュー判定の高速化が実現出来る。
【００３６】
（実施例３）
以下、本発明の実施の形態を説明する。以下の例では、理解を容易にするために具体的数値を用いて説明するが、これらの数値はあくまでも例示であり、本発明がこれらの数値に限定されることを意味するものではない。
本発明は、実施例１のスキュー検出・補正回路を、並列光リンク装置に応用した例である。本発明におけるスキュー検出・補正用LSIは、受信側スキュー検出・補正回路（DS/RX）と送信側スキュー検出・補正回路（DS/TX）の二つの回路ブロックから成る。スキュー検出・補正は、送信側DS/TXと受信側DS/RXの間を接続する１０チャネルの並列信号間で実施する。
【００３７】
図６は搬送波クロックを通信する場合の、スキュー検出・補正用回路を搭載する並列リンク装置の受信器側（DS/RX）の内部ブロック図である。
図７は搬送波クロックを通信する場合の、スキュー検出・補正用回路を搭載する並列リンク装置の送信器側（DS/TX）の内部ブロック図である。
本リンク装置においては１０本の双方向並列チャネルを有するデータ系を構成している。信号のデータレートは１信号当たり１．２５ギガビット毎秒である。本装置のように、並列光信号にて長距離伝送の実現を図る場合、伝送媒体に用いるファイバリボンにおける伝送遅延のばらつき（マルチモードファイバで５０ps／m）が大きく、ファイバ長約１６メートルより長い距離の伝送では信号チャネル間のスキューが１クロック（８００  ｐｓ）以上となり、１クロック以内のスキューしか補正できないゲートラッチ方式のリタイミング処理は適用できない。そこで本発明においては、スキュー検出・補正用データパターン（図１）を送信側から送出し、受信側で該データパターンのタイミングを解析することにより、最大１５０クロック（１．２５ギガビット毎秒のクロック）までのリタイミングを可能とする方式を採用した。
【００３８】
図８に記載のデータ伝送装置においては、送信側符号器の出力端にレーザ送信器を接続し、信号を光化して送信すると共に、受信側復号器の入力端にレーザ受光器を接続して信号を光から電気信号に再変換する機能を搭載することにより、信号の高速・長距離データ伝送を可能とした。
本装置において、使用したレーザ送信器にアレイ型レーザ素子を搭載した並列光送信器を使用し、さらに装置に使用したレーザ受信器にアレイ型ホトダイオードを搭載した光並列受信器を使用し、さらにレーザ送信器とレーザ受信器の接続に、並列リボンファイバを使用することにより、大容量の光データ通信を実現している。
装置内の信号の流れについて、以下に記述する。
【００３９】
図８に示すように、まずデータ信号１０チャネル×１．２５ギガビット毎秒の並列光信号を光受信器（Optical RX）にて１０チャネル×１．２５ギガビット毎秒の並列電気信号に変換する。DS/RXブロックにて、この１０チャネルの電気信号とベースクロックの間の遅延時間差（スキュー）を補正し、８B１０B復号した後、８チャネル×１．２５ギガビット毎秒の並列同期信号としてクロック信号・フレーム同期信号と一緒に出力する。８チャネルのデータ信号はノードにてデータ処理の後、出力側の８ポートいずれかに、８チャネル×１．２５ギガビット毎秒のデータ信号として、クロック・フレーム同期の２信号と共に出力する。ノードからの信号はDS/TXブロックにて８B１０B符号化処理し、１０チャネル×１．２５ギガビット毎秒の形態で出力する。そしてこの１０チャネルの電気信号を１０チャネルの並列光送信器（Optical RX）にて光信号に変換し、マルチモードファイバリボンにて最長１kmまでの長距離データ伝送を実現する。１．２５ギガビット毎秒の変調速度の信号を電気ケーブルにて送信した場合、伝搬損失に起因して２０m程度が距離の限界であり、システムは光データ伝送の利点を生かした構成となっている。
【００４０】
本スキュー検出・補正装置において、受信側の復号器の出力側にさらにマルチプレクサを接続搭載し、加えて、送信側の符号器の入力側にデマルチプレクサを搭載することにより、受信側復号器と送信側符号器の入出力データの信号ピン数を削減し、さらに、復号器と符号器を信号処理回路と別のチップパッケージに分離実装することにより、スキュー検出・補正回路として独立使用を可能にする共に、分離実装時の外部入出力信号ピン数の削減が実現できている。
【００４１】
DS/RX側の内部ブロック構成を図６に示す。光受信器から出力された１０チャネルの電気信号は、DS/RXの１０チャネルの入力ポートINRXD-０P/N,…, INRXD-９P/N（ここではスキュー調整LＳＩのポート０もしくはポート１のいずれか、ＰとＮは差動信号の正相と逆相信号を夫々表す）に夫々入力される。DS/RXの入力端では、クロック信号INRXC-P/Nをクロック再生回路回路（CG１）に入力し、DS/RX内の各ブロックにクロック信号RXCとして分配する。
【００４２】
DS/RX回路への入力信号INRXD-[０..９]は、INRXCから再生した高速クロック信号RXDCと位相が異なっており、１kmファイバの使用時には最大±８０クロック（クロック速度１．２５ギガビット毎秒）のスキューを有する。１０チャネルの入力データ信号は入力段のデスキュー回路（Deskew）にてまず、クロック信号RXDCと各データビットINRXD-[０..９]間の位相差を遅延線にて補正し、チャネル毎に独立にクロックとデータ信号間で再同期し、一つのクロック信号に同期した１０チャネルのデータ信号RXS-[０..９]に変換する（この段階では、データ信号はクロックに同期はとれているが、データ間のスキューは１クロックを単位としてずれている）。
【００４３】
次段でデータチャネル毎に１０：１のデマルチプレクサ処理し、チャネル毎に１０ビット（合計１００ビット）RM-[０..９]-[０..９]に展開する（１．２５ギガビット毎秒×１ビットの信号を１．２５メガビット毎秒×１０ビットに変換する）。この際、デマルチプレクサ内において、８B１０B符号化信号の先頭ビットをLＳBに配置する形で、１０ビットのキャラクタ単位で出力信号を整列する（キャラクタ同期）。デマルチプレクサから出力された各チャネルの１０ビット信号は各々８B１０Bデコーダにて復号処理し、８ビット信号RS-[０..９]-[０..７]に変換する。そして、次段のワード同期回路（Wsync Buffer）にてワード間の同期処理を行って、１つのクロック信号に同期した８０ビットのデータ信号RE-[０..７９]に変換する。
【００４４】
この８０ビットのデータ信号は、エラスティックバッファにて内部クロック信号に再同期しR-[０..７９]として、再度１０：１のマルチプレクサ処理を経て、１．２５ギガビット毎秒×８チャネルの高速信号としてDS/RXブロックからOUTRXD-[９..０]-P/Nとして出力する。この際、１０：１のマルチプレクサ処理の先頭ビットを示すフレーム同期信号OUTRXF-P/Nとクロック信号OUTRXC-P/Nを、８チャネルのデータ信号に並走する形で出力する。エラスティックバッファによる再同期は、データの送受信間で異なるクロックソースに同期した信号を取り扱うために必須な処理である。OUTRXF-P/Nとクロック信号OUTRXC-P/Nの前段に各々付いたDELAY回路は、データOUTRXD-[９..０]-P/Nとの間の位相差を調整し、同期信号として出力するための回路である。また、出力同期信号はフェーズロックドループ回路PLL１にて、BASECLKから生成し、各回路ブロックにCRCLK（１２５MHz）及びCLK１２５０（１２５０MHz）として分配する。
【００４５】
DS/TX側の内部ブロック構造を図７に示す。DS/TXブロックはノードからの８チャネル×１．２５ギガビット毎秒の並列同期電気信号INTXD-[０..７]P/Nを１０：１のデマルチプレクサにて８０ビット×１．２５メガビット毎秒の信号TR-[０..７９]に変換する。デマルチプレクサの動作はポート毎にデータ信号に同期したクロック信号INTXC-P/Nとフレーム同期信号INTXF-P/Nを基準に実行する。８０ビット×１．２５メガビット毎秒の電気信号TR-[０..７９]は、８ビット毎に８B１０Bエンコーダにて符号化処理を行う。そして８B１０B符号化処理を経た合計１００ビットの電気信号TE-[０..９]-[０..９]は、エラスティックバッファにて搬送波クロックCLK１２５０に再同期した後、１０ビット毎に１０：１のマルチプレクサにて多重化処理し、合計１０チャネル×１．２５ギガビット毎秒の電気信号OUTTXD-[０..７]P/Nに変換し、光送信モジュールに出力する。そして、出力データに同期した搬送波クロック信号としてOUTTXC-P/Nを送出する。ノードからの入力信号INTXC-P/Nは、クロック再生回路CD２にて１２５MHzのクロック信号TXDCとTXCに変換され出力される。また、出力同期信号はフェーズロックドループ回路PLL１にて、BASECLKから生成し、各回路ブロックにCRCLK（１２５MHz）及びCLK１２５０（１２５０MHz）として分配する。
本システム全体で使用するスキュー検出・補正のためのハンドシェークは図４に準じた構成をもつ。
【００４６】
図９には、図４で示したハンドシェークルーチンのうちのPONGルーチンとPINGルーチンで使用するスキュー検出・補正機能の詳細動作を示す。
スキュー検出・補正動作はビット・キャラクタ同期、ワード同期の２つの同期段階をへてスキュー検出・補正動作を完了する。ビット・キャラクタ同期がチャネル毎に正常終了した場合に、各ポート各チャネルのBSYNC[ch]（[ch]は０から９チャネルの１０チャネルのいずれか一つを示す。）が１となり、ワード同期動作が正常終了した場合に、WSYNCが１となる。スキュー調整が全て終了するとWSYNCが１となって、PINGもしくはPONGのスキュー調整ルーチンは完了する。
【００４７】
ビット・キャラクタ同期段階は、まずビット同期動作を行う。ビット同期では、送信側より出力する専用ビットパターン（図１）を受信側で受信解析し、ポート内の１０ビットのデータチャネル毎に独立に、クロック信号の遅延時間を１００ｐｓ単位で補正し、クロック信号とデータ信号間のタイミングの最適値を探索する。
【００４８】
図１０にはデータ信号のアイパターンとクロック読み出しタイミングの関係を示す。DVALUECHの値を０から７まで８段階変化させ、データ信号に対するクロックのトリガポイントが１００ｐｓ単位で遅れると設定をすると、図１０の位相関係においては、DVALUECHが０，１，６，７の４つの値の時には、トリガポイントでデータ信号のH／Lが安定していないため、データの判別ではコンマパターンは非検出であり、逆にDVALUECHが２，３，４，５の４つの値の時には、トリガポイントでデータ信号のH／Lが安定しているため、データの判別ではコンマパターンは正しく検出できる。この場合、DVALUECHが３もしくは４が８つ遅延量の中では最適点となる。
【００４９】
本発明では遅延線を精度良く作製できる最小値を１００ｐｓと考え、１．２５ギガビット毎秒信号のクロック周期８００ｐｓで８回データ観測できるように１００ps毎に８回の観測を常に実施して、最適点を探索する方法を採用した。また、遅延量の変化は搬送波クロック（１．２５ギガビット毎秒）のタイミングでは実施せず、内部クロック（１．２５メガビット毎秒）のタイミングに同期して行うため、実現が容易である。また、遅延量変化直後は、遅延時間が不安定になるため、コンマパターンの観測は１．２５メガビット毎秒のタイミングで３クロック実施し、変化直後の１クロックは観測せず、その後の２，３クロックでのコンマパターン検出の真偽を判定する構造となっている。ディレイパターンテーブルは、８回の測定において、１クロック分の時間幅をなるべく等間隔に網羅するように決定した。判定テーブルは、アイ開口径のなるべく中心近くに遅延値が設定できるように、決定した。
【００５０】
データ信号に対するクロック信号の遅延量をDVALUECH-[CH]を制御することで、一回の同期動作中で８値変動し、１０：１デマルチプレクサの入力端RX-DEMUX入力で図１０に示した様にコンマと呼ばれる８B１０Bコード上で定義される１０ビットの特定データパターン（K２８.１とK２８.５も１０種あるコンマの一種）が観測できるか否かで、ディレイ値の最適点を探索する（図１０中では正しくコンマが受信できた場合を○で表現し、トリガポイント位置が適切でなくコンマが正しく受信できないクロックデータ間のパターンで合った場合を×と表現している）。
【００５１】
ビット・キャラクタ同期はキャラクタ同期に移る。キャラクタ同期においては、１０ビットからなる８B１０B符号化信号の先頭ビットを、１０：１デマルチプレクサのLＳBに設定するように、デマルチプレクサ内のレジスタの読み出し順序を調整する。これは、８B１０B符号を用いたイーサネット回路等で一般的に用いられているコンマ整列と同じ手法である。
【００５２】
図１１にはビット・キャラクタ同期におけるキャラクタ同期の構造を示す。キャラクタ同期機構とは、１：１０のデマルチプレクサの入力端で１０ビットデータの先頭ビットと低速クロックが同期しておらず、１０ビットのキャラクタ信号がデマルチプレクサから正しく出力できない場合に、デマルチプレクサ内の読み出しタイミングを補正して、デマルチプレクサの出力側では１０ビットのキャラクタ信号と該キャラクタ信号に同期したクロックTRXCが正しく同期している状態に補正する動作をいう。例えば図１１においては、デマルチプレクサの入力信号ＲＸＳと内部クロック信号（１．２５メガヘルツ）とは、キャラクタ信号（１０ビット）の７ビット目と同期しており、出力側のＲMでは正しく０ビットから９ビットが整列した１．２５メガビット毎秒のキャラクタ信号（１０ビット）として読み出している。本発明においては、ビット同期とキャラクタ同期は同時に実施し、双方が正常終了した場合に、チャネル毎にBSYNC[ch]を０から１に遷移する。そして、全てのBSYNCH[ch]が１となった場合に、次のワード同期動作に遷移する（図９）。逆に全BSYNCH[ch]のうち1ビットでも１への遷移が確認できない場合は、初期状態STARTに戻り、ビット・キャラクタ同期後の信号は、８B１０Bデコーダをへて１０チャネル毎に８ビットのデータパターンに変換される。次にチャネル毎に１０ビットのキャラクタ単位で位相がそろった信号を、キャラクタ単位で位相調整して、１ワード（８０ビット）の信号として出力するようにワード同期動作を実施する。ワード同期では、キャラクタ同期済の１０チャネルの各データ信号間のスキューをデータパターン中に組込パターンのズレから判定し、リードライトバッファの読み書きタイミングを１０チャネル間で調整することによりスキュー検出・補正する。以上の動作により、各ポート内の１０チャネルの最大１５キャラクタまでのスキューを補正する。
本発明では図１に示したデータパターンを送受信し、ワード同期遷移時に受信側で７キャラクタ分のデータを観測する事で、実施例２と同様の方法で、スキューを判定する。
【００５３】
（実施例４）
実施例３において、搬送波クロックを送信せずに、データ信号の一つを受信側に搭載したクロックデータリカバリー回路（CDR）に入力し、受信側でクロック信号を生成する（CDRに入力したデータ信号とクロックは同期関係となる）。生成したクロック信号と、クロック抽出に使用しなかった他の受信側データ信号とクロック信号間での位相関係の調整は、実施例３のビット・キャラクタ同期と同様の方式を用いる。図１２にDS/RXブロックの構造を示す。図１３にDS/TXのブロック構造を示す。
実施例３の図と比較して、搬送波クロックの信号線がなくなった構造を有する。
【００５４】
（実施例５）
図１４はスキュー検出・補正回路をモジュール内部に集積した、双方向並列光リンクの構造ブロック図である。
実施例１から４のいずれかの機能を、並列光送信モジュールと並列光受信モジュールに夫々搭載した（図１４）。モジュール内部にワード同期するスキュー検出・補正回路および、ビット・キャラクタ同期回路を搭載する事で、装置全体の小型化が実現できる。
【００５５】
（実施例６）
図１５はスキュー検出・補正回路を用いた、双方向波長多重光リンクの構造ブロック図である。
実施例１から５のいずれかの機能を、波長多重光送信器と波長多重光受信器に夫々搭載した（図１５）。
実施例１に記載したスキュー検出・補正方式は、ファイバ内の分散によって受信側への到着時間に差が生じるが、本方式により受信側で再同期化する事により、波長多重した複数信号を用いた並列同期伝送が容易に実現できる。
【００５６】
（実施例７）
図１６はスキュー量の外付け制御線を有するスキュー検出・補正回路を用いた、双方向並列光リンクの構造ブロック図である。
実施例１もしくは３から６のいずれにおいて、ワード同期用のスキュー検出・補正用のデータパターン生成回路において、設定する最大スキュー検出・補正量を装置の外付け回路により入力し、入力したスキュー検出・補正量に応じて、実施例１に示した生成方法にしたがったスキュー検出・補正用のデータパターンを生成・交信する（図１６）。本方式により、設定したスキュー検出・補正量に応じた最適で効率の高いスキュー検出と補正機能が提供できる。
【００５７】
【発明の効果】
本発明では、スキューの検出・補正範囲が広く、しかも冗長なデータ線路を設けるなどの回路規模の増大を招かない方法として、並列リンクのデータ送信に先立ってスキュー検出・補正専用のデータパターンを送受信間で交信する方法を採用した。この際、従来イーサネット等で用いられてきたK28.5がK28.5+, K28.5+, K28.5-, K28.5-と出現する位置を検出する方法では、例えば１５キャラクタの範囲のスキュー位置を観測するのに最大２０キャラクタの測定時間が必要であったのに対し、今回の発明では４キャラクタの観測でスキュー検出・補正が可能であり、判定の高速化と、スキュー判定・補正回路の簡素化が実現できる。検出時間と補正に必要な時間と回路規模の節約効果は、従来技術と比較してよりスキューの大きい場合に、より大きくなる。さらに、外付け回路により、補正するスキュー範囲を制御する事で、容易に任意の幅のスキューが判定・補正可能になる。本方法は、データリンク系を構成する受信側に搭載可能なバッファメモリのサイズが許す限り、任意の大きさのスキューの検出・補正にまで拡張が可能である。
【図面の簡単な説明】
【図１】スキュー量最大１５キャラクタを想定した場合の、本発明で用いるPING/PONGデータパターンと、それを用いた３チャネルのスキュー判定例の概念図である。
【図２】スキュー量最大１５キャラクタを想定した場合の、ギガビットイーサネットのマルチリンクで用いられるデータパターンと、それを用いた３チャネルのスキュー判定例の概念図である。
【図３】図１の例に於けるデータパターンの、スキュー量と該当データパターン（５キャラクタ）の関係を示す図である。
【図４】  PING/PONGの状態遷移図である。
【図５】スキュー量最大６３キャラクタを想定した場合の、本発明で用いるPING/PONGデータパターンの表図である。
【図６】搬送波クロックを通信する場合の、スキュー検出・補正用回路の受信器側（DS/RX）の内部ブロック図である。
【図７】搬送波クロックを通信する場合の、スキュー検出・補正用回路の送信器側（DS/TX）の内部ブロック図である。
【図８】スキュー検出・補正回路を用いた、双方向並列光リンクの構造ブロック図である。
【図９】  PING/PONGの両状態の内部における、ビット・キャラクタ同期およびワード同期を組合せたスキュー判定・補正動作の状態遷移図である。
【図１０】ビット同期の説明図である。
【図１１】キャラクタ同期の説明図である。
【図１２】クロックデータリカバリー回路(CG１)を用いる場合の、スキュー検出・補正用回路の受信器側（DS/RX）の内部ブロック図である。
【図１３】クロックデータリカバリー回路を用いる場合の、スキュー検出・補正用回路の受信器側（DS/TX）の内部ブロック図である。
【図１４】スキュー検出・補正回路をモジュール内部に集積した、双方向並列光リンクの構造ブロック図である。
【図１５】スキュー検出・補正回路を用いた、双方向波長多重光リンクの構造ブロック図である。
【図１６】スキュー量の外付け制御線を有するスキュー検出・補正回路を用いた、双方向並列光リンクの構造ブロック図である。
【図１】
0003943941.tif 000002
【図２】
0003943941.tif 000003
【図３】
0003943941.tif 000004
【図４】
0003943941.tif 000005
【図５】
0003943941.tif 000006
【図６】
0003943941.tif 000007
【図７】
0003943941.tif 000008
【図８】
0003943941.tif 000009
【図９】
0003943941.tif 000010
【図１０】
0003943941.tif 000011
【図１１】
0003943941.tif 000012
【図１２】
0003943941.tif 000013
【図１３】
0003943941.tif 000014
【図１４】
0003943941.tif 000015
【図１５】
0003943941.tif 000016
【図１６】
0003943941.tif 000017