(57)【特許請求の範囲】
【請求項１】
演算処理を行うＣＰＵノードと、入出力処理を行うＩ／Ｏノードと、複数のメモリノードと、アドレスデコード部と記憶部を有し全ての前記ノードに接続された相互接続装置を有する情報処理装置におけるいずれかのＣＰＵノード又はＩ／Ｏノードからいずれかのメモリノードを宛先とするデータ要求の制御方法において、
前記アドレスデコード部が、前記宛先となるメモリノードに対して送信された、アドレスを含むデータ要求を受信するステップと、
前記受信したデータ要求に含まれるアドレスから、前記アドレスデコード部が、前記宛先となるメモリノードの基準アドレスを抽出するステップと、
前記アドレスデコード部が、前記宛先となるメモリノードがシステムアドレス空間のどこにマッピングされているかを示す基準オフセットと、前記基準アドレスとを比較するステップと、
前記基準アドレスが前記基準オフセットと一致した場合には、前記アドレスデコード部が、前記アドレスから前記宛先となるメモリノードを特定する論理ノードアドレスを抽出するステップと、
前記アドレスデコード部が、前記論理ノードアドレスと物理宛先ノードアドレスとの対応関係を表し、前記記憶部に保持されたマッピングテーブルを用いて、前記データ要求の物理宛先ノードアドレスを決定するステップを有することを特徴とする制御方法。
【請求項２】
前記アドレスデコード部は、前記基準アドレスの幅を表す基準アドレス幅情報を格納する基準レジスタを有し、
前記アドレスデコード部が、前記データ要求に含まれる前記アドレスから前記基準アドレスを抽出するステップは、前記基準レジスタに格納された前記基準アドレス幅情報を用いて、前記アドレスから抽出するステップであることを特徴とする請求項１記載の制御方法。
【請求項３】
前記アドレスデコード部はさらに、前記論理ノードアドレスの幅を表す索引アドレス幅情報を格納する索引レジスタと、前記メモリノードのアドレス空間の大きさを示す細分化アドレスの幅を表す細分化アドレス幅情報を格納する細分化レジスタを有し、
前記アドレスデコード部が、前記データ要求に含まれる前記アドレスから前記論理ノードアドレスを抽出するステップは、前記細分化レジスタに格納された前記細分化アドレス幅情報を用いて、前記アドレスから抽出するステップであることを特徴とする請求項２記載の制御方法。
【請求項４】
演算処理を行うＣＰＵノードと、入出力処理を行うＩ／Ｏノードと、複数のメモリノードと、全ての前記ノードに接続された相互接続装置を有する情報処理装置において、
前記相互接続装置は、
いずれかの前記ＣＰＵノード又はＩ／Ｏノードからいずれかのメモリノードを宛先として送信されたデータ要求を受信し、前記受信されたデータ要求に含まれるアドレスから、前記宛先となるメモリノードの基準アドレスを抽出するアドレスデコード部であって、
前記宛先となるメモリノードがシステムアドレス空間のどこにマッピングされているかを示す基準オフセットを格納する基準オフセットレジスタと、
前記基準アドレスと、前記基準オフセットレジスタに格納された前記基準オフセットとを比較するとともに、前記基準アドレスが前記基準オフセットと一致した場合には、前記アドレスから前記宛先となるメモリノードの論理ノードアドレスを抽出するコンパレータと、
前記論理ノードアドレスと物理宛先ノードアドレスとの対応関係を表し、前記記憶部に保持されたマッピングテーブルと、を有する前記アドレスデコード部を備えたことを特徴とする情報処理装置。
【請求項５】
前記アドレスデコード部はさらに、前記基準アドレスの幅を表す基準アドレス幅情報を格納する基準レジスタを有し、
前記アドレスデコード部は、前記基準レジスタに格納された前記基準アドレス幅情報を用いて、前記アドレスから抽出することを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記アドレスデコード部はさらに、前記論理ノードアドレスの幅を表す索引アドレス幅情報を格納する索引レジスタと、前記メモリノードのアドレス空間の大きさを示す細分化アドレスの幅を表す細分化アドレス幅情報を格納する細分化レジスタを有し、
前記アドレスデコード部は、前記細分化レジスタに格納された前記細分化アドレス幅情報を用いて、前記アドレスから抽出することを特徴とする請求項５記載の情報処理装置。
【請求項７】
演算処理を行うＣＰＵノードと、入出力処理を行うＩ／Ｏノードと、複数のメモリノードと、全ての前記ノードに接続された相互接続装置において、
前記相互接続装置は、
いずれかの前記ＣＰＵノード又はＩ／Ｏノードからいずれかのメモリノードを宛先として送信されたデータ要求を受信し、前記受信されたデータ要求に含まれるアドレスから、前記宛先となるメモリノードの基準アドレスを抽出するアドレスデコード部であって、
前記宛先となるメモリノードがシステムアドレス空間のどこにマッピングされているかを示す基準オフセットを格納する基準オフセットレジスタと、
前記基準アドレスと、前記基準オフセットレジスタに格納された前記基準オフセットとを比較するとともに、前記基準アドレスが前記基準オフセットと一致した場合には、前記アドレスから前記宛先となるメモリノードの論理ノードアドレスを抽出するコンパレータと、
前記論理ノードアドレスと物理宛先ノードアドレスとの対応関係を表し、前記記憶部に保持されたマッピングテーブルと、を有する前記アドレスデコード部を備えたことを特徴とする相互接続装置。
【請求項８】
前記アドレスデコード部はさらに、前記基準アドレスの幅を表す基準アドレス幅情報を格納する基準レジスタを有し、
前記アドレスデコード部は、前記基準レジスタに格納された前記基準アドレス幅情報を用いて、前記アドレスから抽出することを特徴とする請求項７記載の相互接続装置。
【請求項９】
前記アドレスデコード部はさらに、前記論理ノードアドレスの幅を表す索引アドレス幅情報を格納する索引レジスタと、前記メモリノードのアドレス空間の大きさを示す細分化アドレスの幅を表す細分化アドレス幅情報を格納する細分化レジスタを有し、
前記アドレスデコード部は、前記細分化レジスタに格納された前記細分化アドレス幅情報を用いて、前記アドレスから抽出することを特徴とする請求項８記載の相互接続装置。
【発明の詳細な説明】
【０００１】
関連出願の相互参照
本願発明は、Jeremy J. Farrell, Kazunori Masuyama, Sudheer MiryalaおよびPatrick N. Conway により２００１年６月２９日に出願した「マルチ・ノードコンピュータシステムにおけるアドレス空間復号化のためのスケーラブルでフレキシブルな方法」という名称の米国仮特許出願第６０／３０１,７７１号からの３５，Ｕ.Ｓ.Ｃ.§１１９（ｅ）に基づく優先権を主張するものであり、上記出願の全てを本願発明の全体に亘って取り入れている。
【０００２】
【発明の属する技術分野】
本発明は一般的にはマルチ・ノードコンピュータシステムより特定的には、マルチ・ノードコンピュータシステムにおいてメモリ要求の宛先ノードアドレスをデコードするための機構に関する。
【０００３】
【従来の技術】
マルチ・ノードコンピュータネットワークは、中央プロセッサユニット（ＣＰＵ）ノード、メモリノード、入出力（Ｉ／Ｏ）ノードおよびハイブリッドノード（メモリ、Ｉ／ＯおよびＣＰＵのあらゆる組合せを伴うもの）を含み得る。これらのノードは、アドレスのデコード、すなわちどのノードに要求を転送すべきかの決定を担うシステム相互接続を介して、接続されている。
【０００４】
【発明が解決しようとする課題】
マルチ・ノードコンピュータシステムにおいて、メモリは、現在のＣＰＵ速度に比べ高い待ち時間（ｌａｔｅｎｃｙ）を有する。このことはすなわち、メモリノードが、読取りまたは書込み要求に応答する時間が長いということを意味している。頻繁にみられる別のネックは、最大処理能力、すなわち、単位時間あたりにメモリシステムが提供できるデータの量である。メモリインタリーブは、インタリーブサイズをもって、ノード群に亘り、メモリシステムを分割することによって、マルチ・ノードコンピュータシステムが処理能力を増大させることのできる周知の技術である。例えば、ｘというインタリーブサイズをもつ４つのメモリノードを有するシステムにおいて、基準アドレス（ｂａｓｅ  ａｄｄｒｅｓｓ）Ｂをノード０にマッピングすることができる。アドレスＢ＋ｘはノード１に、Ｂ＋２ｘはノード２に、Ｂ＋３ｘはノード３に、Ｂ＋４ｘはノード０にそれぞれマッピングされる。こうしてシステムはあらゆるホットメモリスポット（ｈｏｔ  ｍｅｍｏｒｙ  ｓｐｏｔ）を回避しながら、システム性能を増大させることができるようになる。
【０００５】
マルチ・ノードコンピュータシステムがさらに大きくなるにつれて、多くのノードにアドレス可能であることが重要となる。既存の方法は、システム内の各ノードについて、基準（ｂａｓｅ）およびサイズ（限界）宣言を必要とする。かくして、システム内にｎ個のノードが存在する場合、これらはｎ個の基準レジスタとｎ個のサイズレジスタを必要とする。ノードの数が増大するにつれて、｛基準、サイズ｝対を保持するメモリレジスタは直線的に増大し、かくして非常に大容量のチップ資産が必要となる。
【０００６】
既存の方法の別の欠点は、要求の宛先ノードアドレスを迅速に決定するために、既存の解決法が多数の絶対値コンパレータ（ｍｕｌｔｉｍａｇｎｉｔｕｄｅ  ｃｏｍｐａｒａｔｏｒ）を必要とする、という点にある。標準的には、各ノードに対して１つの絶対値コンパレータが存在する。ノードの数が追加されていくにつれて、より多くの｛基準、サイズ｝対を追加しなくてはならず、より多くの絶対値コンパレータが必要となる。これらの絶対値コンパレータの実現コストは通常非常に高いものである。かくして、既存のデコード方策では、多数のアドレスノードをサポートするのに充分なスケーリングができない。
【０００７】
複数ノードを有しかつインタリーブを用いる従来の実現法のさらにもう１つの欠点は、従来のシステムでは、各インタリーブグループについて、固定のインタリーブサイズと限定された数のノード組合せを使用する、という点にある。
【０００８】
要約すると、既存のデコード方策では、数多くアドレスノードをサポートするのに充分なスケーリングができない。さらに、既存のアドレスデコード方策は、インタリーブのために異なるサイズを許容しそして種々のインタリーブセットを許容するのに充分なほどにフレキシブルではない。
【０００９】
従って、必要なのは、マルチ・ノードコンピュータシステム内でのアドレス空間デコードのための改良された機構である。
【００１０】
【課題を解決するための手段】
本発明は、マルチ・ノードコンピュータシステムにおけるアドレス空間デコードのためのシステムを含む。本発明の実施形態によると、マルチ・ノードコンピュータシステムは（図１に示すように）、相互接続（ｉｎｔｅｒｃｏｎｎｅｃｔ）により接続された複数の、Ｉ／Ｏノード、ＣＰＵノード、メモリノードおよびハイブリッドノードを含む。本発明の一実施形態においては、ＣＰＵノードまたはＩ／Ｏノードによって発出された要求には、宛先ノードの基準アドレスを格納する基準フィールドと、宛先ノードの論理アドレスを格納する索引フィールドと、メモリノードのアドレス可能空間のサイズを格納する細分化フィールドと、からなるアドレスが含まれる。
【００１１】
上記システムはさらに、基準フィールドの幅を用いて、宛先ノードの基準アドレスを抽出するようなアドレスデコーダを含む。アドレスデコーダはまた、索引フィールドおよび細分化フィールドの幅を用いて、宛先ノードの論理アドレスを抽出するようにも構成されている。アドレスデコーダはさらに、基準フィールドの幅を表わす複数ビットを格納するための基準レジスタと、索引アドレスの幅を表わす複数ビットを格納するための索引レジスタと、細分化フィールドの幅を表わす複数ビットを格納するための細分化レジスタと、を備える。細分化フィールドの幅は、アドレス内のどこで索引フィールドが始まるかを決定するのに使用される。アドレスデコーダはさらに、システムアドレス空間内のどこにメモリノードがマッピングされるかを表わすプログラミングされた基準オフセットを格納するための基準オフセットレジスタと、データ要求がメモリノードに対し行われているか否かを判定するため、基準アドレスと基準オフセットとを比較するための論理コンパレータと、要求が転送される物理ノードアドレスに対し、抽出された宛先ノードの論理アドレスをマッピングするためのマッピングテーブルと、を備える。
【００１２】
本発明はまた、マルチ・ノードコンピュータシステムにおけるアドレス空間デコード方法をも含んでいる。最初に、メッセージドライバは、ＣＰＵノードまたはＩ／Ｏノードに対して、メモリノードへの要求を発出させる。この要求にはアドレスが含まれている。アドレスデコーダは、基準フィールドの幅を用いて、そのアドレスの基準フィールドを抽出する。その基準アドレスとプログラミングされた基準オフセットとの間で、論理比較が行われる。２つが一致した場合、それはその要求が干渉性（ｃｏｈｅｒｅｎｔ）のあるメモリ要求であること、すなわちそれがメモリノードに対し行われていることを表わす。要求が干渉性のあるメモリ要求である場合、アドレスデコーダは、索引フィールドおよび細分化フィールドの幅を用いて、宛先ノードの論理ノードアドレスを抽出する。マッピングテーブル内で索引することにより、論理ノードアドレスに基づいて物理宛先ノードアドレスが決定される。
【００１３】
本発明は有利には、要求の宛先をデコードするために、算術比較を実施する代わりに論理比較を行う。こうして、多数の絶対値コンパレータを有する必要性が回避される。その上、マルチ・ノードコンピュータシステム内のノード数が増大するにつれて、メモリレジスタが直線的に増大することはない。その結果、実現コストは直線的には増大せず、低額にとどまる。
【００１４】
【発明の実施の形態】
ここで図１を参照すると、分散形マルチ・ノードコンピュータシステム１００の全体的アーキテクチャのブロック図が示されている。システム１００には、ＣＰＵノード１１０ａ〜１１０ｎ（全体として１１０）、 メモリノード１１５ａ〜１１５ｎ（全体として１１５）、 Ｉ／Ｏノード１２０ａ〜１２０ｎ（全体として１２０）、およびハイブリッドノード１０５ａ〜１０５ｎ（全体として１０５）といった複数のノードが含まれている。ハイブリッドノード１０５としては、ＣＰＵノード１１０とメモリノード１１５とを組合わせることができる。各ＣＰＵノード１１０は、従来の処理ユニット、例えばIntelまたはIntelコンパチブルPentiumTMクラスまたはそれ以上のプロセッサ、Sun ＳＰＡＲＣTMクラスまたはそれ以上のプロセッサ、あるいはＩＢＭ／Motorola PowerＰＣTMクラスまたはそれ以上のプロセッサである。各Ｉ／Ｏノード１２０は、従来のＩ／Ｏシステム、例えば記憶デバイス、入力デバイス、周辺デバイスなどである。各メモリノード１１５は従来のメモリシステム、例えばダイナミックランダムアクセスメモリ（ＤＲＡＭ）システム、スタティックランダムアクセスメモリ（ＳＲＡＭ）システムなどである。ＣＰＵノード１１０、Ｉ／Ｏノード１２０、ハイブリッドノード１０５のいずれも、メモリノード１１５に対し干渉性（ｃｏｈｅｒｅｎｔ）のあるメモリ要求を発出することができる。
【００１５】
図１に示すように、システム１００内のノード１０５，１１０，１１５および１２０は、相互接続１２５を介して接続される。相互接続１２５は例えば、ルータまたはスイッチを用いて、例えばメッシュ、リングあるいは超立方体（ｈｙｐｅｒｃｕｂｅ）型に実装できる。相互接続１２５は、任意のノード対の間にパスを提供し、システム１００内で一方のノードからもう一方のノードへとメッセージをルーティングする。
【００１６】
システム１００は、アドレス空間を有する。このアドレス空間は、任意の数のノードの間で分割される。このアドレス空間は、メモリノード１１５にアクセスするための１組のメモリアドレスを提供する。このエリアは、干渉性（ｃｏｈｅｒｅｎｔ）アドレス空間と呼ばれる。干渉性アドレス空間は、複数のメモリウインドウに分割される。システム１００の干渉性アドレス空間については、図３に関連して以下でさらに詳述する。
【００１７】
ここで図２を参照すると、ここでは、ＣＰＵノード１１０またはＩ／Ｏノード１２０からメモリノード１１５に対し発出された要求のための好ましいアドレス５０のフォーマットを示している。アドレス５０には、基準フィールド１０、索引フィールド２０および細分化フィールド３０というフィールドが含まれる。
【００１８】
細分化フィールド３０は好ましくは、システム１００の干渉性（ｃｏｈｅｒｅｎｔ）アドレス空間２１０における各メモリウインドウ４０内に格納されたキャッシュラインの数を示す。細分化フィールドはＧビットの幅をもつ。各メモリウインドウ４０の中には２Cのキャッシュラインを格納することができる。
【００１９】
索引フィールド２０は好ましくは、システム１００の各ノードの論理アドレス（論理ノードＩＤ）を格納する。この索引フィールド２０は、アドレス可能なメモリノードの数に基づいて調整可能である。索引フィールド２０は、システム１００内にわずか１つしかノードがない場合、０ビット幅であり得る。索引フィールド２０は、システム１００内に２つのノードがある場合、１ビット幅であり得る。同様にして、索引フィールド２０は、３〜４つのノードについて２ビット幅、５〜８ノードについて３ビット幅等々、となり得る。
【００２０】
基準フィールド１０は、基準アドレスを格納する。基準フィールド１０の幅は（合計アドレスビット−（索引ビット＋細分化ビット））に等しい。基準フィールド１０および細分化フィールド３０の合計ビット数が、１ノードあたりのアドレス可能空間のサイズを決定する。基準フィールド１０内に格納された基準アドレスは、データ要求先のノードの基準アドレスを表わす。以下で詳述するように、基準アドレスは、要求が干渉性メモリ要求であるか否かを判定するために用いられる。
【００２１】
ここで図３を参照すると、システム１００のアドレス空間２００を表している。アドレス空間２００は０で出発し、２B+I+Gバイトのサイズを有する。本明細書で使用されているＢは基準フィールド１０の幅、Ｉは索引フィールド２０の幅、Ｇは細分化フィールド３０の幅（図２に示されているとおり）である。前述のとおり、システムアドレス空間２００は、メモリ１１５にアクセスするための１組のメモリアドレスを提供する。このエリアを干渉性アドレス空間２１０と呼ぶ。干渉性アドレス空間２１０は２I+Gバイトのサイズを有する。干渉性アドレス空間２１０のウインドウ０の底部をポイントする矢印が、アドレス空間２００内で干渉性アドレス空間２１０が開始するアドレスを表わす。このアドレスは、基準オフセットと呼ばれ、図１に示す基準オフセットレジスタ１４２内に格納される。
【００２２】
干渉性アドレス空間２１０は、２I個のメモリウインドウ４０に分割される。干渉性アドレス空間２１０内の各メモリウインドウ４０のサイズは、システム１００内のメモリノード１１５あたりのアドレス可能空間である。各ウィンドウ４０内には、２Gのキャッシュラインが格納され得る。一例を挙げると、Ｇ＝２０，Ｉ＝４，Ｂ＝８でありキャッシュラインサイズが１Ｂである場合、システムアドレス空間２００内には干渉性アドレス空間２１０の中に１６（２4）個のウィンドウ４０が存在し得る。このとき各メモリウインドウ４０は、１ＭＢ（２20）のサイズを有することになる。
【００２３】
ここで再び図１を参照すると、システム１００はさらに、ＣＰＵノード１１０またはＩ／Ｏノード１２０から発出された要求を受信し、その要求の中に含まれるアドレス５０の基準フィールド１０から基準アドレスを抽出するように構成されたアドレスデコーダ１２８を備える。アドレスデコーダ１２８は、基準フィールド１０の幅Ｂに基づいて基準アドレスを抽出する。アドレスデコーダ１２８はさらに、図２に示されたアドレス５０の索引フィールド２０から論理ノードアドレスを抽出するようにも構成されている。アドレスデコーダ１２８は、ソフトウェア、ハードウェアまたはそれらの組合せとして実現され得る。アドレスデコーダ１２８は好ましくは、基準レジスタ１３０、索引レジスタ１３５、細分化レジスタ１４０、基準オフセットレジスタ１４２、論理コンパレータ１４４およびマッピングテーブル１４５をも備える。
【００２４】
基準レジスタ１３０は好ましくは、図２に示されているメモリ要求のアドレス５０における基準フィールド１０の基準アドレスを格納するようにプログラミングされたビット数（幅）を規定する。索引レジスタ１３５は、アドレス５０における索引フィールド２０によって使用されるビット数を規定する。細分化レジスタ１４０は、アドレス５０における細分化フィールド３０によって使用されるビット数を規定する。細分化フィールド３０の幅は、どこで索引フィールド２０が開始するかを判定するために用いられる。基準レジスタ１３０、索引レジスタ１３５および細分化レジスタ１４０は、システム初期化時にプログラミングされる。
【００２５】
基準オフセットレジスタ１４２は、システムアドレス空間２００（図３に示す）内のどこから干渉性（ｃｏｈｅｒｅｎｔ）アドレス空間２１０が開始するかを示す基準オフセットを格納する。この基準オフセットはプログラミングされた一定値である。
【００２６】
論理コンパレータ１４４は好ましくは、図２に示す基準フィールド１０内に格納された基準アドレスと基準オフセットとの間の論理比較を行う。基準アドレスが基準オフセットと一致する場合、それは、要求が干渉性メモリ要求であること、すなわち要求がメモリノード１１５に対して行われていることを表わしている。算術比較を行う代わりに論理比較を行うことによって、多数の絶対値コンパレータを備える必要がなくなり、有利である。その上、それはシステム１００内に追加されるノードの数に応じて増やされる。
【００２７】
マッピングテーブル１４５は好ましくは、システム１００内の各ノードについて、物理宛先ノードアドレスに対する論理ノードアドレスのマッピングを格納する。マッピングテーブル１４５は、ＤＲＡＭ、ＳＲＡＭまたはそれと同等のものにより実現され得る。マッピングテーブル１４５の例が、図４に示されている。
【００２８】
ここで図４を参照すると、物理ノードＩＤマッピングテーブル１４５への論理ノードＩＤを表している。マッピングテーブル１４５は、システム１００によりサポートされた各ノードについて１つのエントリを格納する。ここで、システム１００によってサポートされるノードの数と少なくとも同数のエントリが、マッピングテーブル１４５内に存在するということを理解すべきである。図４に示すマッピングテーブル１４５は、２I個のエントリを格納し、ここでＩは、図２に示すアドレス５０における索引フィールド２０の幅を表わす。
【００２９】
本発明は好ましくは、システム１００内で単一のメモリノード１１５に対してマッピングされた多数のメモリウインドウを有することによって、かつマッピングテーブル１４５内に多数対１のマッピングを有することによって、インタリーブをサポートする。
【００３０】
ここで図５を参照すると、システム１００により実施される要求の宛先ノードアドレスをデコードするための方法のフローチャートが示されている。
【００３１】
プロセスは開始し（５１０）、メッセージドライバ（図示せず）が、ＣＰＵ１１０にメモリノード１１５に対し要求を発出させる。ここで、Ｉ／Ｏノード１２０もまたメモリノード１１５に要求を発出できる、ということを理解すべきである。アドレスデコーダ１２８（図１に示す）は、基準フィールド１０、索引フィールド２０および細分化フィールド３０、の幅を受信する。アドレスデコーダ１２８は、基準フィールド１０の幅Ｂに基づいて、アドレスの基準フィールド１０から基準アドレスを抽出する（５３０）。アドレスデコーダ１２８は次に、基準オフセットレジスタ１４２（図１に示す）内に格納された基準オフセットと基準アドレスとを比較する（５４０）。これら２つが一致する場合は、要求が干渉性のあるメモリ要求であること、すなわちそれがメモリノードに対し行われていることを表わす。要求が干渉性メモリ要求であると、ひとたび判定されたならば、アドレスデコーダ１２８は、索引フィールド２０の幅に基づいて、アドレスの索引フィールド２０から宛先ノードの論理ノードアドレス（論理ノードＩＤ）を抽出する（５５０）。どこで索引フィールドが開始するかを判定するために、アドレスデコーダ１２８は、細分化フィールド３０の幅Ｇを使用する。
【００３２】
次にアドレスデコーダ１２８は、宛先ノードのための物理ノードアドレスを決定すべく（５５５）、論理ノードＩＤに基づいてマッピングテーブル１４５を索引し、プロセスは５７０で終了する。一例を挙げると、Ｉ＝４である場合、アドレスデコーダ１２８は、索引フィールド２０内に格納された４ビットの論理ノードＩＤを抽出する。論理ノードＩＤが、例えばディジタル数「３」の論理表現である「００１１」である場合、論理ノードＩＤ「３」に基づいてマッピングテーブル１４５を索引することにより、アドレスデコーダ１２８は、その要求がルーティングされる物理ノードＩＤを決定することができる。
【００３３】
逆に、基準アドレスと基準オフセットレジスタ１４２とが一致しない場合、当該要求は干渉性メモリ要求ではない（５８０）。
【００３４】
本発明の一実施形態では、マッピングテーブルを用いて、与えられた論理アドレスに対する宛先ノードアドレスを導出するためのデコードメカニズムを利用する。物理宛先ノードアドレスを決定するために算術比較の代わりに論理比較を行うことによって、多くの絶対値比較を有する必要性はなくなる。マルチ・ノードコンピュータシステム内のノード数が増大するにつれて、メモリレジスタが直線的に増加することはない。その結果、実現コストは直線的には増大せず、低額にとどまる。
【００３５】
本発明による好ましい実施形態は以下の通りである。
【００３６】
（付記１）  相互接続によって接続されたＩ／Ｏノード、ＣＰＵノードおよびメモリノードを含むマルチ・ノードコンピュータシステムにおける、データ要求の宛先ノードアドレスを決定する方法であって、
アドレスを含むデータ要求を受信する段階と、
前記アドレスから宛先ノードの基準アドレスを抽出する段階と、
前記メモリノードがシステムアドレス空間内のどこにマッピングされているかを示す基準オフセットと、前記基準アドレスとを比較する段階と、
前記基準アドレスが前記基準オフセットと一致したことに応答して、
前記アドレスから論理ノードアドレスを抽出する段階と、
前記論理ノードアドレスに基づいて前記要求の物理宛先ノードアドレスを決定する段階と、
を有することを特徴とする方法。
【００３７】
（付記２）  前記基準アドレスが、前記基準フィールドの幅を用いて抽出される付記１に記載の方法。
【００３８】
（付記３）  前記論理ノードアドレスが、索引フィールドの幅を用いて抽出される付記１に記載の方法。
【００３９】
（付記４）  アドレスを含むデータ要求を受信し、宛先ノードの基準アドレスと論理ノードアドレスとを前記アドレスから抽出するためのアドレスデコーダと、
前記抽出された基準アドレスと、システムアドレス空間内のどこに前記メモリノードがマッピングされるかを示す基準オフセットとの間の論理比較を行うための、前記アドレスデコーダ内にあるコンパレータと、
前記データ要求の物理宛先ノードアドレスに前記論理ノードアドレスをマッピングするための、前記アドレスデコーダ内にあるマッピングテーブルと、
を備えることを特徴とするマルチ・ノードコンピュータシステム。
【００４０】
（付記５）  前記アドレスデコーダがさらに、前記基準オフセットを格納するための基準オフセットレジスタを備える付記４に記載のシステム。
【００４１】
（付記６）  前記基準オフセットが、プログラミングされた一定値である付記５に記載のシステム。
【００４２】
（付記７）  前記基準アドレスが前記アドレスの基準フィールド内に格納されており、また前記アドレスデコーダがさらに前記基準フィールドの幅を示すための基準レジスタを備える付記４に記載のシステム。
【００４３】
（付記８）  前記アドレスデコーダが、前記基準フィールドの幅に基づいて前記基準アドレスを抽出する付記７に記載のシステム。
【００４４】
（付記９）  前記論理ノードアドレスが前記アドレスの索引フィールド内に格納され、また前記アドレスデコーダがさらに、前記索引フィールドの幅を示すための索引レジスタを備える付記４に記載のシステム。
【００４５】
（付記１０）  前記アドレスデコーダが、前記索引フィールドの幅に基づいて前記論理ノードアドレスを抽出する付記９に記載のシステム。
【００４６】
（付記１１）  前記アドレスがさらに、前記メモリノードのアドレス可能空間のサイズを示す細分化フィールドを含んでなる付記４に記載のシステム。
【図面の簡単な説明】
【図１】本発明の実施形態による分散型マルチ・ノードコンピュータシステムの全体的アーキテクチャのブロック図である。
【図２】メモリ要求のアドレスの好ましいフォーマットを表す図である。
【図３】システムアドレスマップ内の干渉性アドレス空間を表す図である。
【図４】本発明の実施形態による物理ノードアドレスマッピングテーブルへの論理ノードアドレスのブロック図である。
【図５】図１のシステムによって実施される方法のフローチャートである。
【符号の説明】
１０…基準フィールド
２０…索引フィールド
３０…細分化フィールド
４０…メモリウィンドウ
１００…分散形マルチ・ノードコンピュータシステム
１０５…ハイブリッドノード
１１０…中央プロセッサユニット（ＣＰＵ）ノード
１２０…入出力（Ｉ／Ｏ）ノード
１２５…相互接続
１２８…アドレスデコーダ
１３０…基準レジスタ
１３５…索引レジスタ
１４０…細分化レジスタ
１４２…基準オフセットレジスタ
１４４…論理コンパレータ
１４５…マッピングテーブル
２００…アドレス空間
２１０…干渉性アドレス空間
【図１】
0004184723.tif 000002
【図２】
0004184723.tif 000003
【図３】
0004184723.tif 000004
【図４】
0004184723.tif 000005
【図５】
0004184723.tif 000006