(57)【特許請求の範囲】
【請求項１】
オペレータからの命令によって可変的に構成可能なハードウエア・ドメイン群を有するマルチプロセッサ・コンピュータであって、
一連のトランザクションを実行する複数の別個のシステム・ユニットであって、各システム・ユニットは前記コンピュータ内で個別に物理的に除去および交換可能であり、その各々が、
所定のグローバル範囲内においてアドレスを発生するプロセッサ・ユニット、
前記所定のグローバル範囲内の１組のアドレスにおいてデータを格納するメモリ・ユニット、及び
前記所定のグローバル範囲内の１組のアドレスを発生および／または受信する入出力アダプタ、
の少なくと１つを含む前記システム・ユニットと、
前記システム・ユニットに結合され、前記システム・ユニットのいずれかにおいて発生されたアドレスを、前記システム・ユニットの他のユニットに転送するグローバル・アドレス・ルータと、
前記システム・ユニットのいずれかからのデータを、前記システム・ユニットの他のユニットに転送するグローバル・データ・ルータと、
前記システム・ユニットのいずれかから前記システム・ユニットの他のものに複数の制御信号を通信し、前記いずれかのシステム・ユニットにおいて発生した状態に応答して、前記システム・ユニットの全ての動作に影響を与える制御信号分配器と、
前記コンピュータを複数のソフトウエア構成可能ハードウエア・ドメインに電子的に分割し、各々が、前記コンピュータ内の前記システム・ユニットのあらゆる物理的再接続から独立した、前記システム・ユニットの任意のサブセットから成るドメイン・コンフィギュレータと、
前記命令に応答して、前記ドメイン・コンフィギュレータに、前記システム・ユニットのどれが前記ハードウエア・ドメインの各々に属するのかを指定するコンピュータ・コントローラと、
前記システム・ユニットの全てに結合され、前記システム・ユニットの内前記ドメインの１つの中のものにおいて発した前記制御信号の少なくともいくつかが、前記システム・ユニットの内前記１つのドメイン外のあるものに影響を与えるのを電子的に禁止するドメイン・フィルタと、
を備えたマルチプロセッサ・コンピュータ。
【請求項２】
請求項１記載のコンピュータにおいて、前記ドメイン・フィルタは、前記グローバル・ルータの少なくとも１つに結合され、前記システム・ユニットの内前記ドメインの１つの中のものにおいて発生した、前記１つのグローバル・ルータ上のトランザクションが、前記システム・ユニットの内前記１つのドメイン外のあるものにおいて受け取られるをの禁止するコンピュータ。
【請求項３】
請求項２記載のコンピュータにおいて、前記１つのグローバル・ルータは前記グローバル・アドレス・ルータであるコンピュータ。
【請求項４】
請求項３記載のコンピュータにおいて、前記グローバル・アドレス・ルータは、前記システム・ユニットの全てに結合され、前記システム・ユニットの異なるサブセット間で同時に複数のトランザクションを搬送する複数の経路を有するコンピュータ。
【請求項５】
請求項２記載のコンピュータにおいて、前記１つのグローバル・ルータは前記グローバル・データ・ルータであるコンピュータ。
【請求項６】
請求項５記載のコンピュータにおいて、前記グローバル・データ・ルータは、前記システム・ユニットの全てに結合され、前記システム・ユニットの異なるサブセット間で同時に複数のトランザクションに関連するデータを搬送する複数の経路を有するコンピュータ。
【請求項７】
請求項２記載のコンピュータにおいて、前記ドメイン・フィルタは、前記グローバル・アドレス・ルータおよび前記グローバル・データ・ルータ双方に結合され、前記システム・ユニットの内前記ドメインの１つの中のものにおいて発生したアドレスおよびデータ双方が、前記システム・ユニットの内前記１つのドメイン外のあるものにおいて受け取られるのを禁止するコンピュータ。
【請求項８】
請求項１記載のコンピュータであって、
前記ドメイン・コンフィギュレータは、更に、複数の前記ハードウエア・ドメインを結合し、前記コンピュータ内の前記システム・ユニットのいずれの物理的再接続から独立した前記ドメインの任意のサブセットから成るドメイン・クラスタを形成し、
前記コンピュータ・コントローラは、前記コマンドの別のものに応答し、前記ドメイン・コンフィギュレータに、前記システム・ユニットのどれが前記ドメイン・クラスタに属するのかを指定し、
前記ドメイン・フィルタは、前記システム・ユニットの内前記１つのドメインの中のものにおいて発生した前記少なくともいくつかの制御信号が、前記システム・ユニットの内前記１つのドメイン外であるが前記ドメイン・クラスタの中にあるものに影響を与えることを可能にする、
コンピュータ。
【請求項９】
請求項８記載のコンピュータにおいて、前記ドメイン・クラスタ内の前記ドメインの１つは、前記ドメイン・クラスタ内の異なるドメインによって、同一の所定の共有アドレス範囲内においてアクセス可能な物理メモリを含むコンピュータ。
【請求項１０】
請求項１記載のコンピュータにおいて、前記ドメイン・フィルタは、
前記システム・ユニットのどれが、前記アドレス・ルータ内で現アドレスを発生したかを識別する接続部と、
前記システム・ユニットのどれが、前記ドメインのどれに属するのかを指定する、前記システム・ユニットの各々に対する少なくとも１つのドメイン・マスク・レジスタと、
前記ソース識別接続部と、前記ドメイン・マスク・レジスタとに応答し、前記システム・ユニットが前記現アドレスを発生したのと同じドメイン内にない前記システム・ユニットの全てから、前記システム・ユニットを切断するゲート・ロジックと、
を含むコンピュータ。
【請求項１１】
請求項１０記載のコンピュータにおいて、前記ドメイン・フィルタは、
各々、前記システム・ユニットのどれがドメイン・クラスタに属するのかを識別し、前記トランザクションの現行のものに応答する複数のクラスタ・レジスタと、
前記ドメイン・クラスタに属する前記システム・ユニットの１つから発した前記トランザクションのいずれについても、前記共通クラスタ内の前記システム・ユニット群の各々に有効トランザクション信号を送信する接続部と、
を含むコンピュータ。
【請求項１２】
請求項１１記載のコンピュータにおいて、前記ドメイン・フィルタは、前記ドメイン・クラスタ内の異なるシステム・ユニット間の共有アドレス範囲を示す、共有アドレス・レジスタを含むコンピュータ。
【請求項１３】
複数のシステム・ユニットと、グローバル・アドレス・ルータと、グローバル・データ・ルータと、制御信号分配器と、ドメイン・コンフィギュレータと、制御およびサービス・ユニットと、ドメイン・フィルタとを有するコンピュータを、プログラム可能な制御の下で複数の独立したハードウエア・ドメインに区分する方法であって、
（ａ）前記制御およびサービス・ユニットが構成モードを開始するステップと、
（ｂ）前記制御およびサービス・ユニットが前記ハードウエア・ドメインの１つに含ませる前記システム・ユニットのサブセットを定義する指定データを受け取るステップと、
（ｃ）前記ドメイン・コンフィギュレータが前記指定データをドメイン・フィルタにロードし、前記システム・ユニットの内前記１つのドメインの中のものに前記分配器内のある制御信号に応答させると共に、前記システム・ユニットの他のものには前記分配器には無応答とさせるステップと、
（ｄ）前記制御およびサービス・ユニットおよび前記ドメイン・コンフィギュレータが、前記システム・ユニットの異なるサブセットを定義する別の指定データのために、ステップ（ｂ）および（ｃ）を繰り返すステップと、
を含む方法。
【請求項１４】
請求項１３記載の方法において、前記ステップ（ｃ）は、前記ドメイン・フィルタにロードする前記指定データにも応答し、前記システム・ユニットの内前記１つのドメインの中のものに、前記システム・ユニットの内前記１つのドメインの中のものから発した前記グローバル・アドレス・ルータ上のアドレスに応答させると共に、前記第１ドメイン内の前記システム・ユニットに、前記システム・ユニットの内前記第１ドメイン内にはないものの少なくともいくつかから発した、前記グローバル・アドレス・ルータ上のアドレスには無応答とさせる方法。
【請求項１５】
請求項１４記載の方法であって、更に、
（ｆ）前記制御およびサービス・ユニットが前記ドメインの複数のドメインのクラスタを定義する第２指定データを受け取るステップと、
（ｇ）前記ドメイン・コンフィギュレータが前記第２データを前記ドメイン・フィルタにロードし、前記システム・ユニットの内前記ドメインのクラスタの中のものに、前記システム・ユニットの内前記ドメインのクラスタの中のものから発した前記グローバル・アドレス・ルータ上のアドレスに応答させるようにするステップと、
を含む方法。
【請求項１６】
請求項１５記載の方法であって、更に、
（ｈ）前記制御およびサービス・ユニットが前記ドメインの１つの中に物理的に存在し、前記ドメインのクラスタ内の他のドメインにアクセス可能な、アドレスの共有範囲を定義する第３指定データを受け取るステップと、
（ｉ）前記ドメイン・コンフィギュレータが前記第３データを前記ドメイン・フィルタにロードし、前記システム・ユニットの内前記ドメインのクラスタの中のものに、前記システム・ユニットの内前記ドメインのクラスタの中であるが前記共有範囲以内に限ったものから発した前記グローバル・アドレス・ルータ上のアドレスに応答させるようにするステップと、
を含む方法。
【請求項１７】
請求項１６記載の方法において、前記共有範囲は、前記ドメイン・クラスタ内のシステム・ユニットの少なくとも１つに物理的に存在するメモリの全アドレス範囲よりも小さい方法。
【請求項１８】
請求項１３記載の方法であって、ステップ（ｄ）の後に実行する、
（ｊ）前記第１ドメイン内の前記システム・ユニットの１つからのトランザクションを、前記グローバル・アドレス・ルータを介して、前記第１ドメイン内部および外部の双方の、前記システム・ユニットの全てに同報通信するステップと、
（ｋ）前記ドメイン・フィルタが前記システム・ユニットの各々において前記トランザクションをフィルタすることにより、前記システム・ユニットの内前記第１ドメインにあるものには、前記トランザクションへの応答をイネーブルし、前記システム・ユニットの内前記第１ドメインの外にある他のものには、前記トランザクションへの応答をディセーブルするステップと、
を含む方法。
【請求項１９】
請求項１８記載の方法において、ステップ（ｊ）および（ｋ）はステップ（ｅ）の後に実行する方法。
【請求項２０】
請求項１８記載の方法において、ステップ（ｋ）は、前記第１ドメイン外の前記システム・ユニットの全てはディセーブルしない方法。
【請求項２１】
請求項１８記載の方法において、前記ドメインの異なるドメインにある複数の前記システム・ユニットは、物理的に、各範囲内のアドレスを有するメモリを含み、前記各範囲の前記アドレスは少なくとも部分的に重複する方法。
【請求項２２】
グローバル・アドレス・ルータと、グローバル・データ・ルータと、制御信号分配器とを有するマルチプロセッサ・コンピュータ用システム・ユニットであって、前記制御信号分配器は前記システム・ユニットの複数の他のものを相互接続し、前記コンピュータはコンピュータ・コントローラも有し、前記システム・ユニットは、
前記グローバル・ルータの双方に結合され、所定のグローバル範囲内のアドレスを発生する、少なくとも１つのプロセッサ・ユニットを受け付ける手段と、
前記グローバル・ルータに結合され、前記所定のグローバル範囲内の１組のアドレスにおけるデータを格納する、少なくとも１つのメモリ・ユニットを受け付ける手段と、
前記グローバル・ルータに結合され、前記所定のグローバル範囲内の１組のアドレスを発生および／または受信する少なくとも１つの入出力アダプタを受け付ける手段と、
前述した手段の少なくとも１つに結合され、前記分配器に制御信号を発生する手段であって、前記制御信号は前記システム・ユニット内におけるエラー状態を表し、更に、前記他のシステム・ユニット内におけるエラー状態を表す制御信号を受け取る手段と、
前記制御信号をフィルタし、前記他のユニットの内選択可能なものからの制御信号のみが、前記システム・ユニットの動作に影響を与え得るようにする手段と、
前記コンピュータ・コントローラに接続可能であり、前記他のユニットから前記のものを選択する手段と、
を備えたシステム・ユニット。
【請求項２３】
請求項２２記載のシステム・ユニットにおいて、前記フィルタ手段は、
前記他のユニットの内前記選択可能なものを指定するデータを保持するドメイン・マスク・レジスタと、
前記選択可能なものからある信号を通過させ、前記システム・ユニットの他のものからの前記ある信号を遮断するゲート手段と、
を含むシステム・ユニット。
【請求項２４】
請求項２３記載のシステム・ユニットにおいて、更に、可変データを前記ドメイン・マスク・レジスタにロードする手段を備えているシステム・ユニット。
【請求項２５】
請求項２２記載のシステム・ユニットにおいて、前記フィルタ手段は、前記コンピュータ内の前記システム・ユニットのいずれかに物理的に実装されているメモリを指定するデータを、前記システム・ユニットにアクセス可能として、前記グローバル範囲の一部に保持する共有メモリ・レジスタを含むシステム・ユニット。
【請求項２６】
請求項２５記載のシステム・ユニットであって、更に、可変データを前記共有メモリ・レジスタにロードする手段を備えているシステム・ユニット。
【請求項２７】
請求項２５記載のシステム・ユニットにおいて、前記フィルタ手段は、前記いずれかのシステム・ユニット上に物理的に実装されている前記メモリの一部のみから成るアドレス範囲を指定するデータを保持する、少なくとも１つの別の共有メモリ・レジスタを含むシステム・ユニット。
【請求項２８】
マルチプロセッサ・コンピュータ用の複数のシステム・ユニットの中の一システム・ユニットであって、前記マルチプロセッサ・コンピュータは、
前記システム・ユニットのいずれかにおいて発したアドレスを、前記システム・ユニットの他の全てに転送するグローバル・アドレス・ルータであって、前記アドレスの各アドレスが、前記複数のシステム・ユニットのどれが前記各アドレスを発したかを示すソース識別子を有する、グローバル・アドレス・ルータと、
前記システム・ユニットのいずれかから、前記システム・ユニットの他の全てにデータを転送するグローバル・データ・ルータと、
前記システム・ユニットのいずれかからの複数の制御信号を前記システム・ユニットの他の全てに伝達し、前記いずれかのシステム・ユニットにおいて発生した状態に応答して、前記システム・ユニットの全ての動作に影響を与える、制御信号分配器と、
前記コンピュータを複数のソフトウエア構成可能なハードウエア・ドメインに電子的に分割し、各々が、前記コンピュータ内の前記システム・ユニットのいずれの物理的再接続から独立した、前記システム・ユニットの任意のサブセットから構成されるドメイン・コンフィギュレータと、
前記コマンドに応答し、前記システム・ユニットの内どれが前記ハードウエア・ドメインの各々に属するのかを、前記ドメイン・コンフィギュレータに指定するコンピュータ・コントローラと、
前記システム・ユニットの全てに結合され、前記システム・ユニットの内前記ドメインの１つの中にあるものにおいて発した前記制御信号の少なくともいくつかが、前記１つのドメイン外の前記システム・ユニットのあるものに影響を与えるのを電子的に禁止するドメイン・フィルタと、
を備え、
前記一システム・ユニットは、
前記グローバル・アドレス・ルータに接続された少なくとも１つのサブシステムであって、前記サブシステムと前記システム・ユニットの他のいずれかとの間で前記アドレスを結合すると共に、前記グローバル・データ・ルータに接続され、前記サブシステムと前記システム・ユニットの他のいずれかとの間でトランザクション・データを転送するサブシステムであって、
トランザクションを実行するプロセッサ・サブシステム、
前記グローバル範囲内にデータを格納するメモリ・サブシステム、
入出力アダプタと通信する入出力サブシステム、
から成るグループから選択される前記サブシステムと、
前記分配器に結合された、前記制御信号の少なくとも１つの発生器と、
前記制御信号の少なくとも１つの受信部と、
前記コンピュータ・コントローラから、前記複数のシステム・ユニットの内どれが前記１つのシステム・ユニットと同じドメインに属するのかを表す値を受け取るドメイン書き込み可能マスク・レジスタと、
前記ドメイン・マスク・レジスタに結合され、前記ソース識別子が、前記各アドレスが前記同じドメイン内から発したのではないことを示す場合、禁止信号を生成し、該禁止信号を前記少なくとも１つのサブシステムに結合し、前記各アドレスに対してそれを無応答にさせる比較器と、
を備えたシステム・ユニット。
【請求項２９】
請求項２８記載のシステム・ユニットにおいて、前記ドメイン・コンフィギュレータは、更に、複数の前記ハードウエア・ドメインを結合し、前記コンピュータ内の前記システム・ユニットのあらゆる物理的再接続と独立した、前記ドメインの任意のサブセットから成るドメイン・クラスタを形成し、
前記複数のシステム・ユニットの内どれが、前記１つのシステム・ユニットと同じドメイン・クラスタに属するのかを示す、少なくとも１つの書き込み可能共有メモリ・マスク・レジスタを含み、
前記比較器は、更に、前記ドメイン・マスク・レジスタに結合され、前記各アドレスが、前記同じドメイン・クラスタ外の前記システム・ユニットのあるものにおいて発せられたものであることを、前記ソース識別子が示す場合、前記禁止信号を生成する、
システム・ユニット。
【請求項３０】
請求項２８記載のシステム・ユニットにおいて、前記少なくとも１つのサブシステムは、前記グローバル・アドレス範囲の一部内にデータを格納する、前記メモリ・サブシステムを含み、前記システム・ユニットは更に、
前記コンピュータ・コントローラから、前記グローバル範囲の前記一部以内にメモリ・アドレスの共有範囲を定義する値を受け取る少なくとも１つの共有メモリ・アドレス・レジスタを備えており、
前記比較器は、更に、前記共有メモリ・アドレス・レジスタにも応答し、前記各アドレスが前記共有範囲外にある場合、前記メモリ・サブシステムを禁止する、
システム・ユニット。
【請求項３１】
請求項２８記載のシステム・ユニットにおいて、前記制御信号の前記少なくとも１つの発生器は、前記グローバル・アドレス・ルータに対するアクセスを要求し受け取る、ローカル・アドレス・アービタの一部を形成するシステム・ユニット。
【請求項３２】
請求項３１記載のシステム・ユニットにおいて、前記制御信号の前記少なくとも１つの受信部は、更に、前記ローカル・アドレス・アービタの一部を形成するシステム・ユニット。
【請求項３３】
請求項２８記載のシステム・ユニットにおいて、前記一システム・ユニットは、前記サブシステムの内少なくとも２つの異なるものを含むシステム・ユニット。
【請求項３４】
請求項３３記載のシステム・ユニットにおいて、前記一システム・ユニットは３種類の前記サブシステムの全てを含むシステム・ユニット。
【請求項３５】
請求項２８記載のシステム・ユニットにおいて、前記プロセッサ・サブシステムは、複数の別個のマイクロプロセッサを含むシステム・ユニット。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子コンピュータに関し、更に特定すれば、多数のプロセッサを可変集合即ちドメイン群に動的に分離可能とし、処理上の独立性を得ると共に、ハードウエアのエラーにも拘わらず動作し続けることを可能にするマルチプロセッサ・アーキテクチャに関するものである。
【０００２】
【従来の技術】
多数の単純な端末を駆動する集中型メインフレーム・コンピュータの多くは、パーソナル・コンピュータのネットワークによって置き換えられている。これらのネットワークの殆どは、１台以上のサーバ・コンピュータを組み込んでおり、そのサーバ・コンピュータは個々のユーザのためにデータやプログラムを格納している。実際に、サーバは、メインフレームの属性の多くを引き継いだ、高性能スーパーサーバ(superserver)に発展しつつある。しかしながら、スーパーサーバは、ネットワーク型システムにおいては機能が異なっており、したがってスーパーサーバのアーキテクチャは、メインフレームまたはパーソナル・コンピュータのアーキテクチャとは異なるものでなければならない。
【０００３】
【発明が解決しようとする課題】
スーパーサーバが他のアーキテクチャとは領域を異にするのは、それらが１つ以上のオペレーティング・システム−または１種類のオペレーティング・システムの１つ以上のバージョンを、異なるジョブのためまたは異なるユーザのために同時に実行可能でなければならないからである。
【０００４】
また、スーパーサーバは、可用性および信頼性が非常に高くなければならない。これらは、ハードウエア・エラーおよびソフトウエア・エラーに対する高い耐性を有していなければならず、コンピュータが実行している間はサービスを提供可能であることが望ましい。パーソナル・コンピュータの単一（または密接に結合された多数の）プロセッサ・アーキテクチャとは異なり、更にスーパーコンピュータの大量（超）並列設計とも異なり、スーパーサーバは、予測不可能な資源要求を有する、広範囲にわたる多数のしかも多種多様のタスクを、実行する柔軟性を必要とする。
【０００５】
多くの方法では、スーパーサーバは、超大型コンピュータとしておよび小型コンピュータとして実行することが要求される。これは、それらのアーキテクチャに多数の矛盾（競合）する要求を行うことになる。
【０００６】
【課題を解決するための手段】
本発明は、前述の問題およびその他の関連する問題を、ソフトウエアで構成可能な「ハードウエア・ドメイン群」によって、ソフトウエアおよびハードウエア双方の観点から、コンピュータ全体を多数の独立ユニットに分離する、総合的なコンピュータ・アーキテクチャを提供する。即ち、異なるドメインが異なるオペレーティング・システムおよびアプリケーションを、互いに独立して実行するだけでなく、他のドメインで発生した致命的（重大）なハードウエア・エラーとは無関係に動作するものである。「クラスタ(cluster)」によって、複数のドメインがメモリ・アドレスの共通範囲を共有することを可能とし、データ転送の高速化を図る。特権的構成−制御ソフトウエアが、物理的にコンピュータを変更することなく、コンピュータ資源を複数のドメインおよびドメイン・クラスタに分割すること、およびいずれの時点においても複数のドメインおよびクラスタを再構成することを、オペレータまたはソフトウエア・プロセスに可能にさせる。このアーキテクチャを用いるコンピュータは、パーソナル・コンピュータやワークステーション・コンピュータにおいて共通に用いられているマイクロプロセッサのような、容易に入手可能な市販のコンポーネント(commodity component)で構築することができる。
【０００７】
本発明は、完全に分離された環境において、新しいバージョンのソフトウエアの検査（テスト）を行いつつ、コンピュータの残りの部分で通常のタスクを継続することが可能である。コンピュータの一部分が拡張された診断または予防的保守を実行し、その一方で、残りの部分が同時に通常のユーザ・タスクを実行することができる。同じコンピュータの異なる部分が、異なるオペレーティング・システム・ソフトウエア（または、同じソフトウエアの異なるバージョン、異なるチューニング（ｔｕｎｉｎｇ）、またはパラメータ設定）の下で実行可能であり、タイムシェアやデータベース質問（ｑｕｅｒｙ）、またはオンライン・トランザクション処理や意思決定支援システムのような、複数の異なる種類の作業負荷の最適化を図ることができる。
【０００８】
コンピュータの各部分は、他の部分のソフトウエア・エラーだけでなく、ハード・メモリ・エラーやアドレス要求ラインの誤動作のようなハードウエアの障害にも不感応である。本発明によるコンピュータは、ハードウエアの障害によって、同一ハードウエア・ドメイン内にはないいずれのプロセッサやメモリにも、アドレスまたはデータ信号が誤って転送されることを防止すると共に、多くのシステム全体に関係する制御信号が異なるドメイン内のハードウエアに影響を与えるのを物理的に防止する。
【０００９】
更なる利点も、当業者には明白であろう。例えば、双方向（対話的）ジョブは、異なるドメインで実行することにより、バッチ・ジョブから分離することができる。生産（プロダクション）タスクは、１つのドメインにおいて中断することなく実行し、開発または問題の分離を他のドメイン内で同時に行うことも可能である。新しくリリースされるソフトウエアの互換性を、古い版（バージョン）を同時に実行する同じシステム上で検査することができる。ときには、複数の組織(organization)が同じシステムを共有し、別個のドメインを使用し、各々がそれら自体のタスクに対するある程度のレベルの資源占有性を保証することができ、この占有性は、容易にスケジュールすることが可能であると共に、構成要素を物理的に置き換えたり、あるいは信号線を手作業で切り替えることもなく、ソフトウエア制御の下でドメインおよびクラスタを再構成するだけで、短い通知をもって変更することも可能である。
【００１０】
端的に言えば、本発明によるコンピュータは、多数の個別システム・ユニットを有し、その各々がプロセッサ、メモリ・セグメント、および／または入出力アダプタを有する。中央相互接続部が、システム・ユニット間でアドレスおよびデータを移送する。ドメイン・コントローラが、ドメイン・フィルタを動的に構成し、互いに独立して機能し、他のドメイン内の重要なハードウエア・エラーにさえも無関係な複数のドメインを形成する。１つのドメインのプロセッサ、メモリおよびＩ／Ｏは、単一の一元化したコンピュータ・システムとして機能し、それらの物理的位置は、同じシステム・ユニットにあろうが、異なるシステム・ユニットにあろうが無関係である。加えて、複数のドメインが動的にクラスタに相互接続し、それらのメモリ空間のいくつかまたは全てを共有することができる。複数のドメインおよびクラスタは、ソフトウエア制御の下で設定されるレジスタの内容によって定義される。
【００１１】
種々のシステム・ユニット間の通信は全て、相互接続部上の「トランザクション」として発生する。トランザクションはメモリ・アドレスを含むことができるが、含まないものもある。通常のメモリ・トランザクションは、非特権的アプリケーション・プログラムが行うような、潜在的にキャッシュ可能な主メモリに対して行われる。他のトランザクションは、（キャッシュ不可能な）システム制御レジスタに対するもの、Ｉ／Ｏアダプタが使用するアドレス空間の部分に対するものがあり、後者のものは、システム・ブート、ＯＳカーネル、およびＩ／Ｏドライバのような、特権モード・コードによってのみアクセス可能である。更に他のトランザクションには、割り込みをあげることができる。
【００１２】
複数のドメインは、ソフトウエアおよびハードウエア双方において、互いに分離されている。個々のサブシステムは、複数のシステム・カード、ボード、または、メモリおよび／またはＩ／Ｏ機能を処理するためのハードウエアを潜在的に内蔵可能な他の複数のユニットを備えることができる。個々のシステム・ユニットは全てが完全なプロセッサの機能全てを内蔵しなければならない訳ではないが、ドメインを形成する１組のユニットは、とりわけ、完全なデータ処理システムの機能全てを含んでいなければならない。単一のシステム・ユニットが、１つのドメインを形成することもできる。いずれのシステム・ユニットも、属することができるのは１つのドメインのみである。ドメインは単一のデータ処理システムとして機能し、その個々のシステム・ユニットは互いに秘密を有さない。
【００１３】
「ソフトウエアの分離」とは、あるドメインにおいて実行中のソフトウエアは、サブシステムにおけるハードウエア障害がない限り、他のドメインで実行中のソフトウエアに影響を与え得ないことを意味する。このためには、各ドメインが、他のドメインとは共有しない、それ自体の１つの（または複数の）物理的プロセッサ、複数のメモリ・ユニット、およびＩ／Ｏアダプタを有することが必要である。各システム・ユニットと共通アドレス相互接続ハードウエアとの間のドメイン・フィルタ・ハードウエアは、完全なシステム内に潜在的に含まれる各ユニットに対する別個のビットを含むマスク・レジスタを有する。これらのビットの状態が、他のシステムのどれが同一ドメインのメンバであるのかを示す。ユニットのインターフェースは、相互接続部からのトランザクションが同じドメイン内のシステム・ユニットにおいて発したものである場合にのみ、このトランザクションに応答する。このようにサブシステム間で分配されるハードウエアは、別個のサービス・プロセッサのような、サブシステム外のエージェンシによってのみハードウエアが制御可能である限り、ソフトウエアの分離を保証するには十分である。
【００１４】
加えて、「ハードウエアの分離」は、あるドメイン内で発生したハードウエア・エラーがコンピュータ内の異なるドメインの動作に影響を与えないことを示す。ハードウエアの分離は、個々のサブシステム間に共通バス・アーキテクチャを用いている場合は、実施できない。何故なら、障害を発生したサブシステムがバス全てを停止させる可能性があるからである。したがって、クロスバー(crossbar)および／またはルータのような、切り替え相互接続部をサブシステム間に用いる。１つのサブシステム内のハードウエア障害は、それが異なるサブシステムに属するものとして偽装させたり、あるいは制御信号のパリティ・エラーのような、システム全体に及ぶ致命的インターフェース信号を発生させる可能性があるので、サブシステムのハードウエア分離は、サブシステム自体以外に何らかの中央制御ロジックを必要とし、制御信号の少なくともいくつかを、この中央ロジックと各サブシステム間で１対１（ポイントツーポイント）で結合することが必要となる。相互接続ハードウエアもドメイン・マスク・レジスタを有する場合、発生元のドメイン内の各システムに「有効トランザクション」信号を生成することができる。これによって、いずれのユニットも他のユニットのように偽装することを防止する。ソース・ドメイン以外のユニットは全てトランザクションを無視するので、これらは他のドメインから発せされたハードウエア・エラー信号にエラー状態を発生することができない。相互接続ハードウエア自体における障害も全てのドメインに影響を与える可能性があるが、実際には、相互接続部は、サブシステム内のハードウエアに比較すると、小型で堅牢である。
【００１５】
用途によっては、所定のドメインが、それらの個別にアドレス可能なメモリ空間の１つ以上のセグメントを共有することにより、互いとの通信に高帯域通信を必要とする場合がある。本発明は、個別ドメインのそれに類似した特性を有するドメインのクラスタを提供することができる。１つの個別システム・ユニットはそれ自体のクラスタとなることができ、あらゆる単一ユニットは１つのクラスタのみのメンバとなることができ、クラスタ関係は変化する。また、ドメインは正確に１つのクラスタ内にあり、クラスタは１つ以上のドメインを含む。クラスタ関係が変化し得るものであることの必要性は、ドメイン間でメモリを共有する際にそれを使用することから生じたものである。ＡがドメインＢ，Ｃにメモリをエクスポートする場合、Ｂ，Ｃは相互接続部上で互いのトランザクションに応答しなければならず、したがって同じクラスタ内にいなければならない。この要件は、上述のシステムにおいて、Ａ内の共有メモリからのデータの現在値が実際にＢまたはＣ内のキャッシュに位置する場合があり、Ｂ内のプロセッサが新しい値をこのアドレスに書き込む場合、Ｃのキャッシュ内のコピーを無効化しなければならず、これを達成するためには、ＣはＢからのトランザクションを全て見なければならないという可能性から生じたものである。
【００１６】
クラスタ内のシステム・ユニットは、同じクラスタ内の他の各ユニットとメモリを共有する必要はないが、同じクラスタ内のユニットとのみメモリの共有が可能である。システム・ユニットＡがある範囲の共有アドレスをユニットＢにエクスポートする場合、Ｂは必然的に同じクラスタにいるが、Ａ，Ｂと同じクラスタにいるユニットＣは、このアドレス範囲を共有する必要はない。同じクラスタ内において、いずれのシステム・ユニットも、トランザクションの発生元ユニットとして、当該トランザクションを受けるが、このトランザクションに応答する必要性は必ずしもある訳ではない。即ち、受信側ユニットはそれをフィルタ(filter)することも可能である。実際には、複数のドメインは、メモリを共有するためにのみクラスタ内で結合されており、当該クラスタの全てのメンバ・ドメイン内のシステム・ユニットは全て、当該クラスタ内の全てのユニットからの、この共有メモリに対応する特定の範囲のメモリ・アドレスに対する通常のメモリ・トランザクションに応答するように構成されている。共有メモリ自体は、クラスタ内の１つのシステム・ユニット上に位置し、この範囲を、それ自体以外のクラスタ内のドメインに「エクスポート」すると言う。（ユニットは、常にそれ自体のドメイン内のソース・ユニットからのトランザクション全てに応答する。これは、ここで用いられる意味では「エクスポート」ではない。この用語は、ドメインの外側から発したいくつかのメモリ・トランザクションへの応答の追加のみを意味する。）したがって、システム・ユニットは、それが異なるメモリ・アドレス範囲にエクスポートするユニットからはアクセス不可能な、キャッシュ可能メモリを含むことができる。ユニット内のシステム制御レジスタ群およびＩ／Ｏ装置群は、異なるドメイン内のユニット群には全くアクセスすることはできない。たとえこれらのユニットが同じクラスタに属していてる場合でも、アクセスすることはできない。
【００１７】
クラスタ化によって、各システム・ユニット上のドメイン・レジスタに、共有メモリ・レジスタが追加され、どのアドレスが共有されるのか、即ち、当該クラスタにおける他のドメイン内の少なくとも１つのシステム・ユニットにエクスポートされるのかを示す、範囲レジスタ群も含むことができる。共有メモリ・レジスタは、他のユニットのどれが、そのユニットとのアドレスの転送を行うことができるのかを示す。したがって、システム・ユニットが、他のユニットからのトランザクションにおいて、アドレスに応答するのは、（ａ）ソース・ユニットが同じドメインのメンバであること、または（ｂ）それが同じクラスタのメンバであることが共有メモリレジスタ内に指定されており、そのアドレスが共有するように指定されている範囲（あるとすれば）内にある場合にのみであり、しかも先に定義したような通常のメモリ・トランザクションに対してのみ行う。相互接続部内のドメイン・レジスタは、トランザクションを発生したユニットと同じクラスタ内にある他のシステム・ユニット群に有効性確認信号を送出することができる、ドメイン・クラスタ・レジスタとなる。
【００１８】
【発明の実施の形態】
図１は、サーバまたは中型コンピュータに典型的なアーキテクチャを有する従来技術のコンピュータ１００を示す。コンピュータ１００は、マザー・ボードまたはプラグイン・ボード上のプロセッサ１１０、メモリ用の別個のボード１２０、およびＩ／Ｏアダプタ用の別個のボード１３０を有する。データ・バス１４０およびアドレス・バス１５０が、異なる機能ブロックを共に結合する。制御分配バス１６０は、エラー信号を含む制御信号を種々のボードに送出する。システムが大きい場合、起動、診断、および同様の機能に、専用の制御およびサービス・ユニット１７０を有してもよい。
【００１９】
バー１０１は、コンピュータ１００のアドレス空間全体を概略的に表している。プロセッサまたはプロセッサ群（複数）は、メモリを含むボード即ちユニット１２０に対するアドレスを全て、バス１５０上に送出する。各ボードは、ある範囲のアドレスに応答するメモリを有する。各ボードは、通常メモリ・ボード上の機械的スイッチまたはレジスタによって設定される、異なるアドレス範囲を含む。また、プロセッサ１１０は、全てのボード１３０上のＩ／Ｏアダプタ全てとも通信を行う。
【００２０】
図２は、多数のシステム・ユニット２１０の各々が、プロセッサ自体の中に、メモリ、および互いに結合されているＩ／Ｏアダプタ群を含み、当該ユニットが潜在的にそれ自体で完全なコンピュータとして機能することができるようにした、異なるアーキテクチャ２００を示す。（しかしながら、システム・ユニットによっては、実際に、プロセッサのみ、メモリのみ、Ｉ／Ｏのみ、またはそれらの潜在的な全機能の下位の組み合わせのいくつかを含むものもある。）個々のシステム・ユニット２１０は、同一ユニット内に、アドレスされたデータを送信するか、あるいはシステム・ユニット群が差し込まれているセンタプレーン相互接続構造(centerplane interconnect structure)として構築されている、高速ルータ２４０，２５０上を、同じ複合体内の他のシステム・ユニット群に、アドレスされたデータを送信する。制御分配バス２６０は、制御信号およびエラー信号を全てのシステム・ユニット２１０に送出する。このようなコンピュータは、典型的なパーソナル・コンピュータまたは中型コンピュータのバス組織に限定されるものではない。例えば、データおよびアドレス・ルータ２４０，２５０は、通常のポイントツーポイント配線、クロス・ポイント・スイッチ、または多数の調停されたバスとして実施してもよい。システム２００全体は、メモリ共有対称マルチプロセッサ・システムとして特徴付けることができる。好ましくは、コヒーレントなキャッシュ機能も用いる。この機構は、多数の従来からの方法で実現すればよい。Sun Microsystems社から入手可能な市販のCS6400は、このタイプの機械（マシン）の一例である。
【００２１】
バー２０１は、コンピュータ２００のアドレス空間を示す。各システム・ユニットは、潜在的にそれ自体で完全なコンピュータであるが、アドレス・ルータ２５０によって与えられる相互接続部は、共通のアドレス空間全体に、全てのシステム・ユニットを配置する。即ち、各システム・ユニット２１０上のあらゆるメモリ位置の完全に承認されたアドレスは、他の全てのユニット上のあらゆるメモリ位置のそれとは異なっていなければならない。
【００２２】
分配バス２６０上のエラー信号およびステータス信号は、システム内のあらゆるユニット２１０に影響を与える。例えば、エラー訂正コードは、ルータ２５０上のビット・エラーを訂正し、コードが検出可能であるが訂正不可能なその他のエラーに対して致命的エラー信号を生成する。このような致命的エラー信号は、通常、当該エラーの原因となった障害を単一のシステム・ユニットまたはルータの場所に閉じこめた場合でも、システム全体に影響を及ぼす。障害を発生したシステム・ユニットは、連続的にエラー信号をアサートすることができ、システム全体を停止させる。CANCEL（時としてABORTとも呼ぶ）信号が異なる状況を提示する。高性能システムには、思惑的にマルチサイクル処理を開始し、それらの仮定が正しくなかった場合に処理を取り消すものがある。このような単一ドメイン・システムにおいてCANCELをアサートすると、システム全体のあるあらゆるユニットを停止させることになる。
【００２３】
図３は１つの仮説的なコンピュータ３００を示し、この中では、図２のユニット２１０に対応する種々のシステム・ボード３１０が物理的に多数のドメインに分割され、各々がそれ自体の物理的に別個のデータ・ルータまたはバス３４０、それ自体のアドレス・ルータまたはバス３５０、およびそれ自体の制御分配手段またはバス３６０を有し、その上それ自体のシステム・コントローラ３７０をも有することも可能である。実際には、コンピュータ３００は、多数の別々のコンピュータ即ちドメインＳ１，Ｓ２，Ｓ３となる。加えて、多数のドメインは、それらのメモリ・アドレスの一部または全てを共有して、アドレス・ルータ３５０の領域３５１によって示されるような、クラスタを形成することができる。図３では、ドメインＳ１は、それ自体が（変性）クラスタＣＡであり、一方ドメインＳ２，Ｓ３は一体となってクラスタＣＢを形成する。これら別々のクラスタのアドレス空間は互いに重複していてもよく、各々が他とは独立してそれ自体のオペレーティング・システムを実行することができ、１つのドメイン・クラスタにおけるメモリ障害またはその他のハードウエア・エラーは、他のドメイン・クラスタの動作に影響を与えることはない。
【００２４】
バー３０１，３０２，３０３は、コンピュータ３００のメモリ・アドレス空間が、３カ所の別個の空間として処理可能であり、そのアドレスのいくらかまたは全てが互いに重複していてもよいことを示す。加えて、メモリ・アドレスの中には、３０４，３０５に示すように、複数のドメインとの間で、物理的に共有可能なものもある。下位の２つのアドレス・ルータ３５０をブリッジする領域３５１は、別々のドメイン間で共有されるメモリアドレスを象徴化したものである。
【００２５】
コンピュータ３００では、制御信号の多くをそれらを適用することができないドメインから分離することができる。したがって、ドメインＳ１内の致命的エラー（アドレスまたは制御バスにおける訂正不可能なエラーのような）は、当該ドメイン・クラスタの範囲内でのみバス３６０上でARBSTOP信号を生成し、ドメインＳ２，Ｓ３の動作を継続させる。しかしながら、システム３００は、永続的または少なくとも半永続的に手動で構成されなければならない。即ち、再構成は、ボードの再配置またはスイッチのリセットのために、システムの完全な停止および配線のし直しまたは手作業による調節を必要とする。このシステムは、可変量の資源を有する異なるドメイン群やクラスタ群に動的にまたは容易に再構成することはできない。
【００２６】
図４は、図２および図３のコンピュータ・システム２００，３００を背景として構築し、ある例示環境における本発明の好適な形態の概要を提示する。以下に述べる詳細の多くは、それ自体本発明の概念に直接関係するものではないが、この環境において本発明がどのように機能するのかを理解するのに役立つ。
【００２７】
コンピュータ４００は、図３のユニット群３１０に対応するシステム・ユニット群４１０を有する。データ・ルータ４４０は、全てのシステム・ユニット群４１０を物理的に相互接続する。アドレス・ルータ４５０および制御バス４６０は、丁度図２におけるように、全てのシステム・ユニット群を物理的に結合する。コンピュータ４００においては、しかしながら、追加のドメイン・フィルタ４８０が、コンピュータ４００を、互いに独立して動作可能なドメイン群およびクラスタ群に電子的に分割する。ルータ４５０およびユニット群４１０間のドメイン・フィルタの配置は、それがアドレス信号および制御信号に作用しドメインへの分離を達成することを象徴化している。好適な実施態様では、フィルタ４８０は、アドレス・ルータ４５０の部分を形成するチップの中に物理的に配置され、ルータ４５０自体は、部分的にシステム・ユニット４１０内、および部分的に共通のセンタプレーン構造内に物理的に配置される。また、フィルタ４８０は、データ・ルータ４４０内に位置する構成要素を含むこともできる。ドメイン・コンフィギュレータ(domain configurator)４２０がフィルタ４８０と通信し、任意にかつ動的にドメイン群およびクラスタ群を設定する。図４における例は、図３の対応するマップ３０１〜３０３と同じメモリ・アドレス・マップ４０１〜４０３を有する。
【００２８】
後の詳細説明について前もって述べておくが、マップの隣にある番号は、種々の点におけるアドレスを示す。番号は１６進数であり、例示の実施態様では、'00 0000 0000'から'0F FFFF FFFF'までに及ぶ。（図４は、可能な１６のシステム・ユニットの内８個のみを示すので、この空間の前半である、アドレス'08 0000 0000'までのみを含む。）また、システムは、システム・レジスタやＩ／Ｏ装置にアクセスするために、別の空間として、'10 0000 0000'から'1F FFFF FFFF'のアドレスも採用している。本発明には関連のない詳細を少し加えるが、例示のシステム・アーキテクチャは各システム・ユニット４１０に４ギガバイト（ＧＢ）のアドレス範囲を割り当てている。各範囲は割り当てられた単位番号に４ＧＢをかけた数で開始するが、ユニット上に実際に装着されるいずれのメモリも、その割り当てられた範囲内であればどこから始まってどこで終わってもよい。これは殆ど常に、実装されたメモリのアドレス範囲において穴あき状態を生ずる結果となるが、システム４００はこの状況に容易に対処する。他のシステムは、しかしながら、全く異なるメモリ・アーキテクチャを有する本発明を容易に実施することができる。
【００２９】
図５は、図４のシステム・ユニット４１０を、データ・ルータ４４０、アドレス・ルータ４５０、およびドメイン・フィルタ４８０の部分と共に示す。これらはシステム・ユニットの一部をなし、これに結合されているものである。図５は、本発明のドメイン・フィルタによって管理される分配器４６０の個々の制御線を殆ど示していない。図８ないし図１０において、代表的な制御信号をより詳細に示しかつ検討することにする。本例では、コンピュータ４００は、実装可能な１６のシステム・ユニット４１０の内８個を有する。
【００３０】
システム・ユニット４１０は、コンピュータ１００の主要構成要素１１０〜１３０の全てに対して、回路基板のような、１つの物理構造上に空間および配線を含むが、これらの全てが特定のユニットに完全にまたは部分的にでさえも設ける必要がある訳ではない。プロセッサ・サブシステム５１０は、マイクロプロセッサ５１１を４個まで有することができ、各々それ自体のキャッシュ５１２を有する。入出力サブシステム５３０は２個のシステムＩ／Ｏバス５３１を含み、各々が種々の従来からのＩ／Ｏアダプタ５３２を制御する。一方、Ｉ／Ｏアダプタ５３２は、ディスク・ドライブ、端末コントローラ、および通信ポートのような外部Ｉ／Ｏ装置に、線５３３を結合する。メモリ・サブシステム５２０は４個までのメモリ５２１のバンクを含み、各対が従来からのパック／アンパック・モジュール(pack/unpack module)５２２に結合する。完全に汎用なシステム・ユニットの代わりとして、特殊化されたボードも使用可能である。例えば、第１タイプのシステム・ユニットが、プロセッサおよびメモリ・サブシステムに対してのみ配線および場所を有してもよく、第２タイプが１個以上のＩ／Ｏサブシステムのみを含むこともあろう。
【００３１】
データ・ルータ４４０は、サブシステム５１０〜５３０間でトランザクション・データの受け渡しを行う。本実施例では、データ・ルータは、各システム・ユニット４１０上のローカル部分５４Ｌ０およびセンタプレーン上に配置されたグローバル部分５４Ｇ０の間で物理的に分割される。図５において、ラベル５４Ｌ０は、データ・ルータ４４０の内、構成要素５４Ｌ１〜５４Ｌ３を有するローカル部分全体を示し、ラベル５４Ｇ０は、構成要素５４Ｇ１〜５４Ｇ２を有するグローバル部分全体を示す。
【００３２】
ローカル・ルータ５４Ｌ０の各バッファ５４Ｌ１は、例えば、２５６トランザクションを保持可能な、少量の高速スタティック・ＲＡＭを有する。その通常の目的は、アクティビティの可能なバーストに対抗して、データの流れの分離および平滑化を行うための保持行列(holding queue)を提供することである。ローカル・データ・スイッチ５４Ｌ２は全二重双方向１ｘ４クロスバーである。ローカル・データ・アービタ５４Ｌ３は、グローバル・アービタ５４Ｇ２から許可を受け、せいぜい１つのバッファに、対応するトランザクション・パケットを格納するように命令する。同時に、ローカル・アービタ５４Ｌ３は、従来からの公正アルゴリズム(fairness algorithm)を用いて、バッファの１つから待機中のパケットを選択し、このパケットの代わりに、グローバル・アービタ５４Ｇ２への送信要求を発生する。グローバル・データ・ルータ５４Ｇ０は、１つのシステム・ユニットのＬＤＲ５４Ｌ０からのデータを、同一ユニットまたは異なるユニットのＬＤＲ５４Ｌ０に転送する。この際、１６ｘ１６のクロスバー・アレイ５４Ｇ１を用い、これがアービタ５４Ｇ２からの１６組の４ビット方向制御ロジック(steering logic)を受け取る。下位では、これを、各システム・ユニット毎に１つとして、１６個の１６入力マルチプレクサとして実現する。
【００３３】
アドレス・ルータ４５０は、各システム・ユニット４１０上のサブシステム５１０〜５３０間でアドレスの受け渡しを行うと共に、あるシステム・ユニットから他のシステム・ユニットへのアドレスの受け渡しも行う。データ・ルータと同様、５５Ｌ０で示すローカル部分と、グローバル部分５５Ｇ０とを有する。この実施態様では、アドレス・ルーティングは、ローカル（イントラシステム）およびグローバル（インターシステム）トランザクション双方に対して、同じ経路を進む。ポート・コントローラ群５５Ｌ１およびメモリ・コントローラ５５Ｌ２は、サブシステム５１０〜５３０および個々のルーティング・スイッチ５５Ｌ３間に、従来からのインターフェースを設ける。この場合、個々のプロセッサ５１１、Ｉ／Ｏバス５３１、メモリ・ユニット５２１は、事実上ローカル・アドレス・スイッチ（ＬＡＳ：local address switch）５５Ｌ３に直接接続されていると見なしてもよい。ＬＡＳ群５５Ｌ３は、キャッシュ・コヒーレンシ（ｃａｃｈｅ  ｃｏｈｅｒｅｎｃｙ）のような、多数の通常からの機能を実行する。本発明の目的のために、それらの機能は、システム・ユニット内のプロセッサ群５１１、Ｉ／Ｏバス群５３１、およびメモリ５２１からのアドレスの、グローバル・アドレス・ルータ５５Ｇ０との受け渡しを行うことである。
【００３４】
本実施例のアドレス・ルータ４５０のグローバル部分５５Ｇ０は、１６個のシステム・ユニット間で共有される４系統のアドレス・バス５５Ｇ１を有する。別個のグローバル・アドレス・アービタ５５Ｇ２が、各ユニット内のローカル・アドレス・アービタ５５Ｌ４からのトランザクション要求に応答して、各アドレス・バスを種々のシステム・ユニット４１０に割り当てる。
【００３５】
本実施例では、システム・ユニット上の各ＬＡＳ５５Ｌ３は、線９１５，９２２上の白抜き円によって象徴化されているように、４個のＧＡＢ５５Ｇ１の異なる１つに接続する。アービタ５５Ｌ４は、物理的に、４個の同一部分から成り、その各々が、線８１１からのアクセス要求に応答して、ＧＡＡ５５Ｇ２およびＬＡＳ５５Ｌ３の異なる１つと通信を行う。即ち、アドレス・ルータ４５０の結合されたローカル部分およびグローバル部分の全体的な機能は、システム・ユニット群４１０全ての６個のポート（コントローラ５５Ｌ１の各々から２つ）からの競合する要求間で、４個のＧＡＢ５５Ｇ１のスケジュールを立てることである。４個のＧＡＢ５５Ｇ１全てに対する決定は、各システム・ユニットのＬＡＡ５５Ｌ４において、互いに対して同時に処理される。
【００３６】
図６は、図５の通常のポート・コントローラ５５Ｌ１内における、関連するアドレス・ルーティングを示す。各コントローラ・チップは、アドレス線および制御線を含み、２個のプロセッサまたは２系統のＩ／Ｏバスを、４系統のアドレス・バスのいずれかとインターフェースする。双方向ドライバ／レシーバ６１０が、アウトバウンド（出）トランザクションを線６１１から先入れ／先出し（ＦＩＦＯ）バッファ６２０に送出する。スイッチ群６２１は、ＦＩＦＯ出力を双方向ドライバ／レシーバ６３０に出力し、ＦＩＦＯ出力は線９１１を通じて図５のローカル・アドレス・ルータ５５Ｌ３に進む。線９１１からのインバウンド（入）トランザクションは、ドライバ／レシーバ６３０からＦＩＦＯ６４０に進む。マルチプレクサ群６４１は、格納されているトランザクションから選択を行い、それらをドライバ／レシーバ６１０に送出し、線６１１を通じて送信する。線８１１はスイッチ群６２１、マルチプレクサ群６４１、およびポート・コントローラ５５Ｌ１内の他の構成要素（図示せず）の制御を行う。また、コントローラの構成要素は、ステータス方法や他の情報を、図５のローカル・アドレス・アービタ５５Ｌ４に送信する。
【００３７】
図７は、図５の通常のメモリ・コントローラ５５Ｌ２の関連部分を示す。このチップは、ポート・コントローラ５５Ｌ１がＤＲＡＭメモリ・チップ５２１の４個のバンクに対して行う機能と同様の機能を実行する。図５のローカル・アドレス・ルータ５５Ｌ３からの線９１１は、トランザクションをＦＩＦＯ記憶部７１０に供給する。クロスバー・スイッチ７２０は、これらトランザクションからのアドレスを、線７２１を介して４個のメモリ・バンクに送出する。即ち、ユニット内に位置するメモリ・セグメントのメモリ・アドレスの異なる下位範囲(subrange)内にデータが位置する限り、同じシステム・ユニット４１０上の多数のバンクが同時にデータの読み出しおよび書き込みを行うことができる。通常の調停（アービトレーション）ロジック７２２が、個々のＦＩＦＯ７１０を種々の出力７２１に割り当てる。図９からの線９４８は、このシステム・ユニットには見ることができるようにされていないトランザクションからのメモリ・アクセスを取り消す（キャンセルする）。
【００３８】
図８は、図５のローカル・アドレス・アービタ５５Ｌ４の詳細を示す。各システム・ユニット４１０は、１つのＬＡＡチップ５５Ｌ４を含む。各ポート・コントローラ５５Ｌ１は、ＦＩＦＯバッファ８１０内のキューへのＧＡＢ要求信号を立ち上げる(raise)ことにより、使用可能なグローバル・アドレス・バス５５Ｇ１の１つにおいて、ショット(shot)を要求することができる。これらの線は、図５に示した通常のポート制御線８１１の一部を形成する。調停ロジック８２０は、多数の通常の公正アルゴリズムのいずれかを用いて、これらの要求間で選択を行い、次いでＧＡＢ要求および方向制御線８２１を立ち上げる。要求線は、ロジック８２０が特定のグローバル・アドレス・バスへのアクセスを望んでいるか否かについての指示を与える。グローバル・アドレス・アービタ５５Ｇ２が、線８２２上の特定のアドレス・バスに対する要求を許可した場合、アービタ・チップ５５Ｌ４は、線８２３を通じて適切なＬＡＳチップ５５Ｌ３に通知する。
【００３９】
ＬＡＡ５５Ｌ４は、多数の方法で、コンピュータ４００の動作を中断することができる。システム・ユニット上でのパリティ・エラーのような致命的エラーは、線８２４上でARBSTOP制御信号を発生することができる。即ち、ＬＡＡはARBSTOP制御信号の発生器として作用する。通常のコンピュータでは、この信号は、制御分配器４６０を通じて、他の各システム・ユニットのＬＡＡ内のARBSTOP検出線８２７に直接同報通信する。したがって、１つのユニットにおける致命的エラーが、通常では、コンピュータ４００全体の各システム・ユニットを停止させることによって、ユーザ・データの汚染(corruption)を回避すると共に、障害分析のための早急のダンプ(dump)を許す。図１０に関連付けて説明するが、しかしながら、本コンピュータはこの信号を濾過(filter)し、同じドメイン・クラスタ内のシステム・ユニットだけが、当該ドメイン・クラスタ内のユニットの１つからの出るARBSTOP信号を受けるようにする。
【００４０】
また、システム・ユニットは、他の全ユニットに対するHOLD制御信号８２５を、それらの対応する検出線上でアサートすることも可能である。通常では、いずれのシステム・ユニットからのアウトバウンドHOLD信号も、他の各ユニットの対応するインバウンドHOLD線８２６に直接移動するので、当該システム・ユニットの入力キューが保留中の処理で飽和したときはいつでも、コンピュータ全体がそれ以上のトランザクションを要求するのを禁止した。加えて、障害のあるシステム・ユニット４１０は、連続してHOLDをアサートすることにより、コンピュータ全体を停止させる可能性がある。しかしながら、図１０では、この信号も濾過するので、線８２５上のアウトバウンドHOLDは、同じドメイン・クラスタ内のシステム・ユニット群上の入来するHOLD８２６に影響を与えるに過ぎない。
【００４１】
このように、ローカル・アドレス・アービタ５５Ｌ４は、他のシステム・ユニットの動作に影響を与える可能性がある、GAB REQ,  ARBSTOP-out,  HOLD-outのような制御信号の発生器として作用する。また、これは、他のシステム・ユニットからのこれら制御信号GAB GRANT,  ARBSTOP-in,  HOLD-inの受け取り側としても作用する。従来のシステムであれば、全てのシステム・ユニットからの出立制御信号を単に互いに結びつけ、それらの他の全ユニットの受け取り側に送出するだけである。しかしながら、本システムは、これらをドメイン・フィルタに通すので、１つのＬＡＡにおいて発生された信号は、同じドメインまたはドメイン・クラスタ内のユニットのみのＬＡＡに影響を与えるに過ぎない。以下で明らかとなろうが、他の動作装置も、異なるドメイン定義にしたがって、ドメイン・フィルタが通過させたり、阻止することができる制御信号の発生器および受け取り側として作用する。
【００４２】
図９は、図４のドメイン・フィルタ４８０の一部としての機能に集中して、図５のローカル・アドレス・ルータ・チップ５５Ｌ３を詳細に示す。その動作全体は複雑であり、トランザクション毎に多数のサイクルを必要とするが、この場合の目的に必要なのは、図５の各アドレス・バス５５Ｇ１が所定のトランザクションに対してアドレス・ビットおよびいくつかの制御信号を搬送することのみである。
【００４３】
アウトバウンド・アドレス制御部９１０は、線群９１１上の各ポート・コントローラ５５Ｌ１（図５）からのトランザクション・アドレスを受け取り、それらを、エラー訂正コード発生器９１２を通じて、ＦＩＦＯバッファ９１３に送出する。マルチプレクサ９１４が、ローカル・アドレス・アービタ５５Ｌ４によって確立され線８２３を通じて通信されるそれらの特性に応じて、待ちアドレス(waiting address)をドライバ９１６を通して出グローバル・アドレス線９１５上に選択的に結合する。
【００４４】
線１０２３上のVALID信号が、特定のシステム・ユニット４１０に対してトランザクションが有効であることを知らせるときはいつでも、従来の入来アドレス・スイッチ９２０が入来アドレス線９２２を通じて、受信部９２１においてグローバル・アドレス・バスからのトランザクション・アドレスを受け取る。この線がインアクティブのままである場合、ＬＡＳ５５Ｌ３が対応するバス・サイクルをアイドル・サイクルとして扱い、何の動作も行わない。有効なトランザクションからのアドレスは、線９２３を通って直接メモリ・コントローラ５５Ｌ２に進む。他のシステム・ユニットからのアドレスは、ＥＣＣデコーダ９２４およびキャッシュ・コヒーレンシ・ユニット９３０を通じて、入来アドレス・スイッチ９２５に進む。アドレスの中には、読み出し／書き込み制御部９２６または応答制御部９２７を通じてスイッチ９２５に進むものもある。最後に、スイッチユニット９２５は、適正な線９１１への入来アドレスを、ポート・コントローラ群５５Ｌ１の１つに通過させる。
【００４５】
ブロック９３０は、通常の方法で、図５のキャッシュ間のコヒーレンシを維持する。線９３１は、キャッシュ制御部９３０が動作を中断すべきことを判定した場合、それ自体のシステム・ユニットからCANCEL制御信号を生成する。高性能システムは、多数のクロック・サイクルにわたって、処理を思惑的に実行しつつ、平行して当該処理は本当に実行すべきか否かについて判定を行うことができる。この処理を実行する条件が満たされない場合、出線９３１は、制御分配器４６０を通じて、他のシステム・ユニット群全ての入来CANCEL線９３２にCANCEL信号を同報通信する。これによって、キャッシュ制御部９３０はメモリ・コントローラ５５Ｌ２へのMEM CANCEL線９４８をアサートし、データを変更できるようになる前に、いずれのメモリ動作の完了も禁止する。例えば、メモリがＲＡＭから読み出しを行い、その間に、システムはむしろ現在値がプロセッサ群の１つのキャッシュ内に位置するか否かについて判定する。この場合も、ドメイン・フィルタ４８０が、１つのシステム・ユニットからのCANCEL-out信号９３１が、同じドメイン・クラスタ内にはないユニットのCANCEL-in線９３２に影響を与えるのを防止するので、各クラスタは、この制御信号およびその他の制御信号に関しては、他のクラスタとは独立して動作することができる。線９３３も、線９４８を経由するあらゆるボード上メモリの動作を取り消す。これについては、以下で説明する。
【００４６】
システム４００は、異なるシステム・ユニット群４１０において発生および終了するトランザクション、および同じユニットにおいて発生および終了するトランザクションの区別を行わない。全てのトランザクションは、本システムにおけるグローバル・アドレス・バスを通過する。何故なら、ドメインまたはクラスタ内の各キャッシュ・コントローラは、同じ群の他のキャッシュ全てのキャッシュ線におけるトランザクションについて知っていなければならないからである。
【００４７】
各アービタ・チップ５５Ｌ３における図４のドメイン・フィルタ４８０のローカル部分９４０は、同じシステム・ユニット４１０内の他のチップ５５Ｌ３の全てに配置されている部分９４０と同一であり、常にそれと同じデータを搬送する。しかしながら、ブロック９４０の各コピーは、バス群５５Ｇ１の異なる１つからの入来アドレス線９２１を、線９２１を介して受け取る。
【００４８】
比較器９４１は、線９２２からのアドレスと、４個のレジスタ９４２および９４４〜９４６の各々との間の一致を検出する。
【００４９】
ドメイン・マスク・レジスタ（ＤＭＲ:domain mask register）９４２は、コンピュータ４００内の可能なシステム・ユニット毎に１ビットとして、１６ビットを有する。所与のドメイン内の各システム・ユニットにおける各ドメイン・レジスタ（の各コピー）に対するビット位置は、同じドメイン内のシステム・ユニットのその他の全レジスタ内に「１」ビットを含む。図４の例を用いると、第１の４個のシステム・ユニット（４１０−０から４１０−３）を第１ドメインとして定義し、次の２個（４１０−４および４１０−５）が第２ドメインを形成し、次の２個（４１０−６および−７）は第３ドメインを構成し、可能な１６個のシステム・ユニットの内８個のみがあると仮定する。すると、８個の実装されたシステム・ユニット４１０のドメイン・マスク・レジスタ９４２は、以下の値を含む。
【００５０】
【表１】
0004124507.tif 000002
【００５１】
ここでも、同じシステム・ユニット４１０内のレジスタ９４２の４個のコピーは全て、同じ値を含む。
【００５２】
線９２２は、現トランザクションを発行した特定のシステム・ユニット４１０の番号を表す信号を含む。受信ユニットのＤＭＲ９４２の対応するビットがオンになっていない場合、比較器９４１は、NON−DOMAIN線９４３上に禁止信号を生成し、入来スイッチ９２５がトランザクションを線９１１を通じて図５のポート群５５Ｌ１に渡すのを禁止する。また、比較器は、線９４９およびＯＲゲート９０１を通じて、線９４８上にMEMORY CANCEL禁止信号を生成する。この信号は、現トランザクションがドメイン外で発した場合に、メモリ・コントローラ５５Ｌ２に、線９２３上のアドレスを無視するように命令する。これは効果的にドメインを分離し、他のドメインで発生したトランザクションには不感応にする。
【００５３】
これまで述べてきたように、異なるドメインにおけるシステム・ユニット群は、図５の５３３のような専用配線によって相互接続される直列通信線のような外部Ｉ／Ｏ装置を通じてのみ、互いにデータを交換し合うことができる。大幅に高速化した方法により異なるドメインを協同させれば、コンピュータ４００は多くの用途に拡張されよう。このために、図４のドメイン・フィルタ４８０は、多数のドメインを共に集合化し、１つのクラスタにすることも可能である。１つのクラスタ内のドメイン群は、それらのメモリの一部または全部を互いに共有し合うことができる。１つのドメイン内のプロセッサが、予め規定されている範囲のアドレス空間にデータを書き込む場合、同じクラスタの他のドメイン内にあるプロセッサはこのデータを読むことができる。即ち、１つのクラスタ内の異なるドメインはある範囲の共有メモリを有する。このメモリは、クラスタ内のいずれのシステム・ユニットにも物理的に位置することができ、図５のグローバル・アドレス・ルータ５５Ｇ０を通じてアクセスし、当該クラスタ内のあらゆるドメイン内の他のいずれのシステム・ユニットに対するデータの転送も、グローバル・データ・ルータ５４Ｇ０を通じて行うことができる。
【００５４】
ローカル・ドメイン・フィルタ９４０の各コピー内に位置する共有メモリ・マスク・レジスタ９４４は、どのシステム・ユニットが、図１０におけるクラスタ・レジスタ１０２０によって定義されるクラスタ内の共有メモリとして、他のユニットにエクスポートすべき物理的ＲＡＭ５２１を含むのかについて定義する。同じシステム・ユニット内の各ＳＭＭＲ９４４の内容は同一である。
【００５５】
各ＳＭＭＲ９４４は、コンピュータ４００内の可能なシステム・ユニット毎に１ビットとして、１６ビットを有し、各システム・ユニット４１０は、コンピュータ４００内のグローバル・アドレス・バス５５Ｇ１毎に１つのコピーとして、それ自体のＳＭＭＲのコピーを４個有する。所与のクラスタ内のシステム・ユニット４１０−ｉにおけるＳＭＭＲに対するビット位置ｊは、ユニット４０１−ｉがシステム・ユニット４１０−ｊからのいずれかのメモリ・トランザクションに応答すべき場合、「１」値を含む。図４に示した例に戻り、第２ドメインの２個のユニット４１０−４，４１０−５が第３ドメインの２個のユニット４１０−６，４１０−７と共にクラスタを形成し、ユニット４１０−４は共有メモリを、ユニット４１０−６，４１０−７から成るドメインにエクスポートすると仮定する。即ち、ユニット４１０−４上に物理的に実装されたアドレス番号のメモリの内少なくともいくつかは、そのメモリが後者のユニット上に実装されているかのように、ユニット４１０−６，４１０−７上のプロセッサによって、同じアドレス番号の下で、読み出しおよび書き込みが可能である。（この場合も、可能な１６個のシステム・ユニットの内あるのは８個のみなので、ビット位置８〜Ｆに対する値は重要ではない。）したがって、システム・ユニット４１０のＳＭＭＲは、次の値を含む。
【００５６】
【表２】
0004124507.tif 000003
【００５７】
全てのレジスタにおいてビット位置８〜Ｆは「０」である。何故なら、それに対応するシステム・ユニットが存在しないからである。ユニット４１０−０ないし４１０−３には「１」の値がない。何故なら、これらは同じドメインにあり、当該ドメインの中のユニット群には、メモリを他のドメインにエクスポートするものはないからである。ユニット４１０−４ないし４１０−７に対するビット７までの「１」値は、これらのユニットが、ユニット４１０−４ないし４１０−７全てからの通常のメモリ・トランザクションに応答し、共有メモリを実施しなければならないことを示す。メモリはこれらのユニットの１つ（例えば、４１０−４）の上に位置するが、特定の位置は、ＳＭＭＲ９４４から推論することはできない。共有メモリ上ではキャッシュ・コヒーレンシが必要であるので、この共有メモリを用いるユニットは全て、共有メモリを用いる他の全ユニットからの、このアドレス範囲内のトランザクション全てを見ていなければならない。
【００５８】
システム・ユニットのメモリの全てが共有されているか、あるいは全く共有されていないかを示すには、レジスタ９４４のみで十分であろう。しかしながら、殆ど全ての場合、クラスタのドメイン群間では、メモリの指定された部分のみを共有することが望ましい。レジスタ９４５，９４６は、特定のクラスタにおいて共有すべきアドレス範囲の境界を指定する。クラスタ内の共有メモリに対するアクセスを有する、各システム・ユニット上の各共有メモリ基底レジスタ（ＳＭＢＲ：shared-memory base register)９４５は、共有すべきコンピュータ４００の全アドレス空間内の最下位アドレスを含む。図４の例では、ユニット４１０−４は、アドレス'04 0000 0000'ないし'04 FFFF FFFF'のメモリを物理的に収容するが、エクスポートするのは上位１ＧＢ、即ち、アドレス'04 C0000 0000'から'04 FFFF FFFF'までのメモリだけである。４１ビットのアドレスの内、実際にレジスタ９４５に格納されるのは上位２５ビットのみであるので、共有メモリの細分性(granularity)は６４Ｋバイトとなる。したがって、ユニット４１０−４ないし４１０−７のＳＭＢＲは値'004 C000'を含む。基底アドレス値を全く保持しないＳＭＢＲを指定するには、種々の方法が存在する。この例では、かかるレジスタは値'000 0000'を保持する。（これらのアドレス上の上位側に追加した'0'はアドレス空間ビットであり、'0'はメモリ・アドレス、'1'はレジスタ９４０のアドレス自体のようなシステム・アドレスを示す）。
【００５９】
同様に、同じクラスタ内の各共有メモリ制限レジスタ（ＳＭＬＲ：shared-memory limit register）９４６は、共有アドレス範囲の最上位アドレスの上位２５ビットを含む。この例では、システム・ユニット４１０−４ないし４１０−７のＳＭＬＲは値'004 FFFF'を保持し、最上位共有アドレスは、当該ユニット上の物理メモリの最上位アドレス、即ち、'004 FFFF FFFF'と同じであることを指定する。他の全ユニットのＳＭＬＲは指定無効値'000 0000'を保持する。
【００６０】
【表３】
0004124507.tif 000004
【００６１】
レジスタ制御部９４７は、制御線１１４３に、異なる値をレジスタ９４２，９４４，９４５，９４６にロードさせる。これは、ドメイン群およびクラスタ群におけるシステム・ユニット群４１０の動的再構成、および各クラスタの共有メモリの位置の動的再構成を可能にする。図１１および図１２は、この機能をどのように行うかを説明するためのものである。各レジスタ組９４０内に基底および境界レジスタ９４５，９４６の追加コピーを配置すると、必要であれば、単一のドメイン・クラスタ内において多数の範囲の共有アドレスが可能になる。あるいは、レジスタに基底アドレスおよび共有セグメント・サイズ、またはその他のパラメータを格納してもよい。
【００６２】
NON-DOMAIN線９４３を用いて、ドメイン以外からの他のトランザクションを禁止するのと丁度同じように、非共有メモリからのトランザクションを禁止即ち阻止することも可能である。この構成は非メモリ・トランザクションの迅速な制御を可能にするが、メモリの濾過(filtering)が比較器９４１において必要な時間が長くなる。メモリ・サブシステム５２０におけるレイテンシは、図５の他のサブシステムにおけるレイテンシよりも重大であるので、比較器９４１は、現トランザクションのタイプを示す、線９２２からの従来の信号も受け取ることが好ましい。線９２３が非メモリ・トランザクションを指定する場合、線９４３は、前述のように線９１１を禁止するが、通常のメモリ・トランザクションは、この時点では濾過せず、メモリ・サブシステム５２０に進み、ここでその実行のための準備が開始される。しかしながら、比較器９４１は、このユニットのドメイン（ＤＭＲ９４２によって定義される）外のシステム・ユニットから発するいずれの通常のメモリ・トランザクションに対しても、MEMORY CANCEL線９４８を活性化する。このメモリ・トランザクションに対して、レジスタ９４５，９４６は、他のドメインと共有するメモリの範囲外にあることを示す。即ち、このメモリ・トランザクションはＳＭＭＲ９４４に示されないシステム・ユニットから発したメモリ・トランザクションである。次に、この線９４８は、図７のスイッチ７２０においてトランザクションを直接阻止し、その処理が部分的に既に開始されていても、トランザクションが図５のバンク群５２１のいずれに格納されているデータにも実際に影響を及ぼすのを防止する。
【００６３】
こうして、コンピュータ４００は、ドメイン群およびクラスタ群間の「ソフトウエア分離」を達成した。異なるドメインは、例えば、全く異なるオペレーティング・システムを実行させてもよく、互いに干渉し合うことはない。更に、エラーが他のドメイン・クラスタ内のシステム・ユニットの動作のみに影響をあたえる場合に、図４の制御バス４６０からのハードウエア・エラー信号がシステム全体を破壊し得ないように、コンピュータ内に「ハードウエア分離」を設けることが残っている。例えば、システム・ユニット４１０−０内のＥＣＣブロック９２４によって検出されたエラーは、４１０−５のようなシステム・ユニットに影響を与えない。何故なら、これらのハードウエア・ユニットはむしろ互いに独立して動作しており、一方のユニットにおけるハードウエア障害が他方で実行中の処理には全く影響を与えないからである。
【００６４】
図１０は、図４のドメイン・フィルタ４８０の４個の同一グローバル部分の１つを含む、図５の４個のグローバル・アドレス・アービタ５５Ｇ２の１つを詳細に示す。図１０におけるアービタ５５Ｇ２は、４系統のグローバル・アドレス・バス（ＧＡＢ）５５Ｇ１の内第１バス５５Ｇ１−０を制御すると仮定する。このアービタは、コンピュータ４００内の各システム・ユニット４１０上に配置された、図８のローカル・アドレス・アービタ（ＬＡＡ）８２０からの４本のＧＡＢ−要求線８２１の１本を受け取る。ＬＡＡ５５Ｌ４が、そのシステム・ユニット上のどのポートが、４系統のグローバル・バスの各々に対する次のアクセスを得るに値するかを決定したときはいつでも、その線８２１は、アービタ・ロジック１０１０によって制御されるＧＡＢを通じて、トランザクションを同報通信する要求をアサートする。コンピュータ４００は４個のＧＡＢ５５Ｇ１を有するので、各ローカル・アービタ５５Ｌ４から４個のグローバル・アービタ５５Ｇ２までに、４本の別個の線８２１が通っている。
【００６５】
調停ロジック１０１０は、多数の従来からのアルゴリズムのいずれかを用いて、１６本の許可線１０１３の内１本を立ち上げることによって、そのＧＡＢ５５Ｇ１（図５）の転送サイクルを、１６個のシステム・ユニット４１０の１つのＬＡＡ５５Ｌ４に割り当てる。従来のシステムにおけると同様、許可信号は、図８の線８２２を通じて、システム・ユニットのＬＡＡ５５Ｌ４の各々に直接戻ってくる。この場合フィルタ・ロジック１０２２を無視し、選択されたＬＡＳ５５Ｌ３から発したアドレス・トランザクションは、そのＧＡＢ５５Ｇ１を通じて、１６個の全システム・ユニット上の対応するＬＡＳに伝搬する。グローバル・アドレス・ルータ４５０の次の転送動作において、グローバル・アドレス・アービタ５５Ｇ２は、アドレスをその対応するＧＡＢ５５Ｇ１に通過させるために、ローカル・アドレス・スイッチ５５Ｌ３に信号を送るように、選択されたＬＡＡ５５Ｌ４に命令する。成功したトランザクションのGRANT線１０１３は、全てのシステム・ユニットに、それらのどれが当該ＧＡＢ５５Ｇ１上のトランザクションを発したかを示す。受信側システム・ユニットは、トランザクションを受け取ったときに、トランザクション自体にある情報から、ソース・ユニットを識別する。ローカル・データ・ルータ５４Ｌ２は、グローバル・データ経路群５４Ｇ１の内どれが、成功したトランザクションによって要求されるあらゆるデータを搬送するかについて、図５のデータ・アービタ５４Ｌ３，５４Ｇ２と交渉を行う。
【００６６】
本発明によるマルチ・ドメイン・コンピュータでは、ドメイン・フィルタ４８０のグローバル部分は、物理的に、各グローバル・アドレス・アービタ５５Ｇ２を伴う。１６個の可能なシステム・ユニット４１０の各々に１つある、クラスタ・レジスタ１０２１のバンク１０２０が、１６本の許可信号線１０１３を受ける。個々のクラスタ・レジスタ１０２１−ｉは各々、１６個のシステム・ユニット４１０−ｊ毎に、１つのビット位置１０２１−ｉ−ｊを有する。例えば、第１レジスタ１０２１−０の「ユニット−３」の位置における'1'の値は、システム・ユニット４１０−３が、システム・ユニット４１０−０と同じクラスタ内にあることを示す。以下の表は、上述の例示構成に対する、レジスタ１０２１の内容を示す。
【００６７】
【表４】
0004124507.tif 000005
【００６８】
１６個の可能なシステム・ユニット全てにレジスタが常に装備されている。レジスタ１０２１−８ないし１０２１−Ｆ内の値は、図４では実装されていないシステム・ユニットに対応し、重要ではない。しかしながら、「１」を全ての診断ビット位置（即ち、レジスタｉの位置ｉ）に割り当て、「０」をそれ以外の位置に割り当てることにより、システム内に既にある他のいずれのユニットとも干渉せずに、システム・ユニットをコンピュータ４００の動作中に差し込むことができると共に、単体の診断を直ちに実行することができる。
【００６９】
フィルタ・ロジック１０２２は、レジスタ１０２１内のクラスタ定義に応じて、許可線１０１３を線１０２３に結合する。各線１０２３は、それに対応するシステム・ユニット４１０に、「グローバル・アドレス有効」（ＶＡＬＩＤ）信号８２２として到達する。図３の３００のような通常のシステムでは、VALID信号は、単に、バス上の現トランザクションが有効であり、全てのシステム・ユニットに同報通信されていることを示すタイミング信号に過ぎない。一方、本システム４００では、異なるクラスタ内にある多数のシステム・ユニットが同じアドレスを有することができ、発生元と同じクラスタ内にある受信側はそのトランザクションを受けなければならず、他のクラスタ内にあるシステム・ユニットは、いずれのトランザクションが当該システム・ユニットに対応するアドレスを保持していても、それが発生していることを完全に無視し続けなければならない。
【００７０】
通常の単一ドメイン・コンピュータでは、図８のいずれのＬＡＡ５５Ｌ４からのHOLD信号８２５も、コンピュータ全体の他のシステム・ユニット４１０毎のＬＡＡ５５Ｌ４内のそのＧＡＢに向かう線８２６に伝搬されるだけである。しかしながら、コンピュータ４００では、各ＧＡＡチップ５５Ｇ２上にある他のフィルタ・ロジックの組１０２６によって、クラスタ・レジスタ１０２０によって定義されるように、HOLD信号８２５は同じハードウエア群内の他のシステム・ユニットに属する線８２６のみに到達することができる。ARBSTOP信号８２４も同様に動作する。１つのシステム・ユニットによってアサートされたSTOPは、他の全ＬＡＡに向かう入来ARBSTOP線８２６に単に接続されるのではなく、レジスタ１０２０によって指定された他のユニット群のみに到達する。このドメイン・フィルタ４８０のグローバル部分は、他の制御信号に対するフィルタ・ロジックの各組も同様に含んでいる。例えば、いずれかのシステム・ユニットの図９のキャッシュ・コントローラ９３０によってアサートされたCANCEL信号９３１は、フィルタ・ロジック１０２８が許す場合にのみ、入来CANCEL線９２３を通じてトランザクションをキャンセルすることができる。１０２２および１０２６〜１０２８のようなフィルタ・ロジックは全て、線１０２５によってクラスタ・レジスタ群１０２１に並列に接続されている。
【００７１】
制御ユニット１０２４は、クラスタ定義を動的に再構成するために、線１１４４がレジスタ群１０２１に異なる値をロードすることを許可する。実施態様の選択として、各グローバル・アービタ５５Ｇ２は同一の集積回路を占有し、その各々は、同じクラスタ・レジスタおよびフィルタ・ロジックの組を重複して含んでいる。クラスタ・レジスタの組には全て、同じ格納値集合がロードされる。
【００７２】
図１４は、１０２２または１０２６〜１０２８のような１組のドメイン・フィルタ・ロジックを実施する回路１４００の詳細を示す。図１４はロジック１０２２をパラダイム(paradigm)として用い、その場合の回路１４００に対する信号指定を示す。図示を容易にするために、図１４は、ビット線１０２５のみでなく、クラスタ・レジスタ１０２１自体も示している。
【００７３】
線１０２３−０はそのハードウエア・ドメイン・クラスタ内のいずれかのシステム・ユニットがトランザクションを開始したときはいつでも、システム・ユニット４１０−０へのVALID信号をアサートする。ユニット４１０−０に関連するGRANT信号１０１３−０は、レジスタ１０２１−０のビット１０２１−０−０が「１」値を含み、当該ユニット４１０−０がそれ自体のクラスタの中にあることを示す場合、ＡＮＤゲート１４０１−００を満足する。次に、論理ＯＲゲート１４０２−０が出力１０２３−１をアサートし、それをシステム・ユニット４１０−０に戻す。システム・ユニット４１０−１からのGRANT線１０１３−１がアサートされると、これら２個のユニットが同じクラスタ内にある場合、ユニット４１０−０に向かう線１０２３も立ち上げる。同じクラスタ内にある場合、１０１３−１が立ち上がったときに、レジスタ１０２１−０のビット１（簡略化のためビット１０２１−０−１と呼ぶ）の値「１」がＡＮＤゲート１４０１−０１およびＯＲ１４０２−０を満足する。このバンク内の残りの１４個のＡＮＤゲートも、１０２１−０−Ｆを通じて、レジスタ・ビット群１０２１−０−２に対して同様に動作する。
【００７４】
ゲート１４０１−１０ないし１４０１−１Ｆおよび１４０２−１は、同様に機能し、同じドメイン・クラスタ内のシステム・ユニットがトランザクションを申し出た場合にはいつでも、VALID信号１０２３−１をシステム・ユニット４１０−１に対して生成する。１４個の追加のゲート・バンクが、１０２３−Ｆを通じて、残りの線を処理する。通常、レジスタ群１０２１の内容は対角行列(diagonal matrix)を形成するので、ビット１０２１−ｉ−ｊは常にビット１０２１−ｊ−ｉと同じ値を有する。また、各ユニットは通常それ自体のクラスタのメンバであるので、全ての主対角ビット１０２１−ｉ−ｉは常に「１」である。
【００７５】
図１１は、図４のコンフィギュレータ４２０がコンピュータ４００内においてドメイン群およびクラスタ群を動的に設定する態様を示す。
【００７６】
図４の通常の制御およびサービス・ユニット４７０は、標準的なワークステーション１１２０と通信する、既に使用可能な専用サービス・プロセッサ１１１０の形態を取り、遠隔コンソールとして機能する。これら２個のユニットは、ケーブルまたはその他のリンク１１２２によって結合されている、標準的なアダプタ１１１１，１１２１を通じて互いに通信する。コンソール１１２０は、アダプタ１１２３によって、それ自体の入出力装置（図示せず）に接続されてもよい。サービス・プロセッサのＩ／Ｏアダプタ群１１１２は、コンピュータ４００内の多数の機能を感知し制御する。例えば、線１１１３は、コンピュータ全体のために、給電および冷却サブシステム１１３０にインターフェースする。線１１１４は、図４の制御分配手段４４０内の多数の線に接続する。
【００７７】
コンピュータ４００内に実施されている通常の機能の１つとして、１組の線１１１５を通じて、１１１６で示すような種々の要素に、記憶されている検査パターンを送ることにより、その論理回路に対して検査を行うことができる機能がある。これらの線の従来の機能は、K.P. Parker, THE BOUNDARY-SCAN HANDBOOK (Kluwer Academic Publishers, 1992)のような引用文献に記載されている、境界スキャン検査(boundary-scan test)を実施するためにある。当業者は、通常このプロトコルを「ＪＴＡＧ規格」と呼んでいる。
【００７８】
コンフィギュレータ４２０は、追加機能に対して、既存のJTAG線１１１５を選定する(coopt)。通常、これらの線は、コンピュータ４００全体にわたる多くのチップに従来からのアドレス線およびデータ線を提供し、これらのチップの機能を検査することを目的としている。ＬＡＳ５５Ｌ３およびＧＡＡ５５Ｇ２のためのチップの中では、図９の制御ロジック９４７、および図１０の制御ロジック１０２４は、JTAG線１１４３，１１４４上のある所定の信号の組み合わせを検出する。これらの線は、ドメインおよびクラスタ仕様を線１１４３に搬送し、図５および図９に示すように、選択されたシステム・ユニット４１０のローカル・アドレス・ルータ群５５Ｌ３内のフィルタ・レジスタ群９４０の内容をロードする。また、線１１４２は、クラスタ仕様を線１１４４に搬送し、図５および図１０に示すように、グローバル・アドレス・アービタ群５５Ｇ０と関連するフィルタ・レジスタ１０２０にロードする。JTAGまたは他のかかる線を既に適所に有していないシステム群４００は、サービス・プロセッサ１１１０からの専用線を用いて、容易に制御線１１４３，１１４４として使用したり、構成機能を実行するために他の線に切り替えることができる。これらの線は、単に、偶然この特定の実施態様において容易に使用可能であるに過ぎない。他の代替案として、レジスタ９４０，１０２０をシステム・メモリ空間内の小さなメモリ・ブロックとして扱うというものがある。先に注記したように、コンピュータ４００は、'10 0000 0000'から'1F FFFF FFFF'までのかかる空間を、その全範囲として有している。
【００７９】
サービス・プロセッサ４７０の形態にはなんらクリティカルな点はない。場合によっては、この機能のために、物理的に別個の実体を有することなく、通常のシステム自体の一部を使用することですら可能な場合もある。実際、好適なコンピュータ４００は、必要であれば、システム・ユニット自体が、ドメイン・コンフィギュレータの機能のいくつかを提供することを可能にしている。システム・ユニット４１０内で実行されるオペレーティング・システム内の特権ソフトウエア(privileged software)も、現行の共有メモリ・ブロックを指定し直すために、図９の共有メモリ・レジスタ９４５，９４６に書き込むことができる。また、サービス・プロセッサも、システム・ユニット群がＩ／Ｏコントローラ１１１２内のステータス・ワードの構成ビットをセットすることによって、選択的にレジスタ９４４に書き込むことを可能にし、これは制御線１１１４の１本に現れる。
【００８０】
図１２は、コンピュータ４００内のドメイン群およびクラスタ群を動的に構成する方法１２００を記載したものである。図１２において右向きのブロックは遠隔コンソール１１２０内で実行され、左向きのブロックは、先に述べた実施例の図１１のサービス・プロセッサ１１１０において実行される。ブロック群１２１０は、構成プロセスを設定する。ブロック１２１１はオペレータの命令に応答して、構成モードを開始する。ブロック１２１２はレジスタ９４０，１０２０をデフォルト値に初期化する。好ましくは、全てのレジスタ９４２は、それらをそれ自体のドメインに置く位置に「１」ビット、その他の位置に「０」を受ける。全てのレジスタ９４４〜９４６は、共有メモリがエクスポートされないことを示す値を受ける。レジスタ群１０２０は、好ましくは、対角ストライプ(diagonal stripe)の１ビットを除いて「０」を含む。これは、各システム・ユニットがそれ自体クラスタ内にあることを示す。
【００８１】
ブロック群１２２０は、図４のドメイン・フィルタ４８０の構成を設定する。ブロック１２２１において、遠隔コンソールにおけるオペレータが構成すべき特定のドメインを選択し、当該ドメインに属するシステム・ユニット４１０の番号をブロック１２２２において入力する。次に、サービス・プロセッサ１１１０が線１１１５，１１４２に信号を送出し、ブロック１２２３において、図９のドメイン・マスク・レジスタ９４２に適正な値をロードする。ブロック１２２４は、各ドメインをそれ自体のクラスタにするために適切なレジスタ群１０２０を設定する。このステップはいずれの時点で実行してもよいが、本実施例では、ドメイン群がクラスタに組み込まれる場合にも、クラスタ・レジスタを設定することが必要である。ブロック１２２５は、オペレータが構成すべき追加のドメインを指定し終わったなら、制御をブロック１２２１に戻す。その他の場合、ブロック１２２６は、設定すべきマルチ・ドメイン・クラスタが未だあるか否かについて問い合わせを行う。
【００８２】
未だある場合、ブロック１２３０はいずれか所望の共有メモリを設定する。ブロック１２３１において、オペレータは、メモリをエクスポートするシステム・ユニット４１０の１つを選択し、ブロック１２３２において、当該メモリをインポートするドメインを選択する。（システム・ユニットは、その物理的に実施されているメモリが他のシステム・ユニットに使用可能な場合、メモリを「エクスポート」し、他のシステム・ユニットは、それがインポート側ユニット上に位置しているかのように、そのメモリを「インポート」する。）ブロック１２３３において、図９に関連して説明したように、適切なレジスタ群９４４にロードする。ブロック１２３４では、図１０に関連して説明したように、レジスタ群１０２０内の適切なビットをセットする。ブロック１２３５において、共有メモリ範囲の基底アドレスの値をオペレータから受け取る。ブロック１２３６では、これを適正なＳＭＢレジスタ群９４５に入力する。ブロック１２３７では、対応する制限アドレス値を受け取り、ブロック１２３８においてこれをＳＭＬＲ群９４６にロードする。オペレータが追加のクラスタを定義したい場合、ブロック１２２６は制御をブロック１２３１に戻す。その他の場合、手順１２００は終了する。図１２に示す一連のステップには大多数の変形が可能である。同様に、コンピュータ上の他のタスクに関するルーチン１２００のタイミングも重要ではない。更に、コンピュータ４００内の特権ソフトウエアが、オペレータの代わりにルーチン１２００を実行してもよい。破線１２０１は、再構成が、コンピュータ・ハードウエアに手作業の変化を加えることなく、オペレータまたはソフトウエアのいずれかによって、繰り返し実行可能であることを象徴的に示している。
【００８３】
システム・ユニット群４１０は、任意にドメイン内に組み込むことができるが、明らかにドメインおよびクラスタは全て、少なくとも１つのプロセッサが実装されている少なくとも１つのシステム・ユニット、およびメモリを含むシステム・ユニットを含んでいなければならない。ドメインまたはクラスタは、殆ど常に、その１枚以上のシステム・ボード上に、いくらかのＩ／Ｏ設備を含んでいる。これらの資源がどのようにしてドメインまたはクラスタ内の種々のシステム・ボード間で分配されるかは、しかしながら、任意である。方法１２００は、システム４００全体およびそのオペレーティング・システム（群）の正常動作の間に、ドメイン群およびクラスタ群を構成することができる。複雑性および些細な間違いの可能性を回避するために、オペレーティング・システム群のいずれもがブートされる前に、システムが特殊状態にある場合にのみ再構成を許可することが賢明である。
【００８４】
図１３は、典型的なトランザクション１３００の簡略図であり、正常動作の間、即ち、図１２のブロック１２４２がコンピュータ４００の構成を完了した後の、コンピュータ４００におけるドメイン群およびクラスタ群の効果を強調したものである。トランザクション１３００は、コンピュータ４００が１６個のシステム・ユニットの最大の補集合(complement)を含むことを想定している。トランザクションは線１３０１にて開始する。
【００８５】
ブロック１３１０は、図１３の多数の列で象徴化されているように、全てのシステム・ユニット４１０上で実行される。これらは、異なる２個のシステム・ユニット間または同じユニット内のいずれかにおいて、トランザクション要求を開始する。要求群は、１個以上のシステム・ユニットのいずれか１個以上のポートがブロック群１３１１のいずれかにおいてトランザクションを要求したときにはいつでも、非同期にかつ同時に進行する。ブロック群１３１２において、ローカル・アービタ５５Ｌ４は、多数のトラフィック等化優先アルゴリズムのいずれかに基づいて、システム・ユニット上の要求元ポートを１個選択し、処理を進める。
【００８６】
ブロック群１３２０は、全てのトランザクションについてアドレスを送信する。線１３２１−０ないし１３２１−Ｆで示すように、各ブロック１３２２は、全てのシステム・ユニット４１０−０ないし４１０−Ｆからトランザクション要求を受け取り、システム・ユニットへのバス群５５Ｇ１の１つに許可を与える。４個のグローバル・アドレス・アービタ５５Ｇ２の各々は標準的な公正方法を用いて、ブロック１３２２を並列に実行し、その特定バス５５Ｇ１を競合するトランザクション間で割り当てる。次に、ブロック１３２３は、ライン１３２４によって示すように、そのブロック１３２２によって選択されたシステム・ユニットからのアドレスを、１６個のシステム・ユニット全てに同報通信する。ここでも、本実施態様における４系統のバス５５Ｇ１の各々は、かかる他のバス全てと同時に、別個のアドレスを同報通信することができる。
【００８７】
ステップ１３３０において、各バス５５Ｇ１上のトランザクションを濾過し、適切なシステム・ユニット４１０−０ないし４１０−Ｆのみがトランザクションに作用することを許可されるようにする。別個のブロック群１３３０が各システム・ユニット毎の各グローバル・アドレス・バス毎に存在するので、本実施例では、４ｘ１６＝６４個のブロック１３３０がある。各ブロック１３３０は、レジスタ群１０２０から同時に、そのシステム・ユニットが、そのバス上のトランザクションの送出側ユニットと同じクラスタ内にあるか否かについて判定を行う。（単一のドメインはそれ自体が、レジスタ群１０２０においてクラスタとして定義されることを思い出されたい。）ない場合、システム・ユニットはこのトランザクションを無視し、制御は出力１３０２に渡る。その他の場合、制御は１３４０に渡る。
【００８８】
ブロック群１３４０の別個の組が、各システム・ユニット内の各グローバル・アドレス・バスに対して現れる。即ち、４ｘ１６＝６４組のブロックが現れる。ブロック群１３４１は、トランザクションが線９２２に沿って図９の比較器９４１に移動する際に、ＧＡＢ５５Ｇ１上のトランザクション自体からソース・ユニットの番号を読み出す。ソース・ユニットが、それが位置するユニットと同じドメイン内にないことを、ドメイン・マスク・レジスタ９４２が明らかにした場合、ブロック１３４１は制御をブロック１３４２に渡す。共有メモリ・レジスタ９４４が、そのシステム・ユニットがメモリをソース・ユニットと共有していることを検出した場合、ブロック１３４２からブロック１３４３に移動する。線９２２上を搬送されているトランザクションのアドレスが、レジスタ９４５内に格納されている基底アドレスを超えることを、比較器９４１が示す場合、ブロック１３４４は、そのアドレスが、レジスタ９４６内に格納されている共有メモリの上限より下にあるか否かについて検査を行う。そのシステム・ユニットが現トランザクションには関わっていないことを示す各ブロック１３３０の各組について、終了１３４５において、その場所におけるトランザクションを終了する。しかし、いずれかのフィルタ・ブロック・チェーン１３３０〜１３４０が同じドメイン、または同じクラスタおよび適切なアドレス範囲を感知した場合、線１３４６は、当該システム・ユニットに対するブロック１３５０に制御を渡す。
【００８９】
ブロック１３５０は、要求元システム・ユニットから、目標ユニット内の適正な宛先への実際のトランザクションを実行する。これには、データ・ルータ４４０を通じてのあらゆる要求データの転送が含まれる。（先に注記したように、多くの異なるタイプのトランザクションがある）。点１３０２は、トランザクションの完了を印すものである。いずれの所与の時点においても、フローチャート１３００の同一ブロックまたは異なるブロックにおいて、いくつかの異なるトランザクションが進行中である可能性があり、その各々が他とは独立して進行する。
【００９０】
図１５は、好適実施例に追加して、他のタイプのハードウエア障害がそれ自体のドメイン・クラスタ外のシステム・ユニットに影響を与えるのを防止することを可能にする、追加のドメイン・フィルタを示す。ドメイン・フィルタ４８０は、これまで述べたように、システム・ユニット４１０または図５のアドレス・ルータ５５Ｇ０内のエラーの影響が、同じドメイン・クラスタ内にはない他のシステム・ユニットに及ぶのを制限する。
【００９１】
図５との関連およびその他において説明したように、トランザクションは、１つのシステム・ユニットから、グローバル・データ・ルータ５４Ｇ０上の他のシステム・ユニットへのデータ転送を伴う場合がある。グローバル・データ・アービタは、システム・ユニット全てから従来の信号１５１０を受け取る。例えば、システム・ユニット４１０−０のローカル・データ・アービタ５４Ｌ３からの線１５１０−０は、当該ユニット４１０−０から、図４のシステム・ユニット４１０−０ないし４１０−Ｆの特定の１つに転送を要求する場合がある。線１５０１−１は、システム・ユニット４１０−０ないし４１０−Ｆのどれが、ユニット４１０−０からの転送を受け取るか等を指定する。調停出力１５２０は、データ線１５３０の１本からのデータが、線１５３０の他の１本に流れることを可能にすることによって、データ経路を確立する。例えば、ロジック５４Ｇ２が、データをユニット４１０−０から４１０−１に搬送する、線１５１０−０の要求を許可した場合、FROM-0線１５２１はデータ・バス５４Ｇ１を線１５３０−０に結合し、TO-1線１５４０−１は直接TO-1線１５８０−１に結合され、線１５３０−１がデータをユニット４１０−１に送出可能とする。
【００９２】
正常状態の下では、この構成はコンピュータ４００のドメイン構造には透過的である。しかしながら、誤ってデータを違うシステム・ユニット（同じドメイン・クラスタ内のものではないシステム・ユニット）に送出する障害は、他のクラスタにおけるシステム・ユニットの動作を中断させる可能性がある。例えば、図４のユニット４１０−０が同じドメインＳ１内のユニット４１０−３にデータを送ろうとしたが、エラー信号がそれを代わりに（または付加的に）ユニット４１０−７に送った場合を想定する。このような障害は、ドメイン・フィルタ４８０によって実施されている分離を迂回し、ドメインＳ１がドメインＳ２，Ｓ３の動作に影響を及ぼす可能性がある。これを「トランスグレッション・エラー(transgression error)」と呼ぶ。
【００９３】
別のフィルタ・ロジック１５５０が、実行しようとしたクラスタ外データ転送を通知することによって、この可能性を根絶する。図１０のレジスタ群１０２０と同一の、別の組のクラスタ・レジスタ１５６０がコンピュータ４００のクラスタ定義のコピーを保持し、線１５６５を通じてそれらをロジック１５５０に渡す。ロジック１５５０は図１４のフィルタ・ロジック１４００と同様に、ＡＮＤ／ＯＲ回路で構築する。ロジック１５５０は、２組の出力を生成する。出力１５７０は、図８および図１０に示した信号８２４と同じ種類のARBSTOP信号を生成する。これらは、不適切なデータ転送を開始したソース・システム・ユニットを停止させる。出力１５８０は、不適切な要求を行ったソース・ユニットと同じクラスタにはないあらゆるシステム・ユニットに、この転送が影響を及ぼすのを防止する。上述の例を続けると、システム・ユニット群４１０、要求線１５１０等における障害のために、データ経路５４Ｇ１が正しくない組の線１５３０を活性化する可能性がある。しかしながら、データ・ルータ・フィルタ・ロジック１５５０は、レジスタ１５６０内のビットによって定義されているように、ユニット４１０−０から適正な宛先は、同じドメイン・クラスタ内のユニット４１０−１，４１０−２，４１０−３のみであることを検出する。４１０−７を宛先として指定するTO-7のような不適切な信号１５４０は、ARBSTOP-0線１５７０−０を活性化し、このユニット４１０−０が違法の転送を行おうとしたことを示し、このユニットを停止する。即ち、ARBSTOP信号はソース・ユニット、および同じドメイン・クラスタ内の他のユニットに到達するので、ドメイン・クラスタＣＡ内のエラーは、当該ドメイン・クラスタＣＡ内のシステム・ユニットに影響を与えるに過ぎない。
【００９４】
また、ロジック１５５０は、クラスタ・レジスタ群１５６０内の定義を用いて、FROM信号を発行したユニットと同じクラスタ内にない宛先ユニットに、いずれのTO信号１５４０が到達するのも禁止する。本例では、TO線１５４０−０ないし１５４０−３のいずれかがアサートされると、対応するTO線１５８０−０ないし１５８０−３に渡され、対応するシステム・ユニット４１０−０ないし４１０−３をイネーブルし、線１５３０−０ないし１５３０−３上のデータを受け取る。一方、線１５２０−０上のFROM信号およびTO信号１５５０−７の同時発生、即ち、異なるクラスタ内のユニットに向けたものは、ロジック１５５０によって阻止される。したがって、対応するTO線１５８０−７は休止状態のままであり、データ経路５４Ｇ１はデータをシステム・ユニット４１０−７に渡さない。このように、フィルタ・ロジックは、トランスグレッション・エラーが発生すると、データ転送を開始したユニットにARBSTOPを送出することによって、このユニットを遮断し、そのTO線を禁止することにより、この転送が宛先ユニットにいかなる影響を及ぼすことも防止するので、当該ユニットには実際に何の転送も許可されることはない。
【００９５】
図１５は、図４のクロスポイント・データ・ルータ４４０の一データ経路を示すに過ぎない。追加のデータ経路も同様に機能し、単に追加の組のフィルタ・ロジック１５５０を必要とするだけである。更に、各データ経路は、更に障害の分離や冗長性のために、多数の部分に分割してもよく、図１５の動作に影響を与えることはない。
【図面の簡単な説明】
【図１】従来技術のバス指向マルチプロセッサ・デジタル・コンピュータの概念概略図。
【図２】多数のシステム・ユニットを有するコンピュータの同様の概略図。
【図３】本発明の概念にしたがって、図２のコンピュータをシステム・ドメインおよびクラスタに分割した場合の構成図。
【図４】本発明がいかにして図２のコンピュータを図３のドメインおよびクラスタに分割するかを示す図。
【図５】他のコンピュータ・システム・ユニットの関連部分を含む、図４の完全に構成したシステム・ユニットのブロック図。
【図６】図５のポート・コントローラの詳細図。
【図７】図５のメモリ・コントローラの詳細図。
【図８】  図５のローカル・アドレス・アービタの詳細図。
【図９】本発明によるドメイン・フィルタのローカル部分を含む、図５のローカル・アドレス・ルータの詳細図。
【図１０】ドメイン・フィルタのグローバル部分を含む、図５のグローバル・アドレス・アービタの詳細図。
【図１１】図４のドメイン・コンフィギュレータを示す図。
【図１２】本発明にしたがってコンピュータをクラスタ化システム・ドメインに構成する方法を示すフロー・チャート。
【図１３】本発明のドメイン・フィルタリングを強調した、トランザクション処理のフロー・チャート。
【図１４】ドメイン・フィルタ内で使用する論理回路の詳細図。
【図１５】ドメイン・フィルタの任意の更に別のグローバル部分を含む、図５のグローバル・データ・アービタを示す詳細図。
【符号の説明】
１００    コンピュータ
１１０    プロセッサ
１２０    メモリ・ボード
１３０    Ｉ／Ｏボード
１４０    データ・バス
１５０    アドレス・バス
１６０    制御分配バス
１７０    サービス・ユニット
２００    アーキテクチャ
２１０    システム・ユニット
２４０，２５０    高速ルータ
２６０    制御分配バス
３００    コンピュータ
３１０    システム・ボード
３４０    データ・ルータ
３５０    アドレス・ルータ
３６０    制御分配手段
３７０    システム・コントローラ
４００    コンピュータ
４１０    システム・ユニット
４４０    データ・ルータ
４５０    アドレス・ルータ
４６０    制御バス
４８０    ドメイン・フィルタ
５１０    プロセッサ・サブシステム
５１１    マイクロプロセッサ
５１２    キャッシュ
５２０    メモリ・サブシステム
５２１    メモリ
５２２    パック／アンパック・モジュール
５３０    入出力サブシステム
５３１    システムＩ／Ｏバス
５３２    Ｉ／Ｏアダプタ
【図１】
0004124507.tif 000006
【図２】
0004124507.tif 000007
【図３】
0004124507.tif 000008
【図４】
0004124507.tif 000009
【図５】
0004124507.tif 000010
【図６】
0004124507.tif 000011
【図７】
0004124507.tif 000012
【図８】
0004124507.tif 000013
【図９】
0004124507.tif 000014
【図１０】
0004124507.tif 000015
【図１１】
0004124507.tif 000016
【図１２】
0004124507.tif 000017
【図１３】
0004124507.tif 000018
【図１４】
0004124507.tif 000019
【図１５】
0004124507.tif 000020