JPH10228458A - Multiprocessor computer having configurable hardware system domain - Google Patents

Multiprocessor computer having configurable hardware system domain

Info

Publication number
JPH10228458A
JPH10228458A JP9342920A JP34292097A JPH10228458A JP H10228458 A JPH10228458 A JP H10228458A JP 9342920 A JP9342920 A JP 9342920A JP 34292097 A JP34292097 A JP 34292097A JP H10228458 A JPH10228458 A JP H10228458A
Authority
JP
Japan
Prior art keywords
domain
units
address
unit
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9342920A
Other languages
Japanese (ja)
Other versions
JP4124507B2 (en
Inventor
P Dorogichen Daniel
ダニエル・ピー・ドロギチェン
J Mcclauclin Andrew
アンドリュー・ジェイ・マククロクリン
E Aneshanzuree Nicholas
ニコラス・イー・アネシャンズレー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH10228458A publication Critical patent/JPH10228458A/en
Application granted granted Critical
Publication of JP4124507B2 publication Critical patent/JP4124507B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PROBLEM TO BE SOLVED: To separate an entire computer into many independent units from the viewpoint of both software and hardwares by allowing a global address router and a global data router to interconnect different system unit groups. SOLUTION: Each LAS 55L3 on a system unit is connected to one of four different GABs 55G1. An arbiter 55L4 physically consists of four same parts, and each of the parts responds to an access request from lines 811 and communicates with the GAA 55G2 and one of the different LAS 55L3. That is, entire functions of a local part where address router 450 is connected and a global part establishes schedule of the four GABs 55G1 among competitive requests from six ports of all of system unit group 410. The decision to all of the four GABs 55G1 is mutually and simultaneously processed in LAA 55L4 of each system unit.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、電子コンピュータ
に関し、更に特定すれば、多数のプロセッサを可変集合
即ちドメイン群に動的に分離可能とし、処理上の独立性
を得ると共に、ハードウエアのエラーにも拘わらず動作
し続けることを可能にするマルチプロセッサ・アーキテ
クチャに関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an electronic computer, and more particularly to an electronic computer, in which a large number of processors can be dynamically separated into a variable set, that is, a group of domains, to obtain processing independence and to reduce hardware errors. Nevertheless, it relates to a multi-processor architecture that allows it to continue to operate.

【0002】[0002]

【従来の技術】多数の単純な端末を駆動する集中型メイ
ンフレーム・コンピュータの多くは、パーソナル・コン
ピュータのネットワークによって置き換えられている。
これらのネットワークの殆どは、1台以上のサーバ・コ
ンピュータを組み込んでおり、そのサーバ・コンピュー
タは個々のユーザのためにデータやプログラムを格納し
ている。実際に、サーバは、メインフレームの属性の多
くを引き継いだ、高性能スーパーサーバ(superserver)
に発展しつつある。しかしながら、スーパーサーバは、
ネットワーク型システムにおいては機能が異なってお
り、したがってスーパーサーバのアーキテクチャは、メ
インフレームまたはパーソナル・コンピュータのアーキ
テクチャとは異なるものでなければならない。
2. Description of the Related Art Many centralized mainframe computers that drive many simple terminals have been replaced by networks of personal computers.
Most of these networks incorporate one or more server computers, which store data and programs for individual users. In fact, the server is a high-performance superserver that has inherited many of the attributes of the mainframe.
It is developing into. However, the super server
Functionality is different in networked systems, and therefore the architecture of the superserver must be different from the architecture of the mainframe or personal computer.

【0003】[0003]

【発明が解決しようとする課題】スーパーサーバが他の
アーキテクチャとは領域を異にするのは、それらが1つ
以上のオペレーティング・システム−または1種類のオ
ペレーティング・システムの1つ以上のバージョンを、
異なるジョブのためまたは異なるユーザのために同時に
実行可能でなければならないからである。
What sets superservers apart from other architectures is that they contain one or more operating systems-or one or more versions of one type of operating system,
Because it must be able to run simultaneously for different jobs or for different users.

【0004】また、スーパーサーバは、可用性および信
頼性が非常に高くなければならない。これらは、ハード
ウエア・エラーおよびソフトウエア・エラーに対する高
い耐性を有していなければならず、コンピュータが実行
している間はサービスを提供可能であることが望まし
い。パーソナル・コンピュータの単一(または密接に結
合された多数の)プロセッサ・アーキテクチャとは異な
り、更にスーパーコンピュータの大量(超)並列設計と
も異なり、スーパーサーバは、予測不可能な資源要求を
有する、広範囲にわたる多数のしかも多種多様のタスク
を、実行する柔軟性を必要とする。
[0004] Also, the super server must have very high availability and reliability. They must be highly resistant to hardware and software errors, and should be able to provide services while the computer is running. Unlike the single (or many closely coupled) processor architectures of personal computers, and unlike the massively (super) parallel design of supercomputers, superservers have a wide range of unpredictable resource requirements. Need the flexibility to perform a large number and wide variety of tasks.

【0005】多くの方法では、スーパーサーバは、超大
型コンピュータとしておよび小型コンピュータとして実
行することが要求される。これは、それらのアーキテク
チャに多数の矛盾(競合)する要求を行うことになる。
[0005] Many methods require that the superserver run as a very large computer and as a small computer. This places a number of conflicting (conflicting) requirements on those architectures.

【0006】[0006]

【課題を解決するための手段】本発明は、前述の問題お
よびその他の関連する問題を、ソフトウエアで構成可能
な「ハードウエア・ドメイン群」によって、ソフトウエ
アおよびハードウエア双方の観点から、コンピュータ全
体を多数の独立ユニットに分離する、総合的なコンピュ
ータ・アーキテクチャを提供する。即ち、異なるドメイ
ンが異なるオペレーティング・システムおよびアプリケ
ーションを、互いに独立して実行するだけでなく、他の
ドメインで発生した致命的(重大)なハードウエア・エ
ラーとは無関係に動作するものである。「クラスタ(clu
ster)」によって、複数のドメインがメモリ・アドレス
の共通範囲を共有することを可能とし、データ転送の高
速化を図る。特権的構成−制御ソフトウエアが、物理的
にコンピュータを変更することなく、コンピュータ資源
を複数のドメインおよびドメイン・クラスタに分割する
こと、およびいずれの時点においても複数のドメインお
よびクラスタを再構成することを、オペレータまたはソ
フトウエア・プロセスに可能にさせる。このアーキテク
チャを用いるコンピュータは、パーソナル・コンピュー
タやワークステーション・コンピュータにおいて共通に
用いられているマイクロプロセッサのような、容易に入
手可能な市販のコンポーネント(commodity component)
で構築することができる。
SUMMARY OF THE INVENTION The present invention addresses the foregoing and other related problems by means of software configurable "hardware domains," which are used in terms of both software and hardware. Provides a comprehensive computer architecture that separates the whole into a number of independent units. That is, different domains not only run different operating systems and applications independently of each other, but also operate independently of fatal (serious) hardware errors that have occurred in other domains. "Cluster (clu
ster) "allows a plurality of domains to share a common range of memory addresses, thereby speeding up data transfer. Privileged configuration-the control software partitions computer resources into multiple domains and domain clusters without physically modifying the computer, and reconfigures multiple domains and clusters at any one time Is enabled by an operator or software process. Computers using this architecture are readily available, commercially available component components, such as microprocessors commonly used in personal and workstation computers.
Can be built with

【0007】本発明は、完全に分離された環境におい
て、新しいバージョンのソフトウエアの検査(テスト)
を行いつつ、コンピュータの残りの部分で通常のタスク
を継続することが可能である。コンピュータの一部分が
拡張された診断または予防的保守を実行し、その一方
で、残りの部分が同時に通常のユーザ・タスクを実行す
ることができる。同じコンピュータの異なる部分が、異
なるオペレーティング・システム・ソフトウエア(また
は、同じソフトウエアの異なるバージョン、異なるチュ
ーニング(tuning)、またはパラメータ設定)の
下で実行可能であり、タイムシェアやデータベース質問
(query)、またはオンライン・トランザクション
処理や意思決定支援システムのような、複数の異なる種
類の作業負荷の最適化を図ることができる。
[0007] The present invention is directed to testing new versions of software in a completely isolated environment.
While continuing normal tasks on the rest of the computer. One part of the computer can perform extended diagnostics or preventive maintenance, while the other part can perform normal user tasks at the same time. Different parts of the same computer can run under different operating system software (or different versions of the same software, different tunings or parameter settings), time sharing and database queries Or a plurality of different types of workloads, such as online transaction processing and decision support systems.

【0008】コンピュータの各部分は、他の部分のソフ
トウエア・エラーだけでなく、ハード・メモリ・エラー
やアドレス要求ラインの誤動作のようなハードウエアの
障害にも不感応である。本発明によるコンピュータは、
ハードウエアの障害によって、同一ハードウエア・ドメ
イン内にはないいずれのプロセッサやメモリにも、アド
レスまたはデータ信号が誤って転送されることを防止す
ると共に、多くのシステム全体に関係する制御信号が異
なるドメイン内のハードウエアに影響を与えるのを物理
的に防止する。
Each part of the computer is insensitive to hardware failures, such as hard memory errors and malfunctioning address request lines, as well as software errors in other parts. The computer according to the present invention
Hardware faults prevent address or data signals from being accidentally transferred to any processor or memory not in the same hardware domain, and many system-wide control signals differ. Physically prevent the hardware in the domain from being affected.

【0009】更なる利点も、当業者には明白であろう。
例えば、双方向(対話的)ジョブは、異なるドメインで
実行することにより、バッチ・ジョブから分離すること
ができる。生産(プロダクション)タスクは、1つのド
メインにおいて中断することなく実行し、開発または問
題の分離を他のドメイン内で同時に行うことも可能であ
る。新しくリリースされるソフトウエアの互換性を、古
い版(バージョン)を同時に実行する同じシステム上で
検査することができる。ときには、複数の組織(organiz
ation)が同じシステムを共有し、別個のドメインを使用
し、各々がそれら自体のタスクに対するある程度のレベ
ルの資源占有性を保証することができ、この占有性は、
容易にスケジュールすることが可能であると共に、構成
要素を物理的に置き換えたり、あるいは信号線を手作業
で切り替えることもなく、ソフトウエア制御の下でドメ
インおよびクラスタを再構成するだけで、短い通知をも
って変更することも可能である。
[0009] Further advantages will be apparent to those skilled in the art.
For example, interactive (interactive) jobs can be separated from batch jobs by running in different domains. Production tasks can run uninterrupted in one domain and development or problem isolation can occur simultaneously in other domains. The compatibility of the newly released software can be checked on the same system running the old version at the same time. Sometimes, multiple organizations (organiz
ation) share the same system and use separate domains, each of which can guarantee some level of resource occupancy for their own tasks,
Can be easily scheduled and short notices by simply reconfiguring domains and clusters under software control without physically replacing components or manually switching signal lines It is also possible to change with.

【0010】端的に言えば、本発明によるコンピュータ
は、多数の個別システム・ユニットを有し、その各々が
プロセッサ、メモリ・セグメント、および/または入出
力アダプタを有する。中央相互接続部が、システム・ユ
ニット間でアドレスおよびデータを移送する。ドメイン
・コントローラが、ドメイン・フィルタを動的に構成
し、互いに独立して機能し、他のドメイン内の重要なハ
ードウエア・エラーにさえも無関係な複数のドメインを
形成する。1つのドメインのプロセッサ、メモリおよび
I/Oは、単一の一元化したコンピュータ・システムと
して機能し、それらの物理的位置は、同じシステム・ユ
ニットにあろうが、異なるシステム・ユニットにあろう
が無関係である。加えて、複数のドメインが動的にクラ
スタに相互接続し、それらのメモリ空間のいくつかまた
は全てを共有することができる。複数のドメインおよび
クラスタは、ソフトウエア制御の下で設定されるレジス
タの内容によって定義される。
[0010] Briefly, a computer according to the present invention has a number of individual system units, each having a processor, a memory segment, and / or an input / output adapter. A central interconnect transports addresses and data between system units. A domain controller dynamically configures the domain filters and functions independently of one another to form domains that are independent of even significant hardware errors in other domains. One domain's processors, memory and I / O function as a single, centralized computer system, the physical locations of which may be on the same system unit or on different system units It is. In addition, multiple domains can dynamically interconnect with the cluster and share some or all of their memory space. The domains and clusters are defined by register contents set under software control.

【0011】種々のシステム・ユニット間の通信は全
て、相互接続部上の「トランザクション」として発生す
る。トランザクションはメモリ・アドレスを含むことが
できるが、含まないものもある。通常のメモリ・トラン
ザクションは、非特権的アプリケーション・プログラム
が行うような、潜在的にキャッシュ可能な主メモリに対
して行われる。他のトランザクションは、(キャッシュ
不可能な)システム制御レジスタに対するもの、I/O
アダプタが使用するアドレス空間の部分に対するものが
あり、後者のものは、システム・ブート、OSカーネ
ル、およびI/Oドライバのような、特権モード・コー
ドによってのみアクセス可能である。更に他のトランザ
クションには、割り込みをあげることができる。
[0011] All communications between the various system units occur as "transactions" on the interconnect. Transactions can include memory addresses, but some do not. Normal memory transactions are performed on potentially cacheable main memory, such as by non-privileged application programs. Other transactions are to system control registers (non-cacheable), I / O
Some are for the portion of the address space used by the adapter, the latter being only accessible by privileged mode code, such as system boot, OS kernel, and I / O drivers. Still other transactions can be interrupted.

【0012】複数のドメインは、ソフトウエアおよびハ
ードウエア双方において、互いに分離されている。個々
のサブシステムは、複数のシステム・カード、ボード、
または、メモリおよび/またはI/O機能を処理するた
めのハードウエアを潜在的に内蔵可能な他の複数のユニ
ットを備えることができる。個々のシステム・ユニット
は全てが完全なプロセッサの機能全てを内蔵しなければ
ならない訳ではないが、ドメインを形成する1組のユニ
ットは、とりわけ、完全なデータ処理システムの機能全
てを含んでいなければならない。単一のシステム・ユニ
ットが、1つのドメインを形成することもできる。いず
れのシステム・ユニットも、属することができるのは1
つのドメインのみである。ドメインは単一のデータ処理
システムとして機能し、その個々のシステム・ユニット
は互いに秘密を有さない。
The domains are separated from each other in both software and hardware. Each subsystem consists of multiple system cards, boards,
Alternatively, other units can be provided that can potentially incorporate hardware for processing memory and / or I / O functions. The individual system units do not all have to contain all the functions of a complete processor, but the set of units forming the domain must, among other things, contain all the functions of a complete data processing system. Must. A single system unit may form one domain. Any system unit can belong to 1
Only one domain. A domain functions as a single data processing system, whose individual system units are not secret from each other.

【0013】「ソフトウエアの分離」とは、あるドメイ
ンにおいて実行中のソフトウエアは、サブシステムにお
けるハードウエア障害がない限り、他のドメインで実行
中のソフトウエアに影響を与え得ないことを意味する。
このためには、各ドメインが、他のドメインとは共有し
ない、それ自体の1つの(または複数の)物理的プロセ
ッサ、複数のメモリ・ユニット、およびI/Oアダプタ
を有することが必要である。各システム・ユニットと共
通アドレス相互接続ハードウエアとの間のドメイン・フ
ィルタ・ハードウエアは、完全なシステム内に潜在的に
含まれる各ユニットに対する別個のビットを含むマスク
・レジスタを有する。これらのビットの状態が、他のシ
ステムのどれが同一ドメインのメンバであるのかを示
す。ユニットのインターフェースは、相互接続部からの
トランザクションが同じドメイン内のシステム・ユニッ
トにおいて発したものである場合にのみ、このトランザ
クションに応答する。このようにサブシステム間で分配
されるハードウエアは、別個のサービス・プロセッサの
ような、サブシステム外のエージェンシによってのみハ
ードウエアが制御可能である限り、ソフトウエアの分離
を保証するには十分である。
[0013] "Software isolation" means that software running in one domain cannot affect software running in another domain unless there is a hardware failure in the subsystem. I do.
This requires that each domain has its own physical processor (s), multiple memory units, and I / O adapters that are not shared with other domains. The domain filter hardware between each system unit and the common address interconnect hardware has a mask register that contains a separate bit for each unit potentially included in the complete system. The state of these bits indicates which of the other systems are members of the same domain. The unit's interface responds to the transaction only if the transaction from the interconnect originated in a system unit in the same domain. The hardware distributed between subsystems in this manner is not sufficient to guarantee software separation, as long as the hardware can only be controlled by an agency outside the subsystem, such as a separate service processor. is there.

【0014】加えて、「ハードウエアの分離」は、ある
ドメイン内で発生したハードウエア・エラーがコンピュ
ータ内の異なるドメインの動作に影響を与えないことを
示す。ハードウエアの分離は、個々のサブシステム間に
共通バス・アーキテクチャを用いている場合は、実施で
きない。何故なら、障害を発生したサブシステムがバス
全てを停止させる可能性があるからである。したがっ
て、クロスバー(crossbar)および/またはルータのよう
な、切り替え相互接続部をサブシステム間に用いる。1
つのサブシステム内のハードウエア障害は、それが異な
るサブシステムに属するものとして偽装させたり、ある
いは制御信号のパリティ・エラーのような、システム全
体に及ぶ致命的インターフェース信号を発生させる可能
性があるので、サブシステムのハードウエア分離は、サ
ブシステム自体以外に何らかの中央制御ロジックを必要
とし、制御信号の少なくともいくつかを、この中央ロジ
ックと各サブシステム間で1対1(ポイントツーポイン
ト)で結合することが必要となる。相互接続ハードウエ
アもドメイン・マスク・レジスタを有する場合、発生元
のドメイン内の各システムに「有効トランザクション」
信号を生成することができる。これによって、いずれの
ユニットも他のユニットのように偽装することを防止す
る。ソース・ドメイン以外のユニットは全てトランザク
ションを無視するので、これらは他のドメインから発せ
されたハードウエア・エラー信号にエラー状態を発生す
ることができない。相互接続ハードウエア自体における
障害も全てのドメインに影響を与える可能性があるが、
実際には、相互接続部は、サブシステム内のハードウエ
アに比較すると、小型で堅牢である。
[0014] In addition, "hardware isolation" indicates that hardware errors that occur in one domain do not affect the operation of different domains in the computer. Hardware separation cannot be implemented if a common bus architecture is used between the individual subsystems. This is because the failed subsystem can shut down all buses. Thus, switching interconnects, such as crossbars and / or routers, are used between the subsystems. 1
Hardware failures within one subsystem can be disguised as belonging to different subsystems, or can cause fatal interface signals throughout the system, such as control signal parity errors. , Subsystem hardware isolation requires some central control logic other than the subsystem itself, and couples at least some of the control signals one-to-one (point-to-point) between this central logic and each subsystem. It is necessary. If the interconnect hardware also has a domain mask register, each system in the originating domain has a "valid transaction"
A signal can be generated. This prevents any unit from impersonating like other units. Since all units other than the source domain ignore the transaction, they cannot generate an error condition on hardware error signals originating from other domains. Failures in the interconnect hardware itself can also affect all domains,
In practice, the interconnects are small and robust when compared to the hardware in the subsystem.

【0015】用途によっては、所定のドメインが、それ
らの個別にアドレス可能なメモリ空間の1つ以上のセグ
メントを共有することにより、互いとの通信に高帯域通
信を必要とする場合がある。本発明は、個別ドメインの
それに類似した特性を有するドメインのクラスタを提供
することができる。1つの個別システム・ユニットはそ
れ自体のクラスタとなることができ、あらゆる単一ユニ
ットは1つのクラスタのみのメンバとなることができ、
クラスタ関係は変化する。また、ドメインは正確に1つ
のクラスタ内にあり、クラスタは1つ以上のドメインを
含む。クラスタ関係が変化し得るものであることの必要
性は、ドメイン間でメモリを共有する際にそれを使用す
ることから生じたものである。AがドメインB,Cにメ
モリをエクスポートする場合、B,Cは相互接続部上で
互いのトランザクションに応答しなければならず、した
がって同じクラスタ内にいなければならない。この要件
は、上述のシステムにおいて、A内の共有メモリからの
データの現在値が実際にBまたはC内のキャッシュに位
置する場合があり、B内のプロセッサが新しい値をこの
アドレスに書き込む場合、Cのキャッシュ内のコピーを
無効化しなければならず、これを達成するためには、C
はBからのトランザクションを全て見なければならない
という可能性から生じたものである。
In some applications, certain domains may require high bandwidth communication to communicate with each other by sharing one or more segments of their individually addressable memory space. The present invention can provide a cluster of domains having properties similar to those of individual domains. One individual system unit can be its own cluster, any single unit can be a member of only one cluster,
Cluster relationships change. Also, the domains are in exactly one cluster, and a cluster includes one or more domains. The need for the cluster relationship to be variable stems from its use in sharing memory between domains. If A exports memory to domains B and C, B and C must respond to each other's transactions on the interconnect and must therefore be in the same cluster. This requirement is that in the system described above, if the current value of the data from the shared memory in A may actually be located in the cache in B or C, and the processor in B writes a new value to this address, The copy in C's cache must be invalidated, and to achieve this, C
Arises from the possibility that all transactions from B must be seen.

【0016】クラスタ内のシステム・ユニットは、同じ
クラスタ内の他の各ユニットとメモリを共有する必要は
ないが、同じクラスタ内のユニットとのみメモリの共有
が可能である。システム・ユニットAがある範囲の共有
アドレスをユニットBにエクスポートする場合、Bは必
然的に同じクラスタにいるが、A,Bと同じクラスタに
いるユニットCは、このアドレス範囲を共有する必要は
ない。同じクラスタ内において、いずれのシステム・ユ
ニットも、トランザクションの発生元ユニットとして、
当該トランザクションを受けるが、このトランザクショ
ンに応答する必要性は必ずしもある訳ではない。即ち、
受信側ユニットはそれをフィルタ(filter)することも可
能である。実際には、複数のドメインは、メモリを共有
するためにのみクラスタ内で結合されており、当該クラ
スタの全てのメンバ・ドメイン内のシステム・ユニット
は全て、当該クラスタ内の全てのユニットからの、この
共有メモリに対応する特定の範囲のメモリ・アドレスに
対する通常のメモリ・トランザクションに応答するよう
に構成されている。共有メモリ自体は、クラスタ内の1
つのシステム・ユニット上に位置し、この範囲を、それ
自体以外のクラスタ内のドメインに「エクスポート」す
ると言う。(ユニットは、常にそれ自体のドメイン内の
ソース・ユニットからのトランザクション全てに応答す
る。これは、ここで用いられる意味では「エクスポー
ト」ではない。この用語は、ドメインの外側から発した
いくつかのメモリ・トランザクションへの応答の追加の
みを意味する。)したがって、システム・ユニットは、
それが異なるメモリ・アドレス範囲にエクスポートする
ユニットからはアクセス不可能な、キャッシュ可能メモ
リを含むことができる。ユニット内のシステム制御レジ
スタ群およびI/O装置群は、異なるドメイン内のユニ
ット群には全くアクセスすることはできない。たとえこ
れらのユニットが同じクラスタに属していてる場合で
も、アクセスすることはできない。
A system unit in a cluster need not share memory with each other unit in the same cluster, but can share memory only with units in the same cluster. If system unit A exports a range of shared addresses to unit B, B is necessarily in the same cluster, but units C in the same cluster as A and B do not need to share this address range. . Within the same cluster, any system unit can be a transaction originating unit
While receiving the transaction, it is not always necessary to respond to the transaction. That is,
The receiving unit can also filter it. In practice, the domains are combined in a cluster only to share memory, and all system units in all member domains of the cluster are It is configured to respond to normal memory transactions for a specific range of memory addresses corresponding to the shared memory. The shared memory itself is the one in the cluster.
Located on one system unit, this range is said to be "exported" to domains in the cluster other than itself. (A unit always responds to all transactions from source units in its own domain. This is not an "export" in the sense used here. The term It only means adding a response to the memory transaction.) Therefore, the system unit
It may include a cacheable memory that is inaccessible from units exporting to different memory address ranges. The system control registers and I / O devices in a unit have no access to units in different domains. Even if these units belong to the same cluster, they cannot be accessed.

