(57)【要約】【課題】非同期データ・ストリームの最適サンプリングを可能にする高速シグナリングのデータ・キャプチャ技法を提供すること。【解決手段】この技法を用いると、極端に高いデータ・レートが可能になり、ソース同期システムで行われている、クロックをデータと共に送ることは必要でない。本発明は、最適な２ビット同時双方向（ＳｉＢｉＤｉ）シグナリングの伝送遅延を自動的に調整するハードウェア機構も提供する。
2004531117.tif 000002
【特許請求の範囲】
【請求項１】
非同期データ・ストリームと共にクロック信号を送らない、前記データ・ストリームの最適なサンプリングおよびキャプチャを可能にするデータ・キャプチャ方法であって、
一連の遅延タップを有するクロックド遅延線に前記データ・ストリームのシリアル・データ・ビットを送ることによって前記データをキャプチャすることと、
クロックを用いて前記遅延タップのすべてをサンプリングすることと、
各遅延タップ出力と隣接する遅延タップ出力とが同一であるかどうかを判定するために、これらを比較することと、
データ・ヒストリ・レコードを生成するためにクロックド・ストリングを形成するのに前記比較を使用することと、
データが隣接する遅延タップの間で推移しない、最適データ・キャプチャ・アイとして検出されるデータ・キャプチャ・アイを探すことによって、最適データ・キャプチャ・アイを判定するために前記データ・ヒストリ・レコードを検査することと
を含む方法。
【請求項２】
変化するパラメータを補償するために前記データ・ヒストリ・レコードを周期的に更新することを含む、請求項１に記載の方法。
【請求項３】
前記データ・ヒストリ・レコードを生成するために、前記クロックド・ストリングが、前のクロックド・ストリングと組み合わせられる、請求項１に記載の方法。
【請求項４】
前記シリアル・データが、前記クロックド遅延線に入り、組み合わされた一連のインバータを介してクロッキングされ、前記組み合わされた一連のインバータのそれぞれが、遅延の増分を追加し、各インバータ出力が、ヒストリ・レジスタに向けられる、請求項１に記載の方法。
【請求項５】
各インバータ出力が、偶数ヒストリ・レジスタおよび奇数ヒストリ・レジスタに向けられ、論理がクロック・レートの２倍で前記シリアル・データをキャプチャできるようにするために、前記偶数ヒストリ・レジスタが、前記クロックの正エッジによってクロッキングされ、前記奇数ヒストリ・レジスタが、前記クロックの負エッジによってクロッキングされ、前記偶数ヒストリ・レジスタが、正クロック・フェーズの偶数データ・キャプチャ・アイを検出するのに使用され、前記奇数ヒストリ・レジスタが、負クロック・フェーズの奇数データ・キャプチャ・アイを検出するのに使用される、請求項４に記載の方法。
【請求項６】
偶数アイ・マルチプレクサが、前記偶数ヒストリ・レジスタの出力のすべてを受け取り、奇数アイ・マルチプレクサが、前記奇数ヒストリ・レジスタの出力のすべてを受け取る、請求項５に記載の方法。
【請求項７】
前記ヒストリ・レジスタが、第１クロック・レートでクロッキングされる第１ヒストリ・レジスタと、前記第１ヒストリ・レジスタの出力を直列に受け取り、第２クロック・レートでクロッキングされる、直列に配置された第２データ・ヒストリ・アイ・レジスタ、第３データ・ヒストリ・アイ・レジスタ、および第４データ・ヒストリ・アイ・レジスタとを含む、請求項４に記載の方法。
【請求項８】
前記クロックド遅延線が、各インバータの前記出力にある遅延線レジスタを含み、
各遅延線レジスタの出力が、前記クロックド遅延線内の次の遅延線レジスタからの入力も受け取る排他的論理和ゲートＸＯＲに向けられ、前記データ・ビットが、次の遅延線レジスタに入る前に次の遅延線インバータによって反転されるので、前記データ・ビットが、連続するステージの間で推移をこうむらない場合に、各レジスタおよび次のレジスタが、反対の値を保持し、前記ＸＯＲゲートが、１を作り、連続するステージの間でデータ推移がないことが示され、逆に、前記データ・ビットが、連続するステージの間で推移をこうむる場合に、各レジスタおよび次のレジスタが、同一の値を保持し、各ステージのＸＯＲゲートが、０を作り、連続するステージの間でデータ推移があったことが示される、請求項４に記載の方法。
【請求項９】
各ＸＯＲゲートの出力が、ＡＮＤゲートに入力され、前記ＡＮＤゲートの出力が、第１ヒストリ・レジスタに入力され、前記第１ヒストリ・レジスタが、一連の４つのヒストリ・レジスタの第１のレジスタであり、前記第１ヒストリ・レジスタが、第１クロック・レートでサンプリングされ、ハイにリセットされ、第２ヒストリ、第３ヒストリ、および第４ヒストリが、より高い第２クロック・レートでサンプリングされ、更新される、請求項８に記載の方法。
【請求項１０】
偶数データ・アイのリーディング・エッジおよびエンディング・エッジの検索のために、前記偶数ヒストリ・レジスタを介して増分的に検索することによって前記偶数データ・アイを検索することを含み、前記奇数アイの検索が、前記偶数アイの検出された中央で開始され、その後、第２データ・アイのリーディング・エッジおよびエンディング・エッジに関する検索が開始される、請求項５に記載の方法。
【請求項１１】
第１ステージで、前記ヒストリ・レジスタが、周期的にリセットされ、フラッシュされ、新しいヒストリ・レコードが、獲得され、その後に、最良データ・アイが、前記クロックのフェーズごとに独立に判定され、最良データ・アイが、データ・ビットを送り、キャプチャするのに使用され、前記データ・ビットが、次のステージのすべてのシステム・クロックに転送され、
第２ステージで、前記転送されたデータ・ビットが、シフト・レジスタに挿入され、前記シフト・レジスタが、正しく位置合せされたデータ・ビットを選択し、渡すために、バレル・シフタと共に使用される、請求項５に記載の方法。
【請求項１２】
データ・サンプリング・アイが、常に更新され、再位置合せされており、前記更新および再位置合わせが、既存の偶数データ・サンプリング・アイおよび奇数データ・サンプリング・アイから開始され、次に、左右のアイ・エッジを判定するために、既存のアイの左右を調べ、次に、前記偶数アイおよび前記奇数アイの中央をその左右のエッジの間で再位置合せする、請求項５に記載の方法。
【請求項１３】
前記ＸＯＲゲートの出力が、各出力が０であり、アイの外のデータ推移が示されるか、各出力が１であり、おそらくはアイの内部のデータ推移がないことが示されるのいずれであるかを判定するために、次々にサンプリングされ、１時に１つずつ検査され、シーケンシャル・サンプリングおよび検査が、前記シフト・レジスタの各遅延タップ出力について次々に繰り返される、請求項８に記載の方法。
【請求項１４】
前記遅延タップ出力が、前記クロックの正エッジによってクロッキングされる第１回路によって、および前記クロックの負エッジによってクロッキングされる第２回路によって、サンプリングされ、偶数データ・キャプチャ・アイが、前記正クロック・フェーズについて検出され、奇数データ・キャプチャ・アイが、前記偶数アイの前記検出と独立に、前記負クロック・フェーズについて検出される、請求項１に記載の方法。
【請求項１５】
通信線を介する同時双方向シグナリングの信号品質を改善するために、２つのノードの間で最適な同時双方向（ＳｉＢｉＤｉ）シグナリングのために伝送遅延を自動的に調整する機構であって、セットアップ・シーケンス中に、前記２つのノードが前記セットアップ・シーケンス中にパラメータ設定データをより正確に交換できるようにするために、前記パラメータ設定データが、前記通信線を介する単一方向通信で送られ、これによって、前記単一方向通信が、前記パラメータ設定データをより正確に交換するためによりよい信号品質を有する、機構。
【請求項１６】
前記セットアップ・シーケンス中に、データが、ＳｉＢｉＤｉシグナリング中より低速のデータ・レートで送られ、１：ｎの比が使用され、「１」または「０」がｎビット時間だけ保持される、請求項１５に記載の機構。
【請求項１７】
各ノードが、最小遅延または０遅延からｎステップの最大遅延までの範囲のｎ個の異なる遅延の可能性を有し、したがって、遅延の可能な組合せの数が、ｎ×ｎであり、その結果、ｎ×ｎ個の組合せが、最適遅延組合せを選択するためにテストされ、前記機構が、１時に１つずつ、ｎ×ｎ個の組合せのすべてをサイクルする、請求項１５に記載の機構。
【請求項１８】
１つの差動データ線が、前記２つのノードに接続され、各ノードが、１ビット送信側ＣＰＵおよび１ビット・キャプチャＣＰＵを用いて動作する、請求項１５に記載の機構。
【請求項１９】
２つの差動データ線が、２つの同一のノードに接続され、各ノードが、２ビット送信側ＣＰＵおよび２ビット・キャプチャＣＰＵを用いて動作する、請求項１５に記載の機構。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的には高速シグナリングのデータ・キャプチャ技法に関し、具体的には、非同期データ・ストリームの最適サンプリングを可能にする技法に関する。この技法を用いると、極端に高いデータ・レートが可能になり、ソース同期システムで行われている、クロックをデータと共に送ることは必要でない。
【０００２】
本発明は、最適な２ビット同時双方向（ＳｉＢｉＤｉ、SimultaneousBi-Directional）シグナリングの伝送遅延を自動的に調整するハードウェア機構も提供する。
【背景技術】
【０００３】
重要な計算の大きいクラスを、大量並列（massively parallel）コンピュータ・システムによって実行することができる。そのようなシステムは、多数の同一の計算ノードからなり、各計算ノードは、通常は、１つまたは複数のＣＰＵ、メモリ、およびそのノードを他のノードに接続する１つまたは複数のネットワーク・インターフェースからなる。
【０００４】
大量並列スーパーコンピュータに関する、２００１年２月２４日出願の関連出願である米国仮出願番号６０／２７１，１２４に記載のコンピュータでは、システムオンアチップ（ＳＯＣ、system-on-a-chip）技術を活用して、高いスループットを有する、スケーラブルでコスト効率のよいコンピューティング・システムが作成される。ＳＯＣ技術によって、集積された第１レベル・キャッシュを伴うＣＰＵコアを含む組込み構成要素のライブラリを使用して、単一のチップ上でマルチプロセッサ・ノード全体を作ることが可能になった。そのようなパッケージ化によって、ノードの構成要素カウントが大きく減り、信頼性がある大スケール計算機の作成が可能になる。
【０００５】
本発明は、たとえば生命科学の分野のアプリケーションなどのさまざまなアプリケーションに使用される大量並列コンピュータの分野に関する。具体的には、本発明は、高速シグナリングの分野に関し、単一方向シグナリングまたは同時双方向（ＳｉＢｉＤｉ）シグナリングのいずれかに関する。
【０００６】
大量のデータ転送が必要であるが、使用できるワイヤの数が限られている場合がある。同時双方向（ＳｉＢｉＤｉ）シグナリングを用いると、同一のワイヤを使用して送出と受取を同時に行うことができる。これによって、ワイヤの数が半分に減る。大量のデータ転送が必要であるが、ケーブルの数が厳しく制限される場合の例が、ワイヤを介して通信する数千個のプロセッサを有する大型並列スーパー・コンピュータである。
【０００７】
ＳｉＢｉＤｉシグナリングは、データを受け取るのと同一のワイヤでデータを送ることによって動作する。したがって、受取中に、ワイヤの他端から送られた所望のデータだけではなく、送出したばかりのデータも受け取られる。もちろん、これによって、所望の信号が崩れる。しかし、送られたばかりのデータがわかっているので、「それを減算する」ことができる。これは、標準ＳｉＢｉＤｉ回路によって行われる。
【特許文献１】
米国仮出願番号６０／２７１，１２４
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、本発明の主目的は、高速シグナリングに関するデータ・キャプチャ技法を提供すること、特に、データ・ストリームと共にクロック信号を送らない、非同期データ・ストリームの最適なサンプリングおよびキャプチャを可能にすることである。
【課題を解決するための手段】
【０００９】
上記課題を解決するにあたり、データは、一連の遅延タップを有するクロックド遅延線（clockeddelay line）にデータ・ストリームのシリアル・ビットを送り、クロックを用いて遅延タップのすべてをサンプリングすることによってキャプチャされる。各遅延タップ出力を、隣接遅延タップ出力と比較して、同一であるかどうかを判定し、この比較を使用して、クロックド・ストリングを形成して、データ・ヒストリ・レコードを生成し、このデータ・ヒストリ・レコードを検査して、データが隣接する遅延タップの間で推移しない、最適データ・キャプチャ・アイとして検出されるデータ・キャプチャ・アイを探すことによって、最適データ・キャプチャ・アイを判定する。
【００１０】
本発明のもう１つの目的は、２ビットＳｉＢｉＤｉシグナリングの信号品質を改善するための、最適な２ビットＳｉＢｉＤｉシグナリングの伝送遅延を自動的に調整するハードウェア機構を提供することである。特殊なハードウェア・アルゴリズムが、実施され、２つのノードのハードウェア・アルゴリズムによってセットアップ・シーケンス中に設定パラメータを安全に交換できるようにするために、２ビットのそれぞれが、単一方向チャネルで使用される。同一周波数の単一方向チャネルは、ＳｉＢｉＤｉチャネルの半分の帯域幅を有するが、かなり良い信号品質を有する。
【００１１】
高速シグナリングのデータ・キャプチャ技法に関する本発明の前述の目的および利点は、添付図面と共に以下の本発明の実施形態の詳細な説明を参照することによって、当業者が簡単に理解することができる。添付図面では、類似する要素が、複数の図面を通じて同一の符号によって指定される。
【発明を実施するための最良の形態】
【００１２】
概要
本発明は、コンピュータ業界の長年にわたる２つの問題すなわち、（１）クロック・サイクル単位で測定される、プロセッサとメモリの間の距離の増加、および（２）主流の単一プロセッサまたは対称型マルチプロセッサから作られる並列コンピュータの高い電力密度を解決する、大量並列スーパーコンピュータ内の相互接続を実施するのに使用されるように設計されている。
【００１３】
本発明は、全般的には、高速シグナリングのデータ・キャプチャ技法に関し、具体的には、非同期データ・ストリームの最適サンプリングを可能にする技法に関する。この技法を用いると、極端に高いデータ・レートが可能になり、ソース同期システムで行われている、クロックをデータと共に送ることは必要でない。
【００１４】
シリアル・リンクの調査
大量並列スーパーコンピュータのノードを接続するシリアル・リンクの目標帯域幅は、１．４Ｇｂ／ｓ（各方向）である。この帯域幅は、両方向でなければならない。両方向要件は、複数の形で処理することができる。どの場合も、低電力であり低コストであるという制約が共通する。選り抜きの実施形態が、処理ノード内のＡＳＩＣに集積される。この手法に関連する特定の課題が、低電力制約である。これが、リンク伝送に関する相対位相情報の欠如と組み合わされて、標準ＰＬＬクロック設計およびデータ回復設計が排除される。この場合には、位相を、ＰＬＬを使用せずに、データ自体から高い信頼性で抽出しなければならない。
【００１５】
ディジタル・データ・キャプチャ
概要
本明細書で、ディジタル・データ・キャプチャ技法を詳細に説明する。図１に、２Ｇビット・レートのシリアル・データをキャプチャでき、ローカル・クロック・ドメインに移すことができるデータ受取マクロを示す。目標は、少数のセルを使用して低電力で信頼性のある形でこれを行うことである。図２に、データ受け取りマクロよりかなり単純な送出マクロ・ブロックを示す。これは、本明細書の第２セクションで説明する。これによって、ビット時間の半分の周波数である内部クロックを可能にするＤＤＲ（ダブル・データ・レート）スタイルのデータ回復を説明する。これは、望まれる場合に、ＳＤＲ（シングル・データ・レート）モードで使用するか、クワッド・データ・レート・スキームに拡張することができる。
【００１６】
図１に戻って、データ受取マクロに入力されるデータは、２Ｇｂ／ｓ入力シリアル・データの２つのデータ・ストリームであり、これは、４Ｇｂ／ｓの総データ・ストリームを表し、データ出力は、５００ＭＨｚのバイト幅（８ビット幅）の１つのデータ・ストリームである。他の入力信号は、１ＧＨｚクロック、データ・キャプチャ・マクロを既知の状態にリセットするリセット信号、データを回復するために最適アイ（データが推移せず、したがって、データ・エラーを有する可能性が最も低い、最も正確なデータ・キャプチャ位置である可能性が高い、複数タップ遅延線に沿った位置またはステージ（図３、４、および５参照））を見つけるようにマクロに指示するトレーン信号、データが受け取られていない時にマクロによって受け取られる所定のアイドル・データ・パターンであるアイドル・バイト信号、ダブル・データ・レート・モードで動作するようにマクロに指示するＤＤＲモード、および最適データまたは最適アイドル・アイを見つけるための制約パラメータである最小距離である。他の出力信号には、アイドル・パターンの有効な受け取りを示す有効アイドル信号、最適アイの位置およびパラメータが検出されていることを示すＥｙｅ＿ｆｏｕｎｄ信号、最適アイ位置がロックされたことを示すＬｏｃｋｅｄ信号、最適アイ位置が、複数タップ・ディジタル遅延線の一端に近すぎることによって、失われる危険性があることを示す警告信号が含まれる。
【００１７】
図１のマクロを、図３、４、５、６、７、８、および９に関してさらに説明する。
【００１８】
受け取りマクロの待ち時間は、データのバイト・フェーズに応じて、７と１２の間のビット時間である。バイト出力をスキップすることによって、待ち時間を５から６ビット時間まで短縮することができる。これは、データ内容を無視できる信号再駆動に適度な手法である。
【００１９】
図２は、５００ＭＨｚで１バイト幅のデータ入力を受け取り、２つのデータ・ストリームのデータ出力を作る、データ送出マクロ・ブロックを示す図である。２つのデータ・ストリームのデータ出力は、それぞれが２Ｇｂ／ｓシリアル・データであり、下で説明される単一方向またはＳｉＢｉＤｉ（同時双方向）の差動データ・リンクを介して送出され、図１のデータ・キャプチャ・マクロに入力されるデータになる。さらなる入力が、バイト有効信号であり、これは、有効なデータ信号が受け取られつつあることを示し、アイドル信号ではなくこの信号が送られ、さらなる入力が、１ＧＨｚクロック信号と、データ送出マクロを既知の状態にリセットするリセット信号である。
【００２０】
図３、４、および５に、データの受け取りおよびキャプチャを示す。データは、高速タップ付き遅延線（図３、４、および５参照）にデータ・ビットを送り、ローカル・クロックを用いてすべてのタップをサンプリングすることによってキャプチャされる。各タップをその隣と比較して（図３および５参照）、同一であるかどうかを調べる。これらの比較の集団が、クロックド・ストリング（clocked string）を形成し、このクロックド・ストリングが、前のクロックド・ストリングと組み合わされて、最適サンプリング点の判定に使用することができるヒストリが生成される。最適サンプリング点は、データが遅延タップの間で変化しない領域（本明細書では「アイ」と称する）を探すことによって、ヒストリ・ストリングから見つけることができる（図５、レジスタＡ、Ｂ、Ｃ、およびＤ参照）。ヒストリは、ローカル・クロックごとなど、周期的に更新される。周期的更新によって、異なる構成要素の温度または周波数の変化など、変化するパラメータについて補償することができる。低い頻度で更新される３つの追加の「アイ」パイプライン式レジスタがある（図５、レジスタＢ、Ｃ、およびＤ参照）。これによって、プログラム可能な永続性期間を有すると同時に、分離されたビット・エラーに対して免疫性の、キャプチャ方式を開発できるようになる。永続性時間は、任意の長さに設定することができるが、信頼性のある形でデータ・エッジをサンプリングするのに必要な最大時間より短くしてはならない。ローカル・クロック期間より高速のビット・サンプル時間に対応するために、クロックの両方のエッジが、ＤＤＲデータのキャプチャに使用される（図３および４参照）。クロックの各エッジは、最適なアイを見つけるために、それ自体の関連するキャプチャ・レジスタおよび独立の論理を有する。したがって、この技法は、ローカル・クロックおよび送出側クロックのデューティ・サイクルの非対称性に対して十分に免疫性である。
【００２１】
ヒストリ・レジスタが変化する際に、最適サンプリング点も移動する。この更新は、永続性時間より短い時間スケールで行われなければならない。この機能は、ヒストグラムおよびサンプリング点判定ユニットで行われる。
【００２２】
このデータ・キャプチャの方法には、システム・リセットまたは別々の「トレーン」信号のアサートのいずれかの後に進行する２ステージの初期化が含まれる。
・ステージ１：リセットまたは「トレーン」信号（図１および２参照）の後に、ヒストリ・レジスタがフラッシュされ、新しいヒストリ・パターンが、３つの「アイ」レジスタに獲得される。「アイ」レジスタの有効な組を獲得した後に、最良のサンプリング点が、状態機械シーケンス（図１１および１２参照）を介して判定される。これは、クロックのフェーズごとに独立に行われる。これらのサンプリング点が、使用され、２ビットが、すべてのシステム・クロックの際に次のステージに転送される。
・ステージ２：２ビットが、受け取られ、シフト・レジスタに挿入され、このシフト・レジスタが、適当なニブル（１／２バイトまたは４ビット）境界を可能にするためにバレル・シフタと共に使用される（図９参照）。境界は、初期化シーケンス中の一意のアイドル・ニブル・パターンの使用を介して発見される。
【００２３】
クロックド遅延線ブロック：
図４および５に、シリアル・データが左側のインバータＩに入り、組み合わされた一連のインバータを通過する（インバータのそれぞれが、遅延の増分を追加する）クロックド遅延線の実施形態を示す。各インバータ出力には、２つのレジスタ・ラッチＦＦ（図３から５）があり、一方のＦＦは、クロックの正エッジによってクロッキングされ、他方のＦＦは、負エッジによってクロッキングされる。これによって、この論理が、クロック・レートの２倍でデータをキャプチャできるようになる。ラッチの一方のバンクが、正クロック・フェーズのデータ・アイをキャプチャし、ラッチの他方のバンクが、負クロック・フェーズのデータ・アイをキャプチャする。両方のアイが、別々に検出され、サンプリングされ、図５に示されているように、各クロック・フェーズで別々の回路が必要になる。独立の正負のクロックド論理回路は、クロック信号のデューティ・サイクル、特にローカルと送出側のクロックのデューティ・サイクルの非対称性に対する非常に小さい依存性をもたらす。
【００２４】
このモジュールは、その入力として、入力レシーバの後の高速信号を有する。このモジュールへの唯一の他の入力は、すべてのフリップ・フロップに同じ回数だけファン・アウトされるローカル・クロックである。このモジュールの唯一の出力は、Ｎ＋１個のクロックド遅延タップＤ［０：Ｎ］である。各タップは、立ち上がりエッジと立ち下がりエッジの間の比較的よい一致を伴い、約５０ｐｓである。立ち下がり遅延と立ち上がり遅延の間に必要な一致は、約２０から３０％である。クロックが、すべての隣接するラッチに〜１０ｐｓ以内で等しい時間である必要がある。これは、クロック・ツリーよりもタップ付きクロック線によってよりよく達成される可能性がある。多数のこれらのデータ・キャプチャ回路が実施される可能性があり、したがって、電力がクリティカルである。
【００２５】
このモジュールは、レイアウトにクリティカルであり、したがって、余分なレイアウト考慮事項を必要とする。テスト・チップの目的に関して、要素の数を３２個に固定する。これによって、約１．６ｎｓｅｃの公称総遅延が与えられるが、これは、約１Ｇｂ／ｓまでの周波数でＤＤＲデータをキャプチャするのに十分である。
【００２６】
図３および５、特に図５を参照すると、各レジスタＦＦ（フリップ・フロップ）の出力は、排他的論理和ゲートＸＯＲに向けられ、このＸＯＲは、遅延線の次のレジスタＦＦからの入力も受け取る。遅延線の第１ステージおよび第２ステージを参照すると、データ・ビットが、第２レジスタＦＦに入る前に第２インバータによって反転されるので、データ・ビットが、２つの連続するステージの間で推移をこうむらない場合に、第１レジスタおよび第２レジスタが、反対の値を保持し、第１ステージＸＯＲが、１を作り、このステージの間に推移がないことが示される。逆に、データ・ビットが、２つの連続するステージの間に推移をこうむる場合に、第１レジスタおよび第２レジスタが、同一の値を保持し、第１ステージＸＯＲが、０を作り、このステージの間に推移があったことが示される。
【００２７】
図５のシステムは、データが推移をこうむらない、クロックド遅延線に沿った、データを検出するのに安定した位置またはアイを探しており、この位置またはアイは、一連の連続したＸＯＲからの一連の１の出力によって示され、データ検出アイが、一連の１の中央に位置合せされなければならない。各ＸＯＲの出力は、ＡＮＤゲートに入力され、このＡＮＤゲートの出力は、レジスタＡに入力され、レジスタＡは、一連のＦＦ（フリップ・フロップ）ヒストリ・レジスタＡ、Ｂ、Ｃ、およびＤの最初のレジスタである。最初のレジスタＡは、最大の１Ｇｈｚクロック・レートでサンプリングされ、比較的遅いクロック・レート、たとえば１ミリ秒より長いレートのＳｅｔ  ｔｏ  ｈｉｇｈ信号によって周期的にハイにリセットされるが、レジスタＢ、Ｃ、およびＤは、Ｓｅｔ  ｔｏ  ｈｉｇｈと同一のクロック論理レートでサンプリングされ、更新される。
【００２８】
レジスタＡは、＞１ｍｓクロック・レートのクロックによってハイ１出力にセットまたはリセットされ、リセットの後に、ＸＯＲの出力が１である場合に、ＡＮＤゲートの出力が１であり、レジスタＡの出力は１であり、これは、その後、レジスタＢ、Ｃ、およびＤを介して直列にクロッキングされる（レジスタＢ、Ｃ、およびＤのロード（ｌｄ）入力への更新信号によって）。逆に、ＸＯＲの出力が０であり、レジスタＡの出力が１にセットまたはリセットされる場合に、ＡＮＤゲートの出力は０であり、レジスタＡは０を出力し、これが、その後、レジスタＢ、Ｃ、およびＤを介して直列にクロッキングされる。この配置は、レジスタＡの出力が０になったならば、レジスタＡがＳｅｔ  ｔｏ  ｈｉｇｈ信号によってリセットされるまで０のままになり、レジスタＢ、Ｃ、およびＤのそれぞれの出力が、直列に０にクロッキングされ、レジスタＡがＳｅｔ  ｔｏ  ｈｉｇｈ信号によって１にリセットされるまで０のままになるようになっている。
【００２９】
ヒストリ・レジスタＢ、Ｃ、およびＤのそれぞれの出力は、３中２論理要素に入力され、この３中２論理要素は、３つの入力のいずれか２つが１である場合に１またはハイ（Ｈ）出力を作る。３中２論理の目的は、ディジタル遅延線を介するデータ・ストリーム内のグリッチ（これによって、３つの入力のうちの１つが誤って０にされる可能性がある）を補償し、データ・グリッチがあっても正確な出力を作ることである。さらに、３中２論理検出の発生を、カウントし、受け取られるデータの保全性の表示として報告することができる。Ｈ出力（０からＮ−１まで）は、図に示されているように、図８のＭＵＸへの入力である。一般に、Ｈ出力の１のストリングによって、１のストリングの中央にセンタリングされなければならないデータ・サンプリング・アイのよい候補が示される。
【００３０】
図３に、インステージ（instage）２ビット・マクロ・ブロックを示すが、そのほとんどは、図５に関して説明した。ヒストグラムおよびサンプリング点判定ユニットには、ＡＮＤゲートと、図５のヒストリ・レジスタおよび３中２論理と、図８のＭＵＸと、図１１および１２の状態図が含まれる。このマクロ・ブロックには、ＭＵＸも含まれ、このＭＵＸは、入力としてディジタル遅延線のＦＦレジスタの出力のすべてを受け取り、図５の最下部の信号Ｈ［０］、Ｈ［１］、およびＨ［Ｎ−１］の制御の下でＤａｔａ  ｏｕｔとしてこれらの入力を選択的に通過させる。
【００３１】
ヒストリ・ブロック：
図５に、ヒストリ論理ブロックを示すが、このヒストリ論理ブロックによって、クロック遅延線ブロックの延長が示され、１クロック・フェーズが示される。同一の回路が、他のクロック・フェーズに必要である。図５に示されたインバータ・ストリングは、両方のクロック・フェーズに共通する。
【００３２】
サンプリング点ブロック：
サンプリング点ブロックは、クロック・フェーズごとに１つの、２つの最適サンプリング点を判定する状態図によって最も簡単に説明される。サンプリング点は、頻繁に更新されない（更新の間に少なくとも５０クロック）ので、複数クロック処理を使用して、最適なサンプリング点を見つけることができる。
【００３３】
図６および７に、データおよびヒストリ・サンプルＭＵＸを示す。このサンプリングＭＵＸは、それぞれＤ＿ｅｖｅｎ［Ｎ：０］およびＤ＿ｏｄｄ［Ｎ：０］という入力を有し、この入力のそれぞれが、図３の最下部に示されたＭＵＸに対応し、リーディング・エッジ・クロック・フェーズおよび立ち下がりエッジ・クロック・フェーズのそれぞれについて１つずつある。図８のＭＵＸは、前に説明したように、図５の最下部の出力信号を受け取る。
【００３４】
２つの２ビット・マクロの組合せ
図９に、シリアル・ビット組合せおよびバイト位置合わせ論理を示す。このシリアル・ビット組合せおよびバイト位置合わせ論理は、クロック・サイクルごとに４データ・ビットをキャプチャできる対にされたリンクとして使用され、２つの２ビット・マクロ（図３に図示）を組み合わせ、２つの入力データ・ストリームの間の正しいバイト位置合わせを見つけ、２つの入力データ・ストリームは、それぞれ２Ｇｈｚであり、２つの２ビット・マクロ７０（図３に図示）に入力される。２つの入力信号は、正しいバイト位置合わせで組み合わされる、図１の入力信号とみなすことができる。図３の２つの２ビット・マクロの出力は、それぞれ１Ｇｈｚの２つのデータ・ストリームであり、これが、レジスタ７１に入力され、レジスタ７１は、２つのデータ・ストリームを遅延させ、標準化し、このデータ・ストリームが、１２ビット・シフト・レジスタ７２に入力され、シフト・レジスタ７２は、半分の速度Ｃｌｋ／２でクロッキングされ、２つのデータ・ストリームを、５００Ｍｈｚの１２ビット幅データ・ストリームに変換する。これらは、論理７３およびバレル・シフタ７４に入力され、バレル・シフタ７４は、２つの１２ビット幅データ・ストリームの２４ビット入力を有し、本質的に、論理７３の制御下で２４ビットのうちの正しく位置合せされた８ビットを選択して、バレル・レジスタの正しいビット・シフトを判定する。論理７３では、既知のトレーニング・パターンを使用して、２つの４ビット幅出力を作り、この２つの４ビット幅出力によって、バレル・シフタを制御する。論理７３は、本質的に、ソフトウェア制御の下で、バレル・シフタの正しいビット・シフトがわかるまで、クロックド遅延線を介して同一の既知のデータ・トレーニング・パターンを再送信し続ける。バレル・シフタは、論理の制御下で、２４ビット入力のうちの最善の８つの正しく位置合せされた８ビットを選択的に選択して、Ｂｙｔｅ  ｏｕｔｐｕｔとして渡す。
【００３５】
状態図：
アイ検出のフロー
図１０に、アイ検出流れ図でアイ検出処理の全般的な流れを示すが、この図は、リセット８０から開始され、ここで、システムが既知の値に初期化され、これにブロック８１が続き、ブロック８１では、十分な数のデータ推移を待って、アイのきれいな判定を保証する。ブロック８２で、偶数アイ・ヒストリ・レジスタ内の１および０を調べて、立ち上がりエッジ・クロックド・データに対応する偶数アイを判定し、クロックド遅延線を介する最小の遅延を有する最初のアイを選択する。ブロック８３で、奇数アイに関して同一のことを行い、奇数アイ・ヒストリ・レジスタの１および０を調べて、立ち下がりエッジ・クロックド・データに対応する奇数アイを判定し、クロックド遅延線を介する最小の遅延を有する奇数アイを選択する。
【００３６】
遅延線に沿った異なる位置に対応する複数の異なる偶数フェーズ・アイおよび奇数フェーズ・アイが存在する可能性があり、したがって、最小遅延のアイを検出した後に、この流れ図は、ブロック８４からブロック８２に再循環して、次に大きい遅延を有するアイの次の対を見つけ、対応する偶数フェーズ・アイおよび奇数フェーズ・アイについて遅延線の長さ全体が検査されるまで、論理制御はブロック８２への再循環を継続する。ブロック８４で、各次に検出されたアイ対を、最良の前に検出されたアイ対と比較し、最良のアイ対を保持し、候補アイ対のすべての最良のアイ対を選択するようにするが、この機能は、図９の論理７３によって実行される。
【００３７】
この点で、論理７３は、ブロック８５で、ビットの既知のシーケンスなどの既知のトレーニング・パターンである「位置合わせ」パケットを待って、この時点で未知のバイト境界を確立する。位置合わせトレーニング・パターンによって、図９の論理７３によってバイト境界を確立した後に、これも論理７３に対応するブロック８６で、バレル・シフタへの位置合わせ入力をセットして、Ｂｙｔｅ  ｏｕｔとして正しく位置合せされた８ビットを選択し、渡すようにバレル・シフタ７４を位置合せし、論理７３は、ｌｏｃｋｅｄ出力信号も作る。バレル・シフタは、通常のデータの受取中に、Ｂｙｔｅ  ｏｕｔとして８つの正しく位置合せされたビットを渡す準備ができる。
【００３８】
ブロック８７は、データ・サンプリング・アイが常時更新されていることを示す。好ましい再位置合わせは、既存の偶数データ・サンプリング・アイおよび奇数データ・サンプリング・アイから開始され、既存のアイの左右を調べて、アイの左右のエッジを判定し、図１１に関して説明するように、偶数フェーズ・アイと奇数フェーズ・アイの中央をその左右のエッジの間に再位置合せする。
【００３９】
トレーニング・アイ検出の状態図
図１１に、その間にアイ位置サンプル点が決定されるフェーズの状態フローを示す、２つの２ビット・マクロ状態図１／２を示す。この状態フローは、概して図１０のブロック８２および８３に対応する。
【００４０】
図１１では、図５の最下部の出力に対応する、図８のＭＵＸへのＨ［Ｎ−１：０］入力が、次々にサンプリングされ、１時に１つずつ、図８のＭＵＸの渡される出力Ｈｓａｍｐとして検査される。最初のビットＨ［０］は、アイの外のデータ推移を示す０、またはおそらくはアイの中のデータ推移なしを示す１のいずれかであるが、図１１のステップのシーケンスで検査され、図１１では、０はＳａｍｐ（サンプル）＝０として示され、１はＳａｍｐ＝１として示されている。最初のビットＨ［０］を、図１１のステップＳ０からＳＵＭＭＡＲＹのすべてを介して検査した後に、第２のビットＨ［１］が、同一のステップのシーケンスを介して検査され、最後のビットＨ［Ｎ−１］が検査されるまで、同様に検査される。
【００４１】
図１１の２ビット・マクロ状態図１／２の状態は、次の通りである：
・Ｓ０は、リセット状態である。リセットがアクティブである間は、制御はここに留まる。
・Ｓ１は、初期化状態である。リセットが解放された後に、更新カウンタが満了するまで、制御はここに留まり、その後、ｓａｍｐ＝０（図５の検査されるタップが、０を作り、したがって、アイの中ではないことを示す）の場合にはＳ２、ｓａｍｐ＝１（検査れるタップの出力が、１であり、おそらくはアイの一部である）の場合にはＳ３に進む。
状態Ｓ２からＳ３．５では、アイ遅延線ヒストリを増分的に検索することによって偶数アイを検索し、このアイは、立ち上がりクロック・エッジ・クロックド・データに対応する。
・Ｓ２では、アイ遅延線ヒストリを左から右に増分することによって偶数アイ（ｓａｍｐ＝１）を検索する。Ｓ２では、偶数アイの左端を見つける。見つかる場合または遅延線の右端に出会う場合には、状態Ｓ３に進み、そうでない場合にはＳ２に留まる。
・Ｓ３では、偶数アイの右端を検索し、やはりｓａｍｐ＝０を見つけるまで右に検索する。ｓａｍｐ＝１は、アイの中なので、ｓａｍｐ＝１である間は、制御はＳ３に留まる。ｓａｍｐ＝０が見つかる時には、制御は、いくつかの場合に制御が正しく働くのに必要な遅延状態であるＳ３．５に移る。
・Ｓ３．５は、即座にＳ４に推移する。
状態Ｓ４からＳ１３では、立ち下がりクロック・エッジ・クロックド・データに対応する奇数アイを検索する。奇数アイの検索は、偶数アイの検出された中央から開始され、偶数アイの検索より複雑である。
・Ｓ４は、偶数アイの検索から始まる。通常モードでは、奇数アイｓａｍｐ＝０の場合に、Ｓ７に進み、そうでない場合はｓａｍｐ＝１であり、Ｓ５に進む。ｓａｍｐ＝０は、奇数アイが奇数遅延線ヒストリで偶数アイと位置合せされていないことを意味し、通常の戦略は、左右を検索して最も近い奇数アイを選択することである。２つの代替モードがある。右検索では制御がＳ１３に移り、左検索では制御がＳ１２に移る。
・Ｓ５は、奇数アイが偶数アイと位置合せされ、初期サンプル点がすでに偶数アイの中であることを意味する。したがって、この状態では、奇数アイの左端または遅延線の左端を見つけるまで、サンプル・ポインタ（データ点を選択するのに使用される）を減分することによって、初期サンプル点から左に検索する。その後、制御はＳ６に移る。
・Ｓ６では、奇数アイの右端を探して右に検索する。それが見つかるか、遅延線の右端が見つかった時に、制御はＳＵＭＭＡＲＹ状態に移るが、このＳＵＭＭＡＲＹ状態は、ステップＳ１３の後の検索の終りの状態であり、データ・サンプル・ポインタは、偶数アイおよび奇数アイの通常処理のためにセットされている。
・Ｓ７は、奇数アイが、偶数アイと位置合せされておらず、初期サンプル点が、アイの外の雑音区域にあることを意味する。この状態では、サンプル・ポインタを減分することによって、左側へ、一致する奇数アイを検索する。ｓａｍｐ＝１の時には、奇数アイの右端が見つかっており、これをＭＡＸ（右端レジスタ）に記憶し、制御はＳ８に移る。そうでない場合には、遅延線の左端に達しており、左奇数アイが見つからず、この場合にはＳ１１に進む。
・Ｓ８は、位置合せされない右奇数アイを検索することが意図されている。Ｓ８では、ｓａｍｐ＝０である間、ｓａｍｐ＝１になるまで検索を継続し、ｓａｍｐ＝１は、右奇数アイの左端が見つかったことを示し、これがＭＩＮ（左端レジスタ）に記憶され、制御はＳ９に進む。ｓａｍｐ＝１を見つける前に遅延線の右端に達する場合には、右アイがなく、したがって、制御はＳ１０の左アイ処理に直接に進む。
・Ｓ９では、偶数アイからのＭＩＮ距離およびＭＡＸ距離が比較される。ＭＩＮが近い場合には、制御はＳ６に移る。ＭＡＸが近い場合には、制御はＳ１０に移る。
・Ｓ１０では、奇数アイの左端を検索する。ｓａｍｐ＝１である間は、制御はＳ１０に留まる。ｓａｍｐ＝０または遅延線の左端に達した時に、制御はＳＵＭＭＡＲＹに移る。
・Ｓ１１では、左奇数アイがない時に、位置合せされない右奇数アイを検索する。ｓａｍｐ＝０である間は、制御はＳ１１に留まる。ｓａｍｐ＝１の時に、制御はＳ６に進む。ｓａｍｐ＝１を見つける前に遅延線の右端に達した場合には、奇数アイがない。これは、エラー状態であり、このエラー状態は、検出され、警告インジケータによって示される。
・Ｓ１２では、遅延線の偶数アイの左の位置合せされない奇数アイを検索する。ｓａｍｐ＝０である間は、制御はＳ１２に留まり、ｓａｍｐ＝１の時に、制御はＳ１０に進む。ｓａｍｐ＝１を見つける前に遅延線の左端が見つかった場合には、左アイが存在せず、制御は、Ｓ１３からＳ１２に来たのでない場合にはＳ１３での右検索を選び、Ｓ１３から来た場合には奇数アイがない。これは、検出され、警告インジケータによって示されるエラー状態であり、制御はＳＵＭＭＡＲＹに進む。
・Ｓ１３では、遅延線の偶数アイの右の位置合せされない奇数アイを検索する。ｓａｍｐ＝０である間は、制御はＳ１３に留まり、ｓａｍｐ＝１の時にＳ６に進む。ｓａｍｐ＝１を見つける前に遅延線の右端に達した場合には、右アイが存在せず、制御は、Ｓ１２からＳ１３に来たのでない場合にはＳ１２での左検索を選び、Ｓ１２から来た場合には奇数アイがない。これは、検出され、警告インジケータによって示されるエラー状態であり、制御はＳＵＭＭＡＲＹに進む。
・ＳＵＭＭＡＲＹは、アイ・データ・サンプリング点が、通常動作のために固定された状態である。
【００４２】
アイ・サンプル点の再位置合わせを伴う、通常動作の状態図
図１２に、通常データ・キャプチャ動作中の反復状態フローを示す、２ビット・マクロ状態図２／２を示す。このフェーズでは、論理が、シリアル・データをキャプチャし、バイト並列フォーマットに変換する。
【００４３】
図１２に、通常データ・キャプチャ実行状態を示す。制御は、通常は、ＲＵＮ０に留まる。クロック・カウンタによって決定される周期で、ｄｏｎｅ  ｕｐｄａｔｅ信号によって、制御をＲＵＮ１に進められるようになる。状態ＲＵＮ１およびＲＵＮ２では、偶数アイの両端まで増分し、減分するが、これが変更されている場合がある。新しい限界が、記憶される。同様に、ＲＵＮ３およびＲＵＮ４では、奇数アイの両端まで増分し、減分し、限界を記憶する。状態ＲＵＮ５では、ＲＵＮ１からＲＵＮ４の発見を使用して、新しいデータ・サンプリング点を計算し、これが使用されるようになる。その後、制御は、別の更新期間のためにＲＵＮ０に戻る。
【００４４】
ＳｉＢｉＤｉ
本発明は、最適２ビット同時双方向ＳｉＢｉＤｉシグナリングに関して伝送遅延を自動的に調整するハードウェア機構も提供する。
【００４５】
送信された信号のＳｉＢｉＤｉ（同時双方向）入出力セル「減算」は、減算される必要がある信号が、所望の受信信号が変化しない時に変化する場合に、より成功する。これは、適当な量（クロック・サイクルのある分数）だけ伝送を遅延させることによって達成することができる。しかし、一端で伝送を遅延させることは、データが、他端に遅れて達することを意味する。他端の回路は、その伝送遅延を再調整し、その結果、それ自体の「減算」が最適になるようにしなければならない。したがって、ワイヤの両端のそれぞれの回路ごとに１つの、遅延設定の組を見つけ、その結果、「減算」によって両端で同等に良い品質の結果が与えられるようにする必要がある。
【００４６】
さらに、これを達成するために、両端が、他端での伝送遅延の選択のそれぞれに関するローカル減算の品質に間する情報を交換する必要がある。しかし、この情報は、最適化されつつあるものと同一のシグナリング伝送技法を使用して交換することができない。遅延設定が悪い場合に、それによって、それがどれほど悪いかを記述する、送られるデータが破壊される可能性がある。本発明では、最適２ビットＳｉＢｉＤｉシグナリングの伝送遅延を自動的に調整するハードウェア機構を説明する。
【００４７】
図１３に、２つの差動データ線によって、同一のノード１および２の対が接続され、各ノードが、一意のＩＤを有し、各ノードが、２ビット送信側ＣＰＵおよび２ビット・キャプチャＣＰＵを用いて動作する、第１の実施形態を示す。
【００４８】
この方法では、「安全な通信」セットアップ・フェーズを使用して、伝送遅延の各組の結果を通信する。２ビット送信側／キャプチャ・ユニットは、入出力セルに関する単一方向設定（伝送が、雑音を最小化するために１方向のみである）と、ユニットの１ビット部分の一方だけを使用することによって、安全な通信に使用される。
【００４９】
図１３に、ノードの対の間の電気接続を示し、２つの異なる差動データ線（それぞれが、差動シグナリングを可能にするために２つのワイヤからなる）を示す。矢印は、安全な通信のセットアップ・フェーズ中の単一方向信号の方向を示す。そのフェーズ以外では、電気接続は、通常通信中は両方向である。
【００５０】
Ｓｅｌ  ＡおよびＳｅｌ  Ｂの箱は、ＭＵＸであり、Ｓｅｌ＝０によって、２ビット送信側ユニットからの上側のパスおよび２ビット・キャプチャ・ユニットへの上側のパスが選択され、Ｓｅｌ＝１によって、下側のパスが選択される。
【００５１】
ＲＥＡＤＹレジスタ（図示せず）に０をセットする
１）入出力セルＡ＝単一方向送信器モード。
入出力セルＢ＝単一方向受信器モード。
Ｓｅｌ  Ａ＝１（上側のパスを選択）。
Ｓｅｌ  Ｂ＝１（上側のパスを選択）。
２）送信側遅延モードを０遅延にセットする。
３）トレーニングを開始する。これは、よいデータ・キャプチャ・アイの発見および検出について上で説明されたものである。
４）よいデータ・キャプチャ・アイの中央で、安全な単一方向セットアップ・フェーズ通信のアイ・パラメータを保存する。
５）ＩＤの第１ビットを送信する。この実施形態では、ノード１および２のそれぞれの一意のＩＤによって、どのノードがマスタであり、どのノードがスレーブであるかが決定され、より大きいＩＤが、自動的にマスタ・ノードになる。
他のノードのＩＤの第１ビットを受け取るまで待つ。
第１ＩＤビットをキャプチャする。
等しい場合には、繰り返す。
ローカルが、隣より小さい場合には、ＰＲＩＯＲＩＴＹ＝０をセットする
ローカルが、隣より大きい場合には、ＰＲＩＯＲＩＴＹ＝１をセットする
６）入出力セルＡ＝ＳｉＢｉＤｉモード。
入出力セルＢ＝ＳｉＢｉＤｉモード。
Ｓｅｌ  Ａ＝０
Ｓｅｌ  Ｂ＝０
７）送信側遅延モード＝０
トレーニングを開始する。
アイを探す。
ローカル・アイ・パラメータを保管する。
８）ステップ１）の安全モードに進む。
９）ローカル・アイ・パラメータを他方のノードに送る。
他方のノードのアイ・パラメータを受け取る。
１０）パラメータを比較し、最小値を保管する。
１１）現在の最小アイ・パラメータを、前の最小アイ・パラメータと比較し、この２つの最大値を、最大値のローカル送信側遅延モードと一緒に保管する。このモードは、最適モードであると考えられ、ＯＰＴ＿ＳＥＮＤＥＲ＿ＭＯＤＥと指定される。
【００５２】
この第１の実施形態では、８タップ遅延線が仮定され、その結果、各ノードは、０遅延から８ステップの最大遅延までの範囲の８つの異なる遅延の可能性を有し、その結果、可能な組合せの数が、８×８＝６４になる。言い換えると、１つのノードの８つの遅延のそれぞれについて、第２のノードで８つの可能な遅延がある。したがって、６４個の可能な組合せをテストして、最適な組合せを選択しなければならない。ステップ１２では、１時に１つずつ、６４個の組合せのすべてをサイクルする。
【００５３】
ステップ６）に戻り、下記の送信側遅延モード・シーケンスを使用して、合計６４回繰り返す。
ＰＲＩＯＲＩＴＹ＝０の場合には、隣が先にモードを変更する。ローカル・シーケンスは次の通りである：
０を８ステップ
１を８ステップ
２を８ステップ
３を８ステップ
４を８ステップ
５を８ステップ
６を８ステップ
７を８ステップ
ＰＲＩＯＲＩＴＹ＝１の場合には、ローカル・シーケンスは次の通りである。
０を１ステップ
１を１ステップ
２を１ステップ
３を１ステップ
４を１ステップ
５を１ステップ
６を１ステップ
７を１ステップ
８回繰り返す
１）送信側遅延モード＝ＯＰＴ＿ＳＥＮＤＥＲ＿ＭＯＤＥで６）のＳｉＢｉＤｉ動作に進む。
２）ＲＥＡＤＹレジスタを１にセットして、システムが最適化され、通常のＳｉＢｉＤｉ通信の準備ができていることを示す。
【００５４】
いずれかのステップで、障害があり、その結果、ステップ１４に達しない場合には、ノードに障害が発生している。障害を発生したノードは、ＲＥＡＤＹレジスタの内容によって識別することができる。
【００５５】
図１４に、第１の実施形態との1つの相違が、単一の差動通信線によってノードが接続されることである、２つのノード、ノード１およびノード２の間のＳｉＢｉＤｉ電気通信の第２の実施形態を示す。第２の相違は、この実施形態が、図１３の実施形態のように２ビット・データではなく、１ビット・データを用いて動作することである。もう１つの相違は、この実施形態で、マスタ・ノードおよびスレーブ・ノードが、割り当てられたＩＤに基づくのではなく、制御ソフトウェアによって指定されることである。この実施形態では、図１３の８タップ遅延線ではなく、１６タップ遅延線が仮定される。
【００５６】
概要：
初期位置合わせ手順（Initial Alignment Procedure、ＩＡＰ）は、各ポートの各同期式信号が、最適伝送遅延線設定（アウトステージに関して）が判定されるステップのシーケンスである。米国仮出願番号６０／２７１，１２４に記載の大量並列スーパーコンピュータでは、各ノードが６つの隣接ノードに接続される、３次元トーラスとして接続される３２×３２×６４個のノードを有する大量並列コンピュータが記述される。各ノードが、６つのポートを有し、ポートごとに２０個の同期式信号があり、スーパーコンピュータのノードのノード・コンピュータ・チップ上の１２０個の同期式信号のすべて（６ポート×２０同期式信号／ポート）が、この個々のトレーニングを独立に実行することができる。すべてが、並列に行われるか、１時に１つずつ行われる（すべてがソフトウェア制御下である）。トレーニングは、ＳｉＢｉＤｉリンクの両方の方向で同時に行われ、これによって、必要なＩＳＩ（シンボル間干渉）および近端雑音（環境雑音を伴う）が考慮される。図１４を参照すると、ＩＡＰシーケンスの高水準フローは次の通りである：
１．ソフトウェア処置：各ノード・コンピュータ・チップのＩＡＰ制御レジスタに書き込むことによって、同期式リンクの片側を「マスタ」、反対側を「スレーブ」として識別する。
２．ハードウェア処置：マスタ側（図１４のサイドＡ）が、スレーブ側（図１４のサイドＢ）と通信して、トレーニングを開始する。これは、多少複雑である。というのは、リンクを完全にトレーニングする前に、リンクを介して情報を通信しなければならないからである（下の「トレーニングされていないリンクを介する通信」を参照されたい）。
３．ハードウェア処置：個々のリンクの両側が、状態機械（図１５から１８に図示）を有し、この状態機械は、可能なすべての遅延線設定を調べ、結果を比較して、最適な遅延線設定を見つける。片側での遅延設定の変更は、両側のアイに影響するので、システムは、１６×１６個のすべての組合せを調べる必要がある（注：アウトステージ（データ送信）遅延線は、前に説明したように１６個の設定を有する）。遅延線トレーニングのループのそれぞれについて、インステージ（データ・キャプチャ）マクロは、他方から擬似乱数データを受け取り、アイを探し、アイ・サイズ情報を分析のために提示する。
４．ソフトウェア処置：ＩＡＰ状況レジスタを読み取って、トレーニングの成功／失敗を判定する。達成された正確な遅延線設定およびアイ・サイズ・マージンは、ソフトウェア・アクセス可能である、他のリンク固有状況レジスタを介して読み取ることができる。
【００５７】
リンク・トレーニング・シーケンス：
図１５から１８の状態機械によって、同期式Ｓｉ−Ｂｉ−Ｄｉ接続のトレーニングでノード計算チップによって行われるステップが示される。リンクの両側で、下記のレジスタが使用される：
ＤＴＲ  −  遅延タップ・レジスタ  −  アウトステージの遅延線を制御する（有効な設定は０から１５まで）。２つの追加の「作業用」コピーすなわち、Ｍｓｔ−ＤＴＲおよびＳｌｖ−ＤＴＲが、ＩＡＰシーケンス中に使用される。
ＬＢＤＴＲ  −  ローカル最良遅延タップ・レジスタ  −  トレーニング中にこれまでに見られた最良のアイ・サイズに対応するＤＴＲ値を保持する。トレーニングの終りに、ＬＢＤＴＲの内容が、ＤＴＲに永久的にロードされる。
ＭＢＥＳＲ  −  相互最良アイ・サイズ・レジスタ  −  トレーニング中にこれまでに見られた最良のアイ・サイズを保持する（トレーニングの所与のステップに関するサイドＡおよびサイドＢのアイ・サイズの最小値に基づく）。
【００５８】
非常に雑音の多い環境をシミュレートするために雑音を人工的に追加し、より多くの垂直電圧マージン（アイのサイズに関連する）を保証する形として、リンク・トレーニング・シーケンス中に雑音ジェネレータ・マクロを使用可能にすることができる。ソフトウェアは、ＩＡＰ制御レジスタの「スタート」ビットに書き込むことによってＩＡＰシーケンスを開始し、マスタ（サイドＡ）またはスレーブ（サイドＢ）としてチップを識別する。
【００５９】
トレーニングされていないリンクを介する通信
リンクを完全にトレーニングする前に、リンクの両側の間で通信を実行する必要がある。可能な最も信頼性があるデータ転送を保証するために、下記の手順を使用する：
１）データは、一時に１方向だけで送られる。
２）データは、より低速のデータ・レートで送られる。１：８の比率を使用することができる（すなわち、８ビット時間の間「１」または「０」を保持する）。
トレーニングの前に、リンクの両側は、予測可能な位相関係を有しない。したがって、片側が、「１１００１１」を送り、サンプル点が、スイッチング・データと並ぶ場合に、データが、「１１１０１１」または「１０００１１」などとして受け取られる場合がある。送信レートは、連続するサンプルにまたがって安定したデータを検出するのに十分に遅くしなければならず、ビット・ストリーム内の０→１または１→０の推移中に発生する可能性がある誤サンプリングによって混乱させられてはならない。
【００６０】
マスタとスレーブの間で送られる「コマンド」の前に、１の長いストリングとそれに続く８つの０が置かれる。コマンドは、．．．多数の１、８つの０、８ビット時間のコマンドの第１ビット、８ビット時間のコマンドの第２ビット、．．．、８ビット時間のコマンドの最後のビットとして現れる。受信側は、１→０推移を検出し、８ビット時間ウィンドウの中央を推定する（実際には、これが、８ビット時間ウィンドウの第３ビット、第４ビット、または第５ビットである可能性があるが、これらのすべてが安定し、有効でなければならない）。その後、すべての８ビットをサンプリングして、コマンド／情報を復号する。
【００６１】
図１５から１８を参照すると、すべてのコマンドが、大文字で示され、図１７および１８のブロック内の「同一物」は、図１５および１６と同一のまたは対応するブロックを示す。
【００６２】
図１５および１６を参照すると、この図はマスタ側であるが、ステージ（０）で、Ｓｔａｒｔソフトウェア・コマンドを待ち、その後、レジスタＤＴＲ、ＬＢＤＴＲ、およびＭＢＥＳＲをリセットする。ステージ（１）で、マスタは、スレーブからＢＥＧＩＮコマンドを受け取るのを待ち、受け取らない場合には、スレーブにＢＥＧＩＮを送り、スレーブからのＢＥＧＩＮ応答を受け取るのを待つ。受け取らない場合には、マスタが、待ち、スレーブにＢＥＧＩＮを再送出する。マスタが、別のマスタからＢＥＧＩＮを受け取る場合には、打ち切る。
ステージ（４）で、Ｙｅｓの場合に、マスタは、ＴＲＡＩＮコマンドを送り、マスタが同期化を開始しようとしていることを示し、一時停止する。
ステージ（５）で、マスタは、ランダム・データ・ビット・ストリームを送って、アイのキャプチャを可能にする。
ステージ（６）で、マスタは、アイのキャプチャを待ち、アイ・サイズなどの各アイに関する情報を評価する。
ステージ（７）で、マスタは、アイ・サイズに関するデータを受け取るのを待ち、受け取らない場合には、待ち（たとえば１μ秒）、アイ・サイズに関するデータを送り、もう一度、アイ・サイズに関するデータを受け取るのを待つ。受け取った時に、マスタは、ＭＢＥＳＲレジスタおよびＬＢＤＴＲレジスタを更新し、Ｍｓｔ−ＤＴＲを増分し、ラップ（カウンタ・オーバーフロー）の場合には、Ｓｌｖ−ＤＴＲレジスタを増分し、２５６個の組合せのすべてについてステージ（４）から（９）を繰り返す。
そうである場合には、ステージ（１０）で、マスタが、ＥＮＤコマンドを送って、アイ・トレーニングを終了する。
ステージ（１１）で、マスタは、スレーブからＥＮＤコマンドを受け取るのを待つ。
そうである場合には、ステージ（１２）で、マスタが、ＤＴＲにＬＢＤＴＲレジスタをロードし、インステージをリセットし、これがセットアップ・ノードになる。
ステージ（１３）で、最適アイ・パラメータを使用して、ランダム・データを送る。
ステージ（１２）および（１３）では、最適アイ・パラメータを使用してデータを送り、その後、最適アイ・パラメータを、再評価し、成功の場合にはその場でロックする。
ステージ（１４）で、マスタが、リセット・グリッチ信号をアサートして、リセットし、データ・キャプチャを再評価し、最小アイ・サイズ・データに対してアイ・サイズを検査し、ＩＡＰ状況レジスタを更新する。
図１７および１８のスレーブ側の動作は、マスタ側の上の説明から明白である。
【００６３】
高速シグナリングのデータ・キャプチャ技法に関する本発明の複数の実施形態および変形形態を、本明細書で詳細に説明したが、本発明の開示および教示によって、当業者に多数の代替設計が提案されることは明白である。
【図面の簡単な説明】
【００６４】
【図１】２Ｇビット・レートのシリアル・データをキャプチャでき、ローカル・クロック・ドメインに移すことができるデータ受取マクロを示す図である。
【図２】５００ＭＨｚで１バイト幅のデータ入力を受け取り、それぞれが２Ｇｂ／ｓシリアル・データであり、ＳｉＢｉＤｉ（同時双方向）差動データ・リンクを介して送出され、図１のデータ・キャプチャ・マクロに入力されるデータになる２データ・ストリームのデータ出力を作る、データ送出マクロ・ブロックを示す図である。
【図３】インステージ２ビット・マクロ・ブロックを示す図である。
【図４】シリアル・データが、それぞれが遅延の増分を追加する組み合わされた一連のインバータを通る、クロックド遅延線の実施形態を示す図である。
【図５】クロック遅延線の延長を示し、１クロック・フェーズを示す、ヒストリ論理ブロックを示す図である。
【図６】それぞれが図３の最下部に示されたＭＵＸに対応する、リーディング・エッジ・クロック・フェーズおよび立ち下がりエッジ・クロック・フェーズごとに１つの、データおよびヒストリ・サンプルＭＵＸを示す図である。
【図７】それぞれが図３の最下部に示されたＭＵＸに対応する、リーディング・エッジ・クロック・フェーズおよび立ち下がりエッジ・クロック・フェーズごとに１つの、データおよびヒストリ・サンプルＭＵＸを示す図である。
【図８】図５の最下部で出力信号を受け取るＭＵＸを示す図である。
【図９】クロック・サイクルごとに４データ・ビットをキャプチャできる対にされたリンクとして使用され、２つの２ビット・マクロ（図３）を組み合わせ、２つの入力データ・ストリームの間の正しいバイト位置合わせを見つける、シリアル・ビット組合せおよびバイト位置合わせ論理を示す図である。
【図１０】アイ検出流れ図でアイ検出処理を示す図である。
【図１１】その間にアイ位置サンプル点が決定されるフェーズの状態フローを示す、２ビット・マクロ状態図１／２を示す図である。
【図１２】通常データ・キャプチャ動作中の反復状態フローを示す、２ビット・マクロ状態図２／２を示す図である。
【図１３】２つの差動データ線によって、同一のノード１および２の対が接続され、各ノードが、一意のＩＤを有し、各ノードが、２ビット送信側ＣＰＵおよび２ビット・キャプチャＣＰＵを用いて動作する、第１の実施形態を示す図である。
【図１４】単一の差動通信線によってノードが接続される、２つのノード、ノード１およびノード２の間のＳｉＢｉＤｉ電気通信の第２の実施形態を示す図である。
【図１５】同期Ｓｉ−Ｂｉ−Ｄｉ接続のトレーニングでノード計算チップによって行われるステップを示す状態機械を示す図である。
【図１６】同期Ｓｉ−Ｂｉ−Ｄｉ接続のトレーニングでノード計算チップによって行われるステップを示す状態機械を示す図である。
【図１７】同期Ｓｉ−Ｂｉ−Ｄｉ接続のトレーニングでノード計算チップによって行われるステップを示す状態機械を示す図である。
【図１８】同期Ｓｉ−Ｂｉ−Ｄｉ接続のトレーニングでノード計算チップによって行われるステップを示す状態機械を示す図である。
【図１】
2004531117.tif 000003
【図２】
2004531117.tif 000004
【図３】
2004531117.tif 000005
【図４】
2004531117.tif 000006
【図５】
2004531117.tif 000007
【図６】
2004531117.tif 000008
【図７】
2004531117.tif 000009
【図８】
2004531117.tif 000010
【図９】
2004531117.tif 000011
【図１０】
2004531117.tif 000012
【図１１】
2004531117.tif 000013
【図１２】
2004531117.tif 000014
【図１３】
2004531117.tif 000015
【図１４】
2004531117.tif 000016
【図１５】
2004531117.tif 000017
【図１６】
2004531117.tif 000018
【図１７】
2004531117.tif 000019
【図１８】
2004531117.tif 000020
【国際公開パンフレット】
2004531117.tif 000021
2004531117.tif 000022
2004531117.tif 000023
2004531117.tif 000024
2004531117.tif 000025
2004531117.tif 000026
2004531117.tif 000027
2004531117.tif 000028
2004531117.tif 000029
2004531117.tif 000030
2004531117.tif 000031
2004531117.tif 000032
2004531117.tif 000033
2004531117.tif 000034
2004531117.tif 000035
2004531117.tif 000036
2004531117.tif 000037
2004531117.tif 000038
2004531117.tif 000039
2004531117.tif 000040
2004531117.tif 000041
2004531117.tif 000042
2004531117.tif 000043
2004531117.tif 000044
2004531117.tif 000045
2004531117.tif 000046
2004531117.tif 000047
2004531117.tif 000048
2004531117.tif 000049
2004531117.tif 000050
2004531117.tif 000051
2004531117.tif 000052
2004531117.tif 000053
2004531117.tif 000054
2004531117.tif 000055
2004531117.tif 000056
2004531117.tif 000057
2004531117.tif 000058
2004531117.tif 000059
2004531117.tif 000060
2004531117.tif 000061
【国際調査報告】
2004531117.tif 000062
2004531117.tif 000063