誤り検出技術に基づくメモリ書き込みタイミングの調節
【解決手段】
誤り検出機能の結果に基づきメモリデバイスにおける書き込みタイミングを調節するための方法、システム及びコンピュータプログラム製品が提供される。例えば方法は、誤り検出機能の結果に基づきデータバス上の信号と書き込みクロック信号との間の書き込みタイミング窓を決定することを含むことができる。方法はまた、書き込みタイミング窓に基づきデータバス上の信号と書き込みクロック信号との間の位相差を調節することを含むことができる。メモリデバイスは、調節された位相差に基づきデータバス上の信号を回復することができる。
誤り検出機能の結果に基づきメモリデバイスにおける書き込みタイミングを調節するための方法、システム及びコンピュータプログラム製品が提供される。例えば方法は、誤り検出機能の結果に基づきデータバス上の信号と書き込みクロック信号との間の書き込みタイミング窓を決定することを含むことができる。方法はまた、書き込みタイミング窓に基づきデータバス上の信号と書き込みクロック信号との間の位相差を調節することを含むことができる。メモリデバイスは、調節された位相差に基づきデータバス上の信号を回復することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、概してメモリデバイスにおける書き込みタイミングの調節に関する。より特定的には、本発明の実施形態は、誤り検出機能の結果に基づいてメモリデバイスの書き込みタイミングを調節することに言及する。
【背景技術】
【0002】
処理ユニットとメモリデバイスの間でのデータ通信は、典型的には、例えばワイヤ及びトレース等の信号パスに沿ってデータを送ることを伴う。同期インタフェースを伴うメモリデバイスにおいては、処理ユニットは、クロック信号をデータ信号と共にメモリデバイスへ送信することがある。クロック信号は、データ信号がいつメモリデバイスによってラッチされるべきかを決定するために用いられ、このようにしてメモリデバイスを処理ユニットに同期させる。適切なデータ回復のために、メモリデバイスは、クロック信号がデータ信号をサンプリングすることが可能な時間周期内でクロック信号を受信する必要がある(例えばクロック信号は、データ信号のデータアイに対応する時間の周期内でデータ信号をサンプリングする必要がある)。さもなければ、メモリデバイスは正確なデータ値を回復することができないであろう。
【発明の概要】
【発明が解決しようとする課題】
【0003】
温度やジッタ(jitter)等の実体的な変化は、処理ユニットからメモリデバイスへ伝送されるデータ信号及びクロック信号の減衰の原因となり得るので、データ信号の完全性における損失を引き起こす可能性がある。その結果、メモリデバイスによる貧弱な又は不正確なデータ回復がもたらされ得る。コンピュータシステムにおける動作周波数が高くなるに従って、処理ユニットからメモリデバイスへより高速にデータを伝送する必要性が生じている。従って、メモリデバイスは、より高速にデータをサンプリングすることを必要とするだけでなく、適切なタイミングでデータをサンプリングすることを必要とする。
【課題を解決するための手段】
【0004】
本発明の実施形態は、メモリデバイスにおける書き込みタイミングを調節するための方法を含む。方法は、誤り検出機能の結果に基づきデータバス上の信号と書き込みクロック信号との間の書き込みタイミング窓を決定することを含むことができる。方法はまた、書き込みタイミング窓に基づきデータバス上の信号と書き込みクロック信号との間の位相差を調節することを含むことができ、ここでメモリデバイスは、調節された位相差に基づきデータバス上の信号を回復する。
【0005】
本発明の実施形態はまた、メモリデバイスにおける書き込みタイミングを調節するための別の方法を含む。方法は、処理ユニットから伝送される第1のデータパターンを受信することと、書き込みクロック信号に基づきメモリデバイスのインタフェースで受信される第1のデータパターンであり得る第2のデータパターンに誤り検出機能を行って第1の結果を生成することと、第1の結果を処理ユニットへ伝送することと、データバス上の信号を受信することと、を含むことができ、データバス上の信号と書き込みクロック信号との間の位相差は書き込みタイミング窓内にあり、書き込みタイミング窓は、第1の結果と第1のデータパターンに行われる誤り検出機能からの第2の結果との間での比較に基づいている。
【0006】
本発明の実施形態は、メモリデバイスにおける書き込みタイミングを調節するシステムのためのシステムを含む。システムは、メモリデバイスと、メモリデバイスに結合される処理ユニットと、を含むことができる。処理ユニットは、誤り検出機能の結果に基づきデータバス上の信号と書き込みクロック信号との間の書き込みタイミング窓を決定する機能と、書き込みタイミング窓に基づきデータバス上の信号と書き込みクロック信号との間の位相差を調節する機能と、を行うように構成されることができ、ここでメモリデバイスは調節された位相差に基づきデータバス上の信号を回復する。
【0007】
本発明の実施形態は、メモリデバイスにおける書き込みタイミングを調節するシステムのための別のシステムを含む。システムは、処理ユニットと、処理ユニットに結合されるメモリデバイスと、を含むことができる。メモリデバイスは、処理ユニットから伝送される第1のデータパターンを受信する機能と、書き込みクロック信号に基づきメモリデバイスのインタフェースで受信される第1のデータパターンを備える第2のデータパターンに誤り検出機能を行って第1の結果を生成する機能と、第1の結果を処理ユニットへ伝送する機能と、データバス上の信号を受信する機能と、を行うように構成されることができ、ここでデータバス上の信号と書き込みクロック信号との間の位相差は書き込みタイミング窓内にあり、書き込みタイミング窓は、第1の結果と第1のデータパターンに行われる誤り検出機能からの第2の結果との間での比較に基づいている。
【0008】
本発明の実施形態は、メモリデバイスにおける書き込みタイミングを調節するためのコンピュータプログラム製品を更に含む。コンピュータプログラム製品は、プロセッサがソフトウエアコードを解析することを可能にするコンピュータプログラム論理が記録されるコンピュータ使用可能媒体を含む。コンピュータプログラム論理は、プロセッサが誤り検出機能の結果に基づきデータバス上の信号と書き込みクロック信号との間の書き込みタイミング窓を決定することを可能にする第1のコンピュータ可読プログラムコードと、プロセッサが書き込みタイミング窓に基づきデータバス上の信号と書き込みクロック信号との間の位相差を調節することを可能にする第2のコンピュータ可読プログラムコードと、を含み、ここでメモリデバイスは調節された位相差に基づきデータバス上の信号を回復する。
【0009】
本発明の更なる特徴及び利点の他、本発明の種々の実施形態の構成及び動作は、添付の図面を参照して以下に詳細に説明される。本発明はここに説明される特定の実施形態に限定されないことに留意されたい。そのような実施形態は例示のみを目的としてここに提示されている。ここに含まれる教示に基づいて追加の実施形態が関連分野を含めた当業者にとって明らかであろう。
【図面の簡単な説明】
【0010】
ここに組み込まれ且つ出願書類の一部をなす添付の図面は、本発明の実施形態を示し、そして明細書と共に、本発明の原理を説明し関連分野を含めた当業者が本発明を作りまた用いることを可能にするのに更に役に立つ。
【0011】
【図1】図1は処理ユニット及びメモリデバイスを伴う例示的なコンピュータシステムを示す図である。
【0012】
【図2】図2はメモリデバイスによる適切なデータ回復を代表する例示的な書き込みタイミング図を示す図である。
【0013】
【図3】図3はメモリデバイスによる適切なデータ回復を代表しない例示的な書き込みタイミング図を示す図である。
【0014】
【図4】図4はメモリデバイスにおける書き込みタイミングを調節するコンピュータシステムの実施形態を示す図である。
【0015】
【図5】図5はメモリデバイスにおける書き込みタイミングを調節するための方法の実施形態を示す図である。
【0016】
【図6】図6は第1及び第2の誤り検出機能結果が互いに一致する場合に書き込みタイミング周期の第1の書き込みタイミング境界を決定するためのフローチャートの実施形態を示す図である。
【0017】
【図7】図7は第1及び第2の誤り検出機能結果が互いに一致する場合に書き込みタイミング周期の第1の書き込みタイミング境界を決定するためのフローチャートの説明を容易にする例示的なタイミング図を示す図である。
【0018】
【図8】図8は第1及び第2の誤り検出機能結果が互いに一致する場合に書き込みタイミング周期の第2の書き込みタイミング境界を決定するためのフローチャートを示す図である。
【0019】
【図9】図9は第1及び第2の誤り検出機能結果が互いに一致する場合に書き込みタイミング周期の第2の書き込みタイミング境界を決定するためのフローチャートの説明を容易にする例示的なタイミング図を示す図である。
【0020】
【図10】図10は第1及び第2の誤り検出機能結果が互いに一致する場合に書き込みクロック信号に基づく書き込みタイミング周期の第1の書き込みタイミング境界の決定の説明を容易にする例示的なタイミング図を示す図である。
【0021】
【図11】図11は第1及び第2の誤り検出機能結果が互いに一致する場合に書き込みクロック信号に基づく書き込みタイミング周期の第2の書き込みタイミング境界の決定の説明を容易にする例示的なタイミング図を示す図である。
【0022】
【図12】図12は第1及び第2の誤り検出機能結果が互いに一致しない場合に書き込みタイミング周期の第1の書き込みタイミング境界を決定するためのフローチャートを示す図である。
【0023】
【図13】図13は第1及び第2の誤り検出機能結果が互いに一致しない場合に書き込みタイミング周期の第1の書き込みタイミング境界を決定するためのフローチャートの説明を容易にする例示的なタイミング図を示す図である。
【0024】
【図14】図14は第1及び第2の誤り検出機能結果が互いに一致しない場合に書き込みタイミング周期の第2の書き込みタイミング境界を決定するためのフローチャートを示す図である。
【0025】
【図15】図15は第1及び第2の誤り検出機能結果が互いに一致しない場合に書き込みタイミング周期の第2の書き込みタイミング境界を決定するためのフローチャートの説明を容易にする例示的なタイミング図を示す図である。
【0026】
【図16】図16は第1及び第2の誤り検出機能結果が互いに一致しない場合に書き込みクロック信号に基づく書き込みタイミング周期の第1の書き込みタイミング境界の決定の説明を容易にする例示的なタイミング図を示す図である。
【0027】
【図17】図17は第1及び第2の誤り検出機能結果が互いに一致しない場合に書き込みクロック信号に基づく書き込みタイミング周期の第2の書き込みタイミング境界の決定の説明を容易にする例示的なタイミング図を示す図である。
【0028】
【図18】図18は本発明の実施形態が実装され得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0029】
以下の詳細な説明は、本発明に従う例示的な実施形態を示す添付の図面を参照する。他の実施形態も可能であり、また本発明の精神及び範囲内で実施形態に対して修正がなされ得る。従って、詳細な説明は本発明を限定することを意図されていない。むしろ、本発明の範囲は添付の特許請求の範囲によって画定される。
【0030】
以下に説明されるように、本発明は、ソフトウエア、ハードウエア、ファームウエア、及び/又は図面に示される構成要素の多くの異なる実施形態において実装され得ることが関連分野を含めた当業者には明らかであろう。従って、本発明の実施形態の動作的な挙動は、ここに提示されるレベルの詳細を与えられて実施形態の修正及び変形が可能であるという理解の下で説明されることになる。
【0031】
図1は処理ユニット及びメモリデバイスを伴う例示的なコンピュータシステム100を示す図である。コンピュータシステム100は、処理ユニット110、メモリデバイス120、データバス1307〜1300、アドレス/制御(A/C)バス14015〜1400、クロック信号150(例えば書き込みクロック信号)、並びに誤り検出及び訂正(EDC)信号160を含む。
【0032】
処理ユニット110は、A/Cバス14015〜1400を介してメモリデバイス120へアドレス/制御信号を送信する。アドレス/制御信号は、例えば、クロックイネーブル(/CKE)、チップ選択(/CS)、行アドレスストローブ(/RAS)、列アドレスストローブ(/CAS)、書き込みイネーブル(/WE)、及びアドレスバス(例えばA[8:0])を含み得る。メモリデバイス120内のコマンドデーコーダ(図示せず)は、アドレス/制御信号を受信し、そしてアドレス/制御信号のビットセッティングに基づいて、メモリデバイス120に対する動作のモードを示す。メモリデバイス120に対する動作のモードは、例えば、読み出し動作、書き込み動作、アイドル動作、及びリフレッシュ動作を含み得る。
【0033】
同期メモリシステムにおいては、図1のA/Cバス14015〜1400上のアドレス/制御信号は、クロック信号150のエッジ(例えばクロック信号150の立ち上がりエッジ)に対してタイミングをとられており、アドレス/制御信号はクロック信号150のエッジ上でサンプリングされる。例示の目的で、A/Cバス14015〜1400は16ビットデータバスとして示されている。ここでの説明に基づいて、関連分野を含めた当業者であれば、A/Cバス14015〜1400のバス幅が変化し得る(例えば8ビット、32ビット等)ことを認識するであろう。アドレス/制御バス及びこれらのバス上を進行する関連信号は、関連分野を含めた当業者に知られている。
【0034】
誤り検出及び訂正(EDC)は、データが処理ユニット110からメモリデバイス120へ誤りなしに伝送されることを確実にするための技術を参照する。ある例においては、EDC信号160は、処理ユニット110とメモリデバイス120の間でパリティ情報又は誤り訂正符号を伝えるために用いられ得る。誤り検出機能は、関連分野を含めた当業者に知られているように、データバス1307〜1300上のデータ信号に基づいてパリティ及び誤り訂正符号を生成する。パリティ情報又は誤り訂正符号に基づいて、処理ユニット110は、メモリデバイス120へのデータ伝送に誤りがないかどうかを決定することができる。コンピュータシステム100においては、EDC信号160は、EDCデータをメモリデバイス120から処理ユニット110へ伝える単方向信号である。当業者であれば、EDC信号160が双方向信号であってもよいことを理解するであろうし、この場合、EDCデータは処理ユニット110とメモリデバイス120の間で運ばれる。EDC技術及びアルゴリズムは、関連分野を含めた当業者に知られている。
【0035】
処理ユニット110は、データバス1307〜1300を介してメモリデバイス120へデータを送信し、またメモリデバイス120からデータを受信する。書き込み動作の間、データは処理ユニット110からメモリデバイス120へデータバス1307〜1300を介して転送される。読み出し動作の間、データはメモリデバイス120から処理ユニット110へデータバス1307〜1300を介して運ばれる。同期メモリシステムにおいては、処理ユニット110によってデータが送信されまた受信される速度は、クロック信号、例えばクロック信号150に基づいている。例示の目的で、データバス1307〜1300は8ビット双方向データバスとして示されている。ここでの説明に基づいて、関連分野を含めた当業者であれば、データバス1307〜1300のバス幅が変化し得る(例えば16ビット、32ビット等)ことを認識するであろう。データバス及びこれらのバス上を進行する関連信号は、関連分野を含めた当業者に知られている。
【0036】
メモリデバイス120は、処理ユニット110から伝送されたデータを記憶する。データ(処理ユニット110から伝送されたデータ)の受信及び記憶は、メモリデバイス120への「書き込み(writing)」として知られている。逆に、データはメモリデバイス120からリトリーブされる(retrieved)ことができ、これはメモリデバイス120からの「読み出し(reading)」として知られている。メモリデバイス120は同期インタフェースを伴って構成されてよく、メモリデバイス120は、データバス1307〜1300上のデータを処理するのに先立ち、同期インタフェースにおいてクロック信号150を待つ。例えば、メモリデバイス120は、データバス1307〜1300からのデータを受信するために、又はデータバス1307〜1300を介してメモリデバイス120からのデータを処理ユニット110へ送信するために、クロック信号150にアラインされた内部クロック信号を生成することができる。メモリデバイス120の内部クロック信号は、関連分野を含めた当業者によって理解されるように、例えばクロック信号150の周波数の倍数(例えば2倍、4倍、等)であってよい。
【0037】
図2は、メモリデバイス120による適切なデータ回復を代表する、コンピュータシステム100のための例示的な書き込みタイミング図200を示す図である。書き込みタイミング図200は、データ信号1300のためのデータアイとクロック信号150とに対するタイミングを含み、ここでデータアイは、クロック信号150がデータ信号1300をサンプリングするために用いられ得る時間の周期210を定義することができる(例えば、メモリデバイス120による適切なデータ回復は時間の周期210内で起こり得る)。データアイは、例えば、有効バイナリ値を伴うデータ信号1300の部分を参照する。ここで、クロック信号150は、データ信号1300に対して中央にアラインされており、そしてクロック信号150がHIGHの場合(又は論理値の「1」を有している場合)にデータアイ内でデータ信号1300をサンプリングする。関連分野を含めた当業者によって理解されるように、クロック信号150のデータ信号1300に対する中央アライメントは、メモリデバイス120がデータ信号1300を受信しまたサンプリングするのに十分な時間の周期を割り当てられることを理由として、コンピュータシステム100に対して理想的な書き込みタイミングをもたらす。当業者であれば、データ信号1300に対するクロック信号150のアライメントは他のアライメント位置で生じ得ることを理解するはずである。
【0038】
図3は、メモリデバイス120による適切なデータ回復を代表していない、コンピュータシステム100のための例示的な書き込みタイミング図300を示す図である。書き込みタイミング図200と同様、書き込みタイミング図300は、データ信号1300のデータアイとクロック信号150とに対するタイミングを含む。しかし、クロック信号150はデータ信号1300に対して相対的な位相差310(又はタイミングスキュー(timing skew))を有しており、ここで位相差310は、データ信号1300をサンプリングするのに十分な時間(例えばメモリデバイス120がデータ信号1300をラッチするのに十分な時間)をメモリデバイス120に提供しないであろう。データ信号1300とクロック信号150の間での相対的な位相差310における変動は、例えばコンピュータシステム100における温度及びジッタのような種々の因子に起因し得る。例示的な書き込みタイミング図300においては、相対的な位相差310は、データアイ210の中心と、クロック信号150がデータ信号1300をサンプリングするとき(例えばクロック信号150がHIGHであるとき又は論理値の「1」を有しているとき)のクロック信号150の中心との間の差によって定義され得る。
【0039】
コンピュータシステム100の動作周波数が高くなるに従って、メモリデバイス120は、より高速な周波数でデータバス1307〜1300上の信号をサンプリングすることが必要なだけでなく、適切なタイミングでデータ信号をサンプリングする必要がある。データの適切なサンプリングを確実にするために、クロック信号150はデータバス1307〜1300上の信号に対して最適にアラインされるべきである。データバス1307〜1300上の信号に対してクロック信号150をアラインするために、データバス1307〜1300とクロック信号150の間での相対的な位相差(又はタイミングスキュー)が、誤り検出機能に基づいてモニタリングされ且つ調節され得る。結果として、コンピュータシステム100は、処理ユニット110とメモリデバイス120の間での書き込みタイミングが最適化され得るように構成され得る。
【0040】
図4はメモリデバイスにおける書き込みタイミングを調節するコンピュータシステム400の実施形態を示す図である。コンピュータシステム400は、処理ユニット410、メモリデバイス420、データバス1307〜1300、A/Cバス14015〜1400、クロック信号150(ここでは書き込みクロック信号とも称される)、及びEDC信号160を含む。データバス1307〜1300、A/Cバス14015〜1400、書き込みクロック信号150、及びEDC信号160は、図1を参照して上述したのと同様の様態で機能する。
【0041】
ある実施形態においては、処理ユニット410及びメモリデバイス420は回路基板上の集積回路(IC)デバイスであり、これら2つのICデバイスは、データバス1307〜1300、A/Cバス14015〜1400、及び書き込みクロック信号150によって通信可能に結合され、ここでデータバス1307〜1300、A/Cバス14015〜1400、書き込みクロック信号150、及びEDC信号160は、ワイヤ、相互接続、又は回路基板トレースであり得る。別の実施形態においては、処理ユニット410及びメモリデバイス420は、処理ユニット410をメモリデバイス420に通信可能に結合するデータバス1307〜1300、A/Cバス14015〜1400、書き込みクロック信号150、及びEDC信号160と共に、単一のICデバイス上に集積化されている。
【0042】
データバス1307〜1300、A/Cバス14015〜1400、書き込みクロック信号150、及びEDC信号160は、メモリデバイス420の動作のモード(例えば読み出し、書き込み、アイドル、及びリフレッシュの動作のモード)において用いられる処理ユニット410及びメモリデバイス420の入力/出力(I/O)ポートに接続される。処理ユニットをメモリデバイスに接続するI/Oポート(例えばDQピン及びクロックピン)は、関連分野を含めた当業者に知られている。
【0043】
処理ユニット410は本発明の実施形態に従いGPUである。代替的に別の実施形態においては、処理ユニット410はCPU又はメモリ制御器であり得る。ここでの説明に基づいて、関連分野を含めた当業者であれば、本発明の実施形態は本発明の範囲及び精神に含まれる他の種類の処理ユニットと共に実装され得ることを認識するであろう。
【0044】
ある実施形態においては、処理ユニット410は、位相遅延回路430及び440と制御器450とを含む。ある実施形態においては、位相遅延回路430は、データバス1307〜1300上を進行する信号の伝送を遅延させるように構成される。同様に、ある実施形態においては、位相遅延回路440は、書き込みクロック信号150を遅延させるように構成される。制御器450は、本発明の実施形態に従い各位相遅延回路430及び440のための位相遅延の量を制御するように構成される。制御器450から位相遅延回路430及び440に発行される位相遅延の量は、図5の方法500を参照して後で詳細に説明される。移送遅延回路及び位相遅延回路を制御するために用いられる関連する制御器は、関連分野を含めた当業者に知られている。
【0045】
図4を参照すると、ある実施形態においては、メモリデバイス420はダイナミックランダムアクセスメモリ(DRAM)デバイスである。ここでの説明に基づいて、関連分野を含めた当業者であれば、本発明の実施形態は他の種類のメモリデバイスと共に実装され得ることを認識するであろう。これらの他の種類のメモリデバイスは本発明の範囲及び精神に含まれる。
【0046】
図5はメモリデバイスにおいて書き込みタイミングを調節するための方法500の実施形態を示している。方法500は、例えば、図4のコンピュータシステム400を用いて生じ得る。説明の目的で、方法500の説明を容易にするためにコンピュータシステム400が用いられる。しかし、ここでの説明に基づいて、関連分野を含めた当業者であれば、方法500が他のコンピュータシステムにおいて実装され得ることを認識するはずである。
【0047】
ある実施形態においては、方法500は、処理ユニット410とメモリデバイス420の間での書き込みタイミングを調節するために、コンピュータシステム400によって用いられ得る。特に、1つ以上のデータパターンをメモリデバイス420に書き込むこと及びメモリデバイス420からの対応する誤り検出機能結果を読み出すことの1つ以上のシーケンスを通して、処理ユニット410の制御器450は、メモリデバイス420がデータバス1307〜1300からのデータを適切に回復するように、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間の位相を調節することができる(位相遅延回路430及び440を介して)。
【0048】
図5の方法500を参照すると、ステップ510では、処理ユニット410は、メモリデバイス420を誤り検出モードの動作に設定するための1つ以上のコマンドを発行する。ある実施形態においては、メモリデバイス420は、メモリデバイス420のアクティブモードの動作の間に、誤り検出モードの動作にあることが可能である。これらのアクティブモードの動作は、例えば、読み出し及び書き込みモードの動作を含み得る。別の実施形態においては、メモリデバイス420は、メモリデバイス資源が非アクティブである場合に、誤り検出モードの動作にあることが可能である。これらのモードの動作においては、例えばデータバス1307〜1300、A/Cバス14015〜1400、及び書き込みクロック信号150等のメモリデバイス資源は、読み出し又は書き込みモードの動作に対してコンピュータシステム400によって用いられていない。
【0049】
説明を容易にするために、方法500の以下の説明は、メモリデバイス資源が非アクティブである場合の誤り検出モードに関連してなされる(例えばデータバス1307〜1300、A/Cバス14015〜1400、及び書き込みクロック信号150は、読み出し及び/又は書き込みの動作に対してコンピュータシステム400によって用いられていない)。しかし、ここでの説明に基づいて、関連分野を含めた当業者であれば、メモリデバイス資源がアクティブである場合の誤り検出モードにおいても方法500が実装され得ることを認識するはずである(例えばデータバス1307〜1300、A/Cバス14015〜1400、及び書き込みクロック信号150は、読み出し及び/又は書き込みの動作に対してコンピュータシステム400によって用いられている)。
【0050】
ステップ520では、処理ユニット410は、誤り検出機能の結果に基づいて、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間での書き込みタイミング窓を決定する。書き込みタイミング窓はある時間周期を参照し、その時間周期内において、データバス1307〜1300上のデータ信号、書き込みクロック信号150、又はデータバス1307〜1300上のデータ信号及び書き込みクロック信号150の両方が、メモリデバイス420がデータバス1307〜1300上のデータを適切に回復するように、互いに位相調節され得る。ある実施形態においては、書き込みタイミング窓は、第1のタイミング境界及び第2のタイミング境界によって定義される。書き込みタイミング窓並びにそれが関連する第1及び第2の書き込みタイミング境界は、図6〜17に関して後で更に詳細に説明される。
【0051】
誤り検出機能は、データが誤りなしに処理ユニット410からメモリデバイス420に伝送されることを確実にするために用いられ得る誤り検出及び訂正技術において用いられるアルゴリズムを参照する。上述したように、データ伝送誤りは、例えばコンピュータシステム400における温度及びジッタ等の変化の結果であり得る。方法500に関連するような誤り検出機能は、図6〜17に関して後で更に詳細に説明される。
【0052】
ある実施形態においては、メモリデバイス420の書き込みタイミングを調節するために、第1のデータパターンが用いられる。第1のデータパターンは、例えば、「1」及び「0」の論理値のランダムな組み合わせを伴う8ビットデータパターンであってよい。ある実施形態においては、処理ユニット410は、第1のデータパターンに誤り検出機能を行って、例えばパリティ値、チェックサム値、又は誤り検出機能からの別の種類の結果を生成する。ある実施形態においては、誤り検出機能はチェックサムスキームを実装しており、この場合、第1のデータパターンのチェックサム値は、固定サイズのビット長を伴う第1のデータパターンのハッシュバージョン(hashed version)を表す。第1のデータパターンに対する誤り検出機能の結果は、本発明の実施形態に従い比較目的(後で更に説明される)で用いられるためにプロセッサ410内に記憶される。
【0053】
パリティスキーム及びチェックサムスキームは、特に誤り検出及び訂正(EDC)技術と併せて用いられ、また関連分野を含めた当業者に知られている。ここでの説明に基づいて、関連分野を含めた当業者であれば、他の誤り検出機能がEDC技術と併せて用いられ得ることを認識するはずである。これらの他の誤り検出機能は、本発明の範囲及び精神に含まれる。
【0054】
ある実施形態においては、第1のデータパターンは処理ユニット410からメモリデバイス420に伝送され、この場合、メモリデバイス420は、書き込みクロック信号150に基づいてメモリデバイス420のインタフェース(例えばメモリデバイス420のI/Oピンインタフェース)で第1のデータパターンにおける情報をサンプリングする。第1のデータパターンがメモリデバイス420によって受信された後、メモリデバイス420は、第2のデータパターンに誤り検出機能を行う。第2のデータパターンは、メモリデバイス420のインタフェースで受信される第1のデータパターンを表す。ある実施形態においては、書き込みクロック信号150とデータバス1307〜1300上のデータ信号との間にはタイミングスキューが生じてしまっているであろうから、第2のデータパターンは、処理ユニット410から伝送された第1のデータパターンのビット情報とは異なるビット情報を含み得る。このタイミングスキューは、図3に関して上述したタイミングスキューと同様である。
【0055】
ある実施形態においては、メモリデバイス420は、プロセッサ410が第1のデータパターンに適用したのと同じ誤り検出機能を第2のデータパターンに適用する。第2のデータパターンに対する誤り検出機能の結果は、本発明の実施形態に従い、固定サイズのビット長を伴う第2のデータパターンのハッシュバージョンを表す。第2のデータパターンに対する誤り検出機能の結果は、本発明の実施形態に従い、EDC信号160を介してプロセッサ410へ伝送される。
【0056】
処理ユニット410は、第1のデータパターンに対する誤り検出機能の結果(ここでは「第1の結果」とも称される)を第2のデータパターンに対する誤り検出機能の結果(ここでは「第2の結果」とも称される)と比較して、2つの結果が互いに一致するかどうかを決定する。ある実施形態においては、処理ユニット410の制御器450が第1の結果を第2の結果と比較し、この場合、制御器450は、第1の結果からのビット情報を第2の結果からのビット情報とビット単位ベース(bit-by-bit basis)で比較する。つまり、第1の結果における各ビットが第2の結果における対応するビットと比較されて、第1及び第2の結果が互いに一致するかどうかを決定する。
【0057】
ある実施形態においては、制御器450は、第1及び第2の結果の比較に基づいて、書き込みタイミング窓の第1のタイミング境界及び第2のタイミング境界を決定する。書き込みタイミング窓の第1及び第2のタイミング境界の決定の以下の説明は、2つのシナリオに照らしてなされており、即ち(1)図6〜11において説明されるように第1及び第2の結果が互いに一致する場合のシナリオと、(2)図12〜17において説明されるように第1及び第2の結果が互いに一致しない場合のシナリオとである。説明を容易にするために、書き込みタイミング窓の第1及び第2のタイミング境界の以下の説明は、データバス1307〜1300上のデータ信号1300に基づいている。関連分野を含めた当業者であれば、ここでの説明に基づいて、以下に説明されるフローチャート及び例示的なタイミング図がデータバス1307〜1300上のデータ信号に等しく適用されることを認識するはずである。
【0058】
図6は第1及び第2の結果が互いに一致する場合に書き込みタイミング窓の第1のタイミング境界を決定するためのフローチャート600の実施形態を示す図である。フローチャート600の説明を容易にするために、図7のタイミング図700が用いられることになる。タイミング図700を参照すると、タイミング図I及びIIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間(例えばメモリデバイス420がデータ信号1300をラッチするのに十分な時間)を有しているので、メモリデバイス420は、データ信号1300からデータを適切に回復することができる。これは図2に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様である。図7のタイミング図IIは、データ信号1300の位相シフトされた表現であり、フローチャート600に関して以下に説明されることになる。
【0059】
図6のフローチャート600を参照すると、フローチャート600の開始点は、第1の結果が第2の結果に一致する場合の状況を考慮している。これは、タイミング図700に関して上述したように、メモリデバイス420がデータ信号1300をサンプリングするのに十分な時間を有してことによる場合である(図7のタイミング図Iにおいて)。従って、第1のデータパターンに対する誤り検出機能の結果は、本発明の実施形態に従い、第2のデータパターンに対する誤り検出機能の結果に一致する。ある実施形態においては、処理ユニット410が、書き込みタイミング窓の第1のタイミング境界を決定するに際してフローチャート600のステップを実行する。
【0060】
ステップ610では、処理ユニット410は、第1のデータパターンに正の漸増的(incremental)位相シフトを導入する。ある実施形態においては、漸増的位相シフトは、書き込みクロック信号150のサイクルの分数として定義される。例えば分数は、書き込みクロック信号150の1/10、1/5、3/10、又は2/5であってよい。また、図7のタイミング図700を参照すると、本発明の実施形態に従い、正の漸増的位相シフトは「(+)」方向における漸増的位相シフトとして定義される。
【0061】
ステップ620では、位相シフトされた第1のデータパターンがメモリデバイス420へ伝送される。
【0062】
ステップ630では、処理ユニット410は、第2のデータパターンに適用された誤り検出機能からの結果を受信する。第2のデータパターンは、メモリデバイス420のインタフェースで受信される位相シフトされた第1のデータパターンを表す。ある実施形態においては、メモリデバイス420は、プロセッサ410によって第1のデータパターンに適用された誤り検出機能と同じ誤り検出機能を第2のデータパターンに行う。第2のデータパターンに対する誤り検出機能の結果は、本発明の実施形態に従い、メモリデバイス420から処理ユニット410へEDC信号160を介して伝送される。
【0063】
ステップ640では、処理ユニット410は、第1のデータパターンに適用された誤り検出機能の第1の結果を第2のデータパターンに適用された誤り検出機能の第2の結果と比較し、この場合、制御器450が第1の結果のビット情報を記憶している。制御器450は第1の結果からのビット情報を第2の結果からのビット情報と比較し、ここで第2の結果は、本発明の実施形態に従い、メモリデバイス420のインタフェースで受信される位相シフトされた第1のデータパターンを示している。ある実施形態においては、第1及び第2の結果はビット単位ベースで互いと比較される。
【0064】
ステップ650において、第1の結果からのビット情報が第2の結果からのビット情報に一致する場合には、処理ユニット410は追加的な正の漸増的位相遅延を第1のデータパターンに導入し(ステップ610)、そしてステップ620〜640が繰り返される。
【0065】
第1及び第2の結果からのビット情報が互いに一致しない場合には、ステップ660において、先の位相シフトされた第1のデータパターンからの位相シフト情報が処理ユニット410内に記憶される。図7のタイミング図700を参照すると、タイミング図IIは正の位相シフトされたデータ信号1300(即ち正の位相シフトされた第1のデータパターン)を表している。タイミング図I及びIIにおける標識710は、データ信号1300における正の漸増的位相シフトを示すためのデータ信号1300上での基準点を表している。また、標識730はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、正の位相シフトの追加的な漸増がデータ信号1300に導入されるとすると(図7のタイミング図IIにおいて)、書き込みクロック信号150は有効なデータ信号1300をサンプリングすることができない。この理由は、位相シフトにおける追加的な正の漸増が少しでもデータ信号1300に与えられると、データ信号1300をサンプリングするのに十分な時間を書き込みクロック信号150が有することができないところにある(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)。
【0066】
図7のタイミング図700を参照すると、時間周期720は、本発明の実施形態に従う書き込みタイミング窓の第1のタイミング境界を表している。特に、時間周期720はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、データ信号1300は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに位相シフトにおける追加的な正の漸増を有することはできない。ある実施形態においては、書き込みクロック信号150に対するデータ信号1300の元の位相位置(例えば図7のタイミング図Iにおける標識710)を参照すると、データ信号1300は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに時間周期720よりも大きな正の位相シフトを有することはできない。
【0067】
図8は第1及び第2の結果が互いに一致する場合に書き込みタイミング窓の第2の境界条件を決定するためのフローチャート800の実施形態を示す図である。フローチャート800の説明を容易にするために、図9の例示的なタイミング図900が用いられることになる。タイミング図900を参照すると、タイミング図I及びIIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間(例えばメモリデバイス420がデータ信号1300をラッチするのに十分な時間)を有しているので、図2に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様に、メモリデバイス420は、データ信号1300からデータを適切に回復することができる。図9のタイミング図IIは、データ信号1300の位相シフトされた表現であり、フローチャート800に関して以下に説明されることになる。
【0068】
フローチャート800のステップは、第1のデータパターンにおける漸増的位相シフトが「(−)」方向であることを除いてフローチャート600のステップと同様である。特にステップ810において、処理ユニット410は負の漸増的位相シフトを第1のデータパターンに導入する。ステップ820〜840はフローチャート600のそれぞれステップ620〜640と同様の機能を行う。
【0069】
ステップ850において、第1の結果からのビット情報が第2の結果からのビット情報に一致する場合には、処理ユニット410は追加的な負の漸増的位相遅延を第1のデータパターンに導入し(ステップ810)、そしてステップ820〜840が繰り返される。
【0070】
第1及び第2のデータパターンからのビット情報が互いに一致しない場合には、ステップ860において、先の位相シフトされた第1のデータパターンからの位相シフト情報が処理ユニット410内に記憶される。図9のタイミング図900を参照すると、タイミング図IIは負の位相シフトされたデータ信号1300(即ち負の位相シフトされた第1のデータパターン)を表している。タイミング図I及びIIにおける標識710は、データ信号1300における負の漸増的位相シフトを示すためのデータ信号1300上での基準点を表している。また、標識930はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、負の位相シフトの追加的な漸増がデータ信号1300に導入されるとすると(図9のタイミング図IIにおいて)、書き込みクロック信号150は、データ信号1300をサンプリングするのに十分な時間を有しないことになる(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)。
【0071】
図9のタイミング図900を参照すると、時間周期920は、本発明の実施形態に従う書き込みタイミング窓の第2のタイミング境界を表している。特に、時間周期920はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、データ信号1300は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに位相シフトにおける追加的な負の漸増を有することはできない。ある実施形態においては、書き込みクロック信号150に対するデータ信号1300の元の位相位置(例えば図9のタイミング図Iにおける標識710)を参照すると、データ信号1300は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに時間周期920よりも大きな負の位相シフトを有することはできない。
【0072】
図6〜9について要約すると、書き込みタイミング窓の第1及び第2のタイミング境界が、書き込みクロック信号150に対するデータ信号1300の位相シフトに関して定義されたことになる。ある実施形態においては、書き込みクロック信号150に対するデータ信号1300の元の位相位置から、書き込みタイミング窓は第1及び第2のタイミング境界によって境界される。ある実施形態においては、第1のタイミング境界は、メモリデバイス420による不適切なデータ回復を伴わない元の位相位置からのデータ信号1300の最大の正の位相シフトとして定義される。また、第2のタイミング境界は、本発明の実施形態に従い、メモリデバイス420による不適切なデータ回復を伴わない元の位相位置からのデータ信号1300の最大の負の位相シフトとして定義される。
【0073】
上述の説明に基づいて、ある実施形態においては、書き込みタイミング窓の第1及び第2の境界を決定するために、書き込みクロック信号150が用いられてもよい。図10及び11の以下の説明は、本発明の実施形態に従い書き込みタイミング窓の第1及び第2の境界を決定するに際して、フローチャート600及び800のステップとそれぞれ同様のステップがどのようにして書き込みクロック信号150に適用され得るのかの説明を容易にするために用いられることになる。
【0074】
図10は、本発明の実施形態に従い書き込みクロック信号150に基づいて書き込みタイミング窓の第1のタイミング境界を決定するために図6のフローチャート600におけるステップと同様のステップがどのようにして用いられ得るのかの説明を容易にするために用いられることになる例示的な書き込みタイミング図1000を示す図である。タイミング図1000を参照すると、タイミング図I及びIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間(例えばメモリデバイス420がデータ信号1300をラッチするのに十分な時間)を有しているので、図2に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様に、メモリデバイス420は、データ信号1300からデータを適切に回復することができる。図10のタイミング図IIIは、書き込みクロック信号150の位相シフトされた表現であり、そして以下に更に詳細に説明されることになる。
【0075】
図6のステップ610と同様に、処理ユニット410は、書き込みクロック信号150に正の漸増的位相シフトを導入する。次いで、ステップ620〜640の伝送、受信及び比較のステップが、正の位相シフトされた書き込みクロック信号150に適用され得る。
【0076】
図10のタイミング図II及びIIIを参照すると、タイミング図II及びIIIにおける標識1010は、書き込みクロック信号150における正の漸増的位相シフトを示すための書き込みクロック信号150上での基準点を表している。また、標識1030はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、正の位相シフトの追加的な漸増が書き込みクロック信号150に導入されるとすると(図10のタイミング図IIIにおいて)、書き込みクロック信号150は、データ信号1300をサンプリングするのに十分な時間を有しないことになる(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)。
【0077】
図10のタイミング図1000を参照すると、時間周期1020は、本発明の実施形態に従う書き込みタイミング窓の第1のタイミング境界を表している。特に、時間周期1020はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、書き込みクロック信号150は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに位相シフトにおける追加的な正の漸増を有することはできない。ある実施形態においては、データ信号1300に対する書き込みクロック信号150の元の位相位置(例えば図10のタイミング図IIにおける標識1010)を参照すると、書き込みクロック信号150は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに時間周期1020よりも大きな正の位相シフトを有することはできない。
【0078】
図11は、本発明の実施形態に従い書き込みクロック信号150に基づいて書き込みタイミング窓の第2のタイミング境界を決定するために図8のフローチャート800におけるステップと同様のステップがどのようにして用いられ得るのかの説明を容易にするために用いられることになる例示的な書き込みタイミング図1100を示す図である。タイミング図1100を参照すると、タイミング図I及びIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間(例えばメモリデバイス420がデータ信号1300をラッチするのに十分な時間)を有しているので、図2に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様に、メモリデバイス420は、データ信号1300からデータを適切に回復することができる。図11のタイミング図IIIは、書き込みクロック信号150の位相シフトされた表現であり、そして以下に更に詳細に説明されることになる。
【0079】
図8のステップ810と同様に、処理ユニット410は、書き込みクロック信号150に負の漸増的位相シフトを導入する。次いで、ステップ820〜840の伝送、受信及び比較のステップが、負の位相シフトされた書き込みクロック信号150に適用され得る。
【0080】
図11のタイミング図II及びIIIを参照すると、タイミング図II及びIIIにおける標識1010は、書き込みクロック信号150における負の漸増的位相シフトを示すための書き込みクロック信号150上での基準点を表している。また、標識1130はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、負の位相シフトの追加的な漸増が書き込みクロック信号150に導入されるとすると(図11のタイミング図IIIにおいて)、書き込みクロック信号150は、データ信号1300をサンプリングするのに十分な時間を有しないことになる(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)。
【0081】
図11のタイミング図1100を参照すると、時間周期1120は、本発明の実施形態に従う書き込みタイミング窓の第2のタイミング境界を表している。特に、時間周期1120はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、書き込みクロック信号150は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに位相シフトにおける追加的な負の漸増を有することはできない。ある実施形態においては、データ信号1300に対する書き込みクロック信号150の元の位相位置(例えば図11のタイミング図IIにおける標識1010)を参照すると、書き込みクロック信号150は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに時間周期1020よりも大きな負の位相シフトを有することはできない。
【0082】
図10及び11について要約すると、書き込みタイミング窓の第1及び第2のタイミング境界が、データ信号1300に対する書き込みクロック信号150の位相シフトに関して定義されたことになる。ある実施形態においては、データ信号1300に対する書き込みクロック信号150の元の位相位置から、書き込みタイミング窓は第1及び第2のタイミング境界によって境界される。ある実施形態においては、第1のタイミング境界は、メモリデバイス420による不適切なデータ回復を伴わない元の位相位置からの書き込みクロック信号150の最大の正の位相シフトとして定義される。また、第2のタイミング境界は、本発明の実施形態に従い、メモリデバイス420による不適切なデータ回復を伴わない元の位相位置からの書き込みクロック信号150の最大の負の位相シフトとして定義される。
【0083】
図6〜11に関する上述した説明は、第1及び第2の結果が互いに一致する場合に書き込みタイミング窓の第1及び第2の境界を決定するに際しての技術についてなされている。上述した実施形態においては、データ信号1300又は書き込みクロック信号150のいずれかが、これら2つの信号の間での相対的な位相アライメントがメモリデバイス420による適切なデータ回復を可能にするように、漸増的位相シフトによって調節される。ここでの説明に基づき、当業者であれば、データ信号1300及び書き込みクロック信号150の両方が、これら2つの信号の間での相対的な位相アライメントがメモリデバイス420による適切なデータ回復を可能にするように、例えば正及び負の漸増的位相シフトの適切な組み合わせで調節され得ることを認識するはずである。
【0084】
図12〜17に関する以下の説明は、第1及び第2の結果が互いに一致しない場合における書き込みタイミング窓の第1及び第2のタイミング境界の決定についてなされる。
【0085】
図12は第1及び第2の結果が互いに一致しない場合に書き込みタイミング窓の第1のタイミング境界を決定するためのフローチャート1200の実施形態を示す図である。フローチャート1200の説明を容易にするために、図13のタイミング図1300が用いられることになる。タイミング図1300を参照すると、タイミング図I及びIIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間を有していない(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)ので、メモリデバイス420は、データ信号1300からデータを適切には回復しない。これは図3に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様である。図13のタイミング図IIは、データ信号1300の位相シフトされた表現であり、そしてフローチャート1200に関して以下に説明されることになる。
【0086】
図12のフローチャート1200を参照すると、フローチャート1200の開始点は、第1の結果が第2の結果に一致しない場合の状況を考慮している。これは、タイミング図1300に関して上述したように、メモリデバイス420がデータ信号1300をサンプリングするのに十分な時間を有していないことによる場合である。従って、第1のデータパターンに対する誤り検出機能の結果は、本発明の実施形態に従い、第2のデータパターンに対する誤り検出機能の結果と同一ではない。ある実施形態においては、処理ユニット410が、書き込みタイミング窓の第1のタイミング境界を決定するに際してフローチャート1200のステップを実行する。
【0087】
ステップ1210では、処理ユニット410は、第1のデータパターンに正の漸増的位相シフトを導入する。
【0088】
ステップ1220では、位相シフトされた第1のデータパターンがメモリデバイス420へ伝送され、そしてメモリデバイス420内に記憶される。
【0089】
ステップ1230では、処理ユニット410は、第2のデータパターンに適用された誤り検出機能からの結果を受信する。第2のデータパターンは、メモリデバイス420のインタフェースで受信される位相シフトされた第1のデータパターンを表す。ある実施形態においては、メモリデバイス420は、プロセッサ410によって第1のデータパターンに適用された誤り検出機能と同じ誤り検出機能を第2のデータパターンに行う。第2のデータパターンに対する誤り検出機能の結果は、本発明の実施形態に従い、メモリデバイス420から処理ユニット410へEDC信号160を介して伝送される。
【0090】
ステップ1240では、処理ユニット410は、位相シフトされた第1のデータパターンに適用された誤り検出機能からの第1の結果を第2のデータパターンに適用された誤り検出機能の第2の結果と比較し、この場合、制御器450が第1の結果のビット情報を記憶している。制御器450は第1の結果からのビット情報を第2の結果からのビット情報と比較し、ここで第2の結果は、本発明の実施形態に従い、メモリデバイス420のインタフェースで受信される位相シフトされた第1のデータパターンを示している。ある実施形態においては、第1及び第2の結果はビット単位ベースで互いと比較される。
【0091】
ステップ1250において、第1の結果からのビット情報が第2の結果からのビット情報に一致しない場合には、処理ユニット410は追加的な正の漸増的位相遅延を第1のデータパターンに導入し(ステップ1210)、そしてステップ1220〜1240が繰り返される。
【0092】
第1及び第2の結果からのビット情報が互いに一致する場合には、ステップ1260において、位相シフトされた第1のデータパターンからの位相シフト情報が処理ユニット410内に記憶される。図13のタイミング図1300を参照すると、タイミング図IIは正の位相シフトされたデータ信号1300(即ち正の位相シフトされた第1のデータパターン)を表している。タイミング図I及びIIにおける標識1310は、データ信号1300における正の漸増的位相シフトを示すためのデータ信号1300上での基準点を表している。また、標識1330はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、正の位相シフトの追加的な漸増がデータ信号1300に導入された場合(図13のタイミング図IIにおいて)に、書き込みクロック信号150は有効なデータ信号1300をサンプリングするために用いられ得る。この理由は、データ信号1300の位相シフトにおける追加的な正の漸増が少しでもあれば、有効なデータ信号1300をサンプリングするのに十分な時間を書き込みクロック信号150が有することになるところにある。
【0093】
図13のタイミング図1300を参照すると、時間周期1320は、本発明の実施形態に従う書き込みタイミング窓の第1のタイミング境界を表している。特に、時間周期1320はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、データ信号1300は位相シフトにおける追加的な正の漸増を有することができ、そしてメモリデバイス420はデータ信号1300を適切に回復することができる。ある実施形態においては、書き込みクロック信号150に対するデータ信号1300の元の位相位置(例えば図13のタイミング図Iにおける標識1310)を参照すると、データ信号1300は、メモリデバイス420がデータ信号1300を適切に回復するために、時間周期1320の少なくとも正の位相シフトを有することが必要とされる。
【0094】
図14は第1及び第2の結果が互いに一致しない場合に書き込みタイミング窓の第2の境界条件を決定するためのフローチャート1400の実施形態を示す図である。フローチャート1400の説明を容易にするために、図15の例示的なタイミング図1500が用いられることになる。タイミング図1500を参照すると、タイミング図I及びIIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間を有していない(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)ので、図3に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様に、メモリデバイス420は、データ信号1300からデータを適切には回復しない。図15のタイミング図IIは、データ信号1300の位相シフトされた表現であり、そしてフローチャート1400に関して以下に説明されることになる。
【0095】
ある実施形態においては、フローチャート1400のための開始点は、図12のフローチャート1200及び図13のタイミング図1300に関して上述した第1の書き込みタイミング境界に対応するデータ信号1300の正の位相シフトからである。
【0096】
フローチャート1400のステップは、フローチャート1200のステップと同様である。ある実施形態においては、ステップ1410〜1440はフローチャート1200のそれぞれステップ1210〜1240と同様の機能を行う。
【0097】
ステップ1450において、第1のデータパターンに適用された誤り検出機能の第1の結果からのビット情報が第2のデータパターンに適用された誤り検出機能の第2の結果からのビット情報に一致する場合には、処理ユニット410は追加的な正の漸増的位相遅延を第1のデータパターンに導入し(ステップ1410)、そしてステップ1420〜1440が繰り返される。
【0098】
第1及び第2の結果からのビット情報が互いに一致しない場合には、ステップ1460において、先の位相シフトされた第1のデータパターンからの位相シフト情報が処理ユニット410内に記憶される。図15のタイミング図1500を参照すると、タイミング図IIは正の位相シフトされたデータ信号1300(即ち正の位相シフトされた第1のデータパターン)を表している。タイミング図I及びIIにおける標識1310は、データ信号1300における正の漸増的位相シフトを示すためのデータ信号1300上での基準点を表している。また、標識1530はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、正の位相シフトの追加的な漸増がデータ信号1300に導入されるとすると(図15のタイミング図IIにおいて)、書き込みクロック信号150は、無効なデータ信号1300をサンプリングしてしまうことになる(例えばデータ信号1300の移行状態)。
【0099】
図15のタイミング図1500を参照すると、時間周期1520は、本発明の実施形態に従う書き込みタイミング窓の第2のタイミング境界を表している。特に、時間周期1520はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、データ信号1300は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに位相シフトにおける追加的な正の漸増を有することはできない。ある実施形態においては、書き込みクロック信号150に対するデータ信号1300の元の位相位置(例えば図15のタイミング図Iにおける標識1310)を参照すると、データ信号1300は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに時間周期1520よりも大きな正の位相シフトを有することはできない。
【0100】
図12〜15について要約すると、書き込みタイミング窓の第1及び第2のタイミング境界が、書き込みクロック信号150に対するデータ信号1300の位相シフトに関して定義されたことになる。ある実施形態においては、書き込みクロック信号150に対するデータ信号1300の元の位相位置から、書き込みタイミング窓は第1及び第2のタイミング境界によって境界される。ある実施形態においては、第1のタイミング境界は、メモリデバイス420による適切なデータ回復を伴う元の位相位置からのデータ信号1300の最小の正の位相シフトとして定義される。また、第2のタイミング境界は、本発明の実施形態に従い、メモリデバイス420による適切なデータ回復を伴う元の位相位置からのデータ信号1300の最大の正の位相シフトとして定義される。
【0101】
上述の説明に基づいて、ある実施形態においては、書き込みタイミング窓の第1及び第2の境界を決定するために、書き込みクロック信号150が用いられてもよい。図16及び17の以下の説明は、本発明の実施形態に従い書き込みタイミング窓の第1及び第2の境界を決定するに際して、フローチャート1200及び1400のステップとそれぞれ同様のステップがどのようにして書き込みクロック信号150に適用され得るのかの説明を容易にするために用いられることになる。
【0102】
図16は、本発明の実施形態に従い書き込みクロック信号150に基づいて書き込みタイミング窓の第1のタイミング境界を決定するために図12のフローチャート1200におけるステップと同様のステップがどのようにして用いられ得るのかの説明を容易にするために用いられることになる例示的な書き込みタイミング図1600を示す図である。タイミング図1600を参照すると、タイミング図I及びIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間を有していない(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)ので、図3に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様に、メモリデバイス420は、データ信号1300からデータを適切には回復しない。図16のタイミング図IIIは、書き込みクロック信号150の位相シフトされた表現であり、そして以下に更に詳細に説明されることになる。
【0103】
図12のステップ1210と同様に、処理ユニット410は、書き込みクロック信号150に正の漸増的位相シフトを導入する。次いで、ステップ1220〜1240の伝送、受信及び比較のステップが、正の位相シフトされた書き込みクロック信号150に適用され得る。
【0104】
図16のタイミング図II及びIIIを参照すると、タイミング図II及びIIIにおける標識1610は、書き込みクロック信号150における正の漸増的位相シフトを示すための書き込みクロック信号150上での基準点を表している。また、標識1630はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、正の位相シフトの追加的な漸増が書き込みクロック信号150に導入された場合(図16のタイミング図IIIにおいて)に、書き込みクロック信号150は、データ信号1300をサンプリングするのに十分な時間を有することになる(例えばメモリデバイス420がデータ信号1300をラッチするのに十分な時間)。
【0105】
図16のタイミング図1600を参照すると、時間周期1620は、本発明の実施形態に従う書き込みタイミング窓の第1のタイミング境界を表している。特に、時間周期1620はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、書き込みクロック信号150は、位相シフトにおける追加的な正の漸増を有することができ、そしてメモリデバイス420はデータ信号1300を適切に回復することができる。ある実施形態においては、データ信号1300に対する書き込みクロック信号150の元の位相位置(例えば図16のタイミング図IIにおける標識1610)を参照すると、書き込みクロック信号150は、メモリデバイス420がデータ信号1300を適切に回復するために、時間周期1620の少なくとも正の位相シフトを有することが必要とされる。
【0106】
図17は、本発明の実施形態に従い書き込みクロック信号150に基づいて書き込みタイミング窓の第2のタイミング境界を決定するために図14のフローチャート1400におけるステップと同様のステップがどのようにして用いられ得るのかの説明を容易にするために用いられることになる例示的な書き込みタイミング図1700を示す図である。タイミング図1700を参照すると、タイミング図I及びIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間を有していない(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)ので、図3に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様に、メモリデバイス420は、データ信号1300からデータを適切には回復することができない。図17のタイミング図IIIは、書き込みクロック信号150の位相シフトされた表現であり、そして以下に更に詳細に説明されることになる。
【0107】
ある実施形態においては、フローチャート1400と同様に、書き込みタイミング図1700のための開始点は、図16のタイミング図1600に関して上述した第1の書き込みタイミング境界に対応するデータ信号1300の正の位相シフトからである。
【0108】
図14のステップ1410と同様に、処理ユニット410は、書き込みクロック信号150に正の漸増的位相シフトを導入する。次いで、ステップ1420〜1440の伝送、受信及び比較のステップが、正の位相シフトされた書き込みクロック信号150に適用され得る。
【0109】
図17のタイミング図II及びIIIを参照すると、タイミング図II及びIIIにおける標識1610は、書き込みクロック信号150における正の漸増的位相シフトを示すための書き込みクロック信号150上での基準点を表している。また、標識1730はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、正の位相シフトの追加的な漸増が書き込みクロック信号150に導入された場合(図17のタイミング図IIIにおいて)に、書き込みクロック信号150は、データ信号1300をサンプリングするのに十分な時間を有しないことになる(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)。
【0110】
図17のタイミング図1700を参照すると、時間周期1720は、本発明の実施形態に従う書き込みタイミング窓の第2のタイミング境界を表している。特に、時間周期1720はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、書き込みクロック信号150は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに位相シフトにおける追加的な正の漸増を有することはできない。ある実施形態においては、データ信号1300に対する書き込みクロック信号150の元の位相位置(例えば図17のタイミング図IIにおける標識1610)を参照すると、書き込みクロック信号150は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに時間周期1720よりも大きな正の位相シフトを有することはできない。
【0111】
図16及び17について要約すると、書き込みタイミング窓の第1及び第2のタイミング境界が、データ信号1300に対する書き込みクロック信号150の位相シフトに関して定義されたことになる。ある実施形態においては、データ信号1300に対する書き込みクロック信号150の元の位相位置から、書き込みタイミング窓は第1及び第2のタイミング境界によって境界される。ある実施形態においては、第1のタイミング境界は、メモリデバイス420による適切なデータ回復を伴う元の位相位置からの書き込みクロック信号150の最小の正の位相シフトとして定義される。また、第2のタイミング境界は、本発明の実施形態に従い、メモリデバイス420による適切なデータ回復を伴う元の位相位置からの書き込みクロック信号150の最大の正の位相シフトとして定義される。
【0112】
図12〜17に関する上述した説明は、第1及び第2の結果が互いに一致しない場合に書き込みタイミング窓の第1及び第2の境界を決定するに際しての技術についてなされている。上述した実施形態においては、データ信号1300又は書き込みクロック信号150のいずれかが、これら2つの信号の間での相対的な位相アライメントがメモリデバイス420による適切なデータ回復を可能にするように、正の漸増的位相シフトによって調節される。ここでの説明に基づき、当業者であれば、データ信号1300及び書き込みクロック信号150の各々が、書き込みタイミング窓を決定するため及びこれら2つの信号の間での適切な位相アライメントを達成するために、負の漸増的位相シフトによって調節され得ることを認識するはずである。また、ここでの説明に基づき、当業者であれば、データ信号1300及び書き込みクロック信号150の両方が、これら2つの信号の間での相対的な位相アライメントがメモリデバイス420による適切なデータ回復を可能にするように、例えば正及び負の漸増的位相シフトの適切な組み合わせで調節され得ることを認識するはずである。
【0113】
図5のステップ520に関する書き込みタイミング窓の決定の上述した説明は、メモリデバイス420の資源(例えばデータバス1307〜1300、A/Cバス14015〜1400及び書き込みクロック信号150)が読み出し及び/又は書き込みモードの動作のために用いられている最中でないことを前提としている。しかし、ここでの説明に基づいて、関連分野を含めた当業者であれば、書き込みタイミング窓の決定がコンピュータシステム400の書き込みモードの動作の間にもなされ得ることを認識するはずである。
【0114】
ある実施形態においては、書き込みモードの動作の間、メモリデバイス420へ書き込まれるデータが、書き込みタイミング窓を決定するために用いられ得る。本発明の実施形態に従い、書き込みデータ(例えば第1のデータパターン)が図5のステップ520に関して上述したように位相調節され得る結果、書き込みタイミング窓の第1及び第2の境界が決定され得る。書き込みデータを位相調節して書き込みタイミング窓を決定するに際して、データ信号1307〜1300をサンプリングするのに十分な時間をメモリデバイス420が有していないことに起因して、書き込み誤りがコンピュータシステム400において生じることがある。従って、書き込みデータを用いて書き込みタイミング窓を決定する場合、関連分野を含めた当業者であれば、特定の数の書き込み誤りがコンピュータシステム400に著しく影響し得る(例えばディスプレイモニタ上のグラフィクスがつっかえることがある)スレッショルド条件がコンピュータシステム400において存在することを認識するはずである。この状況に鑑み、コンピュータシステム400の性能が影響を受けないように、EDCモードの動作における位相調節の繰り返し数を小さくすることが望ましいであろう。読み出し/書き込み動作の回数は、コンピュータシステム400の性能に基づいて予め定められた値であってよく、ここで予め定められた値は、本発明の実施形態に従い、システム性能に影響を与えない。ある実施形態においては、読み出し/書き込み動作の回数は、基準点からの適切なタイミング窓を確保する予め定められた値(例えばEDCデータパターンの元のタイミング位置からの「(+)」及び「(−)」の両方向における漸増的位相シフトの予め定められた回数)に基づいていてよい。
【0115】
ある実施形態においては、書き込みタイミング窓の境界は、予め定められた数の書き込み誤りを生じさせる、データバス1307〜1300と書き込みクロック信号150の間の相対的な位相差(ここでは「プログラム可能スレッショルド値」とも称される)によって定義され得る。即ち、処理ユニット410とメモリデバイス420の間で繰り返された書き込み動作の結果として予め定められた数の誤ったチェックサム値が生じる場合に、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間の相対的な位相差が書き込みタイミング窓の境界として定義される。
【0116】
例えば、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間のある相対的な位相差で、処理ユニット410からメモリデバイス420に伝送される特定のデータパターンに対して、書き込み誤り(例えば誤ったチェックサム値)が生じ得る。別の書き込み誤りが生じるかどうかを検証するために、同じデータパターンが処理ユニット410からメモリデバイス420に伝送され得る。別の書き込み誤りが生じる場合、同じデータパターンをメモリデバイス420に伝送すると共にチェックサム値を検証するこの処理は、繰り返されてよい。この繰り返し処理の後に予め定められた数の書き込み誤りが生じていた場合(例えばプログラム可能スレッショルド値に到達していた場合)には、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間の相対的な位相差が、書き込みタイミング窓の境界として定義され得る。ある実施形態においては、書き込み誤りの予め定められた数(例えばプログラム可能スレッショルド値)は、コンピュータシステム400の性能に基づき得るし、ここで予め定められた値はシステム性能に影響を及ぼさない(例えばディスプレイモニタ上のグラフィクスがつっかえない)。
【0117】
図5の方法500を参照すると、ステップ530において、処理ユニット410は、ステップ520で決定された書き込みタイミング窓に基づいて、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間の位相差を調節する。上述したように、ステップ520に関して、書き込みタイミング窓は時間周期を参照し、この時間周期において、データバス1307〜1300上のデータ信号、書き込みクロック信号150、又はデータバス1307〜1300上のデータ信号及び書き込みクロック信号150の両方が互いに位相調節され得ることによって、メモリデバイス420はデータバス1307〜1300上のデータ信号を適切に回復することができる。
【0118】
図4を参照すると、第1のデータパターンに対する書き込みタイミング窓に基づいて、制御器450は、本発明の実施形態に従い、データバス1307〜1300上のデータ信号及び書き込みクロック信号150の伝送における位相遅延を、位相遅延回路430及び440を介して調節することができる。ある実施形態においては、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間の相対的な位相差が書き込みタイミング窓内であるように、データバス1307〜1300上のデータ信号の伝送を調節することができ、書き込みクロック信号150の伝送を調節することができ、あるいはデータバス1307〜1300上のデータ信号及び書き込みクロック信号150の両方の伝送を調節することができる。
【0119】
本発明の実施形態に従い、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間の相対的な位相差がステップ530で調節された後、処理ユニット410は、相対的な位相差設定に基づいて、メモリデバイス420上での書き込み動作を行う。ある実施形態においては、メモリデバイス420の書き込みタイミングを調節する方法500のステップは、コンピュータシステム400の要求に応じて周期的ベースで又は「必要に応じて」ベースで行われてよい。
【0120】
本発明の種々の態様がソフトウエア、ファームウエア、ハードウエア、又はそれらの組み合わせにおいて実装されてよい。図18は例示的なコンピュータシステム1800を示す図であり、システム1800においては、本発明の実施形態又はその部分がコンピュータ可読コードとして実装され得る。例えば、図5のフローチャート500によって示される方法がシステム1800内に実装され得る。本発明の種々の実施形態が、この例示的なコンピュータシステム1800に関して説明される。この明細書を読んだ後に、他のコンピュータシステム及び/又はコンピュータアーキテクチャを用いて本発明の実施形態をどのように実装するかは、関連分野を含めた当業者に明らかなはずである。
【0121】
尚、この発明の種々の実施形態のシミュレーション、合成及び/又は製造は、部分的には、一般的なプログラミング言語(例えばC又はC++)、例えばベリログHDL(Verilog HDL)、VHDL、アルテラHDL(Altera HDL)(AHDL)等のハードウエア記述言語(HDL)、若しくは他の利用可能なプログラミングを含むコンピュータ可読コード、及び/又は回路等キャプチュアツール(例えば回路キャプチュアツール)の使用を通して達成され得る。このコンピュータ可読コードは、半導体、磁気ディスク、光学ディスク(例えばCD−ROM、DVD−ROM)を含むあらゆる既知のコンピュータ使用可能媒体内に配置され得る。従って、コードは、インターネットを含む通信ネットワークを介して伝送され得る。上述したシステム及び技術により達成される機能及び/又は提供される構造は、プログラムコードにおいて具現化されるコア(例えばGPUコア)内に表現することができ、また集積回路の生産の一部としてハードウエアに変換され得ることが理解される。
【0122】
コンピュータシステム1800は1つ以上のプロセッサ、例えばプロセッサ1804を含む。プロセッサ1804は特定用途のあるいは汎用のプロセッサ(例えばGPU)であってよい。プロセッサ1804は通信基盤(communication infrastructure)1806(例えばバス又はネットワーク)に接続される。
【0123】
コンピュータシステム1800はまた、主メモリ1808、望ましくはランダムアクセスメモリ(RAM)を含み、そして補助メモリ1810を含んでいてもよい。補助メモリ1810は例えば、ハードディスクドライブ1812、リムーバブル記憶ドライブ1814、及び/又はメモリスティックを含み得る。リムーバブル記憶ドライブ1814はフロッピー(登録商標)ディスクドライブ、磁気テープドライブ、光学ディスクドライブ、フラッシュメモリ等を含み得る。リムーバブル記憶ドライブ1814は周知の方法によりリムーバブル記憶ユニット1818から読み出し及び/又はリムーバブル記憶ユニット1818へ書き込みする。リムーバブル記憶ユニット1818はフロッピー(登録商標)ディスク、磁気テープ、光学ディスク等を備えていてよく、リムーバブル記憶ドライブ1814によって読み出され且つ書き込まれる。関連分野を含めた当業者に理解されるであろうように、リムーバブル記憶ユニット1818はコンピュータソフトウエア及び/又はデータが既に記憶されたコンピュータ使用可能記憶媒体を含む。
【0124】
代替的な実装においては、補助メモリ1810は、コンピュータプログラム又は他の命令がコンピュータシステム1800にロードされることを可能にする他の同様のデバイスを含むことができる。そのようなデバイスは例えばリムーバブル記憶ユニット1822及びインタフェース1820を含み得る。そのようなデバイスの例は、プログラムカートリッジ及びカートリッジインタフェース(ビデオゲームデバイスにおいて見られるようなもの)、リムーバブルメモリチップ(例えばEPROM又はPROM)及び関連するソケット、並びにソフトウエア及びデータをリムーバブル記憶ユニット1822からコンピュータシステム1800へ転送することを可能にする他のリムーバブル記憶ユニット1822及びインタフェース1820を含み得る。
【0125】
コンピュータシステム1800はまた通信インタフェース1824を含むことができる。通信インタフェース1824はソフトウエア及びデータがコンピュータシステム1800と外部デバイスの間で転送されることを可能にする。通信インタフェース1824はモデム、ネットワークインタフェース(例えばイーサネット(登録商標)カード)、通信ポート、PCMCIAスロット及びカード等を含み得る。通信インタフェース1824を介して転送されるソフトウエア及びデータは、電子的、電磁気的、光学的であってよい信号、又は通信インタフェース1824によって受信されることが可能な他の信号の形態にある。これらの信号は通信パス1826を介して通信インタフェース1824へ供給される。通信パス1826は信号を伝え、ワイヤ若しくはケーブル、光ファイバ、電話線、携帯電話リンク、RFリンク又は他の通信チャネルを用いて実装され得る。
【0126】
この文書では、「コンピュータプログラム媒体」及び「コンピュータ使用可能媒体」という用語は、リムーバブル記憶ユニット1818、リムーバブル記憶ユニット1822、及びハードディスクドライブ1812に組み込まれるハードディスクを一般的には参照して用いられる。コンピュータプログラム媒体及びコンピュータ使用可能媒体はまた、主メモリ1808及び補助メモリ1810等のメモリ半導体(例えばDRAM等)であり得るメモリを参照してよい。これらのコンピュータプログラム製品はコンピュータシステム1800にソフトウエアを提供する。
【0127】
コンピュータプログラム(コンピュータ制御論理とも称される)は主メモリ1808及び/又は補助メモリ1810内に記憶される。コンピュータプログラムはまた、通信インタフェース1824を介して受信されてもよい。そのようなコンピュータプログラムは、実行されるときに、ここで論じられる本発明の実施形態をコンピュータシステム1800が実装することを可能にする。特に、コンピュータプログラムは、実行されるときに、上述した図5のフローチャート500によって示される方法におけるステップのような本発明の実施形態のプロセスをプロセッサ1804が実装することを可能にする。従って、そのようなコンピュータプログラムはコンピュータシステム1800の制御器を代表する。ソフトウエアを用いて本発明の実施形態が実装される場合、ソフトウエアは、コンピュータプログラム製品内に記憶され得ると共に、リムーバブル記憶ドライブ1814、インタフェース1820、ハードドライブ1812、又は通信インタフェース1824を用いてコンピュータシステム1800内にロードされ得る。
【0128】
本発明の実施形態はまた、任意のコンピュータ使用可能媒体上に記憶されるソフトウエアを含むコンピュータプログラム製品に向けられている。そのようなソフトウエアは、1つ以上のデータ処理デバイス内で実行されるときに、単一又は複数のデータ処理デバイスをここで説明されているように動作させる。本発明の実施形態は、現在知られている又は将来知られることになる任意のコンピュータ使用可能又はコンピュータ可読の媒体を採用する。コンピュータ使用可能媒体の例は、限定はされないが、主記憶デバイス(例えば任意の種類のランダムアクセスメモリ)、補助記憶デバイス(例えばハードドライブ、フロッピー(登録商標)ディスク、CD_ROM、ZIPディスク、テープ、磁気記憶デバイス、光学記憶デバイス、MEMS、ナノテクノロジー記憶デバイス等)、及び通信媒体(例えば有線及び無線通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク、イントラネット等)を含む。
【0129】
本発明の種々の実施形態が上に説明されてきたが、それらは例示のみを目的として提示されたものであり、限定を目的とはしていないことが理解されるべきである。添付の特許請求の範囲において画定されるような本発明の精神及び範囲から逸脱することなしに、形態及び詳細における種々の変更がここになされ得ることが関連分野を含めた当業者によって理解されるはずである。本発明はこれらの例示に限定されないことが理解されるべきである。本発明はここに説明されるように動作する任意の要素に適用可能である。従って、本発明の広さ及び範囲は上述のいかなる例示的実施形態によっても限定されるべきではなく、後述の特許請求の範囲及びそれらの均等なものに従ってのみ画定されるべきである。
【技術分野】
【0001】
本発明の実施形態は、概してメモリデバイスにおける書き込みタイミングの調節に関する。より特定的には、本発明の実施形態は、誤り検出機能の結果に基づいてメモリデバイスの書き込みタイミングを調節することに言及する。
【背景技術】
【0002】
処理ユニットとメモリデバイスの間でのデータ通信は、典型的には、例えばワイヤ及びトレース等の信号パスに沿ってデータを送ることを伴う。同期インタフェースを伴うメモリデバイスにおいては、処理ユニットは、クロック信号をデータ信号と共にメモリデバイスへ送信することがある。クロック信号は、データ信号がいつメモリデバイスによってラッチされるべきかを決定するために用いられ、このようにしてメモリデバイスを処理ユニットに同期させる。適切なデータ回復のために、メモリデバイスは、クロック信号がデータ信号をサンプリングすることが可能な時間周期内でクロック信号を受信する必要がある(例えばクロック信号は、データ信号のデータアイに対応する時間の周期内でデータ信号をサンプリングする必要がある)。さもなければ、メモリデバイスは正確なデータ値を回復することができないであろう。
【発明の概要】
【発明が解決しようとする課題】
【0003】
温度やジッタ(jitter)等の実体的な変化は、処理ユニットからメモリデバイスへ伝送されるデータ信号及びクロック信号の減衰の原因となり得るので、データ信号の完全性における損失を引き起こす可能性がある。その結果、メモリデバイスによる貧弱な又は不正確なデータ回復がもたらされ得る。コンピュータシステムにおける動作周波数が高くなるに従って、処理ユニットからメモリデバイスへより高速にデータを伝送する必要性が生じている。従って、メモリデバイスは、より高速にデータをサンプリングすることを必要とするだけでなく、適切なタイミングでデータをサンプリングすることを必要とする。
【課題を解決するための手段】
【0004】
本発明の実施形態は、メモリデバイスにおける書き込みタイミングを調節するための方法を含む。方法は、誤り検出機能の結果に基づきデータバス上の信号と書き込みクロック信号との間の書き込みタイミング窓を決定することを含むことができる。方法はまた、書き込みタイミング窓に基づきデータバス上の信号と書き込みクロック信号との間の位相差を調節することを含むことができ、ここでメモリデバイスは、調節された位相差に基づきデータバス上の信号を回復する。
【0005】
本発明の実施形態はまた、メモリデバイスにおける書き込みタイミングを調節するための別の方法を含む。方法は、処理ユニットから伝送される第1のデータパターンを受信することと、書き込みクロック信号に基づきメモリデバイスのインタフェースで受信される第1のデータパターンであり得る第2のデータパターンに誤り検出機能を行って第1の結果を生成することと、第1の結果を処理ユニットへ伝送することと、データバス上の信号を受信することと、を含むことができ、データバス上の信号と書き込みクロック信号との間の位相差は書き込みタイミング窓内にあり、書き込みタイミング窓は、第1の結果と第1のデータパターンに行われる誤り検出機能からの第2の結果との間での比較に基づいている。
【0006】
本発明の実施形態は、メモリデバイスにおける書き込みタイミングを調節するシステムのためのシステムを含む。システムは、メモリデバイスと、メモリデバイスに結合される処理ユニットと、を含むことができる。処理ユニットは、誤り検出機能の結果に基づきデータバス上の信号と書き込みクロック信号との間の書き込みタイミング窓を決定する機能と、書き込みタイミング窓に基づきデータバス上の信号と書き込みクロック信号との間の位相差を調節する機能と、を行うように構成されることができ、ここでメモリデバイスは調節された位相差に基づきデータバス上の信号を回復する。
【0007】
本発明の実施形態は、メモリデバイスにおける書き込みタイミングを調節するシステムのための別のシステムを含む。システムは、処理ユニットと、処理ユニットに結合されるメモリデバイスと、を含むことができる。メモリデバイスは、処理ユニットから伝送される第1のデータパターンを受信する機能と、書き込みクロック信号に基づきメモリデバイスのインタフェースで受信される第1のデータパターンを備える第2のデータパターンに誤り検出機能を行って第1の結果を生成する機能と、第1の結果を処理ユニットへ伝送する機能と、データバス上の信号を受信する機能と、を行うように構成されることができ、ここでデータバス上の信号と書き込みクロック信号との間の位相差は書き込みタイミング窓内にあり、書き込みタイミング窓は、第1の結果と第1のデータパターンに行われる誤り検出機能からの第2の結果との間での比較に基づいている。
【0008】
本発明の実施形態は、メモリデバイスにおける書き込みタイミングを調節するためのコンピュータプログラム製品を更に含む。コンピュータプログラム製品は、プロセッサがソフトウエアコードを解析することを可能にするコンピュータプログラム論理が記録されるコンピュータ使用可能媒体を含む。コンピュータプログラム論理は、プロセッサが誤り検出機能の結果に基づきデータバス上の信号と書き込みクロック信号との間の書き込みタイミング窓を決定することを可能にする第1のコンピュータ可読プログラムコードと、プロセッサが書き込みタイミング窓に基づきデータバス上の信号と書き込みクロック信号との間の位相差を調節することを可能にする第2のコンピュータ可読プログラムコードと、を含み、ここでメモリデバイスは調節された位相差に基づきデータバス上の信号を回復する。
【0009】
本発明の更なる特徴及び利点の他、本発明の種々の実施形態の構成及び動作は、添付の図面を参照して以下に詳細に説明される。本発明はここに説明される特定の実施形態に限定されないことに留意されたい。そのような実施形態は例示のみを目的としてここに提示されている。ここに含まれる教示に基づいて追加の実施形態が関連分野を含めた当業者にとって明らかであろう。
【図面の簡単な説明】
【0010】
ここに組み込まれ且つ出願書類の一部をなす添付の図面は、本発明の実施形態を示し、そして明細書と共に、本発明の原理を説明し関連分野を含めた当業者が本発明を作りまた用いることを可能にするのに更に役に立つ。
【0011】
【図1】図1は処理ユニット及びメモリデバイスを伴う例示的なコンピュータシステムを示す図である。
【0012】
【図2】図2はメモリデバイスによる適切なデータ回復を代表する例示的な書き込みタイミング図を示す図である。
【0013】
【図3】図3はメモリデバイスによる適切なデータ回復を代表しない例示的な書き込みタイミング図を示す図である。
【0014】
【図4】図4はメモリデバイスにおける書き込みタイミングを調節するコンピュータシステムの実施形態を示す図である。
【0015】
【図5】図5はメモリデバイスにおける書き込みタイミングを調節するための方法の実施形態を示す図である。
【0016】
【図6】図6は第1及び第2の誤り検出機能結果が互いに一致する場合に書き込みタイミング周期の第1の書き込みタイミング境界を決定するためのフローチャートの実施形態を示す図である。
【0017】
【図7】図7は第1及び第2の誤り検出機能結果が互いに一致する場合に書き込みタイミング周期の第1の書き込みタイミング境界を決定するためのフローチャートの説明を容易にする例示的なタイミング図を示す図である。
【0018】
【図8】図8は第1及び第2の誤り検出機能結果が互いに一致する場合に書き込みタイミング周期の第2の書き込みタイミング境界を決定するためのフローチャートを示す図である。
【0019】
【図9】図9は第1及び第2の誤り検出機能結果が互いに一致する場合に書き込みタイミング周期の第2の書き込みタイミング境界を決定するためのフローチャートの説明を容易にする例示的なタイミング図を示す図である。
【0020】
【図10】図10は第1及び第2の誤り検出機能結果が互いに一致する場合に書き込みクロック信号に基づく書き込みタイミング周期の第1の書き込みタイミング境界の決定の説明を容易にする例示的なタイミング図を示す図である。
【0021】
【図11】図11は第1及び第2の誤り検出機能結果が互いに一致する場合に書き込みクロック信号に基づく書き込みタイミング周期の第2の書き込みタイミング境界の決定の説明を容易にする例示的なタイミング図を示す図である。
【0022】
【図12】図12は第1及び第2の誤り検出機能結果が互いに一致しない場合に書き込みタイミング周期の第1の書き込みタイミング境界を決定するためのフローチャートを示す図である。
【0023】
【図13】図13は第1及び第2の誤り検出機能結果が互いに一致しない場合に書き込みタイミング周期の第1の書き込みタイミング境界を決定するためのフローチャートの説明を容易にする例示的なタイミング図を示す図である。
【0024】
【図14】図14は第1及び第2の誤り検出機能結果が互いに一致しない場合に書き込みタイミング周期の第2の書き込みタイミング境界を決定するためのフローチャートを示す図である。
【0025】
【図15】図15は第1及び第2の誤り検出機能結果が互いに一致しない場合に書き込みタイミング周期の第2の書き込みタイミング境界を決定するためのフローチャートの説明を容易にする例示的なタイミング図を示す図である。
【0026】
【図16】図16は第1及び第2の誤り検出機能結果が互いに一致しない場合に書き込みクロック信号に基づく書き込みタイミング周期の第1の書き込みタイミング境界の決定の説明を容易にする例示的なタイミング図を示す図である。
【0027】
【図17】図17は第1及び第2の誤り検出機能結果が互いに一致しない場合に書き込みクロック信号に基づく書き込みタイミング周期の第2の書き込みタイミング境界の決定の説明を容易にする例示的なタイミング図を示す図である。
【0028】
【図18】図18は本発明の実施形態が実装され得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0029】
以下の詳細な説明は、本発明に従う例示的な実施形態を示す添付の図面を参照する。他の実施形態も可能であり、また本発明の精神及び範囲内で実施形態に対して修正がなされ得る。従って、詳細な説明は本発明を限定することを意図されていない。むしろ、本発明の範囲は添付の特許請求の範囲によって画定される。
【0030】
以下に説明されるように、本発明は、ソフトウエア、ハードウエア、ファームウエア、及び/又は図面に示される構成要素の多くの異なる実施形態において実装され得ることが関連分野を含めた当業者には明らかであろう。従って、本発明の実施形態の動作的な挙動は、ここに提示されるレベルの詳細を与えられて実施形態の修正及び変形が可能であるという理解の下で説明されることになる。
【0031】
図1は処理ユニット及びメモリデバイスを伴う例示的なコンピュータシステム100を示す図である。コンピュータシステム100は、処理ユニット110、メモリデバイス120、データバス1307〜1300、アドレス/制御(A/C)バス14015〜1400、クロック信号150(例えば書き込みクロック信号)、並びに誤り検出及び訂正(EDC)信号160を含む。
【0032】
処理ユニット110は、A/Cバス14015〜1400を介してメモリデバイス120へアドレス/制御信号を送信する。アドレス/制御信号は、例えば、クロックイネーブル(/CKE)、チップ選択(/CS)、行アドレスストローブ(/RAS)、列アドレスストローブ(/CAS)、書き込みイネーブル(/WE)、及びアドレスバス(例えばA[8:0])を含み得る。メモリデバイス120内のコマンドデーコーダ(図示せず)は、アドレス/制御信号を受信し、そしてアドレス/制御信号のビットセッティングに基づいて、メモリデバイス120に対する動作のモードを示す。メモリデバイス120に対する動作のモードは、例えば、読み出し動作、書き込み動作、アイドル動作、及びリフレッシュ動作を含み得る。
【0033】
同期メモリシステムにおいては、図1のA/Cバス14015〜1400上のアドレス/制御信号は、クロック信号150のエッジ(例えばクロック信号150の立ち上がりエッジ)に対してタイミングをとられており、アドレス/制御信号はクロック信号150のエッジ上でサンプリングされる。例示の目的で、A/Cバス14015〜1400は16ビットデータバスとして示されている。ここでの説明に基づいて、関連分野を含めた当業者であれば、A/Cバス14015〜1400のバス幅が変化し得る(例えば8ビット、32ビット等)ことを認識するであろう。アドレス/制御バス及びこれらのバス上を進行する関連信号は、関連分野を含めた当業者に知られている。
【0034】
誤り検出及び訂正(EDC)は、データが処理ユニット110からメモリデバイス120へ誤りなしに伝送されることを確実にするための技術を参照する。ある例においては、EDC信号160は、処理ユニット110とメモリデバイス120の間でパリティ情報又は誤り訂正符号を伝えるために用いられ得る。誤り検出機能は、関連分野を含めた当業者に知られているように、データバス1307〜1300上のデータ信号に基づいてパリティ及び誤り訂正符号を生成する。パリティ情報又は誤り訂正符号に基づいて、処理ユニット110は、メモリデバイス120へのデータ伝送に誤りがないかどうかを決定することができる。コンピュータシステム100においては、EDC信号160は、EDCデータをメモリデバイス120から処理ユニット110へ伝える単方向信号である。当業者であれば、EDC信号160が双方向信号であってもよいことを理解するであろうし、この場合、EDCデータは処理ユニット110とメモリデバイス120の間で運ばれる。EDC技術及びアルゴリズムは、関連分野を含めた当業者に知られている。
【0035】
処理ユニット110は、データバス1307〜1300を介してメモリデバイス120へデータを送信し、またメモリデバイス120からデータを受信する。書き込み動作の間、データは処理ユニット110からメモリデバイス120へデータバス1307〜1300を介して転送される。読み出し動作の間、データはメモリデバイス120から処理ユニット110へデータバス1307〜1300を介して運ばれる。同期メモリシステムにおいては、処理ユニット110によってデータが送信されまた受信される速度は、クロック信号、例えばクロック信号150に基づいている。例示の目的で、データバス1307〜1300は8ビット双方向データバスとして示されている。ここでの説明に基づいて、関連分野を含めた当業者であれば、データバス1307〜1300のバス幅が変化し得る(例えば16ビット、32ビット等)ことを認識するであろう。データバス及びこれらのバス上を進行する関連信号は、関連分野を含めた当業者に知られている。
【0036】
メモリデバイス120は、処理ユニット110から伝送されたデータを記憶する。データ(処理ユニット110から伝送されたデータ)の受信及び記憶は、メモリデバイス120への「書き込み(writing)」として知られている。逆に、データはメモリデバイス120からリトリーブされる(retrieved)ことができ、これはメモリデバイス120からの「読み出し(reading)」として知られている。メモリデバイス120は同期インタフェースを伴って構成されてよく、メモリデバイス120は、データバス1307〜1300上のデータを処理するのに先立ち、同期インタフェースにおいてクロック信号150を待つ。例えば、メモリデバイス120は、データバス1307〜1300からのデータを受信するために、又はデータバス1307〜1300を介してメモリデバイス120からのデータを処理ユニット110へ送信するために、クロック信号150にアラインされた内部クロック信号を生成することができる。メモリデバイス120の内部クロック信号は、関連分野を含めた当業者によって理解されるように、例えばクロック信号150の周波数の倍数(例えば2倍、4倍、等)であってよい。
【0037】
図2は、メモリデバイス120による適切なデータ回復を代表する、コンピュータシステム100のための例示的な書き込みタイミング図200を示す図である。書き込みタイミング図200は、データ信号1300のためのデータアイとクロック信号150とに対するタイミングを含み、ここでデータアイは、クロック信号150がデータ信号1300をサンプリングするために用いられ得る時間の周期210を定義することができる(例えば、メモリデバイス120による適切なデータ回復は時間の周期210内で起こり得る)。データアイは、例えば、有効バイナリ値を伴うデータ信号1300の部分を参照する。ここで、クロック信号150は、データ信号1300に対して中央にアラインされており、そしてクロック信号150がHIGHの場合(又は論理値の「1」を有している場合)にデータアイ内でデータ信号1300をサンプリングする。関連分野を含めた当業者によって理解されるように、クロック信号150のデータ信号1300に対する中央アライメントは、メモリデバイス120がデータ信号1300を受信しまたサンプリングするのに十分な時間の周期を割り当てられることを理由として、コンピュータシステム100に対して理想的な書き込みタイミングをもたらす。当業者であれば、データ信号1300に対するクロック信号150のアライメントは他のアライメント位置で生じ得ることを理解するはずである。
【0038】
図3は、メモリデバイス120による適切なデータ回復を代表していない、コンピュータシステム100のための例示的な書き込みタイミング図300を示す図である。書き込みタイミング図200と同様、書き込みタイミング図300は、データ信号1300のデータアイとクロック信号150とに対するタイミングを含む。しかし、クロック信号150はデータ信号1300に対して相対的な位相差310(又はタイミングスキュー(timing skew))を有しており、ここで位相差310は、データ信号1300をサンプリングするのに十分な時間(例えばメモリデバイス120がデータ信号1300をラッチするのに十分な時間)をメモリデバイス120に提供しないであろう。データ信号1300とクロック信号150の間での相対的な位相差310における変動は、例えばコンピュータシステム100における温度及びジッタのような種々の因子に起因し得る。例示的な書き込みタイミング図300においては、相対的な位相差310は、データアイ210の中心と、クロック信号150がデータ信号1300をサンプリングするとき(例えばクロック信号150がHIGHであるとき又は論理値の「1」を有しているとき)のクロック信号150の中心との間の差によって定義され得る。
【0039】
コンピュータシステム100の動作周波数が高くなるに従って、メモリデバイス120は、より高速な周波数でデータバス1307〜1300上の信号をサンプリングすることが必要なだけでなく、適切なタイミングでデータ信号をサンプリングする必要がある。データの適切なサンプリングを確実にするために、クロック信号150はデータバス1307〜1300上の信号に対して最適にアラインされるべきである。データバス1307〜1300上の信号に対してクロック信号150をアラインするために、データバス1307〜1300とクロック信号150の間での相対的な位相差(又はタイミングスキュー)が、誤り検出機能に基づいてモニタリングされ且つ調節され得る。結果として、コンピュータシステム100は、処理ユニット110とメモリデバイス120の間での書き込みタイミングが最適化され得るように構成され得る。
【0040】
図4はメモリデバイスにおける書き込みタイミングを調節するコンピュータシステム400の実施形態を示す図である。コンピュータシステム400は、処理ユニット410、メモリデバイス420、データバス1307〜1300、A/Cバス14015〜1400、クロック信号150(ここでは書き込みクロック信号とも称される)、及びEDC信号160を含む。データバス1307〜1300、A/Cバス14015〜1400、書き込みクロック信号150、及びEDC信号160は、図1を参照して上述したのと同様の様態で機能する。
【0041】
ある実施形態においては、処理ユニット410及びメモリデバイス420は回路基板上の集積回路(IC)デバイスであり、これら2つのICデバイスは、データバス1307〜1300、A/Cバス14015〜1400、及び書き込みクロック信号150によって通信可能に結合され、ここでデータバス1307〜1300、A/Cバス14015〜1400、書き込みクロック信号150、及びEDC信号160は、ワイヤ、相互接続、又は回路基板トレースであり得る。別の実施形態においては、処理ユニット410及びメモリデバイス420は、処理ユニット410をメモリデバイス420に通信可能に結合するデータバス1307〜1300、A/Cバス14015〜1400、書き込みクロック信号150、及びEDC信号160と共に、単一のICデバイス上に集積化されている。
【0042】
データバス1307〜1300、A/Cバス14015〜1400、書き込みクロック信号150、及びEDC信号160は、メモリデバイス420の動作のモード(例えば読み出し、書き込み、アイドル、及びリフレッシュの動作のモード)において用いられる処理ユニット410及びメモリデバイス420の入力/出力(I/O)ポートに接続される。処理ユニットをメモリデバイスに接続するI/Oポート(例えばDQピン及びクロックピン)は、関連分野を含めた当業者に知られている。
【0043】
処理ユニット410は本発明の実施形態に従いGPUである。代替的に別の実施形態においては、処理ユニット410はCPU又はメモリ制御器であり得る。ここでの説明に基づいて、関連分野を含めた当業者であれば、本発明の実施形態は本発明の範囲及び精神に含まれる他の種類の処理ユニットと共に実装され得ることを認識するであろう。
【0044】
ある実施形態においては、処理ユニット410は、位相遅延回路430及び440と制御器450とを含む。ある実施形態においては、位相遅延回路430は、データバス1307〜1300上を進行する信号の伝送を遅延させるように構成される。同様に、ある実施形態においては、位相遅延回路440は、書き込みクロック信号150を遅延させるように構成される。制御器450は、本発明の実施形態に従い各位相遅延回路430及び440のための位相遅延の量を制御するように構成される。制御器450から位相遅延回路430及び440に発行される位相遅延の量は、図5の方法500を参照して後で詳細に説明される。移送遅延回路及び位相遅延回路を制御するために用いられる関連する制御器は、関連分野を含めた当業者に知られている。
【0045】
図4を参照すると、ある実施形態においては、メモリデバイス420はダイナミックランダムアクセスメモリ(DRAM)デバイスである。ここでの説明に基づいて、関連分野を含めた当業者であれば、本発明の実施形態は他の種類のメモリデバイスと共に実装され得ることを認識するであろう。これらの他の種類のメモリデバイスは本発明の範囲及び精神に含まれる。
【0046】
図5はメモリデバイスにおいて書き込みタイミングを調節するための方法500の実施形態を示している。方法500は、例えば、図4のコンピュータシステム400を用いて生じ得る。説明の目的で、方法500の説明を容易にするためにコンピュータシステム400が用いられる。しかし、ここでの説明に基づいて、関連分野を含めた当業者であれば、方法500が他のコンピュータシステムにおいて実装され得ることを認識するはずである。
【0047】
ある実施形態においては、方法500は、処理ユニット410とメモリデバイス420の間での書き込みタイミングを調節するために、コンピュータシステム400によって用いられ得る。特に、1つ以上のデータパターンをメモリデバイス420に書き込むこと及びメモリデバイス420からの対応する誤り検出機能結果を読み出すことの1つ以上のシーケンスを通して、処理ユニット410の制御器450は、メモリデバイス420がデータバス1307〜1300からのデータを適切に回復するように、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間の位相を調節することができる(位相遅延回路430及び440を介して)。
【0048】
図5の方法500を参照すると、ステップ510では、処理ユニット410は、メモリデバイス420を誤り検出モードの動作に設定するための1つ以上のコマンドを発行する。ある実施形態においては、メモリデバイス420は、メモリデバイス420のアクティブモードの動作の間に、誤り検出モードの動作にあることが可能である。これらのアクティブモードの動作は、例えば、読み出し及び書き込みモードの動作を含み得る。別の実施形態においては、メモリデバイス420は、メモリデバイス資源が非アクティブである場合に、誤り検出モードの動作にあることが可能である。これらのモードの動作においては、例えばデータバス1307〜1300、A/Cバス14015〜1400、及び書き込みクロック信号150等のメモリデバイス資源は、読み出し又は書き込みモードの動作に対してコンピュータシステム400によって用いられていない。
【0049】
説明を容易にするために、方法500の以下の説明は、メモリデバイス資源が非アクティブである場合の誤り検出モードに関連してなされる(例えばデータバス1307〜1300、A/Cバス14015〜1400、及び書き込みクロック信号150は、読み出し及び/又は書き込みの動作に対してコンピュータシステム400によって用いられていない)。しかし、ここでの説明に基づいて、関連分野を含めた当業者であれば、メモリデバイス資源がアクティブである場合の誤り検出モードにおいても方法500が実装され得ることを認識するはずである(例えばデータバス1307〜1300、A/Cバス14015〜1400、及び書き込みクロック信号150は、読み出し及び/又は書き込みの動作に対してコンピュータシステム400によって用いられている)。
【0050】
ステップ520では、処理ユニット410は、誤り検出機能の結果に基づいて、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間での書き込みタイミング窓を決定する。書き込みタイミング窓はある時間周期を参照し、その時間周期内において、データバス1307〜1300上のデータ信号、書き込みクロック信号150、又はデータバス1307〜1300上のデータ信号及び書き込みクロック信号150の両方が、メモリデバイス420がデータバス1307〜1300上のデータを適切に回復するように、互いに位相調節され得る。ある実施形態においては、書き込みタイミング窓は、第1のタイミング境界及び第2のタイミング境界によって定義される。書き込みタイミング窓並びにそれが関連する第1及び第2の書き込みタイミング境界は、図6〜17に関して後で更に詳細に説明される。
【0051】
誤り検出機能は、データが誤りなしに処理ユニット410からメモリデバイス420に伝送されることを確実にするために用いられ得る誤り検出及び訂正技術において用いられるアルゴリズムを参照する。上述したように、データ伝送誤りは、例えばコンピュータシステム400における温度及びジッタ等の変化の結果であり得る。方法500に関連するような誤り検出機能は、図6〜17に関して後で更に詳細に説明される。
【0052】
ある実施形態においては、メモリデバイス420の書き込みタイミングを調節するために、第1のデータパターンが用いられる。第1のデータパターンは、例えば、「1」及び「0」の論理値のランダムな組み合わせを伴う8ビットデータパターンであってよい。ある実施形態においては、処理ユニット410は、第1のデータパターンに誤り検出機能を行って、例えばパリティ値、チェックサム値、又は誤り検出機能からの別の種類の結果を生成する。ある実施形態においては、誤り検出機能はチェックサムスキームを実装しており、この場合、第1のデータパターンのチェックサム値は、固定サイズのビット長を伴う第1のデータパターンのハッシュバージョン(hashed version)を表す。第1のデータパターンに対する誤り検出機能の結果は、本発明の実施形態に従い比較目的(後で更に説明される)で用いられるためにプロセッサ410内に記憶される。
【0053】
パリティスキーム及びチェックサムスキームは、特に誤り検出及び訂正(EDC)技術と併せて用いられ、また関連分野を含めた当業者に知られている。ここでの説明に基づいて、関連分野を含めた当業者であれば、他の誤り検出機能がEDC技術と併せて用いられ得ることを認識するはずである。これらの他の誤り検出機能は、本発明の範囲及び精神に含まれる。
【0054】
ある実施形態においては、第1のデータパターンは処理ユニット410からメモリデバイス420に伝送され、この場合、メモリデバイス420は、書き込みクロック信号150に基づいてメモリデバイス420のインタフェース(例えばメモリデバイス420のI/Oピンインタフェース)で第1のデータパターンにおける情報をサンプリングする。第1のデータパターンがメモリデバイス420によって受信された後、メモリデバイス420は、第2のデータパターンに誤り検出機能を行う。第2のデータパターンは、メモリデバイス420のインタフェースで受信される第1のデータパターンを表す。ある実施形態においては、書き込みクロック信号150とデータバス1307〜1300上のデータ信号との間にはタイミングスキューが生じてしまっているであろうから、第2のデータパターンは、処理ユニット410から伝送された第1のデータパターンのビット情報とは異なるビット情報を含み得る。このタイミングスキューは、図3に関して上述したタイミングスキューと同様である。
【0055】
ある実施形態においては、メモリデバイス420は、プロセッサ410が第1のデータパターンに適用したのと同じ誤り検出機能を第2のデータパターンに適用する。第2のデータパターンに対する誤り検出機能の結果は、本発明の実施形態に従い、固定サイズのビット長を伴う第2のデータパターンのハッシュバージョンを表す。第2のデータパターンに対する誤り検出機能の結果は、本発明の実施形態に従い、EDC信号160を介してプロセッサ410へ伝送される。
【0056】
処理ユニット410は、第1のデータパターンに対する誤り検出機能の結果(ここでは「第1の結果」とも称される)を第2のデータパターンに対する誤り検出機能の結果(ここでは「第2の結果」とも称される)と比較して、2つの結果が互いに一致するかどうかを決定する。ある実施形態においては、処理ユニット410の制御器450が第1の結果を第2の結果と比較し、この場合、制御器450は、第1の結果からのビット情報を第2の結果からのビット情報とビット単位ベース(bit-by-bit basis)で比較する。つまり、第1の結果における各ビットが第2の結果における対応するビットと比較されて、第1及び第2の結果が互いに一致するかどうかを決定する。
【0057】
ある実施形態においては、制御器450は、第1及び第2の結果の比較に基づいて、書き込みタイミング窓の第1のタイミング境界及び第2のタイミング境界を決定する。書き込みタイミング窓の第1及び第2のタイミング境界の決定の以下の説明は、2つのシナリオに照らしてなされており、即ち(1)図6〜11において説明されるように第1及び第2の結果が互いに一致する場合のシナリオと、(2)図12〜17において説明されるように第1及び第2の結果が互いに一致しない場合のシナリオとである。説明を容易にするために、書き込みタイミング窓の第1及び第2のタイミング境界の以下の説明は、データバス1307〜1300上のデータ信号1300に基づいている。関連分野を含めた当業者であれば、ここでの説明に基づいて、以下に説明されるフローチャート及び例示的なタイミング図がデータバス1307〜1300上のデータ信号に等しく適用されることを認識するはずである。
【0058】
図6は第1及び第2の結果が互いに一致する場合に書き込みタイミング窓の第1のタイミング境界を決定するためのフローチャート600の実施形態を示す図である。フローチャート600の説明を容易にするために、図7のタイミング図700が用いられることになる。タイミング図700を参照すると、タイミング図I及びIIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間(例えばメモリデバイス420がデータ信号1300をラッチするのに十分な時間)を有しているので、メモリデバイス420は、データ信号1300からデータを適切に回復することができる。これは図2に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様である。図7のタイミング図IIは、データ信号1300の位相シフトされた表現であり、フローチャート600に関して以下に説明されることになる。
【0059】
図6のフローチャート600を参照すると、フローチャート600の開始点は、第1の結果が第2の結果に一致する場合の状況を考慮している。これは、タイミング図700に関して上述したように、メモリデバイス420がデータ信号1300をサンプリングするのに十分な時間を有してことによる場合である(図7のタイミング図Iにおいて)。従って、第1のデータパターンに対する誤り検出機能の結果は、本発明の実施形態に従い、第2のデータパターンに対する誤り検出機能の結果に一致する。ある実施形態においては、処理ユニット410が、書き込みタイミング窓の第1のタイミング境界を決定するに際してフローチャート600のステップを実行する。
【0060】
ステップ610では、処理ユニット410は、第1のデータパターンに正の漸増的(incremental)位相シフトを導入する。ある実施形態においては、漸増的位相シフトは、書き込みクロック信号150のサイクルの分数として定義される。例えば分数は、書き込みクロック信号150の1/10、1/5、3/10、又は2/5であってよい。また、図7のタイミング図700を参照すると、本発明の実施形態に従い、正の漸増的位相シフトは「(+)」方向における漸増的位相シフトとして定義される。
【0061】
ステップ620では、位相シフトされた第1のデータパターンがメモリデバイス420へ伝送される。
【0062】
ステップ630では、処理ユニット410は、第2のデータパターンに適用された誤り検出機能からの結果を受信する。第2のデータパターンは、メモリデバイス420のインタフェースで受信される位相シフトされた第1のデータパターンを表す。ある実施形態においては、メモリデバイス420は、プロセッサ410によって第1のデータパターンに適用された誤り検出機能と同じ誤り検出機能を第2のデータパターンに行う。第2のデータパターンに対する誤り検出機能の結果は、本発明の実施形態に従い、メモリデバイス420から処理ユニット410へEDC信号160を介して伝送される。
【0063】
ステップ640では、処理ユニット410は、第1のデータパターンに適用された誤り検出機能の第1の結果を第2のデータパターンに適用された誤り検出機能の第2の結果と比較し、この場合、制御器450が第1の結果のビット情報を記憶している。制御器450は第1の結果からのビット情報を第2の結果からのビット情報と比較し、ここで第2の結果は、本発明の実施形態に従い、メモリデバイス420のインタフェースで受信される位相シフトされた第1のデータパターンを示している。ある実施形態においては、第1及び第2の結果はビット単位ベースで互いと比較される。
【0064】
ステップ650において、第1の結果からのビット情報が第2の結果からのビット情報に一致する場合には、処理ユニット410は追加的な正の漸増的位相遅延を第1のデータパターンに導入し(ステップ610)、そしてステップ620〜640が繰り返される。
【0065】
第1及び第2の結果からのビット情報が互いに一致しない場合には、ステップ660において、先の位相シフトされた第1のデータパターンからの位相シフト情報が処理ユニット410内に記憶される。図7のタイミング図700を参照すると、タイミング図IIは正の位相シフトされたデータ信号1300(即ち正の位相シフトされた第1のデータパターン)を表している。タイミング図I及びIIにおける標識710は、データ信号1300における正の漸増的位相シフトを示すためのデータ信号1300上での基準点を表している。また、標識730はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、正の位相シフトの追加的な漸増がデータ信号1300に導入されるとすると(図7のタイミング図IIにおいて)、書き込みクロック信号150は有効なデータ信号1300をサンプリングすることができない。この理由は、位相シフトにおける追加的な正の漸増が少しでもデータ信号1300に与えられると、データ信号1300をサンプリングするのに十分な時間を書き込みクロック信号150が有することができないところにある(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)。
【0066】
図7のタイミング図700を参照すると、時間周期720は、本発明の実施形態に従う書き込みタイミング窓の第1のタイミング境界を表している。特に、時間周期720はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、データ信号1300は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに位相シフトにおける追加的な正の漸増を有することはできない。ある実施形態においては、書き込みクロック信号150に対するデータ信号1300の元の位相位置(例えば図7のタイミング図Iにおける標識710)を参照すると、データ信号1300は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに時間周期720よりも大きな正の位相シフトを有することはできない。
【0067】
図8は第1及び第2の結果が互いに一致する場合に書き込みタイミング窓の第2の境界条件を決定するためのフローチャート800の実施形態を示す図である。フローチャート800の説明を容易にするために、図9の例示的なタイミング図900が用いられることになる。タイミング図900を参照すると、タイミング図I及びIIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間(例えばメモリデバイス420がデータ信号1300をラッチするのに十分な時間)を有しているので、図2に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様に、メモリデバイス420は、データ信号1300からデータを適切に回復することができる。図9のタイミング図IIは、データ信号1300の位相シフトされた表現であり、フローチャート800に関して以下に説明されることになる。
【0068】
フローチャート800のステップは、第1のデータパターンにおける漸増的位相シフトが「(−)」方向であることを除いてフローチャート600のステップと同様である。特にステップ810において、処理ユニット410は負の漸増的位相シフトを第1のデータパターンに導入する。ステップ820〜840はフローチャート600のそれぞれステップ620〜640と同様の機能を行う。
【0069】
ステップ850において、第1の結果からのビット情報が第2の結果からのビット情報に一致する場合には、処理ユニット410は追加的な負の漸増的位相遅延を第1のデータパターンに導入し(ステップ810)、そしてステップ820〜840が繰り返される。
【0070】
第1及び第2のデータパターンからのビット情報が互いに一致しない場合には、ステップ860において、先の位相シフトされた第1のデータパターンからの位相シフト情報が処理ユニット410内に記憶される。図9のタイミング図900を参照すると、タイミング図IIは負の位相シフトされたデータ信号1300(即ち負の位相シフトされた第1のデータパターン)を表している。タイミング図I及びIIにおける標識710は、データ信号1300における負の漸増的位相シフトを示すためのデータ信号1300上での基準点を表している。また、標識930はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、負の位相シフトの追加的な漸増がデータ信号1300に導入されるとすると(図9のタイミング図IIにおいて)、書き込みクロック信号150は、データ信号1300をサンプリングするのに十分な時間を有しないことになる(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)。
【0071】
図9のタイミング図900を参照すると、時間周期920は、本発明の実施形態に従う書き込みタイミング窓の第2のタイミング境界を表している。特に、時間周期920はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、データ信号1300は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに位相シフトにおける追加的な負の漸増を有することはできない。ある実施形態においては、書き込みクロック信号150に対するデータ信号1300の元の位相位置(例えば図9のタイミング図Iにおける標識710)を参照すると、データ信号1300は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに時間周期920よりも大きな負の位相シフトを有することはできない。
【0072】
図6〜9について要約すると、書き込みタイミング窓の第1及び第2のタイミング境界が、書き込みクロック信号150に対するデータ信号1300の位相シフトに関して定義されたことになる。ある実施形態においては、書き込みクロック信号150に対するデータ信号1300の元の位相位置から、書き込みタイミング窓は第1及び第2のタイミング境界によって境界される。ある実施形態においては、第1のタイミング境界は、メモリデバイス420による不適切なデータ回復を伴わない元の位相位置からのデータ信号1300の最大の正の位相シフトとして定義される。また、第2のタイミング境界は、本発明の実施形態に従い、メモリデバイス420による不適切なデータ回復を伴わない元の位相位置からのデータ信号1300の最大の負の位相シフトとして定義される。
【0073】
上述の説明に基づいて、ある実施形態においては、書き込みタイミング窓の第1及び第2の境界を決定するために、書き込みクロック信号150が用いられてもよい。図10及び11の以下の説明は、本発明の実施形態に従い書き込みタイミング窓の第1及び第2の境界を決定するに際して、フローチャート600及び800のステップとそれぞれ同様のステップがどのようにして書き込みクロック信号150に適用され得るのかの説明を容易にするために用いられることになる。
【0074】
図10は、本発明の実施形態に従い書き込みクロック信号150に基づいて書き込みタイミング窓の第1のタイミング境界を決定するために図6のフローチャート600におけるステップと同様のステップがどのようにして用いられ得るのかの説明を容易にするために用いられることになる例示的な書き込みタイミング図1000を示す図である。タイミング図1000を参照すると、タイミング図I及びIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間(例えばメモリデバイス420がデータ信号1300をラッチするのに十分な時間)を有しているので、図2に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様に、メモリデバイス420は、データ信号1300からデータを適切に回復することができる。図10のタイミング図IIIは、書き込みクロック信号150の位相シフトされた表現であり、そして以下に更に詳細に説明されることになる。
【0075】
図6のステップ610と同様に、処理ユニット410は、書き込みクロック信号150に正の漸増的位相シフトを導入する。次いで、ステップ620〜640の伝送、受信及び比較のステップが、正の位相シフトされた書き込みクロック信号150に適用され得る。
【0076】
図10のタイミング図II及びIIIを参照すると、タイミング図II及びIIIにおける標識1010は、書き込みクロック信号150における正の漸増的位相シフトを示すための書き込みクロック信号150上での基準点を表している。また、標識1030はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、正の位相シフトの追加的な漸増が書き込みクロック信号150に導入されるとすると(図10のタイミング図IIIにおいて)、書き込みクロック信号150は、データ信号1300をサンプリングするのに十分な時間を有しないことになる(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)。
【0077】
図10のタイミング図1000を参照すると、時間周期1020は、本発明の実施形態に従う書き込みタイミング窓の第1のタイミング境界を表している。特に、時間周期1020はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、書き込みクロック信号150は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに位相シフトにおける追加的な正の漸増を有することはできない。ある実施形態においては、データ信号1300に対する書き込みクロック信号150の元の位相位置(例えば図10のタイミング図IIにおける標識1010)を参照すると、書き込みクロック信号150は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに時間周期1020よりも大きな正の位相シフトを有することはできない。
【0078】
図11は、本発明の実施形態に従い書き込みクロック信号150に基づいて書き込みタイミング窓の第2のタイミング境界を決定するために図8のフローチャート800におけるステップと同様のステップがどのようにして用いられ得るのかの説明を容易にするために用いられることになる例示的な書き込みタイミング図1100を示す図である。タイミング図1100を参照すると、タイミング図I及びIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間(例えばメモリデバイス420がデータ信号1300をラッチするのに十分な時間)を有しているので、図2に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様に、メモリデバイス420は、データ信号1300からデータを適切に回復することができる。図11のタイミング図IIIは、書き込みクロック信号150の位相シフトされた表現であり、そして以下に更に詳細に説明されることになる。
【0079】
図8のステップ810と同様に、処理ユニット410は、書き込みクロック信号150に負の漸増的位相シフトを導入する。次いで、ステップ820〜840の伝送、受信及び比較のステップが、負の位相シフトされた書き込みクロック信号150に適用され得る。
【0080】
図11のタイミング図II及びIIIを参照すると、タイミング図II及びIIIにおける標識1010は、書き込みクロック信号150における負の漸増的位相シフトを示すための書き込みクロック信号150上での基準点を表している。また、標識1130はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、負の位相シフトの追加的な漸増が書き込みクロック信号150に導入されるとすると(図11のタイミング図IIIにおいて)、書き込みクロック信号150は、データ信号1300をサンプリングするのに十分な時間を有しないことになる(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)。
【0081】
図11のタイミング図1100を参照すると、時間周期1120は、本発明の実施形態に従う書き込みタイミング窓の第2のタイミング境界を表している。特に、時間周期1120はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、書き込みクロック信号150は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに位相シフトにおける追加的な負の漸増を有することはできない。ある実施形態においては、データ信号1300に対する書き込みクロック信号150の元の位相位置(例えば図11のタイミング図IIにおける標識1010)を参照すると、書き込みクロック信号150は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに時間周期1020よりも大きな負の位相シフトを有することはできない。
【0082】
図10及び11について要約すると、書き込みタイミング窓の第1及び第2のタイミング境界が、データ信号1300に対する書き込みクロック信号150の位相シフトに関して定義されたことになる。ある実施形態においては、データ信号1300に対する書き込みクロック信号150の元の位相位置から、書き込みタイミング窓は第1及び第2のタイミング境界によって境界される。ある実施形態においては、第1のタイミング境界は、メモリデバイス420による不適切なデータ回復を伴わない元の位相位置からの書き込みクロック信号150の最大の正の位相シフトとして定義される。また、第2のタイミング境界は、本発明の実施形態に従い、メモリデバイス420による不適切なデータ回復を伴わない元の位相位置からの書き込みクロック信号150の最大の負の位相シフトとして定義される。
【0083】
図6〜11に関する上述した説明は、第1及び第2の結果が互いに一致する場合に書き込みタイミング窓の第1及び第2の境界を決定するに際しての技術についてなされている。上述した実施形態においては、データ信号1300又は書き込みクロック信号150のいずれかが、これら2つの信号の間での相対的な位相アライメントがメモリデバイス420による適切なデータ回復を可能にするように、漸増的位相シフトによって調節される。ここでの説明に基づき、当業者であれば、データ信号1300及び書き込みクロック信号150の両方が、これら2つの信号の間での相対的な位相アライメントがメモリデバイス420による適切なデータ回復を可能にするように、例えば正及び負の漸増的位相シフトの適切な組み合わせで調節され得ることを認識するはずである。
【0084】
図12〜17に関する以下の説明は、第1及び第2の結果が互いに一致しない場合における書き込みタイミング窓の第1及び第2のタイミング境界の決定についてなされる。
【0085】
図12は第1及び第2の結果が互いに一致しない場合に書き込みタイミング窓の第1のタイミング境界を決定するためのフローチャート1200の実施形態を示す図である。フローチャート1200の説明を容易にするために、図13のタイミング図1300が用いられることになる。タイミング図1300を参照すると、タイミング図I及びIIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間を有していない(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)ので、メモリデバイス420は、データ信号1300からデータを適切には回復しない。これは図3に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様である。図13のタイミング図IIは、データ信号1300の位相シフトされた表現であり、そしてフローチャート1200に関して以下に説明されることになる。
【0086】
図12のフローチャート1200を参照すると、フローチャート1200の開始点は、第1の結果が第2の結果に一致しない場合の状況を考慮している。これは、タイミング図1300に関して上述したように、メモリデバイス420がデータ信号1300をサンプリングするのに十分な時間を有していないことによる場合である。従って、第1のデータパターンに対する誤り検出機能の結果は、本発明の実施形態に従い、第2のデータパターンに対する誤り検出機能の結果と同一ではない。ある実施形態においては、処理ユニット410が、書き込みタイミング窓の第1のタイミング境界を決定するに際してフローチャート1200のステップを実行する。
【0087】
ステップ1210では、処理ユニット410は、第1のデータパターンに正の漸増的位相シフトを導入する。
【0088】
ステップ1220では、位相シフトされた第1のデータパターンがメモリデバイス420へ伝送され、そしてメモリデバイス420内に記憶される。
【0089】
ステップ1230では、処理ユニット410は、第2のデータパターンに適用された誤り検出機能からの結果を受信する。第2のデータパターンは、メモリデバイス420のインタフェースで受信される位相シフトされた第1のデータパターンを表す。ある実施形態においては、メモリデバイス420は、プロセッサ410によって第1のデータパターンに適用された誤り検出機能と同じ誤り検出機能を第2のデータパターンに行う。第2のデータパターンに対する誤り検出機能の結果は、本発明の実施形態に従い、メモリデバイス420から処理ユニット410へEDC信号160を介して伝送される。
【0090】
ステップ1240では、処理ユニット410は、位相シフトされた第1のデータパターンに適用された誤り検出機能からの第1の結果を第2のデータパターンに適用された誤り検出機能の第2の結果と比較し、この場合、制御器450が第1の結果のビット情報を記憶している。制御器450は第1の結果からのビット情報を第2の結果からのビット情報と比較し、ここで第2の結果は、本発明の実施形態に従い、メモリデバイス420のインタフェースで受信される位相シフトされた第1のデータパターンを示している。ある実施形態においては、第1及び第2の結果はビット単位ベースで互いと比較される。
【0091】
ステップ1250において、第1の結果からのビット情報が第2の結果からのビット情報に一致しない場合には、処理ユニット410は追加的な正の漸増的位相遅延を第1のデータパターンに導入し(ステップ1210)、そしてステップ1220〜1240が繰り返される。
【0092】
第1及び第2の結果からのビット情報が互いに一致する場合には、ステップ1260において、位相シフトされた第1のデータパターンからの位相シフト情報が処理ユニット410内に記憶される。図13のタイミング図1300を参照すると、タイミング図IIは正の位相シフトされたデータ信号1300(即ち正の位相シフトされた第1のデータパターン)を表している。タイミング図I及びIIにおける標識1310は、データ信号1300における正の漸増的位相シフトを示すためのデータ信号1300上での基準点を表している。また、標識1330はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、正の位相シフトの追加的な漸増がデータ信号1300に導入された場合(図13のタイミング図IIにおいて)に、書き込みクロック信号150は有効なデータ信号1300をサンプリングするために用いられ得る。この理由は、データ信号1300の位相シフトにおける追加的な正の漸増が少しでもあれば、有効なデータ信号1300をサンプリングするのに十分な時間を書き込みクロック信号150が有することになるところにある。
【0093】
図13のタイミング図1300を参照すると、時間周期1320は、本発明の実施形態に従う書き込みタイミング窓の第1のタイミング境界を表している。特に、時間周期1320はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、データ信号1300は位相シフトにおける追加的な正の漸増を有することができ、そしてメモリデバイス420はデータ信号1300を適切に回復することができる。ある実施形態においては、書き込みクロック信号150に対するデータ信号1300の元の位相位置(例えば図13のタイミング図Iにおける標識1310)を参照すると、データ信号1300は、メモリデバイス420がデータ信号1300を適切に回復するために、時間周期1320の少なくとも正の位相シフトを有することが必要とされる。
【0094】
図14は第1及び第2の結果が互いに一致しない場合に書き込みタイミング窓の第2の境界条件を決定するためのフローチャート1400の実施形態を示す図である。フローチャート1400の説明を容易にするために、図15の例示的なタイミング図1500が用いられることになる。タイミング図1500を参照すると、タイミング図I及びIIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間を有していない(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)ので、図3に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様に、メモリデバイス420は、データ信号1300からデータを適切には回復しない。図15のタイミング図IIは、データ信号1300の位相シフトされた表現であり、そしてフローチャート1400に関して以下に説明されることになる。
【0095】
ある実施形態においては、フローチャート1400のための開始点は、図12のフローチャート1200及び図13のタイミング図1300に関して上述した第1の書き込みタイミング境界に対応するデータ信号1300の正の位相シフトからである。
【0096】
フローチャート1400のステップは、フローチャート1200のステップと同様である。ある実施形態においては、ステップ1410〜1440はフローチャート1200のそれぞれステップ1210〜1240と同様の機能を行う。
【0097】
ステップ1450において、第1のデータパターンに適用された誤り検出機能の第1の結果からのビット情報が第2のデータパターンに適用された誤り検出機能の第2の結果からのビット情報に一致する場合には、処理ユニット410は追加的な正の漸増的位相遅延を第1のデータパターンに導入し(ステップ1410)、そしてステップ1420〜1440が繰り返される。
【0098】
第1及び第2の結果からのビット情報が互いに一致しない場合には、ステップ1460において、先の位相シフトされた第1のデータパターンからの位相シフト情報が処理ユニット410内に記憶される。図15のタイミング図1500を参照すると、タイミング図IIは正の位相シフトされたデータ信号1300(即ち正の位相シフトされた第1のデータパターン)を表している。タイミング図I及びIIにおける標識1310は、データ信号1300における正の漸増的位相シフトを示すためのデータ信号1300上での基準点を表している。また、標識1530はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、正の位相シフトの追加的な漸増がデータ信号1300に導入されるとすると(図15のタイミング図IIにおいて)、書き込みクロック信号150は、無効なデータ信号1300をサンプリングしてしまうことになる(例えばデータ信号1300の移行状態)。
【0099】
図15のタイミング図1500を参照すると、時間周期1520は、本発明の実施形態に従う書き込みタイミング窓の第2のタイミング境界を表している。特に、時間周期1520はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、データ信号1300は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに位相シフトにおける追加的な正の漸増を有することはできない。ある実施形態においては、書き込みクロック信号150に対するデータ信号1300の元の位相位置(例えば図15のタイミング図Iにおける標識1310)を参照すると、データ信号1300は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに時間周期1520よりも大きな正の位相シフトを有することはできない。
【0100】
図12〜15について要約すると、書き込みタイミング窓の第1及び第2のタイミング境界が、書き込みクロック信号150に対するデータ信号1300の位相シフトに関して定義されたことになる。ある実施形態においては、書き込みクロック信号150に対するデータ信号1300の元の位相位置から、書き込みタイミング窓は第1及び第2のタイミング境界によって境界される。ある実施形態においては、第1のタイミング境界は、メモリデバイス420による適切なデータ回復を伴う元の位相位置からのデータ信号1300の最小の正の位相シフトとして定義される。また、第2のタイミング境界は、本発明の実施形態に従い、メモリデバイス420による適切なデータ回復を伴う元の位相位置からのデータ信号1300の最大の正の位相シフトとして定義される。
【0101】
上述の説明に基づいて、ある実施形態においては、書き込みタイミング窓の第1及び第2の境界を決定するために、書き込みクロック信号150が用いられてもよい。図16及び17の以下の説明は、本発明の実施形態に従い書き込みタイミング窓の第1及び第2の境界を決定するに際して、フローチャート1200及び1400のステップとそれぞれ同様のステップがどのようにして書き込みクロック信号150に適用され得るのかの説明を容易にするために用いられることになる。
【0102】
図16は、本発明の実施形態に従い書き込みクロック信号150に基づいて書き込みタイミング窓の第1のタイミング境界を決定するために図12のフローチャート1200におけるステップと同様のステップがどのようにして用いられ得るのかの説明を容易にするために用いられることになる例示的な書き込みタイミング図1600を示す図である。タイミング図1600を参照すると、タイミング図I及びIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間を有していない(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)ので、図3に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様に、メモリデバイス420は、データ信号1300からデータを適切には回復しない。図16のタイミング図IIIは、書き込みクロック信号150の位相シフトされた表現であり、そして以下に更に詳細に説明されることになる。
【0103】
図12のステップ1210と同様に、処理ユニット410は、書き込みクロック信号150に正の漸増的位相シフトを導入する。次いで、ステップ1220〜1240の伝送、受信及び比較のステップが、正の位相シフトされた書き込みクロック信号150に適用され得る。
【0104】
図16のタイミング図II及びIIIを参照すると、タイミング図II及びIIIにおける標識1610は、書き込みクロック信号150における正の漸増的位相シフトを示すための書き込みクロック信号150上での基準点を表している。また、標識1630はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、正の位相シフトの追加的な漸増が書き込みクロック信号150に導入された場合(図16のタイミング図IIIにおいて)に、書き込みクロック信号150は、データ信号1300をサンプリングするのに十分な時間を有することになる(例えばメモリデバイス420がデータ信号1300をラッチするのに十分な時間)。
【0105】
図16のタイミング図1600を参照すると、時間周期1620は、本発明の実施形態に従う書き込みタイミング窓の第1のタイミング境界を表している。特に、時間周期1620はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、書き込みクロック信号150は、位相シフトにおける追加的な正の漸増を有することができ、そしてメモリデバイス420はデータ信号1300を適切に回復することができる。ある実施形態においては、データ信号1300に対する書き込みクロック信号150の元の位相位置(例えば図16のタイミング図IIにおける標識1610)を参照すると、書き込みクロック信号150は、メモリデバイス420がデータ信号1300を適切に回復するために、時間周期1620の少なくとも正の位相シフトを有することが必要とされる。
【0106】
図17は、本発明の実施形態に従い書き込みクロック信号150に基づいて書き込みタイミング窓の第2のタイミング境界を決定するために図14のフローチャート1400におけるステップと同様のステップがどのようにして用いられ得るのかの説明を容易にするために用いられることになる例示的な書き込みタイミング図1700を示す図である。タイミング図1700を参照すると、タイミング図I及びIIはそれぞれデータ信号1300及び書き込みクロック信号150を表している。ここで、書き込みクロック信号150はデータ信号1300をサンプリングするのに十分な時間を有していない(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)ので、図3に関して上述したデータ信号1300とクロック信号150の間のタイミング関係と同様に、メモリデバイス420は、データ信号1300からデータを適切には回復することができない。図17のタイミング図IIIは、書き込みクロック信号150の位相シフトされた表現であり、そして以下に更に詳細に説明されることになる。
【0107】
ある実施形態においては、フローチャート1400と同様に、書き込みタイミング図1700のための開始点は、図16のタイミング図1600に関して上述した第1の書き込みタイミング境界に対応するデータ信号1300の正の位相シフトからである。
【0108】
図14のステップ1410と同様に、処理ユニット410は、書き込みクロック信号150に正の漸増的位相シフトを導入する。次いで、ステップ1420〜1440の伝送、受信及び比較のステップが、正の位相シフトされた書き込みクロック信号150に適用され得る。
【0109】
図17のタイミング図II及びIIIを参照すると、タイミング図II及びIIIにおける標識1610は、書き込みクロック信号150における正の漸増的位相シフトを示すための書き込みクロック信号150上での基準点を表している。また、標識1730はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件を示しており、ここでは、正の位相シフトの追加的な漸増が書き込みクロック信号150に導入された場合(図17のタイミング図IIIにおいて)に、書き込みクロック信号150は、データ信号1300をサンプリングするのに十分な時間を有しないことになる(例えばメモリデバイス420がデータ信号1300をラッチするのに不十分な時間)。
【0110】
図17のタイミング図1700を参照すると、時間周期1720は、本発明の実施形態に従う書き込みタイミング窓の第2のタイミング境界を表している。特に、時間周期1720はデータ信号1300と書き込みクロック信号150の間での相対的な位相シフトに対する境界条件であり、ここにおいては、書き込みクロック信号150は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに位相シフトにおける追加的な正の漸増を有することはできない。ある実施形態においては、データ信号1300に対する書き込みクロック信号150の元の位相位置(例えば図17のタイミング図IIにおける標識1610)を参照すると、書き込みクロック信号150は、メモリデバイス420による不適切なデータ回復の危険性を伴わずに時間周期1720よりも大きな正の位相シフトを有することはできない。
【0111】
図16及び17について要約すると、書き込みタイミング窓の第1及び第2のタイミング境界が、データ信号1300に対する書き込みクロック信号150の位相シフトに関して定義されたことになる。ある実施形態においては、データ信号1300に対する書き込みクロック信号150の元の位相位置から、書き込みタイミング窓は第1及び第2のタイミング境界によって境界される。ある実施形態においては、第1のタイミング境界は、メモリデバイス420による適切なデータ回復を伴う元の位相位置からの書き込みクロック信号150の最小の正の位相シフトとして定義される。また、第2のタイミング境界は、本発明の実施形態に従い、メモリデバイス420による適切なデータ回復を伴う元の位相位置からの書き込みクロック信号150の最大の正の位相シフトとして定義される。
【0112】
図12〜17に関する上述した説明は、第1及び第2の結果が互いに一致しない場合に書き込みタイミング窓の第1及び第2の境界を決定するに際しての技術についてなされている。上述した実施形態においては、データ信号1300又は書き込みクロック信号150のいずれかが、これら2つの信号の間での相対的な位相アライメントがメモリデバイス420による適切なデータ回復を可能にするように、正の漸増的位相シフトによって調節される。ここでの説明に基づき、当業者であれば、データ信号1300及び書き込みクロック信号150の各々が、書き込みタイミング窓を決定するため及びこれら2つの信号の間での適切な位相アライメントを達成するために、負の漸増的位相シフトによって調節され得ることを認識するはずである。また、ここでの説明に基づき、当業者であれば、データ信号1300及び書き込みクロック信号150の両方が、これら2つの信号の間での相対的な位相アライメントがメモリデバイス420による適切なデータ回復を可能にするように、例えば正及び負の漸増的位相シフトの適切な組み合わせで調節され得ることを認識するはずである。
【0113】
図5のステップ520に関する書き込みタイミング窓の決定の上述した説明は、メモリデバイス420の資源(例えばデータバス1307〜1300、A/Cバス14015〜1400及び書き込みクロック信号150)が読み出し及び/又は書き込みモードの動作のために用いられている最中でないことを前提としている。しかし、ここでの説明に基づいて、関連分野を含めた当業者であれば、書き込みタイミング窓の決定がコンピュータシステム400の書き込みモードの動作の間にもなされ得ることを認識するはずである。
【0114】
ある実施形態においては、書き込みモードの動作の間、メモリデバイス420へ書き込まれるデータが、書き込みタイミング窓を決定するために用いられ得る。本発明の実施形態に従い、書き込みデータ(例えば第1のデータパターン)が図5のステップ520に関して上述したように位相調節され得る結果、書き込みタイミング窓の第1及び第2の境界が決定され得る。書き込みデータを位相調節して書き込みタイミング窓を決定するに際して、データ信号1307〜1300をサンプリングするのに十分な時間をメモリデバイス420が有していないことに起因して、書き込み誤りがコンピュータシステム400において生じることがある。従って、書き込みデータを用いて書き込みタイミング窓を決定する場合、関連分野を含めた当業者であれば、特定の数の書き込み誤りがコンピュータシステム400に著しく影響し得る(例えばディスプレイモニタ上のグラフィクスがつっかえることがある)スレッショルド条件がコンピュータシステム400において存在することを認識するはずである。この状況に鑑み、コンピュータシステム400の性能が影響を受けないように、EDCモードの動作における位相調節の繰り返し数を小さくすることが望ましいであろう。読み出し/書き込み動作の回数は、コンピュータシステム400の性能に基づいて予め定められた値であってよく、ここで予め定められた値は、本発明の実施形態に従い、システム性能に影響を与えない。ある実施形態においては、読み出し/書き込み動作の回数は、基準点からの適切なタイミング窓を確保する予め定められた値(例えばEDCデータパターンの元のタイミング位置からの「(+)」及び「(−)」の両方向における漸増的位相シフトの予め定められた回数)に基づいていてよい。
【0115】
ある実施形態においては、書き込みタイミング窓の境界は、予め定められた数の書き込み誤りを生じさせる、データバス1307〜1300と書き込みクロック信号150の間の相対的な位相差(ここでは「プログラム可能スレッショルド値」とも称される)によって定義され得る。即ち、処理ユニット410とメモリデバイス420の間で繰り返された書き込み動作の結果として予め定められた数の誤ったチェックサム値が生じる場合に、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間の相対的な位相差が書き込みタイミング窓の境界として定義される。
【0116】
例えば、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間のある相対的な位相差で、処理ユニット410からメモリデバイス420に伝送される特定のデータパターンに対して、書き込み誤り(例えば誤ったチェックサム値)が生じ得る。別の書き込み誤りが生じるかどうかを検証するために、同じデータパターンが処理ユニット410からメモリデバイス420に伝送され得る。別の書き込み誤りが生じる場合、同じデータパターンをメモリデバイス420に伝送すると共にチェックサム値を検証するこの処理は、繰り返されてよい。この繰り返し処理の後に予め定められた数の書き込み誤りが生じていた場合(例えばプログラム可能スレッショルド値に到達していた場合)には、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間の相対的な位相差が、書き込みタイミング窓の境界として定義され得る。ある実施形態においては、書き込み誤りの予め定められた数(例えばプログラム可能スレッショルド値)は、コンピュータシステム400の性能に基づき得るし、ここで予め定められた値はシステム性能に影響を及ぼさない(例えばディスプレイモニタ上のグラフィクスがつっかえない)。
【0117】
図5の方法500を参照すると、ステップ530において、処理ユニット410は、ステップ520で決定された書き込みタイミング窓に基づいて、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間の位相差を調節する。上述したように、ステップ520に関して、書き込みタイミング窓は時間周期を参照し、この時間周期において、データバス1307〜1300上のデータ信号、書き込みクロック信号150、又はデータバス1307〜1300上のデータ信号及び書き込みクロック信号150の両方が互いに位相調節され得ることによって、メモリデバイス420はデータバス1307〜1300上のデータ信号を適切に回復することができる。
【0118】
図4を参照すると、第1のデータパターンに対する書き込みタイミング窓に基づいて、制御器450は、本発明の実施形態に従い、データバス1307〜1300上のデータ信号及び書き込みクロック信号150の伝送における位相遅延を、位相遅延回路430及び440を介して調節することができる。ある実施形態においては、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間の相対的な位相差が書き込みタイミング窓内であるように、データバス1307〜1300上のデータ信号の伝送を調節することができ、書き込みクロック信号150の伝送を調節することができ、あるいはデータバス1307〜1300上のデータ信号及び書き込みクロック信号150の両方の伝送を調節することができる。
【0119】
本発明の実施形態に従い、データバス1307〜1300上のデータ信号と書き込みクロック信号150との間の相対的な位相差がステップ530で調節された後、処理ユニット410は、相対的な位相差設定に基づいて、メモリデバイス420上での書き込み動作を行う。ある実施形態においては、メモリデバイス420の書き込みタイミングを調節する方法500のステップは、コンピュータシステム400の要求に応じて周期的ベースで又は「必要に応じて」ベースで行われてよい。
【0120】
本発明の種々の態様がソフトウエア、ファームウエア、ハードウエア、又はそれらの組み合わせにおいて実装されてよい。図18は例示的なコンピュータシステム1800を示す図であり、システム1800においては、本発明の実施形態又はその部分がコンピュータ可読コードとして実装され得る。例えば、図5のフローチャート500によって示される方法がシステム1800内に実装され得る。本発明の種々の実施形態が、この例示的なコンピュータシステム1800に関して説明される。この明細書を読んだ後に、他のコンピュータシステム及び/又はコンピュータアーキテクチャを用いて本発明の実施形態をどのように実装するかは、関連分野を含めた当業者に明らかなはずである。
【0121】
尚、この発明の種々の実施形態のシミュレーション、合成及び/又は製造は、部分的には、一般的なプログラミング言語(例えばC又はC++)、例えばベリログHDL(Verilog HDL)、VHDL、アルテラHDL(Altera HDL)(AHDL)等のハードウエア記述言語(HDL)、若しくは他の利用可能なプログラミングを含むコンピュータ可読コード、及び/又は回路等キャプチュアツール(例えば回路キャプチュアツール)の使用を通して達成され得る。このコンピュータ可読コードは、半導体、磁気ディスク、光学ディスク(例えばCD−ROM、DVD−ROM)を含むあらゆる既知のコンピュータ使用可能媒体内に配置され得る。従って、コードは、インターネットを含む通信ネットワークを介して伝送され得る。上述したシステム及び技術により達成される機能及び/又は提供される構造は、プログラムコードにおいて具現化されるコア(例えばGPUコア)内に表現することができ、また集積回路の生産の一部としてハードウエアに変換され得ることが理解される。
【0122】
コンピュータシステム1800は1つ以上のプロセッサ、例えばプロセッサ1804を含む。プロセッサ1804は特定用途のあるいは汎用のプロセッサ(例えばGPU)であってよい。プロセッサ1804は通信基盤(communication infrastructure)1806(例えばバス又はネットワーク)に接続される。
【0123】
コンピュータシステム1800はまた、主メモリ1808、望ましくはランダムアクセスメモリ(RAM)を含み、そして補助メモリ1810を含んでいてもよい。補助メモリ1810は例えば、ハードディスクドライブ1812、リムーバブル記憶ドライブ1814、及び/又はメモリスティックを含み得る。リムーバブル記憶ドライブ1814はフロッピー(登録商標)ディスクドライブ、磁気テープドライブ、光学ディスクドライブ、フラッシュメモリ等を含み得る。リムーバブル記憶ドライブ1814は周知の方法によりリムーバブル記憶ユニット1818から読み出し及び/又はリムーバブル記憶ユニット1818へ書き込みする。リムーバブル記憶ユニット1818はフロッピー(登録商標)ディスク、磁気テープ、光学ディスク等を備えていてよく、リムーバブル記憶ドライブ1814によって読み出され且つ書き込まれる。関連分野を含めた当業者に理解されるであろうように、リムーバブル記憶ユニット1818はコンピュータソフトウエア及び/又はデータが既に記憶されたコンピュータ使用可能記憶媒体を含む。
【0124】
代替的な実装においては、補助メモリ1810は、コンピュータプログラム又は他の命令がコンピュータシステム1800にロードされることを可能にする他の同様のデバイスを含むことができる。そのようなデバイスは例えばリムーバブル記憶ユニット1822及びインタフェース1820を含み得る。そのようなデバイスの例は、プログラムカートリッジ及びカートリッジインタフェース(ビデオゲームデバイスにおいて見られるようなもの)、リムーバブルメモリチップ(例えばEPROM又はPROM)及び関連するソケット、並びにソフトウエア及びデータをリムーバブル記憶ユニット1822からコンピュータシステム1800へ転送することを可能にする他のリムーバブル記憶ユニット1822及びインタフェース1820を含み得る。
【0125】
コンピュータシステム1800はまた通信インタフェース1824を含むことができる。通信インタフェース1824はソフトウエア及びデータがコンピュータシステム1800と外部デバイスの間で転送されることを可能にする。通信インタフェース1824はモデム、ネットワークインタフェース(例えばイーサネット(登録商標)カード)、通信ポート、PCMCIAスロット及びカード等を含み得る。通信インタフェース1824を介して転送されるソフトウエア及びデータは、電子的、電磁気的、光学的であってよい信号、又は通信インタフェース1824によって受信されることが可能な他の信号の形態にある。これらの信号は通信パス1826を介して通信インタフェース1824へ供給される。通信パス1826は信号を伝え、ワイヤ若しくはケーブル、光ファイバ、電話線、携帯電話リンク、RFリンク又は他の通信チャネルを用いて実装され得る。
【0126】
この文書では、「コンピュータプログラム媒体」及び「コンピュータ使用可能媒体」という用語は、リムーバブル記憶ユニット1818、リムーバブル記憶ユニット1822、及びハードディスクドライブ1812に組み込まれるハードディスクを一般的には参照して用いられる。コンピュータプログラム媒体及びコンピュータ使用可能媒体はまた、主メモリ1808及び補助メモリ1810等のメモリ半導体(例えばDRAM等)であり得るメモリを参照してよい。これらのコンピュータプログラム製品はコンピュータシステム1800にソフトウエアを提供する。
【0127】
コンピュータプログラム(コンピュータ制御論理とも称される)は主メモリ1808及び/又は補助メモリ1810内に記憶される。コンピュータプログラムはまた、通信インタフェース1824を介して受信されてもよい。そのようなコンピュータプログラムは、実行されるときに、ここで論じられる本発明の実施形態をコンピュータシステム1800が実装することを可能にする。特に、コンピュータプログラムは、実行されるときに、上述した図5のフローチャート500によって示される方法におけるステップのような本発明の実施形態のプロセスをプロセッサ1804が実装することを可能にする。従って、そのようなコンピュータプログラムはコンピュータシステム1800の制御器を代表する。ソフトウエアを用いて本発明の実施形態が実装される場合、ソフトウエアは、コンピュータプログラム製品内に記憶され得ると共に、リムーバブル記憶ドライブ1814、インタフェース1820、ハードドライブ1812、又は通信インタフェース1824を用いてコンピュータシステム1800内にロードされ得る。
【0128】
本発明の実施形態はまた、任意のコンピュータ使用可能媒体上に記憶されるソフトウエアを含むコンピュータプログラム製品に向けられている。そのようなソフトウエアは、1つ以上のデータ処理デバイス内で実行されるときに、単一又は複数のデータ処理デバイスをここで説明されているように動作させる。本発明の実施形態は、現在知られている又は将来知られることになる任意のコンピュータ使用可能又はコンピュータ可読の媒体を採用する。コンピュータ使用可能媒体の例は、限定はされないが、主記憶デバイス(例えば任意の種類のランダムアクセスメモリ)、補助記憶デバイス(例えばハードドライブ、フロッピー(登録商標)ディスク、CD_ROM、ZIPディスク、テープ、磁気記憶デバイス、光学記憶デバイス、MEMS、ナノテクノロジー記憶デバイス等)、及び通信媒体(例えば有線及び無線通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク、イントラネット等)を含む。
【0129】
本発明の種々の実施形態が上に説明されてきたが、それらは例示のみを目的として提示されたものであり、限定を目的とはしていないことが理解されるべきである。添付の特許請求の範囲において画定されるような本発明の精神及び範囲から逸脱することなしに、形態及び詳細における種々の変更がここになされ得ることが関連分野を含めた当業者によって理解されるはずである。本発明はこれらの例示に限定されないことが理解されるべきである。本発明はここに説明されるように動作する任意の要素に適用可能である。従って、本発明の広さ及び範囲は上述のいかなる例示的実施形態によっても限定されるべきではなく、後述の特許請求の範囲及びそれらの均等なものに従ってのみ画定されるべきである。
【特許請求の範囲】
【請求項1】
メモリデバイスにおける書き込みタイミングを調節するための方法であって、
誤り検出機能の結果に基づきデータバス上の信号と書き込みクロック信号との間の書き込みタイミング窓を決定することと、
前記書き込みタイミング窓に基づき前記データバス上の前記信号と前記書き込みクロック信号との間の位相差を調節することと、を備え、
前記メモリデバイスは前記調節された位相差に基づき前記データバス上の前記信号を回復する方法。
【請求項2】
前記メモリデバイスを誤り検出モードの動作に設定することを更に備える請求項1の方法。
【請求項3】
前記メモリデバイスを前記誤り検出モードの動作に設定することは、前記メモリデバイスを前記誤り検出モードの動作の間に書き込みモードの動作に設定することを備える請求項2の方法。
【請求項4】
前記書き込みタイミング窓を決定することは、
第1のデータパターンに誤り検出機能を行って前記誤り検出機能から第1の結果を生成することと、
前記第1のデータパターンをデータバス上で前記メモリデバイスへ伝送することと、
前記書き込みクロック信号に基づき前記メモリデバイスのインタフェースで受信される前記第1のデータパターンを備える第2のデータパターンに対して行われる前記誤り検出機能に基づく第2の結果を前記メモリデバイスから受信することと、
前記第1の結果を前記第2の結果と比較して前記第1及び第2の結果が互いに一致するかどうかを決定することと、
前記第1及び第2の結果の前記比較に基づき前記書き込みタイミング窓の第1のタイミング境界及び第2のタイミング境界を決定することと、を備える請求項1の方法。
【請求項5】
前記誤り検出機能を行うことは、パリティ機能及びチェックサム機能の少なくとも1つを行うことを備える請求項4の方法。
【請求項6】
前記第1及び第2の結果が互いに一致する場合に、
前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定することは、
前記第1のデータパターンにおける正の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記第1のデータパターンにおける負の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、を備え、
前記第1のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、負の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の負の漸増的位相シフトによって定義される請求項4の方法。
【請求項7】
前記第1及び第2の結果が互いに一致する場合に、
前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定することは、
前記書き込みクロック信号における正の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記書き込みクロック信号における負の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、を備え、
前記第1のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の負の漸増的位相シフトによって定義される請求項4の方法。
【請求項8】
前記第1及び第2の結果が互いに一致しない場合に、
前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定することは、
前記第1のデータパターンにおける正の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記第1のタイミング境界で開始して、前記第1のデータパターンにおける正の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、を備え、
前記第1のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最初の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の正の漸増的位相シフトによって定義される請求項4の方法。
【請求項9】
前記第1及び第2の結果が互いに一致しない場合に、
前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定することは、
前記書き込みクロック信号における正の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記第1のタイミング境界で開始して、前記書き込みクロック信号における正の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、を備え、
前記第1のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最初の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の正の漸増的位相シフトによって定義される請求項4の方法。
【請求項10】
前記第1の結果を前記第2の結果と比較することは、前記第1の結果における各ビットを前記第2の結果における各対応するビットと比較して前記第1及び第2の結果が互いに一致するかどうかを決定することを備える請求項4の方法。
【請求項11】
前記位相差を調節することは、前記データバス上の前記信号、前記書き込みクロック信号、並びに前記データバス上の前記信号及び前記書き込みクロック信号の両方、の少なくとも1つに位相遅延を導入することを備える請求項1の方法。
【請求項12】
メモリデバイスにおける書き込みタイミングを調節するための方法であって、
処理ユニットから伝送される第1のデータパターンを受信することと、
書き込みクロック信号に基づき前記メモリデバイスのインタフェースで受信される前記第1のデータパターンを備える第2のデータパターンに誤り検出機能を行って第1の結果を生成することと、
前記第1の結果を前記処理ユニットへ伝送することと、
データバス上の信号を受信することと、を備え、
前記データバス上の前記信号と前記書き込みクロック信号との間の位相差は書き込みタイミング窓内にあり、前記書き込みタイミング窓は、前記第1の結果と前記第1のデータパターンに行われる前記誤り検出機能からの第2の結果との間での比較に基づいている方法。
【請求項13】
誤り検出モードの動作において動作することを更に備える請求項12の方法。
【請求項14】
前記データバス上の前記信号を受信することは、前記書き込みタイミング窓の第1の境界及び第2の境界の間にある前記データバス上の前記信号を受信することを備える請求項12の方法。
【請求項15】
前記誤り検出機能を行うことは、パリティ機能及びチェックサム機能の少なくとも1つを行うことを備える請求項12の方法。
【請求項16】
メモリデバイスと前記メモリデバイスに結合される処理ユニットとを備えるシステムであって、
前記処理ユニットは、誤り検出機能の結果に基づきデータバス上の信号と書き込みクロック信号との間の書き込みタイミング窓を決定すると共に前記書き込みタイミング窓に基づき前記データバス上の前記信号と前記書き込みクロック信号との間の位相差を調節するように構成され、
前記メモリデバイスは前記調節された位相差に基づき前記データバス上の前記信号を回復するシステム。
【請求項17】
前記処理ユニットは、書き込みモードの動作の間に前記メモリデバイスを誤り検出モードの動作に置くように構成される請求項16のシステム。
【請求項18】
前記処理ユニットは、
第1のデータパターンに誤り検出機能を行って前記誤り検出機能から第1の結果を生成し、
前記第1のデータパターンをデータバス上で前記メモリデバイスへ伝送し、
前記書き込みクロック信号に基づき前記メモリデバイスのインタフェースで受信される前記第1のデータパターンを備える第2のデータパターンに対して行われる前記誤り検出機能に基づく第2の結果を前記メモリデバイスから受信し、
前記第1の結果を前記第2の結果と比較して前記第1及び第2の結果が互いに一致するかどうかを決定し、
前記第1及び第2の結果の前記比較に基づき前記書き込みタイミング窓の第1のタイミング境界及び第2のタイミング境界を決定するように構成される請求項16のシステム。
【請求項19】
前記処理ユニットは、前記誤り検出機能を行う場合にパリティ機能及びチェックサム機能の少なくとも1つを行うように構成される請求項18のシステム。
【請求項20】
前記第1及び第2の結果が互いに一致する場合に、
前記処理ユニットは、
前記第1のデータパターンにおける正の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能のシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記第1のデータパターンにおける負の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能の前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、に基づいて前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定するように構成され、
前記第1のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、負の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の負の漸増的位相シフトによって定義される請求項18のシステム。
【請求項21】
前記第1及び第2の結果が互いに一致する場合に、
前記処理ユニットは、
前記書き込みクロック信号における正の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能のシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記書き込みクロック信号における負の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能の前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、に基づいて前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定するように構成され、
前記第1のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の負の漸増的位相シフトによって定義される請求項18のシステム。
【請求項22】
前記第1及び第2の結果が互いに一致しない場合に、
前記処理ユニットは、
前記第1のデータパターンにおける正の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能のシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記第1のタイミング境界で開始して、前記第1のデータパターンにおける正の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能の前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、に基づいて前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定するように構成され、
前記第1のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最初の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の正の漸増的位相シフトによって定義される請求項18のシステム。
【請求項23】
前記第1及び第2の結果が互いに一致しない場合に、
前記処理ユニットは、
前記書き込みクロック信号における正の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能のシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記第1のタイミング境界で開始して、前記書き込みクロック信号における正の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能の前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、に基づいて前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定するように構成され、
前記第1のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最初の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の正の漸増的位相シフトによって定義される請求項18のシステム。
【請求項24】
前記処理ユニットは、前記データバス上の前記信号と前記書き込みクロック信号との間の前記位相差を調節する場合に、前記データバス上の前記信号、前記書き込みクロック信号、並びに前記データバス上の前記信号及び前記書き込みクロック信号の両方、の少なくとも1つに位相遅延を導入するように構成される請求項16のシステム。
【請求項25】
処理ユニットと前記処理ユニットに結合されるメモリデバイスとを備えるシステムであって、
前記メモリデバイスは、
処理ユニットから伝送される第1のデータパターンを受信し、
書き込みクロック信号に基づき前記メモリデバイスのインタフェースで受信される前記第1のデータパターンを備える第2のデータパターンに誤り検出機能を行って第1の結果を生成し、
前記第1の結果を前記処理ユニットへ伝送し、
データバス上の信号を受信するように構成され、
前記データバス上の前記信号と前記書き込みクロック信号との間の位相差は書き込みタイミング窓内にあり、前記書き込みタイミング窓は、前記第1の結果と前記第1のデータパターンに行われる前記誤り検出機能からの第2の結果との間での比較に基づいているシステム。
【請求項26】
前記メモリデバイスは、誤り検出モードの動作において動作するように構成される請求項25のシステム。
【請求項27】
前記メモリデバイスは、前記書き込みタイミング窓の第1の境界及び第2の境界の間にある前記データバス上の前記信号を受信するように構成される請求項25のシステム。
【請求項28】
前記メモリデバイスは、前記誤り検出機能を行う場合にパリティ機能及びチェックサム機能の少なくとも1つを行うように構成される請求項25のシステム。
【請求項29】
プロセッサがソフトウエアコードを解析することを可能にするコンピュータプログラム論理が記録されるコンピュータ使用可能媒体を備えるコンピュータプログラム製品であって、
前記コンピュータプログラム論理は、
プロセッサが誤り検出機能の結果に基づきデータバス上の信号と書き込みクロック信号との間の書き込みタイミング窓を決定することを可能にする第1のコンピュータ可読プログラムコードと、
プロセッサが前記書き込みタイミング窓に基づき前記データバス上の前記信号と前記書き込みクロック信号との間の位相差を調節することを可能にする第2のコンピュータ可読プログラムコードと、を備え、
メモリデバイスは前記調節された位相差に基づき前記データバス上の前記信号を回復するコンピュータプログラム製品。
【請求項30】
前記第1のコンピュータ可読プログラムコードは、
プロセッサが第1のデータパターンに誤り検出機能を行って前記誤り検出機能から第1の結果を生成することを可能にする第3のコンピュータ可読プログラムコードと、
プロセッサが前記第1のデータパターンをデータバス上で前記メモリデバイスへ伝送することを可能にする第4のコンピュータ可読プログラムコードと、
前記メモリデバイスのインタフェースで受信される前記第1のデータパターンを備える第2のデータパターンに対して行われる前記誤り検出機能から生成される第2の結果をプロセッサが前記メモリデバイスから受信することを可能にする第5のコンピュータ可読プログラムコードと、
プロセッサが前記第1の結果を前記第2の結果と比較して前記第1及び第2の結果が互いに一致するかどうかを決定することを可能にする第6のコンピュータ可読プログラムコードと、
プロセッサが前記第1及び第2の結果の前記比較に基づき前記書き込みタイミング窓の第1のタイミング境界及び第2のタイミング境界を決定することを可能にする第7のコンピュータ可読プログラムコードと、を備える請求項29のコンピュータプログラム製品。
【請求項31】
前記第1及び第2の結果が互いに一致する場合に、
前記第7のコンピュータ可読プログラムコードは、
前記第1のデータパターンにおける正の漸増的位相シフトに対してプロセッサが前記第4、第5及び第6のコンピュータ可読プログラムコードのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することを可能にする第8のコンピュータ可読プログラムコードと、
前記第1のデータパターンにおける負の漸増的位相シフトに対してプロセッサが前記第4、第5及び第6のコンピュータ可読プログラムコードの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することを可能にする第9のコンピュータ可読プログラムコードと、を備え、
前記第1のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、負の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の負の漸増的位相シフトによって定義される請求項30のコンピュータプログラム製品。
【請求項32】
前記第1及び第2の結果が互いに一致する場合に、
前記第7のコンピュータ可読プログラムコードは、
前記書き込みクロック信号における正の漸増的位相シフトに対してプロセッサが前記第4、第5及び第6のコンピュータ可読プログラムコードのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することを可能にする第8のコンピュータ可読プログラムコードと、
前記書き込みクロック信号における負の漸増的位相シフトに対してプロセッサが前記第4、第5及び第6のコンピュータ可読プログラムコードの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することを可能にする第9のコンピュータ可読プログラムコードと、を備え、
前記第1のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の負の漸増的位相シフトによって定義される請求項30のコンピュータプログラム製品。
【請求項33】
前記第1及び第2の結果が互いに一致しない場合に、
前記第7のコンピュータ可読プログラムコードは、
前記第1のデータパターンにおける正の漸増的位相シフトに対してプロセッサが前記第4、第5及び第6のコンピュータ可読プログラムコードのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することを可能にする第8のコンピュータ可読プログラムコードと、
プロセッサが前記第1のタイミング境界で開始すること並びに前記第1のデータパターンにおける正の漸増的位相シフトに対して前記第4、第5及び第6のコンピュータ可読プログラムコードの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することを可能にする第9のコンピュータ可読プログラムコードと、を備え、
前記第1のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最初の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の正の漸増的位相シフトによって定義される請求項30のコンピュータプログラム製品。
【請求項34】
前記第1及び第2の結果が互いに一致しない場合に、
前記第7のコンピュータ可読プログラムコードは、
前記書き込みクロック信号における正の漸増的位相シフトに対してプロセッサが前記第4、第5及び第6のコンピュータ可読プログラムコードのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することを可能にする第8のコンピュータ可読プログラムコードと、
プロセッサが前記第1のタイミング境界で開始すること並びに前記書き込みクロック信号における正の漸増的位相シフトに対して前記第4、第5及び第6のコンピュータ可読プログラムコードの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することを可能にする第9のコンピュータ可読プログラムコードと、を備え、
前記第1のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最初の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の正の漸増的位相シフトによって定義される請求項30のコンピュータプログラム製品。
【請求項1】
メモリデバイスにおける書き込みタイミングを調節するための方法であって、
誤り検出機能の結果に基づきデータバス上の信号と書き込みクロック信号との間の書き込みタイミング窓を決定することと、
前記書き込みタイミング窓に基づき前記データバス上の前記信号と前記書き込みクロック信号との間の位相差を調節することと、を備え、
前記メモリデバイスは前記調節された位相差に基づき前記データバス上の前記信号を回復する方法。
【請求項2】
前記メモリデバイスを誤り検出モードの動作に設定することを更に備える請求項1の方法。
【請求項3】
前記メモリデバイスを前記誤り検出モードの動作に設定することは、前記メモリデバイスを前記誤り検出モードの動作の間に書き込みモードの動作に設定することを備える請求項2の方法。
【請求項4】
前記書き込みタイミング窓を決定することは、
第1のデータパターンに誤り検出機能を行って前記誤り検出機能から第1の結果を生成することと、
前記第1のデータパターンをデータバス上で前記メモリデバイスへ伝送することと、
前記書き込みクロック信号に基づき前記メモリデバイスのインタフェースで受信される前記第1のデータパターンを備える第2のデータパターンに対して行われる前記誤り検出機能に基づく第2の結果を前記メモリデバイスから受信することと、
前記第1の結果を前記第2の結果と比較して前記第1及び第2の結果が互いに一致するかどうかを決定することと、
前記第1及び第2の結果の前記比較に基づき前記書き込みタイミング窓の第1のタイミング境界及び第2のタイミング境界を決定することと、を備える請求項1の方法。
【請求項5】
前記誤り検出機能を行うことは、パリティ機能及びチェックサム機能の少なくとも1つを行うことを備える請求項4の方法。
【請求項6】
前記第1及び第2の結果が互いに一致する場合に、
前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定することは、
前記第1のデータパターンにおける正の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記第1のデータパターンにおける負の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、を備え、
前記第1のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、負の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の負の漸増的位相シフトによって定義される請求項4の方法。
【請求項7】
前記第1及び第2の結果が互いに一致する場合に、
前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定することは、
前記書き込みクロック信号における正の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記書き込みクロック信号における負の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、を備え、
前記第1のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の負の漸増的位相シフトによって定義される請求項4の方法。
【請求項8】
前記第1及び第2の結果が互いに一致しない場合に、
前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定することは、
前記第1のデータパターンにおける正の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記第1のタイミング境界で開始して、前記第1のデータパターンにおける正の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、を備え、
前記第1のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最初の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の正の漸増的位相シフトによって定義される請求項4の方法。
【請求項9】
前記第1及び第2の結果が互いに一致しない場合に、
前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定することは、
前記書き込みクロック信号における正の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記第1のタイミング境界で開始して、前記書き込みクロック信号における正の漸増的位相シフトに対して前記伝送し、受信し及び比較するステップの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、を備え、
前記第1のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最初の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の正の漸増的位相シフトによって定義される請求項4の方法。
【請求項10】
前記第1の結果を前記第2の結果と比較することは、前記第1の結果における各ビットを前記第2の結果における各対応するビットと比較して前記第1及び第2の結果が互いに一致するかどうかを決定することを備える請求項4の方法。
【請求項11】
前記位相差を調節することは、前記データバス上の前記信号、前記書き込みクロック信号、並びに前記データバス上の前記信号及び前記書き込みクロック信号の両方、の少なくとも1つに位相遅延を導入することを備える請求項1の方法。
【請求項12】
メモリデバイスにおける書き込みタイミングを調節するための方法であって、
処理ユニットから伝送される第1のデータパターンを受信することと、
書き込みクロック信号に基づき前記メモリデバイスのインタフェースで受信される前記第1のデータパターンを備える第2のデータパターンに誤り検出機能を行って第1の結果を生成することと、
前記第1の結果を前記処理ユニットへ伝送することと、
データバス上の信号を受信することと、を備え、
前記データバス上の前記信号と前記書き込みクロック信号との間の位相差は書き込みタイミング窓内にあり、前記書き込みタイミング窓は、前記第1の結果と前記第1のデータパターンに行われる前記誤り検出機能からの第2の結果との間での比較に基づいている方法。
【請求項13】
誤り検出モードの動作において動作することを更に備える請求項12の方法。
【請求項14】
前記データバス上の前記信号を受信することは、前記書き込みタイミング窓の第1の境界及び第2の境界の間にある前記データバス上の前記信号を受信することを備える請求項12の方法。
【請求項15】
前記誤り検出機能を行うことは、パリティ機能及びチェックサム機能の少なくとも1つを行うことを備える請求項12の方法。
【請求項16】
メモリデバイスと前記メモリデバイスに結合される処理ユニットとを備えるシステムであって、
前記処理ユニットは、誤り検出機能の結果に基づきデータバス上の信号と書き込みクロック信号との間の書き込みタイミング窓を決定すると共に前記書き込みタイミング窓に基づき前記データバス上の前記信号と前記書き込みクロック信号との間の位相差を調節するように構成され、
前記メモリデバイスは前記調節された位相差に基づき前記データバス上の前記信号を回復するシステム。
【請求項17】
前記処理ユニットは、書き込みモードの動作の間に前記メモリデバイスを誤り検出モードの動作に置くように構成される請求項16のシステム。
【請求項18】
前記処理ユニットは、
第1のデータパターンに誤り検出機能を行って前記誤り検出機能から第1の結果を生成し、
前記第1のデータパターンをデータバス上で前記メモリデバイスへ伝送し、
前記書き込みクロック信号に基づき前記メモリデバイスのインタフェースで受信される前記第1のデータパターンを備える第2のデータパターンに対して行われる前記誤り検出機能に基づく第2の結果を前記メモリデバイスから受信し、
前記第1の結果を前記第2の結果と比較して前記第1及び第2の結果が互いに一致するかどうかを決定し、
前記第1及び第2の結果の前記比較に基づき前記書き込みタイミング窓の第1のタイミング境界及び第2のタイミング境界を決定するように構成される請求項16のシステム。
【請求項19】
前記処理ユニットは、前記誤り検出機能を行う場合にパリティ機能及びチェックサム機能の少なくとも1つを行うように構成される請求項18のシステム。
【請求項20】
前記第1及び第2の結果が互いに一致する場合に、
前記処理ユニットは、
前記第1のデータパターンにおける正の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能のシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記第1のデータパターンにおける負の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能の前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、に基づいて前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定するように構成され、
前記第1のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、負の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の負の漸増的位相シフトによって定義される請求項18のシステム。
【請求項21】
前記第1及び第2の結果が互いに一致する場合に、
前記処理ユニットは、
前記書き込みクロック信号における正の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能のシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記書き込みクロック信号における負の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能の前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、に基づいて前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定するように構成され、
前記第1のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の負の漸増的位相シフトによって定義される請求項18のシステム。
【請求項22】
前記第1及び第2の結果が互いに一致しない場合に、
前記処理ユニットは、
前記第1のデータパターンにおける正の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能のシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記第1のタイミング境界で開始して、前記第1のデータパターンにおける正の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能の前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、に基づいて前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定するように構成され、
前記第1のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最初の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の正の漸増的位相シフトによって定義される請求項18のシステム。
【請求項23】
前記第1及び第2の結果が互いに一致しない場合に、
前記処理ユニットは、
前記書き込みクロック信号における正の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能のシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することと、
前記第1のタイミング境界で開始して、前記書き込みクロック信号における正の漸増的位相シフトに対して前記伝送し、受信し及び比較する機能の前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することと、に基づいて前記タイミング窓の前記第1のタイミング境界及び前記第2のタイミング境界を決定するように構成され、
前記第1のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最初の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の正の漸増的位相シフトによって定義される請求項18のシステム。
【請求項24】
前記処理ユニットは、前記データバス上の前記信号と前記書き込みクロック信号との間の前記位相差を調節する場合に、前記データバス上の前記信号、前記書き込みクロック信号、並びに前記データバス上の前記信号及び前記書き込みクロック信号の両方、の少なくとも1つに位相遅延を導入するように構成される請求項16のシステム。
【請求項25】
処理ユニットと前記処理ユニットに結合されるメモリデバイスとを備えるシステムであって、
前記メモリデバイスは、
処理ユニットから伝送される第1のデータパターンを受信し、
書き込みクロック信号に基づき前記メモリデバイスのインタフェースで受信される前記第1のデータパターンを備える第2のデータパターンに誤り検出機能を行って第1の結果を生成し、
前記第1の結果を前記処理ユニットへ伝送し、
データバス上の信号を受信するように構成され、
前記データバス上の前記信号と前記書き込みクロック信号との間の位相差は書き込みタイミング窓内にあり、前記書き込みタイミング窓は、前記第1の結果と前記第1のデータパターンに行われる前記誤り検出機能からの第2の結果との間での比較に基づいているシステム。
【請求項26】
前記メモリデバイスは、誤り検出モードの動作において動作するように構成される請求項25のシステム。
【請求項27】
前記メモリデバイスは、前記書き込みタイミング窓の第1の境界及び第2の境界の間にある前記データバス上の前記信号を受信するように構成される請求項25のシステム。
【請求項28】
前記メモリデバイスは、前記誤り検出機能を行う場合にパリティ機能及びチェックサム機能の少なくとも1つを行うように構成される請求項25のシステム。
【請求項29】
プロセッサがソフトウエアコードを解析することを可能にするコンピュータプログラム論理が記録されるコンピュータ使用可能媒体を備えるコンピュータプログラム製品であって、
前記コンピュータプログラム論理は、
プロセッサが誤り検出機能の結果に基づきデータバス上の信号と書き込みクロック信号との間の書き込みタイミング窓を決定することを可能にする第1のコンピュータ可読プログラムコードと、
プロセッサが前記書き込みタイミング窓に基づき前記データバス上の前記信号と前記書き込みクロック信号との間の位相差を調節することを可能にする第2のコンピュータ可読プログラムコードと、を備え、
メモリデバイスは前記調節された位相差に基づき前記データバス上の前記信号を回復するコンピュータプログラム製品。
【請求項30】
前記第1のコンピュータ可読プログラムコードは、
プロセッサが第1のデータパターンに誤り検出機能を行って前記誤り検出機能から第1の結果を生成することを可能にする第3のコンピュータ可読プログラムコードと、
プロセッサが前記第1のデータパターンをデータバス上で前記メモリデバイスへ伝送することを可能にする第4のコンピュータ可読プログラムコードと、
前記メモリデバイスのインタフェースで受信される前記第1のデータパターンを備える第2のデータパターンに対して行われる前記誤り検出機能から生成される第2の結果をプロセッサが前記メモリデバイスから受信することを可能にする第5のコンピュータ可読プログラムコードと、
プロセッサが前記第1の結果を前記第2の結果と比較して前記第1及び第2の結果が互いに一致するかどうかを決定することを可能にする第6のコンピュータ可読プログラムコードと、
プロセッサが前記第1及び第2の結果の前記比較に基づき前記書き込みタイミング窓の第1のタイミング境界及び第2のタイミング境界を決定することを可能にする第7のコンピュータ可読プログラムコードと、を備える請求項29のコンピュータプログラム製品。
【請求項31】
前記第1及び第2の結果が互いに一致する場合に、
前記第7のコンピュータ可読プログラムコードは、
前記第1のデータパターンにおける正の漸増的位相シフトに対してプロセッサが前記第4、第5及び第6のコンピュータ可読プログラムコードのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することを可能にする第8のコンピュータ可読プログラムコードと、
前記第1のデータパターンにおける負の漸増的位相シフトに対してプロセッサが前記第4、第5及び第6のコンピュータ可読プログラムコードの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することを可能にする第9のコンピュータ可読プログラムコードと、を備え、
前記第1のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、負の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の負の漸増的位相シフトによって定義される請求項30のコンピュータプログラム製品。
【請求項32】
前記第1及び第2の結果が互いに一致する場合に、
前記第7のコンピュータ可読プログラムコードは、
前記書き込みクロック信号における正の漸増的位相シフトに対してプロセッサが前記第4、第5及び第6のコンピュータ可読プログラムコードのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することを可能にする第8のコンピュータ可読プログラムコードと、
前記書き込みクロック信号における負の漸増的位相シフトに対してプロセッサが前記第4、第5及び第6のコンピュータ可読プログラムコードの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することを可能にする第9のコンピュータ可読プログラムコードと、を備え、
前記第1のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の負の漸増的位相シフトによって定義される請求項30のコンピュータプログラム製品。
【請求項33】
前記第1及び第2の結果が互いに一致しない場合に、
前記第7のコンピュータ可読プログラムコードは、
前記第1のデータパターンにおける正の漸増的位相シフトに対してプロセッサが前記第4、第5及び第6のコンピュータ可読プログラムコードのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することを可能にする第8のコンピュータ可読プログラムコードと、
プロセッサが前記第1のタイミング境界で開始すること並びに前記第1のデータパターンにおける正の漸増的位相シフトに対して前記第4、第5及び第6のコンピュータ可読プログラムコードの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することを可能にする第9のコンピュータ可読プログラムコードと、を備え、
前記第1のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最初の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、正の位相シフトされた前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記第1のデータパターンにおける最後の正の漸増的位相シフトによって定義される請求項30のコンピュータプログラム製品。
【請求項34】
前記第1及び第2の結果が互いに一致しない場合に、
前記第7のコンピュータ可読プログラムコードは、
前記書き込みクロック信号における正の漸増的位相シフトに対してプロセッサが前記第4、第5及び第6のコンピュータ可読プログラムコードのシーケンスを反復的に繰り返して前記第1のタイミング境界を決定することを可能にする第8のコンピュータ可読プログラムコードと、
プロセッサが前記第1のタイミング境界で開始すること並びに前記書き込みクロック信号における正の漸増的位相シフトに対して前記第4、第5及び第6のコンピュータ可読プログラムコードの前記シーケンスを反復的に繰り返して前記第2のタイミング境界を決定することを可能にする第9のコンピュータ可読プログラムコードと、を備え、
前記第1のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最初の正の漸増的位相シフトによって定義され、
前記第2のタイミング境界は、前記第1のデータパターンに行われた前記誤り検出機能からの前記第1の結果が、対応する前記第2の結果に一致する前記書き込みクロック信号における最後の正の漸増的位相シフトによって定義される請求項30のコンピュータプログラム製品。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公表番号】特表2013−504817(P2013−504817A)
【公表日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2012−528893(P2012−528893)
【出願日】平成22年9月9日(2010.9.9)
【国際出願番号】PCT/US2010/048252
【国際公開番号】WO2011/031847
【国際公開日】平成23年3月17日(2011.3.17)
【出願人】(591016172)アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド (439)
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
【Fターム(参考)】
【公表日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願日】平成22年9月9日(2010.9.9)
【国際出願番号】PCT/US2010/048252
【国際公開番号】WO2011/031847
【国際公開日】平成23年3月17日(2011.3.17)
【出願人】(591016172)アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド (439)
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
【Fターム(参考)】
[ Back to top ]