(57)【要約】【課題】ハブベースのシステムメモリにおける書込みコマンドを終了する方法とシステムが開示されている。【解決手段】メモリハブはダウンストリームメモリコマンドを受け取り、受け取った各ダウンストリームメモリコマンドを処理して、そのメモリコマンドがメモリハブに向けられた書込みコマンドを含んでいるかどうかを決定する。メモリハブは、書込みコマンドがハブに向けられているときは、メモリデバイスに適用するように適応されたメモリアクセス信号を発生するように第１モードで動作する。メモリハブは、書込みコマンドがハブに向けられていないときは、ダウンストリームメモリハブに結合されるように適応されたダウンストリーム出力ポート上にコマンドの書込みデータを提供するように第２モードで動作する。【選択図】図２
2010157270.tif 000002
【特許請求の範囲】
【請求項１】
ダウンストリームメモリ要求を受け取るように適応され、前記メモリ要求が前記メモリハブに向けられた書込みコマンドを含むかどうかを決定するように、受け取った各ダウンストリームメモリ要求を処理するよう動作可能であるメモリハブであって、メモリデバイスに適用されるように適応されたメモリアクセス信号を発生するように、前記書込みコマンドが前記ハブに向けられているとき、前記メモリハブは第１モードで動作可能であり、ダウンストリームメモリハブに結合されるように適応されたダウンストリーム出力ポート上に前記コマンドを提供するように、前記書込みコマンドが前記ハブに向けられていないとき、前記ハブは第２モードで動作可能であることを特徴とするメモリハブ。
【請求項２】
前記ハブは、前記第２モードにおいて、ダウンストリームメモリハブに結合されるように適応されたダウンストリームデータポート上へ受け取った書込みデータを提供するよう動作可能であることを特徴とする請求項１に記載のメモリハブ。
【請求項３】
前記メモリハブは、前記第１モードにおいて、前記ダウンストリーム出力ポート上へ前記コマンドを提供し、前記ダウンストリームデータポート上へ受け取った書込みデータを提供することを終了するように動作可能であることを特徴とする請求項１に記載のメモリハブ。
【請求項４】
前記書込みコマンドはコマンド部分とデータ部分を備えたことを特徴とする請求項１に記載のメモリハブ。
【請求項５】
前記ダウンストリームメモリ要求はアドレス部分を含むことを特徴とし、前記書込みコマンドが前記メモリハブに向けられているかどうかを前記メモリハブが決定することは、前記アドレス部分の値を前記メモリハブのアドレスと比較した値を備えたことを特徴とする請求項１に記載のメモリハブ。
【請求項６】
前記メモリアクセス信号は、メモリデバイスに適用されるアドレス、コントロール、およびデータ信号を備えたことを特徴とする請求項１に記載のメモリハブ。
【請求項７】
前記ハブは、アップストリームメモリ応答を受け取り、アップストリームメモリハブに結合されるように適応されたアップストリーム出力ポート上にその応答を提供するよう、さらに適応されていることを特徴とする請求項１に記載のメモリハブ。
【請求項８】
前記ダウンストリーム出力ポートは、光ポートを備えたことを特徴とする請求項１に記載のメモリハブ。
【請求項９】
複数のメモリデバイスと、
前記メモリ要求が前記メモリモジュールに向けられた書込みコマンドを含むかどうかを決定するために、前記ハブが、受け取った各ダウンストリームメモリ要求を処理するよう動作可能であり、メモリアクセス信号を前記メモリデバイスに適用するように、前記書込みコマンドが前記モジュールに向けられているとき、前記メモリハブは第１モードで動作可能であり、前記コマンドをダウンストリーム出力ポート上に提供するように、前記書込みコマンドが前記モジュールに向けられていないときは、前記第２モードで動作可能である、前記メモリデバイスに結合されていて、ダウンストリームメモリ要求を受け取るように適応されたダウンストリーム入力ポートを含むメモリハブと
を備えたことを特徴とするメモリモジュール。
【請求項１０】
前記メモリデバイスは、動的ランダムアクセスメモリデバイスを備えたことを特徴とする請求項９に記載のメモリモジュール。
【請求項１１】
前記ハブは、ダウンストリームデータポート上に受け取った書込みデータを提供するように第２モードで動作可能であることを特徴とする請求項９に記載のメモリモジュール。
【請求項１２】
前記ハブは、前記ダウンストリーム出力ポート上に前記コマンドを提供し、ダウンストリームデータポート上に受け取った書込みデータを提供することを終了するよう、前記第１モードで動作可能であることを特徴とする請求項１１に記載のメモリモジュール。
【請求項１３】
前記書込みコマンドはコマンド部分とデータ部分を備えたことを特徴とする請求項９に記載のメモリモジュール。
【請求項１４】
前記ダウンストリームメモリ要求は、アドレス部分を含むことを特徴とし、前記書込みコマンドが前記メモリハブに向けられているかどうかを前記メモリハブが決定することは、前記アドレス部分の値を前記メモリハブのアドレスと比較した値を備えたことを特徴とする請求項９に記載のメモリモジュール。
【請求項１５】
前記メモリアクセス信号は、メモリデバイスに与えられるアドレス、コントロール、データ信号を備えたことを特徴とする請求項９に記載のメモリモジュール。
【請求項１６】
前記ハブは、アップストリームメモリ応答を受け取り、アップストリームメモリハブに結合されるように適応されたアップストリーム出力ポート上にそのような応答を提供するように、さらに適応されていることを特徴とする請求項９に記載のメモリハブ。
【請求項１７】
システムコントローラと、
各メモリモジュールは、それぞれの高速通信リンクを通して隣接メモリモジュールに結合され、前記メモリモジュールの少なくとも１つは、それぞれの高速通信リンクを通して前記システムコントローラに結合されていて、各メモリモジュールは、
複数のメモリデバイスと、
前記メモリ要求が前記メモリモジュールに向けられた書込みコマンドを含むかどうかを決定するために、前記ハブが、受け取った各ダウンストリームメモリ要求を処理するように動作可能であり、メモリアクセス信号を前記メモリデバイスに適用するように、前記書込みコマンドが前記モジュールに向けられているとき、前記メモリハブは第１モードで動作可能であり、前記コマンドをダウンストリーム出力ポート上に提供するように、前記書込みコマンドが前記モジュールに向けられていないときは、前記第２モードで動作可能である、前記メモリデバイスに結合されていて、ダウンストリームメモリ要求を受け取るように適応されたダウンストリーム入力ポートを含むメモリハブと
を備えた複数のメモリモジュールと
を備えたこと特徴とするシステムメモリ。
【請求項１８】
前記システムコントローラはメモリコントローラを備えたことを特徴とする請求項１７に記載のシステムメモリ。
【請求項１９】
前記システムコントローラは、前記コントローラが読取りコマンドを第１メモリモジュールに適用するときから、前記コントローラが前記第１モジュールのアップストリームにある第２モジュールに書込みコマンドを適用する間、前記書込みコマンドが向けられている前記アップストリームモジュールと比較した、前記読取りコマンドが向けられている前記ダウンストリームモジュールとの位置の関数として、タイミングを決定することを特徴とする請求項１７に記載のシステムメモリ。
【請求項２０】
前記読取りおよび書込みコマンドが、前記さらなるダウンストリームを増加させる間の前記タイミングは、前記アップストリームモジュールと比較した前記ダウンストリームモジュールであることを特徴とする請求項１９に記載のシステムメモリ。
【請求項２１】
前記メモリデバイスは動的ランダムアクセスメモリデバイスを備えたことを特徴とする請求項１７に記載のシステムメモリ。
【請求項２２】
前記書込みコマンドは、コマンド部分とデータ部分を備えたことを特徴とする請求項１７に記載のシステムメモリ。
【請求項２３】
前記ダウンストリームメモリ要求は、アドレス部分を含み、各メモリハブは、前記アドレス部分の値を前記メモリモジュールに関連付けられたアドレスと比較することによって、前記書込みコマンドが前記メモリに向けられているかどうかを決定することを特徴とする請求項１７に記載のシステムメモリ。
【請求項２４】
前記メモリアクセス信号は、アドレス、コントロール、およびデータ信号を備えたことを特徴とする請求項１７に記載のシステムメモリ。
【請求項２５】
各メモリハブは隣接ダウンストリームモジュールからアップストリームメモリ応答を受け取り、隣接アップストリームメモリモジュールにその応答を提供することを特徴とする請求項１７に記載のシステムメモリ。
【請求項２６】
プロセッサと、
プロセッサに結合されたシステムコントローラと、
前記システムコントローラを通して前記プロセッサに結合された入力デバイスと、
前記システムコントローラを通して前記プロセッサに結合された出力デバイスと、
前記システムコントローラを通して前記プロセッサに結合されたストレージデバイスと、
各メモリモジュールは、それぞれの高速通信リンクを通して隣接メモリモジュールに結合され、前記メモリモジュールの少なくとも１つは、それぞれの高速通信リンクを通して前記システムコントローラに結合されていて、各メモリモジュールは、
複数のメモリデバイスと、
前記メモリ要求が前記メモリモジュールに向けられた書込みコマンドを含むかどうかを決定するために、前記ハブが、受け取った各ダウンストリームメモリ要求を処理するように動作可能であり、メモリアクセス信号を前記メモリデバイスに適用するように、前記書込みコマンドが前記モジュールに向けられているとき、前記メモリハブは第１モードで動作可能であり、前記コマンドをダウンストリーム出力ポート上に提供するように、前記書込みコマンドが前記モジュールに向けられていないときは、前記第２モードで動作可能である、前記メモリデバイスに結合されていて、ダウンストリームメモリ要求を受け取るように適応されたダウンストリーム入力ポートを含むメモリハブと
を備えた前記システムコントローラに結合された複数のメモリモジュールと
を備えたこと特徴とするシステムメモリ。
【請求項２７】
各高速通信リンクは光リンクを備えたことを特徴とする請求項２６に記載のコンピュータシステム。
【請求項２８】
前記システムコントローラは、前記コントローラが読取りコマンドを第１メモリモジュールに適用する時から、前記コントローラが前記第１モジュールのアップストリームである第２モジュールに書込みコマンドを適用する時の間、前記書込みコマンドが向けられている前記アップストリームモジュールと比較して、前記読取りコマンドが向けられている前記ダウンストリームモジュールとの前記位置の関数として、決定することを特徴とする請求項２６に記載のコンピュータシステム。
【請求項２９】
前記読取りおよび書込みコマンドが前記さらなるダウンストリームを増加さえる間の前記タイミングは、前記アップストリームモジュールと比較した前記ダウンストリームモジュールであることを特徴とする請求項２６に記載のコンピュータシステム。
【請求項３０】
前記メモリデバイスは、動的ランダムアクセスメモリデバイスを備えたことを特徴とする請求項２６に記載のコンピュータシステム。
【請求項３１】
前記書込みコマンドは、コマンド部分とデータ部分を備えたことを特徴とする請求項２６に記載のコンピュータシステム。
【請求項３２】
前記ダウンストリームメモリ要求はアドレス部分を含むことを特徴とし、各メモリハブは、前記書込みコマンドが前記メモリに向けられているかどうかを、前記アドレス部分の値を前記メモリモジュールに関連付けられたアドレスと比較することによって決定することを特徴とする請求項２６に記載のコンピュータシステム。
【請求項３３】
各メモリハブは、隣接ダウンストリームモジュールからアップストリームメモリ応答を受け取り、隣接アップストリームメモリモジュールにそのような応答を提供することを特徴とする請求項２６に記載のコンピュータシステム。
【請求項３４】
前記プロセッサは、中央処理ユニット（ＣＰＵ）を備えたことを特徴とする請求項２６に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータシステムに関し、さらに詳しくは、メモリハブアーキテクチャを有するシステムメモリを含むコンピュータシステムに関する。
【背景技術】
【０００２】
コンピュータシステムは、動的ランダムアクセスメモリＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ)デバイスなどのメモリデバイスを使用して、プロセッサによってアクセスされるデータを格納している。これらのメモリデバイスは、コンピュータシステムにおいてシステムメモリとして通常使用される。典型的なコンピュータシステムでは、プロセッサは、プロセッサバスとメモリコントローラを通してシステムメモリと通信する。プロセッサはメモリ要求を発行し、これは読取り(ｒｅａｄ)コマンドなどのメモリコマンドと、データまたは命令がそこから読み取られる位置を指定しているアドレスを含む。メモリコントローラはコマンドとアドレスを使用して、適切なコマンド信号、ならびに行（ｒｏｗ）と列（ｃｏｌｕｍｎ）アドレスを生成し、これらはシステムメモリに適用される。コマンドとアドレスに応答して、データはシステムメモリとプロセッサの間で転送されている。メモリコントローラは、「ノースブリッジ（ｎｏｒｔｈ  ｂｒｉｄｇｅ）」として知られるシステムコントローラの一部であることが多く、そこには、プロセッサバスを周辺接続インタフェース(ＰＣＴ)バスなどの拡張バス（Ｅｘｐａｎｓｉｏｎ  Ｂｕｓ）に結合するためのバスブリッジ回路も含まれる。
【０００３】
メモリデバイスの動作速度は絶えず増加しているが、この動作速度の増加はプロセッサの動作速度の増加に追いついていない。プロセッサをメモリデバイスに結合するメモリコントローラの動作速度の増加は一層遅くなっている。メモリコントローラとメモリデバイスの速度が相対的に遅いことは、プロセッサとメモリデバイスの間のデータ帯域幅の制約になっている。
【０００４】
プロセッサとメモリデバイスの間の帯域幅の制約のほかに、コンピュータシステムのパフォーマンスは、システムメモリデバイスからデータを読み取るのに要する時間を増加する待ち時間（ｌａｔｅｎｃｙ）の問題によっても制限されている。さらに詳しくは、メモリデバイスの読取りコマンドが、同期ＤＲＡＭ（「ＳＤＲＡＭ」）デバイスなどのシステムメモリデバイスに結合されているとき、読取りデータは、遅延（ｄｅｌａｙ）の後のみ、ＳＤＲＡＭデバイスから出力される。よって、ＳＤＲＡＭデバイスは、バーストデータ（ｂｕｒｓｔ  ｄａｔａ）を同期的に高データレートで出力できるが、初期にデータを出力するときの遅延または待ち時間は、このようなＳＤＲＡＭデバイスを使用するコンピュータシステムの動作速度を著しく低速化させる可能性がある。
【０００５】
従来のシステムメモリにおいて待ち時間を増加させるもう１つの状況は、書込みコマンドのすぐ後に読取りコマンドが続く場合である。コントローラが書込みコマンドを発行するとき、コントローラは書込みデータがそこに存在しなくなるか、あるいはデータバスを「クリア」するまで待たなければならない。もっと後にならないと読取りコマンドを要求されたメモリデバイスに適用できないので、このコントローラによる待ちは、システムメモリの待ち時間を増加させる。書込みデータがバスをクリアした後、メモリデバイスの待ち時間のために、データがデータバス上を長時間転送されず、これはシステムメモリの帯域幅を低下させる。周波数が増加すると、従来のシステムトポロジ（ｓｙｓｔｅｍ  ｔｏｐｏｌｏｇｙ）は、物理的および電気的制約のためにタイミング要求を満たすことができない。このようなメモリハブ、つまりポイントツーポイントによる解決法が実装されている。
【０００６】
メモリの待ち時間問題を軽減する１つの解決方法は、メモリハブを通してプロセッサに結合された複数のメモリデバイスを使用することである。メモリハブアーキテクチャにおいて、システムコントローラまたはメモリコントローラは、高速データリンク上で複数のメモリモジュールに結合される。通常、メモリモジュールは、これらのメモリモジュールが相互に連続で接続されるように、ポイントツーポイントまたはデイジーチェイン構造で結合されている。したがって、メモリコントローラは、第１高速リンク上で第１メモリモジュールに結合され、この第１メモリモジュールは、第２高速データリンクを通して第２メモリモジュールに接続され、この第２メモリモジュールは第３高速データリンクを通して第３メモリモジュールに結合され、以下同様にデイジーチェイン状に結合される。
【０００７】
各メモリモジュールは、対応する高速データリンクとモジュール上の複数のメモリデバイスに結合されたメモリハブを含み、このメモリハブは、高速データリンク上で、コントローラとメモリデバイスとの間のメモリ要求と応答を効率よくルーティング（経路指定）する。このアーキテクチャを採用するコンピュータシステムは、別のメモリデバイスが先行メモリアクセスに応答している間に、プロセッサがあるメモリデバイスにアクセスできるので、より高い帯域幅を有することができる。例えば、システム内の別のメモリデバイスが読取りデータをプロセッサに与える準備をしている間に、プロセッサはシステム内のメモリデバイスの１つに書込みデータを出力することができる。さらに、従来のマルチドロップバス(multi drop bus)アーキテクチャにおいて生じるように、さらなるメモリモジュールが追加されると、信号品質の低下の結果はどうあれ、このアーキテクチャは、システムメモリの容易な拡張の提供もする。
【０００８】
メモリハブを使用するコンピュータシステムが、より優れたパフォーマンスを提供しうるが、それでもなお、さまざまな理由で最適な速度で動作できないことがよく起こりうる。例えば、メモリハブが、より広い帯域幅でコンピュータシステムを提供できるにも関わらず、依然として上述したタイプの待ち時間問題に煩わされている。１つの問題は、あるメモリハブから別のメモリハブへ伝播する書込みコマンドとして生じる。書込みコマンドがダウンストリームを伝播する間、コントローラは、データの衝突しないことを保障するために、後続の読取りコマンドを発行する前に待たなければならない。このように、例えば、与えられた書込みコマンドが、コントローラから第１ハブダウンストリームへ向けられるかもしれないが、コントローラは、最後のハブへ続く読取りコマンドを発行する前に、データが最後のハブへ伝播されたことを確かめるまで、待たなければならない。このコントローラによる待ちは、読取りコマンドの発行を遅らせるので、これにより、システムメモリの待ち時間が増大する。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
メモリハブアーキテクチャをもつシステムメモリの待ち時間を低減するシステムと方法が望まれている。
【課題を解決するための手段】
【００１０】
本発明の態様によれば、メモリハブはダウンストリームメモリ要求を受け取り、受け取った各ダウンストリームメモリ要求を処理して、そのメモリ要求がメモリハブに向けられた書込みコマンドを含むかどうかを判断する。メモリハブは、書込みコマンドがハブに向けられているとき、第１モードで動作し、メモリデバイスに適用するように適応されたメモリアクセス信号を生じる。メモリハブは、書込みコマンドがハブに向けられていないとき、第２モードで動作し、ダウンストリームメモリハブに結合されるように適応されたダウンストリーム出力ポート上にコマンドを提供する。
【図面の簡単な説明】
【００１１】
【図１】本発明の一例による高帯域幅メモリハブアーキテクチャを有するシステムメモリを含むコンピュータシステムのブロック図である。
【図２】本発明の書込み終了方式が実装されているとき、図１のシステムメモリにおけるタイミングを示す信号タイミング図である。
【図３】書込み終了方式が実装されていない従来のシステムメモリのタイミングと比較したとき、図２の書込み終了方式を実行する図１のシステムメモリの待ち時間の低減を示す信号タイミング図である。
【発明を実施するための形態】
【００１２】
本発明の一例によるコンピュータシステム１００が、図１に示されている。コンピュータシステム１００は、宛先ハブで書込みデータを終了するメモリハブアーキテクチャをもつシステムメモリ１０２を含み、コントローラが書込みコマンドの後、より早く読取りコマンドを発行することを可能にし、これによってシステムメモリの待ち時間を低減する。これについて、以下でより詳しく説明する。以下の記述において、本発明の十分な理解を提供するために、一定の詳細が説明される。しかし、本発明はこれらの具体的詳細がなくても実施することを当業者は理解するだろう。その他の場合に、周知の回路、制御信号、タイミングプロトコル、および／またはソフトウェアオペレーションは、本発明を不必要に不明確にするのを避けるために詳細は示されていないか、あるいは全体が省かれている。
【００１３】
コンピュータシステム１００は、特定の演算またはタスクを実行するために特定のソフトウェアを実行するように、様々なコンピューティング機能を実行するためのプロセッサ１０４を含む。プロセッサ１０４は、通常、アドレスバス、コントロールバス、およびデータバスを含むプロセッサバス１０６を有する中央処理ユニットＣＰＵ(central processing unit)であるのが典型的である。プロセッサバス１０６はキャッシュメモリ１０８に結合されているのが典型的であり、これは、前述したように、通常は静的ランダムアクセスメモリＳＲＡＭ(static random access memory)である。最後に、プロセッサバス１０６はシステムコントローラ１１０に結合されているが、これは「ノースブリッジ(north bridge)」または「メモリコントローラ」とも時々呼ばれる。
【００１４】
システムコントローラ１１０は、種々な他のコンポーネントにとって、プロセッサ１０４への通信路の役割を果たす。より詳細には、システムコントローラ１１０は、典型的にグラフィックスコントローラ１１２に結合されているグラフィックスポートを含み、これは次いで、ビデオ端末１１４に結合されている。システムコントローラ１１０は、キーボードやマウスなどの１または２以上の入力デバイス１１８にも結合され、オペレータがコンピュータシステム１１０とのインタフェースをとることを可能にする。典型例として、コンピュータシステム１１０は、システムコントローラ１１０を通してプロセッサ１０４に結合される、プリンタのような、１または２以上の出力デバイスも含む。１または２以上のストレージデバイス１２４も、典型的にシステムコントローラ１１０を通してプロセッサ１０４に結合され、これはプロセッサ１０４が内部または外部記憶媒体（示されていない）へデータを格納、またはからデータを取り出すことを可能とする。典型的なストレージデバイスの例は、ハードおよびフロッピディスク、テープカセット、およびコンパクトディスク読取り専用メモリ（ＣＤ−ＲＯＭ）を含む。
【００１５】
システムコントローラ１１０は、さらにシステムメモリ１０２に結合され、複数のメモリモジュール１３０ａ、ｂ、…、ｎを含み、コマンドをメモリモジュールに適用するよう動作し、システムメモリの帯域幅を最適化する。これについては、以下でより詳しく説明する。このメモリモジュール１３０は、モジュールとシステムコントローラ１１０の間に結合されたそれぞれの高速リンク１３４を通してポイントツーポイントまたはデイジーチェインアーキテクチャで結合されている。高速リンク１３４は、光、ＲＦ、または電気的通信路であってもよく、当業者によって評価されるように、他の適切なタイプの通信路であってもよい。高速リンク１３４が光通信路として実装される場合に、各光通信路は、例えば、１または２以上の光ファイバの形であってよい。そのようなシステムでは、システムコントローラ１１０とメモリモジュール１３０はそれぞれ、対応する光通信路に結合された光入／出力ポートまたは別々の入力および出力ポートを含む。
【００１６】
メモリモジュール１３０は、デイジーアーキテクチャでシステムコントローラ１１０に結合されているものとして示されているが、システムコントローラ１１０がスイッチ（図示せず）を通して各メモリモジュール１３０に選択的に結合されるスイッチングトポロジや、すべてのメモリモジュール１３０が単一の高速リンク１３４に結合されるマルチドロップアーキテクチャのような、他のトポロジもまた使用できる。リングトポロジ(ｒｉｎｇ  ｔｏｐｏｌｏｇｙ)のような他のトポロジを使用できることは、当業者にとって明らかである。
【００１７】
各メモリモジュール１３０は、対応する高速リンク１３４上で通信し、６個のメモリデバイス１４８へのアクセスを制御するためのメモリハブ１４０を含み、これは、図１の例における、同期動的ランダムアクセスメモリＳＤＲＡＭ（ｓｙｎｃｈｒｏｎｏｕｓ  ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）デバイスである。メモリハブ１４０の各々は、対応する高速リンク１３４に結合された入力ポートと出力ポートを含み、ポートの種類と数は高速リンクの特性に依存している。しかし、より小数または多数のメモリデバイス１４８が使用でき、ＳＤＲＡＭ以外のメモリデバイスを使用することもできる。メモリハブ１４０は、バスシステム１５０を介して各システムメモリデバイス１４８に結合され、これは通常、コントロールバス、アドレスバス、およびデータバスを含む。
【００１８】
動作時に、各メモリハブ１４０はダウンストリームメモリコマンドを受け取り、これらのコマンドを処理して、与えられたコマンドが対応するメモリモジュール１３０に向けられているかどうかを決定する。より詳細には、各メモリハブ１４０は、与えられたメモリコマンドが書込みコマンドを含んでいるかどうかを決定する。メモリ要求が書込みコマンドを含むとメモリハブ１４０が決定したとき、メモリハブは次に、書込みコマンドが対応するメモリモジュール１３０に向けられているかどうかを決定する。この決定が否定のとき、つまり、書込みコマンドが対応するメモリモジュール１３０に向けられていないとき、メモリハブ１４０は、書込みコマンドのデータを次のダウンストリームメモリモジュールへ転送する。逆に、決定が肯定のときは、つまり、書込みコマンドが対応するメモリモジュール１３０に向けられていることを示しているときは、メモリハブ１４０は、書込みコマンドのデータを次のダウンストリームメモリモジュールへ転送することを終了する。さらに、メモリハブは、次のダウンストリームメモリモジュールへの書込みコマンドを終了することもある。
【００１９】
このように、各メモリハブ１４０は、与えられた書込みコマンドが対応するメモリモジュール１３０に向けられているかどうかを決定し、そのモジュールに向けられていれば、書込みコマンドのデータのダウンストリームメモリモジュールへの伝播を終了する。各メモリハブ１４０もまた、ダウンストリームメモリモジュール１３０からのメモリ応答を、次の隣接アップストリームメモリモジュールへ転送する。このようなメモリ応答は、例えば、ダウンストリームメモリモジュールの１つに向けられた読取りコマンドに対応する読取りデータを含む。
【００２０】
以下の説明において、書込みコマンドまたは読取りコマンドは、メモリモジュール１３０に適用される実際の命令を参照するのに利用され、その命令に関連する書込みデータまたは読取りデータは別々に参照される。しかし、コマンドは、命令部分とデータ部分の両方を含むものと考えることができる。さらに、各コマンドは、そのコマンドが向けられている特定のメモリモジュール１３０を示す、何らかのタイプのアドレスまたは識別情報を含むだろうことに留意されたい。このように、システムコントローラ１１０は、所望のメモリモジュールのために、識別情報をコマンドの中に与えることによって、特定のメモリモジュール１３０にアクセスする。
【００２１】
システムコントローラ１１０とシステムメモリ１０２の全体的な動作は、図２の信号タイミング図を参照して、ここでより詳しく説明する。これは、システムコントローラによってシステムメモリに適用されるコマンドのタイミングを示す。図２は、システムコントローラ１１０がメモリモジュール１３０ａへデータを書き込み、ダウンストリームメモリモジュール１３０ｂからデータを読み取っている例を示す。時刻ｔ１において、システムコントローラ１１０は、高速リンク１３４上に読取りコマンドを適用し、このコマンドは、時刻ｔ２にて、メモリモジュール１３０ａで受け取られる。
【００２２】
この時点で、モジュール１３０ａ内のメモリハブ１４０は、受け取ったコマンドを処理し、コマンドがそのメモリモジュールに向けられているかどうかを決定する。この例において、読取りコマンドはメモリモジュール１３０ｂに向けられていて、このようにメモリモジュール１３０ａ内のメモリハブ１４０は、メモリモジュール１３０ｂにコマンドを転送し、そこでコマンドは時刻ｔ３にて受け取られる。モジュール１３０ｂ内のメモリハブ１４０は、受け取った読取りコマンドを処理し、コマンドがそのモジュールに向けられていることを決定し、その後、メモリデバイス１４８内の所望の読取りデータへアクセスするために、適切な信号をバスシステム１５０上に適用する。モジュール１３０ｂ内のメモリハブ１４０は、時刻ｔ４で始まって、高速リンク１３４上に読取りデータを置き、ブロックは高速リンク１３４上に置かれた読取りデータを表している。この読取りデータは時刻ｔ５で始まってモジュール１３０ａで受け取られ、システムコントローラ１１０へアップストリームを転送し、これは時刻ｔ６から始まって受け取られる。
【００２３】
ここで時刻ｔ３に戻って、読取りコマンドがメモリモジュール１３０ｂによって受け取られ、処理されている間、システムコントローラ１１０は、高速リンク１３４上に書込みコマンドを置く。書込みコマンドは、データが書き込まれることになるメモリモジュール１３０、すなわち、モジュール１３０ａに対応する識別情報を含む。時刻ｔ７で、書込みコマンドは、モジュール１３０ａ内のメモリハブ１４０によって受け取られ、コマンドがそのメモリモジュールに向けられているかどうかを決定するために処理される。この例において、モジュール１３０ａ内のメモリハブ１４０は、書込みコマンドがそのモジュールに向けられていると決定し、その後、２つのオペレーションを実行する。第１に、メモリハブ１４０は、書込みコマンドを終了する。このことは、書込みコマンドが次のダウンストリームメモリモジュール１３０ｂに提供されないことを意味する。第２に、モジュール１３０ａ内のメモリハブ１４０は、書込みコマンドを処理し、その後、該当信号をバスシステム１５０上に適用して、メモリデバイス１４８内の所望の格納場所にアクセスする。本発明の別の実施形態において、書込みコマンドは、次のダウンストリームハブ１４０に渡されるかもしれないが、書込みデータは終了されるかもしれない。
【００２４】
モジュール１３０ａ内のメモリハブ１４０が、受け取った書込みコマンドを処理している間に、システムコントローラ１１０は、時刻ｔ８で始まって高速リンク１３４上に書込みデータを置く。この場合、各ブロックはまたもや、高速リンク上に置かれた書込みデータを表す。書込みデータは、時刻ｔ９で始まってメモリモジュール１３０ａで受け取られ、メモリハブ１４０はその後、バスシステム１５０上に書込みデータを置き、該当信号を発生して、書込みデータをメモリデバイス１４８内の所望の格納位置に転送する。
【００２５】
この時点で、システムコントローラ１１０はメモリモジュール１３０ａへのデータを書込み完了している。モジュール１３０ａへ転送される書込みデータの最後のワードは、時刻ｔ１０に完了しており、これは、モジュール１３０ｂからの読取りデータの最初の断片がモジュール１３０ａで受け取られるとき、時刻ｔ５の直前であることに留意されたい。従って、システムコントローラ１１０とメモリモジュール１３０ａの間の高速リンク１３４上の読取りデータで、書込みデータの衝突はない。さらに、時刻ｔ６にシステムコントローラ１１０で受け取られる読取りデータは、従来のシステムにおけるよりも早く起こる。これは、モジュール１３０ｂ内のメモリリハブ１４０が、書込みデータがメモリモジュールを通過するのを待つ必要がないからである。ハブが、書き込みコマンドが対応するモジュール１３０ａに向けられていると決定すると、モジュール１３０ａ内のハブ１４０が、書込みデータのダウンストリーム伝播を終了するので、これは真である。
【００２６】
図２において、時刻ｔ１１とｔ１２で始まる点線は、書込みデータがモジュール１３０ａによって終了されていない場合に、書込みコマンドと書込みデータのそれぞれが、いつモジュール１３０ｂに到着するかを表す。図２は、書込みデータがモジュール１３０ａによって終了されていなければ、モジュール１３０ｂからの読取りデータが、書込みデータがモジュール１３０ｂを通過した後である、だいたい時刻ｔ１３までに提供できないことを示している。８個のデータワードが４クロックサイクルで転送されるように、データがクロック信号（図２に示す）の各エッジで転送されると想定した場合、書込みデータの終了は、読取りデータが、書込みデータが終了されなかった場合よりも４クロックサイクルだけ早く戻されるという結果になる。
【００２７】
図３は、書込み終了方式のない従来システムメモリのタイミングと比較したとき、図２を参照して上述した書込み終了方式によって、図１のシステムメモリ１０２の待ち時間が、低減することを示す信号タイミング図である。図３に示されるように、このシステムメモリ１０２で、メモリコントローラ１１０は、時刻ｔ１で最初に読取りコマンドを発行し、その後、時刻ｔ２で書込みコマンドを発行する。システムコントローラ１１０はその後、時刻ｔ３で高速リンク１３４上に書込みデータを置き、読取りデータは時刻ｔ４で始まって時刻ｔ５で終了するまで、コントローラによって受け取られる。書込み終了がメモリハブ１４０によって実行されていない場合、システムコントローラ１１０は、だいたい時刻ｔ２までに読取りコマンドを発行しないことになり、時刻ｔ６で始まって時刻ｔ７で終了する期間まで読取りデータを受け取らないことになる。時刻ｔ７は、４クロックサイクルだけ時刻ｔ５の後であり、そこで書込み終了が実行されたとき、コントローラ１１０は、すべての読取りデータを受け取っている。従って、システムメモリ１０２の待ち時間は、４クロックサイクル低減され、このことは、４クロックサイクルの間に８個のデータワードが転送されることから顕著である。
【００２８】
メモリハブ１４０によって実行される書込み終了はシステムメモリ１０２の待ち時間を低減し、これによりメモリの帯域幅を増加させる。この書込み終了方式は、第２ダウンストリームメモリモジュールのアップストリームにある第１メモリモジュール１３０にデータが書き込まれるときに、特に有用である。上述したように、従来システムでは、書込みデータが読取りデータと衝突しないように、コントローラは、書込みコマンド発行のタイミングをとってから、読取りコマンド発行のタイミングをとる。アップストリームモジュール１３０での書込みデータの終了は、コントローラ１１０が、書込みコマンドの前に読取りコマンドを実際に出すことを可能にし、これは従来システムの反対であり、システムメモリの待ち時間が低減する読取りコマンドのより早い発行である。
【００２９】
システムメモリ１０２で、システムコントローラ１１０は、互いに相対するモジュール１３０の物理的位置を知っているので、読取りおよび書込みコマンドをいつ発行すべきかを正確に知っている。例えば、データがメモリモジュール１３０ｚから読み取られ、メモリモジュール１３０ａへ書き込まれることになると、戻される読取りデータは、対応するメモリモジュール１３０ｂ−ｙ上の介在ハブ１４０を通過するときに遅延するので、コントローラ１１０は、書込みコマンドに対して非常に早く読取りコマンドを発行できる。これに対して、データがメモリモジュール１３０ｂから読み取られ、メモリモジュール１３０ａに書き込まれることになる場合、コントローラ１１０もまだ、書込みコマンドに先行して読取りコマンドを発行するが、データがモジュール１３０ｚから読み取られていた前の状況のように早くはない。
【００３０】
メモリハブ１４０のようなコンピュータシステム１００の構成要素が、上述した機能を実行するように、これらの構成要素を形成するための回路を、当業者は理解することができるだろう。これらの適当な回路で構成することができる。上述した説明において、本発明の十分な理解を提供するためにある程度の詳細が示されている。しかし、当業者は、本発明はこれらの具体的詳細なしでも実施することができることを理解するだろう。さらに、当業者は、上述した例示の実施形態は本発明の範囲を限定するものではないことを理解するだろう、そして、開示された例示の実施形態の様々な同等な実施形態または組み合わせは、本発明の範囲内であることを理解するだろう。上に示された例は、様々な実施形態のある程度の詳細をさらに示すことのみを意図し、本発明の範囲を制限するものと解釈されるべきではない。また、上述した説明において、周知構成要素の動作は、本発明を不必要に不明確にするのを避けるために詳細には示されていないまたは説明されていない。最後に、本発明は添付の特許請求範囲によってのみ制限され、本発明の上述した例または実施形態によって制限されない。
【符号の説明】
【００３１】
１００  コンピュータシステム
１０２  システムメモリ
１０４  プロセッサ
１０６  プロセッサバス
１０８  キャッシュメモリ
１１０  システムコントローラ
１１２  グラフィックスコントローラ
１１４  ビデオ端末
１１８  入力デバイス
１２０  出力デバイス
１２４  データストレージデバイス
１３０  メモリモジュール
１３４  高速リンク
１４０  メモリハブ
１４８  メモリデバイス
１５０  バスシステム
【図１】
2010157270.tif 000003
【図２】
2010157270.tif 000004
【図３】
2010157270.tif 000005