(57)【要約】【解決手段】ディジーチェーン型メモリトポロジに関する手法であって、該手法では、メモリモジュール(ＤＩＭＭ)からの応答の受信タイミングの予測に加えて、メモリコントローラは、それが送ったコマンドが、宛先のＤＩＭＭで何時実行されるかを効果的に予期できる。ＤＩＭＭのコマンド遅延ユニットにおけるＤＩＭＭ固有コマンド遅延をプログラミングすることで、本開示に基づくコマンド遅延バランシング手法は、メモリチャンネルにおける全てのＤＩＭＭに渡ってコマンド信号の実行を「規格化」又は「同期化」する。コマンドの実行タイミングを予測するこのような能力によって、メモリコントローラは、ディジーチェーン型チャンネル上の全てのＤＲＡＭデバイス(即ちメモリモジュール)の電力プロファイルを効率的に制御できる。また、ＤＩＭＭにおける個別のＤＩＭＭ固有応答遅延ユニットが、応答経路でＤＩＭＭ固有応答補償を与えるようにプログラムされて、さらに、メモリコントローラが、それによって先に送られたコマンドへの応答を受信するタイミングを正確に確かめることを可能とし、故に、応答のさらなる処理がより良く管理可能となる。【選択図】  図４
2008510257.tif 000002
【特許請求の範囲】
【請求項１】
対応する複数のメモリ要素を夫々含んだ複数のメモリモジュールを、ディジーチェーン型構成で連結する工程と、
前記複数のメモリモジュールの１つにてコマンドを受信する工程と、
前記ディジーチェーン型構成における１又は２以上のメモリモジュールに前記コマンドを伝搬させる工程と、
１又は複数のメモリモジュールの少なくとも１つを、そのメモリモジュールに含まれる１又は複数のメモリ要素に、そのメモリモジュールが受信した前記コマンドを送信することを、個別の所定の第１遅延が経過するまで遅延させるように構成する工程とを含む方法。
【請求項２】
さらに、前記複数のメモリモジュールの１つのみに、メモリコントローラを接続する工程をさらに含む、請求項１の方法。
【請求項３】
コマンドを受信する工程は、
前記メモリコントローラを、それに接続されたメモリモジュールに前記コマンドを送信するように構成する工程と、
前記メモリコントローラに接続されたメモリモジュールにて前記コマンドを受信する工程とを含む、請求項２の方法。
【請求項４】
構成する工程は、
前記複数のメモリモジュールの少なくとも１つについて、前記メモリコントローラへの物理的近さを決定する工程と、
前記メモリコントローラから送られた前記コマンドを、前記ディジーチェーン型構成において前記コマンドを最後に受信する前記複数のメモリモジュールの１つに伝搬させるコマンド遅延時間を決定する工程と、
前記物理的近さと、前記コマンド遅延時間と、前記複数のメモリモジュールにおけるメモリモジュールの総数とに基づいて、前記個別の所定の第１遅延を決定する工程と、
前記複数のメモリモジュールの前記少なくとも１つを、そのメモリモジュールに含まれる前記１又は複数のメモリ要素に前記コマンドを送信する前に、前記コマンドに前記個別の所定の第１遅延を与えるようにプログラミングする工程とを含む、請求項２の方法。
【請求項５】
前記複数のメモリモジュールの前記少なくとも１つを、そのメモリモジュールで受信された前記コマンドに対する応答を生成するように構成する工程と、
前記複数のメモリモジュールの前記少なくとも１つを、個別の所定の第２遅延が経過するまで、前記応答の送信を遅延させるようにさらに構成する工程とを含む、請求項２に記載の方法。
【請求項６】
さらに構成する工程は、
前記複数のメモリモジュールの前記少なくとも１つについて、前記メモリコントローラへの物理的近さを決定する工程と、
前記メモリコントローラへの最後の応答を伝搬するのに必要な応答遅延時間を決定する工程であって、前記最後の応答は、前記コマンドへの応答であり、前記ディジーチェーン型構成において前記コマンドを最後に受信する前記複数のメモリモジュールの１つで生成される工程と、
前記物理的近さと、前記応答遅延時間と、前記複数のメモリモジュールにおけるメモリモジュールの総数とに基づいて、前記個別の所定の第２遅延を決定する工程と、
前記複数のメモリモジュールの前記少なくとも１つを、前記メモリコントローラに前記応答を送信する前に、前記個別の所定の第２遅延を前記応答に与えるように、プログラミングする工程とを含む、請求項５の方法。
【請求項７】
複数の電子デバイスをディジーチェーン型構成で連結する工程と、
前記複数の電子デバイスの第１電子デバイスにてコマンドを受信する工程と、
前記ディジーチェーン型構成における残りの電子デバイスに前記コマンドを伝搬させる工程と、
前記複数の電子デバイスにおける各電子デバイスを、前記コマンドを実行して前記コマンドに対応する応答を生成することを、個別の所定の第１遅延が経過するまで遅延させるように構成する工程とを含む方法。
【請求項８】
前記伝搬したコマンドを最後に受信する電子デバイスについて、前記個別の所定の第１遅延はゼロである、請求項７の方法。
【請求項９】
前記第１電子デバイスにコントローラを接続する工程と、
前記第１電子デバイスに前記コマンドを送信するように前記コントローラを構成する工程とを更に含んでおり、
受信する工程は、前記コントローラによって送信された前記コマンドを、それに接続された前記第１電子デバイスにて受信する工程を含む、請求項７の方法。
【請求項１０】
各電子デバイスを構成する工程は、
前記各電子デバイスについて、前記コントローラへの物理的近さを決定する工程と、
前記コントローラから送られた前記コマンドを、前記ディジーチェーン型構成において前記コマンドを最後に受信する電子デバイスに伝搬させるコマンド遅延時間を決定する工程と、
前記物理的近さと、前記コマンド遅延時間と、前記複数の電子デバイスにおける電子デバイスの総数とに基づいて、前記各電子デバイスについて前記個別の所定の第１遅延を決定する工程と、
前記各電子デバイスを、前記個別の所定の第１遅延が経過するまで前記コマンドの処理を遅延させるようにプログラミングする工程とを含む、請求項９の方法。
【請求項１１】
前記各電子デバイスを、個別の所定の第２遅延が経過するまで、前記対応する応答の送信を遅延させるようにさらに構成する工程とを含む、請求項９に記載の方法
【請求項１２】
前記各電子デバイスをさらに構成する工程は、
前記各電子デバイスについて、前記コントローラへの物理的近さを決定する工程と、
前記ディジーチェーン型構成において前記コマンドを最後に受信する前記電子デバイスから前記コントローラに、前記対応する応答を伝搬させるのに要する応答遅延時間を決定する工程と、
前記物理的近さと、前記応答遅延時間と、前記複数の電子デバイスにおける電子デバイスの総数とに基づいて、前記個別の所定の第２遅延を決定する工程と、
前記各電子デバイスを、前記対応する応答を前記コントローラに送信する前に、前記個別の所定の第２遅延を前記対応する応答に与えるように、プログラミングする工程とを含む、請求項１１の方法。
【請求項１３】
前記伝搬したコマンドを最後に受信する電子デバイスについて、前記個別の所定の第２遅延はゼロである、請求項１１の方法。
【請求項１４】
コマンドを生成及び送信するように構成されたメモリコントローラと、
シリアル構成で互いに接続された複数のメモリモジュールとを備える組合せであって、
前記複数のメモリモジュールの１つのみが、前記メモリコントローラに接続されて、各メモリモジュールは、対応する複数のメモリ要素を含んでおり、
前記メモリコントローラに接続されたメモリモジュールは、前記メモリコントローラから前記コマンドを受信して、前記シリアル構成のその他のメモリモジュールに前記コマンドを伝搬させるように構成されており、前記複数のメモリモジュールの少なくとも１つは、個別の所定の第１遅延が経過するまで、そのメモリモジュールに含まれる１又は複数のメモリ要素に、そのメモリモジュールが受信した前記コマンドを送信することを遅延させるように構成されている組合せ。
【請求項１５】
前記個別の所定の第１遅延は、前記メモリコントローラに対する前記複数のメモリモジュールの前記少なくとも１つの物理的近さと、前記シリアル構成において前記コマンドを最後に受信する前記複数のメモリモジュールの１つに、前記メモリコントローラから前記コマンドを伝搬するのに要するコマンド遅延時間と、前記複数のメモリモジュールにおけるメモリモジュールの総数とに基づいて決定される、請求項１４の組合せ。
【請求項１６】
前記個別の所定の第１遅延は、前記複数のメモリモジュールの前記少なくとも１つに格納される、請求項１４の組合せ。
【請求項１７】
前記シリアル構成における前記伝搬したコマンドを最後に受信する電子デバイスについて、前記個別の所定の第１遅延はゼロである、請求項１４の組合せ。
【請求項１８】
前記複数のメモリモジュールの前記少なくとも１つは、そのメモリモジュールで受信した前記コマンドに対する応答を生成し、個別の所定の第２遅延が経過するまで、前記メモリコントローラへの前記応答の送信を遅延させるように構成されている、請求項１４の組合せ。
【請求項１９】
前記個別の所定の第２遅延は、前記メモリコントローラに対する前記複数のメモリモジュールの前記少なくとも１つの物理的近さと、前記シリアル構成において前記コマンドを最後に受信する前記複数のメモリモジュールの１つから前記メモリコントローラに、前記コマンドに対応する応答を伝搬するのに要する応答遅延時間と、前記複数のメモリモジュールにおけるメモリモジュールの総数とに基づいて決定される、請求項１８の組合せ。
【請求項２０】
前記個別の所定の第２遅延は、前記複数のメモリモジュールの前記少なくとも１つに格納される、請求項１８の組合せ。
【請求項２１】
前記シリアル構成における前記伝搬したコマンドを最後に受信する電子デバイスについて、前記個別の所定の第２遅延はゼロである、請求項１８の組合せ。
【請求項２２】
前記シリアル構成はディジーチェーン型構成である、請求項１４の組合せ。
【請求項２３】
プロセッサと、
バスと、
前記バスを介して前記プロセッサに接続されており、コマンドを生成及び送信するコントローラと、
ディジーチェーン型構成で互いに接続された複数の電子デバイスとを備えるシステムであって、
前記複数の電子デバイスの１つのみが前記コントローラに接続され、前記複数の電子デバイスの各々は、前記ディジーチェーン型構成用の信号転送機構を用いて前記コントローラと通信し、
前記コントローラに接続された電子デバイスは、前記コントローラから前記コマンドを受信して、前記ディジーチェーン型構成のその他の電子デバイスに前記コマンドを伝搬させるように構成されており、
前記複数の電子デバイスの各電子デバイスは、個別の所定の第１遅延が経過するまで、前記コマンドを実行して前記コマンドに対応する応答を生成することを遅延させるように構成されているシステム。
【請求項２４】
各電子デバイスについて、前記個別の所定の第１遅延は、前記コントローラに対する前記各電子デバイスの物理的近さと、前記ディジーチェーン型構成において前記コマンドを最後に受信する前記複数の電子デバイスに、前記コントローラから前記コマンドを伝搬させるのに要するコマンド遅延時間と、前記複数の電子デバイスにおける電子デバイスの総数とに基づいて決定される、請求項２３のシステム。
【請求項２５】
前記個別の所定の第１遅延は、前記各電子デバイスに格納される、請求項２３のシステム。
【請求項２６】
前記伝搬したコマンドを最後に受信する電子デバイスについて、前記個別の所定の第１遅延はゼロである、請求項２３のシステム。
【請求項２７】
前記各電子デバイスは、個別の所定の第２遅延が経過するまで、前記対応する応答の前記コントローラへの送信を遅延させるように構成されており、
前記個別の所定の第２遅延は、前記コントローラに対する前記各電子デバイスの物理的近さと、前記ディジーチェーン型構成において前記コマンドを最後に受信する電子デバイスから前記コントローラに、前記対応する応答を伝搬させるのに要する応答遅延時間と、前記複数の電子デバイスにおける電子デバイスの総数とに基づいて決定される、請求項２３のシステム。
【請求項２８】
前記個別の所定の第２遅延は、前記各電子デバイスに格納される、請求項２７のシステム。
【請求項２９】
前記伝搬したコマンドを最後に受信する電子デバイスについて、前記個別の所定の第２遅延はゼロである、請求項２７のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、概してメモリシステムに関しており、より詳細には、ディジーチェーン配置された(daisy-chained)メモリデバイスのコマンド遅延バランシング(balancing)に関する。
【背景技術】
【０００２】
メモリデバイスは、データを格納するために、多くの電子製品及びコンピュータに広く使用されている。メモリデバイスは半導体電子デバイスであって、多数のメモリチップを含んでおり、各チップは、全データの一部を格納する。チップ自体は、多数のメモリセルを含んでおり、各セルは、１ビットのデータを格納する。メモリチップは、ＤＩＭＭ(dual in-line memory module)又はＰＣＢ(printed circuit board)の一部とされて、ＤＩＭＭ及びＰＣＢは、このようなメモリチップを数多く含んでよい。以下の説明では、用語「メモリデバイス」、「メモリモジュール」及び「ＤＩＭＭ」は、同義的に使用される。プロセッサ又はメモリコントローラは、システムのメモリデバイスと通信して、読出/書込動作及びテスト動作をメモリに実行させてよい。図１は、従来技術の配置(10)を示しており、パラレルメモリバス(30)(「スタブバス」として知られている)に渡って、メモリコントローラ(11)と複数のメモリデバイス(ＤＩＭＭ)(12)(18)(24)との間で、信号がやり取りされている。説明及び図示の簡略化のために、全Ｎ個のメモリデバイスのうち、３個のメモリデバイス(ＤＩＭＭ ０(12)、ＤＩＭＭ １(18)、ＤＩＭＭ Ｎ−１(24))のみが示されている。Ｎ個のメモリデバイスは、メモリコントローラ(11)と通信することで制御される。さらに説明の簡略化のために、図１では、各ＤＩＭＭが、同じＮ個のＤＲＡＭ(Dynamic Random Access Memory)メモリチップを含んでいる。例えば、メモリモジュール(12)は、Ｎ個のＤＲＡＭチップ(16)を有するＤＲＡＭメモリバンク(14)を含んでおり、メモリモジュール(18)は、Ｎ個のＤＲＡＭチップ(22)を有するＤＲＡＭメモリバンク(20)を含んでいる。その他のメモリモジュールも同様である。しかしながら、図１に示す各ＤＩＭＭは、異なる数のメモリチップ又はＤＩＭＭを含んでよいことは明らかである。以下、用語「ＤＲＡＭチップ」、「データ蓄積・取出要素(data storage and retrieval element)」及び「メモリ要素」は、同義的に使用される。
【０００３】
各メモリチップ(16)(22)(28)は、チップの外側に配置された複数のピン(図示せす)を含んでよく、それらピンは、チップが置かれるＤＩＭＭを通じて、その他のシステムデバイスにチップを電気的に接続する。それらピン(図示せず)の幾つかは、メモリアドレスピン即ちアドレスバスを、又は、コントロールピン即ちコントロールバスを構成してよい。メモリチップ(例えば、あるチップ(16))の構成の更なる詳細は関係ないので、ここでは示されていない。当該技術分野における通常の知識を有する者は、図１のメモリチップ(16)(22)(28)は、典型的なメモリチップの特徴の全てを詳細に図示することを意図していないことを容易に理解するであろう。例によって、様々な周辺デバイス又は回路(図示せず)が対応するメモリチップと共にＤＩＭＭに与えられて、それらチップのメモリセル(図示せず)にデータが書き込まれ、メモリセルからデータが読み出されてもよい。更に、説明の簡単化のみのために、ＤＩＭＭ(例えば、ＤＩＭＭ(12)(18)(24))の構造的な詳細も、図１には示されていない。実際には、各ＤＩＭＭは、適当なＤＩＭＭコネクタ(図示せず)を介してパラレルバス(30)と接続されて、ＤＩＭＭとコントローラ(11)の間で信号が流れる。
【０００４】
図１のパラレルバスの実装(10)において、メモリコントローラ(11)は、パラレルバス(30)のアドレス/コントロールバス部(図示せず)に渡って、アドレス信号及び/又はコントロール信号を送り、パラレルバス(30)のデータバス部(図示せず)に渡って、ＤＩＭＭとデータを送受する。パラレルバス(30)は、(双方向の)データラインに加えて、(一方向の)アドレスライン及びコントロールラインを含む信号転送バスであり、それらラインの幾つか又は全ては、システムの各ＤＩＭＭに接続されて、メモリコントローラ(11)とＤＩＭＭ(12)(18)(24)の各々との間でデータ転送動作(即ち、データの送信動作及び受信動作)を実行するのに使用される。メモリコントローラ(11)は、メモリモジュール(即ち、ＤＩＭＭ)の動作モードを決定してもよい。メモリコントローラ(11)から送られるコントロール信号の幾つか(図示せず)には、チップセレクト(ＣＳ_Ｎ)信号、ローアドレスセレクト(ＲＡＳ_Ｎ)信号、カラムアドレスセレクト(ＣＡＳ_Ｎ)信号、ライトイネーブル(ＷＥ_Ｎ)信号、ロー/カラムアドレス(Ａ)、データマスク(ＤＭ)信号、ターミネーションコントロール(ＯＤＴ_Ｎ)信号、及び、シングルエンド(single-ended)又はディファレンシャルなデータストローブの組(ＲＤＱＳ/ＲＤＱＳ#/ＤＱＳ/ＤＱＳ#)などがある。これらコントロール信号は、コントロールライン、つまり、パラレルバス(30)のコントロールバス(図示せず)の部分に送られて、適切なメモリチップ(ＤＲＡＭ)の選択されたメモリセルで、データ転送動作が実行される。アドレス、データ及びコントロールバスの「幅」(即ち、ラインの数)は、メモリ構成によって異なってよい。
【０００５】
図１のパラレルバス構成(10)では、各メモリモジュール(12)(18)(24)は、パラレルバス(30)を介して、メモリコントローラ(11)に直接接続されている。言い換えると、メモリコントローラ(11)は、各メモリモジュール(ＤＩＭＭ)にパラレルに接続されている。故に、コントローラ(11)からのどの信号出力も、各メモリモジュールにパラレルに届く。このような配置は、実施し易く「広い」メモリバスを与えるが、払うべきペナルティは、信号がバス(30)上を伝送する速度の制限である。パラレルバス(3)の現在の実施形態では、信号速度の上限は、８００ＭＨｚである。さらに、パラレルバス構成では、最も遅いＤＩＭＭで起こる任意の遅延が、データ転送動作における全体的な遅延を支配する。メモリのデータ転送動作の信号速度をＧＨｚ領域に増加して、現在の高速なメモリチップ及びコントローラの処理能力を利用するためには、パラレルバス構成は適していないかも知れない。
【０００６】
図２は、代わりとなる新たな構成(32)を示しており、メモリモジュール(ＤＩＭＭ)(34)(40)(44)は、ディジーチェーン型構成でメモリコントローラ(33)に接続されている。前と同様に、(全Ｎ個のモジュールから)３個のメモリモジュールのみが、説明の簡単化のために図２に示されている。また、明瞭化のために、図２では、メモリモジュール用のコネクタ(ＤＩＭＭコネクタ)は、対応するメモリモジュールと同じ参照符号で特定されている。図１の実施例と同様に、図２の各ＤＩＭＭは、対応するＤＲＡＭメモリバンクを含んでおり、複数のメモリチップ即ちＤＲＡＭチップがメモリバンク中にある。例えば、ＤＩＭＭ ０(34)は、Ｎ個のＤＲＡＭチップ(38)を有するメモリバンク(36)を含んでいる。明瞭化のために、図２では、その他のメモリバンク(例えば、メモリバンク(42)(46))について、対応するメモリチップは示されていない。
【０００７】
図２のディジーチェーン型構成(32)では、各ＤＩＭＭコネクタ(34)(40)(44)は、一対の「ダウンリンク」端子と、一対の「アップリンク」端子とを有している。ダウンリンク端子の各対は、ダウンリンク−イン端子(ＤＬ＿Ｉｎ)及びダウンリンク−アウト端子(ＤＬ＿Ｏｕｔ)を含んでいる。同様に、アップリンク端子の各対は、アップリンク−イン端子(ＵＬ＿Ｉｎ)及びアップリンク−アウト端子(ＵＬ＿Ｏｕｔ)を含んでいる。ディジーチェーン型構成(32)は、図１のパラレル機構と異なり、シリアル信号伝送機構である。故に、メモリモジュールが、(構成(32)のダウンリンク端子(48A-48C)の全てを含む)ダウンリンクチャンネルでメモリコントローラ(33)からの信号を受信する一方で、メモリコントローラ(33)への信号は、(構成(32)のアップリンク端子(50A-50C)の全てを含む)アップリンクチャンネルに送信される。信号は、信号の「ホップ」を通じて、あるメモリモジュールから別のメモリモジュールにシリアルに伝搬する。故に、例えば、メモリコントローラ(33)からＤＩＭＭ(34)(40)(44)の全てへのコマンドプロードキャストは、ＤＩＭＭ ０(34)のＤＬ＿Ｉｎ端子(48A)で最初に受信され、次に、そのコマンドは、ＤＬ＿Ｏｕｔ端子(48B)を介して、ＤＩＭＭ １(40)に転送される。ＤＬ＿Ｏｕｔ端子(48B)は、ＤＩＭＭ(40)のＤＬ＿Ｉｎ端子に接続されている。これで１回のコマンド「ホップ」が完了する。２回目のコマンド「ホップ」の後、メモリコントローラ(33)からのコマンドは、メモリモジュール(40)のＤＬ＿Ｏｕｔ端子(48C)に現れる。故に、全Ｎ−１回の「ホップ」で、コマンドは、(ディジーチェーン型構成(32)でメモリコントローラ(33)に接続された全てのメモリモジュールからなる)メモリチャンネルにおける最後の、即ち最も遠いＤＩＭＭ(ここでは、ＤＩＭＭ(44))に到達する。同様に、コマンドに対して、最後の即ち最も遠いＤＩＭＭから送られる応答がメモリコントローラ(33)に達するのに、Ｎ−１回の「ホップ」が必要とされる。ここで、用語「コマンド」は、本明細書にて、(例えば、データ書込動作の間、又は、メモリモジュールテスト動作の間に)メモリコントローラ(33)からシステム(32)の１又は２以上のＤＩＭＭに送信されるアドレス信号、データ信号及び/又はコントロール信号を意味することに留意のこと。一方、用語「応答」は、本明細書にて、メモリコントローラ(33)から受信したコマンドに応じて、(例えば、データ書込動作の間、又は、メモリモジュールテスト動作の間に)メモリコントローラ(33)に送られ、ＤＩＭＭで生成されるデータ又はステータス信号を意味する。
【０００８】
図２から分かるように、ディジーチェーン型メモリ構成では、メモリコントローラ(33)は、図１のパラレルバス構成では全てのメモリモジュールに接続されているのに対して、１個のＤＩＭＭモジュール(即ち、図２のメモリモジュール(34))のみと直接接続されている。故に、ディジーチェーン型構成の不利益の一つは、メモリモジュールの１つでの不具合又は異常が、メモリコントローラ(33)からのコマンドのさらなる「ダウンストリーム」伝搬を妨げる可能性があることである。しかしながら、この不利益にも拘わらず、ディジーチェーン型構成(32)は、例えば、(数ＧＨｚ帯での)非常に高速な信号伝搬や、個々のＤＩＭＭのデータ転送動作のより良い制御などの大きな利益を提供する。故に、ディジーチェーン型構成(32)の信号伝達を、パラレル構成(10)の信号伝達よりも非常に速くできる。上述したように、ディジーチェーン型構成の各ＤＩＭＭは、次のＤＩＭＭ−(ＤＬ＿Ｏｕｔ端子に接続された)ダウンストリーム又は(ＵＬ＿Ｏｕｔ端子に接続された)アップストリームのために、信号の「リピータ」として機能する。ダウンリンクチャンネル及びアップリンクチャンネルは、非常に高速で、幅が狭く、一方向の(一方通行の)信号バスであり、(メモリコントローラ(33)からのメモリアドレス、データ、及び/又はコントロール情報を含む)エンコードされた信号パケットを運び、それら信号パケットは、受信側のＤＩＭＭでデコードされる。ダウンリンクチャンネルが、ある方向に信号を運ぶ一方で、アップリンクチャンネルが、異なる信号を反対方向に運ぶ。図２のディジーチェーン型構成(32)では、メモリコントローラ(33)からメモリチャンネル内の全てのＤＩＭＭにブロードキャストされる信号であるか否か、又は、メモリチャンネル内の１つのＤＩＭＭ宛の信号であるか否かに拘わらず、信号は、「ホップ」を通じて進むことは明らかである。即ち、メモリコントローラ(33)からの如何なる信号も、介在する１又は２以上のＤＩＭＭが関与する１又は２回以上のホップを通じて、所望/宛先のＤＩＭＭに伝搬する。
【０００９】
ここで、用語「ディジーチェーン型構成」は、本明細書にて、高速のシリアルバス構成を意味しており、より詳細には、一方向の信号転送リンクを用いており、コントローラ(例えば、図２のメモリコントローラ(33))を伴っており、複数の電子デバイス(例えば、図２のメモリモジュール(34)(40)(44))を連結するシリアルバス構成を意味する。ここで、コントローラから出た信号を運ぶリンク又は端子(ダウンリンク)の組は、信号をコントローラに運ぶリンク(アップリンク)の組と異なっている。
【００１０】
上述の議論から、図２のディジーチェーン型構成(33)では、信号は、宛先のＤＩＭＭ又はメモリコントローラ(33)に到達する前に、様々な量の遅延を受けることが分かる。例えば、ＤＩＭＭ(44)は、特定の遅延が経過した後に、メモリコントローラ(33)から送信された信号を受信する。ここで、遅延は、信号がＤＩＭＭ(44)に到達するまでに必要なＮ−１回のホップで費やされる時間を含むだろう。一方、ＤＩＭＭ(40)の場合、(ＤＩＭＭ(34)を通って)ＤＩＭＭ(40)に至る１回のホップを終えるのに要する時間のみ遅延するだろう。ＤＩＭＭで生成された応答の場合、応答がメモリコントローラ(33)に到達する遅延も、メモリチャンネルの「深さ」に応じて変化する。例えば、ＤＩＭＭ ０(34)で生じた応答は、如何なる「ホップ」もなくメモリコントローラに達し得る一方で、ＤＩＭＭ(44)からの応答には、メモリコントローラ(33)に到達する前にＮ−１回のホップを介する必要がある。故に、遅延量は、メモリコントローラ(33)へのメモリモジュール(34)(40)(44)の物理的な近さにより線形的に変化する(即ち、メモリモジュールが遠くなるにつれて、遅延が大きくなる)。また、遅延量は、メモリチャンネルのメモリモジュールの総数により線形的に変化する(即ち、ディジーチェーン型構成においてコントローラ(33)にシリアルに接続されたメモリモジュールの数が多くなると、より遠いモジュールについてより遅延が大きくなる)。
【００１１】
上述の議論から、図２のディジーチェーン型構成(33)では、メモリコントローラ(33)からのコマンドは、「ホップ」による内在したコマンド伝搬遅延により、異なる時間に異なるＤＩＭＭで処理されることが分かる。同様に、異なるＤＩＭＭからの応答は、やはり「ホップ」による遅延により、コントローラ(33)に異なる時間に到着する。図２の実施例では、システム(32)の任意のＤＩＭＭからの応答が、同じ時間でメモリコントローラ(33)に到達することを保証するためには、コマンドの遅延、つまりコマンドの伝搬遅延(即ち、メモリコントローラ(33)からのコマンド又は信号が、最も遠いＤＩＭＭ(44)に到達するのに要する総遅延)が、応答の遅延、即ち応答の伝搬遅延と共に考慮されなくならない。この効果は、「遅延レベライゼーション(delay levelization)」と称されている。つまり、メモリコントローラ(33)は、システム(32)の種々のＤＩＭＭから応答を受信するのに、様々な値の時間を待つ必要はない。代わりに、予め定められた一定の時間遅延が、メモリコントローラ(33)が、システム(32)の任意のＤＩＭＭからの返答を予期して待つのに必要とされる全てである。故に、メモリコントローラの視点からは、メモリチャンネルの深さ、又は、メモリコントローラ(33)へのＤＩＭＭの物理的近さに拘わらず、コマンド送信と応答の受信との間に、一定で単一の遅延が存在する。この特徴は、図１のパラレルバス構成の遅れと原理的に似ている。先述したように、図１の場合、最も遅いＤＩＭＭの遅延は、コマンドと、システム(10)のＤＩＭＭからの応答の受信との間においてコントローラ(11)が経験する遅れを支配する。図２のディジーチェーン型構成(33)の場合、コントローラ(33)は、各ＤＩＭＭについてケースバイケースで遅れを決定することから解放されることが同様に望ましい。代わりに、遅延は、コントローラ(33)が任意のＤＩＭＭ(34)(40)(44)から同じ時間に応答を受信(又は「予期(expect)」)するように、「レベライズされて(levelized)」もよい。
【００１２】
図３は、図２のディジーチェーン型メモリチャンネルにおける遅延レベライゼーション(delay levelization)を実現するための従来手法を示している。図３では、遅延レベライゼーションを実現するための構造的な詳細が、図２に示すシステム(32)のＤＩＭＭの１つのみ(即ち、ＤＩＭＭ １(40))について示されている。しかしながら、同様な構成が、ＤＩＭＭ(34)(40)(44)の各々について与えられてよいことは明らかである。図３のＤＩＭＭ(40)は、ＤＩＭＭ固有応答遅延ユニット(52)を含んでおり、それは、プログラマブルな遅延を格納できる。遅延ユニット(52)でプログラムされる遅延量は、主に３つの因子に依存している。(1)メモリコントローラ(33)へのＤＩＭＭ(40)の物理的な近さ、(2)ディジーチェーン型構成(32)におけるＤＩＭＭの総数、(3)システムにおける最も遠いＤＩＭＭ(例えば、図２のＤＩＭＭ(44))へのコマンド伝搬遅延と、最も遠いＤＩＭＭからメモリコントローラ(33)への応答伝搬遅延。例えば、簡単化と図示のために、図２のシステム(32)には３個のみのＤＩＭＭ(ＤＩＭＭ(34)(40)(44))があって、システム(32)における各ＤＩＭＭでのコマンド伝搬及び応答伝搬の各々について、(以下で議論するように、最も遠いＤＩＭＭ(44)を除いて)１クロックサイクルの「ホップに関する」遅延があると仮定する。即ち、ダウンリンクチャンネルに渡って、コマンド信号が次のダウンストリームのＤＩＭＭに伝搬するのに、１クロックサイクルの遅延があり、アップリンクチャンネルに渡って、応答が次のアップストリームのＤＩＭＭに伝搬するのに、１クロックサイクルの遅延があると仮定される。つまり、アップリンクチャンネルとダウンリンクチャンネルとで、遅延は対称である。この場合において、ＤＲＡＭメモリバンク(42)による非常に小さい(コマンドを処理し、応答を生成するための)信号処理遅延は無視されて、図３の遅延ユニット(52)は、メモリコントローラ(33)からのコマンドに対してメモリバンク(42)のメモリチップで生成される応答(読み出されるデータを含んでよい)の送信を適切に遅延させるように、プログラムされる。
【００１３】
この例では、遅延ユニット(52)でプログラムされる遅延量は、[Ｔ＊(Ｎ−１)/Ｐ]クロックサイクルに等しく、ここで、「Ｔ」は、(以下で議論するように、最も遠いＤＩＭＭ(44)を除く)ＤＩＭＭでの「ホップに関する」総クロックサイクル遅延であって、ディジーチェーンにおいて、コマンドを次の「ダウンストリーム」ＤＩＭＭに、応答を次の「アップストリーム」ＤＩＭＭに伝搬する遅延を含んでいる(この例では、Ｔ＝２)。「Ｎ」は、システムのＤＩＭＭの総数であり(ここでは、Ｎ＝３)、「Ｐ」は、メモリコントローラ(33)へのＤＩＭＭの物理的近さである(例えば、最初即ち最も近いＤＩＭＭ(34)については、Ｐ＝１、２番目のＤＩＭＭ(34)については、Ｐ＝２、以下同様)。それ故、ＤＩＭＭ １(40)の場合、ユニット(52)にプログラムされる遅延の値は２クロックサイクルに等しく、一方で、ＤＩＭＭ ０(34)に対応する遅延ユニット(図示せず)に格納される遅延の値は、４クロックサイクルになる。最も遠いＤＩＭＭ(即ち、図２のＤＩＭＭ(44))の場合、それについてはＴ＝０となるので、プログラマブルな遅延の値はゼロになる。
【００１４】
以上から、図２及び図３について議論されたレベライゼーションによって、メモリコントローラ(33)は、ディジーチェーン型構成(32)の任意のメモリモジュールからの応答を、同じ時間に受信できることが理解される。システム(32)の各ＤＩＭＭにおける適切な遅延を用いて、ディジーチェーンにおける最も遠いＤＩＭＭに向けて又はこのＤＩＭＭから、コマンド信号及び応答信号が伝搬するのに費やされる時間を補償することで、メモリコントローラ(33)は、コントローラ(33)に対するＤＩＭＭの物理的近さに拘わらず、各ＤＩＭＭからの応答を同じ時間に受信する。即ち、コマンドが１個のＤＩＭＭに送られようが、システム内の全てのＤＩＭＭにブロードキャストされようが、ダウンリンクチャンネルを通るコマンドのコントローラ(33)による送信から一定の遅延が経過した後に、コントローラ(33)は、応答を「予期」及び受信する。例えば、時刻「ｔ」にコマンドが送信される場合、その後、先の例だと、メモリコントローラ(33)は、コマンドがＤＩＭＭ ０(34)又はＤＩＭＭ Ｎ−１(44)に送られようと、「ｔ」後の４クロックサイクルにて応答を受信する。
【００１５】
図３の実施例を参照すると、図３には破線が描かれており、ＤＩＭＭ(40)内で信号が如何に伝搬するかを示している。故に、例えば、ＤＬ＿Ｉｎ端子(48B)に現れるコマンド信号は、ＤＬ＿Ｉｎ端子(48C)に直接伝搬して、ダウンストリームの次のＤＩＭＭに送られる。そのコマンド信号はまた、ＤＲＡＭメモリバンク(42)に送られて処理される(例えば、メモリセルへのデータの書込み)。一方で、隣接する(「アップストリームの」)ＤＩＭＭから送られて、ＵＬ＿Ｉｎ端子(50C)に現れる応答信号は、同様にしてＵＬ＿Ｏｕｔ端子(50B)に直接送られる。ＤＩＭＭ(40)は、(上述したように遅延ユニット(52)で適切に遅延された)それ自身の応答を、ＵＬ＿Ｉｎ端子(50C)で受信した信号に加えて、その応答を先のＤＩＭＭの応答と共に、アップリンクチャンネルの次のＤＩＭＭに送ってもよい。
【００１６】
ＤＩＭＭからメモリコントローラ(33)への応答の供給が、合理化又は「平均化(normalizing)」されるにも拘わらず、図３の実施例では、メモリコントローラ(33)は、特定のＤＩＭＭによってコマンドが実行される時を予測することができないままである。特に幾つかのＤＲＡＭ動作において、メモリコントローラ(33)が、宛先のＤＩＭＭによるコマンドの実行を予測して、メモリコントローラ(33)がより正確に及び/又はより容易に、メモリシステムの電力消費(又は電力プロファイル)を制御できることが望ましい。例えば、「リフレッシュ」動作のような幾つかのＤＲＡＭ動作は、大量の電力を消費し得る。図３の実施例では、メモリコントローラ(33)は、 ＤＩＭＭ固有リフレッシュコマンドを長時間展開して、出されている非常に多くのシステム電力を低減することを試みる。つまり、２又は３個以上のＤＩＭＭが同時に、それらに対応するリフレッシュコマンドを実行する場合に、電力消費の急な上昇を避けようとする。故に、３個のＤＩＭＭ(例えば、ＤＩＭＭ(34)(40)(44))のみの場合、メモリコントローラ(33)は、最初のクロックサイクルにて最も遠いＤＩＭＭ(44)にリフレッシュコマンドを送り、２回目のクロックサイクルにて真ん中のＤＩＭＭ(40)に２番目のリフレッシュコマンドを送り、３回目のクロックサイクルにて最も近いＤＩＭＭ(34)に３番目のリフレッシュコマンドを送る。しかしながら、リフレッシュコマンドのこのような展開にも拘わらず、ＤＩＭＭ(40)(44)が、結局同じ時間にリフレッシュコマンドを実行することが起こり得るが、これは好ましくないだろう。また、リフレッシュコマンドのこのような同時処理を許容されても、受信したＤＩＭＭでコマンドが処理される時を、メモリコントローラが「知っている」のが好ましい。
【００１７】
故に、ＤＩＭＭからの応答を受信するタイミングを予測することに加えて、送ったコマンドが宛先のＤＩＭＭによって実行される時間を、メモリコントローラが効果的に予測できるシステムを考え出すことが望まれている。コマンドの実行タイミングを予測するこのような能力によって、メモリコントローラは、ディジーチェーン型メモリチャンネルの全てのＤＲＡＭデバイス(又はメモリモジュール)の電力プロファイルを効率的に制御できる。
【発明の開示】
【００１８】
ある実施例では、本開示は、各々のメモリモジュールが対応する複数のメモリ要素を有する複数のメモリモジュールを、ディジーチェーン型構成で連結する工程と、複数のメモリモジュールの１つでコマンドを受信する工程と、ディジーチェーン型構成の１又は２以上のメモリモジュールにそのコマンドを伝搬させる工程と、複数のメモリモジュールの少なくとも１つを、そのモジュールに含まれる１又は２以上のメモリ要素にそのモジュールが受信したコマンドを送信することを、個別の所定の遅延が経過するまで遅延させるように構成する工程とを含む方法を検討する。
【００１９】
別の実施例では、本開示は、複数の電子デバイスをディジーチェーン型構成で連結するする工程と、複数の電子デバイスの中のある電子デバイスでコマンドを受信する工程と、ディジーチェーン型構成の残りの電子デバイスにそのコマンドを伝搬させる工程と、複数の電子デバイスの中の各電子デバイスを、そのコマンドを実行して対応する応答を生成することを、個別の所定の遅延が経過するまで遅延させるように構成する工程とを含む方法を検討する。
【００２０】
代わりの実施例では、本開示は、シリアル構成の複数のメモリモジュールに接続されたメモリコントローラを含む組合せであって、複数のメモリモジュールの少なくとも１つは、そのメモリモジュールに含まれる１又は２以上のメモリ要素にそのメモリモジュールが受信したコマンドを送信することを、個別の所定の遅延が経過するまで遅延させるように構成されている組合せを検討する。更なる実施例では、本開示はシステムを検討し、該システムは、プロセッサと、バスと、バスを介してプロセッサに接続されると共に、ディジーチェーン型構成の複数の電子デバイスに接続されたコントローラと、各電子デバイスが、コントローラから受信したコマンドを実行して、コマンドに対応する応答を生成することを、個別の所定の遅延が経過するまで遅延させるように構成された複数の電子デバイスとを含んでいる。
【００２１】
本開示は、ディジーチェーン型メモリトポロジの手法を説明しており、該手法では、メモリモジュール(ＤＩＭＭ)からの応答を受信するタイミングを予測することに加えて、メモリコントローラは、それが送ったコマンドが宛先のＤＩＭＭで実行される時間を効果的に予測できる。ＤＩＭＭコマンド遅延ユニットのＤＩＭＭ固有コマンド遅延をプログラミングすることで、本開示に基づくコマンド遅延バランシング手法は、メモリチャンネルの全てのＤＩＭＭに渡ってコマンド信号の実行を「規格化」又は「同期化」する。コマンドの実行時間を予測するこのような能力によって、メモリコントローラは、ディジーチェーン型メモリチャンネル上の全てのＤＲＡＭデバイス(即ち、メモリモジュール)の電力プロファイルを効率的に制御できる。ＤＩＭＭにおける個別のＤＩＭＭ固有応答遅延もプログラムされて、応答経路でＤＩＭＭ固有遅延補償が与えられてもよく、さらに、メモリコントローラが、それが先に送信したコマンドに対する応答の受信タイミングを正確に確かめることが可能にされ、故に、応答の(時間的に)さらなる処理がより良く管理又は計画される。
【発明を実施するための最良の形態】
【００２２】
本開示の幾つかの実施例について詳細に説明する。幾つかの例は、添付の図面に図示されている。本願に含まれている本開示の図面及び記載は、本開示に特に関係する要素を図示及び説明するものであって、明瞭化のために、典型的なデータストレージ又はメモリシステムにあるその他の要素は省略されている。本明細書では、「接続された」、「接続されている」及び「電気的に接続された」などの用語は、電気的に接続された状態を一般に言及するために同義的に使用されることに、最初に留意のこと。
【００２３】
図４は、本開示のある実施例に基づくコマンド遅延バランシング手法を表している。図の簡単化のために、ＤＩＭＭ固有プログラマブル遅延ユニット(56)を有する１つのメモリモジュール(ＤＩＭＭ)(54)が図示されている。ＤＩＭＭ(54)は、図３のＤＩＭＭ(40)の変更バージョンであって、故に、ＤＩＭＭ １と特定されている。ＤＩＭＭコネクタ(54)のアップリンク端子及びダウンリンク端子も、図２及び図３と同じ符号で特定されている。ＤＲＡＭメモリバンク(42)も、図２及び図３と同じ符号で特定されている。ここで留意すべきは、図４のＤＩＭＭ １(54)は、図２に示された構成と同じディジーチェーン型構成に使用されてもよいことである。その場合、図２に示された全てのＤＩＭＭ(34)(40)(44)は、図４に描かれたＤＩＭＭ(54)と似た構成を有する対応するＤＩＭＭで置き換えられて、図２のディジーチェーン型トポロジにおいて、本開示に従ったコマンド遅延バランシング手法が実施されてよい。図４の実施例では、コマンド遅延の値と応答遅延の値を計算する方法が異なるので、図４において、プログラマブル応答遅延ユニット(58)には、図３の遅延ユニットで使用されていた符号(52)と異なる符号が付されている。故に、図３及び図４の間で共通に使用されている符号は、同様な要素又は部品を特定し、異なる符号は、図４で示されている修正若しくは追加された要素又は部品を区別するのに使用される。
【００２４】
ここで、図２の実施例におけるコマンド伝搬遅延と応答伝搬遅延の総和は、図２の各ＤＩＭＭの構成が、図３又は図４に示されたものであるかに拘わらず、同じままである。図３と図４の実施例の違いは、信号伝搬の総遅延(コマンド遅延及び応用遅延の総和)が、図３の実施例では、単一の応答パス遅延補償により説明されるが、図４の実施例では、総遅延は、対応するコマンド伝搬遅延と応答伝搬遅延に分けられて、これら遅延要素の各々は、以下で説明するように個々に補償されることである。
【００２５】
上述のように、図４の実施例では、ダウンリンクチャンネルに渡って、ディジーチェーンの最も遠いＤＩＭＭ(例えば、図４に示された回路要素を含むように適切に変更されたＤＩＭＭ(44))に、メモリコントローラ(例えば、メモリコントローラ(33))からコマンドを伝搬させる一方向のコマンド伝搬遅延は、システムの最も遠いＤＩＭＭからメモリコントローラに応答を伝搬させる一方向の応答伝搬遅延と区別して考えられる。故に、以前のように、３個のＤＩＭＭによるディジーチェーン型構成であって(例えば、図２に示す構成(32)であって、各ＤＩＭＭは、図４のＤＩＭＭ(54)について示されたものと同じトポロジを有している)、システム(32)の各ＤＩＭＭ(最も遠いを除く)において、コマンド及び応答の伝搬の各々について、１クロックサイクルの「ホップに関する」遅延がある構成を仮定し、個々のＤＩＭＭ内のＤＲＡＭメモリバンクによる(コマンドを処理し応答を生成するための)非常に小さい信号処理遅延を無視するならば、「ホップに関する」コマンド伝搬遅延は、２クロックサイクルに等しく、応答伝搬遅延は２サイクルに等しい。その場合、図４の実施例では、ＤＩＭＭのコマンド遅延ユニット(例えば、ユニット(56))でプログラムされるＤＩＭＭ固有コマンド遅延の値は、[Ｃ＊(Ｎ−１)/Ｐ]に等しく、ここで、「Ｃ」は、コマンドを次の「ダウンストリーム」ＤＩＭＭに伝搬する遅延であって、ＤＩＭＭでの「ホップに関する」総クロックサイクル遅延である。パラメータ「Ｎ」及び「Ｐ」は、前の定義と同じである。同様に、図４の実施例では、ＤＩＭＭの応答遅延ユニット(例えば、ユニット(58))でプログラムされるＤＩＭＭ固有応答遅延の値は、[Ｒ＊(Ｎ−１)/Ｐ]に等しく、ここで、「Ｒ」は、応答を次の「アップストリーム」ＤＩＭＭに伝搬する遅延であって、ＤＩＭＭでの「ホップに関する」総クロックサイクル遅延である。パラメータ「Ｎ」及び「Ｐ」は、前の定義と同じである。ある実施例では、Ｃ＋Ｒ＝Ｔであり、ここで「Ｔ」は前の定義による。
【００２６】
上述の公式を用いると、３個のＤＩＭＭのディジーチェーン(Ｎ＝３)の場合、コマンド伝搬遅延＝Ｃ＊(Ｎ−１)＝２クロックサイクルとなる。ここでＣ＝１クロックサイクルである。また、この構成では、応答伝搬遅延＝Ｒ＊(Ｎ−１)＝２クロックサイクルとなる。ここでＲ＝１クロックサイクルである。これらの値を用いると、３個のＤＩＭＭのディジーチェーンにおける中央のＤＩＭＭ(例えば、ＤＩＭＭ(54))は、[Ｃ＊(Ｎ−１)/Ｐ]＝１であるので、遅延ユニット(56)にプログラムされた１クロックサイクルのＤＩＭＭコマンド応答遅延を有する。中央のＤＩＭＭはまた、[Ｒ＊(Ｎ−１)/Ｐ]＝１であるので、遅延ユニット(58)にプログラムされた１クロックサイクルのＤＩＭＭコマンド応答遅延を有する。一方、メモリコントローラに最も近いＤＩＭＭ(例えば、図４に示された方法で変更された図２のＤＩＭＭ(34))は、(遅延ユニット(56)と同様な)コマンド遅延ユニットにプログラムされたＤＩＭＭ固有コマンド遅延の２クロックサイクルと、(遅延ユニット(58)と同様な)応答遅延ユニットにプログラムされたＤＩＭＭ固有コマンド遅延の２クロックサイクルとを有するだろう。既に述べたように、メモリコントローラから最も遠いＤＩＭＭ(例えば、図４に図示された方法で変更された図２のＤＩＭＭ(44))は、Ｃ＝０及びＲ＝０であるので、そのコマンド遅延ユニット及び応答遅延ユニットの両方においてゼロクロックサイクルの遅延を有するであろう。
【００２７】
異なる遅延の値が格納されていることを除けば、モジュールの外側から見ると、応答遅延ユニット(例えば、ユニット(58))の機能は、図３の遅延ユニット(52)に関して上述したものと同じように現れる。しかしながら、本開示に基づいたコマンド遅延ユニット(例えば、図４の遅延ユニット(56))が機能して、ＤＩＭＭコマンド遅延ユニット(56)でプログラムされた遅延が経過し終えるまで、宛先のＤＩＭＭ(例えばＤＩＭＭ(54))によるコマンドの実行又は処理を遅延させる。ここで、用語「実行」又は「処理」は、本明細書にて、ＤＩＭＭのＤＲＡＭメモリバンク(例えば、メモリバンク(42))によるコマンドの実行又は処理を意味することに留意のこと。ある実施例では、これらの用語は、(その後、応答遅延ユニット(58)で適切に遅延される)対応する応答の生成も含む。故に、本開示のある実施例に基づけば、ＤＩＭＭコネクタ(54)のＤＬ＿Ｉｎ端子(48B)で受信されるコマンド信号は、ダウンリンクチャンネルの次のＤＩＭＭに(ＤＬ＿Ｏｕｔ端子(48C)を介して)転送されるだけでなく、ＤＲＡＭメモリバンク(42)と、それに関係する処理/実行用の回路構成(図示せず)とにコマンドを与える即ち送信する前に、コマンド遅延ユニット(56)で遅延される。ユニット(56)でプログラムされる遅延が経過した後、ＤＲＡＭメモリバンク(42)及びそれに関係する信号処理回路構成(図示せず)が、コマンドがＤＩＭＭ(54)宛てであり、実行されるものであるか否かを判断し、実行されるものである場合、メモリコントローラに指示されたようにコマンドを実行し(例えば、メモリセルにデータを書き込み、メモリセルでテスト動作を実行するなど)、応答を生成する。応答は、応答遅延ユニット(58)に供給されて、ＵＬ＿Ｏｕｔ端子(50B)を介してアップリンクチャンネル(最終的にはメモリコントローラ)に放たれる前に、(上述したように)適切な遅延量で遅延される。
【００２８】
上述の説明から、ＤＩＭＭのコマンド遅延ユニット(例えば、図４のユニット(56))でＤＩＭＭ固有コマンド遅延をプログラミングすることにより、本開示に基づくコマンド遅延バランシング手法は、メモリチャンネルにおける全てのＤＩＭＭに渡って、コマンドの実行を「規格化」又は「同期化」することが分かる。さらに、ディジーチェーン型システムにおけるメモリコントローラ(例えば、図２のコントローラ(33))が、コマンド伝搬遅延(即ち、コントローラから送られた遅延がシステムの最も遠いＤＩＭＭに達する総遅延)の値を格納し、与えたコマンドが宛先ＤＩＭＭによって何時実行されるかを予測するように適合又は構成されてよい。例えば、先に説明した典型的なクロック遅延の値の場合、コマンド伝搬遅延は、２クロックサイクルである(３個のＤＩＭＭチャンネルにおける最も遠いＤＩＭＭに達する２回の「ホップ」)。それ故、このようなシステムにあるメモリコントローラは、そのコントローラが最も近いＤＩＭＭにコマンドを送った時刻「ｔ」から２クロックサイクル後に、宛先の各ＤＩＭＭがコマンドを実行することを予期し得る。故に、たとえコマンド信号がブロードキャスト信号では無く、メモリチャンネルの特定のＤＩＭＭ(又は選択されたＤＩＭＭの組)に向けられている場合、ＤＩＭＭに対応するコマンド遅延ユニットでプログラムされた所定の遅延が、コマンドの実行を「規格化」し、コマンドが宛先のＤＩＭＭで実行される時間をメモリコントローラが効果的に「予測」可能とする。
【００２９】
本開示に基づく遅延規格化手法によれば、(システムにおける全てのアップリンクに渡った応答信号伝搬経路からなる)応答経路だけではなく、(システムにおける全てのダウンリンクに渡ったコマンド信号伝搬経路からなる)コマンド経路における遅延補償が得られる。コマンド経路における遅延補償がなされることで、ディジーチェーン型トポロジのメモリコントローラは、コマンドが実行されるために送られる１又は複数のＤＩＭＭで、コマンドが実行又は処理される時間を予想するように構成され得る。この機能によって、メモリコントローラは、システム内の１又は複数のＤＩＭＭに、資源集約的な(resource-intensive)コマンド信号(例えば、メモリモジュールによる大量の電力消費を要求するリフレッシュコマンド信号)を送信する時間を効率的に調整して、システムの電力消費又は電力プロファイルを効果的にバランスさせる(それにより、例えば、システムのオーバーロードや、システムにおける電力消費の突然上昇が防止される)。メモリチャンネルの電力プロファイルの制御された管理は、さらに、ディジーチェーン型構成のアップリンクチャンネル及びダウンリンクチャンネルを通る信号の完全性(integrity)を改善する。さらに、応答経路における遅延補償は、遅延の「レベライゼーション」をもたらし、加えて、メモリコントローラが、それが先に送ったコマンドへの応答を受信するタイミングを正確に確かめることを可能とし、故に、応答の(時間的に)さらなる処理を管理又は計画可能とする。
【００３０】
図５は、本開示の教示に基づくコマンド遅延バランシング手法が使用され得るシステム(100)を示している。システム(100)は、データ処理ユニット、即ち演算ユニット(102)を含んでおり、該ユニット(102)は、様々な演算機能、例えば、特定の計算又はデータ処理のタスクを実行する特定のソフトウェアを実行するプロセッサ(104)を含んでいる。演算ユニット(102)はまた、ディジーチェーン配置されたメモリデバイス、即ちメモリモジュール(106)(図２に示すものと同様な構成)の組を含んでよく、メモリモジュール(106)の組は、メモリコントローラ(110)を通じてプロセッサ(104)と通信する。メモリコントローラ(110)は、アップリンク(107)及びダウンリンク(108)を介してディジーチェーン配置されたメモリデバイス(106)の１つと接続される。その他のメモリデバイスは、例えば図２の構成で示したものと似た方法で、個々のアップリンク及びダウンリンクを介して、メモリコントローラ(110)に直接接続されているメモリデバイス(図示せず)と接続される。説明の簡単化のため、ここでは、ダウンリンク(107)及びアップリンク(108)は、「メモリコントローラバス」として一緒に言及される。メモリコントローラバスは、上述したように、アドレス信号、データ信号及び/又はコントロール信号を運ぶ。メモリデバイス(106)の各々は、図４の典型的なＤＩＭＭ(54)として図示された構成を有してよい。即ち、各メモリデバイス(106)は、デバイス固有プログラマブルコマンド遅延ユニットとデバイス固有プログラマブル応答遅延ユニットとを含み、上述したように、コマンド経路及び応答経路の遅延補償をもたらす。さらに、メモリデバイス(106)の各々は、複数のダイナミックランダムアクセスメモリ(ＤＲＡＭ)チップ、又は、ＳＲＡＭ(Static Random Access Memory)チップ若しくはフラッシュメモリのような別の種類のメモリ回路を含んでよい。さらに、ＤＲＡＭは、ＳＧＲＡＭ(Synchrinous Graphics Random Access Memory)、ＳＤＲＡＭ(Synchrinous Dynamic Random Access Memory)、ＳＤＲＡＭ II又はＤＤＲ ＳＤＲＡＭ(Double Data Rate SDRAM)として一般に称される同期ＤＲＡＭに加えて、Ｓｙｎｃｈｌｉｎｋ又はＲａｍｂｕｓ(商標)製のＤＲＡＭであってよい。当該技術分野の通常の知識を有する者は、図５のメモリデバイス(106)が、メモリデバイスの一実施例を簡単化して示しており、典型的なメモリモジュール又はＤＩＭＭの特徴の全てを詳細に図示することを意図していないことを容易に認めるであろう。プロセッサ(104)は、メモリデバイス(106)に格納された情報及びデータに基づいて複数の機能を実行する。プロセッサ(104)は、マイクロプロセッサ、デジタルシグナルプロセッサ、組込みプロセッサ、マイクロコントローラ、専用メモリテストチップなどであってよい。
【００３１】
メモリコントローラ(110)は、バス(112)を介してプロセッサ(104)から受信したコントロール信号(図示せず)に応答して、メモリデバイスとの間のデータ通信を制御する。バス(112)は、パラレル又はシリアルバスであってよい。メモリコントローラ(110)は、コマンドデコード回路(図示せず)を含んでよい。コマンドデコード回路は、バス(112)の入力コントロール信号(図示せず)を受信して、１又は複数のメモリデバイス(106)の動作モードを決定してよい。バス(112)(及びメモリコントローラバス(108))上の入力信号又はコントロール信号(図５に図示せず)の幾つかの例としては、外部クロック信号、チップセレクト信号、ローアドレスストローブ信号、コラムアドレスストローブ信号、ライドイネーブル信号、メモリリフレッシュ信号などがある。
【００３２】
システム(100)は、演算ユニット(102)に接続された１又は複数の入力デバイス(114)(例えば、キーボード、マウスなど)を含んでおり、ユーザが手動でデータ、指示などを入力して、演算ユニット(102)を動作可能にしている。また、演算ユニット(102)に接続された１又は複数の出力デバイス(116)が、システム(100)の一部として設けられて、プロセッサ(104)で生成された出力データの表示などをしてよい。出力デバイス(116)の例には、プリンタ、ビデオ端子又はビデオユニット(ＶＤＵ)がある。ある実施例では、システム(100)はまた、データ処理ユニット(102)に接続された１又は複数のデータストレージデバイス(118)を含んでおり、プロセッサ(104)が内部若しくは外部のストレージメディア(図示せず)からデータを格納又は取得することを可能とする。典型的なストレージデバイス(118)の例には、ハードディスク、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ(compact disk read-only memory)及びテープカセットを受け入れるドライブがある。
【００３３】
ここで、本開示の一実施例に基づく分離されたコマンド及び応答遅延補償手法は、ディジーチェーン配置されたメモリモジュールに使用されるだけでなく、図２に示されたものと似た方法で接続されて、共通のコントローラ(図示せず)で制御され、ディジーチェーン配置されたその他の任意の電子デバイス(図示せず)に使用されてもよい。共通のコントローラは、１又は複数の電子デバイスでのコマンドの実行タイミングに加えて、１又は複数の電子デバイスからの応答の供給タイミングを予測する必要がある。
【００３４】
上記は、ディジーチェーン型メモリトポロジについて手法を説明しており、該手法では、メモリモジュール(ＤＩＭＭ)からの応答の受信タイミングの予測に加えて、メモリコントローラは、それが送ったコマンドが、宛先のＤＩＭＭで何時実行されるかを効果的に予期できる。ＤＩＭＭのコマンド遅延ユニットにおけるＤＩＭＭ固有コマンド遅延をプログラミングすることで、本開示に基づくコマンド遅延バランシング手法は、メモリチャンネルにおける全てのＤＩＭＭに渡って、コマンド信号の実行を「規格化」又は「同期化」する。コマンドの実行タイミングを予測するこのような能力によって、メモリコントローラは、ディジーチェーン型チャンネル上の全てのＤＲＡＭデバイス(即ちメモリモジュール)の電力プロファイルを効率的に制御できる。ＤＩＭＭにおける別個のＤＩＭＭ固有応答遅延ユニットはまた、応答経路でＤＩＭＭ固有遅延補償を与えるようにプログラムされて、さらに、メモリコントローラが、それによって先に送られたコマンドへの応答を受信するタイミングを正確に確かめることを可能とし、故に、応答の(時間的に)さらなる処理が管理又は計画可能とする。
【００３５】
特定の実施例について、本開示は詳細に説明されたが、当該技術分野における通常の知識を有する者には、本実施例の精神と範囲から逸脱することなく様々な変形及び変更が可能であることが明らかであろう。故に、本開示は、この開示の変更及び変形例を、それらが添付の特許請求の範囲及びそれらの均等物であるとして含んでいる。
【図面の簡単な説明】
【００３６】
本開示を容易に理解し、簡単に実施するために、限定ではなく説明の目的で、本開示は、以下に示す図面と共に説明される。
【図１】図１は、メモリコントローラと複数のメモリデバイス(ＤＩＭＭ)の間でパラレルメモリバスに渡った信号通信を示す従来技術の配置である。
【図２】図２は、代わりの構成を示しており、メモリモジュール(ＤＩＭＭ)がディジーチェーン型構成でメモリコントローラに接続されている。
【図３】図３は、図２のディジーチェーン型構成にて遅延レベライゼーションを実施するための従来手法を示す。
【図４】図４は、本開示の一実施例に基づいたコマンド遅延バランシング手法を表す。
【図５】図５は、本開示の教示に基づいたコマンド遅延バランシング手法が使用され得るシステムを示すブロック図である。
【図１】
2008510257.tif 000003
【図２】
2008510257.tif 000004
【図３】
2008510257.tif 000005
【図４】
2008510257.tif 000006
【図５】
2008510257.tif 000007
【手続補正書】
【提出日】平成18年3月17日(2006.3.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
対応する複数のメモリ要素を夫々含んだ複数のメモリモジュールを、ディジーチェーン型構成で連結する工程と、
前記複数のメモリモジュールの１つにてコマンドを受信する工程と、
前記ディジーチェーン型構成における１又は２以上のメモリモジュールに前記コマンドを伝搬させる工程と、
１又は複数のメモリモジュールの少なくとも１つを、そのメモリモジュールに含まれる１又は複数のメモリ要素による、そのメモリモジュールが受信した前記コマンドの実行を、個別の所定の第１遅延が経過するまで遅延させるように構成する工程とを含む方法。
【請求項２】
さらに、前記複数のメモリモジュールの１つのみに、メモリコントローラを接続する工程をさらに含む、請求項１の方法。
【請求項３】
コマンドを受信する工程は、
前記メモリコントローラを、それに接続されたメモリモジュールに前記コマンドを送信するように構成する工程と、
前記メモリコントローラに接続されたメモリモジュールにて前記コマンドを受信する工程とを含む、請求項２の方法。
【請求項４】
構成する工程は、
前記複数のメモリモジュールの少なくとも１つについて、前記メモリコントローラへの物理的近さを決定する工程と、
前記メモリコントローラから送られた前記コマンドを、前記ディジーチェーン型構成において前記コマンドを最後に受信する前記複数のメモリモジュールの１つに伝搬させるコマンド遅延時間を決定する工程と、
前記物理的近さと、前記コマンド遅延時間と、前記複数のメモリモジュールにおけるメモリモジュールの総数とに基づいて、前記個別の所定の第１遅延を決定する工程と、
前記複数のメモリモジュールの前記少なくとも１つを、そのメモリモジュールに含まれる前記１又は複数のメモリ要素に前記コマンドを送信する前に、前記コマンドに前記個別の所定の第１遅延を与えるようにプログラミングする工程とを含む、請求項２の方法。
【請求項５】
前記複数のメモリモジュールの前記少なくとも１つを、そのメモリモジュールで受信された前記コマンドに対する応答を生成するように構成する工程と、
前記複数のメモリモジュールの前記少なくとも１つを、個別の所定の第２遅延が経過するまで、前記応答の送信を遅延させるようにさらに構成する工程とを含む、請求項２に記載の方法。
【請求項６】
さらに構成する工程は、
前記複数のメモリモジュールの前記少なくとも１つについて、前記メモリコントローラへの物理的近さを決定する工程と、
前記メモリコントローラへの最後の応答を伝搬するのに必要な応答遅延時間を決定する工程であって、前記最後の応答は、前記コマンドへの応答であり、前記ディジーチェーン型構成において前記コマンドを最後に受信する前記複数のメモリモジュールの１つで生成される工程と、
前記物理的近さと、前記応答遅延時間と、前記複数のメモリモジュールにおけるメモリモジュールの総数とに基づいて、前記個別の所定の第２遅延を決定する工程と、
前記複数のメモリモジュールの前記少なくとも１つを、前記メモリコントローラに前記応答を送信する前に、前記個別の所定の第２遅延を前記応答に与えるように、プログラミングする工程とを含む、請求項５の方法。
【請求項７】
複数の電子デバイスをディジーチェーン型構成で連結する工程と、
前記複数の電子デバイスの第１電子デバイスにてコマンドを受信する工程と、
前記ディジーチェーン型構成における残りの電子デバイスに前記コマンドを伝搬させる工程と、
前記複数の電子デバイスにおける各電子デバイスを、前記コマンドを実行して前記コマンドに対応する応答を生成することを、個別の所定の第１遅延が経過するまで遅延させるように構成する工程とを含む方法。
【請求項８】
前記伝搬したコマンドを最後に受信する電子デバイスについて、前記個別の所定の第１遅延はゼロである、請求項７の方法。
【請求項９】
前記第１電子デバイスにコントローラを接続する工程と、
前記第１電子デバイスに前記コマンドを送信するように前記コントローラを構成する工程とを更に含んでおり、
受信する工程は、前記コントローラによって送信された前記コマンドを、それに接続された前記第１電子デバイスにて受信する工程を含む、請求項７の方法。
【請求項１０】
各電子デバイスを構成する工程は、
前記各電子デバイスについて、前記コントローラへの物理的近さを決定する工程と、
前記コントローラから送られた前記コマンドを、前記ディジーチェーン型構成において前記コマンドを最後に受信する電子デバイスに伝搬させるコマンド遅延時間を決定する工程と、
前記物理的近さと、前記コマンド遅延時間と、前記複数の電子デバイスにおける電子デバイスの総数とに基づいて、前記各電子デバイスについて前記個別の所定の第１遅延を決定する工程と、
前記各電子デバイスを、前記個別の所定の第１遅延が経過するまで前記コマンドの処理を遅延させるようにプログラミングする工程とを含む、請求項９の方法。
【請求項１１】
前記各電子デバイスを、個別の所定の第２遅延が経過するまで、前記対応する応答の送信を遅延させるようにさらに構成する工程とを含む、請求項９に記載の方法
【請求項１２】
前記各電子デバイスをさらに構成する工程は、
前記各電子デバイスについて、前記コントローラへの物理的近さを決定する工程と、
前記ディジーチェーン型構成において前記コマンドを最後に受信する前記電子デバイスから前記コントローラに、前記対応する応答を伝搬させるのに要する応答遅延時間を決定する工程と、
前記物理的近さと、前記応答遅延時間と、前記複数の電子デバイスにおける電子デバイスの総数とに基づいて、前記個別の所定の第２遅延を決定する工程と、
前記各電子デバイスを、前記対応する応答を前記コントローラに送信する前に、前記個別の所定の第２遅延を前記対応する応答に与えるように、プログラミングする工程とを含む、請求項１１の方法。
【請求項１３】
前記伝搬したコマンドを最後に受信する電子デバイスについて、前記個別の所定の第２遅延はゼロである、請求項１１の方法。
【請求項１４】
コマンドを生成及び送信するように構成されたメモリコントローラと、
シリアル構成で互いに接続された複数のメモリモジュールとを備える組合せであって、
前記複数のメモリモジュールの１つのみが、前記メモリコントローラに接続されて、各メモリモジュールは、対応する複数のメモリ要素を含んでおり、
前記メモリコントローラに接続されたメモリモジュールは、前記メモリコントローラから前記コマンドを受信して、前記シリアル構成のその他のメモリモジュールに前記コマンドを伝搬させるように構成されており、前記複数のメモリモジュールの少なくとも１つは、個別の所定の第１遅延が経過するまで、そのメモリモジュールに含まれる１又は複数のメモリ要素による、そのメモリモジュールが受信した前記コマンドの実行を遅延させるように構成されている組合せ。
【請求項１５】
前記個別の所定の第１遅延は、前記メモリコントローラに対する前記複数のメモリモジュールの前記少なくとも１つの物理的近さと、前記シリアル構成において前記コマンドを最後に受信する前記複数のメモリモジュールの１つに、前記メモリコントローラから前記コマンドを伝搬するのに要するコマンド遅延時間と、前記複数のメモリモジュールにおけるメモリモジュールの総数とに基づいて決定される、請求項１４の組合せ。
【請求項１６】
前記個別の所定の第１遅延は、前記複数のメモリモジュールの前記少なくとも１つに格納される、請求項１４の組合せ。
【請求項１７】
前記シリアル構成における前記伝搬したコマンドを最後に受信する電子デバイスについて、前記個別の所定の第１遅延はゼロである、請求項１４の組合せ。
【請求項１８】
前記複数のメモリモジュールの前記少なくとも１つは、そのメモリモジュールで受信した前記コマンドに対する応答を生成し、個別の所定の第２遅延が経過するまで、前記メモリコントローラへの前記応答の送信を遅延させるように構成されている、請求項１４の組合せ。
【請求項１９】
前記個別の所定の第２遅延は、前記メモリコントローラに対する前記複数のメモリモジュールの前記少なくとも１つの物理的近さと、前記シリアル構成において前記コマンドを最後に受信する前記複数のメモリモジュールの１つから前記メモリコントローラに、前記コマンドに対応する応答を伝搬するのに要する応答遅延時間と、前記複数のメモリモジュールにおけるメモリモジュールの総数とに基づいて決定される、請求項１８の組合せ。
【請求項２０】
前記個別の所定の第２遅延は、前記複数のメモリモジュールの前記少なくとも１つに格納される、請求項１８の組合せ。
【請求項２１】
前記シリアル構成における前記伝搬したコマンドを最後に受信する電子デバイスについて、前記個別の所定の第２遅延はゼロである、請求項１８の組合せ。
【請求項２２】
前記シリアル構成はディジーチェーン型構成である、請求項１４の組合せ。
【請求項２３】
プロセッサと、
バスと、
前記バスを介して前記プロセッサに接続されており、コマンドを生成及び送信するコントローラと、
ディジーチェーン型構成で互いに接続された複数の電子デバイスとを備えるシステムであって、
前記複数の電子デバイスの１つのみが前記コントローラに接続され、前記複数の電子デバイスの各々は、前記ディジーチェーン型構成用の信号転送機構を用いて前記コントローラと通信し、
前記コントローラに接続された電子デバイスは、前記コントローラから前記コマンドを受信して、前記ディジーチェーン型構成のその他の電子デバイスに前記コマンドを伝搬させるように構成されており、
前記複数の電子デバイスの各電子デバイスは、個別の所定の第１遅延が経過するまで、前記コマンドを実行して前記コマンドに対応する応答を生成することを遅延させるように構成されているシステム。
【請求項２４】
各電子デバイスについて、前記個別の所定の第１遅延は、前記コントローラに対する前記各電子デバイスの物理的近さと、前記ディジーチェーン型構成において前記コマンドを最後に受信する前記複数の電子デバイスに、前記コントローラから前記コマンドを伝搬させるのに要するコマンド遅延時間と、前記複数の電子デバイスにおける電子デバイスの総数とに基づいて決定される、請求項２３のシステム。
【請求項２５】
前記個別の所定の第１遅延は、前記各電子デバイスに格納される、請求項２３のシステム。
【請求項２６】
前記伝搬したコマンドを最後に受信する電子デバイスについて、前記個別の所定の第１遅延はゼロである、請求項２３のシステム。
【請求項２７】
前記各電子デバイスは、個別の所定の第２遅延が経過するまで、前記対応する応答の前記コントローラへの送信を遅延させるように構成されており、
前記個別の所定の第２遅延は、前記コントローラに対する前記各電子デバイスの物理的近さと、前記ディジーチェーン型構成において前記コマンドを最後に受信する電子デバイスから前記コントローラに、前記対応する応答を伝搬させるのに要する応答遅延時間と、前記複数の電子デバイスにおける電子デバイスの総数とに基づいて決定される、請求項２３のシステム。
【請求項２８】
前記個別の所定の第２遅延は、前記各電子デバイスに格納される、請求項２７のシステム。
【請求項２９】
前記伝搬したコマンドを最後に受信する電子デバイスについて、前記個別の所定の第２遅延はゼロである、請求項２７のシステム。
【国際調査報告】
2008510257.tif 000008
2008510257.tif 000009
2008510257.tif 000010