(57)【特許請求の範囲】
【請求項１】
下記のものを備えるシステムアーキテクチャ（１）、
第１のプロセッサ（２）、
第１のプロセッサに割り当てられた第１の記憶装置（４）、
入出力部および第１のプロセッサ（２）に結合された抑止入力部（１６）を備え、インターフェース装置等の、抑止入力部（１６）に抑止信号が伝達されたとき、入力部を通して情報を受領しないように第１の周辺機器を抑止するためにこの抑止入力が使われ、第１のプロセッサ（２）に割り当てられた第１の周辺機器（１２）、
第１のプロセッサ（２）で実行可能で、エラーのないことが検証されており、少なくとも主に第１のプロセッサ（２）の第１の記憶装置（４）と相互に作用し、第１のプロセッサ（２）で実行される場合、所定の条件に達したときに、第１のプロセッサに割り当てられた周辺機器群（１２）に抑止信号を出力し、また第１のプロセッサ（２）を解放するように作動し、さらに、第１のプロセッサ（２）を取り戻したら直ちに、抑止信号をキャンセルするように作動する、第１のプロセッサ（２３）で実行可能な第１のプログラムパッケージ（Ｐｒｏｇ．Ｉ）、
第１のプロセッサ（２）に割り当てられた第２の記憶装置（５）、
第１のプロセッサ（２）に接続された入出力部を持つインターフェース装置などの、第１のプロセッサ（２）に割り当てられた第２の周辺機器（１３）、
少なくとも主に第１のプロセッサ（２３）の第２の記憶装置と相互に作用し、第１のプログラムパッケージ（Ｐｒｏｇ．Ｉ）よりもエラーのない確率が低く、エラーのない動きの場合は、第１のプログラムパッケージ（Ｐｒｏｇ．Ｉ）に割り当てられた周辺機器（１２）の入出力部に主に読取りアクセスだけを行い、決められた条件に達したときは第１のプロセッサ（２）を解放する、第１のプロセッサで動きうる第２のプログラムパッケージ（Ｐｒｏｇ．ＩＩ）。
【請求項２】
第１の周辺機器群（１２）の中で少なくとも１つは第１のプログラムパッケージ（Ｐｒｏｇ．Ｉ）用の周辺機器が存在することを特徴とする請求項１に基づくシステムアーキテクチャ。
【請求項３】
第１の周辺機器群（１２）の中で、有効な方法で第１のプログラムパッケージ（Ｐｒｏｇ．Ｉ）からもまた第２のプログラムパッケージ（Ｐｒｏｇ．ＩＩ）からも書込みと読取り、あるいはどちらか一つだけでアクセスされる、少なくとも一つの周辺機器が存在することを特徴とする請求項１に基づくシステムアーキテクチャ。
【請求項４】
第１と第２のプログラムパッケージ（Ｐｒｏｇ．Ｉ、Ｐｒｏｇ．ＩＩ）がそれを通じて通信し合う記憶領域（２５）が存在することを特徴とする請求項１に基づくシステムアーキテクチャ。
【請求項５】
第１と第２のプログラムパッケージ（Ｐｒｏｇ．Ｉ、Ｐｒｏｇ．ＩＩ）がそれを通じて互いに通信し合う記憶領域（２５）が、第１及び／又は第２の記憶装置（４，５）、あるいは両方の記憶機器（４，５）の一方にだけ存在することを特徴とする請求項１に基づくシステムアーキテクチャ。
【請求項６】
第１の記憶機器（４）が第１のプログラムパッケージ（Ｐｒｏｇ．Ｉ）に割り付けられていることを特徴とする請求項１に基づくシステムアーキテクチャ。
【請求項７】
第１と第２の記憶機器（４，５）がハードウエアとして共通の記憶装置で実現されており、
記憶アドレスの第１のグループが第１の記憶装置（４）を、記憶アドレスの第２のグループが第２の記憶装置（５）を形成していることを特徴とする請求項１に基づくシステムアーキテクチャ。
【請求項８】
第１と第２の記憶機器が（４，５）がハードウエアとして別個の記憶装置として実現されていることを特徴とする請求項１に基づくシステムアーキテクチャ。
【請求項９】
第１のプログラムパッケージ（Ｐｒｏｇ．Ｉ）が第１のプロセッサ（２）を取り戻したとき、抑止信号がまだ存在するか、又は自ら消去し又は取り消す前に、その間に取り消されなかったか、を検査することを特徴とする請求項１に記載のシステムアーキテクチャ。
【請求項１０】
第１のプログラムパッケージ（Ｐｒｏｇ．Ｉ）が誤り防止機能を持つプログラムパッケージであることを特徴とする請求項１に基づくシステムアーキテクチャ。
【請求項１１】
第１のプロセッサ（２）がタイマー（９）を接続した割込み制御部（８）を備えていること、また第１のプログラムパッケージ（Ｐｒｏｇ．Ｉ）が第１のプロセッサ（２）を取り戻すように仕向ける条件が、タイマー（９）によって起動される割込みであることを特徴とする請求項１に基づくシステムアーキテクチャ。
【請求項１２】
当該のプログラムパッケージ（Ｐｒｏｇ．Ｉ、ＩＩ）による第１のプロセッサ（２）の解放の条件が、関係するプログラムパッケージ（Ｐｒｏｇ．Ｉ、ＩＩ）内の対応するプログラム命令文であることを特徴とする請求項１に基づくシステムアーキテクチャ。
【請求項１３】
第１のプログラムパッケージ（Ｐｒｏｇ．Ｉ）を形成している命令及び／又は第１のプログラムパッケージ（Ｐｒｏｇ．Ｉ）だけに割り当てられているデータが、第１の記憶装置内に収められていることを特徴とする請求項１に基づくシステムアーキテクチャ。
【請求項１４】
第２のプログラムパッケージ（Ｐｒｏｇ．ＩＩ）を形成している命令及び／又は第２のプログラムパッケージ（Ｐｒｏｇ．ＩＩ）だけに割り当てられているデータが、第２の記憶装置内に収められていることを特徴とする請求項１に基づくシステムアーキテクチャ。
【請求項１５】
第２のプロセッサ（３）、
第２のプロセッサに割り当てられた第３の記憶装置（２１）、
第２のプロセッサ（２３）と結合された入出力部を有する、インターフェース回路等の、第２のプロセッサ（３）に割り当てられた第３の周辺機器（２３）、そして
第２のプロセッサ（３）で実行され、第３の記憶機器（２１）と相互に作用し、第３の周辺機器群（２３）とやりとりする第３のプログラムパッケージ、
を備えていることを特徴とする請求項１に基づくシステムアーキテクチャ。
【請求項１６】
第１と第２のプロセッサ（２，３）が互いに異なっていることを特徴とする請求項１５に基づくシステムアーキテクチャ。
【請求項１７】
周辺機器（１２）が機能に関して第３の周辺機器（２３）と一致するとして、第３のプログラムパッケージが第３の周辺機器（２３）に関連して、第１のプログラムパッケージ（Ｐｒｏｇ．Ｉ）が周辺機器（１２）に関連して振舞うのとおおむね又は正確に同様に振舞うことを特徴とする請求項１５に記載のシステムアーキテクチャ。
【請求項１８】
第１（Ｐｒｏｇ．Ｉ）と第３のプログラムパッケージが、第２のプログラムパッケージ（Ｐｒｏｇ．ＩＩ）との偶発的に起こるやりとりは別にして、同じ機能をもたらすように設計されていることを特徴とする請求項１５に基づくシステムアーキテクチャ。
【請求項１９】
第１のプログラムパッケージ（Ｐｒｏｇ．Ｉ）と第３のプログラムパッケージは少なくとも一時的に互いに通信し合うことを特徴とする請求項１５に基づくシステムアーキテクチャ。
【請求項２０】
通信が、両プログラムパッケージの各々により計算されたデータと、付属する周辺機器群（１２，１３）から供給されるあるいは供給されたデータとの比較を含んでいることを特徴とする請求項１５に基づくシステムアーキテクチャ。
【請求項２１】
さらにほかのプロセッサ及びプログラムパッケージ、特に、少なくとももう一つのプロセッサを備えていることを特徴とする請求項１５に基づくシステムアーキテクチャ。
【請求項２２】
システムアーキテクチャが機械の制御において実施されることを特徴とする前述のいくつかの、あるいは一つの請求項に基づくシステムアーキテクチャ。
【発明の詳細な説明】
機械、それも多数の独立軸を擁しているために基本的な制御コストのかかる機械の操作は近年ますます自動化されている。これらの制御は、人間や機械に対する危険をできるだけ排除するため、少なくとも誤った操作が人間や機械に対して悲惨な結果を招きうるような制御ステートメントに関しては、かなりの程度まで信頼できうるものでなければならない。
過去においてはこのような場合には、リレーや保護機器が比較的確実な制御手段であるという考えのもとに、主にリレー技術に信頼が置かれてきた。もっともこの方式ではリレーがその機能の面で交互に監視ないしは検査されるために、過剰なほどの検査プログラムの類を準備する必要があった。例えば偏心プレスなどの比較的単純な制御用でさえこのリレーのコストは必要なスペースからすると莫大なものであった。エラーを検知したり、エラーの検知の際に装置を安全な側に停止させるような複雑で確実な制御方式は、スペースの制約からリレー技術では実用化していない。
従って、電子部品は状況によっては外部の影響をより受けやすく、また複合的エラーも起こりやすいことが分かっていたにもかかわらず、電気機械部品の代わりに電子部品を用いた制御装置を構築する方向が取られた。そしてこの問題点を少しでも克服するために、チャネルが互いに監視し合う制御装置が多重チャネルの仕様で作られた。
さらに自動化が進んだため、マイクロプロセッサによる制御への移行が必要になっているが、これにはエラーのもう一つの特性、つまりソフトウエアのエラーという問題が加わった。
しかし、マイクロプロセッサやプログラムを使った制御方式は、ユーザがその制御機構を拡張したり、状況によっては安全性と関係のない他の機械や機械の動作をその制御機構内に組み込むことが同時に可能となる場合にしか意味を持たない。この場合必ずしも信頼できるとはいえない諸々の機能を制御するこのプログラムの一部によって、信頼しうる機能を監視するプログラム部分が影響を受けることは絶対に避けなければならない。さもなければその原因を実際には見つけ出せないような重大なトラブルに到ることもあり得るだろう。というのはこれらのトラブルは状況によってはある決まった入力信号の時間的相関関係に依存しているためである。
それに加えて、１つのプロセッサ上でいくつかのプログラムを時間的に重畳して実行させることは、ツィルカー著「マルチタスクの実際」、フランツィス出版社（１９８７）、１１乃至１４ページに記載されているように、技術水準に属する。これにおいては、相互に交換されるプログラムが予め定められた時間後、インタラプトにより、任意にプロセッサを、例えば、システム中心部に戻し、その後プロセッサがそのプロセッサの作動に似たプログラムに基づいて作動開始をするように、プログラムが書かれている。
いわゆる禁止−入力部で、コンピュータ操作装置内の構成要素又は１群の構成要素の作動を停止して、これらの構成要素が、例えば、バスラインに乗せられて他の構成要素を指定する情報を受けるのを防止するようになっている。このような操作については、例えば、ウイリアムズ著「マイクロプロセッサベースのシステムのトラブルシューティング」、パーガモンプレス社（１９８４）、９乃至１２ページに記載されている。
更にまた、米国特許第４４８４２７０号から、多数のデータ処理システムを予め備えた中央制御装置が知られている。各データ処理システムは、更にユニットに分けられ、これらユニットの各々から一つのデータ処理システムの特徴が得られるようになっている。これらすべてのユニットはインターフェースシステムを介して共通の周辺機器に接続されている。
このような現状に基づいて、本発明の課題は、安全点検されないプログラムが安全点検されたプログラムの進行に望ましくない影響を与えたり、あるいは妨害する危険性が発生することなく、点検されたプログラムとされないプログラムを一台のプロセッサ上で実行させることが可能なシステムアーキテクチャを提供することである。
この課題は発明の趣旨に則って請求項１の特徴を有するシステムアーキテクチャにより解決される。
電気のコスト及び構成部材のコストから考えて、２つの異なるプログラムを１台のプロセッサで実行させることは有意義である。この場合、２つのプログラムパッケージが互いに相互作用を行うために１つの制御部が常に存在するのが望ましい。抑止入力を持った周辺機器の利用によって、第１のプログラムパッケージがその内容を知らないコマンドを、第２のプログラムパッケージが周辺機器に絶対に出力できないように安全対策を講じることは可能である。例えば第１のプログラムパッケージが信頼しうる検証されたプログラムパッケージである場合に、このプログラムパッケージが第２のプログラムパッケージにプロセッサまたはコンピュータの中心部を引き渡す前に、このプログラムパッケージは、第２のプログラムパッケージに割り付けられ、そのプログラムパッケージからのみ命令を受ける周辺機器を、周辺機器がその入出力部で何の命令も受取らない状態に切替える。この場合、この周辺機器のレジスタへの読取りアクセスは完全に受入れ状態のままにある。この周辺機器のブロッキングの後、第２のプログラムパッケージがプロセッサもしくはコンピュータ中心部を受け取った場合、第２のプログラムパッケージはその時点で大抵の場合は自ら起動することができる。もしプログラムエラーあるいはその他のエラーにより第２のプログラムパッケージが規格に合致しない方法で第１のプログラムパッケージの周辺機器に書き込みアクセスしようとする場合、ブロックされた周辺機器はそこに送られた入力を無視し実行しないであろう。
まだ発生するかも知れない唯一のエラーは、第２のプログラムパッケージが抑止信号を取り消し、それにより第１のプログラムパッケージに属する当該の周辺機器が第２のプログラムパッケージの命令に間違って従うことである。
けれども第２のプログラムパッケージが、プログラムの対応箇所に到達したために自発的にあるいは外部からの妨害により必然的にプロセッサを解放した直後、第１のプログラムパッケージは抑止ラインの状態を確かめることにより第２のプログラムパッケージのこの敵対的関係を知らされる。この場合もし第１のプログラムパッケージが抑止ラインでの操作を識別するようであれば、第１のプログラムパッケージは秩序正しい方法でこのシステムアーキテクチャに属する全体のシステムを停止させることができる。
この新しいシステムアーキテクチャは安全性をできるだけ高めるために、さらに他の安全手段を付加される。この点において、上述のシステムアーキテクチャは、安全と見なされるシステム全体の一部であって、システムの安全性は隣接チャネル及びそのデータの相互の照会及び検査により安全に保護される。
用途に応じて、第１の周辺機器は専ら第１のプログラムパッケージに割り付けられるか、または、第１の周辺機器の一部が少なくとも、有効な方法で両方のプログラムパッケージから書き込みと読み込み、あるいはそのどちらかによってアクセスされる周辺機器になることもあり得る。
２つのプログラムパッケージが互いにどのように配置されるかによって、両方のプログラムパッケージが相互に通信できる記憶領域を持つことは望ましい。両方のプログラムパッケージは順次プロセッサを使用し、同時に作動し得ないからである。従ってこれらプログラムパッケージは通信やデータが取り交わせる共通の「メールボックス」を必要とする。
プログラムパッケージの連絡に用いられる記憶部分は主として第２の記憶装置内に収められていることが望ましい。それにより第１の記憶装置内にある第１のプログラムパッケージのデータや命令が第２のプログラムパッケージのエラー挙動によって影響されないように確実に保証される。
第１の記憶装置が専ら第１のプログラムパッケージに割り付けられている場合は、特に信頼性の高いシステムが実現する。同様なことは基本的に第２のプログラムパッケージに対しても成り立つので、もう一つの記憶領域がプログラムパッケージのための連絡領域として用意される。
他の処置によってある特定のエラーが識別できる場合には、両方の記憶装置をハードウエアによって一つの記憶装置に収納し、アドレスを通してだけ互いを区別することができる。またこれとは反対に記憶装置へのアドレス指定のエラーが予想されたり、あるいは記憶部分にその他のエラーが心配される場合には、両方の記憶装置に対してハードウエアにより分けられた記憶装置を使用すれば有効である。つまり第１と第２の記憶装置は別々のメモリーチップに収納される訳である。
第１のプログラムパッケージがより高い優先順位を持っている。つまりこのプログラムパッケージは、制御機能を実行するために、第２のプログラムパッケージの規格に合致しない挙動の場合でさえ規定の時間内にプロセッサを取り戻さなければならない。しかし第２のプログラムパッケージがエンドレスループに捉えられ、そしてこのプログラムパッケージが自発的にプロセッサに応答するプログラム箇所にもはや到達しない場合には、状況次第ではそうならないことがある。このようなエラーをなくすために、プロセッサには主にタイマーをつないだ割り込み制御が設けられる。これによりプロセッサは強制的に第２のプログラムパッケージを取り除くことができるようになり、第１のプログラムパッケージが再びプロセッサを獲得する。
第１のプロセッサと平行して、第１のプログラムパッケージに類似したプログラムが走るもう一つのプロセッサが少なくとも１つ存在し、結果に違いがあれば被制御装置を有効で安全な方法で停止させるために、両方のプロセッサまたはプログラムパッケージが常にデータや計算結果を互いに比較できればシステム全体の安全性はさらに高まる。
例えば、両方のプログラムコードは異なった形態になっているが、プログラムパッケージに配分されたプロセッサの周辺機器から見た第３のプロセッサ上で動くプログラムパッケージは、その周辺機器から見た第１のプログラムパッケージと同じ挙動を示すことがある。この異なったプログラムコードの形態は、第１と第２のプロセッサが例えばレジスタ長または使用できるコマンドの面で異なっている場合は、必然的に得られることになる。
最後に、第１のプログラムパッケージがプロセッサを占有していない時に、第２のプログラムパッケージが不当に抑止入力部の信号を変更して、周辺機器のデータを変更したかどうかを検査するために、別のプロセッサを併用することができる。第１のプログラムパッケージは復帰後、周辺機器からデータを読み、第３のプログラムパッケージがその周辺機器から得たデータと比較することができる。そこに違いが発生したら直ちにシステムは再び被制御機械を停止させることができる。
その他の点では本発明の発展的形成は従属請求項の主題である。さらに従属請求項は任意に組合せできることが容易に分かる。他のシステム環境の構成は新しいシステムアーキテクチャに対して重要な役割をここでは全くあるいは殆ど果たしていない。
図面には本発明の主題の実施態様が下記のように示されている。
図１は、新規なシステムアーキテクチャのブロックダイアグラム、
図２は、第１のプロセッサ上で動作する両プログラムパッケージの時経的挙動を示す図である。
図１のブロックダイアグラムにはプロセス制御のための新しいシステムアーキテクチャ１が図解されている（制御されるプロセス自体は図示されていないが、工作機械でも化学プラントあるいはこれの類でもよい）。このシステムアーキテクチャ１は第１のプロセッサ２と第２のプロセッサ３を有し、通信ライン４を通して互いに接続されている。プロセッサ２には同じく通信ライン６及び７を通じて２つの互いに分離された記憶装置４と５が接続されている。この２つの記憶装置４と５は物理的に分離されたハードウエアの記憶モジュールとして形成されている。
少なくとも第１のプロセッサ２は、時計またはタイマー９が接続された入力部８を備える割込制御部を備えている。
選択されたプロセッサのアーキテクチャによっては、タイマー９はプロセッサ２自体の構成要素であってもよい。
バスシステムまたは対応する通信ライン１１を経由して第１のプロセッサ２には、周辺機器の２つのグループ１２と１３が接続されている。
ここで周辺機器というのは、工程又は機械の制御において、プロセス制御のために使用されるハードウエアをいう。この場合、制御されるプロセスの情報を制御部にただ報告するだけの周辺機器と、例えば、リレー、電磁バルブ、電気機械的連動装置を作動させることにより、制御命令をプロセスの状態変化に変換する周辺機器とは区別される。
単に制御部にのみ情報を伝達する周辺機器の例として、例えば温度や位置の情報を制御部に伝える周辺機器１２ａを示す。この場合、ブロックで囲んだ部分は、物理的信号を通信線１１と第１のプロセッサ２の当該の入力接続端子からなるインタフェースに適合する電気量に変換するために不可欠なすべての必要なハードウエアを表すものとする。周辺機器１２ａに対して基本的に読取りを行うアクセスは、周辺機器１２ａの内部に状態変化を引き起こす書込みアクセスも可能であることを意味しない。第２の周辺機器１２ｂは、第１のプロセッサ２から通信線１１を経て送られる情報又は命令を物理的量に変換するすべての周辺機器を表す。例えば、インタフェース１２ｂを介して、概略図で示唆した電磁弁１４を操作することによって、実行中の被制御プロセスを直接制御する。その他の電気機械的変換装置、例えば直流又は交流電動機、加熱装置、点火装置等もこの周辺機器となりうる。
２つの周辺機器１２ａと１２ｂの間の破線１５は、さらに多くの周辺機器が存在しうること、そして原則的には周辺機器１２ａと１２ｂだけが存在していることを示唆する。
２つの周辺機器１２ａ及び１２ｂは通信線１１の他に抑止入力部１６ａ又は１６ｂを夫々備えており、これらの抑止入力は共通の抑止線１７に接続されている。抑止線１７は抑止入力１６ａ及び１６ｂと第１のプロセッサ２の当該の入出力ポート１８を連絡する。
周辺機器群の第２グループは第１のグループに類似した構成になっている。つまりこれもまた情報を第１のプロセッサ２に供給する周辺機器と、第１のプロセッサ２の命令を然るべき物理的あるいは電気的量に変換する周辺機器とから成っている。第２グループ１３のこれら周辺機器１３ａと１３ｂは、制御対象プロセスの方向における出力側では周辺機器１２ａと１２ｂとは異なっている。
第２のプロセッサ３は冗長度を高めるために使われる。そのためにこのプロセッサは第１のプロセッサ２とハード面で異なっている。つまり第２のプロセッサは例えば他の命令文と別のレジスタ長を持っている。さらにこれは独自のチップ内に収められているか、あるいは時には独自の導体基板上に配置されることもある。両方のプロセッサ２と３が当該の周辺機器１２もしくは１３を経由して同じ出力命令を出す場合にプロセスまたは機械の状況変化が初めて行われるように、第２のプロセッサ３は、通信ライン１９を通してそのプロセッサに割り当てられた記憶装置２０と、またほかの通信ライン２２を経由して固有の一組の周辺機器群２３とつながれている。これらの周辺機器群は、制御すべきプロセスの視点から第１のグループ１２の周辺機器１２ａと１２ｂと同じ機能を持っていて、さらに場合によっては命令の形式に関する限り、プロセスに向かって出力側でＡＮＤ結合されている。
新しいシステムアーキテクチャ１により２種類のプログラムパッケージを実行させることが可能である。この場合、一つのプログラムパッケージは検証され安全点検されたプログラムパッケージであり、もう一つの第２のプログラムパッケージは安全性に対してそれほど高くない要求が課せられているプログラムパッケージである。プログラムデータが周辺機器２３からのものでないかあるいはそこで保持されている限り、信頼しうるプログラムパッケージはプロセッサ３にも対応物が配置され、また専ら記憶装置２１内にのみ存在する対応するプログラムによって実現される。
第１のプロセッサ２では、制御されるプロセスの安全性にとって重要なプログラムパッケージ（以下第１のプログラムパッケージと称す）が実行される。制御されるプロセスの安全性にとって決定的ではない第２のプログラムパッケージも同様である。第１のプログラムパッケージは記憶装置４に収められている１つのプログラムあるいは１組のプログラムにより実現される。同様に、１つのプログラム又は１組のプログラムからなる第２のプログラムパッケージとも記憶装置５に格納されている。
第１のプログラムパッケージは安全点検されているので、第２のグループ１２の周辺機器に応答したり、また周辺機器を経由して制御されるプロセスないしは機械に積極的にアクセスし、そこで状況変化を生じさせる命令を出力する権能を有し、またそうなるように設計されている。このような周辺機器の具体例の１つが周辺機器１２ｂである。
また、第１のプログラムパッケージはプロセスからの情報を、例えば周辺機器１２ａからプログラムパッケージに伝達する周辺機器１２へのアクセスする。
さらに詳しく記述するためにまず、第２のプログラムパッケージは専ら第２グループ１３の周辺機器と共に作動する、つまり第１のグループ１２からデータを受取ることもなく、また第１のグループ１２のこの周辺機器に書込みアクセスもしないものと仮定する。この仮定は第２のプログラムパッケージのためのエラーのないコンセプトに対して、またこのエラーのないコンセプトがエラーを伴わずに当該のプログラムに組み入れられるという条件の下で適用される。
さらなる機能と動作の以下の説明では、プログラムパッケージに対する初期設定局面がすでに終了して、システムが通常操作にあると仮定しよう。この状況下では第１のプロセッサ２で第１と第２のプログラムパッケージが周期的に交互に動作する。上のクロスバーに「Ｐｒｏｇ．Ｉ」と表示されるように、第１のプログラムパッケージがアクティブになっているとき、つまり制御すべきプロセスからデータを受け取り、また必要ならば、然るべき命令をプロセスに出す時点でその動作が観察される。同時に、この間、第１のプログラムパッケージは、絶えずその測定および計算したデータを、第２のプロセッサ３上で動くプログラムパッケージが周辺機器から受取ったりあるいは得られたデータから計算した然るべきデータと比較する。この比較によって相違がないことが示されると、システムは継続して動作する。しかし、２つのプロセッサ２と３が食い違いを検出すると、あらかじめ決められたルーチンに従って直ちにプロセス全体が停止される。
そうでない場合、つまり両方のプロセッサ２と３のデータ比較によってエラーが検知されない場合、第１のプログラムパッケージは制限時間内に、第１のプログラムパッケージがプロセッサ２をもはや必要としない場所に到達する。この場所に達するとまず第２のプログラムパッケージから然るべき出力部分１８を通して第１グループ１２の周辺機器群の抑止入力部１６ａと１６ｂには抑止信号が発せられる。これにより第１グループ１２の周辺機器群は、通信ライン１１を経由して送られてくるかもしれない、そして自分の状態を変化させるかもしれない書込み信号を無視する状態になる。けれども周辺機器もしくは付属のインターフェースカードが通信ライン１１を経てデータを問い合わせるという意味での読取りアクセスは可能である。
第１のプログラムパッケージがその抑止信号をその周辺機器１２に発信した後、そのプログラムパッケージは第１のプロセッサ２を解放する。第１のプログラムパッケージによる第１のプロセッサ２の解放により、記憶装置５に収められている第２のプログラムパッケージが第１のプロセッサ２を受取り、そしてそれにより第２のプログラムパッケージに割り付けられた周辺機器１３を操作する能力を獲得する。第２のプログラムパッケージがエラーなしに作動すると仮定すると、このプログラムパッケージは、第１のプログラムパッケージに割り付けられている周辺機器１２に書き込みアクセスを行わない。即ち、状態変化を行わない。しかし、第２のプログラムパッケージがプログラムエラーまたはその他のエラーによりこれを行うかもしくは試みたとしても、書き込みアクセスは何の働きもしない。その理由は、抑止入力１６ａと１６ｂから周辺機器１２は書き込みアクセスに対してブロックされているためである。
あらかじめ設定された時間が経過する前に、第２のプログラムパッケージは自主的に第１のプロセッサ２を引き渡すプログラム箇所に達する。そのあと第１のプロセッサ２は再び第１のプログラムパッケージをスタートさせることができる。この第１のプログラムパッケージは先ず、周辺機器１２が以前と同様抑止信号を持っているかどうかを調べる。次に第１のプロセッサが再びその周辺機器１２と正常に通信できるように抑止信号が解除される。それから第１のプロセッサ２の第１のプログラムパッケージと第２のプロセッサ３上で動くプログラムパッケージとの間でデータ比較が行われ、この比較で違いがないことが示されると、第１のプログラムパッケージは第１のプロセッサ２で正常に実行される。
これに対して第１のプログラムパッケージの再始動の際、このプログラムパッケージは抑止信号がもはや存在しないことを確認すると、第１のプログラムパッケージは、第２のプログラムパッケージが規格に合致した挙動をしなかったものとして、また無効動作によって制御命令を然るべき周辺機器１２を通して伝達しようとしたものとしてスタートする。これは危険なエラー挙動であるので、そのあと直ちに制御されたプロセスが停止する。
第２のプログラムパッケージのもう一つのエラーは、その間に書込みアクセスができるように、第２のプログラムパッケージが抑止信号を消してそのあと再び書込むことに原因があることも考えられる。第１のプログラムパッケージのデータと、プログラムパッケージが第２のプロセッサ３で保持しているデータとの比較によりこのようなエラー挙動を検出する。それによって安全技術面で全く検査を受けていない第２のプログラムパッケージが、概念的エラーあるいはそれ以外のエラーのために安全技術の検査をされた第１のプログラムパッケージを妨害しないことが非常に高い信頼度でもって保証されている。それにもかかわらず２つのプログラムパッケージは一つのプロセッサ上で動くことができ、また場合によっては当該のプロセッサの方向にデータを伝達するのみの周辺機器を共用することさえできる。第２のプログラムパッケージを作成するユーザは安全技術面のすべての命令実行サイクルを第１のプログラムパッケージに収納すれば、複雑なエラー解析やエラールーチン作成の手間をセーブすることができ、また複雑なエラー解析はこのプログラムパッケージに対してだけ行えばよい。第２のプログラムパッケージの追加的な変更も、新しいシステムアーキテクチャのプログラミングがはるかに簡易化されているために簡単に行える。特に、監督官庁は第１のプログラムパッケージを含むハードだけを試験したり受入検査すれば十分である。この２分割がなかったら、安全性に関係のない命令列の比較的小さな変更を行っても、必ず監督官庁による新たな検査がユーザに義務づけられるであろう。
上述の方法で第１と第２のプログラムパッケージは第１のプロセッサ２の上で常に入れ替わる。この場合２つのプログラムパッケージはタイムシェアリング機能に基づき第１のプロセッサを獲得し、エラーが無いという前提で、このプロセッサをタイムスライス内で自発的に引き渡す。けれども両方のプログラムパッケージのうちの一つがエンドレスループに迷い込んだ場合は、プロセッサ２が復旧する前にタイマー９が作動し、そのあと割込み入力部８で割込みを行う。これをきっかけとしてそのとき動いているプログラムパッケージを打切るアラームルーチンへプロセッサを移行させ、エラーが発生した箇所が安全に関係した部分なのかあるいは関係しない部分なのかにより、エラーメッセージだけを発するかあるいはシステムを並列的に停止させる。
最後に、例えば信頼のない第２のプログラムパッケージが、第１の信頼しうるプログラムパッケージが計算したデータを必要とする場合、両方のプログラムパッケージを共通の記憶域２５を通して互いに通信させることは可能である。従って第１のプログラムパッケージの危険性をなくすために、連絡領域は、第２のプログラムパッケージが存在し、そのプログラムパッケージがデータを保持している記憶装置５に移される。これによって連絡に用いられるこの記憶域２５への誤った書込みアクセスは、検証されたプログラムパッケージを侵害するようなことはない。
このシステムアーキテクチャは、少なくとも２個のプロセッサを使用する。これらのプロセッサは１つのプロセスを共同で制御し、そのデータを絶えず互いに比較する。２つのプロセッサの一方では、可能な誤りに関して検査されたプログラムパッケージと未検査のプログラムパッケージが実行される。未検査のプログラムパッケージが検査済のプログラムパッケージを妨害することがないようにするために、検査済のプログラムパッケージと共同で動作する周辺機器は抑止入力を備えており、検査済のプログラムパッケージは未検査のプログラムパッケージに管理を引き渡す前に、それに割付けられた周辺機器を抑止入力により禁止する。
【図１】
0003731186.tif 000002
【図２】
0003731186.tif 000003