JP2005502248A - 並列リンクの相対的動的スキュー補償 - Google Patents

並列リンクの相対的動的スキュー補償 Download PDF

Info

Publication number
JP2005502248A
JP2005502248A JP2003525787A JP2003525787A JP2005502248A JP 2005502248 A JP2005502248 A JP 2005502248A JP 2003525787 A JP2003525787 A JP 2003525787A JP 2003525787 A JP2003525787 A JP 2003525787A JP 2005502248 A JP2005502248 A JP 2005502248A
Authority
JP
Japan
Prior art keywords
data
clock
signal
dsc
link
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003525787A
Other languages
English (en)
Inventor
ハンセル・エイ・コリンズ
Original Assignee
ハンセル・エイ・コリンズ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ハンセル・エイ・コリンズ filed Critical ハンセル・エイ・コリンズ
Publication of JP2005502248A publication Critical patent/JP2005502248A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/14Channel dividing arrangements, i.e. in which a single bit stream is divided between several baseband channels and reassembled at the receiver

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

システムは、最初に並列リンク・クロックと各データ・チャネルのデータ信号エッジとの間の任意の位相エラー整列を補正することにより2段階のスキュー補償手順を実行し、それにより、受信されたデータ・ビットを正しくサンプリングするのを可能にする。次いで、第2の段階が、ビットを元のフォーマットの中に「ワード整列」するよう実行され、それは、各データ・チャネルのデータFIFOにおけるスキュー同期化マーカ(SSM)バイトを用いて達成される。SSMバイトは、各データ・チャネル上を送信され、そしてスキュー補償手順を終了する。SSMバイトが各データ・チャネルのデータFIFOにおけるロジック(w1130)により検出されるとき、データFIFOは、SSMバイトを採用して、読み出し及び書き込みポインタ(1110,1140)を初期化して、出力データ(1120)を適正に整列させる。

Description

