(57)【要約】【課題】複数のプロセッサノードと複数のＩＯノード間に、入出力データを交換するノード制御装置を設けることにより、多数の入出力装置を利用可能にする。【解決手段】ノード制御装置のポート入力部３００では、レジスタ４００にＩＯ空間のマップ先のメモリ空間のベースアドレスを、テーブル４０１にはＩＯ空間のＩＯ空間番号及びアドレスレンジを、それぞれ設定する。テーブル４０１には、また、ＩＯノードに接続するＩＯデバイスに割り当てられるＩＯ空間が、メモリにマップされたＩＯ空間なのか、それともメモリにマップされたＩＯ空間ではないのかを示す識別フラグを設定する。ＩＯ空間アクセス検出回路４０２は、対応するプロセッサノードから入力するフリット信号３３０のコマンドコード及びアドレスをデコードして、ＩＯ空間へのアクセスであることを検出して出力し、ターゲットのＩＯノードのノードＩＤを検出して出力する。【選択図】図４
2011070296.tif 000002
【特許請求の範囲】
【請求項１】
１つの入出力装置制御領域を使用して１または複数の入出力装置を制御する情報処理系を１単位のＩＯノードとし、複数のプロセッサノードと複数の前記ＩＯノードとの間で前記入出力装置が担うデータの交換を行うノード制御装置であって、
前記ＩＯノードの前記入出力装置制御領域各々の属性情報を予め対応するエントリに記憶して成るテーブルと、
前記データの交換の際に、前記プロセッサノードから発行される入出力データ情報と前記テーブル内の前記エントリ各々の情報とを照合した照合結果により、該入出力データ情報が指定する前記ＩＯノードと、該ＩＯノードの前記入出力装置制御領域とを確定する手段と、
を備えたことを特徴とするノード制御装置。
【請求項２】
前記照合の際に、前記入出力データ情報に指定された条件と一致する情報を保持したエントリが前記テーブルに存在する場合は、該エントリ内の情報を参照して前記ＩＯノード及び該ＩＯノードの前記入出力装置制御領域を確定し、他方、前記入出力データ情報に指定された条件と一致する情報を保持したエントリが前記テーブルに存在しない場合は、前記入出力データ情報を参照して前記ＩＯノード及び該ＩＯノードの前記入出力装置制御領域を確定することを特徴とする請求項１記載のノード制御装置。
【請求項３】
前記テーブル内の前記エントリの各々には、前記入出力装置制御領域が、記憶装置上にマップされた領域なのか否かを示す情報が含まれていることを特徴とする請求項１または請求項２記載のノード制御装置。
【請求項４】
前記テーブル内の前記エントリの各々には、前記入出力装置制御領域を一意に識別するための情報と、前記入出力装置制御領域の上限アドレス及び前記入出力装置制御領域の下限アドレスとが含まれていることを特徴とする請求項１乃至３のいずれか１項に記載のノード制御装置。
【請求項５】
１つの入出力装置制御領域を使用して１または複数の入出力装置を制御する情報処理系を１単位のＩＯノードとし、複数のプロセッサノードと複数の前記ＩＯノードとの間で前記入出力装置が担うデータの交換を行うノード制御装置の制御方法であって、
前記ノード制御装置は、前記ＩＯノードの前記入出力装置制御領域各々の属性情報を予め対応するエントリに記憶して成るテーブルを備え、
前記データの交換の際に、前記プロセッサノードから発行される入出力データ情報と前記テーブル内の前記エントリ各々の情報とを照合した照合結果により、該入出力データ情報が指定する前記ＩＯノードと、該ＩＯノードの前記入出力装置制御領域とを確定するステップを有することを特徴とするノード制御装置の制御方法。
【請求項６】
請求項１乃至４のいずれか１項に記載のノード制御装置を有する情報処理システム。
【請求項７】
１つの入出力装置制御領域のみを使用する情報処理系と、記憶領域にマップされた複数の前記入出力装置制御領域を使用する情報処理系とに分割されていることを特徴とする請求項６記載の情報処理システム。
【請求項８】
１つの入出力装置制御領域を使用して１または複数の入出力装置を制御する情報処理系を１単位のＩＯノードとし、複数のプロセッサノードと複数の前記ＩＯノードとの間で前記入出力装置が担うデータの交換を行うノード制御装置を制御させるためのコンピュータプログラムであって、
前記ノード制御装置は、前記ＩＯノードの前記入出力装置制御領域各々の属性情報を予め対応するエントリに記憶して成るテーブルを備え、
前記データの交換の際に、前記プロセッサノードから発行される入出力データ情報と前記テーブル内の前記エントリ各々の情報とを照合した照合結果により、該入出力データ情報が指定する前記ＩＯノードと、該ＩＯノードの前記入出力装置制御領域とを確定するステップを有することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はノード制御装置、ノード制御装置の制御方法、情報処理システム、及びコンピュータプログラムに係り、特に、１つのプロセッサノードで制御する入出力装置の台数が多数となり、これらの入出力装置を使用するために必要な記憶領域（以下、「ＩＯ空間」と称する）も大規模となる場合にも対応できるノード制御装置、ノード制御装置の制御方法、情報処理システム、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、複数のＩＯノード（入出力装置）を含む大規模な情報処理システムにおいては、ＩＯ空間を使用する多数の入出力装置（以下、「ＩＯデバイス」と称することもある）を全て接続して使用したいという要求があり、この場合、ＩＯ空間（データバッファ等）が不足するという問題点が生じることとなり、この問題点の解決が重要課題であった。
即ち、１つのプロセッサノードで制御する入出力装置の台数が多数になると、これらの入出力装置を使用するために必要な記憶領域（即ちＩＯ空間）も大規模となるが、周知のＰＣＩ−ＥｘｐｒｅｓｓなどのＰＣＩ仕様による定義では、全ての入出力装置に割り当てられるＩＯ空間の合計が６４ＫＢに過ぎない。
よって、本発明でも、このような多数のＩＯデバイスを接続したいという要求を満たすために、１つのプロセッサノードで複数のＩＯ空間を処理できるようにする手段の開発が課題の１つとなっている。
【０００３】
なお、最近では、最新のＯＳとシステムファームウェア間には、複数のＩＯ空間を設定して受け渡すインタフェースが定義されている。しかしながら、汎用の入出力装置を制御する制御装置用のＬＳＩについては、複数のＩＯ空間を認識して処理する手段は未だ開発されていない。一方、或る種の既成のＯＳでは、複数のＩＯ空間を扱うことはできない。また、既成の汎用のＩＯノードのＬＳＩにも、複数のＩＯ空間を認識して処理する手段は設けられていない。
【０００４】
この分野で先行して出願された特許の文献として、例えば、特許文献１では、インタコネクトを介して互いに接続されている複数の中央プロセッサユニット（ＣＰＵ）ノードと、入力／出力（Ｉ／Ｏ）ノードと、メモリノードとを含む分散マルチノードコンピュータシステムが示されており、このコンピュータシステムは複数のドメインに分割されており、この各ドメインは、その独自のアドレス空間を有する独立したマシンとして機能するものとしており、また、各ドメイン上で、オペレーティングシステムが別々にランするものとしている。
【０００５】
また、例えば、特許文献２では、計算機システムにおいて、ＬＰＡＲ制御プログラムが、１つの物理的なデバイスのメモリ空間及びＩＯ空間を各ＯＳに対して仮想的にマッピングする機能を有し、さらに、このＬＰＡＲ制御プログラムは、１台の計算機システムを論理的な複数のパーティション（ＬＰＡＲ）に分割し、各ＬＰＡＲに対してＬＰＡＲを特定するためのＬＰＡＲ識別子を割当てる機能を有することを開示している。
【０００６】
また、例えば、特許文献３では、２つのレジスタにコンフィグレーション空間のベースアドレス、サイズを設定することにより、メモリ空間に複数のコンフィグレーション空間をマップするものとし、コンフィグレーションアクセス検出回路が、フリット信号に含まれている、アクセス対象デバイスが接続されているバスのバス番号と上記バスを配下に持つIOノードに割り当てられているコンフィグレーション空間のセグメント番号とをマージしたインデックス信号を出力するものとしている。また、インデックス信号に対応するエントリに格納されているIOノードのノードIDを出力できるテーブルを設けると共に、フリット信号を上記ノードIDのIOノードへルーティングするクロスバースイッチを設けることが開示されている。
【０００７】
さらに、例えば、特許文献４では、ＩＯ空間を有効利用可能として容量の制限を無くして、大容量ＩＯ空間を必要とするデバイスの接続を可能とすると共に、回路規模の増大を抑止低減することを意図し、ＩＯアドレス空間を定める値が設定されるベースアドレスレジスタと、ベースアドレスレジスタの値と、前記システムバス上に送出されるアドレスとを比較し、両者が一致した場合に、前記システムバスに応答する共に選択信号をアクティブにするコンパレータと、システムバス上のアドレスと前記選択信号とを入力とし、エイリアス空間を避けるようにしてデバイスのマッピングを行ってデバイスの選択信号を生成するデコーダと、を備える構成の、システムバスのＩＯマッピング方式が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−１３２０３７号公報
【特許文献２】特開２００８−１５８７１０号公報
【特許文献３】特開２００８−１８１３８９号公報
【特許文献４】特開平１１−２３８０２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記背景技術で述べた従来の情報処理システムにあっては、前述のとおり、ＰＣＩ−Ｅｘｐｒｅｓｓ等のＰＣＩ仕様の場合、入出力装置の制御に使用できるＩＯ空間は１６ビットのアドレスで指定する６４Ｋバイトの空間である。しかしながら、複数のＩＯノードを含む大規模な情報処理システムにおいては、多数のＩＯデバイスを接続して制御したいという要求があり、これらのＩＯデバイスがＩＯ空間を使用する場合、ＩＯ空間が足りなくなるという問題点が有った。
【００１０】
なお、前述の特許文献１〜４に開示されている技術は、本発明のように、マップされていない１つのＩＯ空間を扱う既成の制御システムとの互換を考慮していないので、この点で、いずれも本発明とは異なるものである。また、個別では、
前述の特許文献１に開示された技術の場合、本発明のようにノード制御装置を設ける構成ではなく、複数の中央プロセッサユニットのＯＳがノード制御装置の役割を果たすものである。
【００１１】
前述の特許文献２に開示された技術の場合、計算機システム内で稼動するＬＰＡＲ制御プログラムが、本発明のノード制御装置に近い役割を果たすものである。
前述の特許文献３に開示された技術の場合、本発明とは最も近い構成であるが、メモリ空間には、ＩＯ空間ではなく、複数のコンフィグレーション空間をマップするものとしている。また、ノード制御装置内にはレジスタが２つ設けられている。
前述の特許文献４に開示された技術の場合、前述のとおり、大容量ＩＯ空間を必要とするデバイスの接続を可能にすることを意図したものであり、本発明のように、個々のＩＯノードが備える複数のＩＯ空間を全て取り扱えることを可能にして、多数のＩＯデバイスを接続することを意図したものではない。
【００１２】
本発明は、上記従来の問題点に鑑みてなされたものであって、複数のプロセッサノードと複数のＩＯノードとの間に、入出力データを交換するノード制御装置を設けると共に、該ノード制御装置に、メモリ空間に複数のＩＯ空間を予めマップする機能と、アドレスからＩＯ空間番号をデコードして対応のＩＯノードへアクセスをルーティングする機能とを備えることにより、個々のＩＯノードが備える複数のＩＯ空間を全て取り扱えることを可能にして、多数のＩＯデバイスを接続することができるノード制御装置及びノード制御装置の制御方法並びに情報処理システムを提供することを目的としている。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明に係るノード制御装置は、１つの入出力装置制御領域を使用して１または複数の入出力装置を制御する情報処理系を１単位のＩＯノードとし、複数のプロセッサノードと複数の前記ＩＯノードとの間で前記入出力装置が担うデータの交換を行うノード制御装置であって、前記ＩＯノードの前記入出力装置制御領域各々の属性情報を予め対応するエントリに記憶して成るテーブルと、前記データの交換の際に、前記プロセッサノードから発行される入出力データ情報と前記テーブル内の前記エントリ各々の情報とを照合した照合結果により、該入出力データ情報が指定する前記ＩＯノードと、該ＩＯノードの前記入出力装置制御領域とを確定する手段と、を備えたことを特徴とする。
【００１４】
また、本発明に係るノード制御装置の制御方法は、１つの入出力装置制御領域を使用して１または複数の入出力装置を制御する情報処理系を１単位のＩＯノードとし、複数のプロセッサノードと複数の前記ＩＯノードとの間で前記入出力装置が担うデータの交換を行うノード制御装置の制御方法であって、前記ＩＯノードの前記入出力装置制御領域各々の属性情報を予め対応するエントリに記憶して成るテーブルを備え、前記データの交換の際に、前記プロセッサノードから発行される入出力データ情報と前記テーブル内の前記エントリ各々の情報とを照合した照合結果により、該入出力データ情報が指定する前記ＩＯノードと、該ＩＯノードの前記入出力装置制御領域とを確定するステップを有することを特徴とする。
【００１５】
また、本発明に係る情報処理システムとして、上述のノード制御装置を有する情報処理システムを提供するものである。
【００１６】
さらに、本発明に係るコンピュータプログラムは、１つの入出力装置制御領域を使用して１または複数の入出力装置を制御する情報処理系を１単位のＩＯノードとし、複数のプロセッサノードと複数の前記ＩＯノードとの間で前記入出力装置が担うデータの交換を行うノード制御装置を制御させるためのコンピュータプログラムであって、前記ＩＯノードの前記入出力装置制御領域各々の属性情報を予め対応するエントリに記憶して成るテーブルを備え、前記データの交換の際に、前記プロセッサノードから発行される入出力データ情報と前記テーブル内の前記エントリ各々の情報とを照合した照合結果により、該入出力データ情報が指定する前記ＩＯノードと、該ＩＯノードの前記入出力装置制御領域とを確定するステップを有することを特徴とする。
【発明の効果】
【００１７】
以上説明したように、本発明によれば、１つの入出力装置制御領域を使用して１または複数の入出力装置を制御する情報処理系を１単位のＩＯノードとし、複数のプロセッサノードと複数のＩＯノードとの間で入出力装置が担うデータの交換を行うノード制御装置において、ＩＯノードの入出力装置制御領域各々の属性情報を予め対応するエントリに記憶して成るテーブルを設けると共に、データの交換の際に、プロセッサノードから発行される入出力データ情報と前記テーブル内の前記エントリ各々の情報とを照合した照合結果により、該入出力データ情報が指定するＩＯノードと、該ＩＯノードの入出力装置制御領域とを確定する構成としたので、多数の入出力装置を制御できるノード制御装置を提供することができる効果が有る。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態に係る情報処理システムの全体構成を示す構成図である。
【図２】ＩＯノードの１例としての構成を示す構成図である。
【図３】本発明の実施形態に係るノード制御装置の構成を示す構成図である。
【図４】図３に示すノード制御装置１３０のポート入力部３００の詳細構成を示す構成図である。
【図５】テーブル４０１のフォーマットを示すデータ構成図である。
【図６】ＩＯ空間及びその記憶装置上でのＩＯ空間のマップを示すデータ構成図である。
【図７】本発明の情報処理システムにおいて情報を転送する際の転送フォーマットの１例を示すデータ構成図である。
【図８】図７に示すヘッダフリットのアドレスフィールドの、ＩＯ空間アクセスを行う場合の詳細構成を示すデータ構成図であり、図８（ａ）はメモリ空間にマップされたＩＯ空間へアクセスする場合のアドレスフォーマット（プロセッサノード発行）を示し、図８（ｂ）は既成のＩＯ空間アクセスのアドレスフォーマット（プロセッサノード及びノード制御装置発行）を示すものである。
【図９】図４に示すＩＯ空間アクセス検出回路４０２において一致結果信号４１２及びノードＩＤ信号４１３を生成する際の処理手順を示すフローチャート図である。
【図１０】２つのパーティションに区切った情報処理システムの１構成例を示す構成図である。
【発明を実施するための形態】
【００１９】
本発明は、複数のＩＯノードを含む大規模な情報処理システムにおいて、少なくとも１台のノード制御装置を介することによって、ＰＣＩ−ＥｘｐｒｅｓｓなどのＰＣＩ仕様で定義されるＩＯ空間（請求項に記載の入出力装置制御領域であり、データバッファを含む）を、複数設定して処理できるようにすることにより、既成のプロセッサが備えるＩＯ空間よりも多数のＩＯ空間を必要とするＩＯデバイスを接続可能にするものである。
また、従来どおり、１つのＩＯ空間に全てのＩＯデバイスを割り当てて使用する既成のプロセッサによるＩＯ空間の使用形態についても取り扱い可能とすることにより、複数のＩＯ空間を認識できない既成の情報処理装置のＯＳ（オペレーティングシステム）上でも動作可能にするものである。
【００２０】
さらに、情報処理システムをパーティションに区切って、複数のＯＳを動作させる場合には、例えば、ＯＳ毎に、１つのＩＯ空間のみを使うのか、それとも複数のＩＯ空間を使うのかを選択できるように構成するものである。
このような、ＩＯ空間を使用するＩＯデバイスを、できるだけ多数接続したいという要求を実現するために、本発明では、システムファームウェアまたはサービスプロセッサによって制御される少なくとも１台のノード制御装置を設置することによって、１つのプロセッサで複数のＩＯ空間を利用できるようにしている。
【００２１】
以下、本発明のノード制御装置及びノード制御装置の制御方法並びに情報処理システム置の実施形態について、図面を参照して詳細に説明する。
図１は、本発明の実施形態に係る情報処理システムの全体構成を示す構成図である。
同図において、本実施形態の情報処理システムは、１６個のプロセッサノード１００〜１１５と、８個のＩＯノード１２０〜１２７と、４個のノード制御装置１３０〜１３３（本発明の実施形態に係るノード制御装置）と、を備える。
【００２２】
８個のＩＯノード１２０〜１２７は、４個のノード制御装置１３０〜１３３に、２台づつ接続されている。４個のノード制御装置１３０〜１３３には、それぞれ４個のプロセッサノードと、２個のＩＯノードが接続されている。この４個のノード制御装置同士は、互いに１対１で接続されている。
図示しないが、プロセッサノード１００〜１１５の各々は、１つまたは複数のプロセッサと主記憶を備える。
【００２３】
本発明に係る情報処理システムは、図１に示す構成に限定されるものではなく、一般には、もっと小規模な構成（例えば、プロセッサノード２個、ノード制御装置１個、及びＩＯノード２個）といった構成や、もっと大規模な構成（例えば、プロセッサノード６４個、ＩＯノード３２個、及びノード制御装置１６）といった構成にすることも可能である。
図２は、ＩＯノードの１例としての構成を示す構成図である。
同図に示すＩＯノードは、１台のＩＯ制御装置２００と、４台のＩＯデバイス２１０〜２１３とを備えて構成されている。
【００２４】
ＩＯ制御装置２００は、ノード制御装置１３０（本発明の実施形態に係るノード制御装置）とインタフェース１６０を介して接続されている。また、ＩＯ制御装置２００は、ＩＯデバイス２１０〜２１３と、それぞれインタフェース２２０〜２２３を介して接続されている。インタフェース２２０〜２２３は、ＰＣＩ−ＥｘｐｒｅｓｓなどのＰＣＩの仕様に準拠するものとする。なお、図２に示す構成は１例であって、一般には、もっとＩＯデバイスの少ない構成や、もっとＩＯデバイスの多い構成にすることも可能である。
【００２５】
図３は、本発明の実施形態に係るノード制御装置の構成を示す構成図である。
同図に示す本発明の実施形態に係るノード制御装置１３０は、９個のポート入力部３００〜３０８と、９個のポート出力部３１０〜３１８と、クロスバースイッチ３２０と、を備えて構成される。ここで、一組のポート入力部とポート出力部とをポートと定義する。例えば、プロセッサノード１００に接続するポートは、ポート入力部３００とポート出力部３１０とから構成される。ノード制御装置１３０の９個のポートは、それぞれ、プロセッサノード１００〜１０３、ＩＯノード１２０〜１２１、及びノード制御装置１３１〜１３３を接続するためのものである。
【００２６】
図４は、図３に示すノード制御装置１３０のポート入力部３００の詳細構成を示す構成図である。
図３に示すノード制御装置１３０のポート入力部３０１〜３０８についても、図４に示すポート入力部３００と同じ構成をとる。
レジスタ４００は、本実施形態では１６ビットのレジスタであり、メモリ空間にマップされるＩＯ空間（入出力装置制御領域）のベースアドレスを指定する値を保持する。レジスタ４００のビット１５〜０は、ベースアドレスのビット４７〜３２に対応する。ベースアドレスの３１〜０はオール０である。  
【００２７】
テーブル４０１は、レジスタで構成され、各ＩＯノードに対応したエントリを備え、各ＩＯノードに接続するＩＯデバイスに割り当てられるＩＯ空間のレンジを指定する値を保持する。本実施形態では、ＩＯノードは８個なので、８エントリのテーブルである。
【００２８】
以下、図４を用いて、本発明の課題の具体的な解決手段を説明する。
レジスタ４００には、ＩＯ空間のマップ先のメモリ空間のベースアドレスを設定する。
テーブル４０１は、情報処理システム内のＩＯノードの個数と等しいエントリを備え、各ＩＯノードに接続するＩＯデバイスに割り当てられるＩＯ空間の、ＩＯ空間番号及びアドレスレンジを設定する。
テーブル４０１には、また、ＩＯノードに接続するＩＯデバイスに割り当てられるＩＯ空間が、メモリにマップされたＩＯ空間なのか、それともメモリにマップされたＩＯ空間ではないのかを示す識別フラグを設定する。
【００２９】
ＩＯ空間アクセス検出回路４０２は、対応するプロセッサノードから入力するフリット信号３３０（入出力データ情報）のコマンドコード及びアドレスをデコードして、ＩＯ空間へのアクセスであることを検出して出力し、ターゲットのＩＯノードのノードＩＤを検出して出力する。
ＩＯ空間アクセスフリット生成回路４０３及びセレクタ４０４は、メモリ空間にマップされたＩＯ空間へのアクセスの場合は、ＩＯノードが処理できるＩＯ空間アクセスに変換し、さらに、ターゲットのＩＯノードのノードＩＤを指定してクロスバースイッチ３２０へ出力する。
【００３０】
このようにして、本発明のノード制御装置では、複数のＩＯ空間をメモリ空間にマップする機能を設けて、マップされたＩＯ空間へのアクセスからＩＯ空間番号を認識してターゲットのＩＯノードへ出力するので、複数のＩＯ空間を扱うことが可能となり、よって、１つのプロセッサノードに対して、既成のノード制御装置と比較して多数のＩＯデバイスを接続することができる。さらに、ＩＯノードに接続するＩＯデバイスに割り当てられるＩＯ空間が、メモリにマップされたＩＯ空間なのか、既成のノード制御装置のＩＯ空間なのかの識別フラグを設けることにより、複数のＩＯ空間を扱うことのできない既成のＯＳでも動作可能とすることができる。
【００３１】
図５は、テーブル４０１のフォーマットを示すデータ構成図である。
同図において、エントリ０〜７は、ＩＯノード１２０〜１２７に対応する。ビット１５は、メモリ空間マップを示すフラグであり、‘０’で従来のＩＯ空間、‘１’でメモリ空間にマップされたＩＯ空間であることを指定する。ビット１４〜１２はＩＯ空間番号であり、メモリ空間にマップされたＩＯ空間が割り当てられる場合に、ＩＯ空間番号を指定する。ビット１１〜６は上限アドレスであり、また、ビット５〜０は下限アドレスであり、それぞれＩＯ空間アドレスのビット１５〜１０に対応してＩＯ空間内のアドレスレンジを指定する。ここで、アドレスレンジの上限のアドレス９〜０はオール１であり、アドレスレンジの下限のアドレス９〜０はオール０である。例えば、下限アドレスが０００１００（２進数）で、上限アドレスが０００１１１（２進数）の場合、アドレスレンジは１０００〜１ＦＦＦ（１６進数）になる。  
【００３２】
レジスタ４００及びテーブル４０１は、プロセッサの初期化時にシステムファームウェアまたはサービスプロセッサによって設定されるが、これらの設定に関する詳細な構成については、当業者にとってよく知られており、また本発明とは直接関係しないので説明は省略する。
ＩＯ空間アクセス検出回路４０２は、プロセッサノード１００から入力するフリット信号３３０がヘッダフリットの場合（ストローブフィールドが‘０１’（２進数）の場合）に、ヘッダフリットのコマンドコードフィールド及びアドレスフィールドと、レジスタ４００及びテーブル４０１の保持する値とを比較して、一致結果信号４１２と、ノードＩＤ信号４１３を生成する。
【００３３】
図６は、ＩＯ空間及びその記憶装置上でのＩＯ空間のマップを示すデータ構成図である。
以下、図６を参照して、ＩＯ空間のメモリ空間へのマップ方法を説明する。
１つのＩＯ空間は６４Ｋバイトであり、複数のＩＯ空間はアドレス空間の一部の領域に連続してマップされる。図６は、Ｎ＋１個のＩＯ空間を、ベースアドレス〜（ベースアドレス＋サイズ−１）の領域にマップした場合の例を示している。ここで、サイズは（Ｎ＋１）×６４Ｋバイトである。また、各ＩＯ空間はＩＯ空間番号０〜Ｎで識別される。
本実施形態では、複数のＩＯ空間をメモリ空間にマップする場合に、ＡＣＰＩ仕様で定義されるＤｅｎｓｅ Ｔｒａｎｓｌａｔｉｏｎ方式を前提としているが、Ｓｐａｒｓｅ
Ｔｒａｎｓｌａｔｉｏｎ方式に対応させることも可能である。また、テーブル４０１に識別フラグを追加することにより、前記の両方式に対応させることも可能である。
【００３４】
図７は、本発明の情報処理システムにおいて情報を転送する際の転送フォーマットの１例を示すデータ構成図である。
ここでは、論理的な情報の転送単位をパケットと定義し、また、パケットはひとつ以上のフリットから構成されるものと定義している。図７に示す各フリットは所定の固定されたビット幅を備えるが、この例では９０ビット幅としている。このフリットには、ヘッダフリットと、データフリットとの２種類が存在し、図７では各フリットの転送フォーマットを示している。
【００３５】
フリットのビット８９〜８８はストローブであり、フリットが有効であること、及びフリットの種類を示している。ストローブが‘００’（２進数）の場合は該フリットが無効であることを示し、ストローブが‘０１’（２進数）の場合はヘッダフリットであることを示し、ストローブが‘１０’（２進数）の場合はデータフリットであることを示す。但し、このコード定義はあくまで１例である。なお、パケットは、図７に示す１個のヘッダフリットと、０個、１個、２個、４個または８個のデータフリットとから構成される。よって、本実施形態のパケットは、最小のものでも１個のフリットから構成され、最大のものでは９個のフリットから構成されることになる。
【００３６】
一般に、このようなフリットには、エラーの検出や訂正の目的で、ＥＣＣやパリティが付加されるが、本発明とは直接関係しないので、ここでの説明は省略する。
ヘッダフリットのビット８７〜０には、それぞれ８ビットの５個のフィールドと、４８ビットのアドレスフィールドとが定義される。これらのフィールド定義はあくまで１例であるが、一般には、情報処理装置のリソース、プロトコル及びトポロジーに依存して決定されるものである。
図７に示すコマンドコードは、例えばメモリリード、メモリライト、ＩＯリード、ＩＯライト、リプライといった、ターゲットの装置に対する動作を指定するコードが格納されるフィールドである。
【００３７】
ソースノードＩＤは、パケットの転送元のプロセッサノードまたはＩＯノードを識別するための固有の番号が格納されるフィールドである。  
ターゲットノードＩＤは、パケットの転送先のプロセッサノードまたはＩＯノードまたはノード制御装置を識別するための固有の番号が格納されるフィールドである。
データレングスは、リードリクエストの場合に、ターゲットのデータレングスをバイト単位で指定するフィールドである。００（１６進数）〜４０（１６進数）の場合、０〜６４バイトを指定する。他の値は未定義である。
アドレスは、リクエストのターゲットとなるアドレスを格納するフィールドである。
データフリットのビット７１〜６４には、バイトイネーブルが定義され、ビット６３〜０に定義される各バイトの指定の有効または無効を指定する。
【００３８】
図８は、図７に示すヘッダフリットのアドレスフィールドの、ＩＯ空間アクセスを行う場合の詳細構成を示すデータ構成図であり、図８（ａ）はメモリ空間にマップされたＩＯ空間へアクセスする場合のアドレスフォーマット（プロセッサノード発行）を示し、図８（ｂ）は既成のＩＯ空間アクセスのアドレスフォーマット（プロセッサノード及びノード制御装置発行）を示すものである。
本発明の本来の方式であるメモリ空間にマップされたＩＯ空間へアクセスする場合のアドレスフォーマットでは、図８（ａ）において、ビット４７〜３２は、ＩＯ空間をマップするメモリ空間のベースアドレスである。また、ベースアドレスは、４Ｇバイト境界のアドレスを指定できるが、もっと細かい粒度で指定可能にすることもできる（例えば、ベースアドレスを４７〜２０にすれば、１Ｍバイト境界で指定することができる）。なお、ビット３１〜１９はオール０であり、使用しない。
【００３９】
さらに、ビット１８〜１６は、ＩＯ空間番号であり、本実施形態では０〜７のいずれかの値をとるものとする。
情報処理システム内のＩＯノードの数が多い場合には、ＩＯ空間番号の取り得る値を広げることも可能である（例えば、ＩＯ空間番号を２３〜１６にして、０〜２５５の値を取るようにすることも可能である）。ビット１５〜０は、ＩＯ空間のアドレスである。
他方、既成の方式であるＩＯ空間アクセスのアドレスフォーマットでは、図８（ｂ）において、ビット４７〜３６はオール０であり、使用されない。また、ビット１５〜０はＩＯ空間アドレスを示している。
【００４０】
図９は、図４に示すＩＯ空間アクセス検出回路４０２において一致結果信号４１２及びノードＩＤ信号４１３を生成する際の処理手順を示すフローチャート図である。
以下、図４〜８を参照しながら、図９に示すフローチャートを使用して、一致結果信号４１２及びノードＩＤ信号４１３の生成処理の手順を説明する。
この生成処理は、ＩＯ空間アクセス検出回路４０２において、システムファームウェアによって実行されるものである。
（ステップＳ１）
まず、ステップＳ１では、ＩＯ空間アクセス検出回路４０２は、プロセッサノード１００から送出されたコマンド（図示は省略）のコマンドコードフィールドを検証する。
【００４１】
（ステップＳ２）
次に、ステップＳ２では、ＩＯ空間アクセス検出回路４０２は、前記検証結果に基づき、前記コマンドコードフィールドがメモリ空間アクセス（メモリリードまたはメモリライト）を示している場合は制御の流れをステップＳ３に進め、前記コマンドコードフィールドがＩＯ空間アクセス（ＩＯリードまたはＩＯライト）を示している場合は制御の流れをステップＳ５に移す。
（ステップＳ３）
ステップＳ３では、ＩＯ空間アクセス検出回路４０２は、レジスタ４００の値がアドレス４７〜３２の値と等しいか否かを検証し、レジスタ４００の値がアドレス４７〜３２の値と等しい場合はステップＳ４に進み、レジスタ４００の値がアドレス４７〜３２の値と等しくない場合はステップＳ５に移る。
【００４２】
（ステップＳ４）
ステップＳ４では、ＩＯ空間アクセス検出回路４０２は、テーブル４０２の全エントリに関して、メモリ空間マップが１で、かつＩＯ空間番号がアドレス１８〜１６と等しく、かつ下限アドレス≦アドレス１５〜１０の値≦上限アドレス値であることをチェックし、ステップＳ６に進む。
（ステップＳ５）
ステップＳ５では、ＩＯ空間アクセス検出回路４０２は、テーブル４０２の全エントリに関して、メモリマップが０で、かつ下限アドレス≦アドレス１５〜１０の値≦上限アドレス値であることをチェックし、ステップＳ６に移る。
【００４３】
（ステップＳ６）
ステップＳ６では、ＩＯ空間アクセス検出回路４０２は、テーブル４０２にコマンドコードフィールドで指定された条件と一致するエントリが存在するか否かを検証し、テーブル４０２に前記条件と一致するエントリが存在する場合はステップＳ７に進み、テーブル４０２に前記条件と一致するエントリが存在しない場合はステップＳ８に移る。
（ステップＳ７）
ステップＳ７では、ＩＯ空間アクセス検出回路４０２は、一致結果信号４１２を‘１’にし、ノードＩＤ信号４１３を一致したエントリに対応するＩＯノードのノードＩＤにして出力し、処理を終了する。
【００４４】
（ステップＳ８）
ステップＳ８では、ＩＯ空間アクセス検出回路４０２は、一致結果信号４１２を‘０’にして出力し、処理を終了する。
【００４５】
なお、ＩＯ空間アクセスフリット生成回路４０３は、プロセッサノード１００から入力するフリット信号３３０がヘッダフリットの場合に、アドレスフィールドのビット４７〜１６をオール０に差し替え、ターゲットノードＩＤをＩＯ空間アクセス検出回路４０２から入力するノードＩＤ信号４１３に差し替え、コマンドコードがメモリリードのコードならばＩＯリードのコードに差し替え、メモリライトのコードならばＩＯライトのコードに差し替えて、ヘッダフリット信号４１４として出力する。
セレクタ４０４は、一致結果信号４１２が‘０’ならばフリット信号３３０を選択し、一致結果信号４１２が‘１’ならばヘッダフリット信号４１４を選択して、フリット信号３４０をクロスバースイッチ３２０へ出力する。
【実施例】
【００４６】
以下、本実施形態に係る情報処理システムの１実施例としての動作を説明する。
最初に、第１の実施例として、ノード制御装置１３０のポート入力部３００が、複数のＩＯ空間をメモリ空間にマップして使用する場合の動作について説明する。  
まず、本実施形態に係る情報処理システムの初期化時の設定について説明する。
ＩＯ空間アクセス検出回路４０２のシステムファームウェアは、ＩＯノード１２０〜１２７に関して、ＩＯ空間番号とＩＯ空間内のアドレスレンジを割当てる。例えば、ＩＯノード１２０〜１２７にＩＯ空間番号０〜７を割り当てる。また、ＩＯノード１２０には００００〜７ＦＦＦ（１６進数）のレンジを割り当て、ＩＯノード１２１〜１２７には８０００〜ＦＦＦＦ（１６進数）のレンジを割り当てる。
【００４７】
次に、前記システムファームウェアは、ＩＯ空間をマップするメモリ空間のベースアドレスを決定し、ノード制御装置１３０〜１３３のレジスタ４００にセットする（ポート入力部３０１〜３０３にも同様にセットする）。例えば、ベースアドレスを１Ｃ００００００００００（１６進数）とすると、レジスタ４００には１Ｃ００（１６進数）をセットする。
さらに、前記システムファームウェアは、ノード制御装置１３０〜１３３のテーブル４０１に値をセットする（ポート入力部３０１〜３０３にも同様にセットする）。
【００４８】
テーブル４０１のエントリ０の設定値は、メモリ空間マップが１、ＩＯ空間番号が０００（２進数）、上限アドレスが０１１１１１（２進数）、下限アドレスが００００００（２進数）である。また、エントリ１の設定値は、メモリ空間マップが１、ＩＯ空間番号が００１（２進数）、上限アドレスが１１１１１１（２進数）、下限アドレスが１０００００（２進数）である。エントリ２〜７の設定値はＩＯ空間番号を除きエントリ１と同じであり、ＩＯ空間番号は、それぞれ０１０〜１１１（２進数）である。これらの設定は、前記システムファームウェアの代わりにサービスプロセッサが行っても良い。
引き続き、プロセッサノード１００から、ＩＯノード１２４配下のＩＯデバイスに対して、ＩＯ空間アドレス８０００（１６進数）で、ＩＯリードを行う場合について説明する。
【００４９】
プロセッサノード１００は、図７に示すヘッダフリットのフォーマットに関して、ストローブを０１（２進数）とし、コマンドコードをメモリリードのコードとし、ソースノードＩＤをプロセッサノード１００のノードＩＤとし、ターゲットノードＩＤをノード制御装置１３０のノードＩＤとし、データレングスをアクセス対象のデータ長に対応する値にして、フリット信号３３０を発行する。
ここで、トランザクションＩＤは、プロセッサノード１００についてユニークな番号とする。また、図７のアドレスは、図８のアドレスフォーマットを参照して説明すると、ビット４７〜３２はベースアドレスの１Ｃ００（１６進数）、ビット３１〜１９はオール０、ビット１８〜１６はＩＯノード１２４に割り当てられるＩＯ空間番号の１００（２進数）、ビット１５〜０は８０００（１６進数）とする。つまり、プロセッサノード１００からは、アドレス１Ｃ０００００４８０００（１６進数）に対するメモリリードが発行される。
【００５０】
さらに、複数のＩＯ空間をメモリ空間にマップして使用する場合のＩＯ空間アクセス検出回路４０２の動作について、図９に示すフローチャート図を参照して説明する。
プロセッサ１００からフリット信号３３０が入力すると、ＩＯ空間アクセス検出回路４０２は、入力したフリットのストローブフィールドが０１（２進数）でヘッダフリットであるので、ヘッダフリットのコマンドコードフィールド及びアドレスフィールドと、レジスタ４００及びテーブル４０１の値との比較を行う。
ステップＳ１で、コマンドコードフィールドのチェックを行い、ステップＳ２で、メモリリードのコマンドコードであるため、メモリ空間アクセスであることを検出する。よって、ステップＳ３に進んで、レジスタ４００とアドレス４７〜３２を比較し、両方の値が１Ｃ００（１６進数）で等しいことを検出し、ステップＳ４に進む。
【００５１】
ステップＳ４では、テーブル４０２のエントリ４に関して、メモリ空間マップが１で、かつＩＯ空間番号が１００（２進数）で、かつアドレス１５〜３０（１０００００（２進数））が下限アドレスから上限アドレスの範囲（１０００００〜１１１１１１（２進数））に含まれていることを検出する。よって、ステップＳ６では、エントリ４が条件と一致するエントリなのでステップ７に進み、ステップ７で、一致結果信号４１２を１にして出力し、ノードＩＤ信号４１３を、テーブル４０１のエントリ４に対応するＩＯノード２１４のノードＩＤにして出力して処理を終了する。
【００５２】
ＩＯ空間アクセスフリット生成回路４０３は、プロセッサノード１００から入力するフリット信号３３０がヘッダフリットであるので、アドレスフィールドのビット４７〜３２をオール０に差し替え、ターゲットノードＩＤをＩＯ空間アクセス検出回路４０２から入力するノードＩＤ信号４１３に差し替え、コマンドコードがメモリリードのコードなのでＩＯリードのコードに差し替えて、ヘッダフリット信号４１４として出力する。  
セレクタ４０４は、一致結果信号４１２が１なので、ヘッダフリット信号４１４を選択して、フリット信号３４０をクロスバースイッチ３２０へ出力する。
【００５３】
クロスバースイッチ３２０は、ターゲットノードＩＤに従って、フリットをポート出力部３１７へ出力する。なお、クロスバースイッチ３２０がターゲットノードＩＤに従って、出力先のポート出力部を決定する方法は、本発明とは直接関係しないので、その説明は省略する。
ポート出力部３１７から出力されたフリットは、ノード制御装置１３２を経由して、ＩＯノード１２４へ出力され、ＩＯノード１２４内に存在するターゲットのＩＯデバイスへ出力される。その後、ターゲットのＩＯデバイスからは、リプライデータがノード制御装置１３２及びノード制御装置１３０を経由して、プロセッサノード１００に返却される。
【００５４】
次に、第２の実施例として、１つのＩＯ空間を使用する場合の動作について説明する。
まず、プロセッサの初期化時に実施する設定について説明する。
システムファームウェアは、ＩＯノード１２０〜１２７に関して、ＩＯ空間内のアドレスレンジを割当てる。例えば、
ＩＯノード１２０には００００〜１ＦＦＦ（１６進数）、
ＩＯノード１２１には２０００〜３ＦＦＦ（１６進数）、
ＩＯノード１２２には４０００〜５ＦＦＦ（１６進数）、
ＩＯノード１２３には６０００〜７ＦＦＦ（１６進数）、
ＩＯノード１２４には８０００〜９ＦＦＦ（１６進数）、
ＩＯノード１２５にはＡ０００〜ＢＦＦＦ（１６進数）、
ＩＯノード１２６にはＣ０００〜ＤＦＦＦ（１６進数）、
ＩＯノード１２７にはＥ０００〜ＦＦＦＦ（１６進数）、
といったアドレスレンジを割り当てる。
【００５５】
次に、システムファームウェアは、ノード制御装置１３０〜１３３のテーブル４０１に値をセットする（ポート入力部３０１〜３０３にも同様にセットする）。
テーブル４０１の全エントリに関して、メモリ空間マップは０、ＩＯ空間番号は０００（２進数）である。
テーブル４０１の上限アドレス及び下限アドレスの設定値は、
エントリ０が０００１１１及び００００００（２進数）、
エントリ１が００１１１１及び００１０００（２進数）、
エントリ２が０１０１１１及び０１００００（２進数）、
エントリ３が０１１１１１及び０１１０００（２進数）、
エントリ４が１００１１１及び１０００００（２進数）、
エントリ５が１０１１１１及び１０１０００（２進数）、
エントリ６が１１０１１１及び１１００００（２進数）、
エントリ７が１１１１１１及び１１１０００（２進数）、
である。
なお、これらの設定は、システムファームウェアの代わりにサービスプロセッサが行っても良い。
【００５６】
次に、プロセッサノード１００から、ＩＯノード１２４配下のＩＯデバイスに対して、ＩＯ空間アドレス８０００（１６進数）で、ＩＯリードを行う場合について説明する。
プロセッサノード１００は、図７のヘッダフリットのフォーマットに関して、ストローブを０１（２進数）とし、コマンドコードをＩＯリードのコードとし、ソースノードＩＤをプロセッサノード１００のノードＩＤとし、ターゲットノードＩＤをノード制御装置１３０のノードＩＤとし、データレングスをアクセス対象のデータ長に対応する値にして、フリット信号３３０を発行する。ここで、トランザクションＩＤは、プロセッサノード１００についてユニークな番号とする。また、図７のアドレスは、図８のアドレスフォーマットを参照して説明すると、ビット４７〜１６はオール０、ビット１５〜０は８０００（１６進数）とする。つまり、プロセッサノード１００からは、アドレス００００００００８０００（１６進数）に対するＩＯリードが発行される。
【００５７】
さらに、ＩＯ空間アクセス検出回路４０２の動作について、図９に示すフローチャート図を参照して説明する。
プロセッサ１００からフリット信号３３０が入力されると、ＩＯ空間アクセス検出回路４０２は、入力したフリットのストローブフィールドが０１（２進数）でヘッダフリットであるので、ヘッダフリットのコマンドコードフィールド及びアドレスフィールドと、レジスタ４００及びテーブル４０１の値との比較を行う。
ステップＳ１で、コマンドコードフィールドのチェックを行い、ステップ２では、ＩＯリードのコマンドコードであるため、ＩＯ空間アクセスであることを検出し、ステップＳ５に移る。
【００５８】
ステップＳ５では、テーブル４０１のエントリ４に関して、メモリ空間マップが０で、かつアドレス１５〜１０（１０００００（２進数））が下限アドレスから上限アドレスの範囲（１０００００〜１００１１１（２進数））に含まれていることを検出する。よって、上限に一致するエントリが有るので、ステップＳ７に進み、ステップ７で、一致結果信号４１２を‘１’にして出力し、ノードＩＤ信号４１３を、テーブル４０１のエントリ４に対応するＩＯノード２１４のノードＩＤにして出力し、処理を終了する。
この場合、ＩＯ空間アクセスフリット生成回路４０３は、プロセッサノード１００から入力するフリット信号３３０がヘッダフリットであるので、アドレスフィールドのビット４７〜３２をオール０に差し替え、ターゲットノードＩＤをＩＯ空間アクセス検出回路４０２から入力するノードＩＤ信号４１３に差し替え、ヘッダフリット信号４１４として出力する。アドレスフィールドのビット４７〜３２の差し替えは、差し替え前及び差し替え後ともオール０なので、実施しないのと同等である。
【００５９】
セレクタ４０５は、一致結果信号４１２が‘１’なので、ヘッダフリット信号４１４を選択して、フリット信号３４０をクロスバースイッチ３２０へ出力する。
クロスバースイッチ３２０は、ターゲットノードＩＤに従って、フリットをポート出力部３１７へ出力する。なお、クロスバースイッチ３２０がターゲットノードＩＤに従って、出力先のポート出力部を決定する方法は、本発明とは直接関係しないので、その説明は省略する。
ポート出力部３１７から出力されたフリットは、ノード制御装置１３２を経由して、ＩＯノード１２４へ出力され、ＩＯノード１２４内に存在するターゲットのＩＯデバイスへ出力される。その後、ターゲットのＩＯデバイスからは、リプライデータがノード制御装置１３２及びノード制御装置１３０を経由して、プロセッサノード１００に返却される。
次に、第３の実施例として、情報処理システム全体を２つのパーティションに区切り、その一方では１つのＩＯ空間のみを使用し、他方では複数のＩＯ空間をメモリ空間にマップして使用する場合について説明する。
【００６０】
図１０は、２つのパーティションに区切った情報処理システムの１構成例を示す構成図である。
この実施例では、図１０に示すように、図１に示す情報処理システムの構成を、パーティション５００とパーティション５０１とに区切る構成とし、各々独立のＯＳで制御される場合の１実施例としての構成を示す。
この実施例では、パーティション５００で、１つのＩＯ空間のみを使用し、パーティション５０１では、複数のＩＯ空間をメモリ空間にマップして使用するものとする。
各プロセッサノードの初期化時に実施する設定については、パーティション毎に行われる。ここで、ノード制御装置１３０及びノード制御装置１３１は２つのパーティション（５００、５０１）に含まれるが、各ポート入力部３００〜３０３には、接続するプロセッサノードが含まれるパーティションの設定のみが行われる。
【００６１】
パーティション５００に関しては、プロセッサノード１００、１０１、１０４、１０５が含まれるので、ノード制御装置（１３０，１３１）のポート入力部（３００，３０１）においては、テーブル４０１が設定される。
また、パーティション５００には、ＩＯノード（１２０，１２２）が含まれるので、テーブル４０１のエントリ０及びエントリ２のみに有効なレンジが設定される。ここで、パーティション５００に存在しないＩＯノードに対応するエントリ（１、３〜７) には無効なレンジが設定される。このような無効なレンジの設定の１例としては、上限アドレスを００００００（２進数）に設定し、下限アドレスを１１１１１１（２進数）に設定する方法が可能である。
【００６２】
他方、パーティション５０１に関しては、プロセッサノード（１０２、１０３、１０６、１０７、１０８〜１１５）が含まれるので、ノード制御装置（１３０，１３１）のポート入力部（３０２，３０３）と、ノード制御装置（１３２，１３３）のポート入力部３００〜３０３において、レジスタ４００及びテーブル４０１が設定される。
パーティション５０１には、ＩＯノード１２１、１２３〜１２７が含まれるので、テーブル４０１のエントリ１及びエントリ３〜７のみに有効なレンジが設定される。ここで、パーティション５０１に存在しないＩＯノードに対応するエントリ（０、２) には無効なレンジが設定される。この設定以降の動作は、先の説明と同様になるので、省略する。
【００６３】
以上説明したように、本実施形態に係るノード制御装置及び情報処理システムでは、複数のＩＯ空間をメモリ空間にマップする機能を設けて、マップされたＩＯ空間へのアクセスからＩＯ空間番号を認識してターゲットのＩＯノードへ出力しているので、複数のＩＯ空間を扱うことが可能となり、よって、１つのプロセッサノードに多数のＩＯデバイスを接続して使用することができる効果が有る。
また、各ＩＯノードに接続するＩＯデバイスに割り当てられるＩＯ空間が、メモリにマップされたＩＯ空間なのか、それとも１つのＩＯ空間なのかを判別するための識別フラグを設けたことにより、複数のＩＯ空間を扱うことのできない既成のＯＳを使用しても動作可能とすることができる効果が得られる。
【００６４】
さらに、前記ノード制御装置の入力ポート毎に処理回路を設け、個別に設定可能にすることにより、本発明に係る情報処理システムをパーティションに区切って使用すれば、複数のＩＯ空間をサポートしているＯＳと、１つのＩＯ空間しかサポートしていないＯＳとを組み合わせて使用することができる効果が得られる。
【００６５】
なお、本発明に係るノード制御装置の各構成要素の処理の少なくとも一部をコンピュータ制御により実行するものとし、かつ、上記処理を、図９のフローチャートで示した手順によりコンピュータに実行せしめるプログラムは、半導体メモリを始め、ＣＤ−ＲＯＭや磁気テープなどのコンピュータ読み取り可能な記録媒体に格納して配付してもよい。そして、少なくともマイクロコンピュータ、パーソナルコンピュータ、汎用コンピュータを範疇に含むコンピュータが、上記の記録媒体から上記プログラムを読み出して、実行するものとしてもよい。
【産業上の利用可能性】
【００６６】
本発明は、ノード制御装置及び情報処理システムの構築に適用可能であり、特に、１つのプロセッサノードで制御する入出力装置の台数が多数となり、これらの入出力装置を使用するために必要な記憶領域も大規模となる場合にも対応できるノード制御装置の構築と、該ノード制御装置を含む情報処理システムの構築に好適である。
【符号の説明】
【００６７】
１００〜１１５  プロセッサノード
１２０〜１２７  ＩＯノード
１３０〜１３３  ノード制御装置
２００  ＩＯ制御装置
２１０〜２１３  ＩＯデバイス
３００〜３０８  ポート入力部
３１０〜３１８  ポート出力部
３２０  クロスバースイッチ
４００  レジスタ
４０１  テーブル（各ＩＯノードの属性情報）
【図１】
2011070296.tif 000003
【図２】
2011070296.tif 000004
【図３】
2011070296.tif 000005
【図４】
2011070296.tif 000006
【図５】
2011070296.tif 000007
【図６】
2011070296.tif 000008
【図７】
2011070296.tif 000009
【図８】
2011070296.tif 000010
【図９】
2011070296.tif 000011
【図１０】
2011070296.tif 000012