(57)【要約】【課題】保護リレーの機能を停止させる可能性を抑えつつ、保護リレーの機能を実現する複数のタスクを演算器に割り当てる情報処理装置を提供する。【解決手段】保護リレーの機能を実現する複数のタスクを、ネットワークで接続された複数の演算器に処理させる情報処理装置であって、前記複数のタスクのうち、特定の演算器を用いて処理させることが可能なタスクの組み合わせを記憶する手段と、前記特定の演算器を用いて処理させることが可能なタスクの組み合わせのいずれかを選択し、選択された組み合わせのタスクを前記特定の演算器に実行させる手段を有するもの。【選択図】図１
2006323863.tif 000002
【特許請求の範囲】
【請求項１】
一つもしくは複数のネットワークで接続された複数の演算器に複数のタスクを実行する分散処理システムにおいて、
複数タスクの各々について、該タスク実行を所定時間内に完了する制約もしくは条件が付加されている計算処理を実行するにあたり、任意の複数タスク間の制約もしくは相関関係いずれか複数もしくは全ての各々について、異なる演算器で実行するような信頼度上タスク間制約条件の充足度を判断する処理を実施することで、１つ以上の演算器に故障が発生した場合においても重要機能のバックアップ及び異常検出を実現することを特徴とする高信頼型リアルタイム分散処理システム。
【請求項２】
請求項１の高信頼型リアルタイム分散処理システムにおいて、
複数タスクの各々について、実行を所定時間内に完了することに対する実行時間評価指標を設け、また、複数のタスク間の相関関係各々について、異なる演算器で実行することに対する実行演算器評価指標を設け、
全演算器にて実施可能な範囲で、かつ、上記評価指標群が最大になるように、実行するタスクの選択処理、および、選択したタスクを計算する演算器の選択処理を実施する実行演算器管理機構を備えることを特徴とする高信頼型リアルタイム分散処理システム。
【請求項３】
請求項２の高信頼型リアルタイム分散処理システムにおいて、
各々のタスクについて、該タスクに対する実行時間評価指標と、該タスク以外のタスク間の相関関係各々に対する実行演算器評価指標を事前にデータベースに格納するとともに、それを参照して、上記タスク選択処理、および、上記演算器選択処理を実行する実行演算器管理機構を備えることを特徴とする高信頼型リアルタイム分散処理システム。
【請求項４】
請求項２の高信頼型リアルタイム分散処理システムにおいて、
各々のタスクが、該タスクに対する実行時間評価指標と、該タスク以外のタスク間の相関関係各々に対する実行演算器評価指標を、該タスクを実現するプログラムモジュールに事前に設定されていて、それらタスクから送信される指標を参照にして、上記タスク選択処理、および、上記演算器選択処理を実行する実行演算器管理機構を備えることを特徴とする高信頼型リアルタイム分散処理システム。
【請求項５】
請求項２の高信頼型リアルタイム分散処理システムにおいて、
各々のタスクについて、タスクを管理する名前を設けるにあたり、前記タスク名を示す記号のなかに、該タスクに対する実行時間評価指標を記述する記号と、該タスク以外のタスク間の相関関係各々に対する実行演算器評価指標を記述する記号を含ませることで、事前に与えられるタスクの名前から実行時間評価指標と実行演算器評価指標を抽出する実行演算器管理機構を持つことを特徴する高信頼型リアルタイム分散処理システム。
【請求項６】
請求項２から請求項１５までの高信頼型リアルタイム分散処理システムにおいて、
該ネットワーク上の複数の計算装置によって、実行演算器管理機構の処理を実施することを特徴する高信頼型リアルタイム分散処理システム。
【請求項７】
請求項２から請求項１５までの高信頼型リアルタイム分散処理システムにおいて、
該ネットワークに常時接続していない一つもしくは複数の計算装置によって、実行演算器管理機構の処理を実施することを特徴する高信頼型リアルタイム分散処理システム。
【請求項８】
請求項２から請求項１６の高信頼型リアルタイム分散処理システムにおいて、
上記演算器の稼働状態を常時監視し、ネットワーク上の何れかの演算器の状態に変化が生じたことを検出した際に、
実行演算器管理機構が、上記タスク選択処理、および、上記演算器選択処理を再実行することを特徴とする高信頼型リアルタイム分散処理システム。
【請求項９】
請求項８の高信頼型リアルタイム分散処理システムにおいて、
実行演算器管理機構が、現在の計算断面より将来について、発生するタスクの有無と、そのタスクに関する上記評価指標群を管理することで、
上記タスク選択処理、および、上記演算器選択処理について、複数時間断面を通じて最適解をもとめ、タスクスケジューリングを実施することを特徴とする高信頼型リアルタイム分散処理システム。
【請求項１０】
請求項８の高信頼型リアルタイム分散処理システムにおいて、
実行演算器管理機構が管理している内容に含まれない新規タスクの起動要求が発生、もしくは、外部から新規タスクの起動指令がされた際に、
実行演算器管理機構が、上記タスク選択処理、および、上記演算器選択処理を再実行することを特徴とする高信頼型リアルタイム分散処理システム。
【請求項１１】
請求項８の高信頼型リアルタイム分散処理システムにおいて、
外部計算装置を経由して、演算器の活殺状態について指令がされた際に、
実行演算器管理機構が、上記指令内容に従い演算器の活殺状態を想定した上で、上記タスク選択処理、および、上記演算器選択処理を再実行することを特徴とする高信頼型リアルタイム分散処理システム。
【請求項１２】
請求項１の高信頼型リアルタイム分散処理システムにおいて、
複数タスクの各々について、実行を所定時間内に完了することに対する実行時間評価指標を設け、また、複数のタスク間の相関関係各々について、異なる演算器で実行することに対する実行演算器評価指標を設け、
全演算器にて実施可能な範囲で、かつ、上記評価指標群が最大になるように、実行するタスクの選択処理、および、選択したタスクを計算する演算器の選択処理を実施できる初期設計を行うことが可能な開発ツールを備えることを特徴とする高信頼型リアルタイム分散処理システム。
【請求項１３】
請求項１から請求項1２の高信頼型リアルタイム分散処理システムにおいて、
上記タスクとして、複数の演算器間を接続する複数の通信路の各々について、通信内容の正常性を検証する通信路監視タスクの組を備え、
同一通信路を検証する通信路監視タスクの組を構成する個々のタスクが、異なる演算器で実行するような制約もしくは条件の充足度を判断する処理を実施することにより、
各通信路の正常性を把握することを特徴とする高信頼型リアルタイム分散処理システム。
【請求項１４】
請求項１から請求項1２の高信頼型リアルタイム分散処理システムにおいて、
上記タスクとして、所定の演算式を検算する試験を行い、ネットワークで接続された他の複数演算器と、通信を介して結果を検証する演算器監視タスクを複数備え、
それら演算器監視タスクの各々が、異なる演算器で実行するような制約もしくは条件の充足度を判断する処理を実施することにより、
演算異常装置の特定、もしくは、ネットワークの故障の検出を可能にすることを特徴とする高信頼型リアルタイム分散処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機がネットワーク上に接続され、複数のプログラムを実行する分散処理システムの構成に係わり、特に、電力設備の保護制御装置などに代表されるリアルタイム制御を求められる処理システムに関する。
【背景技術】
【０００２】
従来の一般的な分散処理システムにおいては、処理性能や信頼性の向上を目的として、様々なタスクの割り当て方法が考案実用されている。たとえば、特開平５−２５７９０８号や特開平７−２８２０１３号では、各計算機の特性や状態に応じて、タスクを割り付ける方法を提案している。計算機各々の処理性能や信頼度などの性能、もしくは、計算負荷などの状態を参照して、タスクを割り付けや優先順位を決定している。重要性・緊急性の異なるタスクを適当な信頼度をもつ計算機に処理させることで、全体として信頼性の高い分散処理を行う。
【０００３】
上記構成に加えて、タスクの相対関係として、協調処理の機構を加えたものもある。たとえば、特開平９−２３１１８３号では、タスクの同時起動など、タスク協調処理に対する時間制約を実現する管理機構を設けている。ただし、信頼性の観点で、タスクの相対関係を解決しようとするものでない。
【０００４】
一方で、信頼性が必要なリアルタイム処理装置では、従来から、多重化による対策がなされてきた。たとえば、発電・送電・配電などの電力制御や、航空・鉄道などの交通制御など、多くの制御装置では、リアルタイム性を必要とされながら、誤動作防止が厳しく制約される。そのため、このようなリアルタイム処理では、制御対象の多重化，計算処理の多重化，アルゴリズムの多重化などで、高信頼化を図っている。
【０００５】
そのため、上記目的を高信頼型リアルタイム分散処理として実装する場合、分散処理される箇々のタスクの間には、信頼性の観点での相対関係が生じる。たとえば、同一の目的に対して、多重化した複数のタスクを実装することで信頼度をあげている場合、それらのタスクは同一の計算装置で処理されないことが、信頼性の観点から望ましい。したがって、高信頼型リアルタイム分散処理では、計算量の観点におけるタスク間の相対関係のみでなく、信頼性の観点におけるタスク間の相対関係も考慮する必要がある。
【０００６】
従来、信頼性が必要なリアルタイム処理装置を、分散処理に実装しようとする場合、このような相対的な制約は、事前設計で満足することしかなかった。たとえば、特開昭５７−３５１６号では、電力設備の保護制御装置を、分散処理システムに実装する方式を提案しているが、計算量の調整や信頼性の調整は、設計時点で人手で行う。装置構成毎に最適な配置を設計する必要が発生している。また、あらかじめ定められたタスク配置のみなので、装置構成が変化したときには効果を失う。
【０００７】
【特許文献１】特開平５−２５７９０８号公報
【特許文献２】特開平７−２８２０１３号公報
【特許文献３】特開平９−２３１１８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
背景技術に前述したように、従来の一般的な分散処理システムは、信頼性が必要な制御装置に適用することができない。
【０００９】
これまでの分散処理技術では、計算機箇々もしくはタスク箇々に関して、各々の信頼性や緊急度を規定して、高性能化・高信頼化することしかできない。
【００１０】
タスク同士の信頼度上の相対関係について規定する手段がない。
【００１１】
したがって、高信頼度の分散処理システムを実現するためには、従来のような、タスク同士の計算量上の相対関係に加えて、多重化の考え方などの信頼度上の相対関係も反映できる仕掛けが必要である。
【００１２】
本発明の目的は、計算機箇々もしくはタスク箇々に関して、各々の信頼性や緊急度を規定して、高性能化・高信頼化することである。
【００１３】
また、本発明の他の目的は、保護リレーの機能を停止させる可能性を抑えつつ、少ない演算器で保護リレーの機能を実現できるようにタスクを割り当てることである。
【課題を解決するための手段】
【００１４】
電力制御や、航空・鉄道などの交通制御など、信頼性が必要なリアルタイム処理装置では、演算器の異常に対して正常動作を保つためには、多重化によるフェールセーフ・バックアップを実現していく必要がある。この処理目的を、分散処理システムで実現しようとする場合、システム自体をフォールトトレラントにするだけでは、誤動作は防止できない。計算処理の多重化やアルゴリズムの多重化の考え方に基づいて、複数タスクを実装することで、フェールセーフ・バックアップを実現する必要がある。
【００１５】
この場合、これらの複数タスクについては、タスク同士の関係を考える必要がある。タスク同士の相関関係として、同一の演算器で計算することが制約されるもの、あるいは、適切でないものがある。そこで、本発明の高信頼型リアルタイム分散処理システムには、この相関関係を管理する実行演算器管理機構を設ける。
【００１６】
実行演算器管理機構は、各タスクが実行されるべき演算器を判断するために、各タスクの実行時間の緊急性・重要性と、タスク相互関係である信頼度上の排他性の度合いについて、データベース内に管理している。
【００１７】
実行演算器管理機構は、データベース内の規定を参照することで、分散処理システムの状況に最適なタスク配置を判断できる。
【００１８】
各タスクの実行時間の緊急性・重要性を考慮して、ＣＰＵ使用効率を最大にして重要タスクを優先するとともに、タスク相互関係である信頼度上の排他性の度合いを損なわないように、実施すべきタスクの選択処理と、そのタスクを割り当てる演算器を選択する処理を実施できる。
【００１９】
また、上記分散処理システム上で、タスクスケジューリングを行えば、常時、計画的に高い信頼度を実現できる。演算器の故障や保守の際にも、ＣＰＵ使用効率と信頼度の両立を図った機能維持を得られる。
【００２０】
また、本発明の態様として、保護リレーの機能を実現する複数のタスクを、ネットワークで接続された複数の演算器に処理させる情報処理装置であって、前記複数のタスクのうち、特定の演算器を用いて処理させることが可能なタスクの組み合わせを記憶する手段と、前記特定の演算器を用いて処理させることが可能なタスクの組み合わせのいずれかを選択し、選択された組み合わせのタスクを前記特定の演算器に実行させる手段を有するものがある。
【００２１】
また、本発明の態様として、保護リレーの機能を実現する複数のタスクを、ネットワークで接続された複数の演算器に処理させる情報処理装置であって、前記複数のタスクのうち、特定の演算器を用いて処理させないタスクの組み合わせを記憶する手段と、前記特定の演算器を用いて処理させないタスクの組み合わせを除く組み合わせのタスクを前記特定の演算器に実行させる手段を有するものがある。
【発明の効果】
【００２２】
本発明の分散処理システムによって、演算器の構成や能力に合わせて、リアルタイム性と信頼性を両立するタスク割り当てが実行される。また、タスクスケジューリングを行うようにすれば、分散処理システムは、常時、計画的に高い信頼度を実現できる。タスクの起動要求が随時発生するような処理に対しても、もしくは、演算器の故障や保守の場合でも、ＣＰＵ使用効率と信頼度の両立を図った機能維持を得られる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施例を図面に基づいて詳細に説明する。第一の実施例を図１に示す。
【００２４】
通信網１０１を介して、複数の演算器、この例では、３つの演算器１０２〜１０４がネットワーク接続されている。ここでいう演算器とは、ディジタル演算を実行する計算機がある。一つの演算器は、電源・ＣＰＵ・メモリなどの基本構成を独立して具備しているので、他の演算器の停止・故障に対して、演算性能に影響が及ばない装置である。また、各演算器は、同一のプログラム実行環境を具備しているので、独立したプログラムモジュールは、何れの計算機でも実行可能となっている。図中、演算器１０２〜１０４内に記述されている箱形の記号１０５〜１０９は、各演算器内で実行されているプログラムモジュールを抽象的に表現している。各演算器のそれぞれに、独立したプログラムモジュール複数個を同時に実行させることが可能になっている。
【００２５】
上記の複数演算器を用いて、複数のタスクを実施することが求められている。これらのタスク各々には、実行時間の制約が与えられている。図１の例では、タスク１〜タスク５の５つのタスク１０５〜１０９を全て実施することが求められている。
【００２６】
また、上記の複数タスクには、タスク同士の相関関係として、同一の演算器で計算することが制約されるもの、あるいは、適切でないものがある。たとえば、誤動作を防ぐために、一つの機能を、多重化したタスクの計算結果のＡＮＤを取る形で実装している場合など、これらタスクを同一の演算器で計算することは、信頼性の都合上、望ましくない。以下、これを信頼度上タスク間制約条件と呼称する。
【００２７】
一つもしくは複数の装置に実装されている実行演算器管理機構１１０〜１１２が、この信頼度上タスク間制約条件のルールを考慮して、タスクの割り当てを実施する処理を行っている。この実現手段としては、幾つかの方法がある。
【００２８】
まず、図１のように、実行演算器管理機構１１０〜１１２が、データベースを保持している構成で実現できる。実行演算器管理機構は、あらかじめ、各タスクについて信頼度上タスク間制約条件を獲得し、これをデータベース内容１１３として保管する。
【００２９】
データベース内容は、各タスクについての実行時間制約と信頼度上タスク間制約条件を記述している。図１では、タスク１に関する記述１１４は、リアルタイム性を定める実行時間制約に関する実行時間評価指標１１５と、タスク１とタスク４の関係に関する実行演算器評価指標１１６などを表している。
【００３０】
これによれば、タスク１は、実行時間の緊急性・重要性を実行時間評価指標１１５で規定されるとともに、タスク４との信頼度上の排他性の度合いを実行演算器評価指標１１６によって規定されている。同様に、その他の各タスク、また、それらタスク同士の記述がされている。つまり、データベース内容１１３から、複数タスクで構成される処理内容における緊急度・重要度・信頼度を判断できる情報が得られる構成になっている。
【００３１】
実行演算器管理機構１１０〜１１２は、データベース内容１１３の情報を得て、各タスクが実行されるべき演算器を判断する。各タスクの実行時間制約を考慮して、ＣＰＵ使用効率を最大にして重要タスクを優先するとともに、信頼度上タスク間制約条件を損なわないように、実施すべきタスクの選択処理（タスク選択処理）と、そのタスクを割り当てる演算器を選択する処理（演算器選択処理）を実施する。
【００３２】
図１の例では、タスク１とタスク４，タスク１とタスク２，タスク２とタスク３，タスク３とタスク５に、厳しい信頼度上タスク間制約条件が課されている。したがって、これら組み合わせを同一の演算器に実装しないように、タスクの実装パターンを作成する。解の１つが、図１のタスク割り当てパターンである。演算器Ｘにはタスク１とタスク３、演算器Ｙにはタスク２とタスク４、そして、演算器Ｚにはタスク５が割り当てられている。上記した信頼度上タスク間制約条件をすべて満足している。
【００３３】
実行演算器管理機構が、信頼度上タスク間制約条件のルールを考慮する別手段を説明する。実行演算器管理機構が、データベースを持つことなく、上記の効果を得ることは可能である。
【００３４】
図２の例では、各々のタスクが、そのタスクに対する実行時間評価指標と、他のタスク間の相関関係各々に対する実行演算器評価指標を、プログラムモジュールに内蔵する実装になっている。通信網１０１、および、複数の演算器１０２〜１０４は、図１に説明した構成と同様である。図１の実施例と異なる点としては、タスク２０１から２０５が前記指標を内蔵していることである。図２の実行演算器管理機構２０６から２０８は、タスク
２０１から２０５が内蔵する指標を、通信を介して、獲得できる機構が付加されている。よって、実行演算器管理機構は、必要に応じて、それらタスクから通信して、送信される指標を参照することで、上記タスク選択処理、および、演算器選択処理を実施することができる。
【００３５】
実行演算器管理機構が、信頼度上タスク間制約条件のルールを考慮する手段として、もうひとつの方法を説明する。プログラムモジュールに他の全てのタスクに対する指標を事前に内蔵させなくても、上記の効果を得ることは可能である。図３の例では、各々のタスクが所定の文法に基づいたタスク名を持つ方法を示している。通信網１０１、および、複数の演算器１０２〜１０４は、図１に説明した構成と同様である。図１の実施例と異なる点としてま、タスク３０１から３０５は、事前設定されたタスク名を持っていることである。図３の実行演算器管理機構３０６から３０８は、タスク３０１から３０５のタスク名を参照して、実行演算器評価指標を算出する。これを行うために、実行演算器管理機構
３０６から３０８は、所定の文法ルール３０９を保持している。文法３１０から３１２は、２つのタスク名パターンの関係として、同一演算器での排他制約条件３１３を記述している。
【００３６】
実行演算器管理機構３０６から３０８は、プログラムモジュールがインストールされた段階で、タスク名を認識する。文法ルール３０９を参照に、文法３１０から３１２のうち、タスク名がマッチングする文法を抽出して、信頼度上タスク間制約条件を獲得することができる。以上、図１や図２の実施例と同様に、タスク選択処理、および、演算器選択処理を実施することができる。
【００３７】
図１から図３の実施例で示したように、実行演算器管理機構は、一つの演算器で実行する必要はない。ＯＳの機能としては、全ての演算器に実装することも可能である。マスタ／スレーブで構成してもよい。さらには、通信網１０１を介さずに、外部の通信路を介して、断続的に接続されるような計算機、たとえば、遠隔の制御卓に実装されても良い。
【００３８】
以上に説明した実行演算器管理機構を導入することで、演算器の構成や能力に合わせて、リアルタイム性と信頼性の制約条件の両立を図ることができる。
【００３９】
次に、本発明を利用して、高信頼度を維持したタスクの活殺機能を実現する構成を説明する。本発明のタスク選択処理および演算器選択処理の機能に加え、タスクの再生・演算器の移動機能が備わっている分散処理システムを想定する。
【００４０】
図４を用いて説明する。図４の例は、図１の例をもとに、演算器Ｘに故障が発生した場合を想定している。演算器Ｘに故障が発生している以外、通信路４０１，複数の演算器
４０２〜４０４、および、タスク４０５〜４０９，実行演算器管理機構４１０〜４１２は、図１と同様である。
【００４１】
この図の例では、タスク１〜５は、すべて同じ演算量が必要なタスクであるが、タスクの緊急度・重要度の点では、タスク５が高い優先度にある状態と想定する。また、演算器Ｙ，Ｚの２つの演算器では、タスク１〜５のうち、４つしか実行できないとする。
【００４２】
この状態にて、演算器Ｘに実装されている実行演算器管理機構４１０、もしくは、演算器Ｙ，Ｚに実装されている実行演算器管理機構４１１，４１２の常時監視によって、演算器Ｘの装置故障を検出したとき、実行演算器管理機構４１１，４１２は、演算器Ｘの装置故障を反映して、タスク選択処理および演算器選択処理を再実行する。
【００４３】
再実行した後の分散処理システムの状態を図５に示す。通信路５０１上に、故障した演算器５０２および健全な演算器５０３，５０４が接続されている。実行演算器管理機構
５０５，５０６によって、タスク選択処理および演算器選択処理が行われている。３つのタスク５０７〜５０９（タスク２，タスク４，タスク５）の割り当ては、装置故障の前から変化はない。故障前との違いとしては、装置５０２で演算されていたタスク１の代替として、新たにタスク５１０を装置５０４に割り当てられている点である。
【００４４】
この割り当ては、タスク個別の性質と、複数タスクの相関関係の性質を、両立するような組み合わせの結果である。タスク選択処理によって、タスク全体での重要度・緊急度の最大化するとともに、演算器選択処理によって、同一演算器に実装するタスク組み合わせによる信頼度も最大化するものである。図５の例の場合、タスクの演算量はすべて同一であるので、２つの演算器では４つのタスクを実行させる実装パターンが複数考えられる。しかし、それらの実装パターンの中で、図１に記載されている実行時間評価と実行演算器評価を最も満足する実装パターンは、
演算器Ｙ（タスク２，タスク４），演算器Ｚ（タスク１，タスク５）
であると一意的に求めることができる。実行演算器管理機構が、このようなタスク選択および演算器選択を処理することにより、図５にあるように、故障検出をトリガーに、装置５０２で演算されていたタスク１の代替タスク５１０を装置５０４に自動的に割り当てる機能が実現できることになる。
【００４５】
次に、本発明を利用して、高信頼度を維持しながら、タスクスケジューリングを行う機能を実現する構成を説明する。タスクスケジューリングを行う実行演算器管理機構は、これまでの説明した機能に加え、現在の計算断面より将来について、発生するタスクの有無を把握している点である。そして、処理対象タスクが発生する複数時間断面毎に、上記タスク選択処理、および、上記演算器選択処理を実施して、複数時間断面を通じて最適解をもとめ、タスクスケジューリングを実現する。
【００４６】
図６〜図１０を用いて実施例を説明する。図６は、実行演算器管理機構が把握しているタスクの発生の予定と、これらタスクの演算器に割り当てられたタスクスケジューリングの結果を概念的に示している。図中、横軸６０１はタスク１に関するタスクの発生と処理を表す時間軸を示す。横軸６０１下部の矢印６０２はタスク１実行要求の発生を示す。横軸６０１上部の長方形６０３はタスク１の実行を示す。また、長方形６０３内部の演算器名は、実行を担当する演算器を示している。この場合、タスク１実行要求６０２は、演算器Ｘによる実行６０３に割り当てられたことを意味する。また、実行６０３の間に、新たな実行要求６０４に対応する実行を割り当てる場合、長方形６０５のように示すものとする。
【００４７】
最初の時間断面６０６においては、これまでに説明してきた実行演算器管理機構によるタスク割り当てで実現できる。時間断面６０４で発生しているタスク要求は、第一の実施例のものと同内容である。つまり、図１のタスク割り当ての構成になる。つまり、図６におけるタスク１〜５の演算器の割り当ては、図１の内容と一致している。
【００４８】
第二の時間断面６０７では、新たにタスク１の要求６０４が発生している。この要求に対応して、図７の信頼度上タスク間制約条件を保ちつつ、実行演算器管理機構によるタスクスケジューリングは、第二の時間断面での新規にタスク割り付けを計画する。図１のタスク割り当ての状態に加えて、実行６０５のように、新たにタスク１を演算器Ｚに割り当てる。結果は、図８の状態になる。図８において、演算器Ｚ８０１内部では、新たに割り当てたタスク８０２（図中太線のタスク）と実行中タスク８０３の間に信頼度上タスク間制約条件は存在しない。全体として、図７の信頼度上スタク間制約条件は満足されている。
【００４９】
第三の時間断面６０８の時点では、演算器Ｘで実行されていたタスク１実行処理６０３と、演算器Ｙで実行されていたタスク２実行処理６１０が処理を終了し、逆に、タスク５の実行要求６１１を受けている。実行演算器管理機構によるタスクスケジューリングは、図９のタスク割り当てを実施する。演算器の処理能力の問題から、タスク５を実行できるのは、演算器Ｘ９０１もしくは演算器Ｙ９０２となる。しかし、演算器Ｘにタスク５を割り当てた場合、実行中タスク９０３（タスク３）との関係で、信頼度上タスク間制約条件を違反することになる。もっとも高い評価を得られる割り当て結果として、新規タスク
９０４（タスク５）を演算器Ｙに実行させることが選択される。実行中タスク９０５（タスク４）との信頼度上の問題はないからである。
【００５０】
第四の時間断面６０９の時点では、演算器Ｙで実行されいるタスク５の実行処理６１２以外のタスクの実行処理はすべて終了している。ここに、タスク１〜５の実行要求６１３を受けている。上記と同様のプロセスにより、実行演算器管理機構によるタスクスケジューリングは、図１０のタスク割り当てを実施する。演算器Ｙ１００１の実行中タスク1002（タスク５）以外に、新規に５つのタスク１００３〜１００７が割り当てられた。信頼度上タスク間制約条件の違反はない。
【００５１】
以上のように、実行要求が発生した各時間断面において、現在実行しているタスクと合わせて、タスク選択および演算器選択を処理することで、タスクスケジューリングが実現できる。
【００５２】
複数時間断面のタスク割り当てによりタスクスケジューリングを行う方法は、最適化手法の実装方法の違いで、複数考えられる。上記の例では、時間断面の流れに沿って、逐次的にタスクスケジューリングを行った。これとは別に、全時間断面でのタスク割り当てを一斉に最適化するとともに、隣接する時間断面同士のタスク割り当て状態の差異を最小にするような組み合わせ問題を解くことでも、タスクスケジューリングを実行できる。
【００５３】
このタスクスケジューリングの機能により、分散処理システムは、常時、計画的に高い信頼度を実現できる。たとえば、実行演算器管理機構が把握していた以外の新規タスクの起動要求がシステム内部から発生したり、もしくは、外部から新規タスクの起動指令がされた際にも、それらの変更を反映してタスクスケジューリングを再実行することで、変更後の高い信頼度を維持できる。また、演算器の故障や保守のために、外部計算装置を経由して、演算器の活殺状態について指令がされた際にも、指令内容に従い演算器の活殺状態を想定した上で、タスクスケジューリングを再実行することで、ＣＰＵ使用効率と信頼度の両立を図った機能維持を得られる。
【００５４】
次に、第二の実施例として、本発明を適用した開発ツールを図１１に示す。
【００５５】
開発対象となっている処理システムは、図１の実施例と同様である。制御のために使用する通信路１１０１を介して、複数の演算器、この例では、３つの演算器１１０２〜1104がネットワーク接続されている。これら演算器では、実行時間の制約が与えられている複数のタスク１１０５〜１１０９全てを実施することが求められている。
【００５６】
この処理システムを設計するために外部の開発用計算機を用いる。制御に用いる必要のない外部通信網１１１０を介して、開発用計算機１１１１が接続されている。この開発用計算機上で、上記タスクの基本設計、および、各種設定値の設定を行っている。
【００５７】
この開発用計算機１１１には、図１の実施例で説明したものと同様の機能を持つ、実行演算器管理機構１１１２を備えている。したがって、開発対象である処理システム1101〜１１０４の装置構成を指示することによって、ＣＰＵ使用効率と信頼度の両立を図ったタスクの初期割り当てが実施できる。
【００５８】
このような開発ツールを用いることによって、実行するタスクの選択処理、および、選択したタスクを計算する演算器の選択処理を実施できる初期設計を行うことが可能になり、高信頼型リアルタイム分散処理システムを設計できる。また、外部通信網などを介してタスクの追加削除修正を行わせることで、処理システムを構成する演算器に実行演算器管理機構を付加することなく、高信頼型リアルタイム分散処理システムが持つ機能の多くを実現できる。
【００５９】
第三の実施例として、本発明を活用して、通信路の監視する機能を具備する分散処理システムを説明する。
【００６０】
処理システムを構成するために、通信路１２０１を介して、複数の演算器、この例では、３つの演算器１２０２〜１２０４がネットワーク接続されている。
【００６１】
ここに、通信路を検証する通信路監視タスクを追加して、処理システムをより信頼度の高いものとする。通信路の監視方法として、監視対象の通信路を介した通信を行う複数タスクを組として、お互いの通信内容の妥当性を検算することで通信路の健常性を監視することにする。
【００６２】
このとき、これら監視タスクのタスク割り当てとタスクスケジューリングは、複雑な問題になる。第一に、監視機能を実現するためには、最低限必要な監視タスクを実施するだけでなく、なるべく実施すべきである監視タスクもできるだけ多く実施する方が好ましい。しかし、あくまでも、本来の処理目的であるタスクの実行を妨げてはならない。第二に、組を構成する個々のタスクは、同じ組のタスク群とは、異なる演算器で実行する必要がある。このような複数の制約を持つ監視タスクの割り当てとスケジューリングを、本発明を用いて実現することができる。
【００６３】
図１の実施例で説明した例と同様に、処理システム内の複数の演算器には、実行演算器管理機構１２０５〜１２０７が具備されている。これら実行演算器管理機構が、実行するタスクの意味合いに関するを、データベース内容１２０８として管理している。データベース内容は、各タスクについての実行時間制約と信頼度上タスク間制約条件を記述している。図１２では、タスク１に関する記述１２０９は、リアルタイム性を定める実行時間制約に関する実行時間評価指標１２１０と、タスク１とタスク４の関係に関する実行演算器評価指標１２１１などを表している。
【００６４】
この例において、図１の実施例と異なる点が、２つあることを想定している。
まず、第一に、通信路監視タスクＡ１２１２に関する実行時間評価指標１２１３，通信路監視タスクＢ１２１４に関する実行時間評価指標１２１５、および、タスク間の実行演算器評価指標１２１６が追加されていることを想定する。
【００６５】
第二に、タスク５に関する実行時間評価指標１２１７は、タスク１〜４の実行時間評価指標よりも、また監視タスクの実行時間評価指標よりも、実行に関する優先度が低い設定になっているとする。つまり、タスク５は必須なタスクでないという設定になっている。
【００６６】
ここに、二つのタスクを組として、通信路監視を実施する機能を追加する。この監視機能は、最低限必要なものであるため、タスク５より高い実行優先度が設定されている。
【００６７】
このような設定を実行演算器管理機構１２０５〜１２０７に与えてやることにより、３つの演算器１２０２〜１２０４に対して、タスク割り当てが１２２０〜１２２５のように実施される。タスク５の実行は省略される。また、その他の６つのタスクについて、互いの排他関係を満足しつつ、各タスクの配置が決まっている。
【００６８】
このように、通信路を監視するタスクを実行演算器管理機構の管理対象の一部とすることで、通信路の正常性を把握する高信頼型リアルタイム分散処理システムを実現できる。
【００６９】
さらには、実行演算器管理機構を用いたタスクスケジューリングを利用して、周期的に監視を実施するようにできる。実行優先度の低い監視タスクの組の処理を周期的に要求することで、処理システムの余った演算能力の範囲内で、可能な限りの高信頼度化を実現することができる。
【００７０】
上記実施例では、通信路の監視について記述したが、同様な手法で、演算器の監視機能を実装することもできる。まず、演算器監視タスクとして、所定の演算式を検算する試験を行い、ネットワークで接続された他の複数演算器と、通信を介して結果を検証するタスクを複数用意する。そして、実行演算器管理機構に対して、それら演算器監視タスクの各々が、異なる演算器で実行するような制約もしくは条件を与える。これにより、演算器監視タスクは、自動的に、適当なタスク割り当て／スケジューリングをうけ、異常演算器の特定、もしくは、ネットワークの故障の検出を可能にすることができる。
【００７１】
第４の実施例として、本発明を適用した処理システムを用いて、一もしくは複数の電力機器を保護対象とするディジタル保護リレー装置を実現した例を考える。図１３に示す。
【００７２】
まず、入力対象機器として、母線や変圧器・送電線などの保護制御対象の電力機器1301の各々について、装置保護に必要な事故検出機能や各種制御に必要な観測機能に用いる電圧電流情報１３０２が、それぞれに接続する入力装置１３０３まで引き出されている。同様に、出力対象機器としては、遮断器などの制御対象の電力機器１３０４について、遮断指令などの制御信号１３０５が、それぞれの装置に接続する出力装置１３０６から伝送されている。
【００７３】
これら入力装置１３０３や出力装置１３０６は、通信線路１３０７を介して、複数演算器１３０８〜１３１１に接続されている。ここでいう演算器とは、ディジタル演算を実行する計算機である。一つの演算器は、電源・ＣＰＵ・メモリなどの基本構成を独立して具備しているので、他の演算器の停止・故障に対して、演算性能に影響が及ばない装置である。また、各演算器は、同一のプログラム実行環境を具備しているので、独立したプログラムモジュールは、何れの計算機でも実行可能となっている。図中、複数演算器１３０８〜１３１０内に記述されている箱形の記号１３１１は、各演算器内で実行されているプログラムモジュールを抽象的に表現しているものである。各演算器のそれぞれに、独立したプログラムモジュールが一つもしくは複数個同時に実行させることが可能になっている。
【００７４】
それぞれのプログラムモジュールの実行を、どの演算器に割り当てるかは、実行演算器管理機構１３１２が管理する。これは、前述の図１に示した第一の実施例の実行演算器管理機構と同様の機能である。したがって、実行演算器管理機構の内部のデータベースには、各タスクについての実行時間制約と信頼度上タスク間制約条件を記述している。
【００７５】
図１３の場合、実行演算器管理機構は、図１４に示すデータベース内容を管理している。各タスクについての実行時間制約と信頼度上タスク間制約条件を記述している。図１４の記述では、各タスクに関する記述１４０１は、リアルタイム性を定める実行時間制約に関する実行時間標価指標１４０２と、その他とのタスク実行演算器評価指標１４０３を含んでいる。
【００７６】
たとえば、機器Ａを保護するための演算群の内、メインの保護演算を常時行うプログラムモジュール「機器Ａ・メイン・常時系」と、そのプログラムモジュールが実行不能になったときに、直ちに切り替わったバックアップするために待機している「機器Ａ・メイン・待機系」は、異なる演算器にて実行されていることが必要である。そこで、タスク「機器Ａ・メイン・常時系」とタスク「機器Ａ・メイン・待機系」の関係に、信頼度上タスク間制約を条件づける。
【００７７】
同様に、誤動作を防ぐためには、「機器Ａ・メイン・常時系」と「機器Ａ・フェールセーフ・常時系」は、異なる演算器にて実行されていることが必要である。よって、二つのタスクの関係に、信頼度上タスク間制約を条件づけている。このような演算器制約による条件付けによって、前記二つのタスクを意味するプログラムモジュールが実行されている二つの演算器が、同一の時間帯にて演算不能状態に陥らない限り、機器Ａに対する保護機能が誤不動作する可能性は生じない。
【００７８】
また、装置の一重故障が発生しても、さらに高信頼性を維持するようなタスク割り当てを上限づけることもできる。たとえば、装置故障で常時系のタスクの何れかが待機系に切り替わった事態においても、メインとフェールセーフのタスクが異なる演算器にて実行されるように設計するならば、「機器Ａ・メイン・常時系」と「機器Ａ・フェールセーフ・待機系」のタスクの関係に、信頼度上のタスク間条件として、タスク実行演算器評価指標を設定できる。この場合、排他条件１４０４は、信頼度上タスク間制約１４０３より、低い優先度で設定すればよい。
【００７９】
このように、機器Ａに関するタスク群全てに対して、図１４にあるような設計を行っている。また、同様な考え方に従って、機器Ｂに関するタスク群に対して設計を行っている。このデータベースをもつ実行演算器管理機構によって、各プログラムモジュールが実行される演算器が適切に決定される。その結果が、図１３のタスク割り当てである。全ての信頼度上タスク間制約と条件付けを満足することは演算器の台数から実現できない。優先度の高い制約１４０３を満足させると同時に、排他条件１４０４を可能な限り満足する配置となる。任意の時点で、システム全体の処理能力を活用して、信頼度の高いシステムを実現できる。
【００８０】
さらに、上記の実施例では、上記の入出力関係の管理するために、管理機構も設けてある。図１３のように、入出力装置Ｊ〜Ｍは、機器Ａ〜Ｄに固定的に接続されている。それら機器の入出力情報をマルチドロップの通信網に送受信する構成になっている。入出力関係管理機構１３１３が、演算器内のタスクが、どの入力装置のＶ，Ｉ情報を用いて、どの出力装置へ制御信号を伝送するかをデータベースに管理している。
【００８１】
例として、機器Ａに接続する入力装置として、１３１４の入力装置Ｊと１３１５の入力装置Ｊ′の２つが用意されている図１３のシステム上での動作を考える。入出力関係管理機構は、図１５に模式的に示すデータベース内容によって、１５０１の入力装置Ｊと1502の入力装置Ｊ′は互いに代替可能な関係にあることの指定１５０３を受けている。したがって、入出力関係管理機構が、入力装置Ｊの故障を検知した場合、入力装置Ｊが送信していた入力データを、入力装置Ｊ′が送信する入力データに代替するように、各演算器に周知する。これによって、入力装置Ｊの故障の影響を回避することができる。
【００８２】
上記の説明にて、図１４，図１５で示したようなデータベースの内容は、処理システムの設計段階やメンテナンス時に、ルールベースで指定することで実装する。その方法について列を挙げて説明する。
【００８３】
図１６は、実行演算器管理機構に与えるデータ形式を示している。図１４で模式的に表現した内容は、一定の文法に従って、テキストデータで与えることができる。
【００８４】
図１６内、一行目１６０１は、コメント文である。二行目１６０２以降で、機器Ａおよび機器Ｂに関する保護機能の設定を行っている。
【００８５】
まず、機器Ａの保護に関するタスク群の宣言を行っている。三行目１６０３の記述をもって、常時処理を行うタスクとして、“module_A1” という名称で、機器Ａ・メイン・常時系の機能を処理するプログラムモジュールを宣言している。＃印以降の「機器Ａ・メイン・常時系」という文字列はコメント文である。さらに、四行目１６０４の記述をもって、待機処理を行うタスクとして、“module_A2” という名称で、機器Ａ・メイン・待機系の機能を処理するプログラムモジュールを宣言している。同様に、機器Ａについて、合計四つのタスクを宣言している。なお、各タスクのリアルタイム性に関する記述、たとえば、タスク処理開始時間，終了時間，優先度などについては、別途設定されているものとする。
【００８６】
次に、機器Ａの保護に関する常時系と待機系の関係を宣言している。七行目１６０５では、module_A1のバックアップをmodule_A2が行うことを定義している。以下、同様に、フェールセーフ機能のバックアップについても記述している。
【００８７】
機器Ａについての定義データの最後として、各タスク間の排他関係について宣言している。九行目１６０６では、「機器Ａ・メイン・常時系」機能と、「機器Ａ・フェールセーフ・常時系」機能が、異なる演算器に割り当てられる制約を最も高い優先度にて定義している。十一行目１６０７では、「機器Ａ・メイン・常時系」機能と、「機器Ａ・フェールセーフ・常時系」機能が、異なる演算器に割り当てられると望ましいことを、優先度を下げた条件として定義している。以下、同様に、４つのタスクの間に存在する５つの関係について定義をしている。
【００８８】
図１６に示した実行演算器管理機構に与えるテキストデータでは、以上の機器Ａに関する保護と同様に、機器Ｂに関する設定も記述されている。このようにして、図１４にて模式的に示した信頼度上タスク間制約条件のルールを与えることが可能になっている。
【００８９】
次に、入出力関係管理機構に与えるデータ形式を説明する。図１５で模式的に表現した内容は、一定の文法に従って、図１７のようなテキストデータで与えることができる。
【００９０】
図１７内、一行目１７０１は、コメント文である。二行目１７０２以降で、入力装置に関する設定，出力装置に関する設置、および、入出力に関する設定を行っている。
【００９１】
まず、入力装置Ｊが送信する入力量について宣言を行っている。三行目１７０３の記述をもって、入力装置Ｊの一番目の入力量に、“a_bus_v1”という名称を設定している。以下、入力装置Ｊが送信する入力量の全てについて、宣言と名称設定を行っている。
【００９２】
同様にして、出力装置が受信する出力量についても宣言を行う。十七行目１７０４以降で、出力装置Ｌについて定義する。入力量に関する記述と同様にして、十八行目１７０５にて、出力量の宣言と名称設定を行っている。
【００９３】
最後に、各タスク毎に、そのタスクが用いる入出力量の設定を行う。二十二行目1706以降で、タスクmodule_A1 の入出力量の設定を行っている。前記タスクを実現するプログラムモジュールが持つ引数を、順番に設定する。二十三行目１７０７では、一番目の引数として、入力a_bus_v1を用いることが定義されている。同様に、前記プログラムモジュールが必要な入出力量について全て定義する。その上で、そのタスクが使用する入出力量に対して代替できるものを設定している。二十八行目１７０８では、一番目の引数に用いる入力a_bus_v1に異常があった場合、a2_bus_v1 を替わりとして使うことを定義している。
【００９４】
図１７に示した入出力関係管理機構に与えるテキストデータによって、図１５にて模式的に示した入出力量のつながりと、その代替に関するルールを与えることが可能になっている。
【００９５】
上記の図１６および図１７のような文法に基づいた表現方法を導入することで、設計者・運用者が直接ルールをテキストにて書き下すことが可能になっている。また、ＧＵＩを備えた設計・運用ツールから、上記表現のテキストファイルを出力させる仕組みによって、設計者・運用者は、より簡易に設計・運用ができる環境を得る。
【００９６】
以上のように、実施例１で示した実行演算器管理機構を持つ高信頼型リアルタイム分散処理システムに、電力機器のディジタル保護リレーを実現するタスク群を管理させることで、高信頼度の保護リレーシステムを実現することができる。
【００９７】
管理すべきタスク同士の相関関係は、複数存在する。たとえば、上記実施例３の中で説明したように、同一計算目的の常時系タスクと待機系タスクの相関関係として、異なる演算器で実行するような制約もしくは条件があげられる。これにより、演算器故障時の保護リレー機能停止を防止したディジタル保護リレーが実現される。
【００９８】
また、保護リレーの主検出機能を実現する主検出タスクと、フェールセーフ要素として事故検出機能を実現する事故検出タスクを備える保護リレーでは、同一保護リレーの主検出タスクと事故検出タスクの相関関係として、異なる演算器で実行するような制約もしくは条件があげられる。これにより、誤動作を防止したディジタル保護リレーが実現される。
【００９９】
この他に、母線保護リレーの一括母線保護機能を実現する一括母線保護タスクと、分割母線保護機能を実現する分割母線保護タスクを備える保護リレーでは、同一母線に対する一括母線保護タスクと分割母線保護タスクの相関関係として、異なる演算器で実行するような制約もしくは条件があげられる。これにより、母線保護リレー誤不動作を防止したディジタル保護リレーが実現される。
【０１００】
さらに、並列回線で構成される送電線の各々について、送電線保護リレー機能を実現する送電線タスクを備える保護リレーでは、同一平行回線に属する複数の送電線保護に対する送電線タスク同士を、異なる演算器で実行するような制約もしくは条件があげられる。これにより、並列送電線の保護に対する演算器故障の影響を最小化したディジタル保護リレーが実現される。
【０１０１】
以上に述べたような、高信頼型リアルタイム分散処理システムで管理させた高信頼度保護リレーシステムについて、図を用いて第５の実施例として説明する。
【０１０２】
まず、システム全体像を図１８に示す。光媒体の通信を実現する光通信路１８０１を介して、複数の演算器、この例では、３つの演算器１８０２〜１８０４がネットワーク接続されている。ここでいう演算器とは、ディジタル演算を実行する計算機がある。一つの演算器は、電源・ＣＰＵ・メモリなどの基本構成を独立して具備しているので、他の演算器の停止・故障に対して、演算性能に影響が及ばない装置である。また、各演算器は、同一のプログラム実行環境を具備しているので、独立したプログラムモジュールは、何れの計算機でも実行可能となっている。さらに、各演算器は、前記光通信網１８０１を介して、商用周波数に同期した信号を獲得している。よって、商用周波数の電気角と同期した保護リレー演算が可能になっている。
【０１０３】
前記光通信網１８０１には、演算器だけでなく、入出力装置が接続されている。この形態は電力線の一相分に着目して図示する。商用電力が通電されうる電力線１８０５には、遮断器１８０６と変圧器１８０７が設置されていて、それぞれの装置には入出力装置1808〜１８１１が具備されている。これら入出力装置が、前記光通信網１８０１に接続しているシステム形態になっている。
【０１０４】
前記入出力装置１８０８〜１８１１は、アナログディジタル変換処理機能および通信処理機能および電気／光変換機能を備え、前記遮断器１８０６および変圧器１８０７に装着されている。前記入出力装置１８０８および１８０９は、前記遮断器１８０６の二重系通信端として、遮断器から演算器への電圧電流情報、および、演算器から遮断器への遮断制御情報について、通信機能を実現する。同様に、前記入出力装置１８１０および１８１１は、前記変圧器１８０７の二重系通信端として通信機能を実現している。なお、電源の観点からも、絶縁の観点からも、それぞれの入出力装置と演算器は独立している。
【０１０５】
なお、これまでに説明した実施例と同様に、本システムには、実行演算器管理機構1812、および、入出力関係管理機構１８１３が任意の一つもしくは複数の演算器に実装されている。
【０１０６】
以上の構成をもつ高信頼型リアルタイム分散処理システムで管理させた高信頼度保護リレーシステムにおいて、リアルタイム性を持つ複数タスクの処理が求められている。それらタスクについて、図１９に、抽象的に表現する。図１９中の箱形の記号１９０１〜1906は、演算器１８０２〜１８０４にて処理されるタスクの各々を表現している
記号１９０１が示すタスクは、以下、“Task１”もしくは“TrPrMN”と呼ぶことにする。Task１は、主変圧器差動継電要素８７Ｔ演算、および、その要素の発火条件を規定するシーケンス演算を実現するタスクである。
【０１０７】
記号１９０２が示すタスクは、以下、“Task２”もしくは“TrPrFD”と呼ぶことにする。Task２は、上記Task１のフェールセーフ機能を果たす異アルゴリズム事故検出機能、および、その要素の発火条件を規定するシーケンス演算を実現するタスクである。
【０１０８】
記号１９０３が示すタスクは、以下、“Task３”もしくは“TrPrMN-FT” と呼ぶことにする。Task３は、上記Task１のフォールトトレラント機能を果たすスタンバイ機能である。上記Task１が実行不能になった場合に、直つにその機能をバックアップできるように、Task１と同アルゴリズムについて、最小部分の演算を行いながら継続待機する。入力量の取り込み、および、ディジタルフィルタ処理など、前値保持が必要な処理を継続するための演算を実施する。
【０１０９】
記号１９０４が示すタスクは、以下、“Task４”もしくは“TrPrFD-FT” と呼ぶことにする。Task４は、Task３と同様に、上記Task２のフォールトトレラント機能を果たすスタンバイ機能である。
【０１１０】
記号１９０５が示すタスクは、以下、“Task５”もしくは“ＳＳ−Ｐ／Ｐ′”と呼ぶことにする。Task５は、図１８で説明した入出力装置Ｐ（図１８中１８０８）および入出力装置Ｐ′（図１８中１８０９）の健常性を監視する機能を果たしている。たとえば、入出力装置において、電力線から入力される電気量（アナログ値）について、商用周波数に対する第１２次高調波成分を検査用信号として重畳するハードウェア機能を付加する。これによって、任意の演算器において、入出力装置と送受される情報に含まれる検査用高調波成分を監視することで、入力信号の健常性を監視することが可能になる。
【０１１１】
記号１９０６が示すタスクは、以下、“Task６”もしくは“ＳＳ−Ｑ／Ｑ′”と呼ぶことにする。Task６は、Task５と同様に、図１８で説明した入出力装置Ｑ（図１８中1810）および入出力装置Ｑ′（図１８中１８１１）の健常性を監視する機能を果たしている。
【０１１２】
これら複数タスクについては、リアルタイム性が求められている。この図１９の例では、Task１〜Task６の６つのタスクを、上記図１８の３つの演算器１８０２〜１８０４を用いて、所定の実行時間以内に実施することが求められている。
【０１１３】
図１９では、これらTask１〜Task６の６つのタスク各々について、事前に定められている実行時間制約を、１９０７〜１９１２で示す。上記の実施例と同様に、実装上は、これら実行時間制約に関するデータは実行演算器管理機構が管理するデータベースに事前に与えられている。以下に、それぞれの実行時間制約の内容を説明していく。
【０１１４】
実行時間制約１９０７に図示している内容は、Task１が実行優先度Level１ であり、そのタスクについて要求が３０deg の時間頻度で発生して、また、発生してから処理するまでの期限が３０degであるということである。ここでのLevelは小さいほど高い優先順位を示しているので、Level１ とは最優先のタスクであることを意味する。また、ここでの処理期限の単位deg は、商用周波数の１サイクルに対する電気角を単位として表現しており、図１８にて説明したように、商用周波数の電気角と同期した保護リレー演算を行う際の時間刻みを指定している。
【０１１５】
同様に、実行時間制約１９０８は、Task２が実行優先度Level１であり、発生頻度が30
deg 、その処理期限が３０deg であることを指定している。つまり、主たる保護機能を実現するTask１とTask２が最優先タスクであることを規定している。
【０１１６】
また、実行時間制約１９０９および１９１０は、保護機能のフォールトトレラントを実現するTask３とTask４が、最優先に次ぐ優先順位のタスクであり、同様に、発生頻度が
３０deg 、処理期限が３０deg であることを規定している。
【０１１７】
一方で、実行時間制約１９１１および１９１２は、実行優先順位が、設計上、最も低い優先順位となっている。発生頻度は１０sec であり、その処理は、期限２sec のうちに完了すれば良いタスクであることを規定している。また、Task６については、システム起動後１min の間は、このタスクの発生がないなど、非周期的なタスクの発生ルールについても記載している。
【０１１８】
本実施例について、以上に説明したタスク箇々に規定される実行時間制約に加えて、これまでの高信頼型リアルタイム分散処理システム実施例の場合と同様に、タスクの相関関係について規定される信頼度上タスク間制約条件が、高信頼度保護リレーシステムとして必要である。
【０１１９】
排他制約１９１３〜１９１６は、Task１〜Task４の関係上に依存する信頼度上タスク間制約条件を、図示している。上記の実施例と同様に、実装上は、これら信頼度上タスク間制約条件に関するデータは実行演算器管理機構が管理するデータベースに事前に与えられている。以下に、それぞれの信頼度上タスク間制約の内容を説明していく。
【０１２０】
排他制約１９１３に図示している内容は、Task１とTask３ が排他優先度Level１にあるということを示している。ここでのLevel は小さいほど優先順位を示しているので、
Level１ とは、演算器の排他配置について最優先で考慮するであることを意味する。Task１のフォールトトレラント機能を実現するTask３は、別の演算器によって処理されていないと全くの無意味であるからである。
【０１２１】
同様に、排他制約１９１４では、Task２とTask４について、演算器の排他配置を最優先で考慮するであることを規定している。
【０１２２】
一方で、排他制約１９１５では、Task１とTask２ について、排他優先度Level２にあるということを示している。Task１のフェールセーフ機能を実現するTaskは、原則的には別の演算器によって処理されているべきものである。しかし、Task２は事故検出方式として異アルゴリズムで構成されているので、主検出のTask１と同一演算器で処理されても無意味ではない。そこで、可能な限り、演算器の排他配置を考慮するように、信頼度上タスク間制約を規定している。
【０１２３】
同様に、排他制約１９１６では、Task３とTask４について、可能な限り、演算器の排他配置を考慮するように、信頼度上タスク間制約を規定している。
【０１２４】
以上に説明した実行時間制約と信頼度上タスク間制約の規定内容に基づいて、実行演算器管理機構がタスクの配置を決定、および、実行指令を管理していく。その処理段階について順を追って説明していく。まず、システム起動時、つまり、初期動作について、本実施例の場合を具体的に説明する。
【０１２５】
図２０は、システム起動時における実行演算器管理機構の動作を示すフローチャートである。まず、処理２００１において、全ての演算器を初期化する。そして、各演算装置の処理能力の状態を把握し、各演算器の演算力を把握する処理２００２を実施する。次に、処理２００３にて、実行演算器管理機構は、ＤＢから全タスクに関する規定内容を呼び出す。具体的には、以上に説明した実行時間制約と信頼度上タスク間制約である。この中から、システム起動当初から起動要求をもつタスクを選択する処理２００４を実施する。図１９の例で言えば、Task１〜５は、初期起動要求タスクであるが、Task６はそうではない。
【０１２６】
上記処理２００４によって、初期起動要求タスクに関する実行時間制約と信頼度上タスク間制約の把握が完了する。この制約条件に関するデータをもとに、処理２００５にて、違反量を最小にするように、つまり、各タスクの実行時間制約を守るとともに、また、
ＣＰＵ使用効率を最大にして重要タスクを優先するとともに、信頼度上タスク間制約条件を損なわないように、実施すべきタスクの選択と、そのタスクを割り当てる演算器を選択する。このために、組み合わせ最適化問題を解く演算処理を行い、その結果から、タスクの配置を決定する。それぞれのタスクの配置位置が決定したら、実行演算器管理機構は、それらタスクの実行形式のプログラムモジュール（以下、タスクモジュール）を配信する処理２００６および配信したタスクモジュールを実行する指令を出す処理２００７を行う。
【０１２７】
さらに、実行演算器管理機構は、初期タスクの起動のみならず、次期時間断面でのタスク配置を事前に演算して、タスクモジュールの配信を行う。次期時間断面とは、次にタスク発生要求がある時間断面である。本実施例での次期時間断面とは、図１９にあるように、最小タスク発生頻度が３０deg なので、起動時から電気角に同期して３０deg 後のことである。
【０１２８】
処理２００８では、次期時間断面におけるタスク要求を、先に説明した実行時間制約に規定されるタスクのリアルタイム性から把握し、これについて、上記と同様に、次期タスク配置最適化処理２００９を行う。そして、配信済みの初期タスクモジュールの配置と、今決定した次期タスクモジュールの配置を比較して、必要に応じて、次期タスクモジュールを目的の演算器に配信する処理２０１０を実施する。これにより、次の時間断面では、外部要因によってタスク発生などがなく、タスク要求の発生が予定通りならば、即座にタスクを最適配置で実行することが可能になる。
【０１２９】
図２１に、上記の実行演算器管理機構の起動時動作によって割り振られた初期タスク配置の状態を示す。演算器Ｘ（図中２１０１）に、Task１（図中２１０２）とTask５（図中
２１０３）が配置され、演算器Ｙ（図中２１０４）には、Task２(図中２１０５)とTask３（図中２１０６）が配置され、演算器Ｚ（図中２１０７）には、Task４（図中２１０８）が配置されている。この配置ならば、図１９の１９１３〜１９１６に示した信頼度上タスク間制約（ここでは２つのタスクの排他制約）が、全て満足されている。現段階で要求のあるタスク全ての処理が実行されており、システム全体が健全な状況にある。たとえば、時間が経過してTask６要求が発生した場合でも、実行演算器管理機構は、Task５の配置部分に自動的にTask６を割り当て、終了後、Task５に戻す処理を計画できるので、システム全体の健全状態を維持することが出来る。
【０１３０】
システム全体として計画外の状況が起きたとき、たとえば、何れかの演算器が使用不能に陥った時などでは、実行演算器管理機構は、タスクの割り振り直しを実施する必要がある。その処理フローを図２２に示す。
【０１３１】
まず、実行演算器管理機構は、前回の実行演算器管理機構自身の起動から、想定した時間（本実施例では３０deg ）が経過すると起動を行う。これは、電気角に同期した信号を割り込みのトリガとした処理２２０１で実装される。
【０１３２】
実行演算器管理機構は、起動後まず、演算力テーブル、つまり、演算器の状態に変化がないかを各種監視結果をあつめて判断する処理２２０２を実施する。装置異常が認められた場合は、フォールトトレラントを機能させる処理に入る。これについては後述する。以下には、装置異常が無かった場合の処理を説明する。
【０１３３】
まず、処理２２０３にて、現時点タスク要求の読み込みを行う。本システム上のタスクは、自身の動作の結果として別タスクを起動する必要が発生した場合は、実行演算器管理機構にタスク要求をエントリすることになっている。たとえば、Task１の主検出タスクには、異常な入力量をはじく機能が備えられていて、その際には、精密な異常監視を行う要求を出す構成になっている。つはり、Task１は、異常入出力検出を条件に、Task６要求を実行演算器管理機構に発信する。このような要求が処理２２０３によって読みとられる。
【０１３４】
この現時点タスク要求と、実行演算器管理機構の前回実行における次期断面の予定タスクとに差異があるかを、予定外タスク要求有無の判定処理２２０４にて判断して、処理を分岐する。
【０１３５】
予定外タスクがなかった場合には、この時間断面で実行するタスクモジュールは、実行演算器管理機構の前回実行において配信剤みである。よって、処理２２０５にて、現時点タスク実行指令を直ちに送信する。
【０１３６】
予定外タスクがあった場合には、処理２２０６にて、実行可能なタスク、つまりタスクモジュールが演算器に配信済みであるタスク群の中で、配置最適化し直す。予定外タスクの実行時間制約が高い優先順位である場合は、実行演算器管理機構が、タスクの再配置を行うことがありうる。実際に再配置されるかは、他の配信済みタスクとの信頼度上タスク間制約に依存する。
【０１３７】
いずれにしても実行演算器管理機構が、実行可能タスク内で最適な配置を自動的に選択する。その上で、処理２２０７によって、上記の実行可能タスク内で最適配置のタスクについて実行指令を送信する。また、タスクモジュール配信に比較して時間的余裕がある場合には、処理２２０８によって、補足タスクとして一部のタスクを配信し、処理２２０９によって、それらの補足タスクに直ちに実行指令を送信する機構も具備している。
【０１３８】
予定外タスクがあった場合でも、なかった場合でも、処理２２１０〜２２１２によって、次期時間断面におけるタスク要求について、配置最適化処理を行い、必要に応じて、次期タスクモジュールを目的の演算器に配信する処理を実施する。これは、図２０で説明した２００８〜２０１０の手続きと全く同様である。
【０１３９】
次に、判定処理２２０２にて、装置異常が認められて、フォールトトレラントを機能させる場合について説明する。
【０１４０】
まず、処理２２１３において、異常が発生した装置内で実行されていたタスクに対して、フォールトトレラントの機能を果たす待機系タスク（以下、フォールトトレラントタスク）が存在するか探索する。図１９の例で言えば、［Task１］TrPrMNに対して、[Task３]TrPrMN-FT がフォールトトレラントタスクであることが規定されている。このように、異常発生時にその装置で実行中だったタスクに対するフォールトトレラントタスクをＤＢから検索する。
【０１４１】
ここで、フォールトトレラントタスクが存在する場合には、即座に、該当タスクを待機処理モードから主処理モードに切り替える必要がある。処理２２１４で、処理２１１３で探索したフォールトトレラントタスクに対して、主従モード切換指令を送信することで、これを実現する。主従モードの切換えによって、即時で機能維持を図る。
【０１４２】
この主従モードの切換えの後、タスクの再配置を行う。基本的には、既に説明した予定外タスクの発生に対する処理と同様の考え方である。既に配置済みのタスクモジュールの組み合わせにおいて、最適な実行モジュールの選択を行う機構である。ただし、演算器異常が発生している場合なので、まず、処理２２１５にて、演算力テーブルを再作成して、実行演算器管理機構が把握している演算器の状態を更新する。この上で、先に説明した処理２２０６〜２２０９によって、現状で実行可能な最適なタスクを選択し、これらに実行指令を送信する。また、次期時間断面におけるタスク配置最適化についても、先に説明した処理２２１０〜２２１２によって、実施される。
【０１４３】
以上に説明した図２２の処理フローにより、演算器異常が発生した際には、即座にフォールトトレラント機能が動作した後、次の時間断面、つまり、３０deg ステップ後には、自律的に最適な状態のタスク配置を得て実行継続される。
【０１４４】
以下には、図２１に示したタスク配置の場合を例として、演算器異常発生時の動作について図２３を用いて説明する。タスクの規定内容(実行時間制約と信頼度上タスク間制約)は図１９と同一であり、タスク配置は図２１のタスク配置と同一である時間断面で、演算器異常が発生した場合を考える。
【０１４５】
図２３において、演算器２３０１〜２３０３は、図２１の演算器２１０１，２１０４，２１０７と同一であり、タスク配置も同様になっている。ここで、演算器２３０１が使用不能になった場合［Task１］TrPrMN（図中２３０４）と［Task５］入出力Ｐ／Ｐ′監視
（図中２３０５）が実行不能になる。この時の実行演算器管理機構の動作を、図２２のフローチャートにそって、以下に説明する。
【０１４６】
まず、処理２２０１で割込起動した実行演算器管理機構は、処理２２０２にて演算器Ｘ（図２３中２３０１）の異常を判断する。この場合、直ちにフォールトトレラント起動処理に移行する。処理２２１３にて、［Task１］TrPrMNに対して、フォールトトレラントタスク［Task３］TrPrMN-FT が演算器Ｙ（図中２３中２３０２）に実行されていることを把握する。［Task５］入出力Ｐ／Ｐ′監視には、フォールトトレラントタスクは存在しない。この後、即座に、処理２２１４にて、［Task３］TrPrMN-FT に、主従モードの切換えを指示する。図２４に示すように、図中２４０１の［Task３］TrPrMN-FTは、［Task１］
TrPrMN 相当に成り代わり、Task１の機能を継続して提供することになる。
【０１４７】
続いて、処理２２１５で、演算器Ｘが使えない状況を反映した後、配信済みのタスクモジュールで、より良いタスクの実行形態がないかを計画する処理２２１６を実施する。ここでは、具体的には、図中２４０１の［Task１］TrPrMNと図中２４０２の［Task２］
TrPrFDの信頼度上タスク間制約違反(排他Level２)や、どの演算器でも実行されない
［Task３］TrPrMN-FTの実行時間制約違反（実行優先Level２）を解消できる組み合わせを探索するが、この例ではその解は存在しない。したがって、図２４のタスク配置の形態が、演算器Ｘの異常に対する緊急的な配置となる。処理２２０７で、タスク２４０１〜2403に実行指令が送信される。補足して実行できるタスクを存在しなかったので、処理2208〜２２０９ではタスク配信と実行指令は行われない。
【０１４８】
次に、次期時間断面、つまり電気角３０deg 経過した将来断面における最適配置を計画し、タスクモジュールの配信を行う。まず、処理２２１０にて、タスク要求を調べる。ここでは、図１９のタスク規定内容に基づいて、Task１〜４について、タスク要求を把握した。そして、処理２２１１にて、次期タスク配置最適化を行う。その結果、図２４の解
（タスク配置）を得ることが出来る。
【０１４９】
図２５のタスク配置を図２４に比較すると、図中２５０１の［Task１］TrPrMNの配置は変わらないが、図中２５０２の［Task４］TrPrFD-FT と、図中２５０３の［Task２］
TrPrFDの配置が入れ替わっている。これによって、［Task１］TrPrMNと［Task２］TrPrFDの信頼度上タスク間制約違反(排他Level２)を解消できている。しかし、［Task３］
TrPrFD-FTの実行時間制約違反（実行優先Level２）については、これを解消する配置は見つからない。よって図２５のタスク配置になる。
【０１５０】
最後に、処理２２１２によって、次期タスクモジュール配信を行う。具体的には、
［Task４］TrPrFD-FTのタスクモジュールを演算器Ｙに、［Task２］TrPrFDのタスクモジュールを演算器Ｚに配信する。これによって、次期時間断面において、図２５のタスク配置となるために必要なタスクモジュールが準備される。
【０１５１】
次期時間断面、つまり電気角３０deg 経過した将来断面において、演算器の状態やタスク要求の状態に変化がなければ、実行演算器管理機構は、タスク２５０１〜２５０３に実行指令を送信するだけで、最適なタスク処理が継続できる。
【図面の簡単な説明】
【０１５２】
【図１】本発明を適用した高信頼型リアルタイム分散処理システムの構成。
【図２】高信頼型リアルタイム分散処理システムの別形態その１。
【図３】高信頼型リアルタイム分散処理システムの別形態その２。
【図４】装置故障時の動作その１。
【図５】装置故障時の動作その２。
【図６】高信頼型リアルタイム分散処理システムによるタスクスケジューリングの一例。
【図７】実行演算器管理機構データベースの模式図の一例。
【図８】タスクスケジューリングにおける一時間断面その１。
【図９】タスクスケジューリングにおける一時間断面その２。
【図１０】タスクスケジューリングにおける一時間断面その３。
【図１１】外部通信網からの設計運用ツール。
【図１２】通信路監視タスクを具備した分散処理システムの構成。
【図１３】本発明を適用したディジタル保護リレー装置の構成。
【図１４】ディジタル保護リレーにおける実行演算器管理機構データベースの模式図の一例。
【図１５】ディジタル保護リレーにおける入出力管理機構データベースの模式図の一例。
【図１６】実行演算器管理機構データベースのテキスト形式の一例。
【図１７】入出力管理機構データベースのテキスト形式の一例。
【図１８】本発明を適用したディジタル保護リレー装置の一例（システム構成）。
【図１９】ディジタル保護リレー装置の一例におけるタスク概念図。
【図２０】ディジタル保護リレー装置の一例における実行演算器管理機構の起動時動作フロー。
【図２１】ディジタル保護リレー装置の一例における起動時の初期タスク配置。
【図２２】ディジタル保護リレー装置の一例における実行演算器管理機構の常時動作フロー。
【図２３】ディジタル保護リレー装置の一例における演算器異常の想定。
【図２４】ディジタル保護リレー装置の一例におけるフォールトトレラント動作(１)。
【図２５】ディジタル保護リレー装置の一例におけるフォールトトレラント動作(２)。
【符号の説明】
【０１５３】
１０１…通信網、１０２…演算器Ｘ、１０３…演算器Ｙ、１０４…演算器Ｚ、１０５…タスク１、１０６…タスク２、１０７…タスク３、１０８…タスク４、１０９…タスク５、１１０…実行演算器管理機構、１１６…実行演算器評価指標。
【図１】
2006323863.tif 000003
【図２】
2006323863.tif 000004
【図３】
2006323863.tif 000005
【図４】
2006323863.tif 000006
【図５】
2006323863.tif 000007
【図６】
2006323863.tif 000008
【図７】
2006323863.tif 000009
【図８】
2006323863.tif 000010
【図９】
2006323863.tif 000011
【図１０】
2006323863.tif 000012
【図１１】
2006323863.tif 000013
【図１２】
2006323863.tif 000014
【図１３】
2006323863.tif 000015
【図１４】
2006323863.tif 000016
【図１５】
2006323863.tif 000017
【図１６】
2006323863.tif 000018
【図１７】
2006323863.tif 000019
【図１８】
2006323863.tif 000020
【図１９】
2006323863.tif 000021
【図２０】
2006323863.tif 000022
【図２１】
2006323863.tif 000023
【図２２】
2006323863.tif 000024
【図２３】
2006323863.tif 000025
【図２４】
2006323863.tif 000026
【図２５】
2006323863.tif 000027