(57)【要約】ツリーベーストポロジを有するメモリアーキテクチャ。メモリデバイスはインテリジェントメモリハブとペアとなり、そのインテリジェントメモリハブがメモリアクセス要求にサービスし、メモリデバイスのネットワーク中のデータを管理する。メモリハブはネットワークトポロジを動的に再構成して、故障したデバイスまたはデバイスの付加削除を補償する。このメモリアーキテクチャは入出力デバイスもサポートでき、複数のシステム間で共有することができる。
2006526226.tif 000002
【特許請求の範囲】
【請求項１】
データを格納する第１のメモリデバイスと、
前記少なくとも１つのメモリデバイスと結合した、前記第１のメモリデバイスに対するメモリアクセス要求を処理する第１のハブデバイスと、
ポイントツーポイントリンクにより前記第１のハブデバイスと結合した、第２のメモリデバイスに対するメモリアクセス要求を処理する第２のハブデバイスと、
前記第２のハブデバイスと結合した、データを格納する前記第２のメモリデバイスと、を有することを特徴とする装置。
【請求項２】
請求項１に記載の装置であって、
第３のメモリデバイス及び前記第１のハブデバイスに結合した、前記第３のメモリデバイスに対するメモリアクセス要求を処理する第３のハブデバイスと、
前記第３のハブデバイスに結合した、データを格納する前記第３のメモリデバイスと、を有することを特徴とする装置。
【請求項３】
請求項１に記載の装置であって、
前記第１のハブデバイスがメモリアクセス要求を分析し、出力ポートを決定し、前記メモリアクセス要求を出力ポートに転送することを特徴とする装置。
【請求項４】
請求項１に記載の装置であって、
前記第１のハブデバイスはメッセージとして受け取った一組の命令を処理することを特徴とする装置。
【請求項５】
ツリートポロジで構成された一組のハブデバイスと、
それぞれが単一のハブデバイスと結合した一組のメモリデバイスと、を有することを特徴とするシステム。
【請求項６】
請求項５に記載のシステムであって、
各ハブデバイスにはアドレス空間が割り当てられていることを特徴とするシステム。
【請求項７】
請求項６に記載のシステムであって、
各ハブデバイスがメモリアクセス要求を分析して、前記ハブデバイスに割り当てられたアドレス空間に該当するかどうかを判断することを特徴とするシステム。
【請求項８】
第１の中央演算処理装置と、
第２の中央演算処理装置と、
前記第１の中央演算処理装置、前記第２の中央演算処理装置、及び第１のメモリサブシステムの間の通信を管理する第１の通信ハブと、
前記第１の通信ハブと結合した、ツリートポロジで構成された第１の組のハブデバイスを含む前記第１のメモリサブシステムと、
それぞれがハブデバイスと結合した一組のメモリデバイスと、を有することを特徴とするシステム。
【請求項９】
請求項８に記載のシステムであって、
第２の中央演算処理装置と、
前記第２の中央演算処理装置及び第２のメモリサブシステムの間の通信を管理する第２の通信ハブと、
前記第２の通信ハブと結合した、第２の組のハブデバイスを含む前記第２のメモリサブシステムと、
前記第２のメモリサブシステムを前記第１のメモリサブシステムに接続するリンクと、をさらに有することを特徴とするシステム。
【請求項１０】
請求項８に記載のシステムであって、
前記一組のメモリデバイスは６４ギガバイトより大きい記憶空間を含み、
前記一組のメモリデバイスは一組のランダムアクセスメモリモジュールであることを特徴とするシステム。
【請求項１１】
請求項８に記載のシステムであって、
前記第１のメモリサブシステムは、ハブデバイス間の冗長リンクを含むことを特徴とするシステム。
【請求項１２】
請求項８に記載のシステムであって、
前記ハブデバイスは入出力デバイスと結合した入出力ポートを含むことを特徴とするシステム。
【請求項１３】
第１のメモリハブデバイスに初期化メッセージを送るステップと、
前記第１のメモリハブデバイスの設定データを含む応答メッセージを送るステップと、
第２のメモリハブデバイスに前記初期化メッセージを転送するステップと、を有することを特徴とする方法。
【請求項１４】
請求項１３に記載の方法であって、
前記第２のメモリハブデバイスからの応答メッセージを前記第１のメモリハブデバイスにより分析するステップをさらに有することを特徴とする方法。
【請求項１５】
請求項１３に記載の方法であって、
前記応答メッセージが前記第２のメモリハブデバイスと結合したメモリデバイスに関するデータを含むことを特徴とする方法。
【請求項１６】
請求項１４に記載の方法であって、
応答メッセージとして受け取った第２のハブデバイスに関するデータを、第１のメモリハブデバイスに格納するステップをさらに有することを特徴とする方法。
【請求項１７】
請求項１３に記載の方法であって、
第２のハブデバイスからの前記応答メッセージを初期化メッセージを発したデバイスに転送するステップをさらに有することを特徴とするシステム。
【請求項１８】
第１のメモリハブデバイスによりリソース要求メッセージを分析するステップと、
前記第１のメモリハブデバイスが前記リソース要求をサービスできるかどうか判断するステップと、
前記第１のメモリハブデバイスが前記要求をサービスできない場合、第２のメモリハブデバイスに前記リソース要求メッセージを転送するステップと、を有することを特徴とする方法。
【請求項１９】
請求項１８に記載の方法であって、
前記第１のメモリハブデバイスにより前記リソース要求メッセージをサービスするステップをさらに有することを特徴とする方法。
【請求項２０】
請求項１８に記載の方法であって、
前記リソース要求メッセージの発信者に応答メッセージを送るステップをさらに有することを特徴とする方法。
【請求項２１】
請求項２０に記載の方法であって、
前記応答メッセージが要求されたデータを含むことを特徴とする方法。
【請求項２２】
データ記憶ネットワークにデータを保存する手段と、
前記データ記憶ネットワーク中のデータを読み出す手段と、
前記データ記憶ネットワーク中のデータの場所を決定する手段と、を有することを特徴とする装置。
【請求項２３】
請求項２２に記載の装置であって、
前記データ記憶ネットワークはツリートポロジを有することを特徴とする装置。
【請求項２４】
請求項２２に記載の装置であって、
前記データ記憶ネットワークを設定する手段をさらに有することを特徴とする装置。
【請求項２５】
命令が格納された機械読み取り可能媒体であって、実行されたとき、機械に、
第１のメモリハブデバイスによりリソース要求メッセージを分析するステップと、
前記第１のメモリハブデバイスが前記リソース要求をサービスできるかどうか判断するステップと、
前記第１のメモリハブデバイスが前記要求をサービスできない場合、第２のメモリハブデバイスに前記リソース要求メッセージを転送するステップと、を有する一組の動作を実行させることを特徴とする媒体。
【請求項２６】
請求項２５に記載の機械読み取り可能媒体であって、実行されたとき、前記機械に、
前記第１のメモリハブデバイスにより一組の命令を実行するステップをさらに有する一組の動作を実行させることを特徴とする媒体。
【請求項２７】
請求項２５に記載の機械読み取り可能媒体であって、実行されたとき、前記機械に、
前記第１のメモリハブデバイスと結合した第１のメモリデバイスに格納されたデータを、第２のメモリハブデバイスと結合した第２のメモリデバイスに動かすステップをさらに有する一組の動作を実行させることを特徴とする媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はメモリアーキテクチャの分野に関する。特に、ツリーベースネットワークメモリアーキテクチャに関する。
【背景技術】
【０００２】
従来のコンピュータシステムは、記憶容量に関してスケール能力が限定されたメモリアーキテクチャを利用している。従来のメモリアーキテクチャは、６４ギガバイトより大きいメモリをサポートできない。いくつかの要因により従来のメモリアーキテクチャはこの限界を超えてスケールすることができない。メモリアーキテクチャのスケーラビリティを制限する重要な要因に信号インテグリティの維持が挙げられる。従来のメモリアーキテクチャは、信号を長い経路を通して送ることによる信号の自然的歪みや低下によるメモリデバイスのアドレッシングまたは制御に係わる信号を送信できる物理的距離を伸ばすためにリピータ構造を使用する。
【０００３】
しかし、リピータ構造は信号のレイテンシを増大し、距離全体及びそれによりサポートできるメモリアーキテクチャの容量全体に上限ができてしまう。リピータ構造は、単一リニアパスにおける信号の強度をブーストする。しかし、１つの通信チャンネルより多いファンアウトを可能とするものではない。このことにより、メモリ構造の深さは単一レベルに制限される（すなわち、チップセット−リピータ構造−メモリデバイス）。従来のメモリアーキテクチャにおいてリピータ構造によりメモリデバイスに送られる要求は、リピータチャネル全体が単一の経路として作用するので、１つずつ送らなければならない。このように、要求を送る時には経路の全長が使われ、その要求が完了するまでは他の使用は禁止される。
【０００４】
本発明の実施形態を添付した図面において、限定としてではなく例示として示した。図面では、同様の参照符号は同様のエレメントを示す。留意すべきことは、この開示において、「１つの（一）」実施形態は必ずしも同じ実施形態をではなく、少なくとも１つの実施形態を示す。
【発明の詳細な説明】
【０００５】
図１は、ネットワーク化されたメモリアーキテクチャを利用するシステム１００を示すブロック図である。システム１００はコンピュータシステム１０２を含む。コンピュータシステム１０２は、パーソナルコンピュータ、サーバ、ワークステーション、メインフレーム、または同様のコンピュータである。コンピュータシステム１０２は、一組のコンピュータ読み取り可能命令に化体したプログラムを実行する中央処理ユニット（CPU）１０１を含む。コンピュータシステム１０２は、マルチプロセッシング用に別のCPU１０３を含んでいてもよい。CPU１０１は通信ハブまたは通信チップセット１０５に接続されている。通信ハブ１０５は、CPU１０１、１０３と、メモリサブシステム１３０、周辺デバイス１０９、記憶デバイス１１１、ネットワーク通信、その他のサブシステムとの間の通信を管理する。一実施形態において、通信ハブ１０５は、通信処理を分担する複数の部品（例えば、ノースブリッジとサウスブリッジ）に分かれていてもよい。
【０００６】
一実施形態において、通信ハブ１０５は、メモリハブ１１５を有する独立リンクにより、メモリサブシステム１３０と接続されている。他の実施形態において、通信ハブ１０５は、別のメモリハブとの複数の独立リンクを有していてもよい。一実施形態において、通信ハブ１０５は、メモリサブシステム１３０におけるメモリハブの設定を管理する。他の実施形態において、メモリサブシステム１３０の管理は、主にメモリハブ自体に分散されている。通信ハブ１０５は、転送テーブルを持ち、メモリサブシステム１３０のトポロジーをトラックする。
【０００７】
一実施形態において、メモリサブシステム１３０はツリーベースネットワークである。通信ハブ１０５はメモリサブシステム１３０のルートとして機能する。メモリサブシステム１３０内の通信は主に通信ハブ１０５から始まるか、またはそれで終わる。通信ハブ１０５は、メモリサブシステム１３０にリソース要求を生成し、CPU１０１、１０３にサービスし、及びメモリハブにより実行される動作命令を送信する。このサービスには、メモリアクセス（例えば、リード及びライトコマンド）、リソースアクセス（例えば、メモリハブに接続されているデバイスへのアクセス）するメッセージの送信が含まれる。
【０００８】
メモリハブ１１５は、一組のメモリデバイス１１７と接続されている。メモリデバイス１１７はいかなる構成でもよく、デュアルインラインメモリモジュール（DIMM）、シングルインラインモジュール（SIMM）、スタティックランダムアクセスメモリ（SRAM）、シンクロナスダイナミックランダムアクセスメモリ（SDRAM）、ダブルデータレートランダムアクセスメモリ（DDRRAM）、その他を含む。ハブ１１５に接続されるメモリデバイス１１７の個数は、ハブ１１５につなぐデバイスの技術的物理的制約で決まる。
【０００９】
メモリハブ１１５は、入出力ポート１３１を含んでもよい。入出力ポート１３１を用いて、周辺デバイス１１９をメモリサブシステム１３０につなぐ。メモリハブ１１５に接続された入出力デバイス１１９は、メモリマップドデバイスでもよく、アドレス空間が割り当てられているか、またはシステム１００及びメモリサブシステム１３０と同様にインターフェイスされている。メモリハブ１１５にリンクされた各デバイスは、他のメモリハブ１３３、入出力デバイス１１９、及び通信ハブ１０５を含む独立リンクを有する。独立リンクは、２つのエンドポイント間でメッセージを送受信しない時に利用可能な、ポイントツーポイントリンクである。このように、メモリハブ１１５は、異なるリンク１３１、１３５に同時に関係のないメッセージを送受信することができる。
【００１０】
一実施形態において、メモリハブ１１５は特定用途集積回路（ASIC）である。メモリハブ１１５は、メッセージ中の命令を受信して、その命令を実行することができる。メモリハブ１１５により実行される機能は、ASICの複雑性と処理能力に依存して、特定しても汎用としてもよい。例えば、メモリハブ１１５は、一組の命令を実行して、メモリデバイス１１７の内容を並べ替えたり、メモリデバイス１１７に格納されたデータを計算または操作することができる。一実施形態において、メモリハブ１１５は、ローカルメモリデバイス１１７の一部を、割り当てられた動作を実行するための「スクラッチメモリ」として利用する。一実施形態において、メモリハブ１１５に送られた命令にはマルチフェーズ符号化法を使用する。メモリハブ１１５は、メモリ中のデータへの行列演算等の複雑な演算の実行から、最小限のメモリ及びリソースアクセスタスクまで、幅広いタスクを実行するように設計されている。
【００１１】
一実施形態において、メモリハブ１１５は複数の別のメモリハブに接続することができる。その別のメモリハブはメモリハブ１１５と同じASICコンポーネントでもよい。別のメモリハブは、入出力デバイス１１９及び他のメモリハブ１１５等の、接続された各デバイスとの独立リンクを有する。他のメモリハブとのリンクは、冗長リンク１２１を含んでもよい。冗長リンク１２１により、メモリサブシステム１３０を再プログラミングして、ディスエーブルされた、または故障したハブ、リンク、メモリデバイスを解消することができる。この再プログラミングにより、メッセージを再経路指定して影響を受けたコンポーネントを回避させ、メモリサブシステム１３０のトポグラフィからそのコンポーネントを削除する。一実施形態において、再経路指定は各メモリハブ及び通信ハブ１０５に保持された転送テーブルを変更することにより達成される。メモリハブ間のリンクは、ポイントツーポイント通信をサポートする（光媒体、フレックスケーブル、プリント回路板、その他の技術を含む）物理アーキテクチャを用いて実施される。
【００１２】
一実施形態において、メモリハブは、ツリー状のトポロジで相互に接続されている。ツリーのルートは、メモリハブ１１５または通信ハブ１０５であってもよい。一実施形態において、通信ハブ１０５は、ツリーネットワークのルートとして機能し、メモリハブの設定を指示することによりメモリサブシステム１３０を積極的に管理する。他の実施形態において、メモリサブシステム１３０の機能は通信ハブ１０５に対して透過的である。通信ハブ１０５は、プライマリメモリハブ１１５にのみメモリ及びリソース要求を送信する。そのプライマリメモリハブ１１５は、メモリサブシステム１３０を管理し、分散した管理構成の一部として動作する。通信ハブ１０５は、２以上のメモリハブ１１５にと直接結合していてもよい。
【００１３】
ツリートポロジは、ルートノードを有し、そのルートからブランチノード及びリーフノードに何レベルにもわたって枝分かれしたトポロジである。他の実施形態において、ネットワークのトポロジはメッシュ、ハイブリッド、その他同様のトポロジである。ネットワークのトポロジはサイクリックでも非サイクリックでもよい。非サイクリック物理メモリサブシステムトポロジは、メモリハブ中にサイクルチェックまたはディレクテッドロジカルトポロジを含み、循環経路にメッセージを送ることを防止する。
【００１４】
上述の通り、トポロジは一般的にツリー構造だが、冗長リンクを用いて信頼性を改善しメモリハブ間の通信レイテンシを短くすることができる。一実施形態において、トポロジはツリー構造の複数レベルを含む。各レベルは、通信ハブ１０５すなわちルートへの経路の長さにより決まる。例えば、メモリハブ１１５はトポロジの第１レベルであり、メモリハブ１３３はトポロジの第２レベルである。ツリー構造の下のレベルにあるメモリハブ及びメモリデバイス（すなわち、ルートに最も近いコンポーネント）は、レイテンシが最も短く、最も高いレベルにあるハブとメモリデバイスは、レイテンシが最も高い。このように、メモリサブシステム１３０は、データ使用の重要性または頻度及びメモリハブのレベルに基づいて、メモリ使用の優先順位を決めるように構成されている。最も頻繁にアクセスされるデータは下のレベルに置かれ、アクセス頻度が低いデータはトポロジの高いレベルに置かれる。このように、頻繁に使用されるデータはより短いレイテンシで読み出すことができ、より低い頻度で使用されるデータは頻繁に使用されるデータより高いレイテンシで読み出される。トポロジは６４ギガバイトより大きいサイズのメモリをサポートする。より高いレベルのデータのレイテンシでも、ハードディスクやコンパクトディスク等の固定またはリムーバブル記憶デバイスに記憶されたデータの読み出し時間よりは短い。それゆえ、システム１００の読み出し時間は全体として、単一レイヤーかつ６４ギガバイト以下の容量しかない従来のメモリシステムより改善されている。その理由は、より多くのデータをメモリサブシステムに記憶することができ、メモリアクセスより数桁大きいアクセス時間を有する固定またはリムーバブルメディアへのアクセスが減り、使用頻度に応じてメモリ記憶の順序を変えてキャッシュのようにアクセス時間を改善することができるからである。
【００１５】
一実施形態において、メモリハブ間のリンクは、２以上のベーシックツリー構造のメモリサブシステムをブリッジするリンク１２３を含む。ブリッジリンク１２３を用いて、別のCPU１２５とコンピュータシステム１４１をコンピュータシステム１０２にネットワークでつなぐことができる。ブリッジにより、複数システムのメモリ空間、アドレス空間、及びシステムリソースを共有することができる。ブリッジ１２３を有しないシステム１００で使用されるベーシックツリーベースのメッセージングシステムと転送スキームはスケールし、ブリッジされたシステム１００上で動作する。一実施形態において、各通信ハブはルートとして機能し、それぞれ冗長トポロジデータを保持する。他の実施形態において、単一の通信ハブがマスター通信ハブとなり、他の通信ハブはスレーブデバイスとなり、メモリサブシステム１３０を維持するために割り当てられた機能を実行する。さらに別の実施形態において、すべてのメモリハブと通信ハブが管理を分担する。
【００１６】
一実施形態において、メモリハブは、メッセージングプロトコルまたは一組の命令を用いて、互いに通信する。メモリハブ中のASICは、メッセージフォーマットを解釈し、それに含まれた命令を実行するように設計されている。一実施形態において、メッセージはフォーマットされたパケットまたは同様のメッセージである。他の実施形態において、メッセージはインターラプトのような単純な信号であってもよい。一実施形態において、メモリハブと通信ハブ１０５間の通信は、マルチフェーズ符号化、言語ワードベース通信プロトコル、または同様の通信プロトコルを利用する。
【００１７】
図２ａは、メモリハブによるシステム１００における初期化メッセージの処理を示すフローチャートである。初期化フェーズは、システムスタートアップ、リスタート、または同様のイベントの際になされる。初期化フェーズは、コンピュータシステム１０２中の通信ハブ１０５により開始する。エラーが発生したり、メモリサブシステム１３０の設定が変更されたりした場合、システム１０２により再初期化がされる。設定の変更を検出すると、コンピュータシステム１０２は再初期化フェーズを開始し、変更の結果である新しい設定を決定する。例えば、メモリサブシステム１３０は、コンポーネントまたはその取り外しの「ホットプラギング（hot  plugging）」をサポートする。「ホットプラギング」すなわち動的再構成をサポートするために、メモリサブシステム１３０内の複数組のメモリデバイス１１７にデータを冗長的に格納する。メモリサブシステム１３０は、単一の論理アドレスの複数の物理メモリ位置をサポートしている。他の実施形態において、初期化フェーズはメモリハブにより開始されてもよい。
【００１８】
通信ハブ１０５またはメモリハブ１１５は、システム１００のスタートアップ時に初期化メッセージを生成する。このメッセージは、メモリサブシステム１３０の第１のレベルにあるハブに送られる（ブロック２０１）。メッセージのフォーマットは何でもよい。各受信メモリハブはそのメッセージを受け取ると、メッセージの発信者に送るべき応答メッセージを生成する（ブロック２０３）。応答メッセージは、それを生成したハブに関する基本的設定情報を含む。そのメッセージに含まれた情報には、ハブに接続されたメモリデバイスに割り当てられたアドレス空間、メモリデバイスのタイプと特徴、メモリハブのポート情報、周辺にあるハブの情報、トポロジ情報、その他同様な情報が含まれる。一実施形態において、各メモリハブは、初期化フェーズの際に、自分自身にアドレス空間を独立に割り当てる。通信ハブは、コンフリクトした割り当てを仲裁するか、またはハブがコンフリクトを解消するための分散した仲裁スキームを実装する。他の実施形態において、通信ハブは、集中的に、各ハブまたはメモリデバイスにアドレス空間を割り当てる。メモリハブは、電気的消去可能プログラマブル読出専用メモリデバイス（EEPROM）または同様の記憶デバイスを含み、システム１００のパワーが切られても設定データを保持する。
【００１９】
一実施形態において、応答メッセージが初期化要求を発したデバイスに送られる（ブロック２０５）。応答メッセージは初期化メッセージを配信したデバイスを介して送られる。一実施形態において、応答メッセージが送られてから、ハブはその初期化メッセージをその各周辺ハブ（すなわち、そのメモリハブとリンクにより直接接続されているハブ）に転送するが、そのハブに初期化メッセージを送ったハブは除外される（ブロック２０７）。他の実施形態において、ハブは応答メッセージの生成と同時またはその前に初期化メッセージを転送する。メモリハブは自分自信を特定するデータを転送されるメッセージに含め、そのメッセージを転送した各メモリハブを含む初期化メッセージのストアードパスを構成してもよい。そうすれば、メッセージを受け取った次のメモリハブが、受け取った応答メッセージを発信デバイスに送り返すパスを知ることができる。他の実施形態において、各ハブは、周辺ハブに送り出された初期化メッセージをトラックして、戻りの応答を待ってもよい。出て行く各メッセージについてトラックされる情報は、要求の発信元のポートやメッセージの識別タグ等のメッセージの転送情報を含む。
【００２０】
各周辺ハブは、転送された初期化メッセージを受け取る。その周辺ハブは、設定データや、その周辺ハブとそれがつながっているメモリデバイスに関する同様なデータを含む応答メッセージを生成する（ブロック２０９）。応答メッセージには、ハブに接続されたメモリデバイスに割り当てられたアドレス空間の範囲、メモリデバイスのタイプ及び特徴、メモリハブのポート情報、周辺ハブ情報、トポロジ情報等が含まれる。
【００２１】
各周辺ハブは、それに初期化メッセージを転送したハブに応答メッセージを送り、その初期化メッセージを発したデバイスに最終的には配信する（ブロック２１１）。各周辺ハブは自分がリーフハブであるかどうか判断する（すなわち、初期化メッセージを送った周辺ハブ以外のハブが周辺にないハブ（ブロック２１１）。周辺ハブがリーフハブであるとき、終了する（ブロック２１７）。しかし、その周辺ハブがそれ自身の周辺にあるハブを有している場合、周辺ハブのそれぞれに初期化メッセージを転送する（ブロック２１５）。すべてのハブが初期化メッセージを受信し、応答メッセージを送信するまで、このプロセスは繰り返される。
【００２２】
図２ｂは、初期化プロセス中に内向き（inbound）のメッセージの処理を示すフローチートである。周辺メモリハブから独立リンクを介してメッセージを受け取る（ブロック２５１）。メモリハブが内向きのメッセージ（すなわち、他のメモリハブから、最初のデバイスに向かう応答メッセージ）を受信したとき、メモリハブはメッセージを分析して、その周辺ハブ及びメモリサブシステム１３０のトポロジに関する自分自身のローカル情報を付加する。
【００２３】
そのハブは内向きのメッセージを調べて、その応答メッセージを生成したメモリハブに関する設定データ、及び他のハブまたはメモリサブシステム１３０のトポロジに関するその応答メッセージ中に記録されたデータを記録する。一実施形態において、応答メッセージを処理する各メモリハブは、そのメッセージがたどったパスに関するそのメッセージのデータを付加し、ツリー構造のメモリサブシステムのルートとその応答を生成したメモリハブとの間にあるメモリハブを識別する完全な経路情報をそのメッセージが含むようにする。メッセージを処理する各メモリハブはこのデータを用いて、各ハブが有するネットワークのトポロジを特定する。
【００２４】
そのメッセージ中のデータを記録し、付加データをメッセージに含めた後、そのメモリハブはそのメッセージを初期化メッセージを発した宛先デバイスに向けて転送する（ブロック２５５）。メモリハブは初期化メッセージを受け取った時に格納されたトラッキング情報を用いて、その周辺ハブのどれにそのメッセージを送るかを判断する。このプロセスは、外向きメッセージングプロセスと併せて、各メモリハブに、ツリー構造の「分岐」内の初期化後にメッセージを処理するために十分なトポロジデータを供給する。一実施形態において、通信ハブ１０５は、すべての応答データを集積し、メモリシステム１３０のトポロジ全体のマップを描くことができる。通信ハブ１０５は、完全なトポロジ情報を各メモリハブに送る一組の設定メッセージを生成し、またはそのトポロジまたはハブ設定を再構成してもよい。
【００２５】
メモリサブシステム１３０の組織は、メモリ使用、データタイプ、データに関連するアプリケーションのタイプに基づき、一組のレイヤーまたは同様の構成にわたって、規定された経路に沿ってデータをグループ分けすること等により、最適化される。一実施形態において、メモリサブシステム１３０においてデータを組織化し、関連するデータが複数のメモリハブにわたって格納される。このデータの一部がアクセスされた場合、そのアクセスが他のハブと関連したメモリデバイスに格納されたデータも含むものであるとき、メモリハブはそのアクセスを示すメッセージをそのメモリハブに送る。一実施形態において、ハブのレイテンシによりハブを超えてデータを組織化する。頻繁にアクセスされるデータはレイテンシが低いハブ（下のレイヤーのハブ）に格納される。複数のハブにわたるデータは、アクセスされたデータのキャッシングを含むアクセス要求により返される。他の実施形態において、メモリサブシステム１３０の組織は、ハブに関連したメモリデバイスタイプ（例えば、DDRRAM、SDRAM等）によるデータのグループ分けにより最適化される。
【００２６】
図３は、通常動作中のメモリハブによるメッセージ処理プロセスを示すフローチャートである。典型的な動作としては、リード及びライト動作、入出力デバイス１１９との間の入出力動作がある。ほとんどのメッセージは、通信ハブ１０５とメモリサブシステムの下のレベルのメモリハブとの間でやりとりされる。ほとんどのメッセージは、通信ハブ１０５からのリソース要求として発せられ、メモリハブからの応答メッセージを生成する。
【００２７】
各メモリハブは、独立リンク、または他のメモリハブもしくは通信ハブ１０５からのチャネルを介してメッセージを受け取る（ブロック３０１）。メモリハブはメッセージを調べ、そのメッセージの宛先アドレスまたは要求されたリソースがそのメモリハブがメモリデバイス１１７を介して管理しているアドレス空間範囲と一致するかどうか判断する（ブロック３０３）。そのメッセージがそのメモリハブ向けのものである場合、そのメモリハブは実行すべき動作のタイプを特定する。そして、メモリハブはその要求を処理する（ブロック３０５）。要求にはそのメモリハブがそれと結合したメモリデバイスにアクセスするメモリアクセス要求が含まれてもよい。そのメッセージにはそのメモリハブにより実行される一組の命令も含まれている。要求メッセージはメモリハブのポートからデータを要求してもよい。一実施形態において、メモリアクセスまたはポートデータ要求はメモリハブにより遅らされてもよい。メモリサブシステム１３０中の点、通信ハブ１０５、または他のコンピュータシステムから発せられたメモリまたはデータアクセス要求は、オープン通信リンクを維持するために遅延される。これにより、メモリハブ間の通信リンクがオープンに保たれ、一方、メモリハブは要求されたデータを読み出し、または受信した要求動作を実行する。
【００２８】
メモリハブが要求の処理を完了したとき、応答メッセージを生成する（ブロック３０９）。応答メッセージが生成されるかどうかは、そのメモリハブにより実行される動作のタイプによって決まる。例えば、ライト動作はメモリハブからの応答メッセージを必要としない。しかし、リード動作は、要求されたデータを含む応答メッセージの生成を必要とする。
【００２９】
応答メッセージが生成された場合、または要求メッセージが他のメモリハブに宛てられていた場合、メモリハブはそのメッセージの宛先アドレスをチェックし、そのメッセージをどのように転送するかを決定する（ブロック３０７）。初期化フェーズの後、各ハブは、ASICまたはメモリデバイス１１７中の記憶デバイス内に格納された、そのツリー構造のブランチ、またはメモリサブシステム１３０全体のトポロジ情報を有する。そのトポロジ情報から、メモリハブは、転送テーブルまたは同様の構成を生成し、その出力ポートのそれぞれと関連したアドレスをマップすることができる。そのメモリハブに宛てられてものではないメッセージが受け取ると、転送テーブルを用いて宛先アドレスまたはリソース識別子を比較して、そのメッセージを転送する出力ポートを決定する。そのメッセージはそのポートに転送される（ブロック３１１）。このプロセスは、メッセージがその宛先に到着するまで各メモリハブで行われる。このプロセスは、内向きメッセージ（すなわち、ルートハブ１１５または通信ハブ１０５に送られるメッセージ）及び外向きメッセージ（すなわち、通信ハブ１０５からメモリハブへのメッセージ）の両方に適用される。一実施形態において、応答メッセージは、タスク（例えば、ライト要求や一組の命令の実行等）が完了したことを示す割り込みその他の信号でもよい。同様に、セキュリティアプリケーションやデバッグアプリケーションを利用しやすくするために、メモリアドレスがアクセスされたことを示す割り込みその他の信号がメモリハブまたはメモリサブシステム１３０により用いられてもよい。メモリサブシステム１３０により生成された割り込みは、通信ハブ１０５またはコンピュータシステム１４１の他のメモリハブにより処理される。
【００３０】
一実施形態において、メモリサブシステム１３０は、故障したメモリハブまたはメモリデバイスの検出及びディスエーブル化を動的にサポートする。これにより、システム１００の信頼性と動作可能時間が改善できる。故障したハブ及びメモリユニット、または応答しないユニットの周辺ユニットは、エラーまたはコンポーネントが応答しないことを検出した際エラーメッセージを生成する。一実施形態において、エラーメッセージは通信ハブ１０５に送信される。通信ハブ１０５は、残ったメモリハブに再構成メッセージを送信し、故障したユニットが交換されるまで、メッセージのネットワーク経路指定を再構成する。通信ハブ１０５は、システム１００を再初期化して再構成に有効としてもよい。
【００３１】
一実施形態において、通信ハブ１０５まてゃメモリハブは、ブロードキャストメッセージをサポートする。ブロードキャストにより、メッセージをその通信ハブ１０５またはメモリハブに送った周辺ハブ以外の各周辺ハブにそのメッセージが送信される。ブロードキャストはメモリサブシステム１３０の初期化または再初期化の際に使用される。ブロードキャストを分散再構成時に用いて、構成の変化をすべてのハブに通知してもよい。他の実施形態において、ブロードキャストを用いて、各メモリハブまたは同様の環境により実行すべき命令を含むメッセージを送る。例えば、ブロードキャストメッセージを用いて、すべてのメモリデバイスまたはその一部をサーチして、データアイテムまたはパラメータを探す。メモリハブの１つがそれと関連したメモリデバイス中に要求されたアイテムを見つけたとき、そのブロードキャストメッセージの発信者に対する応答メッセージを生成する。これにより、メモリサブシステム１３０中のメモリデバイスを平行してサーチすることができる。
【００３２】
システム１００は分散システムであり、メモリを制限無く拡張でき、一方信号インテグリティとレイテンシ管理を維持することができる。信号インテグリティは、メモリサブシステム１３０中の動作が独立通信リンク上のハブ間のポイントツーポイントメッセージングにより動作しているために維持される。メッセージのポイントツーポイント通信により、リピータ構造により長い経路を介して信号をブーストするのではなく、ポイント間でエラーチェックと既知メッセージの再送信が可能となる。システム１００により、複数プロセッサシステムによる大メモリ容量の共有が可能となる。システム１００は、デスクトップコンピュータ等のスタンドアローンマシンにも好適である。システム１００は、冗長経路及び冗長データ記憶を可能とすることにより、信頼性と正確性を改善する。システム１００は、コンピュータ、アプリケーション、オペレーティングシステムシェアリングシステム１００の間のメモリのサポートとパーティショニングによりセキュリティ機能を容易にする。パーティションは単一のコンピュータ、ユーザ、もしくはアプリケーション、またはそのグループの使用のために指定される。パーティションすなわちメモリの部分を暗号化して、権限無き使用から保護する。同様に、システム１００は、メモリハブ間及びルートハブとの通信の暗号化をサポートする。一実施形態において、システム１００はメッセージングのトラックをサポートし、デバッギング及びセキュリティアプリケーションによる使用を容易にする。一実施形態において、各ハブ及びメモリハブに関連したアドレス空間は、メモリハブにより強制されたセキュリティアクセス制限を有する。セキュリティ制限により、特定の要求ユーザ、アプリケーション、またはシステムだけへのアクセスが可能である。他の実施形態において、メモリハブはセキュリティ鍵、コード、その他の同様なメカニズムに基づいて、アクセスを制限する。権限無きアクセスはトラックされ、割り込みがかけられ、システムまたは通信ハブ１０５にセキュリティ侵害またはその試みがあったことを通知する。
【００３３】
上記の説明において、本発明を特定の実施形態を参照して説明した。しかし、言うまでもなく、添付したクレームに記載した本発明の実施形態のより広い精神と範囲から逸脱することなく、いろいろな修正と変更をすることが可能である。従って、この明細書と図面は、本発明を限定するものではなく、例示するものと見なすべきである。
【図面の簡単な説明】
【００３４】
【図１】ネットワーク化されたメモリアーキテクチャを有するシステムを示す図である。
【図２ａ】外向き（outbound）の初期化プロセスを示すフローチャートである。
【図２ｂ】内向き（inbound）の初期化プロセスを示すフローチャートである。
【図３】ネットワーク化されたメモリアーキテクチャ中のハブのメッセージングプロセスを示すフローチャートである。
【図１】
2006526226.tif 000003
【図２Ａ】
2006526226.tif 000004
【図２Ｂ】
2006526226.tif 000005
【図３】
2006526226.tif 000006
【国際調査報告】
2006526226.tif 000007
2006526226.tif 000008
2006526226.tif 000009