【0017】クラスタ化によって、各システム・ユニッ
ト上のドメイン・レジスタに、共有メモリ・レジスタが
追加され、どのアドレスが共有されるのか、即ち、当該
クラスタにおける他のドメイン内の少なくとも1つのシ
ステム・ユニットにエクスポートされるのかを示す、範
囲レジスタ群も含むことができる。共有メモリ・レジス
タは、他のユニットのどれが、そのユニットとのアドレ
スの転送を行うことができるのかを示す。したがって、
システム・ユニットが、他のユニットからのトランザク
ションにおいて、アドレスに応答するのは、(a)ソー
ス・ユニットが同じドメインのメンバであること、また
は(b)それが同じクラスタのメンバであることが共有
メモリレジスタ内に指定されており、そのアドレスが共
有するように指定されている範囲(あるとすれば)内に
ある場合にのみであり、しかも先に定義したような通常
のメモリ・トランザクションに対してのみ行う。相互接
続部内のドメイン・レジスタは、トランザクションを発
生したユニットと同じクラスタ内にある他のシステム・
ユニット群に有効性確認信号を送出することができる、
ドメイン・クラスタ・レジスタとなる。
The clustering adds a shared memory register to the domain registers on each system unit, which addresses are shared, ie, at least one system unit in another domain in the cluster. Range registers that indicate if they are to be exported. The shared memory register indicates which of the other units can transfer addresses with that unit. Therefore,
The system unit responds to addresses in transactions from other units because (a) the source unit is a member of the same domain, or (b) it is a member of the same cluster. Specified in a memory register and only if the address is within the range (if any) specified to be shared, and for normal memory transactions as defined above. Only do it. The domain registers in the interconnect are used by other systems in the same cluster as the unit that originated the transaction.
A validity confirmation signal can be sent to the unit group,
It becomes a domain cluster register.

【0018】[0018]

【発明の実施の形態】図1は、サーバまたは中型コンピ
ュータに典型的なアーキテクチャを有する従来技術のコ
ンピュータ100を示す。コンピュータ100は、マザ
ー・ボードまたはプラグイン・ボード上のプロセッサ1
10、メモリ用の別個のボード120、およびI/Oア
ダプタ用の別個のボード130を有する。データ・バス
140およびアドレス・バス150が、異なる機能ブロ
ックを共に結合する。制御分配バス160は、エラー信
号を含む制御信号を種々のボードに送出する。システム
が大きい場合、起動、診断、および同様の機能に、専用
の制御およびサービス・ユニット170を有してもよ
い。
FIG. 1 shows a prior art computer 100 having an architecture typical of a server or medium computer. The computer 100 includes a processor 1 on a mother board or a plug-in board.
10, a separate board 120 for memory and a separate board 130 for I / O adapters. A data bus 140 and an address bus 150 couple different functional blocks together. Control distribution bus 160 sends control signals, including error signals, to various boards. If the system is large, it may have dedicated control and service units 170 for startup, diagnostics, and similar functions.

【0019】バー101は、コンピュータ100のアド
レス空間全体を概略的に表している。プロセッサまたは
プロセッサ群(複数)は、メモリを含むボード即ちユニ
ット120に対するアドレスを全て、バス150上に送
出する。各ボードは、ある範囲のアドレスに応答するメ
モリを有する。各ボードは、通常メモリ・ボード上の機
械的スイッチまたはレジスタによって設定される、異な
るアドレス範囲を含む。また、プロセッサ110は、全
てのボード130上のI/Oアダプタ全てとも通信を行
う。
A bar 101 schematically represents the entire address space of the computer 100. The processor or processors (s) send out all addresses on the bus 150 for the board or unit 120 containing the memory. Each board has memory responsive to a range of addresses. Each board contains a different address range, usually set by mechanical switches or registers on the memory board. The processor 110 also communicates with all of the I / O adapters on all the boards 130.

【0020】図2は、多数のシステム・ユニット210
の各々が、プロセッサ自体の中に、メモリ、および互い
に結合されているI/Oアダプタ群を含み、当該ユニッ
トが潜在的にそれ自体で完全なコンピュータとして機能
することができるようにした、異なるアーキテクチャ2
00を示す。(しかしながら、システム・ユニットによ
っては、実際に、プロセッサのみ、メモリのみ、I/O
のみ、またはそれらの潜在的な全機能の下位の組み合わ
せのいくつかを含むものもある。)個々のシステム・ユ
ニット210は、同一ユニット内に、アドレスされたデ
ータを送信するか、あるいはシステム・ユニット群が差
し込まれているセンタプレーン相互接続構造(centerpla
ne interconnect structure)として構築されている、高
速ルータ240,250上を、同じ複合体内の他のシス
テム・ユニット群に、アドレスされたデータを送信す
る。制御分配バス260は、制御信号およびエラー信号
を全てのシステム・ユニット210に送出する。このよ
うなコンピュータは、典型的なパーソナル・コンピュー
タまたは中型コンピュータのバス組織に限定されるもの
ではない。例えば、データおよびアドレス・ルータ24
0,250は、通常のポイントツーポイント配線、クロ
ス・ポイント・スイッチ、または多数の調停されたバス
として実施してもよい。システム200全体は、メモリ
共有対称マルチプロセッサ・システムとして特徴付ける
ことができる。好ましくは、コヒーレントなキャッシュ
機能も用いる。この機構は、多数の従来からの方法で実
現すればよい。Sun Microsystems社から入手可能な市販
のCS6400は、このタイプの機械(マシン)の一例であ
る。
FIG. 2 illustrates a number of system units 210.
Each include memory within the processor itself, and I / O adapters coupled to each other, allowing the unit to potentially function as a complete computer by itself. 2
00 is shown. (However, depending on the system unit, actually only the processor, only the memory, the I / O
Some may include only some or some of the sub-combinations of all of their potential functions. 2.) Individual system units 210 may transmit addressed data within the same unit, or the centerplane interconnect structure (centerpla) into which the system units are plugged.
The addressed data is transmitted over high speed routers 240, 250, which are constructed as ne interconnect structures, to other system units in the same complex. Control distribution bus 260 sends control and error signals to all system units 210. Such computers are not limited to the typical personal or medium computer bus organization. For example, data and address router 24
0,250 may be implemented as regular point-to-point wiring, cross-point switches, or multiple arbitrated buses. The entire system 200 can be characterized as a shared memory symmetric multiprocessor system. Preferably, a coherent cache function is also used. This mechanism may be implemented in a number of conventional ways. The commercially available CS6400 available from Sun Microsystems is an example of this type of machine.

【0021】バー201は、コンピュータ200のアド
レス空間を示す。各システム・ユニットは、潜在的にそ
れ自体で完全なコンピュータであるが、アドレス・ルー
タ250によって与えられる相互接続部は、共通のアド
レス空間全体に、全てのシステム・ユニットを配置す
る。即ち、各システム・ユニット210上のあらゆるメ
モリ位置の完全に承認されたアドレスは、他の全てのユ
ニット上のあらゆるメモリ位置のそれとは異なっていな
ければならない。
A bar 201 indicates the address space of the computer 200. Although each system unit is potentially a complete computer by itself, the interconnect provided by the address router 250 places all system units throughout a common address space. That is, the fully authorized address of every memory location on each system unit 210 must be different from that of every memory location on every other unit.

【0022】分配バス260上のエラー信号およびステ
ータス信号は、システム内のあらゆるユニット210に
影響を与える。例えば、エラー訂正コードは、ルータ2
50上のビット・エラーを訂正し、コードが検出可能で
あるが訂正不可能なその他のエラーに対して致命的エラ
ー信号を生成する。このような致命的エラー信号は、通
常、当該エラーの原因となった障害を単一のシステム・
ユニットまたはルータの場所に閉じこめた場合でも、シ
ステム全体に影響を及ぼす。障害を発生したシステム・
ユニットは、連続的にエラー信号をアサートすることが
でき、システム全体を停止させる。CANCEL(時としてAB
ORTとも呼ぶ)信号が異なる状況を提示する。高性能シ
ステムには、思惑的にマルチサイクル処理を開始し、そ
れらの仮定が正しくなかった場合に処理を取り消すもの
がある。このような単一ドメイン・システムにおいてCA
NCELをアサートすると、システム全体のあるあらゆるユ
ニットを停止させることになる。
The error and status signals on distribution bus 260 affect every unit 210 in the system. For example, the error correction code is
It corrects the bit errors on 50 and generates a fatal error signal for other errors where the code is detectable but not correctable. Such a catastrophic error signal usually indicates the fault that caused the error in a single system.
Even if trapped in a unit or router location, it will affect the entire system. The failed system
The unit can continuously assert an error signal, shutting down the entire system. CANCEL (sometimes AB
ORT) signal presents a different situation. Some high-performance systems speculatively start multi-cycle processing and cancel processing if those assumptions are incorrect. CA in such a single domain system
Asserting NCEL will stop any unit in the entire system.

【0023】図3は1つの仮説的なコンピュータ300
を示し、この中では、図2のユニット210に対応する
種々のシステム・ボード310が物理的に多数のドメイ
ンに分割され、各々がそれ自体の物理的に別個のデータ
・ルータまたはバス340、それ自体のアドレス・ルー
タまたはバス350、およびそれ自体の制御分配手段ま
たはバス360を有し、その上それ自体のシステム・コ
ントローラ370をも有することも可能である。実際に
は、コンピュータ300は、多数の別々のコンピュータ
即ちドメインS1,S2,S3となる。加えて、多数の
ドメインは、それらのメモリ・アドレスの一部または全
てを共有して、アドレス・ルータ350の領域351に
よって示されるような、クラスタを形成することができ
る。図3では、ドメインS1は、それ自体が(変性)ク
ラスタCAであり、一方ドメインS2,S3は一体とな
ってクラスタCBを形成する。これら別々のクラスタの
アドレス空間は互いに重複していてもよく、各々が他と
は独立してそれ自体のオペレーティング・システムを実
行することができ、1つのドメイン・クラスタにおける
メモリ障害またはその他のハードウエア・エラーは、他
のドメイン・クラスタの動作に影響を与えることはな
い。
FIG. 3 shows one hypothetical computer 300.
Wherein the various system boards 310 corresponding to the unit 210 of FIG. 2 are physically divided into a number of domains, each with its own physically separate data router or bus 340, It may have its own address router or bus 350 and its own control distribution means or bus 360, as well as its own system controller 370. In practice, computer 300 will be a number of separate computers or domains S1, S2, S3. In addition, multiple domains can share some or all of their memory addresses to form clusters, as indicated by area 351 of address router 350. In FIG. 3, domain S1 is itself a (denatured) cluster CA, while domains S2 and S3 together form a cluster CB. The address spaces of these separate clusters may overlap with each other, each may run its own operating system independently of the others, and may have memory failures or other hardware in one domain cluster Errors do not affect the operation of other domain clusters.

【0024】バー301,302,303は、コンピュ
ータ300のメモリ・アドレス空間が、3カ所の別個の
空間として処理可能であり、そのアドレスのいくらかま
たは全てが互いに重複していてもよいことを示す。加え
て、メモリ・アドレスの中には、304,305に示す
ように、複数のドメインとの間で、物理的に共有可能な
ものもある。下位の2つのアドレス・ルータ350をブ
リッジする領域351は、別々のドメイン間で共有され
るメモリアドレスを象徴化したものである。
Bars 301, 302, 303 indicate that the memory address space of computer 300 can be treated as three separate spaces, some or all of whose addresses may overlap with each other. In addition, some memory addresses can be physically shared between multiple domains, as shown at 304 and 305. An area 351 bridging the lower two address routers 350 symbolizes a memory address shared between different domains.

【0025】コンピュータ300では、制御信号の多く
をそれらを適用することができないドメインから分離す
ることができる。したがって、ドメインS1内の致命的
エラー(アドレスまたは制御バスにおける訂正不可能な
エラーのような)は、当該ドメイン・クラスタの範囲内
でのみバス360上でARBSTOP信号を生成し、ドメイン
S2,S3の動作を継続させる。しかしながら、システ
ム300は、永続的または少なくとも半永続的に手動で
構成されなければならない。即ち、再構成は、ボードの
再配置またはスイッチのリセットのために、システムの
完全な停止および配線のし直しまたは手作業による調節
を必要とする。このシステムは、可変量の資源を有する
異なるドメイン群やクラスタ群に動的にまたは容易に再
構成することはできない。
In computer 300, many of the control signals can be separated from domains to which they cannot be applied. Thus, a fatal error in domain S1 (such as an uncorrectable error in the address or control bus) will generate an ARBSTOP signal on bus 360 only within the domain cluster in question and the domain S2, S3 Continue operation. However, the system 300 must be manually configured permanently or at least semi-permanently. That is, reconfiguration requires complete shutdown of the system and rewiring or manual adjustment for board relocation or switch reset. The system cannot be dynamically or easily reconfigured into different domains or clusters with variable amounts of resources.

【0026】図4は、図2および図3のコンピュータ・
システム200,300を背景として構築し、ある例示
環境における本発明の好適な形態の概要を提示する。以
下に述べる詳細の多くは、それ自体本発明の概念に直接
関係するものではないが、この環境において本発明がど
のように機能するのかを理解するのに役立つ。
FIG. 4 is a block diagram of the computer of FIG. 2 and FIG.
Building on the background of the systems 200, 300, an overview of the preferred form of the invention in an example environment is presented. Many of the details set forth below are not themselves directly related to the concepts of the present invention, but are helpful in understanding how the present invention functions in this environment.

【0027】コンピュータ400は、図3のユニット群
310に対応するシステム・ユニット群410を有す
る。データ・ルータ440は、全てのシステム・ユニッ
ト群410を物理的に相互接続する。アドレス・ルータ
450および制御バス460は、丁度図2におけるよう
に、全てのシステム・ユニット群を物理的に結合する。
コンピュータ400においては、しかしながら、追加の
ドメイン・フィルタ480が、コンピュータ400を、
互いに独立して動作可能なドメイン群およびクラスタ群
に電子的に分割する。ルータ450およびユニット群4
10間のドメイン・フィルタの配置は、それがアドレス
信号および制御信号に作用しドメインへの分離を達成す
ることを象徴化している。好適な実施態様では、フィル
タ480は、アドレス・ルータ450の部分を形成する
チップの中に物理的に配置され、ルータ450自体は、
部分的にシステム・ユニット410内、および部分的に
共通のセンタプレーン構造内に物理的に配置される。ま
た、フィルタ480は、データ・ルータ440内に位置
する構成要素を含むこともできる。ドメイン・コンフィ
ギュレータ(domain configurator)420がフィルタ4
80と通信し、任意にかつ動的にドメイン群およびクラ
スタ群を設定する。図4における例は、図3の対応する
マップ301〜303と同じメモリ・アドレス・マップ
401〜403を有する。
The computer 400 has a system unit group 410 corresponding to the unit group 310 in FIG. Data router 440 physically interconnects all system units 410. Address router 450 and control bus 460 physically couple all system units, just as in FIG.
In computer 400, however, an additional domain filter 480 allows computer 400 to
It is electronically divided into domains and clusters that can operate independently of each other. Router 450 and unit group 4
The placement of the ten domain filters symbolizes that it acts on address and control signals to achieve domain separation. In a preferred embodiment, the filter 480 is physically located in a chip forming part of the address router 450, and the router 450 itself
Physically located partially within system unit 410 and partially within a common centerplane structure. Filter 480 may also include components located within data router 440. Domain configurator 420 is filter 4
80 and arbitrarily and dynamically set domains and clusters. The example in FIG. 4 has the same memory address maps 401-403 as the corresponding maps 301-303 in FIG.