【技術分野】
【0001】
[発明の分野]
本発明は、高速データ・リンクに関し、特に高速並列データ・リンクに関する。詳細には、本発明の一実施形態は、高速並列データ・リンクをスキュー解除するためのシステムを提供する。
【0002】
[発明の背景]
ディジタル・システムの速度及び性能が増大するにつれ、これらのシステムを「リンクする」相互接続についての要求も増大する。「リンク」は、システムとサブシステムとそれらがデータを交換するのを可能にする構成要素との間の通信経路である。ディジタル・データは、電気エネルギのパルスとして、金属線のような導電性材料を介して転送されることができる。ディジタル・データを送る代替技術は、光のパルスによる光ファイバを介するものである。
【0003】
従来より、符号化されたクロック及びデータを採用するシリアル・ライン・プロトコルは、WAN(広域ネットワーク)、LAN(ローカル・エリア・ネットワーク)、SAN(ストレージ・エリア・ネットワーク)、並びに他の私設リンクのような長距離応用のため選定されてきたプロトコルである。この優位は、有線及び光ファイバの両方のネットワークを含む。また、2.5Gb/s(現在の基準線)及び10Gb/s(数年内に到達するのが計画されている)の帯域幅においてある傾向が現れ、サーバ及びルータを製造する会社、並びに他の高速ディジタル・システムの供給業者は、シリアル・ライン・プロトコルを、それらのシステムを実現するためそれらの高速バックプレーン(backplane)相互接続として採用し始めてきた。このアプローチは、ディジタル・システムの全体的スループットを上昇させるため採用されている。
【0004】
符号化されたクロック及びデータのシリアル・プロトコルの物理的実現は、最初にその符号化されたクロックを回復し、次いでそのクロックを用いて、受信されたデータをサンプリングするためPLL(フェーズ・ロックド・ループ)アーキテクチャに基づいている。典型的なPLLに関する判定基準設計ファクタは、それらの実現及びガード帯域又は「キープアウト(中に入れないでおく)」領域に関して集中した範囲であるLPF(低域通過フィルタ)及びVCO(電圧制御発振器)である。
【0005】
シリアル・リンクの全体帯域幅は、相互接続媒体の特性、及び符号化されたクロックを正確に回復するPLLの能力により決定される。従って、シリアル・リンクの帯域幅は、元の実行から容易に増大されることができず、著しい再構成及び設計努力を必要とする。
【0006】
代替として、並列ライン・プロトコルは、「ワード」と呼ばれる、用いられるワイヤ又は光ファイバ・チャネルの数に等しい数のディジタル・データのビットを同時に転送する類似のワイヤ又は光ファイバを利用する。理想的には、特定のワードに関係する全ビットは、意図する宛先へ同時に到着し、そして次の使用可能なクロック・エッジの同時発生でサンプリングされる。しかしながら、実際には、これは、典型的には高速並列データ・リンクのためのケースでない。即ち、ワイヤ・リンクか光ファイバ・リンクかのいずれかを構成するため用いられる材料の変化、並びに製造プロセスにおける変動に起因して、ビットを備えるディジタル信号の伝搬遅延又は速度は、ワイヤ又は光ファイバの間で僅かに変化するであろう。これが、「信号スキュー」又は単純に「スキュー」と呼ばれる、ビットの到着時間の差違をもたらす。ワイヤ・スキュー及び光ファイバのスキュー(即ち、ワイヤ又は光ファイバのスキュー寄与)は、並列リンクに含まれる経路の物理的長さに比例する。並列リンクのライン間のスキュー量が増大するにつれ、スキューは更に、リンクの宛先で観測されるビット「重なり(overlap)」量を低減し、それによりデータ・サンプリング・エラーの尤度を増大する。その結果、スキューを補償する手段無しの並列リンクは、典型的には、公称ビット時間の20%より少ない大きさの合計(ライン及び回路の両方)スキュー予算に耐えることになる。これは、大部分の並列リンクの動作距離及び帯域幅を、ほぼ400Mb/sで動作するケーブルでは10メートル未満に、そしてもっと共通のバックプレーン製造材料を用いる1.0Gb/sでは0.15メートルに制限することになる。
【0007】
並列リンクにおけるスキューに関する補償技術は既知である。スキューを補償する1つのアプローチは、カリフォルニア州Moutain Viewに所在するSilicon Graphics, Inc.により標準化されたANSI HIPPI-6400-PHYに関して開発されたものである。米国特許No.6,031,847に開示されているように、訓練シークエンスを用いて、クロック、データ、フレーム及び制御ビットを含む並列チャネルのそれぞれとの間スキュー量を測定する。訓練シークエンスは、4つのサブシークエンス、即ち、1)プリアンブル、2)フラッシュ(flush)・シークエンス、3)ピング(ping)・シークエンス、4)ポストアンブルから構成される。全てのチャネルのピング・シークエンスの前縁(リーディング・エッジ)が送信元から発射された時間に整列されると仮定すると、宛先における到着時間のいずれの差は、当該チャネル間に存在するスキュー量を表す。測定値に基づいて、追加の遅延が、各チャネルに加えられて、受信されたビットの整列を再確立する。一度エッジ整列が再確立されると、クロック信号が更に遅延されて、そのエッジをデータ・ビットの中心に対して中心付けして、受信されたデータを一層正確に回復する。
【0008】
より詳細に考慮すると、図1は、HIPPI-6400 ANSI標準に関して開発された訓練シークエンスのタイミング図を示す。プリアンブル指令、フラッシュ、ピング及びポストアンブルから成る4つのサブシークエンスを有する訓練シークエンスが示されている。訓練シークエンスは「平衡化」され、ゼロのアサーション(assertion)時間と1のアサーション時間とが等しい。重要な特徴は、フラッシュ・シークエンスの長さとピング・シークエンスの長さとが整合していなければならず、そして各シークエンスの長さが、補償されるべきリンクに関する合計スキューを超えなければならない。
【0009】
更に、図2は、従来の遅延線を有する既知のデータ・チャネル・アーキテクチャ、即ちSuMACデータ・チャネルに関するブロック図を示す。SuMAC DSCC(動的スキュー補償回路)のデータ・チャネルは、入力測定制御回路及びロジック、インバータ・チェイン、測定値ラッチ、タップ復号ロジック、及びタップ選択「OR」トリーから成る。インバータ・チェインの長さ、及び全ての他の関連の構造は、補償されるべきスキューに等しいか又はそれより大きくなければならない。
【0010】
「スキュー範囲」を拡張するとき考慮されねばならないこのアーキテクチャの3つのキー(鍵となる)属性が存在する。考慮されねばならない第1の属性は、このスキームで用いられる訓練シークエンスがその間に並列リンク上でのスイッチング活動がある期間ゼロに行くフラッシュ・サブシークエンス及びピング・サブシークエンスを生成することである。このスイッチングの不活動期間は、銅ケーブルのDC平衡、及び光ファイバ・リンクの周囲光レベルにおける短期間ドリフトを導入する。DC平衡及び周囲光の両方の短期間ドリフトは、スイッチング活動がリンク上で再開するとき、「スタートアップ」の不確実性、又は「ジッタ」現象を生成する。「スタートアップ・ジッタ」現象は、臨界的なフラッシュ及びピング・サブシークエンス境界で生じることにより、スキュー測定の精度に惡影響を及ぼす。従って、訓練シークエンスがより大きなスキュー範囲に適応するよう修正されるとき、フラッシュ及びピング・サブシークエンスは、増大されねばならず、それは、銅ケーブル・リンクのDCレベル、又は光ファイバ・リンクに対する周囲光レベルにおいて一層大きな不平衡を生成する。最終的には、これは、「スタートアップ・ジッタ」の一層大きな量がスキュー測定値に導入されることにより生じる測定エラーに起因して得られる最大帯域幅を低減することができる。
【0011】
考慮されねばならない第2の属性は、実際に構成されることができるチャネルの数である。図2に示されるように、チャネルの全てにより受信された個々のピング信号の論理的「AND」により発生された内部信号「All_Present」が、スキュー値を捕捉するため並列バスのチャネルの全てに再分配されねばならない。チャネル数が増大するにつれて、論理的「AND」機能も増大し、それによりこの機能を完了するのにより多くの時間を要する。従って、全てのチャネルの全体的大きさが、「All_Present」信号の到着時間を遅延させ、遅延線を長くすること、及び遅延スタックの全体的大きさを増大することを必要とし、その結果より高いパワー放散をもたらす。
【0012】
第3の属性は、扱うことができる合計スキュー量を支配する遅延の全体的長さと関係がある。従って、スキュー範囲を増大するため、ハードウエアで構成される遅延線の長さ、及び遅延スタックの全体的大きさは、比例的に増大されねばならない。その結果、遅延線は、設計が一層困難であり、そしてまた増大した大きさが、放散されるパワーを増大させる。
【0013】
従って、データが正確にサンプリングされることを保証するため、より大きい帯域幅で並列リンクにおけるスキューを効率的に補正することが望ましいであろう。また、長い遅延線を必要とせず又はパワー消費を増大させないハードウエアを用いて、スキューを補正することを可能にすることが望ましいであろう。更に、ハードウエアをアプリケーション毎に再設計しなければならないことを回避するためスケーラブルであるスキュー補正アーキテクチャを提供することが望ましいであろう。
【0014】
[発明の概要]
本発明は、並列データ・ラインの相対的動的スキュー補償の方法及び装置を提供する。本発明の一実施形態は、最初に並列リンク・クロックと各データ・チャネルのデータ信号エッジとの間のいずれの位相エラー整列を補正することにより、受信されたデータ・ビットを正しくサンプリングするのを可能にすることによる、訓練シークエンスと呼ばれる2段階のスキュー補償手順を実行するシステムを提供する。次いで、第2の段階は、ビットを元のフォーマットの中に「ワード整列」するよう実行され、それは、各データ・チャネルのデータFIFOにおけるSSM(スキュー同期化マーカ)を用いて達成される。SSMバイトは、各データ・チャネル上を送信され、そして訓練シークエンスを終了する。SSMバイトが各データ・チャネルのデータFIFO内のロジックにより検出されるとき、データFIFOは、SSMバイトを採用して、読み出し及び書き込みポインタを初期化して、出力データを適正に整列する。
【0015】
本発明の様々な実施形態に従って、リンクは、例えば、銅ケーブル又は光ファイバから構成される相互接続媒体を備える送信元ノード及び宛先ノードから構成される。リンク送信元ノードで、SSD(送信同期ドライバ)は、コア・ロジックから受信されたMビットの入力データをフォーマット化し、そして「M」個のデータ・チャネルを物理的リンク上へリンク・クロックと一緒に駆動する。「M」個のデータ・ビット及びリンク・クロックは、リンク宛先ノードにおいて、スキューを補償し、リンク・クロック・エッジをデータのビットに対して再中心付けし、且つ「M」ビットのデータを出力する動的スキュー補償(DSC)アーキテクチャ・ブロックにより受信される。
【0016】
「多重入力/単一出口(Multiple−Input−Single−Exit)」遅延線、又はMISX−DLと呼ばれる新規な遅延線アーキテクチャは、遅延された信号が遅延線の最後のタップから抽出され且つ入力信号がその長さに沿ったm個の「注入点」のうちの1個(1−of−m “injection points”)で導入される可変マルチタップ遅延線構成を与える。所望の遅延は、遅延線の最後のタップに関して選択された注入点で入力信号を導入することにより達成され、それにより、従来のタップ選択マルチプレクサ回路の必要性を排除する。マルチプレクサ回路の排除の直接的結果として、全体的大きさ、遅延待ち時間及びスイッチング・パワーの低減が達成される。更に、信号位相スプリッタ回路の組み込みにより、遅延線アーキテクチャは、インバータ遅延に基づいてタップ分解能(tap resolutions)を容易にサポートすることができ、そして必要とされるトランジスタの数の控えめな増加によりそのタップ分解能を効果的に2倍にする。
【0017】
更に、新規なデータ・ファイル・アーキテクチャが、数学的手順及び論理的実行と一緒に、グレー・コード特性を備える「順序付けされた母集団計数(Ordered Population Count)」シークエンスに基づいて与えられ、それは、変換の必要性を排除し、且つ比較待ち時間を著しく低減する。当該アーキテクチャは、ラッチ・ベースの実行をサポートして、高速応用に適応する。
【0018】
また、ゲーテッド・クロックが、クロック・グリッチを防止するため再生フィードバックを利用しながら、高速クロック信号の開始及び停止を制御するラッチ・ベースの技術を与える。更なる拡張は、同様に発生された基準ベース・クロック信号と依然同期しているn分周クロック信号を生成する手段を提供する。リンク幅は、一緒に「バンドル(束)(bundle)」を形成する1つ又はそれより多い並列データ・チャネル及びリンク・クロックから構成される。リンク宛先ノードにおいては、受信バンドルは、同じ又は混合された大きさを有する1つ又はそれより多いDSCモジュール、及び2つ又はそれより多いDSCモジュールを含むバンドル用バンドル・インターフェース・モジュール(BIM)から成る。
【0019】
各DSCモジュールは、単一のクロック・チャネル及び1つ又はそれより多いデータ・チャネルを含むことが好ましい。クロック・チャネルは、リンク・クロック信号を受信し、データ回復リンク・クロックを発生し、そしてそのデータ回復リンク・クロックを標準リンク・クロック信号と一緒にDSCモジュール内の全てのデータ・チャネルに分配する。DSCモジュールの各データ・チャネルは、リンク・データ信号を受信し、位相補正し、そしてデータ回復リンク・クロック信号を用いてデータを捕捉する。次いで、回復されたデータは、出力データとしてコア・ロジックに与える前に、そのデータ・チャネルのためデータFIFOにおいてワード整列される。
【0020】
各DSCモジュールのクロック・チャネルが、クロック・チャネル・フロントエンド、BIST(内蔵型自己試験)ブロック、及びユーティリティ・ブロックを含むサブブロックから構成されるのが好ましい。クロック・チャネル・フロントエンド・ブロックは、データ回復リンク・クロック信号を発生し、この信号をDSCモジュール内の全てのデータ・チャネルに分配する。BISTブロックは、DSCモジュール全体の臨界的機能性を試験し、自己試験状態を報告する手段を提供する。ユーティリティ・ブロックは、コールド訓練シークエンス、ウォーム訓練シークエンス、DSC及びコア・ロジック及びバンドルに跨るデータFIFO読み出しポインタ制御の間のインターフェースを調整するための論理的機能を提供する。
【0021】
DSCモジュールの各データ・チャネルは、データ・チャネル・フロントエンド、データFIFO及びユーティリティ・ブロックを含む3つのサブブロックから構成されるのが好ましい。データ・チャネル・フロントエンド・ブロックは、コールド又はウォーム訓練シークエンスの位相補正サブシークエンス中にデータ及びクロック信号エッジを位相補正するよう機能する。一度位相補正が完了してしまうと、クロック・チャネルからのデータ回復リンク・クロック信号を用いて、位相補正されたデータをサンプリングする。データFIFOブロックは、正及び負の位相整列されたデータをデータ・チャネル・フロントエンドから受信し、そしてこのデータを、規定されたバイト境界上にフレーム化されたFIFOに格納される。また、データFIFOブロックを用いて、指令を検出して、ウォーム訓練シークエンスを開始し、そしてSSMバイトを用いて、コールド訓練シークエンス及びウォーム訓練シークエンスの両方の動作のため書き込みポインタ・フレーム・カウンタを初期化し且つバンドル内のデータFIFO読み出しポインタを開始する。データ・チャネルのユーティリティ・ブロックは、2つの主要な機能、即ち、1)データFIFO読み出しポインタ制御及び調整、及び2)診断レジスタ制御及びインターフェースを実行する。
【0022】
バンドル・インターフェース・モジュール(BIM)は、バンドル内の全てのDSCモジュール間のブロードキャスト信号を分配し、再調時し、そして論理的に組み合わせる。BIMはまた、バンドル内の、全DSCモジュールからのブロードキャスト・モジュール状態信号を組み合わせて、コア・ロジックへインターフェースするよう機能する。
【0023】
コールド訓練シークエンス(CTS)は、初期訓練シークエンスを実行するため全データ・チャネル上を送信される、クロック・チャネルCTS開始シークエンス、遅延トリミング・シークエンス、位相補正シークエンス及びスキュー同期化マーカ(SSM)バイトから成ることが好ましい。CTSプロトコルは、システムのパワーアップ又はリセット、又は回復不能なリンク・エラーの後で、DSCモジュール訓練シークエンスを強制する方法を与える。
【0024】
拡張された訓練シークエンス(ETS)は、初期訓練シークエンスを実行するため全データ・チャネル上を送信される、ETS指令シークエンス、遅延トリミング・シークエンス、位相補正シークエンス及びSSMバイトから成る。ETS指令は、並列データ・リンクの全データ・チャネルに跨る単一及びマルチビット・エラーに起因した間違った訓練シークエンスを防止しながら検出される。
【0025】
ウォーム訓練シークエンス(WTS)は、周期的訓練シークエンスを実行するため全データ・チャネル上を送信される、WTS指令シークエンス、位相補正シークエンス及びSSMバイトから成る。WTS指令は、並列データ・リンクの全データ・チャネルに跨る単一及びマルチビット・エラーに起因した間違った訓練シークエンスを防止しながら検出される。
【0026】
本発明に従ったシステムは、並列データ・リンクに関する相対的スキュー解除(deskew)を効果的に補償する。本発明のスキュー解除回路のハードウエア実現は、低減した構成要素数、低減したパワー消費を有する遅延線を含み、そしてスキュー解除回路は、プロセスと独立であり且つスケーラブルである。
【0027】
[好適な実施形態の詳細な説明]
本発明の様々な実施形態に従って、且つここで、類似の参照番号が本発明の様々な実施形態の類似の構成要素を特定する図面を参照すると、並列データ・ラインの相対的動的スキュー補償が効果的に実行されることができる。更に、本発明に従ったスキュー解除回路のハードウエア実現は、低減した構成要素数及び低減したパワー消費を有する遅延線を含み、そして当該スキュー解除回路はプロセスと独立であり且つスケーラブルである。
【0028】
本発明に従ったスキュー解除回路の好適な実施形態が図3に示されている。一般的に、リンク・アーキテクチャ及び動作は次の通りである。
送信元ノードにおいて、1つ又はそれより多い送信元同期ドライバ(SSD)モジュール310−0,310−1…310−Nから構成される送信機300は、データを物理的媒体、例えば光ファイバ又は銅リボン・ケーブル上へ駆動する。なお、物理的媒体は、複数のデータ・チャネル0,1…Mから成る並列バス320を形成し、データは、リンク・クロックの前縁(リーディング・エッジ)又は後縁(トレーリング・エッジ)のいずれかのエッジで整列されている。クロック及びデータ信号が銅又は光ファイバ媒体を介して伝搬するにつれ、各チャネル上の信号は、独特であり且つ並列バス上の他の信号と相関していない伝搬現象を経験し、その結果受信機340が存在する宛先ノードにおいて異なる到着時間を生じる。この到着時間の相違が「スキュー」と呼ばれる。
【0029】
受信されたデータを首尾良くサンプリングするため、並列バス320における全てのデータ・チャネル0,1…M間のスキューは、排除されるか、又は著しく低減されねばならず、そしてリンク・クロック・エッジが、データ・ビット時間周期内で実質的に中心付けされてなければならない。チャネル対チャネル(channel−to−channel)・スキューを補償するための調整、及びリンク・クロック・エッジの中心付けは、後に一層詳細に説明されるように、DSCモジュール350−0,350−1…350−Nによりコールド訓練シークエンス(CTS)、拡張された訓練シークエンス(ETS)、又はウォーム訓練シークエンス(WTS)動作中に実行される。ETS及びWTSの両方の動作は、リンクが適正に補償され済みであり、且つリンク・エッジがより早期のCTS中に中心付けされ済みであることを仮定する。
【0030】
正常動作中には、DSCモジュール350−0,350−1…350−Nの主要機能は、バンドルに跨るデータFIFOの制御、及びバンドルに跨る拡張及びウォーム訓練指令シークエンスの検出である。データFIFO制御、特に、バンドルに跨るその読み出しポインタは、DSCモジュール350内の第1レベルのデイジーチェーン化された信号、及びバンドル・レベルでの第2レベルのブロードキャスト状態信号を備える2レベルの分散型制御スキームを用いて達成される。これは、バンドルに跨るデータFIFOの協調をスケーリングする手段を与える。
【0031】
データFIFOの正常動作は次の通りである。図11に示されるように、データFIFOブロックの書き込みポインタ・アドレス・ベクトルwr_pntr_adrは、コア・クロックの各立ち上がり縁上でサンプリングされ、そして図25に示されるように、FIFO状態論理ブロックによりコア・クロック・ドメインに対して同期化される。読み出しポインタ1110のアドレス・ベクトルrd_pntr_adrがまた、コア・クロックの各立ち上がり縁上でサンプリングされ、そして同期化されたwr_pntr_adrを用いて処理される。読み出しFIFOアドレスと書き込みFIFOアドレスとが比較され、そしてFIFO状態、即ち、データの状態、FIFO一杯又は空の状態、及びいずれのエラー条件が決定される。
【0032】
各データ・チャネルにおいて、関連のデータFIFOの状態が、図25に示されるように、他のデータFIFOブロックの状態を用いて処理されて、デイジーチェーン化された状態信号my_data_valid_o,my_fifo_full_o,my_fifo_empty_o及びmy_fifo_error_oを発生する。デイジーチェーン化されたセグメントからの状態信号同士は、図6に示されるDSCクロック・チャネル600のためのユーティリティ・ブロックで組み合わされて、図15に示されるbn/rx_data_valid,bn/rx_fifo_full,bn/rx_fifo_empty及びbn/rx_errorを含むモジュール・バンドル信号を生成する。なお、これらのモジュール・バンドル信号は、図3に示されるBIM360を介してバンドル内の全てのDSCモジュールにブロードキャストされる。分配された状態信号は更に、DSCモジュール350−0,350−1…350−Nのそれぞれに対するBIM360の出口ポートで処理され、そして図14に示されるbim_data_valid,bim_fifo_full,bim_fifo_empty及びbim_fifo_errorとしてDSCモジュールへ通される。
【0033】
BIM360からの、図6に示される分配されたFIFO状態信号bim_bundle信号は、DSCクロック・チャネル600により受信され、そしてDSCデータ・チャネル610−0,610−1,610−2,610−3…のそれぞれに分配される。希望されたDSC対コア・インターフェースに依存して、DSCデータ・チャネル610−0,610−1,610−2,610−3…の制御ロジックは、ブロードキャスト状態信号の一部又は全部を受信し、そして図11に示される読み出しポインタ1110へのrd_cnt_enb信号を制御して、読み出しポインタ・アドレスを進め又は保持する。
【0034】
ETS及びWTS指令探索は、DSCモジュール350−0,350−1…350−Nの別の主要機能である。指令シークエンスの検出は、他のリンクが正常動作を継続する間にバンドルにおけるリンクの一部が訓練に入る「間違った(false)」又は「分割された(split)」訓練シナリオから保護しなければならない。
【0035】
より詳細に考慮すると、正常動作中、指令検出は次の通りである。図3に示される送信機300は、拡張された訓練シークエンス(ETS)又はウォーム訓練シークエンス(WTS)を、それぞれETS又はWTS指令バイト・シークエンスの送信を用いて開始する。図11に示されるように、パターン探索FSMブロック1120は、指令シークエンス・パターン及びSSMバイト・パターン探索の両方を、正常及び訓練モード動作のそれぞれの間に、データFIFOレジスタ・ファイル1170に一時的に格納されている回復されたデータについて実行する。その非アサートされた(non−asserted)状態の信号train_modeを用いて、パターン探索FSMブロック1120は、訓練指令シークエンスを探索する。フレーム・ビット・カウンタ1160からの信号frame_inc及びbyte_markerをパターン探索FSMブロック1120が用いて、受信された指令バイトをフレーム化する。パターン探索FSMブロック1120は、信号train_det1_flg、train_det2_flg又はcmd_err_flgを、WTS指令シークエンス、ETS指令シークエンスに関して、又は指令シークエンス中に検出されたエラー条件に関してアサート(assert)し、そしてユーティリティ・ブロックへ通す。図25に示されるように、信号train_det1_flg、train_det2_flg又はcmd_err_flgはそれぞれ、my_train_det1_o、my_train_det2_o、my_cmd_err_o及びmy_train_det_oとして次のデータ・チャネルに通される前に、又はクロック・チャネルのユーティリティ・ブロックで終了する前に、前のデータ・チャネルから到来のデイジーチェーン化された信号my_train_det1_i、my_train_det2_i、my_cmd_err_i及びmy_train_det_iの中に組み入れられる。信号my_train_det1_o及びmy_train_det2_oは、my_train_det1_i、my_train_det2_i、train_det1_flg及びtrain_det2_flgのデイジーチェーンAND関数の結果である。信号my_cmd_err_iは、my_cmd_err_iとcmd_err_flgとのデイジーチェーンOR関数の結果であり、一方my_train_det_oは、信号my_train_det1_i及びmy_train_det2_iとmy_train_det_iとのデイジーチェーンOR関数の結果である。信号my_train_det_oは、my_train_det_iと、各データ・チャネルFIFOブロックの信号train_det1_flg及びtrain_det2_flgの論理ORとのデイジーチェーンOR関数である。信号my_train_det_oを用いて、DSCモジュール内の少なくとも1つのデータ・チャネルが指令シークエンスを検出し且つ拡張された又はウォーム訓練シークエンスのいずれかを開始済みであることをクロック・チャネルに通知する。指令シークエンス・エラー条件のケースに対して、図11に示されるパターン探索FSMブロック1120は、指令シークエンス探索を再開する。
【0036】
図28に示されるように、信号my_train_det1_o、my_train_det2_o、my_cmd_err_o及びmy_train_det_oの左及び右セグメントは、DSCクロック・チャネル600のユーティリティ・ブロックで終了し、そしてDSCモジュール350の全てのデータ・チャネルのそれぞれのデイジーチェーンAND関数及びデイジーチェーンOR関数の積である。ユーティリティ・ブロック内のロジックは、DSCデータ・チャネル610−0,610−1,610−2,610−3…から受信されたこれらの信号に関して動作し、そして信号clk_train_strt(例えば、図26に示されるclk_train_strt1及びclk_train_strt2)を発生する。信号clk_train_strt1又はclk_train_strt2は、my_train_det1_o又はmy_train_det2_oのそれぞれがアサートされ且つ信号one_ssm_det_flg及びmy_cmd_err_oはアサートされない場合で且つその場合のみアサートされる(例えば、clk_train_strt1は、my_train_det1_oがアサートされ且つmy_cmd_err_o及びone_ssm_det_oがアサートされない場合で且つその場合のみアサートされる。)。図7に示される信号clk_train_strt1及びclk_train_strt2を用いて、DSCモジュール350の中の全てのデータ・チャネルがそれらの訓練シークエンスを首尾良く検出し且つ完了してしまった後でのみクロック・チャネルの中のウォーム訓練シークエンス(WTS)又は拡張された訓練シークエンス(ETS)のそれぞれを開始する。
【0037】
エラーが指令シークエンスにおいて検出されたケースでは、データ・チャネルFIFOブロック内のパターン探索FSMブロック1120は、cmd_err_flg信号をアサートし、そしてその訓練指令シークエンスの探索を開始する。データ・チャネルにおけるcmd_err_flg信号のアサーション(assertion)は、到来のデイジーチェーン化された信号my_cmd_err_iと論理的にOR演算されて、信号my_cmd_crr_oを生成し、当該信号my_cmd_crr_oは、次のデータ・チャネルに伝搬されて、最終的にクロック・チャネルのユーティリティ・ブロックで終了する。my_cmd_err_oのアサーションは、clk_train_strt1かclk_train_strt2かのいずれか及びクロック・チャネルのアサーションが訓練シークエンスを実行するのを防止する。
【0038】
第2のエラー条件においては、指定された制限を超えた過剰のスキューが、少なくとも1つのデータ・チャネルにより経験され、そのデータ・チャネルがバンドル内の他のデータ・チャネルより非常に遅くその訓練シークエンスに入るようにさせる。その効果は、クロック・チャネル訓練シークエンスを開始させる、図7に示されるclk_train_strt1及びclk_train_strt2信号が著しく遅延されることである。図26に示されるone_ssm_det_flgがclk_train_strt信号の前にアサートされる場合、そのクロック・チャネルはその訓練シークエンスをアボートする。
【0039】
データ・チャネルFIFOブロックのパターン探索FSMブロック1120によるssm_found_flg信号のアサーションは、信号my_all_ssm_found(例えば、図25に示されるmy_all_ssm_found_i及びmy_all_ssm_found_o)のデイジーチェーンANDトリー、及び信号my_one_ssm_det(例えば、図25に示されるmy_one_ssm_det_iとmy_one_ssm_det_oとの)とクロック・チャネルのユーティリティ・ブロックで終了するこれらの信号の全てとのデイジーチェーンORトリーの中に組み入れられる。クロック・チャネル列(train)検出ロジックは、one_ssm_det_flg(図26に図示)及びcmd_err_flg(図25に図示)信号がアサートされない場合で且つその場合のみ図7に示されるclk_train_strt1をアサートする。
【0040】
ウォーム訓練シークエンス(WTS)の一般的説明をここで与える。ウォーム訓練シークエンスは、より包括的コールド訓練シークエンス(CTS)及び拡張された訓練シークエンス(ETS)の両方の動作の副動作であり、そして同様に独立した動作であることができる。WTS動作の目的は、リンク全体の動作についての環境条件及びそれらの条件の効果に関して調整することである。WTS又はETSの頻度(frequency)は、環境的に誘発されたスキュー効果を補償するに十分でなければならない。この訓練の頻度は、環境及び応用に非常に依存している。3つの訓練のタイプのうちで、WTSは、最も共通であり、そしてスキュー・プロフィールにおける任意のシフトに関して調整するのに最も少ない時間量しか必要でない。
【0041】
WTS動作は、送信元ノードにおいて、WTS指令を全てのリンク・データ・チャネル320上を送信する送信モジュール310−0,310−1…310−Nにより開始される。WTS指令は、正常のデータ・ストリームで見出されない独特のパターンを有する最小数の連続した指令バイト(典型的には4バイト)を有する。本発明の一変形に従って、代替方法は、追加のチャネルを加えて、訓練シークエンスを識別することを含むか、又は「バイト計数」を用いて、WTS指令を開始し得ることを含む。WTS指令のための「エラー・フリー」最小長又はバイト計数は、ランダム・ビット・エラーが間違った又は自然発生的な訓練シークエンスを開始することができないことを保証するため要求される。
【0042】
ウォーム訓練シークエンス中のクロック・チャネルの説明をここで、図7及び図8を参照してする。ウォーム訓練シークエンス中に、DSCクロック・チャネル600のフロントエンドは、データ回復リンク・クロックdrc_lnk_clkに必要とされるクロック・オフセット値を決定して、そのエッジをデータ・ビット内に中心付けする。リンク・クロック信号の周期を測定し、且つこの値を4の係数で除算することにより、4分の1ラムダの好適なオフセット値を生成する。この周期中に、phs_adj_done信号は、drc_lnk_clkが新しく獲得されたオフセット値を前提としながら、信号train_str1のアサーション後に或る期間不活動状態にされる。
【0043】
より詳細に考慮すると、クロック・チャネル・フロントエンド・ブロック700において、train_str1のアサーションは、クロック信号std_lnk_clkをその状態マシン860に対してイネーブルにしながら、phs_adj_done信号を不活動状態にする。信号phs_adj_doneは、mod_clk_adj_doneとしてDSCモジュール350の全てのDSCデータ・チャネル610−0,610−1,610−2,610−3…にブロードキャストされる。アサートされたとき、phs_adj_done(mod_clk_adj_done)信号は、DSCデータ・チャネル・フロントエンドがそれらの訓練シークエンスを完了するのを可能にする。一度活動状態にされると、上記状態マシンは、そのmean_strt信号をアサートして、mean_pulse信号を遅延線840の入力に生成する。次のクロック・サイクルで、信号mean_cntlがアサートされ、図8に示されるクロック・イメージ・ラッチ800においてクロック周期測定値を捕捉し、そしてmean_pulseを1クロック・サイクル遅れて終了し、正常リンク・クロック波形に戻る。クロック・イメージ・ワードは、遅延タップ又は単純に「タップ」の点から見て受信されたリンク・クロック信号のクロック周期を表すNビット・ワードである。「クロック・イメージ・ワードの「ワン・ホット(one−hot)」復号が、イメージ復号ロジック810により実行され、当該イメージ復号ロジック810は、リンク・クロック信号の周期を表す、第1の1から0への遷移のタップの位置を特定する。ストリング/バイナリ・エンコーダ回路820は、「ワン・ホット」タップ位置をバイナリ値に変換し、そしてtap_decodeベクトルを発生する。ストリング/バイナリ・エンコーダ回路820のtap_decodeベクトル出力は、リンク・クロック周期のバイナリ値であり、そのリンク・クロック周期のバイナリ値は更に、DNA論理ブロック830により処理されて、最終のtap_adr信号を発生する。DNA論理ブロック830は、tap_decodeベクトルについて1組の算術演算を実行して、最終のtap_adr値に到達する。図29Aに示されるように、第1及び第2の演算において、クロック・イメージ・ラッチ分散遅延(ditribution delay)のバイナリ値が、tap_decodeベクトルから減算され、次いで、その調整された値は、2位置右にシフトされて、4の値での除算を導出する。第3の演算において、平衡遅延値が、4での除算演算の結果に加えられて、最終のtap_adr値を生成する。平衡遅延値は、drc_lnk_clk及びstd_lnk_clkクロック信号のエッジを整列させるため必要とされる。クロック・チャネルは、WTS動作のその一部分を、図8に示されるphs_adj_done信号(mod_clk_adj_done)のアサーションを用いて完了する。信号phs_adj_done(mod_clk_adj_done)は、meas_cntlアサーション後の十分な数のクロック・サイクル後にアサートされて、全てのDSCデータ・チャネル610−0,610−1,610−2,610−3…がそれらのデータ回復ストリングを再び開始してSSMバイトを検出するに十分な時間を有することを保証する。
【0044】
試験をする目的のため、最終のtap_adr値は、図8及び図29Aに示される、登録されたオフセット値csr_clock_ch_offsetベクトル値を加算し又は減算すること、及び/又はcsr_lamda_scalerベクトルを変えることにより修正されて、4の係数でのデフォルト除算結果を別の事前定義された値に変えることができる。4の係数での除算結果は、サンプリング及びエッジ配置(placement)計算エラーを最小にしながらクロック・エッジをビット期間内に中心付けする好適なcsr_lamda_scaler値である。
【0045】
ウォーム訓練シークエンス中のデータ・チャネル動作の詳細な説明をここで与える。DSCデータ・チャネル・フロントエンド910において、train_str1のアサーションは、ローカル信号phs_adj_doneを不活動状態にし、そしてクロック信号std_lnk_clk_bを図10に示されるその状態マシン1000に対してイネーブルにする。phs_adj_doneの不活動状態化は、信号pos_data_bit及びneg_data_bitをゼロ値に強制的にする。一度活動状態にされると、データ・チャネルFSM1000は、ベクトルmode_sel及びtrim_c2d_selの値を設定し、そして信号reflow_conf_enをアサートする。mode_selベクトルの値は、データ・チャネル入力マルチプレクサのlnk_data_in信号を選択し、一方trim_c2d_selベクトルは、最小サブタップ「パディング」遅延を選択する。信号reflow_conf_enのアサーションは、「リフロー(re−flow)」測定構成を可能にする。「リフロー」測定構成は、遅延線1070の「イベント入力」に印加された信号を、当該遅延線の遅延段を通すことなく、当該遅延線の出力にルート付けさせる。「エコー入力」に印加された第2の信号は、遅延線の遅延段を通るようルート付けされるが、しかし遅延線の出力からブロック(阻止)される。従って、「エコー入力」に印加された信号の遅延イメージは、記録されることができ、一方「イベント入力」に印加された信号は、遅延段をバイパスする遅延線1070の入力及び出力回路を同時に通過する。
【0046】
信号meas_enは、データ位相ワードをデータ・イメージ・ラッチ1010においてリンク・クロックstd_lnk_clkの次の立ち上がり縁で捕捉するFSM1000によりアサートされる。データ位相ワードの捕捉がゼロ・オフセットを有するdrc_lnk_clkを表すライン・クロックstd_lnk_clkと関係付けられることに注目することが重要である。従って、データ位相ワードは、データ・ストリームの位相の、ゼロのオフセット値を有するデータ回復リンク・クロックdrc_lnk_clkに対する位相関係を表す。データ位相ワードは、遅延タップ又は単純に「タップ」の点から見て受信されたリンク・データ信号の位相エラーを表すNビット・ワードである。データ・イメージ・ワードの「ワン・ホット」復号は、イメージ復号ロジック1020により実行され、当該イメージ復号ロジック1020は、data_image_latch[0]が1に等しいとき第1の1から0への遷移のタップ位置に、又data_image_latch[0]がゼロに等しいとき0から1への遷移のタップ位置を特定する。ストリング/バイナリ・エンコーダ回路1030は、「ワン・ホット」タップ位置をバイナリ値に変換し、且つ図10に示されるtap_decodeベクトルを発生する。FSM1000は、初期tap_decodeベクトルをDNAレジスタにセーブし、そして図30に示されるように修正されたバイナリ探索アルゴリズムを開始して、残留位相エラーをタップ遅延の1/n未満の値まで低減するであろうtrim_c2d_selベクトルを決定する。「n」は、サブタップ遅延値の分解能を表す。
【0047】
ストリング/バイナリ・エンコーダ回路1030のtap_decodeベクトル出力は、リンク・データ位相エラーのバイナリ値であり、このバイナリ値を更に、図10に示されるように、DNAロジック・ブロック1040が処理して、最終のtap_adr信号を発生する。試験の目的のため、最終tap_adr値は更に、登録されたオフセット値、即ちcsr_data_ch_offsetベクトルを加算又は減算することにより修正されることができる。DNAロジック・ブロック1040が、tap_decodeベクトルについて1組の算術演算を実行して、最終のtap_adr値に到達する。図29Bに示されるように、第1及び第2の演算において、データ・イメージ・ラッチ分配遅延のバイナリ値が、tap_decodeベクトルから減算され、そしてdrc_lnk_clkクロック及びphs_adj_data信号のエッジ同士を整列させるため必要とされる平衡遅延が加算されて、最終のtap_adr値に到達する。信号phs_adj_doneは、mean_enがアサートされた後の十分な数のクロック・サイクル後にアサートされて、その結果、位相補正されたデータがデータ回復ストリング1060を通って伝搬されてしまうことを保証する。DSCモジュール350内の全てのデータ・チャネルがそれらの位相補正シークエンスを完了してしまうとき、DSCデータ・チャネル610は、mod_clk_adj_done信号を不活動状態にして、その訓練シークエンスを始める。不活動状態にされるとき、信号mod_clk_adj_doneは、DSCモジュール350内の全てのデータ・チャネルに関してphs_adj_done信号を不活動状態にする。クロック・チャネルがその訓練シークエンスを完了してしまうとき、それは、信号mod_clk_adj_doneをアサートして、データ・チャネルがそれらのphs_adj_done信号をアサートするのを可能にする。信号mod_clk_adj_doneは、データ・チャネルがそれらのphs_adj_done信号をアサートするに十分な時間を用いてアサートされて、データ回復ストリング1060を初期化する。phs_adj_done信号のアサーションは、データ・チャネル位相補正シークエンスの終わりを指示し、そして図9に示されるデータFIFOブロック900に対してデータ出力信号neg_data_bit及びpos_data_bitをイネーブルする。
【0048】
再び図11を参照すると、データFIFOブロック900において、train_str1のアサーションが、SSM開始シークエンサ1130をリセットし、そしてそのstd_lnk_clkを活動状態にする。SSM開始シークエンサ1130のリセットがまた、信号train_modeを不活動状態にして、書き込みポインタ1140をゼロ値に強制的にする。従って、WTS動作中に、データFIFOレジスタ・ファイル1170の位置ゼロのみが選択される。
【0049】
neg_data_bit及びpos_data_bitストリームが、データFIFOスタック1170の中にstd_lnk_clkの立ち上がり縁で書き込まれる。データFIFOスタック1170は、電力放散を最小にするためアドレス可能な「ビット毎書き込み(write−per−bit)」FIFOとして実現されることが好ましい。FIFOアドレス・エンコーダ1150からのデータFIFO書き込みアドレスfifo_bit_adrは、書き込みポインタ1140及びフレーム・ビット・カウンタ論理ブロック1160から信号pos_pattrn_flgの状態と共に導出される。パターン探索FSMブロック1120からのpos_pattrn_flg信号は、データFIFOスタック1170の正のビットが全て論理1の値を有する場合論理1であり、その他の場合には、信号pos_pattrn_flgは論理0である。FIFOの読み出し及び書き込み順序は、DSCデータ・チャネル・フロントエンド・ブロック910からのデータ・ストリームの負の位相整列に起因した適正なバイト・フレーミングを維持するため、pos_pattrn_flgの状態に応じて変えられる。fifo_bit_adrは、SSMバイト中にtrain_mode信号を不活動状態にすると、pos_pattrn_flgの状態を用いて更新される。
【0050】
train_mode及びphs_adj_doneのアサーションを用いて、パターン探索FSM1120は、SSM及び訓練フェンス・パターン探索を始める。正常動作中に、信号phs_adj_doneは、クロック・チャネルがその訓練シークエンスの中に入るとき不活動状態にされ、そして一度クロック・チャネルがその訓練を完了してしまうと再び活動状態にされるであろう。phs_adj_done信号の期間中、パターン探索FSM1120の不活動状態化は、SSMバイト及び訓練フェンス・パターンのその探索を中断し、そして一度phs_adj_doneがアサートされてしまうと、その探索を再開する。frame_incの2つの遷移後に、訓練フェンス・パターンが検出されない場合、信号ssm_err_flgがアサートされる。2つのframe_inc遷移を待つことにより、DSCデータ・チャネル・フロントエンド・ブロック910が適正にサンプリングされるためデータ・ストリームを位相調整する時間を有したことが保証される。SSM探索が継続され、そして信号ssm_found_flgは、一度SSMパターンが検出されてしまうと、アサートされる。非訓練フェンス・パターン又は非SSMパターンがこの時間中に検出される場合、ssm_err_flg信号がアサートされて、SSM探索を終わりにする。ssm_found_flg及びssm_err_flgの状態が、train_mode信号を不活動状態にすると直ぐに維持される。
【0051】
ssm_found_flg及びssm_err_flg信号の状態が、DSCクロック・チャネル600に供給され、そして同様にDSCデータ・チャネル610−0,610−1,610−2,610−3…により内部で用いられる。DSCクロック・チャネル600は、これらの信号を処理し、そしてその結果を、DSCモジュール350内の全てのDSCデータ・チャネル610−0,610−1,610−2,610−3…並びにバンドル内の他のDSCモジュールにブロードキャストする。DSCデータ・チャネル610−0内部で、これらの信号は、適正なバイト・フレーミングを設定する、図11に示されるSSM開始シークエンサ・ロジック1130により用いられる。
【0052】
SSM開始シークエンサ1130は、適正にデータ・バイトをフレーム化するため、書き込みポインタ1140及びフレーム・ビット・カウンタ1160を整列し、そして初期化する。この手順は、ウォーム訓練シークエンス後に受け取られた第1のデータ・ビットがデータFIFOスタック1170の位置ゼロに書き込まれることを保証する。ssm_found_flg信号をアサーションすると、SSM開始シークエンサ1130は、図11に示されるように、frame_stri信号を不活動状態にしながら、frame_init信号をアサートする。frame_init信号は、フレーム・ビット・カウンタ1160をゼロ値に強制的にして、ゼロのfifo_bit_adrベクトルを発生し、当該ゼロのfifo_bit_adrベクトルにおいて、第1のデータ・ビットが格納される。書き込みポインタ1140及びフレーム・ビット・カウンタ1160は、SSM開始シークエンサ1130がSSMバイトの終わりからの2つのUIでframe_strtをアサートして、フレーム・ビット・カウンタ1160を開始するまで、上記の初期状態で保持される。SSM開始シークエンサ1130は、train_mode信号をSSMバイトの終わりで非活動状態にする。SSMエラーの場合、ssm_err_flg信号が、アサートされ、そしてプロセスの一部として用いられて、エラー・フレーム化されたデータを観測し、そこにおいて、DSCデータ・チャネル610は、それが正しくなくフレーム化されるにも拘わらず、データを出力して、システムがエラー条件を診断するのを可能にする。
【0053】
fifo_bit_adrベクトルを発生するロジックは、書き込みポインタ1140、フレーム・ビット・カウンタ1160及びFIFOアドレス・エンコーダ1150の論理ブロックから構成される。前述したように、データFIFOスタック1170は「ビット毎書き込み」として実行されるのが好ましく、そこではデータの各ビットは、fifo_bit_adrベクトルにより指示される特定のビット位置に書き込まれる。frame_adr及びwr_pntr_adrベクトルをFIFOアドレス・エンコーダ1150ロジックが用いて、fifo_bit_adrベクトルを発生する。フレーム・ビット・カウンタ1160は、2バイト・カウント間隔にわたる大きさにされ、それは、二倍フレームを整数個のリンク・クロック・サイクルで整列させる。fifo_bit_adrベクトルの発生に要求されないにも拘わらず、書き込みポインタは、読み出しポインタと整合するような大きさにされ、それは、データFIFO状態計算に必要なロジックを低減する。wr_pntr_adrベクトルの最下位ビット部分(又はLSB)は、fifo_bit_adrベクトルを発生するためにはFIFOアドレス・エンコーダ1150により用いられず、従って、書き込みポインタに2倍増分されることを要求する。これは、フレーム・ビット・カウンタ1160に、frame_inc信号をアサートして書き込みポインタ1140値をバイト時間間隔毎に増分するのを要求する。書き込みポインタの中間増分値がfifo_bit_adrベクトルに影響を及ぼさないが、しかしそれらは、読み出し対書き込み(read−to−write)ポインタ追跡を可能にする。書き込みポインタ1140及びフレーム・ビット・カウンタ1160のこのような構成は、設計の複雑さを低減した奇数番号付けされた符号化スキーム(例えば、8b9b)に適応する。
【0054】
DSCクロック・チャネル600は、図11に示されるように、ssm_found_flg及びssm_err_flg信号をDSCモジュール350内の全てのDSCデータ・チャネル610−0,610−1,610−2,610−3…から受信する。図26に示されるように、bim_all_ssm_found信号は、DSCデータ・チャネル610からの全ssm_found_flg信号の論理的「AND」であり、そしてそれがバンドル内の全てのDSCモジュール350−0,350−1…350−NにBIM360を介してブロードキャストされる前にコア・クロック・ドメインへ同期化される。bim_ssm_err_flg信号は、DSCデータ・チャネル610からの全ssm_err_flg信号の論理的「OR」であり、そしてそれがバンドル内の全てのDSCモジュール350へBIM360を介してブロードキャストされる前にコア・クロック・ドメインへ同期化される。バンドル内の各DSCモジュール350は、図14に示されるように、ブロードキャスト信号bim_ssm_err_flg及びbim_all_ssm_foundをBIM360の送出ポート(export port)を介して受信する。図27に示されるDSCクロック・チャネル600のユーティリティ・ブロック内のモジュール・レベルFIFO制御器は、これらの信号を受信し、そしてmode_rd_cnt_strt信号を発生し、当該mode_rd_cnt_strt信号は、DSCモジュール350内の全てのDSCデータ・チャネル610にブロードキャストされる。mode_rd_cnt_strt信号は、bim_ssm_err_flg信号とbim_all_ssm_found信号との論理的「OR」である。mode_rd_cnt_strt信号のアサーションは、ウォーム訓練シークエンスの終わり、及び正常動作の開始をマーキングする。
【0055】
DSC訓練シークエンスを、リンク・データを正しくサンプリングする要件なしに開始する方法を与えるコールド訓練シークエンス(CTS)をここで詳細に説明する。コールド訓練シークエンスは、システムのパワーアップ時に、又はシステムのリセット時に、あるいは回復不能のリンク・エラーの場合に必要とされる。コールド訓練シークエンスは、ウォーム訓練シークエンス(WTS)中に実行されるように、遅延経路整合/較正に関連する第1のセグメント及びリンク・スキュー補償の第2のセグメントを有するスーパセットのウォーム訓練シークエンス(WTS)操作である。CTS操作は、リンク・リセットとして機能して、DSCモジュール350−0,350−1…350−Nが前の訓練シークエンス中に獲得された全ての較正値をリセット及びクリアし且つ即座の再訓練を急に引き起こすようにする。コールド訓練シークエンスは、全てのDSCモジュール350−0,350−1…350−Nによる検出を保証するため最小の指定された時間量の間論理的1又は0状態のいずれかでリンク・クロック信号を保持することによりリンク・クロック・スイッチングを停止することにより開始される。CTS操作を任意の時に開始することができる。本発明の一変形に従って、代替方法は、リンク・クロック周波数を遅くすること、又は非フェンス・パターンをリンク・クロック・チャネル上に与えることを含む。これらのいずれの方法も、CTS操作を開始するため、検出可能な「リンク・リセット署名」を生成する。しかしながら、そうすることは、任意の受信されたデータがDSCモジュール350−0,350−1…350−Nによりその時点に処理されることを無効にする。
【0056】
一度CTS操作が開始してしまうと、DSCモジュール350−0,350−1…350−Nは、以後「トリミング」と呼ばれる経路遅延整合/較正を始める。トリミングは最初に、全てのDSCデータ・チャネル610が続くDSCクロック・チャネル600において完了されるのが好ましい。トリミング・プロセスが完了してしまった後でのみ、リンクのスキュー補償が開始される。
【0057】
DSCクロック・チャネル600遅延トリミングは、2段階プロセスである。第1段階は、クロック・イメージ・ラッチ800分配の遅延補償を与え、そして、第2段階は、クロック信号drc_lnk_clk(データ回復リンク・クロック)及びstd_lnk_clk(標準リンク・クロック)の経路遅延整合である。類似の操作が、DSCデータ・チャネル610で生じる。最初に、データ・イメージ・ラッチ1010分配の遅延補償が実行され、そして、次ぎに、位相調整されたデータをデータ回復リンク・クロックdrc_lnk_clkに対して経路遅延整合させることが実行される。実際には、クロック及びDSCデータ・チャネル610の両方に関するデータ・イメージ・ラッチ1010分配遅延トリミングは、同時に実行されて、訓練に必要な時間を低減する。クロック信号drc_lnk_clkとstd_lnk_clkとの間の遅延経路整合トリミングは、DSCデータ・チャネル610がトリミング・プロセスを完了する前にDSCクロック・チャネル600において完了されねばならない。全ての場合に、トリミングされた遅延は、1タップ遅延の8分の1より小さい最適精度を達成するため要求される。一度全てのトリミング操作が完了してしまうと、前述した正常なウォーム訓練シークエンス操作が、CTSの最終操作フェーズとして開始される。
【0058】
より詳細に考えると、図6に示されるDSCクロック・チャネル600は、コールド訓練シークエンス(CTS)中に次のように動作する。コールド訓練シークエンスは、lnk_clock_in信号が指定された期間にわたりいずれかの論理状態(例えば、論理的ハイ又は論理的ロー)に保持されるとき、開始される。図24A及び図24Bに示されるように、lnk_clock_in信号は、DSCクロック・チャネル600ユーティリティ・ブロックに存在する、図26に示されるようなクロック検出回路によりモニタされ、そして図8に示されるreset_lclkをアサートし、そしてlnk_clock_inに関するスイッチング活動が指定された期間にわたり検出されないときlink_aliveを不活動状態にする。この状態は、「リンク・リセット」と呼ばれる。リンク・リセットからの退出は、バンドル内の全てのDSCモジュール350−0,350−1…350−Nが拡張された訓練シークエンスに自動的に入るときリンク・クロックのスイッチング活動の再開により生じる。この時点で、訓練パターンは、図5に示される各DSCデータ・チャネル610の各link_data_inピンに存在し、且つ存在しなければならない。
【0059】
一度lnk_clock_inスイッチング活動が再開すると、reset_lclk信号は不活動状態にされ、そしてlink_aliveは、その後の最小数のクロック・サイクルに同期的にアサートされる。図10に示されるように、reset_lclkのアサーションは、信号train_str2をセットし、そしてDSCモジュール350内の全てのDSCデータ・チャネル610−0,610−1,610−2,610−3…に対するphs_adj_done(mod_clk_adj_done)を不活動状態にする。reset_lclk信号アサーションはまた、クロック及びデータ・チャネルにおける全てのFSM回路1000に対するリンク・クロックstd_lnk_clk_bを活動状態にする。train_str2信号のアサーションは、拡張された訓練シークエンス(ETS)を当該クロックにおいて発射(launch)する。データ・チャネルにおいて、reset_lclkのアサーションは、ローカル信号train_str2をセットする一方、phs_adj_done(mod_clk_adj_done)の不活動状態化は、DSCデータ・チャネル610がそれらのクロック対データ経路遅延トリミング・プロセスを完了するのを防止する。
【0060】
DSCクロック・チャネル600において、図8に示されるように、クロック・イメージ・ラッチ800の分配遅延が始まり、その最終状態マシン又はFSM860はmode_sel[m:0]ベクトル及びtrim_LDD[2:0]ベクトルを設定する。mode_sel[m:0]ベクトルが、DSCクロック・チャネル600入力マルチプレクサのmeas_cntl入力を選択するよう設定される一方、trim_LDD[2:0]ベクトルがその最小値に設定される。必要な最小数のリンク・クロック・サイクル後に、meas_cntl信号がアサートされ、そしてクロック・イメージ・ラッチ800を活動状態にして初期分配遅延イメージを捕捉しながら、測定ピング・パルスを下方の遅延線840に発射する。dna_latch_en信号がFSM860によりアサートされて、2進符号化された値をDNA論理ブロック830にセーブする。FSM860は、プロセスを開始して、meas_cntl信号を不活動状態にし、且つtrim_LDDベクトル値を増分してラッチ分配遅延を1タップ遅延のほぼ8分の1だけ増大させることにより分配遅延イメージを精緻にする(refine)。meas_cntl信号がもう一度アサートされて、増分された分配遅延値を捕捉する。match_LDD信号は、クロック・イメージ・ラッチ800の2進符号化された値がラッチ分配遅延イメージの前にラッチされた値に等しいときアサートされる。FSM860は、match_LDD信号の状態をモニタし、そして3つの機能のうちの1つを実行する。最初に、match_LDD信号がアサートされたままであり、且つtrim_LDDベクトルがその最大値に等しくない場合、trim_LDDベクトル値が増分され、そして分配遅延イメージが再捕捉される。第2に、match_LDD信号が不活動状態にされる場合、dna_latch_en信号が循環(cycle)されて、分配遅延イメージの最も最近の遅延イメージ値をセーブし、そしてトリミング工程の次のフェーズに進む。第3に、信号match_LDDがアサートされたままであり、且つtrim_LDDベクトルがその最大値に等しい場合、FSM860は、trim_LDDベクトルをゼロにリセットし、そしてトリミング工程の次のフェーズに進む。
【0061】
データ回復リンク・クロックを標準リンク・クロック経路遅延に対して整合させるのは、DSCクロック・チャネル600の拡張されたコールド訓練シークエンスのトリミング・プロセスの最終シークエンスである。図8に示されるように、drc_lnk_clkクロック信号経路とstd_lnk_clkクロック信号経路との間の伝搬遅延デルタの整合は、DSCクロック・チャネル600の遅延線840において実現される全体遅延調整を必要とする。drc_lnk_clk信号経路の微細な遅延調整は、遅延を挿入するため用いられるトリム遅延回路850により実現される。
【0062】
図8に示されるように、FSM860は最初に、DSCクロック・チャネル600入力マルチプレクサのstd_lnk_clk入力を選択するようmode_selベクトルを設定し、そしてforce_tapベクトルを、DSCクロック・チャネル遅延線840のゼロ選択タップ「ゼロ」に設定する。トリム遅延回路850に対するtrimL2_sel[2:0]ベクトルがまた、この訓練シークエンスのセグメントにおいてFSM860によりゼロ値に設定される。FSM860は、reflow_conf_en信号をアサートして、遅延線840をトリミング・モード動作のため構成する。トリム・モード構成における動作の間に、その「イベント入力」に印加された信号は、タップ0(tap0)に直接ルート付けされる。「エコー入力」に印加された信号は、それがタップ0を除外した遅延線840の全長を走行するようにルート付けされる。この構成において、遅延線840の「エコー入力」上に印加された信号の遅延イメージは、クロック・イメージ・ラッチ800を用いて捕捉されることができる。最小数のクロック・サイクルの間待って、FSM860は、trim_st2dr_en信号をアサートして、ゼロのforce_tapベクトル値を有する、std_lnk_clkクロック信号に対するdrc_lnk_clkクロック信号の初期スキュー・イメージを捕捉する。
【0063】
イメージ復号ロジック810は、この値を復号して、drc_lnk_clk信号のエッジをstd_lnk_clk信号のエッジに整列させるタップを選択する。選択されたタップ値は、2進値にストリング/バイナリ・エンコーダ回路820により変換され、そしてDNA論理ブロック830に通される。FSM860は、trim_latch2_en信号を循環させて、タップの符号化された2進値を捕捉して、信号同士drc_lnk_clkとstd_lnk_clkとを整列させ、且つ全体同調セグメントを完了させる。
【0064】
全体同調セグメントの完了でもって、FSM860は、全体同調セグメント中に初期値として捕捉された値を用いて、微細な同調セグメントを始める。FSM860は、trimL2_selベクトルを増分し、そしてtrim_st2dr_en信号を循環させて、更新された微細な同調スキュー・イメージを捕捉する。FSM860は、match_trm2信号の状態をモニタし、そして3つの機能のうちの1つを実行する。最初に、match_trm2信号がアサートされたままであり、且つtrimL2_selベクトルがその最大値に等しくないとき、trimL2_selベクトル値は増分され、そして更新されたスキュー・イメージが捕捉される。第2に、match_trm2信号が不活動状態にされる場合、trim_latch2_en信号が循環されて、std_lnk_clkクロック信号に対するdrc_lnk_clkクロック信号の最も最近のスキュー・イメージをセーブして、トリミング工程を完了する。第3に、match_trm2信号が、アサートされたままで、且つtrimL2_selベクトルがその最大値に等しい場合、FSM860は、trimL2_selベクトルをゼロにリセットして、トリミング工程を完了する。一度トリミング工程を完了すると、drc_lnk_clk信号対std_lnk_clkクロック信号は、ゼロ位相ロックされ、又は180度位相ロックされる。微細な同調セグメントを完了すると直ぐに、DSCクロック・チャネルFSM860は、DSCモジュール350内のDSCデータ・チャネル610に対する、図8に示される信号phs_adj_done(mod_clk_adj_done)の非アクティブ状態に維持し、そして直ちにプロセスを始めて、リンク・クロック周期を測定し、その4分の1λオフセット値を計算する。FSM860は、図8に示されるように、meas_strt信号をアサートして、meas_pulse信号をDSCクロック・チャネル600の遅延線入力に生成する。次のクロック・サイクル上で、meas_cntl信号がアサートされ、クロック周期測定値をクロック・イメージ・ラッチ800において捕捉し、そしてmeas_pulse信号を1クロック・サイクル後に終了させ、正常リンク・クロック波形に戻す。クロック・イメージ・ワードは、遅延タップ又は単純に「タップ」に関して、受信されたリンク・クロック信号のクロック周期を表すNビット・ワードである。クロック・イメージ・ワードの「ワン・ホット」復号は、イメージ復号ロジック810により実行され、それは、リンク・クロック信号の周期を表す、最初の1から0への遷移のタップの位置を特定する。ストリング/バイナリ・エンコーダ回路820は、「ワン・ホット」タップ位置を、図8に示されるtap_decodeベクトルを発生する2進値に変換する。ストリング/バイナリ・エンコーダ回路820のtap_decodeベクトル出力は、リンク・クロック周期の2進値であり、このリンク・クロック周期の2進値は更に、DNA論理ブロック830により処理されて、最終のtap_adr信号を発生する。DNA論理ブロック830は、tap_decodeベクトルについて1組の算術演算を実行して、最終のtap_adr値に到達する。図29Aに示されるように、第1及び第2の操作において、クロック・イメージ・ラッチ分配遅延の2進値が、tap_decodeベクトルから減算され、次いで、調整された値が、2位置右にシフトされて、4で除算した値を導出する。第3の操作において、均衡遅延値が、4で除算する演算の結果に加えられて、最終のtap_adr値を生成する。均衡遅延値は、drc_lnk_clkクロック信号のエッジとstd_lnk_clkクロック信号のエッジとを整列させるのに必要とされる。一度クロック・チャネルCTS操作が完了してしまうと、DSCクロック・チャネルFSM860は、信号phs_adj_done(mod_clk_adj_done)をアサートして、データ・チャネルがCTS操作を完了するのを可能にする。図6に示されるDSCデータ・チャネル610−0,610−1,610−2,610−3…は、コールド訓練シークエンス(CTS)中に次のように動作する。図10を参照すると、reset_lclk信号のアサーションは、train_strt2信号を設定し、そしてDSCモジュール350内の全てのDSCデータ・チャネル610−0,610−1,610−2,610−3…に対する、図10に示されるDSCデータ・チャネル信号phs_adj_doneを不活動状態にする。train_strt2信号のアサーションは、データ・チャネルにおける拡張された訓練シークエンス(ETS)を発射し、一方mod_clk_adj_done信号の不活動状態化は、DSCデータ・チャネル610−0,610−1,610−2,610−3…がトリミング及び位相補正プロセスを完了するのを防止する。
【0065】
図10を参照すると、DSCデータ・チャネル610において、データ・イメージ・ラッチ1010の分配遅延が始まり、その有限状態マシン又はFSM1000がmode_sel[1:0]及びtrim_LDD[2:0]ベクトルを設定する。mode_sel[1:0]ベクトルは、DSCデータ・チャネル610入力マルチプレクサのmeas_en入力を選択するよう設定され、一方trim_LDD[2:0]ベクトルは、その最小値に設定される。最小数のstd_lnk_clkサイクルを待って、meas_en信号がアサートされ、初期ラッチ分配遅延イメージを捕捉するデータ・イメージ・ラッチ1010を活動状態にしながら、測定ピング・パルスを下方のDSCデータ・チャネル610の遅延線1040に発射する。dna_latch_en信号がFSM1000によりアサートされて、2進符号化された値をDNAロジック・ブロック1040にセーブする。FSM1000は、プロセスを始めて、meas_en信号を不活動状態にし、且つtrim_LDDベクトル値を増分することにより分配遅延イメージを精緻にして、ラッチ分配遅延を1タップ遅延のほぼ8分の1だけ増大させる。meas_en信号がもう一度アサートされて、増分された分配遅延値を捕捉する。match_LDD信号は、データ・イメージ・ラッチ1010の2進符号化された値がラッチ分配遅延イメージの前にラッチされた値に等しいときアサートされる。FSM1000は、match_LDD信号の状態をモニタし、そして3つの活動の1つを実行する。最初に、match_LDD信号がアサートされたままであり、且つtrim_LDDベクトルがその最大値に等しくない場合、trim_LDDベクトル値が増分され、そして更新された分配遅延イメージが捕捉される。第2に、match_LDD信号が不活動状態にされた場合、dna_latch_en信号は循環されて、分配遅延の最も最近の遅延イメージ値をセーブし、そしてトリミング・プロセスの次のフェーズに進む。第3に、match_LDD信号がアサートされたままであり、そしてtrim_LDDベクトルがその最大値に等しい場合、FSM1000は、trim_LDDベクトルをゼロにリセットし、そしてトリミング・プロセスの次のフェーズに進む。
【0066】
位相調整されたデータ経路遅延に対するデータ回復リンク・クロックの整合は、DSCデータ・チャネル610のコールド訓練シークエンスのトリミング・プロセスの最終シークエンスである。このデータ・チャネル・コールド訓練シークエンスのセグメントは、クロック・チャネル信号mod_clk_adj_doneによりゲーティングされ、そのアサーション後のみ開始する。図10を参照すると、drc_lnk_clk信号経路とphs_adj_data信号経路との間の伝搬遅延デルタを整合させることは、DSCデータ・チャネル610の遅延線1070において実現される全体遅延調整を必要とする。phs_adj_data信号経路の微細な同調遅延調整は、データ・イメージ・ラッチ1010、イメージ復号ロジック1020、ストリング/バイナリ・エンコーダ回路1030及びDNAロジック・ブロック1040の組み合わせを用いて遅延及び測定値を挿入するため用いられるトリム遅延回路1050により実現される。
【0067】
FSM1000は最初に、DSCデータ・チャネル610の入力マルチプレクサのdrc_lnk_clk入力を選択するようmode_selベクトル値を設定し、そしてforce_tapベクトルをゼロに設定し、DSCデータ・チャネル遅延線1070のタップ・ゼロを選択する。FSM1000はまた、ベクトルtrim_c2d_sel[2:0]をゼロ値に設定し、そしてreflow_conf_en信号をアサートして、トリミング・モード動作のため遅延線1070を構成する。そのトリミング・モード構成において動作しながら、「イベント入力」に印加される信号は、直接タップ0にルート付けされる。「エコー入力」に印加される信号は、それがタップ0を除外した遅延線1070の全長を走行するようにルート付けされる。この構成のとき、遅延線1070の「エコー入力」に印加される信号の遅延イメージが、データ・イメージ・ラッチ1010を用いて捕捉されることができる。最小数のクロック・サイクルを待って、FSM1000は、trim_c2d_en信号をアサートして、ゼロのforce_tapベクトル値を有する、drc_lnk_clkのphs_adj_data信号に対する初期スキュー・イメージを捕捉する。
【0068】
イメージ復号ロジック1020は、この値を復号して、drc_lnk_clk信号のエッジをphs_adj_data信号のエッジに整列させるタップを選択する。選択されたタップ値は、ストリング/バイナリ・エンコーダ回路1030により2進値に変換され、そしてDNAロジック・ブロック1040に通される。FSM1000はtrim_c2d_en信号を循環させて、タップの符号化された2進値を捕捉して、drc_lnk_clk信号とphs_adj_data信号とを整列させ、そして全体同調セグメントを完了させる。
【0069】
全体同調セグメントの完了でもって、FSM1000は、全体同調セグメント中に初期値として捕捉された値を用いて微細な同調セグメントを始める。FSM1000は、trim_c2d_sel[2:0]ベクトルを増分し、次いでtrim_c2d_en信号を循環させて、更新された微細な同調スキュー・イメージを捕捉する。FSM1000は、match_vec2[2:0]信号の状態をモニタし、そして3つの活動の1つを実行する。最初に、match_vec2[2:0]信号がアサートされたままであり、且つtrim_c2d_sel[2:0]ベクトルがその最大値に等しくない場合、trim_c2d_sel[2:0]ベクトル値が増分され、そして更新されたスキュー・イメージが捕捉される。第2に、match_vec2[2:0]信号が不活動状態にされた場合、trim_c2d_en信号が、循環されて、drc_lnk_clk信号のphs_adj_data信号に対する最も最近のスキュー・イメージをセーブして、トリミング工程を完了する。第3に、match_vec2[2:0]信号がアサートされたままであり、且つtrim_c2d_sel[2:0]ベクトルがその最大値に等しい場合、FSM1000は、trim_c2d_sel[2:0]ベクトルをゼロにリセットして、トリミング工程を完了する。
【0070】
図10を参照すると、データ・チャネル・フロントエンドFSM1000は、位相補正プロセスを始めて、入力データ・ストリームをリンク・クロック信号とエッジで整列させる。FSM1000は、meas_en信号をアサートして、リンク・クロック信号std_lnk_clkの次の立ち上がり縁上でデータ・イメージ・ラッチ1010においてデータ位相ワードを捕捉する。データ位相ワードの捕捉が、ゼロ・オフセットを有するdrc_lnk_clkを表すリンク・クロックstd_lnk_clkに参照されることに注目することは重要である。従って、データ位相ワードは、ゼロのオフセット値を有するデータ回復リンク・クロックdrc_lnk_clkに対するデータ・ストリームの位相関係を表す。データ・イメージ・ワードは、遅延タップ又は単純に「タップ」に関して、受信されたリンク・データ信号の位相エラーを表すNビット・ワードである。データ・イメージ・ワードの「ワン・ホット」復号は、イメージ復号ロジック1020により実行され、そのイメージ復号ロジック1020は、最初の1から0への遷移のタップ位置を特定する。図10を参照すると、データ・イメージ・ラッチ1010のビット・ゼロ位置(data_image_latch[0]と呼ぶ。)の値を用いて、データ・イメージ・ワードの進み位相又は遅れ位相を決定する。1に等しい値を有するdata_image_latch[0]は位相進み条件と考えられ、そしてゼロに等しいdata_image_latch[0]値は、位相遅れ条件を示す。ストリング/バイナリ・エンコーダ回路1030は、「ワン・ホット」タップ位置を2進値に変換し、そしてtap_decodeベクトルを発生する。ストリング/バイナリ・エンコーダ回路1030のtap_decodeベクトル出力は、リンク・データ位相エラーの2進値であり、このリンク・データ位相エラーの2進値は更に、図10に示されるように、DNAロジック・ブロック1040により処理されて、最終のtap_adr信号を発生する。
【0071】
試験する目的のため、最終のtap_adr値は更に、レジスタされたオフセット値、csr_ch_offset[5:0]ベクトルを加算する又は減算することにより修正されることができる。DNAロジック・ブロック1040は、tap_decodeベクトルについて1組の算術演算を実行して、最終のtap_adr値に到達する。図29Bに示されるように、第1及び第2の操作において、データ・イメージ・ラッチ分配遅延の2進値が、tap_decodeベクトルから減算され、そしてdrc_lnk_clk信号のエッジとphs_adj_data信号のエッジとを整列させるため必要とされる均衡遅延値が、加算されて、最終のtap_adr値に到達する。phs_adj_done信号は、meas_en信号がアサートされた後の十分な数のクロック・サイクル後にアサートされて、位相補正されたデータが図10に示されるデータ回復ストリング1060を介して伝搬したことを保証する。phs_adj_done信号のアサーションは、位相補正シークエンスの終わりを指示し、そしてデータ出力信号neg_data_bit及びpos_data_bitを、図9に示されるデータFIFOブロック900に対して使用可能にする。
【0072】
図11を参照して、データFIFOスタック1170において、train_strt2信号のアサーションは、SSM開始シークエンサ1130をリセットし、そしてstd_lnk_clkを活動状態にする。SSM開始シークエンサ1130のリセットはまた、train_mode信号を不活動状態にし、書き込みポインタ1140をゼロ値に強制的にする。従って、訓練シークエンス中に、データFIFOスタック1170の位置ゼロのみが選択される。
【0073】
図11に示されるように、neg_data_bit及びpos_data_bitストリームが、データFIFOスタック1170の中にstd_lnk_clk信号の立ち上がり縁上で書き込まれる。データFIFOスタック1170は、パワー放散を最小にするため、アドレス可能な「ビット毎書き込み」FIFOとして実現されることが好ましい。FIFOアドレス・エンコーダ1150からのFIFO書き込みアドレスfifo_bit_adrが、書き込みポインタ1140及びフレーム・ビット・カウンタ1160のロジック・ブロックからpos_pattrn_fkg信号の状態と共に導出される。パターン探索FSMブロック1120からのpos_pattrn_flg信号は、データFIFOスタック1170の正のビットが全て論理1の値を有する場合論理1である。その他の場合、pos_pattrn_flg信号は論理0である。データFIFOの読み出し及び書き込み順序は、図9に示されるDSCデータ・チャネル・フロントエンド・ブロック910からのデータ・ストリームの負の位相整列に起因して適切なバイト・フレーミングを維持するため、pos_pattrn_flg信号の状態に依存して変えられる。fifo_bit_adr信号は、SSMバイト中のtrain_mode信号の不活動化でもってpos_pattrn_flg信号の状態により更新される。
【0074】
train_mode信号及びphs_adj_done信号のアサーションを用いて、パターン探索FSMブロック1120は、SSM及び訓練フェンス・パターン探索を始める。正常動作において、信号phs_adj_doneは、クロック・チャネルがその訓練シークエンスの中に入ったとき不活動状態にされ、そして一度クロック・チャネルがその訓練を完了してしまうと再び活動状態にされる。phs_adj_done信号の期間中に、パターン探索FSMブロック1120の不活動化は、SSMバイト及び訓練フェンス・パターンのその探索を中断し、そして一度phs_adj_doneがアサートされてしまうとその探索を再開する。frame_inc信号の2つの遷移後に、訓練フェンス・パターンが、検出されなかった場合、ssm_err_flg信号がアサートされる。2つのframe_inc信号遷移を待つことにより、DSCデータ・チャネル・フロントエンド・ブロック910が適正にサンプリングされるためデータ・ストリームを位相調整するに十分な時間を有することが保証される。SSM探索が、継続され、そしてssm_found_flg信号は、一度SSMパターンが検出されてしまうと、アサートされる。非訓練フェンス・パターン又は非SSMパターンがこの時間中に検出される場合、ssm_err_flg信号がアサートされて、SSM探索を終える。ssm_found_flg及びssm_err_flg信号の状態は、train_mode信号の不活動化の際に維持される。
【0075】
更に、ssm_found_flg及びssm_err_flg信号の状態は、図6に示されるDSCクロック・チャネル600に送信され、そして同様にDSCデータ・チャネル610−0,610−1,610−2,610−3…により内部で用いられる。DSCクロック・チャネル600は、これらの信号を処理し、そしてその結果を、DSCモジュール350内の全てのDSCデータ・チャネル610−0,610−1,610−2,610−3…、並びに図3に示されるバンドル内の他のDSCモジュールにブロードキャストする。DSCデータ・チャネル610の内部で、これらの信号は、図11に示されるSSM開始シークエンサ1130ロジックにより用いられ、そのSSM開始シークエンサ1130ロジックは、適正なバイト・フレーミングを設定する。
【0076】
SSM開始シークエンサ1130は、データ・バイトを適正にフレーム化するため、書き込みポインタ1140及びフレーム・ビット・カウンタ1160を整列させ且つ初期化する。この手順は、訓練シークエンス後に受信された第1のデータ・ビットがデータFIFOスタック1170の位置ゼロに書き込まれることを保証する。ssm_found_flg信号のアサーションの際に、SSM開始シークエンサ1130は、frame_strt信号を不活動状態にしながらframe_init信号をアサートする。frame_init信号がフレーム・ビット・カウンタ1160をゼロ値に強制的にして、ゼロのfifo_bit_adrベクトルを発生し、それに第1のデータ・ビットが格納される。書き込みポインタ1140及びフレーム・ビット・カウンタ1160は、SSM開始シークエンサ1130が当該フレーム・ビット・カウンタ1160を開始するためSSMバイトの終わりから2U1にframe_strt信号をアサートするまで、この初期化状態で保持される。SSM開始シークエンサ1130は、train_mode信号をSSMバイトの終わりに不活動状態にする。SSMエラーの場合には、ssm_err_flg信号が、アサートされ、そしてプロセスの一部として用いられて、データが正しくフレーム化されていないにも拘わらずDSCデータ・チャネル610がデータを出力する場合エラー・フレーム化されたデータを観測して、システムがエラー条件を診断するのを可能にする。
【0077】
fifo_bit_adrベクトルを発生するためのロジックは、書き込みポインタ1140、フレーム・ビット・カウンタ1160及びFIFOアドレス・エンコーダ1150のロジック・ブロックを備える。データFIFOスタック1170は、前述したように、「ビット毎書き込み」として実現されることが好ましく、そこにおいては、データの各ビットは、fifo_bit_adrベクトルにより示される特定のビット位置に書き込まれる。frame_adr信号及びwr_pntr_adrベクトルをFIFOアドレス・エンコーダ1150が用いて、fifo_bit_adrベクトルを発生する。フレーム・ビット・カウンタ1160は、2バイト・カウント間隔に関する大きさにされており、それは、2倍のフレームを整数個のリンク・クロック・サイクル上で整列させる。fifo_bit_adrベクトルの発生のため必要では無いにも拘わらず、書き込みポインタは、読み出しポインタと整合するような大きさにされ、それは、データFIFO状態計算に必要なロジックを低減する。FIFOアドレス・エンコーダ1150は、fifo_bit_adrベクトルを発生するためwr_pntr_adrベクトルの最下位部分(又はLSB)を用いず、従って書き込みポインタを2度増分するのを必要とする。これは、frame_inc信号をアサートして、書き込みポインタ1140値を各バイト時間間隔で増分するのをフレーム・ビット・カウンタ1160に要求する。書き込みポインタの中間増分値はfifo_bit_adrベクトルに影響を与えないが、しかしそれらは読み出し対書き込みポインタの追跡を可能にすることに注目されたい。書き込みポインタ1140及びフレーム・ビット・カウンタ1160のこのような構成は、設計の複雑さが低減された奇数符号化スキーム(例えば、8b9b)に適応する。
【0078】
DSCクロック・チャネル600は、ssm_found_flg信号及びssm_err_flg信号をDSCモジュール350内のDSCデータ・チャネル610−0,610−1,610−2,610−3…から受信する。図26に示されるように、bim_all_ssm_found_flg信号は、DSCデータ・チャネル610−0,610−1,610−2,610−3…からの全てのssm_found_flg信号の論理「AND」であり、そしてバンドル内の全てのDSCモジュール350−0,350−1…350−NにBIM360を介してブロードキャストされる前にコア・クロック・ドメインに同期化される。図26に示されるbim_ssm_err_flg信号は、DSCデータ・チャネル610−0,610−1,610−2,610−3…からの全てのssm_err_flg信号の論理「OR」であり、そしてバンドル内の全てのDSCモジュール350−0,350−1…350−NにBIM360を介してブロードキャストされる前にコア・クロック・ドメインに同期化される。バンドル内の各DSCモジュール350−0,350−1…350−Nは、ブロードキャストされた信号bim_ssm_err_flg及びbim_all_ssm_found_flgをDSCクロック・チャネル600のユーティリティ・ブロックにより受信し、そして図27に示されるように、DSCモジュール350内の全てのDSCデータ・チャネル610−0,610−1,610−2,610−3…にブロードキャストされるmod_rd_cnt_enb信号を発生する。図27に示されるmod_rd_cnt_enb信号は、図14に示されるbim_ssm_err_flg信号とbim_all_ssm_found信号との論理「OR」である。mod_rd_cnt_enb信号のアサーションは、訓練シークエンスの終わり及び正常な動作の開始にマーキングする。
【0079】
図3に示されるバンドル・インターフェース・モジュール(BIM)360は、コールド訓練シークエンス(CTS)中に次の通りに動作する。BIM360は、DSCモジュール高速(リンク速度)信号及び低速(コア速度)信号に関する相互接続経路を与える。コア速度に分類された信号は、単純にバッファされ、そしてコア・クロック・サイクルの周期内に留める(settle)よう推定される。リンク速度信号も、バッファされるが、しかし複数のリンク・クロック・サイクルの時間留まるよう要求する。従って、リンク速度信号に関して、BIM360の較正シークエンスは、リンク速度信号を適正にサンプリングし、そして同期化するよう要求される。この操作は、リンク・リセット後直ちにCTS操作中のみに実行され、そしてDSCクロック・チャネルCTSトリミング・セグメント中に完了される。BIM360の較正は、DSCモジュール350の全ての機能に対して完全にトランスペアレントである。
【0080】
拡張された訓練シークエンス(ETS)は一般的に次の通りに動作する。ETSは、コールド訓練シークエンスのトリミング工程を含むウォーム訓練シークエンス(WTS)のスーパセットである。ETS操作の目的は、リンク・リセットを開始すること無しに、クロック及びDSCデータ・チャネル610の遅延経路を整合/較正することであり、こうしてデータ損失を防止する。
【0081】
ETS操作は、送信機300の送信元ノードで開始され、SSDモジュール310は、ETS指令を全てのリンク・データ・チャネル320上を送信させる。ETS指令は、最小数の連続した指令バイト(典型的には4バイト)を有し、それは、正常なデータ・ストリームの中で見つけられない独特のパターンである。「バイト・カウント」のような他の方法もETS指令を開始するため用いられ得る。ETS指令に関してエラーと無関係の最小の長さ又はバイト・カウントは、ランダム・ビット・エラーが間違った訓練シークエンスを開始することができないことを保証するため要求される。一度開始されると、ETS操作がCTS操作に続く。
【0082】
要約すると、本発明の方法は、回路をスキュー解除するための独特の組のステップ又は手順を備える。回路を直接且つ明確にスキュー解除する一連の3つの手順が与えられている。それらのステップは、1)コールド訓練シークエンス(CTS)、2)ウォーム訓練シークエンス(WTS)、及び3)拡張された訓練シークエンス(ETS)と呼ばれる。これらのステップは、首尾良く回路をスキュー解除することが分かった。
【0083】
本発明の方法は、コールド訓練シークエンス(CTS)を含むことが好ましい。CTSのタイミング図が図24A及び図24Bに示されている。
本発明の方法はまた、ウォーム訓練シークエンス(WTS)を含む。WTSのタイミング図が図23に示されている。
【0084】
本発明の方法により与えられる訓練の終わりにより、回路がスキュー解除される。これは、回路がデータを効果的に読み出すのを可能にする。
上記部分には、好適な動的スキュー補償アーキテクチャ及び操作方法が記載されている。2つの代替アーキテクチャ及び方法を以下に記載する。
【0085】
非修正のリンク・クロックの基本的仮定を有する第1の代替アーキテクチャは、サンプリング・オフセット値がデータ・チャネル位相調整値に加えられて、適正なサンプリング点を獲得することを要求する。これを達成するため、位相測定経路及び正常なデータ経路が同一で等しい遅延を持たねばならない。従って、データ経路に存在するが位相測定経路に見つけられないそれらの経路構成要素は、遅延相殺機能を実行するため複製されねばならない。
【0086】
この第1の代替アーキテクチャには2つの主要な利点がある。第1は、直裁的な概念理解である。第2の利点は、リンク・クロックがDSCモジュール350及びバンドル全体にわたり中断無しに通されることである。
【0087】
他方、このアーキテクチャの第1の欠点は、所望の動作範囲にわたり値及び「追跡」の両方の複製エラーが全ての測定値に導入され、サンプリング・エッジの最終位置に影響を与えることである。第2の欠点は、複製されるべき経路構成要素が大きい場合、これはDSCモジュール350を実現するに要求される範囲を著しく増大するであろうことである。第3の欠点は、このアーキテクチャが製造変動、チップ長全体変動(Across Chip Length Varation)(ACLV)、即ち異なる位置に配置された同一の回路間の性能差違を導入する現象に対してより大きな感度を有することである。第4の欠点は、位相調整又はデータ経路のいずれかに含まれる複製された回路はこれらの経路の設計判定基準に適合しなければならないことである。これは、それらの回路がその特定の回路又は機能に対して通常要求されるであろうものより非常に大きい設計判定基準に適合するよう複製されることを強制する。その結果、回路面積、パワー放散及び設計努力の増大がこのアーキテクチャには必要になる。
【0088】
第2の代替アーキテクチャは、サンプリング・フリップフロップ出力の状態をモニタしながらサンプリング点を掃引することに基づいており、そしてまた非修正のリンク・クロックを仮定する。このアーキテクチャは、複製された経路構成要素の実行により導入されたタイミング・エラー、及びACLVにより導入されたタイミング効果に対処するよう設計されている。
【0089】
この第2の代替アーキテクチャには2つの主要な利点があり、第1は、イメージ・ラッチ及び複製されるロジックの排除であり、それにより必要とする面積を低減する。第2の利点は、それが直接対処しており、そしてACLVタイミング効果を補償する方法を有することである。
【0090】
他方、第1の利点は、サンプリング点の決定がサンプリング・フリップフロップの準安定点の検出に基づいていることである。更に、それは、サンプリング・フリップフロップの準安定的挙動の正確なモデル化に依存する。準安定点近くで、選択されたサンプリング点に著しく影響を与え得る挙動を考慮しなければならない。第2の欠点は、ウォーム訓練シークエンスが準安定的回復時間及びサンプリング点探索アルゴリズムに一部起因して著しく増大されることである。第3の潜在的欠点は、探索アルゴリズムを実行するに必要なロジック及び面積が著しく増大することである。しかしながら、この増大は、測定ラッチの排除により相殺され得る。
【0091】
本発明が特定程度の特殊性でもって様々な実施形態を参照して説明されたが、開示された形態及びステップの両方において多数の変形が本発明の趣旨から逸脱すること無しに行うことができることを理解すべきである。求める保護の範囲は、本発明を適切にカバーすることを意図した添付の特許請求の範囲によってのみ制限されるべきである。
【図面の簡単な説明】
【0092】
【図1】図1は、HIPPI-6400訓練プロトコルに従った既知の訓練シークエンスのタイミング図である。
【図2】図2は、従来の遅延線を有する既知のデータ・チャネル・アーキテクチャに関するブロック図である。
【図3】図3は、SSDモジュールから成る送信機バンドル・ノード、光ファイバ又はワイヤのいずれかの物理的相互接続、及び「バンドル・インターフェース・モジュール」又は(BIM)を介して相互接続されたDSCモジュールから成る受信機バンドル・ノードを有する本発明の一実施形態に従ったフル並列リンクに関するスケーラブル・アーキテクチャの高レベルブロック図である。
【図4】図4は、主要信号ポートを図示する、図3に示されるアーキテクチャに含まれるDSCバンドルの高レベルブロック図である。
【図5】図5は、複数のDSCモジュール、例えば4つのモジュールと、階層的信号を有するBIMとを備える、図4に示されるDSCバンドルの詳細なブロック図である。
【図6】図6は、4つのデータ・チャネル、クロック・チャネル、及び階層的信号を含む4チャネルDSCモジュール(DSC4)のブロック図である。
【図7】図7は、DSCモジュール内のデータ・チャネルと、BIM又はホスト・コア・ロジックのうちのいずれかとにインターフェースするため、クロック・チャネル・フロントエンド・ロジック及び回路ブロック、内蔵型自己試験(BIST)ブロック及びユーティリティ・ブロックを有する、図6に示されるDSCクロック・チャネルの詳細なブロック図である。
【図8】図8は、図7に示されるDSCクロック・チャネル・フロントエンド・ロジック及び回路と、階層的信号との詳細な機能ブロック図である。
【図9】図9は、DSCモジュール内のクロック・チャネルと、BIM又はホスト・コア・ロジックのうちのいずれかとにインターフェースするため、データ・チャネル・フロントエンド・ロジック及び回路ブロック、データFIFOブロック及びユーティリティ・ブロックを有する、図6に示される例示的DSCデータ・チャネルの詳細なブロック図である。
【図10】図10は、図9に示されるDSCデータ・チャネル・フロントエンド・ロジック及び回路と階層的信号との詳細な機能ブロック図である。
【図11】図11は、データFIFOレジスタ・ファイル、読み出しポインタ、パターン探索シークエンサ、探索ロジック、SSM開始シークエンサ・ロジック、フレーム・ビット・カウンタ、書き込みポインタ及びグルー・ロジック・ゲートを備える図9に示されるデータFIFOブロックの詳細な機能ブロック図である。
【0093】
【図12】図12Aは、例示的4モジュール信号相互接続のための図5に示されるバンドル・インターフェース・モジュール(BIM)と、リンク速度で動作する信号用論理回路との詳細なブロック図である。図12Aに示されるように、BIMは、DSCモジュール・ポート2に存在するパターン発生器を、DSCモジュールの宛先ノード、0,1,3ポートでの送信元及びバンドル・タイミング・モジュール(BTM)・マスタとして有する。パターン発生器からの信号は、バッファされ、そして信号経路長に沿った分配型再バッファリング回路を備え且つ他のモジュール・ポートに向けての相互接続金属ワイヤ上へ供給される。BTMは、DSCモジュール・ポートに関するバンドル・ロジックを駆動する。図12Bは、図12Aに示される実施形態に類似しているが、DSCモジュール・ポート3に存在するパターン発生器を備えるバンドル・インターフェース・モジュール(BIM)の代替実施形態の詳細なブロック図である。
【図13】図13Aは、コア速度で動作する信号のための4モジュール信号相互接続及び論理回路の例示的ケースに関する図5に示されるバンドル・インターフェース・モジュール(BIM)の詳細なブロック図である。図13Aに示されるように、宛先ノードは、DSCモジュール・ポート2に常駐し、そしてバンドル・ロジックは、DSCモジュール0,1,3ポートの宛先ノードに常駐する。宛先ノードからの信号は、信号経路長に沿った分配型再バッファリング回路を備え且つ他のモジュール・ポートに向けての相互接続金属ワイヤ上にバッファ駆動(buffer−drive)される。宛先ノードにおいて、信号は、DSCモジュール・ポートのためのバンドル・ロジックにより受信される。図13Bは、図13Aに示される実施形態に類似しているが、DSCモジュール・ポート3に常駐する宛先ノードを有するバンドル・インターフェース・モジュール(BIM)の代替実施形態の詳細なブロック図である。
【図14】図14は、再調時及び同期化を必要としない信号のためのBIMロジックの論理的表示のブロック図である。これらの信号は、より遅いコア・クロック周波数と関係づけられる。
【図15】図15は、バンドル・ロジックとコア・ロジックとの間のインターフェースのブロック図であり、そしてDSCバンドルとホストASICのコア・ロジックとの間の階層的インターフェース信号を図示する。
【0094】
【図16】図16は、「クロック・ストラッピング(clock−strapping)」方法を利用する分散リンク・クロック信号に関する例示的実現を示すリンク・クロック・ストラッピングのブロック図である。3のファンアウト・バッファを駆動する入力バッファから成る各DSCモジュールの「リンク端」上にDSCモジュール・クロック・ストラッピング・ストリップ・モジュールも示されている。モジュール・クロック入力バッファは、クロック信号を受信し、その信号をDSCモジュールのクロック・チャネルの中に駆動するよう機能する。リンク・クロック信号は、ファンアウト入力ピンのみに接続される。DSCモジュール0からの第1レベル・ファンアウト・リンク・クロック信号が、等しい寸法の金属セグメントを用いてDSCモジュール1及び2のファンアウト・ピング・ピンに接続される。DSCモジュール1からの第1の組の第2レベル・ファンアウト・リンク・クロック信号が、DSCモジュール1及び0のモジュール・クロック入力バッファ・ピンに接続する。DSCモジュール1からの第2の組の第2レベル・ファンアウト・リンク・クロック信号が、DSCモジュール2及び3のモジュール・クロック入力バッファ・ピンに接続する。この第2レベルのファンアウト・リンク・クロック信号のための相互接続金属は、等しい寸法である。
【図17】図17は、4つのデータ・チャネル0,i,j,kに跨るウォーム訓練シークエンス・トラフィックを示すトップレベル・スキュー範囲タイミング図である。指令検出セグメント内に含まれた4バイト(例えば、符号化スキームのための40UI及び非AC符号化されたプロトコルのための32UIのうちの最小)より大きいバイトの許容された最大スキュー範囲が図示されている。また図示されたセグメントは、クロック較正、データ・チャネル位相調整、クロック再開及びワード・フレーミング・セグメントである。システム・データが、訓練シークエンスに4つ全てのデータ・チャネル上で直ちに続く。
【図18】図18は、データ回復リンク・クロック(drc_lnk_clk)と関係付けられるデータ訓練パターン(data_train_pattern)のデータ・チャネル測定周期のタイミング図である。論理的に転置された表示の捕捉されたデータ位相イメージ・ワード(Data−Phase−Image−Word)の表示、及びデータ・イメージ・ワード(Data−Image−Word)が実際に現れる仕方も示されている。
【図19】図19は、スキュー解除回路の全体にわたり用いられるデータ回復リンク・クロック(drc_lnk_clk)の標準リンク・クロック(std_lnk_clk)に対するタイミング関係を示すタイミング図である。
【図20】図20は、訓練シークエンスの先行フェンス・パターン(preceeding fence pattern)、SSMパターンから成るSSMバイト、及びシステム・データが続くポストアンブルを示すSSMバイトに関するタイミング図である。
【0095】
【図21】図21は、SSMパターンを検出するため典型的な訓練シークエンス中に用いられるSSMパターン探索アルゴリズムの状態フロー図である。探索アルゴリズムの第1フェーズは、訓練フェンス・パターン(training fence pattern)を検出することであり、それは、2個のframe_incサイクルの待ち期間後に開始される。フェンス・パターンが検出されない場合、探索は、終了し、エラー状態に逃げ、そしてphase_error信号が設定される。フェンス・パターンが検出される場合、探索アルゴリズムは、SSMパターンの探索を開始する。フェンスもSSMパターンもframe_inc信号の1サイクルの間に検出されなかった場合SSMエラーが想定され、それは、探索アルゴリズムがssm_err_flg信号を設定するエラー状態へ出るようにさせる。SSMパターンが検出される場合、探索アルゴリズムは、フラグ信号ssm_foundをアサートする「訓練OK(Train Ok)」に逃げる。探索アルゴリズムは、信号train_modeがアサートされたままである間「訓練OK」、「位相調整エラー(Phs Adj Error)」、又は「SSMエラー(SSM Error)」状態に留まる。探索アルゴリズムは、全てのフラグ状態をセーブし且つSSM探索シークエンス・ロジックへのクロックを非活動状態にする「停止(Shutdown)」状態に出る。
【図22】図22は、ウォーム訓練及び拡張された訓練指令バイトに関して用いられる指令パターン探索アルゴリズムの状態フロー図である。この特定のアルゴリズムは、4つの連続したウォーム訓練バイト又は4つの連続した拡張された訓練バイトを探索する。それは、4つの連続した指令バイトが検出されない場合出て、且つ当該探索を初めから再開するよう設計されている。
【図23】図23は、4バイトの長さを有する訓練指令、訓練フェンス・パターン、及びシステム・データが続くSSMバイトから成るウォーム訓練シークエンス(WTS)を示すタイミング図である。リンク・クロック信号波形も示されている。
【0096】
【図24】図24Aは、リンク・クロック停止し、link_alive信号を不活性状態に強制的にすることにより開始される2つのあり得るコールド訓練シークエンス(CTS)の1つを示すタイミング図である。リンク・クロックを再開する前に、データ訓練フェンス・パターンが、データ・チャネル上を送信される。リンク・クロックを再び確立することにより、link_alive信号を少しの数のクロックにアサートさせ、その後DSCモジュールの訓練が継続するのを可能にする。訓練フェンス・パターンは、SSMバイトにより終了される。システム・データが、コールド訓練シークエンスの終わりに直ちに続く。図24Bは、リンク・クロックを停止し、link_alive信号を不活性状態に強制的にすることにより開始される第2のあり得るコールド訓練シークエンスを示すタイミング図である。リンク・クロックを再び確立することにより、信号link_aliveが少しの数のクロックにアサートされるようにし、その後DSCモジュールの訓練が継続するのを可能にする。link_alive信号をアサートする前に、データ訓練フェンス・パターンがデータ・チャネル上を送信される。訓練フェンス・パターンはSSMバイトにより終了される。システム・データが、コールド訓練シークエンスの終わりに直ちに続く。
【図25】図25は、データ・チャネル・デイジーチェーン・ゲート、FIFO制御器、及びチャネル・レジスタ制御サブブロックを示すデータ・チャネル・ユーティリティ・ブロックのトップレベル・ブロック図である。FIFO制御器は、DSCモジュール内の他のデータ・チャネルに関する状態信号とデイジーチェーン化されたFIFO状態信号my_fifo_empty_o、my_fifo_full_o、my_data_valid_o及びmy_fifo_error_oを発生する。それはまた、ブロードキャスト信号my_fifo_empty_i、bim_fifo_full_i及びbim_data_valid_iを受信し、そしてデータFIFOの読み出しポインタを制御するrd_cnt_enb信号を発生する。
【0097】
【図26】図26は、クロック・チャネル訓練検出、モジュール・レベルFIFO制御器、モジュール・レベルFIFO制御論理ブロック及びクロック検出回路を実現するためロジックを備えるクロック・チャネル・ユーティリティ・ブロックのトップレベル・ブロック図である。論理ブロックにより用いられる中間信号を発生するグルー・ロジックを表す論理ゲートも示されている。
【図27】図27は、受信されたデイジーチェーン化されたFIFO状態信号の左セグメントと右セグメントとを組み合わせて、そのDSCモジュールのFIFO状態信号を発生する論理ゲートを備えるモジュール・レベルFIFO制御ブロックのトップレベル・ブロック図である。FIFO状態信号をバンドル内の他のDSCモジュールからBIMを介して受信するモジュール・レベルFIFO制御ロジックを表すブロックも示されている。
【図28】図28は、DSCモジュールのデータ・チャネルをクロック・チャネルに相互接続するため用いられる分散型デイジーAND及びデイジーORのそれぞれのネットを表すトップレベル表示図である。クロック・チャネルのユーティリティ・ブロックにおいて終了する左及び右のセグメントの両方を有するネットワークが示されている。クロック・チャネルのユーティリティ・ブロックにおいては、同じ機能の論理ゲートが、デイジーANDネット又はデイジーORネットの左セグメントと右セグメントとを組み合わせる。
【図29】図29は、遅延トリミング・プロセス中に用いられるサブタップ遅延を決定するよう実行される修正されたバイナリ探索アルゴリズムのフロー・チャートである。
【図30】図30は、残留位相エラーをタップ遅延の1/n未満の値に低減するであろうtrim_c2d_selベクトルを決定するための修正されたバイナリ探索アルゴリズムを示す。「n」は、サブタップ遅延値の解像度を表す。
【図31】図31は、BIMに接続し且つ相互接続シグナリング・ヒエラルキーを図示する4つのDSCモジュールのバンドルを表すトップレベルのブロック図である。

