(57)【要約】【課題】  メモリ・システム内に不確定な読み取りデータ待ち時間を提供するための方法及びシステムを提供する。【解決手段】  この方法は、局所データ・パケットが受信されているかどうかを判断するステップを含む。局所データ・パケットが受信されている場合は、局所データ・パケットはバッファ装置内に格納される。この方法は、更に、バッファ装置がデータ・パケット含むかどうかを判断するステップ、及び、データ・パケットを上流チャネルを介してメモリ・コントローラに伝送するための上流ドライバがアイドル状態であるかどうかを判断するステップも含む。バッファがデータ・パケットを含み、上流ドライバがアイドル状態である場合は、データ・パケットは上流ドライバに伝送される。この方法は、更に、上流データ・パケットが受信されているかどうかを判断するステップを含む。上流データ・パケットは、フレーム開始インジケータと、上流データ・パケットを対応する読み取り命令と関連付ける際にメモリ・コントローラにより用いられる識別タグとを含むフレーム・フォーマットである。上流データ・パケットが受信されており、上流ドライバがアイドル状態でない場合は、上流データ・パケットはバッファ装置内に格納される。上流データ・パケットが受信されており、バッファ装置がデータ・パケットを含まず、上流ドライバがアイドル状態である場合は、上流データ・パケットは上流ドライバに伝送される。上流ドライバがアイドル状態でない場合は、進行中のあらゆるデータ・パケットは上流ドライバに伝送され続ける。【選択図】  図４
2009517725.tif 000002
【特許請求の範囲】
【請求項１】
不確定な読み取りデータ待ち時間をサポートするための方法であって、
局所データ・パケットが受信されているかどうかを判断するステップと、
局所データ・パケットが受信されている場合は、前記局所データ・パケットをバッファ装置内に格納するステップと、
前記バッファ装置がデータ・パケットを含むかどうかを判断するステップと、
前記データ・パケットを上流チャネルを介してメモリ・コントローラに伝送するための上流ドライバがアイドル状態であるかどうかを判断するステップと、
前記バッファ装置がデータ・パケットを含み、前記上流ドライバがアイドル状態である場合は、前記データ・パケットを前記上流ドライバに伝送するステップと、
上流データ・パケットが受信されているかどうかを判断するステップであって、前記上流データ・パケットは、フレーム開始インジケータと、前記上流データ・パケットを対応する読み取り命令と関連付ける際に前記メモリ・コントローラにより用いられる識別タグとを含むフレーム・フォーマットである、ステップと、
上流データ・パケットが受信されており、前記上流ドライバがアイドル状態でない場合は、前記上流データ・パケットを前記バッファ装置内に格納するステップと、
上流データ・パケットが受信されており、前記バッファ装置がデータ・パケットを含まず、前記上流ドライバがアイドル状態である場合は、前記上流データ・パケットを前記上流ドライバに伝送するステップと、
前記上流ドライバがアイドル状態でない場合は、進行中のあらゆるデータ・パケットを伝送し続けるステップと
を含む方法。
【請求項２】
局所データ・パケットが受信されているかどうかを判断する前記ステップ、前記バッファ装置がデータ・パケットを含むかどうかを判断する前記ステップ、上流ドライバはアイドル状態であるかどうかを判断する前記ステップ、及び、データ・パケットが受信されているかどうかを判断する前記ステップは、周期的に実行される、請求項１に記載の方法。
【請求項３】
前記周期は上流チャネル・サイクル毎に一度である、請求項２に記載の方法。
【請求項４】
前記バッファ装置は複数のデータ・パケットを含み、前記データ・パケットは優先順位付けアルゴリズムに基づいて選択される、請求項１に記載の方法。
【請求項５】
前記優先順位付けアルゴリズムは、前記データ・パケットに対応する前記読み取り命令の経過時間に基づいて前記データ・パケットを選択する、請求項４に記載の方法。
【請求項６】
前記優先順位付けアルゴリズムは、前記データ・パケットと関連付けられた優先順位に基づいて前記データ・パケットを選択する、請求項４に記載の方法。
【請求項７】
前記フレーム・フォーマットは、バス循環冗長コード（バスＣＲＣ）のフィールドを更に含む、請求項１に記載の方法。
【請求項８】
前記局所データ・パケットをバッファ装置内に格納する前記ステップは、前記局所データ・パケットをフォーマットするステップを含み、前記フォーマットするステップは、前記局所データ・パケットを前記フレーム・フォーマットに直列化するステップと、前記フレーム開始インジケータ、前記識別タグ、及び前記バスＣＲＣに値を挿入するステップとを含む、請求項７に記載の方法。
【請求項９】
上流データ・パケットを下流ハブ装置から受信するための上流レシーバと、局所データ・パケットを局所格納装置から受信するためのメモリ・インターフェースとを含む、データ・パケットを受信するための装置であって、前記データ・パケットの各々は、フレーム開始インジケータと、前記上流データ・パケットを対応する読み取り命令と関連付ける際にメモリ・コントローラにより用いられる識別タグとを含むフレーム・フォーマットである、装置と、
上流チャネルを介して前記データ・パケットを前記メモリ・コントローラに伝送するための上流ドライバと、
局所データ・パケットが受信されているかどうかを判断するステップと、
局所データ・パケットが受信されている場合は、前記局所データ・パケットをバッファ装置内に格納するステップと、
前記バッファ装置がデータ・パケットを含むかどうかを判断するステップと、
前記上流ドライバがアイドル状態であるかどうかを判断するステップと、
前記バッファ装置がデータ・パケットを含み、前記上流ドライバがアイドル状態である場合は、前記データ・パケットを前記上流ドライバに伝送するステップと、
上流データ・パケットが受信されているかどうかを判断するステップであって、前記上流データ・パケットは、フレーム開始インジケータと、前記上流データ・パケットを対応する読み取り命令と関連付ける際に前記メモリ・コントローラにより用いられる識別タグとを含むフレーム・フォーマットである、ステップと、
上流データ・パケットが受信されており、前記上流ドライバがアイドル状態でない場合は、前記上流データ・パケットを前記バッファ装置内に格納するステップと、
上流データ・パケットが受信されており、前記バッファ装置がデータ・パケットを含まず、前記上流ドライバがアイドル状態である場合は、前記上流データ・パケットを前記上流ドライバに伝送するステップと、
前記上流ドライバがアイドル状態でない場合は、進行中のあらゆるデータ・パケットを伝送し続けるステップと
を容易にするための命令を含む機構と
を含む、メモリ・システム内のハブ装置。
【請求項１０】
前記上流チャネルは、デイジー・チェーン・チャネルである、請求項９に記載のハブ装置。
【請求項１１】
前記ハブ装置はメモリ・モジュール上に物理的に配置される、請求項９に記載のハブ装置。
【請求項１２】
前記バッファ装置を更に含む、請求項９に記載のハブ装置。
【請求項１３】
局所データ・パケットが受信されているかどうかを判断する前記ステップ、前記バッファ装置はデータ・パケットを含むかどうかを判断する前記ステップ、上流ドライバはアイドル状態であるかどうかを判断する前記ステップ、及び、データ・パケットが受信されているかどうかを判断する前記ステップは、周期的に実行される、請求項９に記載のハブ装置。
【請求項１４】
前記周期は上流チャネル・サイクル毎に一度である、請求項１３に記載のハブ装置。
【請求項１５】
前記バッファ装置は複数のデータ・パケットを含み、前記データ・パケットは優先順位付けアルゴリズムに基づいて選択される、請求項９に記載のハブ装置。
【請求項１６】
前記優先順位付けアルゴリズムは、前記データ・パケットに対応する前記読み取り命令の経過時間に基づいて前記データ・パケットを選択する、請求項１５に記載のハブ装置。
【請求項１７】
前記優先順位付けアルゴリズムは、前記データ・パケットと関連付けられた優先順位に基づいて前記データ・パケットを選択する、請求項１５に記載のハブ装置。
【請求項１８】
１つ又は複数のメモリ装置がデイジー・チェーン・チャネルによりメモリ・コントローラに接続された１つ又は複数のメモリ・モジュールであって、読み取りデータが、識別タグ及びフレーム開始インジケータを含むフレーム・フォーマットを用いて前記メモリ・コントローラに戻される、１つ又は複数のメモリ・モジュールと、
読み取りデータ待ち時間を最小限にし、前記メモリ・コントローラへの不確定な読み取りデータ戻り時間を可能にするために、割り込み型局所データ合流アルゴリズムと共に用いられるコントローラ・チャネル・バッファを含む、アドレス、コマンド、及びデータをバッファするための、前記メモリ・モジュール上の１つ又は複数のハブ装置と
を含むメモリ・システム。
【請求項１９】
前記デイジー・チェーン・チャネル内の二地点間リンクを含む、請求項１８に記載のメモリ・システム。
【請求項２０】
前記ハブ装置は、コントローラ・チャネル・バッファ・アンロード優先順位付けアルゴリズムを更に含む、請求項１８に記載のメモリ・システム。
【請求項２１】
前記割り込み型局所データ合流アルゴリズムは、
局所データ・パケットが受信されているかどうかを判断するステップと、
局所データ・パケットが受信されている場合は、前記局所データ・パケットを前記コントローラ・チャネル・バッファに配置されたバッファ装置内に格納するステップと、
前記バッファ装置がデータ・パケットを含むかどうかを判断するステップと、
データ・パケットを上流チャネルを介してメモリ・コントローラに伝送するための上流ドライバがアイドル状態であるかどうかを判断するステップと、
前記バッファ装置がデータ・パケットを含み、前記上流ドライバがアイドル状態である場合は、前記データ・パケットを前記上流ドライバに伝送するステップと、
上流データ・パケットが受信されているかどうかを判断するステップと、
上流データ・パケットが受信されており、前記上流ドライバがアイドル状態でない場合は、前記上流データ・パケットを前記バッファ装置内に格納するステップと、
上流データ・パケットが受信されおり、前記バッファ装置がデータ・パケットを含まず、前記上流ドライバがアイドル状態である場合は、前記上流データ・パケットを前記上流ドライバに伝送するステップと、
前記上流ドライバがアイドル状態でない場合は、進行中のあらゆるデータ・パケットを伝送し続けるステップと
を含む、請求項１８に記載のメモリ・システム。
【請求項２２】
１つ又は複数のメモリ装置がデイジー・チェーン・チャネルによりメモリ・コントローラに接続された１つ又は複数のメモリ・モジュールであって、読み取りデータが、識別タグ及びフレーム開始インジケータを含むフレーム・フォーマットを用いて前記メモリ・コントローラに戻される、１つ又は複数のメモリ・モジュールと、
読み取りデータ待ち時間を最小限にし、前記メモリ・コントローラへの不確定な読み取りデータ戻り時間を可能にするために、割り込み型局所データ合流アルゴリズムと共に用いられるコントローラ・チャネル・バッファを含む、アドレス、コマンド、及びデータをバッファするための、前記メモリ・モジュールに接続された、１つ又は複数のハブ装置と
を含むメモリ・システム。
【請求項２３】
前記デイジー・チェーン・チャネル内の二地点間リンクを含む、請求項２２に記載のメモリ・システム。
【請求項２４】
前記ハブ装置は、コントローラ・チャネル・バッファ・アンロード優先順位付けアルゴリズムを更に含む、請求項２２に記載のメモリ・システム。
【請求項２５】
前記割り込み型局所データ・マージ・アルゴリズムは、
局所データ・パケットが受信されているかどうかを判断するステップと、
局所データ・パケットが受信されている場合は、前記局所データ・パケットを前記コントローラ・チャネル・バッファに配置されたバッファ装置内に格納するステップと、
前記バッファ装置がデータ・パケットを含むかどうかを判断するステップと、
データ・パケットを上流チャネルを介してメモリ・コントローラに伝送するための上流ドライバがアイドル状態であるかどうかを判断するステップと、
前記バッファ装置がデータ・パケットを含み、前記上流ドライバがアイドル状態である場合は、前記データ・パケットを前記上流ドライバに伝送するステップと、
前記上流データ・パケットが受信されているかどうかを判断するステップと、
上流データ・パケットが受信されており、前記上流ドライバがアイドル状態でない場合は、前記上流データ・パケットを前記バッファ装置内に格納するステップと、
上流データ・パケットが受信されており、前記バッファ装置がデータ・パケットを含まず、前記上流ドライバがアイドル状態である場合は、前記上流データ・パケットを前記上流ドライバに伝送するステップと、
前記上流ドライバがアイドル状態でない場合は、進行中のあらゆるデータ・パケットを伝送し続けるステップと
を含む、請求項２２に記載のメモリ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ・システムに関し、メモリ・システム内部に提供することができる方法及びコンポーネントに関する。より具体的には、本発明は、読み取りデータのフロー制御、及び、メモリ・システム内部のハブ装置によりメモリ・コントローラに戻される読み取りデータの識別に関する。
【背景技術】
【０００２】
本発明を実装するメモリ・システムは、デイジー・チェーン・チャネルによりメモリ・コントローラに接続されたハブ装置で構成することができる。ハブ装置は、メモリ装置を含むメモリ・モジュールに取り付けるか、又は、メモリ・モジュール上に備えることができる。
【０００３】
多くの高性能コンピュータの主メモリ・システムは、１つ又は複数のチャネルによりメモリ・コントローラに接続された多数のフル・バッファード・メモリ・モジュールを用いる。メモリ・モジュールは、ハブ装置及び多数のメモリ装置を含む。ハブ装置は、メモリ・コントローラとメモリ装置間のコマンド、アドレス、及びデータ信号を完全にバッファする。読み取りデータの流れは、平準化待ち時間技術又は位置依存性待ち時間技術のいずれかを用いて制御される。どちらの場合も、メモリ・コントローラは、メモリ・モジュールから要求される読み取りデータの戻り時間を予測することができ、読み取りデータが各々のメモリ・モジュールによりコントローラ・インターフェース上に合流したときに衝突を避けるようにコマンドの予定を決めることができる。
【０００４】
場合によっては、メモリ・コントローラは、読み取りコマンドと一緒に、読み取りデータ遅延加算命令を発行することができる。これは、コマンドの発行を簡単にするため、及び、衝突を避けるために、目標となるハブ装置に対して、読み取りデータの戻りに付加的な遅延を加えるように命令する。全ての場合において、読み取りデータは、要求された順番で戻される必要がある。更に、全読み取りデータ待ち時間は、メモリ・コントローラにより完全に予測可能でなければならない。実行時動作中、これら２つの制約は、メモリ・モジュールから戻される読み取りデータのパケットに付加的な差を加えることになる。このことは、平均読み取り動作に待ち時間を加える。更に、ハブは、読み取りデータを通常よりも速く或いは遅く戻す予め定義されていない待ち時間技術（以下、「不確定な」待ち時間技術という）を用いることができない。これらの技術は、読み取りデータを局所的にキャッシュすること、メモリ装置を投機的に読み取ること、メモリ装置のアドレス・ページを独立して管理すること、データ圧縮等を含むが、これらに限定されない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
実際の作業負荷条件の下で、平均読み取りデータ待ち時間を最適化し、先進的なハブ装置の機能を可能にするためには、メモリ・モジュールが、読み取りデータを予測されない時間でメモリ・コントローラに戻すことを可能にする方法が必要である。このことは、読み取りデータを破損することなく、更にメモリ・コントローラが各々の読み取りデータ・パケットを識別することを可能にするような方法で行われなければならない。データの衝突を避けることによりデータの破損を防ぐステップは、ハブ装置が、局所読み取りデータをカスケード・メモリ・コントローラ・チャネル上に合流させるときに特に複雑になる。
【課題を解決するための手段】
【０００６】
本発明の第１の態様は、予め定義された戻りデータ時間の制限を避けるための方法を提供し、不確定な（即ち、予め定義されていない）読み取りデータ待ち時間を可能にする。１つの実施形態においては、この方法は、局所データ・パケットが受信されているかどうかを判断するステップを含む。局所データ・パケットが受信されている場合は、局所データ・パケットはバッファ装置内に格納される。この方法は、更に、バッファ装置がデータ・パケット含むかどうかを判断するステップ、及び、上流チャネルを介してデータ・パケットをメモリ・コントローラに伝送するための上流ドライバがアイドル状態であるかどうかを判断するステップも含む。バッファがデータ・パケットを含み、上流ドライバがアイドル状態である場合は、データ・パケットは上流ドライバに伝送される。この方法は、更に、上流データ・パケットが受信されているかどうかを判断するステップを含む。上流データ・パケットは、フレーム開始インジケータと、上流データ・パケットを対応する読み取り命令と関連付ける際にメモリ・コントローラにより用いられる識別タグとを含むフレーム・フォーマット内にある。上流データ・パケットが受信されており、上流ドライバがアイドル状態でない場合は、上流データ・パケットはバッファ装置内に格納される。上流データ・パケットが受信されており、バッファ装置がデータ・パケットを含まず、上流ドライバがアイドル状態である場合は、上流データ・パケットは上流ドライバに伝送される。上流ドライバがアイドル状態でない場合は、進行中のあらゆるデータ・パケットは上流ドライバに伝送され続ける。
【０００７】
本発明の別の態様は、メモリ・システム内のハブ装置を提供する。１つの実施形態によれば、ハブ装置は、データ・パケットを受信するための装置と、上流チャネルを介してデータ・パケットをメモリ・コントローラに伝送するための上流ドライバと、不確定な読み取りデータ待ち時間を容易にするための命令を含む機構とを含む。データ・パケットを受信するための装置は、上流データ・パケットを下流ハブ装置から受信するための上流レシーバと、局所データ・パケットを局所格納装置から受信するためのメモリ・インターフェースとを含む。各々のデータ・パケットは、フレーム開始インジケータと、データ・パケットを対応する読み取り命令と関連付ける際にメモリ・コントローラにより用いられる識別タグとを含むフレーム・フォーマット内にある。本機構の命令は、局所データ・パケットが受信されているかどうかを判断するステップを容易にする。局所データ・パケットが受信されている場合は、局所データ・パケットはバッファ装置内に格納される。命令は、更に、バッファ装置がデータ・パケットを含むかどうかを判断するステップ、及び、上流ドライバがアイドル状態であるかどうかを判断するステップを容易にする。バッファがデータ・パケットを含み、上流ドライバがアイドル状態である場合は、データ・パケットは上流ドライバに伝送される。命令は、更に、上流データ・パケットが受信されているかどうかを判断するステップを容易にする。上流データ・パケットが受信されており、上流ドライバがアイドル状態でない場合は、上流データ・パケットはバッファ装置内に格納される。上流データ・パケットが受信されており、バッファ装置がデータ・パケットを含まず、上流ドライバがアイドル状態である場合は、上流データ・パケットは上流ドライバに伝送される。上流ドライバがアイドル状態でない場合は、進行中のあらゆるデータ・パケットは上流ドライバに伝送され続ける。
【０００８】
本発明の更なる態様は、１つ又は複数のメモリ・モジュールを有するメモリ・サブシステムを提供する。１つの実施形態においては、メモリ・モジュールは、デイジー・チェーン・チャネルによりメモリ・コントローラに接続された１つ又は複数のメモリ装置を含む。読み取りデータは、識別タグ及びフレーム開始インジケータを含むフレーム・フォーマットを用いて、メモリ・コントローラに戻される。メモリ・システムは、更に、アドレス、コマンド、及びデータをバッファするために、メモリ・モジュール上の１つ又は複数のハブ装置を含む。ハブ装置は、読み取りデータ待ち時間を最小限にし、メモリ・コントローラへの不確定な（即ち、予め定義されていない）読み取りデータ戻り時間を可能にするために、割り込み型局所データ合流アルゴリズムと共に用いられるコントローラ・チャネル・バッファを含む。
【０００９】
本発明の別の態様は、１つ又は複数のメモリ・モジュールを有するメモリ・システムを提供する。１つの実施形態においては、メモリ・モジュールは、デイジー・チェーン・チャネルによりメモリ・コントローラに接続されたメモリ装置を含む。読み取りデータは、識別タグ及びフレーム開始インジケータを含むフレーム・フォーマットを用いて、メモリ・コントローラに戻される。メモリ・システムは、更に、アドレス、コマンド、及びデータをバッファするために、メモリ・モジュールに接続された１つ又は複数のハブ装置を含む。ハブ装置は、読み取りデータ待ち時間を最小限にし、メモリ・コントローラへの不確定な（即ち、予め定義されていない）読み取りデータ戻り時間を可能にするために、割り込み型局所データ合流アルゴリズムと共に用いられるコントローラ・チャネル・バッファを含む。
【発明を実施するための最良の形態】
【００１０】
本発明の実施形態は、同様の要素に同じ番号を付した添付の図面を参照しながら、例示的なものとして、以下においてより詳細に説明される。
【００１１】
例示的な実施形態は、最小の不確定な読み取りデータ待ち時間を可能にするために、コントローラ・チャネル・バッファ（ＣＣＢ）、識別タグを有する読み取りデータのフレーム・フォーマット、及び割り込み型データ合流技術を使用する。例示的な実施形態は、メモリ・モジュールが、読み取りデータを予測されない時間でメモリ・コントローラに戻すことを可能にする。識別タグ情報は、データが読み取りコマンドの結果であることとデータが読み取られたハブとをその読み取りコマンドに示すために、読み取りデータ・パケットに加えられる。識別タグ情報は、読み取りデータ・パケットを、コントローラにより発行された読み取りコマンドと適合させるために、コントローラにより使用される。識別タグ情報を用いることにより、対応する読み取りコマンドの発行順序とは異なる順序で、読み取りデータを戻すことができる。
【００１２】
例示的な実施形態は、更に、不確定な読み取りデータ待ち時間を実施するときに、上流チャネル上でのデータの衝突を防ぐために、割り込み型データ合流プロセスを提供する。ＣＣＢは、読み取りデータを一次的に格納するために、ハブ装置に加えられる。メモリ・モジュール上のメモリ装置がデータを読み取るときに、データは、メモリ・インターフェースからバッファに転送される。上流データ・パケット（即ち、検知するハブ装置よりも下流のハブ装置からコントローラに送信されているデータ・パケット）が、上流チャネルを介して検知するハブ装置に転送されている最中ではない（データ・パケット全部を送信するためには、典型的には何回かの転送を要する）とハブ装置が検知したときには、検知するハブ装置は、そのＣＣＢ内に、上流に送信されるのを待っている読み取りデータ・パケットがあるかどうかを確認する。ハブ装置は、ＣＣＢ内に読み取りデータ・パケットを検知した場合は、読み取りデータ・パケットをＣＣＢから上流データ・バス上に送出する。一方、新しい上流データ・パケットが上流データ・バスを介して受信された場合は、データ・パケットはハブ装置上のＣＣＢに格納される。このようにして、上流へ進んで来るデータ・パケットは、ハブ装置上のＣＣＢから上流へ送信されているデータ・パケットと衝突しない。ＣＣＢ内に複数のデータ・パケットがある場合は、どのデータ・パケットを次に送信するべきかを決定するために様々な方法を実施することができる（例えば、最も古い読み取りコマンドからのデータ・パケットを最初に送信することができる）。
【００１３】
例示的な実施形態は、図１に示されるように、デイジー・チェーン・メモリ・チャネル１１４によりメモリ・コントローラ１０２に接続される、１つ又は複数のメモリ・モジュール１１０で構築されたメモリ・システムに適用される。メモリ・モジュール１１０は、コントローラ・メモリ・チャネル１１４へ／からのコマンド、アドレス、及びデータ信号をバッファするハブ装置１１２、並びに、ハブ装置１１２に接続された１つ又は複数のメモリ装置１０８の両方を含む。メモリ・チャネル１１４の下流部分、即ち下流チャネル１０４は、書き込みデータ及びメモリ動作コマンドをハブ装置１１２に伝送する。コントローラ・チャネル１１４の上流部分、即ち上流チャネル１０６は、（本明細書では、上流データ・パケットといわれる）要求された読み取りデータを戻す。
【００１４】
図２は、デイジー・チェーン・メモリ・チャネル１１４により、メモリ・コントローラ１０２に更に接続されるハブ装置１１２に接続される、１つ又は複数のメモリ・モジュール１１０で構築されたメモリ・システムを含む、別の例示的な実施形態を示す。この実施形態においては、ハブ装置１１２は、メモリ・モジュール１１０上に配置されるのではなく、メモリ・モジュール１１０と通信する。図２に示されるように、メモリ・モジュール１１０は、マルチ・ドロップ接続及び／又は二地点間接続を介して、ハブ装置１１２と通信することができる。他のハードウェア構成も可能であり、例えば、例示的な実施形態は、１レベルのみのデイジー・チェーン・ハブ装置１１２及び／又はメモリ・モジュール１１０を使用してもよい。
【００１５】
図３は、本明細書で説明される処理を実行するための、例示的な実施形態により使用されるフロー制御論理３０８を有するハブ装置１１２を示す。ハブ装置１１２、及び、ハブ装置１１２内部のコンポーネントは、ハードウェア及び／又はソフトウェアとして実装することができる。ハブ装置１１２は、（本明細書では、上流レシーバともいう）レシーバ論理３０４を介して、上流チャネル１０６上の上流データ・パケットを受信する。上流データ・パケットは、受信するハブ装置１１２よりも下流のハブ装置１１２からコントローラ１０２に送信されているデータ・パケットである。上流データ・パケットは、上流チャネル１０６上でコントローラ１０２に向けて送出されるように、（本明細書では、上流ドライバともいう）ドライバ論理３０６に送信することができ、或いは、上流チャネル１０６がビジー状態である場合は、上流データ・パケットは、ハブ装置１１２上のＣＣＢ３１０内に一時的に格納することができる。上流データ・パケットの行き先は、フロー制御論理３０８により決定され、信号を局所データ・マルチプレクサ３１２に送信することにより実施される。
【００１６】
例示的な実施形態においては、ＣＣＢ３１０即ちバッファ装置は、ハブ装置１１２内に存在し、ハブ装置１１２が局所データ・パケットを上流チャネル１０６上に合流させている間、ＣＣＢ３１０に迂回させる上流データ・パケットの転送を（レシーバ論理３０４を介して）安全に獲得する。局所データ・パケットは、ハブ装置１１２により方向付けされている、メモリ・モジュール１１０に取り付けられたメモリ装置１０８から読み取られるデータ・パケットである。これらのメモリ装置１０８は、本明細書では局所格納装置ともいう。局所格納装置から読み取られたデータ、即ち局所データ・パケットは、上流ドライバを介して上流コントローラ・インターフェース上に戻されるようにフォーマットされ、ＣＣＢ３１０内に格納される。フォーマットするステップは、局所データ・パケットを適切なフレーム・フォーマット（例えば、図５に示される例示的なフレーム・フォーマットを参照されたい）に直列化するステップと、（読み取り要求から供給された）識別タグ、第１転送フィールド、及びバス循環冗長コード（ＣＲＣ）フィールド内に値を挿入するステップとを含む。例示的な実施形態においては、局所データ・パケットをフォーマットするステップは、局所データ・パケットをＣＣＢ３１０内に格納するステップの一部として実行される。
【００１７】
データ・パケットは、メモリ・インターフェース３０２で受信されるときに、局所データ・パケットが（ドライバ論理３０６を介して）上流チャネル１０６上に合流されるのを待っている間、ＣＣＢ３１０内に格納される。データ・パケット内部の識別タグによって、メモリ・コントローラ１０２が、戻された読み取りデータ・パケットを対応する読み取りデータ要求コマンドと関連付けることが可能になる。データ・パケットは、更に、読み取りデータ・フレームがデータ・パケット内に存在するということを示す、上流読み取りデータ・フレーム（データ・パケットは読み取りデータ・フレームとしてフォーマットされる）の先頭近くに配された、小さい、デコードするのが容易な「ｓｔａｒｔ」即ち（本明細書では、フレーム開始インジケータともいう）第１転送（「ｆｔ」）フィールドを含む。これは、チャネルの読み取りデータ活動を監視するために、ハブ装置１１２内のフロー制御論理３０８により用いられる。
【００１８】
ＣＣＢ３１０内に、局所読み取り動作によるデータ又は下流ハブ装置から以前に迂回された読み取りデータ・パケットのデータのいずれかがあるときには（ＣＣＢ内のデータ・パケットは、本明細書では、格納されたデータ・パケットといわれる）、ハブ装置１１２は、可能な限り早く、ドライバ論理３０６を介して上流チャネル１０６上にそれを合流させる。ハブ装置１１２は、上流チャネル１０６がアイドル状態であればいつでも、或いは、現在進行中であるデータ・パケットの最後の転送直後に、局所データを上流チャネル１０６上に合流させる。読み取りデータ・フレームは、この方法を用いて二等分にされることは決してないが、ハブ装置１１２の局所データ・マルチプレクサ３１２にまだ到達していない、上流チャネル１０６上を進行中の読み取りデータ・フレームを割り込ませて、ＣＣＢ３１０内に迂回させることができる。このことによって、上流チャネル１０６上の読み取りデータ内の差を最小限にして、実効作業負荷条件の下で、バスの効率を増大させ、平均的な読み取りデータ待ち時間の短縮をもたらすことが可能になる。
【００１９】
多数の読み取りデータ・パケットがＣＣＢ３１０内に存在するときには、ハブ装置１１２は、最先の読み取りコマンドに対応する読み取りデータ・パケットを送信するように構成することができる。このことは、メモリ・コントローラ１０２から多くのデイジー・チェーンの位置だけ離れたハブ装置１１２に発行された読み取り要求に対する必要以上の待ち時間を最小限にする。他のＣＣＢ３１０のアンロード優先順位付けアルゴリズムもまた実装することができる。例えば、読み取りデータ・フレームの識別タグ・フィールドは、優先フィールドを含むことができる。優先フィールドは、ＣＣＢ３１０のアンロードを誘導するために用いることができる。代替的には、読み取りデータが要求されるときに優先情報を配信することができる。次いで、ハブ装置１１２は、次に送信するＣＣＢ３１０内の場所を決定するために、識別タグを以前に記録された優先情報と比較することができる。優先順位の低いデータが、高い優先順位でタグ付けされている要求により完全に停止させられないことを保証するために、必要に応じて優先順位の高いデータの前に優先順位の低いデータを送信する方法を用いることもできる。
【００２０】
図４は、例示的な実施形態において、ハブ装置１１２内に配置されたフロー制御論理３０８により容易になるプロセス・フローである。図４に示されるプロセスは、割り込み型局所データ・マージを実行し、フロー制御論理３０８内の有限状態機械のような、ハードウェア及び／又はソフトウェア命令を含む機構により実施することができる。プロセスは、ブロック４０２から開始し、例示的な実施形態においては、周期的に（例えば、各々のコントローラ・チャネルの転送又は上流チャネル・サイクルの後で）繰り返される。ブロック４０４において、メモリ・インターフェース３０２内の任意の局所読み取りデータ・パケット（即ち、ハブ装置１１２に取り付けられたメモリ・モジュール１１０上のメモリ装置１０８からのデータ・パケット）は、ＣＣＢ３１０に読み込まれる。これによって、フロー制御論理３０８が局所読み取りデータの上流への送出を認識し、管理することが確実になる。ブロック４０６において、ＣＣＢ３１０内にデータがあるかどうかが判断される。ＣＣＢ３１０内にデータがない場合は、データは、ブロック４１２において、レシーバ論理３０４からドライバ論理３０６に経路指定して送られる。経路指定は、上流データ・パケットをコントローラ１０２に向かって上流チャネル１０６上に送出するためのドライバ論理３０６に上流データ・パケットを送信するように局所データ・マルチプレクサ３１２を設定することにより、フロー制御論理３０８によって指示される。処理はその後、４１４にて続き、次の上流チャネル・サイクルでブロック４０４に戻される。
【００２１】
ブロック４０６において、ＣＣＢ３１０内にデータがあると判断された場合は、上流チャネル動作が処理中であるかどうか（即ち、上流データ・パケット又は局所読み取りデータ・パケットが、ドライバ論理３０６を介して上流チャネル１０６上に送出されている最中であるかどうか）を判断するために、ブロック４０８が実行される。上流チャネル動作が処理中である（即ち、ドライバがビジー状態である）場合は、処理はブロック４１２にて続く。ブロック４１２においては、上流データ・パケットをドライバ論理３０６に送信するように局所データ・マルチプレクサ３１２を設定することにより、上流読み取りデータ・パケットが、レシーバ論理３０４からドライバ論理３０６に経路指定して送られる。或いは、上流チャネル動作が処理中ではなく（即ち、ドライバはアイドル状態であり）、ＣＣＢ３１０内にデータがある場合は、処理はブロック４１０にて続く。ブロック４１０においては、上流チャネル１０６からレシーバ論理３０４内に受信されたあらゆるデータ・パケットが、次に利用できるＣＣＢ３１０の場所内に迂回される（格納される）間、ＣＣＢ３１０からのデータは、上流チャネル１０６上に送出される。迂回させるステップは、上流データ・パケットがＣＣＢ３１０内に読み込まれるように指示するフロー制御論理３０８により実行される。処理は、その後、次の上流チャネル・サイクルでブロック４０４に処理を戻すブロック４１４にて続く。
【００２２】
図５は、上流チャネル１０６上の上流データ・パケット及び局所読み取りデータ・パケットのための、例示的な読み取りデータのフレーム・フォーマットである。図５に示されるフレーム・フォーマットは２１の信号路を使用し、各々のパケットは１６個の転送を含む。フレーム・フォーマットは、１ビットの第１開始インジケータ５０２と、識別タグ５０４と、２５６ビット（３２Ｂ）の読み取りデータ５０６と、転送エラー検出のためのバスＣＲＣ５０８とを含む。本発明に適合する、フレーム開始インジケータ、読み取りデータ識別タグ、及び読み取りデータを含むフレーム・フォーマットを作成するために、他の組み合わせの信号通路及び転送深度を用いることができる。
【００２３】
例示的な実施形態は、メモリ・モジュールに接続された又はメモリ・モジュール上に含まれたデイジー・チェーンのハブ論理装置で構築されたコンピュータ・メモリ・システムに関連する。ハブは、メモリ・コントローラ・チャネル上でデイジー・チェーン接続され、更にメモリ・モジュール上のメモリ装置に取り付けられる。メモリ・コントローラは、読み取りデータの要求をハブに発行し、ハブは、メモリ・モジュールからのこの読み取りデータをメモリ・チャネル上にマージする。チャネル・バッファ及びパケット識別タグを用いて、ハブは、メモリ・コントローラにより予測されない時間に、また、先に発行さた読み取り要求に割り込むことができる時間に、チャネル上でメモリ・コントローラに戻された読み取りデータのいずれも損失する又は破損することなく、読み取りデータを戻すことができる。
【００２４】
例示的な実施形態は、上流チャネルをより完全に使用することにより、平均的な読み取りデータ待ち時間を最適化するように利用することができる。ＣＣＢ、識別タグを有する読み取りデータのフレーム・フォーマット、及び、割り込み型データ・マージ技術の使用を通じて、不確定な読み取りデータ待ち時間を実行して、コントローラ・チャネルをより完全に使用することができる。
【００２５】
上述のように、本発明の実施形態は、これらのプロセスを実施するためのコンピュータ実装プロセス及び装置の形態で具体化することができる。本発明の実施形態は、更に、フロッピー・ディスク、ＣＤ−ＲＯＭ、ハード・ドライブ、又は、その他のコンピュータ可読格納媒体等の有形媒体で具体化された命令を含む、コンピュータ・プログラム・コードの形態でも具体化することができ、コンピュータ・プログラム・コードがコンピュータに読み込まれて実行されるときには、コンピュータは本発明を実施するための装置となる。本発明は、更に、例えば、格納媒体内に格納されるか、コンピュータに読み込まれる及び／又はコンピュータにより実行されるか、或いは、電気配線又はケーブル上で、光ファイバを通じて、又は電磁放射線を介してなど何らかの伝送媒体上で伝送されるように、コンピュータ・プログラム・コードの形態でも具体化することができ、コンピュータ・プログラム・コードがコンピュータに読み込まれて実行されるときには、コンピュータは本発明を実施するための装置となる。汎用マイクロプロセッサ上で実装されたときには、コンピュータ・プログラム・コードのセグメントは、特定の論理回路を作成するようにマイクロプロセッサを構成する。
【００２６】
本発明は、例示的な実施形態を参照して説明されてきたが、当業者であれば、本発明の範囲を逸脱することなく、種々の変更を行うことができ、それらの要素を同等のものと置き換えることができることを理解するであろう。更に、本発明の本質的な範囲を逸脱することなく、特定の状態又は材料を本発明の教示に適合させるように多くの修正を行うことができる。従って、本発明を実行するために検討された最良の態様として開示された特定の実施形態に、本発明を限定することを意図するものではなく、本発明は、特許請求の範囲内である全ての実施形態を含むことを意図するものである。更に、第１、第２等の用語の使用は、いかなる順序又は重要度を示すものではなく、第１、第２等の用語は、ある要素を別のものと区別するために用いられる。
【図面の簡単な説明】
【００２７】
【図１】二地点間接続を用いる、複数レベルのデイジー・チェーン・メモリ・モジュールを有する、例示的なメモリ・システムを示す。
【図２】デイジー・チェーン・チャネルによりメモリ・モジュール及びメモリ・コントローラに接続されたハブ装置を有する、例示的なメモリ・システムを示す。
【図３】例示的な実施形態により使用することができるハブ論理装置を示す。
【図４】例示的な実施形態において、ハブ論理装置により実施される、例示的なプロセス・フローである。
【図５】例示的な実施形態により使用することができる読み取りデータ形式である。
【図１】
2009517725.tif 000003
【図２】
2009517725.tif 000004
【図３】
2009517725.tif 000005
【図４】
2009517725.tif 000006
【図５】
2009517725.tif 000007
【手続補正書】
【提出日】平成21年2月17日(2009.2.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不確定な読み取りデータ待ち時間をサポートするための方法であって、
局所データ・パケットが受信されているかどうかを判断するステップと、
局所データ・パケットが受信されている場合は、前記局所データ・パケットをバッファ装置内に格納するステップと、
前記バッファ装置がデータ・パケットを含むかどうかを判断するステップと、
前記データ・パケットを上流チャネルを介してメモリ・コントローラに伝送するための上流ドライバがアイドル状態であるかどうかを判断するステップと、
前記バッファ装置がデータ・パケットを含み、前記上流ドライバがアイドル状態である場合は、前記データ・パケットを前記上流ドライバに伝送するステップと、
上流データ・パケットが受信されているかどうかを判断するステップであって、前記上流データ・パケットは、フレーム開始インジケータと、前記上流データ・パケットを対応する読み取り命令と関連付ける際に前記メモリ・コントローラにより用いられる識別タグとを含むフレーム・フォーマットである、ステップと、
上流データ・パケットが受信されており、前記上流ドライバがアイドル状態でない場合は、前記上流データ・パケットを前記バッファ装置内に格納するステップと、
上流データ・パケットが受信されており、前記バッファ装置がデータ・パケットを含まず、前記上流ドライバがアイドル状態である場合は、前記上流データ・パケットを前記上流ドライバに伝送するステップと、
前記上流ドライバがアイドル状態でない場合は、進行中のあらゆるデータ・パケットを伝送し続けるステップと
を含む方法。
【請求項２】
局所データ・パケットが受信されているかどうかを判断する前記ステップ、前記バッファ装置がデータ・パケットを含むかどうかを判断する前記ステップ、上流ドライバはアイドル状態であるかどうかを判断する前記ステップ、及び、データ・パケットが受信されているかどうかを判断する前記ステップは、周期的に実行される、請求項１に記載の方法。
【請求項３】
前記周期は上流チャネル・サイクル毎に一度である、請求項２に記載の方法。
【請求項４】
前記バッファ装置は複数のデータ・パケットを含み、前記データ・パケットは優先順位付けアルゴリズムに基づいて選択される、請求項１に記載の方法。
【請求項５】
前記優先順位付けアルゴリズムは、前記データ・パケットに対応する前記読み取り命令の経過時間に基づいて前記データ・パケットを選択する、請求項４に記載の方法。
【請求項６】
前記優先順位付けアルゴリズムは、前記データ・パケットと関連付けられた優先順位に基づいて前記データ・パケットを選択する、請求項４に記載の方法。
【請求項７】
前記フレーム・フォーマットは、バス循環冗長コード（バスＣＲＣ）のフィールドを更に含む、請求項１に記載の方法。
【請求項８】
前記局所データ・パケットをバッファ装置内に格納する前記ステップは、前記局所データ・パケットをフォーマットするステップを含み、前記フォーマットするステップは、前記局所データ・パケットを前記フレーム・フォーマットに直列化するステップと、前記フレーム開始インジケータ、前記識別タグ、及び前記バスＣＲＣに値を挿入するステップとを含む、請求項７に記載の方法。
【請求項９】
上流データ・パケットを下流ハブ装置から受信するための上流レシーバと、局所データ・パケットを局所格納装置から受信するためのメモリ・インターフェースとを含む、データ・パケットを受信するための装置であって、前記データ・パケットの各々は、フレーム開始インジケータと、前記上流データ・パケットを対応する読み取り命令と関連付ける際にメモリ・コントローラにより用いられる識別タグとを含むフレーム・フォーマットである、装置と、
上流チャネルを介して前記データ・パケットを前記メモリ・コントローラに伝送するための上流ドライバと、
局所データ・パケットが受信されているかどうかを判断するステップと、
局所データ・パケットが受信されている場合は、前記局所データ・パケットをバッファ装置内に格納するステップと、
前記バッファ装置がデータ・パケットを含むかどうかを判断するステップと、
前記上流ドライバがアイドル状態であるかどうかを判断するステップと、
前記バッファ装置がデータ・パケットを含み、前記上流ドライバがアイドル状態である場合は、前記データ・パケットを前記上流ドライバに伝送するステップと、
上流データ・パケットが受信されているかどうかを判断するステップであって、前記上流データ・パケットは、フレーム開始インジケータと、前記上流データ・パケットを対応する読み取り命令と関連付ける際に前記メモリ・コントローラにより用いられる識別タグとを含むフレーム・フォーマットである、ステップと、
上流データ・パケットが受信されており、前記上流ドライバがアイドル状態でない場合は、前記上流データ・パケットを前記バッファ装置内に格納するステップと、
上流データ・パケットが受信されており、前記バッファ装置がデータ・パケットを含まず、前記上流ドライバがアイドル状態である場合は、前記上流データ・パケットを前記上流ドライバに伝送するステップと、
前記上流ドライバがアイドル状態でない場合は、進行中のあらゆるデータ・パケットを伝送し続けるステップと
を容易にするための命令を含む機構と
を含む、メモリ・システム内のハブ装置。
【請求項１０】
前記上流チャネルは、デイジー・チェーン・チャネルである、請求項９に記載のハブ装置。
【請求項１１】
前記ハブ装置はメモリ・モジュール上に物理的に配置される、請求項９に記載のハブ装置。
【請求項１２】
前記バッファ装置を更に含む、請求項９に記載のハブ装置。
【請求項１３】
１つ又は複数のメモリ装置がデイジー・チェーン・チャネルによりメモリ・コントローラに接続された１つ又は複数のメモリ・モジュールであって、読み取りデータが、識別タグ及びフレーム開始インジケータを含むフレーム・フォーマットを用いて前記メモリ・コントローラに戻される、１つ又は複数のメモリ・モジュールと、
読み取りデータ待ち時間を最小限にし、前記メモリ・コントローラへの不確定な読み取りデータ戻り時間を可能にするために、割り込み型局所データ合流アルゴリズムと共に用いられるコントローラ・チャネル・バッファを含む、アドレス、コマンド、及びデータをバッファするための、前記メモリ・モジュール上の１つ又は複数のハブ装置と
を含むメモリ・システム。
【請求項１４】
前記デイジー・チェーン・チャネル内の二地点間リンクを含む、請求項１３に記載のメモリ・システム。
【請求項１５】
前記ハブ装置は、コントローラ・チャネル・バッファ・アンロード優先順位付けアルゴリズムを更に含む、請求項１３に記載のメモリ・システム。
【請求項１６】
前記割り込み型局所データ合流アルゴリズムは、
局所データ・パケットが受信されているかどうかを判断するステップと、
局所データ・パケットが受信されている場合は、前記局所データ・パケットを前記コントローラ・チャネル・バッファに配置されたバッファ装置内に格納するステップと、
前記バッファ装置がデータ・パケットを含むかどうかを判断するステップと、
データ・パケットを上流チャネルを介してメモリ・コントローラに伝送するための上流ドライバがアイドル状態であるかどうかを判断するステップと、
前記バッファ装置がデータ・パケットを含み、前記上流ドライバがアイドル状態である場合は、前記データ・パケットを前記上流ドライバに伝送するステップと、
上流データ・パケットが受信されているかどうかを判断するステップと、
上流データ・パケットが受信されており、前記上流ドライバがアイドル状態でない場合は、前記上流データ・パケットを前記バッファ装置内に格納するステップと、
上流データ・パケットが受信されおり、前記バッファ装置がデータ・パケットを含まず、前記上流ドライバがアイドル状態である場合は、前記上流データ・パケットを前記上流ドライバに伝送するステップと、
前記上流ドライバがアイドル状態でない場合は、進行中のあらゆるデータ・パケットを伝送し続けるステップと
を含む、請求項１３に記載のメモリ・システム。
【国際調査報告】
2009517725.tif 000008
2009517725.tif 000009