【0028】後の詳細説明について前もって述べておく
が、マップの隣にある番号は、種々の点におけるアドレ
スを示す。番号は16進数であり、例示の実施態様で
は、'00 0000 0000'から'0F FFFF FFFF'までに及ぶ。
(図4は、可能な16のシステム・ユニットの内8個の
みを示すので、この空間の前半である、アドレス'08 00
000000'までのみを含む。)また、システムは、システ
ム・レジスタやI/O装置にアクセスするために、別の
空間として、'10 0000 0000'から'1F FFFF FFFF'のアド
レスも採用している。本発明には関連のない詳細を少し
加えるが、例示のシステム・アーキテクチャは各システ
ム・ユニット410に4ギガバイト(GB)のアドレス
範囲を割り当てている。各範囲は割り当てられた単位番
号に4GBをかけた数で開始するが、ユニット上に実際
に装着されるいずれのメモリも、その割り当てられた範
囲内であればどこから始まってどこで終わってもよい。
これは殆ど常に、実装されたメモリのアドレス範囲にお
いて穴あき状態を生ずる結果となるが、システム400
はこの状況に容易に対処する。他のシステムは、しかし
ながら、全く異なるメモリ・アーキテクチャを有する本
発明を容易に実施することができる。
As will be described in detail later, the numbers next to the map indicate addresses at various points. The numbers are hexadecimal and, in the exemplary embodiment, range from '00 0000 0000 'to' 0F FFFF FFFF '.
(FIG. 4 shows only eight of the 16 possible system units, so the first half of this space, address '08 00
Includes only up to 000000 '. Also, the system employs addresses from '10 0000 0000 'to' 1F FFFF FFFF 'as another space for accessing system registers and I / O devices. With some details not relevant to the present invention, the exemplary system architecture assigns each system unit 410 an address range of 4 gigabytes (GB). Each range starts with the assigned unit number multiplied by 4 GB, but any memory actually mounted on the unit may begin and end anywhere within the assigned range.
This almost always results in a puncture in the address range of the implemented memory, but the system 400
Addresses this situation easily. Other systems, however, can readily implement the present invention with completely different memory architectures.

【0029】図5は、図4のシステム・ユニット410
を、データ・ルータ440、アドレス・ルータ450、
およびドメイン・フィルタ480の部分と共に示す。こ
れらはシステム・ユニットの一部をなし、これに結合さ
れているものである。図5は、本発明のドメイン・フィ
ルタによって管理される分配器460の個々の制御線を
殆ど示していない。図8ないし図10において、代表的
な制御信号をより詳細に示しかつ検討することにする。
本例では、コンピュータ400は、実装可能な16のシ
ステム・ユニット410の内8個を有する。
FIG. 5 shows the system unit 410 of FIG.
To the data router 440, the address router 450,
And a portion of the domain filter 480. These are part of the system unit and are connected to it. FIG. 5 shows little of the individual control lines of the distributor 460 managed by the domain filter of the present invention. 8-10, representative control signals will be shown and discussed in more detail.
In this example, computer 400 has eight of sixteen system units 410 that can be implemented.

【0030】システム・ユニット410は、コンピュー
タ100の主要構成要素110〜130の全てに対し
て、回路基板のような、1つの物理構造上に空間および
配線を含むが、これらの全てが特定のユニットに完全に
または部分的にでさえも設ける必要がある訳ではない。
プロセッサ・サブシステム510は、マイクロプロセッ
サ511を4個まで有することができ、各々それ自体の
キャッシュ512を有する。入出力サブシステム530
は2個のシステムI/Oバス531を含み、各々が種々
の従来からのI/Oアダプタ532を制御する。一方、
I/Oアダプタ532は、ディスク・ドライブ、端末コ
ントローラ、および通信ポートのような外部I/O装置
に、線533を結合する。メモリ・サブシステム520
は4個までのメモリ521のバンクを含み、各対が従来
からのパック/アンパック・モジュール(pack/unpack m
odule)522に結合する。完全に汎用なシステム・ユニ
ットの代わりとして、特殊化されたボードも使用可能で
ある。例えば、第1タイプのシステム・ユニットが、プ
ロセッサおよびメモリ・サブシステムに対してのみ配線
および場所を有してもよく、第2タイプが1個以上のI
/Oサブシステムのみを含むこともあろう。
System unit 410 includes space and wiring on one physical structure, such as a circuit board, for all of the major components 110-130 of computer 100, all of which are specific units. It is not necessary to provide them completely or even partially.
The processor subsystem 510 can have up to four microprocessors 511, each with its own cache 512. I / O subsystem 530
Includes two system I / O buses 531, each controlling a variety of conventional I / O adapters 532. on the other hand,
I / O adapter 532 couples line 533 to external I / O devices such as disk drives, terminal controllers, and communication ports. Memory subsystem 520
Contains up to four banks of memory 521, each pair comprising a conventional pack / unpack module (pack / unpack m).
odule) 522. Specialized boards can be used as an alternative to completely general-purpose system units. For example, a first type of system unit may have wiring and locations only for the processor and memory subsystem, and a second type of one or more I / Os.
It may include only the / O subsystem.

【0031】データ・ルータ440は、サブシステム5
10〜530間でトランザクション・データの受け渡し
を行う。本実施例では、データ・ルータは、各システム
・ユニット410上のローカル部分54L0およびセン
タプレーン上に配置されたグローバル部分54G0の間
で物理的に分割される。図5において、ラベル54L0
は、データ・ルータ440の内、構成要素54L1〜5
4L3を有するローカル部分全体を示し、ラベル54G
0は、構成要素54G1〜54G2を有するグローバル
部分全体を示す。
The data router 440 is connected to the subsystem 5
Transaction data is exchanged between 10 and 530. In this embodiment, the data router is physically divided between a local portion 54L0 on each system unit 410 and a global portion 54G0 located on the center plane. In FIG. 5, the label 54L0
Are the components 54L1-5 of the data router 440.
Label L shows the entire local part with 4L3
0 indicates the entire global part having the components 54G1 to 54G2.

【0032】ローカル・ルータ54L0の各バッファ5
4L1は、例えば、256トランザクションを保持可能
な、少量の高速スタティック・RAMを有する。その通
常の目的は、アクティビティの可能なバーストに対抗し
て、データの流れの分離および平滑化を行うための保持
行列(holding queue)を提供することである。ローカル
・データ・スイッチ54L2は全二重双方向1x4クロ
スバーである。ローカル・データ・アービタ54L3
は、グローバル・アービタ54G2から許可を受け、せ
いぜい1つのバッファに、対応するトランザクション・
パケットを格納するように命令する。同時に、ローカル
・アービタ54L3は、従来からの公正アルゴリズム(f
airness algorithm)を用いて、バッファの1つから待機
中のパケットを選択し、このパケットの代わりに、グロ
ーバル・アービタ54G2への送信要求を発生する。グ
ローバル・データ・ルータ54G0は、1つのシステム
・ユニットのLDR54L0からのデータを、同一ユニ
ットまたは異なるユニットのLDR54L0に転送す
る。この際、16x16のクロスバー・アレイ54G1
を用い、これがアービタ54G2からの16組の4ビッ
ト方向制御ロジック(steering logic)を受け取る。下位
では、これを、各システム・ユニット毎に1つとして、
16個の16入力マルチプレクサとして実現する。
Each buffer 5 of the local router 54L0
4L1 has, for example, a small amount of high-speed static RAM capable of holding 256 transactions. Its usual purpose is to provide a holding queue for separating and smoothing the flow of data against possible bursts of activity. Local data switch 54L2 is a full-duplex bidirectional 1x4 crossbar. Local data arbiter 54L3
Receives permission from global arbiter 54G2 and stores at most one buffer with the corresponding transaction
Instructs to store the packet. At the same time, the local arbiter 54L3 uses the conventional fair algorithm (f
Using the airness algorithm), a waiting packet is selected from one of the buffers, and a transmission request to the global arbiter 54G2 is generated instead of this packet. The global data router 54G0 transfers data from the LDR 54L0 of one system unit to the LDR 54L0 of the same unit or a different unit. At this time, the 16 × 16 crossbar array 54G1
Which receives 16 sets of 4-bit steering logic from arbiter 54G2. At the lower level, this is one for each system unit,
Implemented as 16 16-input multiplexers.

【0033】アドレス・ルータ450は、各システム・
ユニット410上のサブシステム510〜530間でア
ドレスの受け渡しを行うと共に、あるシステム・ユニッ
トから他のシステム・ユニットへのアドレスの受け渡し
も行う。データ・ルータと同様、55L0で示すローカ
ル部分と、グローバル部分55G0とを有する。この実
施態様では、アドレス・ルーティングは、ローカル(イ
ントラシステム)およびグローバル(インターシステ
ム)トランザクション双方に対して、同じ経路を進む。
ポート・コントローラ群55L1およびメモリ・コント
ローラ55L2は、サブシステム510〜530および
個々のルーティング・スイッチ55L3間に、従来から
のインターフェースを設ける。この場合、個々のプロセ
ッサ511、I/Oバス531、メモリ・ユニット52
1は、事実上ローカル・アドレス・スイッチ(LAS:
local address switch)55L3に直接接続されている
と見なしてもよい。LAS群55L3は、キャッシュ・
コヒーレンシ(cachecoherency)のよう
な、多数の通常からの機能を実行する。本発明の目的の
ために、それらの機能は、システム・ユニット内のプロ
セッサ群511、I/Oバス群531、およびメモリ5
21からのアドレスの、グローバル・アドレス・ルータ
55G0との受け渡しを行うことである。
The address router 450 is connected to each system
Addresses are transferred between the subsystems 510 to 530 on the unit 410, and addresses are transferred from one system unit to another system unit. Similar to the data router, it has a local part indicated by 55L0 and a global part 55G0. In this embodiment, address routing follows the same path for both local (intrasystem) and global (intersystem) transactions.
Port controller group 55L1 and memory controller 55L2 provide a conventional interface between subsystems 510-530 and individual routing switches 55L3. In this case, the individual processors 511, the I / O bus 531 and the memory unit 52
1 is effectively a local address switch (LAS:
(local address switch) may be regarded as being directly connected to 55L3. The LAS group 55L3 is
Performs a number of conventional functions, such as cache coherency. For the purposes of the present invention, their functions are: a processor group 511, an I / O bus group 531 and a memory 5 in the system unit.
21 is to transfer the address from the global address router 21 to the global address router 55G0.

【0034】本実施例のアドレス・ルータ450のグロ
ーバル部分55G0は、16個のシステム・ユニット間
で共有される4系統のアドレス・バス55G1を有す
る。別個のグローバル・アドレス・アービタ55G2
が、各ユニット内のローカル・アドレス・アービタ55
L4からのトランザクション要求に応答して、各アドレ
ス・バスを種々のシステム・ユニット410に割り当て
る。
The global portion 55G0 of the address router 450 of this embodiment has four address buses 55G1 shared among 16 system units. Separate global address arbiter 55G2
Is the local address arbiter 55 in each unit.
Each address bus is assigned to a different system unit 410 in response to a transaction request from L4.

【0035】本実施例では、システム・ユニット上の各
LAS55L3は、線915,922上の白抜き円によ
って象徴化されているように、4個のGAB55G1の
異なる1つに接続する。アービタ55L4は、物理的
に、4個の同一部分から成り、その各々が、線811か
らのアクセス要求に応答して、GAA55G2およびL
AS55L3の異なる1つと通信を行う。即ち、アドレ
ス・ルータ450の結合されたローカル部分およびグロ
ーバル部分の全体的な機能は、システム・ユニット群4
10全ての6個のポート(コントローラ55L1の各々
から2つ)からの競合する要求間で、4個のGAB55
G1のスケジュールを立てることである。4個のGAB
55G1全てに対する決定は、各システム・ユニットの
LAA55L4において、互いに対して同時に処理され
る。
In the present embodiment, each LAS 55L3 on the system unit connects to a different one of the four GABs 55G1, as symbolized by the open circles on lines 915 and 922. Arbiter 55L4 physically consists of four identical parts, each of which responds to an access request from line 811 with GAA 55G2 and L
It communicates with a different one of the AS55L3s. That is, the overall function of the combined local and global portions of the address router 450 is the system unit group 4
10 conflicting requests from all six ports (two from each of the controllers 55L1)
G1 schedule. 4 GABs
The decisions for all 55G1 are processed simultaneously for each other in the LAA 55L4 of each system unit.

【0036】図6は、図5の通常のポート・コントロー
ラ55L1内における、関連するアドレス・ルーティン
グを示す。各コントローラ・チップは、アドレス線およ
び制御線を含み、2個のプロセッサまたは2系統のI/
Oバスを、4系統のアドレス・バスのいずれかとインタ
ーフェースする。双方向ドライバ/レシーバ610が、
アウトバウンド(出)トランザクションを線611から
先入れ/先出し(FIFO)バッファ620に送出す
る。スイッチ群621は、FIFO出力を双方向ドライ
バ/レシーバ630に出力し、FIFO出力は線911
を通じて図5のローカル・アドレス・ルータ55L3に
進む。線911からのインバウンド(入)トランザクシ
ョンは、ドライバ/レシーバ630からFIFO640
に進む。マルチプレクサ群641は、格納されているト
ランザクションから選択を行い、それらをドライバ/レ
シーバ610に送出し、線611を通じて送信する。線
811はスイッチ群621、マルチプレクサ群641、
およびポート・コントローラ55L1内の他の構成要素
(図示せず)の制御を行う。また、コントローラの構成
要素は、ステータス方法や他の情報を、図5のローカル
・アドレス・アービタ55L4に送信する。
FIG. 6 illustrates the relevant address routing within the conventional port controller 55L1 of FIG. Each controller chip includes address lines and control lines, and includes two processors or two I / O lines.
The O bus is interfaced with any of the four address buses. The bidirectional driver / receiver 610
An outbound transaction is sent out on line 611 to a first in / first out (FIFO) buffer 620. The switch group 621 outputs the FIFO output to the bidirectional driver / receiver 630, and outputs the FIFO output to the line 911.
Through the local address router 55L3 of FIG. An inbound transaction from line 911 is sent from driver / receiver 630 to FIFO 640.
Proceed to. Multiplexers 641 make a selection from the stored transactions and send them to driver / receiver 610 for transmission over line 611. Line 811 is a switch group 621, a multiplexer group 641,
And controls other components (not shown) in the port controller 55L1. Also, the components of the controller send the status method and other information to the local address arbiter 55L4 in FIG.

【0037】図7は、図5の通常のメモリ・コントロー
ラ55L2の関連部分を示す。このチップは、ポート・
コントローラ55L1がDRAMメモリ・チップ521
の4個のバンクに対して行う機能と同様の機能を実行す
る。図5のローカル・アドレス・ルータ55L3からの
線911は、トランザクションをFIFO記憶部710
に供給する。クロスバー・スイッチ720は、これらト
ランザクションからのアドレスを、線721を介して4
個のメモリ・バンクに送出する。即ち、ユニット内に位
置するメモリ・セグメントのメモリ・アドレスの異なる
下位範囲(subrange)内にデータが位置する限り、同じシ
ステム・ユニット410上の多数のバンクが同時にデー
タの読み出しおよび書き込みを行うことができる。通常
の調停(アービトレーション)ロジック722が、個々
のFIFO710を種々の出力721に割り当てる。図
9からの線948は、このシステム・ユニットには見る
ことができるようにされていないトランザクションから
のメモリ・アクセスを取り消す(キャンセルする)。
FIG. 7 shows relevant parts of the conventional memory controller 55L2 of FIG. This chip
The controller 55L1 is a DRAM memory chip 521
Performs the same functions as those performed for the four banks. The line 911 from the local address router 55L3 in FIG.
To supply. Crossbar switch 720 passes the addresses from these transactions to line 4 via line 721.
To the number of memory banks. That is, as long as the data is located in different subranges of the memory addresses of the memory segments located within the unit, multiple banks on the same system unit 410 can simultaneously read and write data. it can. Normal arbitration logic 722 assigns individual FIFOs 710 to various outputs 721. Line 948 from FIG. 9 cancels (cancels) memory accesses from transactions that are not made visible to this system unit.

【0038】図8は、図5のローカル・アドレス・アー
ビタ55L4の詳細を示す。各システム・ユニット41
0は、1つのLAAチップ55L4を含む。各ポート・
コントローラ55L1は、FIFOバッファ810内の
キューへのGAB要求信号を立ち上げる(raise)ことに
より、使用可能なグローバル・アドレス・バス55G1
の1つにおいて、ショット(shot)を要求することができ
る。これらの線は、図5に示した通常のポート制御線8
11の一部を形成する。調停ロジック820は、多数の
通常の公正アルゴリズムのいずれかを用いて、これらの
要求間で選択を行い、次いでGAB要求および方向制御
線821を立ち上げる。要求線は、ロジック820が特
定のグローバル・アドレス・バスへのアクセスを望んで
いるか否かについての指示を与える。グローバル・アド
レス・アービタ55G2が、線822上の特定のアドレ
ス・バスに対する要求を許可した場合、アービタ・チッ
プ55L4は、線823を通じて適切なLASチップ5
5L3に通知する。
FIG. 8 shows details of the local address arbiter 55L4 of FIG. Each system unit 41
0 includes one LAA chip 55L4. Each port
Controller 55L1 raises the available global address bus 55G1 by raising a GAB request signal to a queue in FIFO buffer 810.
In one, a shot may be requested. These lines are the normal port control lines 8 shown in FIG.
11 is formed. The arbitration logic 820 makes a selection between these requests using any of a number of conventional fair algorithms, and then raises the GAB request and direction control line 821. The request line provides an indication as to whether the logic 820 wants to access a particular global address bus. If the global address arbiter 55G2 grants a request for a particular address bus on line 822, the arbiter chip 55L4 sends the appropriate LAS chip 5 via line 823.
Notify 5L3.

【0039】LAA55L4は、多数の方法で、コンピ
ュータ400の動作を中断することができる。システム
・ユニット上でのパリティ・エラーのような致命的エラ
ーは、線824上でARBSTOP制御信号を発生することが
できる。即ち、LAAはARBSTOP制御信号の発生器とし
て作用する。通常のコンピュータでは、この信号は、制
御分配器460を通じて、他の各システム・ユニットの
LAA内のARBSTOP検出線827に直接同報通信する。
したがって、1つのユニットにおける致命的エラーが、
通常では、コンピュータ400全体の各システム・ユニ
ットを停止させることによって、ユーザ・データの汚染
(corruption)を回避すると共に、障害分析のための早急
のダンプ(dump)を許す。図10に関連付けて説明する
が、しかしながら、本コンピュータはこの信号を濾過(f
ilter)し、同じドメイン・クラスタ内のシステム・ユニ
ットだけが、当該ドメイン・クラスタ内のユニットの1
つからの出るARBSTOP信号を受けるようにする。
The LAA 55L4 can interrupt the operation of the computer 400 in a number of ways. A fatal error, such as a parity error on the system unit, can generate an ARBSTOP control signal on line 824. That is, the LAA acts as a generator of the ARBSTOP control signal. In a typical computer, this signal would be broadcast directly through the control distributor 460 to the ARBSTOP detect line 827 in the LAA of each of the other system units.
Therefore, a fatal error in one unit is
Typically, shutting down each system unit of the entire computer 400 results in contamination of user data.
(corruption) as well as allowing an immediate dump for failure analysis. As will be described with reference to FIG. 10, however, the computer filters this signal (f
ilter), and only the system units in the same domain cluster are one of the units in the domain cluster.
To receive the ARBSTOP signal coming out of one.

【0040】また、システム・ユニットは、他の全ユニ
ットに対するHOLD制御信号825を、それらの対応する
検出線上でアサートすることも可能である。通常では、
いずれのシステム・ユニットからのアウトバウンドHOLD
信号も、他の各ユニットの対応するインバウンドHOLD線
826に直接移動するので、当該システム・ユニットの
入力キューが保留中の処理で飽和したときはいつでも、
コンピュータ全体がそれ以上のトランザクションを要求
するのを禁止した。加えて、障害のあるシステム・ユニ
ット410は、連続してHOLDをアサートすることによ
り、コンピュータ全体を停止させる可能性がある。しか
しながら、図10では、この信号も濾過するので、線8
25上のアウトバウンドHOLDは、同じドメイン・クラス
タ内のシステム・ユニット群上の入来するHOLD826に
影響を与えるに過ぎない。
The system units can also assert HOLD control signals 825 for all other units on their corresponding detection lines. Usually,
Outbound HOLD from any system unit
The signal also goes directly to the corresponding inbound HOLD line 826 of each other unit, so whenever the system unit's input queue is saturated with pending processing,
Prohibits the entire computer from requesting further transactions. In addition, the faulty system unit 410 may shut down the entire computer by asserting HOLD continuously. However, in FIG. 10, this signal is also filtered, so line 8
The outbound HOLD on 25 only affects the incoming HOLD 826 on the system units in the same domain cluster.

【0041】このように、ローカル・アドレス・アービ
タ55L4は、他のシステム・ユニットの動作に影響を
与える可能性がある、GAB REQ, ARBSTOP-out, HOLD-o
utのような制御信号の発生器として作用する。また、こ
れは、他のシステム・ユニットからのこれら制御信号GA
B GRANT, ARBSTOP-in, HOLD-inの受け取り側としても
作用する。従来のシステムであれば、全てのシステム・
ユニットからの出立制御信号を単に互いに結びつけ、そ
れらの他の全ユニットの受け取り側に送出するだけであ
る。しかしながら、本システムは、これらをドメイン・
フィルタに通すので、1つのLAAにおいて発生された
信号は、同じドメインまたはドメイン・クラスタ内のユ
ニットのみのLAAに影響を与えるに過ぎない。以下で
明らかとなろうが、他の動作装置も、異なるドメイン定
義にしたがって、ドメイン・フィルタが通過させたり、
阻止することができる制御信号の発生器および受け取り
側として作用する。
As described above, the local address arbiter 55L4 has a possibility of affecting the operation of another system unit, such as GAB REQ, ARBSTOP-out, HOLD-o.
Acts as a generator of control signals such as ut. This is also because these control signals GA from other system units
Also acts as a recipient of B GRANT, ARBSTOP-in and HOLD-in. For conventional systems, all systems
The exit control signals from the units are simply tied together and sent to the receivers of all other units. However, the system does not
Because of the filtering, the signal generated at one LAA only affects the LAA of units within the same domain or domain cluster only. As will become apparent below, other operating devices may also be passed by a domain filter according to different domain definitions,
Acts as a generator and receiver of control signals that can be blocked.

【0042】図9は、図4のドメイン・フィルタ480
の一部としての機能に集中して、図5のローカル・アド
レス・ルータ・チップ55L3を詳細に示す。その動作
全体は複雑であり、トランザクション毎に多数のサイク
ルを必要とするが、この場合の目的に必要なのは、図5
の各アドレス・バス55G1が所定のトランザクション
に対してアドレス・ビットおよびいくつかの制御信号を
搬送することのみである。
FIG. 9 illustrates the domain filter 480 of FIG.
5, the local address router chip 55L3 of FIG. 5 is shown in detail. The overall operation is complex and requires a large number of cycles per transaction, but the purpose in this case is that of FIG.
Each address bus 55G1 carries address bits and some control signals for a given transaction.

【0043】アウトバウンド・アドレス制御部910
は、線群911上の各ポート・コントローラ55L1
(図5)からのトランザクション・アドレスを受け取
り、それらを、エラー訂正コード発生器912を通じ
て、FIFOバッファ913に送出する。マルチプレク
サ914が、ローカル・アドレス・アービタ55L4に
よって確立され線823を通じて通信されるそれらの特
性に応じて、待ちアドレス(waiting address)をドライ
バ916を通して出グローバル・アドレス線915上に
選択的に結合する。
Outbound address control section 910
Represents each port controller 55L1 on the line group 911.
It receives the transaction addresses from (FIG. 5) and sends them through the error correction code generator 912 to the FIFO buffer 913. Multiplexer 914 selectively couples a waiting address through driver 916 onto outgoing global address line 915 depending on those characteristics established by local address arbiter 55L4 and communicated over line 823.

【0044】線1023上のVALID信号が、特定のシス
テム・ユニット410に対してトランザクションが有効
であることを知らせるときはいつでも、従来の入来アド
レス・スイッチ920が入来アドレス線922を通じ
て、受信部921においてグローバル・アドレス・バス
からのトランザクション・アドレスを受け取る。この線
がインアクティブのままである場合、LAS55L3が
対応するバス・サイクルをアイドル・サイクルとして扱
い、何の動作も行わない。有効なトランザクションから
のアドレスは、線923を通って直接メモリ・コントロ
ーラ55L2に進む。他のシステム・ユニットからのア
ドレスは、ECCデコーダ924およびキャッシュ・コ
ヒーレンシ・ユニット930を通じて、入来アドレス・
スイッチ925に進む。アドレスの中には、読み出し/
書き込み制御部926または応答制御部927を通じて
スイッチ925に進むものもある。最後に、スイッチユ
ニット925は、適正な線911への入来アドレスを、
ポート・コントローラ群55L1の1つに通過させる。
Whenever the VALID signal on line 1023 indicates to a particular system unit 410 that a transaction is valid, a conventional incoming address switch 920 may be connected to the receiving unit via incoming address line 922. At 921, a transaction address from the global address bus is received. If this line remains inactive, LAS 55L3 will treat the corresponding bus cycle as an idle cycle and take no action. The address from a valid transaction goes directly to memory controller 55L2 via line 923. Addresses from other system units are passed through the ECC decoder 924 and the cache coherency unit 930 to receive incoming address
Proceed to switch 925. Some of the addresses are read /
Some go to the switch 925 through the write control unit 926 or the response control unit 927. Finally, the switch unit 925 sets the incoming address on the appropriate line 911,
Pass through one of the port controller groups 55L1.

【0045】ブロック930は、通常の方法で、図5の
キャッシュ間のコヒーレンシを維持する。線931は、
キャッシュ制御部930が動作を中断すべきことを判定
した場合、それ自体のシステム・ユニットからCANCEL制
御信号を生成する。高性能システムは、多数のクロック
・サイクルにわたって、処理を思惑的に実行しつつ、平
行して当該処理は本当に実行すべきか否かについて判定
を行うことができる。この処理を実行する条件が満たさ
れない場合、出線931は、制御分配器460を通じ
て、他のシステム・ユニット群全ての入来CANCEL線93
2にCANCEL信号を同報通信する。これによって、キャッ
シュ制御部930はメモリ・コントローラ55L2への
MEM CANCEL線948をアサートし、データを変更できる
ようになる前に、いずれのメモリ動作の完了も禁止す
る。例えば、メモリがRAMから読み出しを行い、その
間に、システムはむしろ現在値がプロセッサ群の1つの
キャッシュ内に位置するか否かについて判定する。この
場合も、ドメイン・フィルタ480が、1つのシステム
・ユニットからのCANCEL-out信号931が、同じドメイ
ン・クラスタ内にはないユニットのCANCEL-in線932
に影響を与えるのを防止するので、各クラスタは、この
制御信号およびその他の制御信号に関しては、他のクラ
スタとは独立して動作することができる。線933も、
線948を経由するあらゆるボード上メモリの動作を取
り消す。これについては、以下で説明する。
Block 930 maintains coherency between the caches of FIG. 5 in the usual manner. Line 931 is
When the cache control unit 930 determines that the operation should be interrupted, it generates a CANCEL control signal from its own system unit. High performance systems can perform a process speculatively over a number of clock cycles, while concurrently making a determination as to whether or not the process should really be performed. If the condition for executing this process is not satisfied, the outgoing line 931 is sent through the control distributor 460 to the incoming CANCEL line 93 of all the other system units.
2 to broadcast a CANCEL signal. As a result, the cache control unit 930 sends a request to the memory controller 55L2.
Assert the MEM CANCEL line 948 to inhibit the completion of any memory operations before data can be changed. For example, the memory reads from RAM while the system rather determines whether the current value is located in a cache of one of the processors. In this case as well, the domain filter 480 determines that the CANCEL-out signal 931 from one system unit is not connected to the CANCEL-in line 932 of a unit not in the same domain cluster.
, Each cluster can operate independently of the other clusters with respect to this and other control signals. Line 933 also
Cancel any on-board memory activity over line 948. This will be described below.

【0046】システム400は、異なるシステム・ユニ
ット群410において発生および終了するトランザクシ
ョン、および同じユニットにおいて発生および終了する
トランザクションの区別を行わない。全てのトランザク
ションは、本システムにおけるグローバル・アドレス・
バスを通過する。何故なら、ドメインまたはクラスタ内
の各キャッシュ・コントローラは、同じ群の他のキャッ
シュ全てのキャッシュ線におけるトランザクションにつ
いて知っていなければならないからである。
The system 400 does not distinguish between transactions occurring and ending in different system units 410 and transactions originating and ending in the same unit. All transactions are handled by the global address
Pass the bus. This is because each cache controller in a domain or cluster must know about transactions on cache lines of all other caches in the same group.

【0047】各アービタ・チップ55L3における図4
のドメイン・フィルタ480のローカル部分940は、
同じシステム・ユニット410内の他のチップ55L3
の全てに配置されている部分940と同一であり、常に
それと同じデータを搬送する。しかしながら、ブロック
940の各コピーは、バス群55G1の異なる1つから
の入来アドレス線921を、線921を介して受け取
る。
FIG. 4 for each arbiter chip 55L3
The local portion 940 of the domain filter 480 of
Other chips 55L3 in the same system unit 410
, And carry the same data at all times. However, each copy of block 940 receives an incoming address line 921 from a different one of bus groups 55G1 via line 921.

【0048】比較器941は、線922からのアドレス
と、4個のレジスタ942および944〜946の各々
との間の一致を検出する。
Comparator 941 detects a match between the address from line 922 and each of the four registers 942 and 944-946.

【0049】ドメイン・マスク・レジスタ(DMR:dom
ain mask register)942は、コンピュータ400内
の可能なシステム・ユニット毎に1ビットとして、16
ビットを有する。所与のドメイン内の各システム・ユニ
ットにおける各ドメイン・レジスタ(の各コピー)に対
するビット位置は、同じドメイン内のシステム・ユニッ
トのその他の全レジスタ内に「1」ビットを含む。図4
の例を用いると、第1の4個のシステム・ユニット(4
10−0から410−3)を第1ドメインとして定義
し、次の2個(410−4および410−5)が第2ド
メインを形成し、次の2個(410−6および−7)は
第3ドメインを構成し、可能な16個のシステム・ユニ
ットの内8個のみがあると仮定する。すると、8個の実
装されたシステム・ユニット410のドメイン・マスク
・レジスタ942は、以下の値を含む。
The domain mask register (DMR: dom
ain mask register) 942 contains 16 bits, one bit for each possible system unit in computer 400.
With bits. The bit position for each domain register (each copy) in each system unit in a given domain includes a "1" bit in all other registers of the system unit in the same domain. FIG.
Using the example of, the first four system units (4
10-0 to 410-3) are defined as the first domain, the next two (410-4 and 410-5) form the second domain, and the next two (410-6 and -7) Assume that the third domain is configured and that there are only 8 out of 16 possible system units. Then, the domain mask registers 942 of the eight mounted system units 410 contain the following values:

【0050】[0050]

【表1】 [Table 1]

【0051】ここでも、同じシステム・ユニット410
内のレジスタ942の4個のコピーは全て、同じ値を含
む。
Again, the same system unit 410
All four copies of register 942 contain the same value.

【0052】線922は、現トランザクションを発行し
た特定のシステム・ユニット410の番号を表す信号を
含む。受信ユニットのDMR942の対応するビットが
オンになっていない場合、比較器941は、NON−DOMAI
N線943上に禁止信号を生成し、入来スイッチ925
がトランザクションを線911を通じて図5のポート群
55L1に渡すのを禁止する。また、比較器は、線94
9およびORゲート901を通じて、線948上にMEMO
RY CANCEL禁止信号を生成する。この信号は、現トラン
ザクションがドメイン外で発した場合に、メモリ・コン
トローラ55L2に、線923上のアドレスを無視する
ように命令する。これは効果的にドメインを分離し、他
のドメインで発生したトランザクションには不感応にす
る。
Line 922 includes a signal representing the number of the particular system unit 410 that issued the current transaction. If the corresponding bit of the DMR 942 of the receiving unit is not turned on, the comparator 941 sets the NON-DOMAI
An inhibit signal is generated on the N line 943 and the incoming switch 925
Prohibits the transaction from passing to the port group 55L1 of FIG. 5 through the line 911. The comparator also has a line 94
9 and OR gate 901, MEMO on line 948
Generate RY CANCEL inhibit signal. This signal instructs the memory controller 55L2 to ignore the address on line 923 if the current transaction originated outside the domain. This effectively separates the domains and makes them insensitive to transactions originating in other domains.

【0053】これまで述べてきたように、異なるドメイ
ンにおけるシステム・ユニット群は、図5の533のよ
うな専用配線によって相互接続される直列通信線のよう
な外部I/O装置を通じてのみ、互いにデータを交換し
合うことができる。大幅に高速化した方法により異なる
ドメインを協同させれば、コンピュータ400は多くの
用途に拡張されよう。このために、図4のドメイン・フ
ィルタ480は、多数のドメインを共に集合化し、1つ
のクラスタにすることも可能である。1つのクラスタ内
のドメイン群は、それらのメモリの一部または全部を互
いに共有し合うことができる。1つのドメイン内のプロ
セッサが、予め規定されている範囲のアドレス空間にデ
ータを書き込む場合、同じクラスタの他のドメイン内に
あるプロセッサはこのデータを読むことができる。即
ち、1つのクラスタ内の異なるドメインはある範囲の共
有メモリを有する。このメモリは、クラスタ内のいずれ
のシステム・ユニットにも物理的に位置することがで
き、図5のグローバル・アドレス・ルータ55G0を通
じてアクセスし、当該クラスタ内のあらゆるドメイン内
の他のいずれのシステム・ユニットに対するデータの転
送も、グローバル・データ・ルータ54G0を通じて行
うことができる。
As described above, the system units in the different domains communicate with each other only through external I / O devices, such as serial communication lines interconnected by dedicated wiring, such as 533 in FIG. Can be exchanged. Cooperating different domains in a greatly accelerated manner would extend computer 400 to many uses. To this end, the domain filter 480 of FIG. 4 can also aggregate multiple domains together into a single cluster. Domains within a cluster can share some or all of their memory with each other. If a processor in one domain writes data to a pre-defined range of address space, a processor in another domain of the same cluster can read this data. That is, different domains within a cluster have a range of shared memory. This memory can be physically located in any system unit in the cluster, accessed through the global address router 55G0 of FIG. 5 and any other system unit in any domain in the cluster. The transfer of data to the unit can also be performed through the global data router 54G0.

【0054】ローカル・ドメイン・フィルタ940の各
コピー内に位置する共有メモリ・マスク・レジスタ94
4は、どのシステム・ユニットが、図10におけるクラ
スタ・レジスタ1020によって定義されるクラスタ内
の共有メモリとして、他のユニットにエクスポートすべ
き物理的RAM521を含むのかについて定義する。同
じシステム・ユニット内の各SMMR944の内容は同
一である。
Shared memory mask register 94 located in each copy of local domain filter 940
4 defines which system units include the physical RAM 521 to be exported to other units as shared memory in the cluster defined by the cluster register 1020 in FIG. The contents of each SMMR 944 within the same system unit is identical.

【0055】各SMMR944は、コンピュータ400
内の可能なシステム・ユニット毎に1ビットとして、1
6ビットを有し、各システム・ユニット410は、コン
ピュータ400内のグローバル・アドレス・バス55G
1毎に1つのコピーとして、それ自体のSMMRのコピ
ーを4個有する。所与のクラスタ内のシステム・ユニッ
ト410−iにおけるSMMRに対するビット位置j
は、ユニット401−iがシステム・ユニット410−
jからのいずれかのメモリ・トランザクションに応答す
べき場合、「1」値を含む。図4に示した例に戻り、第
2ドメインの2個のユニット410−4,410−5が
第3ドメインの2個のユニット410−6,410−7
と共にクラスタを形成し、ユニット410−4は共有メ
モリを、ユニット410−6,410−7から成るドメ
インにエクスポートすると仮定する。即ち、ユニット4
10−4上に物理的に実装されたアドレス番号のメモリ
の内少なくともいくつかは、そのメモリが後者のユニッ
ト上に実装されているかのように、ユニット410−
6,410−7上のプロセッサによって、同じアドレス
番号の下で、読み出しおよび書き込みが可能である。
(この場合も、可能な16個のシステム・ユニットの内
あるのは8個のみなので、ビット位置8〜Fに対する値
は重要ではない。)したがって、システム・ユニット4
10のSMMRは、次の値を含む。
Each SMMR 944 has a computer 400
1 bit for each possible system unit within
6 bits, each system unit 410 has a global address bus 55G
It has four copies of its own SMMR, one copy for each. Bit position j for SMMR in system unit 410-i in a given cluster
Means that the unit 401-i is the system unit 410-
Include a "1" value if any memory transaction from j should be responded to. Returning to the example shown in FIG. 4, two units 410-4 and 410-5 of the second domain are replaced with two units 410-6 and 410-7 of the third domain.
And form a cluster with unit 410-4, assuming that unit 410-4 exports the shared memory to a domain consisting of units 410-6 and 410-7. That is, unit 4
At least some of the memory of the address numbers physically implemented on the unit 10-4, as if the memory were implemented on the latter unit, the unit 410-
Reading and writing are possible under the same address number by the processor on 6,410-7.
(Again, the values for bit positions 8-F are not significant, as only 8 of the 16 possible system units are available.) Therefore, system unit 4
The ten SMMRs include the following values:

【0056】[0056]

【表2】 [Table 2]

【0057】全てのレジスタにおいてビット位置8〜F
は「0」である。何故なら、それに対応するシステム・
ユニットが存在しないからである。ユニット410−0
ないし410−3には「1」の値がない。何故なら、こ
れらは同じドメインにあり、当該ドメインの中のユニッ
ト群には、メモリを他のドメインにエクスポートするも
のはないからである。ユニット410−4ないし410
−7に対するビット7までの「1」値は、これらのユニ
ットが、ユニット410−4ないし410−7全てから
の通常のメモリ・トランザクションに応答し、共有メモ
リを実施しなければならないことを示す。メモリはこれ
らのユニットの1つ(例えば、410−4)の上に位置
するが、特定の位置は、SMMR944から推論するこ
とはできない。共有メモリ上ではキャッシュ・コヒーレ
ンシが必要であるので、この共有メモリを用いるユニッ
トは全て、共有メモリを用いる他の全ユニットからの、
このアドレス範囲内のトランザクション全てを見ていな
ければならない。
Bit positions 8 to F in all registers
Is “0”. Because the corresponding system
This is because the unit does not exist. Unit 410-0
To 410-3 have no value of "1". This is because they are in the same domain, and none of the units in that domain export memory to other domains. Units 410-4 through 410
A "1" value up to bit 7 for -7 indicates that these units must respond to normal memory transactions from all of units 410-4 through 410-7 and implement shared memory. The memory is located on one of these units (e.g., 410-4), but the specific location cannot be inferred from SMMR 944. Since cache coherency is required on shared memory, all units that use this shared memory will receive
You must see all transactions within this address range.

【0058】システム・ユニットのメモリの全てが共有
されているか、あるいは全く共有されていないかを示す
には、レジスタ944のみで十分であろう。しかしなが
ら、殆ど全ての場合、クラスタのドメイン群間では、メ
モリの指定された部分のみを共有することが望ましい。
レジスタ945,946は、特定のクラスタにおいて共
有すべきアドレス範囲の境界を指定する。クラスタ内の
共有メモリに対するアクセスを有する、各システム・ユ
ニット上の各共有メモリ基底レジスタ(SMBR:shar
ed-memory base register)945は、共有すべきコンピ
ュータ400の全アドレス空間内の最下位アドレスを含
む。図4の例では、ユニット410−4は、アドレス'0
4 0000 0000'ないし'04 FFFF FFFF'のメモリを物理的に
収容するが、エクスポートするのは上位1GB、即ち、
アドレス'04 C0000 0000'から'04FFFF FFFF'までのメモ
リだけである。41ビットのアドレスの内、実際にレジ
スタ945に格納されるのは上位25ビットのみである
ので、共有メモリの細分性(granularity)は64Kバイ
トとなる。したがって、ユニット410−4ないし41
0−7のSMBRは値'004 C000'を含む。基底アドレス
値を全く保持しないSMBRを指定するには、種々の方
法が存在する。この例では、かかるレジスタは値'000 0
000'を保持する。(これらのアドレス上の上位側に追加
した'0'はアドレス空間ビットであり、'0'はメモリ・ア
ドレス、'1'はレジスタ940のアドレス自体のような
システム・アドレスを示す)。
Register 944 alone will be sufficient to indicate whether all of the memory of the system unit is shared or not at all. However, in almost all cases, it is desirable to share only a specified portion of the memory between the domain groups of the cluster.
Registers 945 and 946 specify the boundaries of the address range to be shared in a particular cluster. Each shared memory base register (SMBR: shar) on each system unit that has access to the shared memory in the cluster
The ed-memory base register 945 includes the lowest address in the entire address space of the computer 400 to be shared. In the example of FIG. 4, the unit 410-4 has the address' 0
4 0000 0000 'to '04 FFFF FFFF' memory is physically accommodated, but exported is the upper 1 GB, that is,
Only the memory from address '04 C0000 0000 'to' 04FFFF FFFF '. Since only the upper 25 bits of the 41-bit address are actually stored in the register 945, the granularity of the shared memory is 64 Kbytes. Therefore, the units 410-4 through 41
An SMBR of 0-7 contains the value '004 C000'. There are various ways to specify an SMBR that does not hold any base address value. In this example, such a register would have the value '000 0
Hold 000 '. (The '0' added to the upper side of these addresses is an address space bit, '0' indicates a memory address, and '1' indicates a system address such as the address of the register 940 itself).

【0059】同様に、同じクラスタ内の各共有メモリ制
限レジスタ(SMLR:shared-memory limit registe
r)946は、共有アドレス範囲の最上位アドレスの上
位25ビットを含む。この例では、システム・ユニット
410−4ないし410−7のSMLRは値'004 FFFF'
を保持し、最上位共有アドレスは、当該ユニット上の物
理メモリの最上位アドレス、即ち、'004 FFFF FFFF'と
同じであることを指定する。他の全ユニットのSMLR
は指定無効値'000 0000'を保持する。
Similarly, each shared memory limit register (SMLR: shared-memory limit register) in the same cluster
r) 946 includes the upper 25 bits of the highest address of the shared address range. In this example, the SMLR of system units 410-4 through 410-7 has the value '004 FFFF'
And that the highest shared address is the same as the highest address of the physical memory on the unit, that is, '004 FFFF FFFF'. SMLR of all other units
Holds the specified invalid value '000 0000'.