Claims (20)

  1. コールド訓練シークエンスを実行することにより共通のクロック・チャネルを共用する複数の並列データ・チャネルに跨るスキューを動的に補償する方法であって、
    a.リンク・リセット署名、フェンス・パターン及び送信元同期マーカ(SSM)バイトを有する訓練シークエンスを送信元から受信機へ並列データ・チャネルを介して送るステップと、
    b.リンク・リセット署名を、最小の指定時間量の間に検出して、全てのデータ・チャネルでの検出を保証するステップと、
    c.クロック・チャネルに関して遅延経路較正を実行するステップと、
    d.リンク・スキュー補償を実行するステップと、
    e.前記フェンス・パターンに従って、前記訓練シークエンスのSSMバイトを用いてワード整列を与えるステップと
    を備える方法。
  2. 前記複数の並列データ・チャネルが拡大縮小可能である請求項1記載の方法。
  3. 前記リンク・リセット署名が、リンク・クロック信号を論理的1状態か又は論理的0状態かのいずれかで保持することにより、リンク・クロック・スイッチングを停止することにより生成される請求項1記載の方法。
  4. リンク・スキュー補償を実行する前記ステップが、
    a.共通のサブシークエンス、第2のフェンス・パターン及び第2のSSMバイトを有する第2の訓練シークエンスを送るステップと、
    b.第2のフェンス・パターンに従って、第2のSSMバイトを用いてワード整列を与えるステップと
    を備えるウォーム訓練シークエンスから成る請求項1記載の方法。
  5. システム・パワーアップ又はリセット、又は回復不能なリンク・エラーを検出するステップと、
    コールド訓練シークエンスを、システム・パワーアップ又はリセット又は回復不能なリンク・エラーの後で、入力データ・ストリームを正しくサンプリングし又はフレーム化する能力なしでコールド訓練シークエンスを開始するステップと
    を更に備える請求項1記載の方法。
  6. a.データ・チャネルがリセットされ、且つ前の訓練シークエンス中に獲得された全ての較正値がクリアされるように、リンク・リセットを生じさせるステップと、
    b.第2の訓練シークエンスを直ちに開始するステップと
    を更に備える請求項1記載の方法。
  7. ウォーム訓練シークエンスを実行することにより共通のクロック・チャネルを共用する複数の並列データ・チャネルに跨るスキューを動的に補償する方法であって、
    a.共通のシークエンス、フェンス・パターン及び送信元同期マーカ(SSM)バイトを有する訓練シークエンスを送るステップと、
    b.フェンス・パターンに従って、前記訓練シークエンスのSSMバイトを用いて、ワード整列を与えるステップと、
    c.前記共通のシークエンスに従って、複数の指令バイトを送るステップと
    を備え、それにより、複数のビット・エラーに起因して、間違った又は分割された訓練シークエンスの確率を低減する方法。
  8. クロック・チャネルの中断及びデータの損失を防止することなしに共通のクロック・チャネルを共用する複数の並列データ・チャネルに跨るスキュー補償を動的に実行する方法であって、
    a.クロック・チャネル信号のクロック周期を測定するステップと、
    b.クロック・オフセット値を決定して、各データ・チャネルからの受信されたデータを適正にサンプリングするステップと、
    c.任意のデータ・エッジを任意のクロック・エッジに対して整列させることにより前記共通のクロック・チャネルに対する全てのデータ・チャネルの位相補正を実行するステップと、
    d.データ・ビット・ゼロ位相整列を識別するステップと、
    e.書き込み位置を調整して、適正なビット順序付けを維持するステップと
    を備える方法。
  9. ディジタル・データを交換するための複数のチャネルを有する並列データ・リンクをスキュー解除するシステムであって、
    それらの間に相互接続媒体を備える送信元ノード及び宛先ノードと、
    コア・ロジックから受信された「M」ビットの入力データをフォーマット化し、且つ「M」データ・チャネルをリンク・クロックと共に前記リンク上へ駆動する、前記のリンク送信元ノードにある送信元同期ドライバ(SSD)と、
    「M」データ・ビット及びリンク・クロックを受信し、スキューを補償し、前記データのビットに関してリンク・クロック・エッジを再中心付けし、且つ「M」ビットのデータを出力する、前記のリンク宛先ノードにある動的スキュー補償(DSC)アーキテクチャ・ブロックと、を備え、
    前記のDSCブロックが、バンドル・インターフェース・モジュールと相互接続された複数のDSCモジュールから成るDSCバンドルを備え、
    前記DSCモジュールが、調整を実行して、チャネル対チャネル・スキューを補償し且つ前記リンク・クロック・エッジを前記のデータ・ビットに対して実質的に中心付けする、システム。
  10. 前記のディジタル・データ・ビットが電気エネルギのパルスとして導電性材料を介して交換される請求項9記載のシステム。
  11. 前記のディジタル・データ・ビットが光のパルスとして光ファイバを介して交換される請求項9記載のシステム。
  12. 各DSCモジュールが複数のDSCデータ・チャネル及び1つのDSCクロック・チャネルを備える請求項9記載のシステム。
  13. 前記DSCクロック・チャネルが、クロック・チャネル・フロントエンド・ブロック、内蔵型自己試験ロジック、及びユーティリティ・ブロックを備える請求項12記載のシステム。
  14. 前記クロック・チャネル・フロントエンド・ブロックが、第1の状態マシン、クロック・イメージ・ラッチ、イメージ復号ロジック、ストリング/バイナリ・エンコーダ回路、DNAロジック・ブロック、遅延線、トリム遅延回路、及びグルー・ロジックを備える請求項13記載のシステム。
  15. 各DSCデータ・チャネルが、データ・チャネル・フロントエンド・ブロック、データFIFO、及びユーティリティ・ブロックを備える請求項12記載のシステム。
  16. 前記データ・チャネル・フロントエンド・ブロックが、有限状態マシン、データ・イメージ・ラッチ、イメージ復号ロジック、ストリング/バイナリ・エンコーダ回路、DNAロジック・ブロック、遅延線、トリム遅延回路、及びグルー・ロジックを備える請求項15記載のシステム。
  17. 前記データFIFOが、パターン探索有限状態マシン、データFIFOレジスタ・ファイル、FIFOアドレス・エンコーダ、書き込みポインタ、読み出しポインタ、フレーム・ビット・カウンタ、及びスキュー同期化マーカ開始シークエンサを備える請求項15記載のシステム。
  18. 前記データFIFOレジスタ・ファイルがビット単位書き込み型FIFOである請求項17記載のシステム。
  19. 前記のDSCバンドルがコールド訓練シークエンスを実行する請求項12記載のシステム。
  20. 前記のDSCバンドルがウォーム訓練シークエンスを実行する請求項12記載のシステム。
