JP2541933B2 - マルチプロセツサ通信方法 - Google Patents

マルチプロセツサ通信方法

Info

Publication number
JP2541933B2
JP2541933B2 JP61131048A JP13104886A JP2541933B2 JP 2541933 B2 JP2541933 B2 JP 2541933B2 JP 61131048 A JP61131048 A JP 61131048A JP 13104886 A JP13104886 A JP 13104886A JP 2541933 B2 JP2541933 B2 JP 2541933B2
Authority
JP
Japan
Prior art keywords
processor
update
processors
global
control information
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.)
Expired - Lifetime
Application number
JP61131048A
Other languages
English (en)
Other versions
JPS6249467A (ja
Inventor
ダブリュー カー リチャード
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers 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 Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of JPS6249467A publication Critical patent/JPS6249467A/ja
Application granted granted Critical
Publication of JP2541933B2 publication Critical patent/JP2541933B2/ja
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/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Nitrogen Condensed Heterocyclic Rings (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Communication Control (AREA)
  • Information Transfer Between Computers (AREA)

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、計算機の動作を制御する方法に関する。特
に本発明は、マルチプロセッサ計算システムのプロセッ
サ間で更新情報を通信するための改良方法に関する。開
示の通信方法は、マルチプロセッサ計算システムにおい
て複数不良に許容を与えるという特定用途を有する。
(従来の技術) ルーズに連結された分散型マルチプロセッサ計算シス
テムは従来周知で、広範囲の用途と環境において使われ
ている。このようなシステムにおける制御情報は、複数
のプロセッサが単一の統一したマルチ処理システムとし
て動作可能になるのを保証するため、各プロセッサによ
って保持される。1つのプロセッサにおける制御情報が
変更(つまり更新)したら、各プロセッサによって保持
されている制御情報がシステム全体を通じて一致するよ
うに、他の全プロセッサにおける制御情報を更新する必
要があった。
複数のプロセッサが調整された状態に維持され且つそ
れらに現時点のシステム状態が通知されるようにするた
め、グローバル更新のメッセージが発信プロセッサとな
るいずれかのプロセッサから、システム全体を通じたそ
の他の現在動作中の全プロセッサに同時通報される。こ
ゝで“グローバル更新”とは、分散型マルチプロセッサ
計算システムで実施され、システム中の動作している全
プロセッサの制御情報に一致した変更を与える動作を意
味する。
例えば、こうしたシステムの入/出力(I/O)装置は
1つより多いプロセッサから動作されるが、システム
(全プロセッサ)は特定の任意の時点でどのプロセッサ
が所定のI/O装置を制御すべきかについて同意しなけれ
ばならなかった。I/O装置の制御が1つのプロセッサか
ら別のプロセッサへ移されたら、システム中の各プロセ
ッサはこの事実について、発信プロセッサから残りの各
プロセッサへ同時通報されるグローバル更新のメッセー
ジによって通知されていた。そして、全てのプロセッサ
がシステムに関し正確で、現時点の一致した制御情報を
持つようになり、各プロセッサで更新がなされた。
各プロセッサにおける制御情報を一致した状態に保つ
ため、制御情報へのアクセスと更新は一般に“アトミッ
ク動作”として実施される。アトミック動作は不可分
で、それが有効として扱われる前に始って完了する。動
作をアトミックと見なし得るためには、制御情報への各
アクセスが一致し、部分的に更新されたデータを得るべ
きでなく;各グローバル更新は現時点で動作している全
プロセッサについて首尾よく実施されるか、またはどの
プロセッサについても実施されるべきでなく;連続する
グローバル更新は全プロセッサに対し同じ順序で生ずる
べきで;さらに各グローバル更新はある最大の時間リミ
ット内に実施されるべきである。制御情報にアクセスし
更新するのにアトミック動作は好ましいが、従来アトミ
ック動作は単一の不良だけを許容していた。また、個々
のプロセッサ内の制御情報へのアクセスが、制御情報の
グローバル更新よりも頻繁に生じることが理解されるべ
きである。
従来のシステムにおいては、グローバルな更新の同時
通報中におけるプロセッサの不良が制御情報における不
一致の主な原因であった。更新の同時通報中に発信プロ
セッサの不良が起きると、一部の受信プロセッサは更新
されるが、他のプロセッサは更新されない事態が生じ
る。発信プロセッサの不良は、発信プロセッサの不良発
生前に更新がその他のプロセッサの一部に達したとして
も、従来のシステムが発信プロセッサの更新をグローバ
ルに行なう能力を破壊してしまう。また、専用の更新メ
ッセージ監視プロセッサの不良は、システム全体を通じ
た各プロセッサ内の制御情報に不一致の更新が成され、
不一致の発生とシステム停止の可能性をもたらしてい
た。
従来、分散型マルチ処理システムの複数のプロセッサ
で不良が発生したときに、制御情報を更新する方式は知
られている。これらの方式は一般に非常に複雑で、残り
の動作中プロセッサ間において累乗数のメッセージをや
りとりする必要があった。但し、こゝで累乗指数は残存
プロセッサの数に関連している。こうした方式は、計算
上すぐに処置し得なくなり易い。つまりそれらは、残り
のプロセッサ間での過剰な同意を必要とし、許容し得な
いレベルのシステム資源を必要としていた。例えば、広
範囲のポーリングとボーティング(投票)手順が呼出さ
れ、多数の意思決定が必要になる結果、複雑さと遅延が
いっそう度を増す。
単一不良の許容限界レベルを改善した従来の一システ
ムが、米国特許No.4,228,496に詳述されている。この先
行特許に記されたシステムの改良・変形型は、現在本出
願人によりNon Stop(登録商標)ファミリのコンピュー
タとして販売されている。かかるシステムは一般に、一
対の高速プロセス間バスで相互に接続された2〜16台の
分散プロセッサから成る。バスコントローラによってい
ずれかのプロセッサが他のプロセッサへ直接メッセージ
を送信可能とする。プロセッサ間の通信は、共通のメモ
リでなくメッセージにより実施される。上記先行特許に
記されたシステムでは共通のメモリが使われていない
が、不良に対する許容限界がやゝ劣化するにしても、マ
ルチプロセッサシステム内のデータ記憶装置のための共
通のメモリを使うこともできる。すなわち、共通メモリ
の不良がシステム全体を動作不能にすることがある。不
良の許容限界を増すため共通メモリに冗長性を与える
と、交信されねばならないメッセージ数を著しく増大さ
せ、システムのスループット速度を劣化させる。
上記の米国特許No.4,228,496に記されたシステムは、
単一不良を許容する。つまり、そのシステムはいずれか
1つの構成要素が不良になっても正しく機能し続ける。
2本のプロセッサ間バスは、一方のバスが不良になって
も作動中のプロセッサがメッセージパケットのやりとり
を続けられるように、それぞれ別個の構成要素としてあ
る。両方のバスが不良になったら、プロセッサは相互に
通信できず、先行特許のシステムは意図の動作を停止し
なければならない。
また先行特許のシステムでは、少くとも2つのプロセ
ッサが各I/O装置及びその他のシステム機能(資源)を
交互に制御できる。いずれか1つのプロセッサが不良に
なると、他のプロセッサがその不良プロセッサでそれま
で提供されていた機能を与えるように機能する。上記特
許のシステムで2つ以上のプロセッサが不良になると、
システムは全機能を与えるのを停止する。
上記特許に記された分散型マルチ処理システム中の各
プロセッサは、“動作中(アップ)”の状態つまりステ
ートかまたは“非動作(ダウン)”の状態つまりステー
トにある。プロセッサの不良を検出するため、上記特許
システムの各動作中プロセッサでは、“当方稼動中
(I′m alive)”というプロトコールが使われてい
る。このプロトコールは、現在利用可能なシステム資源
に関して、システムの動作中プロセッサ内の制御情報を
常に現時点のものに保つために用いられる。
“当方稼動中”のプロトコールを約n秒毎に実行する
ことで、各プロセッサは各バスを介し順序付けされてい
ない応答メッセージパケットを他の各プロセッサに送
る。このメッセージパケットは、了解脱落からの復帰
と、発信プロセッサが作動中であることを他のプロセッ
サに告げるという2つの目的を有する。約2n秒毎に、各
プロセッサが、他のそれぞれのプロセッサから順序付け
されていないメッセージパケットを受信したかどうかチ
ェックする。動作中と考えられるプロセッサからメッセ
ージパケットが受信されていないと、受信プロセッサが
発信プロセッサを非動作と見なし、発信プロセッサを利
用可能なプロセッサから除外するように自らの制御情報
を調整する。
さらに上記の特許システムは、グローバル更新を調整
する固定対のプロセッサを用いていた。従って、その従
来システムは各調整プロセッサへ配分される更新メッセ
ージパケットを2重化する必要があった。この2重化が
グローバル更新の実施に必要なメッセージ数を増加さ
せ、単一不良だけを許容していた。すなわち、両方の調
整プロセッサが不良になると、残りの動作中プロセッサ
で制御情報の同時性と一致を維持できなくなるため、シ
ステムは正しく稼動し得なかった。
(発明が解決しようとする問題点) 上記の特許システムで与えられる単一不良の許容は当
該分野における重大な改良であったが、プロセスの複数
不良(故障)に対する許容が必要とされる状況が幾つか
登場してきた。複数不良を許容するための重要な条件
は、不良を生じたプロセッサの数及び更新調整プロセッ
サの不良に関わりなく、あるプロセッサの不良発生後、
残りの動作中プロセッサの全てに一致した制御情報を維
持することである。従来のシステムで複数不良が生じる
と、制御情報の変化を動作中の各プロセッサへ、アトミ
ック動作として同時通報することができなかった。
従って、これまで未解決の要求として、複数不良つま
り複数のプロセッサの不良に直面したとき、制御情報の
グローバル更新を首尾よく実施できるようなマルチプロ
セッサシステム用の単純化され且つ高信頼の通信方法が
求められていた。
本発明の全般的目的は、従来技術における顕著な制限
と欠点を解消したマルチ処理計算システム用の通信方法
を提供することにある。
本発明の特別の目的は、従来法より大巾に単純化され
てリニアな、複数不良を許容するグローバル更新の通信
方法を提供することにある。
本発明の別の目的は、専用更新調整プロセッサの不良
から回復可能な、複数不良をグローバル更新の改良方法
を提供することにある。
本発明のもう1つの目的は、制御情報の同一コピーを
各プロセッサ内に維持でき、複数プロセッサの不良発生
時情報をアトミックに且つ高信頼でアクセスして更新で
きる効率的な方法を提供することにある。
本発明の更なる目的は、各プロセッサ毎に1つの更新
メッセージと1つの追加メッセージだけを必要とする、
リニアで複数不良を許容するグローバル更新の最適方法
を提供することにある。
(問題点を解決するための手段) 分散型データ処理システムのプロセッサ間で更新情報
を通信する改良方法が発見された。この新規な方法は、
複数プロセッサが不良になっても、グローバル更新のメ
ッセージをシステムへ同時通報可能とする。新規な方法
の実施においては、各プロセッサが他のそれぞれのプロ
セッサに対し間隔を置いてメッセージを送/受信するた
めのメッセージ交信手段を備え、各々のプロセッサが他
のそれぞれのプロセッサの現時点における動作状態をモ
ニター可能とする。
本発明によれば、複数の分散され、相互に接続された
プロセッサから成る分散型データ処理システム内の複数
のプロセッサの故障に耐える分散型データ処理システム
における制御情報更新方法であって、各プロセッサが、
他のそれぞれのプロセッサに対して、分散型データ処理
システムの全プロセッサに有用または必要な1つのプロ
セッサによって発せられたプロセッサの状態と分散型デ
ータ処理システムの構成に関する更新された制御情報と
を含むグローバル更新メッセージを、送/受信するため
のメッセージ交信手段を備え、各々のプロセッサが他の
それぞれのプロセッサの現時点における動作状態のモニ
ターを可能にし、更に、分散型データ処理システムの全
プロセッサの制御情報を更新するグローバル更新メッセ
ージを送/受信するのを可能にする制御情報更新方法が
提供され、かかる方法は、(a)分散型データ処理シス
テム全体の更新制御情報の通信を調整するプロセッサと
してのロッカープロセッサの最初のロッカープロセッサ
を識別してプロセッサの全てを1つの順序に配列する段
階と、(b)更新ロックセマフォとセットロックビット
とを含むグローバル更新メッセージを発信プロセッサか
らロッカープロセッサへ先に送ることによって現時点で
の発信プロセッサを識別するようにロッカープロセッサ
のロックセマフォ領域内に上記更新ロックセマフォをセ
ットする段階と、(c)更新ロックセマフォをロッカー
プロセッサのロックセマフォ領域内にセットした後、発
信プロセッサから他の各プロセッサへ、それらのプロセ
ッサが配列された順に、順次、上記グローバル更新メッ
セージを同時通報する段階と、(d)受信した最後のグ
ローバル更新メッセージの発信プロセッサを識別する更
新ロックセマフォを各プロセッサのロックセマフォ領域
に記憶させる段階と、(e)発信プロセッサからクリア
ロックビット付きの完了メッセージを送信することによ
って指示される同時通報の完了時に、ロッカープロセッ
サ内の更新ロックセマフォ領域をクリアする段階とを含
むことを特徴としている。
本発明の更新情報の通信方法によれば、プロセッサが
複数故障しても、故障したプロセッサを除いて、システ
ム全体での制御情報の更新を可能にして、その故障を回
復する。
なお、上記のように、本書において、「ロッカープロ
セッサ」とは、分散型データ処理システム全体の更新制
御情報の通信を調整するプロセッサをいう。
(実施例) 各図面には、米国特許第4,228,496号に開示された形
式の分散型マルチ処理システムの主要部分が概略的に示
されている。普通、このようなシステムは2〜16台の分
散プロセッサ12a〜12pを含む。システム中の各プロセッ
サ12はメモリ記憶領域14a〜14pを備え、理想的には他の
各プロセッサ12に維持されている制御情報と一致したシ
ステムの制御情報を各自のメモリ記憶領域14内に維持し
ている。
システム10の構成 本発明のグローバル更新方法は、5つの一般的な条件
によって特徴付けられる。
第1に1つのプロセッサがグローバル更新制御プロセ
ッサつまり“ロッカー(locker)”プロセッサ12LPとし
て指定される。かかるロッカープロセッサ12LPがシステ
ム全体のグローバル更新メッセージパケットの配分を調
整し、プロセッサ故障からの回復を果す主機構となる。
最初にロードされる順序にあって動作中のプロセッサ12
が最初のロッカープロセッサ12LPとして指定され、不良
を生じるか稼動から除かれるまでそれがロッカープロセ
ッサとしての役割を継続する。現時点のロッカープロセ
ッサ12LPが不良を生じるかまたは何らかの理由で非動作
になると、前もって決められた順序プランに従って次の
ロッカープロセッサが選ばれる。
第2に、順序プランは初めに決められ、本グローバル
更新の方法が関連している全プロセッサの順序付けを与
える。この所定のグローバル更新順序は最初のロッカー
プロセッサ12LPから始まり、その順序を繰り返す前に他
の各々のプロセッサを確実に1回含む。任意の順序付け
つまり配列とし得るが、その順序は論理に基いて任意の
故障を察知できねばならない。6台のプロセッサシステ
ム10の場合に自然な順序付けを第1図に示す。こゝで
は、プロセッサ12cが最初のロッカープロセッサで、グ
ローバル更新の連続順序は次の通り: 12c、12d、12e、12f、12a、12b、……本方法で許容可
能な順序配列のもっと一般的な記述は: L、L+1、L+2、……、 N−1、0、1、……L−1 但しLはロッカープロセッサ、Nはシステム10中に存在
するプロセッサ数である。尚、システム10の各プロセッ
サ12には、常にそれぞれのプロセッサに対応付けられた
順序配列内における特有なプロセッサ識別番号が割り当
てられている。
第3に、グローバル更新セマフォ(semaphore)が各
プロセッサのメモリ記憶領域14内に与えられている。セ
マフォGLUP-LOCKは、現時点でそのセマフォが割り当て
られており、グローバル更新を同時通報するプロセッサ
中にあるプロセッサを識別するのに使われる。グローバ
ル更新を同時通報しているプロセッサは、発信プロセッ
サと称される。セマフォGLUP-LOCKはロッカープロセッ
サ12LPにだけある制御セマフォである。ロッカープロセ
ッサ12LPのセマフォ領域がクリアされると、この状態は
GLUP-LOCKセマフォが現時点でどのプロセッサ12にも割
り当てられていず、いずれのプロセッサもロッカープロ
セッサ12LPのセマフォ領域を自由に捕えてグローバル更
新の手順を実施できることを意味する。他の各プロセッ
サ12内では、セマフォ領域の割り当てが解除されること
はなく、そこへ最後にグローバル更新メッセージを送っ
たプロセッサの識別子を常に含んでいる。この保持情報
は、本発明に従ってシステム10をプロセッサの故障から
回復させるために必要である。
第4に、各プロセッサの記憶領域14は、グローバル更
新の順序番号GLUP-SEQを含んでいる。現時点でいずれの
グローバル更新も同時通報されていず、システム10によ
って処理されていないと、全プロセッサ12が同じ順序番
号GLUP-SEQを有する。プロセッサ12はグローバル更新メ
ッセージを受信してその記憶領域14内にストアする度
に、グローバル更新の順序番号GLUP-SEQを1だけインク
レメントする。
第5に、各プロセッサ12の記憶装置14は、その特定プ
ロセッサ12によりアトミック動作として処理された最後
の更新を含んでいなければならない(つまり、完全なも
以外の部分的なグローバル更新メッセージが保持されて
はならない)。従って、各プロセッサ12の記憶領域14は
通常動作時、発信プロセッサ12SPから送られてきた最後
のグローバル更新メッセージのコピーを含む。
現時点で好ましいシステム10において、発信プロセッ
サ12SPは、システム内の全ての動作中プロセッサに有用
またはそれらによって必要とされている制御情報を有す
るプロセッサである。従って、多くの状況では発信プロ
セッサ12SPであるプロセッサによって、グローバル更新
メッセージが同時通報される。グローバル更新メッセー
ジの1つの状況は、システムの外部通信ネットワークの
トポロジーに変化が生じたため、各プロセッサがいかに
ネットワークメッセージを効率的に回すようにすればよ
いかを指示する。新たな代理プロセスが入/出力資源へ
の全アクセスを行なうようになったときも、グローバル
更新が送られる。つまりグローバル更新は、プロセッサ
の動作中または非動作、ネットワーク接続の不良等、シ
ステムイベントに関する情報をそのイベントが通知され
るべき各プロセッサへ送るのに使われる。またグローバ
ル更新は、電源故障、オペレータのエラー、日光節約時
刻と標準時刻間での時間変更等のため、変更が必要にな
った各プロセッサ内の日付クロックの時間を変えるのに
送られる。非動作プロセッサ12が再ロードされることを
システム10へ報知するのにもグローバル更新が送られ、
2つのプロセッサが同時に再ロードされないようにす
る。
システム10内での不良を含まないグローバル更新 第2図に概略を示したように、グローバル更新メッセ
ージパケット16は4つの要素を含む:更新発信プロセッ
サ12SPの識別番号;GLUP-LOCKセマフォを得る必要を信号
表示したり、またはロック更新を非ロック更新から区別
するロックビット;発信プロセッサ12SPから送られたグ
ローバル更新順序番号GLUP-SEQ;及びグローバル更新の
記述。この記述のフォーマットは、更新の種類に応じて
変化する。好ましい態様では、グローバル更新メッセー
ジパケット16が、他の全てのメッセージからプロセッサ
12によって区別可能である。
第2図はグローバル更新メッセージ同時通報の重要な
特徴も示している。本方法の現時点で好ましい実施例で
は、各プロセッサ12が他の各々のプロセッサが動作して
いるかどうかを理解する。この情報は、前記したような
“当方稼動中”というプロトコールに従い各プロセッサ
によって得られる。
本方法では、同じグローバル更新メッセージパケット
16が、所定のグローバル更新順序に基き発信プロセッサ
12SPによって各プロセッサ12へ順次送られる。各プロセ
ッサは非常に短い時間内で肯定(ACK)または否定(NAC
K)する。受信プロセッサが短時間内にグローバル更新
メッセージに応答しないと、応答しなかった受信プロセ
ッサが残りのプロセッサによって非動作と宣言される。
非応答メッセージは、それが受信プロセッサによって
応答されるかまたは受信プロセッサが非動作と宣言され
るまで、周期的に再送信される。“当方稼動中”のプロ
トコールが、非常に短い時間内に1つのイベントまたは
その他が生じることを保証する。本方法では、非応答受
信プロセッサが非動作という宣言が、否定応答(NACK)
の受信に等しいと見なされる。
グローバル更新の同時通報は、更新順序に基きグロー
バル更新メッセージを各プロセッサへシリアルに送るこ
とによって成される。1つのプロセッサへは一時に、1
つだけのグローバル更新メッセージが送られる。メッセ
ージの応答後、そのメッセージがグローバル更新順序中
の次のプロセッサへ送られる。このシリアルな通信順序
は、システム10内の各動作中プロセッサ12に送られグロ
ーバル更新メッセージに応答するまで続く。
発信プロセッサ12SPは、グローバル更新の第1メッセ
ージをロッカープロセッサ12LPに送る。この第1メッセ
ージはロックビットのセットを有する。ロッカープロセ
ッサ12LPは(肯定応答(ACK)を発信プロセッサ12SPへ
戻すことによって)グローバル更新の継続を可能とする
か、または(否定応答(NACK)を戻すことによって)衝
突が生じたことを発信プロセッサ12SPに知らせる。衝突
は同時通報を終了させ、発信プロセッサは後で再び更新
のロッカープロセッサ12LPへの発信を試みなければなら
ない。
GLUP-LOCKセマフォがすでに割り当てられているか、
送られた更新順序番号GLUP-SEQがロッカープロセッサ12
LP内の順序番号と一致しないか、あるいは受信プロセッ
サが自らをロッカープロセッサと見なさないと、衝突が
生じる。(上記最後の状況は、現時点のロッカープロセ
ッサが不良を生じ、グローバル更新順序中次にロッカー
となるプロセッサがまだ現時点のロッカープロセッサを
非動作と宣言していないときに生じ得る。) グローバル更新の継続が許容されたら、同じメッセー
ジがグローバル更新の順序で他の各プロセッサ2に送ら
れる。但し、他の各プロセッサに送られる各メッセージ
内に、ロックビットがセットされてない場合を除く。他
の各プロセッサ12に送信されたグローバル更新メッセー
ジに応答した後、メッセージはロッカープロセッサ12LP
に再送信され、この2回目のときロックビットはセット
されない。ロッカープロセッサ12LPは(ロックビットの
セットされてない)同じ更新の2回目の通信を、グロー
バル更新が発信プロセッサ12SPによって首尾よく完了し
たことの通知として認識する。
システムの制御情報が(前述したいずれかのイベント
の発生で)更新される必要があるとき、プロセッサの故
障がない場合にグローバル更新を実施する通常のステッ
プは次のように要約される: 1. 1つのプロセッサ12が、残りの動作中プロセッサ12
によって必要なシステム制御情報をそれが更新したこと
を認識する。次にそのプロセッサが、更新情報を含むグ
ローバル更新メッセージを構成し、グローバル更新順序
番号GLUP-SEQを更新メッセージに与えることによって発
信プロセッサ12SPと成る。
2. まず、発信プロセッサ12SPがグローバル更新メッセ
ージをロッカープロセッサ12LPに送る。グローバル更新
同時通報のこの第1メッセージはそのロックビットセッ
トを持つことにより、ロック第1更新メッセージとして
示される。
3. このメッセージを受信したロッカープロセッサは: a. セマフォGLUP-LOCKがすでに他のプロセッサ12に割
り当てられているかどうかチェックして判断する。セマ
フォが他のプロセッサによってすでに所有されている
と、発振プロセッサ12SPからのメッセージがロッカープ
ロセッサによって否定応答(NACK)され、発信プロセッ
サは同時通報を一旦終了し後で再トライする。(一般
に、発信プロセッサ12SPは短時間遅延を取ってから、更
新を再度試みる。) b. 更新メッセージ中のグローバル更新順序番号GLUP-S
EQを自らの記憶領域16内に記憶されている現時点のGLUP
-SEQ番号と比較する。順序番号が等しくないと、メッセ
ージはロッカープロセッサ12LPによって否定応答され、
グローバル更新の同時通報を終了させる。
c. 更新がロック更新であることを確かめる。任意の所
定時点でシステム10において作用可能なロッカープロセ
ッサは1つだけであり、他の全プロセッサは現時点のロ
ッカープロセッサ12LPを識別していると考えられるか
ら、ロッカープロセッサ12LPはロックビットがセットさ
れてない第1のグローバル更新メッセージには否定応答
する。グローバル更新でないその他のプロセッサ間メッ
セージは、システム内の該当プロセッサによって独立に
受信処理可能である。かかるその他のメッセージが、制
御情報を含んでいたりそれに影響を及ぼすこともある。
4. ロッカープロセッサ12LPは、グローバル更新が処理
できると判断すると、 a. セマフォGLUP-LOCKを発信プロセッサ12SPに割り当
てる; b. 発信プロセッサの識別子を、セマフォGLUP-LOCKの
値としてそのセマフォ領域内に書込む; c. 次の有効なグローバル更新メッセージを受信するこ
とを見越し、自らの記憶領域内のグローバル更新順序番
号GLUP-SEQを1だけインクレメントする; d. グローバル更新をセーブし、発信プロセッサ12SPに
対しメッセージの肯定応答(ACK)をする。
5. 発信プロセッサ12SPが一時に1つづつ、グローバル
更新の連続順序で非ロック更新メッセージを他の各プロ
セッサに送る。これに対し各受信プロセッサは: a. 更新メッセージ内のグローバル更新順序番号GLUP-S
EQを、各自の記憶領域16に記憶されている現時点のGLUP
-SEQ番号と比較する。順序番号が等しくないと、現時点
の更新が重複のメッセージであると見なし、メッセージ
は受信プロセッサによって否定応答(NACK)される。現
時点のロッカープロセッサでない受信プロセッサからの
否定応答(NACK)は、グローバル更新メッセージの同時
通報を終了させない。
b. 更新が非ロック更新であることを確かめる。前述し
たように、ロック更新はプロセッサが不良を生じた場合
にのみ受信される。ロッカープロセッサ12LP以外の受信
プロセッサで受信されたロックグローバル更新は、受信
プロセッサによって否定応答(NACK)される。
c. 更新が受信プロセッサによって否定応答されなけれ
ば、プロセッサは上記第4項に記したステップに従い、
制御テーブル内の制御情報を更新する。
6. 最後に、発信プロセッサ12SPが非ロック更新メッセ
ージをロッカープロセッサ12LPに送り、これが更新終了
メッセージとして認識される。ロッカープロセッサ12LP
がセマフォGLUP-LOCKの割当を解除し、グローバル更新
メッセージの第2コピーの受信に肯定応答する。このス
テップが好首尾のグローバル更新シーケンスを完了し、
その他のプロセッサが更新メッセージの発信をシークし
てグローバル更新セマフォGLUP-LOCKを捕らえるのを可
能とする。
6台のプロセッサシステム10を更新するメッセージの
流れを第3図に示す。第1メッセージは、ロッカープロ
セッサ12LPに送られるロック更新である。このメッセー
ジが否定応答されると、更新は終了し再トライされねば
ならない。否定応答されないと、第2〜6メッセージが
送られ、他のプロセッサを更新する。尚、発信プロセッ
サ12SP自体は、更新連続順序の中で更新する。最後に、
第7メッセージがロッカープロセッサ12LPに送られ、更
新の終了を信号通知する。
グローバル更新順序番号GLUP-SEQ グローバル更新順序番号GLUP-SEQには、数多くの用途
がある。まず、グローバル更新がシステム制御情報の現
在値の関数であるとき、グローバルセマフォを得る必要
がなくなる。またコピー動作中、更新を妨げずに制御情
報の一致コピーを行なうプロセスを可能とする。さら
に、不良の回復時、重複更新が2回以上処理されるのを
防ぐ。
グローバル更新を行なうとする任意のプロセッサ12
は、次のような動作を成す:現時点でのそのメモリ領域
16内におけるグローバル更新順序番号GLUP-SEQをコピー
する。場合により、その記憶領域16内にある制御情報の
現状態の関数として、更新を構成する。コピーしたグロ
ーバル更新順次番号GLUP-SEQを使って、グローバル更新
を行なう。第1更新メッセージ中の順序番号GLUP-SEQが
ロッカープロセッサ12LP内の順序番号GLUP-SEQに等しく
ないと、発信プロセッサは初めに更新の構成中に更新順
序番号をコピーしたので、制御情報がインターバル中に
変更される。制御情報の干渉変化は提示された更新を無
効とするので、ロッカープロセッサ12LPはそれに否定応
答(NACK)することによって更新を拒否する。発信プロ
セッサ12SPは更新順序番号GLUP-SEQのコピーを再び得、
更新メッセージを再構成して、新たなメッセージをロッ
カープロセッサ12LPに送る。発信プロセッサ12SPは、好
首尾が得られるまで上記のプロセスを繰り返す。
本方法は、発信プロセッサ12SPがその制御情報を調べ
てグローバル更新の必要を判断する前に、GLUP-LOCKセ
マフォを捕える必要を取り除く。発信プロセッサがグロ
ーバル更新メッセージを構成し始め、そのグローバル更
新順序番号GLUP-SEQをコピーした後、他の一部のプロセ
ッサによる何らかのグローバル更新が生じると、ロッカ
ープロセッサ12LP内のGLUP-SEQがインクレメントされて
いるので、発信プロセッサのその後のグローバル更新は
ロッカープロセッサ12LPによって否定応答される。この
状況は、システムの制御情報が変化したこと、及び発信
プロセッサが現時点の制御情報に基きその提示するグロ
ーバル更新メッセージを再構成しなければならないこと
を発信プロセッサに指示する。
調査/コピー動作時に、グローバル更新を妨げずに制
御情報の一致コピーを調べたりまたはそれを取るプロセ
スでも、同様の動作が使える。まず、コピー/調査動作
を行なうプロセスがプロセッサのGLUP-SEQをその記憶領
域にコピーする。次に、調査/コピー動作を行なう。最
後に、コピーしたGLUP-SEQを現時点のGLUP-SEQを現時点
のGLUP-SEQと比較する。これら2つのグローバル更新順
序番号が等しければ、調査/コピー動作の実行中に更新
が生じなかったことであり、動作全体が有効である。両
順序番号が等しくないと、調査/コピー動作は無効でや
り直されねばならない。
グローバル更新の順序番号は、重複の更新を検出して
放棄するのにも使われる。“システムクロックをnμs
進める”等の一部の更新は、各プロセッサに正しく1回
与えられねばならない。各種の不良は、動作中の各プロ
セッサが最新の情報を受信したか確かめるため、最新の
情報を再送信させることがある。更新をすでに受信して
いたプロセッサは、グローバル更新順序番号の不一致を
検出し、重複の更新メッセージを無視(NACK)する。
発信プロセッサ12SPの不良からの回復 ロッカープロセッサ12LPはプロセッサの不良を検出す
ると、セマフォGLU-LOCKの値をチェックする。このセマ
フォが現時点で割り当てられていなければ、グローバル
更新の同時通報は進行せず、回復は必要ない。
ロッカープロセッサ12LPで読取られたセマフォ値GLUP
-LOCKが不良プロセッサに割り当てられていると、次の
4ステップの手順が実施される。
第1に、ロッカープロセッサ12LPは自らの記憶領域16
内の更新域にセーブされていたメッセージから更新メッ
セージを再構成し、そのGLUP-SEQに対応したグローバル
更新順序番号マイナス1を与える(これは更新が受信さ
れたときに有効な実際の順序番号に対応する)。
第2に、ロッカープロセッサ12LPはグローバル更新を
同時通報し、グローバル更新メッセージを全プロセッサ
に再送する。第1ロックメッセージは、ロッカープロセ
ッサ12LPによってすでに処理済のため、再送されない。
第3に、発信プロセッサ12SPが不良になる前にグロー
バル更新メッセージを受信して処理したプロセッサ12
は、順序番号が一致しないのでグローバル更新を拒絶す
る(NACK)。残りのプロセッサ12は更新を受け入れて処
理する。
最後に、ロッカープロセッサ12LPが自らに更新を送
り、そのメッセージが更新終了として認識される。ロッ
カープロセッサ12LPがセマフォGLUP-LOCKの割り当を除
去し、次のグローバル更新を実施しようとする他のプロ
セッサがそのセマフォを自由に捕えられるようにする。
上記から。グローバル更新メッセージがロッカープロ
セッサ12LPによって一旦受信されれば、発信プロセッサ
12SPが不良になっても、システム全体を通じてその更新
メッセージの同時通報を完了させる。そして、以下述べ
るようにロッカープロセッサ12LPと発信プロセッサ12SP
が共に不良とならなければ、そのメッセージが動作中の
各プロセッサ12に送られる。
第4a図は、ロッカープロセッサ12LP(プロセッサ12
b)と別のプロセッサ12cを更新した後、発信プロセッサ
12SP(12d)が不良になった場合を示す。第4b図では、
ロッカープロセッサ12LPが動作中の全プロセッサ12c、1
2e、12f及び12aに更新を再送している(こゝでプロセッ
サ12dは、それが送っていたグローバル更新の同時通報
中に不良となり非動作である)。また更新は、すでにそ
れを受信しているプロセッサ12cでは放棄(NACK)され
る。ロッカープロセッサ12bは、2回目の更新受信後セ
マフォGLUP-LOCKを解除する。
ロッカープロセッサ12LPの不良 ロッカープロセッサ12LPが不良になると、残りの動作
中の全プロセッサが(前述した“当方稼動中”により)
それぞれ異なった時点で不良を検出する。残りの動作中
プロセッサは、所定の連続順序に基く次のロッカープロ
セッサ12SLPの識別子に自ずから同意する。
次のロッカープロセッサ12SLPがその前任12LPの不良
を検出すると、後任12SLPがその役割を引き継ぐ。後任1
2SLPは不良の前任12LPの状態を調べられないので、最後
の更新が完了したかどうかを告げられない。最後の更新
が完了されたかを確かめる最も簡単な方法は、次のステ
ップでもう一度その更新を送ることである: まず、後続ロッカープロセッサ12SLPにおいて、セマ
フォ値GLUP-LOCKがセットされ、後続ロッカープロセッ
サ12SLP内で処理された最後のグローバル更新を送った
発信プロセッサ12SPを識別する。セマフォ領域がセット
されその識別子を保持することで、不良の回復が完了す
るまで新たな更新は受信されない。
次に、後続ロッカープロセッサ12SLPは、更新メッセ
ージのコピーと現時点での更新順序番号GLUP-SEQマイナ
ス1を使い、それが受信した最後の更新を再構成する。
次に、後続ロッカープロセッサ12SLPは動作中のプロ
セッサ12へグローバル更新を同時通報する。各プロセッ
サがそれぞれの更新メッセージのグローバル更新順序番
号をチェックするので、重複のメッセージは除かれる
(NACK)。最後の更新を受信しなかったプロセッサはそ
れを受信して処理し、他のプロセッサはそれを拒絶す
る。
最後に、同時通報の最終目が新しいロッカープロセッ
サ12SLPへ自らによって再送されると、そのロッカープ
ロセッサがセマフォGLUP-LOCKの割り当てを解除する。
次いで、後続ロッカープロセッサ12SLPが新たなグロー
バル更新を受信して処理する。
後続ロッカープロセッサ12SLPは常に連続順序中の先
行ロッカープロセッサ12LPに続く次のプロセッサなの
で、新しいロッカープロセッサ12SLPで受信されなかっ
た更新を、先行ロッカープロセッサ以外のプロセッサが
受信することはない。
ロッカープロセッサ12LPが不良のときグローバル更新
が進行すると、後続ロッカープロセッサ12SLPによる更
新の同時通報が原発信プロセッサ12SPによる同時通報に
追いつくことがある。つまり、発信プロセッサ12SPは重
複の更新メッセージのため、否定応答(NACK)を受信す
る。但し前述のごとく、これらの否定応答は発信プロセ
ッサ12SPによって無視され、発信プロセッサは全プロセ
ッサに送られるまでそのグローバル更新の同時通報を継
続する。
一方、原ロッカープロセッサ12LPが不良になり非動作
状態にあることを後続ロッカープロセッサ12SLPが発見
するまで、他のプロセッサが後続ロッカープロセッサ12
SLPへロック更新を送ることもある。いずれのプロセッ
サ12も自らをロッカープロセッサと見なさなければロッ
ク更新に否定応答するので、上記の更新は直ちに終了さ
れる。後続ロッカープロセッサ12SLPが原ロッカー12LP
の不良を発見し、自らの役割を引き受け、それが受信処
理した最後の更新を再送して新たなグローバル更新の進
行を可能にするまで、発信プロセッサ12SPはその更新を
再トライし続ける。
第5a図は、プロセッサ12b、12c、12d及び12eがプロセ
ッサ12dからの更新を受信した後、原ロッカープロセッ
サ12LP(プロセッサ12b)が不良になった場合を示す。
第5b図では、後続ロッカープロセッサ12SLP(プロセッ
サ12c)が動作中の全プロセッサ(プロセッサ12d、12
c、12f及び12a)に最後の更新を再送している。プロセ
ッサ12c、12d及び12eは、原ロッカープロセッサ12LP
(プロセッサ12b)の不良前に受信したものと重複する
ので、その更新を拒絶(NACK)する。プロセッサ12fと1
2aは、後続ロッカープロセッサ12SLP(12c)または発信
プロセッサ12dから受信した第1メッセージを受け取
る。つまりこれらのプロセッサは、後で受信した重複メ
ッセージを無視する。後続ロッカープロセッサ12cが第
5メッセージを自らに送ると、それがセマフォGLUP-LOC
Kを解除クリアする。
他のプロセッサ12の不良 発信プロセッサ12SPまたはロッカープロセッサ12LP以
外のプロセッサ12が不良になっても、グローバル更新は
正常に進行する。本発明のグローバル更新メッセージ方
法は不良プロセッサへ更新を送るのを継続あるいは停止
するが、いずれの場合にもグローバル更新連続順序中に
おけるそれ自身も含め、動作中の他の全プロセッサに更
新を送り続ける。
2重のプロセッサ不良 複数のプロセッサ不良の最も複雑なケースは、(a)
発信プロセッサ12SPと現ロッカープロセッサ12LPのほゞ
同時の不良、及び(b)現ロッカープロセッサ12LPと順
序中次のロッカープロセッサ12SLPとなるプロセッサ12
のほゞ同時の不良である。他の不良発生ケースはこれら
両ケースを単純化したものなので、説明しない。
発信プロセッサ12SPと現ロッカープロセッサ12SPの同
時不良は、次の4つの態様を取り得る: 第1に、発信プロセッサ12SPが、現ロッカープロセッ
サ12LPを首尾よく更新する前に不良となる。この更新
は、動作中のどのプロセッサもそれを受信していずその
まま消えてしまうので継続しない。
第2に、発信プロセッサ12SPが、現ロッカープロセッ
サ12LPと連続順序中で現ロッカープロセッサに続くプロ
セッサの両方を更新した後不良になる。現ロッカープロ
セッサ12LPが不良になったときに、新しいロッカープロ
セッサ12SLPが他の動作中の全プロセッサ12に更新を再
送する。
第3に、発信プロセッサ12SPが、現ロッカープロセッ
サ12LPの更新後だが、連続順序中の次のプロセッサを更
新する前に不良になる。次いで、現ロッカープロセッサ
12LPが、発振プロセッサ12LPの不良から回復する前で且
つ連続順序中の次のプロセッサを更新する前に不良にな
る。動作中のどのプロセッサもグローバル更新メッセー
ジを受信していないので、更新は継続しない。
第4に、発信プロセッサ12SPが、現ロッカープロセッ
サの更新後だが、連続順序中の次のプロセッサを更新す
る前に不良になる。次いで、現ロッカープロセッサ12LP
が、発信プロセッサ12SPの不良からの回復後で連続順序
中の次のプロセッサを更新した後に不良になる。次のプ
ロセッサが後続ロッカープロセッサ12SLPとなっている
ので更新は継続し、前述のごとく残りの動作中プロセッ
サ更新を再送する。
現ロッカープロセッサ12LPと継続ロッカープロセッサ
12SLPの同時不良は、更新が常に連続順序に従って送ら
れるので簡単に取り扱え、プロセッサ12が先験的な連続
順序に従って後続プロセッサ12SLPとなる。つまり、順
序中で後続ロッカープロセッサ12SLPに続く次のプロセ
ッサ12が、第2の後続ロッカープロセッサ12SSLPとな
る。発信プロセッサ12SP(または発信プロセッサ12SPの
不良に続く先行ロッカープロセッサの1つ)が第2後続
ロッカープロセッサ12SSLPを、それがロッカーとして新
たな役割を引き継ぐ前に更新すると、その更新がシステ
ム10全体を通じて実施される。そうでないと、いずれの
プロセッサ12も更新されない。
多数プロセッサの不良 3つ以上のプロセッサ12の不良は、上記したいずれか
のケースに容易に分けられる。重要なルールは次の通り
である:第1に、発信プロセッサ12SPが不良にならなけ
れば、それがロック(つまり第1)更新メッセージでセ
マフォGLUP-LOCKを得ているなら更新が成り立つ。第2
に、発信プロセッサ12SPが不良になったときは、ロッカ
ープロセッサ(またはその後続)で不良を生じていない
プロセッサに送られるなら更新が成り立つ;さもない
と、更新は非動作のプロセッサにのみ限定され、システ
ム10の残り全体に影響を及ぼさない。
非動作プロセッサの再ロードと同期化 非動作プロセッサが(例えば修理後)稼動システムに
復帰され、動作プロセッサとなるため再ロードされると
きは、制御情報が現時点における動作中プロセッサの資
源テーブルから被再ロードプロセッサの資源テーブルに
コピーされねばならない。
参照付けしてこゝに含めた先行米国特許No.4,228,496
に示されたシステムでは、非動作プロセッサが次のよう
に再ロードされる: 第1に、プロセッサ12がリセットされ、プロセッサ間
バスを通過するメモリイメージを受信する状態に置かれ
る。
第2に、RELOADプロセスがファイルイメージのメモリ
コピーを非動作プロセッサに送ったいずれかの動作中プ
ロセッサ12で実行される;またこのプロセッサ12は他の
各プロセッサにもメッセージを送り、次に生ずる非動作
プロセッサを予測する。
第3に、RELOADプロセスが実行を開始しているプロセ
ッサ12に通知を行なう;このメッセージシステムはある
メッセージを送って、別のメッセージ特にグローバル更
新メッセージを受信するように作動される。他の各動作
中プロセッサ12は、非動作プロセッサ12が現在動作状態
にあることを認識し、“当方稼動中”及びその他のメッ
セージパケットを後者のプロセッサと交換し始める。
第4に、RELOADプロセスが追加の制御情報メッセージ
を送り、被再ロードプロセッサをシステムに同期化させ
る。プロセッサ12は完全に同期化されると、プロセスの
実行及び有用なタスクと作業の実施をスタートする。
再ロード動作は慎重に順序付けされ、プロセッサ12が
全制御情報の一致コピーを有することを確認し、同期化
段階でいずれのグローバル更新も失われないようにしな
ければならない。オペレーティングシステムの好ましい
再ロードストラテジーでは、再ロードするプロセッサ12
から再ロードされるプロセッサ12への制御情報のコピー
が再トライ可能な動作であり、制御情報のコピー動作は
グローバル更新メッセージ間の時間より短い時間を必要
とすると仮定してある。
リロードするプロセッサでは、RELOADプロセスで下記
の動作が実施される。
1. 現時点のグローバル更新順序番号GLUP-SEQのコピー
を得る。
2. 制御情報メッセージを再ロードされるプロセッサ12
に送る。これらのメッセージはグローバル更新メッセー
ジでなく、こゝに記したグローバル更新メッセージの方
法に従わない。
3. コピーした順序番号GLUP-SEQと“制御情報を有効化
させる”更新動作コードを含んだグローバル更新を、再
ロードされるプロセッサ12を含む動作中の全プロセッサ
12に同時通報する。
4. 順序番号の失効、交換あるいは更新の衝突によっ
て、グローバル更新が不首尾に終ったら、RELOADプロセ
スが下記の第1ステップに戻る。
再ロードされるプロセッサ12は下記の動作を実施す
る: 第1に、正常なグローバル更新メッセージが受信され
ると、核がローカルフラグ“制御情報有効”を点検す
る。プロセッサ12が再ロードされるとき、このフラグは
セットされない;尚セットされていなければプロセッサ
がグローバル更新を放棄する。
第2に、制御情報メッセージパケットがRELOADプロセ
スから受信されると、プロセッサが適切なテーブル内ら
に制御情報をストアする。再ロードされるプロセッサ12
は、重複の制御情報を受信し、最後のものを除きそのよ
うな全重複メッセージの影響をキャンセルする用意がな
されていなけばならない。
第3に、“制御情報を有効化させる”更新が受信され
ると、プロセス12が“制御情報有効”フラグをセット
し、全ての後続グローバル更新を通常の方法で処理す
る。被再ロードプロセッサ12が現時点の制御情報を受信
したかどうか(グローバル更新メッセージを使って)判
断するのは、RELOAD処理の責任である。
制御可能のコピー動作は、グローバル更新順序番号が
利用できそれを使うことによって保護される。“制御情
報を有効化させる”というテキストを持ったグローバル
更新メッセージが首尾よく同時通報されれば、被再ロー
ドプロセッサ12における制御情報コピーの開始とグロー
バル更新の受信との間でグローバル更新は生じなかった
ことになる。“制御情報有効”フラグがセットされる
と、全プロセッサ12内の制御情報は同一で、本発明のグ
ローバル更新方法による合意によって保持される。
制御情報の量が多すぎるときは、それを部分に割ける
必要がある。各部分は独自の“制御情報有効”フラグと
独自の“制御情報を有効にする”グローバル更新動作を
必要とする。
再ロードされようとするプロセッサ12は、制御情報が
再ロードするプロセッサ12から有効にコピーされる前
に、制御情報を参照してはならない。被再ロードプロセ
ッサ12内の全ての制御情報が有効になるまで、プロセッ
サはプロセスの開始を不能とし、これによって制御情報
にアクセスまたはそれを更新する全動作を有効に省く。
再ロード動作中にいずれかのプロセッサ12が不良にな
ると、被再ロードプロセッサ12が他のプロセッサと一致
しているかどうか確かめるのが、非常に複雑なタスクと
なる。再ロードされようとするプロセッサ12は有用な作
業を成す段階に達していないので、“制御情報有効”フ
ラグがセットされるまで及びセットされなければ単に自
ら非動作状態となる。
ソフトウェアの実行例 パスカルプログラミング言語による以下のプログラム
の一部は、本発明のグローバル更新方法の一実行例を示
している(−−)が先頭に付いたテキストは、パスカル
コードで表わしてないコードの説明を示す。カッコ内の
テキストはパスカルコードを説明するコメントである。
グローバルな型 型 Acknack=(Ack、Nack1、Nack2、Failed);{発信
更新からの応答} Cpunum=0……15;{プロセッサの数範囲} Semaphore=(Cpunum、nul);{プロセッサによっ
て保持可能なセマフォ} プロセッサの状態変数 各プロセッサ12内では、オペレーションシステムの核
がグローバル更新の方法及びプロセスの状態を記述する
次の変数を維持している: 変数 Mycpu:Cpu番号;{プロセッサを識別} Lockercpu:Cpu番号; Cpuisup:ブールのアレイ〔Cpu番号〕;{Cpuが動
作中なら真} GLUPLock:セマフォ;{GLUPセマフォ} GLUPSeq:整数;{GLUP順序番号} GLUPUpdate:整数のアレイ〔0……?〕;{更新
記述} 変数Mycpuは、プロセッサ12a〜12pを一意的に自らと
識別する一組のスイッチにアクセスすることでセットさ
れる。第1プロセッサ12がロードされるとき、変数Lock
ercpuがプロセッサの番号にセットされる。Cpuisupアレ
イは、最初にロードされるプロセッサに対応した入力を
除き、全て偽にセットされる。GLUPLockは空白にセット
され、GLUPSeqはゼロにセットされる。後続のプロセッ
サ12がロードされるときは、再ロードを行なうプロセッ
サが自らのLockercpu及びCpuisupの両値を再ロードされ
るプロセッサにコピーする。GLUPLockは空白にセットさ
れたままである。GLUPSeqは、再ロードを行なうプロセ
ッサ12から受信された第1更新の順序番号にセットされ
る。
メッセージシステムの基本機能 本発明のグローバル更新メッセージ方法で使われるメ
ッセージシステムの機能は、次の2つの機能手順に従っ
て記述される: 発信更新機能(Tocpu、Seq、Lockbit、Update):Ackn
ack; ‐‐この機能は更新順序番号、ロック更新でビ ‐‐ット及び更新記述アレイをパッケージし、 ‐‐それを“Tocpu"で記述されたプロセッサ ‐‐12に送る。宛先cpuでメッセージシステ ‐‐ムが呼び出される: 発信更新機能(Fromcpu、Seq、Lockbit、Update):Ac
knack; ‐‐この機能は“Fromcpu"から送られてきた ‐‐パラメータを調べて処理し、次の3つの値 ‐‐のうち1つを有するack/nackコードに戻 ‐‐る:Ack、Nack1またはNack2。このコ ‐‐ードが発信プロセッサ12SPに送られ、 ‐‐発信更新の発呼者に戻される。宛先プロセ ‐‐ッサ12が不良だと、発信更新の発呼者が ‐‐不良を示す戻り値を受信する。
‐‐プロセッサ12では一時に、1つだけの更 ‐‐新メッセージが受信処理可能である。
グローバル更新の同時通報 1つのプロセッサ12がグローバル更新を実施したいと
きは、次のコードを実行する: 手順 Doupdate: 変数 Seq:整数; Update:整数のアレイ〔0……?〕; Reply:Acknack; Retry:{更新失敗ならこゝに戻る} Seq:=GLUPSeq ‐‐プロセッサ内のテーブルを参照して、更新 ‐‐を記述する。この情報をアレイ更新内に置 ‐‐く。
{ロッカーcpuに始まって動作中の各cpuに更新メッセ
ージを送る。最後のメッセージをロッカーcpuに再び送
る。} for i:=0〜16 do begin Cpu:=(i+Lockercpu)mod16; if Cpuisup〔Cpu〕then{非動作プロセッサを無視} begin {第1発信だけがロック発信} Lockbit:=(i=0なら真、以外なら偽); {更新メッセージをcpuに送り、応答としてack/nack
を得る} Reply:=SendUpdate(Cpu、Seq、Lockbit、Updat
e); {ロックパケットで不良が生じたら再トライ} (Reply<>Ack))でLockbitならRetryへ;end end end; グローバル更新メッセージの処理 動作中の各プロセッサ12において、メッセージシステ
ムがグローバル更新メッセージを検索し、それを次のよ
うに処理して、Acknackコードで応答する。
受信更新(Receiveupdate)機能(Fromcpu、Seq、Loc
kbit、Update):Acknack;{更新が受信処理可能かどう
かテスト} if Mycpu=Lockercpu then{このプロセッサがロッカ
ー} begin if Lockbit then{ロック更新が受信} begin {GLUPセマフォが自由でないならNack} if GLUPLock<>nul then goto Replynackl:end else{ロック更新がロッカーCPU 12LPに送られず} begin if GLUPLock=Fromcpu and Seq= GLUPSeq-1 then begin{yes:セマフォを解除しexit
へ} GLUPLock:=nul;goto Replyack; else goto Replynack 2{恐らくロッカーが引き継
ぐ} end else{これはロッカープロセッサでない} if Lockbit then goto Replynack 1;{ロック更新が
誤ったプロセッサに送られた} {更新が見かけ上有効‐‐正しい順序?} if Seq<>GLUPSeq and Update=GLUPUpdate then goto Relyack{yes;最後の更新と同じ} else goto Relynackl;{no、重複でない} {更新が有効‐‐それを受信} GLUPSeq:=GLUPSeq+1;{プロセッサの更新順序をフン
クレメント} GLUPLock:=Fromcpu;{セマフォを割り当て} GLUPUpdate:=Update;{再トライのため更新記述をセー
ブ} ‐‐プロセス更新‐‐このコードはプロセッサ ‐‐のテーブルで更新される実際の情報に依存 ‐‐する Replyack:Receiveupdate:=ack;goto exit; Replynack 1:Receiveupdate:=nack;goto exit; Replynack 2:Receiveupdate:=nack 2; Exit: end;Receiveupdate プロセッサ不良からの回復 別のプロセッサが不良になったことを発見すると、そ
の各プロセッサ12で、下記の手順が呼び出される。必要
なら、新たなロッカープロセッサが選ばれ、最新の更新
が再送されて、それが全プロセッサで受信されたかどう
かを確かめる。
プロセッサ不良(Failedcup)手順; Cpuisup(Failedcpu):=偽; if Failedcpu=Lockercpu then{ロッカーcpu不良?} begin{yes:新たな不良ロッカーcpu選択?} rpeat Lockercpu:=(Lockercpu+1)mod 16 until Cpuisup(Lockercpu) {このプロセッサがロッカーになるなら、そのプロセ
ッサで受信された最後の更新を再送} if Lockercpu=Mycpu then call Receiveupdate; end; {最後の更新プロセッサが更新完了前に不良になった
ら、ロッカーが最後の更新を再送} if Lockercpu=Mycpu and GLUPLock=Failed cpu then
call Receiveupdate; end; グローバル更新の再送 ロッカープロセッサ12LPはグローバル更新を再送する
とき、次のコードを実行する; 最終更新再送(Resendlastdate)手順; 変数 Reply:Acknack; {ロッカープロセッサ以降の第1プロセッサから始ま
って動作中の各プロセッサに更新メッセージを送る。最
後のメッセージをロッカープロセッサに送る。} for i:=1 to 16 do begin Cpu:=(i=Lockercpu)mod 16; if Cpuisup〔Cpu〕then{非動作プロセッサを無視} begin {第1発信だけがロック発信} Lockbit:=false; {更新メッセージをcpuに送り、応答としてask/nack
コードを得る} Reply:= SendUpdate(Cpu、GLUOSeq−1、Lockbit、Glupdat
e); end end end; 以上本発明の実施例を説明したことで、発明の目的が
充分達成されたことが明らかであろう、また特許請求の
範囲に限定した本発明の精神及び範囲を逸脱しないなら
発明の多くの変形、広く異った実施例及び用途が可能な
ことは当業者にとって自明であろう。以上の開示と説明
は例示だけのもので、何らの意味においても制限を意図
するものでない。
【図面の簡単な説明】
第1図は本発明の原理に基く分散型データ処理システム
の複数プロセッサに対するグローバル更新順序のダイア
グラム; 第2図は本発明の原理に基くグローバル更新メッセージ
パケットとプロセッサ間通信環境のダイアグラム; 第3図は本発明の原理に基くグローバル更新を行う6プ
ロセッサの分散型マルチ処理システムのダイアグラム; 第4a、4b図は本発明の原理に基く、グローバル更新発信
プロセッサの不良発生時におけるシステムの不良許容を
示す;及び 第5a、5b図は本発明の原理に基く、グローバル更新ロッ
カープロセッサの不良発生時におけるシステムの不良許
容を示す。 10……分散型マルチ処理システム、12a〜12p……プロセ
ッサ、12LP……ロッカー(制御)プロセッサ、12SP……
発信プロセッサ、14……メモリ記憶装置、16……グロー
バル更新メッセージパケット。

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の分散され、相互に接続されたプロセ
    ッサ(12a〜12f)から成る分散型データ処理システム内
    の複数のプロセッサの故障に耐える該分散型データ処理
    システムにおける制御情報更新方法であって、各プロセ
    ッサが、他のそれぞれのプロセッサに対して、上記分散
    型データ処理システムの全プロセッサに有用または必要
    な1つのプロセッサによって発せられたプロセッサの状
    態と上記分散型データ処理システムの構成に関する更新
    された制御情報とを含むグローバル更新メッセージを、
    送/受信するためのメッセージ交信手段を備え、各々の
    プロセッサが他のそれぞれのプロセッサの現時点におけ
    る動作状態のモニターを可能にし、更に、上記分散型デ
    ータ処理システムの全プロセッサの制御情報を更新する
    グローバル更新メッセージを送/受信するのを可能にす
    る上記制御情報更新方法において: (a) 上記分散型データ処理システム全体の上記更新
    制御情報の通信を調整するプロセッサとしてのロッカー
    プロセッサの最初のロッカープロセッサ(12LP)を識別
    して上記プロセッサの全てを1つの順序で配列する段
    階; (b) 更新ロックセマフォとセットロックビットとを
    含むグローバル更新メッセージを発信プロセッサからロ
    ッカープロセッサへ先に送ることによって現時点での発
    信プロセッサ(12SP)を識別するように上記ロッカープ
    ロセッサのロックセマフォ領域内に上記更新ロックセマ
    フォをセットする段階; (c) 更新ロックセマフォを上記ロッカープロセッサ
    のロックセマフォ領域内にセットした後、発信プロセッ
    サから他の各プロセッサへ、それらのプロセッサが配列
    された順に、順次、上記グローバル更新メッセージを同
    時通報する段階; (d) 受信した最後のグローバル更新メッセージの発
    信プロセッサを識別する更新ロックセマフォを各プロセ
    ッサのロックセマフォ領域に記憶させる段階; (e) 上記発信プロセッサからクリアロックビット付
    きの完了メッセージを送信することによって指示される
    同時通報の完了時に、ロッカープロセッサ内の更新ロッ
    クセマフォ領域をクリアする段階; を含むことを特徴とする制御情報更新方法。
  2. 【請求項2】発信プロセッサがグローバル更新メッセー
    ジをロッカープロセッサに送った後で且つロッカープロ
    セッサの更新ロックセマフォ領域がクリアされる前に発
    信プロセッサが不良になった場合、該ロッカープロセッ
    サから、他のプロセッサへ上記グローバル更新メッセー
    ジを再び同時通報する段階を含む特許請求の範囲第1項
    記載の制御情報更新方法。
  3. 【請求項3】現時点のロッカープロセッサが不良になっ
    たことを次のプロセッサが知った場合、ロッカープロセ
    ッサの役割を上記順序で次のプロセッサへ自動的に移す
    段階を含む特許請求の範囲第1項記載の制御情報更新方
    法。
  4. 【請求項4】上記次のプロセッサが、ロッカープロセッ
    サ(12SLP)になったとき、他の全てのプロセッサへ最
    新のグローバル更新メッセージを再び同時通報する段階
    を有する特許請求の範囲第3項記載の制御情報更新方
    法。
  5. 【請求項5】同時通報の完了時に次のロッカープロセッ
    サのロックセマフォ領域をクリアする段階が、次のロッ
    カープロセッサへ自らグローバル更新メッセージを再送
    してそのロックセマフォ領域をクリアする段階から成る
    特許請求の範囲第3項記載の制御情報更新方法。
  6. 【請求項6】上記グローバル更新メッセージが、上記分
    散型データ処理システムの全プロセッサ間で反復的に交
    信され、各プロセッサが他の全プロセッサの現時点にお
    ける動作状態をモニターできる特許請求の範囲第1項記
    載の制御情報更新方法。
  7. 【請求項7】上記グローバル更新メッセージを同時通報
    する段階が、各プロセッサに、該グローバル更新メッセ
    ージの更新順序番号を与える段階を有する特許請求の範
    囲第1項記載の制御情報更新方法。
  8. 【請求項8】発信プロセッサから他の各プロセッサへグ
    ローバル更新メッセージを同時通報する段階がアトミッ
    ク動作として実施される特許請求の範囲第1項記載の制
    御情報更新方法。
  9. 【請求項9】ロッカープロセッサのロックセマフォ領域
    に更新ロックセマフォをセットする段階は、他のグロー
    バル更新メッセージの同時通報が進行中でないときのみ
    実施可能である特許請求の範囲第1項記載の制御情報更
    新方法。
  10. 【請求項10】グローバル更新メッセージをロッカープ
    ロセッサに送る段階であって更新ロックセマフォのセッ
    トのためにロックビットをセットすることを含む段階を
    有し、上記グローバル更新メッセージを他のプロセッサ
    に同時通報する段階が送信の前に上記ロックビットをク
    リアする段階を含む特許請求の範囲第9項記載の制御情
    報更新方法。
  11. 【請求項11】各プロセッサが、受信したグローバル更
    新メッセージの更新順序番号を、直前のグローバル更新
    メッセージに対応するプロセッサ内に既に記録された更
    新順序番号と比較する特許請求の範囲第7項記載の制御
    情報更新方法。
  12. 【請求項12】更新順序番号が、既に記録された更新順
    序番号と正しく対応しないとき、発信プロセッサに対し
    グローバル更新メッセージの否定応答を行なう段階を有
    する特許請求の範囲第11項記載の制御情報更新方法。
JP61131048A 1985-06-05 1986-06-05 マルチプロセツサ通信方法 Expired - Lifetime JP2541933B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/741,659 US4718002A (en) 1985-06-05 1985-06-05 Method for multiprocessor communications
US741659 1985-06-05

Publications (2)

Publication Number Publication Date
JPS6249467A JPS6249467A (ja) 1987-03-04
JP2541933B2 true JP2541933B2 (ja) 1996-10-09

Family

ID=24981639

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61131048A Expired - Lifetime JP2541933B2 (ja) 1985-06-05 1986-06-05 マルチプロセツサ通信方法

Country Status (9)

Country Link
US (1) US4718002A (ja)
EP (1) EP0204449B1 (ja)
JP (1) JP2541933B2 (ja)
AT (1) ATE77160T1 (ja)
AU (1) AU570362B2 (ja)
CA (1) CA1254303A (ja)
DE (1) DE3685609T2 (ja)
MX (1) MX164435B (ja)
NO (1) NO173474C (ja)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4710926A (en) * 1985-12-27 1987-12-01 American Telephone And Telegraph Company, At&T Bell Laboratories Fault recovery in a distributed processing system
DE3750311T2 (de) * 1986-05-30 1995-03-30 Bull Hn Information Syst Gerät und Verfahren zur Übertragung zwischen Prozessoren.
JPH0610802B2 (ja) * 1986-06-04 1994-02-09 株式会社日立製作所 分散処理システムの入力メッセージ整合化方法
US4897781A (en) * 1987-02-13 1990-01-30 International Business Machines Corporation System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment
US4853875A (en) * 1988-01-19 1989-08-01 Eastman Kodak Company Image-capable interprocessor link communications protocol
US4873631A (en) * 1988-04-25 1989-10-10 Ncr Corporation Point of sale automatic back-up system and method
US5142623A (en) * 1988-06-10 1992-08-25 Westinghouse Electric Corp. High performance memory imaging network for a real time process control system
JPH0213197A (ja) * 1988-06-30 1990-01-17 Fujitsu Ltd 蓄積プログラム制御システムにおけるオフィスデータの自動編集方式
EP0358785B1 (de) * 1988-09-12 1993-11-24 Siemens Aktiengesellschaft Einrichtung zum Betrieb eines redundanten Mehrrechnersystems für die Steuerung eines elektronischen Stellwerkes in der Eisenbahnsignaltechnik
US5222217A (en) * 1989-01-18 1993-06-22 International Business Machines Corporation System and method for implementing operating system message queues with recoverable shared virtual storage
JPH0314161A (ja) * 1989-06-13 1991-01-22 Toshiba Corp プロセッサ監視処理方式
US5212789A (en) * 1989-10-12 1993-05-18 Bell Communications Research, Inc. Method and apparatus for updating application databases used in a distributed transaction processing environment
JPH03127161A (ja) * 1989-10-13 1991-05-30 Hitachi Ltd 複数操作卓の協調方式
US5263150A (en) * 1990-04-20 1993-11-16 Chai I Fan Computer system employing asynchronous computer network through common memory
JP2760363B2 (ja) * 1990-11-14 1998-05-28 株式会社ピーエフユー 初期化処理装置
US5293491A (en) * 1990-12-28 1994-03-08 International Business Machines Corp. Data processing system and memory controller for lock semaphore operations
SE513182C2 (sv) * 1991-06-12 2000-07-24 Icl Systems Ab Förfarande och system för att revidera data i ett distribuerat datasystem
US5386512A (en) * 1991-07-19 1995-01-31 International Business Machines Corporation System for deriving and testing mutual capability set after receiving updated capability from other processors and before requesting service information
US5319775A (en) * 1991-07-22 1994-06-07 Ncr Corporation Centralized diagnostic system for loosely coupled processors
JP2532194B2 (ja) * 1992-03-30 1996-09-11 インターナショナル・ビジネス・マシーンズ・コーポレイション プロセッサと結合機能間に対するメッセ―ジ経路指定機能を有するデ―タ処理システム
US5317739A (en) * 1992-03-30 1994-05-31 International Business Machines Corp. Method and apparatus for coupling data processing systems
JPH0612288A (ja) * 1992-06-29 1994-01-21 Hitachi Ltd 情報処理システム及びその監視方法
US5398331A (en) * 1992-07-08 1995-03-14 International Business Machines Corporation Shared storage controller for dual copy shared data
GB2273182A (en) * 1992-12-04 1994-06-08 Ibm Currency period of replicated data objects.
GB2273183A (en) * 1992-12-04 1994-06-08 Ibm Replicated distributed databases.
JP3160149B2 (ja) 1994-05-13 2001-04-23 株式会社日立製作所 ディスク制御装置の無停止プログラム変更方法およびディスク制御装置
US5617561A (en) * 1994-12-22 1997-04-01 International Business Machines Corporation Message sequence number control in a virtual time system
US5630140A (en) * 1995-01-23 1997-05-13 Tandem Computers Incorporated Ordered and reliable signal delivery in a distributed multiprocessor
US5623670A (en) * 1995-02-17 1997-04-22 Lucent Technologies Inc. Method and apparatus for crash safe enforcement of mutually exclusive access to shared resources in a multitasking computer system
US5893115A (en) * 1995-11-29 1999-04-06 Lucent Technologies, Inc. Isochronal updating of data records
US6052712A (en) * 1996-04-30 2000-04-18 International Business Machines Corporation System for barrier synchronization wherein members dynamic voting controls the number of synchronization phases of protocols and progression to each subsequent phase
US5790772A (en) * 1996-04-30 1998-08-04 International Business Machines Corporation Communications method involving groups of processors of a distributed computing environment
US5696896A (en) * 1996-04-30 1997-12-09 International Business Machines Corporation Program product for group leader recovery in a distributed computing environment
US6026426A (en) * 1996-04-30 2000-02-15 International Business Machines Corporation Application programming interface unifying multiple mechanisms
US5699501A (en) * 1996-04-30 1997-12-16 International Business Machines Corporation System for group leader recovery in a distributed computing environment
US6016505A (en) * 1996-04-30 2000-01-18 International Business Machines Corporation Program product to effect barrier synchronization in a distributed computing environment
US5748958A (en) * 1996-04-30 1998-05-05 International Business Machines Corporation System for utilizing batch requests to present membership changes to process groups
US5764875A (en) * 1996-04-30 1998-06-09 International Business Machines Corporation Communications program product involving groups of processors of a distributed computing environment
US5793962A (en) * 1996-04-30 1998-08-11 International Business Machines Corporation System for managing membership of a group of processors in a distributed computing environment
US5768538A (en) * 1996-04-30 1998-06-16 International Business Machines Corporation Barrier synchronization method wherein members dynamic voting controls the number of synchronization phases of protocols and progression to each new phase
US5799146A (en) * 1996-04-30 1998-08-25 International Business Machines Corporation Communications system involving groups of processors of a distributed computing environment
US5787249A (en) * 1996-04-30 1998-07-28 International Business Machines Coporation Method for managing membership of a group of processors in a distributed computing environment
US5704032A (en) * 1996-04-30 1997-12-30 International Business Machines Corporation Method for group leader recovery in a distributed computing environment
US6104871A (en) * 1996-04-30 2000-08-15 International Business Machines Corporation Utilizing batch requests to present membership changes to process groups
US6216150B1 (en) 1996-04-30 2001-04-10 International Business Machines Corporation Program product for an application programming interface unifying multiple mechanisms
US5787250A (en) * 1996-04-30 1998-07-28 International Business Machines Corporation Program product for managing membership of a group of processors in a distributed computing environment
US5991518A (en) * 1997-01-28 1999-11-23 Tandem Computers Incorporated Method and apparatus for split-brain avoidance in a multi-processor system
US6298376B1 (en) * 1997-03-07 2001-10-02 General Electric Company Fault tolerant communication monitor for a master/slave system
JPH11327912A (ja) * 1998-05-12 1999-11-30 Mitsubishi Electric Corp ソフトウェア自動配布システム
US6122735A (en) * 1998-05-21 2000-09-19 Intel Corp. Fault resilient boot circuit using ring counter
US20070078978A1 (en) * 1998-06-01 2007-04-05 Sri International Method and apparatus for updating information in a low-bandwidth client/server object-oriented system
JP3950589B2 (ja) * 1998-08-28 2007-08-01 キヤノン株式会社 情報処理装置、プログラム更新方法および記憶媒体
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6487167B1 (en) * 1999-03-10 2002-11-26 Nortel Networks Limited Exclusion list of senders to an autonomous system
US6711409B1 (en) 1999-12-15 2004-03-23 Bbnt Solutions Llc Node belonging to multiple clusters in an ad hoc wireless network
US6456599B1 (en) 2000-02-07 2002-09-24 Verizon Corporate Services Group Inc. Distribution of potential neighbor information through an ad hoc network
US6775709B1 (en) 2000-02-15 2004-08-10 Brig Barnum Elliott Message routing coordination in communications systems
US7035223B1 (en) 2000-03-23 2006-04-25 Burchfiel Jerry D Method and apparatus for detecting unreliable or compromised router/switches in link state routing
US6977937B1 (en) 2000-04-10 2005-12-20 Bbnt Solutions Llc Radio network routing apparatus
US6987726B1 (en) 2000-05-22 2006-01-17 Bbnt Solutions Llc Management of duplicated node identifiers in communication networks
US6658591B1 (en) * 2000-06-08 2003-12-02 International Business Machines Corporation Recovery from data fetch errors in hypervisor code
US7302704B1 (en) 2000-06-16 2007-11-27 Bbn Technologies Corp Excising compromised routers from an ad-hoc network
US6493759B1 (en) 2000-07-24 2002-12-10 Bbnt Solutions Llc Cluster head resignation to improve routing in mobile communication systems
US7023818B1 (en) 2000-07-27 2006-04-04 Bbnt Solutions Llc Sending messages to radio-silent nodes in ad-hoc wireless networks
US6973053B1 (en) 2000-09-12 2005-12-06 Bbnt Solutions Llc Using direct cluster member to cluster member links to improve performance in mobile communication systems
US6973039B2 (en) * 2000-12-08 2005-12-06 Bbnt Solutions Llc Mechanism for performing energy-based routing in wireless networks
US7116640B2 (en) * 2000-12-22 2006-10-03 Mitchell Paul Tasman Architecture and mechanism for forwarding layer interfacing for networks
US7120456B1 (en) 2001-11-07 2006-10-10 Bbn Technologies Corp. Wireless terminals with multiple transceivers
AU2003223352A1 (en) * 2002-03-25 2003-10-13 Eternal Systems, Inc. Transparent consistent active replication of multithreaded application programs
US20080222234A1 (en) * 2002-05-23 2008-09-11 Benoit Marchand Deployment and Scaling of Virtual Environments
US20050216910A1 (en) * 2002-05-23 2005-09-29 Benoit Marchand Increasing fault-tolerance and minimizing network bandwidth requirements in software installation modules
US7305585B2 (en) * 2002-05-23 2007-12-04 Exludus Technologies Inc. Asynchronous and autonomous data replication
US20050060608A1 (en) * 2002-05-23 2005-03-17 Benoit Marchand Maximizing processor utilization and minimizing network bandwidth requirements in throughput compute clusters
US20040153558A1 (en) * 2002-10-31 2004-08-05 Mesut Gunduc System and method for providing java based high availability clustering framework
US7983239B1 (en) 2003-01-07 2011-07-19 Raytheon Bbn Technologies Corp. Systems and methods for constructing a virtual model of a multi-hop, multi-access network
WO2004111773A2 (en) * 2003-06-02 2004-12-23 Infocus Corporation Image display device and method of announcing a presence of an image display device over network
US20040246902A1 (en) * 2003-06-02 2004-12-09 Weinstein Joseph J. Systems and methods for synchronizing multple copies of a database using datablase digest
US7881229B2 (en) * 2003-08-08 2011-02-01 Raytheon Bbn Technologies Corp. Systems and methods for forming an adjacency graph for exchanging network routing data
US7606927B2 (en) 2003-08-27 2009-10-20 Bbn Technologies Corp Systems and methods for forwarding data units in a communications network
US7668083B1 (en) 2003-10-28 2010-02-23 Bbn Technologies Corp. Systems and methods for forwarding data in a communications network
US20080140970A1 (en) * 2006-10-05 2008-06-12 Holt John M Advanced synchronization and contention resolution
US20080120478A1 (en) * 2006-10-05 2008-05-22 Holt John M Advanced synchronization and contention resolution
US8139504B2 (en) * 2009-04-07 2012-03-20 Raytheon Bbn Technologies Corp. System, device, and method for unifying differently-routed networks using virtual topology representations
CN101872296B (zh) * 2010-06-18 2014-12-10 中兴通讯股份有限公司 实现大容量群发短信的装置及方法
US8645969B2 (en) 2011-08-19 2014-02-04 Qualcomm Incorporated Method for dynamic discovery of processors and processor capabilities
US9602634B2 (en) * 2012-02-15 2017-03-21 Avaya Inc. Global session identifier
FR3052890B1 (fr) * 2016-06-21 2018-07-13 Thales Sa Procede de reception garantie de signaux communs dans un systeme avionique comportant une pluralite de calculateurs electroniques

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4412281A (en) * 1980-07-11 1983-10-25 Raytheon Company Distributed signal processing system
JPS57164636A (en) * 1981-04-03 1982-10-09 Hitachi Ltd Control method for transmission system
JPS58114141A (ja) * 1981-12-28 1983-07-07 Kokusai Denshin Denwa Co Ltd <Kdd> マルチマイクロプロセツサにおける障害通知方式
US4562535A (en) * 1982-04-05 1985-12-31 Texas Instruments Incorporated Self-configuring digital processor system with global system
DE3376590D1 (en) * 1982-04-28 1988-06-16 Int Computers Ltd Data processing system
US4484273A (en) * 1982-09-03 1984-11-20 Sequoia Systems, Inc. Modular computer system
JPS59114663A (ja) * 1982-12-22 1984-07-02 Nec Corp デ−タ送信装置
US4634110A (en) * 1983-07-28 1987-01-06 Harris Corporation Fault detection and redundancy management system
US4644542A (en) * 1984-10-16 1987-02-17 International Business Machines Corporation Fault-tolerant atomic broadcast methods

Also Published As

Publication number Publication date
MX164435B (es) 1992-08-13
ATE77160T1 (de) 1992-06-15
DE3685609T2 (de) 1992-12-24
AU5809886A (en) 1986-12-11
NO173474B (no) 1993-09-06
AU570362B2 (en) 1988-03-10
NO862180D0 (no) 1986-06-02
US4718002A (en) 1988-01-05
EP0204449B1 (en) 1992-06-10
JPS6249467A (ja) 1987-03-04
EP0204449A3 (en) 1989-01-18
EP0204449A2 (en) 1986-12-10
NO862180L (no) 1986-12-08
DE3685609D1 (de) 1992-07-16
NO173474C (no) 1993-12-15
CA1254303A (en) 1989-05-16

Similar Documents

Publication Publication Date Title
JP2541933B2 (ja) マルチプロセツサ通信方法
US5884018A (en) Method and apparatus for distributed agreement on processor membership in a multi-processor system
US5805785A (en) Method for monitoring and recovery of subsystems in a distributed/clustered system
US6625639B1 (en) Apparatus and method for processing a task in a clustered computing environment
WO1998033121A9 (en) Method and apparatus for split-brain avoidance in a multi-process or system
US4933936A (en) Distributed computing system with dual independent communications paths between computers and employing split tokens
US5748882A (en) Apparatus and method for fault-tolerant computing
EP1000404B1 (en) Fault resilient/fault tolerant computing
EP0691610B1 (en) Progressive retry method and apparatus having reusable software modules for software failure recovery in multiprocess message-passing applications
US4628508A (en) Computer of processor control systems
Hiltunen et al. Adaptive distributed and fault-tolerant systems
EP1012718B1 (en) Method and apparatus for tolerance of lost timer ticks during recovery of a multi-processor system
US6665811B1 (en) Method and apparatus for checking communicative connectivity between processor units of a distributed system
Zhao et al. Low latency fault tolerance system
WO1998034456A9 (en) Method and apparatus for tolerance of lost timer ticks during recovery of a multi-processor system
Yap et al. Fault tolerant remote procedure call
Chang Simplifying distributed database systems design by using a broadcast network
Efthivoulidis et al. Fault-tolerant communication in embedded supercomputing
JPH04242436A (ja) 待機冗長型制御方法
Nett Reaching Consensus, A Basic Problem in Cooperative Applications “
Chen et al. Reliable processor coordination for distributed resource management in hypercubes
El-Ruby Election protocols in distributed computing systems and distributed databases and their performance evaluation
Fei et al. A Fault Tolerant Building Block for Real time Processing and Parallel Machines
JPH0281157A (ja) 分散処理方法