(57)【要約】  送信メモリハブと受信メモリハブとの間に介在するメモリハブのデータ経路上で、読み出し応答を送信するメモリハブおよび方法。関連読み出し応答に対するデータ経路構成を示すデータを含む調停パケットを、メモリハブで受信する。調停パケットをデコードし、調停パケットのデータに従ってデータ経路を構成する。関連読み出し応答をメモリハブで受信し、関連読み出し応答を、同じものを受信メモリハブに送信するために、構成されたデータ経路に結合する。
2007531119.tif 000002
【特許請求の範囲】
【請求項１】
応答メモリハブおよび少なくとも１つの介在メモリハブを有するシステムメモリ内で読み出し要求に応答する方法であって、読み出し応答は前記介在メモリハブを介して前記介在メモリハブのデータ経路上で送信され、前記方法は、
前記応答メモリハブに結合するメモリデバイスから読み出しデータを読み出し、前記読み出しデータを含む読み出し応答を準備すること、
前記読み出し応答に対するデータ経路構成を示すデータを含む調停パケットを生成すること、
前記調停パケットおよび前記読み出し応答を前記介在メモリハブに提供し、前記調停パケットは前記読み出し応答の前に提供されること、
前記調停パケットを前記介在メモリハブで受信し、前記調停パケットのデータをデコードし、前記調停パケットのデータに従って前記介在メモリハブ内で前記読み出し応答に対するデータ経路を有効化すること
を含むことを特徴とする方法。
【請求項２】
前記調停パケットを生成することは、前記調停パケットと前記読み出し応答を区別するために使用する前記調停パケット用データを生成することを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記調停パケットを生成することは、複数の８ビットバイトを生成することを含み、前記複数の８ビットバイトは、前記介在メモリハブが前記調停パケットと前記読み出し応答を区別するために使用するデータを含む１バイトを含むことを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記読み出し応答に対する前記データ経路を有効化することは、前記介在メモリハブ内のバイパスデータ経路を有効化して、前記介在メモリハブを介して前記調停パケットおよび前記読み出し応答を結合することを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記介在メモリハブはビジーかどうかを判定すること、
前記介在メモリハブがビジーでない場合、前記介在メモリハブに前記関連読み出し応答を提供する前に、前記介在メモリハブへの提供用に前記調停パケットを生成することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記応答メモリハブのローカルデータ経路はアイドルかどうかを判定すること、
前記ローカルデータ経路がアイドルである場合、前記介在メモリハブに前記関連読み出し応答を提供する前に、前記介在メモリハブへの提供用に前記調停パケットを生成することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記調停パケットを生成することは、前記介在メモリハブを介して前記調停パケットおよび前記読み出し応答を結合するために前記介在メモリハブ内のバイパスデータ経路を有効化することを示すデータを含む調停パケットを生成することを含むことを特徴とする請求項１に記載の方法。
【請求項８】
送信メモリハブと受信メモリハブとの間に介在するメモリハブのデータ経路上で読み出し応答を送信する方法であって、前記方法は、
関連読み出し応答に対するデータ経路構成を示すデータを含む調停パケットを前記メモリハブで受信すること、
前記調停パケットをデコードすること、
前記データ経路を前記調停パケットのデータに従って構成すること、
前記関連読み出し応答を前記メモリハブで受信すること、
前記関連読み出し応答を、同じものを前記受信メモリハブに送信するために前記の構成されたデータ経路に結合すること
を含むことを特徴とする方法。
【請求項９】
前記データ経路を構成することは、前記メモリハブ内のバイパスデータ経路を有効化して、前記調停パケットおよび前記読み出し応答を、前記メモリハブを介して、前記受信メモリハブに結合することを含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記関連読み出し応答の送信前に同じものを前記受信メモリハブに送信するために、前記調停パケットを前記構成されたデータ経路に結合することをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１１】
前記メモリハブはビジーか否かのクエリを前記送信ハブから受信すること、
前記メモリハブはビジーでないことを前記送信ハブに示すことにより前記クエリに応答することをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１２】
読み出し応答が提供されるメモリハブのデータ経路を構成する方法であって、
前記方法は、
第１メモリハブで、関連読み出し応答に対するデータ経路構成を示すデータを含む調停パケットを生成すること、
前記調停パケットを、前記第１メモリハブに結合する第２メモリハブに提供すること、
前記調停パケットを前記第２メモリハブでデコードすること、
前記関連読み出し応答の受信に備えて、前記調停パケットのデータに従って前記第２メモリハブのデータ経路を構成すること
を含むことを特徴とする方法。
【請求項１３】
前記調停パケットを生成することは、前記調停パケットと前記読み出し応答を区別するために使用する前記調停パケット用データを生成することを含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記データ経路を構成することは、前記第２メモリハブ内のバイパスデータ経路を有効化して、前記調停パケットおよび前記読み出し応答を、前記第２メモリハブを介して、結合することを含むことを特徴とする請求項１２に記載の方法。
【請求項１５】
前記第２メモリハブはビジーかどうかを判定すること、
前記第２メモリハブがビジーでない場合、前記第２メモリハブに前記関連読み出し応答を提供する前に、前記調停パケットを前記第２メモリハブに提供すること
をさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１６】
ローカルデータ経路はアイドルかどうかを判定すること、
前記ローカルデータ経路がアイドルである場合、前記第２メモリハブに前記関連読み出し応答を提供する前に、前記第２メモリハブへの提供用に前記調停パケットを生成すること
をさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１７】
前記調停パケットを生成することは、前記第２メモリハブを介して前記調停パケットおよび前記読み出し応答を結合するために前記第２メモリハブ内のバイパスデータ経路を有効化することを示すデータを含む調停パケットを生成することを含むことを特徴とする請求項１２に記載の方法。
【請求項１８】
第２メモリハブ内でデータ経路を構成するために、第１メモリハブと第２メモリハブとの間で通信する方法であって、前記方法は、
関連読み出し応答が前記第２メモリハブを介して結合するよう調停パケットを生成し、前記調停パケットは、それが調停パケットであることを認識するデータを含むコマンドコードフィールド、および前記第２メモリハブ内のデータ経路構成を示すデータを含むデータ経路フィールドをさらに有すること、
前記関連読み出し応答を前記第２メモリハブに送信する前に前記調停パケットを送信すること、
前記データ経路フィールドに含まれる前記データに従って前記第２メモリハブ内で前記データ経路を構成すること
を含むことを特徴とする方法。
【請求項１９】
前記データ経路を構成することは、前記第２メモリハブ内のバイパスデータ経路を有効化して、前記調停パケットおよび前記関連読み出し応答を、前記第２メモリハブを介して結合することを含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記第２メモリハブはビジーかどうかを判定すること、
前記第２メモリハブがビジーでない場合、前記第２メモリハブに前記関連読み出し応答を提供する前に、前記第２メモリハブへの提供用に前記調停パケットを生成すること
をさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２１】
ローカルデータ経路はアイドルかどうかを判定すること、
前記ローカルデータ経路がアイドルである場合、前記第２メモリハブに前記関連読み出し応答を提供する前に、前記第２メモリハブへの提供用に前記調停パケットを生成すること
をさらに含むことを特徴とする請求項１９に記載の方法。
【請求項２２】
少なくとも１つのメモリデバイスに結合するメモリハブであって、前記メモリハブは、
リモートおよびローカル入力ノード、
出力ノード、
前記リモートおよびローカル入力ノード、およびさらに前記出力ノードに結合する構成可能なデータ経路であって、前記リモートおよびローカル入力ノードを介して前記出力ノードに結合する読み出し応答の少なくとも１つに結合するように動作可能である前記構成可能なデータ経路、
前記構成可能なデータ経路、前記出力ノード、および前記リモート入力ノードに結合する調停制御回路であって、前記調停制御回路は、前記ローカル入力ノードを介して結合する関連読み出し応答に対する調停パケットを生成するよう動作可能で、前記調停パケットは、前記関連読み出し応答に対するデータ経路構成を示すデータを含み、前記調停制御回路はさらに、前記リモート入力ノードを介して前記出力ノードに結合する前記関連読み出し応答の結合に備えて、前記リモート入力ノードを介して結合する前記調停パケットとともに含まれる前記データに従って前記構成可能なデータ経路を構成するよう動作可能である前記調停制御回路
を備えたことを特徴とするメモリハブ。
【請求項２３】
前記構成可能なデータ経路は、
前記出力ノードに結合する出力および前記調停制御回路に結合する制御ノードを有するマルチプレクサ、
前記リモート入力ノードおよび前記マルチプレクサの第１入力に結合するバイパスデータ経路、
前記ローカル入力ノードに結合する入力、およびさらに前記マルチプレクサの第２入力に結合する出力を有するローカルキュー、
前記リモート入力ノードに結合する入力、およびさらに前記マルチプレクサの第３入力に結合する出力を有するリモートキューを備え、
前記調停制御回路は、前記マルチプレクサ用制御信号を生成して、前記バイパスデータ経路、前記ローカルキュー、または前記リモートキューを選択的に前記出力ノードに結合するよう動作可能であることを特徴とする請求項２２に記載のメモリハブ。
【請求項２４】
前記調停制御論理はさらに、前記調停パケットと前記関連読み出し応答を区別するために使用する前記調停パケット用データを生成するよう動作可能であることを特徴とする請求項２２に記載のメモリハブ。
【請求項２５】
入力ノードと出力ノードとの間を結合し、読み出し応答を有効化に応じてそれらの間で結合するするバイパスデータ経路、
前記メモリハブに結合するメモリデバイスからの読み出しデータの読み出しに応じて調停パケットを生成するよう動作可能な、前記バイパスデータ経路に結合する調停制御回路であって、前記調停パケットは、上流メモリハブのバイパスデータ経路を有効化する起動データを含むデータ経路フィールドを有し、前記調停制御回路はさらに、下流メモリハブから調停パケットを受信するように、また前記バイパスデータ経路を有効化してそこから受信した読み出し応答を前記入力ノードから前記出力ノードへ結合するように動作可能である前記調停制御回路を備えたことを特徴とするメモリハブ。
【請求項２６】
前記出力ノードに結合する出力および前記調停制御回路に結合する制御ノード、さらに前記バイパスデータ経路に結合する第１入力を有するマルチプレクサ、
ローカル入力ノードに結合する入力、およびさらに前記マルチプレクサの第２入力に結合する出力を有するローカルキュー、
前記入力ノードに結合する入力、およびさらに前記マルチプレクサの第３入力に結合する出力を有するリモートキューを備え、前記調停制御回路は、前記マルチプレクサ用制御信号を生成して、前記バイパスデータ経路、前記ローカルキュー、または前記リモートキューを選択的に前記出力ノードに結合するよう動作可能であることをさらに備えたことを特徴とする請求項２５に記載のメモリハブ。
【請求項２７】
複数のメモリデバイス、
メモリデバイスバスを介して前記メモリデバイスに結合し前記メモリデバイスにアクセスするメモリハブを備えたメモリモジュールであって、
前記メモリハブは、
リモートおよび前記メモリデバイスバスに結合するローカル入力ノード、
出力ノード、
前記リモートおよびローカル入力ノード、およびさらに前記出力ノードに結合する構成可能なデータ経路であって、前記リモートおよびローカル入力ノードを介して前記出力ノードに結合する読み出し応答の少なくとも１つに結合するように動作可能である前記構成可能なデータ経路、
前記構成可能なデータ経路、前記出力ノード、および前記リモート入力ノードに結合する調停制御回路であって、前記調停制御回路は、前記ローカル入力ノードを介して結合する関連読み出し応答に対する調停パケットを生成するよう動作可能で、前記調停パケットは、前記関連読み出し応答に対するデータ経路構成を示すデータを含み、前記調停制御回路はさらに、前記リモート入力ノードを介して前記出力ノードに結合する前記関連読み出し応答の結合に備えて、前記リモート入力ノードを介して結合する前記調停パケットとともに含まれる前記データに従って前記構成可能なデータ経路を構成するよう動作可能である前記調停制御回路
を備えたことを特徴とするメモリモジュール。
【請求項２８】
前記メモリハブの前記構成可能なデータ経路は、
前記出力ノードに結合する出力および前記調停制御回路に結合する制御ノードを有するマルチプレクサ、
前記リモート入力ノードおよび前記マルチプレクサの第１入力に結合するバイパスデータ経路、
前記ローカル入力ノードに結合する入力、およびさらに前記マルチプレクサの第２入力に結合する出力を有するローカルキュー、
前記リモート入力ノードに結合する入力、およびさらに前記マルチプレクサの第３入力に結合する出力を有するリモートキューを備え、
前記調停制御回路は、前記マルチプレクサ用制御信号を生成して、前記バイパスデータ経路、前記ローカルキュー、または前記リモートキューを選択的に前記出力ノードに結合するよう動作可能であることを特徴とする請求項２７に記載のメモリモジュール。
【請求項２９】
前記メモリハブの前記調停制御論理はさらに、前記調停パケットと前記関連読み出し応答を区別するために使用する前記調停パケット用データを生成するよう動作可能であることを特徴とする請求項２７に記載のメモリモジュール。
【請求項３０】
複数のメモリデバイス、
メモリデバイスバスを介して前記メモリデバイスに結合し前記メモリデバイスにアクセスするメモリハブを備えたメモリモジュールであって、
前記メモリハブは、
入力ノードと出力ノードとの間を結合し、読み出し応答を有効化に応じてそれらの間で結合するするバイパスデータ経路、
前記メモリハブに結合するメモリデバイスからの読み出しデータの読み出しに応じて調停パケットを生成するよう動作可能な、前記バイパスデータ経路に結合する調停制御回路であって、前記調停パケットは、上流メモリハブのバイパスデータ経路を有効化する起動データを含むデータ経路フィールドを有し、前記調停制御回路はさらに、下流メモリハブから調停パケットを受信するように、また前記バイパスデータ経路を有効化してそこから受信した読み出し応答を前記入力ノードから前記出力ノードへ結合するように動作可能である前記調停制御回路
を備えたことを特徴とするメモリモジュール。
【請求項３１】
前記メモリハブは、
前記出力ノードに結合する出力および前記調停制御回路に結合する制御ノード、さらに前記バイパスデータ経路に結合する第１入力を有するマルチプレクサ、
ローカル入力ノードに結合する入力、およびさらに前記マルチプレクサの第２入力に結合する出力を有するローカルキュー、
前記入力ノードに結合する入力、およびさらに前記マルチプレクサの第３入力に結合する出力を有するリモートキューを備え、前記調停制御回路は、前記マルチプレクサ用制御信号を生成して、前記バイパスデータ経路、前記ローカルキュー、または前記リモートキューを選択的に前記出力ノードに結合するよう動作可能であることを特徴とする請求項３０に記載のメモリモジュール。
【請求項３２】
プロセッサバスを有するプロセッサ、
前記プロセッサバスに結合するシステムコントローラであって、周辺デバイスポートを有し、システムメモリポートに結合するコントローラをさらに備える前記システムコントローラ、
前記システムコントローラの前記周辺デバイスポートに結合する少なくとも１つの入力デバイス、
前記システムコントローラの前記周辺デバイスポートに結合する少なくとも１つの出力デバイス、
前記システムコントローラの前記周辺デバイスポートに結合する少なくとも１つのデータストレージデバイス、
その上でメモリ要求および応答を送信するために前記システムコントローラに結合するメモリバス、
前記メモリバスに結合する複数のメモリモジュールを備え、前記モジュールの各々は、
複数のメモリデバイス、
メモリデバイスバスを介して前記メモリデバイスに結合し前記メモリデバイスにアクセスするメモリハブを有し、
前記メモリハブは、
リモートおよび前記メモリデバイスバスに結合するローカル入力ノード、
出力ノード、
前記リモートおよびローカル入力ノード、およびさらに前記出力ノードに結合する構成可能なデータ経路であって、前記リモートおよびローカル入力ノードを介して前記出力ノードに結合する読み出し応答の少なくとも１つに結合するように動作可能である前記構成可能なデータ経路、
前記構成可能なデータ経路、前記出力ノード、および前記リモート入力ノードに結合する調停制御回路であって、前記調停制御回路は、前記ローカル入力ノードを介して結合する関連読み出し応答に対する調停パケットを生成するよう動作可能で、前記調停パケットは、前記関連読み出し応答に対するデータ経路構成を示すデータを含み、前記調停制御回路はさらに、前記リモート入力ノードを介して前記出力ノードに結合する前記関連読み出し応答の結合に備えて、前記リモート入力ノードを介して結合する前記調停パケットとともに含まれる前記データに従って前記構成可能なデータ経路を構成するよう動作可能である前記調停制御回路を含む前記メモリモジュール
を備えたことを特徴とするプロセッサベースのシステム。
【請求項３３】
前記メモリハブの前記構成可能なデータ経路は、
前記出力ノードに結合する出力および前記調停制御回路に結合する制御ノードを有するマルチプレクサ、
前記リモート入力ノードおよび前記マルチプレクサの第１入力に結合するバイパスデータ経路、
前記ローカル入力ノードに結合する入力、およびさらに前記マルチプレクサの第２入力に結合する出力を有するローカルキュー、
前記リモート入力ノードに結合する入力、およびさらに前記マルチプレクサの第３入力に結合する出力を有するリモートキューを備え、前記調停制御回路は、前記マルチプレクサ用制御信号を生成して、前記バイパスデータ経路、前記ローカルキュー、または前記リモートキューを選択的に前記出力ノードに結合するよう動作可能であることを備えたことを特徴とする請求項３２に記載のプロセッサベースのシステム。
【請求項３４】
前記メモリハブの前記調停制御回路はさらに、前記調停パケットと前記関連読み出し応答を区別するために使用する前記調停パケット用データを生成するよう動作可能であることを特徴とする請求項３２に記載のプロセッサベースのシステム。
【請求項３５】
プロセッサバスを有するプロセッサ、
前記プロセッサバスに結合するシステムコントローラであって、周辺デバイスポートを有し、システムメモリポートに結合するコントローラをさらに備える前記システムコントローラ、
前記システムコントローラの前記周辺デバイスポートに結合する少なくとも１つの入力デバイス、
前記システムコントローラの前記周辺デバイスポートに結合する少なくとも１つの出力デバイス、
前記システムコントローラの前記周辺デバイスポートに結合する少なくとも１つのデータストレージデバイス、
その上でメモリ要求および応答を送信するために前記システムコントローラに結合するメモリバス、
前記メモリバスに結合する複数のメモリモジュールを備え、
前記モジュールの各々は、
複数のメモリデバイス、
メモリデバイスバスを介して前記メモリデバイスに結合し前記メモリデバイスにアクセスするメモリハブを有し、
前記メモリハブは、
入力ノードと出力ノードとの間を結合し、読み出し応答を有効化に応じてそれらの間で結合するするバイパスデータ経路、
前記メモリハブに結合するメモリデバイスからの読み出しデータの読み出しに応じて調停パケットを生成するよう動作可能な、前記バイパスデータ経路に結合する調停制御回路であって、前記調停パケットは、上流メモリハブのバイパスデータ経路を有効化する起動データを含むデータ経路フィールドを有し、前記調停制御回路はさらに、下流メモリハブから調停パケットを受信するように、また前記バイパスデータ経路を有効化してそこから受信した読み出し応答を前記入力ノードから前記出力ノードへ結合するように動作可能である前記調停制御回路を含む前記メモリモジュール
を備えたことを特徴とするプロセッサベースのシステム。
【請求項３６】
前記メモリハブは、
前記出力ノードに結合する出力および前記調停制御回路に結合する制御ノード、さらに前記バイパスデータ経路に結合する第１入力を有するマルチプレクサ、
ローカル入力ノードに結合する入力、およびさらに前記マルチプレクサの第２入力に結合する出力を有するローカルキュー、
前記入力ノードに結合する入力、およびさらに前記マルチプレクサの第３入力に結合する出力を有するリモートキューを備え、前記調停制御回路は、前記マルチプレクサ用制御信号を生成して、前記バイパスデータ経路、前記ローカルキュー、または前記リモートキューを選択的に前記出力ノードに結合するよう動作可能であることを特徴とする請求項３５に記載のプロセッサベースのシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的にプロセッサベースのコンピューティングシステム用のメモリシステムに関し、より詳細には、メモリ応答管理用の調停システム及び方法をその中に有するハブベースのメモリシステムに関する。
【背景技術】
【０００２】
コンピュータシステムは、ダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）デバイス等のメモリデバイスを使用し、プロセッサがアクセスするデータを格納する。これらのメモリデバイスは、普通はコンピュータシステム内のシステムメモリとして使用される。典型的なコンピュータシステムにおいては、プロセッサはプロセッサバスおよびメモリコントローラを介してシステムメモリと通信する。システムメモリのメモリデバイスは、通常複数のメモリデバイスを有するメモリモジュール内に配列され、メモリバスを介してメモリコントローラに結合する。プロセッサはメモリ要求を発行し、そのメモリ要求は、読み出しコマンド等のメモリコマンド、およびデータまたは命令を読み出す位置を指定するアドレスを含む。メモリコントローラはそのコマンドおよびアドレスを使用して、行および列アドレスと同様に適切なコマンド信号を生成し、それらはメモリバスを介してシステムバスに適用される。コマンドおよびアドレスに応答して、データはシステムメモリとプロセッサとの間で転送される。メモリコントローラは多くの場合システムコントローラの一部であり、プロセッサバスをＰＣＩバス等の拡張バスに結合するバスブリッジ回路も含む。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
メモリシステムにおいては、高いデータ帯域幅が望ましい。一般的に、帯域幅の制限はメモリコントローラには関係しない。なぜならば、メモリコントローラはメモリデバイスの許容する限り速くシステムメモリへ、およびシステムメモリから、データを順序付けるからである。帯域幅増加のために採られてきたアプローチの１つは、メモリコントローラをメモリデバイスに結合するメモリデータバスの速度を、増加させることである。従って、同量の情報がより少ない時間でメモリデータバス上を移動できる。しかしながら、メモリデータバスの速度を増加させても帯域幅がそれに対応して増加するわけではない。データバスの速度と帯域幅との間の非線形関係の理由の１つは、メモリデバイス自体内のハードウェア制限である。即ち、メモリコントローラは、メモリデバイスに対する全てのメモリコマンドをスケジュールして、ハードウェア制限を守らなければならない。これらのハードウェア制限はメモリデバイスの設計によりある程度削減できるが、ハードウェア制限を削減すると、通常、コスト、電力、および／またはサイズをメモリデバイスに追加することになり、これらの全てが望ましくない代替なので、妥協が必要である。従って、これらの制約が与えられると、メモリデバイスが、例えばメモリデバイスの同じページに続くトラフィック等の「良く振る舞う」(well-behaved)トラフィックを増加し続ける変化率で移動させることは簡単であるが、例えばメモリデバイスの異なるページまたはバンクの間を行き来するような「悪く振舞う」(badly-behaved)トラフィックをメモリデバイスが解決することは非常に困難である。結果として、メモリデータバスの帯域幅を増加させても、情報の帯域幅はそれに対応して増加しない。
【０００４】
プロセッサとメモリデバイスとの間の制限された帯域幅に加えて、コンピュータシステムの性能は、システムメモリデバイスからのデータの読み出しに必要な時間を増加させるレイテンシ問題によっても制限される。より具体的には、メモリデバイスの読み出しコマンドがシンクロナスＤＲＡＭ（「ＳＤＲＡＭ」）デバイス等のシステムメモリデバイスに結合するとき、読み出しデータは数クロック周期遅れてＳＤＲＡＭから出力される。従って、ＳＤＲＡＭデバイスは同期的に高データ率でバーストデータを出力できるが、初期のデータ提供時における遅延のため、そのようなＳＤＲＡＭデバイスを使用するコンピュータシステムの動作速度が非常に遅くなる可能性がある。メモリデータバスの速度を増加させると、レイテンシ問題の緩和に役立つ可能性がある。しかしながら、帯域幅と同様に、メモリデータバスの速度を増加させても、前の議論と本質的に同じ理由で、レイテンシは線形的に削減されない。
【０００５】
メモリデータバスの速度を増加させることにより、ある程度、帯域幅の増加およびレイテンシの削減に成功したが、このアプローチにより他の問題が発生する。例えば、メモリデータバスの速度が増加するにつれ、シグナルインテグリティを維持するためにメモリバスへのロードを減少する必要がある。なぜならば、従来、メモリコントローラとメモリモジュールが差し込まれるメモリスロットとの間にはワイヤーしかないためである。メモリデータバス速度の増加に適応するためにアプローチがいくつか採られてきた。例えば、メモリスロット数を削減すること、メモリモジュールにバッファ回路を追加してメモリモジュール上のメモリデバイスに十分な制御信号のファンアウトを提供すること、および単一のメモリデバイスインタフェース上のメモリモジュールコネクタが少なすぎるという理由でメモリモジュール上に複数のメモリデバイスインタフェースを提供することである。しかしながら、これらの従来のアプローチの効果は限られている。これらの技術が過去に使用された理由は、そうするとコスト効果が高かったからである。しかしながら、インタフェース毎に１つのメモリモジュールしか差し込めないとき、コストがかかりすぎて、必要なメモリスロットの各々に別個のメモリンタフェースを追加することはできない。言い換えると、それによりシステムコントローラのパッケージが商品の範囲を超えて専門分野の範疇に入り、従って非常にコストがかさむことになる。
【０００６】
コスト効果の高い方法でメモリデータバスの速度増加を可能にする最近のアプローチの１つは、メモリハブを介してプロセッサに結合する複数のメモリデバイスの使用である。メモリハブアーキテクチャまたはハブベースのメモリサブシステムにおいては、システムコントローラまたはメモリコントローラは、高速双方向または単方向メモリコントローラ／ハブインタフェース上でいくつかのメモリモジュールに結合する。通常、メモリモジュールはポイントツーポイントまたはデイジーチェーンアーキテクチャで結合し、メモリモジュールは連続して一方から他方へ接続される。従って、メモリコントローラは、第１のメモリモジュールに結合し、第１のメモリモジュールは第２のメモリモジュールに接続し、第２のメモリモジュールは第３のメモリモジュールに結合するというようにデイジーチェーン方式で続く。
【０００７】
各メモリモジュールは、そのモジュール上でメモリコントローラ／ハブインタフェースおよび多数のメモリデバイスに結合するメモリハブを含み、メモリハブがコントローラとメモリデバイスとの間のメモリ要求および応答をメモリコントローラ／ハブインタフェース上で効果的にルーティングする。このアーキテクチャを採用するコンピュータシステムは、メモリデータバス上でシグナルインテグリティが維持できるので、高速のメモリデータバスを使用できる。さらに、このアーキテクチャでは、従来のメモリバスアーキテクチャで発生するような、より多くのメモリモジュール追加する際の信号品質の劣化を気にすることなく、システムメモリを容易に拡張する。
【０００８】
メモリハブを使用するコンピュータシステムは優れた性能を提供できるが、様々な要素がメモリシステムの性能に影響しうる。例えば、あるメモリハブから別のメモリハブへの上流（ｕｐｓｔｒｅａｍ）の（即ち、コンピュータシステムにおいてメモリハブコントローラへ戻る）読み出しデータフローの管理方法は、読み出しのレイテンシに影響する。メモリハブが読み出しデータフローを管理することは、一般的に調停と称してもよく、各メモリハブがローカルメモリ読み出し応答と上流メモリ読み出し応答との間を調停する。即ち、各メモリハブは、ローカルメモリ読み出し応答を最初に送るか否か、または下流（ｄｏｗｎｓｔｒｅａｍ）（即ち、そのメモリハブコントローラからさらに遠く）メモリハブからのメモリ読み出し応答を最初に転送するか否かを判定する。どちらのメモリ読み出し応答の優先度が低いかを判定することは、特定のメモリ読み出し応答のレイテンシに影響するのみであろうが、増加したレイテンシを有するメモリ読み出し応答の追加的な効果は、メモリシステムのレイテンシ全体に影響するであろう。結果として、メモリハブが採用する調停技術は、メモリシステム全体の性能に直接的に影響する。加えて、調停スキームを実装することは、同様に読み出しのレイテンシ全体に影響するであろう。なぜならば、望ましい調停スキームを利用するにも関らず、非効率的な実装がシステムメモリの性能に否定的に影響を及ぼすからである。従って、メモリハブアーキテクチャを有するシステムメモリにおいてメモリ応答を管理する調停スキームを実装するシステムおよび方法が必要である。
【課題を解決するための手段】
【０００９】
本発明の１態様による方法は、送信メモリハブと受信メモリハブとの間に介在するメモリハブのデータ経路上で読み出し応答を送信することを含む。その方法は、関連読み出し応答に対するデータ経路構成を示すデータを含む調停パケットを、メモリハブで受信することを含む。調停パケットをデコードし、調停パケットのデータに従ってデータ経路を構成する。関連読み出し応答をメモリハブで受信し、関連する読み出し応答を、同じものを受信メモリハブに送信するために、構成されたデータ経路に結合する。
【００１０】
本発明の別の態様において、少なくとも１つのメモリデバイスに結合するメモリハブを提供する。メモリハブはリモートおよびローカル入力ノード、出力ノード、および構成可能なデータ経路を含み、その構成可能なデータ経路は、リモートおよびローカル入力ノード、さらに出力ノードに結合する。メモリハブはさらに、構成可能なデータ経路、出力ノード、およびリモート入力ノードに結合する調停制御回路を含む。調停制御回路は、ローカル入力ノードを介して結合する関連読み出し応答に対する調停パケットを生成する。この調停パケットは、関連読み出し応答に対するデータ経路構成を示すデータを含む。調停制御回路はさらに、リモート入力ノードを介して結合する関連読み出し応答の出力ノードへの結合に備えて、リモート入力ノードを介して結合する調停パケットとともに含まれるデータに従って構成可能なデータ経路を構成することができる。
【００１１】
本発明の別の態様において、メモリハブは入力ノードと出力ノードとの間を結合するバイパスデータ経路を有するとして提供される。この経路上で、読み出し応答は有効化に応じて結合し、さらにメモリハブは調停制御回路を含む。調停制御回路はバイパスデータ経路に結合し、メモリハブに結合したメモリデバイスからの読み出しデータの読み出しに応じて調停パケットを生成する。調停パケットは、上流メモリハブのバイパスデータ経路を有効化する起動データを含むデータ経路フィールドを有する。調停制御回路はまた、調停パケットを下流メモリハブから受信し、バイパスデータ経路を有効化して、下流メモリハブから同様に受信した読み出し応答を入力ノードから出力ノードへ結合する。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明の実施形態を利用できるメモリハブアーキテクチャを有するコンピュータシステム１００を図示する。コンピュータシステム１００は特定の計算またはタスク実施する特定ソフトウェアの実行等、様々なコンピューティング機能を実施するプロセッサ１０４を含む。プロセッサ１０４は、普通、アドレスバス、制御バス、およびデータバスを含むプロセッサバス１０６を含む。プロセッサバス１０６は通常、キャッシュメモリ１０８に結合し、それは、通常、スタティックランダムアクセスメモリ（「ＳＲＡＭ」）である。プロセッサバス１０６はさらにシステムコントローラ１１０に結合し、バスブリッジとも称される。
【００１３】
システムコントローラ１１０は、様々な他のコンポーネントに対しプロセッサ１０４への通信経路としての役割も果たす。より具体的には、システムコントローラ１１０は通常グラフィックスコントローラ１１２に結合するグラフィックスポートを含む。グラフィックスコントローラ１１２は順に映像端末１１４に結合する。システムコントローラ１１０は、キーボードまたはマウス等の１または複数の入力デバイス１１８にも結合し、それにより操作者はコンピュータシステム１００とインタフェースすることができる。通常、コンピュータシステム１００は、システムコントローラ１１０を介してプロセッサ１０４に結合する、プリンタ等の１または複数の出力デバイス１２０をも含む。１または複数のデータストレージデバイス１２４は通常、システムコントローラ１１０を介してプロセッサ１０４にも結合し、それによりプロセッサ１０４は内部または外部ストレージ媒体（不図示）にデータを格納またはそこからデータを読み出しできる。典型的なストレージデバイス１２４の例として、ハードディスクおよびフロッピー（登録商標）ディスク、テープカセット、およびコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）を含む。
【００１４】
システムコントローラ１１０は、いくつかのメモリモジュール１３０ａ−ｎにバスシステム１５４、１５６を介して結合するメモリハブコントローラ１２８を含む。メモリモジュール１３０ａ−ｎの各々は、コマンド、アドレスおよび集合的にバス１５０として示されるデータバスを介していくつかのメモリデバイス１４８に結合するメモリハブ１４０を含む。メモリハブ１４０は、コントローラ１２８とメモリデバイス１４８との間のメモリ要求および応答を効率的にルーティングする。メモリハブ１４０の各々は、書き込みバッファおよび読み出しデータバッファを含む。このアーキテクチャを採用するコンピュータシステムでは、プロセッサ１０４は、別のメモリモジュール１３０ａ−ｎが先のメモリ要求に応答している間に、メモリモジュール１３０ａ−ｎの１つにアクセスできる。例えば、プロセッサ１０４は、システム内の別のメモリモジュール１３０ａ−ｎがプロセッサ１０４に読み出しデータの提供を準備している間に、メモリモジュール１３０ａ−ｎの１つに書き込みデータを出力できる。加えて、メモリハブアーキテクチャは、コンピュータシステムにおいて非常に増加したメモリ容量を提供することもできる。
【００１５】
図２は本発明の１実施形態による調停制御コンポーネント２００を図示する機能ブロック図である。調停制御コンポーネント２００を、図１のメモリハブ１４０に含むことができる。図２に示すように、調停制御コンポーネント２００は関連メモリ応答を格納する２つのキューを含む。ローカル応答キュー２０２は、関連するメモリモジュール１３０上のメモリデバイス１４８からのローカルメモリ応答ＬＭＲを受信および格納する。リモート応答キュー２０６は、バイパス経路２０４を介して即座に上流に転送できない下流のメモリ応答を受信および格納する。調停制御回路２１０は、制御／ステータスバス１３６を介してキュー２０２、２０６に結合し、調停制御回路２１０はキュー２０２、２０６各々の内容を監視でき、マルチプレクサ２０８の制御においてこの情報を利用し、それによりメモリハブ１４０が実行する調停プロセス全体を制御する。制御／ステータスバス１３６により、「ハンドシェーク」信号がキュー２０２、２０６から調停制御回路２１０に結合され、制御信号の調停制御回路２１０からキュー２０２、２０６への転送を調整する。
【００１６】
調停制御回路２１０はさらに高速リンク１３４に結合し、調停パケットを下流のメモリハブから受信する。以下でさらに詳細に説明するように、調停パケットは関連メモリ応答より前に提供され、上流メモリハブの調停制御回路２１０に、関連メモリ応答の受信を予測して受信メモリハブを介する適切な経路を有効にする情報を提供する。加えて、調停制御回路２１０は調停パケットを関連ＬＭＲの前に提供されるように生成して、読み出し要求に応じてメモリデバイス１４８（図１）からデータを読み出すときに、関連メモリ応答を早期に示すものとしての役割を果たす。先に論じたように、調停パケットは上流メモリハブに適切な情報を提供し、メモリ応答の到着前に適切なデータ経路の有効化に関して決定する時間を各調停制御回路２１０に与えるであろう。調停制御回路２１０は、メモリデバイス１４８からメモリ応答に対する読み出しデータを読み出している間に、調停パケットを準備する。調停パケットは上流メモリハブがアイドルかまたはビジーかによって、スイッチ２１２を介してマルチプレクサ２０８またはローカル応答キュー２０２のいずれかに提供される。マルチプレクサ２０８は、調停制御回路の制御下で高速リンク１３４を結合し、リモート応答キュー２０６またはバイパス経路２０４からメモリ応答を、調停制御回路２１０から調停パケットを、またはローカル応答キュー２０２から調停パケットおよびメモリ応答を、受信する。例えば、本発明の範囲内であれば、データ構造３００のデータフィールドの数および型、または各ビット時間に対するビット数を変えることができる。本発明の代替実施形態において調停パケットは、図２に示すように調停制御回路２１０よりむしろ調停パケット回路内で生成される。加えて、図２にはデータストリームに投入するようにマルチプレクサ２０８に調停パケットを提供するものとして示されているが、調停パケットを代替的にローカル応答キュー２０２に提供し、関連読み出し応答パケットの前に置いてデータストリームに投入することができる。当業者には当然のことながら、調停パケットの生成位置または、関連読み出しパケットより先に調停パケットがデータストリームに置かれる方法等、本発明の実施形態に対する修正は、本発明の要旨を逸脱しない範囲で可能である。
【００１７】
図３は、本発明の実施形態による、調停パケットおよびメモリ応答のデータ構造３００を図示する。データ構造３００は情報を８ビットバイトに分割し、情報の各バイトは逐次的なビット時間に対応する。各ビット時間は、新規データが提供される時間増分を表す。応答ヘッダフィールド３０２は、応答が調停パケットまたはメモリ応答のいずれかであることを示す２バイトのデータを含む。アドレスフィールド３０４は、調停パケットまたはメモリ応答の宛先である特定のハブの識別に使用されるデータを含む。コマンドコードフィールド３０６は、データ構造３００をメモリ応答ではなく調停パケットとして識別する値を有するであろう。調停パケットおよびメモリ応答は、調停パケットにとってはデータフィールド３０８のデータペイロードが 「無関係」であることを除いて、同様である。データ構造３００において、サイズフィールド３１０の１６ビット全ては同一の値を保持し、メモリ応答が保持するデータペイロードのサイズを示す。例えば、「０」は３２バイトのデータが含まれることを示し、「１」は６４バイトのデータが含まれることを示す。当業者には当然のことながら、図３に示すデータ構造３００の実施形態は１例として提供されるものであり、データ構造３００に対する修正は本発明の要旨を逸脱しない範囲で可能である。
【００１８】
調停制御コンポーネント２００（図２）の動作を、図４のフロー図を参照して記述する。読み出しデータコマンドの受信に続き、ステップ４０２でメモリハブは、要求対象に提供されるメモリ応答に対して、読み出し動作を初期化し、メモリデバイス１４８（図１）から要求される読み出しデータを読み出す。ステップ４０４で、メモリハブの調停制御回路２１０は、ローカルデータ経路がアイドルであるかどうかをローカル応答キュー２０２のステータスをチェックすることにより判定する。ローカルデータ経路がアイドルである場合、メモリデバイス１４８から読み出しデータを読み出す間に、ステップ４０６で調停パケットが調停制御回路２１０により生成される。調停パケットおよびメモリ応答が用意され送信準備ができると、ステップ４０８で、上流メモリハブに問い合わせて、それがビジーであるかどうかを判定する。上流メモリハブがアイドルであるところでは、ステップ４１０、４１２で、調停パケットを上流メモリハブに送り、メモリ応答が続く。しかしながら、上流メモリハブがビジーである場合、調停パケットをステップ４１４で廃棄し、ステップ４１６でメモリ応答をローカル応答キュー２０２に格納する。同様に、ステップ４０４でローカルデータ経路がビジーであると判定すると、ステップ４１６でメモリ応答をやはりローカル応答キューに格納する。ステップ４１８でメモリ応答は、メモリハブが実装する調停スキームに従って上流メモリハブへの送信用に選択されるまで、ローカル応答キュー２０２に格納される。ステップ４２０で、そのメモリ応答がターゲットに到着するまで、メモリ応答を調停スキームに従って各上流メモリハブを介して送信する。適切な調停スキームは当業界で公知であり、ここでは詳細に記述しない。使用に適した調停スキームの例は、２００３年１０月２０日出願、James W. Meyer、Cory Kanskiに譲渡された、同時係属中のARBITRATION SYSTEM AND METHOD FOR MEMORY RESPONSES IN A HUB-BASED MEMORY SYSTEMというタイトルの米国特許出願番号１０／６９０，８１０においてより詳細に記述されている。
【００１９】
そこで記述されているように、ローカルおよびリモート応答キュー２０２、２０６およびバイパス経路２０４が、様々な応答調停スキームを実装するために利用される。例えば、１実施形態において、調停制御回路は下流応答、またはリモート応答にローカル応答以上の優先度を与える調停スキームを実行する。記述されている別の実施形態においては、代替的に、調停制御回路はローカル応答に下流応答以上の優先度を与える調停スキームを実行する。また別の実施形態においては、調停制御回路はローカルおよび下流メモリからの所定数の応答間で交代する。例えば、ローカルおよびリモート応答を交互に転送することができる、または２つのローカル応答を転送し２つのリモート応答が続く、等である。そこで記述される別の実施形態では、ローカルと下流メモリ応答との間の調停において古いものから順番のアルゴリズム(oldest first algorithm)を利用する。即ち、動作において、調停制御回路２１０は、ローカル応答キューおよびリモート応答キューに格納されたメモリ応答の応答識別子部を監視し、いずれかのキューに含まれる最も古い応答を上流へ転送すべき次の応答として選択する。このように、メモリ応答が格納される応答キューとは独立して、調停制御回路は最も古い応答を最初に転送する。
【００２０】
当業者には当然のことながら、他の調停方法およびスキームが、本発明の範囲を逸脱することなく利用可能である。
【００２１】
調停パケットを最初に上流メモリハブに送信し、次にメモリ応答が続くステップ４１０、４１２に戻ると、上流メモリハブの調停制御回路２１０はステップ４２２で調停パケットを受信する。ステップ４２４、４２６で、調停パケットをデコードし、デコードされた情報に基づいて、適切なデータ経路を調停制御回路２１０により有効化する。ステップ４３０でメモリ応答を受信するまでに、適切なデータ経路を調停制御回路２１０により有効化する。ステップ４２８で、次の上流メモリハブに問い合わせて、それがビジーかどうかを判定する。ビジーでなければ、ステップ４３２で、調停パケットおよびその次にメモリ応答を、バイパス形式で次の上流メモリハブに送信する。バイパス形式での調停パケットおよびメモリ応答の送信は、ステップ４１２で関連メモリ応答を送る前にステップ４１０で送られるデコードされた調停パケットの情報に基づいて、メモリハブを介して適切なデータ経路を有効化することによって、促進される。
【００２２】
ステップ４２８に戻り、次の上流メモリハブがビジーであると判定する場合、調停パケットをステップ４４０で廃棄し、ステップ４４２で採用された調停スキームによりメモリ応答が次の上流メモリハブへの送信用に選択されるまで、メモリ応答をリモート応答キュー２０６に格納する。ステップ４２０で、メモリ応答は調停スキームに従い、そのターゲットに到達するまでメモリハブを介して上流へ進む。
【００２３】
本発明の特定の実施形態を例証のために記述してきたが、前述の記述から、当然のことながら、様々な修正が本発明の精神および範囲を逸脱することなくなされてもよい。例えば、本発明の実施形態を、ここではコンピュータシステム内のメモリハブベースのシステムメモリに関して記述してきた。しかしながら当然のことながら、本発明の実施形態は、適切なところではハブベースのメモリシステム以外のメモリシステムにおいても使用できる。さらに本発明の実施形態は、当技術分野で周知のように、コンピュータシステム以外のプロセッサベースのシステムで利用されるメモリハブベースのシステムにおいても使用可能である。従って、本発明は添付請求項による場合を除いては制限されない。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態を実装可能なメモリハブベースのシステムメモリを有するコンピュータシステムの部分ブロック図である。
【図２】図１のメモリハブにおいて利用可能な本発明の１実施形態による調停制御コンポーネントの機能ブロック図である。
【図３】本発明の１実施形態による調停パケットおよびメモリ応答のデータ構造図である。
【図４Ａ】本発明の１実施形態による図３の調停制御コンポーネントの動作フロー図である。
【図４Ｂ】本発明の１実施形態による図３の調停制御コンポーネントの動作フロー図である。
【図１】
2007531119.tif 000003
【図２】
2007531119.tif 000004
【図３】
2007531119.tif 000005
【図４Ａ】
2007531119.tif 000006
【図４Ｂ】
2007531119.tif 000007
【国際調査報告】
2007531119.tif 000008
2007531119.tif 000009