(57)【要約】  信号の送信は、別の信号に関連した指定のイベントの間に送信されるのを回避するようにスケジューリングされる。例えば、信号が送信されるタイミングは、双方向信号経路のターンアラウンド期間を回避するようにスケジューリングされ得る。この技術は、例えば、メモリコントローラが一つ以上のメモリデバイス又はメモリモジュールと通信するようなメモリシステムに採用され得る。ここで、メモリシステムは、双方向メモリデータインタフェースがメモリコントローラによる駆動から、メモリデバイス／モジュールによる駆動へと切り替わる時か、またはその逆の時に対応したドライバターンアラウンドウィンドウ中にメモリ要求信号を送信することを回避するように構成され得る。
2011503753.tif 000002
【特許請求の範囲】
【請求項１】
双方向データ信号経路に関連したドライバターンアラウンド期間のタイミングを特定すること、および、
前記特定されたタイミングに基づき、メモリ要求の送信をスケジューリングすること
を含み、
前記送信のスケジューリングは、前記ドライバターンアラウンド期間と同時に起こらない前記メモリ要求の送信時間を選択することを含む、方法。
【請求項２】
前記送信のスケジューリングは、要求チャネルのアイドルタイムスロットを識別することを含み、前記アイドルタイムスロットのタイミングは、ドライバターンアラウンド期間に先行し、
前記送信のスケジューリングは、前記アイドルタイムスロット中に前記メモリ要求の送信をスケジューリングすることを含む、請求項１に記載の方法。
【請求項３】
前記メモリ要求が遅延されるべきであるという指示を送信することをさらに含む、請求項１に記載の方法。
【請求項４】
前記メモリ要求は、コマンドおよびアドレス情報を含む、請求項１に記載の方法。
【請求項５】
前記ドライバターンアラウンド期間は、
前記双方向データ信号経路上での読み取りから書き込みへの移行、または、
前記双方向データ信号経路上での書き込みから読み取りへの移行、に関連する、請求項１に記載の方法。
【請求項６】
双方向データ信号経路に関連したドライバターンアラウンド期間のタイミングを特定するように構成されたターンアラウンドイベント検出器と、
前記特定されたタイミングに基づき、メモリ要求の送信をスケジューリングするように構成されたスケジューラと
を備え、
前記スケジューラは、さらに、前記ドライバターンアラウンド期間と同時に起こらない前記メモリ要求の送信時間を選択するように構成される、装置。
【請求項７】
前記スケジューラは、さらに、要求チャネルのアイドルタイムスロットを識別するように構成され、前記アイドルタイムスロットのタイミングは、前記ドライバターンアラウンド期間に先行し、
前記スケジューラは、さらに、前記アイドルタイムスロット中に前記メモリ要求の送信をスケジューリングするように構成される、請求項６に記載の装置。
【請求項８】
前記メモリ要求が遅延されるべきであるという指示を送信するように構成された要求遅延指示器をさらに備える、請求項６に記載の装置。
【請求項９】
前記メモリ要求は、コマンドおよびアドレス情報を含む、請求項６に記載の装置。
【請求項１０】
前記ドライバターンアラウンド期間は、
前記双方向データ信号経路上での読み取りから書き込みへの移行、または、
前記双方向データ信号経路上での書き込みから読み取りへの移行、に関連する、請求項６に記載の装置。
【請求項１１】
双方向データ信号経路に関連したドライバターンアラウンド期間のタイミングを特定する手段と、
前記特定したタイミングに基づき、メモリ要求の送信をスケジューリングする手段と
を備え、
前記スケジューリングする手段は、前記ドライバターンアラウンド期間と同時に起こらない前記メモリ要求の送信時間を選択するように構成される、装置。
【請求項１２】
前記スケジューリングする手段は、さらに、要求チャネルのアイドルタイムスロットを識別するように構成され、前記アイドルタイムスロットのタイミングは、前記ドライバターンアラウンド期間に先行し、
前記スケジューリングする手段は、さらに、前記アイドルタイムスロット中に前記メモリ要求の送信をスケジューリングするように構成される、請求項１１に記載の装置。
【請求項１３】
前記メモリ要求が遅延されるべきであるという指示を送信する手段をさらに備える、請求項１１に記載の装置。
【請求項１４】
前記メモリ要求は、コマンドおよびアドレス情報を含む、請求項１１に記載の装置。
【請求項１５】
前記ドライバターンアラウンド期間は、
前記双方向データ信号経路上での読み取りから書き込みへの移行、または、
前記双方向データ信号経路上での書き込みから読み取りへの移行、に関連する、請求項１１に記載の装置。
【請求項１６】
双方向信号データ経路に関連したターンアラウンドイベントと同時に起こらないようにスケジューリングされたメモリ要求を受信することを含み、ここで、前記メモリ要求は、前記ターンアラウンドイベントの前に受信され、
前記メモリ要求を遅延させることをさらに含む、方法。
【請求項１７】
前記ターンアラウンドイベントを検出することをさらに含み、前記メモリ要求は、前記検出の結果として遅延される、請求項１６に記載の方法。
【請求項１８】
前記メモリ要求が遅延されるべきであるという指示を受信することをさらに含み、前記遅延は前記指示に基づく、請求項１６に記載の方法。
【請求項１９】
前記遅延は、予め定義された遅延時間に基づく、請求項１６に記載の方法。
【請求項２０】
前記ターンアラウンドイベントのタイミングを特定することをさらに含み、前記遅延は前記特定されたタイミングに基づく、請求項１６に記載の方法。
【請求項２１】
前記ターンアラウンドイベントを検出することをさらに含み、前記メモリ要求を遅延させることにより、前記メモリ要求は前記ターンアラウンドイベントが開始した後に処理されることになる、請求項１６に記載の方法。
【請求項２２】
前記ターンアラウンドイベントは、前記双方向信号経路のドライバターンアラウンド期間に関連する、請求項１６に記載の方法。
【請求項２３】
双方向データ信号経路に関連したターンアラウンドイベントと同時に起こらないようにスケジューリングされたメモリ要求を受信するように構成されたメモリアクセスコントローラであって、前記メモリ要求は、前記ターンアラウンドイベントの前に受信される、メモリアクセスコントローラと、
前記メモリ要求を遅延させるように構成された要求遅延器と
を備える、装置。
【請求項２４】
前記ターンアラウンドイベントを検出するように構成されたターンアラウンド検出器をさらに含み、前記メモリ要求は、前記検出の結果として遅延される、請求項２３に記載の装置。
【請求項２５】
前記メモリ要求が遅延されるべきであるという指示を受信するように構成された要求遅延指示器をさらに備え、前記要求遅延指示器は、さらに、前記指示に基づいて遅延させるように構成される、請求項２３に記載の装置。
【請求項２６】
前記要求遅延器は、さらに、予め定義された遅延時間に基づいて遅延させるように構成される、請求項２３に記載の装置。
【請求項２７】
前記ターンアラウンドイベントのタイミングを特定するように構成されたターンアラウンドイベント検出器をさらに備え、前記要求遅延器は前記特定されたタイミングに基づいて遅延させるように構成される、請求項２３に記載の装置。
【請求項２８】
前記ターンアラウンドイベントを検出するように構成されたターンアラウンドイベント検出器をさらに含み、前記メモリ要求を遅延させることにより、前記メモリ要求は前記ターンアラウンドイベントが開始した後に処理されることになる、請求項２３に記載の装置。
【請求項２９】
前記ターンアラウンドイベントは、前記双方向信号経路のドライバターンアラウンド期間に関連する、請求項２３に記載の装置。
【請求項３０】
双方向データ信号経路に関連したターンアラウンドイベントと同時に起こらないようにスケジューリングされたメモリ要求を受信する手段を備え、ここで、前記メモリ要求は前記ターンアラウンドイベントの前に受信され、
前記メモリ要求を遅延させる手段をさらに備える、装置。
【請求項３１】
前記ターンアラウンドイベントを検出する手段をさらに含み、前記メモリ要求は、前記検出の結果として遅延される、請求項３０に記載の装置。
【請求項３２】
前記メモリ要求が遅延されるべきであるという指示を受信する手段をさらに備え、前記遅延は前記指示に基づく、請求項３０に記載の装置。
【請求項３３】
前記遅延は、予め定義された遅延時間に基づく、請求項３０に記載の装置。
【請求項３４】
前記ターンアラウンドイベントのタイミングを特定する手段をさらに備え、前記遅延は前記特定されたタイミングに基づく、請求項３０に記載の装置。
【請求項３５】
前記ターンアラウンドイベントを検出する手段をさらに含み、前記メモリ要求を遅延させることにより、前記メモリ要求は前記ターンアラウンドイベントが開始した後に処理されることになる、請求項３０に記載の装置。
【請求項３６】
前記ターンアラウンドイベントは、前記双方向信号経路のドライバターンアラウンド期間に関連する、請求項３０に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、概してデータ処理に関し、より詳細には、スケジューリング動作に関するが、これ以外を排除するものではない。
【背景技術】
【０００２】
データ処理システムでは、双方向リンクが採用されることがあり、これによりリンクのデータインタフェースが書き込み間隔と読み取り間隔との間で移行する。例えば、メモリシステムは、メモリコントローラおよびメモリデバイスが異なるタイミングでリンクを駆動する双方向データ（ＤＱ）リンクを採用し得る。このような双方向リンクの使用により、システムは、利用可能なパッケージピンをより効率的に利用し、かつ柔軟な帯域幅割当てを提供することができる。
【発明の概要】
【０００３】
実用上、リンクを駆動する異なるデバイス間の切り替え処理では、スイッチング電流を低下させるように設計されたシグナリングアーキテクチャ（例えば、差動シグナリングまたは符号化シグナリング）を採用した場合であっても、当該リンクに相対的に顕著な電流が生成されることがある。このドライバの切り替えに関連したノイズがリンクへ与える悪影響を減少させるために、いわゆるタイミング「バブル」の使用が可能であり、これにより、ドライバのターンアラウンド（例えば、読み取りから書き込みへ、またはその逆）に関連した時間ウィンドウ中のデータ伝送が回避される。このようなタイミング「バブル」の使用により、ドライバのターンアラウンドに関連したノイズが沈静する時間ができ、これによりリンク上のデータ送信に対しノイズが悪影響を及ぼす可能性が減少する。
【０００４】
ドライバのオン・オフを切り替える動作もまた電源を介してスイッチング電流が結合されるのを引き起こすことがあり、それにより他の信号経路上に電圧ノイズが誘発される。いくつかの態様において、この電圧ノイズは直接的に受信機の電圧マージンを低下させ得る。いくつかの態様では、このノイズは、電源上の電圧ノイズがドライバ出力または受信機入力の遅延やクロックエッジ到着時間に影響し得るため、他方の信号経路においてタイミングジッタ（または位相ノイズ）の増加をもたらす可能性がある。リンク間の電磁結合または静電結合もまた、ターンアラウンド中のリンクと、ターンアラウンド中ではない近くのリンクとの間でクロストークを引き起こす可能性がある。このターンアラウンドに誘発される電圧ノイズもまた、他の信号経路の電圧および／またはタイミングマージンを減少させ得る。これらのノイズ問題に対処する１つのアプローチとしては、あるデータ経路と比較してより低い信号速度、および、より大きな電圧振幅で、他の信号経路を動作させることが挙げられる。このアプローチにより、データ経路切り替えノイズによる他方の信号経路内のあらゆる劣化を実質上吸収し得る、より大きなタイミングおよび電圧マージンを可能にする。しかし、用途によっては、信号経路上で信号速度を低下させたり、電圧信号振幅を増加させたりすることが望ましくない場合もある。よって、信号経路上での速い信号速度および／または大きな電圧信号振幅の使用が可能となるような効果的な技術に対する需要がある。
【図面の簡単な説明】
【０００５】
本開示の特徴、態様、および効果の例を、詳細な説明、それに続く添付の請求の範囲、および添付の図面において説明する。
【図１】図１は、信号ターンアラウンドイベントを回避するように信号送信をスケジューリングする一例を示す簡略図である。
【図２】図２は、信号ノイズの一例を示す簡略図である。
【図３】図３は、信号ターンアラウンドイベントを回避するように信号送信をスケジューリングするために、装置で実行され得る動作の一実施形態を示すフローチャートである。
【図４】図４は、信号ターンアラウンドイベントを回避するようにスケジューリングした受信信号に対する処理を遅延させるために、装置により実行され得る動作の一実施形態を示すフローチャートである。
【図５】図５は、信号ターンアラウンドイベントを回避するようにスケジューリングされた信号を処理するように構成された装置の構成要素の一実施形態を示す簡略ブロック図である。
【図６】図６は、信号ターンアラウンドイベントを回避するように信号送信をスケジューリングする一例を示す簡略図である。
【図７】図７は、信号ターンアラウンドイベントを回避するように信号送信をスケジューリングする一例を示す簡略図である。
【０００６】
一般的に行われるように、図示した種々の特徴は、縮尺どおりに描かれていないこともある。したがって、種々の特徴の寸法は、明確性を目的として、恣意的に拡大または縮小されていることもある。さらに、図面には、明確性を目的として、簡略化されているものもある。したがって、図面には、所与の装置または方法の全ての構成要素が記されていない場合もある。最後に、本明細書および図面を通して、同様の特徴は同一の参照符号を使用して示され得る。
【発明を実施するための形態】
【０００７】
本開示は、いくつかの態様において、信号の送信をスケジューリングし、当該信号が他の信号に関連した特定のイベント中に送信されるのを回避することに関連する。例えば、１つのチャネル上での信号の送信時間は、他のチャネル上での双方向信号の切り替えに関連した期間を回避するようにスケジューリングされ得る。
【０００８】
説明の目的で、本開示の種々の態様は、メモリシステムの文脈として記載され、このメモリシステムにおいて、コントローラ（例えば、メモリコントローラ）は、要求（ＲＱ）バス上の要求（ＲＱ）チャネル信号を１つ以上のメモリデバイスまたはメモリモジュール（以後、本明細書では、便宜上「メモリデバイス」と呼ぶ）へと送信することをスケジューリングする。具体的には、コントローラは、データ（ＤＱ）バス上の双方向メモリデータ（ＤＱ）チャネルの駆動をコントローラによる駆動からメモリデバイスによる駆動へと切り替える時やまたはその逆の時に対応するドライバターンアラウンド期間（例えば、図１中のターンアラウンドウィンドウ１０２）中に、ＲＱ信号を送信するのを回避する。本明細書の教示は、他の種類の信号、構成要素、およびシステムにも適用可能であることを理解されたい。さらに、そのような構成要素は、他の構成要素（例えば、プロセッサまたはメモリモジュール）内でも実施可能であり、また、本明細書の教示は他の種類の装置においても実施可能であることを理解されたい。
【０００９】
図１は、連続する時間ウィンドウ（例えば、タイムスロット）中にメモリアクセスに使用され得る信号タイミングの一例を示す。ＤＱチャネルは、双方向ＤＱバス（例えば、データ信号経路）上の信号に関連する。例えば、データ書き込み（例えば、メモリデバイスに書き込まれるデータパケット）は、Ｗ０、Ｗ１などで表され、データ読み取り（例えば、メモリデバイスからの読み取られるデータパケット）はＲ０、Ｒ１などで表される。「コントローラＴＸ＿イネーブルチャネル」は、コントローラにおいて生成され得る送信イネーブル信号を表す。「メモリＴＸ＿イネーブルチャネル」は、メモリデバイスにて生成され得る送信イネーブル信号を表す。
【００１０】
ＲＱチャネルは、ＲＱバス（例えば、要求経路）上でコントローラにより生成される要求信号に関連する。ＲＱ最適化チャネルは、本明細書の教示に従いコントローラにより生成され得る書き込み要求（例えば、Ｗ０、Ｗ１など）および読み取り要求（例えばＲ０、Ｒ１など）を表す。比較の目的で、ＲＱ−通常チャネルは、従来の慣例に従ってコントローラにより生成され得る書き込み要求（例えば、Ｗ０、Ｗ１など）および読み取り要求（例えばＲ０、Ｒ１など）を表す。図１に示すように、書き込み要求（例えば、Ｗ０）または読み取り要求（例えば、Ｒ０）は、対応する書き込みデータ（例えば、Ｗ０）または読み取りデータ（例えばＲ０）の送信間隔に先立って送信され得る。
【００１１】
本明細書で使用されるように、書き込み要求および読み取り要求は、データにアクセスするために使用され得る多様な種類の（データおよびクロック信号以外の）信号に関連する。このような信号は、例えば、アドレスおよび／または制御情報（例えば、コマンド／アドレス「Ｃ／Ａ」）を含み得る。ＤＲＡＭなどのメモリデバイスに対して、そのような信号は、例えば、バンクアドレス、行アドレス、列アドレス、命令コード（opcode）、又はこれらの信号のあらゆる組み合わせを含み得る。いくつかの実施において、各要求（例えば、Ｗ０）は、要求パケットに対応する。簡略化した例としては、Ｗ０は起動コマンドおよび行アドレスパケットを含み得る、Ｗ１は書き込みコマンドおよび列アドレスパケットを含み得る、ならびに、Ｗ３はプレチャージコマンドおよびバンクアドレスパケットを含み得る、などが挙げられる。
【００１２】
図１に示すように、読み取りから書き込みへまたは書き込みから読み取りへの移行の間、ＤＱバス上にアイドルサイクル（例えば、タイムスロット）を導入し、ＤＱバス上で切り替えノイズを沈静させることが可能となる。例えば、ＤＱバス上の最後の書き込みＷ３と最初の読み取りＲ０との間に、５つのアイドルサイクルは提供される。さらに、ＤＱバス上に挿入されたアイドルサイクルの結果としてＲＱバス上にアイドルサイクルを導入してもよい。例えば、ＲＱ−通常バス上の書き込みＷ０〜Ｗ３と読み取りＲ０〜Ｒ５との間に３つのアイドルサイクルが提供される。
【００１３】
上述したように、図１は、最後の書き込みＷ３から最初の読み取りＲ０へのＤＱインタフェース切り替えに関連したターンアラウンドウィンドウ１０２を示す。具体的には、コントローラは時間ウィンドウ６の後、ＤＱバスの駆動を停止し、時間ウィンドウ８でメモリデバイスがＤＱバスの駆動を開始する。従来のシステムでは、ターンアラウンドウィンドウ１０２中にコントローラがＲＱ−通常信号（例えば、Ｒ０〜Ｒ２）を送信し得ることが観察されることがある。よって、ＤＱバスをターンアラウンドさせることによりＲＱ−通常信号上にノイズが誘発され得る。
【００１４】
図２は、ドライバがオンまたはオフ状態にされるときに生成され得る信号の一例を示す。波形２０２は差動信号の一例であり、波形２０４はシングルエンド信号の一例である。差動信号用のドライバは、矢印２０６および２０８でそれぞれ示される時点でオンおよびオフ状態にされる。シングルエンド信号用のドライバは、矢印２１０および２１２でそれぞれ示される時点でオンおよびオフ状態にされる。データは、時間間隔２１４中に送信される。図２に示すように、ドライバがオンおよびオフ状態にされた結果発生したノイズの電位は、時間ウィンドウ２１６および２１８それぞれの間に相対的に高くなり得る。
【００１５】
本明細書では、ドライバターンアラウンドウィンドウという用語は、およそ１つのドライバ（例えば、データドライバ）がオフ状態にされ始めたときに開始し、およそオン状態にされている他のドライブからのノイズが、確実な送信をするのに十分なほどに沈静された時に終了する時間ウィンドウを指す。例えば、ターンアラウンドウィンドウ（例えば、図１のターンアラウンドウィンドウ１０２）は、１つのドライバがオフ状態にされ、他のドライバがオン状態にされることに関連する潜在的なノイズ発生期間（例えば、時間ウィンドウ２１８および２１６）や、これらの潜在的なノイズ発生期間と期間との間の期間を包含するように定義され得る。
【００１６】
これらのターンアラウンドイベントに起因するスイッチング電流がＲＱバスなどの他の信号経路上に電圧ノイズを誘発することを防ぐために、メモリシステムは、ターンアラウンドウィンドウ中に要求を送信することを回避するように構成され得る。この目的で、メモリシステムはターンアラウンドウィンドウに先立って要求バッファプレロードを提供し得る。ここで、コントローラは、早い段階であって、これ以外の場合にはアイドルサイクルとなるサイクル中に、１つ以上の要求を送信し得る。メモリデバイスは、その後これらの要求をバッファリングし、メモリデバイスが内部で要求を発行する前に、適度な遅延を提供する。
【００１７】
図１のＲＱ最適化信号は、ターンアラウンドウィンドウ中にあらゆるＲＱ信号が送信されるのを回避するようにＲＱ信号をスケジューリングし得る方法の一例である。ここで、書き込み要求（Ｗ０〜Ｗ３）の第１組は、ＲＱ−通常のケースと同様に時間ウィンドウ０〜３の間に送信される。しかし、読み取り要求のＲ０〜Ｒ２は、ここでは、時間ウィンドウ４〜６の間に送信され、時間ウィンドウ７〜９に対応したターンアラウンドウィンドウ１０２中には、要求信号は送信されない。残りの読み取り要求Ｒ３〜Ｒ５は、その後、ＲＱ−通常のケースと同様に時間ウィンドウ１０〜１２中に送信される。ＲＱ−最適化書き込み信号Ｗ０〜Ｗ２に対しても、同様のスケジューリング方式が採用され、時間ウィンドウ１８〜２０に対応したターンアラウンドウィンドウ１０４中に要求が送信されるのを回避する。
【００１８】
上記技術の使用は、要求チャネル（例えばＲＱバス）上のノイズに対する脆弱性を有利に減少させ得る。このノイズを減少させることにより、メモリシステムは、より狭く、かつより高速な要求チャネルを採用することができる。例えば、データチャネル（例えば、データバス）のシグナリング速度に匹敵するシグナリング速度で、要求チャネルを作動させることができる。より狭く、かつより高速な要求チャネルの使用は、ひいては、コントローラピンオーバヘッド（controller pin overhead）の短縮を可能とし、より多くの要求チャネルの使用を可能とし、より細かいアクセス粒度の使用を可能とすることができる。
【００１９】
本開示のこれらの態様および他の態様は、図３〜７を用いて以下により詳細に説明する。図３は、本明細書の教示にしたがって要求をスケジューリングするためにコントローラが実行し得るいくつかの動作を説明する。図４は、スケジュールリングされた要求を処理するためにメモリデバイスが実行し得るいくつかの動作を説明する。図５は、メモリコントローラ５０２およびメモリデバイ５０４を含むメモリシステム５００の実施形態例を示す。メモリコントローラ５０２は、相互接続５０６（たとえば、データ信号経路、クロック信号経路、および制御信号経路を含むメモリバス）を介してメモリデバイス５０４のコントローラインタフェース５２８と通信するように構成されたメモリインタフェース５２６を含む。図６および７は、メモリアクセス信号タイミングの追加的な例を示す。
【００２０】
便宜上、図３および４の動作（又は本明細書において説明または教示するあらゆる他の動作）は、特定の構成要素（例えば、システム５００の構成要素）により実行されているものとして記載され得る。ただし、これらの動作は、他のタイプの構成要素により実行されても良く、異なる数の構成要素を用いて実行されてもよいことを理解されたい。また、本明細書に記載する１つ以上の動作は、所与の実施においては採用されなくてもよいことを理解されたい。
【００２１】
図３のブロック３０２に示すように、メモリコントローラ５０２は、メモリデバイス５０４のメモリアレイ５０８へのアクセスを要求する１つ以上の関連デバイス（例えば、プロセッサ）から、１つ以上のコマンド（または、他の好適なメッセージ）を受信する。従来の慣例に従い、メモリコントローラ５０２（例えば、スケジューラ５１０）は、これらのメッセージを処理するために、アービトレーションやスケジューリングなどの動作を実行し、対応する要求を適切なタイミングでメモリデバイス５０４に送信し得る。
【００２２】
本明細書の教示に従い、スケジューリング動作は、ターンアラウンドウィンドウ中にスケジューリングされてしまう可能性のある要求を、ターンアラウンドイベントに先行する利用可能な要求チャネルタイムスロット中にスケジュ−リングすることにより、ターンアラウンド時間中に要求が送信されるのを回避することを含み得る。いくつかの態様では、これは、読み取りから書き込みへのまたは書き込みから読み取りへのターンアラウンドイベントの適切な予見、ターンアラウンドイベントに続く１つ以上の要求の予見、および後述するようなベーシックタイミングパラメータの予見により達成され得る。
【００２３】
ブロック３０４に示すように、メモリコントローラ５０２（例えば、ターンアラウンドイベント検出器５１２）は、どの時点においてＤＱバス上でターンアラウンドイベントが起こるかを特定する。例えば、図６において、スケジューラ５１０は、あらかじめスケジューリングされた書き込みＷ０〜Ｗ３を有し得て、これにより書き込み要求は時間ウィンドウ０〜３で発行され、書き込みデータＷ０〜Ｗ３は時間ウィンドウ６〜９でＤＱバス上に提供される。さらに、スケジューラ５１０は、次に読み取り要求がスケジューリングされることを特定し得る。この場合、ターンアラウンド検出器５１２は、ターンアラウンドイベント６０２（例えば、ターンアラウンドウィンドウ）が時間ウィンドウ１２〜１４で起こるであろうことを特定し得る。
【００２４】
ブロック３０６に示すように、メモリコントローラ５０２（例えば、スケジューラ５１０）は、ターンアラウンドイベント６０２を回避するように読み取り要求Ｒ０〜Ｒ５をスケジューリングする。ＲＱ−通常バスにより示されるように、従来のシステムでは、読み取り要求Ｒ０〜Ｒ５は、書き込みデータＷ０〜Ｗ３がＤＱバスで送信された後にスケジューリングされ得る。そのような場合、要求信号Ｒ１〜Ｒ３はターンアラウンドイベント６０２中にスケジューリングされ、結果的に切り替えノイズに曝されることがある。反対に、ＲＱ−最適化バスにより示されるように、スケジューラ５１０は、ターンアラウンドイベント６０２の前に送信されるように要求信号Ｒ０〜Ｒ３をスケジューリングすることができる。ここで、スケジューラ５１０は、書き込みデータＷ３に続くＤＱバス上のアイドルサイクルによりＲＱバス上に発生するいくつかのアイドルサイクル（例えば、タイムスロット６０４Ａ〜６０４Ｃ）を識別し得る。スケジューラ５１０は、その後これらのアイドルＲＱサイクルおよび時間ウィンドウ１１のタイムスロットを使用し、要求Ｒ０〜Ｒ３をＲＱ−最適化バスに示すようにスケジューリングし得る。要求Ｒ４およびＲ５は、（例えば、ＲＱ−通常のケースのように）ターンアラウンドイベント６０２の後に続いてスケジューリングされ得る。
【００２５】
図７は、ＤＱバスが読み取りから書き込みへと移行する際に行われ得る同様の動作を示す。ここで、時間ウィンドウ８〜１１、１５および１６でスケジューリングされる読み取りデータＲ０〜Ｒ５は、メモリデバイス５０４により時間ウィンドウ２４〜２９でＤＱバスに出力される。さらに、スケジューラ５１０は、書き込み要求が次にスケジューリングされるであろうことを特定した。この場合、ターンアラウンドイベント検出器５１２は、時間ウィンドウ３０〜３２でターンアラウンドイベント７０２が起こることを特定する。スケジューラ５１０は、その後、ターンアラウンドイベント７０２を回避するように書き込み要求Ｗ０〜Ｗ７をスケジューリングする。ＲＱ−最適化バスにより示されるように、スケジューラ５１０は、いくつかのアイドルサイクル７０４Ａ〜７０４Ｃを識別した後、要求信号Ｗ０〜Ｗ５をターンアラウンドイベント７０２の前に送信されるようにスケジューリングし得る。スケジューラ５１０は、その後、これらのＲＱサイクルおよび時間ウィンドウ２７〜２９のタイムスロットを使用し、要求Ｗ０〜Ｗ５をスケジューリングする。その後、要求Ｗ６およびＷ７はターンアラウンドイベント７０２の後にスケジューリングされ得る。この場合、メモリコントローラ５０２は、ＤＱバス上に、ターンアラウンドイベント７０２の直後に書き込みデータＷ０〜Ｗ７を配置する。
【００２６】
再度図３を参照し、ブロック３０８に示すように、メモリコントローラ５０２（例えば、要求遅延指示器５１４）は、メモリデバイス５０４がターンアラウンドタイム前にスケジューリングされていた要求に対する処理をする（例えば、発行する）のを遅延させるように命令する指示（Indication）を、メモリデバイス５０４に送信し得る。このような指示は、要求が送信される前に、または（ブロック３１０で）１つ以上の要求と共に、メモリデバイス５０４に送信され得る。いくつかの実施において、この指示は、メモリデバイス５０４が所与の要求に対する処理の前にどれほど長く（例えば、クロックサイクルまたは時間ウィンドウの数）遅延させるべきかを示すことができる。受信した要求を遅延させるようにメモリデバイス５０４を構成するために使用され得る他の手法を以下に説明する。
【００２７】
ブロック３１０に示すように、メモリコントローラ５０２（例えば、スケジューラ５１０）は、スケジューリングされた時間に要求を送信する。例えば、図６に示すように、読み取り要求Ｒ０〜Ｒ５は時間ウィンドウ８〜１１、１５および１６中に送信される。
【００２８】
ブロック３１２に示すように、メモリコントローラ５０２は、その後、要求に基づきメモリデバイス５０４にアクセスする。例えば、図７に示すように、メモリコントローラ５０２は、時間ウィンドウ２４〜２９中に読み取りデータＲ０〜Ｒ５を受信する。
【００２９】
ここで、図４を参照し、メモリデバイス５０４により実行され得る補足的な動作をさらに詳しく説明する。いくつかの実施において、これは、データターンアラウンドイベントに先行する、これ以外の場合ではアイドル要求サイクルとなるサイクル中にメモリデバイス５０４内の要求バッファ５１６にいくつかの要求をプレロードすることを含み得る。これらのバッファされた要求をメモリデバイス５０４内で適切に遅延させることにより、ＤＱバス上でターンアラウンド中にメモリデバイス５０４内にそれら要求を発行することが可能となり、これによりＲＱバス上の電圧またはタイミングマージンの低下を避けることができる。
【００３０】
ブロック４０２に示すように、いくつかの実施において、メモリデバイス５０４（例えば、要求遅延指示器５１８）は、１つ以上の要求をメモリデバイス５０４にてどの程度遅延させるべきかに関する指示を受信し得る。例えば、ブロック３０８で上述したように、メモリデバイス５０４は、要求が受信される前、または（ブロック４０４で）１つ以上の要求と同時のいずれかにそのような指示を受信し得る。
【００３１】
ブロック４０４で示されるように、メモリデバイス５０４（例えば、メモリアクセスコントローラ５２４）は、ブロック３１０でメモリコントローラ５０２により送信された要求を受信する。後述するように、メモリデバイス５０４は、ターンアラウンドイベント中に要求が受信されない場合でも（例えば、図６および７に示すように所与の要求組の要求が時間的に分離されている場合など）、効果的に要求を処理するように構成されている。
【００３２】
ブロック４０６において、いくつかの実施では、メモリデバイス５０４（例えば、ターンアラウンドイベント検出器５２０）は、受信した要求に関連したターンアラウンドイベントの時間を特定し得る。そのような場合、メモリデバイス５０４は、ターンアラウンド時間を利用して、要求が遅延されるか否か、および／または、遅延量を特定し得る。例えば、メモリデバイス５０４が読み取りから書き込みへ（または、その逆）の移行を検出した時はいつでも、メモリデバイス５０４は、定義された遅延期間に従って自動的に遅延させ得る（例えば、３つの要求に対して３サイクル遅延させる）。また、メモリデバイス５０４は、ターンアラウンド期間（例えば、３サイクル）中に着信する要求がないこと、また、その結果として（３つの要求の深さ（depth）を想定して）要求バッファ５１６が空であろうことを検出することができる。この場合、メモリデバイス５０４は、この要求組から、続いて受信される要求を遅延させることはない。
【００３３】
ブロック４０８に示すように、メモリデバイス５０４（例えば、要求遅延器５２２）は、早く（例えば、ターンアラウンドイベントの前に）送信されたあらゆる要求を遅延（例えば、発行を遅延）させ得る。いくつかの態様において、これには、要求を処理するために指定された時間まで、受信した要求を要求バッファ５１６内に保存することが含まれる。
【００３４】
上述したように、いくつかの実施において、メモリデバイス５０４は、所与の要求をどの程度遅延させるべきかの指示を受信するか、または当該指示によりその他設定をされる。例えば、ある要求においてこの指示が受信された場合、要求遅延器５２２は要求において指示された時間だけ当該要求を遅延させ得る。場合によっては、要求は、ターンアラウンドイベントの開始後に処理されるように遅延されることもある。例えば、図６では、メモリデバイス５０４は、現時点でＲＱバス（ＲＱ−最適化）上にトラフィックが無かったとしても、時間ウィンドウ１２中に要求Ｒ１を処理し得る（例えば、時間ウィンドウ３つ分の遅延）。
【００３５】
ブロック４１０に示すように、メモリデバイス５０４（例えば、メモリアクセスコントローラ５２４）は、その後、要求に基づきメモリアレイ５０８へのアクセスを提供する。例えば、図７に示すように、メモリデバイス５０４は、読み取りデータＲ０〜Ｒ５を時間ウィンドウ２４〜２９の間に出力する。
【００３６】
本明細書で教示されるような要求または他の信号のスケジューリングは、種々の方法で実施され得る。例えば、上述したように、種々の技術を使用し、所与の要求を遅延させるべきか否か、およびどの程度遅延させるべきかを指示する情報により、メモリデバイス５０４を設定し得る。
【００３７】
いくつかの実施において、メモリデバイス５０４（例えば、要求遅延指示器５１８）は、遅延を示す値によりプログラムされているレジスタを含む。この場合、所与の要求は、この特定の要求が遅延されるべきかどうかを示す指示（例えば、ビット）を含み得る。その場合、メモリデバイス５０４は、レジスタの値により示される時間量だけ要求を遅延させ得る。
【００３８】
メモリデバイス５０４は、受信した要求を遅延させるかどうか／当該要求をどの程度遅延させるかを特定する埋め込まれたルールを採用し得る。例えば、いくつかの実施において、システム５００は、全ての要求は指定された量（例えば、３サイクル）だけ遅延させられるように構成される。この場合、所与の要求は、この特定の要求が遅延されるべきかどうかを示す指示を含み得る。そうだとすると、メモリデバイス５０４は、指定された量だけ要求を遅延させ得る。
【００３９】
いくつかの実施において、メモリデバイス５０４は、書き込みの直後に読み取り（または、その逆）を発行しないように構成される。そのような場合、メモリデバイス５０４は、そのような読み取りまたは書き込みを（例えば、定義された時間だけ）自動的に遅延させ得る。
【００４０】
いくつかの態様において、メモリシステム５００は、ターンアラウンドイベントに先立って、空いている要求チャネルタイムスロットの確率を増加する（例えば、最大化する）メモリコントロールプロトコルを採用し、開示された手法の性能を最適化することができる。いくつかの態様において、これは、十分に確定的なアイドルサイクルをＲＱバス上に提供するプロトコルの使用により達成され得る。例えば、要求とデータ転送との間に１：１の対応性を一般的に提供し、かつこれらの要求とデータ転送との間に固定されたスペースを提供するプロトコルを使用すると、要求をアイドルサイクルに移動させるのが相対的に容易である。反対に、各組の要求に対し、可変数のタイムスロットを使用するプロトコルを使用すると、最適な位置に利用可能なアイドルサイクルが常にあるわけではないため、要求をアイドルサイクルに移動させるのがより難しくなる。
【００４１】
いくつかの態様において、利用可能なタイムスロットの数は、メモリデバイスにアクセスするために使用する要求パケットをより少なくすることより、増加させることができる。例えば、プロトコルは、いくつかの要求コマンド（例えば、パケットを分離する、起動する、読み取る／書き込む、プレチャージする）を送信するよりはむしろ、単一のコマンドとして要求を送信し得る。ここで、コマンドは、フルアドレス（例えば、バンク、行、列）を含み得る。さらに、コマンドは、インプリシットタイミング（implicit timing）（例えば、ＲＡＳからＣＡＳへのタイミング（ｔＲＣＤ）、プレチャージから起動タイミング（ｔＲＰ）、オートプレチャージ）を採用してもよい。一例として、オートプレチャージを使用する（例えば、メモリデバイス５０４が、読み取りまたは書き込みの最後に自動的にプレチャージを発行する）ことにより、プレチャージコマンドを要求バスで送信する必要がなくなる。更なる例として、メモリデバイス５０４は、単一のコマンドにより提供された行アドレスを取り、ただちに起動コマンドを発行し、その後所定のタイミングパラメータ（例えば、５サイクル）だけ列を遅延させ、その後最後にオートプレチャージを発行するように構成された状態機械を含み得る。動作において使用されるこれらのようなタイミングパラメータはいずれも、既定義であってもよく、または設定変更可能であってメモリデバイス５０４のレジスタに保存されていてもよい。
【００４２】
メモリシステムは、減少されたターンアラウンドノイズポリシーに対するサポートを提供するプロトコルを採用し得る。例えば、そのようなプロトコルは、ＷＲの後ＲＤまでの間にＴＸを残し得る。
【００４３】
メモリコントローラ５０２は、したがって、上記特徴の１つ以上をサポートするように構成され得る。例えば、メモリコントローラ５０２は、ターンアラウンドイベントに先立って、空いている要求チャネルタイムスロットの確率を最大化するプロトコルに対するサポートを提供し得る。メモリコントローラ５０２は、次回のターンアラウンドイベントを検出する機能を含み、コンフリクトさせずに早い段階で要求を送信することができる。メモリコントローラ５０２は、要求をバッファリング／遅延させるべきか否か、それにより何サイクル分遅延させるべきか、または、直ちに発行するべきか否かについて、メモリデバイス５０４に指示する機能を含み得る。
【００４４】
同様に、あらゆる関連したメモリデバイス（または、メモリモジュール）は、上記特徴の１つ以上をサポートするように構成され得る。例えば、メモリデバイス５０４は、ターンアラウンドイベントに先立って、空いている要求チャネルタイムスロットの確率を最大化するプロトコルに対するサポートを提供し得る。メモリデバイス５０４は、ドライバターンアラウンドウィンドウ中に受信する要求がなくとも高信頼動作を可能とする機能を含み得る。メモリデバイス５０４は、バッファリング／遅延させられる要求と、直ちに発行される要求とを区別する機能を含み得る。メモリデバイス５０４は、複数の要求を任意にバッファリングし、かつ、要求を発行する前にこれら要求を好適に遅延させる機能を含み得る。
【００４５】
本明細書の教示は、多様なメモリシステムアーキテクチャにおいて有利に利用することができる。例えば、いくつかの実施形態では、完全差動メモリアーキテクチャを採用し得る。このようなアーキテクチャは、例えば、差動コマンド／アドレス（Ｃ／Ａ）信号や差動データ（ＤＱ）信号を採用し得る。
【００４６】
いくつかの実施において、完全Ｃ／Ａチャネル（例えば、ＲＱバス）は、ＤＱ速度で動作する単一の差動リンク内に提供され得る。例えば、Ｃ／Ａ信号（例えば、要求信号）のシグナリング速度は、ＤＱ信号のシグナリング速度に匹敵する（例えば、等しい）ことがあり得る。そのような場合において、本明細書の教示は、そのような（非常に小さいタイミングまたは電圧マージンを有する）信号上のノイズを減少させるために、有利に採用することができる。さらに、単一のＣ／Ａは、チャネルごとに提供され得る。このようにすると、コントローラでのオーバヘッドを大幅に削減させることができる。さらに、Ｃ／ＡチャネルおよびＤＱチャネルに対し、同様の回路設計を採用し、それにより全体の設計を簡素化してもよい。いくつかの実施において、コントローラはＣ／Ａチャネルの送信位相を較正し得る。
【００４７】
要求パケットは、本明細書の教示に従い、種々の方法で実施可能である。たとえば、いくつかの実施形態では、１６ギガビット生成を介してアドレス可能性を提供し、１６ギガビット／秒で２ナノ秒のタイミング粒度を提供し、かつバンク／行／列アドレスビットの柔軟な割当てを提供する３２ビットの要求パケットを使用し得る。
【００４８】
本明細書における教示は、スケーラブルメモリアーキテクチャとともに採用してもよい。このようなスケーラビリティは、容量およびアクセス粒度に関連することがある。例えば、４つのＣ／Ａリンクを提供するコントローラは、４つ全てのＣ／Ａリンクを１つのメモリデバイスに（例えば、３２ビット幅のＤＱバスにより）提供するように、２つのＣ／Ａリンクを２つのメモリデバイスのそれぞれに（例えば、１６ビット幅のＤＱバスにより）提供するように、または１つのＣ／Ａリンクを４つのメモリデバイスのそれぞれに（例えば、８ビット幅のＤＱバスにより）提供するように、構成され得る。
【００４９】
いくつかの実施において、本明細書の教示は、ダイナミックポイントツーポイント（ＤＰＰ）メモリアーキテクチャとともに採用してもよい。このようなメモリアーキテクチャの一例は、米国特許出願公開公報第２００４／０２２１１０６号に開示されており、その開示は、参照することにより本明細書に組み込まれる。
【００５０】
いくつかの実施において、本明細書の教示は、同様のポイントツーポイントトポロジーおよびシグナリング速度を使用してＲＱ帯域幅をデータ（ＤＱ）帯域幅でスケーリングすることを可能にする一方、容量を一定のまたは低いアクセス粒度を維持する規定でスケーリングすることを可能とする設定変更可能なポイントツーポイントアーキテクチャとともに採用してもよい。このようなアーキテクチャの一例は、米国仮特許出願第６０／９８８８２６号、代理人整理番号ＲＡ６０８Ｐｒｏｖ１．ＵＳに記載されており、その開示は、参照することにより本明細書に組み込まれる。
【００５１】
本明細書の教示は、多様な形態で具体化することができ、それらの中には開示した実施形態とはかなり異なるように見えるものもあるかもしれない。したがって、本明細書に開示した特定の構造的および機能的な詳細は、単に代表的なものであり、本開示の範囲を限定するものではない。例えば、本明細書の教示に基づき、当業者には、種々の構造的および機能的な詳細が、他の構造的または機能的な詳細とは関係なく実施形態に組み込まれ得ることが理解されるべきである。したがって、開示されたあらゆる実施形態において記載したあらゆる数の構造的または機能的な詳細を使用して、装置を実施してもよいし、または方法を実行してもよい。また、開示されたあらゆる実施形態において記載した構造的または機能的な詳細に加えて、またはそれらの詳細以外に、他の構造的または機能的な詳細を使用して、装置を実施してもよいし、または方法を実行してもよい。
【００５２】
本明細書で教示したコントローラデバイス（例えば、コントローラの機能を組み込んだ集積回路）およびメモリデバイス（例えば、メモリコアを組みこんだ集積回路）は、多様な形態を取り得る。例えば、コントローラデバイスは、メモリコントローラチップ、コントローラの機能を含むプロセッサチップ、または他のいくつかの好適なデバイスを含んでもよい。いくつかの態様において、メモリデバイスは、集合的にメモリアレイを提供し得るか、またはメモリアレイの一部を提供し得る一組の記憶セルを含む半導体集積回路素子を含み得る。このようなメモリデバイスの例としては、揮発性メモリデバイス、不揮発性メモリデバイス、ＤＲＡＭ、ＳＲＡＭ、およびフラッシュメモリデバイスが挙げられる。
【００５３】
いくつかの実施において、本明細書に記載したメモリデバイスの機能はメモリモジュールのメモリバッファ要素において実施され得る。いくつかの態様において、メモリバッファは、メモリモジュールのメモリインタフェース接点とメモリモジュール上の各メモリデバイス用のシグナリング経路との間に結合される集積回路を含んでもよい。このようなメモリバッファの構造および機能の例は、米国特許出願公開番号第２００７／００７０６６９号に記載され、その開示は参照することにより本明細書に組み込む。
【００５４】
本明細書で教示されるメモリシステムは、多様な用途において使用可能である。例えば、このようなメモリシステムは、コンピュータグラフィックスカード、ビデオゲームのコンソール、プリンタ、パーソナルコンピュータ、サーバ、又はデータ記憶を利用する他のいくつかの装置に組み込まれ得る。
【００５５】
本明細書に記載した種々の構造および機能は、多様な方法で、かつ多様な装置を使用して実施され得る。例えば、プロセッサ、コントローラ、状態機械、論理、又はこれら要素の１つ以上といった、多様なハードウェア要素により実施され得る。
【００５６】
いくつかの実施形態では、指示を含むコード（例えば、ソフトフェア、ファームウェア、ミドルウェアなど）は、１つ上の処理デバイス上で実行され、１つ以上の記載された機能または構成要素を実施し得る。コードおよび関連した構成要素（例えば、コードによるまたはコードを実行するデータ構造および他の構成要素）は、処理デバイスにより読み取り可能な好適なデータメモリ（例えば、通常、コンピュータ読み取り可能媒体と呼ばれる）に記憶され得る。
【００５７】
本明細書に開示したプロセス中のブロックの記載順序は、単に好適なアプローチの一例である。したがって、そのようなブロックに関連した動作は、本開示の範囲内でその順序を入れ替えてもよい。同様に、添付の方法クレームは、一例の順序で動作を提示するものであり、提示された特定の順序に必ずしも限定されるものではない。
【００５８】
本明細書に記載した構成要素および機能は、多様な方法により接続または連結されてもよい。これが行われる態様は、ある程度は、構成要素がその他の構成要素から離れているか否か、およびどのように離れているかによって変化する。いくつかの実施形態では、図面中の引き出し線により表される接続または連結は、集積回路内あるいは回路基板上にあってもよく、または別個の配線またはその他の方法で実施されてもよい。
【００５９】
本明細書に記載した信号は、多様な形態を取り得る。例えば、いくつかの実施形態では、信号は配線を介して送信される電気信号、光ファイバのような光媒体または空気を介して送信される光パルス、または空気のような媒体を介して送信される高周波を含み得る。さらに、本明細書では、複数の信号をまとめて信号と呼ぶこともある。上述した信号は、データの形態を取ってもよい。例えば、いくつかの実施形態では、アプリケーションプログラムが他のアプリケーションプログラムに信号を送信することもある。そのような信号は、データメモリに記憶され得る。
【００６０】
また、「第１の」「第２の」などの呼称を使用した本明細書中の要素への参照は、いずれも、一般的にそれらの要素の量や順序を限定するものではないことを理解されたい。むしろ、これらの呼称は、２つ以上の要素または要素の２つ以上の例を区別するための便宜的な方法として本明細書において使用され得る。したがって、第１および第２の要素に対する参照は、２つのみの要素が採用可能であることや、第１の要素が第２の要素に所定の態様において先行しなければならないことを意味するものではない。また、特段の記載がない限り、一組の要素は１つ以上の要素を含み得る。
【００６１】
特定の実施形態の例を上記詳細に説明し、かつ添付の図面に示したが、そのような実施形態は、単に本明細書の例示的なものであり、本明細書の教示を制限するものではないことを理解されたい。特に、本明細書の教示は、多様な装置および方法に適用化可能であることを認識されたい。本明細書に教示した例示的な実施形態および他の実施形態に対し、本発明の広い範囲を逸脱することなく、多様な変形を加えてもよいことを認識されたい。上記を考慮して、本明細書の教示は、開示された特定の実施形態または構成に限定されず、むしろ、添付の請求の範囲内の変更、調節、または変形を包含することを意図したものであることが理解されるであろう。
【図２】
2011503753.tif 000003
【図１】
2011503753.tif 000004
【図３】
2011503753.tif 000005
【図４】
2011503753.tif 000006
【図５】
2011503753.tif 000007
【図６】
2011503753.tif 000008
【図７】
2011503753.tif 000009
【国際調査報告】
2011503753.tif 000010
2011503753.tif 000011