JP2003525787A 2001-08-29 2002-08-29 並列リンクの相対的動的スキュー補償 Pending JP2005502248A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/942,377 US6907552B2 (en) 2001-08-29 2001-08-29 Relative dynamic skew compensation of parallel data lines
PCT/US2002/030298 WO2003021521A1 (en) 2001-08-29 2002-08-29 Relative dynamic skew compensation of parallel data lines

Publications (1)

Publication Number Publication Date
JP2005502248A true JP2005502248A (ja) 2005-01-20

Family

ID=25478000

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003525787A Pending JP2005502248A (ja) 2001-08-29 2002-08-29 並列リンクの相対的動的スキュー補償

Country Status (5)

Country Link
US (2) US6907552B2 (ja)
EP (1) EP1425698A4 (ja)
JP (1) JP2005502248A (ja)
IL (1) IL160518A0 (ja)
WO (1) WO2003021521A1 (ja)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3671920B2 (ja) * 2001-11-15 2005-07-13 セイコーエプソン株式会社 スキュー調整回路及びスキュー調整方法
US20030112827A1 (en) * 2001-12-13 2003-06-19 International Business Machines Corporation Method and apparatus for deskewing parallel serial data channels using asynchronous elastic buffers
US7170907B1 (en) 2002-02-15 2007-01-30 Marvell Semiconductor Israel Ltd. Dynamic alignment for data on a parallel bus
US7308004B1 (en) * 2002-03-06 2007-12-11 Redback Networks, Inc. Method and apparatus of multiplexing and demultiplexing communication signals
US7130367B1 (en) * 2002-04-09 2006-10-31 Applied Micro Circuits Corporation Digital delay lock loop for setup and hold time enhancement
US7577171B2 (en) * 2002-08-06 2009-08-18 Broadcom Corporation Source centered clock supporting quad 10 GBPS serial interface
JP4467233B2 (ja) * 2002-12-24 2010-05-26 株式会社日立製作所 位相調整装置、位相調整方法および高速並列信号用スキュー補正装置
US7237216B2 (en) * 2003-02-21 2007-06-26 Infineon Technologies Ag Clock gating approach to accommodate infrequent additional processing latencies
US7275173B2 (en) * 2003-03-26 2007-09-25 Infineon Technologies Ag Method for measuring and compensating for skews of data transmission lines by compensating for skew by delay elements switched in response to the calculated reative skew
US7240249B2 (en) * 2003-06-26 2007-07-03 International Business Machines Corporation Circuit for bit skew suppression in high speed multichannel data transmission
US7295639B1 (en) * 2003-07-18 2007-11-13 Xilinx, Inc. Distributed adaptive channel bonding control for improved tolerance of inter-channel skew
JP4291225B2 (ja) * 2004-06-30 2009-07-08 富士通株式会社 パラレルデータを受信する装置および方法
US9699102B2 (en) * 2004-08-09 2017-07-04 Arris Enterprises Llc Very high speed cable modem for increasing bandwidth
US7373539B2 (en) * 2005-01-31 2008-05-13 Freescale Semiconductor, Inc. Parallel path alignment method and apparatus
US20060222126A1 (en) * 2005-03-31 2006-10-05 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining synchronicity during signal transmission
US20060222125A1 (en) * 2005-03-31 2006-10-05 Edwards John W Jr Systems and methods for maintaining synchronicity during signal transmission
US7457978B2 (en) 2005-05-09 2008-11-25 Micron Technology, Inc. Adjustable byte lane offset for memory module to reduce skew
US7437643B2 (en) * 2005-06-21 2008-10-14 Intel Corporation Automated BIST execution scheme for a link
US7448015B2 (en) * 2006-05-19 2008-11-04 International Business Machines Corporation Method and system for unfolding/replicating logic paths to facilitate modeling of metastable value propagation
US7760836B2 (en) * 2006-08-03 2010-07-20 Avalon Microelectronics, Inc. Skew-correcting apparatus using external communications element
US7536579B2 (en) * 2006-08-03 2009-05-19 Avalon Microelectronics, Inc. Skew-correcting apparatus using iterative approach
US7546494B2 (en) * 2006-08-03 2009-06-09 Avalon Microelectronics Inc. Skew-correcting apparatus using dual loopback
US9111010B2 (en) * 2008-12-31 2015-08-18 International Business Machines Corporation Search results display for weighted multi-term searches
US8199782B2 (en) 2009-02-20 2012-06-12 Altera Canada Co. Method of multiple lane distribution (MLD) deskew
TWI410949B (zh) * 2009-10-13 2013-10-01 Himax Tech Ltd 資料驅動器與用以決定資料驅動器之最佳偏移之方法
US8582706B2 (en) * 2009-10-29 2013-11-12 National Instruments Corporation Training a data path for parallel data transfer
KR20110110904A (ko) * 2010-04-02 2011-10-10 삼성전자주식회사 송수신 시스템, 수신기 및 그것의 비대칭 보상 방법
US9251873B1 (en) 2010-05-20 2016-02-02 Kandou Labs, S.A. Methods and systems for pin-efficient memory controller interface using vector signaling codes for chip-to-chip communications
US9288082B1 (en) 2010-05-20 2016-03-15 Kandou Labs, S.A. Circuits for efficient detection of vector signaling codes for chip-to-chip communication using sums of differences
US9077386B1 (en) 2010-05-20 2015-07-07 Kandou Labs, S.A. Methods and systems for selection of unions of vector signaling codes for power and pin efficient chip-to-chip communication
US9985634B2 (en) 2010-05-20 2018-05-29 Kandou Labs, S.A. Data-driven voltage regulator
US9059850B2 (en) * 2012-03-29 2015-06-16 Broadcom Corporation Data alignment over multiple physical lanes
US11334509B2 (en) 2013-03-12 2022-05-17 Uniquify, Inc. Continuous adaptive data capture optimization for interface circuits
US8947140B2 (en) * 2013-03-12 2015-02-03 Uniquify, Inc. Continuous adaptive training for data interface timing calibration
US9544092B2 (en) * 2013-03-13 2017-01-10 Altera Corporation Apparatus for improved communication and associated methods
CN105379170B (zh) 2013-04-16 2019-06-21 康杜实验室公司 高带宽通信接口方法和系统
CN105393512B (zh) 2013-06-25 2019-06-28 康杜实验室公司 具有低接收器复杂度的向量信令
US9806761B1 (en) 2014-01-31 2017-10-31 Kandou Labs, S.A. Methods and systems for reduction of nearest-neighbor crosstalk
CN105993151B (zh) 2014-02-02 2019-06-21 康杜实验室公司 低isi比低功率芯片间通信方法和装置
KR102240544B1 (ko) 2014-02-28 2021-04-19 칸도우 랩스 에스에이 클록 임베디드 벡터 시그널링 코드
US9509437B2 (en) 2014-05-13 2016-11-29 Kandou Labs, S.A. Vector signaling code with improved noise margin
US9112550B1 (en) 2014-06-25 2015-08-18 Kandou Labs, SA Multilevel driver for high speed chip-to-chip communications
CN106797352B (zh) 2014-07-10 2020-04-07 康杜实验室公司 高信噪特性向量信令码
US9432082B2 (en) 2014-07-17 2016-08-30 Kandou Labs, S.A. Bus reversable orthogonal differential vector signaling codes
KR101943048B1 (ko) 2014-07-21 2019-01-28 칸도우 랩스 에스에이 다분기 데이터 전송
US9461862B2 (en) 2014-08-01 2016-10-04 Kandou Labs, S.A. Orthogonal differential vector signaling codes with embedded clock
US9674014B2 (en) 2014-10-22 2017-06-06 Kandou Labs, S.A. Method and apparatus for high speed chip-to-chip communications
CN113225159B (zh) 2015-06-26 2024-06-07 康杜实验室公司 高速通信系统
US10055372B2 (en) 2015-11-25 2018-08-21 Kandou Labs, S.A. Orthogonal differential vector signaling codes with embedded clock
EP3408935B1 (en) 2016-01-25 2023-09-27 Kandou Labs S.A. Voltage sampler driver with enhanced high-frequency gain
US10003454B2 (en) 2016-04-22 2018-06-19 Kandou Labs, S.A. Sampler with low input kickback
CN115051705A (zh) 2016-04-22 2022-09-13 康杜实验室公司 高性能锁相环
WO2017185070A1 (en) 2016-04-22 2017-10-26 Kandou Labs, S.A. Calibration apparatus and method for sampler with adjustable high frequency gain
CN109417521B (zh) 2016-04-28 2022-03-18 康杜实验室公司 低功率多电平驱动器
US10193716B2 (en) 2016-04-28 2019-01-29 Kandou Labs, S.A. Clock data recovery with decision feedback equalization
US10153591B2 (en) 2016-04-28 2018-12-11 Kandou Labs, S.A. Skew-resistant multi-wire channel
EP3449379B1 (en) 2016-04-28 2021-10-06 Kandou Labs S.A. Vector signaling codes for densely-routed wire groups
US10749756B2 (en) 2016-06-24 2020-08-18 Advanced Micro Devices, Inc. Channel training using a replica lane
US9906358B1 (en) 2016-08-31 2018-02-27 Kandou Labs, S.A. Lock detector for phase lock loop
US10411922B2 (en) 2016-09-16 2019-09-10 Kandou Labs, S.A. Data-driven phase detector element for phase locked loops
US10200188B2 (en) 2016-10-21 2019-02-05 Kandou Labs, S.A. Quadrature and duty cycle error correction in matrix phase lock loop
US10200218B2 (en) 2016-10-24 2019-02-05 Kandou Labs, S.A. Multi-stage sampler with increased gain
US10372665B2 (en) 2016-10-24 2019-08-06 Kandou Labs, S.A. Multiphase data receiver with distributed DFE
CN116860070A (zh) 2017-02-28 2023-10-10 康杜实验室公司 多线路时偏的测量和校正方法和装置
US10116468B1 (en) 2017-06-28 2018-10-30 Kandou Labs, S.A. Low power chip-to-chip bidirectional communications
US10686583B2 (en) * 2017-07-04 2020-06-16 Kandou Labs, S.A. Method for measuring and correcting multi-wire skew
US10203226B1 (en) 2017-08-11 2019-02-12 Kandou Labs, S.A. Phase interpolation circuit
KR102371823B1 (ko) * 2017-12-04 2022-03-07 주식회사 엘엑스세미콘 디스플레이 장치에서의 데이터송수신방법 및 디스플레이 패널구동장치
US10326623B1 (en) 2017-12-08 2019-06-18 Kandou Labs, S.A. Methods and systems for providing multi-stage distributed decision feedback equalization
US10554380B2 (en) 2018-01-26 2020-02-04 Kandou Labs, S.A. Dynamically weighted exclusive or gate having weighted output segments for phase detection and phase interpolation
US10243614B1 (en) 2018-01-26 2019-03-26 Kandou Labs, S.A. Method and system for calibrating multi-wire skew
CN110224786B (zh) * 2018-03-01 2022-05-13 京东方科技集团股份有限公司 数据传输方法、装置、系统及显示装置
US10601574B2 (en) 2018-06-11 2020-03-24 Kandou Labs, S.A. Skew detection and correction for orthogonal differential vector signaling codes
US11687471B2 (en) * 2020-03-27 2023-06-27 Sk Hynix Nand Product Solutions Corp. Solid state drive with external software execution to effect internal solid-state drive operations
CN118072693A (zh) * 2024-04-12 2024-05-24 北京数字光芯集成电路设计有限公司 一种基于相位的mipi偏斜纠正方法和系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408473A (en) * 1992-03-03 1995-04-18 Digital Equipment Corporation Method and apparatus for transmission of communication signals over two parallel channels
JP2694807B2 (ja) * 1993-12-16 1997-12-24 日本電気株式会社 データ伝送方式
US5513377A (en) * 1994-06-17 1996-04-30 International Business Machines Corporation Input-output element has self timed interface using a received clock signal to individually phase aligned bits received from a parallel bus
US5719862A (en) * 1996-05-14 1998-02-17 Pericom Semiconductor Corp. Packet-based dynamic de-skewing for network switch with local or central clock
US6031847A (en) * 1997-07-01 2000-02-29 Silicon Graphics, Inc Method and system for deskewing parallel bus channels
TW419924B (en) * 1998-02-16 2001-01-21 Nippon Telegraph & Telephone Channel-to-channel skew compensation
US6636993B1 (en) * 1999-02-12 2003-10-21 Fujitsu Limited System and method for automatic deskew across a high speed, parallel interconnection
US6920576B2 (en) * 2001-05-31 2005-07-19 Koninklijke Philips Electronics N.V. Parallel data communication having multiple sync codes