【0060】[0060]

【表3】 [Table 3]

【0061】レジスタ制御部947は、制御線1143
に、異なる値をレジスタ942,944,945,94
6にロードさせる。これは、ドメイン群およびクラスタ
群におけるシステム・ユニット群410の動的再構成、
および各クラスタの共有メモリの位置の動的再構成を可
能にする。図11および図12は、この機能をどのよう
に行うかを説明するためのものである。各レジスタ組9
40内に基底および境界レジスタ945,946の追加
コピーを配置すると、必要であれば、単一のドメイン・
クラスタ内において多数の範囲の共有アドレスが可能に
なる。あるいは、レジスタに基底アドレスおよび共有セ
グメント・サイズ、またはその他のパラメータを格納し
てもよい。
The register control section 947 controls the control line 1143
And different values in registers 942, 944, 945, 94
Load 6 This includes dynamic reconfiguration of system units 410 in domains and clusters,
And allows dynamic reconfiguration of the shared memory location of each cluster. FIG. 11 and FIG. 12 are for explaining how to perform this function. Each register set 9
Placing additional copies of the base and boundary registers 945, 946 within 40 allows the single domain
Multiple ranges of shared addresses are possible within a cluster. Alternatively, the base address and shared segment size, or other parameters, may be stored in registers.

【0062】NON-DOMAIN線943を用いて、ドメイン以
外からの他のトランザクションを禁止するのと丁度同じ
ように、非共有メモリからのトランザクションを禁止即
ち阻止することも可能である。この構成は非メモリ・ト
ランザクションの迅速な制御を可能にするが、メモリの
濾過(filtering)が比較器941において必要な時間が
長くなる。メモリ・サブシステム520におけるレイテ
ンシは、図5の他のサブシステムにおけるレイテンシよ
りも重大であるので、比較器941は、現トランザクシ
ョンのタイプを示す、線922からの従来の信号も受け
取ることが好ましい。線923が非メモリ・トランザク
ションを指定する場合、線943は、前述のように線9
11を禁止するが、通常のメモリ・トランザクション
は、この時点では濾過せず、メモリ・サブシステム52
0に進み、ここでその実行のための準備が開始される。
しかしながら、比較器941は、このユニットのドメイ
ン(DMR942によって定義される)外のシステム・
ユニットから発するいずれの通常のメモリ・トランザク
ションに対しても、MEMORY CANCEL線948を活性化す
る。このメモリ・トランザクションに対して、レジスタ
945,946は、他のドメインと共有するメモリの範
囲外にあることを示す。即ち、このメモリ・トランザク
ションはSMMR944に示されないシステム・ユニッ
トから発したメモリ・トランザクションである。次に、
この線948は、図7のスイッチ720においてトラン
ザクションを直接阻止し、その処理が部分的に既に開始
されていても、トランザクションが図5のバンク群52
1のいずれに格納されているデータにも実際に影響を及
ぼすのを防止する。
It is also possible to use the NON-DOMAIN line 943 to prohibit or prevent transactions from non-shared memory, just as prohibit other transactions from outside the domain. This configuration allows for quick control of non-memory transactions, but increases the time required for memory filtering in comparator 941. Since the latency in the memory subsystem 520 is more critical than in the other subsystems of FIG. 5, the comparator 941 also preferably receives a conventional signal from line 922 indicating the type of the current transaction. If line 923 specifies a non-memory transaction, line 943 will be connected to line 9 as described above.
11, but normal memory transactions are not filtered at this point and the memory subsystem 52
0, where preparation for its execution is started.
However, the comparator 941 does not allow the system outside the domain of this unit (defined by DMR 942).
The MEMORY CANCEL line 948 is activated for any normal memory transaction originating from the unit. For this memory transaction, registers 945 and 946 indicate that it is out of range of memory shared with other domains. That is, this memory transaction is a memory transaction originating from a system unit not shown in SMMR 944. next,
This line 948 directly blocks the transaction at switch 720 of FIG.
1 is prevented from actually affecting data stored in any one of them.

【0063】こうして、コンピュータ400は、ドメイ
ン群およびクラスタ群間の「ソフトウエア分離」を達成
した。異なるドメインは、例えば、全く異なるオペレー
ティング・システムを実行させてもよく、互いに干渉し
合うことはない。更に、エラーが他のドメイン・クラス
タ内のシステム・ユニットの動作のみに影響をあたえる
場合に、図4の制御バス460からのハードウエア・エ
ラー信号がシステム全体を破壊し得ないように、コンピ
ュータ内に「ハードウエア分離」を設けることが残って
いる。例えば、システム・ユニット410−0内のEC
Cブロック924によって検出されたエラーは、410
−5のようなシステム・ユニットに影響を与えない。何
故なら、これらのハードウエア・ユニットはむしろ互い
に独立して動作しており、一方のユニットにおけるハー
ドウエア障害が他方で実行中の処理には全く影響を与え
ないからである。
Thus, the computer 400 achieves “software separation” between the domain group and the cluster group. Different domains may, for example, run entirely different operating systems and do not interfere with each other. Further, if the error only affects the operation of system units in other domain clusters, the hardware error signal from control bus 460 of FIG. To provide "hardware separation". For example, the EC in the system unit 410-0
The error detected by C block 924 is 410
Does not affect system units like -5. This is because these hardware units operate rather independently of one another, and hardware failures in one unit have no effect on the processing being performed on the other.

【0064】図10は、図4のドメイン・フィルタ48
0の4個の同一グローバル部分の1つを含む、図5の4
個のグローバル・アドレス・アービタ55G2の1つを
詳細に示す。図10におけるアービタ55G2は、4系
統のグローバル・アドレス・バス(GAB)55G1の
内第1バス55G1−0を制御すると仮定する。このア
ービタは、コンピュータ400内の各システム・ユニッ
ト410上に配置された、図8のローカル・アドレス・
アービタ(LAA)820からの4本のGAB−要求線
821の1本を受け取る。LAA55L4が、そのシス
テム・ユニット上のどのポートが、4系統のグローバル
・バスの各々に対する次のアクセスを得るに値するかを
決定したときはいつでも、その線821は、アービタ・
ロジック1010によって制御されるGABを通じて、
トランザクションを同報通信する要求をアサートする。
コンピュータ400は4個のGAB55G1を有するの
で、各ローカル・アービタ55L4から4個のグローバ
ル・アービタ55G2までに、4本の別個の線821が
通っている。
FIG. 10 shows the domain filter 48 of FIG.
5, one of the four identical global parts of 0
One global address arbiter 55G2 is shown in detail. It is assumed that the arbiter 55G2 in FIG. 10 controls the first bus 55G1-0 of the four global address buses (GAB) 55G1. This arbiter is located on each system unit 410 in the computer 400 and is located on the local address
It receives one of the four GAB-request lines 821 from the arbiter (LAA) 820. Whenever the LAA55L4 determines which port on the system unit deserves the next access to each of the four global buses, its line 821 is asserted by the arbiter
Through GAB controlled by logic 1010,
Assert a request to broadcast a transaction.
Since computer 400 has four GABs 55G1, there are four separate lines 821 running from each local arbiter 55L4 to four global arbiters 55G2.

【0065】調停ロジック1010は、多数の従来から
のアルゴリズムのいずれかを用いて、16本の許可線1
013の内1本を立ち上げることによって、そのGAB
55G1(図5)の転送サイクルを、16個のシステム
・ユニット410の1つのLAA55L4に割り当て
る。従来のシステムにおけると同様、許可信号は、図8
の線822を通じて、システム・ユニットのLAA55
L4の各々に直接戻ってくる。この場合フィルタ・ロジ
ック1022を無視し、選択されたLAS55L3から
発したアドレス・トランザクションは、そのGAB55
G1を通じて、16個の全システム・ユニット上の対応
するLASに伝搬する。グローバル・アドレス・ルータ
450の次の転送動作において、グローバル・アドレス
・アービタ55G2は、アドレスをその対応するGAB
55G1に通過させるために、ローカル・アドレス・ス
イッチ55L3に信号を送るように、選択されたLAA
55L4に命令する。成功したトランザクションのGRAN
T線1013は、全てのシステム・ユニットに、それら
のどれが当該GAB55G1上のトランザクションを発
したかを示す。受信側システム・ユニットは、トランザ
クションを受け取ったときに、トランザクション自体に
ある情報から、ソース・ユニットを識別する。ローカル
・データ・ルータ54L2は、グローバル・データ経路
群54G1の内どれが、成功したトランザクションによ
って要求されるあらゆるデータを搬送するかについて、
図5のデータ・アービタ54L3,54G2と交渉を行
う。
The arbitration logic 1010 employs any of a number of conventional algorithms to control the 16 grant lines 1
By launching one of the 013, the GAB
The transfer cycle of 55G1 (FIG. 5) is assigned to one LAA 55L4 of the 16 system units 410. As in the conventional system, the permission signal
Through the line 822 of the system unit LAA 55
Return directly to each of the L4s. In this case, the filter logic 1022 is ignored and address transactions originating from the selected LAS 55L3 are
Propagate through G1 to the corresponding LAS on all 16 system units. In the next transfer operation of the global address router 450, the global address arbiter 55G2 stores the address in its corresponding GAB.
Selected LAA to signal local address switch 55L3 to pass through
Command 55L4. GRAN for successful transactions
T-line 1013 indicates to all system units which of them has issued a transaction on that GAB 55G1. When the receiving system unit receives the transaction, it identifies the source unit from information in the transaction itself. The local data router 54L2 determines which of the global data paths 54G1 will carry any data required by a successful transaction.
Negotiation is performed with the data arbiters 54L3 and 54G2 in FIG.

【0066】本発明によるマルチ・ドメイン・コンピュ
ータでは、ドメイン・フィルタ480のグローバル部分
は、物理的に、各グローバル・アドレス・アービタ55
G2を伴う。16個の可能なシステム・ユニット410
の各々に1つある、クラスタ・レジスタ1021のバン
ク1020が、16本の許可信号線1013を受ける。
個々のクラスタ・レジスタ1021−iは各々、16個
のシステム・ユニット410−j毎に、1つのビット位
置1021−i−jを有する。例えば、第1レジスタ1
021−0の「ユニット−3」の位置における'1'の値
は、システム・ユニット410−3が、システム・ユニ
ット410−0と同じクラスタ内にあることを示す。以
下の表は、上述の例示構成に対する、レジスタ1021
の内容を示す。
In a multi-domain computer according to the present invention, the global portion of the domain filter 480 is physically located at each global address arbiter 55
With G2. 16 possible system units 410
Each of the banks 1020 of the cluster register 1021 receives one of the 16 enable signal lines 1013.
Each individual cluster register 1021-i has one bit position 1021-ij for every 16 system units 410-j. For example, the first register 1
A value of '1' at the position of “unit-3” of 021-0 indicates that the system unit 410-3 is in the same cluster as the system unit 410-0. The following table shows the registers 1021 for the example configuration described above.
Indicates the contents of

【0067】[0067]

【表4】 [Table 4]

【0068】16個の可能なシステム・ユニット全てに
レジスタが常に装備されている。レジスタ1021−8
ないし1021−F内の値は、図4では実装されていな
いシステム・ユニットに対応し、重要ではない。しかし
ながら、「1」を全ての診断ビット位置(即ち、レジス
タiの位置i)に割り当て、「0」をそれ以外の位置に
割り当てることにより、システム内に既にある他のいず
れのユニットとも干渉せずに、システム・ユニットをコ
ンピュータ400の動作中に差し込むことができると共
に、単体の診断を直ちに実行することができる。
All 16 possible system units are always equipped with registers. Register 1021-8
The values in 1021 -F correspond to system units not implemented in FIG. 4 and are not significant. However, by assigning a “1” to all diagnostic bit positions (ie, position i of register i) and assigning a “0” to other positions, it does not interfere with any other units already in the system. In addition, the system unit can be plugged in during the operation of the computer 400, and a single diagnosis can be immediately performed.

