JP3879436B2 - 分散処理システム及び分散処理方法並びに分散処理制御プログラム - Google Patents

分散処理システム及び分散処理方法並びに分散処理制御プログラム Download PDF

Info

Publication number
JP3879436B2
JP3879436B2 JP2001145733A JP2001145733A JP3879436B2 JP 3879436 B2 JP3879436 B2 JP 3879436B2 JP 2001145733 A JP2001145733 A JP 2001145733A JP 2001145733 A JP2001145733 A JP 2001145733A JP 3879436 B2 JP3879436 B2 JP 3879436B2
Authority
JP
Japan
Prior art keywords
processor
data
output
processors
distributed processing
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
JP2001145733A
Other languages
English (en)
Other versions
JP2002342300A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2001145733A priority Critical patent/JP3879436B2/ja
Publication of JP2002342300A publication Critical patent/JP2002342300A/ja
Application granted granted Critical
Publication of JP3879436B2 publication Critical patent/JP3879436B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は分散処理システム及び分散処理方法並びに分散処理制御プログラムに関し、特にフォールトトレラント(fault−tolerant;故障許容)能力を有する分散処理システム及び分散処理方法並びに分散処理制御プログラムに関する。
【0002】
【従来の技術】
図14は従来の分散処理システムの一例の構成図である。図14において、プロセッサエレメントA;401aは、入出力部A;402aにより装置A;403aと接続されており、装置A;403aからの入力データA;405aは、プロセッサエレメントA;401aの中でタスクA;408aによって、出力データA;404aが算出されて装置A;403aに出力される。
【0003】
又、プロセッサエレメントB;401bでの処理動作、プロセッサエレメントC;401cでの処理は、夫々同様にタスクB;408b、タスクC;408cで実行され、装置B;403b、装置C;403cに出力される。さらに、ネットワーク406を経由して、タスクA;408a、タスクB;408b、タスクC;408cを実行する上で必要なデータ交換を実施する。
【0004】
このようなシステムでは、もともとフォールトトレラント能力は全くないが、それぞれのプロセッサエレメントに自己故障診断部A;409a〜C;409cを設けることで、故障したプロセッサエレメントエレメントをシステムから切り離すことができる。しかし、自己故障診断では全ての故障を100%検出して故障分離をすることはできない。さらに、故障したプロセッサエレメントを故障分離すると、それに接続されている装置まで分離されていまうので故障発生前に有していた機能が損なわれてしまう。それを防ぐためには、待機冗長のために予備のプロセッサエレメントを設置することが必要となるが、その分ハードウェアが増加してしまう。
【0005】
以上のように、従来の分散処理システムでは、故障発生に対するフォールトトレラント能力が十分でないという欠点があった。
【0006】
又、上記欠点を解決するために、図14におけるプロセッサエレメントA;401a、プロセッサエレメントB;401b、プロセッサエレメントC;401cをそれぞれ3重冗長化し、多数決によって確実なフォールトトレラント能力を持たせることも、従来の技術の延長上で容易に考えられる。しかし、その場合は、ハードウェア量が、3重冗長化のために少なくとも3倍増加してしまうので、ハードウェア量が大幅に大きくなってしまうという欠点があった。
【0007】
つまり、従来技術は、基本的に、分散処理技術、フォールトトレラント技術をそれぞれ独立した技術として扱っていたため、片方の技術の弱点をもう片方の技術を使って補おうとしても、効率の悪いものとなっていた。
【0008】
なお、分散処理技術とフォールトトレラント技術(冗長処理技術)を効率良く組みあわせて、システム全体として処理性能向上と信頼性向上をバランス良く実現するための技術については、極めて希少ながら、既存の発明もあるので、その発明の実施例の一例を以下に示す。
【0009】
上記の冗長資源を有効活用して処理能力向上と信頼性向上を実現するための発明として、特開平7−114520号公報(名称:冗長資源の管理方法及びそれを用いた分散型フォールトトレラントコンピュータシステム)(以下、先行技術文献1という)が開示されている。ここで、先行技術文献1記載の技術は、冗長系を構成するそれぞれのコンピュータモジュールにおいて、各タスクについてのフォールト発生情報を収集し、そのフォールト発生情報に基づいた評価関数を設定して各タスクの信頼度を推定し、自コンピュータモジュールでどのタスクの冗長構成に参加すべきかを決定し、参加すべきタスクの実行を行うものである。
【0010】
ここでの説明としては、本発明との相違点を明確にするため、本発明の一実施例である図1の構成と同じ機能動作に、先行技術文献1記載のシステムを適用した場合の動作例を以下に示す。つまり、コンピュータモジュールが制御対象としてデータの入出力を行う装置が3個あり、その各装置への制御を行うタスクがそれぞれの装置に対応して個別にあり、さらに、それぞれが3重冗長となっていて3重多数決によるフォールトトレランスを実行する場合の実施例について説明する。
【0011】
図15は、先行技術文献1記載のシステムの構成図である。同図は、その構成要素であるコンピュータモジュール1;501〜9;509に故障が発生した場合の動作例を示したものである。ここでは、本発明の一実施例である図1の場合との比較を行うことを目的として、相違点が明確になるように簡略化している。
【0012】
図15(A)において、コンピュータモジュール1;501〜9;509は、それぞれ本発明のプロセッサエレメントに相当するものであり、装置A;510〜C;512の制御等を行うため、データ入出力を行う。コンピュータモジュール1〜9はデータバス513により相互にデータ転送ができるものとする。又、装置Aを制御するためのタスクA;514は、コンピュータモジュール1;501〜3;503の3つのモジュールで3重冗長タスクとして動作し、3重多数決による故障検出/分離/再構成を実施し、その結果として装置Aへの出力データA;517をデータバス513経由で転送する。同様に、装置Bを制御するためのタスクB;515は、コンピュータモジュール4;504〜6;506の3つのモジュールで3重冗長タスクとして動作し、3重多数決による故障検出/分離/再構成を実施し、その結果として装置Bへの出力データB;518を転送する。同様に、装置Cを制御するためのタスクC;516は、コンピュータモジュール7;507〜9;509の3つのモジュールで3重冗長タスクとして動作し、3重多数決による故障検出/分離/再構成を実施し、その結果として装置Cへの出力データ519を転送する。
【0013】
ここで、タスクA;514の重要度&信頼性要求が高く、常に3重冗長が必要であるが、タスクB;515の重要度&信頼性要求がタスクA;514に比べて低いとした場合は、コンピュータモジュール2;502が故障すると、図15(B)に示すような動作に変化する。つまり、コンピュータモジュール2;502が故障したという情報が評価関数に反映され、それによって、タスクAの3重冗長を維持するために、コンピュータモジュール4;504はタスクB;515の実行を中止してタスクA;514の実行を始める。つまり、故障により使用可能なコンピュータモジュール資源が減少した場合に、タスクA;514等の重要度&信頼性要求が高いタスクに関して信頼性が低下しないように、各コンピュータモジュールで常に最も実行するに相応しいタスクを選択して実行するという効果があるものである。
【0014】
上記のように、先行技術文献1記載のシステムの場合は、目的のために最適なタスク実行を制御するための手段について記述しているが、故障検出/分離の手段については一般的な手段を用いることにしている。又、この種のシステムの他の例が特開平8−329025号公報(以下、先行技術文献2という)、特開平9−16535号公報(以下、先行技術文献3という)、特開平8−221285号公報(以下、先行技術文献4という)及び特開平8−95935号公報(以下、先行技術文献5という)に記載されている。
【0015】
【発明が解決しようとする課題】
しかし、上記先行技術文献1記載のシステムでは、3重多数決を実施して100%の故障検出/分離を行うためには、各タスクごとに3つのコンピュータモジュールが必要である。従って、制御対象となる装置が3種類ある場合は、図15に示すように、コンピュータモジュールが9個必要となる。一方、この課題を解決する手段は上記先行技術文献2〜5にも記載されていない。
【0016】
そこで本発明の目的は、コンピュータモジュール等のハ−ドウエア量を従来よりも低減することが可能な分散処理システム及び分散処理方法並びに分散処理制御プログラムを提供することにある。
【0017】
【課題を解決するための手段】
前記課題を解決するために本発明による第1の発明は、複数のプロセッサと、各々の前記プロセッサに対応して設けられる複数の装置と、前記プロセッサ及び装置間のデータ入出力を制御する入出力手段とが含まれ、前記複数の装置からのデータ入力及び前記複数の装置へのデータ出力を前記複数のプロセッサが分散して行う分散処理システムであって、そのシステムは前記分散処理を目的とする前記複数のプロセッサ及び前記複数の入出力手段に故障許容処理を併せて行わせる故障許容処理手段を含み、前記故障許容処理手段は、前記プロセッサの各々に設けられ、前記全ての装置からのデータ入力及び前記全ての装置に対するデータ出力を行うデータ共有手段と、自プロセッサで算出した所定装置宛の出力データと他プロセッサで算出した前記所定装置宛の出力データとを比較し、その比較結果を他プロセッサに通知する冗長管理手段と、前記入出力手段に設けられ、他プロセッサから通知された比較結果に基づき自プロセッサが故障か否かを判断する故障判定手段とを含み、前記故障判定手段により自プロセッサが故障と判断された場合、自プロセッサを故障分離させる故障分離手段をさらに含み、前記故障分離手段により自プロセッサが故障分離された場合、自プロセッサに対応する装置に対するデータ出力を他プロセッサから出力させるデータ転送手段を含み、前記冗長管理手段は、前記両プロセッサで算出した出力データが不一致の場合にその出力データを算出した他プロセッサに対し故障通知を送出し、一致の場合に正常通知を送出することを特徴とすることを特徴とする。
【0018】
又、本発明による第2の発明は、複数のプロセッサと、各々の前記プロセッサに対応して設けられる複数の装置と、前記プロセッサ及び装置間のデータ入出力を制御する入出力手段とが含まれ、前記複数の装置からのデータ入力及び前記複数の装置へのデータ出力を前記複数のプロセッサが分散して行う分散処理方法であって、その方法は前記分散処理を目的とする前記複数のプロセッサ及び前記複数の入出力手段に故障許容処理を併せて行わせる故障許容処理ステップを含み、前記故障許容処理ステップは、前記プロセッサの各々に設けられ、前記全ての装置からのデータ入力及び前記全ての装置に対するデータ出力を行うデータ共有ステップと、自プロセッサで算出した所定装置宛の出力データと他プロセッサで算出した前記所定装置宛の出力データとを比較し、その比較結果を他プロセッサに通知する冗長管理ステップと、前記入出力手段に設けられ、他プロセッサから通知された比較結果に基づき自プロセッサが故障か否かを判断する故障判定ステップとを含み、前記故障判定ステップにより自プロセッサが故障と判断された場合、自プロセッサを故障分離させる故障分離ステップをさらに含み、前記故障分離ステップにより自プロセッサが故障分離された場合、自プロセッサに対応する装置に対するデータ出力を他プロセッサから出力させるデータ転送ステップを含み、前記冗長管理ステップは、前記両プロセッサで算出した出力データが不一致の場合にその出力データを算出した他プロセッサに対し故障通知を送出し、一致の場合に正常通知を送出することを特徴とする分散処理方法ことを特徴とする。
【0019】
又、本発明による第3の発明は、複数のプロセッサと、各々の前記プロセッサに対応して設けられる複数の装置と、前記プロセッサ及び装置間のデータ入出力を制御する入出力手段とが含まれ、前記複数の装置からのデータ入力及び前記複数の装置へのデータ出力を前記複数のプロセッサが分散して行う分散処理制御プログラムであって、そのプログラムは前記分散処理を目的とする前記複数のプロセッサ及び前記複数の入出力手段に故障許容処理を併せて行わせる故障許容処理ステップを含み、前記故障許容処理ステップは、前記プロセッサの各々に設けられ、前記全ての装置からのデータ入力及び前記全ての装置に対するデータ出力を行うデータ共有ステップと、自プロセッサで算出した所定装置宛の出力データと他プロセッサで算出した前記所定装置宛の出力データとを比較し、その比較結果を他プロセッサに通知する冗長管理ステップと、前記入出力手段に設けられ、他プロセッサから通知された比較結果に基づき自プロセッサが故障か否かを判断する故障判定ステップとを含み、前記故障判定ステップにより自プロセッサが故障と判断された場合、自プロセッサを故障分離させる故障分離ステップをさらに含み、前記故障分離ステップにより自プロセッサが故障分離された場合、自プロセッサに対応する装置に対するデータ出力を他プロセッサから出力させるデータ転送ステップを含み、前記冗長管理ステップは、前記両プロセッサで算出した出力データが不一致の場合にその出力データを算出した他プロセッサに対し故障通知を送出し、一致の場合に正常通知を送出することを特徴とする。
【0020】
本発明による第1から第3の発明によれば、分散処理を行うマルチプロセッサシステムにおいて、分散処理を目的として複数存在するプロセッサ資源をフォールトトレラント処理のために有効活用して、故障が発生した時の故障検出及び分離を行う構成であるため、コンピュータモジュール等のハ−ドウエア量を従来よりも低減することが可能となる。
【0021】
【発明の実施の形態】
まず、本発明の概要について説明する。図9は本発明の概要を示すシステム構成図である。同図(A)において、制御対象となる装置が、装置A;604〜C;606の3つあり、それらの制御タスクを実施するプロセッサエレメント(図15のコンピュータモジュールに相当する)が、プロセッサエレメントA;601〜C;603の3つある。これらのプロセッサエレメントA;601〜C;603の夫々の中で、タスクA;608、タスクB;609、タスクC;610が実行され、全体で3重多数決による冗長処理を実施している。
【0022】
ここで、プロセッサエレメントB602が故障した場合は、同図(B)に示すように、正常時にはプロセッサエレメントB602上のタスクB609から装置B605に転送していた出力データB612が、プロセッサエレメントA601上のタスクB609から転送されるようにすることで、故障検出/分離を行うと同時に、残された正常なプロセッサエレメントで正常処理を継続する。
【0023】
つまり、同じ条件でプロセッサエレメント(図15ではコンピュータモジュール)の故障に対して100%の故障検出/分離を実施できるようにすると、先行技術文献1記載のシステム(図15)の場合は9個のコンピュータモジュールが必要となるのに対して、本発明(図9)の場合は、プロセッサエレメントが3個あれば実現できる。
【0024】
この際、本発明でも故障分離時に3重多数決を維持することも可能であり、その場合は予備のプロセッサエレメントを1個追加することが必要であるが、それでも先行技術文献1記載のシステムの場合と比べてプロセッサエレメント(冗長資源)の個数は半分以下(4/9)ですむ。
【0025】
なお、先行技術文献1における図20にコンピュータモジュールの数と実行可能なタスク数の関係を表した表が示されているが、その表においてコンピュータモジュールの数が3の時は、2重冗長のタスクが1個と冗長度の無いタスクが1個しか実行できないことが示されている。つまり、3個しか冗長資源が無いときは、本発明で実現可能な3種類の3重冗長タスクの実行が不可能であることが示されているという点で、本発明との相違点が明確である。
【0026】
これは、本発明の場合、図1の実施の形態で示すように、図1における冗長管理部3a〜3c、故障判定部10a〜10c、ネットワーク制御部12a〜12c、故障分離部9a〜9c及びデータ転送制御部11a〜11cによって、分散処理目的に3つあるプロセッサエレメントのみを使用して3重多数決による冗長処理で故障検出/分離を可能としているためである。
【0027】
上記のような、本発明の、先行技術文献1記載のシステムに対する相違点を整理すると、次のようになる。まず、先行技術文献1記載のシステムについて述べる。
【0028】
(1)3個の制御対象がある場合に、3重多数決による冗長管理を実施する上で必要なプロセッサエレメントの個数は9個である。
【0029】
(2)発明が解決しようとする課題(最も重大なもの)は、冗長化されたコンピュータモジュール(プロセッサエレメントに相当する)資源を利用して、分散処理と冗長処理を組み合わせて実施することで処理性能向上と信頼性向上とを同時に実現する場合に、コンピュータモジュールの故障発生によって、最も重要なタスクの信頼性が低下する可能性があったこと、つまり、故障発生時に、重要度の低いタスクから先に停止させて、重要度の高いタスクの信頼性を維持することが望まれるが、そのためには単純に冗長度を増すことしかできず、効率的な縮退の手段がなかったことである。
【0030】
(3)発明の最大の効果は、故障発生時に、重要度の低いタスクから先に停止させて機能/性能を縮退させることで、重要なタスクに関する信頼性や機能/性能を維持可能とし、限られた資源を最も重要な目的に振り分けることができるということである。つまり、冗長資源を使用して、処理性能向上と信頼性向上とを同時に実現する場合で、かつタスクに重要度の高いものと低いものとがある場合に大きな効果を発揮する。ただし、その際、コンピュータモジュール等の冗長資源が非常にたくさん存在しないと効果がない。又、ここでの分散処理とは、処理性能向上のための分散処理に限られる。
【0031】
次に、本発明について述べる。
【0032】
(1)3個の制御対象がある場合に、3重多数決による冗長管理を実施する上で必要なプロセッサエレメントの個数は3個で足りる。
【0033】
(2)発明が解決しようとする課題(最も重大なもの)は、分散処理を目的として存在するプロセッサエレメント資源について、それらの資源を冗長処理に利用して故障検出/分離することができなかったということである。そのため、冗長処理によって信頼性を高める場合は、単純に個々の分散された資源を個別に冗長化する必要があったために、信頼性向上のために増加するハ−ドウエアが膨大であった。
【0034】
(3)発明の最大の効果は、分散処理を目的として存在するプロセッサエレメント資源を、冗長処理にも同時に使用して故障検出/分離可能な実現することにより、最小の冗長資源数で分離処理と信頼性向上の同時実現を可能とするということである。なお、処理性能向上のための分離処理に適用するよりも、例えば、ロボットアームにおける間接間の協調制御のように、ミッション目的から物理的に分散する必要がある分離処理システムに適用する方がより高い威力を発揮する。
【0035】
即ち、冗長資源のハードウェア量が約1/3で実現できるという点で、本発明の方が先行技術文献1記載のシステムよりも優れている。
【0036】
なお、本発明と先行技術文献1記載のシステムとは、分散処理とフォールトトレランス処理を効率的に実現するというような広いカテゴリでは類似しているが、上記のように、発明が解決しようとする課題及び発明の効果という点では大きく異なる発明である。先行技術文献1記載のシステムは、非常にたくさんの冗長資源を使用して処理性能向上のための分散処理と信頼性向上のための冗長処理を行う場合に、故障発生状況に応じて効率的な縮退(重要度の低いタスクを先に停止して重要度の高いタスクへの影響を小さくする)を行うための手段を提供するものである。即ち、積極的に、重要でない機能を削減するものであるので、機能削減を許容するシステムでないと適用できない。
【0037】
これに対して本発明は、もともと分散処理を目的として存在している冗長資源をフォールトトレラントのために有効活用して、最小の冗長資源数で、分散処理と信頼性向上を同時に実現するための手段を提供するものであるため、発明の内容が大きく異なっており、先行技術文献1記載のシステムと重複する発明ではない。
【0038】
上記のように、本発明は分散処理を行うマルチプロセッサシステムにおいて、分散処理を目的として複数存在するプロセッサ資源を、フォールトトレラント処理のために有効活用して、必要最小限の冗長資源(従来技術の約1/3)で故障が発生した時の故障検出/分離を行い、しかも、分散処理対象となる装置の動作を中断することなく、故障発生前と同じ機能を継続して実行することが可能である。
【0039】
以下、本発明の実施の形態について添付図面を参照しながら説明する。本発明は、分散処理を行うマルチプロセッサシステムにおいて、分散処理対象となる各装置からの入力データを各プロセッサ間の共有情報として管理し、そのデータを使用して異なるプロセッサ間で多数決処理等の冗長管理を行うことで、システム全体としてフォールトトレラント能力を持たせ、故障発生時の信頼性を高めるとことを特徴としている。
【0040】
図1は本発明に係る分散処理システムの最良の実施の形態の構成図である。同図を参照すると、分散処理システムはプロセッサエレメントA;1aと、このプロセッサエレメントA;1aとプロセッサエレメントインタフェ−ス7aを介して接続される入出力部A;8aと、この入出力部A;8aと伝送路Aを介して接続される装置A;15aと、プロセッサエレメントB;1bと、このプロセッサエレメントB;1bとプロセッサエレメントインタフェ−ス7bを介して接続される入出力部B;8bと、この入出力部B;8bと伝送路Bを介して接続される装置B;15bと、プロセッサエレメントC;1cと、このプロセッサエレメントC;1cとプロセッサエレメントインタフェ−ス7cを介して接続される入出力部C;8cと、この入出力部C;8cと伝送路Cを介して接続される装置C;15cとを含んでおり、入出力部A;8a,B;8b及びC;8cは夫々ネットワーク16に接続されている。
【0041】
さらに、プロセッサエレメントA;1aはデータ共有部2aと、冗長管理部3aと、タスクA;4a〜C;6aとを含んでおり、同様にプロセッサエレメントB;1bはデータ共有部2bと、冗長管理部3bと、タスクA;4b〜C;6bとを含んでおり、プロセッサエレメントC;1cはデータ共有部2cと、冗長管理部3cと、タスクA;4c〜C;6cとを含んでいる。
【0042】
又、入出力部A;8aは故障分離部9aと、故障判定部10aと、データ転送制御部11aと、ネットワーク制御部12aとを含んでおり、同様に入出力部B;8bは故障分離部9bと、故障判定部10bと、データ転送制御部11bと、ネットワーク制御部12bとを含んでおり、入出力部C;8cは故障分離部9cと、故障判定部10cと、データ転送制御部11cと、ネットワーク制御部12cとを含んでいる。
【0043】
同図において、分散処理対象となる装置A;15a〜C;15cからの入力デ−タA;14a〜C;14cは、ネットワーク16を使用してデータ転送され、プロセッサエレメントA;1a〜C;1cの各プロセッサで共有データとして管理される。その共有データを使用して、装置Aへのデータ出力を行うタスクA;4a〜4c、装置Bへのデータ出力を行うタスクB;5a〜5c、装置Cへのデータ出力を行うタスクC;6a〜6cが各プロセッサエレメントで実行される。
【0044】
以上のタスクについてプロセッサエレメントA;1a〜C;1cの間で、冗長管理部3a〜3c及び故障判定部10a〜10cを用いて多数決原理に基づく故障判定を行い、故障があった場合は、故障分離部9a〜9cにより故障したプロセッサエレメントを分離する。その際、故障分離したプロセッサエレメントに接続されている装置は、故障分離部9a〜9cの結果に従ったデータ転送制御部11a〜11cにより、他の正常なプロセッサエレメントとデータ転送可能な状態となり、それにより装置としての処理を中断することなく故障が発生する前と同じ機能を継続して実行する。
【0045】
このようにして、本発明では、分散処理を行うマルチプロセッサシステムにおいて、上記部位により、分散処理を目的として複数存在するプロセッサ資源を、フォールトトレラント処理のために有効活用して、故障が発生した時の故障検出/分離を行い、しかも、分散処理対象となる装置の動作を中断することなく、故障発生前と同じ機能を継続して実行することができる。
【0046】
【実施例】
以下、本発明の実施例について説明する。まず、第1実施例について説明する。第1実施例の説明にも図1を用いる。図1は、3つの独立した装置A〜Cを対象に分散処理を行うシステムの一実施例を示している。同図において、装置A;15aにはプロセッサエレメントA;1aが接続されており、基本的に、装置A;15aからの入力データA;14aは、伝送線路A及び入出力部A;8aを介してプロセッサエレメントA;1aにおいて、タスクA;4aで処理され、入出力部A;8a及び伝送線路Aを介して出力データA;13aとして装置A;15aに出力される。装置A;15aとプロセッサエレメントA;1a間に接続された入出力部A;8aは上記のデータ転送を行う。
【0047】
ここで、プロセッサエレメントA;1a〜C;1cとは、一般的な計算機の機能を持つものであり、組み込み型の計算機のように、データ入出力機能、演算機能、データ記憶機能等の計算機として最も基本的な機能のみでもかまわない。
【0048】
又、装置B;15bとプロセッサエレメントB;1bと入出力部B;15b、並びに装置C;15cとプロセッサエレメントC;1cと入出力部C;15cの構成も、図1に示すように、上記の装置A;15aの場合と同様である。
【0049】
さらに、これらは、入出力部A;8a、入出力部B;8b、入出力部C;8cでネットワーク16に接続されており、相互のデータ転送が可能である。このネットワーク16によるデータ転送は、ネットワーク制御部12a〜12cによって行われるものであり、これは一般的なネットワーク機能を持つものでかまわない。
【0050】
以上までに説明した基本的な分散処理システム構成においては、分散処理を目的として複数のプロセッサを使用しているが、本発明では複数あるプロセッサ資源を有効活用するために、分散処理と同時に3重多数決を基本とした冗長処理も行えるようにする。
【0051】
図1において、分散処理対象となる装置A;15a〜C;15cからの入力デ−タA;14a〜C;14cは、ネットワーク16を使用してデータ転送され、プロセッサエレメントA;1a〜C;1cの各プロセッサで共有データとして管理される。その共有データを使用して、装置Aへのデータ出力を行うタスクA;4a〜4c、装置Bへのデータ出力を行うタスクB;5a〜5c、装置Cへのデータ出力を行うタスクC;6a〜6cが各プロセッサで実行される。以上のデータは、データ共有部2a〜2cにより各プロセッサエレメント内で管理される。
【0052】
図2に、各データ共有部2a〜2cがデータ管理に用いる共有データ管理テーブルの一実施例を示す。この共有データ管理テーブルは、例えば、各データ共有部2a〜2c内の図示しない格納部に設けられる。同図を参照すると、共有データ管理テーブルには装置Aからの入力データに対するプロセッサエレメントAの処理結果であるタスクAの出力値、プロセッサエレメントBの処理結果であるタスクAの出力値及びプロセッサエレメントCの処理結果であるタスクAの出力値と、装置Bからの入力データに対するプロセッサエレメントAの処理結果であるタスクBの出力値、プロセッサエレメントBの処理結果であるタスクBの出力値及びプロセッサエレメントCの処理結果であるタスクBの出力値と、装置Cからの入力データに対するプロセッサエレメントAの処理結果であるタスクCの出力値、プロセッサエレメントBの処理結果であるタスクCの出力値及びプロセッサエレメントCの処理結果であるタスクCの出力値とが格納されている。
【0053】
冗長管理部3a〜3cは、図2の共有データ管理テーブルを使用して、一般的な多数決原理に基づく冗長管理を実施する。例えば、プロセッサエレメントA;1aの場合は、タスクAの出力値について多数決を行い、正常であれば多数決で正常と判断された値を出力データA;13aとして、装置Aに出力する。
【0054】
又、プロセッサエレメントB;1bの場合は、タスクBの出力値について多数決を行い、正常であれば多数決で正常と判断された値を出力データB;13bとして、装置Bに出力する。又、プロセッサエレメントC;1cの場合は、タスクCの出力値について多数決を行い、正常であれば多数決で正常と判断された値を出力データC;13cとして、装置Cに出力する。
【0055】
上記の多数決結果に不一致があった場合、冗長管理部3a〜3cは、一般的多数決原理に基づいて、自らの結果と異なる結果を出したプロセッサエレメントに対し、ネットワーク16を使用して故障を通知する。例えば、図1において、プロセッサエレメントB;1bが故障した場合は、それが実行するタスクA;4b、タスクB;5b、タスクC;6bが異常となるため、図3に示すような故障通知が実行される。
【0056】
図3はプロセッサエレメントB;1bが故障した場合の故障通知の例を示す説明図である。同図を参照すると、プロセッサエレメントB;1bに接続されている故障判定部10bに対しては、故障通知AB17(プロセッサエレメントAからプロセッサエレメントBに対する故障通知)と故障通知CB20(プロセッサエレメントCからプロセッサエレメントBに対する故障通知)の2つの故障通知が通知されるため、故障判定部10bは多数決原理に基づいて自らが故障であると判定できる。これに対して、他のプロセッサエレメントA,Cに接続されている故障判定部10a,10cには1つ(プロセッサエレメントBから)しか故障通知が通知されないため自らを正常であると判定できる。
【0057】
図4は故障判定部10a〜10cにおける故障判定の論理(ロジック)を示す図である。なお、ここでは、自らのプロセッサエレメントの識別標識IDをNとし、図1においてNの右隣のプロセッサエレメントのIDをN+1、N+1の右隣のプロセッサエレメントのIDをN+2とした。ただし、プロセッサエレメントC;1cの右隣はプロセッサエレメントA;1aとした。
【0058】
図4を参照すると、プロセッサエレメントNが少なくともプロセッサエレメントN+1,N+2のいずれかから正常と通知された場合、プロセッサエレメントNは自プロセッサエレメントが正常と判断することを示している。換言すれば、プロセッサエレメントNはプロセッサエレメントN+1,N+2の両者から故障と通知された場合のみ自プロセッサエレメントが故障と判断するのである。
【0059】
故障判定部10a〜10cは図4に示すロジックに従って、自らの故障判定結果を、故障分離部9a〜9c及びデータ転送制御部11a〜11cに通知する。故障判定部10a〜10cの判定結果と、それに従った故障分離部9a〜9c及びデータ転送制御部11a〜11cの動作をまとめると次のようになる。
【0060】
まず、故障判定部が自らを正常と判断した場合について説明する。
【0061】
(1)故障分離部は何もしない。
【0062】
(2a)データ転送制御部において、装置からの入力データのバッファ、装置への出力データのバッファ、故障判定部の故障通知データが入力されるポートは、ネットワーク上で全て独立したアドレスとして認識できるようにする。
【0063】
(2b)全てのプロセッサエレメントが、全ての装置からの入力データをネットワーク経由で読み取れるようにする。
【0064】
(2c)全てのプロセッサエレメントが、故障判定部の故障通知データが入力されるポートへ故障通知データを書き込めるようにする。
【0065】
(2d)装置への出力データのバッファに対するデータの転送は、自らのプロセッサエレメントからのみ可能とする。
【0066】
次に、故障判定部が自らを故障と判断した場合について説明する。
【0067】
(1)自らのプロセッサエレメントから送られてくるデータを遮断し、自らのプロセッサエレメントを入出力部から機能的に分離する。そして、自らのプロセッサエレメントにリセットをかける。
【0068】
(2b)〜(2c)は上述した故障判定部が自らを正常と判断した場合と同様である。
【0069】
(2d)装置への出力データのバッファに対するデータの転送は、他のプロセッサエレメントからデータバスを経由して転送できるようにする。この時、自らのプロセッサエレメントから転送することはできない。
【0070】
即ち、いずれかのプロセッサエレメントに故障があった場合は、故障分離部9a〜9cにより故障したプロセッサエレメントを分離する。その際、故障分離したプロセッサエレメントに接続されている装置は、故障分離部9a〜9cの結果に従ったデータ転送制御部11a〜11cにより、他の正常なプロセッサエレメントとデータ転送可能な状態となる。
【0071】
上記のような状態の中で、図1における冗長管理部3a〜3cは、今まで述べた方法により正常と判断されたプロセッサエレメントから、故障分離されたプロセッサエレメントに接続されている装置に、その装置用の出力データを転送して、その装置の正常な動作継続を可能とする。
【0072】
具体的な例を示すと、図3に示されるようにプロセッサエレメントB;1bが故障と判断された場合は、図1におけるプロセッサエレメントB;1bは入出力部B;8bから分離され、装置B;15bに対する出力データB;13bは、プロセッサエレメントA;1aのタスクB;5aの結果か、もしくは、プロセッサエレメントC;1cのタスクB;5cの結果がネットワーク16を経由して転送される。
【0073】
なお、ここで、プロセッサエレメントA;1aのデータを使用するか、プロセッサエレメントC;1cのデータを使用するかは重要な問題ではなく、どちらでもかまわない。例えば、故障分離されたプロセッサエレメントの右隣のプロセッサエレメントのデータを使用するなどといったロジックを決めれば良いことであり、一般的に良く知られた方法で容易に実現できる。
【0074】
以上までに示したように、プロセッサエレメントA;1a〜C;1cのいずれかに故障が発生しても、装置としての処理を中断することなく故障が発生する前と同じ機能を継続して実行することができる。
【0075】
なお、入出力部A;8a〜C;8cの中の故障判定部10a〜10c、故障故障分離部9a〜9c、データ転送制御部11a〜11cは、図4のロジック及び上述の故障判定部が自らを正常/故障と判断した場合の動作を満たすものであれば、ソフトウェアで実現してもハードウェアで実現してもかまわない。どちらも一般的に良く知られている手法で容易に実現可能である。
【0076】
次に、フローチャートを用いて、図1に示す本実施例の動作について説明する。図1において、プロセッサエレメントA;1a〜C;1cが装置A;15a〜C;15cから入力データA;14a〜C;14cを入力し、冗長管理部3a〜3cにより故障判定部10a〜10cへ故障通知を通知するところまでの動作のフローチャートを図5に示す。
【0077】
図5においては、説明上の汎用性を持たせるために、Nという位置のプロセッサエレメントのソフトウェア動作として示した。ここで、N+1はNの右隣の位置を示し、N+2はN+1の右隣の位置を示すものとする。なお、図1においてプロセッサエレメントC;1cの右隣はプロセッサエレメントA;1aとする。例えば、NをAとした場合は、N+1はB、N+2はCとなる。
【0078】
図5において、Nの位置のプロセッサエレメントは、N、N+1、N+2の装置の入力データを入力し、それらのデータを使用してN、N+1、N+2の装置への出力データを算出する(ステップS101,S102,S103)。
【0079】
なお、上記を図1の構成との対比を例を挙げて示すと、Nを図1におけるAとした場合、これはプロセッサエレメントA;1aのソフトウェア動作となり、Nの装置の入力データは入力データA;14aとなり、N+1の装置の入力データは入力データB;14bとなり、N+2の装置の入力データは入力データC;14cとなる。これらを使用して、タスクA;4aで装置A;15aへの出力データを算出し、タスクB;5aで装置B;15bへの出力データを算出し、タスクC;6aで装置C;15cへの出力データを算出することに対応する。
【0080】
次に、図5において、Nの位置のプロセッサエレメントで算出した結果をN+1とN+2の位置のプロセッサエレメントに送ると同時に、N+1とN+2の位置のプロセッサエレメントから、算出結果を受け取る(ステップS104)。なお、これらの動作は、図1におけるデータ共有部2a〜2cによって実現するものである。
【0081】
次に、図1における冗長管理部3a〜3cにより、多数決原理に基づく冗長管理を実施する。図5において、N、N+1、N+2の算出結果で多数決を実施し、各算出結果に対する故障の判定を実施する(ステップS105,S106、S109)。その結果で、Nの算出結果が正常と判断した場合は正常処理を継続する(ステップS107)。又、N+1が故障と判断した場合はN+1へ故障通知を通知し(ステップS110)、N+2が故障と判断した場合はN+2に故障通知を通知する(ステップS108)。又、Nが自らを故障と判断した場合は動作を停止する(ステップS111)。
【0082】
なお、実際のシステムでは、以上の動作において、分散処理のためのデータ交換、同期処理等が必要となるが、本発明の範囲とは関係がないので、それらに関する説明は省略する。又、故障が複数発生した場合の対処は説明上複雑になるので、本実施例においては、説明を簡単にするため故障が1つ発生した場合とした。
【0083】
次に、図1における入出力部A;8a〜C;8cの動作について、フローチャートを用いて説明する。図6は、故障判定部10a〜10cが、上記に示した故障通知を受け取ってからの、故障分離部9a〜9c及びデータ転送制御部11a〜11cの動作を示したフローチャートである。なお、ここでのN、N+1、N+2の定義は、図5において定義した内容と同じである。
【0084】
図6において、Nは、N+1とN+2からの故障通知について、多数決原理に基づく故障判定を行う(ステップS201,S202)。これは、図1における故障判定部10a〜10cで実施するものである。即ち、N+1から故障通知を受け取り(ステップS201でYesの場合)、N+2からも故障通知を受け取った場合(ステップS202でYesの場合)、Nは故障と判断し(ステップS203)、Nのプロセッサエレメントを故障分離し(ステップS204)、N+1、N+2に対して故障分離結果を通知する(ステップS205)。さらに、Nのプロセッサエレメントが故障分離された状態で、Nに接続されている装置の動作を継続させるために、Nに接続されている装置に対する出力をN+1又はN+2から出力することをデータ転送上可能にする(ステップS206)。これらの動作は、図1における、故障分離部9a〜9c及びデータ転送制御部11a〜11cで実施するものである。又、図6において、Nが正常と判断された場合(ステップS201及びS202のいずれかでNoの場合)は、そのままの状態で処理を継続する(ステップS207)。
【0085】
次に、上記に示したように、図1における入出力部A;1a〜C;1cにより故障分離等が実施された後の冗長管理部3a〜3cの動作について、同様に、図7のフローチャートを用いて説明する。
【0086】
図7は、図6で示した動作結果を受けて、図1におけるプロセッサエレメントA;1a〜C;3cのソフトウェア動作として実現する冗長管理部3a〜3cの動作を示したものである。なお、ここでのN、N+1、N+2の定義も、図5において定義した内容と同じである。
【0087】
図7において、N+1から故障分離結果を受け取った場合(ステップS301にてYesの場合)は、N+1はプロセッサエレメントが故障分離されていると認識し(ステップS302)、N+1に接続されている装置に対して、N+1に接続されている装置のための出力データを送信して(ステップS303)、その他の処理を継続する(ステップS304)。
【0088】
又、N+2から故障分離結果を受け取った場合(ステップS301にてNo,ステップS305にてYesの場合)も、N+2に対して同様な動作を行う(ステップS306,S307,S308)。
【0089】
さらに、N+1からもN+2からも故障分離結果を受け取っていない場合(ステップS301にてNo,ステップS305にてNoの場合)は、状態を何も変更せずに、そのまま処理を継続する(ステップS309)。
【0090】
以上の動作に関して、その動作例として、プロセッサエレメントB;1bが故障分離された場合の、装置へのデータ出力動作の例を図8に示す。図8において、プロセッサエレメントB;1bは故障分離されて動作停止状態となっているが、その代わりに、プロセッサエレメントA;1a上で動作するタスクB;5aの出力値から、装置B;15bに出力データB;22を転送する。この際、装置A;15aに対しては、故障発生前の動作と同じで、プロセッサエレメントA;1a上で動作するタスクA;4aの出力値から、出力データA;21を転送する。又、装置C;15cに対しても、故障発生前の動作と同じで、プロセッサエレメントC;1c上で動作するタスクC;6cの出力値から、出力データC;23を転送する。
【0091】
以上のように、本実施例によれば、分散処理システム中の1つのプロセッサエレメントが故障しても、その故障を検出/分離し、なおかつ、プロセッサエレメントに接続されている装置としての処理を中断することなく、故障が発生する前と同じ機能を継続することができる。
【0092】
なお、本実施例では、図1におけるプロセッサエレメントA;1a〜C;1cに故障が発生した場合についてフォールトトレラント能力を持つ場合の実施例であるが、入出力部A;8a〜C;8cに故障が発生する場合に対する対処も別途必要となる場合もある。ただし、一般的にプロセッサエレメント等の基本的な計算機機能の部分とインタフェース部分とを比べると、プロセッサエレメントの方が回路規模や動作の複雑さが桁違いに大きいため、プロセッサエレメント部分の故障対策の方が重要であり、冗長化した場合の影響も桁違いに大きい。又、インタフェース部分の故障対策としては、冗長化、使用部品の高信頼化等の従来から良く用いられている手段で容易に実現できるため、本発明では、説明を簡単にするために、プロセッサエレメント部分に故障が発生する場合に条件を絞って実施例を説明した。
【0093】
なお、本発明は上記の実施例に限定されるものではなく、例えば、図1の実施例において、自らのプロセッサエレメントの故障診断ができる手段をもっていれば、1つのプロセッサエレメント内でタスクを冗長に実行して多数決を実施する必要はない。その場合、1つのプロセッサエレメントに故障が発生した時に自己故障診断で故障したプロセッサエレメントと故障分離すれば、その後の動作を図1の実施例と同じ動作にすることで、装置A;15a〜C;15cの動作を中断することなく、正常な処理を継続することができる。プロセッサエレメントに故障が発生してもシステム全体として機能を維持できるという効果は同じである。なお、これは第3実施例として後述する。
【0094】
又、図1の実施例の場合は、いずれかのプロセッサエレメントに故障が1回発生する場合を想定したフォールトトレラント方法の例であるが、宇宙空間等の特殊な環境で使用した場合に、環境条件の特殊性から、一時的な(トランジェントな)故障が何度も発生して、立ち上げ直すとその都度正常に戻るような場合も多く見受けられる。そのような環境で使用するシステムに適用する場合は、図1の実施例で故障分離したプロセッサエレメントにリセットをかけて再立ち上げを実施し、イニシャルセルフチェック結果が正常であった場合はシステムに復帰させる方法を加えると有効である。その場合は、一時的な(トランジェントな)故障が何度も発生しても、ノンストップで正常処理継続が可能なフォールトトレラントシステムを実現できる。
【0095】
なお、上記のような、自己故障診断のための方法や、一時的な(トランジェントな)故障に対応した再立ち上げしてシステムに復帰させる方法は、従来から良く知られている方法を適用することで容易に実現できるため、ここでは説明を省略する。
【0096】
次に、第2実施例について説明する。図10は第2実施例の構成を示す模式図、図11はCPU(例えば、プロセッサエレメントA)と装置(例えば、装置A)との関係を示す模式図である。第2実施例は第1実施例における分散処理システムをロボットアームに適用したものである。
【0097】
図10にはロボットアームの構成の一例が示されている。図10を参照すると、ロボットアームは取手部31と、アーム32〜35と、アクチュエ−タ41〜45とを含んでおり、アクチュエ−タ41は取手部31の動作を制御し、アクチュエ−タ42〜44はアーム32〜35の動作を制御する。又、アクチュエ−タ45はアーム32〜35の原点となるアクチュエ−タである。即ち、これらのアクチュエ−タ41〜45はロボットアームの関節に相当するものである。
【0098】
ロボットアームの関節(この段落では便宜上アクチュエーク41〜45をそれぞれ関節41〜45という)は、隣接する関節と強調動作を行う。例えば、取手部31を所定位置まで移動させるためには、アーム32だけでなく、アーム33〜35の各々も、動かさなくてはならない。そのためには、各関節41〜45は協調して動作する必要があるのである。従ってこの関節41〜45の制御に本発明に係る分散処理を適用することができる。
【0099】
図11を参照すると、各々のアクチュエ−タ41〜45はセンサ61と、モータ62と、センサ61からの出力及び協調動作上必要な他のCPUの処理結果(ネットワーク経由で受け取るもの)に基づきモータ62を制御するCPU(central processing unit)52と、ネットワークと接続されたインタフェ−ス53とを含んでおり、このモータ62の動きで取手部31及びアーム32〜35の動作が制御される。又、センサ61及びモ−タ62は装置51に含まれる。
【0100】
そして、CPU52が図1のプロセッサエレメントA〜C及び入出力部A〜Cに、インタフェ−ス53が図1のネットワーク制御部12a〜12cに、装置51が図1の装置A〜Cに夫々相当する。
【0101】
いま、アクチュエ−タ41〜45のうちアクチュエ−タ42〜44に本発明に係る分散処理システムを適用するものとする。即ち、アクチュエ−タ42が図1のプロセッサエレメントA,入出力部A及び装置Aで構成され、アクチュエ−タ43が図1のプロセッサエレメントB,入出力部B及び装置Bで構成され、アクチュエ−タ44が図1のプロセッサエレメントC,入出力部C及び装置Cで構成されるものとする。
【0102】
即ち、センサ61からCPU52(正確には図1の入出力部A〜C)に入力される入力データ71が図1の入力データA〜Cであり、CPU52(正確には図1の入出力部A〜C)からモータ62に出力される出力データ72が図1の出力データA〜Cである。そして、CPU52は入力データ71を演算し、演算結果である出力データ72を出力する。
【0103】
従って、各アクチュエ−タ42〜44では分散処理とともに多数決による冗長処理が行われることになる。いま、アクチュエ−タ43(図1のプロセッサエレメントB相当)が故障と判断されたとすると、アクチュエ−タ43は故障分離され、アクチュエ−タ43の装置51Bのモ−タ62に対する出力データ72はアクチュエ−タ41(図1のプロセッサエレメントA相当)又はアクチュエ−タ43(図1のプロセッサエレメントC相当)のCPU52から出力されることになる。
【0104】
次に、第3実施例について説明する。図12は第3実施例の構成を示す模式図、図13はプロセッサエレメント故障時のデータ転送制御を示す模式図である。第3実施例も第2実施例と同様に分散処理システムをロボットアームに適用した一例であるが、第2実施例と異なる点は各アクチュエ−タは冗長処理を行わない点である。
【0105】
即ち、アクチュエ−タ42は自己の装置51Aからの入力データ71のみを入力し、演算結果の出力データ72を自己の装置51Aのみに出力する。同様に、アクチュエ−タ43は自己の装置51Bからの入力データ71のみを入力し、演算結果の出力データ72を自己の装置51Bのみに出力し、アクチュエ−タ44は自己の装置51Cからの入力データ71のみを入力し、演算結果の出力データ72を自己の装置51Cのみに出力する。
【0106】
さらに、各アクチュエ−タ42〜44は自アクチュエ−タが故障したことを他のアクチュエ−タからの故障通知から判断するのではなく、自アクチュエ−タ内に自アクチュエ−タが故障したことを検出する故障検出部を含んでいる。
【0107】
図12を参照すると、アクチュエ−タ41にはカメラ46が接続されており、アクチュエ−タ41はこのカメラ46からの画像情報に基づき内部のモ−タ62を制御するよう構成されている。
【0108】
一方、このアクチュエ−タ41はアクチュエ−タ42〜44のいずれかが故障した場合、その代行処理を行う機能も備えている。例えば、アクチュエ−タ43が故障した場合、そのアクチュエ−タ43内のCPU52は故障分離され、代わりにアクチュエ−タ41内のCPU52がアクチュエ−タ43で行うべき処理を代行し、アクチュエ−タ43のモータ62に出力データを出力する。その際、アクチュエ−タ41はネットワーク16を介して装置51Bから得た入力データ71に基づき出力すべきデータを演算するものとする。なお、原点のアクチュエ−タ45にこの代行処理を行わせてもよい。
【0109】
図13はこの第3実施例の動作を示しており、第1及び第2実施例ではプロセッサエレメントBが故障した場合、プロセッサエレメントAから装置Bに出力データBを出力していたが、第3実施例ではアクチュエ−タ41(プロセッサエレメントD)から装置Bに出力データBを出力する。
【0110】
図6のフローチャートで説明すると、プロセッサエレメントBが故障と判断された以降の動作は、同図のステップS203〜S205と同様となる。
【0111】
【発明の効果】
本発明による第1の発明によれば、複数のプロセッサと、各々の前記プロセッサに対応して設けられる複数の装置と、前記プロセッサ及び装置間のデータ入出力を制御する入出力手段とが含まれ、前記複数の装置からのデータ入力及び前記複数の装置へのデータ出力を前記複数のプロセッサが分散して行う分散処理システムであって、そのシステムは前記分散処理を目的とする前記複数のプロセッサ及び前記複数の入出力手段に故障許容処理を併せて行わせる故障許容処理手段を含むため、コンピュータモジュール等のハ−ドウエア量の低減が可能となる。
【0112】
又、本発明による第2及び第3の発明も上記第1の発明と同様の効果を奏する。
【0113】
具体的に説明すると、本発明によれば、分散処理を行うマルチプロセッサシステムにおいて、分散処理を目的として複数存在するプロセッサ資源をフォールトトレラント処理のために有効活用して、故障が発生した時の故障検出/分離を行い、しかも、分散処理対象となる装置の動作を中断することなく、故障発生前と同じ機能を継続して実行することができる。
【0114】
これは、プロセッサ等の個々の構成要素にはフォールトトレラント能力が無いにもかかわらず、分散処理システムというシステム構成上の特徴を本来の目的と別次元の用途で使用する機能を加えることで、システム全体としてフォールトトレラント能力を持たせているものである。つまり、フォールトトレラントを目的としてハードウェアを冗長化するという手段を取らずにフォールトトレラント能力を実現しているため、従来のフォールトトレラントシステムが持っているハードウェア量の大幅な(通常は3重多数決を行うため、ハードウェア量が3倍以上となる)増加という弱点を解決している。
【0115】
なお、本発明を実際に実現する際には、本発明を実現するための手段がデメリットとならないように適用検討をすることも必要である。つまり、本発明を実現するためには、ソフトウェア冗長動作とプロセッサ間の共有データの交換を積極的に行うため、プロセッサの処理速度とネットワーク転送速度が速いことが望ましい。しかし、近年のコンピュータ関連技術の技術動向を見ると、プロセッサの処理速度とネットワークの転送速度は飛躍的に向上しているので、多くの場合、本発明を実現するための手段はデメリットにならないと考えられる。
【0116】
また、本発明は、システム構成上の理由で分散処理システムとなっているシステムへ適用する場合に最も大きな効果を発揮する。例えば、ロボットアームの関節の制御を独立したプロセッサで実施するような組み込み型の分散処理システムの場合は、もともと関節の数だけプロセッサがあるので、それが3つ以上あれば、本発明を適用して、インタフェース部分の僅かなハードウェアの追加で、高信頼システムが構築できる。特にこのような組み込みシステムの場合、ハードウェア量を小さく抑えることと高信頼性を確保することが同時に要求されるので、本発明の適用効果は極めて大きいと考えられる。
【図面の簡単な説明】
【図1】本発明に係る分散処理システムの最良の実施の形態の構成図である。
【図2】共有データ管理テーブルを示す図である。
【図3】プロセッサエレメントB;1bが故障した場合の故障通知の一例を示す図である。
【図4】故障判定部における故障判定のロジックを示す図である。
【図5】故障通知するまでの動作を示すフローチャートである。
【図6】故障通知を受け取ってからの動作を示すフローチャートである。
【図7】図6で示した動作結果を受けて実行される動作を示すフローチャートである。
【図8】プロセッサエレメントB;1bが故障分離された場合の、装置へのデータ出力の動作を示すフローチャートである。
【図9】本発明の概要を示すシステム構成図である。
【図10】第2実施例の構成を示す模式図である。
【図11】CPUと装置との関係を示す模式図である。
【図12】第3実施例の構成を示す模式図である。
【図13】プロセッサエレメント故障時のデータ転送制御を示す模式図である。
【図14】従来の分散処理システムの一例の構成図である。
【図15】先行技術文献1記載のシステムの構成図である。
【符号の説明】
1a〜1c プロセッサエレメント
2a〜2c データ共有部
3a〜3c 冗長管理部
4a,5a,6a タスク
7a プロセッサエレメントインタフェ−ス
8a〜8c 入出力部
9a〜9c 故障分離部
10a〜10c 故障判定部
11a〜11c データ転送制御部
12a〜12c ネットワーク制御部
15a〜15c 装置
31 取手部
32〜35 アーム
41〜45 アクチュエ−タ
51 装置
52 CPU
53 インタフェ−ス
61 センサ
62 モータ

