(57)【要約】レプリカレーンでトレーニングシーケンスを利用するシステム、装置及び方法が説明される。送信機は、複数のレーンを有する通信チャネルを介して受信機に接続されている。１つのレーンは、温度変動、電源変動、又は、他の要因に起因する、最適なサンプリングポイントのドリフトを追跡するのに使用されるレプリカレーンである。データがデータレーンで送信される間、テストパターンがレプリカレーンで送信され、レプリカレーンの最適なサンプリングポイントが以前のテスト以来ドリフトしているかどうかが判別される。最適なサンプリングポイントがレプリカレーンに対してドリフトしている場合、レプリカレーンのサンプリングポイントと、データレーンのサンプリングポイントと、に対して調整が行われる。【選択図】図６
2019525507.tif 000002
【特許請求の範囲】
【請求項１】
受信機と、
複数のレーンを有する通信チャネルを介して前記受信機に接続された送信機と、
を備えるシステムであって、
前記チャネルの第１レーンでテストパターンを送信し、
前記チャネルの第２レーンで第１データを送信するのと同時に、前記第１レーンで前記テストパターンを送信し、
前記第１レーンのサンプリングポイントがミスアライメントであると判別したことに応じて、前記第１レーンのサンプリングポイントに対して第１調整を実行し、前記チャネルの前記第２レーンのサンプリングポイントに対して前記第１調整を実行する、
ように構成されている、
システム。
【請求項２】
前記第１レーン及び前記第２レーンの両方を同時にトレーニングすることに応じて、前記第１レーンのサンプリングポイントと、前記第２レーンのサンプリングポイントと、を設定するように構成されている、
請求項１のシステム。
【請求項３】
前記第１レーンは、システムデータの送信に利用されない、
請求項１のシステム。
【請求項４】
前記受信機は、
前記第１レーンで前記テストパターンを受信するのと同時に、前記第２レーンで前記第１データを受信し、
前記テストパターンにおいてエラーが検出されたかどうかを示すエラー表示を、前記第１レーンを介して前記送信機に伝える、
ように構成されている、
請求項１のシステム。
【請求項５】
前記送信機は、前記第１レーンで前記エラー表示を受信したことに応じて、エラーが検出されたことを前記エラー表示が示す場合に、前記第１レーンのサンプリングポイントに対して前記第１調整を行うために、前記第１レーンの遅延設定を変更するように構成されている、
請求項４のシステム。
【請求項６】
前記送信機は、前記第１レーンで前記エラー表示を受信したことに応じて、エラーが検出されたことを前記エラー表示が示す場合に、前記第２レーンのサンプリングポイントに対して前記第１調整を行うために、前記第２レーンの遅延設定を変更するように構成されており、
前記第２レーンのサンプリングポイントに対する前記第１調整は、前記第１レーンのサンプリングポイントに対する前記第１調整に相当する、
請求項４のシステム。
【請求項７】
前記第２レーンのサンプリングポイントに対する前記第１調整は、前記第２レーンでテストパターンを送信することなく行われる、
請求項６のシステム。
【請求項８】
受信機と、
送信機と、
レプリカレーンと、少なくとも１つのデータレーンと、を含む通信チャネルと、
を備える装置であって、
前記送信機は、
前記レプリカレーンでテストパターンを送信し、
前記チャネルのデータレーンで第１データを送信するのと同時に、前記レプリカレーンで前記テストパターンを送信し、
前記レプリカレーンのサンプリングポイントがミスアライメントであると判別したことに応じて、前記レプリカレーンのサンプリングポイントに対して第１調整を実行し、前記チャネルのデータレーンのサンプリングポイントに対して前記第１調整を実行する、
ように構成されている、
装置。
【請求項９】
前記レプリカレーン及び前記データレーンの両方を同時にトレーニングすることに応じて、前記レプリカレーンのサンプリングポイントと、前記データレーンのサンプリングポイントと、を設定するように構成されている、
請求項８の装置。
【請求項１０】
前記レプリカレーンは、システムデータの送信に利用されない、
請求項８の装置。
【請求項１１】
前記受信機は、
前記レプリカレーンで前記テストパターンを受信するのと同時に、前記データレーンで前記第１データを受信し、
前記テストパターンにおいてエラーが検出されたかどうかを示すエラー表示を、前記レプリカレーンを介して前記送信機に伝える、
ように構成されている、
請求項８の装置。
【請求項１２】
前記送信機は、前記レプリカレーンで前記エラー表示を受信したことに応じて、エラーが検出されたことを前記エラー表示が示す場合に、前記レプリカレーンのサンプリングポイントに対して前記第１調整を行うために、前記レプリカレーンの遅延設定を変更するように構成されている、
請求項１１の装置。
【請求項１３】
前記送信機は、前記レプリカレーンで前記エラー表示を受信したことに応じて、エラーが検出されたことを前記エラー表示が示す場合に、前記データレーンのサンプリングポイントに対して前記第１調整を行うために、前記データレーンの遅延設定を変更するように構成されており、
前記データレーンのサンプリングポイントに対する前記第１調整は、前記レプリカレーンのサンプリングポイントに対する前記第１調整に相当する、
請求項１１の装置。
【請求項１４】
前記データレーンのサンプリングポイントに対する前記第１調整は、前記データレーンでテストパターンを送信することなく行われる、
請求項１３の装置。
【請求項１５】
通信チャネルの第１レーンでテストパターンを送信することと、
前記チャネルの第２レーンで第１データを送信するのと同時に、前記第１レーンで前記テストパターンを送信することと、
受信機によって受信された前記テストパターンにおいて検出されたエラーの数に基づいて、前記第１レーンのサンプリングポイントがミスアライメントであると判別したことに応じて、前記第１レーンのサンプリングポイントに対して第１調整を実行し、前記チャネルの第２レーンによって利用されるサンプリングポイントに対して前記第１調整を実行することと、を含む、
方法。
【請求項１６】
前記第１レーン及び前記第２レーンの両方を同時にトレーニングすることに応じて、前記第１レーンのサンプリングポイントと、前記第２レーンのサンプリングポイントと、を設定することを含む、
請求項１５の方法。
【請求項１７】
前記第１レーンは、システムデータの送信に利用されない、
請求項１５の方法。
【請求項１８】
前記第１レーンで前記テストパターンを受信するのと同時に、前記第２レーンで前記第１データを受信することと、
前記テストパターンにおいてエラーが検出されたかどうかを示すエラー表示を、前記第１レーンを介して送信機に伝えることと、を含む、
請求項１５の方法。
【請求項１９】
前記送信機が、前記第１レーンで前記エラー表示を受信したことに応じて、エラーが検出されたことを前記エラー表示が示す場合に、前記第１レーンのサンプリングポイントに対して前記第１調整を行うために、前記第１レーンの遅延設定を変更することを含む、
請求項１８の方法。
【請求項２０】
前記送信機が、前記第１レーンで前記エラー表示を受信したことに応じて、エラーが検出されたことを前記エラー表示が示す場合に、前記第２レーンのサンプリングポイントに対して前記第１調整を行うために、前記第２レーンの遅延設定を変更することを含み、
前記第２レーンのサンプリングポイントに対する前記第１調整は、前記第１レーンのサンプリングポイントに対する前記第１調整に相当する、
請求項１８の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載される実施形態は、データ通信に関し、より詳細には、ビットシリアルデータリンクのトレーニングを実行することに関する。
【背景技術】
【０００２】
集積回路のデータスループットは、アプリケーション需要及びデータ消費が増加するにつれて増加し続けている。例えば、マイクロプロセッサ速度の改善率は、メモリ速度の改善率を超え続けている。データの送信レートが増加することで、データを送受信するために使用される回路のタイミング要求が増加する。コンピューティングデバイス及びコンピューティングシステムにおいて利用される多くの回路では、これらの回路内でグローバルクロックを使用してデータが転送される。例えば、クロックの立ち上がりエッジは、フリップフロップに入るデータをロードし、その後、データを、フリップフロップを通過させるか又はフリップフロップから処理することができる。いくつかのシナリオでは、複数のデータレーンのデータバスに単一のクロックが使用され、各データレーンは個別のシリアルビットストリームを伝送する。しかしながら、これは、クロックの遷移をデータバス全体に使用する必要があるのでデータバスの速度が制限されるが、一部のデータビットは、他のデータビットと比較してバスを通るのに時間がかかる場合がある。データレーン間のばらつきが大きすぎる場合、データバス全体において正確にクロックするためにクロックエッジを配置する場所が存在しない場合がある。さらに、温度又は電圧の変動により、レーンの位相アライメントが時間とともに変動することがある。このようなばらつきを補正すると、データのフローが中断され、重要な動作が中断され、データの転送が遅れることがある。
【発明の概要】
【課題を解決するための手段】
【０００３】
ビットシリアルデータリンクのトレーニングを実行するためのシステム、装置及び方法について検討する。
【０００４】
一実施形態では、送信機と受信機との間の遅延設定をテストするために、トレーニングシーケンスが実行される。送信機は、複数のデータレーンの通信チャネルを介して受信機に接続されている。一実施形態では、通信チャネルは、追加のレプリカレーンを含む。この追加のレプリカレーンは、周期的追跡（ＰＴ）レーンと呼ばれることもある。様々な実施形態では、レプリカレーンは、システムデータを送らない。むしろ、レプリカレーンは、テストデータの送信用のみに構成されている。送信機は、データレーンが通常のシステムデータを送っている間に、レプリカレーンで一連のトレーニングシーケンスを定期的に実行する。トレーニングシーケンスは、温度変動、電源変動、及び／又は、他の要因によるレプリカレーンの僅かなタイミング変化を検出するために実行される。レプリカレーンの位相タイミングにおける変化が検出されると、制御ロジックは、レプリカレーンと通常のデータレーンとの位相タイミングを更新する。
【０００５】
一実施形態では、送信機は、レプリカレーンでテストパターンを送信すると同時に、チャネルの少なくとも第２レーンで第１データを送信する。受信機が、レプリカレーンで受信したテストパターンにおいて１つ以上のエラーを検出した場合、送信機及び／又は受信機は、レプリカレーンにおいてサンプリングポイントがミスアライメントであると判別する。送信機及び／又は受信機は、レプリカレーンにおいてサンプリングポイントがミスアライメントであると判別すると、第１レーンのサンプリングポイントに対して第１調整を実行し、第２レーンのサンプリングポイントに対して第１調整を実行する。第２レーンのサンプリングポイントに対する第１調整は、レプリカレーンのサンプリングポイントに対する第１調整に相当する。送信機は、第２レーンのサンプリングポイントに対して第１調整を実行した後に、第２レーンで第２データを送信するように構成されている。
【０００６】
これらの特徴及び利点と、他の特徴及び利点とは、本明細書に提示される以下の詳細な説明を考慮して、当業者に明らかとなるであろう。
【０００７】
方法及びメカニズムの上記の利点と、さらなる利点とは、添付の図面と併せて以下の説明を参照することによって、より良く理解することができる。
【図面の簡単な説明】
【０００８】
【図１】コンピューティングシステムの送信機及び受信機の一実施形態のブロック図である。
【図２】レプリカレーンのトレーニングシーケンスを実行する一実施形態のタイミング図である。
【図３】送信機及び通信チャネルを有するシステムの一実施形態のブロック図である。
【図４】受信機及び通信チャネルを有するシステムの一実施形態のブロック図である。
【図５】データアイの一実施形態を示す図である。
【図６】複数レーンチャネルの位相タイミングを調整する方法の一実施形態を示す一般化されたフロー図である。
【図７】レプリカレーンを利用してチャネルの他のレーンのサンプリングポイントを調整する方法の他の実施形態を示す一般化されたフロー図である。
【発明を実施するための形態】
【０００９】
下記の説明では、本明細書に提示される方法及びメカニズムを十分に理解してもらうために、多数の具体的な詳細が示されている。しかしながら、当業者であれば、これらの具体的な詳細無しに様々な実施形態を実施可能であることを認識すべきである。いくつかの例では、周知の構造、コンポーネント、信号、コンピュータプログラム命令及び技術は、本明細書で説明するアプローチを不明瞭にするのを避けるために詳細に示されていない。説明を簡単且つ明瞭にするために、図面に示される要素が必ずしも一定の縮尺で描かれていないことを理解されたい。例えば、いくつかの要素の寸法は、他の要素に対して誇張されている。
【００１０】
図１を参照すると、コンピューティングシステム１００の送信機１０５及び受信機１１０の一実施形態を示すブロック図が示されている。送信機１０５は、チャネル１５５を介して受信機１１０に接続されている。チャネル１５５は、実施形態に応じて、任意の数のデータレーンを含む。また、チャネル１５５は、レプリカレーン、クロックレーン、及び／又は、１つ以上の他のレーンを含む。コンピューティングシステム１００は、クロック１４５と、クロック１５０と、図面を不明瞭にするのを避けるために示されていない１つ以上の他のコンポーネントと、を含む。例えば、コンピューティングシステム１００は、１つ以上の処理ユニット（例えば、プロセッサ、プロセッサコア、プログラマブルロジックデバイス、特定用途向け集積回路等）、１つ以上のメモリデバイス、及び／又は、他のコンポーネントを含む。１つ以上の処理ユニットは、実施形態に応じて、命令を実行し、及び／又は、１つ以上のタイプの計算（例えば、浮動小数点、整数、メモリ、Ｉ／Ｏ）を実行するように構成されている。様々な実施形態では、コンピューティングシステム１００のコンポーネントは、１つ以上の通信バスによって相互接続されている。一実施形態では、送信機１０５及び受信機１１０は、プロセッサのメモリパスに存在する。様々な実施形態において、プロセッサに接続されたメモリは、ダブルデータレート同期ダイナミックランダムアクセスメモリ（ＤＤＲ  ＳＤＲＡＭ）である。他の実施形態では、メモリは、他のタイプのメモリデバイスを用いて実装される。
【００１１】
送信機１０５は、チャネル１５５に接続されたバッファ１１５を含む。一実施形態では、バッファ１１５は、トレーニングシーケンスの状態に関して、送信機１０５が受信機１１０からのフィードバックを受信するのを待機している場合に、チャネル１５５の出力を駆動するか、高インピーダンス状態を生成するためのトライステートバッファである。また、送信機１０５は、トレーニングシーケンスを生成し、チャネル１５５のレーンの遅延設定を制御し、及び／又は、他の機能を実行する制御ロジック１３５も含む。さらに、送信機１０５は、スーパーサイクルをカウントするためのカウンタ１２５を含む。様々な実施形態では、スーパーサイクルは、長さが「Ｎ」クロックサイクルであり、「Ｎ」は正の整数である。例えば、一実施形態では、スーパーサイクルは８クロックサイクルの長さであり、他の実施形態では、スーパーサイクルは数クロックサイクルである。一実施形態では、クロック１４５は、カウンタ１２５をクロックするためのクロック信号を提供する。
【００１２】
受信機１１０は、チャネル１５５に接続するためのバッファ１２０を含む。一実施形態では、バッファ１２０は、フィードバック結果をチャネル１５５に運ぶ、又は、受信機１１０が送信機１０５からデータを受信している場合に高インピーダンス状態を生成するためのトライステートバッファである。また、受信機１１０は、チャネル１５５上のトレーニングシーケンス指示を検出し、受信したテストパターンを期待値と比較し、チャネル１５５のレーンの遅延設定を制御し、及び／又は、他の機能を実行する制御ロジック１４０を含む。さらに、受信機１１０は、スーパーサイクルをカウントするためのカウンタ１３０を含む。一実施形態では、クロック１５０は、カウンタ１３０をクロックするためのクロック信号を提供する。他の実施形態では、受信機１１０は、カウンタ１３０をクロックするためのクロック信号として、チャネル１５５で受信したクロック信号を使用する。
【００１３】
送信機１０５は、チャネル１５５のレプリカレーン及び１つ以上のデータレーンを介してテストパターンを送信するように構成されている。テストパターンは、チャネル１５５のレプリカレーン及びデータレーンの最適なサンプリングポイントを決定するために利用される。レプリカレーン及びデータレーンの遅延は、テストパターンの結果に基づいて調整され、通常のデータオペレーションが開始される。定期的に、送信機１０５は、データレーンがシステムデータを送る間に、レプリカレーンを介して追加のテストパターンを送信するように構成されている。システム１００が、前回のテスト以来レプリカレーンの最適なサンプリングポイントがドリフトしていると判別した場合に、システム１００は、レプリカレーンのサンプリングポイントを調整して、最適なサンプリングポイントにアライメントさせる。また、システム１００は、データレーンのサンプリングポイントに対して同等の調整を行う。このようにして、温度変動、電源変動、及び／又は、他の要因によるデータレーンのサンプリングポイントのドリフトが、システムデータのフローを中断することなく補正される。
【００１４】
受信機１１０は、レプリカレーン及びデータレーンで送信機１０５によって送信されたテストパターンをキャプチャするように構成されている。次いで、受信機１１０は、キャプチャされたテストパターンのエラーに関してチェックする。一実施形態では、送信機１０５は、トレーニングパターンを送信した後にバッファ１１５を無効にし、キャプチャされたテストパターンに関するフィードバックを受信機１１０が送信するのを待機する。受信機１１０は、バッファ１２０を有効にし、キャプチャされたテストパターンにおいてエラーが検出されたかどうかを判別した後に、フィードバックを送信機１０５に送信する。送信機１０５は、フィードバックをキャプチャし、そのフィードバックを（他の遅延設定を用いた他のテストからのフィードバックと共に）使用して、所定のデータレーンのデータ有効期間（又は、「データアイ」）を決定する。送信機１０５は、フィードバックをキャプチャした後に、別のテストを実行するかどうか、又は、通常のデータオペレーションに戻るかどうかを決定する。別の実施形態では、受信機１１０は、キャプチャしたテストパターンにおいて検出されたエラーの数に基づいて、レプリカレーン及びデータレーンの遅延設定を調整する。
【００１５】
システム１００は、送信機１０５及び受信機１１０を含む任意のタイプのコンピューティングシステム又はコンピューティングデバイスを表す。例えば、様々な実施形態では、システム１００は、コンピュータ、サーバ、計算ノード、プロセッサ、処理デバイス、プログラマブル論理デバイス、メモリデバイス、プロセッシングインメモリ（ＰＩＭ）ノード、モバイルデバイス、テレビ、娯楽システム若しくはデバイス、及び／又は、他のタイプのシステム若しくはデバイスを含むことができる。また、システム１００は、送信機１０５及び受信機１１０に加えて、任意の数の他の送信機及び受信機を含む。
【００１６】
次に、図２を参照すると、レプリカレーンでトレーニングシーケンスを実行する一実施形態のタイミング図２００が示されている。トレーニングシーケンスは、複数レーンチャネル（例えば、チャネル１５５）を介して、送信機（例えば、図１の送信機１０５）と受信機（例えば、図１の受信機１１０）との間で実行される。複数レーンチャネルは、レプリカレーンと、システムデータを送るための複数のデータレーンと、を含む。
【００１７】
システムクロック２０２のサイクルは、タイミング図２００の一番上の行に示されている。一実施形態では、タイミング図２００のクロック２０２行に示されるサイクルは、スーパーサイクルを表している。スーパーサイクルは、「Ｎ」システムクロックであり、「Ｎ」は１より大きい正の整数であり、「Ｎ」はプログラマブルレジスタに記憶されている。一実施形態では、送信機及び受信機の両方は、スーパーサイクルをカウントするカウンタを含む。一実施形態では、スーパーサイクルは、長さが８クロックサイクルであり、カウンタは、モジュロ８カウンタである。他の実施形態では、スーパーサイクルは、他の数のクロックサイクルである。レプリカレーン状態２０４は、タイミング図２００に示すクロックサイクル中のチャネルのレプリカレーン状態を示す。レプリカレーン２０６は、レプリカレーンで送信されるデータを示す。同様に、データレーン状態２０８は、データレーンの状態を示し、データレーン２１０は、タイミング図２００に示すクロックサイクル中にデータレーンで送信されるデータを示す。
【００１８】
最初のテストフェーズの間、送信機は、レプリカレーン及びデータレーンでテストパターンを受信機に送信する。これは、レプリカレーン２０６のテストデータ２１５及びデータレーン２１０のテストデータ２２０として示されている。一実施形態では、テストパターンは、擬似ランダムバイナリシーケンスである。送信機は、レプリカレーン及びデータレーンでテストパターンを送信する前に、テストパターンが送信されることを受信機に知らせるためのトレーニングシーケンス指示を送信する。受信機が所定のレーンでトレーニングシーケンス指示を受信すると、受信機は、所定のレーンでテストパターンを受信する準備が整う。テストデータ２１５及びテストデータ２２０は、異なる遅延設定で実行される任意の数のテストに対応する。
【００１９】
受信機は、レプリカレーン及びデータレーンでテストパターンを受信し、受信したテストパターンにエラーがあるかどうかをチェックする。一実施形態では、受信機は、受信したテストパターンのエラーの有無に関するフィードバックを送信機に送信する。これは、レプリカレーン及びデータレーンの「待機」状態中に発生する。システムは、テストパターンの結果を使用して、レプリカレーン及びデータレーンの各々のデータアイを識別する。次に、システムは、テストデータの結果に基づいて、レプリカレーン及び各データレーンの位相タイミングを更新する。各レーンは、レーンで受信したテストパターンの結果に基づいて、他のレーンとは独立して更新される。所定のレーンが既に最適なサンプリングポイント用に構成されていることを結果が示している場合、所定のレーンの遅延設定は、位相タイミングの更新期間中に調整されないことに留意されたい。
【００２０】
レプリカレーン及びデータレーンの位相タイミングへの最初の更新の後、データレーンがシステムデータ２３０を送る間、レプリカレーンはアイドル状態になる。一定時間が経過すると、システムは、レプリカレーンをテストして、レプリカレーンの位相タイミングがドリフトしているかどうかを確認する。システムがデータレーンでシステムデータ２３０を送信し続ける一方で、テストデータ２２５がレプリカレーンで同時に送信される。次に、システムは、テストデータ２２５が送信された後に、レプリカレーンの位相タイミングを調整するかどうかを決定する。システムは、レプリカレーンで受信したテストパターンの結果に基づいて、以前のテスト以来最適なサンプリングポイントがドリフトした場合に、レプリカレーンの位相タイミングを更新する。この更新は、レプリカレーン状態２０４の行の更新２３５として示されている。また、システムは、レプリカレーンでの如何なるドリフトもデータレーンで発生するという仮定に基づいて、データレーンの更新タイミングに対して同様の更新２４０を実行する。様々な実施形態において、データレーンのタイミングの更新は、データレーンでデータ送信がアクティブである間に（例えば、システムデータ２３０を送信する間に）実行される。他の実施形態では、データレーンは、更新フェーズ（例えば、２４０）中にタイミングパラメータが調整される間、データの送信を一時的に中断する。両方のアプローチが考えられる。システムは、レプリカレーン及びデータレーンの位相タイミングの更新２３５，２４０の各々の後に、データレーンでのシステムデータの送信に戻る一方で、レプリカレーンはアイドル状態に戻る。次に、レプリカレーンの位相タイミングがドリフトしている場合、システムは、レプリカレーンを定期的にテストして、レプリカレーン及びデータレーンに変更を加えることを継続して行う。
【００２１】
次に、図３を参照すると、送信機３０５及び通信チャネル３２０を有する一実施形態のシステム３００のブロック図が示されている。通信チャネル３２０は、送信機３０５と受信機（図示省略）とを接続する任意のタイプの通信チャネルを表す。通信チャネル３２０は、実施形態に応じて、レプリカレーン３２５Ａと、任意の数のデータレーン３２５Ｂ〜Ｎと、を含む。レプリカレーン３２５Ａは、以前のテスト以来最適なサンプリングポイントがドリフトしているかどうかを判別するために、テストデータを送るように構成されている。通常のデータオペレーションでは、レプリカレーン３２５Ａは、システムデータを送るために利用されるのではなく、むしろアイドル状態である。各データレーン３２５Ｂ〜Ｎは、システムデータのシリアルビットストリームを送るように構成されている。また、通信チャネル３２０は、クロックレーン（図示省略）及び／又は１つ以上の他のレーンを含む。
【００２２】
一実施形態では、送信機３０５は、制御ロジック３１０及び遅延素子３１５Ａ〜Ｎを含む。遅延素子３１５Ａ〜Ｎの個々のセットは、レーン３２５Ａ〜Ｎのうち対応するレーンの遅延設定を選択するための１つ以上の遅延素子を含む。一実施形態では、１つ以上の遅延素子は、レーン３２５Ａ〜Ｎのうち単一のレーンに適用される粗い遅延調整及び細かい遅延調整を含む。
【００２３】
送信機３０５は、最初のテスト期間中にレーン３２５Ａ〜Ｎの遅延設定をテストするために、レーン３２５Ａ〜Ｎの全てでテストパターンを送信するように構成されている。例えば、この最初のテスト期間は、起動時又はリセット後に発生する。送信機は、テストパターンを送信した後に、出力バッファ（例えば、図１のバッファ１１５）を無効にする。出力バッファは、送信機３０５がテストパターンを受信機に送信した後に、送信機３０５によって高インピーダンス状態に切り替えられるトライステートバッファである。受信機は、フィードバックを準備する期間の後に、出力バッファを起動して、フィードバックを送信機に送る。一実施形態では、フィードバックは、受信したテストパターンにエラーがあったかどうかを示す。一実施形態では、フィードバックは、単一のビットである。他の実施形態では、フィードバックは、エラーの数を示すために複数のビットを利用する。送信機は、フィードバックを受信し、フィードバックを利用して、現在の遅延設定がデータアイ内側か外側かを判別する。送信機がフィードバックを受信した後に、別のテストが実行されてもよいし、送信機が通常のデータオペレーションを行ってもよい。
【００２４】
一実施形態では、送信機３０５は、各レーンでテストパターンを送信し、受信機（図示省略）は、各テストパターンにおいて検出されたエラーの数と共にフィードバックを送信機３０５に送る。次に、送信機３０５の制御ロジック３１０は、このフィードバックを利用して、各レーン３２５Ａ〜Ｎのデータアイを決定する。例えば、送信機は、チャネル３２０のレーン３２５Ａ〜Ｎ毎に、異なる遅延設定を有する複数のテストパターンを送信する。これらのテストパターンに対する受信機からのフィードバックは、制御ロジック３１０によって、各レーンのデータアイの位置を決定するために使用される。制御ロジック３１０は、遅延素子３１５Ａ〜Ｎの各々を調整して、対応するレーンの受信機のサンプリングポイントを、データアイの位置に基づく最適なサンプリングポイントに対応させる。遅延素子３１５Ａ〜Ｎの各々に対する調整は、他の遅延素子３１５Ａ〜Ｎに対する調整とは独立して行われる。
【００２５】
次に、システム３００は、全てのレーン３２５Ａ〜Ｎについて位相テストシーケンスを実行した後に、通常のデータオペレーションを開始する。データレーン３２５Ｂ〜Ｎは、通常のデータオペレーションの間、システムデータを送るために利用される一方で、レプリカレーン３２５Ａは、アイドル状態である。換言すれば、レプリカレーン３２５Ａは、システムデータを送るために使用されない。次に、システム３００は、通常のデータオペレーションの間、レプリカレーン３２５Ａを周期的に利用して、以前のテストからフェーズタイミングがドリフトしているかどうかを確認するために、位相テストを行う。実施形態に応じて、レプリカレーン３２５Ａの位相タイミングは、温度変動、電源変動、及び／又は、要因に基づいてドリフトする。システム３００は、データレーン３２５Ｂ〜Ｎがシステムデータを送っている間に、レプリカレーン３２５Ａにおける位相テストを実行する。このように、システム３００は、データレーン３２５Ｂ〜Ｎのシステムデータのフローを中断することなく、レプリカレーン３２５Ａの位相タイミングをテストすることができる。
【００２６】
システム３００がレプリカレーン３２５Ａの位相タイミングのドリフトを検出すると、システム３００は、遅延素子３１５Ａを調整することによって、レプリカレーン３２５Ａのタイミングを補正する。また、システム３００は、データレーン３２５Ｂ〜Ｎに影響を与える他の遅延素子３１５Ｂ〜Ｎにも同じ調整を行う。多くの場合、レプリカレーン３２５Ａの位相タイミングで発生したドリフトは、データレーン３２５Ｂ〜Ｎにおいても発生している。したがって、システム３００は、全てのレーン３２５Ａ〜Ｎの位相タイミングのドリフトを、単一のレプリカレーン３２５Ａのテストを実行するだけで補正することができる。一実施形態では、システム３００は、規則的な間隔で、単一のレプリカレーン３２５Ａでこれらのテストを実行するように構成されている。別の実施形態では、システム３００は、１つ以上の条件（例えば、エラー率の増加、温度変動、電源変動等）の検出に応じて、レプリカレーン３２５Ａに対するテストを実行するように構成されている。
【００２７】
次に、図４を参照すると、通信チャネル４０５及び受信機４１５を備える一実施形態のシステム４００のブロック図が示されている。図３のシステム３００と同様に、システム４００は、レプリカレーン４１０Ａの位相タイミングのドリフトの検出に基づいて、データレーン４１０Ｂ〜Ｎの位相タイミングを補正するように構成されている。しかし、システム３００とは対照的に、システム４００は、遅延素子４２０Ａ〜Ｎを用いて、受信機４１５における位相タイミングの補正を行う。本実施形態では、受信機４１５の制御ロジック４２５は、フィードバックを送信機（図示省略）に送信するのではなく、受信したテストパターンに対するフィードバックを利用して、遅延素子４２０Ａ〜Ｎを調整する。
【００２８】
次に、図５を参照すると、データアイ５００の一実施形態の図が示されている。データアイ５００は、チャネル（例えば、図３の通信チャネル３２０）のレーンでのビット遷移をキャプチャすることによってモニタリングされるデータ有効期間の一例である。一実施形態では、システム（例えば、システム３００）は、データアイ５００の境界を検出するために、異なる遅延設定で複数のトレーニングシーケンスを実行するように構成されている。システムは、各テスト結果について受信機（例えば、図１の受信機１１０）が生成したフィードバックを利用するよう構成されている。
【００２９】
システムは、複数の遅延設定で複数のテストを実行し、フィードバックが不良（すなわち、１つ以上のエラーがある）から良好（すなわち、エラーがない）になると、その特定の遅延設定がデータアイ５００の開始５１０と一致すると認識する。システムは、僅かな増分で遅延を追加し、追加のテストを実行し、フィードバックが良好から不良になると、これをデータアイ５００の終了５２０と識別する。次に、システムは、データアイ５００の中央５３０を算出するために、開始５１０及び終了５２０の平均をもとめる。データアイ５００の中央５３０に対応する遅延設定は、チャネルの所定のレーンに対する最適な遅延設定とみなされる。一実施形態では、システムは、チャネルのレプリカレーンでこれらのテストを実行し、次いで、これらのテストの結果を利用して、チャネルのデータレーンの遅延設定を更新する。
【００３０】
次に、図６を参照すると、マルチレーンチャネルの位相タイミングを調整する方法６００の一実施形態が示されている。説明目的のために、本実施形態におけるステップは、順番に示されている。後述する方法の様々な実施形態において、説明する要素のうち１つ以上が同時に実行されてもよいし、図示した順序とは異なる順序で実行されてもよいし、完全に省略されてもよいことに留意されたい。必要に応じて、他の追加の要素を実行してもよい。本明細書において説明する様々なシステム又は装置の何れかは、方法６００を実行するように構成されている。
【００３１】
複数レーン通信チャネルを介して受信機に接続された送信機を有するシステムは、チャネルの複数のレーンでトレーニングシーケンスを同時に実行する（ブロック６０５）。一実施形態では、通信チャネルは、レプリカレーン及び１つ以上のデータレーンを含む。チャネルの複数のレーンでトレーニングシーケンスを実行する一環として、システムは、レーンの遅延設定を更新して、各レーンが着信データを最適なサンプリングポイントでサンプリングするようにする。
【００３２】
次に、システムは、通常のデータオペレーションのためにデータレーンを利用することができる（ブロック６１０）。通常のデータオペレーションの間、チャネルのレプリカレーンはアイドル状態である。次に、システムは、最後のトレーニングシーケンスが実行されてから所定時間が経過したかどうかを判別する（条件ブロック６１５）。例えば、システムは、所定時間を追跡するタイマを有し、所定時間は、プログラム可能であって、実施形態毎に異なる。
【００３３】
システムは、所定時間が経過した場合（条件ブロック６１５：「Ｙｅｓ」）、レプリカレーンで１つ以上のトレーニングシーケンスを実行し、同時にデータレーンでシステムデータを送信する（ブロック６２０）。所定時間が経過していない場合（条件ブロック６１５：「Ｎｏ」）、方法６００は、条件ブロック６１５に留まる。システムは、ブロック６２０の後に、レプリカレーンで実行されたトレーニングシーケンスが、レプリカレーンの最適なサンプリングポイントが以前のテストからドリフトしたことを表しているかどうかを判別する（条件ブロック６２５）。
【００３４】
レプリカレーンの最適なサンプリングポイントが以前のテストからドリフトしている場合（条件ブロック６２５：「Ｙｅｓ」）、システムは、レプリカレーンの遅延設定に第１調整を適用して、レプリカレーンのサンプリングポイントを再調整する（ブロック６３０）。また、システムは、チャネルのデータレーンの遅延設定に第１調整を適用して、データレーンのサンプリングポイントを再調整する（ブロック６３５）。このシステムは、レプリカレーンの最適なサンプリングポイントのドリフトがデータレーンで発生することを前提として動作する。したがって、システムは、レプリカレーンの遅延設定に適用されるのと同じ調整を、データレーンの遅延設定に適用する。例えば、第１の量の遅延がレプリカレーンの遅延設定に加えられた場合、第１の量の遅延がデータレーンの遅延設定に加えられる。レプリカレーンの最適なサンプリングポイントが以前のテストからドリフトしていない場合（条件ブロック６２５：「Ｎｏ」）、システムは、レプリカレーン及びデータレーンの現在の遅延設定を維持する（ブロック６４０）。ブロック６３５，６４０の後に、方法６００はブロック６１０に戻り、システムは、通常のデータオペレーションのためにデータレーンを利用し続ける。
【００３５】
次に、図７を参照すると、チャネルの他のレーンのサンプリングポイントを調整するためにレプリカレーンを利用する方法７００の一実施形態が示されている。説明目的のために、本実施形態におけるステップは、順番に示されている。後述する方法の様々な実施形態において、説明する要素のうち１つ以上が同時に実行されてもよいし、図示した順序とは異なる順序で実行されてもよいし、完全に省略されてもよいことに留意されたい。必要に応じて、他の追加の要素を実行してもよい。本明細書において説明する様々なシステム又は装置の何れかは、方法７００を実行するように構成されている。
【００３６】
送信機は、複数レーンチャネルの第１レーンで、１つ以上のテストパターンを受信機に送信すると同時に、チャネルの第２レーンで第１データを送信する（ブロック７０５）。送信機及び受信機は、ホストシステム内のコンポーネントである。第１レーンは、「レプリカレーン」と呼ぶこともある。１つ以上のテストパターンは、トレーニングシーケンスの一部として第１レーンで受信機に送信され、送信機及び受信機間の第１レーンの遅延設定をテストする。これらのトレーニングシーケンスを使用して、第１レーンのデータアイの位置を決定し、データアイ（及び、対応する最適なサンプリングポイント）が以前のテストからシフトしたかどうかを判別する。
【００３７】
次に、システムは、受信機によって受信されたテストパターンの結果に基づいて、第１レーンの現在のサンプリングポイントがミスアライメントされているかどうかを判別する（条件ブロック７１０）。例えば、システムは、複数の遅延設定で第１レーンの複数のテストを実行し、受信したテストパターンが１つ以上のエラーを有する状態からエラーのない状態になると、その特定の遅延設定がデータアイの開始と一致すると認識する。システムは、僅かな増分で遅延を追加し、追加のテストを実行し、受信したテストパターンがエラーのない状態から１つ以上のエラーを有する状態になると、データアイの終了であると認識する。システムは、データアイの開始及び終了の平均をもとめて、データアイの中央（又は、最適なサンプリングポイント）を計算する。次に、システムは、この新たな最適なサンプリングポイントが第１レーンの実際のサンプリングポイントと一致するかどうかを判別する。他の実施形態では、システムは、最適なサンプリングポイントが第１レーンに対してドリフトしたかどうかを判別するための他の適切な技術を利用する。
【００３８】
システムは、受信機によって受信されたテストパターンの結果に基づいて、第１レーンの現在のサンプリングポイントがミスアライメントしていると判別した場合（条件ブロック７１０：「Ｙｅｓ」）、第１レーンのサンプリングポイントに対して第１調整を行って、サンプリングポイントを最適なサンプリングポイントにアライメントし直す（ブロック７１５）。また、システムは、チャネルの第２レーンのサンプリングポイントに対して第１調整を行う（ブロック７２０）。さらに、システムは、チャネルの１つ以上の他のレーンのサンプリングポイントに対して第１調整を行う。例えば、一実施形態では、システムは、チャネルの全てのデータレーンのサンプリングポイントに対して第１調整を行う。システムが、受信機によって受信されたテストパターンの結果に基づいて、第１レーンのサンプリングポイントが適切にアライメントされていると判別した場合（条件ブロック７１０：「Ｎｏ」の分岐）、送信機は、第２レーンで第２データを送信する（ブロック７２５）。
【００３９】
温度変動、電源変動、及び／又は、他の要因によって、同様の方法で第１レーン及び他のレーンについて信号遅延の変動が生じる。したがって、第１レーンの最適なサンプリングポイントの変化を検出することは、典型的に、他のレーンがデータアイにおいて同様のドリフトを経験したことと、第１レーンを補正するための変更が、チャネルの他のレーンを補正するのに必要とされる同じ変更であることと、を表す。したがって、チャネルの第２レーン（及び、他のレーン）に対して行われる第１調整は、第１レーンに対して行われる第１調整と同じである。例えば、第１調整が、第１レーンに加える遅延をクロックサイクルの１／４だけ増加させる場合、他のレーンに加わる遅延は、クロックサイクルの１／４だけ増加する。或いは、第１調整が、第１レーンに加える遅延をクロックサイクルの１／８だけ減少させる場合、他のレーンに加わる遅延は、クロックサイクルの１／８だけ減少する。他の実施形態では、他の遅延増分が、第１レーンに対して行われた調整と同等の方法で、レーンに追加又はレーンから削除される。一実施形態では、サンプリングポイントに対する調整は、送信機によって行われる。別の実施形態では、サンプリングポイントに対する調整は、受信機によって行われる。
【００４０】
ブロック７２０の後、送信機は、第２レーンで第２データを送信する（ブロック７２５）。また、送信機は、他のレーンに使用されるサンプリングポイントの調整を行った後に、チャネルの１つ以上の他のレーンで追加のデータを送信する。ブロック７２５の後に、方法７００は終了する。
【００４１】
様々な実施形態では、ソフトウェアアプリケーションのプログラム命令は、上述した方法及び／又はメカニズムを実施するために使用される。プログラム命令には、Ｃ等の高水準プログラミング言語でハードウェアの動作が記述されている。或いは、Ｖｅｒｉｌｏｇ等のハードウェア設計言語（ＨＤＬ）が使用される。プログラム命令は、非一時的なコンピュータ可読記憶媒体に記憶される。多数のタイプの記憶媒体が利用可能である。記憶媒体は、プログラム実行のためにプログラム命令及び付随データをコンピューティングシステムに提供するために、使用中にコンピューティングシステムによってアクセス可能である。コンピューティングシステムは、少なくとも１つ以上のメモリと、プログラム命令を実行するように構成された１つ以上のプロセッサと、を含む。
【００４２】
上述した実施形態は、実装の非限定的な例に過ぎないことが強調されるべきである。上記の開示を十分に理解することで、多数の変形及び修正が当業者に明らかになるであろう。以下の特許請求の範囲は、このような変形及び修正の全てを包含すると解釈されることが意図される。
【図１】
2019525507.tif 000003
【図２】
2019525507.tif 000004
【図３】
2019525507.tif 000005
【図４】
2019525507.tif 000006
【図５】
2019525507.tif 000007
【図６】
2019525507.tif 000008
【図７】
2019525507.tif 000009
【国際調査報告】
2019525507.tif 000010
2019525507.tif 000011