【0069】フィルタ・ロジック1022は、レジスタ
1021内のクラスタ定義に応じて、許可線1013を
線1023に結合する。各線1023は、それに対応す
るシステム・ユニット410に、「グローバル・アドレ
ス有効」(VALID)信号822として到達する。図
3の300のような通常のシステムでは、VALID信号
は、単に、バス上の現トランザクションが有効であり、
全てのシステム・ユニットに同報通信されていることを
示すタイミング信号に過ぎない。一方、本システム40
0では、異なるクラスタ内にある多数のシステム・ユニ
ットが同じアドレスを有することができ、発生元と同じ
クラスタ内にある受信側はそのトランザクションを受け
なければならず、他のクラスタ内にあるシステム・ユニ
ットは、いずれのトランザクションが当該システム・ユ
ニットに対応するアドレスを保持していても、それが発
生していることを完全に無視し続けなければならない。
Filter logic 1022 couples enable line 1013 to line 1023 according to the cluster definition in register 1021. Each line 1023 arrives at its corresponding system unit 410 as a “global address valid” (VALID) signal 822. In a typical system, such as 300 in FIG. 3, the VALID signal simply indicates that the current transaction on the bus is valid,
It is merely a timing signal indicating that it is being broadcast to all system units. On the other hand, the system 40
0, multiple system units in different clusters can have the same address, and receivers in the same cluster as the origin must receive the transaction, and system units in other clusters The unit must continue to completely ignore what is happening, no matter which transaction holds the address corresponding to the system unit.

【0070】通常の単一ドメイン・コンピュータでは、
図8のいずれのLAA55L4からのHOLD信号825
も、コンピュータ全体の他のシステム・ユニット410
毎のLAA55L4内のそのGABに向かう線826に
伝搬されるだけである。しかしながら、コンピュータ4
00では、各GAAチップ55G2上にある他のフィル
タ・ロジックの組1026によって、クラスタ・レジス
タ1020によって定義されるように、HOLD信号825
は同じハードウエア群内の他のシステム・ユニットに属
する線826のみに到達することができる。ARBSTOP信
号824も同様に動作する。1つのシステム・ユニット
によってアサートされたSTOPは、他の全LAAに向かう
入来ARBSTOP線826に単に接続されるのではなく、レ
ジスタ1020によって指定された他のユニット群のみ
に到達する。このドメイン・フィルタ480のグローバ
ル部分は、他の制御信号に対するフィルタ・ロジックの
各組も同様に含んでいる。例えば、いずれかのシステム
・ユニットの図9のキャッシュ・コントローラ930に
よってアサートされたCANCEL信号931は、フィルタ・
ロジック1028が許す場合にのみ、入来CANCEL線92
3を通じてトランザクションをキャンセルすることがで
きる。1022および1026〜1028のようなフィ
ルタ・ロジックは全て、線1025によってクラスタ・
レジスタ群1021に並列に接続されている。
In a typical single domain computer,
HOLD signal 825 from any LAA 55L4 in FIG.
Also other system units 410 throughout the computer
It is only propagated on line 826 towards the GAB in each LAA 55L4. However, computer 4
At 00, the HOLD signal 825, as defined by the cluster register 1020, by another set of filter logic 1026 on each GAA chip 55G2.
Can only reach line 826 belonging to another system unit in the same hardware group. The ARBSTOP signal 824 operates similarly. A STOP asserted by one system unit only reaches the other group of units specified by register 1020, rather than simply being connected to the incoming ARBSTOP line 826 going to all other LAAs. The global portion of the domain filter 480 includes each set of filter logic for other control signals as well. For example, the CANCEL signal 931 asserted by the cache controller 930 of FIG.
Incoming CANCEL line 92 only if logic 1028 allows.
3, the transaction can be canceled. Filter logic such as 1022 and 1026-1028 are all clustered by line 1025.
They are connected in parallel to the register group 1021.

【0071】制御ユニット1024は、クラスタ定義を
動的に再構成するために、線1144がレジスタ群10
21に異なる値をロードすることを許可する。実施態様
の選択として、各グローバル・アービタ55G2は同一
の集積回路を占有し、その各々は、同じクラスタ・レジ
スタおよびフィルタ・ロジックの組を重複して含んでい
る。クラスタ・レジスタの組には全て、同じ格納値集合
がロードされる。
The control unit 1024 sets the line 1144 to the register group 10 to dynamically reconfigure the cluster definition.
Allows 21 to be loaded with different values. As an option in the embodiment, each global arbiter 55G2 occupies the same integrated circuit, each of which contains the same set of cluster registers and filter logic in duplicate. All sets of cluster registers are loaded with the same set of stored values.

【0072】図14は、1022または1026〜10
28のような1組のドメイン・フィルタ・ロジックを実
施する回路1400の詳細を示す。図14はロジック1
022をパラダイム(paradigm)として用い、その場合の
回路1400に対する信号指定を示す。図示を容易にす
るために、図14は、ビット線1025のみでなく、ク
ラスタ・レジスタ1021自体も示している。
FIG.
28 shows details of a circuit 1400 that implements a set of domain filter logic, such as 28. FIG. 14 shows logic 1.
022 is used as a paradigm, and a signal designation to the circuit 1400 in that case is shown. For ease of illustration, FIG. 14 shows not only the bit line 1025, but also the cluster register 1021 itself.

【0073】線1023−0はそのハードウエア・ドメ
イン・クラスタ内のいずれかのシステム・ユニットがト
ランザクションを開始したときはいつでも、システム・
ユニット410−0へのVALID信号をアサートする。ユ
ニット410−0に関連するGRANT信号1013−0
は、レジスタ1021−0のビット1021−0−0が
「1」値を含み、当該ユニット410−0がそれ自体の
クラスタの中にあることを示す場合、ANDゲート14
01−00を満足する。次に、論理ORゲート1402
−0が出力1023−1をアサートし、それをシステム
・ユニット410−0に戻す。システム・ユニット41
0−1からのGRANT線1013−1がアサートされる
と、これら2個のユニットが同じクラスタ内にある場
合、ユニット410−0に向かう線1023も立ち上げ
る。同じクラスタ内にある場合、1013−1が立ち上
がったときに、レジスタ1021−0のビット1(簡略
化のためビット1021−0−1と呼ぶ)の値「1」が
ANDゲート1401−01およびOR1402−0を
満足する。このバンク内の残りの14個のANDゲート
も、1021−0−Fを通じて、レジスタ・ビット群1
021−0−2に対して同様に動作する。
Line 1023-0 indicates that a system unit has started a transaction whenever any system unit in the hardware domain cluster has begun a transaction.
Assert the VALID signal to unit 410-0. GRANT signal 1013-0 associated with unit 410-0
Indicates that if bit 1021-0-0 of register 1021-0 contains a "1" value, indicating that unit 410-0 is in its own cluster, AND gate 14
01-00 is satisfied. Next, a logical OR gate 1402
-0 asserts output 1023-1 and returns it to system unit 410-0. System unit 41
When GRANT line 1013-1 from 0-1 is asserted, if these two units are in the same cluster, line 1023 going to unit 410-0 also rises. If they are in the same cluster, when 1013-1 rises, the value “1” of bit 1 of register 1021-0 (referred to as bit 1021-0-1 for simplicity) is AND gate 1401-01 and OR 1402 −0 is satisfied. The remaining 14 AND gates in this bank are also connected to register bit group 1 through 1021-0-F.
The same operation is performed with respect to 021-0-2.

【0074】ゲート1401−10ないし1401−1
Fおよび1402−1は、同様に機能し、同じドメイン
・クラスタ内のシステム・ユニットがトランザクション
を申し出た場合にはいつでも、VALID信号1023−1
をシステム・ユニット410−1に対して生成する。1
4個の追加のゲート・バンクが、1023−Fを通じ
て、残りの線を処理する。通常、レジスタ群1021の
内容は対角行列(diagonal matrix)を形成するので、ビ
ット1021−i−jは常にビット1021−j−iと
同じ値を有する。また、各ユニットは通常それ自体のク
ラスタのメンバであるので、全ての主対角ビット102
1−i−iは常に「1」である。
Gates 1401-10 to 1401-1
F and 1402-1 function similarly, and whenever a system unit in the same domain cluster offers a transaction, the VALID signal 1023-1
Is generated for the system unit 410-1. 1
Four additional gate banks process the remaining lines through 1023-F. Normally, the contents of registers 1021 form a diagonal matrix, so that bits 1021-ij always have the same value as bits 1021-ji. Also, since each unit is usually a member of its own cluster, all the main diagonal bits 102
1-ii is always "1".

【0075】図11は、図4のコンフィギュレータ42
0がコンピュータ400内においてドメイン群およびク
ラスタ群を動的に設定する態様を示す。
FIG. 11 shows the configurator 42 of FIG.
0 indicates a mode in which a domain group and a cluster group are dynamically set in the computer 400.

【0076】図4の通常の制御およびサービス・ユニッ
ト470は、標準的なワークステーション1120と通
信する、既に使用可能な専用サービス・プロセッサ11
10の形態を取り、遠隔コンソールとして機能する。こ
れら2個のユニットは、ケーブルまたはその他のリンク
1122によって結合されている、標準的なアダプタ1
111,1121を通じて互いに通信する。コンソール
1120は、アダプタ1123によって、それ自体の入
出力装置(図示せず)に接続されてもよい。サービス・
プロセッサのI/Oアダプタ群1112は、コンピュー
タ400内の多数の機能を感知し制御する。例えば、線
1113は、コンピュータ全体のために、給電および冷
却サブシステム1130にインターフェースする。線1
114は、図4の制御分配手段440内の多数の線に接
続する。
The normal control and service unit 470 of FIG. 4 is a dedicated service processor 11
It takes the form of 10 and functions as a remote console. These two units are connected by a cable or other link 1122, a standard adapter 1
They communicate with each other through 111 and 1121. Console 1120 may be connected to its own input / output device (not shown) by adapter 1123. service·
Processor I / O adapters 1112 sense and control a number of functions within computer 400. For example, line 1113 interfaces to the power and cooling subsystem 1130 for the entire computer. Line 1
114 connects to a number of lines in the control distribution means 440 of FIG.

【0077】コンピュータ400内に実施されている通
常の機能の1つとして、1組の線1115を通じて、1
116で示すような種々の要素に、記憶されている検査
パターンを送ることにより、その論理回路に対して検査
を行うことができる機能がある。これらの線の従来の機
能は、K.P. Parker, THE BOUNDARY-SCAN HANDBOOK (Klu
wer Academic Publishers, 1992)のような引用文献に記
載されている、境界スキャン検査(boundary-scan test)
を実施するためにある。当業者は、通常このプロトコル
を「JTAG規格」と呼んでいる。
One of the usual functions implemented in the computer 400 is through a set of lines 1115,
By sending a stored test pattern to various elements as indicated by reference numeral 116, there is a function capable of performing a test on the logic circuit. The traditional function of these lines is the KP Parker, THE BOUNDARY-SCAN HANDBOOK (Klu
wer Academic Publishers, 1992), a boundary-scan test
There is to implement. Those skilled in the art usually refer to this protocol as the "JTAG standard".

【0078】コンフィギュレータ420は、追加機能に
対して、既存のJTAG線1115を選定する(coopt)。通
常、これらの線は、コンピュータ400全体にわたる多
くのチップに従来からのアドレス線およびデータ線を提
供し、これらのチップの機能を検査することを目的とし
ている。LAS55L3およびGAA55G2のための
チップの中では、図9の制御ロジック947、および図
10の制御ロジック1024は、JTAG線1143,11
44上のある所定の信号の組み合わせを検出する。これ
らの線は、ドメインおよびクラスタ仕様を線1143に
搬送し、図5および図9に示すように、選択されたシス
テム・ユニット410のローカル・アドレス・ルータ群
55L3内のフィルタ・レジスタ群940の内容をロー
ドする。また、線1142は、クラスタ仕様を線114
4に搬送し、図5および図10に示すように、グローバ
ル・アドレス・アービタ群55G0と関連するフィルタ
・レジスタ1020にロードする。JTAGまたは他のかか
る線を既に適所に有していないシステム群400は、サ
ービス・プロセッサ1110からの専用線を用いて、容
易に制御線1143,1144として使用したり、構成
機能を実行するために他の線に切り替えることができ
る。これらの線は、単に、偶然この特定の実施態様にお
いて容易に使用可能であるに過ぎない。他の代替案とし
て、レジスタ940,1020をシステム・メモリ空間
内の小さなメモリ・ブロックとして扱うというものがあ
る。先に注記したように、コンピュータ400は、'10
0000 0000'から'1F FFFF FFFF'までのかかる空間を、そ
の全範囲として有している。
The configurator 420 selects (coopts) an existing JTAG line 1115 for the additional function. Typically, these lines provide conventional address and data lines to many chips throughout the computer 400 and are intended to test the function of these chips. In the chip for the LAS55L3 and GAA55G2, the control logic 947 of FIG. 9 and the control logic 1024 of FIG.
A predetermined signal combination on 44 is detected. These lines carry the domain and cluster specifications on line 1143 and, as shown in FIGS. 5 and 9, the contents of filter registers 940 in local address routers 55L3 of selected system unit 410. To load. Also, the line 1142 indicates the cluster specification by the line 114.
4 and load the filter register 1020 associated with the global address arbiter group 55G0 as shown in FIGS. Systems 400 that do not already have JTAG or other such lines in place may use dedicated lines from service processor 1110 to easily use as control lines 1143, 1144 or perform configuration functions. You can switch to another line. These lines simply happen to be readily usable in this particular embodiment. Another alternative is to treat the registers 940, 1020 as small blocks of memory in the system memory space. As noted above, the computer 400 has a '10
Such a space from 0000 0000 'to' 1F FFFF FFFF 'is included in the entire range.

【0079】サービス・プロセッサ470の形態にはな
んらクリティカルな点はない。場合によっては、この機
能のために、物理的に別個の実体を有することなく、通
常のシステム自体の一部を使用することですら可能な場
合もある。実際、好適なコンピュータ400は、必要で
あれば、システム・ユニット自体が、ドメイン・コンフ
ィギュレータの機能のいくつかを提供することを可能に
している。システム・ユニット410内で実行されるオ
ペレーティング・システム内の特権ソフトウエア(privi
leged software)も、現行の共有メモリ・ブロックを指
定し直すために、図9の共有メモリ・レジスタ945,
946に書き込むことができる。また、サービス・プロ
セッサも、システム・ユニット群がI/Oコントローラ
1112内のステータス・ワードの構成ビットをセット
することによって、選択的にレジスタ944に書き込む
ことを可能にし、これは制御線1114の1本に現れ
る。
There is no critical point in the form of service processor 470. In some cases, it may even be possible to use part of the normal system itself for this function without having a physically separate entity. In fact, the preferred computer 400 allows the system unit itself to provide some of the functions of the domain configurator, if necessary. Privileged software in the operating system (privi
leged software), to re-designate the current shared memory block, the shared memory register 945, FIG.
946. The service processor also allows the system units to selectively write to the register 944 by setting a configuration bit in the status word in the I / O controller 1112, which can control one of the control lines 1114. Appears in books.

【0080】図12は、コンピュータ400内のドメイ
ン群およびクラスタ群を動的に構成する方法1200を
記載したものである。図12において右向きのブロック
は遠隔コンソール1120内で実行され、左向きのブロ
ックは、先に述べた実施例の図11のサービス・プロセ
ッサ1110において実行される。ブロック群1210
は、構成プロセスを設定する。ブロック1211はオペ
レータの命令に応答して、構成モードを開始する。ブロ
ック1212はレジスタ940,1020をデフォルト
値に初期化する。好ましくは、全てのレジスタ942
は、それらをそれ自体のドメインに置く位置に「1」ビ
ット、その他の位置に「0」を受ける。全てのレジスタ
944〜946は、共有メモリがエクスポートされない
ことを示す値を受ける。レジスタ群1020は、好まし
くは、対角ストライプ(diagonal stripe)の1ビットを
除いて「0」を含む。これは、各システム・ユニットが
それ自体クラスタ内にあることを示す。
FIG. 12 describes a method 1200 for dynamically configuring domains and clusters in a computer 400. In FIG. 12, the right-pointing blocks are executed in the remote console 1120, and the left-pointing blocks are executed in the service processor 1110 of FIG. 11 of the previously described embodiment. Block group 1210
Sets up the configuration process. Block 1211 initiates configuration mode in response to an operator command. Block 1212 initializes registers 940 and 1020 to default values. Preferably, all registers 942
Receives a "1" bit at the location where they are placed in its own domain and a "0" at other locations. All registers 944-946 receive a value indicating that the shared memory is not exported. Register group 1020 preferably includes "0" except for one bit of a diagonal stripe. This indicates that each system unit is itself in a cluster.

【0081】ブロック群1220は、図4のドメイン・
フィルタ480の構成を設定する。ブロック1221に
おいて、遠隔コンソールにおけるオペレータが構成すべ
き特定のドメインを選択し、当該ドメインに属するシス
テム・ユニット410の番号をブロック1222におい
て入力する。次に、サービス・プロセッサ1110が線
1115,1142に信号を送出し、ブロック1223
において、図9のドメイン・マスク・レジスタ942に
適正な値をロードする。ブロック1224は、各ドメイ
ンをそれ自体のクラスタにするために適切なレジスタ群
1020を設定する。このステップはいずれの時点で実
行してもよいが、本実施例では、ドメイン群がクラスタ
に組み込まれる場合にも、クラスタ・レジスタを設定す
ることが必要である。ブロック1225は、オペレータ
が構成すべき追加のドメインを指定し終わったなら、制
御をブロック1221に戻す。その他の場合、ブロック
1226は、設定すべきマルチ・ドメイン・クラスタが
未だあるか否かについて問い合わせを行う。
The block group 1220 corresponds to the domain in FIG.
The configuration of the filter 480 is set. At block 1221, the operator at the remote console selects a particular domain to configure and enters the number of the system unit 410 belonging to that domain at block 1222. Next, service processor 1110 sends a signal on lines 1115 and 1142 and block 1223
, The appropriate value is loaded into the domain mask register 942 of FIG. Block 1224 sets the appropriate registers 1020 to make each domain its own cluster. This step may be performed at any time, but in this embodiment, it is necessary to set the cluster register even when the domain group is incorporated into the cluster. Block 1225 returns control to block 1221 once the operator has specified additional domains to configure. Otherwise, block 1226 queries whether there are any more multi-domain clusters to configure.

【0082】未だある場合、ブロック1230はいずれ
か所望の共有メモリを設定する。ブロック1231にお
いて、オペレータは、メモリをエクスポートするシステ
ム・ユニット410の1つを選択し、ブロック1232
において、当該メモリをインポートするドメインを選択
する。(システム・ユニットは、その物理的に実施され
ているメモリが他のシステム・ユニットに使用可能な場
合、メモリを「エクスポート」し、他のシステム・ユニ
ットは、それがインポート側ユニット上に位置している
かのように、そのメモリを「インポート」する。)ブロ
ック1233において、図9に関連して説明したよう
に、適切なレジスタ群944にロードする。ブロック1
234では、図10に関連して説明したように、レジス
タ群1020内の適切なビットをセットする。ブロック
1235において、共有メモリ範囲の基底アドレスの値
をオペレータから受け取る。ブロック1236では、こ
れを適正なSMBレジスタ群945に入力する。ブロッ
ク1237では、対応する制限アドレス値を受け取り、
ブロック1238においてこれをSMLR群946にロ
ードする。オペレータが追加のクラスタを定義したい場
合、ブロック1226は制御をブロック1231に戻
す。その他の場合、手順1200は終了する。図12に
示す一連のステップには大多数の変形が可能である。同
様に、コンピュータ上の他のタスクに関するルーチン1
200のタイミングも重要ではない。更に、コンピュー
タ400内の特権ソフトウエアが、オペレータの代わり
にルーチン1200を実行してもよい。破線1201
は、再構成が、コンピュータ・ハードウエアに手作業の
変化を加えることなく、オペレータまたはソフトウエア
のいずれかによって、繰り返し実行可能であることを象
徴的に示している。
If so, block 1230 sets up any desired shared memory. At block 1231, the operator selects one of the system units 410 to export memory and returns to block 1232
In, a domain for importing the memory is selected. (The system unit "exports" the memory if its physically implemented memory is available to other system units, and the other system unit is located on the importing unit. As such, the memory is "imported.") At block 1233, the appropriate registers 944 are loaded, as described in connection with FIG. Block 1
At 234, the appropriate bits in registers 1020 are set, as described in connection with FIG. At block 1235, the value of the base address of the shared memory range is received from the operator. In block 1236, this is input to the appropriate SMB register group 945. At block 1237, the corresponding restricted address value is received,
This is loaded into SMLRs 946 at block 1238. If the operator wishes to define additional clusters, block 1226 returns control to block 1231. Otherwise, procedure 1200 ends. Most modifications can be made to the series of steps shown in FIG. Similarly, routine 1 for other tasks on the computer
The timing of 200 is not important either. Further, privileged software within computer 400 may execute routine 1200 on behalf of the operator. Broken line 1201
Symbolically indicates that the reconfiguration can be performed repeatedly, either by the operator or by software, without any manual changes to the computer hardware.

【0083】システム・ユニット群410は、任意にド
メイン内に組み込むことができるが、明らかにドメイン
およびクラスタは全て、少なくとも1つのプロセッサが
実装されている少なくとも1つのシステム・ユニット、
およびメモリを含むシステム・ユニットを含んでいなけ
ればならない。ドメインまたはクラスタは、殆ど常に、
その1枚以上のシステム・ボード上に、いくらかのI/
O設備を含んでいる。これらの資源がどのようにしてド
メインまたはクラスタ内の種々のシステム・ボード間で
分配されるかは、しかしながら、任意である。方法12
00は、システム400全体およびそのオペレーティン
グ・システム(群)の正常動作の間に、ドメイン群およ
びクラスタ群を構成することができる。複雑性および些
細な間違いの可能性を回避するために、オペレーティン
グ・システム群のいずれもがブートされる前に、システ
ムが特殊状態にある場合にのみ再構成を許可することが
賢明である。
The system units 410 can be arbitrarily incorporated within a domain, but obviously all domains and clusters are comprised of at least one system unit, at least one processor implemented,
And a system unit that includes memory. Domains or clusters are almost always
Some I / O on the one or more system boards
Includes O equipment. How these resources are distributed among the various system boards in a domain or cluster, however, is arbitrary. Method 12
00 can configure domains and clusters during normal operation of the entire system 400 and its operating system (s). To avoid complexity and the possibility of trivial mistakes, it is advisable to allow reconfiguration only if the system is in a special state before any of the operating systems are booted.

【0084】図13は、典型的なトランザクション13
00の簡略図であり、正常動作の間、即ち、図12のブ
ロック1242がコンピュータ400の構成を完了した
後の、コンピュータ400におけるドメイン群およびク
ラスタ群の効果を強調したものである。トランザクショ
ン1300は、コンピュータ400が16個のシステム
・ユニットの最大の補集合(complement)を含むことを想
定している。トランザクションは線1301にて開始す
る。
FIG. 13 shows a typical transaction 13
12 is a simplified diagram of FIG. 10, highlighting the effects of the domains and clusters on computer 400 during normal operation, ie, after block 1242 of FIG. Transaction 1300 assumes that computer 400 contains the largest complement of 16 system units. The transaction starts at line 1301.

