(57)【特許請求の範囲】
【請求項１】
クロック信号のエッジに応答してデータ信号のビットをサンプリングする受信装置に前記データ信号及び前記クロック信号を供給する送信装置を用いて、前記データ信号と前記クロック信号とのタイミング差を調整する方法であって、
前記送信装置により、連続する第１のビットタイム期間と第２のビットタイム期間との間の遷移箇所近傍においてキャリブレーションテストデータを前記受信装置に保持させるように、前記クロック信号に関連する前記データ信号のタイミングを設定可能なタイミング量だけ変更するステップと、
前記送信装置により、変更されたタイミングを有するデータ信号を使用して前記受信装置へ前記キャリブレーションテストデータを書き込むステップであって、前記キャリブレーションテストデータは、前記連続する第１のビットタイム期間及び第２のビットタイム期間のそれぞれにおいて伝送される第１のテスト値及び第２のテスト値を含む、ステップと、
前記送信装置により、前記受信装置から該受信装置によりサンプリングされたテスト値を読み出すステップと、
前記送信装置により、前記第１のテスト値及び前記第２のテスト値のどちらが前記受信装置から返送された前記テスト値と一致するかの判定に応じて、前記クロック信号の前記エッジが前記データ信号のビットタイムの中央により近づいて現れるように、前記クロック信号に関連する前記データ信号の前記タイミングを調整するステップと、
を備える方法。
【請求項２】
前記クロック信号に関連するデータ信号の前記タイミングを設定可能なタイミングだけ変更する前記ステップが、前記データ信号をビットタイムのほぼ半分だけ遅延させる工程を備える、請求項１に記載の方法。
【請求項３】
前記クロック信号に関連するデータ信号の前記タイミングを設定可能なタイミングだけ変更する前記ステップが、前記データ信号をビットタイムのほぼ半分だけ進める工程を備える、請求項１に記載の方法。
【請求項４】
キャリブレーションテストデータを前記受信装置へ書き込む前記ステップが、
前記第１のビットタイム期間中に前記第１のテスト値を書き込む工程と、
前記第２のビットタイム期間中に前記第２のテスト値を書き込む工程と、
を備える、請求項１に記載の方法。
【請求項５】
前記クロック信号に関連する前記データ信号の前記タイミングを調整する前記ステップが、前記受信装置から返送された前記テスト値が前記第１のテスト値と一致する場合に前記データ信号を進める工程を備える、請求項４に記載の方法。
【請求項６】
前記クロック信号に関連する前記データ信号の前記タイミングを調整する前記ステップが、前記受信装置から返送された前記テスト値が前記第２のテスト値と一致する場合に前記データ信号を遅らせる工程を備える、請求項４に記載の方法。
【請求項７】
前記受信装置から前記テスト値を読み出す前記ステップが、前記受信装置内部のキャリブレーションテスト値バッファから前記テスト値を読み出す工程を備える、請求項１に記載の方法。
【請求項８】
前記受信装置から前記テスト値を読み出す前記ステップが、前記受信装置内部のコアロジックユニットから前記テスト値を読み出す工程を備える、請求項１に記載の方法。
【請求項９】
クロック信号のエッジに応答してデータ信号のビットをサンプリングする受信装置に前記データ信号及び前記クロック信号を供給する装置であって、
連続する第１のビットタイム期間と第２のビットタイム期間との間の遷移箇所近傍においてキャリブレーションテストデータを受信装置に保持させるように、前記クロック信号に関連する前記データ信号のタイミングを設定可能なタイミング量だけ変更するデータ信号遅延ユニットと、
変更されたタイミングを有する前記データ信号を使用して受信装置にキャリブレーションテストデータを書き込むキャリブレーション制御ユニットであって、前記キャリブレーションテストデータは、前記連続する第１のビットタイム期間及び第２のビットタイム期間のそれぞれにおいて伝送される第１のテスト値及び第２のテスト値を含んでおり、該キャリブレーション制御ユニットは、さらに前記２つのテスト値のどちらが前記受信装置から返送された前記テスト値と一致するかの判定に応じて、前記クロック信号の前記エッジが前記データ信号のビットタイムの中央により近づいて現れるように、前記クロック信号に関連する前記データ信号の前記タイミングを調整するキャリブレーション制御ユニットと、
を備える装置。
【請求項１０】
前記データ信号遅延ユニットは、前記データ信号をビットタイムのほぼ半分だけ遅延させることによって、前記データ信号の前記タイミングを設定可能なタイミング量だけ変更する、請求項９に記載の装置。
【請求項１１】
前記データ信号遅延ユニットは、前記データ信号をビットタイムのほぼ半分だけ進めることによって、前記データ信号の前記タイミングを設定可能なタイミング量だけ変更する、請求項９に記載の装置。
【請求項１２】
前記キャリブレーション制御ユニットが、前記第１のビットタイム期間中に前記第１のテスト値を書き込み前記第２のビットタイム期間中に前記第２のテスト値を書き込むことにより、キャリブレーションテストデータを前記受信装置へ書き込む、請求項９に記載の装置。
【請求項１３】
前記キャリブレーション制御ユニットが、前記受信装置から返送された前記テスト値が前記第１のテスト値と一致する場合に、前記データ信号を進めることにより、前記クロック信号に関連する前記データ信号の前記タイミングを調整する、請求項１２に記載の装置。
【請求項１４】
前記キャリブレーション制御ユニットが、前記受信装置から返送された前記テスト値が前記第２のテスト値と一致する場合に、前記データ信号を遅らせることにより、前記クロック信号に関連する前記データ信号の前記タイミングを調整する、請求項１２に記載の装置。
【請求項１５】
クロック信号のエッジに応答してデータ信号のビットをサンプリングする受信装置に前記データ信号及び前記クロック信号を供給する装置であって、
連続する第１のビットタイム期間と第２のビットタイム期間との間の遷移箇所近傍においてキャリブレーションテストデータを受信装置に保持させるように、前記クロック信号に関連するデータ信号のタイミングを設定可能なタイミング量だけ変更する手段と、
変更されたタイミングを有する前記データ信号を使用して前記キャリブレーションテストデータを前記受信装置へ書き込む手段であって、前記キャリブレーションテストデータは、前記連続する第１のビットタイム期間及び第２のビットタイム期間のそれぞれにおいて伝送される第１のテスト値及び第２のテスト値を含む、手段と、
前記受信装置から該受信装置によりサンプリングされたテスト値を読み出す手段と、
前記２つのテスト値のどちらが前記受信装置から返送された前記テスト値と一致するかの判定に応じて、前記クロック信号の前記エッジが前記データ信号のビットタイムの中央により近づいて現れるように、前記クロック信号に関連する前記データ信号の前記タイミングを調整する手段と、
を備える装置。
【請求項１６】
前記クロック信号に関連する前記データ信号の前記タイミングを設定可能なタイミング量だけ変更する前記手段が、前記データ信号をビットタイムのほぼ半分だけ遅延させる手段を備える、請求項１５に記載の装置。
【請求項１７】
前記クロック信号に関連する前記データ信号の前記タイミングを設定可能なタイミング量だけ変更する前記手段が、前記クロック信号に関連する前記データ信号をビットタイムのほぼ半分だけ進める手段を備える、請求項１５に記載の装置。
【請求項１８】
キャリブレーションテストデータを前記受信装置へ書き込む前記手段が、
前記第１のビットタイム期間中に前記第１のテスト値を書き込む手段と、
前記第２のビットタイム期間中に前記第２のテスト値を書き込む手段と、
を備える、請求項１５に記載の装置。
【請求項１９】
前記クロック信号に関連する前記データ信号の前記タイミングを調整する前記手段が、前記受信装置から返送された前記テスト値が前記第１のテスト値と一致する場合に前記データ信号を進める手段を備える、請求項１８に記載の装置。
【請求項２０】
前記クロック信号に関連する前記データ信号の前記タイミングを調整する前記手段が、前記受信装置から返送された前記テスト値が前記第２のテスト値と一致する場合に前記データ信号を遅らせる手段を備える、請求項１８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、コンピューティングプラットフォーム内のデータストローブ信号に関する並列インタフェース上のデータ遷移のタイミングの調整に関する。
【０００２】
[0002]コンピューティングプラットフォーム内のコンポーネント間及び／又は集積回路内のユニット間のインタフェースが伝送速度及び／又はバス幅を増すにつれて、雑音及び信号の完全性問題が重要性を高める。ある種のコンピューティングプラットフォームの場合、データ転送インタフェースは、送信装置によって発生させられるか又はクロック信号を分周することにより受信装置内で発生させられたデータストローブ信号又はクロック信号の立ち上がりエッジ及び／又は立ち下がりエッジに応答して、受信装置又はユニットで保持（latch）されたデータを含む。増加したデータ転送レートに応答して、キャリブレーション動作が、ある種のシステムによって実行され、データ信号と１個以上のデータストローブ又はクロック信号との間のタイミング差を補償するようにする。タイミング差は、電圧及び／又は温度の変動の結果として、長時間に亘って変化する。
【０００３】
[0003]本発明の主題は、明細書の最後に特に指摘され、明確に請求されている。しかし、特許請求の範囲に記載された発明の主題は、構成と動作の方法の両方に関して、それらの目的、特長及び利点と一体となって、添付図面と共に読まれるならば、以下の詳細な説明を参照することによって、最もよく理解される。
【詳細な説明】
【０００４】
[0015]以下の詳細な説明では、多数の具体的な詳細が、特許請求の範囲に記載された発明の主題の完全な理解を提供するために記載されている。しかし、特許請求の範囲に記載された発明の主題がこれらの具体的な細部を用いることなく実施されることが当業者によって理解されるであろう。その他の事例では、よく知られた方法、手順、コンポーネント及び／又は回路は、特許請求の範囲に記載された発明の主題をわかりにくくしないように詳細に記載されていない。
【０００５】
[0016]本明細書全体を通じた「一実施形態」又は「実施形態」への言及は、その実施形態に関して記載された特定の特長、構造又は特性が、特許請求の範囲に記載された発明の主題の少なくとも一つの実施形態に含まれることを意味する。よって、本明細書全体の様々な箇所における「一実施形態において」及び／又は「実施形態」という句の出現は、必ずしもすべてが同じ実施形態に言及しているわけではない。さらに、特定の特長、構造及び／又は特性は一つ以上の実施形態において組み合わされる。
【０００６】
[0017]本明細書において言及されるような「ロジック」は、１個以上の論理演算を実行する構造に関する。例えば、ロジックは、少なくとも部分的に１個以上の入力信号に基づいて１個以上の出力信号を供給する回路を備える。このような回路は、デジタル入力信号を受信し、１個以上のアナログ入力信号に応答して１個以上のアナログ出力信号を供給する回路又はデジタル出力信号を供給する有限状態機械を備える。このような回路は、例えば、特定用途向け集積回路（ＡＳＩＣ）及び／又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）に設けられる。同様に、ロジックは、機械読み取り可能な命令を実行するために、プロセッサ又はその他のプロセッシング回路と組み合わせて、記憶媒体に記憶された機械読み取り可能な命令を備える。しかし、これらはロジックを提供する構造の例に過ぎず、特許請求の範囲に記載された発明の主題はこれらの点で限定されない。
【０００７】
[0018]特に断らない限り、以下の説明から明白であるように、本明細書の全体を通じて、以下のことが理解される。「処理する」、「コンピューティング」、「計算する」、「選択する」、「形成する」、「可能にする」、「抑制する」、「識別する」、「開始する」、「問い合わせる」、「獲得する」、「ホスティング」、「保持する」、「表現する」、「変更する」、「受信する」、「送信する」、「記憶する」、「判定する」などのような用語を利用する説明は、コンピューティングプラットフォーム（例えば、コンピュータ又は類似した電子計算機など）によって実行される動作及び／又はプロセスに言及する。このコンピューティングプラットフォームは、コンピューティングプラットフォームのプロセッサ、メモリ、レジスタ及び／又はその他の情報記憶、伝送、受信及び／又は表示装置内で、物理的、電子的及び／又は磁気的量及び／又はその他の物理的量として表現されたデータを操作及び／又は変換する。したがって、コンピューティングプラットフォームは、信号の形式のデータを処理及び／又は記憶する能力を含むシステム又は装置を示す。よって、コンピューティングプラットフォームは、このような状況において、ハードウェア、ソフトウェア、ファームウェア及び／又はそれらの組み合わせを備える。さらに、特に断らない限り、フローチャートを参照して、又は、別の方法で、明細書中に記載されているようなプロセスは、全体的又は部分的に、コンピューティングプラットフォームによって実行及び／又は制御してもよい。
【０００８】
[0019]本明細書において使用されているように、用語「クロック信号」は、コンピューティングプラットフォームのような電子装置内で装置、コンポーネント、ユニット又は回路においてタイミングを制御するため使用される周期的な信号を包含するように意図されている。さらに、用語「クロック信号」は、データを保持するため使用されるデータストローブ信号を包含するように意図されている。一部の実施形態では、これらのデータストローブ信号は、少なくとも部分的に受信クロック信号に基づいて装置内で発生させられる。例えば、データストローブは、クロック信号を分周するため位相ロックループ（ＰＬＬ）を使用することによって発生させられる。
【０００９】
[0020]キャリブレーション動作は、１個以上のデータストローブ又はクロック信号に関連する１本以上のデータ線のタイミングを調整することを目的として実行される。その他のキャリブレーション動作は、クロック又はデータストローブ信号の立ち上がり及び／又は立ち下がりエッジを確実かつ高速のデータ転送を最も良く保証する位置へ動かすことを目的として、実行される。本明細書に記載された実施形態のキャリブレーション動作は、システム電源投入時に実行されるか及び／又はシステム動作中に実行される。キャリブレーション動作は、特殊なキャリブレーションモードに入るステップと、特殊なキャリブレーション動作を実行するステップとを備える。一つの例示的な実施形態のためのキャリブレーション動作は、グラフィックスプロセッシングユニット（ＧＰＵ）とランダムアクセスメモリ（ＲＡＭ）装置との間で行われる。ＧＰＵ又はその他のデータ送信装置は、１個以上のクロック信号に関連する１個以上のデータ信号のタイミングを調整するために回路を備える。別の実施形態では、メモリ装置は、入力データを保持するため使用されるデータストローブ又はクロック信号のタイミングを調整する回路を含むが、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。その他のメモリ装置は、データストローブ又はクロック信号のタイミングを調整する回路を含まなくてもよい。一つの例示的な実施形態では、メモリ装置は、キャリブレーションテストデータを記憶するために、レジスタ又はその他の記憶回路をさらに含む。本明細書に記載された実施形態はメモリ装置及びＧＰＵについて説明するが、他の実施形態も可能である。他の実施形態では、キャリブレーション回路及び本明細書に記載された技術が広範囲の装置の何れかに含まれる。また、本明細書に記載されているようなキャリブレーション動作を、キャリブレーションされたクロックデータリカバリ（ＣＤＲ）と呼ぶ。
【００１０】
[0021]キャリブレーション動作はＧＰＵによってメモリ装置へ発行されたコマンドから始まるが、一部の実施形態ではコマンドが発行されない。ＧＰＵは、１回以上の書き込みトランザクションを実行し、その後メモリ装置への読み出しトランザクションを実行する。書き込みトランザクションでは、ＧＰＵがビットタイムの半分だけ書き込みデータをシフトし、メモリ装置内のデータサンプラ回路が位相サンプリング回路としての役割を果たすことを可能にする。別の実施形態では、ＧＰＵがビットタイムの半分だけデータストローブ又はクロック信号をシフトし、同様に、ＤＲＡＭのデータサンプラ回路が位相サンプリング回路としての役割を果たすことを可能にする。本明細書に記載された実施形態は、データ線及び／又はデータストローブ及び／又はクロック信号をビットタイムの半分だけシフトすることを示しているが、その他の実施形態はビットタイムの半分以外の量だけシフトする。データ線タイミングの変化量は設定可能である。
【００１１】
[0022]前述の通り、キャリブレーション動作は、メモリ装置との間でＧＰＵによるデータの書き込み及び読み出しを含む。ＧＰＵは、ビットタイムの半分だけシフトされた書き込みデータを使って書き込み動作を実行する。データのシフトは、ビットタイムのほぼ中央ではなく、データストローブ信号のエッジ付近で、メモリに書き込みデータをサンプリングさせる。サンプリングされたデータは、ＧＰＵによってもう一度読み出され、検査され、クロック信号に関してデータ信号のタイミングが調整されるべきであるかどうかを判定されるようにする。ワイド並列バスは、バイトレーンとも呼ばれる多数の区画を備える。キャリブレーション動作は、バイトレーン毎にバイトレーンで発生するか、バス全体に対し行われるか又はバスが有するより小さな区画又はバイトレーンが有するより小さな区分に対し行われる。例えば、一部の実施形態では、各データ線が独立に調整される。
【００１２】
[0023]複数のオプションの何れかが、前に書き込まれたキャリブレーションデータを再度読み出すときに使用される。データはメモリ装置の入力パッドに近接して記憶されるので、ＧＰＵは直ちにデータを再度読み出すことが可能である。一実施形態では、記憶回路がメモリに設けられ、バースト長２のデータを記憶する。その他の実施形態はその他の量のデータを記憶する。別の実施形態では、書き込みデータは、メモリコアに記憶され、通常の形式でＧＰＵによって読み出される。別の実施形態では、書き込みデータはバイトレーンの一部又は並列バスの別の区画を経てメモリに供給され、読み出しデータはバイトレーンの残りの一部へ直ちに供給される。例えば、バイトレーンの最初の４ビットはキャリブレーションデータを送信するため使用され、その他の４ビットがキャリブレーション書き込み演算の結果を読み出すため使用される。その他の可能性には、奇数番目のビットによるメモリ装置への書き込みと、偶数番目のビットによる再読み出しとが含まれる。さらにその他の実施形態が考えられる。
【００１３】
[0024]本明細書に記載された、データインタフェースのためのキャリブレーション動作を実行する実施形態は、様々な利点を提供する。例えば、一部の実施形態では、同じデータパターンが各キャリブレーション動作のため使用される。さらに、本明細書に記載された実施形態では、フィードバックが、比較結果毎に与えられ、頻繁なタイミング調整を可能にする。調整判定は、単一又は多数のキャリブレーションテストデータ書き込み／読み出しサイクルに基づいている。一部の実施形態では、頻繁なタイミング調整は、データ転送インタフェース上のデータ依存性ジッタを改善することを目的として行われる。さらに、一部の実施形態では、キャリブレーション動作の頻度を調整して、システム要件に応じてキャリブレーション動作のため利用される帯域幅の量を変えるようにする。同様に、一つ以上の実施形態では、キャリブレーション動作を可能にするためにメモリ装置又はその他の受信装置に付加的な回路が組み込まれない。
【００１４】
[0025]図１は、データ転送インタフェースを経てメモリ装置１２０に接続されたグラフィックスプロセッシングユニット（ＧＰＵ）１１０の例示的な実施形態のブロック図である。この例示的な実施形態では、データ転送インタフェースは、１本以上のデータ線１１１、１本以上の制御線１１３、及び、１本以上のアドレス線１１５を備えるが、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。ＧＰＵ１１０及びメモリ装置１２０は、データ転送インタフェースを経て接続されるコンポーネント及び／又は装置及び／又はユニットのタイプの単に一例であり、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。
【００１５】
[0026]図２は、並列データインターコネクト２１０を経て接続されたメモリ装置１２０及びＧＰＵ１１０を示している。この例示的な実施形態では、読み出し／書き込みデータ２１５は複数の並列データ線によって転送される。この例示的な実施形態では、データ線２１５は読み出しデータと書き込みデータの両方を転送するため使用されるが、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。読み出しデータ及び書き込みデータが同じ線を共用しないその他の実施形態が可能である。この例示的な実施形態では、メモリ装置１２０は、メモリ装置１２０内部で発生させられた書き込みデータストローブの遷移に応答して、データ線２１５上の書き込みデータを保持する。書き込みデータストローブはクロック信号２１７を分周することにより発生させられるが、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。その他の実施形態では、メモリ装置１２０は、クロック信号２１７の立ち上がり及び／又は立ち下がりエッジに応答して、データを保持する。すなわち、クロック信号２１７は、データストローブ信号として機能する。クロック信号は、この例示的な実施形態では、ＧＰＵ１１０によってメモリ装置１２０へ供給される。ＧＰＵ１１０は、送信装置、コンポーネント及び／又はユニットの単に一例であり、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。同様に、メモリ装置１２０は、受信装置、コンポーネント及び／又はユニットの単に一例であり、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。
【００１６】
[0027]図３は、キャリブレーション制御回路３３０を備え、書き込みデータ出力回路３４０に接続された書き込みデータ遅延ユニット３１０をさらに備えるデータ送信装置の例示的な実施形態のブロック図である。この例示的な実施形態は、送信装置の単に一つの考えられる実施形態であり、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。本実施形態では、データ送信装置はＧＰＵ１１０を備えるが、この場合も特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。書き込みデータ遅延ユニット３１０は、１本以上のデータ線のタイミングを調整することができる回路を備える。一実施形態では、遅延ユニット３１０は遅延ロックループ（ＤＬＬ）回路を備えるが、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。本実施形態では、書き込みデータ出力回路３４０はコアロジックユニットから書き込みデータ３０１を受信する。キャリブレーション制御回路３３０によって通信された情報に応じて、書き込みデータ遅延ユニット３１０は１本以上の書き込みデータ線２１５のタイミングを調整する。本実施形態ではＧＰＵ１１０はクロック発生ユニット３２０をさらに備えるが、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。一部の実施形態では、クロック信号２１７は、送信装置及び／又は受信装置の外部で発生される。
【００１７】
[0028]キャリブレーション制御回路３３０は、キャリブレーション動作中に読み出しデータ２１５を受信してもよい。キャリブレーション動作中に１本以上のデータ線２１５を経て受信されたデータに応じて、キャリブレーション制御回路３３０は、書き込みデータ遅延ユニット３１０を用いて書き込みデータ２１５のタイミングを調整するかどうかを判定する。この例示的な実施形態の種々の態様は、残りの図と併せて以下の説明を考慮して、より良く理解される。
【００１８】
[0029]図４は、１本以上の書き込みデータ線２１５と書き込みデータストローブ信号８１７との間の例示的なタイミング関係を表すタイミングチャートである。データストローブ信号８１７は、本実施形態及び後述の実施形態では受信装置内部、本例ではメモリ装置内部で発生させられる。データストローブ信号８１７は、（本実施形態ではクロック信号２１７のような）送信装置から受信されたクロック信号を分周することにより発生させられるが、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。本タイミングチャートは、キャリブレーション無しの動作を表す。本実施形態では、ＧＰＵ１１０は書き込みデータ信号の遷移を発生させる。ここで、書き込みデータストローブ８１７の立ち上がりエッジは、ビットタイムのほぼ中央、例えば、図４に表されているような時点４１０に出現する。図４においてわかるように、新しい書き込みデータ値は、データストローブ信号８１７の各立ち上がりエッジによってデータ線２１５に打ち込まれる。なお、本実施形態では、送信装置は受信装置で発生させられたデータストローブ信号を知らないので、送信装置はストローブ信号の立ち下がりエッジに応答してデータを駆動しない。しかし、これは、１本以上のデータ線とストロープ信号との間の単に例示的な関係であり、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。
【００１９】
[0030]本明細書で使用されるような用語「ビットタイム」は、データ信号又はデータ転送インターコネクト上の１個のデータパルス（１ビット）の近似的な持続時間を意味する。例えば、１データ線当たり１００Ｍｂｐｓのビットレートをもつデータ転送インターコネクトは、１０ｎｓのビットタイムを保有する。すなわち、本実施形態では、１ビットのデータは、１０ｎｓ毎にデータ転送インターコネクトの１本の線を通して転送される。これは単にビットタイムの一例であり、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。同様に、本明細書で使用されているように、信号に関する用語「遷移」は、第１の論理電圧レベルから第２の論理電圧レベルへの状態の変化を示すことが意図されている。
【００２０】
[0031]前述のように、データ転送レートがデータ転送インタフェース上で増加するにつれて、雑音及び様々な信号の間のタイミングスキューのような問題は、データ転送インタフェースの潜在的な性能を制限することに関して徐々に重要な役割を果たしている。図１〜４に前述された例示的なインタフェースのようなインタフェースでは、潜在的な性能を制限する一つの問題は、クロック信号と関連したデータ線との間のタイミングスキューである。このタイムスキューは、プリント回路板上の様々な信号の種々の電気トレース長、送信装置と受信装置とを接続する電気接続の電気特性の変動、様々な信号のための送信装置での駆動強度の変動などを含む多数の要因のうちの何れかに起因する。１本以上のデータ線とクロック信号との間のタイミングスキューは、受信装置がデータをサンプリングするときに影響を与える。理想的には、受信装置は、最適セットアップ及びホールド時間を提供する時点でデータ線をサンプリングする。データ線とクロック信号との間のタイミングスキューは、受信装置がほぼ最適時点でデータ線をサンプリングしないという結果をまねく。
【００２１】
[0032]本明細書に記載された例示的な実施形態では、受信装置はストローブ信号の立ち上がりエッジに応答してデータを保持するが、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。その他の実施形態では、データはストローブ信号の立ち上がりエッジと立ち下がりエッジとの両方に応答して保持される。一実施形態では、ＧＰＵ１１０とメモリ装置１２０との間のインタフェースは、ダブルデータレート（ＤＤＲ）メモリインタフェースを備える。このような実施形態では、ストローブ信号の周期毎に、２回のデータ転送が起こる。データがストローブ信号の立ち上がりエッジと立ち下がりエッジの両方に応答して保持されるＤＤＲインタフェース及びその他のインタフェースでは、付加的なタイミング問題がストローブ信号のデューティサイクルの変動に起因して現れる。
【００２２】
[0033]図５は、１本以上の書き込みデータ線２１５と書き込みデータストローブ信号８１７との間の例示的なタイミング関係を表すタイミングチャートである。前述の通り、書き込みデータストローブ信号８１７はクロック信号を分周することにより少なくとも部分的に受信装置内部で発生させられるが、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。このチャートは、例示的なキャリブレーション動作を表す。本実施形態では、ＧＰＵ１１０は、ビットタイムのほぼ半分だけ書き込みデータ信号２１５を遅延させる。その結果として、メモリ装置１２０は、データストローブ信号の立ち上がりエッジが現れるのとほぼ同時に、例えば、図５に示されているような時点５１０で、書き込みデータ信号の遷移を受信する。しかし、これは１本以上のデータ線とストローブ信号との間の単に例示的な関係であり、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。
【００２３】
[0034]図６は、１本以上の書き込みデータ線２１５と、メモリ装置１２０のような受信装置によって受信又は発生させられるような書き込みデータストローブ信号８１７との間の例示的なタイミング関係を表すタイミングチャートである。このチャートは例示的なキャリブレーション動作を表す。本実施形態では、ＧＰＵ１１０は、ビットタイムのほぼ半分だけ書き込みデータ信号２１５を遅延させる。本実施形態では、メモリ装置１２０のような受信装置はデータストローブ信号の立ち上がりエッジに応答してデータを保持する。同様に、本実施形態では、ＧＰＵ１１０は２回の連続したビットタイムの間に２個のキャリブレーションテスト値を出力する。本実施形態では、テスト値は「Ａ」及び「Ｂ」というラベルが付けられる。この例示的なタイミングチャートでは、時点６１０において、書き込みデータストローブ信号８１７が論理的ローレベルから論理的ハイレベルに遷移する（立ち上がりエッジ）。その結果として、線２１５上のキャリブレーションテストデータはメモリ装置１２０によってサンプリングされる。本実施形態では、時点６１０にデータ線２１５上に存在するテスト値は、テスト値Ｂである。テスト値ＢはＧＰＵ１１０へ返送され、データストローブ信号８１７の立ち上がりエッジでサンプリングされたテスト値に応答してデータ線２１５上のタイミングが調整される。本実施形態では、２個のテスト値のうちの２番目がメモリ装置１２０によってサンプリングされているので、ＧＰＵ１１０はデータ線２１５のタイミングを進める。それ故に、通常の動作（データ線が半ビットタイムだけ遅延されていない）中に、データストローブ８１７の立ち上がりエッジがビットタイムの中央のより近くで現れ、よって、データ線２１５の最適なセットアップ及びホールド時間を保証することに役立つ。
【００２４】
[0035]図７は、１本以上の書き込みデータ線２１５と、メモリ装置１２０のような受信装置によって受信又は発生させられたような書き込みデータストローブ信号８１７との間の例示的なタイミング関係を表すタイミングチャートである。本チャートは例示的なキャリブレーション動作を表す。本実施形態では、ＧＰＵ１１０は、ビットタイムのほぼ半分だけ書き込みデータ信号２１５を遅延させる。本実施形態では、メモリ装置１２０のような受信装置は、データストローブの立ち上がりエッジに応答してデータを保持する。同様に、本実施形態では、ＧＰＵ１１０は、２回の連続したビットタイムの間に２個のキャリブレーションテスト値を出力する。本実施形態では、テスト値は「Ａ」及び「Ｂ」というラベルが付けられる。この例示的なタイミングチャートでは、時点７１０において、書き込みデータストローブ８１７が論理的ローレベルから論理的ハイレベルに遷移する（立ち上がりエッジ）。その結果として、線２１５上のキャリブレーションテストデータはメモリ装置１２０によってサンプリングされる。本実施形態では、時点７１０にデータ線２１５上に存在するテスト値はテスト値Ａである。テスト値ＡはＧＰＵ１１０へ返送され、データストローブ８１７の立ち上がりエッジでサンプリングされたテスト値に応答してデータ線２１５上のタイミングが調整される。本実施形態では、２個のテスト値のうちの１番目がメモリ装置１２０によってサンプリングされているので、ＧＰＵ１１０はデータ線２１５のタイミングを遅らせる。それ故に、通常の動作（データ線が半ビットタイムだけ遅延されていない）中に、データストローブ８１７の立ち上がりエッジがビットタイムの中央のより近くで現れ、よって、データ線２１５の最適なセットアップ及びホールド時間を保証することに役立つ。
【００２５】
[0036]図８は、キャリブレーションテストデータレジスタ８２０を備える回路８００の例示的な実施形態の概略図である。回路８００の例示的な実施形態は、一実施形態ではメモリ装置１２０のような、データ転送インタフェースに接続された受信回路及び／又はユニットに組み込まれる。
【００２６】
[0037]回路８００は、書き込みデータ信号２１５及び基準電圧信号８０１を受信することができるコンパレータ８１０をさらに備える。書き込みデータ２１５上の電圧レベルがＶＲｅｆ８０１を超えるならば、コンパレータ８１０はその出力を論理的ハイ電圧レベルに駆動する。書き込みデータ２１５上の電圧レベルがＶＲｅｆ８０１未満であるならば、コンパレータ８１０はその出力を論理的ロー電圧レベルに駆動する。コンパレータ８１０の出力はフリップフロップ８５０の入力に接続される。この例示的な実施形態はシングルエンド信号方式を考えているが、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。例えば、ディファレンシャル信号方式を使用するその他の実施形態が考えられる。一部の実施形態では、ディファレンシャル信号方式がデータ線及び／又はクロック信号のため使用される。
【００２７】
[0038]例示的な回路８００にさらに組み込まれているのは、書き込みデータストローブ発生ユニット８３０である。クロック信号２１７は、回路８００で受信される。書き込みデータストローブ発生回路８３０は、一つの例示的な実施形態では、書き込みデータストローブ８１７を生成するためクロック信号２１７を分周するＰＬＬ回路を備える。一実施形態では、クロック信号２１７は５００ＭＨｚの周波数を有し、書き込みデータストローブ８１７は４ＧＨｚの周波数を有する。
【００２８】
[0039]この例示的な実施形態では、フリップフロップ８５０は書き込みデータストローブ８１７の立ち上がりエッジに応答してその入力でデータを保持する。フリップフロップ８５０の出力は受信装置内部のその他の回路、例えば、コアロジックユニットに接続されるが、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。一実施形態では、フリップフロップ８５０の出力はキャリブレーション書き込みデータレジスタ８２０に接続されるが、この場合も、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。
【００２９】
[0040]キャリブレーション書き込みデータレジスタ８２０はキャリブレーション書き込みデータを記憶し、そのデータがＧＰＵ１１０で利用できるようにする。別の実施形態では、フリップフロップ８５０の出力は、最初にその出力をレジスタ又はその他の記憶回路に記憶することなく直ちにＧＰＵ１１０へ送信される。
【００３０】
[0041]図８は、信号データ線２１５を受け取る回路８００を表しているが、データストローブ信号及び／又はクロック信号が複数のデータ線と関連付けられるその他の実施形態も考えられる。一実施形態では、１個のデータストローブ信号は８本のデータ線と関連付けられる。別の例示的な実施形態では、１個のデータストローブ信号は９本のデータ線と関連付けられる。当然ながら、これらはデータストローブ信号と関連付けられるデータ線の本数の単に例であり、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。
【００３１】
[0042]回路８００は、回路、コンポーネント及び／又はユニットの特有の配置を用いて説明されているが、その他の配置及び／又は構成が考えられる。特許請求の範囲に記載された発明の主題の範囲は例示的な回路８００に関して説明された特定の実施形態に限定されない。
【００３２】
[0043]図９は、データインタフェースキャリブレーション方法の例示的な実施形態のフローチャートである。ブロック９１０で、１個以上のデータ信号のタイミングがビットタイムのほぼ半分だけ変更される。本実施形態では、タイミングの変更は１個以上のデータ信号の遅延を含む。その他の実施形態では、１個以上のデータ信号はタイミングを変更するため進められる。ブロック９２０で、キャリブレーションテストデータが１個以上のデータ信号を使用して受信装置に書き込まれる。ブロック９３０で、テスト値が受信装置から読み出される。ブロック９４０で、１個以上のデータ信号のタイミングが、受信装置から返送された読み出しデータの値に少なくとも部分的に応じて、クロック信号に関して調整される。特許請求の範囲に記載された発明の主題による実施形態は、ブロック９１０〜９４０のすべてのブロック、すべてにとどまらないブロック、又は、すべてに満たないブロックを含む。さらに、ブロック９１０〜９４０の順序は単に一例の順序であり、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。
【００３３】
[0044]図１０は、データインタフェースキャリブレーション方法の例示的な実施形態のフローチャートである。ブロック１０１０で、１個以上のデータ信号がビットタイムのほぼ半分だけ遅延させられる。ブロック１０２０で、第１のテスト値が第１のビットタイム中に、第２のテスト値が第２のビットタイム中に受信装置へ出力される。ブロック１０３０で、テスト値が受信装置から読み出される。ブロック１０４０で、受信装置から返送されたテスト値が第１のテスト値と一致するかどうかが判定される。受信装置から返送されたテスト値が第１のテスト値と一致する場合、１個以上のデータ信号のタイミングはブロック１０５０で進められる。受信装置から返送されたテスト値が第１のテスト値と一致しない場合、１個以上のデータ信号のタイミングはブロック１０６０で遅延させられる。特許請求の範囲に記載された発明の主題による実施形態は、ブロック１０１０〜１０６０のうちのすべてのブロック、すべてにとどまらないブロック、又は、すべてに満たないブロックを含む。さらに、ブロック１０１０〜１０６０の順序は単に一例の順序であり、特許請求の範囲に記載された発明の主題の範囲はこの点で限定されない。
【００３４】
[0045]図１１は、コンピューティングプラットフォーム１１００の例示的な実施形態のブロック図である。コンピューティングプラットフォーム１１００は、ＣＰＵ１１１０と、ＣＰＵ１１１０に接続されたメモリコントローラハブ１１２０とを含む。メモリコントローラハブ１１２０は、システムメモリ１１３０、ＧＰＵ１１５０、及び、入出力ハブ１１４０にさらに接続される。ＧＰＵ１１５０は、ＣＲＴディスプレイ、フラットパネルＬＣＤディスプレイ又はその他のタイプのディスプレイ装置を備えるディスプレイ装置１１６０にさらに接続される。さらに、ＧＰＵ１１５０にはグラフィックスメモリ１１７０が接続される。この例示的な実施形態では、グラフィックスメモリ１１７０は、並列データインタフェースを経てＧＰＵ１１５０に接続される。ＧＰＵ１１５０は、図３に関して前述された回路に類似した回路を備える。
【００３５】
[0046]例示的なプラットフォーム１１００はグラフィックスメモリ１１７０とＧＰＵ１１５０との間の並列データインタフェースを用いて説明されているが、その他の実施形態はプラットフォーム内部のその他のコンポーネント間に並列データインタフェースを含んでもよい。さらに、前述のキャリブレーションの実施形態は、広範囲のコンピューティングプラットフォームコンポーネント及び／又は装置の何れに組み込んでもよい。すなわち、コンピューティングプラットフォーム１１００の何れのコンポーネントが、本明細書に記載された例示的な送信装置及び受信装置の実施形態にしたがって構成された送信装置及び／又は受信装置を備えていてもよい。さらに、本明細書に記載されたデータ転送インタフェースはコンピューティングプラットフォーム内の種々のコンポーネントを接続するため使用されるが、その他の実施形態は、チップ内データ転送のため使用されるデータ転送インタフェースを含む。また、パッケージを共有する異なる集積回路ダイの間にデータ転送を含むさらにその他の実施形態が考えられる。
【００３６】
[0047]例示的なシステム１１００は特有のコンポーネントの構成を用いて示されているが、広範囲の構成の何れかを使用するその他の実施形態が考えられる。さらに、本明細書に記載された例示的な実施形態は、コンピューティングプラットフォームと、ゲーミングコンソール及び装置と、携帯電話機と、携帯情報端末と、音楽プレーヤーと、通信ネットワークコンポーネントなどを含む広範囲の電子装置の何れにおいても使用される。
【００３７】
[0048]以上の説明中、特許請求の範囲に記載された発明の主題の様々な態様が記載されている。説明の目的のため、システム及び構成は、特許請求の範囲に記載された発明の主題の完全な理解が得られるように記載されている。しかし、本開示内容を利用できる当業者には、特許請求の範囲に記載された発明の主題が特定の細部を用いることなく実施されることが明白であろう。その他の例では、特許請求の範囲に記載された発明の主題がわかりにくくならないように、よく知られている特長は省略及び／又は簡略化されている。ある種の特長が図示され及び／又は明細書中に記載されているが、今度は当業者が多数の変更物、置換物、変形物及び／又は等価物を思い付くであろう。したがって、特許請求の範囲は、特許請求の範囲に記載された発明の主題の真の範囲に含まれるようなあらゆる変更及び／又は変形を網羅することが意図されていることが理解されるべきである。
【図面の簡単な説明】
【００３８】
【図１】データ転送インタフェースを経てメモリ装置に接続されたグラフィックスプロセッシングユニットの例示的な実施形態を示すブロック図である。
【図２】メモリ装置から読み出しデータを受信し、書き込みデータ及びクロック信号をメモリ装置へ送信するグラフィックスプロセッシングユニットの例示的な実施形態を示すブロック図である。
【図３】キャリブレーション制御回路及び書き込みデータ遅延ユニットを備えるデータ送信装置の例示的な実施形態を示すブロック図である。
【図４】書き込みデータと、書き込みデータの書き込みデータストローブ信号との近似的な関係とを表す例示的なタイミングチャートである。
【図５】遅延書き込みデータと、遅延書き込みデータの書き込みデータストローブ信号との近似的な関係とを表す例示的なタイミングチャートである。
【図６】キャリブレーションテストデータと書き込みデータストローブとを表す例示的なタイミングチャートである。
【図７】キャリブレーションテストデータと書き込みデータストローブとを表す例示的なタイミングチャートである。
【図８】キャリブレーションテストデータレジスタを備える受信装置の例示的な実施形態の概略図である。
【図９】データインタフェースキャリブレーション方法の例示的な実施形態のフローチャートである。
【図１０】データインタフェースキャリブレーション方法の例示的な実施形態のフローチャートである。
【図１１】グラフィックスメモリに接続されたグラフィックスプロセッシングユニットを備える例示的なコンピューティングプラットフォームのブロック図である。
【符号の説明】
【００３９】
１１０…グラフィックスプロセッシングユニット、１１１…データ線、１１３…制御線、１１５…アドレス線、１２０…メモリ装置、２１０…並列データインターコネクト、２１５…読み出し／書き込みデータ線、キャリブレーションテストデータ線、２１７…クロック信号、３０１…コアロジックユニットからの書き込みデータ、３１０…書き込みデータ遅延ユニット、３２０…クロック発生ユニット、３３０…キャリブレーション制御回路、３４０…書き込みデータ出力回路、４１０，５１０，６１０，７１０…時点、８００…回路、８０１…基準電圧信号、８１０…コンパレータ、８１７…書き込みデータストローブ信号、８２０…キャリブレーションテストデータレジスタ、８３０…書き込みデータストローブ発生ユニット、８５０…フリップフロップ、１１００…コンピューティングプラットフォーム、１１１０…ＣＰＵ、１１２０…メモリコントローラハブ、１１３０…システムメモリ、１１４０…入出力ハブ、１１５０…ＧＰＵ、１１６０…ディスプレイ装置、１１７０…グラフィックスメモリ。
【図１】
0004651636.tif 000002
【図２】
0004651636.tif 000003
【図３】
0004651636.tif 000004
【図４】
0004651636.tif 000005
【図５】
0004651636.tif 000006
【図６】
0004651636.tif 000007
【図７】
0004651636.tif 000008
【図８】
0004651636.tif 000009
【図９】
0004651636.tif 000010
【図１０】
0004651636.tif 000011
【図１１】
0004651636.tif 000012