Claims (12)

  1. 複数のプロセッサと、各々の前記プロセッサに対応して設けられる複数の装置と、前記プロセッサ及び装置間のデータ入出力を制御する入出力手段とが含まれ、前記複数の装置からのデータ入力及び前記複数の装置へのデータ出力を前記複数のプロセッサが分散して行う分散処理システムであって、
    前記分散処理を目的とする前記複数のプロセッサ及び前記複数の入出力手段に故障許容処理を併せて行わせる故障許容処理手段を含み、
    前記故障許容処理手段は、前記プロセッサの各々に設けられ、前記全ての装置からのデータ入力及び前記全ての装置に対するデータ出力を行うデータ共有手段と、自プロセッサで算出した所定装置宛の出力データと他プロセッサで算出した前記所定装置宛の出力データとを比較し、その比較結果を他プロセッサに通知する冗長管理手段と、
    前記入出力手段に設けられ、他プロセッサから通知された比較結果に基づき自プロセッサが故障か否かを判断する故障判定手段とを含み、
    前記故障判定手段により自プロセッサが故障と判断された場合、自プロセッサを故障分離させる故障分離手段をさらに含み、
    前記故障分離手段により自プロセッサが故障分離された場合、自プロセッサに対応する装置に対するデータ出力を他プロセッサから出力させるデータ転送手段を含み、
    前記冗長管理手段は、前記両プロセッサで算出した出力データが不一致の場合にその出力データを算出した他プロセッサに対し故障通知を送出し、一致の場合に正常通知を送出することを特徴とする分散処理システム。
  2. 前記分散処理をロボットアームの関節制御に用いたことを特徴とする請求項記載の分散処理システム。
  3. 前記故障許容処理手段は、前記プロセッサの各々に対応して設けられ、自プロセッサが故障か否かを独自に判定する故障判定手段と、前記故障と判定されたプロセッサの代行処理を行う代行処理手段とを含むことを特徴とする請求項1記載の分散処理システム。
  4. 前記分散処理をロボットアームの関節制御に用いたことを特徴とする請求項記載の分散処理システム。
  5. 複数のプロセッサと、各々の前記プロセッサに対応して設けられる複数の装置と、前記プロセッサ及び装置間のデータ入出力を制御する入出力手段とが含まれる分散処理システムにおいて、前記複数の装置からのデータ入力及び前記複数の装置へのデータ出力を前記複数のプロセッサが分散して行う分散処理方法であって、
    前記分散処理を目的とする前記複数のプロセッサ及び前記複数の入出力手段に故障許容処理を併せて行わせる故障許容処理ステップを含み、
    前記故障許容処理ステップは、前記プロセッサの各々に設けられ、前記全ての装置からのデータ入力及び前記全ての装置に対するデータ出力を行うデータ共有ステップと、自プロセッサで算出した所定装置宛の出力データと他プロセッサで算出した前記所定装置宛の出力データとを比較し、その比較結果を他プロセッサに通知する冗長管理ステップと、
    前記入出力手段に設けられ、他プロセッサから通知された比較結果に基づき自プロセッサが故障か否かを判断する故障判定ステップとを含み、
    前記故障判定ステップにより自プロセッサが故障と判断された場合、自プロセッサを故障分離させる故障分離ステップをさらに含み、
    前記故障分離ステップにより自プロセッサが故障分離された場合、自プロセッサに対応する装置に対するデータ出力を他プロセッサから出力させるデータ転送ステップを含み、
    前記冗長管理ステップは、前記両プロセッサで算出した出力データが不一致の場合にその出力データを算出した他プロセッサに対し故障通知を送出し、一致の場合に正常通知を送出することを特徴とする分散処理方法。
  6. 前記分散処理をロボットアームの関節制御に用いたことを特徴とする請求項記載の分散処理方法。
  7. 前記故障許容処理ステップは、前記プロセッサの各々に対応して設けられ、自プロセッサが故障か否かを独自に判定する故障判定ステップと、
    前記故障と判定されたプロセッサの代行処理を行う代行処理ステップとを含むことを特徴とする請求項記載の分散処理方法。
  8. 前記分散処理をロボットアームの関節制御に用いたことを特徴とする請求項記載の分散処理方法。
  9. 複数のプロセッサと、各々の前記プロセッサに対応して設けられる複数の装置と、前記プロセッサ及び装置間のデータ入出力を制御する入出力手段とが含まれる分散処理システムにおいて、前記複数の装置からのデータ入力及び前記複数の装置へのデータ出力を前記複数のプロセッサが分散して行う分散処理制御プログラムであって、
    前記分散処理を目的とする前記複数のプロセッサ及び前記複数の入出力手段に故障許容処理を併せて行わせる故障許容処理ステップを含み、
    前記故障許容処理ステップは、前記プロセッサの各々に設けられ、前記全ての装置からのデータ入力及び前記全ての装置に対するデータ出力を行うデータ共有ステップと、自プロセッサで算出した所定装置宛の出力データと他プロセッサで算出した前記所定装置宛の出力データとを比較し、その比較結果を他プロセッサに通知する冗長管理ステップと、
    前記入出力手段に設けられ、他プロセッサから通知された比較結果に基づき自プロセッサが故障か否かを判断する故障判定ステップとを含み、
    前記故障判定ステップにより自プロセッサが故障と判断された場合、自プロセッサを故障分離させる故障分離ステップをさらに含み、
    前記故障分離ステップにより自プロセッサが故障分離された場合、自プロセッサに対応する装置に対するデータ出力を他プロセッサから出力させるデータ転送ステップを含み、
    前記冗長管理ステップは、前記両プロセッサで算出した出力データが不一致の場合にその出力データを算出した他プロセッサに対し故障通知を送出し、一致の場合に正常通知を送出することを特徴とする分散処理制御プログラム。
  10. 前記分散処理をロボットアームの関節制御に用いたことを特徴とする請求項記載の分散処理制御プログラム。
  11. 前記故障許容処理ステップは、前記プロセッサの各々に対応して設けられ、自プロセッサが故障か否かを独自に判定する故障判定ステップと、
    前記故障と判定されたプロセッサの代行処理を行う代行処理ステップとを含むことを特徴とする請求項記載の分散処理制御プログラム。
  12. 前記分散処理をロボットアームの関節制御に用いたことを特徴とする請求項11記載の分散処理制御プログラム。