【0085】ブロック1310は、図13の多数の列で
象徴化されているように、全てのシステム・ユニット4
10上で実行される。これらは、異なる2個のシステム
・ユニット間または同じユニット内のいずれかにおい
て、トランザクション要求を開始する。要求群は、1個
以上のシステム・ユニットのいずれか1個以上のポート
がブロック群1311のいずれかにおいてトランザクシ
ョンを要求したときにはいつでも、非同期にかつ同時に
進行する。ブロック群1312において、ローカル・ア
ービタ55L4は、多数のトラフィック等化優先アルゴ
リズムのいずれかに基づいて、システム・ユニット上の
要求元ポートを1個選択し、処理を進める。
Block 1310 represents all system units 4 as symbolized by the multiple columns of FIG.
10 is executed. They initiate a transaction request either between two different system units or within the same unit. Requests proceed asynchronously and simultaneously whenever any one or more ports of one or more system units request a transaction in any of blocks 1311. In the block group 1312, the local arbiter 55L4 selects one requesting port on the system unit based on any of a number of traffic equalization priority algorithms, and proceeds.

【0086】ブロック群1320は、全てのトランザク
ションについてアドレスを送信する。線1321−0な
いし1321−Fで示すように、各ブロック1322
は、全てのシステム・ユニット410−0ないし410
−Fからトランザクション要求を受け取り、システム・
ユニットへのバス群55G1の1つに許可を与える。4
個のグローバル・アドレス・アービタ55G2の各々は
標準的な公正方法を用いて、ブロック1322を並列に
実行し、その特定バス55G1を競合するトランザクシ
ョン間で割り当てる。次に、ブロック1323は、ライ
ン1324によって示すように、そのブロック1322
によって選択されたシステム・ユニットからのアドレス
を、16個のシステム・ユニット全てに同報通信する。
ここでも、本実施態様における4系統のバス55G1の
各々は、かかる他のバス全てと同時に、別個のアドレス
を同報通信することができる。
The block group 1320 sends addresses for all transactions. As indicated by lines 1321-0 through 1321-F, each block 1322
Are all system units 410-0 through 410
-F receives a transaction request from the
Permission is given to one of the bus groups 55G1 to the unit. 4
Each of the global address arbiters 55G2 executes block 1322 in parallel and allocates its particular bus 55G1 among competing transactions using standard fairness methods. Next, block 1323, as indicated by line 1324,
Broadcasts the address from the selected system unit to all 16 system units.
Also in this case, each of the four buses 55G1 in this embodiment can simultaneously broadcast a separate address simultaneously with all of the other buses.

【0087】ステップ1330において、各バス55G
1上のトランザクションを濾過し、適切なシステム・ユ
ニット410−0ないし410−Fのみがトランザクシ
ョンに作用することを許可されるようにする。別個のブ
ロック群1330が各システム・ユニット毎の各グロー
バル・アドレス・バス毎に存在するので、本実施例で
は、4x16=64個のブロック1330がある。各ブ
ロック1330は、レジスタ群1020から同時に、そ
のシステム・ユニットが、そのバス上のトランザクショ
ンの送出側ユニットと同じクラスタ内にあるか否かにつ
いて判定を行う。(単一のドメインはそれ自体が、レジ
スタ群1020においてクラスタとして定義されること
を思い出されたい。)ない場合、システム・ユニットは
このトランザクションを無視し、制御は出力1302に
渡る。その他の場合、制御は1340に渡る。
At step 1330, each bus 55G
1 so that only the appropriate system units 410-0 through 410-F are allowed to act on the transaction. Since there is a separate block group 1330 for each global address bus for each system unit, there are 4 × 16 = 64 blocks 1330 in this embodiment. Each block 1330 determines from the register group 1020 simultaneously whether the system unit is in the same cluster as the transaction sending unit on the bus. (Recall that a single domain is itself defined as a cluster in registers 1020.) If not, the system unit ignores the transaction and control passes to output 1302. Otherwise, control passes to 1340.

【0088】ブロック群1340の別個の組が、各シス
テム・ユニット内の各グローバル・アドレス・バスに対
して現れる。即ち、4x16=64組のブロックが現れ
る。ブロック群1341は、トランザクションが線92
2に沿って図9の比較器941に移動する際に、GAB
55G1上のトランザクション自体からソース・ユニッ
トの番号を読み出す。ソース・ユニットが、それが位置
するユニットと同じドメイン内にないことを、ドメイン
・マスク・レジスタ942が明らかにした場合、ブロッ
ク1341は制御をブロック1342に渡す。共有メモ
リ・レジスタ944が、そのシステム・ユニットがメモ
リをソース・ユニットと共有していることを検出した場
合、ブロック1342からブロック1343に移動す
る。線922上を搬送されているトランザクションのア
ドレスが、レジスタ945内に格納されている基底アド
レスを超えることを、比較器941が示す場合、ブロッ
ク1344は、そのアドレスが、レジスタ946内に格
納されている共有メモリの上限より下にあるか否かにつ
いて検査を行う。そのシステム・ユニットが現トランザ
クションには関わっていないことを示す各ブロック13
30の各組について、終了1345において、その場所
におけるトランザクションを終了する。しかし、いずれ
かのフィルタ・ブロック・チェーン1330〜1340
が同じドメイン、または同じクラスタおよび適切なアド
レス範囲を感知した場合、線1346は、当該システム
・ユニットに対するブロック1350に制御を渡す。
A separate set of blocks 1340 appears for each global address bus in each system unit. That is, 4 × 16 = 64 sets of blocks appear. The block group 1341 has a transaction of line 92
When moving along comparator 2 to the comparator 941 of FIG.
Read the source unit number from the transaction itself on 55G1. If the domain mask register 942 determines that the source unit is not in the same domain as the unit in which it is located, block 1341 passes control to block 1342. If the shared memory register 944 detects that the system unit is sharing memory with the source unit, it moves from block 1342 to block 1343. If comparator 941 indicates that the address of the transaction being carried on line 922 exceeds the base address stored in register 945, block 1344 indicates that the address is stored in register 946. A check is made to see if the shared memory is below the upper limit. Each block 13 indicating that the system unit is not involved in the current transaction
For each set of 30, at transaction 1345, the transaction at that location is terminated. However, any of the filter block chains 1330-1340
If it senses the same domain, or the same cluster and appropriate address range, line 1346 passes control to block 1350 for that system unit.

【0089】ブロック1350は、要求元システム・ユ
ニットから、目標ユニット内の適正な宛先への実際のト
ランザクションを実行する。これには、データ・ルータ
440を通じてのあらゆる要求データの転送が含まれ
る。(先に注記したように、多くの異なるタイプのトラ
ンザクションがある)。点1302は、トランザクショ
ンの完了を印すものである。いずれの所与の時点におい
ても、フローチャート1300の同一ブロックまたは異
なるブロックにおいて、いくつかの異なるトランザクシ
ョンが進行中である可能性があり、その各々が他とは独
立して進行する。
Block 1350 performs the actual transaction from the requesting system unit to the proper destination in the target unit. This includes the transfer of any requested data through the data router 440. (There are many different types of transactions, as noted above). Point 1302 marks the completion of the transaction. At any given time, in the same or different blocks of flowchart 1300, several different transactions may be in progress, each of which proceeds independently of the others.

【0090】図15は、好適実施例に追加して、他のタ
イプのハードウエア障害がそれ自体のドメイン・クラス
タ外のシステム・ユニットに影響を与えるのを防止する
ことを可能にする、追加のドメイン・フィルタを示す。
ドメイン・フィルタ480は、これまで述べたように、
システム・ユニット410または図5のアドレス・ルー
タ55G0内のエラーの影響が、同じドメイン・クラス
タ内にはない他のシステム・ユニットに及ぶのを制限す
る。
FIG. 15 shows, in addition to the preferred embodiment, an additional type of hardware failure that can be prevented from affecting system units outside its own domain cluster. Indicates a domain filter.
The domain filter 480, as described above,
Limiting the effects of errors in system unit 410 or address router 55G0 of FIG. 5 to other system units that are not in the same domain cluster.

【0091】図5との関連およびその他において説明し
たように、トランザクションは、1つのシステム・ユニ
ットから、グローバル・データ・ルータ54G0上の他
のシステム・ユニットへのデータ転送を伴う場合があ
る。グローバル・データ・アービタは、システム・ユニ
ット全てから従来の信号1510を受け取る。例えば、
システム・ユニット410−0のローカル・データ・ア
ービタ54L3からの線1510−0は、当該ユニット
410−0から、図4のシステム・ユニット410−0
ないし410−Fの特定の1つに転送を要求する場合が
ある。線1501−1は、システム・ユニット410−
0ないし410−Fのどれが、ユニット410−0から
の転送を受け取るか等を指定する。調停出力1520
は、データ線1530の1本からのデータが、線153
0の他の1本に流れることを可能にすることによって、
データ経路を確立する。例えば、ロジック54G2が、
データをユニット410−0から410−1に搬送す
る、線1510−0の要求を許可した場合、FROM-0線1
521はデータ・バス54G1を線1530−0に結合
し、TO-1線1540−1は直接TO-1線1580−1に結
合され、線1530−1がデータをユニット410−1
に送出可能とする。
As described in connection with FIG. 5 and elsewhere, a transaction may involve a transfer of data from one system unit to another system unit on global data router 54G0. The global data arbiter receives conventional signals 1510 from all of the system units. For example,
The line 1510-0 from the local data arbiter 54L3 of the system unit 410-0 is connected from the unit 410-0 to the system unit 410-0 of FIG.
To request a transfer to a particular one of the STAs 410-F. Line 1501-1 is connected to system unit 410-
0-410-F specifies which ones will receive the transfer from unit 410-0, and so on. Arbitration output 1520
Indicates that data from one of the data lines 1530 is
By allowing it to flow to the other one of the 0
Establish a data path. For example, the logic 54G2 is
If the request on line 1510-0, which carries data from unit 410-0 to unit 410-1, is granted, FROM-0 line 1
521 couples data bus 54G1 to line 1530-0, TO-1 line 1540-1 is directly coupled to TO-1 line 1580-1, and line 1530-1 couples data to unit 410-1.
Can be sent to

【0092】正常状態の下では、この構成はコンピュー
タ400のドメイン構造には透過的である。しかしなが
ら、誤ってデータを違うシステム・ユニット(同じドメ
イン・クラスタ内のものではないシステム・ユニット)
に送出する障害は、他のクラスタにおけるシステム・ユ
ニットの動作を中断させる可能性がある。例えば、図4
のユニット410−0が同じドメインS1内のユニット
410−3にデータを送ろうとしたが、エラー信号がそ
れを代わりに(または付加的に)ユニット410−7に
送った場合を想定する。このような障害は、ドメイン・
フィルタ480によって実施されている分離を迂回し、
ドメインS1がドメインS2,S3の動作に影響を及ぼ
す可能性がある。これを「トランスグレッション・エラ
ー(transgression error)」と呼ぶ。
Under normal conditions, this configuration is transparent to the computer 400 domain structure. However, erroneously transferring data to a different system unit (a system unit that is not in the same domain cluster)
Failures to send to other clusters can disrupt the operation of system units in other clusters. For example, FIG.
Suppose that unit 410-0 has attempted to send data to unit 410-3 in the same domain S1, but an error signal has instead (or additionally) sent it to unit 410-7. Such failures can be
Bypassing the separation implemented by filter 480;
The domain S1 may affect the operation of the domains S2 and S3. This is called a "transgression error".

【0093】別のフィルタ・ロジック1550が、実行
しようとしたクラスタ外データ転送を通知することによ
って、この可能性を根絶する。図10のレジスタ群10
20と同一の、別の組のクラスタ・レジスタ1560が
コンピュータ400のクラスタ定義のコピーを保持し、
線1565を通じてそれらをロジック1550に渡す。
ロジック1550は図14のフィルタ・ロジック140
0と同様に、AND/OR回路で構築する。ロジック1
550は、2組の出力を生成する。出力1570は、図
8および図10に示した信号824と同じ種類のARBSTO
P信号を生成する。これらは、不適切なデータ転送を開
始したソース・システム・ユニットを停止させる。出力
1580は、不適切な要求を行ったソース・ユニットと
同じクラスタにはないあらゆるシステム・ユニットに、
この転送が影響を及ぼすのを防止する。上述の例を続け
ると、システム・ユニット群410、要求線1510等
における障害のために、データ経路54G1が正しくな
い組の線1530を活性化する可能性がある。しかしな
がら、データ・ルータ・フィルタ・ロジック1550
は、レジスタ1560内のビットによって定義されてい
るように、ユニット410−0から適正な宛先は、同じ
ドメイン・クラスタ内のユニット410−1,410−
2,410−3のみであることを検出する。410−7
を宛先として指定するTO-7のような不適切な信号154
0は、ARBSTOP-0線1570−0を活性化し、このユニ
ット410−0が違法の転送を行おうとしたことを示
し、このユニットを停止する。即ち、ARBSTOP信号はソ
ース・ユニット、および同じドメイン・クラスタ内の他
のユニットに到達するので、ドメイン・クラスタCA内
のエラーは、当該ドメイン・クラスタCA内のシステム
・ユニットに影響を与えるに過ぎない。
Another filter logic 1550 eliminates this possibility by signaling an attempted out-of-cluster data transfer. Register group 10 in FIG.
20, another set of cluster registers 1560 holds a copy of the cluster definition of computer 400;
Pass them to logic 1550 via line 1565.
Logic 1550 is the filter logic 140 of FIG.
Like the case of 0, it is constructed by an AND / OR circuit. Logic 1
550 produces two sets of outputs. Output 1570 is an ARBSTO of the same type as signal 824 shown in FIGS.
Generate a P signal. These stop the source system unit that initiated the improper data transfer. Output 1580 is sent to any system unit that is not in the same cluster as the source unit that made the improper request.
Prevent this transfer from affecting. Continuing the above example, a failure in system units 410, request line 1510, etc. may cause data path 54G1 to activate the incorrect set of lines 1530. However, the data router filter logic 1550
Is the correct destination from unit 410-0, as defined by the bits in register 1560, from units 410-1, 410- in the same domain cluster.
It is detected that there is only 2,410-3. 410-7
154, such as TO-7, which specifies the destination as a destination
A 0 activates the ARBSTOP-0 line 1570-0, indicates that this unit 410-0 has attempted an illegal transfer, and stops this unit. That is, since the ARBSTOP signal reaches the source unit and other units in the same domain cluster, an error in the domain cluster CA only affects the system unit in the domain cluster CA. .

【0094】また、ロジック1550は、クラスタ・レ
ジスタ群1560内の定義を用いて、FROM信号を発行し
たユニットと同じクラスタ内にない宛先ユニットに、い
ずれのTO信号1540が到達するのも禁止する。本例で
は、TO線1540−0ないし1540−3のいずれかが
アサートされると、対応するTO線1580−0ないし1
580−3に渡され、対応するシステム・ユニット41
0−0ないし410−3をイネーブルし、線1530−
0ないし1530−3上のデータを受け取る。一方、線
1520−0上のFROM信号およびTO信号1550−7の
同時発生、即ち、異なるクラスタ内のユニットに向けた
ものは、ロジック1550によって阻止される。したが
って、対応するTO線1580−7は休止状態のままであ
り、データ経路54G1はデータをシステム・ユニット
410−7に渡さない。このように、フィルタ・ロジッ
クは、トランスグレッション・エラーが発生すると、デ
ータ転送を開始したユニットにARBSTOPを送出すること
によって、このユニットを遮断し、そのTO線を禁止する
ことにより、この転送が宛先ユニットにいかなる影響を
及ぼすことも防止するので、当該ユニットには実際に何
の転送も許可されることはない。
The logic 1550 uses the definition in the cluster register group 1560 to prohibit any TO signal 1540 from reaching a destination unit that is not in the same cluster as the unit that issued the FROM signal. In this example, when any of the TO lines 1540-0 to 1540-3 is asserted, the corresponding TO line 1580-0 to 1580-1 is output.
580-3 and the corresponding system unit 41
Enable 0-0 through 410-3 and enable line 1530-
Receive the data on 0-1530-3. On the other hand, the coincidence of the FROM signal and TO signal 1550-7 on line 1520-0, that is, for units in different clusters, is blocked by logic 1550. Accordingly, the corresponding TO line 1580-7 remains dormant and data path 54G1 does not pass data to system unit 410-7. Thus, when a transgression error occurs, the filter logic shuts down this unit by sending an ARBSTOP to the unit that initiated the data transfer, and inhibits its TO line, thereby allowing the transfer to proceed to the destination unit. The unit is not actually allowed to transfer anything, as it prevents any effect on the unit.

【0095】図15は、図4のクロスポイント・データ
・ルータ440の一データ経路を示すに過ぎない。追加
のデータ経路も同様に機能し、単に追加の組のフィルタ
・ロジック1550を必要とするだけである。更に、各
データ経路は、更に障害の分離や冗長性のために、多数
の部分に分割してもよく、図15の動作に影響を与える
ことはない。
FIG. 15 only shows one data path of the crosspoint data router 440 of FIG. The additional data path functions similarly and simply requires an additional set of filter logic 1550. Further, each data path may be divided into a number of parts for further fault isolation and redundancy, without affecting the operation of FIG.

【図面の簡単な説明】[Brief description of the drawings]

【図1】従来技術のバス指向マルチプロセッサ・デジタ
ル・コンピュータの概念概略図。
FIG. 1 is a conceptual schematic diagram of a prior art bus-oriented multiprocessor digital computer.

【図2】多数のシステム・ユニットを有するコンピュー
タの同様の概略図。
FIG. 2 is a similar schematic diagram of a computer having multiple system units.

【図3】本発明の概念にしたがって、図2のコンピュー
タをシステム・ドメインおよびクラスタに分割した場合
の構成図。
FIG. 3 is a block diagram showing a case where the computer of FIG. 2 is divided into a system domain and a cluster according to the concept of the present invention.

【図4】本発明がいかにして図2のコンピュータを図3
のドメインおよびクラスタに分割するかを示す図。
FIG. 4 illustrates how the present invention allows the computer of FIG.
FIG. 7 is a diagram showing whether the domain is divided into domains and clusters.

【図5】他のコンピュータ・システム・ユニットの関連
部分を含む、図4の完全に構成したシステム・ユニット
のブロック図。
FIG. 5 is a block diagram of the fully configured system unit of FIG. 4, including relevant portions of other computer system units.

【図6】図5のポート・コントローラの詳細図。FIG. 6 is a detailed view of the port controller of FIG. 5;

【図7】図5のメモリ・コントローラの詳細図。FIG. 7 is a detailed view of the memory controller in FIG. 5;

【図8】図5のローカル・アドレス・アービタの詳細
図。
FIG. 8 is a detailed view of a local address arbiter of FIG. 5;

【図9】本発明によるドメイン・フィルタのローカル部
分を含む、図5のローカル・アドレス・ルータの詳細
図。
FIG. 9 is a detailed view of the local address router of FIG. 5, including the local part of the domain filter according to the present invention.

【図10】ドメイン・フィルタのグローバル部分を含
む、図5のグローバル・アドレス・アービタの詳細図。
FIG. 10 is a detailed view of the global address arbiter of FIG. 5, including the global portion of the domain filter.

【図11】図4のドメイン・コンフィギュレータを示す
図。
FIG. 11 is a diagram showing a domain configurator of FIG. 4;

【図12】本発明にしたがってコンピュータをクラスタ
化システム・ドメインに構成する方法を示すフロー・チ
ャート。
FIG. 12 is a flow chart illustrating a method of configuring a computer in a clustered system domain according to the present invention.

【図13】本発明のドメイン・フィルタリングを強調し
た、トランザクション処理のフロー・チャート。
FIG. 13 is a flow chart of a transaction process emphasizing domain filtering of the present invention.

【図14】ドメイン・フィルタ内で使用する論理回路の
詳細図。
FIG. 14 is a detailed diagram of a logic circuit used in the domain filter.

【図15】ドメイン・フィルタの任意の更に別のグロー
バル部分を含む、図5のグローバル・データ・アービタ
を示す詳細図。
FIG. 15 is a detailed diagram illustrating the global data arbiter of FIG. 5 including any further global portions of the domain filter.

【符号の説明】[Explanation of symbols]

100 コンピュータ 110 プロセッサ 120 メモリ・ボード 130 I/Oボード 140 データ・バス 150 アドレス・バス 160 制御分配バス 170 サービス・ユニット 200 アーキテクチャ 210 システム・ユニット 240,250 高速ルータ 260 制御分配バス 300 コンピュータ 310 システム・ボード 340 データ・ルータ 350 アドレス・ルータ 360 制御分配手段 370 システム・コントローラ 400 コンピュータ 410 システム・ユニット 440 データ・ルータ 450 アドレス・ルータ 460 制御バス 480 ドメイン・フィルタ 510 プロセッサ・サブシステム 511 マイクロプロセッサ 512 キャッシュ 520 メモリ・サブシステム 521 メモリ 522 パック/アンパック・モジュール 530 入出力サブシステム 531 システムI/Oバス 532 I/Oアダプタ Reference Signs List 100 computer 110 processor 120 memory board 130 I / O board 140 data bus 150 address bus 160 control distribution bus 170 service unit 200 architecture 210 system unit 240, 250 high-speed router 260 control distribution bus 300 computer 310 system board 340 data router 350 address router 360 control distribution means 370 system controller 400 computer 410 system unit 440 data router 450 address router 460 control bus 480 domain filter 510 processor subsystem 511 microprocessor 512 cache 520 memory Subsystem 521 Memory 522 Pack / Unpack module Lumpur 530 O subsystem 531 system I / O bus 532 I / O adapter

───────────────────────────────────────────────────── フロントページの続き (71)出願人 597004720 2550 Garcia Avenue,MS PAL1−521,Mountain V iew,California 94043− 1100,United States of America (72)発明者 アンドリュー・ジェイ・マククロクリン アメリカ合衆国カリフォルニア州92123, サン・ディエゴ,ウォーカー・ドライブ 2831 (72)発明者 ニコラス・イー・アネシャンズレー アメリカ合衆国カリフォルニア州92129, サン・ディエゴ,ペナノヴァ・ストリート 11382 ────────────────────────────────────────────────── ─── Continuation of the front page (71) Applicant 597004720 2550 Garcia Avenue, MS PAL1-521, Mountain View, California 94043-1100, United States of America, United States of America 72. San Diego, Walker Drive 2831 (72) Inventor Nicholas e Anne Shansley 11382 Pennova Street, San Diego, California 92129, USA

Claims (35)

