(57)【要約】  本メモリシステムは、それぞれがメモリハブを含む複数のメモリモジュールと結合されているメモリハブコントローラを含む。メモリハブはそれぞれ、複数のメモリトランザクションのそれぞれのためのコマンドヘッダーおよびデータを、それぞれが既定数のレーンを含むレーングループに編成するデータ編成システムを有する送信インタフェースを含む。それぞれのレーンは、パラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットのいずれかを含む。レーングループは次に、レーンのシリアルストリームに変換され、高速バスを通してメモリハブから送信される。レーングループは、それらがコマンドヘッダーまたはデータのいずれかを含むレーンで常に満たされるように、編成される。結果として、メモリハブからのメモリトランザクションの転送の間、高速バスは決してアイドル中にならず、これにより、メモリシステムのメモリ処理能力を最大化する。
2007529828.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリデバイスと、
前記メモリデバイスに結合されたメモリコントローラと、
前記メモリコントローラに結合された少なくとも１つの受信インタフェースと、
それぞれの送信インタフェースが、コマンドヘッダー、および可変数のデータ・ビットを有するデータをそれぞれ備えるメモリトランザクションを受信し、それぞれの送信インタフェースが、複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む複数のレーンをそれぞれが含むレーングループに前記コマンドヘッダーおよびデータを編成するデータ編成システムを含み、前記データ編成システムが、各レーングループの前記レーンのすべてがコマンドヘッダー・ビットまたはデータ・ビットのいずれかで満たされるように、前記レーングループを編成し、前記データ編成システムが、前記送信インタフェースによる送信のために、前記レーングループのそれぞれを前記レーンのシリアルストリームに変換するように動作可能であり、前記送信されるレーンのそれぞれが、複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む、前記メモリモジュールからメモリトランザクションを送信するために、前記メモリコントローラに結合された少なくとも１つの送信インタフェースと
を備えることを特徴とするメモリハブと
を備えることを特徴とするメモリモジュール。
【請求項２】
前記レーングループのそれぞれが８つのレーンを備えることを特徴とする請求項１に記載のメモリモジュール。
【請求項３】
前記レーンのそれぞれがパラレル３２ビットのコマンドヘッダーまたはデータを備えることを特徴とする請求項１に記載のメモリモジュール。
【請求項４】
前記少なくとも１つの送信インタフェースが、それぞれが前記データ編成システムを備えるアップストリーム送信インタフェースおよびダウンストリーム送信インタフェースを備えることを特徴とする請求項１に記載のメモリモジュール。
【請求項５】
前記メモリデバイスがＤＲＡＭ（Dynamic Random Access Memory）デバイスを備えることを特徴とする請求項１に記載のメモリモジュール。
【請求項６】
前記データ編成システムが、
各レーングループのすべての前記レーンが、コマンドヘッダーまたはデータ・ビットで満たされるように、前記レーングループを編成し、コマンドヘッダー・ビットまたはデータ・ビットのいずれかを備えた複数のレーンをそれぞれが含むレーングループに、前記コマンドヘッダーおよびデータを編成するデータ編成ユニットと、
前記送信インタフェースによる送信のために前記レーンのシリアルストリームに、前記レーングループのそれぞれを変換するパラレルシリアル変換器と
を備えることを特徴とする請求項１に記載のメモリモジュール。
【請求項７】
前記データ編成ユニットが、
前記トランザクションのそれぞれのためのデータが前記データバッファから選択的に渡される、複数の前記トランザクションのための個々のデータを格納するデータバッファと、
前記トランザクションのそれぞれのための前記コマンドヘッダーが、前記データバッファから渡される前記対応するトランザクションのためのデータと共に、前記コマンド待ち行列から選択的に渡される、複数の前記トランザクションのための個々のコマンドヘッダーを格納するコマンド待ち行列と
を備えることを特徴とする請求項６に記載のメモリモジュール。
【請求項８】
前記データ編成ユニットが、
前記マルチプレクサが、前記トランザクションのそれぞれのためのデータ、および前記トランザクションのそれぞれのためのコマンドヘッダーを、マルチプレクサ制御信号に対応して出力ポートに結合するように動作可能である、前記トランザクションのそれぞれのための前記データバッファ中に格納されている前記データ、および前記トランザクションのそれぞれのための前記コマンド待ち行列中に格納されている前記コマンドヘッダーを受信するために結合されているマルチプレクサと、
前記データおよびコマンドヘッダーを示す情報に対応する前記制御信号を生成し、前記トランザクションの少なくとも１つのために、データ、またはコマンドヘッダーおよびデータのいずれかより成るレーングループを、前記マルチプレクサの前記出力ポートに結合するようにさせるように、前記マルチプレクサに動作させる、前記データバッファおよび前記コマンド待ち行列の少なくとも１つに結合され、おのおの前記データバッファおよびコマンド待ち行列中に格納されている前記トランザクションのためのデータおよびコマンドヘッダーを示す前記情報を受け取る調停ユニットと
をさらに備えることを特徴とする請求項７に記載のメモリモジュール。
【請求項９】
前記マルチプレクサの出力ポートにて、前記レーングループを前記レーンのシリアルストリームへ変換するように動作可能である、前記マルチプレクサの前記出力ポートに結合されたパラレルシリアル変換器をさらに備えることを特徴とする請求項８に記載のメモリモジュール。
【請求項１０】
前記データ編成ユニットが、クロック信号のそれぞれの周期の間に前記データ編成から結合されるレーングループのそれぞれにおいて、レーンの数を変えるように構成可能であることを特徴とする請求項１に記載のメモリモジュール。
【請求項１１】
前記トランザクションのそれぞれのための前記コマンドヘッダーおよびデータがメモリパケットを備えることを特徴とする請求項１に記載のメモリモジュール。
【請求項１２】
複数のメモリデバイスと、
前記メモリデバイスに結合されたメモリコントローラと、
前記メモリコントローラに結合された少なくとも１つの受信インタフェースと、
それぞれの送信インタフェースが、コマンドヘッダー、および可変数のデータ・ビットを有するデータをそれぞれが備えるメモリトランザクションを受信し、それぞれの送信インタフェースが、既定の大きさの既定数のサブグループをそれぞれが含むグループに、前記コマンドヘッダーおよびデータを編成するように動作可能なデータ編成システムを含み、前記サブグループのそれぞれが複数のパラレルのコマンドヘッダー・ビットまたはデータ・ビットを含み、サブグループのそれぞれが、各グループがコマンドヘッダー・ビットまたはデータ・ビットのいずれかを含むサブグループで満たされるように、前記第１のトランザクションのための追加的データまたは第２のトランザクションのためのコマンドヘッダーのいずれかを含むサブグループが続く、第１のトランザクションのためのデータを含み、前記データ編成システムが、さらに、前記サブグループのシリアルストリームとして、データのグループのそれぞれを出力するように動作可能である、前記メモリコントローラに結合され、前記メモリモジュールからメモリトランザクションを送信する少なくとも１つの送信インタフェースと
を備えることを特徴とするメモリハブと
を備えることを特徴とするメモリモジュール。
【請求項１３】
前記レーングループのそれぞれが８つのレーンを備えることを特徴とする請求項１２に記載のメモリモジュール。
【請求項１４】
前記レーンのそれぞれがパラレル３２ビットのコマンドヘッダーまたはデータを備えることを特徴とする請求項１２に記載のメモリモジュール。
【請求項１５】
前記少なくとも１つの送信インタフェースが、それぞれが前記データ編成システムを備えるアップストリーム送信インタフェースおよびダウンストリーム送信インタフェースを備えることを特徴とする請求項１２に記載のメモリモジュール。
【請求項１６】
前記メモリデバイスがＤＲＡＭ（Dynamic Random Access Memory）デバイスを備えることを特徴とする請求項１２に記載のメモリモジュール。
【請求項１７】
前記データ編成システムが、
それぞれのグループにおける前記サブグループのすべてがコマンドヘッダー・ビットまたはデータ・ビットのいずれかで満たされるように、前記グループを編成する、それぞれがコマンドヘッダーまたはデータのいずれかを含む複数の前記サブグループを含むグループに、前記コマンドヘッダーおよびデータを編成するデータ編成ユニットと、
前記グループのそれぞれを、前記送信インタフェースによる送信のために前記サブグループのシリアルストリームに変換するパラレルシリアル変換器と
を備えること、を特徴とする請求項１２に記載のメモリモジュール。
【請求項１８】
前記データ編成ユニットが、
前記トランザクションのそれぞれのためのデータが選択的に渡される、複数の前記トランザクションのための個々のデータを格納するデータバッファと、
前記トランザクションのそれぞれのためのコマンドヘッダーが、前記データバッファから渡される前記対応するトランザクションのためのデータと共に前記コマンド待ち行列から選択的に渡される、複数の前記トランザクションのための個々のコマンドヘッダーを格納するコマンド待ち行列と
を備えることを特徴とする請求項１７に記載のメモリモジュール。
【請求項１９】
前記データ編成ユニットが、
前記トランザクションのそれぞれのためのデータ、および前記トランザクションのそれぞれのためのコマンドヘッダーを、マルチプレクサ制御信号に対応する出力ポートに結合するように動作可能である、前記トランザクションのそれぞれのための前記データバッファ中に格納されている前記データ、および前記トランザクションのそれぞれのための前記コマンド待ち行列中に格納されている前記コマンドヘッダーを受信するために結合されているマルチプレクサと、
前記データおよびコマンドヘッダーの示す情報に対応する前記制御信号を生成し、前記トランザクションの少なくとも１つのためのデータ、またはコマンドヘッダーおよびデータのいずれかを含むサブグループのグループを、前記マルチプレクサの前記出力ポートへ結合するよう、前記マルチプレクサにさせるように動作可能である、おのおの前記データバッファおよびコマンド待ち行列中に格納されている前記トランザクションのためのデータおよびコマンドヘッダーを示す情報を受け取るために、前記データバッファおよび前記コマンド待ち行列の少なくとも１つに結合される調停ユニットと
をさらに備えることを特徴とする請求項１８に記載のメモリモジュール。
【請求項２０】
前記マルチプレクサの前記出力ポートにて前記グループを前記サブグループのシリアルストリームに変換するように動作可能である、前記マルチプレクサの前記出力ポートに結合されたパラレルシリアル変換器をさらに備えることを特徴とする請求項１９に記載のメモリモジュール。
【請求項２１】
前記データ編成ユニットが、クロック信号のそれぞれの周期の間、前記データ編成から結合されるレーングループのそれぞれにおけるレーンの数を変えるように構成可能であることを特徴とする請求項１７に記載のメモリモジュール。
【請求項２２】
前記トランザクションのそれぞれのための前記コマンドヘッダーおよびデータがメモリパケットを備えることを特徴とする請求項１２に記載のメモリモジュール。
【請求項２３】
それぞれのレーングループにおける前記レーンのすべてがコマンドヘッダー・ビットまたはデータ・ビットのいずれかで満たされるように前記レーングループを編成する、複数のメモリトランザクションのそれぞれのためのコマンドヘッダーおよびデータを、それぞれが複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む複数のレーンをそれぞれが含む、レーングループに編成するデータ編成ユニットと、
前記レーングループのそれぞれを、それぞれが複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む、前記レーンのシリアルストリームに変換するパラレルシリアル変換器と
を備えることを特徴とするデータ編成システム。
【請求項２４】
前記レーングループのそれぞれが８つのレーンを備えることを備えることを特徴とする請求項２３に記載のデータ編成システム。
【請求項２５】
前記レーンのそれぞれがパラレル３２ビットのコマンドヘッダーまたはデータを備えることを備えることを特徴とする請求項２３に記載のデータ編成システム。
【請求項２６】
前記データ編成ユニットであって、
前記トランザクションのそれぞれのためのデータが前記データバッファから選択的に渡される、複数の前記トランザクションのための個々のデータを格納するデータバッファと、
前記トランザクションのそれぞれのための前記コマンドヘッダーが、前記データバッファから渡される前記対応するトランザクションのためのデータと共に前記コマンド待ち行列から選択的に渡される、複数の前記トランザクションのための個々のコマンドヘッダーを格納するコマンド待ち行列と
を備えることを備えることを特徴とする請求項２３に記載のデータ編成システム。
【請求項２７】
前記データ編成ユニットは、
前記トランザクションのそれぞれのためのデータ、および前記トランザクションのそれぞれのためのコマンドヘッダーをマルチプレクサ制御信号に対応して出力ポートに結合するように動作可能である、前記トランザクションのそれぞれのための前記データバッファ中に格納されているデータ、および前記トランザクションのそれぞれのための前記コマンド待ち行列中に格納されている前記コマンドヘッダーを受信するために結合されているマルチプレクサと、
前記データおよびコマンドヘッダーを示す情報に対応する制御信号を生成し、前記マルチプレクサが、前記トランザクションの少なくとも１つのためのデータ、またはコマンドヘッダーおよびデータのいずれかより成るレーングループを、前記マルチプレクサの前記出力ポートに結合するように動作可能である、前記データバッファおよび前記コマンド待ち行列の少なくとも１つに結合され、それぞれ前記データバッファおよびコマンド待ち行列中に格納されている前記トランザクションのためのデータおよびコマンドヘッダーを示す情報を受け取る調停ユニットと
をさらに備えることを特徴とする請求項２６に記載のデータ編成システム。
【請求項２８】
前記データ編成ユニットが、クロック信号のそれぞれの周期の間、前記データ編成から結合されるレーングループのそれぞれにおいてレーンの数を変えるように構成可能であることを特徴とする請求項２３に記載のデータ編成システム。
【請求項２９】
プロセッサバスを有するプロセッサと、
周辺デバイスポートを有する、前記プロセッサバスに結合されているシステムコントローラと、
前記システムコントローラの前記周辺デバイスポートに結合されている少なくとも１つの入力装置と、
前記システムコントローラの前記周辺デバイスポートに結合されている少なくとも１つの出力装置と、
前記システムコントローラの前記周辺デバイスポートに結合されている少なくとも１つのデータストレージと、
前記プロセッサバスに結合されているメモリハブコントローラと、
メモリモジュールであって、それぞれが、
複数のメモリデバイスと、
前記メモリデバイスに結合されているメモリコントローラと、
バスシステムを通して前記メモリコントローラに結合されている受信インタフェースと、
それぞれがコマンドヘッダー、および可変数のデータ・ビットを有するデータを備えるメモリトランザクションを受信し、それぞれが複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む複数のレーンをそれぞれが含むレーングループに前記コマンドヘッダーおよびデータを編成するデータ編成システムを含む送信インターフェースであって、それぞれのレーングループにおける前記レーンのすべてがコマンドヘッダー・ビットまたはデータ・ビットのいずれかで満たされるように、前記レーングループを編成し、前記データ編成システムが、前記送信インタフェースによる送信のために、前記レーングループのそれぞれを前記レーンのシリアルストリームに変換するように動作可能であり、前記送信されるレーンのそれぞれが複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む前記データ編成システムであって、前記メモリモジュールから前記メモリコントローラへメモリトランザクションを送信するために、前記バスシステムを通して前記メモリコントローラに結合される送信インタフェースと
を備えるメモリハブと
を備える少なくとも１つのバスにより前記メモリハブコントローラに結合されている複数のメモリモジュールと
を備えることを特徴とするプロセッサベースのシステム。
【請求項３０】
前記レーングループのそれぞれが８つのレーンを備えることを特徴とする請求項２９に記載のプロセッサベースのシステム。
【請求項３１】
前記レーンのそれぞれがパラレル３２ビットのコマンドヘッダーまたはデータを備えることを特徴とする請求項２９に記載のプロセッサベースのシステム。
【請求項３２】
前記バスシステムが、前記メモリモジュールによって前記メモリコントローラから送信されるメモリトランザクションを結合するためのダウンストリームのバス、および前記メモリモジュールによって前記メモリコントローラに向かって送信されるメモリトランザクションを結合するためのアップストリームのバスを備え、かつ、前記送信インタフェースが、前記アップストリームのバスに結合されているアップストリーム送信インタフェース、および前記ダウンストリームのバスに結合されているダウンストリーム送信インタフェースを備え、前記アップストリームおよびダウンストリーム送信インタフェースのそれぞれが、個々に１つのデータ編成システムを含むことを特徴とする請求項２９に記載のプロセッサベースのシステム。
【請求項３３】
前記メモリデバイスがＤＲＡＭ（Dynamic Random Access Memory）デバイスを備えることを特徴とする請求項２９に記載のプロセッサベースのシステム。
【請求項３４】
前記データ編成システムは、
それぞれのレーングループにおける前記レーンのすべてがコマンドヘッダー・ビットまたはデータ・ビットで満たされるように、前記レーングループを編成する、コマンドヘッダーまたはデータのいずれかを含む複数のレーンをそれぞれが含むレーングループに前記コマンドヘッダーおよびデータを編成するデータ編成ユニットと、
前記レーングループのそれぞれを、前記送信インタフェースによる送信のための前記レーンのシリアルストリームに変換するパラレルシリアル変換器と
を備えることを特徴とする請求項２９に記載のプロセッサベースのシステム。
【請求項３５】
前記データ編成ユニットは、
前記トランザクションのそれぞれのためのデータが選択的に渡される、複数の前記トランザクションのための個々のデータを格納するデータバッファと、
前記トランザクションのそれぞれのためのコマンドヘッダーが、前記データバッファから渡される対応するトランザクションのための前記データと共に前記コマンド待ち行列から選択的に渡される、複数の前記トランザクションのための個々のコマンドヘッダーを格納するコマンド待ち行列と
を備えることを特徴とする請求項３４に記載のプロセッサベースのシステム。
【請求項３６】
前記データ編成ユニットであって、
前記トランザクションのそれぞれのためのデータ、および前記トランザクションのそれぞれのためのコマンドヘッダーを、マルチプレクサ制御信号に対応して出力ポートに結合するように動作可能である、前記トランザクションのそれぞれのための前記データバッファ中に格納されているデータ、および前記トランザクションのそれぞれのための前記コマンド待ち行列中に格納されているコマンドヘッダーを受信するために結合されているマルチプレクサと、
前記マルチプレクサに、前記トランザクションの少なくとも１つのためのデータ、またはコマンドヘッダーおよびデータのいずれかより成るレーングループを、前記マルチプレクサの出力ポートへ結合させるように、前記データおよびコマンドヘッダーを示す情報に対応する制御信号を生成するように動作可能である、それぞれ前記データバッファおよびコマンド待ち行列中に格納されている前記トランザクションのための前記データおよびコマンドヘッダーを示す情報を受け取るために、前記データバッファおよび前記コマンド待ち行列の少なくとも１つに結合される調停ユニットと
をさらに備えることを特徴とする請求項３５に記載のプロセッサベースのシステム。
【請求項３７】
前記マルチプレクサの前記出力ポートにて、前記レーングループを前記レーンのシリアルストリームに変換するように動作可能である、前記マルチプレクサの前記出力ポートに結合されたパラレルシリアル変換器をさらに備えることを特徴とする請求項３６に記載のプロセッサベースのシステム。
【請求項３８】
前記データ編成ユニットが、クロック信号のそれぞれの周期の間に前記データ編成から結合されるレーングループのそれぞれにおけるレーンの数を変えるように構成可能であることを特徴とする請求項３４に記載のプロセッサベースのシステム。
【請求項３９】
前記トランザクションのそれぞれのための前記コマンドヘッダーおよびデータがメモリパケットを備えることを特徴とする請求項２９に記載のプロセッサベースのシステム。
【請求項４０】
それぞれがコマンドヘッダーおよび可変量のデータを備えるメモリトランザクションを送信する方法であって、
前記サブグループのそれぞれが、複数のパラレルのコマンドヘッダー・ビットまたはデータ・ビットを含み、それぞれのサブグループが、それぞれのグループがコマンドヘッダー・ビットまたはデータ・ビットのいずれかを含むサブグループで満たされるように、前記第１のトランザクションのための追加的データ、または第２のトランザクションのための前記コマンドヘッダーのいずれかを含むサブグループがすぐに続く、前記第１のトランザクションのためのデータを含み、それぞれが既定の大きさの既定数のサブグループを含むグループに、前記コマンドヘッダーおよびデータを編成することと、
それぞれが前記複数のパラレルのコマンドヘッダー・ビットまたはデータ・ビットを含む、前記サブグループのシリアルストリームとしてデータのそれぞれのグループを送信することと
を備えることを特徴とする方法。
【請求項４１】
前記コマンドヘッダーおよびデータをグループに編成する前記動作が、前記コマンドヘッダーおよびデータを、それぞれが８つのサブグループを含むグループに編成することを備えることを特徴とする請求項４０に記載の方法。
【請求項４２】
前記コマンドヘッダーおよびデータを既定数のサブグループを含むグループに編成する前記動作が、それぞれのサブグループがパラレル３２ビットのコマンドヘッダーまたはデータを備えるように、前記コマンドヘッダーおよびデータを編成することを備えることを特徴とする請求項４０に記載の方法。
【請求項４３】
それぞれのグループにおけるサブグループの量を変えることをさらに備えることを特徴とする請求項４０に記載の方法。
【請求項４４】
それぞれがコマンドヘッダーおよび可変量のデータを備えるメモリトランザクションを送信する方法であって、レーンのそれぞれが、複数のパラレルのコマンドヘッダー・ビットまたはデータ・ビットを含み、それぞれのレーングループにおける前記レーンのすべてが、コマンドヘッダー・ビットまたはデータ・ビットのいずれかで満たされるように、前記レーングループが編成される、それぞれが既定の大きさの複数のレーンを含むレーングループに、前記コマンドヘッダーおよびデータを編成することを備えることを特徴とする。
【請求項４５】
それぞれが複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む前記レーンのシリアルストリームに前記レーングループのそれぞれを変換することをさらに備えることを特徴とする請求項４４に記載の方法。
【請求項４６】
前記コマンドヘッダーおよびデータをレーングループに編成する前記動作が、前記コマンドヘッダーおよびデータをそれぞれが８つのレーンを含むレーングループに編成することを備えることを特徴とする請求項４４に記載の方法。
【請求項４７】
前記コマンドヘッダーおよびデータを、それぞれが既定数のレーンを含むレーングループに編成する前記動作が、それぞれのレーンがパラレル３２ビットのコマンドヘッダーまたはデータを備えるように、前記コマンドヘッダーおよびデータを編成することを備えることを特徴とする請求項４４に記載の方法。
【請求項４８】
それぞれのレーングループにおけるレーンの数を変えることをさらに備えることを特徴とする請求項４４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサベースのシステムに、より詳細には、いくつかのメモリデバイスを、プロセッサまたは他のメモリアクセスデバイスへ結合するメモリハブを持つメモリモジュールを有するプロセッサベースのシステムに関する。
【背景技術】
【０００２】
（関連出願の相互参照）
本願は、２００４年３月１８日に出願された、名称「ＳＹＳＴＥＭ  ＡＮＤ  ＭＥＴＨＯＤ  ＦＯＲ  ＯＲＧＡＮＩＺＩＮＧ  ＤＡＴＡ  ＴＲＡＮＳＦＥＲＳ  ＷＩＴＨ  ＭＥＭＯＲＹ  ＨＵＢ  ＭＥＭＯＲＹ  ＭＯＤＵＬＥＳ」の米国特許出願番号１０／８０４，６０８号の優先権を主張するものであり、参照することにより本書に組み込まれる。
【０００３】
コンピュータシステムなどのプロセッサベースのシステムは、プロセッサからアクセスされる命令およびデータを格納するシステムメモリとして、ＤＲＡＭ（Dynamic Random Access Memory）デバイスなどの、メモリデバイスを使用する。典型的なコンピュータシステムにおいて、プロセッサはプロセッサバスおよびメモリコントローラを通してシステムメモリと通信する。プロセッサはメモリ要求を発行し、メモリ要求は、読み出しコマンドなどのメモリコマンド、およびデータまたは命令が読み出され、またはデータまたは命令が書き込まれる位置を指定するアドレスを含む。メモリコントローラは、コマンドおよびアドレスを使用して、行と列のアドレスならびに適切なコマンド信号を発生させ、それは、システムメモリに適用される。コマンドおよびアドレスに応答して、システムメモリとプロセッサの間でデータが転送される。メモリコントローラはしばしば、システムコントローラの一部であって、これは、ＰＣＩバスなどの拡張バスにプロセッサバスを結合するためのバスブリッジ回路をも含む。
【０００４】
メモリデバイスの動作速度は継続的に増加しているが、動作速度におけるこの増加は、プロセッサの動作速度における増加と足並みをそろえてきていない。プロセッサをメモリデバイスに結合するメモリコントローラの動作速度における増加はさらに遅かった。メモリコントローラとメモリデバイスの速度が比較的遅いことは、プロセッサおよびメモリデバイスの間のデータ処理能力を制限する。
【０００５】
メモリデバイスへとメモリデバイスからのデータ処理能力を増加させるための１つの対応方法は、図１に示されるようにメモリハブを通してプロセッサに結合される複数のメモリデバイスを使用することである。メモリハブ構造を使用するコンピュータシステム１００は、特定の計算またはタスクを実行するために特定のソフトウェアを実行することなどの、様々なコンピューティング機能を実行するためのプロセッサ１０４を含む。プロセッサ１０４は、通常、アドレスバス、コントロールバス、およびデータバスを含むプロセッサバス１０６を含む。プロセッサバス１０６は一般に、通常はＳＲＡＭ（Static Random Access Memory）の、キャッシュメモリ１０８に結合される。最終的に、プロセッサバス１０６は、時々バスブリッジとも呼ばれる、システムコントローラ１１０に結合される。
【０００６】
システムコントローラ１１０は、プロセッサ１０４に結合されるメモリハブコントローラ１２８を含む。メモリハブコントローラ１２８はまた、バスシステム１３４を通していくつかのメモリモジュール１３０ａ〜ｎに結合されている。各メモリモジュール１３０ａ〜ｎは、バス１５０として集合的に示されている、コマンド、アドレス、およびデータバスを通して、いくつかのメモリデバイス１４８に結合されるメモリハブ１４０を含む。メモリハブ１４０は、コントローラ１２８とメモリデバイス１４８の間のメモリ要求および応答を効率的に経路指定する。１つのメモリモジュール１３０ａ〜ｎが前のメモリアクセスに応答している間に、プロセッサ１０４が別のメモリモジュール１３０ａ〜ｎにアクセスできるので、この構造を採用しているコンピュータシステムは、より高い処理能力を有することができる。例えば、システムにおけるメモリモジュール１３０ａ〜ｎの１つがプロセッサ１０４に読み出しデータを供給する準備している間に、プロセッサ１０４は、システムの別のメモリモジュール１３０ａ〜ｎの１つに書き込みデータを出力することができる。メモリハブ構造を使用するコンピュータシステムの動作効率は、メモリシステムのデータ処理能力を大きく増加させることを、より現実的にできる。メモリハブ構造もまた、コンピュータシステムにおいて大きく増加したメモリ容量を提供することができる。
【０００７】
システムコントローラ１１０はまた、プロセッサ１０４の他のさまざまなコンポーネントのための通信経路としての役割をする。より詳細にはシステムコントローラ１１０は、グラフィックコントローラ１１２に通常結合されているグラフィックポートを含み、これは次にビデオ端末１１４に結合される。システムコントローラ１１０はまた、操作者がコンピュータシステム１００と対話することを可能とするために、キーボードやマウスなどの、１つまたは複数の入力装置１１８に結合されている。一般に、コンピュータシステム１００はまた、システムコントローラ１１０を通してプロセッサ１０４に結合されているプリンタなどの、１つまたは複数の出力装置１２０を含む。１つまたは複数のデータストレージ１２４もまた通常、プロセッサ１０４が内部または外部のストレージメディア（示されない）との間でデータを格納し、またはデータを取り出すことを可能とするために、システムコントローラ１１０を通してプロセッサ１０４に結合されている。典型的なストレージメディア１２４は、例えばハードディスクならびにフロッピーディスク、カセットテープ、およびＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）が含まれる。
【０００８】
メモリハブ構造は、いくつかのメモリモジュール１３０のそれぞれにおいてメモリ要求が同時に処理されることを可能にさせるので、データがメモリに格納され、そこから取り出される速度を大きく増加させることが可能である。実際に、それぞれメモリハブを含むいくつかのメモリモジュールを使用するメモリシステムは、バスシステム１３４がメモリシステムのデータ処理能力を制限する「ボトルネック（bottleneck）」となりえるような高い速度で、データを集合的に送受信することができる。
【０００９】
メモリハブ構造を使用するメモリシステムのデータ処理能力を最大にするために２つの技法が使用されてきた。第１に、伝統的なアドレス、データ、およびコントロールバスを使用することよりむしろ、それぞれのメモリ要求すなわち「トランザクション（transaction）」に対するアドレス、データおよび制御ビットが単一のパケットで一緒に送られる。このパケットは、コマンドヘッダーを含み、その後に続いて書込みまたは読出しのデータを含む。コマンドヘッダーは、書込みまたは読出しコマンドなどのメモリコマンドに対応するビット群、要求が向けられるメモリモジュールを指定する識別ビット群、およびその要求でアクセスされている指定されたメモリモジュールにおいてメモリデバイス１４８のアドレスを指定するアドレスビット群を含む。コマンドヘッダーはまた、コマンドヘッダーに続く書込みまたは読出しのデータの量を指定してもよい。パケット化されたメモリシステムを使用することにより、メモリハブコントローラ１２８は、コマンド、アドレス、および書込み要求の場合には書込みデータ信号のシーケンスを転送する代わりに、単に１つのパケットを送信することによって、メモリ要求を発行することが可能となる。結果として、メモリハブコントローラ１２８が、より速い速度でメモリ要求を発行することができる。さらに、パケット化されたメモリシステムは、各メモリ要求の処理を追跡し続けることから、メモリハブコントローラ１２８を開放させる。代わりに、メモリハブコントローラ１２８は、パケットを送信するだけでよい。メモリ要求が向けられているメモリモジュール１３０におけるメモリハブ１４０はその後、メモリハブコントローラ１２８とのさらなる相互作用なしでメモリ要求を処理する。読み出し要求の場合に、メモリハブ１４０は、直接的にまたは介在しているメモリモジュール１３０を通して、メモリハブコントローラ１２８にパケットを転送し返し、それは、読み出しデータならびに読み出しデータを特定するコマンドヘッダー内の識別ビット群を含む。メモリハブコントローラ１２８はその識別ビット群を使用して、その読み出しデータを特定のメモリ要求に関連付ける。
【００１０】
メモリハブ構造を使用するメモリシステムのデータ処理能力を最大にするために使用されてきた第２の技法は、高速の「ダウンストリーム」および「アップストリーム」の別々のバスを使用するバスシステム１３４を実装することである（図１では示されない）。高速のダウンストリームバスは、メモリハブコントローラ１２８からメモリモジュール１３０へ、およびメモリモジュール１３０から、メモリハブコントローラ１２８からさらに遠くに位置するメモリモジュール１３０へ、データを結合する。高速アップストリームバスは、メモリモジュール１３０からメモリハブコントローラ１２８へ、およびメモリモジュール１３０から、メモリハブコントローラ１２８のより近くに位置するメモリモジュール１３０へ、データを結合する。
【００１１】
提案されてきたメモリハブ・システムのためのパケットを形成する１つの対応方法は、ここで図２を参照して説明されるであろう。ここで、いくつかのメモリアクセスまたは「トランザクション」のそれぞれからの３２ビットデータのグループのいくつかが、図２の右手側に示されている。トランザクションＴ０は、７つの３２ビットデータのグループＤ０〜Ｄ６から成り、９６ビットのバス１６２上でデータ編成ユニット１６０に結合されている。バス１６２は、それゆえに、コアクロックＣＣＬＫ信号、すなわちメモリハブ１４０において内部的に使用されるクロック信号のそれぞれの周期に、データ編成ユニット１６２に３つの３２ビットデータのグループを結合する能力がある。トランザクションＴ１もまた、７つのデータの３２ビットのグループＤ０〜Ｄ６から成り、そしてそれは、それぞれのＣＣＬＫ周期に、３２ビットデータの２つのグループをデータ編成１６２に結合する能力がある６４ビットのバス１６４上で、データ編成ユニット１６０に結合されている。トランザクションＴ２もまた、データの５つの３２ビットグループＤ０〜Ｄ４のみから成り、そしてまたそれは、それぞれのＣＣＬＫ周期に、３２ビットデータの２つのグループを６４ビットのバス１６６上で、データ編成ユニット１６０に結合されている。最後に、トランザクションＴ３は、１２の３２ビットデータのグループＤ０〜Ｄ１１から成り、そしてそれは、それぞれのＣＣＬＫ周期に、３２ビットデータの４つのグループをデータ編成１６２に結合する能力がある１２８ビットのバス１６８上で、データ編成ユニット１６０に結合されている。このように、異なったビット幅を有する個々のバス上にデータを出力するメモリハブ１４０においてコンポーネントがデータ編成ユニット１６０にインタフェース結合することができることは明らかである。
【００１２】
提案されたように、トランザクションＴ０〜Ｔ３のデータのグループがデータ編成ユニット１６０でクロック同期された後、個々のパケットに再編成される。これらのパケットは、パラレルにデータ編成ユニットからクロック同期出力され、次にパラレルシリアル変換器１７４に結合され、それは次に最大８つの３２ビットデータのグループＤ０〜Ｄ７内のパケットを出力する。図２に示されている実施形態において、データは、高速システムクロックのＳＣＬＫ信号によって、パラレルシリアル変換器１７４からクロック同期出力される。データ編成ユニット１６０から送られるデータの量は、コアクロック信号とシステムクロック信号の間の相対周波数ならびにバス１３４の幅に依存するであろう。様々な幅の様々な内部バスがデータ編成ユニット１６０に結合できるように、システムを設計してもよい。その結果、技術の進歩またはシステムの特定な特性によって決定されるコアクロック周波数で、メモリハブ１４０を設計してもよく、そのシステムのクロック周波数は、それ自身の固有の設計上の制限により決定されてきていてもよい。図２に示される実施形態において、システムクロック信号はコアクロックの周波数の８倍の周波数を有する。
【００１３】
各パケットはトランザクションにおいて、３２ビットのコマンドヘッダーおよび続く３２ビットデータのグループを含む。「レーン」として知られる３２ビットのグループは、パラレルにデータ編成ユニット１６０からクロック同期出力される。各トランザクションＴ０〜Ｔ３のレーンのグループもまた、図２に示されている。システムクロック信号のそれぞれの区間に対する、パラレルシリアル変換器１７４からクロック同期出力されるデータのレーン数は、高速バスシステム１３４の幅（この例においては３２ビット）に依存するであろう。
【００１４】
ダウンストリームおよびアップストリームの別々のバス、および図２を参照して説明されたように編成されたメモリパケットを使用することは、メモリモジュール１３０との間のデータ処理能力を増加させるに関して役立つだろうが、特に各パケットにおけるデータの量が変化する場合、トランザクションのパケットの大きさが高速バスシステム１３４の容量より少ないかもしれないので、データ処理能力が、いまだ時々、最適な状態よりも少ないだろう。さらに図２を参照すると、各トランザクションのための３２ビットデータのグループがパケットに配置される。上で説明されたように、各トランザクションのための最初の３２ビットデータのグループの前に、３２ビットのコマンドヘッダーＣＨが挿入される。トランザクションＴ０が７つの３２ビットデータのグループＤ０〜Ｄ６から成るので、トランザクションＴ０におけるコマンドヘッダーＣＨとデータは最初のレーングループ１７５の８つのレーンすべてを占める。結果として、高速バスシステム１３４の８つのレーンのすべてが使用されるであろう。同様に、トランザクションＴ１もまた、７つの３２ビットデータのグループＤ０〜Ｄ６から成るため、第２のレーングループ１７６の８つのレーンすべてが占有されるであろう。結果的に、高速バスシステム１３４の８つのレーンのすべてが再度満たされるであろう。しかし、トランザクションＴ２は、５つの３２ビットデータのグループＤ０〜Ｄ４のみから成っているので、第３のレーン１７７の６つ（トランザクションＴ２におけるコマンドヘッダーと５つの３２ビットデータのグループ）のレーンのみが占有されるであろう。第３のレーングループ１７７における２つの空のレーンは、高速バスシステム１３４が、２回の高速システムクロック信号期間の間、パケットデータを全く運ばないという結果になる。
【００１５】
トランザクションＴ３は、１２の３２ビットデータのグループＤ０〜Ｄ１１から成っているので、トランザクションＴ３における最初の７つの３２ビットデータのグループＤ０〜Ｄ６は、（３２ビットのコマンドヘッダーを加えて、）第４のレーングループ１７８の８つのレーンすべてを満たすであろう。結果として、高速バスシステム１３４は完全に占有されるであろう。しかしながら、残る５つの３２ビットデータのグループＤ７〜Ｄ１１は、第５のレーングループ１７９の８レーンの内の５つのみを占めるであろう。したがって、３回のシステムクロック信号期間の間で、高速バスシステム１３４を通してデータが結合されないであろう。結果として、メモリシステムのデータ処理能力は、高速バスシステム１３４の８つのレーンすべてが常に満たされた場合に達成されうるデータ処理能力より、かなり少なくなるかもしれない。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
データ編成方法が特定のバス幅を有するコンピュータシステム、特定の大きさを持つデータのグループ、などに関して記述されてきたが、同一のまたは同様の問題が、他の設計パラメータを有するコンピュータシステムにとって、存在するであろうことが理解されたい。
【００１７】
したがって、１つの高速メモリバス・システムの全能力が利用されることを可能とする方法で、メモリハブ・システムにおいてメモリモジュールとの間で結合されたデータを編成するシステムおよび方法への必要性がある。
【課題を解決するための手段】
【００１８】
メモリモジュールのためのメモリハブは、メモリモジュールによって送信されたメモリトランザクションを編成するシステムを含む。編成システムは、それぞれがコマンドヘッダーおよびデータを含むパケットにメモリトランザクションを編成し、データは可変数のデータ・ビットを有することができる。編成システムは、それぞれが複数のレーンを含むレーングループにコマンドヘッダーおよびデータを編成する。それぞれのレーンは、複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む。編成システムは、それぞれのレーングループにおけるすべてのレーンが、コマンドヘッダー・ビットまたはデータ・ビットのいずれかで満たされるように、レーングループを編成する。編成システムは、メモリハブからの送信のために、レーングループのそれぞれを、レーンのシリアルストリームに変換するようさらに動作可能である。送信されるレーンのそれぞれは、複数のパラレルコマンドヘッダー・ビットまたはパラレルデータ・ビットのいずれかを含む。
【発明を実施するための最良の形態】
【００１９】
本発明の実施形態は、高速のダウンストリームバスおよび高速のアップストリームバスを通して、いくつかのメモリハブ・モジュールに結合されているメモリハブコントローラに向けられている。より詳細には、本発明の実施形態は、バスの容量の実質的にすべてが利用されるように、ダウンストリームおよびアップストリームのバスに結合する前にデータが編成されるシステムおよび方法に向けられている。一定の詳細が以下に詳しく説明され、本発明の様々な実施形態の十分な理解を提供する。しかしながら、本発明がこれらの特定の詳細を使用しないで実施できることは、当業者にとって明確であろう。他の場合において、本発明を不必要にあいまいにすることを回避するために、周知の回路、制御信号、およびタイミングプロトコルは、詳細に示されてきていない。
【００２０】
本発明の１つの例によるメモリハブ・システムのためにパケットを形成する方法は、ここで図３を参照して説明されるであろう。図３に示されるように、いくつかのメモリアクセスまたは「トランザクション」のそれぞれからのいくつかの３２ビットデータのグループは、追加的トランザクションＴ４の一部が図３においては示されていることを除いて、それらの間の差異を示す目的のために図２に示されたものと同一である。前の図のように、トランザクションＴ０は７つの３２ビットデータのグループＤ０〜Ｄ６から成り、また、トランザクションＴ１は７つの３２ビットデータのグループＤ０〜Ｄ６から成り、トランザクションＴ２は５つの３２ビットデータのグループＤ０〜Ｄ４から成り、そしてトランザクションＴ３は１２の３２ビットデータのグループＤ０〜Ｄ１１から成る。
【００２１】
本発明の１つの例によると、トランザクションＴ０〜Ｔ４のためのデータのグループは、コアクロック信号に対応してデータ編成ユニット１８０に同期入力され、それらは個々のパケットに再編成される。図３の例において、各パケットもまた、３２ビットのコマンドヘッダーＣＨと、続くそのトランザクションにおける３２ビットデータのグループを含む。前の図のように、３２ビットのグループまたはレーンは、パラレルにデータ編成ユニット１８０からクロック同期出力され、次にシステムクロック信号に対応して、パラレルシリアル変換器１８２によって、シリアルデータに変換される。
【００２２】
トランザクションのＴ０およびＴ１は、それぞれコマンドヘッダーと７つの３２ビットデータのグループＤ０〜Ｄ６から成り、図２を参照して上で説明されたのと同じ方法で、それぞれ第１のレーングループ１９０および第２のレーングループ１９２の８つのレーンすべてを占有する。同様に、トランザクションＴ２もまた、３２ビットデータのグループＤ０〜Ｄ４の５つのみから成るので、第３のレーングループ１９４の６つ（コマンドヘッダーとトランザクションＴ２における５つの３２ビットデータのグループ）のレーンのみが満たされる。しかし、図２の例において空のまま残されていた第３のレーングループ１９４の続く３つのレーンは、代わりに、トランザクションＴ３のためのコマンドヘッダーＣＨおよび最初の３２ビットデータのグループＤ０によって満たされる。結果として、システムクロック信号の個々の期間に、高速バスシステム１３４を通して全レーンのデータが結合される。
【００２３】
さらに図３を参照して、トランザクションＴ３の次の８つのデータのグループＤ１〜Ｄ８は、高速バスシステム１３４がすべて利用されるように、第４のレーングループ１９６の８つのレーンすべてを満たすべく使用される。トランザクションＴ３のためのデータＤ９〜Ｄ１１を運ぶ残る３つのレーンは、第５のレーングループ１９８に配置される。しかし有利に、第５のレーングループ１９８における残る５つのレーンは、トランザクションＴ４のための３２ビットのコマンドヘッダーＣＨおよび最初の４つの３２ビットデータのグループＤ０〜Ｄ３で満たされる。同様の方法で、高速バスシステム１３４がすべて利用されるように、メモリトランザクションのためのコマンドヘッダーおよびデータはいつも、前のトランザクションからのデータに続く。したがって、高速バスシステム１３４を通して結合されるべく待機しているメモリトランザクションからのデータがあると仮定すると、バスシステム１３４において決してアイドル（idle）期間は存在しない。結果として、メモリシステムのデータ処理能力は最大化される。
【００２４】
図３のデータ編成ユニット１８０の別の利点は、ＣＣＬＫ信号の周波数、およびパラレルシリアル変換器１８２からのデータを同期化するシステムクロックＳＣＬＫの周波数、ならびに外部バス１３４の幅、および他の可能性のある要素に基づいて、それぞれのレーングループ１９０〜１９８における、データのレーン数を構成できることである。したがって、科学技術の進歩またはシステムの特定の特性によって決定されたＣＣＬＫ周波数を用いて、メモリハブ１４０を設計することができ、ＳＣＬＫ周波数は、それ自身の設計上の制約によって決定することができ、このようにＣＣＬＫの周波数比をＳＣＬＫの周波数の周波数に変える。さらに、あるメモリハブ１４０は、他のものより広いバス１３４を持つように設計できる。しかし、それぞれのＣＣＬＫ周期にデータ編成ユニット１８０から同期出力されるレーングループの数を変えることが可能であることにより、メモリハブ１４０の中の回路を変更することなく、これらの変化に対応可能である。データ編成ユニット１８０は、初期化の間の入出力ポートを介してなどの、好適な手段によって、特定の数のレーンをそれぞれのＣＣＬＫ周期に出力するようにプログラムすることが可能である。
【００２５】
図３において示される方法で、メモリデバイス１４８との間で結合されたデータを編成することが可能なメモリハブ２００の一例が、図４において示されている。メモリハブ２００は、ダウンストリーム受信インタフェース２１０、アップストリーム送信インタフェース２１２、アップストリーム受信インタフェース２１４、およびダウンストリーム送信インタフェース２１６を含む。ダウンストリーム受信インタフェース２１０は、メモリハブコントローラ１２８（図１）またはアップストリームのメモリモジュール１３０のいずれかから、メモリモジュール１３０へのデータを結合するために使用される。アップストリーム送信インタフェース２１２は、そのメモリモジュール１３０から、メモリハブコントローラ１２８またはアップストリームメモリモジュール１３０のいずれかへデータを結合するために使用される。アップストリーム受信インタフェース２１４は、ダウンストリームのメモリモジュール１３０から、そのメモリモジュール１３０へデータを結合するために使用される。最後に、ダウンストリーム送信インタフェース２１６は、そのメモリモジュール１３０から、ダウンストリームのメモリモジュール１３０へデータを結合するために使用される。意義深いことは、アップストリーム送信インタフェース２１２が、高速アップストリームバス２２４に結合される前にコマンドヘッダーおよびデータを編成する、データ編成システム２２０を含むことである。データ編成システム２２０の一例の構造および動作は、図５を参照して説明されるであろう。
【００２６】
インタフェース２１０〜２１６は、バス２２８によって表されている複数のバスおよび信号線を通してスイッチ２６０に結合されている。バス２２８は従来方式であり、受信インタフェース２１０、２２４に結合されている書き込みデータバス、および送信インタフェース２１２、２２２に結合されている読み出しデータバスを含む。
【００２７】
スイッチ２６０は、４つのメモリインタフェース２７０ａ〜ｄに結合され、次にメモリデバイス１６０に結合されている（図１）。メモリデバイス１６０の各セットのために、別々および独立のメモリインタフェース２７０ａ〜ｄを提供することによって、メモリハブ２００は、単一チャンネルのメモリ構造で典型的に出現するバスまたはメモリバンクの競合を回避する。スイッチ２６０は、バス２７４によって表されている、複数のバスおよび信号線を通して各メモリインタフェースに結合される。インタフェース２１０〜２１６をメモリインタフェースに結合することに加えて、スイッチ２６０もまた、メモリインタフェース２１０〜２１６を互いに結合でき、メモリパケットが、メモリモジュール１３０を通して、ダウンストリームまたはアップストリームへ、別のメモリモジュール１３０またはメモリハブコントローラ１２８のいずれかに結合されることを可能とする。
【００２８】
本発明の一実施形態においては、各メモリインタフェース２７０ａ〜ｄは特に、それが結合されているメモリデバイス１４８に適合させる（図１）。より詳細には、各メモリインタフェース２７０ａ〜ｄは特に、自身が結合しているメモリデバイス１４８により、受信および発生された特定の信号をそれぞれ、提供および受信するように適合される。また、メモリインタフェース２７０ａ〜ｄは、異なるクロック周波数で動作するメモリデバイス１４８とともに動作することが可能である。結果として、メモリインタフェース２７０ａ〜ｄは、メモリハブ２００、およびメモリハブ２００に結合されたメモリデバイス１４８との間のインタフェースで発生するかもしれない変化からプロセッサ１０４を隔離し、メモリデバイス１４８がインタフェース接続できる、より制御された環境を提供する。
【００２９】
スイッチ２６０は、さまざまな従来の、または今後開発されるスイッチのいずれでもありえる。例えばスイッチ２６０は、クロスバースイッチでもよく、またはクロスバースイッチと同等レベルの結合性は提供しないが、それにもかかわらず、バスインタフェース２１０〜２１６をメモリインタフェース２７０ａ〜ｄのそれぞれに結合することが可能なマルチプレクサのセットでもよい。スイッチ２６０もまた、どのメモリアクセスが他のメモリアクセス上で優先権を受けるべきかを決定するためのアービトレーションロジック（示されない）を含みことができる。当業者にとって、この機能を実行するバス調停はよく知られている。
【００３０】
さらに図４を参照して、メモリインタフェース２７０ａ〜ｄのそれぞれは、個々のメモリコントローラ２８０、個々の書き込みバッファ２８２、および個々のキャッシュメモリ・ユニット２８４を含む。メモリコントローラ２８０は、結合しているメモリデバイス１４８へ、制御、アドレス、およびデータ信号を提供すること、および結合しているメモリデバイス１４８からのデータ信号を受信することによって、従来的なメモリコントローラと同じ機能を実行する。しかし、メモリコントローラ２８０によって送信および受信される信号の特徴は、メモリデバイス１４８が送信および受信するように適合させられている信号の特徴に対応するであろう。キャッシュメモリ・ユニット２８４は、当技術分野にて周知のとおりに、タグメモリ、データメモリ、比較器、などを含む、キャッシュメモリの通常のコンポーネントを含む。書き込みバッファ２８２およびキャッシュメモリ・ユニット２８４において使用されているメモリデバイスは、ＤＲＡＭデバイス、ＳＲＡＭ（Static Random Access Memory）デバイス、他の種類のメモリデバイス、または３つのすべての組み合わせのいずれであってもよい。さらに、キャッシュメモリ・ユニット２８４において使用されるこれらのメモリデバイス、ならびに他のコンポーネントは、組み込みまたはスタンドアロンのデバイスのいずれかであってもよい。
【００３１】
それぞれのメモリインタフェース２７０ａ〜ｄにおける書き込みバッファ２８２は、読み出し要求が処理されている間、書き込み要求を格納するために使用される。そのようなシステムにおいて、書き込み要求が向けられるメモリデバイス１４８が、前の書込みまたは読出し要求の処理で動作中（busy）であっても、プロセッサ１０４は、そのシステムメモリデバイスに書き込み要求を発行できる。書き込みバッファ２８２は、好ましくは、スイッチ２６０から受信した、読み出し要求が介在するかもしれない書き込み要求のいくつかを蓄積し、その後メモリデバイス１４８のそれぞれに読み出し要求の介在なしに連続してそれらを適用する。この様に書き込み要求をパイプライン処理することによって、読み出し／書き込みの切り換えにおいて本来的な遅延が回避されるため、より効率的な処理が可能である。読み出し要求が処理されることを可能とする書き込み要求をバッファする能力もまた、読み出し要求が、時間順かかわらず第一優先を与えられうるので、メモリの読み出し待ち時間を大きく減らすことができる。
【００３２】
各メモリインタフェース２７０ａ〜ｄにおけるキャッシュメモリ・ユニット２８４の使用によって、データが最近メモリデバイス１４８との間で読み出されまたは書き込まれた場合において、メモリデバイス１４８がそのようなデータを提供するのを待つことなく、プロセッサ１０４が個々のメモリデバイス１４８に向けられた読み出しコマンドに対応してデータを受け取ることが可能となる。キャッシュメモリ・ユニット２８４はこのように、メモリデバイス１４８ａ〜ｄの読み出し待ち時間を減少させ、コンピュータシステムのメモリ処理能力を最大化する。同様に、プロセッサ１０４はキャッシュメモリ・ユニット２８４に書き込みデータを格納でき、次に、同じメモリインタフェース２７０ａ〜ｄにおけるメモリコントローラ２８０が、キャッシュメモリ・ユニット２８４からそれが結合されているメモリデバイス１４８へ書き込みデータを転送している間に、他の機能を実行できる。
【００３３】
メモリハブ２００内にさらに含まれて入るものは、試験バス２９２を通してスイッチ６０に結合されている自己診断モジュール２９０かもしれない。自己診断モジュール２９０はさらに、ＳＭＢｕｓ（System Management Bus）、またはＪＴＡＧ（Joint Test Action Group）およびＩＥＥＥ１１４９．１標準による保守バスのような、保守バス（maintenance bus）２９６に結合される。ＳＭＢｕｓおよびＪＴＡＧ標準の両方は、当技術分野で通常の知識を有するものによってよく知られている。一般に、保守バス２９６は、メモリ試験パラメータを設定し、試験結果を受け取るために、自己診断モジュール２９０へのユーザアクセスを提供する。例えば、ユーザは、保守バス２９６を介して別のＰＣホストを結合し、メモリデバイス１４８に適用される信号間の相対的なタイミングを設定できる。同様に、メモリデバイス１４８から受信される信号間の相対的なタイミングのデータ指標は、保守バス２９６を介してＰＣホストに結合されうる。
【００３４】
バス２８８を通してスイッチ２６０に結合されるＤＭＡエンジン２８６が、さらにメモリハブ２００に含まれているかもしれない。ＤＭＡエンジン２８６は、メモリハブ２００が、プロセッサ１０４からの介入なしで、１つのメモリデバイス１４８の１つの位置からそのメモリデバイスの別の位置へ、データのブロックを移動することを可能にする。バス２８８は、システムメモリにおけるデータ転送を取り扱うために、アドレス、制御、データバス、および同様なものなどの、複数の従来的バス線および信号線を含む。通常の知識を有する当業者によってよく知られている従来的ＤＭＡ操作は、ＤＭＡエンジン２８６によって実装できる。
【００３５】
メモリモジュール１３０は、高速バス１３２、１３４のそれぞれの部分が２点間でのみ結合されるポイント・ツー・ポイント結合配置においてメモリハブコントローラ１２８に結合されて示される。しかし、他のトポロジーをもまた使用できることを理解されたい。例えば、単一のダウンストリームのバス（示されない）および単一のアップストリームのバス（示されない）がメモリモジュール１３０のすべてに結合される、マルチドロップ配置を使用することが可能であるかもしれない。また、切り換えトポロジーは、メモリハブコントローラ１２８がスイッチ（示されない）を通してメモリモジュール１３０のそれぞれに選択的に結合される形で使用されうる。使用されうる他のトポロジーは、当業者にとっては明らかであろう。
【００３６】
図４のメモリハブ２００において使用されるデータ編成システム２２０の１つの実施形態が図５に示される。データ編成システム２２０もまた、高速ダウンストリームバス２２２にデータを結合するために、メモリハブコントローラ１２８において使用されうる。受信インタフェースの部分２１０、２２４（図４）、および高速バス１３２、１３４からのメモリパケットを捕捉するメモリハブコントローラ１２８における受信インタフェース、は比較的簡単であり、適合するシステムの設計は、充分に当業者の能力の範囲内である。
【００３７】
データ編成システム２２０は、高速バス１３２、１３４を通して結合されることになる３２ビットデータのグループを受け取るデータバッファ２３０を含む。メモリハブコントローラ１２８におけるデータ編成システム２２０の場合において、データの源は、プロセッサ１０４（図１）または他の任意のメモリアクセス装置であるかもしれない。メモリモジュール１３０の場合において、メモリモジュール１３０におけるメモリデバイス１４８から、または別のメモリモジュール１３０から、データを発生させることができる。いずれの場合でも、図５で図式的に示されるように、データのグループはコアクロック信号に対応してデータバッファ２３０にクロック同期入力される。また図５に図式的に示されるように、異なるトランザクションに対してデータバッファ２３０に格納されるデータは、異なる長さである。
【００３８】
データ編成システム２２０に含まれるものは、メモリパケットのためのコマンドヘッダーを格納する小さいバッファである、コマンド待ち行列２３４である。コマンド待ち行列２３４もまた、コアクロック信号によってクロック同期され、コマンドヘッダーのための情報を提供する他の多くのコンポーネントとインタフェース接続するが、これらのコンポーネントは簡潔さおよび明確さのために図５から省略されている。
【００３９】
データバッファ２３０内に格納されているデータ、およびコマンド待ち行列２３４内に格納されているコマンドヘッダーは、調停ユニット２３８により制御されるマルチプレクサ２３６に結合されている。マルチプレクサ２３６は、データバッファ２３０に格納されているトランザクションの１つのためのデータを選択し、かつコマンド待ち行列２３４から対応するコマンドヘッダーを選択する。調停ユニット２３８は、マルチプレクサに、さまざまなアルゴリズムに基づいて、トランザクションのためのデータおよびコマンドヘッダーを選択させることができる。例えば調停ユニット２３８は、ダウンストリームのメモリモジュール１３０からの応答を含むトランザクションに優先権を与え、それにより、メモリモジュール１３０におけるメモリデバイス１４８からのローカルトランザクションを送信する前に、バス２２４（図４）上に、そのようなトランザクションのアップストリームを送信することができる。逆に、調停ユニット２３８は、ローカル応答を含むトランザクションに優先権を与えることができる。あるいは、調停ユニット２３８もまた、ローカルトランザクション、およびダウンストリームまたはアップストリームのトランザクションを交互に送信することができる。より簡単に、調停ユニット２３８は、メモリハブ１４０によって受け取られた順番で、トランザクションを送信するかもしれない。各メモリハブ１４０における調停ユニット２３８は同じ方法で動作することが望ましいが、代替の実施形態において、異なるメモリハブ１４０における調停ユニットは異なるように別様に動作できる。調停ユニット２３８の動作における他の変形、および調停ユニットを実施するための論理回路は、当業者にとって明白であろう。
【００４０】
意義深いことは、調停ユニット２３８がトランザクションを選択する順番にかかわらず、調停ユニットは、マルチプレクサ２３６がマルチプレクサ２３６の出力において、レーングループ２４０のすべてのレーンが満たされるように、選択されたトランザクションのためのコマンドヘッダーおよびデータを、マルチプレクサ２３６に編成させることである。レーングループ２４０は次に、例えばパラレルにロードされる一連のシフトレジスタであることができる、パラレルシリアル変換器２４４に結合される。図３を参照して上で説明されたように、データは次に、システムクロック信号によってパラレルシリアル変換器２４４からクロック同期出力され、高速バス２２２、２２４の１つに渡される。各レーングループ２４０のすべてのレーンを満たすことによって、高速バス２２２、２２４の全データ処理能力が利用される。
【００４１】
本発明の特定の実施形態は、説明の目的のためにここに記述されてきたが、本発明の精神および範囲から逸脱することなく、様々な修正がなされうることを理解されたい。従って、付加されている請求の範囲によってを除いて、本発明は制限されない。
【図面の簡単な説明】
【００４２】
【図１】メモリハブ構造を有するいくつかのメモリモジュールに結合されているメモリハブコントローラを有するコンピュータシステムのブロック図である。
【図２】図１に示されたメモリモジュールとの間で結合されるデータを編成するために提案されてきた１つの対応方法を示す概略図である。
【図３】本発明の１つの例による、図１に示されたメモリモジュールとの間で結合するためデータを編成するための１つの対応方法を示す概略図である。
【図４】図１のメモリモジュールにおいて使用されうる、図３に示されるようにデータを再編成する能力があるメモリハブのブロック図である。
【図５】メモリハブコントローラ、図４のメモリハブ、または他のあるメモリハブ設計において使用可能なデータ編成システムのブロック図である。
【図１】
2007529828.tif 000003
【図２】
2007529828.tif 000004
【図３】
2007529828.tif 000005
【図４】
2007529828.tif 000006
【図５】
2007529828.tif 000007
【手続補正書】
【提出日】平成19年1月17日(2007.1.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２１
【補正方法】変更
【補正の内容】
【請求項２１】
前記データ編成ユニットが、クロック信号のそれぞれの周期の間、前記データ編成から結合されるグループのそれぞれにおけるサブグループの数を変えるように構成可能であることを特徴とする請求項１７に記載のメモリモジュール。
【国際調査報告】
2007529828.tif 000008