Also Published As

Publication number Publication date
WO2003021521A1 (en) 2003-03-13
EP1425698A4 (en) 2007-05-16
EP1425698A1 (en) 2004-06-09
IL160518A0 (en) 2004-07-25
US6907552B2 (en) 2005-06-14
US20030046618A1 (en) 2003-03-06
US20050229049A1 (en) 2005-10-13

Similar Documents

Publication Publication Date Title
JP2005502248A (ja) 並列リンクの相対的動的スキュー補償
US6334163B1 (en) Elastic interface apparatus and method therefor
KR100915387B1 (ko) 병렬 인터페이스의 데이터 신호와 클럭 신호 간의 스큐를보상하는 방법 및 장치
US6978403B2 (en) Deskew circuit and disk array control device using the deskew circuit, and deskew method
US20100008460A1 (en) Synchronous de-skew with programmable latency for multi-lane high speed serial interface
US20060274870A1 (en) Method for data signal transfer across different clock-domains
JPH08507668A (ja) 直列データ・バス用スキュー除去装置
JP3966511B2 (ja) 同期バス・インターフェースのための自動遅延検出およびレシーバ調節の方法およびシステム
US7139965B2 (en) Bus device that concurrently synchronizes source synchronous data while performing error detection and correction
KR20120062870A (ko) 에러 검출 기법들에 의거한 메모리 쓰기 타이밍의 조정
US5748123A (en) Decoding apparatus for Manchester code
US7243253B1 (en) Repeating switching of a cross-connect and a timing source in a network element through the use of a phase adjuster
JP4598872B2 (ja) タイミングリカバリ回路、通信ノード、ネットワークシステム、及び電子機器
US20130241751A1 (en) Providing a feedback loop in a low latency serial interconnect architecture
US7185216B1 (en) System for synchronizing first and second sections of data to opposing polarity edges of a clock
US8699550B2 (en) Phase alignment between phase-skewed clock domains
US11467620B1 (en) Architecture and methodology for tuning clock phases to minimize latency in a serial interface
US11714449B2 (en) High-speed deserializer with programmable and timing robust data slip function
JP3562416B2 (ja) Lsi間データ転送システム及びそれに用いるソースシンクロナスデータ転送方式
US6744834B1 (en) Method and apparatus for initializing a synchronizer for same frequency, phase unknown data across multiple bit-sliced interfaces
JPH08329000A (ja) 情報処理装置
WO2024086657A1 (en) Low latency pcie retimer with skew correction
JP2546137B2 (ja) パリティエラーモニタ回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070831

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071129

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080820