(57)【要約】プロセッサベースの電子システムは、第１のランクおよび第２のランクに配置された複数のメモリモジュールを含む。第１のランク内のメモリモジュールは複数のプロセッサのうち任意のプロセッサによって直接アクセスされ、第２のランク内のメモリモジュールは、第１のランク内のメモリモジュールを介してプロセッサによってアクセスされる。プロセッサと第２のランク内のメモリモジュールとの間の帯域幅は、第１のランク内のメモリモジュールの数を変えることによって変動される。各メモリモジュールは、メモリハブへ結合された複数のメモリデバイスを含む。メモリハブは、各メモリデバイスへ結合されたメモリ制御装置と、各プロセッサまたは各メモリモジュールへ結合されたリンクインタフェースと、メモリ制御装置のうち任意のメモリ制御装置とリンクインタフェースのうち任意のリンクインタフェースとを結合するクロスバースイッチとを含む。
2007504530.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリリクエスタのそれぞれを複数のメモリデバイスのそれぞれへ結合するのに用いられるメモリハブであって、
複数のメモリ制御装置であって、該メモリ制御装置のそれぞれが該メモリデバイスのうち少なくとも１つのメモリデバイスと結合されている、複数のメモリ制御装置と、
第１の複数のリンクインタフェースと、
第１の複数のスイッチポートと複数のメモリポートとを有するクロスバースイッチであって、該スイッチポートがそれぞれ１つの該リンクインタフェースへ結合され、該メモリポートのそれぞれは、それぞれ１つの該メモリ制御装置へ結合されており、該クロスバースイッチが、該リンクインタフェースのそれぞれを該メモリ制御装置のうちの任意の１つのメモリ制御装置へ選択的に結合するように動作可能である、クロスバースイッチと
を備える、メモリハブ。
【請求項２】
第２の複数のリンクインタフェースをさらに備え、前記クロスバースイッチが第２の複数のスイッチポートをさらに含み、該第２の複数のスイッチポートのそれぞれが、該第２の複数のリンクインタフェース内のそれぞれ１つのリンクインタフェースへ結合されている、請求項１に記載のメモリハブ。
【請求項３】
前記メモリ制御装置のそれぞれがダイナミックランダムアクセスメモリ制御装置を備える、請求項１に記載のメモリハブ。
【請求項４】
前記メモリ制御装置のそれぞれに関連する各キャッシュメモリデバイスをさらに備え、該キャッシュメモリデバイスのそれぞれが、前記クロスバースイッチのそれぞれ１つの前記メモリポートを介してアクセスされたデータを記憶するように動作可能である、請求項１に記載のメモリハブ。
【請求項５】
前記リンクインタフェースのそれぞれが二方向性のリンクインタフェースを備える、請求項１に記載のメモリハブ。
【請求項６】
前記リンクインタフェースのそれぞれが一方向性のリンクのペアを備え、該一方向性のリンクのうち、一方は入力ポートを含み、他方は出力ポートを含む、請求項１に記載のメモリハブ。
【請求項７】
前記メモリ制御装置のそれぞれに関連する各書き込みバッファをさらに備え、該書き込みバッファのそれぞれが、前記クロスバースイッチの前記メモリポートのそれぞれ１つを介して、書き込みデータおよび関連する書き込みアドレスを受信し、かつ該書き込みデータとアドレスとを、後からそれぞれ１つの該メモリ制御装置へ結びつけるために記憶するように動作可能である、請求項１に記載のメモリハブ。
【請求項８】
前記書き込みバッファのそれぞれが、複数の書き込みメモリアクセスのための書き込みデータおよびアドレスを蓄積し、該複数の書き込みデータおよびアドレスを、読み取りメモリアクセスが介在することなく前記メモリ制御装置のそれぞれ１つと連続的に結びつける、請求項７に記載のメモリハブ。
【請求項９】
前記クロスバースイッチおよび前記メモリ制御装置に結合されたダイレクトメモリアクセスデバイスをさらに備え、該ダイレクトメモリアクセスデバイスが、前記クロスバースイッチ、および該メモリ制御装置のそれぞれにメモリ書き込みアクセスおよびメモリ読み取りアクセスを実行させるように動作可能である、請求項１に記載のメモリハブ。
【請求項１０】
基板と、該基板によって保持された複数のメモリデバイスと、該基板によって保持されたメモリハブとを備えるメモリモジュールであって、
該メモリハブは、
複数のメモリ制御装置であって、該メモリ制御装置のそれぞれが該メモリデバイスのうち少なくとも１つのメモリデバイスへ結合されている、複数のメモリ制御装置と、
第１の複数のリンクインタフェースであって、該複数のリンクインタフェースのそれぞれが複数のメモリリクエスタのそれぞれへ結合されるために存在する、第１の複数のリンクインタフェースと、
第１の複数のスイッチポートおよび複数のメモリポートを有する、クロスバースイッチであって、該スイッチポートのそれぞれはそれぞれ１つの該リンクインタフェースへ結合され、該メモリポートのそれぞれはそれぞれ１つの該メモリ制御装置へ結合され、該クロスバースイッチが、該リンクインタフェースのそれぞれを該メモリ制御装置のうち任意の１つのメモリ制御装置へ結合するように動作可能である、クロスバースイッチとを備える、請求項１０に記載のメモリモジュール。
【請求項１１】
前記メモリハブが、第２の複数のリンクインタフェースをさらに備え、前記クロスバースイッチが第２の複数のスイッチポートをさらに含み、該第２の複数のスイッチポートのそれぞれが、該第２の複数のリンクインタフェース内のそれぞれ１つの該リンクインタフェースへ結合されている、請求項１０に記載のメモリモジュール。
【請求項１２】
前記メモリデバイスのそれぞれがダイナミックランダムアクセスメモリデバイスを備える、請求項１０に記載のメモリモジュール。
【請求項１３】
前記メモリハブが、前記メモリ制御装置のそれぞれに関連する各キャッシュメモリデバイスをさらに備え、該キャッシュメモリデバイスのそれぞれが、前記クロスバースイッチのそれぞれ１つの前記メモリポートを介してアクセスされたデータを記憶するように動作可能である、請求項１０に記載のメモリモジュール。
【請求項１４】
前記基板が半導体基板を備え、前記メモリデバイスと、前記リンクインタフェースと、前記メモリ制御装置と、前記クロスバースイッチとが、共有の集積回路として該半導体基板内に形成されている、請求項１０に記載のメモリモジュール。
【請求項１５】
前記メモリハブ内の前記リンクインタフェースのそれぞれが二方向性のリンクインタフェースを備える、請求項１０に記載のメモリモジュール。
【請求項１６】
前記メモリハブ内の前記リンクインタフェースのそれぞれが一方向性のリンクのペアを備え、該一方向性のリンクのうち、一方は入力ポートを含み、他方は出力ポートを含む、請求項１０に記載のメモリモジュール。
【請求項１７】
前記メモリハブが、前記メモリ制御装置のそれぞれに関連する各書き込みバッファをさらに備え、該書き込みバッファのそれぞれが、前記クロスバースイッチの前記メモリポートのそれぞれ１つを介して、書き込みデータおよび関連する書き込みアドレスを受信し、該書き込みデータおよびアドレスを、後からそれぞれ１つの該メモリ制御装置へ結びつけるために記憶するように動作可能である、請求項１０に記載のメモリモジュール。
【請求項１８】
前記書き込みバッファのそれぞれが、複数の書き込みメモリアクセスのための書き込みデータおよびアドレスを蓄積し、該複数の書き込みデータおよびアドレスを、読み取りメモリアクセスが介在することなく前記メモリ制御装置のそれぞれ１つと連続的に結びつける、請求項１７に記載のメモリモジュール。
【請求項１９】
前記メモリハブが、前記クロスバースイッチおよび前記メモリ制御装置へ結合されたダイレクトメモリアクセスデバイスをさらに備え、該ダイレクトメモリアクセスデバイスが、前記クロスバースイッチ、および該メモリ制御装置のそれぞれにメモリ書き込みアクセスおよびメモリ読み取りアクセスを実行させるように動作可能である、請求項１０に記載のメモリモジュール。
【請求項２０】
複数のメモリリクエスタと、
該メモリリクエスタへ結合されたメモリモジュールの第１のランクであって、該第１のランク内のメモリモジュールのそれぞれが該複数のメモリリクエスタへ結合されている、メモリモジュールの第１のランクとを備える、メモリシステムであって、
該メモリモジュールのそれぞれは、
複数のメモリデバイスと、
複数のメモリハブとを備え、
該メモリハブは、
複数のメモリ制御装置であって該メモリ制御装置のそれぞれが該メモリデバイスのうち少なくとも１つのメモリデバイスと結合されている、複数のメモリ制御装置と、
第１の複数のリンクインタフェースであって、該リンクインタフェースのそれぞれがそれぞれ１つの該メモリリクエスタへ結合されている、第１の複数のリンクインタフェースと、
第１の複数のスイッチポートと複数のメモリポートとを有するクロスバースイッチであって、該スイッチポートがそれぞれ１つの該リンクインタフェースへ結合され、該メモリポートのそれぞれは、それぞれ１つの該メモリ制御装置へ結合されており、該クロスバースイッチが、該リンクインタフェースのそれぞれを該メモリ制御装置のうち任意の１つのメモリ制御装置へ選択的に結合するように動作可能である、クロスバースイッチとを備える、
メモリシステム。
【請求項２１】
前記メモリハブが、第２の複数のリンクインタフェースをさらに備え、前記クロスバースイッチが第２の複数のスイッチポートをさらに含み、該第２の複数のスイッチポートのそれぞれが、該第２の複数のリンクインタフェース内のそれぞれ１つのリンクインタフェースへ結合されている、請求項２０に記載のメモリシステム。
【請求項２２】
前記メモリ制御装置のそれぞれがダイナミックランダムアクセスメモリ制御装置を備える、請求項２０に記載のメモリシステム。
【請求項２３】
前記メモリハブが、前記メモリ制御装置のそれぞれに関連する各キャッシュメモリデバイスをさらに備え、該キャッシュメモリデバイスのそれぞれが、前記クロスバースイッチのそれぞれ１つの前記メモリポートを介してアクセスされたデータを記憶するように動作可能である、請求項２０に記載のメモリシステム。
【請求項２４】
前記基板が半導体基板を備え、前記メモリデバイスと、前記リンクインタフェースと、前記メモリ制御装置と、前記クロスバースイッチとが、共有の集積回路として該半導体基板内に形成されている、請求項２０に記載のメモリモジュール。
【請求項２５】
前記メモリハブ内の前記リンクインタフェースのそれぞれが二方向性のリンクインタフェースを備える、請求項２０に記載のメモリモジュール。
【請求項２６】
前記メモリハブ内の前記リンクインタフェースのそれぞれが一方向性のリンクのペアを備え、該一方向性のリンクのうち、一方は入力ポートを含み、他方は出力ポートを含む、請求項２０に記載のメモリモジュール。
【請求項２７】
前記メモリハブが、前記メモリ制御装置のそれぞれに関連する各書き込みバッファをさらに備え、該書き込みバッファのそれぞれが、前記クロスバースイッチの前記メモリポートのそれぞれ１つを介して、書き込みデータおよび関連する書き込みアドレスを受信し、該書き込みデータおよびアドレスを、後からそれぞれ１つの該メモリ制御装置へ結びつけるために記憶するように動作可能である、請求項２０に記載のメモリモジュール。
【請求項２８】
前記書き込みバッファのそれぞれが、複数の書き込みメモリアクセスのための書き込みデータおよびアドレスを蓄積し、該複数の書き込みデータおよびアドレスを、読み取りメモリアクセスが介在することなく前記メモリ制御装置のそれぞれ１つと連続的に結びつける、請求項２７に記載のメモリモジュール。
【請求項２９】
前記メモリハブが、前記クロスバースイッチおよび前記メモリ制御装置へ結合されたダイレクトメモリアクセスデバイスをさらに備え、該ダイレクトメモリアクセスデバイスが、前記クロスバースイッチ、および該メモリ制御装置のそれぞれにメモリ書き込みアクセスおよびメモリ読み取りアクセスを実行させるように動作可能である、請求項２０に記載のメモリモジュール。
【請求項３０】
前記メモリリクエスタのうち少なくとも一部がプロセッサを備える、請求項２０に記載のメモリシステム。
【請求項３１】
前記メモリリクエスタのうち少なくとも一部がダイレクトメモリアクセスデバイスを備える、請求項２０に記載のメモリシステム。
【請求項３２】
前記メモリシステムは、前記第１のランク内の複数の前記メモリモジュールへ結合された、メモリモジュールの第２のランクをさらに備え、
該第２のランク内の該メモリモジュールが、
複数のメモリデバイスと、
メモリハブとを備え、
該メモリハブは、
複数のメモリ制御装置であって、該メモリ制御装置のそれぞれが該メモリデバイスのうち少なくとも１つのメモリデバイスと結合されている、複数のメモリ制御装置と、
第１の複数のリンクインタフェースであって、該リンクインタフェースのそれぞれが、該第１のランク内の該メモリモジュールのそれぞれ１つへ結合されている、第１の複数のリンクインタフェースと、
第１の複数のスイッチポートと複数のメモリポートとを有するクロスバースイッチであって、該スイッチポートがそれぞれ１つの該リンクインタフェースへ結合され、該メモリポートのそれぞれは、それぞれ１つの該メモリ制御装置へ結合されており、該クロスバースイッチが、該リンクインタフェースのそれぞれを該メモリ制御装置のうち任意の１つのメモリ制御装置へ選択的に結合するように動作可能である、クロスバースイッチと
を備える、請求項２０に記載のメモリシステム。
【請求項３３】
前記メモリシステムは、第２のランク内に複数のメモリモジュールのセットをさらに備え、該第２のランク内のメモリモジュールのセット数が、前記第１のランク内のメモリモジュールの数と一致し、該第２のランク内の各セット内に存在する該メモリモジュールは、該第１のランク内の該メモリモジュールのそれぞれ１つへ結合されており、
該第２のランク内の該メモリモジュールのそれぞれは、
複数のメモリデバイスと、
メモリハブとを備え、
該メモリハブは、
複数のメモリ制御装置であって、該メモリ制御装置のそれぞれが該メモリデバイスのうち少なくとも１つのメモリデバイスと結合されている、複数のメモリ制御装置と、
該第１のランク内の該メモリモジュールへ結合されたリンクインタフェースであって、該第２のランク内の該メモリモジュールの各セットは、該第１のランク内の該メモリモジュールと一致している、リンクインタフェースと、
スイッチポートと複数のメモリポートとを有するクロスバースイッチであって、該スイッチポートが該リンクインタフェースへ結合され、該メモリポートのそれぞれは、それぞれ１つの該メモリ制御装置へ結合されており、該クロスバースイッチが、該リンクインタフェースのそれぞれを該メモリ制御装置のうち任意の１つのメモリ制御装置へ選択的に結合するように動作可能である、クロスバースイッチと
を備える、請求項２０に記載のメモリシステム。
【請求項３４】
前記メモリデバイスと、前記リンクインタフェースと、前記メモリ制御装置と、前記クロスバースイッチとが、共有の集積回路として半導体基板内に形成されている、請求項２０に記載のメモリモジュール。
【請求項３５】
メモリシステムであって、
複数のメモリリクエスタと、
該メモリリクエスタへ結合されたメモリモジュールの第１のランクであって、該第１のランク内の該メモリモジュールが、該メモリリクエスタの数と一致するメモリポートの第１のセットを含み、該第１のランク内の該メモリポートのそれぞれが該メモリリクエスタのそれぞれに結合されており、該第１のランク内の該メモリモジュールのそれぞれが、第１のセット内および第２のセット内にあるメモリデバイスおよびメモリポートへ結合された複数のメモリデバイスおよびメモリハブを含む、メモリモジュールの第１のランクと、
メモリモジュールの第２のランクであって、該第２のランク内のメモリモジュールが、該第２のセット内のメモリポートを介して該第１のランク内のメモリモジュールへ結合された少なくとも１つのメモリポートをそれぞれ含み、該第２のランク内のメモリモジュールのそれぞれが、該メモリデバイスおよび該少なくとも１つのメモリポートへ結合された複数のメモリデバイスおよびメモリハブを含む、メモリモジュールの第２のランクとを備える、
メモリシステム。
【請求項３６】
前記第２のランク内のメモリモジュールの各セットが複数のメモリポートを含み、該複数のメモリポートの数が、前記第１のランク内のメモリモジュールの数と一致し、該第２のランク内のメモリモジュールの各セット内に存在する該メモリポートは、該第２のセット内の各メモリポートを介して、該第１のランク内の該メモリモジュールへ結合されている、請求項３５に記載のメモリシステム。
【請求項３７】
前記第２のランク内のメモリモジュールの複数のセットのそれぞれが、前記第１のランク内のそれぞれ１つのメモリモジュールへ結合されており、該第１のランク内のメモリモジュールのそれぞれが、該第１のランク内のメモリモジュールへ結合されたメモリポートを含み、該第２のランク内のメモリモジュールの各セットが、該第１のランク内のメモリモジュールと一致している、請求項３５に記載のメモリシステム。
【請求項３８】
前記第１のランク内の各メモリモジュールに存在する前記メモリハブが、クロスバースイッチであって、前記第１のセット内にあるメモリポートのうちの任意のメモリポートを、前記第２のセット内のメモリポートのうちの任意のメモリポートと、前記メモリデバイスのうちの任意のメモリデバイスとへ結合するように動作可能な、クロスバースイッチを備える、請求項３５に記載のメモリシステム。
【請求項３９】
前記クロスバースイッチが、前記第２のセット内のメモリポートのうち任意のメモリポートを、前記メモリデバイスのうち任意のメモリデバイスへ結合するようにさらに動作可能である、請求項３５に記載のメモリシステム。
【請求項４０】
複数のメモリリクエストポートからメモリデバイスへアクセスする方法であって、該方法は、
第１の複数のメモリモジュールを第１のランク内に配置することであって、該第１のランク内のメモリモジュールのそれぞれが複数のメモリデバイスを含む、ことと、
第２の複数のメモリモジュールを第２のランク内に配置することであって、該第２のランク内のメモリモジュールのそれぞれが複数のメモリデバイスを含む、ことと、
該メモリリクエストポートのうちの任意のメモリリクエストポートから、該第１のランク内のメモリモジュールのそれぞれにアクセスすることと、
該メモリリクエストポートのうちの任意のメモリリクエストポートから、該第１のランク内のメモリモジュールのうちの少なくとも１つを介して、該第２のランク内のメモリモジュールのそれぞれにアクセスすることと
を包含する、方法。
【請求項４１】
前記第１のランク内のメモリモジュールのうちの少なくとも１つを介して前記第２のランク内のメモリモジュールのそれぞれにアクセスする動作が、該第１のランク内のメモリモジュールのそれぞれを介して該第２のランク内のメモリモジュールのそれぞれにアクセスすることを含む、請求項４０に記載の方法。
【請求項４２】
前記第１のランク内のメモリモジュールのうちの少なくとも１つを介して前記第２のランク内のメモリモジュールのそれぞれにアクセスする動作が、該第２のランク内のメモリモジュールのセットに対応する該第１のランク内のメモリモジュールを介して、該第２のランク内のメモリモジュールのセットにアクセスすることを含む、請求項４０に記載の方法。
【請求項４３】
前記第２のランク内のメモリモジュールのうちの少なくとも一部から、前記第１のランク内のメモリモジュールのそれぞれにアクセスすることをさらに包含する、請求項４０に記載の方法。
【請求項４４】
前記メモリリクエストポートのうちの任意のメモリリクエストポートから、前記第１のランク内のメモリモジュールのうちの少なくとも１つを介して前記第２のランク内のメモリモジュールのそれぞれにアクセスする動作が、該メモリリクエストポートのうちの１つのメモリリクエストポートから該第２のランク内のメモリモジュールへアクセスするのに介する、該第１のランク内のメモリモジュールの数を変化させ、アクセスされる該第２のランク内の該メモリリクエストポートと該メモリモジュールとの間のデータ帯域幅を変動させる、請求項４０に記載の方法。
【請求項４５】
前記メモリモジュールのうちの少なくとも一部における書き込みメモリアクセスを蓄積し、記憶された該書き込みメモリアクセスを連続的に実行することをさらに包含する、請求項４０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータシステムに関し、より詳細には、様々な構成にて複数のメモリハブモジュールと結合され得る複数のプロセッサまたはその他のメモリアクセスデバイスを有する、コンピュータシステムに関する。
【背景技術】
【０００２】
コンピュータシステムは、プロセッサによってアクセスされる命令およびデータを格納するためにダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）デバイス等のメモリデバイスを用いる。一般的なコンピュータシステムにおいて、プロセッサは、プロセッサバスおよびメモリ制御装置を介してシステムメモリと通信する。プロセッサはメモリリクエストを発する。メモリリクエストは、読み取りコマンドのようなメモリコマンドと、データまたは命令が読み取られる位置あるいはデータまたは命令が書き込まれる位置を特定する、アドレスとを含む。メモリ制御装置は適切なコマンド信号を生成するために、データおよびアドレスと、さらに、システムメモリに適用されている行と列のアドレスとを用いる。データはコマンドおよびデータに応答し、システムメモリとプロセッサとの間で伝達される。メモリ制御装置はシステム制御装置の一部であることが多く、プロセッサバスをＰＣＩバス等の拡張バスへ結合するためのバスブリッジ回路をも含む。
【０００３】
メモリデバイスの処理速度が向上し続けているが、この処理速度の向上は、プロセッサの処理速度の向上のペースと合っていない。その結果、プロセッサと、そのプロセッサに結合されるメモリデバイスとの間のデータ帯域幅は、プロセッサのデータ帯域幅の性能よりも著しく低い。プロセッサとメモリデバイスとの間のデータ帯域幅は、プロセッサとメモリデバイスとの間のさらに低いデータ帯域幅によってより大きく制限されている。
【０００４】
プロセッサとメモリデバイスとの間の制限された帯域幅に加え、コンピュータシステムの性能も待ち時間の問題によって制限されている。待ち時間の問題は、メモリデバイスからデータを読み取るための所要時間を延長する。より具体的には、メモリデバイス読み取りコマンドがシンクロナスＤＲＡＭ（「ＳＤＲＡＭ」）デバイスのようなメモリデバイスへ結合されると、読み取られるデータは、複数のクロック周期の遅れの後にのみＳＤＲＡＭデバイスから出力される。したがって、ＳＤＲＡＭデバイスは高速のデータレートにて大量のデータを同時に出力できるが、初期にデータを提供する際の待ち時間は、このようなＳＤＲＡＭデバイスを用いたコンピュータシステムの処理速度を著しく低下させる可能性がある。
【０００５】
メモリの待ち時間の問題を低減するための１つのアプローチを図１に示す。図１に示すように、コンピュータシステム１０は複数のメモリモジュール２０ａ〜ｆへ結合されたプロセッサ１４を含むが、これよりも少数または多数のメモリモジュール２０が用いられ得る。メモリモジュール２０のそれぞれが、複数のメモリデバイス２８へ結合されたメモリハブ２４を含む。メモリデバイスはＳＤＲＡＭデバイスであり得る。メモリモジュール２０は、一方向性の入力バス３０と一方向性の出力バス３８とを介して、プロセッサ１４と結合され、またメモリモジュール２０同士で結合されているように図１に示してある。しかしながら、メモリモジュール２０が二方向性のバス（図示せず）によってプロセッサ１４と結合されメモリモジュール２０同士で結合され得るという点を理解されたい。
【０００６】
メモリモジュール２０は各バス３０および３８が２点間のみで結合されるポイントツーポイント構成にて結合されているように図１に示してあるが、その他のバスシステムが代替的に用いられ得る。たとえば図２Ａに示す切り替え式のバスシステムや図２Ｂに示す共有のバスシステム、あるいは一部の他のバスシステムも用いられ得る。図２Ａに示す切り替え式のバスシステムは、スイッチング回路４２へ結合されたプロセッサ４０を含む。スイッチング回路４２は複数のメモリモジュール４４ａ〜ｄと、グラフィックプロセッサ４６と、Ｉ／Ｏデバイス４８とへ結合されている。
動作において、スイッチング回路４２は、メモリモジュール４４ａ〜ｄ、グラフィックプロセッサ４６、Ｉ／Ｏデバイス４８のうちのいずれか１つへプロセッサ４０を結合する。
図２Ｂに示す共有のバスシステムは、共有のバスシステム５８を介して複数のメモリモジュール５４ａ〜ｃと結合されたプロセッサ５０を含む。
【０００７】
複数のプロセッサを複数のメモリモジュールへ結合するために上記のうち任意のアーキテクチャが用いられ得る。たとえば図３に示すように、プロセッサ６０およびプロセッサ６２の２つのプロセッサは、それぞれの二方向性のバスシステム６４を介してそれぞれのメモリモジュールのセット６６ａ〜ｅおよび６８ａ〜ｅへ結合されている。メモリモジュール６６ａ〜ｅおよび６８ａ〜ｅのそれぞれは、複数のメモリデバイス２８へ結合されたメモリハブ２４を含んでいる。
【０００８】
図１および図３に示すメモリハブアーキテクチャは、プロセッサが複数のメモリデバイスへ直接的に結合される、あるいはシステムやメモリ制御装置を介して結合される、アーキテクチャをはるかに上回る性能を提供することができる。しかしながら、これらのアーキテクチャもいくらかの制限を受けている。たとえば図１に示すアーキテクチャは、プロセッサ１４がメモリモジュール２０ａ〜ｆへアクセスできるような方法において、あまり柔軟性を提供しない。たとえば、バス３０〜３８が３２ビットのデータバスを含んでいる場合、仮にそれよりも少ないデータビット数がメモリモジュール２０ａ〜ｆから読み取られ、メモリモジュール２０ａ〜ｆへ書き込まれるとしても、メモリモジュール２０ａ〜ｆへのアクセスは全て３２ビットのダブルワードである。
【０００９】
図１および図３に示すアーキテクチャの柔軟性もまた、その他の点で制限されている。たとえば図３に示すアーキテクチャは、プロセッサ６０がメモリモジュール６６ａ〜ｅへ、またプロセッサ６２がメモリモジュール６８ａ〜ｅへ、それぞれアクセスできるような方法において、あまり柔軟性を提供しない。プロセッサ６０はメモリモジュール６６ａ〜ｆのいずれにもアクセスでき、プロセッサ６２はメモリモジュール６８ａ〜ｅのいずれにもアクセスできるが、プロセッサ６０はメモリモジュール６８ａ〜ｅのいずれにもアクセスできず、またプロセッサ６２はメモリモジュール６６ａ〜ｅのいずれにもアクセスできない。結果として、プロセッサ６０がメモリモジュール６６ａ〜ｅの記憶容量に達するのに十分なデータをメモリモジュール６６ａ〜ｅへ書き込むと、メモリモジュール６８ａ〜ｅに十分な未使用の容量があり得る場合であっても、プロセッサ６０はそれ以上データを記憶できない。最後に、メモリモジュール６６およびメモリモジュール６８は、プロセッサ６０とプロセッサ６２とが相互に通信するのを可能にするために用いることができない。
【００１０】
図１および図３に示すメモリアーキテクチャの別の制限は、プロセッサ１４、プロセッサ６０、およびプロセッサ６２がそれぞれのメモリモジュール２０、メモリモジュール６６、メモリモジュール６８へアクセスする際に受ける比較的長い待ち時間である。各メモリモジュールがそれぞれとプロセッサとの間に存在する任意のメモリモジュールを介してアクセスされる限り、介在するメモリモジュールを通じて、アドレス信号と、データ信号と、制御信号とを結合する際に実質的な遅延が生じ得る。さらに、メモリモジュール２０、メモリモジュール６６、メモリモジュール６８のうちの任意のメモリモジュールに障害が発生した場合、その障害のあるメモリモジュールを介してアクセスされなければならないメモリモジュールは使用不可能になる。
【００１１】
したがって、比較的短いメモリアクセス待ち時間を提供し、かつ複数のプロセッサがハブベースのメモリモジュールへアクセスできる方法において大きな柔軟性を有することを可能にするような、比較的耐性のあるメモリシステムアーキテクチャが必要である。
【発明の開示】
【課題を解決するための手段】
【００１２】
メモリシステムは、メモリモジュールの第１のランクへ結合された複数のメモリリクエスタを含む。第１のランクにあるメモリモジュールは、多数のメモリリクエスタと数が対応しているメモリポートの第１のセットをそれぞれ含んでいる。第１のランクにある各メモリポートは、それぞれメモリリクエスタのうちの１つと結合されている。第１のランクにある各メモリポートは、メモリポートの第２のセットをさらに含んでいる。メモリシステムはメモリモジュールの第２のランクをも含んでいる。第２のランクのメモリモジュールはそれぞれ少なくとも１つのメモリポートを有し、この少なくとも１つのメモリポートは、第２のセット内のメモリポートを介して第１のランクにある少なくとも１つのメモリモジュールと結合されている。第１のランクおよび第２のランク内にあるメモリモジュールのそれぞれは複数のメモリデバイスおよびメモリハブを含んでおり、このメモリデバイスおよびメモリハブは、第１のセットおよび任意の第２のセット内のメモリデバイスおよびメモリポートへ結合されている。メモリハブは、好ましくは、複数のメモリ制御装置と、複数のリンクインタフェースと、クロスバースイッチと、複数のメモリポートとを含む。複数のメモリ制御装置はモジュール内のそれぞれのメモリデバイスへ結合されており、複数のリンクインタフェースはそれぞれメモリリクエスタのうちの１つか別のメモリモジュールかのいずれかへ結合されている。また、クロスバースイッチはそれぞれのリンクインタフェースへ結合された第１の複数のスイッチポートを有し、複数のメモリポートはそれぞれのメモリ制御装置へ結合されている。クロスバースイッチは、リンクインタフェースのそれぞれを任意の１つのメモリ制御装置へ選択的に結合するように動作可能である。
【発明を実施するための最良の形態】
【００１３】
本発明の一実施例に基づく、プロセッサベースの電子システム１００を図４に示す。システム１００は、３つのプロセッサ１０４、１０６、１０８と、グラフィック制御装置のようなダイレクトメモリアクセス（「ＤＭＡ」）デバイス１１０とを含む。ＤＭＡデバイス１１０、およびプロセッサ１０４〜１０８のそれぞれは、４つのメモリアクセスポート１１２、１１４、１１６、１１８を含む。ポート１１２〜１１８は、好ましくは、データポートと、別個の制御ポートおよびアドレスポートあるいは共有の制御ポートおよびアドレスポートとを含む。しかしながら、パケットを送受信するためのポート等、一部のその他のメモリポート構成が用いられ得るという点は理解されよう。システム１００は、４つのメモリモジュール１３２、１３４、１３６、１３８の第１のランク１３０をさらに含む。４つのメモリモジュールのそれぞれは、４つのメモリアクセスポート１４２、１４４、１４６、１４８の第１のセットを含んでいる。以下で説明するように、メモリモジュール１３２〜１３８のそれぞれはメモリハブを含んでおり、メモリハブは８つのメモリデバイスへ結合されている。メモリデバイスは、好ましくはダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）であり、より好ましくは、シンクロナスＤＲＡＭ（「ＳＤＲＡＭ」）である。しかしながら、メモリモジュール１３２〜１３８のそれぞれに存在するメモリハブには、より多数または少数のメモリデバイスが結合され得るという点が理解されよう。
【００１４】
第１のプロセッサ１０４のメモリアクセスポート１１２、１１４、１１６、１１８は、それぞれのバス１６２、１６４、１６６、１６８を介してメモリモジュール１３２、１３４、１３６、１３８のそれぞれのメモリアクセスポート１４２へ、それぞれ結合されている。同様に、第２のプロセッサ１０６のメモリアクセスポート１１２、１１４、１１６、１１８は、それぞれのバス１７２、１７４、１７６、１７８を介してメモリモジュール１３２、１３４、１３６、１３８のそれぞれのメモリアクセスポート１４４へ、それぞれ結合されている。また、第３のプロセッサ１０８のメモリアクセスポート１１２、１１４、１１６、１１８は、それぞれのバス１８２、１８４、１８６、１８８を介してメモリモジュール１３２、１３４、１３６、１３８のそれぞれのメモリアクセスポート１４６へ、それぞれ結合されている。その結果、プロセッサ１０４〜１０８のうちのいずれかがメモリモジュール１３２〜１３８のうちの任意の（ａｎｙ  ｏｆ）メモリモジュールへアクセスできる。同様の方法で、ＤＭＡデバイス１１０のメモリアクセスポート１１２、１１４、１１６、１１８は、それぞれのバス１９２、１９４、１９６、１９８を介してメモリモジュール１３２、１３４、１３６、１３８のそれぞれのメモリアクセスポート１４８へ、それぞれ結合されている。したがって、ＤＭＡデバイス１１０もメモリモジュール１３２、１３４、１３６、１３８のそれぞれへアクセスできる。
【００１５】
メモリモジュール１３２、１３４、１３６、１３８のそれぞれは、４つのメモリアクセスポート２０２、２０４、２０６、２０８の第２のセットをさらに含んでいる。４つのメモリアクセスポート２０２、２０４、２０６、２０８は、４つのメモリモジュール２１２、２１４、２１６、２１８の第２のランク２１０へ結合されている。より具体的には、メモリモジュール１３２のメモリアクセスポート２０２、２０４、２０６、２０８は、それぞれのバス２３２、２３４、２３６、２３８を介してメモリモジュール２１２、２１４、２１６、２１８のそれぞれのメモリアクセスポート２２２へ、それぞれ結合されている。同様に、メモリモジュール１３４のメモリアクセスポート２０２、２０４、２０６、２０８は、それぞれのバス２４２、２４４、２４６、２４８を介してメモリモジュール２１２、２１４、２１６、２１８のそれぞれのメモリアクセスポート２２４へ、それぞれ結合されている。また、メモリモジュール１３６のメモリアクセスポート２０２、２０４、２０６、２０８は、それぞれのバス２５２、２５４、２５６、２５８を介してメモリモジュール２１２、２１４、２１６、２１８のそれぞれのメモリアクセスポート２２６へ、それぞれ結合されている。最後に、メモリモジュール１３８のメモリアクセスポート２０２、２０４、２０６、２０８は、それぞれのバス２６２、２６４、２６６、２６８を介してメモリモジュール２１２、２１４、２１６、２１８のそれぞれのメモリアクセスポート２２８へ、それぞれ結合されている。
【００１６】
第２のランク２１０内のメモリモジュール２１２〜２１８のそれぞれは、第１のランク１３０内のメモリモジュール１３２〜１３８と同様、８つのメモリデバイスと結合された、メモリハブを含む。以下でさらに詳細に説明するが、メモリモジュール１３２〜１３８の第１のランク１３０内に存在するメモリハブのそれぞれは、メモリアクセスポート１１２〜１１８のうちの任意のメモリアクセスポートをメモリアクセスポート２０２〜２０８のうちの任意のメモリアクセスポートへ結合することができる、クロスバースイッチ（図４には図示せず）を含む。同様の方法で、第２のランク２１０内のメモリモジュール２１２〜２１８のそれぞれに存在するメモリハブは、メモリアクセスポート２０２〜２０８のうちの任意のメモリアクセスポートをメモリアクセスポート２２２〜２２８のうちの任意のメモリアクセスポートへ結合することができる。その結果、プロセッサ１０４〜１０８およびＤＭＡデバイス１０８のうちの任意のものがメモリモジュール１３２〜１３８のうちの任意のメモリモジュールへ直接アクセスでき、また、メモリモジュール１３２〜１３８を介してメモリモジュール２１２〜２１８のうちの任意のメモリモジュールへアクセスできる。プロセッサ１０４〜１０８とメモリモジュール１３２〜１３８およびメモリモジュール２１２〜２１８との間、ならびにＤＭＡデバイス１１０とメモリモジュール１３２〜１３８およびメモリモジュール２１２〜２１８との間に存在する密な近接によって、結果的に図１および図３に示すタイプのメモリアーキテクチャを用いて達成できる待ち時間の短さに比べて比較的短い待ち時間につながる。
【００１７】
図４に示すメモリトポロジのさらなる利点は、プロセッサ１０４〜１０８のうちの任意のプロセッサまたはＤＭＡデバイス１１０と、第２のランク２１０内のメモリモジュール２１２〜２１８のうちの任意のメモリモジュールとの間のデータ帯域幅を、単純にメモリモジュール２１２〜２１８への相互接続部の数を変化させることによって変動させることができるという点である。たとえば、バスのそれぞれが１６ビット幅である場合、プロセッサ１０６は、１６ビットのデータバスを介してメモリモジュール２１２〜２１８のうちの任意のメモリモジュールへ結合され得る。これは、プロセッサ１０６からモジュール１３２〜１３８のうちの１つのモジュールへ延びているバスのうち１つのみのバスと、モジュール１３２〜１３８のうちの１つのモジュールからモジュール２１２〜２１８のうちの１つのモジュールへ延びているバスのうち１つのみのバスとを用いることによって可能である。プロセッサ１０６は、３２ビットのデータバスを介してメモリモジュール２１２〜２１８のうちの任意のメモリモジュールへ結合され得る。これは、モジュール１３２〜１３８のうちの２つのモジュールへ結合され、モジュール１３２〜１３８のうちのこれらの２つのモジュールのそれぞれから、モジュール２１２〜２１８のうちの１つのモジュールへ、それぞれのバスを介して結合されることによって可能である。プロセッサ１０６は、４８ビットのデータバスを介してメモリモジュール２１２〜２１８のうちの任意のメモリモジュールへ結合され得る。これは、モジュール１３２〜１３８のうちの３つのモジュールへ結合され、モジュール１３２〜１３８のうちのこれらの３つのモジュールのそれぞれから、モジュール２１２〜２１８のうちの１つのモジュールへ、それぞれのバスを介して結合されることによって可能である。最後に、プロセッサ１０６は、６４ビットのデータバスを介してメモリモジュール２１２〜２１８のうちの任意のメモリモジュールへ結合され得る。これは、モジュール１３２〜１３８の４つのモジュール全てへ結合され、これらの４つのモジュール１３２〜１３８のそれぞれから、モジュール２１２〜２１８のうちの１つのモジュールへ、それぞれのバスを介して結合されることによって可能である。
【００１８】
図４のメモリモジュール１３２〜１３８およびメモリモジュール２１２〜２１８において用いられ得る、メモリハブ３００の一実施形態を図５に示す。メモリハブ３００は、４つのリンクインタフェース３０４ａ〜ｄを含み、リンクインタフェース３０４ａ〜ｄは図４に示す第１のセット内のバス等のそれぞれのバスへ結合されている。同様に、４つの追加のリンクインタフェース３０８ａ〜ｄが含まれ、リンクインタフェース３０８ａ〜ｄも、図４に示す第２のセット内のバス等のそれぞれのバスへ結合されている。リンクインタフェース３０４、３０８の全てのリンクインタフェースはクロスバースイッチ３１０へ結合されている。クロスバースイッチ３１０は、従来の設計によるものまたは今後開発される設計によるものであり得る。クロスバースイッチ３１０は、リンクインタフェース３０４ａ〜ｄのうちの任意のリンクインタフェースを、リンクインタフェース３０８ａ〜ｄのうちの任意のリンクインタフェースへ結合することができる。このことについては図４に関連して先に述べたとおりである。リンクインタフェース３０４ａ〜ｄ、およびリンクインタフェース３０８ａ〜ｄは、一方向性のインタフェースまたは二方向性のインタフェースのいずれでもよい。また、リンクインタフェース３０４ａ〜ｄ、およびリンクインタフェース３０８ａ〜ｄへ結合されたメモリアクセスあるいはこれらのリンクインタフェースから結合されたメモリアクセスの性質は、従来のＤＲＡＭアドレス、制御信号およびデータ信号、共有された制御信号およびアドレス信号、ならびにパケット化されたメモリアクセス信号を含め、要望どおりに変えることができる。
【００１９】
クロスバースイッチ３１０は、リンクインタフェース３０４ａ〜ｄ、リンクインタフェース３０８ａ〜ｄのうちの任意のリンクインタフェースを、４つのＤＲＡＭ制御装置３１４ａ〜ｄへ結合することができる。ＤＲＡＭ制御装置３１４ａ〜ｄのそれぞれは複数のＤＲＡＭデバイス（図５には図示せず）へ結合されている。ＤＲＡＭ制御装置３１４ａ〜ｄは、従来のＤＲＡＭ制御装置、またはＤＲＡＭ制御装置用に今後開発される一部の設計のものであり得る。当然ながら、ＤＲＡＭ制御装置３１４ａ〜ｄの詳細な構造および動作はメモリモジュール内で用いられているＤＲＡＭデバイスの性質に依存する。クロスバースイッチ３１０は、リンクインタフェース３０４ａ〜ｄをＤＲＡＭ制御装置３１４ａ〜ｄへ結合し、複数のメモリアクセスデバイスのうち任意のデバイスが制御装置３１４ａ〜ｄへ結合されたＤＲＡＭデバイスへデータを書き込むことと、制御装置３１４ａ〜ｄへ結合されたＤＲＡＭデバイスからデータを読み取ることとを可能にする。このことについても、図５に関連して上で説明した。クロスバースイッチ３１０は、リンクインタフェース３０８ａ〜ｄをＤＲＡＭ制御装置３１４ａ〜ｄへ結合し、メモリハブ３００を含んでいる他のメモリモジュールから、ＤＲＡＭ制御装置３１４ａ〜ｄへ結合されたＤＲＡＭデバイスへ、あるいはＤＲＡＭ制御装置３１４ａ〜ｄへ結合されたＤＲＡＭデバイスから、メモリハブ３００を含んでいる他のメモリモジュールへ、任意のデータが送信されることを可能にする。
【００２０】
メモリハブ３００は、各ＤＲＡＭ制御装置３１４ａ〜ｄが貢献するＤＲＡＭデバイスのそれぞれにつき、キャッシュメモリ３２０ａ〜ｄと、書き込みバッファ３２４ａ〜ｄとを含んでいる。当技術分野においては公知であるように、キャッシュメモリ３２０ａ〜ｄはスタティックランダムアクセスメモリ（「ＳＲＡＭ」）デバイスであり得、各ＤＲＡＭ制御装置３１４ａ〜ｄが貢献するＤＲＡＭデバイスに格納されている、最近アクセスしたデータまたは頻繁にアクセスされているデータを記憶する。ＤＲＡＭデバイスがメモリ読み取りリクエストを扱ってビジー状態である場合、または他の読み取りリクエストがペンディングしている場合、書き込みバッファ３２４ａ〜ｄは、ＤＲＡＭ制御装置３１４ａ〜ｄの各１つの制御装置が扱うＤＲＡＭデバイスのそれぞれに、書き込みアドレスおよびデータを蓄積する。この方法でメモリ書き込みリクエストを蓄積することによって、交互の書き込みリクエストと読み取りリクエストとに伴う遅延が起こる必要はなく、これらのリクエストはより効率的にパイプライン方式で処理され得る。
【００２１】
上記のように、データは、メモリハブ３００を含んでいる１つのメモリモジュールから、メモリハブ３００を含んでいる別のメモリモジュールへと伝達され得る。これらのモジュール間のデータ伝達は、ダイレクトメモリアクセス（「ＤＭＡ」）エンジン３３０によって制御される。ダイレクトメモリアクセスエンジン３３０は従来の設計または今後開発される設計のものであり得る。部分的に障害のあるメモリモジュールの動作を無効にする前に、部分的に障害のあるメモリモジュールから適切に機能するメモリモジュールへデータを伝達するのにも、ＤＭＡエンジン３３０が用いられ得る。
【００２２】
メモリハブ３００は一般的に、図５に示すものの他にも構成要素を含むが、これらの構成要素については、簡潔性または明確性のために省略してある。また、一部の応用において、図５に示す構成要素は省略され得る。たとえば、書き込みアクセス／読み取りアクセスの切り替えが可能な場合、書き込みバッファ３２４ａ〜ｄは省略され得る。また、図５に示すメモリハブ３００は、４つのリンクインタフェース３０４ａ〜ｄおよび３０８ａ〜ｄの２つのセットと、４つのＤＲＡＭ制御装置３１４ａ〜ｄとを含んでいるが、リンクインタフェースのセット数、各セット内のリンクインタフェース数、およびＤＲＡＭ制御装置数は要望どおりに変えられ得る。
【００２３】
プロセッサベースの電子システム３５０の一代替実施形態を図６に示す。システム３５０は、プロセッサまたはダイレクトメモリアクセスデバイス等の４つのメモリリクエスタ３５２ａ〜ｄを含む。メモリリクエスタ３５２ａ〜ｄのそれぞれは、全体として３５８に示すバスを介して４つのメモリモジュール３５６ａ〜ｄの第１のランク３５４へ結合されている。このように、メモリモジュール３５６ａ〜ｄは図４の実施形態と同様に構成されている。しかしながら、図４の実施形態のように第１のランク３５４内のメモリモジュール３５６のそれぞれを、メモリモジュールの第２のランク内にあるメモリモジュールのそれぞれへ結合する代わりに、メモリモジュール３５６ａ〜ｄは第２のランク３６０内の４つのメモリモジュールの各セットへ、それぞれ結合される。したがって、第１のメモリモジュール３５６ａは４つのメモリモジュール３６２ａ〜ｄへ結合され、第２のメモリモジュール３５６ｂは４つのメモリモジュール３６２ｅ〜ｈへ結合され、第３のメモリモジュール３５６ｃは４つのメモリモジュール３６２ｉ〜ｌへ結合され、第４のメモリモジュール３５６ｄは４つのメモリモジュール３６２ｍ〜ｐへ結合される。図４に示すトポグラフィに対し、図６に示すトポグラフィの利点は、メモリモジュール３６２の第２のランク３６０が、図４に示すトポグラフィを用いた第２のランク２１０に存在するメモリモジュールよりも大きなメモリ容量を提供するという点である。しかしながら、図６に示すメモリトポグラフィの不都合な点は、このトポグラフィがより小さな帯域幅を提供し、第２のランク３６０内のメモリモジュール３６２にアクセスする際により低い柔軟性を提供するという点である。
【００２４】
以上のことから、本発明の特定の実施形態を例示説明の目的で本明細書に記載したが、本発明の精神および範囲を逸脱することなく様々な修正がなされ得るということが理解されよう。たとえば、プロセッサ１０４〜１０８およびＤＡＭデバイス１１０はメモリモジュール１３２〜１３８へ直接結合されているように図示されているが、これらはバスブリッジのようなその他のデバイスを介して結合され得るという点が理解されよう。また、図４に示すシステム１００および図６に示すシステム３５０は通常、図示したものの他にも構成要素を含む。したがって、本発明は、添付の請求項によって限定される以外には限定されない。
【図面の簡単な説明】
【００２５】
【図１】従来のプロセッサベースの電子システムのブロック図である。該電子システムは複数のメモリモジュールを有し、複数のメモリモジュールのそれぞれは複数のメモリデバイスへ結合されたメモリハブを含んでいる。
【図２Ａ】メモリモジュールを複数のプロセッサへ結合するための多様な従来のアーキテクチャを示す、ブロック図である。
【図２Ｂ】メモリモジュールを複数のプロセッサへ結合するための多様な従来のアーキテクチャを示す、ブロック図である。
【図３】従来のプロセッサベースの電子システムのブロック図である。該電子システムはそれぞれのメモリモジュールのセットへ結合された複数のプロセッサを含んでおり、メモリモジュールのそれぞれは複数のメモリデバイスへ結合されたメモリハブを含んでいる。
【図４】本発明の一実施形態に基づく、複数のメモリモジュールへ結合されたプロセッサベースのシステムのブロック図である。
【図５】図４および図６のプロセッサベースのシステムにおいて用いられ得るメモリモジュールの、ブロック図である。
【図６】本発明の別の実施形態に基づく、複数のメモリモジュールへ結合されたプロセッサベースのシステムのブロック図である。
【図１】
2007504530.tif 000003
【図２Ａ】
2007504530.tif 000004
【図２Ｂ】
2007504530.tif 000005
【図３】
2007504530.tif 000006
【図４】
2007504530.tif 000007
【図５】
2007504530.tif 000008
【図６】
2007504530.tif 000009
【国際調査報告】
2007504530.tif 000010