【課題を解決するための手段】
【0011】
この発明の目的は、従来技術の欠点を克服し、要求の多い用途にとって好適である、コンピュータ化されたシステム、特に制御システムであって、好ましくは、若干より誤動作しがちなFPGAを実装した場合でも、および好ましくは、潜伏エラーを検出するために広範なテストが要求されることなく、許容ハザードレートが通常、動作時間1時間当たりエラーが10
−8個未満である、システムを提供することである。
【0012】
この目的は、特許請求項で定義されるようなシステムによって達成される。
この発明の一局面によれば、離散的な数の入力変数を表わす入力ベクトル(
In)から、および離散的な数の状態変数を表わす状態ベクトル(
Zn)から、状態変数が更新された新規の状態ベクトル(
Zn+1)と、離散的な数の出力変数を表わす出力ベクトル(
On)とを求めるように構成された、コンピュータ化されたシステム、特に制御システムであって、出力変数は少なくとも1つの機器を制御するために、および/または情報を出力するために提供される、システムが提供される。システムは、入力ベクトルおよび状態ベクトルから新規の状態ベクトルおよび出力ベクトルを並列で求める複数の計算ユニットを含む。この発明によれば、システムは、少なくともすべての新規の状態ベクトルが各サイクルの後に計算ユニット間で交換されるように構成される。
【0013】
少なくとも新規の状態ベクトルが各サイクルの後に交換されるという事実は、計算ユニットによって新たに計算された各状態ベクトルが他の計算ユニットにとって利用可能となる、ということを意味する。計算サイクルは、クロック制御された態様で、規定されたリズムで実行可能である。しかしながら、これはそうである必要はない。すべてのサイクルが同じ持続時間を有する必要はない。たとえば、新規の計算が定期的に行なわれないものの、たとえば入力ユニットが何かの変化を通知した場合といったある事象によってのみ起動されることが、起こり得る。特に、変数(入力変数、状態変数、出力変数)が離散値のみを仮定する場合、すなわち、特にシステムが仮定し得る状態の量が有限である場合(システムはその場合、いわゆる「有限機械」を表わす)、これはオプションである。しかしながら、この発明に従ったアプローチはまた、連続的に変更可能な変数を用いても機能する。
【0014】
好ましくは、状態ベクトルに加えて、出力ベクトルおよび/または入力ベクトルも、各サイクルで交換される。入力ベクトルの交換は、潜在的に意味をなす。なぜなら、経路上の入力ユニットからいくつかの計算ユニットへの入力ベクトルの転送が常に同一の態様でその進路をたどることは保証されないためである。
【0015】
それぞれのベクトルを交換するために、各計算ユニットはたとえば、それ自体の交換バスOB
0…OB
pを有し、それを介して、各計算ユニットは残りの計算ユニットに結果を送信する。すなわち、計算ユニットは各々、他の計算ユニットのバスからデータを読出す可能性を有する(しかしながら、たとえばそれらの上に書込む可能性は有さない)。
【0016】
特に、計算ユニットの各々によって受信された状態ベクトル、ならびに、おそらくは出力ベクトルおよび/または入力ベクトルは、それ自体のベクトルと比較され得る。
【0017】
一実施形態では、規則的な、ほぼ等しい長さのサイクルが実行され、各サイクルは典型的には数ミリ秒である。これは、(直接、またはプログラムエラーによって生成された)各データエラーが認識され、おそらくは数ミリ秒後にすでに作用される、ということを意味する。
【0018】
本発明の第1の実現化例によれば、差異が確認されるやいなや、たとえば計算ユニットがもはやデータパケットを出力せず、入力/出力ユニットがたとえば「すべての信号が赤」という安全な状態にされることによって、安全反応が起動される。この目的のために、個々の計算ユニットは、従来技術から公知であるように、すべての計算ユニットのための、または1つ以上の他のユニットのための供給電圧を遮断することができる。これに加えて、またはこれに代えて、「すべてのコンポーネントの制御された停止」または「アラーム」などの他の措置が提供され得る。この実現化例は特に、計算ユニットの数が少ない場合、たとえば2つである場合、および/または、特に高度の安全性が要求される場合に好まれ得る。
【0019】
第2の実現化例によれば、予め規定された最小限の一致する結果が要求される。たとえば、基準は、p個のプロセッサの場合、少なくとも1つ(1<p)の一致する(整合する)結果が、正しい実現のために要求されるようになっていてもよく、たとえば6/8アーキテクチャ(これは、現在のプロセッサのうちの少なくとも6つが同一の結果を生成することを意味する)である。この目的のために、以下のように処理を進めることができる:
− 他のすべての計算ユニットの結果との比較の結果(たとえば一致y/n、比較情報)が、たとえば比較結果(内部ベクトル)Xとして、転送されたデータとともに進み、すべてのI/Oユニットに供給される。したがって、これらおよび/または計算ユニット自体は、ベクトルXに基づいて、すべての計算ユニットの比較結果のマトリクスを作成し、これから、いずれにせよ計算ユニットのうちの1つが誤った結果を生成したと結論付けることができる。I/Oユニットはまた、おそらくはテストデータに基づいて、データパケットが有効かどうかを決定することができる。パケットが有効でない場合、それぞれの出力ユニットはそれを無視し、そしておそらくはオプションで、関与する計算ユニットの再起動を起動することができる;
− 状態ベクトルも出力ユニットに転送され、次に、状態ベクトルおよび出力ベクトル、ならびにおそらくはテストデータに基づいて、出力ユニットは、該当する計算ユニットが、同一データを送出する十分多数の計算ユニットに属するかどうかを決定する。これに依存して、出力ユニットは、データを使用するかまたはそれを無視する;
− これに加えて、またはこれに代えて(これも第1の実現化例についてのオプションとして当てはまる)、計算ユニットが、それ自体の状態ベクトル(ならびに、おそらくは出力および/または入力ベクトル)が、互いに同一で他の計算ユニットからのものである、予め規定された最小数の状態ベクトル(ならびに、おそらくは出力および/または入力ベクトル)とは異なる、ということを確認した場合、それはそれ自体をスイッチオフし、または再起動を開始する。同様に、そのようなスイッチオフまたは再起動はまた、計算ユニットのうちの他の計算ユニットによって、たとえば多数の計算ユニットによって、または専用の計算ユニット(マスター)によって、または外部制御インスタンス(監視コンピュータ)によって開始され得る。
【0020】
第1の、またはおそらくは第2の実現化例の変形は、この発明に従って各々設計されたいくつかの部分システムから構成された冗長システムによる冗長性に基づいており、上述の措置は、エラーが確認された部分システムのためにのみ提供され、そのため、他の部分システムは、入力/出力ユニットが安全な状態にされる必要なく、邪魔されない態様で動作を続けることができる。この変数は、以下により詳細に説明される。
【0021】
ハードウェアに固有の並列エラーを回避するように、いくつかの計算ユニットは異なる構成タイプのものであってもよく、特に、異なる製造業者らから製造されてもよい。
【0022】
この発明に従ったアプローチを理解するために、計算ユニット(CPU、FPGAなど)のエラーモデルについてここに簡単に説明する。計算ユニットにおけるエラーには、考えられる原因が3つある:
1.データエラー:計算の結果に影響を及ぼすデータビットがそれらの値を変更する;
2.プログラムコードエラー:プログラムの実行を決定するメモリビットがそれらの値を変更する。これにより、計算の実行が変更される;
3.ハードウェアエラー:個々のトランジスタ/導体が短絡/割込を有する。
【0023】
計算ユニットでは、データおよびプログラムは通常、揮発性半導体メモリに格納される。これらは、高温により、または宇宙放射により、それらの値を変更し得る。カテゴリー1のデータエラーおよびカテゴリー2のプログラムコードエラーは実際には、カテゴリー3のハードウェアエラーよりもおよそ1000倍頻繁に起こる。
【0024】
以下に考慮される用途について、データベクトルは数万ビットになると仮定され得る。プログラムコードは、1000〜10,000だけより大きく、そのため、ここでのエラーレートも100〜10,000倍高い。
【0025】
この発明に従ったアプローチにより、エラータイプの各々が扱われるようになり、オプションで、広範囲な機能テストなしで完全に対処可能である。これはとりわけ、以下の理由による。
【0026】
カテゴリー1:この発明によれば、個々の計算ユニットの内部データを含むすべての関連データが各計算サイクルで互いに交換され検査されることにより、すべてのデータエラーは瞬間的に認識され、伝搬できない。以下にさらにより詳細に説明されるように、エラーは、規定された状態からの計算ユニットの再起動によって改善され得る。
【0027】
カテゴリー2:プログラムコードエラーは、遅かれ早かれ、計算結果が偽であるという効果を有する。この間違った結果は、この発明に従った手順によって直ちに認識される。プログラムコードエラーは、不揮発性メモリからのプログラムコードの新たなローディング、およびその後の計算ユニットの再起動によって改善され得る。プログラムコードのそのような新たなローディングは、たとえば偽の結果の各判断の後に想定され得る。これに代えて、そのようなエラーがプログラムコードのチェックを起動することも想定され得る。
【0028】
この発明の一群の実施形態によれば、プログラムコードエラーを見出すために、偽の計算結果が存在しなくても、個々の計算ユニットのプログラムコードは何度もチェックされる。エラーは、不揮発性メモリからのプログラムコードの新たなローディング、およびその後の計算ユニットの起動によって改善され得る。
【0029】
この目的のために、計算ユニットは、プログラムコードP(CPUの場合)または構成コードP(FPGAの場合)を、たとえば予め規定された間隔で互いに転送し、それを検査するとともに、それら自体のプログラムコードとの差異、または、たとえば不揮発性の態様で格納された基準との差異がある場合には、上述の措置(安全反応、システムからの一時的撤退、および/または再起動)のうちの1つ以上を起動することができる。
【0030】
カテゴリー3:ハードウェアエラー。ハードウェアエラーも、遅かれ早かれ、計算結果が偽であるという効果を有するであろう。これは、この発明に従った手順によって認識される。プログラムコードエラーとは対照的に、説明されたようにはるかにまれなハードウェアエラーは、改善することがそれほど簡単ではない。しかしながら、ハードウェアエラーを克服するために、この発明に従った手順に関し、非常に多くの計算ユニットが並列接続されるため、システムの動作期間(典型的には25〜50年)にわたってエラーターゲットが達成される。ハードウェアエラーのために偽の結果を繰り返し送出する計算ユニットもまた、システム全体にとってマイナスの結果をもたらすことなく、述べられた適切な冗長性のためにシステムから完全に排除され得る。
【0031】
計算ユニットにおける、または、たとえばネットワークの次に接続されたコンポーネントにおけるデータエラーは、偽の出力ベクトル
On0…
Onp、および/または偽の出力パケット
0‥kOP0n…
0‥kOPpnをもたらし得るため、一群の実施形態によれば、各計算ユニットに固有のシグネチャを各出力パケットに提供することがさらに示唆される。そのようなシグネチャに関し、本質的に公知の態様で(CRCまたは他のアルゴリズムを介して)生成され得るものの、固有のものであるのは、チェックデータの場合である。
【0032】
個々の計算ユニットのシグネチャは、どの計算ユニットも別の計算ユニットのシグネチャを生成できないように設計されており、それにより、別の計算ユニットの正しいシグネチャによって受信ユニットがデータパケットを誤って受け入れることがないことが保証される。また、実際の出力データが(計算ユニットごとに1回ではなく)出力データパケットにおいて1回だけ生じること、および、互いに異なるすべての計算ユニットのシグネチャのみが含まれることが想定され得る。
【0033】
どの計算ユニットも別の計算ユニットのシグネチャを生成できないという事実は、異なる態様で実現され得る。たとえば、計算ユニットは、異なるアルゴリズムを使用すること、または同じアルゴリズムを異なるキー、初期値、生成多項式などで使用することができる。
【0034】
一群の実施形態では、計算ユニットは、構成可能論理回路として、特にFPGA技術で実現される。たとえば、各計算ユニットはFPGAを含んでいてもよく、またはそのようなものによって形成されてもよい。FPGAは、制御システムおよび他のコンピュータシステムにおける補助機能について、これまでかなりの期間、本質的に公知であったが、それらは特に、達成可能な計算性能とサイズとの間の有利な比率のために評価される。しかしながら、複合システムの中央ユニットにおける、または中央ユニットとしてのFPGAの用途は今まで拒否されてきた。これは特に、それらが、プログラムメモリからコマンドのシーケンスを取り除く従来のマイクロプロセッサよりもエラーを起こしやすい態様で動作するという評判を有するためである。しかしながら、構成可能論理回路のそのような申し立てられた欠点は、この発明に従った手順のために補償され、さらには埋め合わされて、大きい利点が保持されて十分に活用され得る。
【0035】
一群の実施形態(
図9参照)では、この発明に従ったタイプの少なくとも2つのシステムがまとめられて冗長システムになる。ここで、冗長システムは、通常動作時、双方のシステムが互いから独立して動作し、すべての必要な計算を各自実行するように構成される。
【0036】
述べられたタイプの2つのシステム(中央システム、「部分システム」;
図9のシステムCU、CU
*を参照)は各々の場合、特に各サイクルでそれらのパートナーにシステム全体の状態を通知することができる。
【0037】
上述された安全反応がシステムのうちの一方で起動され、結果が使用できない場合、他方のシステムは引き続き機能する。このため、高いシステム安全性にもかかわらず、非常に高い利用可能性が、冗長システムにおいて提供され得る。エラーを生成したシステムが再度動作する準備ができるやいなや、次に、各サイクルで交換されたデータを介して、それは直ちにそれ自体を他方のシステムと同期させて動作を再開することができる。
【0038】
オプションで、ここで冗長システムは、より長い間エラーがない状態ですでに動作してきた(部分)システムが「マスター」として動作するように構成され得る。
【0039】
この発明に従ったシステム、特に上述のタイプの冗長システムは、利用可能性を増加させるための第2の冗長ネットワークN
B(
図9参照)を有し得る。
【0040】
実施形態では、この発明に従ったシステム(たとえば冗長システム)はさらに、特に
図2によって上述されたタイプの複数の入力および/または出力ユニットを含む。これらは、それらがデータを求めることにより、たとえば、ユニット(たとえばスイッチ)への制御信号をサンプリングし、および/または、インターフェイスを介して当該制御信号の出力を行なうことにより、環境とやりとりする。
【0041】
これらの入力/出力ユニット(または出力ユニット)は特に、受信データの一貫性をチェックするように構成され得る。たとえば、それらは、いくつかの計算ユニットによって作成された出力データがすべて同一かどうかをチェックするように構成され得る。これに加えて、またはこれに代えて、それらは、すべての計算ユニットのすべてのチェックサムが正しいかどうかを検査するように構成され得る。特に、すべてのチェックサムが正しい場合のみ、または、予め規定された最小数のチェックサムが正しい場合のみ、それらはインターフェイスを介して出力を実行することができる。
【0042】
入力および/または出力ユニットはさらに、最小限の持続時間中にデータパケットが中央コンピュータ(計算ユニットを含む中央システム)から受信されなかった場合に、安全な状態に入るように構成され得る。
【0043】
入力および/または出力ユニットのうちの少なくとも1つはまた、マルチチャネル態様で設計され得る。たとえば、それが入力ユニットとして(も)設計されている場合、それは、いくつかのチャネルを介して信号(電流または電圧)を独立してサンプリングすることができる。これに加えて、またはこれに代えて、いくつかの独立したチャネルは各々、ターゲットアドレス、データ(入力データベクトルの一部としてのデータベクトル)、およびチェックサムを計算することができる。計算ユニットと同様に、チャネルのチェックサム計算は、たとえば同じ多項式の初期値が異なることにより、チャネルのチェックサム同士が異なるとともに、チャネルがそれぞれの他のチャネルのチェックサムを計算できないように行なわれ得る。
【0044】
入力ユニットによって(およびおそらくはいくつかのチャネルによって)生成されたデータパケットは、たとえばネットワークを介してともに結合されて通信パケット
kIPになり、アドレスおよびチェックサムで補足される。そこから、それらはネットワークによって中央システムに送信される。中央システムCUの計算ユニットはたとえば、チェックサムコンピュータを自由裁量で有しており、チェックサムコンピュータは入力ユニットと同一であり、受信データパケットが入力ユニットから正確に送信されたかどうかを検査することができる。すべてのチェックサムが正しい場合、たとえばさらなる処理のために、受信パケットのデータのみも考慮に入れられる。
【0045】
オプションで、有効なパケットが受信されなかった限り、中央システムが出力ユニット
kIOにさらなるパケットを提供しないことが想定され得る。これらが受信パケットを有することなく一定時間後に安全な状態に入るように構成される場合、すべてのそのようなユニットはこのために一定時間後に安全な状態に入る。
【0046】
入力ユニットおよび出力ユニットのうちの少なくともいくつか、たとえばすべては、入力および出力ユニット(入力/出力ユニット)として設計され得る。
【0047】
この発明はまた、この発明に従ったシステムと、加えて、入力および/または出力ユニットに割り当てられた制御部品(センサ、スイッチ)とを含む、特に鉄道設備のための制御システムに関する。
【0048】
この発明の原理、およびこの発明の特殊な実施形態の原理を、概略図によって以下により詳細に説明する。図面における同じ特徴付けは、同じまたは同様の要素を示す。
図3〜9によるこの発明の説明に関し、
図1および
図2、ならびにそこに取り入れられた表記が参照される。