JP2001145733A 2001-05-16 2001-05-16 分散処理システム及び分散処理方法並びに分散処理制御プログラム Expired - Lifetime JP3879436B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001145733A JP3879436B2 (ja) 2001-05-16 2001-05-16 分散処理システム及び分散処理方法並びに分散処理制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001145733A JP3879436B2 (ja) 2001-05-16 2001-05-16 分散処理システム及び分散処理方法並びに分散処理制御プログラム

Publications (2)

Publication Number Publication Date
JP2002342300A JP2002342300A (ja) 2002-11-29
JP3879436B2 true JP3879436B2 (ja) 2007-02-14

Family

ID=18991494

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001145733A Expired - Lifetime JP3879436B2 (ja) 2001-05-16 2001-05-16 分散処理システム及び分散処理方法並びに分散処理制御プログラム

Country Status (1)

Country Link
JP (1) JP3879436B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6029737B2 (ja) * 2013-02-15 2016-11-24 三菱電機株式会社 制御装置
KR102625797B1 (ko) * 2023-03-06 2024-01-16 주식회사 모레 파이프라인 병렬 처리 컴파일링 방법 및 장치

Also Published As

Publication number Publication date
JP2002342300A (ja) 2002-11-29

Similar Documents

Publication Publication Date Title
US7747897B2 (en) Method and apparatus for lockstep processing on a fixed-latency interconnect
JP2006178557A (ja) コンピュータシステム及びエラー処理方法
EP1296246A2 (en) System and method for the dynamic reconfiguration of interconnects
JP3879436B2 (ja) 分散処理システム及び分散処理方法並びに分散処理制御プログラム
JP2017146833A (ja) 監視装置、フォールトトレラントシステムおよび方法
GB2415069A (en) Expansion of the number of fabrics covering multiple processing nodes in a computer system
JPH07306794A (ja) 分散システム及び分散システムの高信頼化方法
JP2007334668A (ja) メモリダンプ方法、クラスタシステム、それを構成するノードおよびプログラム
EP1302856A2 (en) Method and apparatus for reconfiguring a signal path in a computing system
JP6784160B2 (ja) 並列処理装置及びノード間通信プログラム
US7243257B2 (en) Computer system for preventing inter-node fault propagation
JP2001306348A (ja) 冗長系情報処理システム
US11914338B2 (en) Redundant automation system and method for operating the redundant automation system
JPH0736721A (ja) 多重化コンピュータシステムの制御方式
JPH11194961A (ja) 遠方監視制御装置および遠方監視制御システム
EP4361817A1 (en) 2*2oo2 security system based on cloud platform
US11507478B2 (en) Method for operating a redundant automation system
JP4117685B2 (ja) フォルトトレラント・コンピュータとそのバス選択制御方法
US20200394111A1 (en) Method for Operating a Redundant Automation System
JP2007323190A (ja) データ通信を行う計算制御システム及びその通信方法
US20040078652A1 (en) Using process quads to enable continuous services in a cluster environment
JP6200387B2 (ja) 冗長化システム、およびレプリケーション方法
JP3015537B2 (ja) 電子計算機の二重化方式
JPH04148363A (ja) マルチコンピュータシステム
Traverse et al. A Process Toward Total Dependability-Airbus Fly-by-Wire Paradigm.

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050927

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051027

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20051027

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051027

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060919

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060920

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: 20061017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061030

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3879436

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091117

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131117

Year of fee payment: 7

EXPY Cancellation because of completion of term