【特許請求の範囲】[Claims] 【請求項1】 オペレータからの命令によって可変的に
構成可能なハードウエア・ドメイン群を有するマルチプ
ロセッサ・コンピュータであって、 一連のトランザクションを実行する複数の別個のシステ
ム・ユニットであって、各システム・ユニットは前記コ
ンピュータ内で個別に物理的に除去および交換可能であ
り、その各々が、 所定のグローバル範囲内においてアドレスを発生するプ
ロセッサ・ユニット、 前記所定のグローバル範囲内の1組のアドレスにおいて
データを格納するメモリ・ユニット、及び前記所定のグ
ローバル範囲内の1組のアドレスを発生および/または
受信する入出力アダプタ、の少なくと1つを含む前記シ
ステム・ユニットと、 前記システム・ユニットに結合され、前記システム・ユ
ニットのいずれかにおいて発生されたアドレスを、前記
システム・ユニットの他のユニットに転送するグローバ
ル・アドレス・ルータと、 前記システム・ユニットのいずれかからのデータを、前
記システム・ユニットの他のユニットに転送するグロー
バル・データ・ルータと、 前記システム・ユニットのいずれかから前記システム・
ユニットの他のものに複数の制御信号を通信し、前記い
ずれかのシステム・ユニットにおいて発生した状態に応
答して、前記システム・ユニットの全ての動作に影響を
与える制御信号分配器と、 前記コンピュータを複数のソフトウエア構成可能ハード
ウエア・ドメインに電子的に分割し、各々が、前記コン
ピュータ内の前記システム・ユニットのあらゆる物理的
再接続から独立した、前記システム・ユニットの任意の
サブセットから成るドメイン・コンフィギュレータと、 前記命令に応答して、前記ドメイン・コンフィギュレー
タに、前記システム・ユニットのどれが前記ハードウエ
ア・ドメインの各々に属するのかを指定するコンピュー
タ・コントローラと、 前記システム・ユニットの全てに結合され、前記システ
ム・ユニットの内前記ドメインの1つの中のものにおい
て発した前記制御信号の少なくともいくつかが、前記シ
ステム・ユニットの内前記1つのドメイン外のあるもの
に影響を与えるのを電子的に禁止するドメイン・フィル
タと、を備えたマルチプロセッサ・コンピュータ。
1. A multi-processor computer having hardware domains variably configurable by instructions from an operator, comprising: a plurality of separate system units for executing a series of transactions, each system comprising: A processor unit which is physically removable and replaceable individually within the computer, each of which generates an address within a predetermined global range; data at a set of addresses within the predetermined global range. And a memory unit for storing and / or receiving at least one I / O adapter for generating and / or receiving a set of addresses within the predetermined global range, the system unit being coupled to the system unit. From any of the above system units A global address router for transferring the assigned address to another unit of the system unit; and a global data router for transferring data from any of the system units to another unit of the system unit. A router and the system unit from any of the system units.
A control signal distributor for communicating a plurality of control signals to other ones of the units and for affecting all operations of the system units in response to a condition occurring in any of the system units; and the computer Electronically divided into a plurality of software configurable hardware domains, each domain comprising any subset of the system units independent of any physical reconnection of the system units in the computer A configurator; a computer controller responsive to the instructions that specifies to the domain configurator which of the system units belongs to each of the hardware domains; and all of the system units Of the system unit A domain filter for electronically inhibiting at least some of the control signals emitted in one of the mains from affecting one of the system units outside the one domain. Multiprocessor computer equipped.
【請求項2】 請求項1記載のコンピュータにおいて、
前記ドメイン・フィルタは、前記グローバル・ルータの
少なくとも1つに結合され、前記システム・ユニットの
内前記ドメインの1つの中のものにおいて発生した、前
記1つのグローバル・ルータ上のトランザクションが、
前記システム・ユニットの内前記1つのドメイン外のあ
るものにおいて受け取られるをの禁止するコンピュー
タ。
2. The computer according to claim 1,
The domain filter is coupled to at least one of the global routers, and a transaction on the one global router occurring in one of the domains of the system unit is:
A computer that prohibits being received on some of the system units outside the one domain.
【請求項3】 請求項2記載のコンピュータにおいて、
前記1つのグローバル・ルータは前記グローバル・アド
レス・ルータであるコンピュータ。
3. The computer according to claim 2,
The computer wherein the one global router is the global address router.
【請求項4】 請求項3記載のコンピュータにおいて、
前記グローバル・アドレス・ルータは、前記システム・
ユニットの全てに結合され、前記システム・ユニットの
異なるサブセット間で同時に複数のトランザクションを
搬送する複数の経路を有するコンピュータ。
4. The computer according to claim 3,
The global address router is connected to the system
A computer coupled to all of the units and having a plurality of paths for carrying a plurality of transactions simultaneously between different subsets of the system units.
【請求項5】 請求項2記載のコンピュータにおいて、
前記1つのグローバル・ルータは前記グローバル・デー
タ・ルータであるコンピュータ。
5. The computer according to claim 2, wherein
The computer wherein the one global router is the global data router.
【請求項6】 請求項5記載のコンピュータにおいて、
前記グローバル・データ・ルータは、前記システム・ユ
ニットの全てに結合され、前記システム・ユニットの異
なるサブセット間で同時に複数のトランザクションに関
連するデータを搬送する複数の経路を有するコンピュー
タ。
6. The computer according to claim 5,
The computer wherein the global data router is coupled to all of the system units and has a plurality of paths for carrying data relating to a plurality of transactions between different subsets of the system units simultaneously.
【請求項7】 請求項2記載のコンピュータにおいて、
前記ドメイン・フィルタは、前記グローバル・アドレス
・ルータおよび前記グローバル・データ・ルータ双方に
結合され、前記システム・ユニットの内前記ドメインの
1つの中のものにおいて発生したアドレスおよびデータ
双方が、前記システム・ユニットの内前記1つのドメイ
ン外のあるものにおいて受け取られるのを禁止するコン
ピュータ。
7. The computer according to claim 2,
The domain filter is coupled to both the global address router and the global data router so that both addresses and data generated in one of the domains of the system unit are transmitted to the system unit. A computer that prohibits being received on some of the units outside of the one domain.
【請求項8】 請求項1記載のコンピュータであって、 前記ドメイン・コンフィギュレータは、更に、複数の前
記ハードウエア・ドメインを結合し、前記コンピュータ
内の前記システム・ユニットのいずれの物理的再接続か
ら独立した前記ドメインの任意のサブセットから成るド
メイン・クラスタを形成し、 前記コンピュータ・コントローラは、前記コマンドの別
のものに応答し、前記ドメイン・コンフィギュレータ
に、前記システム・ユニットのどれが前記ドメイン・ク
ラスタに属するのかを指定し、 前記ドメイン・フィルタは、前記システム・ユニットの
内前記1つのドメインの中のものにおいて発生した前記
少なくともいくつかの制御信号が、前記システム・ユニ
ットの内前記1つのドメイン外であるが前記ドメイン・
クラスタの中にあるものに影響を与えることを可能にす
る、コンピュータ。
8. The computer of claim 1, wherein the domain configurator further couples a plurality of the hardware domains and removes from any physical reconnection of the system units in the computer. Forming a domain cluster consisting of any subset of the independent domains; the computer controller responding to another one of the commands, and telling the domain configurator which of the system units is the domain cluster; And wherein the domain filter determines that the at least some control signals generated in one of the system units in one of the system units are out of the one of the system units. But the domain
A computer that allows you to affect what is in a cluster.
【請求項9】 請求項8記載のコンピュータにおいて、
前記ドメイン・クラスタ内の前記ドメインの1つは、前
記ドメイン・クラスタ内の異なるドメインによって、同
一の所定の共有アドレス範囲内においてアクセス可能な
物理メモリを含むコンピュータ。
9. The computer according to claim 8, wherein
Computer wherein one of the domains in the domain cluster includes physical memory accessible by a different domain in the domain cluster within the same predetermined shared address range.
【請求項10】 請求項1記載のコンピュータにおい
て、前記ドメイン・フィルタは、 前記システム・ユニットのどれが、前記アドレス・ルー
タ内で現アドレスを発生したかを識別する接続部と、 前記システム・ユニットのどれが、前記ドメインのどれ
に属するのかを指定する、前記システム・ユニットの各
々に対する少なくとも1つのドメイン・マスク・レジス
タと、 前記ソース識別接続部と、前記ドメイン・マスク・レジ
スタとに応答し、前記システム・ユニットが前記現アド
レスを発生したのと同じドメイン内にない前記システム
・ユニットの全てから、前記システム・ユニットを切断
するゲート・ロジックと、を含むコンピュータ。
10. The computer of claim 1, wherein the domain filter comprises: a connection identifying which of the system units generated the current address in the address router; and the system unit. Responsive to at least one domain mask register for each of the system units, specifying which of the domains belongs to which of the domains; the source identification connection; and the domain mask register; Gate logic for disconnecting the system unit from all of the system units that are not in the same domain where the system unit generated the current address.
【請求項11】 請求項10記載のコンピュータにおい
て、前記ドメイン・フィルタは、 各々、前記システム・ユニットのどれがドメイン・クラ
スタに属するのかを識別し、前記トランザクションの現
行のものに応答する複数のクラスタ・レジスタと、 前記ドメイン・クラスタに属する前記システム・ユニッ
トの1つから発した前記トランザクションのいずれにつ
いても、前記共通クラスタ内の前記システム・ユニット
群の各々に有効トランザクション信号を送信する接続部
と、を含むコンピュータ。
11. The computer of claim 10, wherein the domain filters each identify which of the system units belong to a domain cluster and respond to a current one of the transactions. A register, and a connection for sending a valid transaction signal to each of the system units in the common cluster for any of the transactions originating from one of the system units belonging to the domain cluster; Including computer.
【請求項12】 請求項11記載のコンピュータにおい
て、前記ドメイン・フィルタは、前記ドメイン・クラス
タ内の異なるシステム・ユニット間の共有アドレス範囲
を示す、共有アドレス・レジスタを含むコンピュータ。
12. The computer of claim 11, wherein the domain filter includes a shared address register indicating a shared address range between different system units in the domain cluster.
【請求項13】 複数のシステム・ユニットと、グロー
バル・アドレス・ルータと、グローバル・データ・ルー
タと、制御信号分配器と、ドメイン・フィルタとを有す
るコンピュータを、プログラム可能な制御の下で複数の
独立したハードウエア・ドメインに区分する方法であっ
て、 (a)構成モードを開始するステップと、 (b)前記ハードウエア・ドメインの1つに含ませる前
記システム・ユニットのサブセットを定義する指定デー
タを受け取るステップと、 (c)前記指定データをドメイン・フィルタにロード
し、前記システム・ユニットの内前記1つのドメインの
中のものに前記分配器内のある制御信号に応答させると
共に、前記システム・ユニットの他のものには前記分配
器には無応答とさせるステップと、 (d)前記システム・ユニットの異なるサブセットを定
義する別の指定データのために、ステップ(b)および
(c)を繰り返すステップと、を含む方法。
13. A computer having a plurality of system units, a global address router, a global data router, a control signal distributor, and a domain filter, comprising: A method for partitioning into independent hardware domains, comprising: (a) initiating a configuration mode; and (b) designation data defining a subset of the system units to be included in one of the hardware domains. (C) loading the specified data into a domain filter, causing one of the system units in the domain to respond to a control signal in the distributor, and Causing the distributor to be unresponsive to another of the units; and (d) the system. For another specified data defining a different subset of units, the method comprising the steps of repeating steps (b) and (c), the.
【請求項14】 請求項13記載の方法において、前記
ステップ(c)は、前記ドメイン・フィルタにロードす
る前記指定データにも応答し、前記システム・ユニット
の内前記1つのドメインの中のものに、前記システム・
ユニットの内前記1つのドメインの中のものから発した
前記グローバル・アドレス・ルータ上のアドレスに応答
させると共に、前記第1ドメイン内の前記システム・ユ
ニットに、前記システム・ユニットの内前記第1ドメイ
ン内にはないものの少なくともいくつかから発した、前
記グローバル・アドレス・ルータ上のアドレスには無応
答とさせる方法。
14. The method according to claim 13, wherein said step (c) is also responsive to said designated data loading said domain filter, wherein said step (c) includes: , The system
Responding to an address on the global address router originating from one of the units within the one domain, and providing the system unit in the first domain to the first domain of the system unit Not responding to addresses on the global address router originating from at least some that are not.
【請求項15】 請求項14記載の方法であって、更
に、 (f)前記ドメインの複数のドメインのクラスタを定義
する第2指定データを受け取るステップと、 (g)前記第2データを前記ドメイン・フィルタにロー
ドし、前記システム・ユニットの内前記ドメインのクラ
スタの中のものに、前記システム・ユニットの内前記ド
メインのクラスタの中のものから発した前記グローバル
・アドレス・ルータ上のアドレスに応答させるようにす
るステップと、を含む方法。
15. The method of claim 14, further comprising: (f) receiving second specified data defining a cluster of domains of the domain; and (g) storing the second data in the domain. Loading into a filter and responding to an address on the global address router emanating from one of the system units in the cluster of the domain and from one of the system units in the cluster of the domain Causing the data to be transmitted.
【請求項16】 請求項15記載の方法であって、更
に、 (h)前記ドメインの1つの中に物理的に存在し、前記
ドメインのクラスタ内の他のドメインにアクセス可能
な、アドレスの共有範囲を定義する第3指定データを受
け取るステップと、 (i)前記第3データを前記ドメイン・フィルタにロー
ドし、前記システム・ユニットの内前記ドメインのクラ
スタの中のものに、前記システム・ユニットの内前記ド
メインのクラスタの中であるが前記共有範囲以内に限っ
たものから発した前記グローバル・アドレス・ルータ上
のアドレスに応答させるようにするステップと、を含む
方法。
16. The method of claim 15, further comprising: (h) address sharing physically present in one of the domains and accessible to other domains in a cluster of the domains. Receiving third specified data defining a range; and (i) loading the third data into the domain filter and assigning the third data to one of the system units in the cluster of the domain. Responding to addresses on the global address router originating from within the cluster of domains but within the sharing range.
【請求項17】 請求項16記載の方法において、前記
共有範囲は、前記ドメイン・クラスタ内のシステム・ユ
ニットの少なくとも1つに物理的に存在するメモリの全
アドレス範囲よりも小さい方法。
17. The method of claim 16, wherein the shared range is less than an entire address range of a memory physically located in at least one of the system units in the domain cluster.
【請求項18】 請求項13記載の方法であって、ステ
ップ(d)の後に実行する、 (j)前記第1ドメイン内の前記システム・ユニットの
1つからのトランザクションを、前記グローバル・アド
レス・ルータを介して、前記第1ドメイン内部および外
部の双方の、前記システム・ユニットの全てに同報通信
するステップと、 (k)前記システム・ユニットの各々において前記トラ
ンザクションをフィルタすることにより、前記システム
・ユニットの内前記第1ドメインにあるものには、前記
トランザクションへの応答をイネーブルし、前記システ
ム・ユニットの内前記第1ドメインの外にある他のもの
には、前記トランザクションへの応答をディセーブルす
るステップと、を含む方法。
18. The method of claim 13, wherein the method is performed after step (d), and (j) transmitting a transaction from one of the system units in the first domain to the global address. Broadcasting all of the system units, both inside and outside the first domain, via a router; and (k) filtering the transaction at each of the system units, Enabling response of the transaction to those of the units that are in the first domain and disabling the response to the transaction to other of the system units that are outside of the first domain; Disabling.
【請求項19】 請求項18記載の方法において、ステ
ップ(j)および(k)はステップ(e)の後に実行す
る方法。
19. The method according to claim 18, wherein steps (j) and (k) are performed after step (e).
【請求項20】 請求項18記載の方法において、ステ
ップ(k)は、前記第1ドメイン外の前記システム・ユ
ニットの全てはディセーブルしない方法。
20. The method of claim 18, wherein step (k) does not disable all of the system units outside the first domain.
【請求項21】 請求項18記載の方法において、前記
ドメインの異なるドメインにある複数の前記システム・
ユニットは、物理的に、各範囲内のアドレスを有するメ
モリを含み、前記各範囲の前記アドレスは少なくとも部
分的に重複する方法。
21. The method according to claim 18, wherein the plurality of systems are located in different domains of the domain.
The method wherein the unit physically comprises a memory having addresses in each range, wherein the addresses in each range at least partially overlap.
【請求項22】 グローバル・アドレス・ルータと、グ
ローバル・データ・ルータと、制御信号分配器とを有す
るマルチプロセッサ・コンピュータ用システム・ユニッ
トであって、前記制御信号分配器は前記システム・ユニ
ットの複数の他のものを相互接続し、前記コンピュータ
はコンピュータ・コントローラも有し、前記システム・
ユニットは、 前記グローバル・ルータの双方に結合され、所定のグロ
ーバル範囲内のアドレスを発生する、少なくとも1つの
プロセッサ・ユニットを受け付ける手段と、 前記グローバル・ルータに結合され、前記所定のグロー
バル範囲内の1組のアドレスにおけるデータを格納す
る、少なくとも1つのメモリ・ユニットを受け付ける手
段と、 前記グローバル・ルータに結合され、前記所定のグロー
バル範囲内の1組のアドレスを発生および/または受信
する少なくとも1つの入出力アダプタを受け付ける手段
と、 前述した手段の少なくとも1つに結合され、前記分配器
に制御信号を発生する手段であって、前記制御信号は前
記システム・ユニット内におけるエラー状態を表し、更
に、前記他のシステム・ユニット内におけるエラー状態
を表す制御信号を受け取る手段と、 前記制御信号をフィルタし、前記他のユニットの内選択
可能なものからの制御信号のみが、前記システム・ユニ
ットの動作に影響を与え得るようにする手段と、 前記コンピュータ・コントローラに接続可能であり、前
記他のユニットから前記のものを選択する手段と、を備
えたシステム・ユニット。
22. A system unit for a multiprocessor computer having a global address router, a global data router, and a control signal distributor, wherein the control signal distributor comprises a plurality of the system units. Interconnecting the other, said computer also having a computer controller, said system
A unit coupled to both of the global routers for receiving at least one processor unit for generating an address within a predetermined global range; and a unit coupled to the global router and configured to receive an address within the predetermined global range. Means for receiving at least one memory unit for storing data at a set of addresses; and at least one coupled to the global router for generating and / or receiving a set of addresses within the predetermined global range. Means for receiving an input / output adapter, and means for generating a control signal at the distributor, coupled to at least one of the aforementioned means, wherein the control signal is indicative of an error condition within the system unit; Displays the error status in the other system unit. Means for receiving control signals; means for filtering the control signals so that only control signals from selectable ones of the other units can affect the operation of the system unit; Means connectable to a computer controller and selecting said one from said other units.
【請求項23】 請求項22記載のシステム・ユニット
において、前記フィルタ手段は、 前記他のユニットの内前記選択可能なものを指定するデ
ータを保持するドメイン・マスク・レジスタと、 前記選択可能なものからある信号を通過させ、前記シス
テム・ユニットの他のものからの前記ある信号を遮断す
るゲート手段と、を含むシステム・ユニット。
23. The system unit according to claim 22, wherein said filter means comprises: a domain mask register holding data specifying said selectable one of said other units; and said selectable one. Gate means for passing certain signals from and blocking said certain signals from others of said system unit.
【請求項24】 請求項23記載のシステム・ユニット
において、更に、可変データを前記ドメイン・マスク・
レジスタにロードする手段を備えているシステム・ユニ
ット。
24. The system unit according to claim 23, further comprising the step of storing variable data in the domain mask.
A system unit that has means for loading registers.
【請求項25】 請求項22記載のシステム・ユニット
において、前記フィルタ手段は、前記コンピュータ内の
前記システム・ユニットのいずれかに物理的に実装され
ているメモリを指定するデータを、前記システム・ユニ
ットにアクセス可能として、前記グローバル範囲の一部
に保持する共有メモリ・レジスタを含むシステム・ユニ
ット。
25. The system unit according to claim 22, wherein said filter means stores data specifying a memory physically implemented in any of said system units in said computer. A shared memory register that is accessible to and maintained in a portion of said global range.
【請求項26】 請求項25記載のシステム・ユニット
であって、更に、可変データを前記共有メモリ・レジス
タにロードする手段を備えているシステム・ユニット。
26. The system unit of claim 25, further comprising means for loading variable data into said shared memory register.
【請求項27】 請求項25記載のシステム・ユニット
において、前記フィルタ手段は、前記いずれかのシステ
ム・ユニット上に物理的に実装されている前記メモリの
一部のみから成るアドレス範囲を指定するデータを保持
する、少なくとも1つの別の共有メモリ・レジスタを含
むシステム・ユニット。
27. The system unit according to claim 25, wherein said filter means specifies an address range consisting only of a part of said memory physically mounted on any one of said system units. A system unit including at least one other shared memory register for holding
【請求項28】 マルチプロセッサ・コンピュータ用の
複数のシステム・ユニットの中の一システム・ユニット
であって、前記マルチプロセッサ・コンピュータは、 前記システム・ユニットのいずれかにおいて発したアド
レスを、前記システム・ユニットの他の全てに転送する
グローバル・アドレス・ルータであって、前記アドレス
の各アドレスが、前記複数のシステム・ユニットのどれ
が前記各アドレスを発したかを示すソース識別子を有す
る、グローバル・アドレス・ルータと、 前記システム・ユニットのいずれかから、前記システム
・ユニットの他の全てにデータを転送するグローバル・
データ・ルータと、 前記システム・ユニットのいずれかからの複数の制御信
号を前記システム・ユニットの他の全てに伝達し、前記
いずれかのシステム・ユニットにおいて発生した状態に
応答して、前記システム・ユニットの全ての動作に影響
を与える、制御信号分配器と、 前記コンピュータを複数のソフトウエア構成可能なハー
ドウエア・ドメインに電子的に分割し、各々が、前記コ
ンピュータ内の前記システム・ユニットのいずれの物理
的再接続から独立した、前記システム・ユニットの任意
のサブセットから構成されるドメイン・コンフィギュレ
ータと、 前記コマンドに応答し、前記システム・ユニットの内ど
れが前記ハードウエア・ドメインの各々に属するのか
を、前記ドメイン・コンフィギュレータに指定するコン
ピュータ・コントローラと、 前記システム・ユニットの全てに結合され、前記システ
ム・ユニットの内前記ドメインの1つの中にあるものに
おいて発した前記制御信号の少なくともいくつかが、前
記1つのドメイン外の前記システム・ユニットのあるも
のに影響を与えるのを電子的に禁止するドメイン・フィ
ルタと、を備え、 前記一システム・ユニットは、 前記グローバル・アドレス・ルータに接続された少なく
とも1つのサブシステムであって、前記サブシステムと
前記システム・ユニットの他のいずれかとの間で前記ア
ドレスを結合すると共に、前記グローバル・データ・ル
ータに接続され、前記サブシステムと前記システム・ユ
ニットの他のいずれかとの間でトランザクション・デー
タを転送するサブシステムであって、 トランザクションを実行するプロセッサ・サブシステ
ム、 前記グローバル範囲内にデータを格納するメモリ・サブ
システム、 入出力アダプタと通信する入出力サブシステム、から成
るグループから選択される前記サブシステムと、 前記分配器に結合された、前記制御信号の少なくとも1
つの発生器と、 前記制御信号の少なくとも1つの受信部と、 前記コンピュータ・コントローラから、前記複数のシス
テム・ユニットの内どれが前記1つのシステム・ユニッ
トと同じドメインに属するのかを表す値を受け取るドメ
イン書き込み可能マスク・レジスタと、 前記ドメイン・マスク・レジスタに結合され、前記ソー
ス識別子が、前記各アドレスが前記同じドメイン内から
発したのではないことを示す場合、禁止信号を生成し、
該禁止信号を前記少なくとも1つのサブシステムに結合
し、前記各アドレスに対してそれを無応答にさせる比較
器と、を備えたシステム・ユニット。
28. A system unit among a plurality of system units for a multiprocessor computer, wherein the multiprocessor computer sends an address issued in any of the system units to the system unit. A global address router for forwarding to all other units, wherein each address of said address has a source identifier indicating which of said plurality of system units issued said respective address. A router and a global router for transferring data from any of the system units to all other of the system units.
A data router, transmitting a plurality of control signals from any of the system units to all other ones of the system units, and responding to a condition occurring in any of the system units; A control signal distributor that affects the overall operation of the unit; and electronically divides the computer into a plurality of software configurable hardware domains, each one of the system units in the computer. A domain configurator composed of any subset of the system units, independent of physical reconnection of the system units, and in response to the command, which of the system units belong to each of the hardware domains Is the computer code that specifies the domain configurator. A controller, coupled to all of the system units, wherein at least some of the control signals emitted in one of the domains of the system units are outside of the one domain. A domain filter for electronically inhibiting any of the following: wherein said one system unit is at least one subsystem connected to said global address router, said subsystem comprising: Combining the address between a system and any other of the system units, coupled to the global data router, and transferring transaction data between the subsystem and any other of the system units. Subsystem that executes a transaction A processor subsystem selected from the group consisting of a processor subsystem that stores data within the global range, an input / output subsystem that communicates with an input / output adapter, and a processor subsystem coupled to the distributor. , At least one of the control signals
A generator, at least one receiver for the control signal, and a domain for receiving from the computer controller a value indicating which of the plurality of system units belongs to the same domain as the one system unit. A writable mask register; coupled to the domain mask register, generating an inhibit signal if the source identifier indicates that each address did not originate from within the same domain;
A comparator coupling the inhibit signal to the at least one subsystem and rendering it unresponsive to each of the addresses.
【請求項29】 請求項28記載のシステム・ユニット
において、前記ドメイン・コンフィギュレータは、更
に、複数の前記ハードウエア・ドメインを結合し、前記
コンピュータ内の前記システム・ユニットのあらゆる物
理的再接続と独立した、前記ドメインの任意のサブセッ
トから成るドメイン・クラスタを形成し、 前記複数のシステム・ユニットの内どれが、前記1つの
システム・ユニットと同じドメイン・クラスタに属する
のかを示す、少なくとも1つの書き込み可能共有メモリ
・マスク・レジスタを含み、 前記比較器は、更に、前記ドメイン・マスク・レジスタ
に結合され、前記各アドレスが、前記同じドメイン・ク
ラスタ外の前記システム・ユニットのあるものにおいて
発せられたものであることを、前記ソース識別子が示す
場合、前記禁止信号を生成する、システム・ユニット。
29. The system unit of claim 28, wherein the domain configurator further combines a plurality of the hardware domains and is independent of any physical reconnection of the system unit in the computer. At least one writable, indicating which of the plurality of system units belongs to the same domain cluster as the one system unit, forming a domain cluster comprising an arbitrary subset of the domains. A shared memory mask register, wherein the comparator is further coupled to the domain mask register, wherein each of the addresses originated at some of the system units outside the same domain cluster. The source identifier indicates that Generating said inhibit signal, the system unit.
【請求項30】 請求項31記載のシステム・ユニット
において、前記少なくとも1つのサブシステムは、前記
グローバル・アドレス範囲の一部内にデータを格納す
る、前記メモリ・サブシステムを含み、前記システム・
ユニットは更に、 前記コンピュータ・コントローラから、前記グローバル
範囲の前記一部以内にメモリ・アドレスの共有範囲を定
義する値を受け取る少なくとも1つの共有メモリ・アド
レス・レジスタを備えており、 前記比較器は、更に、前記共有メモリ・アドレス・レジ
スタにも応答し、前記各アドレスが前記共有範囲外にあ
る場合、前記メモリ・サブシステムを禁止する、システ
ム・ユニット。
30. The system unit of claim 31, wherein said at least one subsystem includes said memory subsystem storing data within a portion of said global address range.
The unit further comprises at least one shared memory address register for receiving from the computer controller a value defining a shared range of memory addresses within the portion of the global range, the comparator comprising: A system unit responsive to the shared memory address register for inhibiting the memory subsystem if the respective address is outside the shared range.
【請求項31】 請求項28記載のシステム・ユニット
において、前記制御信号の前記少なくとも1つの発生器
は、前記グローバル・アドレス・ルータに対するアクセ
スを要求し受け取る、ローカル・アドレス・アービタの
一部を形成するシステム・ユニット。
31. The system unit of claim 28, wherein said at least one generator of said control signal forms part of a local address arbiter requesting and receiving access to said global address router. System unit to do.
【請求項32】 請求項33記載のシステム・ユニット
において、前記制御信号の前記少なくとも1つの受信部
は、更に、前記ローカル・アドレス・アービタの一部を
形成するシステム・ユニット。
32. The system unit of claim 33, wherein said at least one receiver of said control signal further forms part of said local address arbiter.
【請求項33】 請求項28記載のシステム・ユニット
において、前記一システム・ユニットは、前記サブシス
テムの内少なくとも2つの異なるものを含むシステム・
ユニット。
33. The system unit of claim 28, wherein said one system unit comprises at least two different ones of said subsystems.
unit.
【請求項34】 請求項33記載のシステム・ユニット
において、前記一システム・ユニットは3種類の前記サ
ブシステムの全てを含むシステム・ユニット。
34. The system unit of claim 33, wherein said one system unit includes all three of said subsystems.
【請求項35】 請求項28記載のシステム・ユニット
において、前記プロセッサ・サブシステムは、複数の別
個のマイクロプロセッサを含むシステム・ユニット。
35. The system unit of claim 28, wherein said processor subsystem includes a plurality of separate microprocessors.
JP34292097A 1996-12-12 1997-12-12 Multiprocessor computer with configurable hardware system domain Expired - Lifetime JP4124507B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US763934 1985-08-07
US08/763,934 US5931938A (en) 1996-12-12 1996-12-12 Multiprocessor computer having configurable hardware system domains

