(57)【要約】システムは、最初に並列リンク・クロックと各データ・チャネルのデータ信号エッジとの間の任意の位相エラー整列を補正することにより２段階のスキュー補償手順を実行し、それにより、受信されたデータ・ビットを正しくサンプリングするのを可能にする。次いで、第２の段階が、ビットを元のフォーマットの中に「ワード整列」するよう実行され、それは、各データ・チャネルのデータＦＩＦＯにおけるスキュー同期化マーカ（ＳＳＭ）バイトを用いて達成される。ＳＳＭバイトは、各データ・チャネル上を送信され、そしてスキュー補償手順を終了する。ＳＳＭバイトが各データ・チャネルのデータＦＩＦＯにおけるロジック（ｗ１１３０）により検出されるとき、データＦＩＦＯは、ＳＳＭバイトを採用して、読み出し及び書き込みポインタ（１１１０，１１４０）を初期化して、出力データ（１１２０）を適正に整列させる。
2005502248.tif 000002
【特許請求の範囲】
【請求項１】
コールド訓練シークエンスを実行することにより共通のクロック・チャネルを共用する複数の並列データ・チャネルに跨るスキューを動的に補償する方法であって、
ａ．リンク・リセット署名、フェンス・パターン及び送信元同期マーカ（ＳＳＭ）バイトを有する訓練シークエンスを送信元から受信機へ並列データ・チャネルを介して送るステップと、
ｂ．リンク・リセット署名を、最小の指定時間量の間に検出して、全てのデータ・チャネルでの検出を保証するステップと、
ｃ．クロック・チャネルに関して遅延経路較正を実行するステップと、
ｄ．リンク・スキュー補償を実行するステップと、
ｅ．前記フェンス・パターンに従って、前記訓練シークエンスのＳＳＭバイトを用いてワード整列を与えるステップと
を備える方法。
【請求項２】
前記複数の並列データ・チャネルが拡大縮小可能である請求項１記載の方法。
【請求項３】
前記リンク・リセット署名が、リンク・クロック信号を論理的１状態か又は論理的０状態かのいずれかで保持することにより、リンク・クロック・スイッチングを停止することにより生成される請求項１記載の方法。
【請求項４】
リンク・スキュー補償を実行する前記ステップが、
ａ．共通のサブシークエンス、第２のフェンス・パターン及び第２のＳＳＭバイトを有する第２の訓練シークエンスを送るステップと、
ｂ．第２のフェンス・パターンに従って、第２のＳＳＭバイトを用いてワード整列を与えるステップと
を備えるウォーム訓練シークエンスから成る請求項１記載の方法。
【請求項５】
システム・パワーアップ又はリセット、又は回復不能なリンク・エラーを検出するステップと、
コールド訓練シークエンスを、システム・パワーアップ又はリセット又は回復不能なリンク・エラーの後で、入力データ・ストリームを正しくサンプリングし又はフレーム化する能力なしでコールド訓練シークエンスを開始するステップと
を更に備える請求項１記載の方法。
【請求項６】
ａ．データ・チャネルがリセットされ、且つ前の訓練シークエンス中に獲得された全ての較正値がクリアされるように、リンク・リセットを生じさせるステップと、
ｂ．第２の訓練シークエンスを直ちに開始するステップと
を更に備える請求項１記載の方法。
【請求項７】
ウォーム訓練シークエンスを実行することにより共通のクロック・チャネルを共用する複数の並列データ・チャネルに跨るスキューを動的に補償する方法であって、
ａ．共通のシークエンス、フェンス・パターン及び送信元同期マーカ（ＳＳＭ）バイトを有する訓練シークエンスを送るステップと、
ｂ．フェンス・パターンに従って、前記訓練シークエンスのＳＳＭバイトを用いて、ワード整列を与えるステップと、
ｃ．前記共通のシークエンスに従って、複数の指令バイトを送るステップと
を備え、それにより、複数のビット・エラーに起因して、間違った又は分割された訓練シークエンスの確率を低減する方法。
【請求項８】
クロック・チャネルの中断及びデータの損失を防止することなしに共通のクロック・チャネルを共用する複数の並列データ・チャネルに跨るスキュー補償を動的に実行する方法であって、
ａ．クロック・チャネル信号のクロック周期を測定するステップと、
ｂ．クロック・オフセット値を決定して、各データ・チャネルからの受信されたデータを適正にサンプリングするステップと、
ｃ．任意のデータ・エッジを任意のクロック・エッジに対して整列させることにより前記共通のクロック・チャネルに対する全てのデータ・チャネルの位相補正を実行するステップと、
ｄ．データ・ビット・ゼロ位相整列を識別するステップと、
ｅ．書き込み位置を調整して、適正なビット順序付けを維持するステップと
を備える方法。
【請求項９】
ディジタル・データを交換するための複数のチャネルを有する並列データ・リンクをスキュー解除するシステムであって、
それらの間に相互接続媒体を備える送信元ノード及び宛先ノードと、
コア・ロジックから受信された「Ｍ」ビットの入力データをフォーマット化し、且つ「Ｍ」データ・チャネルをリンク・クロックと共に前記リンク上へ駆動する、前記のリンク送信元ノードにある送信元同期ドライバ（ＳＳＤ）と、
「Ｍ」データ・ビット及びリンク・クロックを受信し、スキューを補償し、前記データのビットに関してリンク・クロック・エッジを再中心付けし、且つ「Ｍ」ビットのデータを出力する、前記のリンク宛先ノードにある動的スキュー補償（ＤＳＣ）アーキテクチャ・ブロックと、を備え、
前記のＤＳＣブロックが、バンドル・インターフェース・モジュールと相互接続された複数のＤＳＣモジュールから成るＤＳＣバンドルを備え、
前記ＤＳＣモジュールが、調整を実行して、チャネル対チャネル・スキューを補償し且つ前記リンク・クロック・エッジを前記のデータ・ビットに対して実質的に中心付けする、システム。
【請求項１０】
前記のディジタル・データ・ビットが電気エネルギのパルスとして導電性材料を介して交換される請求項９記載のシステム。
【請求項１１】
前記のディジタル・データ・ビットが光のパルスとして光ファイバを介して交換される請求項９記載のシステム。
【請求項１２】
各ＤＳＣモジュールが複数のＤＳＣデータ・チャネル及び１つのＤＳＣクロック・チャネルを備える請求項９記載のシステム。
【請求項１３】
前記ＤＳＣクロック・チャネルが、クロック・チャネル・フロントエンド・ブロック、内蔵型自己試験ロジック、及びユーティリティ・ブロックを備える請求項１２記載のシステム。
【請求項１４】
前記クロック・チャネル・フロントエンド・ブロックが、第１の状態マシン、クロック・イメージ・ラッチ、イメージ復号ロジック、ストリング／バイナリ・エンコーダ回路、ＤＮＡロジック・ブロック、遅延線、トリム遅延回路、及びグルー・ロジックを備える請求項１３記載のシステム。
【請求項１５】
各ＤＳＣデータ・チャネルが、データ・チャネル・フロントエンド・ブロック、データＦＩＦＯ、及びユーティリティ・ブロックを備える請求項１２記載のシステム。
【請求項１６】
前記データ・チャネル・フロントエンド・ブロックが、有限状態マシン、データ・イメージ・ラッチ、イメージ復号ロジック、ストリング／バイナリ・エンコーダ回路、ＤＮＡロジック・ブロック、遅延線、トリム遅延回路、及びグルー・ロジックを備える請求項１５記載のシステム。
【請求項１７】
前記データＦＩＦＯが、パターン探索有限状態マシン、データＦＩＦＯレジスタ・ファイル、ＦＩＦＯアドレス・エンコーダ、書き込みポインタ、読み出しポインタ、フレーム・ビット・カウンタ、及びスキュー同期化マーカ開始シークエンサを備える請求項１５記載のシステム。
【請求項１８】
前記データＦＩＦＯレジスタ・ファイルがビット単位書き込み型ＦＩＦＯである請求項１７記載のシステム。
【請求項１９】
前記のＤＳＣバンドルがコールド訓練シークエンスを実行する請求項１２記載のシステム。
【請求項２０】
前記のＤＳＣバンドルがウォーム訓練シークエンスを実行する請求項１２記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
［発明の分野］
本発明は、高速データ・リンクに関し、特に高速並列データ・リンクに関する。詳細には、本発明の一実施形態は、高速並列データ・リンクをスキュー解除するためのシステムを提供する。
【０００２】
［発明の背景］
ディジタル・システムの速度及び性能が増大するにつれ、これらのシステムを「リンクする」相互接続についての要求も増大する。「リンク」は、システムとサブシステムとそれらがデータを交換するのを可能にする構成要素との間の通信経路である。ディジタル・データは、電気エネルギのパルスとして、金属線のような導電性材料を介して転送されることができる。ディジタル・データを送る代替技術は、光のパルスによる光ファイバを介するものである。
【０００３】
従来より、符号化されたクロック及びデータを採用するシリアル・ライン・プロトコルは、ＷＡＮ（広域ネットワーク）、ＬＡＮ（ローカル・エリア・ネットワーク）、ＳＡＮ（ストレージ・エリア・ネットワーク）、並びに他の私設リンクのような長距離応用のため選定されてきたプロトコルである。この優位は、有線及び光ファイバの両方のネットワークを含む。また、２．５Ｇｂ／ｓ（現在の基準線）及び１０Ｇｂ／ｓ（数年内に到達するのが計画されている）の帯域幅においてある傾向が現れ、サーバ及びルータを製造する会社、並びに他の高速ディジタル・システムの供給業者は、シリアル・ライン・プロトコルを、それらのシステムを実現するためそれらの高速バックプレーン（ｂａｃｋｐｌａｎｅ）相互接続として採用し始めてきた。このアプローチは、ディジタル・システムの全体的スループットを上昇させるため採用されている。
【０００４】
符号化されたクロック及びデータのシリアル・プロトコルの物理的実現は、最初にその符号化されたクロックを回復し、次いでそのクロックを用いて、受信されたデータをサンプリングするためＰＬＬ（フェーズ・ロックド・ループ）アーキテクチャに基づいている。典型的なＰＬＬに関する判定基準設計ファクタは、それらの実現及びガード帯域又は「キープアウト（中に入れないでおく）」領域に関して集中した範囲であるＬＰＦ（低域通過フィルタ）及びＶＣＯ（電圧制御発振器）である。
【０００５】
シリアル・リンクの全体帯域幅は、相互接続媒体の特性、及び符号化されたクロックを正確に回復するＰＬＬの能力により決定される。従って、シリアル・リンクの帯域幅は、元の実行から容易に増大されることができず、著しい再構成及び設計努力を必要とする。
【０００６】
代替として、並列ライン・プロトコルは、「ワード」と呼ばれる、用いられるワイヤ又は光ファイバ・チャネルの数に等しい数のディジタル・データのビットを同時に転送する類似のワイヤ又は光ファイバを利用する。理想的には、特定のワードに関係する全ビットは、意図する宛先へ同時に到着し、そして次の使用可能なクロック・エッジの同時発生でサンプリングされる。しかしながら、実際には、これは、典型的には高速並列データ・リンクのためのケースでない。即ち、ワイヤ・リンクか光ファイバ・リンクかのいずれかを構成するため用いられる材料の変化、並びに製造プロセスにおける変動に起因して、ビットを備えるディジタル信号の伝搬遅延又は速度は、ワイヤ又は光ファイバの間で僅かに変化するであろう。これが、「信号スキュー」又は単純に「スキュー」と呼ばれる、ビットの到着時間の差違をもたらす。ワイヤ・スキュー及び光ファイバのスキュー（即ち、ワイヤ又は光ファイバのスキュー寄与）は、並列リンクに含まれる経路の物理的長さに比例する。並列リンクのライン間のスキュー量が増大するにつれ、スキューは更に、リンクの宛先で観測されるビット「重なり（ｏｖｅｒｌａｐ）」量を低減し、それによりデータ・サンプリング・エラーの尤度を増大する。その結果、スキューを補償する手段無しの並列リンクは、典型的には、公称ビット時間の２０％より少ない大きさの合計（ライン及び回路の両方）スキュー予算に耐えることになる。これは、大部分の並列リンクの動作距離及び帯域幅を、ほぼ４００Ｍｂ／ｓで動作するケーブルでは１０メートル未満に、そしてもっと共通のバックプレーン製造材料を用いる１．０Ｇｂ／ｓでは０．１５メートルに制限することになる。
【０００７】
並列リンクにおけるスキューに関する補償技術は既知である。スキューを補償する１つのアプローチは、カリフォルニア州Ｍｏｕｔａｉｎ Ｖｉｅｗに所在するＳｉｌｉｃｏｎ Ｇｒａｐｈｉｃｓ， Ｉｎｃ．により標準化されたＡＮＳＩ ＨＩＰＰＩ-６４００-ＰＨＹに関して開発されたものである。米国特許Ｎｏ．６，０３１，８４７に開示されているように、訓練シークエンスを用いて、クロック、データ、フレーム及び制御ビットを含む並列チャネルのそれぞれとの間スキュー量を測定する。訓練シークエンスは、４つのサブシークエンス、即ち、１）プリアンブル、２）フラッシュ（ｆｌｕｓｈ）・シークエンス、３）ピング（ｐｉｎｇ）・シークエンス、４）ポストアンブルから構成される。全てのチャネルのピング・シークエンスの前縁（リーディング・エッジ）が送信元から発射された時間に整列されると仮定すると、宛先における到着時間のいずれの差は、当該チャネル間に存在するスキュー量を表す。測定値に基づいて、追加の遅延が、各チャネルに加えられて、受信されたビットの整列を再確立する。一度エッジ整列が再確立されると、クロック信号が更に遅延されて、そのエッジをデータ・ビットの中心に対して中心付けして、受信されたデータを一層正確に回復する。
【０００８】
より詳細に考慮すると、図１は、ＨＩＰＰＩ-６４００ ＡＮＳＩ標準に関して開発された訓練シークエンスのタイミング図を示す。プリアンブル指令、フラッシュ、ピング及びポストアンブルから成る４つのサブシークエンスを有する訓練シークエンスが示されている。訓練シークエンスは「平衡化」され、ゼロのアサーション（ａｓｓｅｒｔｉｏｎ）時間と１のアサーション時間とが等しい。重要な特徴は、フラッシュ・シークエンスの長さとピング・シークエンスの長さとが整合していなければならず、そして各シークエンスの長さが、補償されるべきリンクに関する合計スキューを超えなければならない。
【０００９】
更に、図２は、従来の遅延線を有する既知のデータ・チャネル・アーキテクチャ、即ちＳｕＭＡＣデータ・チャネルに関するブロック図を示す。ＳｕＭＡＣ ＤＳＣＣ（動的スキュー補償回路）のデータ・チャネルは、入力測定制御回路及びロジック、インバータ・チェイン、測定値ラッチ、タップ復号ロジック、及びタップ選択「ＯＲ」トリーから成る。インバータ・チェインの長さ、及び全ての他の関連の構造は、補償されるべきスキューに等しいか又はそれより大きくなければならない。
【００１０】
「スキュー範囲」を拡張するとき考慮されねばならないこのアーキテクチャの３つのキー（鍵となる）属性が存在する。考慮されねばならない第１の属性は、このスキームで用いられる訓練シークエンスがその間に並列リンク上でのスイッチング活動がある期間ゼロに行くフラッシュ・サブシークエンス及びピング・サブシークエンスを生成することである。このスイッチングの不活動期間は、銅ケーブルのＤＣ平衡、及び光ファイバ・リンクの周囲光レベルにおける短期間ドリフトを導入する。ＤＣ平衡及び周囲光の両方の短期間ドリフトは、スイッチング活動がリンク上で再開するとき、「スタートアップ」の不確実性、又は「ジッタ」現象を生成する。「スタートアップ・ジッタ」現象は、臨界的なフラッシュ及びピング・サブシークエンス境界で生じることにより、スキュー測定の精度に惡影響を及ぼす。従って、訓練シークエンスがより大きなスキュー範囲に適応するよう修正されるとき、フラッシュ及びピング・サブシークエンスは、増大されねばならず、それは、銅ケーブル・リンクのＤＣレベル、又は光ファイバ・リンクに対する周囲光レベルにおいて一層大きな不平衡を生成する。最終的には、これは、「スタートアップ・ジッタ」の一層大きな量がスキュー測定値に導入されることにより生じる測定エラーに起因して得られる最大帯域幅を低減することができる。
【００１１】
考慮されねばならない第２の属性は、実際に構成されることができるチャネルの数である。図２に示されるように、チャネルの全てにより受信された個々のピング信号の論理的「ＡＮＤ」により発生された内部信号「Ａｌｌ＿Ｐｒｅｓｅｎｔ」が、スキュー値を捕捉するため並列バスのチャネルの全てに再分配されねばならない。チャネル数が増大するにつれて、論理的「ＡＮＤ」機能も増大し、それによりこの機能を完了するのにより多くの時間を要する。従って、全てのチャネルの全体的大きさが、「Ａｌｌ＿Ｐｒｅｓｅｎｔ」信号の到着時間を遅延させ、遅延線を長くすること、及び遅延スタックの全体的大きさを増大することを必要とし、その結果より高いパワー放散をもたらす。
【００１２】
第３の属性は、扱うことができる合計スキュー量を支配する遅延の全体的長さと関係がある。従って、スキュー範囲を増大するため、ハードウエアで構成される遅延線の長さ、及び遅延スタックの全体的大きさは、比例的に増大されねばならない。その結果、遅延線は、設計が一層困難であり、そしてまた増大した大きさが、放散されるパワーを増大させる。
【００１３】
従って、データが正確にサンプリングされることを保証するため、より大きい帯域幅で並列リンクにおけるスキューを効率的に補正することが望ましいであろう。また、長い遅延線を必要とせず又はパワー消費を増大させないハードウエアを用いて、スキューを補正することを可能にすることが望ましいであろう。更に、ハードウエアをアプリケーション毎に再設計しなければならないことを回避するためスケーラブルであるスキュー補正アーキテクチャを提供することが望ましいであろう。
【００１４】
［発明の概要］
本発明は、並列データ・ラインの相対的動的スキュー補償の方法及び装置を提供する。本発明の一実施形態は、最初に並列リンク・クロックと各データ・チャネルのデータ信号エッジとの間のいずれの位相エラー整列を補正することにより、受信されたデータ・ビットを正しくサンプリングするのを可能にすることによる、訓練シークエンスと呼ばれる２段階のスキュー補償手順を実行するシステムを提供する。次いで、第２の段階は、ビットを元のフォーマットの中に「ワード整列」するよう実行され、それは、各データ・チャネルのデータＦＩＦＯにおけるＳＳＭ（スキュー同期化マーカ）を用いて達成される。ＳＳＭバイトは、各データ・チャネル上を送信され、そして訓練シークエンスを終了する。ＳＳＭバイトが各データ・チャネルのデータＦＩＦＯ内のロジックにより検出されるとき、データＦＩＦＯは、ＳＳＭバイトを採用して、読み出し及び書き込みポインタを初期化して、出力データを適正に整列する。
【００１５】
本発明の様々な実施形態に従って、リンクは、例えば、銅ケーブル又は光ファイバから構成される相互接続媒体を備える送信元ノード及び宛先ノードから構成される。リンク送信元ノードで、ＳＳＤ（送信同期ドライバ）は、コア・ロジックから受信されたＭビットの入力データをフォーマット化し、そして「Ｍ」個のデータ・チャネルを物理的リンク上へリンク・クロックと一緒に駆動する。「Ｍ」個のデータ・ビット及びリンク・クロックは、リンク宛先ノードにおいて、スキューを補償し、リンク・クロック・エッジをデータのビットに対して再中心付けし、且つ「Ｍ」ビットのデータを出力する動的スキュー補償（ＤＳＣ）アーキテクチャ・ブロックにより受信される。
【００１６】
「多重入力／単一出口（Ｍｕｌｔｉｐｌｅ−Ｉｎｐｕｔ−Ｓｉｎｇｌｅ−Ｅｘｉｔ）」遅延線、又はＭＩＳＸ−ＤＬと呼ばれる新規な遅延線アーキテクチャは、遅延された信号が遅延線の最後のタップから抽出され且つ入力信号がその長さに沿ったｍ個の「注入点」のうちの１個（１−ｏｆ−ｍ  “ｉｎｊｅｃｔｉｏｎ  ｐｏｉｎｔｓ”）で導入される可変マルチタップ遅延線構成を与える。所望の遅延は、遅延線の最後のタップに関して選択された注入点で入力信号を導入することにより達成され、それにより、従来のタップ選択マルチプレクサ回路の必要性を排除する。マルチプレクサ回路の排除の直接的結果として、全体的大きさ、遅延待ち時間及びスイッチング・パワーの低減が達成される。更に、信号位相スプリッタ回路の組み込みにより、遅延線アーキテクチャは、インバータ遅延に基づいてタップ分解能（ｔａｐ  ｒｅｓｏｌｕｔｉｏｎｓ）を容易にサポートすることができ、そして必要とされるトランジスタの数の控えめな増加によりそのタップ分解能を効果的に２倍にする。
【００１７】
更に、新規なデータ・ファイル・アーキテクチャが、数学的手順及び論理的実行と一緒に、グレー・コード特性を備える「順序付けされた母集団計数（Ｏｒｄｅｒｅｄ  Ｐｏｐｕｌａｔｉｏｎ  Ｃｏｕｎｔ）」シークエンスに基づいて与えられ、それは、変換の必要性を排除し、且つ比較待ち時間を著しく低減する。当該アーキテクチャは、ラッチ・ベースの実行をサポートして、高速応用に適応する。
【００１８】
また、ゲーテッド・クロックが、クロック・グリッチを防止するため再生フィードバックを利用しながら、高速クロック信号の開始及び停止を制御するラッチ・ベースの技術を与える。更なる拡張は、同様に発生された基準ベース・クロック信号と依然同期しているｎ分周クロック信号を生成する手段を提供する。リンク幅は、一緒に「バンドル（束）（ｂｕｎｄｌｅ）」を形成する１つ又はそれより多い並列データ・チャネル及びリンク・クロックから構成される。リンク宛先ノードにおいては、受信バンドルは、同じ又は混合された大きさを有する１つ又はそれより多いＤＳＣモジュール、及び２つ又はそれより多いＤＳＣモジュールを含むバンドル用バンドル・インターフェース・モジュール（ＢＩＭ）から成る。
【００１９】
各ＤＳＣモジュールは、単一のクロック・チャネル及び１つ又はそれより多いデータ・チャネルを含むことが好ましい。クロック・チャネルは、リンク・クロック信号を受信し、データ回復リンク・クロックを発生し、そしてそのデータ回復リンク・クロックを標準リンク・クロック信号と一緒にＤＳＣモジュール内の全てのデータ・チャネルに分配する。ＤＳＣモジュールの各データ・チャネルは、リンク・データ信号を受信し、位相補正し、そしてデータ回復リンク・クロック信号を用いてデータを捕捉する。次いで、回復されたデータは、出力データとしてコア・ロジックに与える前に、そのデータ・チャネルのためデータＦＩＦＯにおいてワード整列される。
【００２０】
各ＤＳＣモジュールのクロック・チャネルが、クロック・チャネル・フロントエンド、ＢＩＳＴ（内蔵型自己試験）ブロック、及びユーティリティ・ブロックを含むサブブロックから構成されるのが好ましい。クロック・チャネル・フロントエンド・ブロックは、データ回復リンク・クロック信号を発生し、この信号をＤＳＣモジュール内の全てのデータ・チャネルに分配する。ＢＩＳＴブロックは、ＤＳＣモジュール全体の臨界的機能性を試験し、自己試験状態を報告する手段を提供する。ユーティリティ・ブロックは、コールド訓練シークエンス、ウォーム訓練シークエンス、ＤＳＣ及びコア・ロジック及びバンドルに跨るデータＦＩＦＯ読み出しポインタ制御の間のインターフェースを調整するための論理的機能を提供する。
【００２１】
ＤＳＣモジュールの各データ・チャネルは、データ・チャネル・フロントエンド、データＦＩＦＯ及びユーティリティ・ブロックを含む３つのサブブロックから構成されるのが好ましい。データ・チャネル・フロントエンド・ブロックは、コールド又はウォーム訓練シークエンスの位相補正サブシークエンス中にデータ及びクロック信号エッジを位相補正するよう機能する。一度位相補正が完了してしまうと、クロック・チャネルからのデータ回復リンク・クロック信号を用いて、位相補正されたデータをサンプリングする。データＦＩＦＯブロックは、正及び負の位相整列されたデータをデータ・チャネル・フロントエンドから受信し、そしてこのデータを、規定されたバイト境界上にフレーム化されたＦＩＦＯに格納される。また、データＦＩＦＯブロックを用いて、指令を検出して、ウォーム訓練シークエンスを開始し、そしてＳＳＭバイトを用いて、コールド訓練シークエンス及びウォーム訓練シークエンスの両方の動作のため書き込みポインタ・フレーム・カウンタを初期化し且つバンドル内のデータＦＩＦＯ読み出しポインタを開始する。データ・チャネルのユーティリティ・ブロックは、２つの主要な機能、即ち、１）データＦＩＦＯ読み出しポインタ制御及び調整、及び２）診断レジスタ制御及びインターフェースを実行する。
【００２２】
バンドル・インターフェース・モジュール（ＢＩＭ）は、バンドル内の全てのＤＳＣモジュール間のブロードキャスト信号を分配し、再調時し、そして論理的に組み合わせる。ＢＩＭはまた、バンドル内の、全ＤＳＣモジュールからのブロードキャスト・モジュール状態信号を組み合わせて、コア・ロジックへインターフェースするよう機能する。
【００２３】
コールド訓練シークエンス（ＣＴＳ）は、初期訓練シークエンスを実行するため全データ・チャネル上を送信される、クロック・チャネルＣＴＳ開始シークエンス、遅延トリミング・シークエンス、位相補正シークエンス及びスキュー同期化マーカ（ＳＳＭ）バイトから成ることが好ましい。ＣＴＳプロトコルは、システムのパワーアップ又はリセット、又は回復不能なリンク・エラーの後で、ＤＳＣモジュール訓練シークエンスを強制する方法を与える。
【００２４】
拡張された訓練シークエンス（ＥＴＳ）は、初期訓練シークエンスを実行するため全データ・チャネル上を送信される、ＥＴＳ指令シークエンス、遅延トリミング・シークエンス、位相補正シークエンス及びＳＳＭバイトから成る。ＥＴＳ指令は、並列データ・リンクの全データ・チャネルに跨る単一及びマルチビット・エラーに起因した間違った訓練シークエンスを防止しながら検出される。
【００２５】
ウォーム訓練シークエンス（ＷＴＳ）は、周期的訓練シークエンスを実行するため全データ・チャネル上を送信される、ＷＴＳ指令シークエンス、位相補正シークエンス及びＳＳＭバイトから成る。ＷＴＳ指令は、並列データ・リンクの全データ・チャネルに跨る単一及びマルチビット・エラーに起因した間違った訓練シークエンスを防止しながら検出される。
【００２６】
本発明に従ったシステムは、並列データ・リンクに関する相対的スキュー解除（ｄｅｓｋｅｗ）を効果的に補償する。本発明のスキュー解除回路のハードウエア実現は、低減した構成要素数、低減したパワー消費を有する遅延線を含み、そしてスキュー解除回路は、プロセスと独立であり且つスケーラブルである。
【００２７】
［好適な実施形態の詳細な説明］
本発明の様々な実施形態に従って、且つここで、類似の参照番号が本発明の様々な実施形態の類似の構成要素を特定する図面を参照すると、並列データ・ラインの相対的動的スキュー補償が効果的に実行されることができる。更に、本発明に従ったスキュー解除回路のハードウエア実現は、低減した構成要素数及び低減したパワー消費を有する遅延線を含み、そして当該スキュー解除回路はプロセスと独立であり且つスケーラブルである。
【００２８】
本発明に従ったスキュー解除回路の好適な実施形態が図３に示されている。一般的に、リンク・アーキテクチャ及び動作は次の通りである。
送信元ノードにおいて、１つ又はそれより多い送信元同期ドライバ（ＳＳＤ）モジュール３１０−０，３１０−１…３１０−Ｎから構成される送信機３００は、データを物理的媒体、例えば光ファイバ又は銅リボン・ケーブル上へ駆動する。なお、物理的媒体は、複数のデータ・チャネル０，１…Ｍから成る並列バス３２０を形成し、データは、リンク・クロックの前縁（リーディング・エッジ）又は後縁（トレーリング・エッジ）のいずれかのエッジで整列されている。クロック及びデータ信号が銅又は光ファイバ媒体を介して伝搬するにつれ、各チャネル上の信号は、独特であり且つ並列バス上の他の信号と相関していない伝搬現象を経験し、その結果受信機３４０が存在する宛先ノードにおいて異なる到着時間を生じる。この到着時間の相違が「スキュー」と呼ばれる。
【００２９】
受信されたデータを首尾良くサンプリングするため、並列バス３２０における全てのデータ・チャネル０，１…Ｍ間のスキューは、排除されるか、又は著しく低減されねばならず、そしてリンク・クロック・エッジが、データ・ビット時間周期内で実質的に中心付けされてなければならない。チャネル対チャネル（ｃｈａｎｎｅｌ−ｔｏ−ｃｈａｎｎｅｌ）・スキューを補償するための調整、及びリンク・クロック・エッジの中心付けは、後に一層詳細に説明されるように、ＤＳＣモジュール３５０−０，３５０−１…３５０−Ｎによりコールド訓練シークエンス（ＣＴＳ）、拡張された訓練シークエンス（ＥＴＳ）、又はウォーム訓練シークエンス（ＷＴＳ）動作中に実行される。ＥＴＳ及びＷＴＳの両方の動作は、リンクが適正に補償され済みであり、且つリンク・エッジがより早期のＣＴＳ中に中心付けされ済みであることを仮定する。
【００３０】
正常動作中には、ＤＳＣモジュール３５０−０，３５０−１…３５０−Ｎの主要機能は、バンドルに跨るデータＦＩＦＯの制御、及びバンドルに跨る拡張及びウォーム訓練指令シークエンスの検出である。データＦＩＦＯ制御、特に、バンドルに跨るその読み出しポインタは、ＤＳＣモジュール３５０内の第１レベルのデイジーチェーン化された信号、及びバンドル・レベルでの第２レベルのブロードキャスト状態信号を備える２レベルの分散型制御スキームを用いて達成される。これは、バンドルに跨るデータＦＩＦＯの協調をスケーリングする手段を与える。
【００３１】
データＦＩＦＯの正常動作は次の通りである。図１１に示されるように、データＦＩＦＯブロックの書き込みポインタ・アドレス・ベクトルｗｒ＿ｐｎｔｒ＿ａｄｒは、コア・クロックの各立ち上がり縁上でサンプリングされ、そして図２５に示されるように、ＦＩＦＯ状態論理ブロックによりコア・クロック・ドメインに対して同期化される。読み出しポインタ１１１０のアドレス・ベクトルｒｄ＿ｐｎｔｒ＿ａｄｒがまた、コア・クロックの各立ち上がり縁上でサンプリングされ、そして同期化されたｗｒ＿ｐｎｔｒ＿ａｄｒを用いて処理される。読み出しＦＩＦＯアドレスと書き込みＦＩＦＯアドレスとが比較され、そしてＦＩＦＯ状態、即ち、データの状態、ＦＩＦＯ一杯又は空の状態、及びいずれのエラー条件が決定される。
【００３２】
各データ・チャネルにおいて、関連のデータＦＩＦＯの状態が、図２５に示されるように、他のデータＦＩＦＯブロックの状態を用いて処理されて、デイジーチェーン化された状態信号ｍｙ＿ｄａｔａ＿ｖａｌｉｄ＿ｏ，ｍｙ＿ｆｉｆｏ＿ｆｕｌｌ＿ｏ，ｍｙ＿ｆｉｆｏ＿ｅｍｐｔｙ＿ｏ及びｍｙ＿ｆｉｆｏ＿ｅｒｒｏｒ＿ｏを発生する。デイジーチェーン化されたセグメントからの状態信号同士は、図６に示されるＤＳＣクロック・チャネル６００のためのユーティリティ・ブロックで組み合わされて、図１５に示されるｂｎ／ｒｘ＿ｄａｔａ＿ｖａｌｉｄ，ｂｎ／ｒｘ＿ｆｉｆｏ＿ｆｕｌｌ，ｂｎ／ｒｘ＿ｆｉｆｏ＿ｅｍｐｔｙ及びｂｎ／ｒｘ＿ｅｒｒｏｒを含むモジュール・バンドル信号を生成する。なお、これらのモジュール・バンドル信号は、図３に示されるＢＩＭ３６０を介してバンドル内の全てのＤＳＣモジュールにブロードキャストされる。分配された状態信号は更に、ＤＳＣモジュール３５０−０，３５０−１…３５０−Ｎのそれぞれに対するＢＩＭ３６０の出口ポートで処理され、そして図１４に示されるｂｉｍ＿ｄａｔａ＿ｖａｌｉｄ，ｂｉｍ＿ｆｉｆｏ＿ｆｕｌｌ，ｂｉｍ＿ｆｉｆｏ＿ｅｍｐｔｙ及びｂｉｍ＿ｆｉｆｏ＿ｅｒｒｏｒとしてＤＳＣモジュールへ通される。
【００３３】
ＢＩＭ３６０からの、図６に示される分配されたＦＩＦＯ状態信号ｂｉｍ＿ｂｕｎｄｌｅ信号は、ＤＳＣクロック・チャネル６００により受信され、そしてＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…のそれぞれに分配される。希望されたＤＳＣ対コア・インターフェースに依存して、ＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…の制御ロジックは、ブロードキャスト状態信号の一部又は全部を受信し、そして図１１に示される読み出しポインタ１１１０へのｒｄ＿ｃｎｔ＿ｅｎｂ信号を制御して、読み出しポインタ・アドレスを進め又は保持する。
【００３４】
ＥＴＳ及びＷＴＳ指令探索は、ＤＳＣモジュール３５０−０，３５０−１…３５０−Ｎの別の主要機能である。指令シークエンスの検出は、他のリンクが正常動作を継続する間にバンドルにおけるリンクの一部が訓練に入る「間違った（ｆａｌｓｅ）」又は「分割された（ｓｐｌｉｔ）」訓練シナリオから保護しなければならない。
【００３５】
より詳細に考慮すると、正常動作中、指令検出は次の通りである。図３に示される送信機３００は、拡張された訓練シークエンス（ＥＴＳ）又はウォーム訓練シークエンス（ＷＴＳ）を、それぞれＥＴＳ又はＷＴＳ指令バイト・シークエンスの送信を用いて開始する。図１１に示されるように、パターン探索ＦＳＭブロック１１２０は、指令シークエンス・パターン及びＳＳＭバイト・パターン探索の両方を、正常及び訓練モード動作のそれぞれの間に、データＦＩＦＯレジスタ・ファイル１１７０に一時的に格納されている回復されたデータについて実行する。その非アサートされた（ｎｏｎ−ａｓｓｅｒｔｅｄ）状態の信号ｔｒａｉｎ＿ｍｏｄｅを用いて、パターン探索ＦＳＭブロック１１２０は、訓練指令シークエンスを探索する。フレーム・ビット・カウンタ１１６０からの信号ｆｒａｍｅ＿ｉｎｃ及びｂｙｔｅ＿ｍａｒｋｅｒをパターン探索ＦＳＭブロック１１２０が用いて、受信された指令バイトをフレーム化する。パターン探索ＦＳＭブロック１１２０は、信号ｔｒａｉｎ＿ｄｅｔ1＿ｆｌｇ、ｔｒａｉｎ＿ｄｅｔ２＿ｆｌｇ又はｃｍｄ＿ｅｒｒ＿ｆｌｇを、ＷＴＳ指令シークエンス、ＥＴＳ指令シークエンスに関して、又は指令シークエンス中に検出されたエラー条件に関してアサート（ａｓｓｅｒｔ）し、そしてユーティリティ・ブロックへ通す。図２５に示されるように、信号ｔｒａｉｎ＿ｄｅｔ１＿ｆｌｇ、ｔｒａｉｎ＿ｄｅｔ２＿ｆｌｇ又はｃｍｄ＿ｅｒｒ＿ｆｌｇはそれぞれ、ｍｙ＿ｔｒａｉｎ＿ｄｅｔ１＿ｏ、ｍｙ＿ｔｒａｉｎ＿ｄｅｔ２＿ｏ、ｍｙ＿ｃｍｄ＿ｅｒｒ＿ｏ及びｍｙ＿ｔｒａｉｎ＿ｄｅｔ＿ｏとして次のデータ・チャネルに通される前に、又はクロック・チャネルのユーティリティ・ブロックで終了する前に、前のデータ・チャネルから到来のデイジーチェーン化された信号ｍｙ＿ｔｒａｉｎ＿ｄｅｔ１＿ｉ、ｍｙ＿ｔｒａｉｎ＿ｄｅｔ２＿ｉ、ｍｙ＿ｃｍｄ＿ｅｒｒ＿ｉ及びｍｙ＿ｔｒａｉｎ＿ｄｅｔ＿ｉの中に組み入れられる。信号ｍｙ＿ｔｒａｉｎ＿ｄｅｔ１＿ｏ及びｍｙ＿ｔｒａｉｎ＿ｄｅｔ２＿ｏは、ｍｙ＿ｔｒａｉｎ＿ｄｅｔ１＿ｉ、ｍｙ＿ｔｒａｉｎ＿ｄｅｔ２＿ｉ、ｔｒａｉｎ＿ｄｅｔ１＿ｆｌｇ及びｔｒａｉｎ＿ｄｅｔ２＿ｆｌｇのデイジーチェーンＡＮＤ関数の結果である。信号ｍｙ＿ｃｍｄ＿ｅｒｒ＿ｉは、ｍｙ＿ｃｍｄ＿ｅｒｒ＿ｉとｃｍｄ＿ｅｒｒ＿ｆｌｇとのデイジーチェーンＯＲ関数の結果であり、一方ｍｙ＿ｔｒａｉｎ＿ｄｅｔ＿ｏは、信号ｍｙ＿ｔｒａｉｎ＿ｄｅｔ１＿ｉ及びｍｙ＿ｔｒａｉｎ＿ｄｅｔ２＿ｉとｍｙ＿ｔｒａｉｎ＿ｄｅｔ＿ｉとのデイジーチェーンＯＲ関数の結果である。信号ｍｙ＿ｔｒａｉｎ＿ｄｅｔ＿ｏは、ｍｙ＿ｔｒａｉｎ＿ｄｅｔ＿ｉと、各データ・チャネルＦＩＦＯブロックの信号ｔｒａｉｎ＿ｄｅｔ１＿ｆｌｇ及びｔｒａｉｎ＿ｄｅｔ２＿ｆｌｇの論理ＯＲとのデイジーチェーンＯＲ関数である。信号ｍｙ＿ｔｒａｉｎ＿ｄｅｔ＿ｏを用いて、ＤＳＣモジュール内の少なくとも１つのデータ・チャネルが指令シークエンスを検出し且つ拡張された又はウォーム訓練シークエンスのいずれかを開始済みであることをクロック・チャネルに通知する。指令シークエンス・エラー条件のケースに対して、図１１に示されるパタ��ン探索ＦＳＭブロック１１２０は、指令シークエンス探索を再開する。
【００３６】
図２８に示されるように、信号ｍｙ＿ｔｒａｉｎ＿ｄｅｔ１＿ｏ、ｍｙ＿ｔｒａｉｎ＿ｄｅｔ２＿ｏ、ｍｙ＿ｃｍｄ＿ｅｒｒ＿ｏ及びｍｙ＿ｔｒａｉｎ＿ｄｅｔ＿ｏの左及び右セグメントは、ＤＳＣクロック・チャネル６００のユーティリティ・ブロックで終了し、そしてＤＳＣモジュール３５０の全てのデータ・チャネルのそれぞれのデイジーチェーンＡＮＤ関数及びデイジーチェーンＯＲ関数の積である。ユーティリティ・ブロック内のロジックは、ＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…から受信されたこれらの信号に関して動作し、そして信号ｃｌｋ＿ｔｒａｉｎ＿ｓｔｒｔ（例えば、図２６に示されるｃｌｋ＿ｔｒａｉｎ＿ｓｔｒｔ１及びｃｌｋ＿ｔｒａｉｎ＿ｓｔｒｔ２）を発生する。信号ｃｌｋ＿ｔｒａｉｎ＿ｓｔｒｔ１又はｃｌｋ＿ｔｒａｉｎ＿ｓｔｒｔ２は、ｍｙ＿ｔｒａｉｎ＿ｄｅｔ１＿ｏ又はｍｙ＿ｔｒａｉｎ＿ｄｅｔ２＿ｏのそれぞれがアサートされ且つ信号ｏｎｅ＿ｓｓｍ＿ｄｅｔ＿ｆｌｇ及びｍｙ＿ｃｍｄ＿ｅｒｒ＿ｏはアサートされない場合で且つその場合のみアサートされる（例えば、ｃｌｋ＿ｔｒａｉｎ＿ｓｔｒｔ１は、ｍｙ＿ｔｒａｉｎ＿ｄｅｔ１＿ｏがアサートされ且つｍｙ＿ｃｍｄ＿ｅｒｒ＿ｏ及びｏｎｅ＿ｓｓｍ＿ｄｅｔ＿ｏがアサートされない場合で且つその場合のみアサートされる。）。図７に示される信号ｃｌｋ＿ｔｒａｉｎ＿ｓｔｒｔ１及びｃｌｋ＿ｔｒａｉｎ＿ｓｔｒｔ２を用いて、ＤＳＣモジュール３５０の中の全てのデータ・チャネルがそれらの訓練シークエンスを首尾良く検出し且つ完了してしまった後でのみクロック・チャネルの中のウォーム訓練シークエンス（ＷＴＳ）又は拡張された訓練シークエンス（ＥＴＳ）のそれぞれを開始する。
【００３７】
エラーが指令シークエンスにおいて検出されたケースでは、データ・チャネルＦＩＦＯブロック内のパターン探索ＦＳＭブロック１１２０は、ｃｍｄ＿ｅｒｒ＿ｆｌｇ信号をアサートし、そしてその訓練指令シークエンスの探索を開始する。データ・チャネルにおけるｃｍｄ＿ｅｒｒ＿ｆｌｇ信号のアサーション（ａｓｓｅｒｔｉｏｎ）は、到来のデイジーチェーン化された信号ｍｙ＿ｃｍｄ＿ｅｒｒ＿ｉと論理的にＯＲ演算されて、信号ｍｙ＿ｃｍｄ＿ｃｒｒ＿ｏを生成し、当該信号ｍｙ＿ｃｍｄ＿ｃｒｒ＿ｏは、次のデータ・チャネルに伝搬されて、最終的にクロック・チャネルのユーティリティ・ブロックで終了する。ｍｙ＿ｃｍｄ＿ｅｒｒ＿ｏのアサーションは、ｃｌｋ＿ｔｒａｉｎ＿ｓｔｒｔ１かｃｌｋ＿ｔｒａｉｎ＿ｓｔｒｔ２かのいずれか及びクロック・チャネルのアサーションが訓練シークエンスを実行するのを防止する。
【００３８】
第２のエラー条件においては、指定された制限を超えた過剰のスキューが、少なくとも１つのデータ・チャネルにより経験され、そのデータ・チャネルがバンドル内の他のデータ・チャネルより非常に遅くその訓練シークエンスに入るようにさせる。その効果は、クロック・チャネル訓練シークエンスを開始させる、図７に示されるｃｌｋ＿ｔｒａｉｎ＿ｓｔｒｔ１及びｃｌｋ＿ｔｒａｉｎ＿ｓｔｒｔ２信号が著しく遅延されることである。図２６に示されるｏｎｅ＿ｓｓｍ＿ｄｅｔ＿ｆｌｇがｃｌｋ＿ｔｒａｉｎ＿ｓｔｒｔ信号の前にアサートされる場合、そのクロック・チャネルはその訓練シークエンスをアボートする。
【００３９】
データ・チャネルＦＩＦＯブロックのパターン探索ＦＳＭブロック１１２０によるｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇ信号のアサーションは、信号ｍｙ＿ａｌｌ＿ｓｓｍ＿ｆｏｕｎｄ（例えば、図２５に示されるｍｙ＿ａｌｌ＿ｓｓｍ＿ｆｏｕｎｄ＿ｉ及びｍｙ＿ａｌｌ＿ｓｓｍ＿ｆｏｕｎｄ＿ｏ）のデイジーチェーンＡＮＤトリー、及び信号ｍｙ＿ｏｎｅ＿ｓｓｍ＿ｄｅｔ（例えば、図２５に示されるｍｙ＿ｏｎｅ＿ｓｓｍ＿ｄｅｔ＿ｉとｍｙ＿ｏｎｅ＿ｓｓｍ＿ｄｅｔ＿ｏとの）とクロック・チャネルのユーティリティ・ブロックで終了するこれらの信号の全てとのデイジーチェーンＯＲトリーの中に組み入れられる。クロック・チャネル列（ｔｒａｉｎ）検出ロジックは、ｏｎｅ＿ｓｓｍ＿ｄｅｔ＿ｆｌｇ（図２６に図示）及びｃｍｄ＿ｅｒｒ＿ｆｌｇ（図２５に図示）信号がアサートされない場合で且つその場合のみ図７に示されるｃｌｋ＿ｔｒａｉｎ＿ｓｔｒｔ１をアサートする。
【００４０】
ウォーム訓練シークエンス（ＷＴＳ）の一般的説明をここで与える。ウォーム訓練シークエンスは、より包括的コールド訓練シークエンス（ＣＴＳ）及び拡張された訓練シークエンス（ＥＴＳ）の両方の動作の副動作であり、そして同様に独立した動作であることができる。ＷＴＳ動作の目的は、リンク全体の動作についての環境条件及びそれらの条件の効果に関して調整することである。ＷＴＳ又はＥＴＳの頻度（ｆｒｅｑｕｅｎｃｙ）は、環境的に誘発されたスキュー効果を補償するに十分でなければならない。この訓練の頻度は、環境及び応用に非常に依存している。３つの訓練のタイプのうちで、ＷＴＳは、最も共通であり、そしてスキュー・プロフィールにおける任意のシフトに関して調整するのに最も少ない時間量しか必要でない。
【００４１】
ＷＴＳ動作は、送信元ノードにおいて、ＷＴＳ指令を全てのリンク・データ・チャネル３２０上を送信する送信モジュール３１０−０，３１０−１…３１０−Ｎにより開始される。ＷＴＳ指令は、正常のデータ・ストリームで見出されない独特のパターンを有する最小数の連続した指令バイト（典型的には４バイト）を有する。本発明の一変形に従って、代替方法は、追加のチャネルを加えて、訓練シークエンスを識別することを含むか、又は「バイト計数」を用いて、ＷＴＳ指令を開始し得ることを含む。ＷＴＳ指令のための「エラー・フリー」最小長又はバイト計数は、ランダム・ビット・エラーが間違った又は自然発生的な訓練シークエンスを開始することができないことを保証するため要求される。
【００４２】
ウォーム訓練シークエンス中のクロック・チャネルの説明をここで、図７及び図８を参照してする。ウォーム訓練シークエンス中に、ＤＳＣクロック・チャネル６００のフロントエンドは、データ回復リンク・クロックｄｒｃ＿ｌｎｋ＿ｃｌｋに必要とされるクロック・オフセット値を決定して、そのエッジをデータ・ビット内に中心付けする。リンク・クロック信号の周期を測定し、且つこの値を４の係数で除算することにより、４分の１ラムダの好適なオフセット値を生成する。この周期中に、ｐｈｓ＿ａｄｊ＿ｄｏｎｅ信号は、ｄｒｃ＿ｌｎｋ＿ｃｌｋが新しく獲得されたオフセット値を前提としながら、信号ｔｒａｉｎ＿ｓｔｒ１のアサーション後に或る期間不活動状態にされる。
【００４３】
より詳細に考慮すると、クロック・チャネル・フロントエンド・ブロック７００において、ｔｒａｉｎ＿ｓｔｒ１のアサーションは、クロック信号ｓｔｄ＿ｌｎｋ＿ｃｌｋをその状態マシン８６０に対してイネーブルにしながら、ｐｈｓ＿ａｄｊ＿ｄｏｎｅ信号を不活動状態にする。信号ｐｈｓ＿ａｄｊ＿ｄｏｎｅは、ｍｏｄ＿ｃｌｋ＿ａｄｊ＿ｄｏｎｅとしてＤＳＣモジュール３５０の全てのＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…にブロードキャストされる。アサートされたとき、ｐｈｓ＿ａｄｊ＿ｄｏｎｅ（ｍｏｄ＿ｃｌｋ＿ａｄｊ＿ｄｏｎｅ）信号は、ＤＳＣデータ・チャネル・フロントエンドがそれらの訓練シークエンスを完了するのを可能にする。一度活動状態にされると、上記状態マシンは、そのｍｅａｎ＿ｓｔｒｔ信号をアサートして、ｍｅａｎ＿ｐｕｌｓｅ信号を遅延線８４０の入力に生成する。次のクロック・サイクルで、信号ｍｅａｎ＿ｃｎｔｌがアサートされ、図８に示されるクロック・イメージ・ラッチ８００においてクロック周期測定値を捕捉し、そしてｍｅａｎ＿ｐｕｌｓｅを１クロック・サイクル遅れて終了し、正常リンク・クロック波形に戻る。クロック・イメージ・ワードは、遅延タップ又は単純に「タップ」の点から見て受信されたリンク・クロック信号のクロック周期を表すＮビット・ワードである。「クロック・イメージ・ワードの「ワン・ホット（ｏｎｅ−ｈｏｔ）」復号が、イメージ復号ロジック８１０により実行され、当該イメージ復号ロジック８１０は、リンク・クロック信号の周期を表す、第１の１から０への遷移のタップの位置を特定する。ストリング／バイナリ・エンコーダ回路８２０は、「ワン・ホット」タップ位置をバイナリ値に変換し、そしてｔａｐ＿ｄｅｃｏｄｅベクトルを発生する。ストリング／バイナリ・エンコーダ回路８２０のｔａｐ＿ｄｅｃｏｄｅベクトル出力は、リンク・クロック周期のバイナリ値であり、そのリンク・クロック周期のバイナリ値は更に、ＤＮＡ論理ブロック８３０により処理されて、最終のｔａｐ＿ａｄｒ信号を発生する。ＤＮＡ論理ブロック８３０は、ｔａｐ＿ｄｅｃｏｄｅベクトルについて１組の算術演算を実行して、最終のｔａｐ＿ａｄｒ値に到達する。図２９Ａに示されるように、第１及び第２の演算において、クロック・イメージ・ラッチ分散遅延（ｄｉｔｒｉｂｕｔｉｏｎ  ｄｅｌａｙ）のバイナリ値が、ｔａｐ＿ｄｅｃｏｄｅベクトルから減算され、次いで、その調整された値は、２位置右にシフトされて、４の値での除算を導出する。第３の演算において、平衡遅延値が、４での除算演算の結果に加えられて、最終のｔａｐ＿ａｄｒ値を生成する。平衡遅延値は、ｄｒｃ＿ｌｎｋ＿ｃｌｋ及びｓｔｄ＿ｌｎｋ＿ｃｌｋクロック信号のエッジを整列させるため必要とされる。クロック・チャネルは、ＷＴＳ動作のその一部分を、図８に示されるｐｈｓ＿ａｄｊ＿ｄｏｎｅ信号（ｍｏｄ＿ｃｌｋ＿ａｄｊ＿ｄｏｎｅ）のアサーションを用いて完了する。信号ｐｈｓ＿ａｄｊ＿ｄｏｎｅ（ｍｏｄ＿ｃｌｋ＿ａｄｊ＿ｄｏｎｅ）は、ｍｅａｓ＿ｃｎｔｌアサーション後の十分な数のクロック・サイクル後にアサートされて、全てのＤＳＣデータ・チャネル６１０−０，６１０−１，６１���−２，６１０−３…がそれらのデータ回復ストリングを再び開始してＳＳＭバイトを検出するに十分な時間を有することを保証する。
【００４４】
試験をする目的のため、最終のｔａｐ＿ａｄｒ値は、図８及び図２９Ａに示される、登録されたオフセット値ｃｓｒ＿ｃｌｏｃｋ＿ｃｈ＿ｏｆｆｓｅｔベクトル値を加算し又は減算すること、及び／又はｃｓｒ＿ｌａｍｄａ＿ｓｃａｌｅｒベクトルを変えることにより修正されて、４の係数でのデフォルト除算結果を別の事前定義された値に変えることができる。４の係数での除算結果は、サンプリング及びエッジ配置（ｐｌａｃｅｍｅｎｔ）計算エラーを最小にしながらクロック・エッジをビット期間内に中心付けする好適なｃｓｒ＿ｌａｍｄａ＿ｓｃａｌｅｒ値である。
【００４５】
ウォーム訓練シークエンス中のデータ・チャネル動作の詳細な説明をここで与える。ＤＳＣデータ・チャネル・フロントエンド９１０において、ｔｒａｉｎ＿ｓｔｒ１のアサーションは、ローカル信号ｐｈｓ＿ａｄｊ＿ｄｏｎｅを不活動状態にし、そしてクロック信号ｓｔｄ＿ｌｎｋ＿ｃｌｋ＿ｂを図１０に示されるその状態マシン１０００に対してイネーブルにする。ｐｈｓ＿ａｄｊ＿ｄｏｎｅの不活動状態化は、信号ｐｏｓ＿ｄａｔａ＿ｂｉｔ及びｎｅｇ＿ｄａｔａ＿ｂｉｔをゼロ値に強制的にする。一度活動状態にされると、データ・チャネルＦＳＭ１０００は、ベクトルｍｏｄｅ＿ｓｅｌ及びｔｒｉｍ＿ｃ２ｄ＿ｓｅｌの値を設定し、そして信号ｒｅｆｌｏｗ＿ｃｏｎｆ＿ｅｎをアサートする。ｍｏｄｅ＿ｓｅｌベクトルの値は、データ・チャネル入力マルチプレクサのｌｎｋ＿ｄａｔａ＿ｉｎ信号を選択し、一方ｔｒｉｍ＿ｃ２ｄ＿ｓｅｌベクトルは、最小サブタップ「パディング」遅延を選択する。信号ｒｅｆｌｏｗ＿ｃｏｎｆ＿ｅｎのアサーションは、「リフロー（ｒｅ−ｆｌｏｗ）」測定構成を可能にする。「リフロー」測定構成は、遅延線１０７０の「イベント入力」に印加された信号を、当該遅延線の遅延段を通すことなく、当該遅延線の出力にルート付けさせる。「エコー入力」に印加された第２の信号は、遅延線の遅延段を通るようルート付けされるが、しかし遅延線の出力からブロック（阻止）される。従って、「エコー入力」に印加された信号の遅延イメージは、記録されることができ、一方「イベント入力」に印加された信号は、遅延段をバイパスする遅延線１０７０の入力及び出力回路を同時に通過する。
【００４６】
信号ｍｅａｓ＿ｅｎは、データ位相ワードをデータ・イメージ・ラッチ１０１０においてリンク・クロックｓｔｄ＿ｌｎｋ＿ｃｌｋの次の立ち上がり縁で捕捉するＦＳＭ１０００によりアサートされる。データ位相ワードの捕捉がゼロ・オフセットを有するｄｒｃ＿ｌｎｋ＿ｃｌｋを表すライン・クロックｓｔｄ＿ｌｎｋ＿ｃｌｋと関係付けられることに注目することが重要である。従って、データ位相ワードは、データ・ストリームの位相の、ゼロのオフセット値を有するデータ回復リンク・クロックｄｒｃ＿ｌｎｋ＿ｃｌｋに対する位相関係を表す。データ位相ワードは、遅延タップ又は単純に「タップ」の点から見て受信されたリンク・データ信号の位相エラーを表すＮビット・ワードである。データ・イメージ・ワードの「ワン・ホット」復号は、イメージ復号ロジック１０２０により実行され、当該イメージ復号ロジック１０２０は、ｄａｔａ＿ｉｍａｇｅ＿ｌａｔｃｈ［０］が１に等しいとき第１の１から０への遷移のタップ位置に、又ｄａｔａ＿ｉｍａｇｅ＿ｌａｔｃｈ［０］がゼロに等しいとき０から１への遷移のタップ位置を特定する。ストリング／バイナリ・エンコーダ回路１０３０は、「ワン・ホット」タップ位置をバイナリ値に変換し、且つ図１０に示されるｔａｐ＿ｄｅｃｏｄｅベクトルを発生する。ＦＳＭ１０００は、初期ｔａｐ＿ｄｅｃｏｄｅベクトルをＤＮＡレジスタにセーブし、そして図３０に示されるように修正されたバイナリ探索アルゴリズムを開始して、残留位相エラーをタップ遅延の１／ｎ未満の値まで低減するであろうｔｒｉｍ＿ｃ２ｄ＿ｓｅｌベクトルを決定する。「ｎ」は、サブタップ遅延値の分解能を表す。
【００４７】
ストリング／バイナリ・エンコーダ回路１０３０のｔａｐ＿ｄｅｃｏｄｅベクトル出力は、リンク・データ位相エラーのバイナリ値であり、このバイナリ値を更に、図１０に示されるように、ＤＮＡロジック・ブロック１０４０が処理して、最終のｔａｐ＿ａｄｒ信号を発生する。試験の目的のため、最終ｔａｐ＿ａｄｒ値は更に、登録されたオフセット値、即ちｃｓｒ＿ｄａｔａ＿ｃｈ＿ｏｆｆｓｅｔベクトルを加算又は減算することにより修正されることができる。ＤＮＡロジック・ブロック１０４０が、ｔａｐ＿ｄｅｃｏｄｅベクトルについて１組の算術演算を実行して、最終のｔａｐ＿ａｄｒ値に到達する。図２９Ｂに示されるように、第１及び第２の演算において、データ・イメージ・ラッチ分配遅延のバイナリ値が、ｔａｐ＿ｄｅｃｏｄｅベクトルから減算され、そしてｄｒｃ＿ｌｎｋ＿ｃｌｋクロック及びｐｈｓ＿ａｄｊ＿ｄａｔａ信号のエッジ同士を整列させるため必要とされる平衡遅延が加算されて、最終のｔａｐ＿ａｄｒ値に到達する。信号ｐｈｓ＿ａｄｊ＿ｄｏｎｅは、ｍｅａｎ＿ｅｎがアサートされた後の十分な数のクロック・サイクル後にアサートされて、その結果、位相補正されたデータがデータ回復ストリング１０６０を通って伝搬されてしまうことを保証する。ＤＳＣモジュール３５０内の全てのデータ・チャネルがそれらの位相補正シークエンスを完了してしまうとき、ＤＳＣデータ・チャネル６１０は、ｍｏｄ＿ｃｌｋ＿ａｄｊ＿ｄｏｎｅ信号を不活動状態にして、その訓練シークエンスを始める。不活動状態にされるとき、信号ｍｏｄ＿ｃｌｋ＿ａｄｊ＿ｄｏｎｅは、ＤＳＣモジュール３５０内の全てのデータ・チャネルに関してｐｈｓ＿ａｄｊ＿ｄｏｎｅ信号を不活動状態にする。クロック・チャネルがその訓練シークエンスを完了してしまうとき、それは、信号ｍｏｄ＿ｃｌｋ＿ａｄｊ＿ｄｏｎｅをアサートして、データ・チャネルがそれらのｐｈｓ＿ａｄｊ＿ｄｏｎｅ信号をアサートするのを可能にする。信号ｍｏｄ＿ｃｌｋ＿ａｄｊ＿ｄｏｎｅは、データ・チャネルがそれらのｐｈｓ＿ａｄｊ＿ｄｏｎｅ信号をアサートするに十分な時間を用いてアサートされて、データ回復ストリング１０６０を初期化する。ｐｈｓ＿ａｄｊ＿ｄｏｎｅ信号のアサーションは、データ・チャネル位相補正シークエンスの終わりを指示し、そして図９に示されるデータＦＩＦＯブロック９００に対してデータ出力信号ｎｅｇ＿ｄａｔａ＿ｂｉｔ及びｐｏｓ＿ｄａｔａ＿ｂｉｔをイネーブルする。
【００４８】
再び図１１を参照すると、データＦＩＦＯブロック９００において、ｔｒａｉｎ＿ｓｔｒ１のアサーションが、ＳＳＭ開始シークエンサ１１３０をリセットし、そしてそのｓｔｄ＿ｌｎｋ＿ｃｌｋを活動状態にする。ＳＳＭ開始シークエンサ１１３０のリセットがまた、信号ｔｒａｉｎ＿ｍｏｄｅを不活動状態にして、書き込みポインタ１１４０をゼロ値に強制的にする。従って、ＷＴＳ動作中に、データＦＩＦＯレジスタ・ファイル１１７０の位置ゼロのみが選択される。
【００４９】
ｎｅｇ＿ｄａｔａ＿ｂｉｔ及びｐｏｓ＿ｄａｔａ＿ｂｉｔストリームが、データＦＩＦＯスタック１１７０の中にｓｔｄ＿ｌｎｋ＿ｃｌｋの立ち上がり縁で書き込まれる。データＦＩＦＯスタック１１７０は、電力放散を最小にするためアドレス可能な「ビット毎書き込み（ｗｒｉｔｅ−ｐｅｒ−ｂｉｔ）」ＦＩＦＯとして実現されることが好ましい。ＦＩＦＯアドレス・エンコーダ１１５０からのデータＦＩＦＯ書き込みアドレスｆｉｆｏ＿ｂｉｔ＿ａｄｒは、書き込みポインタ１１４０及びフレーム・ビット・カウンタ論理ブロック１１６０から信号ｐｏｓ＿ｐａｔｔｒｎ＿ｆｌｇの状態と共に導出される。パターン探索ＦＳＭブロック１１２０からのｐｏｓ＿ｐａｔｔｒｎ＿ｆｌｇ信号は、データＦＩＦＯスタック１１７０の正のビットが全て論理１の値を有する場合論理１であり、その他の場合には、信号ｐｏｓ＿ｐａｔｔｒｎ＿ｆｌｇは論理０である。ＦＩＦＯの読み出し及び書き込み順序は、ＤＳＣデータ・チャネル・フロントエンド・ブロック９１０からのデータ・ストリームの負の位相整列に起因した適正なバイト・フレーミングを維持するため、ｐｏｓ＿ｐａｔｔｒｎ＿ｆｌｇの状態に応じて変えられる。ｆｉｆｏ＿ｂｉｔ＿ａｄｒは、ＳＳＭバイト中にｔｒａｉｎ＿ｍｏｄｅ信号を不活動状態にすると、ｐｏｓ＿ｐａｔｔｒｎ＿ｆｌｇの状態を用いて更新される。
【００５０】
ｔｒａｉｎ＿ｍｏｄｅ及びｐｈｓ＿ａｄｊ＿ｄｏｎｅのアサーションを用いて、パターン探索ＦＳＭ１１２０は、ＳＳＭ及び訓練フェンス・パターン探索を始める。正常動作中に、信号ｐｈｓ＿ａｄｊ＿ｄｏｎｅは、クロック・チャネルがその訓練シークエンスの中に入るとき不活動状態にされ、そして一度クロック・チャネルがその訓練を完了してしまうと再び活動状態にされるであろう。ｐｈｓ＿ａｄｊ＿ｄｏｎｅ信号の期間中、パターン探索ＦＳＭ１１２０の不活動状態化は、ＳＳＭバイト及び訓練フェンス・パターンのその探索を中断し、そして一度ｐｈｓ＿ａｄｊ＿ｄｏｎｅがアサートされてしまうと、その探索を再開する。ｆｒａｍｅ＿ｉｎｃの２つの遷移後に、訓練フェンス・パターンが検出されない場合、信号ｓｓｍ＿ｅｒｒ＿ｆｌｇがアサートされる。２つのｆｒａｍｅ＿ｉｎｃ遷移を待つことにより、ＤＳＣデータ・チャネル・フロントエンド・ブロック９１０が適正にサンプリングされるためデータ・ストリームを位相調整する時間を有したことが保証される。ＳＳＭ探索が継続され、そして信号ｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇは、一度ＳＳＭパターンが検出されてしまうと、アサートされる。非訓練フェンス・パターン又は非ＳＳＭパターンがこの時間中に検出される場合、ｓｓｍ＿ｅｒｒ＿ｆｌｇ信号がアサートされて、ＳＳＭ探索を終わりにする。ｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇ及びｓｓｍ＿ｅｒｒ＿ｆｌｇの状態が、ｔｒａｉｎ＿ｍｏｄｅ信号を不活動状態にすると直ぐに維持される。
【００５１】
ｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇ及びｓｓｍ＿ｅｒｒ＿ｆｌｇ信号の状態が、ＤＳＣクロック・チャネル６００に供給され、そして同様にＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…により内部で用いられる。ＤＳＣクロック・チャネル６００は、これらの信号を処理し、そしてその結果を、ＤＳＣモジュール３５０内の全てのＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…並びにバンドル内の他のＤＳＣモジュールにブロードキャストする。ＤＳＣデータ・チャネル６１０−０内部で、これらの信号は、適正なバイト・フレーミングを設定する、図１１に示されるＳＳＭ開始シークエンサ・ロジック１１３０により用いられる。
【００５２】
ＳＳＭ開始シークエンサ１１３０は、適正にデータ・バイトをフレーム化するため、書き込みポインタ１１４０及びフレーム・ビット・カウンタ１１６０を整列し、そして初期化する。この手順は、ウォーム訓練シークエンス後に受け取られた第１のデータ・ビットがデータＦＩＦＯスタック１１７０の位置ゼロに書き込まれることを保証する。ｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇ信号をアサーションすると、ＳＳＭ開始シークエンサ１１３０は、図１１に示されるように、ｆｒａｍｅ＿ｓｔｒｉ信号を不活動状態にしながら、ｆｒａｍｅ＿ｉｎｉｔ信号をアサートする。ｆｒａｍｅ＿ｉｎｉｔ信号は、フレーム・ビット・カウンタ１１６０をゼロ値に強制的にして、ゼロのｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルを発生し、当該ゼロのｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルにおいて、第１のデータ・ビットが格納される。書き込みポインタ１１４０及びフレーム・ビット・カウンタ１１６０は、ＳＳＭ開始シークエンサ１１３０がＳＳＭバイトの終わりからの２つのＵＩでｆｒａｍｅ＿ｓｔｒｔをアサートして、フレーム・ビット・カウンタ１１６０を開始するまで、上記の初期状態で保持される。ＳＳＭ開始シークエンサ１１３０は、ｔｒａｉｎ＿ｍｏｄｅ信号をＳＳＭバイトの終わりで非活動状態にする。ＳＳＭエラーの場合、ｓｓｍ＿ｅｒｒ＿ｆｌｇ信号が、アサートされ、そしてプロセスの一部として用いられて、エラー・フレーム化されたデータを観測し、そこにおいて、ＤＳＣデータ・チャネル６１０は、それが正しくなくフレーム化されるにも拘わらず、データを出力して、システムがエラー条件を診断するのを可能にする。
【００５３】
ｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルを発生するロジックは、書き込みポインタ１１４０、フレーム・ビット・カウンタ１１６０及びＦＩＦＯアドレス・エンコーダ１１５０の論理ブロックから構成される。前述したように、データＦＩＦＯスタック１１７０は「ビット毎書き込み」として実行されるのが好ましく、そこではデータの各ビットは、ｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルにより指示される特定のビット位置に書き込まれる。ｆｒａｍｅ＿ａｄｒ及びｗｒ＿ｐｎｔｒ＿ａｄｒベクトルをＦＩＦＯアドレス・エンコーダ１１５０ロジックが用いて、ｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルを発生する。フレーム・ビット・カウンタ１１６０は、２バイト・カウント間隔にわたる大きさにされ、それは、二倍フレームを整数個のリンク・クロック・サイクルで整列させる。ｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルの発生に要求されないにも拘わらず、書き込みポインタは、読み出しポインタと整合するような大きさにされ、それは、データＦＩＦＯ状態計算に必要なロジックを低減する。ｗｒ＿ｐｎｔｒ＿ａｄｒベクトルの最下位ビット部分（又はＬＳＢ）は、ｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルを発生するためにはＦＩＦＯアドレス・エンコーダ１１５０により用いられず、従って、書き込みポインタに２倍増分されることを要求する。これは、フレーム・ビット・カウンタ１１６０に、ｆｒａｍｅ＿ｉｎｃ信号をアサートして書き込みポインタ１１４０値をバイト時間間隔毎に増分するのを要求する。書き込みポインタの中間増分値がｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルに影響を及ぼさないが、しかしそれらは、読み出し対書き込み（ｒｅａｄ−ｔｏ−ｗｒｉｔｅ）ポインタ追跡を可能にする。書き込みポインタ１１４０及びフレーム・ビット・カウンタ１１６０のこのような構成は、設計の複雑さを低減した奇数番号付けされた符号化スキーム（例えば、８ｂ９ｂ）に適応する。
【００５４】
ＤＳＣクロック・チャネル６００は、図１１に示されるように、ｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇ及びｓｓｍ＿ｅｒｒ＿ｆｌｇ信号をＤＳＣモジュール３５０内の全てのＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…から受信する。図２６に示されるように、ｂｉｍ＿ａｌｌ＿ｓｓｍ＿ｆｏｕｎｄ信号は、ＤＳＣデータ・チャネル６１０からの全ｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇ信号の論理的「ＡＮＤ」であり、そしてそれがバンドル内の全てのＤＳＣモジュール３５０−０，３５０−１…３５０−ＮにＢＩＭ３６０を介してブロードキャストされる前にコア・クロック・ドメインへ同期化される。ｂｉｍ＿ｓｓｍ＿ｅｒｒ＿ｆｌｇ信号は、ＤＳＣデータ・チャネル６１０からの全ｓｓｍ＿ｅｒｒ＿ｆｌｇ信号の論理的「ＯＲ」であり、そしてそれがバンドル内の全てのＤＳＣモジュール３５０へＢＩＭ３６０を介してブロードキャストされる前にコア・クロック・ドメインへ同期化される。バンドル内の各ＤＳＣモジュール３５０は、図１４に示されるように、ブロードキャスト信号ｂｉｍ＿ｓｓｍ＿ｅｒｒ＿ｆｌｇ及びｂｉｍ＿ａｌｌ＿ｓｓｍ＿ｆｏｕｎｄをＢＩＭ３６０の送出ポート（ｅｘｐｏｒｔ  ｐｏｒｔ）を介して受信する。図２７に示されるＤＳＣクロック・チャネル６００のユーティリティ・ブロック内のモジュール・レベルＦＩＦＯ制御器は、これらの信号を受信し、そしてｍｏｄｅ＿ｒｄ＿ｃｎｔ＿ｓｔｒｔ信号を発生し、当該ｍｏｄｅ＿ｒｄ＿ｃｎｔ＿ｓｔｒｔ信号は、ＤＳＣモジュール３５０内の全てのＤＳＣデータ・チャネル６１０にブロードキャストされる。ｍｏｄｅ＿ｒｄ＿ｃｎｔ＿ｓｔｒｔ信号は、ｂｉｍ＿ｓｓｍ＿ｅｒｒ＿ｆｌｇ信号とｂｉｍ＿ａｌｌ＿ｓｓｍ＿ｆｏｕｎｄ信号との論理的「ＯＲ」である。ｍｏｄｅ＿ｒｄ＿ｃｎｔ＿ｓｔｒｔ信号のアサーションは、ウォーム訓練シークエンスの終わり、及び正常動作の開始をマーキングする。
【００５５】
ＤＳＣ訓練シークエンスを、リンク・データを正しくサンプリングする要件なしに開始する方法を与えるコールド訓練シークエンス（ＣＴＳ）をここで詳細に説明する。コールド訓練シークエンスは、システムのパワーアップ時に、又はシステムのリセット時に、あるいは回復不能のリンク・エラーの場合に必要とされる。コールド訓練シークエンスは、ウォーム訓練シークエンス（ＷＴＳ）中に実行されるように、遅延経路整合／較正に関連する第１のセグメント及びリンク・スキュー補償の第２のセグメントを有するスーパセットのウォーム訓練シークエンス（ＷＴＳ）操作である。ＣＴＳ操作は、リンク・リセットとして機能して、ＤＳＣモジュール３５０−０，３５０−１…３５０−Ｎが前の訓練シークエンス中に獲得された全ての較正値をリセット及びクリアし且つ即座の再訓練を急に引き起こすようにする。コールド訓練シークエンスは、全てのＤＳＣモジュール３５０−０，３５０−１…３５０−Ｎによる検出を保証するため最小の指定された時間量の間論理的１又は０状態のいずれかでリンク・クロック信号を保持することによりリンク・クロック・スイッチングを停止することにより開始される。ＣＴＳ操作を任意の時に開始することができる。本発明の一変形に従って、代替方法は、リンク・クロック周波数を遅くすること、又は非フェンス・パターンをリンク・クロック・チャネル上に与えることを含む。これらのいずれの方法も、ＣＴＳ操作を開始するため、検出可能な「リンク・リセット署名」を生成する。しかしながら、そうすることは、任意の受信されたデータがＤＳＣモジュール３５０−０，３５０−１…３５０−Ｎによりその時点に処理されることを無効にする。
【００５６】
一度ＣＴＳ操作が開始してしまうと、ＤＳＣモジュール３５０−０，３５０−１…３５０−Ｎは、以後「トリミング」と呼ばれる経路遅延整合／較正を始める。トリミングは最初に、全てのＤＳＣデータ・チャネル６１０が続くＤＳＣクロック・チャネル６００において完了されるのが好ましい。トリミング・プロセスが完了してしまった後でのみ、リンクのスキュー補償が開始される。
【００５７】
ＤＳＣクロック・チャネル６００遅延トリミングは、２段階プロセスである。第１段階は、クロック・イメージ・ラッチ８００分配の遅延補償を与え、そして、第２段階は、クロック信号ｄｒｃ＿ｌｎｋ＿ｃｌｋ（データ回復リンク・クロック）及びｓｔｄ＿ｌｎｋ＿ｃｌｋ（標準リンク・クロック）の経路遅延整合である。類似の操作が、ＤＳＣデータ・チャネル６１０で生じる。最初に、データ・イメージ・ラッチ１０１０分配の遅延補償が実行され、そして、次ぎに、位相調整されたデータをデータ回復リンク・クロックｄｒｃ＿ｌｎｋ＿ｃｌｋに対して経路遅延整合させることが実行される。実際には、クロック及びＤＳＣデータ・チャネル６１０の両方に関するデータ・イメージ・ラッチ１０１０分配遅延トリミングは、同時に実行されて、訓練に必要な時間を低減する。クロック信号ｄｒｃ＿ｌｎｋ＿ｃｌｋとｓｔｄ＿ｌｎｋ＿ｃｌｋとの間の遅延経路整合トリミングは、ＤＳＣデータ・チャネル６１０がトリミング・プロセスを完了する前にＤＳＣクロック・チャネル６００において完了されねばならない。全ての場合に、トリミングされた遅延は、１タップ遅延の８分の１より小さい最適精度を達成するため要求される。一度全てのトリミング操作が完了してしまうと、前述した正常なウォーム訓練シークエンス操作が、ＣＴＳの最終操作フェーズとして開始される。
【００５８】
より詳細に考えると、図６に示されるＤＳＣクロック・チャネル６００は、コールド訓練シークエンス（ＣＴＳ）中に次のように動作する。コールド訓練シークエンスは、ｌｎｋ＿ｃｌｏｃｋ＿ｉｎ信号が指定された期間にわたりいずれかの論理状態（例えば、論理的ハイ又は論理的ロー）に保持されるとき、開始される。図２４Ａ及び図２４Ｂに示されるように、ｌｎｋ＿ｃｌｏｃｋ＿ｉｎ信号は、ＤＳＣクロック・チャネル６００ユーティリティ・ブロックに存在する、図２６に示されるようなクロック検出回路によりモニタされ、そして図８に示されるｒｅｓｅｔ＿ｌｃｌｋをアサートし、そしてｌｎｋ＿ｃｌｏｃｋ＿ｉｎに関するスイッチング活動が指定された期間にわたり検出されないときｌｉｎｋ＿ａｌｉｖｅを不活動状態にする。この状態は、「リンク・リセット」と呼ばれる。リンク・リセットからの退出は、バンドル内の全てのＤＳＣモジュール３５０−０，３５０−１…３５０−Ｎが拡張された訓練シークエンスに自動的に入るときリンク・クロックのスイッチング活動の再開により生じる。この時点で、訓練パターンは、図５に示される各ＤＳＣデータ・チャネル６１０の各ｌｉｎｋ＿ｄａｔａ＿ｉｎピンに存在し、且つ存在しなければならない。
【００５９】
一度ｌｎｋ＿ｃｌｏｃｋ＿ｉｎスイッチング活動が再開すると、ｒｅｓｅｔ＿ｌｃｌｋ信号は不活動状態にされ、そしてｌｉｎｋ＿ａｌｉｖｅは、その後の最小数のクロック・サイクルに同期的にアサートされる。図１０に示されるように、ｒｅｓｅｔ＿ｌｃｌｋのアサーションは、信号ｔｒａｉｎ＿ｓｔｒ２をセットし、そしてＤＳＣモジュール３５０内の全てのＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…に対するｐｈｓ＿ａｄｊ＿ｄｏｎｅ（ｍｏｄ＿ｃｌｋ＿ａｄｊ＿ｄｏｎｅ）を不活動状態にする。ｒｅｓｅｔ＿ｌｃｌｋ信号アサーションはまた、クロック及びデータ・チャネルにおける全てのＦＳＭ回路１０００に対するリンク・クロックｓｔｄ＿ｌｎｋ＿ｃｌｋ＿ｂを活動状態にする。ｔｒａｉｎ＿ｓｔｒ２信号のアサーションは、拡張された訓練シークエンス（ＥＴＳ）を当該クロックにおいて発射（ｌａｕｎｃｈ）する。データ・チャネルにおいて、ｒｅｓｅｔ＿ｌｃｌｋのアサーションは、ローカル信号ｔｒａｉｎ＿ｓｔｒ２をセットする一方、ｐｈｓ＿ａｄｊ＿ｄｏｎｅ（ｍｏｄ＿ｃｌｋ＿ａｄｊ＿ｄｏｎｅ）の不活動状態化は、ＤＳＣデータ・チャネル６１０がそれらのクロック対データ経路遅延トリミング・プロセスを完了するのを防止する。
【００６０】
ＤＳＣクロック・チャネル６００において、図８に示されるように、クロック・イメージ・ラッチ８００の分配遅延が始まり、その最終状態マシン又はＦＳＭ８６０はｍｏｄｅ＿ｓｅｌ［ｍ：０］ベクトル及びｔｒｉｍ＿ＬＤＤ［２：０］ベクトルを設定する。ｍｏｄｅ＿ｓｅｌ［ｍ：０］ベクトルが、ＤＳＣクロック・チャネル６００入力マルチプレクサのｍｅａｓ＿ｃｎｔｌ入力を選択するよう設定される一方、ｔｒｉｍ＿ＬＤＤ［２：０］ベクトルがその最小値に設定される。必要な最小数のリンク・クロック・サイクル後に、ｍｅａｓ＿ｃｎｔｌ信号がアサートされ、そしてクロック・イメージ・ラッチ８００を活動状態にして初期分配遅延イメージを捕捉しながら、測定ピング・パルスを下方の遅延線８４０に発射する。ｄｎａ＿ｌａｔｃｈ＿ｅｎ信号がＦＳＭ８６０によりアサートされて、２進符号化された値をＤＮＡ論理ブロック８３０にセーブする。ＦＳＭ８６０は、プロセスを開始して、ｍｅａｓ＿ｃｎｔｌ信号を不活動状態にし、且つｔｒｉｍ＿ＬＤＤベクトル値を増分してラッチ分配遅延を１タップ遅延のほぼ８分の１だけ増大させることにより分配遅延イメージを精緻にする（ｒｅｆｉｎｅ）。ｍｅａｓ＿ｃｎｔｌ信号がもう一度アサートされて、増分された分配遅延値を捕捉する。ｍａｔｃｈ＿ＬＤＤ信号は、クロック・イメージ・ラッチ８００の２進符号化された値がラッチ分配遅延イメージの前にラッチされた値に等しいときアサートされる。ＦＳＭ８６０は、ｍａｔｃｈ＿ＬＤＤ信号の状態をモニタし、そして３つの機能のうちの１つを実行する。最初に、ｍａｔｃｈ＿ＬＤＤ信号がアサートされたままであり、且つｔｒｉｍ＿ＬＤＤベクトルがその最大値に等しくない場合、ｔｒｉｍ＿ＬＤＤベクトル値が増分され、そして分配遅延イメージが再捕捉される。第２に、ｍａｔｃｈ＿ＬＤＤ信号が不活動状態にされる場合、ｄｎａ＿ｌａｔｃｈ＿ｅｎ信号が循環（ｃｙｃｌｅ）されて、分配遅延イメージの最も最近の遅延イメージ値をセーブし、そしてトリミング工程の次のフェーズに進む。第３に、信号ｍａｔｃｈ＿ＬＤＤがアサートされたままであり、且つｔｒｉｍ＿ＬＤＤベクトルがその最大値に等しい場合、ＦＳＭ８６０は、ｔｒｉｍ＿ＬＤＤベクトルをゼロにリセットし、そしてトリミング工程の次のフェーズに進む。
【００６１】
データ回復リンク・クロックを標準リンク・クロック経路遅延に対して整合させるのは、ＤＳＣクロック・チャネル６００の拡張されたコールド訓練シークエンスのトリミング・プロセスの最終シークエンスである。図８に示されるように、ｄｒｃ＿ｌｎｋ＿ｃｌｋクロック信号経路とｓｔｄ＿ｌｎｋ＿ｃｌｋクロック信号経路との間の伝搬遅延デルタの整合は、ＤＳＣクロック・チャネル６００の遅延線８４０において実現される全体遅延調整を必要とする。ｄｒｃ＿ｌｎｋ＿ｃｌｋ信号経路の微細な遅延調整は、遅延を挿入するため用いられるトリム遅延回路８５０により実現される。
【００６２】
図８に示されるように、ＦＳＭ８６０は最初に、ＤＳＣクロック・チャネル６００入力マルチプレクサのｓｔｄ＿ｌｎｋ＿ｃｌｋ入力を選択するようｍｏｄｅ＿ｓｅｌベクトルを設定し、そしてｆｏｒｃｅ＿ｔａｐベクトルを、ＤＳＣクロック・チャネル遅延線８４０のゼロ選択タップ「ゼロ」に設定する。トリム遅延回路８５０に対するｔｒｉｍＬ２＿ｓｅｌ［２：０］ベクトルがまた、この訓練シークエンスのセグメントにおいてＦＳＭ８６０によりゼロ値に設定される。ＦＳＭ８６０は、ｒｅｆｌｏｗ＿ｃｏｎｆ＿ｅｎ信号をアサートして、遅延線８４０をトリミング・モード動作のため構成する。トリム・モード構成における動作の間に、その「イベント入力」に印加された信号は、タップ０（ｔａｐ０）に直接ルート付けされる。「エコー入力」に印加された信号は、それがタップ０を除外した遅延線８４０の全長を走行するようにルート付けされる。この構成において、遅延線８４０の「エコー入力」上に印加された信号の遅延イメージは、クロック・イメージ・ラッチ８００を用いて捕捉されることができる。最小数のクロック・サイクルの間待って、ＦＳＭ８６０は、ｔｒｉｍ＿ｓｔ２ｄｒ＿ｅｎ信号をアサートして、ゼロのｆｏｒｃｅ＿ｔａｐベクトル値を有する、ｓｔｄ＿ｌｎｋ＿ｃｌｋクロック信号に対するｄｒｃ＿ｌｎｋ＿ｃｌｋクロック信号の初期スキュー・イメージを捕捉する。
【００６３】
イメージ復号ロジック８１０は、この値を復号して、ｄｒｃ＿ｌｎｋ＿ｃｌｋ信号のエッジをｓｔｄ＿ｌｎｋ＿ｃｌｋ信号のエッジに整列させるタップを選択する。選択されたタップ値は、２進値にストリング／バイナリ・エンコーダ回路８２０により変換され、そしてＤＮＡ論理ブロック８３０に通される。ＦＳＭ８６０は、ｔｒｉｍ＿ｌａｔｃｈ２＿ｅｎ信号を循環させて、タップの符号化された２進値を捕捉して、信号同士ｄｒｃ＿ｌｎｋ＿ｃｌｋとｓｔｄ＿ｌｎｋ＿ｃｌｋとを整列させ、且つ全体同調セグメントを完了させる。
【００６４】
全体同調セグメントの完了でもって、ＦＳＭ８６０は、全体同調セグメント中に初期値として捕捉された値を用いて、微細な同調セグメントを始める。ＦＳＭ８６０は、ｔｒｉｍＬ２＿ｓｅｌベクトルを増分し、そしてｔｒｉｍ＿ｓｔ２ｄｒ＿ｅｎ信号を循環させて、更新された微細な同調スキュー・イメージを捕捉する。ＦＳＭ８６０は、ｍａｔｃｈ＿ｔｒｍ２信号の状態をモニタし、そして３つの機能のうちの１つを実行する。最初に、ｍａｔｃｈ＿ｔｒｍ２信号がアサートされたままであり、且つｔｒｉｍＬ２＿ｓｅｌベクトルがその最大値に等しくないとき、ｔｒｉｍＬ２＿ｓｅｌベクトル値は増分され、そして更新されたスキュー・イメージが捕捉される。第２に、ｍａｔｃｈ＿ｔｒｍ２信号が不活動状態にされる場合、ｔｒｉｍ＿ｌａｔｃｈ２＿ｅｎ信号が循環されて、ｓｔｄ＿ｌｎｋ＿ｃｌｋクロック信号に対するｄｒｃ＿ｌｎｋ＿ｃｌｋクロック信号の最も最近のスキュー・イメージをセーブして、トリミング工程を完了する。第３に、ｍａｔｃｈ＿ｔｒｍ２信号が、アサートされたままで、且つｔｒｉｍＬ２＿ｓｅｌベクトルがその最大値に等しい場合、ＦＳＭ８６０は、ｔｒｉｍＬ２＿ｓｅｌベクトルをゼロにリセットして、トリミング工程を完了する。一度トリミング工程を完了すると、ｄｒｃ＿ｌｎｋ＿ｃｌｋ信号対ｓｔｄ＿ｌｎｋ＿ｃｌｋクロック信号は、ゼロ位相ロックされ、又は１８０度位相ロックされる。微細な同調セグメントを完了すると直ぐに、ＤＳＣクロック・チャネルＦＳＭ８６０は、ＤＳＣモジュール３５０内のＤＳＣデータ・チャネル６１０に対する、図８に示される信号ｐｈｓ＿ａｄｊ＿ｄｏｎｅ（ｍｏｄ＿ｃｌｋ＿ａｄｊ＿ｄｏｎｅ）の非アクティブ状態に維持し、そして直ちにプロセスを始めて、リンク・クロック周期を測定し、その４分の１λオフセット値を計算する。ＦＳＭ８６０は、図８に示されるように、ｍｅａｓ＿ｓｔｒｔ信号をアサートして、ｍｅａｓ＿ｐｕｌｓｅ信号をＤＳＣクロック・チャネル６００の遅延線入力に生成する。次のクロック・サイクル上で、ｍｅａｓ＿ｃｎｔｌ信号がアサートされ、クロック周期測定値をクロック・イメージ・ラッチ８００において捕捉し、そしてｍｅａｓ＿ｐｕｌｓｅ信号を１クロック・サイクル後に終了させ、正常リンク・クロック波形に戻す。クロック・イメージ・ワードは、遅延タップ又は単純に「タップ」に関して、受信されたリンク・クロック信号のクロック周期を表すＮビット・ワードである。クロック・イメージ・ワードの「ワン・ホット」復号は、イメージ復号ロジック８１０により実行され、それは、リンク・クロック信号の周期を表す、最初の１から０への遷移のタップの位置を特定する。ストリング／バイナリ・エンコーダ回路８２０は、「ワン・ホット」タップ位置を、図８に示されるｔａｐ＿ｄｅｃｏｄｅベクトルを発生する２進値に変換する。ストリング／バイナリ・エンコーダ回路８２０のｔａｐ＿ｄｅｃｏｄｅベクトル出力は、リンク・クロック周期の２進値であり、このリンク・クロック周期の２進値は更に、ＤＮＡ論理ブロック８３０により処理されて、最終のｔａｐ＿ａｄｒ信号を発生する。ＤＮＡ論理ブロック８３０は、ｔａｐ＿ｄｅｃｏｄｅベクトルについて１組の算術演算を���行して、最終のｔａｐ＿ａｄｒ値に到達する。図２９Ａに示されるように、第１及び第２の操作において、クロック・イメージ・ラッチ分配遅延の２進値が、ｔａｐ＿ｄｅｃｏｄｅベクトルから減算され、次いで、調整された値が、２位置右にシフトされて、４で除算した値を導出する。第３の操作において、均衡遅延値が、４で除算する演算の結果に加えられて、最終のｔａｐ＿ａｄｒ値を生成する。均衡遅延値は、ｄｒｃ＿ｌｎｋ＿ｃｌｋクロック信号のエッジとｓｔｄ＿ｌｎｋ＿ｃｌｋクロック信号のエッジとを整列させるのに必要とされる。一度クロック・チャネルＣＴＳ操作が完了してしまうと、ＤＳＣクロック・チャネルＦＳＭ８６０は、信号ｐｈｓ＿ａｄｊ＿ｄｏｎｅ（ｍｏｄ＿ｃｌｋ＿ａｄｊ＿ｄｏｎｅ）をアサートして、データ・チャネルがＣＴＳ操作を完了するのを可能にする。図６に示されるＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…は、コールド訓練シークエンス（ＣＴＳ）中に次のように動作する。図１０を参照すると、ｒｅｓｅｔ＿ｌｃｌｋ信号のアサーションは、ｔｒａｉｎ＿ｓｔｒｔ２信号を設定し、そしてＤＳＣモジュール３５０内の全てのＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…に対する、図１０に示されるＤＳＣデータ・チャネル信号ｐｈｓ＿ａｄｊ＿ｄｏｎｅを不活動状態にする。ｔｒａｉｎ＿ｓｔｒｔ２信号のアサーションは、データ・チャネルにおける拡張された訓練シークエンス（ＥＴＳ）を発射し、一方ｍｏｄ＿ｃｌｋ＿ａｄｊ＿ｄｏｎｅ信号の不活動状態化は、ＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…がトリミング及び位相補正プロセスを完了するのを防止する。
【００６５】
図１０を参照すると、ＤＳＣデータ・チャネル６１０において、データ・イメージ・ラッチ１０１０の分配遅延が始まり、その有限状態マシン又はＦＳＭ１０００がｍｏｄｅ＿ｓｅｌ［１：０］及びｔｒｉｍ＿ＬＤＤ［２：０］ベクトルを設定する。ｍｏｄｅ＿ｓｅｌ［１：０］ベクトルは、ＤＳＣデータ・チャネル６１０入力マルチプレクサのｍｅａｓ＿ｅｎ入力を選択するよう設定され、一方ｔｒｉｍ＿ＬＤＤ［２：０］ベクトルは、その最小値に設定される。最小数のｓｔｄ＿ｌｎｋ＿ｃｌｋサイクルを待って、ｍｅａｓ＿ｅｎ信号がアサートされ、初期ラッチ分配遅延イメージを捕捉するデータ・イメージ・ラッチ１０１０を活動状態にしながら、測定ピング・パルスを下方のＤＳＣデータ・チャネル６１０の遅延線１０４０に発射する。ｄｎａ＿ｌａｔｃｈ＿ｅｎ信号がＦＳＭ１０００によりアサートされて、２進符号化された値をＤＮＡロジック・ブロック１０４０にセーブする。ＦＳＭ１０００は、プロセスを始めて、ｍｅａｓ＿ｅｎ信号を不活動状態にし、且つｔｒｉｍ＿ＬＤＤベクトル値を増分することにより分配遅延イメージを精緻にして、ラッチ分配遅延を１タップ遅延のほぼ８分の１だけ増大させる。ｍｅａｓ＿ｅｎ信号がもう一度アサートされて、増分された分配遅延値を捕捉する。ｍａｔｃｈ＿ＬＤＤ信号は、データ・イメージ・ラッチ１０１０の２進符号化された値がラッチ分配遅延イメージの前にラッチされた値に等しいときアサートされる。ＦＳＭ１０００は、ｍａｔｃｈ＿ＬＤＤ信号の状態をモニタし、そして３つの活動の１つを実行する。最初に、ｍａｔｃｈ＿ＬＤＤ信号がアサートされたままであり、且つｔｒｉｍ＿ＬＤＤベクトルがその最大値に等しくない場合、ｔｒｉｍ＿ＬＤＤベクトル値が増分され、そして更新された分配遅延イメージが捕捉される。第２に、ｍａｔｃｈ＿ＬＤＤ信号が不活動状態にされた場合、ｄｎａ＿ｌａｔｃｈ＿ｅｎ信号は循環されて、分配遅延の最も最近の遅延イメージ値をセーブし、そしてトリミング・プロセスの次のフェーズに進む。第３に、ｍａｔｃｈ＿ＬＤＤ信号がアサートされたままであり、そしてｔｒｉｍ＿ＬＤＤベクトルがその最大値に等しい場合、ＦＳＭ１０００は、ｔｒｉｍ＿ＬＤＤベクトルをゼロにリセットし、そしてトリミング・プロセスの次のフェーズに進む。
【００６６】
位相調整されたデータ経路遅延に対するデータ回復リンク・クロックの整合は、ＤＳＣデータ・チャネル６１０のコールド訓練シークエンスのトリミング・プロセスの最終シークエンスである。このデータ・チャネル・コールド訓練シークエンスのセグメントは、クロック・チャネル信号ｍｏｄ＿ｃｌｋ＿ａｄｊ＿ｄｏｎｅによりゲーティングされ、そのアサーション後のみ開始する。図１０を参照すると、ｄｒｃ＿ｌｎｋ＿ｃｌｋ信号経路とｐｈｓ＿ａｄｊ＿ｄａｔａ信号経路との間の伝搬遅延デルタを整合させることは、ＤＳＣデータ・チャネル６１０の遅延線１０７０において実現される全体遅延調整を必要とする。ｐｈｓ＿ａｄｊ＿ｄａｔａ信号経路の微細な同調遅延調整は、データ・イメージ・ラッチ１０１０、イメージ復号ロジック１０２０、ストリング／バイナリ・エンコーダ回路１０３０及びＤＮＡロジック・ブロック１０４０の組み合わせを用いて遅延及び測定値を挿入するため用いられるトリム遅延回路１０５０により実現される。
【００６７】
ＦＳＭ１０００は最初に、ＤＳＣデータ・チャネル６１０の入力マルチプレクサのｄｒｃ＿ｌｎｋ＿ｃｌｋ入力を選択するようｍｏｄｅ＿ｓｅｌベクトル値を設定し、そしてｆｏｒｃｅ＿ｔａｐベクトルをゼロに設定し、ＤＳＣデータ・チャネル遅延線１０７０のタップ・ゼロを選択する。ＦＳＭ１０００はまた、ベクトルｔｒｉｍ＿ｃ２ｄ＿ｓｅｌ［２：０］をゼロ値に設定し、そしてｒｅｆｌｏｗ＿ｃｏｎｆ＿ｅｎ信号をアサートして、トリミング・モード動作のため遅延線１０７０を構成する。そのトリミング・モード構成において動作しながら、「イベント入力」に印加される信号は、直接タップ０にルート付けされる。「エコー入力」に印加される信号は、それがタップ０を除外した遅延線１０７０の全長を走行するようにルート付けされる。この構成のとき、遅延線１０７０の「エコー入力」に印加される信号の遅延イメージが、データ・イメージ・ラッチ１０１０を用いて捕捉されることができる。最小数のクロック・サイクルを待って、ＦＳＭ１０００は、ｔｒｉｍ＿ｃ２ｄ＿ｅｎ信号をアサートして、ゼロのｆｏｒｃｅ＿ｔａｐベクトル値を有する、ｄｒｃ＿ｌｎｋ＿ｃｌｋのｐｈｓ＿ａｄｊ＿ｄａｔａ信号に対する初期スキュー・イメージを捕捉する。
【００６８】
イメージ復号ロジック１０２０は、この値を復号して、ｄｒｃ＿ｌｎｋ＿ｃｌｋ信号のエッジをｐｈｓ＿ａｄｊ＿ｄａｔａ信号のエッジに整列させるタップを選択する。選択されたタップ値は、ストリング／バイナリ・エンコーダ回路１０３０により２進値に変換され、そしてＤＮＡロジック・ブロック１０４０に通される。ＦＳＭ１０００はｔｒｉｍ＿ｃ２ｄ＿ｅｎ信号を循環させて、タップの符号化された２進値を捕捉して、ｄｒｃ＿ｌｎｋ＿ｃｌｋ信号とｐｈｓ＿ａｄｊ＿ｄａｔａ信号とを整列させ、そして全体同調セグメントを完了させる。
【００６９】
全体同調セグメントの完了でもって、ＦＳＭ１０００は、全体同調セグメント中に初期値として捕捉された値を用いて微細な同調セグメントを始める。ＦＳＭ１０００は、ｔｒｉｍ＿ｃ２ｄ＿ｓｅｌ［２：０］ベクトルを増分し、次いでｔｒｉｍ＿ｃ２ｄ＿ｅｎ信号を循環させて、更新された微細な同調スキュー・イメージを捕捉する。ＦＳＭ１０００は、ｍａｔｃｈ＿ｖｅｃ２［２：０］信号の状態をモニタし、そして３つの活動の１つを実行する。最初に、ｍａｔｃｈ＿ｖｅｃ２［２：０］信号がアサートされたままであり、且つｔｒｉｍ＿ｃ２ｄ＿ｓｅｌ［２：０］ベクトルがその最大値に等しくない場合、ｔｒｉｍ＿ｃ２ｄ＿ｓｅｌ［２：０］ベクトル値が増分され、そして更新されたスキュー・イメージが捕捉される。第２に、ｍａｔｃｈ＿ｖｅｃ２［２：０］信号が不活動状態にされた場合、ｔｒｉｍ＿ｃ２ｄ＿ｅｎ信号が、循環されて、ｄｒｃ＿ｌｎｋ＿ｃｌｋ信号のｐｈｓ＿ａｄｊ＿ｄａｔａ信号に対する最も最近のスキュー・イメージをセーブして、トリミング工程を完了する。第３に、ｍａｔｃｈ＿ｖｅｃ２［２：０］信号がアサートされたままであり、且つｔｒｉｍ＿ｃ２ｄ＿ｓｅｌ［２：０］ベクトルがその最大値に等しい場合、ＦＳＭ１０００は、ｔｒｉｍ＿ｃ２ｄ＿ｓｅｌ［２：０］ベクトルをゼロにリセットして、トリミング工程を完了する。
【００７０】
図１０を参照すると、データ・チャネル・フロントエンドＦＳＭ１０００は、位相補正プロセスを始めて、入力データ・ストリームをリンク・クロック信号とエッジで整列させる。ＦＳＭ１０００は、ｍｅａｓ＿ｅｎ信号をアサートして、リンク・クロック信号ｓｔｄ＿ｌｎｋ＿ｃｌｋの次の立ち上がり縁上でデータ・イメージ・ラッチ１０１０においてデータ位相ワードを捕捉する。データ位相ワードの捕捉が、ゼロ・オフセットを有するｄｒｃ＿ｌｎｋ＿ｃｌｋを表すリンク・クロックｓｔｄ＿ｌｎｋ＿ｃｌｋに参照されることに注目することは重要である。従って、データ位相ワードは、ゼロのオフセット値を有するデータ回復リンク・クロックｄｒｃ＿ｌｎｋ＿ｃｌｋに対するデータ・ストリームの位相関係を表す。データ・イメージ・ワードは、遅延タップ又は単純に「タップ」に関して、受信されたリンク・データ信号の位相エラーを表すＮビット・ワードである。データ・イメージ・ワードの「ワン・ホット」復号は、イメージ復号ロジック１０２０により実行され、そのイメージ復号ロジック１０２０は、最初の１から０への遷移のタップ位置を特定する。図１０を参照すると、データ・イメージ・ラッチ１０１０のビット・ゼロ位置（ｄａｔａ＿ｉｍａｇｅ＿ｌａｔｃｈ［０］と呼ぶ。）の値を用いて、データ・イメージ・ワードの進み位相又は遅れ位相を決定する。１に等しい値を有するｄａｔａ＿ｉｍａｇｅ＿ｌａｔｃｈ［０］は位相進み条件と考えられ、そしてゼロに等しいｄａｔａ＿ｉｍａｇｅ＿ｌａｔｃｈ［０］値は、位相遅れ条件を示す。ストリング／バイナリ・エンコーダ回路１０３０は、「ワン・ホット」タップ位置を２進値に変換し、そしてｔａｐ＿ｄｅｃｏｄｅベクトルを発生する。ストリング／バイナリ・エンコーダ回路１０３０のｔａｐ＿ｄｅｃｏｄｅベクトル出力は、リンク・データ位相エラーの２進値であり、このリンク・データ位相エラーの２進値は更に、図１０に示されるように、ＤＮＡロジック・ブロック１０４０により処理されて、最終のｔａｐ＿ａｄｒ信号を発生する。
【００７１】
試験する目的のため、最終のｔａｐ＿ａｄｒ値は更に、レジスタされたオフセット値、ｃｓｒ＿ｃｈ＿ｏｆｆｓｅｔ［５：０］ベクトルを加算する又は減算することにより修正されることができる。ＤＮＡロジック・ブロック１０４０は、ｔａｐ＿ｄｅｃｏｄｅベクトルについて１組の算術演算を実行して、最終のｔａｐ＿ａｄｒ値に到達する。図２９Ｂに示されるように、第１及び第２の操作において、データ・イメージ・ラッチ分配遅延の２進値が、ｔａｐ＿ｄｅｃｏｄｅベクトルから減算され、そしてｄｒｃ＿ｌｎｋ＿ｃｌｋ信号のエッジとｐｈｓ＿ａｄｊ＿ｄａｔａ信号のエッジとを整列させるため必要とされる均衡遅延値が、加算されて、最終のｔａｐ＿ａｄｒ値に到達する。ｐｈｓ＿ａｄｊ＿ｄｏｎｅ信号は、ｍｅａｓ＿ｅｎ信号がアサートされた後の十分な数のクロック・サイクル後にアサートされて、位相補正されたデータが図１０に示されるデータ回復ストリング１０６０を介して伝搬したことを保証する。ｐｈｓ＿ａｄｊ＿ｄｏｎｅ信号のアサーションは、位相補正シークエンスの終わりを指示し、そしてデータ出力信号ｎｅｇ＿ｄａｔａ＿ｂｉｔ及びｐｏｓ＿ｄａｔａ＿ｂｉｔを、図９に示されるデータＦＩＦＯブロック９００に対して使用可能にする。
【００７２】
図１１を参照して、データＦＩＦＯスタック１１７０において、ｔｒａｉｎ＿ｓｔｒｔ２信号のアサーションは、ＳＳＭ開始シークエンサ１１３０をリセットし、そしてｓｔｄ＿ｌｎｋ＿ｃｌｋを活動状態にする。ＳＳＭ開始シークエンサ１１３０のリセットはまた、ｔｒａｉｎ＿ｍｏｄｅ信号を不活動状態にし、書き込みポインタ１１４０をゼロ値に強制的にする。従って、訓練シークエンス中に、データＦＩＦＯスタック１１７０の位置ゼロのみが選択される。
【００７３】
図１１に示されるように、ｎｅｇ＿ｄａｔａ＿ｂｉｔ及びｐｏｓ＿ｄａｔａ＿ｂｉｔストリームが、データＦＩＦＯスタック１１７０の中にｓｔｄ＿ｌｎｋ＿ｃｌｋ信号の立ち上がり縁上で書き込まれる。データＦＩＦＯスタック１１７０は、パワー放散を最小にするため、アドレス可能な「ビット毎書き込み」ＦＩＦＯとして実現されることが好ましい。ＦＩＦＯアドレス・エンコーダ１１５０からのＦＩＦＯ書き込みアドレスｆｉｆｏ＿ｂｉｔ＿ａｄｒが、書き込みポインタ１１４０及びフレーム・ビット・カウンタ１１６０のロジック・ブロックからｐｏｓ＿ｐａｔｔｒｎ＿ｆｋｇ信号の状態と共に導出される。パターン探索ＦＳＭブロック１１２０からのｐｏｓ＿ｐａｔｔｒｎ＿ｆｌｇ信号は、データＦＩＦＯスタック１１７０の正のビットが全て論理１の値を有する場合論理１である。その他の場合、ｐｏｓ＿ｐａｔｔｒｎ＿ｆｌｇ信号は論理０である。データＦＩＦＯの読み出し及び書き込み順序は、図９に示されるＤＳＣデータ・チャネル・フロントエンド・ブロック９１０からのデータ・ストリームの負の位相整列に起因して適切なバイト・フレーミングを維持するため、ｐｏｓ＿ｐａｔｔｒｎ＿ｆｌｇ信号の状態に依存して変えられる。ｆｉｆｏ＿ｂｉｔ＿ａｄｒ信号は、ＳＳＭバイト中のｔｒａｉｎ＿ｍｏｄｅ信号の不活動化でもってｐｏｓ＿ｐａｔｔｒｎ＿ｆｌｇ信号の状態により更新される。
【００７４】
ｔｒａｉｎ＿ｍｏｄｅ信号及びｐｈｓ＿ａｄｊ＿ｄｏｎｅ信号のアサーションを用いて、パターン探索ＦＳＭブロック１１２０は、ＳＳＭ及び訓練フェンス・パターン探索を始める。正常動作において、信号ｐｈｓ＿ａｄｊ＿ｄｏｎｅは、クロック・チャネルがその訓練シークエンスの中に入ったとき不活動状態にされ、そして一度クロック・チャネルがその訓練を完了してしまうと再び活動状態にされる。ｐｈｓ＿ａｄｊ＿ｄｏｎｅ信号の期間中に、パターン探索ＦＳＭブロック１１２０の不活動化は、ＳＳＭバイト及び訓練フェンス・パターンのその探索を中断し、そして一度ｐｈｓ＿ａｄｊ＿ｄｏｎｅがアサートされてしまうとその探索を再開する。ｆｒａｍｅ＿ｉｎｃ信号の２つの遷移後に、訓練フェンス・パターンが、検出されなかった場合、ｓｓｍ＿ｅｒｒ＿ｆｌｇ信号がアサートされる。２つのｆｒａｍｅ＿ｉｎｃ信号遷移を待つことにより、ＤＳＣデータ・チャネル・フロントエンド・ブロック９１０が適正にサンプリングされるためデータ・ストリームを位相調整するに十分な時間を有することが保証される。ＳＳＭ探索が、継続され、そしてｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇ信号は、一度ＳＳＭパターンが検出されてしまうと、アサートされる。非訓練フェンス・パターン又は非ＳＳＭパターンがこの時間中に検出される場合、ｓｓｍ＿ｅｒｒ＿ｆｌｇ信号がアサートされて、ＳＳＭ探索を終える。ｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇ及びｓｓｍ＿ｅｒｒ＿ｆｌｇ信号の状態は、ｔｒａｉｎ＿ｍｏｄｅ信号の不活動化の際に維持される。
【００７５】
更に、ｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇ及びｓｓｍ＿ｅｒｒ＿ｆｌｇ信号の状態は、図６に示されるＤＳＣクロック・チャネル６００に送信され、そして同様にＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…により内部で用いられる。ＤＳＣクロック・チャネル６００は、これらの信号を処理し、そしてその結果を、ＤＳＣモジュール３５０内の全てのＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…、並びに図３に示されるバンドル内の他のＤＳＣモジュールにブロードキャストする。ＤＳＣデータ・チャネル６１０の内部で、これらの信号は、図１１に示されるＳＳＭ開始シークエンサ１１３０ロジックにより用いられ、そのＳＳＭ開始シークエンサ１１３０ロジックは、適正なバイト・フレーミングを設定する。
【００７６】
ＳＳＭ開始シークエンサ１１３０は、データ・バイトを適正にフレーム化するため、書き込みポインタ１１４０及びフレーム・ビット・カウンタ１１６０を整列させ且つ初期化する。この手順は、訓練シークエンス後に受信された第１のデータ・ビットがデータＦＩＦＯスタック１１７０の位置ゼロに書き込まれることを保証する。ｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇ信号のアサーションの際に、ＳＳＭ開始シークエンサ１１３０は、ｆｒａｍｅ＿ｓｔｒｔ信号を不活動状態にしながらｆｒａｍｅ＿ｉｎｉｔ信号をアサートする。ｆｒａｍｅ＿ｉｎｉｔ信号がフレーム・ビット・カウンタ１１６０をゼロ値に強制的にして、ゼロのｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルを発生し、それに第１のデータ・ビットが格納される。書き込みポインタ１１４０及びフレーム・ビット・カウンタ１１６０は、ＳＳＭ開始シークエンサ１１３０が当該フレーム・ビット・カウンタ１１６０を開始するためＳＳＭバイトの終わりから２Ｕ１にｆｒａｍｅ＿ｓｔｒｔ信号をアサートするまで、この初期化状態で保持される。ＳＳＭ開始シークエンサ１１３０は、ｔｒａｉｎ＿ｍｏｄｅ信号をＳＳＭバイトの終わりに不活動状態にする。ＳＳＭエラーの場合には、ｓｓｍ＿ｅｒｒ＿ｆｌｇ信号が、アサートされ、そしてプロセスの一部として用いられて、データが正しくフレーム化されていないにも拘わらずＤＳＣデータ・チャネル６１０がデータを出力する場合エラー・フレーム化されたデータを観測して、システムがエラー条件を診断するのを可能にする。
【００７７】
ｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルを発生するためのロジックは、書き込みポインタ１１４０、フレーム・ビット・カウンタ１１６０及びＦＩＦＯアドレス・エンコーダ１１５０のロジック・ブロックを備える。データＦＩＦＯスタック１１７０は、前述したように、「ビット毎書き込み」として実現されることが好ましく、そこにおいては、データの各ビットは、ｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルにより示される特定のビット位置に書き込まれる。ｆｒａｍｅ＿ａｄｒ信号及びｗｒ＿ｐｎｔｒ＿ａｄｒベクトルをＦＩＦＯアドレス・エンコーダ１１５０が用いて、ｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルを発生する。フレーム・ビット・カウンタ１１６０は、２バイト・カウント間隔に関する大きさにされており、それは、２倍のフレームを整数個のリンク・クロック・サイクル上で整列させる。ｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルの発生のため必要では無いにも拘わらず、書き込みポインタは、読み出しポインタと整合するような大きさにされ、それは、データＦＩＦＯ状態計算に必要なロジックを低減する。ＦＩＦＯアドレス・エンコーダ１１５０は、ｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルを発生するためｗｒ＿ｐｎｔｒ＿ａｄｒベクトルの最下位部分（又はＬＳＢ）を用いず、従って書き込みポインタを２度増分するのを必要とする。これは、ｆｒａｍｅ＿ｉｎｃ信号をアサートして、書き込みポインタ１１４０値を各バイト時間間隔で増分するのをフレーム・ビット・カウンタ１１６０に要求する。書き込みポインタの中間増分値はｆｉｆｏ＿ｂｉｔ＿ａｄｒベクトルに影響を与えないが、しかしそれらは読み出し対書き込みポインタの追跡を可能にすることに注目されたい。書き込みポインタ１１４０及びフレーム・ビット・カウンタ１１６０のこのような構成は、設計の複雑さが低減された奇数符号化スキーム（例えば、８ｂ９ｂ）に適応する。
【００７８】
ＤＳＣクロック・チャネル６００は、ｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇ信号及びｓｓｍ＿ｅｒｒ＿ｆｌｇ信号をＤＳＣモジュール３５０内のＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…から受信する。図２６に示されるように、ｂｉｍ＿ａｌｌ＿ｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇ信号は、ＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…からの全てのｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇ信号の論理「ＡＮＤ」であり、そしてバンドル内の全てのＤＳＣモジュール３５０−０，３５０−１…３５０−ＮにＢＩＭ３６０を介してブロードキャストされる前にコア・クロック・ドメインに同期化される。図２６に示されるｂｉｍ＿ｓｓｍ＿ｅｒｒ＿ｆｌｇ信号は、ＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…からの全てのｓｓｍ＿ｅｒｒ＿ｆｌｇ信号の論理「ＯＲ」であり、そしてバンドル内の全てのＤＳＣモジュール３５０−０，３５０−１…３５０−ＮにＢＩＭ３６０を介してブロードキャストされる前にコア・クロック・ドメインに同期化される。バンドル内の各ＤＳＣモジュール３５０−０，３５０−１…３５０−Ｎは、ブロードキャストされた信号ｂｉｍ＿ｓｓｍ＿ｅｒｒ＿ｆｌｇ及びｂｉｍ＿ａｌｌ＿ｓｓｍ＿ｆｏｕｎｄ＿ｆｌｇをＤＳＣクロック・チャネル６００のユーティリティ・ブロックにより受信し、そして図２７に示されるように、ＤＳＣモジュール３５０内の全てのＤＳＣデータ・チャネル６１０−０，６１０−１，６１０−２，６１０−３…にブロードキャストされるｍｏｄ＿ｒｄ＿ｃｎｔ＿ｅｎｂ信号を発生する。図２７に示されるｍｏｄ＿ｒｄ＿ｃｎｔ＿ｅｎｂ信号は、図１４に示されるｂｉｍ＿ｓｓｍ＿ｅｒｒ＿ｆｌｇ信号とｂｉｍ＿ａｌｌ＿ｓｓｍ＿ｆｏｕｎｄ信号との論理「ＯＲ」である。ｍｏｄ＿ｒｄ＿ｃｎｔ＿ｅｎｂ信号のアサーションは、訓練シークエンスの終わり及び正常な動作の開始にマーキングする。
【００７９】
図３に示されるバンドル・インターフェース・モジュール（ＢＩＭ）３６０は、コールド訓練シークエンス（ＣＴＳ）中に次の通りに動作する。ＢＩＭ３６０は、ＤＳＣモジュール高速（リンク速度）信号及び低速（コア速度）信号に関する相互接続経路を与える。コア速度に分類された信号は、単純にバッファされ、そしてコア・クロック・サイクルの周期内に留める（ｓｅｔｔｌｅ）よう推定される。リンク速度信号も、バッファされるが、しかし複数のリンク・クロック・サイクルの時間留まるよう要求する。従って、リンク速度信号に関して、ＢＩＭ３６０の較正シークエンスは、リンク速度信号を適正にサンプリングし、そして同期化するよう要求される。この操作は、リンク・リセット後直ちにＣＴＳ操作中のみに実行され、そしてＤＳＣクロック・チャネルＣＴＳトリミング・セグメント中に完了される。ＢＩＭ３６０の較正は、ＤＳＣモジュール３５０の全ての機能に対して完全にトランスペアレントである。
【００８０】
拡張された訓練シークエンス（ＥＴＳ）は一般的に次の通りに動作する。ＥＴＳは、コールド訓練シークエンスのトリミング工程を含むウォーム訓練シークエンス（ＷＴＳ）のスーパセットである。ＥＴＳ操作の目的は、リンク・リセットを開始すること無しに、クロック及びＤＳＣデータ・チャネル６１０の遅延経路を整合／較正することであり、こうしてデータ損失を防止する。
【００８１】
ＥＴＳ操作は、送信機３００の送信元ノードで開始され、ＳＳＤモジュール３１０は、ＥＴＳ指令を全てのリンク・データ・チャネル３２０上を送信させる。ＥＴＳ指令は、最小数の連続した指令バイト（典型的には４バイト）を有し、それは、正常なデータ・ストリームの中で見つけられない独特のパターンである。「バイト・カウント」のような他の方法もＥＴＳ指令を開始するため用いられ得る。ＥＴＳ指令に関してエラーと無関係の最小の長さ又はバイト・カウントは、ランダム・ビット・エラーが間違った訓練シークエンスを開始することができないことを保証するため要求される。一度開始されると、ＥＴＳ操作がＣＴＳ操作に続く。
【００８２】
要約すると、本発明の方法は、回路をスキュー解除するための独特の組のステップ又は手順を備える。回路を直接且つ明確にスキュー解除する一連の３つの手順が与えられている。それらのステップは、１）コールド訓練シークエンス（ＣＴＳ）、２）ウォーム訓練シークエンス（ＷＴＳ）、及び３）拡張された訓練シークエンス（ＥＴＳ）と呼ばれる。これらのステップは、首尾良く回路をスキュー解除することが分かった。
【００８３】
本発明の方法は、コールド訓練シークエンス（ＣＴＳ）を含むことが好ましい。ＣＴＳのタイミング図が図２４Ａ及び図２４Ｂに示されている。
本発明の方法はまた、ウォーム訓練シークエンス（ＷＴＳ）を含む。ＷＴＳのタイミング図が図２３に示されている。
【００８４】
本発明の方法により与えられる訓練の終わりにより、回路がスキュー解除される。これは、回路がデータを効果的に読み出すのを可能にする。
上記部分には、好適な動的スキュー補償アーキテクチャ及び操作方法が記載されている。２つの代替アーキテクチャ及び方法を以下に記載する。
【００８５】
非修正のリンク・クロックの基本的仮定を有する第１の代替アーキテクチャは、サンプリング・オフセット値がデータ・チャネル位相調整値に加えられて、適正なサンプリング点を獲得することを要求する。これを達成するため、位相測定経路及び正常なデータ経路が同一で等しい遅延を持たねばならない。従って、データ経路に存在するが位相測定経路に見つけられないそれらの経路構成要素は、遅延相殺機能を実行するため複製されねばならない。
【００８６】
この第１の代替アーキテクチャには２つの主要な利点がある。第１は、直裁的な概念理解である。第２の利点は、リンク・クロックがＤＳＣモジュール３５０及びバンドル全体にわたり中断無しに通されることである。
【００８７】
他方、このアーキテクチャの第１の欠点は、所望の動作範囲にわたり値及び「追跡」の両方の複製エラーが全ての測定値に導入され、サンプリング・エッジの最終位置に影響を与えることである。第２の欠点は、複製されるべき経路構成要素が大きい場合、これはＤＳＣモジュール３５０を実現するに要求される範囲を著しく増大するであろうことである。第３の欠点は、このアーキテクチャが製造変動、チップ長全体変動（Ａｃｒｏｓｓ  Ｃｈｉｐ  Ｌｅｎｇｔｈ  Ｖａｒａｔｉｏｎ）（ＡＣＬＶ）、即ち異なる位置に配置された同一の回路間の性能差違を導入する現象に対してより大きな感度を有することである。第４の欠点は、位相調整又はデータ経路のいずれかに含まれる複製された回路はこれらの経路の設計判定基準に適合しなければならないことである。これは、それらの回路がその特定の回路又は機能に対して通常要求されるであろうものより非常に大きい設計判定基準に適合するよう複製されることを強制する。その結果、回路面積、パワー放散及び設計努力の増大がこのアーキテクチャには必要になる。
【００８８】
第２の代替アーキテクチャは、サンプリング・フリップフロップ出力の状態をモニタしながらサンプリング点を掃引することに基づいており、そしてまた非修正のリンク・クロックを仮定する。このアーキテクチャは、複製された経路構成要素の実行により導入されたタイミング・エラー、及びＡＣＬＶにより導入されたタイミング効果に対処するよう設計されている。
【００８９】
この第２の代替アーキテクチャには２つの主要な利点があり、第１は、イメージ・ラッチ及び複製されるロジックの排除であり、それにより必要とする面積を低減する。第２の利点は、それが直接対処しており、そしてＡＣＬＶタイミング効果を補償する方法を有することである。
【００９０】
他方、第１の利点は、サンプリング点の決定がサンプリング・フリップフロップの準安定点の検出に基づいていることである。更に、それは、サンプリング・フリップフロップの準安定的挙動の正確なモデル化に依存する。準安定点近くで、選択されたサンプリング点に著しく影響を与え得る挙動を考慮しなければならない。第２の欠点は、ウォーム訓練シークエンスが準安定的回復時間及びサンプリング点探索アルゴリズムに一部起因して著しく増大されることである。第３の潜在的欠点は、探索アルゴリズムを実行するに必要なロジック及び面積が著しく増大することである。しかしながら、この増大は、測定ラッチの排除により相殺され得る。
【００９１】
本発明が特定程度の特殊性でもって様々な実施形態を参照して説明されたが、開示された形態及びステップの両方において多数の変形が本発明の趣旨から逸脱すること無しに行うことができることを理解すべきである。求める保護の範囲は、本発明を適切にカバーすることを意図した添付の特許請求の範囲によってのみ制限されるべきである。
【図面の簡単な説明】
【００９２】
【図１】図１は、ＨＩＰＰＩ-６４００訓練プロトコルに従った既知の訓練シークエンスのタイミング図である。
【図２】図２は、従来の遅延線を有する既知のデータ・チャネル・アーキテクチャに関するブロック図である。
【図３】図３は、ＳＳＤモジュールから成る送信機バンドル・ノード、光ファイバ又はワイヤのいずれかの物理的相互接続、及び「バンドル・インターフェース・モジュール」又は（ＢＩＭ）を介して相互接続されたＤＳＣモジュールから成る受信機バンドル・ノードを有する本発明の一実施形態に従ったフル並列リンクに関するスケーラブル・アーキテクチャの高レベルブロック図である。
【図４】図４は、主要信号ポートを図示する、図３に示されるアーキテクチャに含まれるＤＳＣバンドルの高レベルブロック図である。
【図５】図５は、複数のＤＳＣモジュール、例えば４つのモジュールと、階層的信号を有するＢＩＭとを備える、図４に示されるＤＳＣバンドルの詳細なブロック図である。
【図６】図６は、４つのデータ・チャネル、クロック・チャネル、及び階層的信号を含む４チャネルＤＳＣモジュール（ＤＳＣ４）のブロック図である。
【図７】図７は、ＤＳＣモジュール内のデータ・チャネルと、ＢＩＭ又はホスト・コア・ロジックのうちのいずれかとにインターフェースするため、クロック・チャネル・フロントエンド・ロジック及び回路ブロック、内蔵型自己試験（ＢＩＳＴ）ブロック及びユーティリティ・ブロックを有する、図６に示されるＤＳＣクロック・チャネルの詳細なブロック図である。
【図８】図８は、図７に示されるＤＳＣクロック・チャネル・フロントエンド・ロジック及び回路と、階層的信号との詳細な機能ブロック図である。
【図９】図９は、ＤＳＣモジュール内のクロック・チャネルと、ＢＩＭ又はホスト・コア・ロジックのうちのいずれかとにインターフェースするため、データ・チャネル・フロントエンド・ロジック及び回路ブロック、データＦＩＦＯブロック及びユーティリティ・ブロックを有する、図６に示される例示的ＤＳＣデータ・チャネルの詳細なブロック図である。
【図１０】図１０は、図９に示されるＤＳＣデータ・チャネル・フロントエンド・ロジック及び回路と階層的信号との詳細な機能ブロック図である。
【図１１】図１１は、データＦＩＦＯレジスタ・ファイル、読み出しポインタ、パターン探索シークエンサ、探索ロジック、ＳＳＭ開始シークエンサ・ロジック、フレーム・ビット・カウンタ、書き込みポインタ及びグルー・ロジック・ゲートを備える図９に示されるデータＦＩＦＯブロックの詳細な機能ブロック図である。
【００９３】
【図１２】図１２Ａは、例示的４モジュール信号相互接続のための図５に示されるバンドル・インターフェース・モジュール（ＢＩＭ）と、リンク速度で動作する信号用論理回路との詳細なブロック図である。図１２Ａに示されるように、ＢＩＭは、ＤＳＣモジュール・ポート２に存在するパターン発生器を、ＤＳＣモジュールの宛先ノード、０，１，３ポートでの送信元及びバンドル・タイミング・モジュール（ＢＴＭ）・マスタとして有する。パターン発生器からの信号は、バッファされ、そして信号経路長に沿った分配型再バッファリング回路を備え且つ他のモジュール・ポートに向けての相互接続金属ワイヤ上へ供給される。ＢＴＭは、ＤＳＣモジュール・ポートに関するバンドル・ロジックを駆動する。図１２Ｂは、図１２Ａに示される実施形態に類似しているが、ＤＳＣモジュール・ポート３に存在するパターン発生器を備えるバンドル・インターフェース・モジュール（ＢＩＭ）の代替実施形態の詳細なブロック図である。
【図１３】図１３Ａは、コア速度で動作する信号のための４モジュール信号相互接続及び論理回路の例示的ケースに関する図５に示されるバンドル・インターフェース・モジュール（ＢＩＭ）の詳細なブロック図である。図１３Ａに示されるように、宛先ノードは、ＤＳＣモジュール・ポート２に常駐し、そしてバンドル・ロジックは、ＤＳＣモジュール０，１，３ポートの宛先ノードに常駐する。宛先ノードからの信号は、信号経路長に沿った分配型再バッファリング回路を備え且つ他のモジュール・ポートに向けての相互接続金属ワイヤ上にバッファ駆動（ｂｕｆｆｅｒ−ｄｒｉｖｅ）される。宛先ノードにおいて、信号は、ＤＳＣモジュール・ポートのためのバンドル・ロジックにより受信される。図１３Ｂは、図１３Ａに示される実施形態に類似しているが、ＤＳＣモジュール・ポート３に常駐する宛先ノードを有するバンドル・インターフェース・モジュール（ＢＩＭ）の代替実施形態の詳細なブロック図である。
【図１４】図１４は、再調時及び同期化を必要としない信号のためのＢＩＭロジックの論理的表示のブロック図である。これらの信号は、より遅いコア・クロック周波数と関係づけられる。
【図１５】図１５は、バンドル・ロジックとコア・ロジックとの間のインターフェースのブロック図であり、そしてＤＳＣバンドルとホストＡＳＩＣのコア・ロジックとの間の階層的インターフェース信号を図示する。
【００９４】
【図１６】図１６は、「クロック・ストラッピング（ｃｌｏｃｋ−ｓｔｒａｐｐｉｎｇ）」方法を利用する分散リンク・クロック信号に関する例示的実現を示すリンク・クロック・ストラッピングのブロック図である。３のファンアウト・バッファを駆動する入力バッファから成る各ＤＳＣモジュールの「リンク端」上にＤＳＣモジュール・クロック・ストラッピング・ストリップ・モジュールも示されている。モジュール・クロック入力バッファは、クロック信号を受信し、その信号をＤＳＣモジュールのクロック・チャネルの中に駆動するよう機能する。リンク・クロック信号は、ファンアウト入力ピンのみに接続される。ＤＳＣモジュール０からの第１レベル・ファンアウト・リンク・クロック信号が、等しい寸法の金属セグメントを用いてＤＳＣモジュール１及び２のファンアウト・ピング・ピンに接続される。ＤＳＣモジュール１からの第１の組の第２レベル・ファンアウト・リンク・クロック信号が、ＤＳＣモジュール１及び０のモジュール・クロック入力バッファ・ピンに接続する。ＤＳＣモジュール１からの第２の組の第２レベル・ファンアウト・リンク・クロック信号が、ＤＳＣモジュール２及び３のモジュール・クロック入力バッファ・ピンに接続する。この第２レベルのファンアウト・リンク・クロック信号のための相互接続金属は、等しい寸法である。
【図１７】図１７は、４つのデータ・チャネル０，ｉ，ｊ，ｋに跨るウォーム訓練シークエンス・トラフィックを示すトップレベル・スキュー範囲タイミング図である。指令検出セグメント内に含まれた４バイト（例えば、符号化スキームのための４０ＵＩ及び非ＡＣ符号化されたプロトコルのための３２ＵＩのうちの最小）より大きいバイトの許容された最大スキュー範囲が図示されている。また図示されたセグメントは、クロック較正、データ・チャネル位相調整、クロック再開及びワード・フレーミング・セグメントである。システム・データが、訓練シークエンスに４つ全てのデータ・チャネル上で直ちに続く。
【図１８】図１８は、データ回復リンク・クロック（ｄｒｃ＿ｌｎｋ＿ｃｌｋ）と関係付けられるデータ訓練パターン（ｄａｔａ＿ｔｒａｉｎ＿ｐａｔｔｅｒｎ）のデータ・チャネル測定周期のタイミング図である。論理的に転置された表示の捕捉されたデータ位相イメージ・ワード（Ｄａｔａ−Ｐｈａｓｅ−Ｉｍａｇｅ−Ｗｏｒｄ）の表示、及びデータ・イメージ・ワード（Ｄａｔａ−Ｉｍａｇｅ−Ｗｏｒｄ）が実際に現れる仕方も示されている。
【図１９】図１９は、スキュー解除回路の全体にわたり用いられるデータ回復リンク・クロック（ｄｒｃ＿ｌｎｋ＿ｃｌｋ）の標準リンク・クロック（ｓｔｄ＿ｌｎｋ＿ｃｌｋ）に対するタイミング関係を示すタイミング図である。
【図２０】図２０は、訓練シークエンスの先行フェンス・パターン（ｐｒｅｃｅｅｄｉｎｇ  ｆｅｎｃｅ  ｐａｔｔｅｒｎ）、ＳＳＭパターンから成るＳＳＭバイト、及びシステム・データが続くポストアンブルを示すＳＳＭバイトに関するタイミング図である。
【００９５】
【図２１】図２１は、ＳＳＭパターンを検出するため典型的な訓練シークエンス中に用いられるＳＳＭパターン探索アルゴリズムの状態フロー図である。探索アルゴリズムの第１フェーズは、訓練フェンス・パターン（ｔｒａｉｎｉｎｇ  ｆｅｎｃｅ  ｐａｔｔｅｒｎ）を検出することであり、それは、２個のｆｒａｍｅ＿ｉｎｃサイクルの待ち期間後に開始される。フェンス・パターンが検出されない場合、探索は、終了し、エラー状態に逃げ、そしてｐｈａｓｅ＿ｅｒｒｏｒ信号が設定される。フェンス・パターンが検出される場合、探索アルゴリズムは、ＳＳＭパターンの探索を開始する。フェンスもＳＳＭパターンもｆｒａｍｅ＿ｉｎｃ信号の１サイクルの間に検出されなかった場合ＳＳＭエラーが想定され、それは、探索アルゴリズムがｓｓｍ＿ｅｒｒ＿ｆｌｇ信号を設定するエラー状態へ出るようにさせる。ＳＳＭパターンが検出される場合、探索アルゴリズムは、フラグ信号ｓｓｍ＿ｆｏｕｎｄをアサートする「訓練ＯＫ（Ｔｒａｉｎ  Ｏｋ）」に逃げる。探索アルゴリズムは、信号ｔｒａｉｎ＿ｍｏｄｅがアサートされたままである間「訓練ＯＫ」、「位相調整エラー（Ｐｈｓ  Ａｄｊ  Ｅｒｒｏｒ）」、又は「ＳＳＭエラー（ＳＳＭ  Ｅｒｒｏｒ）」状態に留まる。探索アルゴリズムは、全てのフラグ状態をセーブし且つＳＳＭ探索シークエンス・ロジックへのクロックを非活動状態にする「停止（Ｓｈｕｔｄｏｗｎ）」状態に出る。
【図２２】図２２は、ウォーム訓練及び拡張された訓練指令バイトに関して用いられる指令パターン探索アルゴリズムの状態フロー図である。この特定のアルゴリズムは、４つの連続したウォーム訓練バイト又は４つの連続した拡張された訓練バイトを探索する。それは、４つの連続した指令バイトが検出されない場合出て、且つ当該探索を初めから再開するよう設計されている。
【図２３】図２３は、４バイトの長さを有する訓練指令、訓練フェンス・パターン、及びシステム・データが続くＳＳＭバイトから成るウォーム訓練シークエンス（ＷＴＳ）を示すタイミング図である。リンク・クロック信号波形も示されている。
【００９６】
【図２４】図２４Ａは、リンク・クロック停止し、ｌｉｎｋ＿ａｌｉｖｅ信号を不活性状態に強制的にすることにより開始される２つのあり得るコールド訓練シークエンス（ＣＴＳ）の１つを示すタイミング図である。リンク・クロックを再開する前に、データ訓練フェンス・パターンが、データ・チャネル上を送信される。リンク・クロックを再び確立することにより、ｌｉｎｋ＿ａｌｉｖｅ信号を少しの数のクロックにアサートさせ、その後ＤＳＣモジュールの訓練が継続するのを可能にする。訓練フェンス・パターンは、ＳＳＭバイトにより終了される。システム・データが、コールド訓練シークエンスの終わりに直ちに続く。図２４Ｂは、リンク・クロックを停止し、ｌｉｎｋ＿ａｌｉｖｅ信号を不活性状態に強制的にすることにより開始される第２のあり得るコールド訓練シークエンスを示すタイミング図である。リンク・クロックを再び確立することにより、信号ｌｉｎｋ＿ａｌｉｖｅが少しの数のクロックにアサートされるようにし、その後ＤＳＣモジュールの訓練が継続するのを可能にする。ｌｉｎｋ＿ａｌｉｖｅ信号をアサートする前に、データ訓練フェンス・パターンがデータ・チャネル上を送信される。訓練フェンス・パターンはＳＳＭバイトにより終了される。システム・データが、コールド訓練シークエンスの終わりに直ちに続く。
【図２５】図２５は、データ・チャネル・デイジーチェーン・ゲート、ＦＩＦＯ制御器、及びチャネル・レジスタ制御サブブロックを示すデータ・チャネル・ユーティリティ・ブロックのトップレベル・ブロック図である。ＦＩＦＯ制御器は、ＤＳＣモジュール内の他のデータ・チャネルに関する状態信号とデイジーチェーン化されたＦＩＦＯ状態信号ｍｙ＿ｆｉｆｏ＿ｅｍｐｔｙ＿ｏ、ｍｙ＿ｆｉｆｏ＿ｆｕｌｌ＿ｏ、my＿ｄａｔａ＿ｖａｌｉｄ＿ｏ及びｍｙ＿ｆｉｆｏ＿ｅｒｒｏｒ＿ｏを発生する。それはまた、ブロードキャスト信号ｍｙ＿ｆｉｆｏ＿ｅｍｐｔｙ＿ｉ、ｂｉｍ＿ｆｉｆｏ＿ｆｕｌｌ＿ｉ及びｂｉｍ＿ｄａｔａ＿ｖａｌｉｄ＿ｉを受信し、そしてデータＦＩＦＯの読み出しポインタを制御するｒｄ＿ｃｎｔ＿ｅｎｂ信号を発生する。
【００９７】
【図２６】図２６は、クロック・チャネル訓練検出、モジュール・レベルＦＩＦＯ制御器、モジュール・レベルＦＩＦＯ制御論理ブロック及びクロック検出回路を実現するためロジックを備えるクロック・チャネル・ユーティリティ・ブロックのトップレベル・ブロック図である。論理ブロックにより用いられる中間信号を発生するグルー・ロジックを表す論理ゲートも示されている。
【図２７】図２７は、受信されたデイジーチェーン化されたＦＩＦＯ状態信号の左セグメントと右セグメントとを組み合わせて、そのＤＳＣモジュールのＦＩＦＯ状態信号を発生する論理ゲートを備えるモジュール・レベルＦＩＦＯ制御ブロックのトップレベル・ブロック図である。ＦＩＦＯ状態信号をバンドル内の他のＤＳＣモジュールからＢＩＭを介して受信するモジュール・レベルＦＩＦＯ制御ロジックを表すブロックも示されている。
【図２８】図２８は、ＤＳＣモジュールのデータ・チャネルをクロック・チャネルに相互接続するため用いられる分散型デイジーＡＮＤ及びデイジーＯＲのそれぞれのネットを表すトップレベル表示図である。クロック・チャネルのユーティリティ・ブロックにおいて終了する左及び右のセグメントの両方を有するネットワークが示されている。クロック・チャネルのユーティリティ・ブロックにおいては、同じ機能の論理ゲートが、デイジーＡＮＤネット又はデイジーＯＲネットの左セグメントと右セグメントとを組み合わせる。
【図２９】図２９は、遅延トリミング・プロセス中に用いられるサブタップ遅延を決定するよう実行される修正されたバイナリ探索アルゴリズムのフロー・チャートである。
【図３０】図３０は、残留位相エラーをタップ遅延の１／ｎ未満の値に低減するであろうｔｒｉｍ＿ｃ２ｄ＿ｓｅｌベクトルを決定するための修正されたバイナリ探索アルゴリズムを示す。「ｎ」は、サブタップ遅延値の解像度を表す。
【図３１】図３１は、ＢＩＭに接続し且つ相互接続シグナリング・ヒエラルキーを図示する４つのＤＳＣモジュールのバンドルを表すトップレベルのブロック図である。
【図１】
2005502248.tif 000003
【図２】
2005502248.tif 000004
【図３】
2005502248.tif 000005
【図４】
2005502248.tif 000006
【図５】
2005502248.tif 000007
【図６】
2005502248.tif 000008
【図７】
2005502248.tif 000009
【図８】
2005502248.tif 000010
【図９】
2005502248.tif 000011
【図１０】
2005502248.tif 000012
【図１１】
2005502248.tif 000013
【図１２】
2005502248.tif 000014
【図１３】
2005502248.tif 000015
【図１４】
2005502248.tif 000016
【図１５】
2005502248.tif 000017
【図１６】
2005502248.tif 000018
【図１７】
2005502248.tif 000019
【図１８】
2005502248.tif 000020
【図２０】
2005502248.tif 000021
【図２１】
2005502248.tif 000022
【図２２】
2005502248.tif 000023
【図２３】
2005502248.tif 000024
【図２４】
2005502248.tif 000025
【図２５】
2005502248.tif 000026
【図２６】
2005502248.tif 000027
【図２７】
2005502248.tif 000028
【図２８】
2005502248.tif 000029
【図２９】
2005502248.tif 000030
【図３０】
2005502248.tif 000031
【図３１】
2005502248.tif 000032
【国際公開パンフレット】
2005502248.tif 000033
2005502248.tif 000034
2005502248.tif 000035
2005502248.tif 000036
2005502248.tif 000037
2005502248.tif 000038
2005502248.tif 000039
2005502248.tif 000040
2005502248.tif 000041
2005502248.tif 000042
2005502248.tif 000043
2005502248.tif 000044
2005502248.tif 000045
2005502248.tif 000046
2005502248.tif 000047
2005502248.tif 000048
2005502248.tif 000049
2005502248.tif 000050
2005502248.tif 000051
2005502248.tif 000052
2005502248.tif 000053
2005502248.tif 000054
2005502248.tif 000055
2005502248.tif 000056
2005502248.tif 000057
2005502248.tif 000058
2005502248.tif 000059
2005502248.tif 000060
2005502248.tif 000061
2005502248.tif 000062
2005502248.tif 000063
2005502248.tif 000064
2005502248.tif 000065
2005502248.tif 000066
2005502248.tif 000067
2005502248.tif 000068
2005502248.tif 000069
2005502248.tif 000070
2005502248.tif 000071
2005502248.tif 000072
2005502248.tif 000073
2005502248.tif 000074
2005502248.tif 000075
2005502248.tif 000076
2005502248.tif 000077
2005502248.tif 000078
2005502248.tif 000079
2005502248.tif 000080
2005502248.tif 000081
2005502248.tif 000082
2005502248.tif 000083
2005502248.tif 000084
2005502248.tif 000085
2005502248.tif 000086
2005502248.tif 000087
2005502248.tif 000088
2005502248.tif 000089
2005502248.tif 000090
2005502248.tif 000091
2005502248.tif 000092
2005502248.tif 000093
2005502248.tif 000094
2005502248.tif 000095
2005502248.tif 000096
2005502248.tif 000097
2005502248.tif 000098
2005502248.tif 000099
2005502248.tif 000100
2005502248.tif 000101
2005502248.tif 000102
2005502248.tif 000103
2005502248.tif 000104
2005502248.tif 000105
2005502248.tif 000106
2005502248.tif 000107
2005502248.tif 000108
2005502248.tif 000109
2005502248.tif 000110
2005502248.tif 000111
2005502248.tif 000112
2005502248.tif 000113
2005502248.tif 000114
2005502248.tif 000115
2005502248.tif 000116
2005502248.tif 000117
2005502248.tif 000118
2005502248.tif 000119
【国際調査報告】
2005502248.tif 000120