(58)【調査した分野】(Int.Cl.,DB名)
前記データ信号、書き込みクロック信号、及び参照信号を受信することは、前記データ信号に対して単位間隔の半分の位相シフトを伴う前記参照信号を受信することを備える請求項1の方法。
前記データ信号、書き込みクロック信号、及び参照信号を送ることは、前記データ信号に対して単位間隔の半分の位相シフトを伴う前記参照信号を送ることを備える請求項9の方法。
前記サンプリングされた参照信号の前記位相を比較することは、前記1つ以上のエッジ遷移の検出に基づいて前記参照信号の位相計測を計算することを備える請求項12の方法。
前記位相差を調節することは、前記参照信号における前記位相シフトに基づいて前記データ信号及び前記書き込みクロック信号の少なくとも一方に位相遅延を導入することを備える請求項10の方法。
前記第1の位相補間器は前記位相誤差信号を受信すると共に前記位相誤差信号に基づいて前記書き込みクロック信号の位相を調節することにより前記書き込みクロック信号を前記データ信号にアラインするように構成される請求項20のシステム。
前記位相遅延は、前記書き込みクロック信号及び前記データ信号が前記メモリデバイスに到達するときに前記書き込みクロック信号及び前記データ信号が互いに対して中心でアラインされるように前記書き込みクロック信号における位相遅延を備える請求項26のシステム。
【発明を実施するための形態】
【0020】
以下の詳細な説明は、本発明に従う例示的な実施形態を示す添付の図面を参照する。他の実施形態も可能であり、また本発明の精神及び範囲内で実施形態に対して修正がなされ得る。従って、詳細な説明は本発明を限定することを意図されていない。むしろ、本発明の範囲は添付の特許請求の範囲によって画定される。
【0021】
以下に説明されるように、本発明は、ソフトウエア、ハードウエア、ファームウエア、及び/又は図面に示される構成要素の多くの異なる実施形態において実装され得ることが当業者には明らかであろう。従って、本発明の実施形態の動作的な挙動は、ここに提示されるレベルの詳細を与えられて実施形態の修正及び変形が可能であるという理解の下で説明されることになる。
【0022】
図1は処理ユニット及びメモリデバイスを伴う例示的なコンピュータシステム100を示す図である。コンピュータシステム100は、処理ユニット110、メモリデバイス120、データバス130
7〜130
0、及びクロック140(例えば書き込みクロック)を含む。
【0023】
処理ユニット110は、データバス130
7〜130
0を介してメモリデバイス120へデータを送信する。処理ユニット110は、例えば、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、又はメモリ制御器であり得る。例示の目的で、データバス130
7〜130
0は8ビットデータバスとして示されている。ここでの説明に基づいて、関連分野を含めた当業者であれば、データバス130
7〜130
0のバス幅が変化し得る(例えば16ビット、32ビット等)ことを認識するであろう。
【0024】
メモリデバイス120は、処理ユニット110から伝送されたデータを記憶する。データ(処理ユニット110から伝送されたデータ)の受信及び記憶は、メモリデバイス120への「書き込み(writing)」として知られている。メモリデバイス120は同期インタフェースを伴って構成されてよく、メモリデバイス120は、データバス130
7〜130
0上のデータを処理する前に同期インタフェースにおいて書き込みクロック140を待つ。例えば、メモリデバイス120は、データバス130
7〜130
0からのデータを抽出するために、受信した書き込みクロック140にアラインされた内部クロック信号を生成することができる。
【0025】
図2は、メモリデバイス120による適切なデータ回復を代表する、コンピュータシステム100のための例示的な書き込みタイミング
図200を示す図である。書き込みタイミング
図200は、データ信号130
0に対するデータアイ及び書き込みクロック140のためのタイミングを含み、データアイは、書き込みクロック140がデータ信号130
0をサンプリングするために用いられ得る時間の周期210を定義する(例えば、メモリデバイス120による適切なデータ回復は時間の周期210内で起こり得る)。データアイは、例えば、有効バイナリ値を伴うデータ信号130
0の部分を参照する。ここで、書き込みクロック140は、データ信号130
0に対して中央にアラインされており、そして書き込みクロック140がHIGHの場合(又は論理値の「1」を有している場合)にデータアイ内でデータ信号130
0をサンプリングする。
【0026】
図3は、メモリデバイス120による適切なデータ回復を代表していない、コンピュータシステム100のための例示的な書き込みタイミング
図300を示す図である。書き込みタイミング
図200と同様、書き込みタイミング
図300は、データ信号130
0に対するデータアイ及び書き込みクロック140のためのタイミングを含む。しかし、書き込みクロック140はデータ信号130
0に対して相対的な位相差310(又はタイミングスキュー(timing skew))を有しており、位相差310は、データ信号130
0をサンプリングするのに十分な時間(例えばメモリデバイス120がデータ信号130
0をラッチするのに十分な時間)をメモリデバイス120に提供しないであろう。データ信号130
0と書き込みクロック140の間での相対的な位相差310における変動は、例えばコンピュータシステム100における温度及びジッタのような種々の因子に起因し得る。例示的な書き込みタイミング
図300においては、相対的な位相差310は、データアイ210の中心と、書き込みクロック140がデータ信号130
0をサンプリングする場合(例えば書き込みクロック140がHIGHである場合又は論理値の「1」を有している場合)の書き込みクロック140の中心との間の差によって定義され得る。
【0027】
コンピュータシステム100の動作周波数が高くなるに従って、メモリデバイス120は、より高速な周波数でデータバス130
7〜130
0をサンプリングすることが必要なだけでなく、適切なタイミングでデータをサンプリングする必要がある。データの適切なサンプリングを確実にするために、書き込みクロック140はデータバス130
7〜130
0に対して最適にアラインされるべきである。データバス130
7〜130
0に対して書き込みクロック140をアラインするために、付加的な信号がコンピュータシステム100内に実装されて、処理ユニット110から伝送されるデータをメモリデバイス120が適切に回復するように、データバス130
7〜130
0と書き込みクロック140の間での相対的な位相差(又はタイミングスキュー)が調節され得る。
【0028】
図4はメモリデバイスにおける書き込みタイミングを調節するように構成されるコンピュータシステム400の実施形態を示す図である。コンピュータシステム400は、処理ユニット410(例えばCPU、GPU、ノースブリッジデバイス等)、メモリデバイス420、参照信号430、データバス130
7〜130
0、及び書き込みクロック140を含む。実施形態においては、処理ユニット410及びメモリデバイス420は回路基板上の集積回路(IC)デバイスであり、これら2つのICデバイスは、参照信号430、データバス130
7〜130
0、及び書き込みクロック140によって通信可能に結合され、参照信号430、データバス130
7〜130
0、及び書き込みクロック140は、ワイヤ、相互接続、又は回路基板トレースであり得る。別の実施形態においては、処理ユニット410及びメモリデバイス420は単一のICデバイス上に集積化されており、参照信号430、データバス130
7〜130
0、及び書き込みクロック140が処理ユニット410をメモリデバイス420に通信可能に結合している。
【0029】
データバス130
7〜130
0及び書き込みクロック140は、メモリデバイス420へデータを書き込むために用いられる処理ユニット410及びメモリデバイス420の入力/出力(I/O)ポートに接続される。処理ユニットをメモリデバイスに接続するI/Oポート(例えばDQピン及び書き込みクロックピン)は、関連分野を含めた当業者に知られている。実施形態においては、参照信号430は、以下に説明される機能を実行するために、処理ユニット410における新規のI/Oポート又は既存のI/Oポートのいずれかに接続され得ると共にメモリデバイス420における対応する新規のI/Oポート又は既存のI/Oポートのいずれかに接続され得る。以下に更に説明されるように、参照信号430は、本発明の実施形態に従い単方向信号又は双方向信号であり得る。
【0030】
更なる実施形態においては、参照信号430は、処理ユニット410における既存のI/Oポートに接続され得ると共にメモリデバイス420における既存の対応するI/Oポートに接続され得、処理ユニット410及びメモリデバイス420の既存のI/Oポートは2つ以上の機能のために用いられ得る。例えば、非書き込みモードの動作においては、これら既存のI/Oポートは、処理ユニット410及びメモリデバイス420の既存の機能を実装するために用いられ得る。書き込みモードの動作においては、これらのI/Oポートは、以下に更に説明されるように、処理ユニット410とメモリデバイス420の間で参照信号430を通信するために用いられ得る。ここでの説明に基づいて、関連分野を含めた当業者であれば、参照信号430は処理ユニット410及びメモリデバイス420における新規のI/Oポート又は既存のI/Oポートの任意の組み合わせに接続され得ることを認識するであろう。
【0031】
実施形態においては、処理ユニット410はGPUである。代替的に別の実施形態においては、処理ユニットはCPU又はメモリ制御器であり得る。処理ユニット410は、位相補間器411及び413、データバッファ412
7〜412
0、信号バッファ414、クロックバッファ416、並びに位相ロックループ(PLL)415を含む。位相補間器411及び413は、PLL415からのクロック出力に基づいてそれぞれデータバス130
7〜130
0及び参照信号430へと予め定められた位相を導入する。PLL415のクロック出力は、書き込みクロック140を生成するためにも用いられる。加えて、データバッファ412
7〜412
0、信号バッファ414、及びクロックバッファ416は、処理ユニット410からメモリデバイス420へのそれぞれデータバス130
7〜130
0、参照信号430、及び書き込みクロック140を駆動する。位相補間器、PLL、及びバッファは関連分野を含めた当業者に知られている。
【0032】
ここでの説明に基づいて、関連分野を含めた当業者であれば、本発明の実施形態は本発明の範囲及び精神に含まれる他の種類の処理ユニットと共に実装され得ることを認識するであろう。更に、関連分野を含めた当業者であれば、データバッファ412
7〜412
0の数はデータバスのサイズに基づいており、データバッファの数はデータバスのサイズに従って変化し得ることを認識するであろう。
【0033】
図4を参照すると、実施形態においては、メモリデバイス420はダイナミックランダムアクセスメモリ(DRAM)デバイスである。メモリデバイス420は、位相補間器421及び424、データバッファ422
7〜422
0、信号バッファ425、クロックバッファ426、フィルタ423、並びにバッファ427を含む。データバッファ422
7〜422
0、信号バッファ425、及びクロックバッファ426は、処理ユニット410からのそれぞれデータバス130
7〜130
0、参照信号430、及び書き込みクロック140を受信し、そして受信した信号を有効な電圧ポテンシャルへと再生(例えば増幅)する。受信された信号は、処理ユニット410からメモリデバイス420へのそれらのそれぞれの信号経路に沿って進行するときに、信号の減衰及びデータ完全性の損失を受けるであろう。バッファ427は、クロックバッファ426から位相補間器421及び424へのバッファされた出力を駆動する。データバッファ422
7〜422
0及び信号バッファ425からのバッファされた出力もまた、それぞれ位相補間器421及び424へと送り込まれる。
【0034】
ここでの説明に基づいて、関連分野を含めた当業者であれば、本発明の実施形態は他の種類のメモリデバイスと共に実装され得ることを認識するであろう。これらの他の種類のメモリデバイスは本発明の範囲及び精神に含まれる。
【0035】
実施形態においては、書き込み動作の間、データバス130
7〜130
0がメモリデバイス420に書き込まれるべきデータを搬送する一方で、書き込みクロック140及び参照信号430は、データバス130
7〜130
0のサンプリングを同期するためにメモリデバイス420によって用いられる。メモリデバイス420における書き込みタイミングの説明を容易にするために、データバス130
7〜130
0、書き込みクロック140、及び参照信号430が定義されることになる。更に、説明を簡略化するために、データバス130
7〜130
0全部よりはむしろデータ信号130
0が用いられることになる。以下の説明に基づいて、関連分野を含めた当業者であれば、本発明の実施形態が同じようにデータバス130
7〜130
0に適用可能であることを理解するであろう。
【0036】
図5はデータ信号130
0、参照信号430、及び書き込みクロック140のための書き込みタイミング図の実施形態を示す図である。実施形態においては、参照信号430は、データ信号130
0にエッジをアラインされており、そして単方向信号である。更に、実施形態においては、参照信号430はデータ信号130
0と実質的に同じデータパターンを有しているので、参照信号430はデータ信号130
0における位相シフトを検出するために用いられ得る。別の実施形態においては、参照信号430は、コンピュータシステム400における位相シフトを検出するために用いられ得るデータサンプルの数(例えば参照信号430における検出可能なエッジ遷移の数)を最大にするために、クロック状パターンを有している。参照信号430におけるエッジ遷移の検出は以下で更に説明される。ここでの説明に基づいて、関連分野を含めた当業者であれば、参照信号430のデータパターンはコンピュータシステム400の設計に基づいて変化し得ることを認識するであろう。
【0037】
データ信号130
0に関しては、参照信号430は、本発明の実施形態に従い単位間隔(unit interval)(UI)の半分だけデータ信号130
0から位相シフトされており、ここでUIはデータ信号130
0における遷移(例えばHIGHからLOWへの遷移又はLOWからHIGHへの遷移)の間の最小の時間間隔を参照する。例えば参照信号430がデータ信号130
0に対してエッジにアラインされていない場合(例えば参照信号430がデータ信号130
0に対して中央にアラインされている場合)、データ信号130
0は、データ信号130
0における位相シフトを検出するために参照信号430が用いられ得る前に、UIの半分までシフトすることができる。従って、データ信号130
0に対して参照信号を相対的にUIの半分シフトさせる場合、データ信号130
0における位相シフトはより高い感度で検出され得る(例えば参照信号430における最小の位相シフトで)。更に、実施形態においては、書き込みクロック140はデータ信号130
0に対して中央にアラインされている。データ信号130
0、参照信号430、及び書き込みクロック140の間の相対的な位相シフトは、関連分野を含めた当業者に知られているように、PLL415並びに位相補間器411及び413によって生成され得る。このようにして、データ信号130
0、参照信号430、及び書き込みクロック140の間の相対的な位相シフトが、処理ユニット410からメモリデバイス420への信号の伝送に先立ち各信号に導入される。
【0038】
図4を参照すると、メモリデバイス420は、参照信号430における1つ以上のエッジ遷移の検出に基づいて参照信号430における位相シフトを検出する。特に、位相補間器424は、信号バッファ425からのバッファされた出力をサンプリングすると共にバッファされた出力の位相を検出し、この場合、書き込みクロック140(バッファ427の出力を介しての)が参照信号430をサンプリングするためのクロックとして用いられる。参照信号430の位相は、参照信号430における1つ以上のエッジ遷移の検出によって計算され得る。時間経過に伴い、フィルタ423は、位相補間器424からの位相測定(参照信号430の)を比較し、そして位相誤差信号を計算する。時間経過に伴い、信号のエッジ遷移を検出し、信号の位相を測定し、そして信号における位相誤差を計算するための方法及び技術は、関連分野を含めた当業者に知られている。
【0039】
フィルタ423からの位相誤差信号は、時間経過に伴いデータ信号130
0と書き込みクロック140の間での相対的な位相差を調節するために用いられ得る。実施形態においては、位相誤差信号は、位相補間器421及び424の両方に送り込まれる。位相補間器421に関しては、位相誤差信号は、データ信号130
0若しくは書き込みクロック140のいずれか又はデータ信号130
0及び書き込みクロック140の両方において位相遅延を導入するために用いられ得る。例えば
図3を参照すると、位相誤差信号は、書き込みクロック140がデータ信号130
0に対して中心にアラインされるように(
図2の書き込みタイミング
図200と同様に)、書き込みクロック140に位相遅延を導入するために用いられ得る。代替案においては、位相誤差信号は、データ信号130
0が書き込みクロック140に対して中心にアラインされるように、データ信号130
0に位相遅延を導入するために用いられ得る。位相補間器424に関しては、実施形態において、位相誤差信号は、書き込みクロック140に位相遅延を導入して参照信号430のサンプリングを調節するために用いることができ、結果として位相補間器424とフィルタ423の間にフィードバックメカニズムを作り出して時間経過に伴い位相誤差を更新することができる。更に別の代替案においては、位相誤差信号は、上述したようなタイミングアラインメント目的に対して、データ信号130
0及び書き込みクロック140の両方に位相遅延を導入するために用いられ得る。書き込みクロック140及びデータ信号130
0に位相遅延を導入する方法及び技術は、関連分野を含めた当業者に知られている。
【0040】
要約すると、
図4に関しては、メモリデバイス420が、参照信号430をサンプリングすると共に時間経過に伴い参照信号430における位相シフトに基づいて位相誤差信号を生成する。この位相誤差信号は、データ信号130
0若しくは書き込みクロック140のいずれか又はデータ信号130
0及び書き込みクロック140の両方を遅延させるために位相補間器421によって用いられ得る結果、書き込みクロック140は、データ信号130
0をサンプリングするために位相補間器421によって用いられるときに、データ信号130
0に対して最適にアラインされ得る。
【0041】
本発明の別の実施形態においては、位相誤差信号は、処理ユニットによって計算され得るし、そしてデータ信号130
0又は書き込みクロック140が書き込み動作のためにメモリデバイスへ送信される前に、データ信号130
0若しくは書き込みクロック140のいずれか又はデータ信号130
0及び書き込みクロック140の両方に適用され得る。
図6はメモリデバイスにおける書き込みタイミングを調節するように構成される別の実施形態のコンピュータシステム600を示す図である。コンピュータシステム600は、処理ユニット610、メモリデバイス620、参照信号430、データバス130
7〜130
0、及び書き込みクロック140を含む。
【0042】
図4のコンピュータシステム400と同様、実施形態においては、処理ユニット610及びメモリデバイス620は回路基板上のICデバイスであり、これら2つのICデバイスは、参照信号430、データバス130
7〜130
0、及び書き込みクロック140によって通信可能に結合され、参照信号430、データバス130
7〜130
0、及び書き込みクロック140は、ワイヤ、相互接続、又は回路基板トレースであり得る。別の実施形態においては、処理ユニット610及びメモリデバイス620は単一のICデバイス上に集積化されており、参照信号430、データバス130
7〜130
0、及び書き込みクロック140が処理ユニット610をメモリデバイス620に通信可能に結合している。
【0043】
実施形態においては、メモリデバイス620は、データバッファ422
7〜422
0、信号バッファ425及び680、クロックバッファ426、サンプリング器(samplers)660及び670、並びにバッファ427を含む。サンプリング器660及び670は、それぞれデータバス130
7〜130
0及び参照信号430をサンプリングし、この場合、信号をサンプリングするためのクロックとして書き込みクロック140(バッファ427の出力を介した)が用いられる。サンプリング器660及び670の例はラッチであり、ラッチは関連分野を含めた当業者に知られている。一旦サンプリング器670が参照信号430をサンプリングしたら、サンプリングされた信号は信号バッファ680を介して処理ユニット610へ送り戻される。
【0044】
サンプリングされた信号は、本発明の実施形態に従い、参照信号430を処理ユニット610からメモリデバイス620へ伝送するために用いられたのと同じI/Oポートを介してメモリデバイス620から処理ユニット610へと伝送され得る。サンプリングされた信号をメモリデバイス620から処理ユニット610へと伝送するために同じI/Oポートが用いられる場合には、参照信号430は双方向信号と考えられる。代替的に別の実施形態においては、サンプリングされた信号は、参照信号430を処理ユニット610からメモリデバイス620へ伝送するために用いられたI/Oポートとは異なる処理ユニット610及びメモリデバイス620内のI/Oポートを介してメモリデバイス620から処理ユニット610へと伝送され得る。
【0045】
サンプリングされた信号をメモリデバイス620から受信すると、処理ユニット610は、
図4に関して上述したのと同様にして、サンプリングされた信号を処理する。実施形態においては、処理ユニット610は、フィルタ630、位相補間器411及び640、データバッファ412
7〜412
0、信号バッファ414及び650、クロックバッファ416、並びにPLL415を含む。処理ユニット610は、メモリデバイス620からのサンプリングされた参照信号における位相シフトを検出する。特に、位相補間器640は、サンプリングされ(サンプリング器670から)そしてバッファリングされた参照信号を信号バッファ650から受信する。このバッファリングされた信号から、位相補間器640はバッファリングされた信号の位相を検出し、この場合、バッファリングされた信号をサンプリングするためにPLL415のクロック出力がクロックとして用いられる。
図4と同様、バッファリングされた信号の位相は、バッファリングされた信号における1つ以上のエッジ遷移の検出によって計算され得る。時間経過に伴い、フィルタ630は、位相補間器640からの位相測定を比較し、そして位相誤差信号を計算する。
【0046】
フィルタ630からの位相誤差信号は、データ信号130
0と書き込みクロック140の間での相対的な位相を調節するために用いられ得る。実施形態においては、位相誤差信号は、位相補間器411に送り込まれる。位相誤差信号は、データ信号130
0若しくは書き込みクロック140のいずれか又はデータ信号130
0及び書き込みクロック140の両方において位相遅延を導入するために用いられ得る。例えば、位相誤差信号は、書き込みクロック140及びデータ信号130
0がメモリデバイス620に到達するときに書き込みクロック140がデータ信号130
0に対して中心にアラインされるように、書き込みクロック140に位相遅延を導入するために用いられ得る。代替案においては、位相誤差信号は、書き込みクロック140及びデータ信号130
0がメモリデバイス620に到達する際にデータ信号130
0が書き込みクロック140に対して中心にアラインされるように、データ信号130
0に位相遅延を導入するために用いられ得る。更に別の代替案においては、位相誤差信号は、上述したようなタイミングアラインメント目的に対して、データ信号130
0及び書き込みクロック140の両方に位相遅延を導入するために用いられ得る。
【0047】
要約すると、
図6に関しては、参照信号430がメモリデバイス620へ及びメモリデバイス620から信号パスを往復した後に、処理ユニット610が参照信号430をサンプリングする。実施形態においては、フィルタ630からの位相誤差信号は、データ信号130
0若しくは書き込みクロック140のいずれか又はデータ信号130
0及び書き込みクロック140の両方に位相遅延を導入するときに、参照信号430の完全な信号パスを考慮に入れる。位相誤差信号は、データ信号130
0若しくは書き込みクロック140のいずれか又はデータ信号130
0及び書き込みクロック140の両方を遅延させるために位相補間器411によって用いられ得る結果、書き込みクロック140は、データ信号130
0をサンプリングするためにメモリデバイス620で用いられるときに、データ信号130
0に対して最適にアラインされ得る。
【0048】
本発明の更に別の実施形態においては、書き込み動作のためにデータ信号130
0又は書き込みクロック140が処理ユニットからメモリデバイスへと伝送されるよりも先に、位相誤差信号が、メモリデバイスによって計算され得ると共にデータ信号130
0若しくは書き込みクロック140のいずれか又はデータ信号130
0及び書き込みクロック140の両方に適用され得る。
図7はメモリデバイスにおける書き込みタイミングを調節するように構成される別の実施形態のコンピュータシステム700を示す図である。コンピュータシステム700は、処理ユニット710、メモリデバイス720、参照信号430、データバス130
7〜130
0、及び書き込みクロック140を含む。
【0049】
図4のメモリデバイス420と同様、メモリデバイス720は、参照信号430における1つ以上のエッジ遷移の検出に基づいて参照信号430における位相シフトを検出する。メモリデバイス720は、位相補間器421及び424、データバッファ422
7〜422
0、信号バッファ425及び680、クロックバッファ426、フィルタ423、並びにバッファ427を含む。位相補間器421及び424、データバッファ422
7〜422
0、信号バッファ425、クロックバッファ426、フィルタ423、並びにバッファ427は、
図4に関して上述したのと同様に動作する。更に、バッファ680は、
図6に関して上述したのと同様に動作する。
【0050】
位相補間器424は、信号バッファ425からのバッファリングされた入力をサンプリングすると共にバッファリングされた出力の位相を検出し、この場合、書き込みクロック140(バッファ427の出力を介した)が参照信号430をサンプリングするためのクロックとして用いられる。参照信号430の位相は、参照信号430における1つ以上のエッジ遷移の検出によって計算され得る。時間経過に伴い、フィルタ423は、位相補間器424からの位相測定(参照信号430の)を比較し、そして位相誤差信号を計算する。
【0051】
本発明の実施形態においては、フィルタ423からの位相誤差信号は、信号バッファ680を介してメモリデバイス720から処理ユニット710へと伝送される。メモリデバイス720からの位相誤差信号を受信すると、処理ユニット710は、データ信号130
0と書き込みクロック140の間での相対的な位相差を調節する。実施形態においては、処理ユニット710は、位相補間器411及び640、データバッファ412
7〜412
0、信号バッファ414及び650、クロックバッファ416、並びにPLL415を含む。位相補間器421、データバッファ412
7〜412
0、信号バッファ414、クロックバッファ416、並びにPLL415は、
図4に関して上述したのと同様に動作する。更に、位相補間器640及び信号バッファ650は、
図6に関して上述したのと同様に動作する。
【0052】
実施形態においては、位相補間器411及び640は、信号バッファ650を介してメモリデバイス720からの位相誤差信号を受信する。位相誤差信号は、データ信号130
0若しくは書き込みクロック140のいずれか又はデータ信号130
0及び書き込みクロック140の両方において位相遅延を導入するために用いられ得る。例えば、位相誤差信号は、書き込みクロック140及びデータ信号130
0がメモリデバイス720に到達するときに書き込みクロック140がデータ信号130
0に対して中心にアラインされるように、書き込みクロック140に位相遅延を導入するために用いられ得る。代替案においては、位相誤差信号は、書き込みクロック140及びデータ信号130
0がメモリデバイス720に到達する際にデータ信号130
0が書き込みクロックに対して中心にアラインされるように、データ信号130
0に位相遅延を導入するために用いられ得る。更に別の代替案においては、位相誤差信号は、上述したようなタイミングアラインメント目的に対して、データ信号130
0及び書き込みクロック140の両方に位相遅延を導入するために用いられ得る。
【0053】
要約すると、
図7に関しては、メモリデバイス720が、参照信号430をサンプリングすると共に時間経過に伴い参照信号430における位相シフトに基づいて位相誤差信号を生成する。この位相誤差信号は、位相補間器411及び640(処理ユニット710内の)がデータ信号130
0若しくは書き込みクロック140のいずれか又はデータ信号130
0及び書き込みクロック140の両方を遅延させるために位相誤差信号を用いることができるようにメモリデバイス720から処理ユニット710へと伝送され得る結果、書き込みクロック140は、データ信号130
0をサンプリングするためにメモリデバイス720で用いられるときに、データ信号130
0に対して最適にアラインされ得る。
【0054】
図8はメモリデバイスにおいて書き込みタイミングを調節するための方法800の実施形態を示す図である。方法800は、例えば、コンピュータシステム400、コンピュータシステム600、又はコンピュータシステム700を用いて起こり得る。ステップ810では、データ信号、書き込みクロック信号、及び参照信号がメモリデバイス、例えばそれぞれ
図4及び6におけるメモリデバイス420及びメモリデバイス620によって受信される。実施形態においては、参照信号のデータパターンはデータ信号のデータパターンと実質的に同等である。更に、実施形態においては、参照信号はデータ信号に対してUIの半分の位相シフトを有している。
【0055】
ステップ820では、参照信号の位相シフトが検出される。実施形態においては、
図4に関して上述した方法と同様に、位相シフトは参照信号におけるエッジ遷移に基づいて検出され得る。参照信号の位相は参照信号における1つ以上のエッジ遷移の検出に基づいて計算することができ、ここでは参照信号の位相は時間経過に伴いシフトし得る。実施形態においては、時間経過に伴う参照信号の位相シフトは、参照信号の位相差又は位相誤差信号を生成するために用いられ得る。
【0056】
ステップ830では、ステップ820で検出された位相シフトに基づいて、データ信号と書き込みクロック信号の間での位相差が調節される。データ信号と書き込みクロック信号の間での位相差を調節するに際して、これらの信号が互いに中央にアラインされるように、データ信号又は書き込みクロック信号のいずれかの位相遅延が調節され得る。実施形態においては、データ信号と書き込みクロック信号が互いに中央にアラインされるように、ステップ820で検出された位相シフトに基づいて書き込みクロック信号の位相遅延が調節され得る。代替的に別の実施形態においては、データ信号と書き込みクロック信号が互いに中央にアラインされるように、ステップ820で検出された位相シフトに基づいてデータ信号の位相遅延が調節され得る。更に別の実施形態においては、データ信号と書き込みクロック信号が互いに中央にアラインされるように、ステップ820で検出された位相シフトに基づいて、データ信号及び書き込みクロック信号の両方の位相遅延が調節され得る。参照信号の位相シフトは時間経過に伴い変化するので、データ信号と書き込みクロック信号の間での位相遅延もまた時間経過に伴い変化する。
【0057】
本発明の種々の態様がソフトウエア、ファームウエア、ハードウエア、又はそれらの組み合わせにおいて実装されてよい。
図9は例示的なコンピュータシステム900を示す図であり、システム900においては、本発明の実施形態又はその部分がコンピュータ可読コードとして実装され得る。例えば、
図8のフローチャート800によって示される方法がシステム900内に実装され得る。本発明の種々の実施形態が、この例示的なコンピュータシステム900に関して説明される。この明細書を読んだ後に、他のコンピュータシステム及び/又はコンピュータアーキテクチャを用いて本発明の実施形態をどのように実装するかは、関連分野を含めた当業者に明らかになろう。
【0058】
尚、この発明の種々の実施形態のシミュレーション、合成及び/又は製造は、一つには、一般的なプログラミング言語(例えばC又はC++)、例えばVerilogHDL、VHDL、AlteraHDL(AHDL)等のハードウエア記述言語(HDL)、若しくは他の利用可能なプログラミングを含むコンピュータ可読コード、及び/又は回路等キャプチュアツール(例えば回路キャプチュアツール)の使用を通して達成され得る。このコンピュータ可読コードは、半導体、磁気ディスク、光学ディスク(例えばCD−ROM、DVD−ROM)を含むあらゆる既知のコンピュータ使用可能媒体内に配置され得る。従って、コードは、インターネットを含む通信ネットワークを介して伝送され得る。上述したシステム及び技術により達成される機能及び/又は提供される構造は、プログラムコードにおいて具現化されるコア(例えばGPUコア)内に表現することができ、また集積回路の生産の一部としてハードウエアに変換され得ることが理解される。
【0059】
コンピュータシステム900は1つ以上のプロセッサ、例えばプロセッサ904を含む。プロセッサ904は特定用途のあるいは汎用のプロセッサであってよい。プロセッサ904は通信基盤(communication infrastructure)906(例えばバス又はネットワーク)に接続される。
【0060】
コンピュータシステム900はまた、主メモリ908、望ましくはランダムアクセスメモリ(RAM)を含み、そして補助メモリ910を含んでいてもよい。補助メモリ910は例えば、ハードディスクドライブ912、リムーバブル記憶ドライブ914、及び/又はメモリスティックを含み得る。リムーバブル記憶ドライブ914はフロッピー(登録商標)ディスクドライブ、磁気テープドライブ、光学ディスクドライブ、フラッシュメモリ等を含み得る。リムーバブル記憶ドライブ914は周知の方法によりリムーバブル記憶ユニット918から読み出し及び/又はリムーバブル記憶ユニット918へ書き込みする。リムーバブル記憶ユニット918はフロッピー(登録商標)ディスク、磁気テープ、光学ディスク等を備えていてよく、リムーバブル記憶ドライブ914によって読み出され且つ書き込まれる。関連分野を含めた当業者に理解されるであろうように、リムーバブル記憶ユニット918はコンピュータソフトウエア及び/又はデータが既に記憶されたコンピュータ使用可能記憶媒体を含む。
【0061】
代替的な実装においては、補助メモリ910は、コンピュータプログラム又は他の命令がコンピュータシステム900に読み込まれることを可能にする他の同様のデバイスを含むことができる。そのようなデバイスは例えばリムーバブル記憶ユニット922及びインタフェース920を含み得る。そのようなデバイスの例は、プログラムカートリッジ及びカートリッジインタフェース(ビデオゲームデバイスにおいて見られるようなもの)、リムーバブルメモリチップ(例えばEPROM又はPROM)及び関連するソケット、並びにソフトウエア及びデータをリムーバブル記憶ユニット922からコンピュータシステム900へ転送することを可能にする他のリムーバブル記憶ユニット922及びインタフェース920を含み得る。
【0062】
コンピュータシステム900はまた通信インタフェース924を含むことができる。通信インタフェース924はソフトウエア及びデータがコンピュータシステム900と外部デバイスの間で転送されることを可能にする。通信インタフェース924はモデム、ネットワークインタフェース(例えばイーサネット(登録商標)カード)、通信ポート、PCMCIAスロット及びカード等を含み得る。通信インタフェース924を介して転送されるソフトウエア及びデータは、電子的、電磁気的、光学的であってよい信号、又は通信インタフェース924によって受け取られることが可能な他の信号の形態にある。これらの信号は通信パス926を介して通信インタフェース924へ供給される。通信パス926は信号を伝え、ワイヤ若しくはケーブル、光ファイバ、電話線、携帯電話リンク、RFリンク又は他の通信チャネルを用いて実装され得る。
【0063】
この文書では、「コンピュータプログラム媒体」及び「コンピュータ使用可能媒体」という用語は、リムーバブル記憶ユニット918、リムーバブル記憶ユニット922、及びハードディスクドライブ912に組み込まれるハードディスクを一般的には参照して用いられる。コンピュータプログラム媒体及びコンピュータ使用可能媒体はまた、主メモリ908及び補助メモリ910等のメモリ半導体(例えばDRAM等)であり得るメモリを参照してよい。これらのコンピュータプログラム製品はコンピュータシステム900にソフトウエアを提供する。
【0064】
コンピュータプログラム(コンピュータ制御論理とも称される)は主メモリ908及び/又は補助メモリ910内に記憶される。コンピュータプログラムはまた、通信インタフェース924を介して受信されてもよい。そのようなコンピュータプログラムは、実行されるときに、ここで論じられる本発明の実施形態をコンピュータシステム900が実施又は実装することを可能にする。特に、コンピュータプログラムは、実行されるときに、上述した
図8のフローチャート800で示される方法におけるステップのような本発明の実施形態のプロセスをプロセッサ904が実施又は実装することを可能にする。従って、そのようなコンピュータプログラムはコンピュータシステム900の制御器を代表する。ソフトウエアを用いて本発明の実施形態が実施又は実装される場合、ソフトウエアは、コンピュータプログラム製品内に記憶され得ると共に、リムーバブル記憶ドライブ914、インタフェース920、ハードドライブ912、又は通信インタフェース924を用いてコンピュータシステム900内にロードされ得る。
【0065】
本発明の実施形態はまた、任意のコンピュータ使用可能媒体上に記憶されるソフトウエアを含むコンピュータプログラム製品に向けられている。そのようなソフトウエアは、1つ以上のデータ処理デバイス内で実行されるときに、データ処理デバイスにここで説明されているように動作させる。本発明の実施形態は、現在知られている又は将来知られることになる任意のコンピュータ使用可能又はコンピュータ可読の媒体を採用する。コンピュータ使用可能媒体の例は、限定はされないが、主記憶デバイス(例えば任意の種類のランダムアクセスメモリ)、補助記憶デバイス(例えばハードドライブ、フロッピー(登録商標)ディスク、CD_ROM、ZIPディスク、テープ、磁気記憶デバイス、光学記憶デバイス、MEMS、ナノテクノロジー記憶デバイス等)、及び通信媒体(例えば有線及び無線通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク、イントラネット等)を含む。
【0066】
本発明の種々の実施形態が上に説明されてきたが、それらは例示のみを目的として提示されたものであり、限定を目的とはしていないことが理解されるべきである。添付の特許請求の範囲において画定されるような本発明の精神及び範囲から逸脱することなしに、形態及び詳細における種々の変更がここになされ得ることが関連分野を含めた当業者によって理解されるであろう。本発明はこれらの例示に限定されないことが理解されるべきである。本発明はここに説明されるように動作する任意の要素に適用可能である。従って、本発明の広さ及び範囲は上述のいかなる例示的実施形態によっても限定されるべきではなく、後述の特許請求の範囲及びそれらの均等なものに従ってのみ画定されるべきである。