Publications (2)

Publication Number Publication Date
JPH10228458A true JPH10228458A (en) 1998-08-25
JP4124507B2 JP4124507B2 (en) 2008-07-23

Family

ID=25069230

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34292097A Expired - Lifetime JP4124507B2 (en) 1996-12-12 1997-12-12 Multiprocessor computer with configurable hardware system domain

Country Status (4)

Country Link
US (2) US5931938A (en)
EP (1) EP0848327B1 (en)
JP (1) JP4124507B2 (en)
DE (1) DE69738864D1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938078B1 (en) 1998-12-09 2005-08-30 Nec Corporation Data processing apparatus and data processing method
US7380001B2 (en) 2001-05-17 2008-05-27 Fujitsu Limited Fault containment and error handling in a partitioned system with shared resources
JP2010009567A (en) * 2008-06-27 2010-01-14 Internatl Business Mach Corp <Ibm> Information handling system including dynamically merged physical partition and method for operating the same
KR20150014464A (en) * 2012-05-24 2015-02-06 로저 스미스 Dynamically erectable computer system
US9342451B2 (en) 2011-02-21 2016-05-17 Fujitsu Limited Processor management method

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542926B2 (en) 1998-06-10 2003-04-01 Compaq Information Technologies Group, L.P. Software partitioned multi-processor system with flexible resource sharing levels
US6199179B1 (en) 1998-06-10 2001-03-06 Compaq Computer Corporation Method and apparatus for failure recovery in a multi-processor computer system
US6381682B2 (en) * 1998-06-10 2002-04-30 Compaq Information Technologies Group, L.P. Method and apparatus for dynamically sharing memory in a multiprocessor system
US6260068B1 (en) 1998-06-10 2001-07-10 Compaq Computer Corporation Method and apparatus for migrating resources in a multi-processor computer system
US6633916B2 (en) 1998-06-10 2003-10-14 Hewlett-Packard Development Company, L.P. Method and apparatus for virtual resource handling in a multi-processor computer system
US6332180B1 (en) 1998-06-10 2001-12-18 Compaq Information Technologies Group, L.P. Method and apparatus for communication in a multi-processor computer system
US6647508B2 (en) 1997-11-04 2003-11-11 Hewlett-Packard Development Company, L.P. Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation
EP1042435B1 (en) * 1997-12-19 2002-07-24 Unilever N.V. Olive oil containing food composition
US6480927B1 (en) * 1997-12-31 2002-11-12 Unisys Corporation High-performance modular memory system with crossbar connections
US6282600B1 (en) * 1998-08-14 2001-08-28 International Business Machines Corporation Method and apparatus of resolving conflicting register access requests from a service processor and system processor
US6334177B1 (en) * 1998-12-18 2001-12-25 International Business Machines Corporation Method and system for supporting software partitions and dynamic reconfiguration within a non-uniform memory access system
KR20000044353A (en) * 1998-12-30 2000-07-15 윤종용 Switch port unifying apparatus of asynchronous transfer mode exchange
US6378029B1 (en) * 1999-04-21 2002-04-23 Hewlett-Packard Company Scalable system control unit for distributed shared memory multi-processor systems
US7107329B1 (en) * 1999-05-21 2006-09-12 Lucent Technologies Inc. In networks of interconnected router nodes for routing data traffic, a method of and system for imperceptibly upgrading router node software and the like without traffic interruption
US6467012B1 (en) 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US6442597B1 (en) 1999-07-08 2002-08-27 International Business Machines Corporation Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory
US6779036B1 (en) 1999-07-08 2004-08-17 International Business Machines Corporation Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system
US6591348B1 (en) 1999-09-09 2003-07-08 International Business Machines Corporation Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system
US6587930B1 (en) * 1999-09-23 2003-07-01 International Business Machines Corporation Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock
US6725307B1 (en) 1999-09-23 2004-04-20 International Business Machines Corporation Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system
US6457085B1 (en) 1999-11-04 2002-09-24 International Business Machines Corporation Method and system for data bus latency reduction using transfer size prediction for split bus designs
US6606676B1 (en) 1999-11-08 2003-08-12 International Business Machines Corporation Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US6523076B1 (en) 1999-11-08 2003-02-18 International Business Machines Corporation Method and apparatus for synchronizing multiple bus arbiters on separate chips to give simultaneous grants for the purpose of breaking livelocks
US6535941B1 (en) 1999-11-08 2003-03-18 International Business Machines Corporation Method and apparatus for avoiding data bus grant starvation in a non-fair, prioritized arbiter for a split bus system with independent address and data bus grants
US6529990B1 (en) 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus to eliminate failed snoops of transactions caused by bus timing conflicts in a distributed symmetric multiprocessor system
US6542949B1 (en) 1999-11-08 2003-04-01 International Business Machines Corporation Method and apparatus for increased performance of a parked data bus in the non-parked direction
US7529799B2 (en) 1999-11-08 2009-05-05 International Business Machines Corporation Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
US6684279B1 (en) 1999-11-08 2004-01-27 International Business Machines Corporation Method, apparatus, and computer program product for controlling data transfer
US6516379B1 (en) 1999-11-08 2003-02-04 International Business Machines Corporation Method and apparatus for transaction pacing to reduce destructive interference between successive transactions in a distributed symmetric multiprocessor system
US6807557B1 (en) 2000-05-31 2004-10-19 International Business Machines Corporation Method, system and program products for providing clusters of a computing environment
US6778534B1 (en) 2000-06-30 2004-08-17 E. Z. Chip Technologies Ltd. High-performance network processor
US6826619B1 (en) 2000-08-21 2004-11-30 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6487643B1 (en) 2000-09-29 2002-11-26 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6772298B2 (en) 2000-12-20 2004-08-03 Intel Corporation Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US7225320B2 (en) * 2000-12-28 2007-05-29 Koninklijke Philips Electronics N.V. Control architecture for a high-throughput multi-processor channel decoding system
US7234029B2 (en) * 2000-12-28 2007-06-19 Intel Corporation Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US6791412B2 (en) * 2000-12-28 2004-09-14 Intel Corporation Differential amplifier output stage
US20020087775A1 (en) * 2000-12-29 2002-07-04 Looi Lily P. Apparatus and method for interrupt delivery
US6721918B2 (en) 2000-12-29 2004-04-13 Intel Corporation Method and apparatus for encoding a bus to minimize simultaneous switching outputs effect
US20020087766A1 (en) * 2000-12-29 2002-07-04 Akhilesh Kumar Method and apparatus to implement a locked-bus transaction
US20020129172A1 (en) * 2001-03-08 2002-09-12 International Business Machines Corporation Inter-partition message passing method, system and program product for a shared I/O driver
US6985951B2 (en) * 2001-03-08 2006-01-10 International Business Machines Corporation Inter-partition message passing method, system and program product for managing workload in a partitioned processing environment
US7089558B2 (en) 2001-03-08 2006-08-08 International Business Machines Corporation Inter-partition message passing method, system and program product for throughput measurement in a partitioned processing environment
US7694302B1 (en) * 2001-04-05 2010-04-06 Network Appliance, Inc. Symmetric multiprocessor synchronization using migrating scheduling domains
US6971098B2 (en) 2001-06-27 2005-11-29 Intel Corporation Method and apparatus for managing transaction requests in a multi-node architecture
US7065599B2 (en) * 2001-08-10 2006-06-20 Sun Microsystems, Inc. Multiprocessor systems
US20030061326A1 (en) * 2001-09-25 2003-03-27 Gilbert Gary L. Managing one or more domains in a system
US6915450B2 (en) 2001-11-01 2005-07-05 Sun Microsystems, Inc. Method and apparatus for arbitrating transactions between domains in a computer system
US6915370B2 (en) * 2001-12-20 2005-07-05 Intel Corporation Domain partitioning in a multi-node system
US6842831B2 (en) * 2002-04-25 2005-01-11 Intel Corporation Low latency buffer control system and method
US7155525B2 (en) * 2002-05-28 2006-12-26 Newisys, Inc. Transaction management in systems having multiple multi-processor clusters
US7281055B2 (en) * 2002-05-28 2007-10-09 Newisys, Inc. Routing mechanisms in systems having multiple multi-processor clusters
US7103636B2 (en) * 2002-05-28 2006-09-05 Newisys, Inc. Methods and apparatus for speculative probing of a remote cluster
US7251698B2 (en) * 2002-05-28 2007-07-31 Newisys, Inc. Address space management in systems having multiple multi-processor clusters
US20040078799A1 (en) * 2002-10-17 2004-04-22 Maarten Koning Interpartition communication system and method
US7577755B2 (en) * 2002-11-19 2009-08-18 Newisys, Inc. Methods and apparatus for distributing system management signals
US7085897B2 (en) * 2003-05-12 2006-08-01 International Business Machines Corporation Memory management for a symmetric multiprocessor computer system
US7386626B2 (en) * 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7577727B2 (en) * 2003-06-27 2009-08-18 Newisys, Inc. Dynamic multiple cluster system reconfiguration
US7373640B1 (en) 2003-07-31 2008-05-13 Network Appliance, Inc. Technique for dynamically restricting thread concurrency without rewriting thread code
US7103823B2 (en) 2003-08-05 2006-09-05 Newisys, Inc. Communication between multi-processor clusters of multi-cluster computer systems
US7395347B2 (en) * 2003-08-05 2008-07-01 Newisys, Inc, Communication between and within multi-processor clusters of multi-cluster computer systems
US7117419B2 (en) * 2003-08-05 2006-10-03 Newisys, Inc. Reliable communication between multi-processor clusters of multi-cluster computer systems
US7159137B2 (en) * 2003-08-05 2007-01-02 Newisys, Inc. Synchronized communication between multi-processor clusters of multi-cluster computer systems
US8171480B2 (en) * 2004-01-27 2012-05-01 Network Appliance, Inc. Method and apparatus for allocating shared resources to process domains according to current processor utilization in a shared resource processor
US7757033B1 (en) 2004-02-13 2010-07-13 Habanero Holdings, Inc. Data exchanges among SMP physical partitions and I/O interfaces enterprise servers
US7843906B1 (en) 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway initiator for fabric-backplane enterprise servers
US7685281B1 (en) 2004-02-13 2010-03-23 Habanero Holdings, Inc. Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers
US8868790B2 (en) 2004-02-13 2014-10-21 Oracle International Corporation Processor-memory module performance acceleration in fabric-backplane enterprise servers
US7633955B1 (en) 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
US8145785B1 (en) * 2004-02-13 2012-03-27 Habanero Holdings, Inc. Unused resource recognition in real time for provisioning and management of fabric-backplane enterprise servers
US7873693B1 (en) 2004-02-13 2011-01-18 Habanero Holdings, Inc. Multi-chassis fabric-backplane enterprise servers
DE102004028166A1 (en) * 2004-06-09 2006-01-05 Krämer, Alexander, Dr. Method for the construction of a system network
US8713295B2 (en) 2004-07-12 2014-04-29 Oracle International Corporation Fabric-backplane enterprise servers with pluggable I/O sub-system
US7882317B2 (en) * 2004-12-06 2011-02-01 Microsoft Corporation Process isolation using protection domains
US8020141B2 (en) * 2004-12-06 2011-09-13 Microsoft Corporation Operating-system process construction
JP4711709B2 (en) * 2005-03-18 2011-06-29 富士通株式会社 Partition allocation method and computer system
US8849968B2 (en) * 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US8347293B2 (en) * 2005-10-20 2013-01-01 Network Appliance, Inc. Mutual exclusion domains to perform file system processes on stripes
US8074231B2 (en) * 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US8032898B2 (en) * 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
US8232991B1 (en) * 2006-11-03 2012-07-31 Nvidia Corporation Z-test result reconciliation with multiple partitions
DE102007010763A1 (en) * 2007-03-06 2008-09-11 Zf Friedrichshafen Ag Method for adaptive configuration recognition
US8789063B2 (en) * 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US20080244507A1 (en) * 2007-03-30 2008-10-02 Microsoft Corporation Homogeneous Programming For Heterogeneous Multiprocessor Systems
US8200992B2 (en) 2007-09-24 2012-06-12 Cognitive Electronics, Inc. Parallel processing computer systems with reduced power consumption and methods for providing the same
DE102008004857B4 (en) * 2008-01-17 2013-08-22 Entropic Communications, Inc. Method for transmitting data between at least two clock domains
US8627331B1 (en) 2010-04-30 2014-01-07 Netapp, Inc. Multi-level parallelism of process execution in a mutual exclusion domain of a processing system
US9141131B2 (en) 2011-08-26 2015-09-22 Cognitive Electronics, Inc. Methods and systems for performing exponentiation in a parallel processing environment
US20130061292A1 (en) * 2011-08-26 2013-03-07 Cognitive Electronics, Inc. Methods and systems for providing network security in a parallel processing environment
US9063754B2 (en) 2013-03-15 2015-06-23 Cognitive Electronics, Inc. Profiling and optimization of program code/application
US10540284B2 (en) * 2014-07-29 2020-01-21 Nxp Usa, Inc. Cache-coherent multiprocessor system and a method for detecting failures in a cache-coherent multiprocessor system
US9569267B2 (en) 2015-03-16 2017-02-14 Intel Corporation Hardware-based inter-device resource sharing

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0077153B1 (en) * 1981-10-01 1987-03-04 Stratus Computer, Inc. Digital data processor with fault-tolerant bus protocol
EP0340901A3 (en) * 1988-03-23 1992-12-30 Du Pont Pixel Systems Limited Access system for dual port memory
US5043874A (en) * 1989-02-03 1991-08-27 Digital Equipment Corporation Memory configuration for use with means for interfacing a system control unit for a multi-processor system with the system main memory
US5175837A (en) * 1989-02-03 1992-12-29 Digital Equipment Corporation Synchronizing and processing of memory access operations in multiprocessor systems using a directory of lock bits
US5301284A (en) * 1991-01-16 1994-04-05 Walker-Estes Corporation Mixed-resolution, N-dimensional object space method and apparatus
JP2770603B2 (en) * 1991-03-14 1998-07-02 三菱電機株式会社 Parallel computer
US5367697A (en) * 1991-10-22 1994-11-22 Bull Hn Information Systems Inc. Means for providing a graceful power shut-down capability in a multiprocessor system having certain processors not inherently having a power shut-down capability
US5371744A (en) * 1992-03-23 1994-12-06 Hughes Aircraft Company System and method for enumerating all acyclic paths in a processing system for reconfiguration and fault tolerance
US5572674A (en) * 1993-01-07 1996-11-05 Bmc Software, Inc. Method of dynamically adjusting SNA network control program parameters
JPH06290158A (en) * 1993-03-31 1994-10-18 Fujitsu Ltd Reconstructible torus network system
US5473599A (en) * 1994-04-22 1995-12-05 Cisco Systems, Incorporated Standby router protocol
AU2429395A (en) * 1994-04-28 1995-11-29 Semitool, Incorporated Semiconductor processing systems
US5751967A (en) * 1994-07-25 1998-05-12 Bay Networks Group, Inc. Method and apparatus for automatically configuring a network device to support a virtual network
US5550816A (en) * 1994-12-29 1996-08-27 Storage Technology Corporation Method and apparatus for virtual switching
US5710938A (en) * 1995-07-19 1998-01-20 Unisys Corporation Data processing array in which sub-arrays are established and run independently

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938078B1 (en) 1998-12-09 2005-08-30 Nec Corporation Data processing apparatus and data processing method
US7380001B2 (en) 2001-05-17 2008-05-27 Fujitsu Limited Fault containment and error handling in a partitioned system with shared resources
JP2010009567A (en) * 2008-06-27 2010-01-14 Internatl Business Mach Corp <Ibm> Information handling system including dynamically merged physical partition and method for operating the same
US7743375B2 (en) 2008-06-27 2010-06-22 International Business Machines Corporation Information handling system including dynamically merged physical partitions
JP4550136B2 (en) * 2008-06-27 2010-09-22 インターナショナル・ビジネス・マシーンズ・コーポレーション Information processing system including dynamically merged physical partitions and method of operating same
US9342451B2 (en) 2011-02-21 2016-05-17 Fujitsu Limited Processor management method
KR20150014464A (en) * 2012-05-24 2015-02-06 로저 스미스 Dynamically erectable computer system

Also Published As

Publication number Publication date
EP0848327A2 (en) 1998-06-17
JP4124507B2 (en) 2008-07-23
US5931938A (en) 1999-08-03
EP0848327B1 (en) 2008-07-30
USRE41293E1 (en) 2010-04-27
DE69738864D1 (en) 2008-09-11
EP0848327A3 (en) 2002-01-23

Similar Documents

Publication Publication Date Title
JP4124507B2 (en) Multiprocessor computer with configurable hardware system domain
US6910108B2 (en) Hardware support for partitioning a multiprocessor system to allow distinct operating systems
US6480941B1 (en) Secure partitioning of shared memory based multiprocessor system
US7051180B2 (en) Masterless building block binding to partitions using identifiers and indicators
US8346997B2 (en) Use of peripheral component interconnect input/output virtualization devices to create redundant configurations
EP1606712B1 (en) System and method for dynamic mirror-bank addressing
US7395367B2 (en) Method using a master node to control I/O fabric configuration in a multi-host environment
CA1176337A (en) Distributed signal processing system
US8225005B2 (en) Use of peripheral component interconnect input/output virtualization devices to create high-speed, low-latency interconnect
US7492723B2 (en) Mechanism to virtualize all address spaces in shared I/O fabrics
US11599498B1 (en) Device with data processing engine array that enables partial reconfiguration
CN112948321A (en) Method for managing the operation of a system-on-chip and corresponding system-on-chip
JP2003506788A (en) Diagnostic cage mode for testing redundant system controllers
US9372702B2 (en) Non-disruptive code update of a single processor in a multi-processor computing system
US11366940B2 (en) Secure-aware bus system
US20040019728A1 (en) Multiple hardware partitions under one input/output hub
EP1701267B1 (en) Address snoop method and multi-processor system
US20110161644A1 (en) Information processor
US6532519B2 (en) Apparatus for associating cache memories with processors within a multiprocessor data processing system
US20010037426A1 (en) Interrupt handling via a proxy processor
US8782779B2 (en) System and method for achieving protected region within computer system
US11489940B2 (en) Data processing systems
CN116662984A (en) Memory isolation device and multi-core computing system based on same
GB2603211A (en) Data Processing systems
JPH0652097A (en) Multibus system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070913

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071212

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080313

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080407

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080502

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130516

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130516

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term