特許第6934346号(P6934346)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ スーパーコンピューティング・システムズ・アクチェンゲゼルシャフトの特許一覧

特許6934346コンピュータ化されたシステムおよび冗長システム
<>
  • 特許6934346-コンピュータ化されたシステムおよび冗長システム 図000002
  • 特許6934346-コンピュータ化されたシステムおよび冗長システム 図000003
  • 特許6934346-コンピュータ化されたシステムおよび冗長システム 図000004
  • 特許6934346-コンピュータ化されたシステムおよび冗長システム 図000005
  • 特許6934346-コンピュータ化されたシステムおよび冗長システム 図000006
  • 特許6934346-コンピュータ化されたシステムおよび冗長システム 図000007
  • 特許6934346-コンピュータ化されたシステムおよび冗長システム 図000008
  • 特許6934346-コンピュータ化されたシステムおよび冗長システム 図000009
  • 特許6934346-コンピュータ化されたシステムおよび冗長システム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6934346
(24)【登録日】2021年8月25日
(45)【発行日】2021年9月15日
(54)【発明の名称】コンピュータ化されたシステムおよび冗長システム
(51)【国際特許分類】
   G06F 11/16 20060101AFI20210906BHJP
   G05B 11/32 20060101ALI20210906BHJP
【FI】
   G06F11/16 633
   G05B11/32 A
   G06F11/16 679
【請求項の数】24
【外国語出願】
【全頁数】17
(21)【出願番号】特願2017-140717(P2017-140717)
(22)【出願日】2017年7月20日
(65)【公開番号】特開2018-14102(P2018-14102A)
(43)【公開日】2018年1月25日
【審査請求日】2020年6月25日
(31)【優先権主張番号】00946/16
(32)【優先日】2016年7月21日
(33)【優先権主張国】CH
(73)【特許権者】
【識別番号】513292813
【氏名又は名称】スーパーコンピューティング・システムズ・アクチェンゲゼルシャフト
【氏名又は名称原語表記】SUPERCOMPUTING SYSTEMS AG
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】アントン・グンツィンガー
(72)【発明者】
【氏名】マルティン・ドリガッティ
(72)【発明者】
【氏名】デイビッド・ベイエラー
(72)【発明者】
【氏名】フィリップ・シュタデルマン
(72)【発明者】
【氏名】リヒャルト・フーバー
【審査官】 坂庭 剛史
(56)【参考文献】
【文献】 米国特許出願公開第2004/0199817(US,A1)
【文献】 特開平04−307633(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/16
G05B 11/32
(57)【特許請求の範囲】
【請求項1】
コンピュータ化されたシステムであって、複数の計算ユニットを備え、前記複数の計算ユニットの各々は、計算サイクルにおいて自律的に、かつ他の計算ユニットから独立して、離散的な数の入力変数を表わす入力ベクトルから、および離散的な数の状態変数を表わす状態ベクトルから、前記状態ベクトルと比較して状態変数が更新された新規の状態ベクトルと、離散的な数の出力変数を表わす出力ベクトルとを求めるように構成されるとともに、前記更新された状態ベクトルおよび新規の現在の入力ベクトルによって前記求めることを、複数の計算サイクルで周期的に繰り返すように構成され、
前記システムは、
なくとも1つの機器を制御するために使用される前記出力変数、および
出力されるべき前記出力ベクトルに基づいた情報、のうち少なくとも1つのために構成され、
前記システムは、少なくともすべての新規の状態ベクトルが各サイクルの後に前記計算ユニット間で交換されるように構成されることを特徴とする、コンピュータ化されたシステム。
【請求項2】
前記状態ベクトルに加えて、前記出力ベクトルおよび/または前記入力ベクトルも、各サイクルの後に交換される、請求項1に記載のシステム。
【請求項3】
各計算ユニットはそれ自体のバスを有し、各計算ユニットは、前記状態ベクトル、ならびに、適用可能であれば前記出力ベクトルおよび/または入力ベクトルを、前記それ自体のバスを介して残りの計算ユニットに送信するように構成される、請求項1に記載のシステム。
【請求項4】
前記計算ユニットの各々によって受信された前記状態ベクトル、ならびに、適用可能であれば出力ベクトルおよび/または入力ベクトルは、それら自体のベクトルと比較される、請求項1に記載のシステム。
【請求項5】
受信された前記ベクトルのうちの1つに差異がある場合、安全反応を起動するように構成された、請求項4に記載のシステム。
【請求項6】
前記安全反応は、前記システムのどの計算ユニットも、制御のために、および/または出力のために考慮に入れられないという結果を含む、請求項5に記載のシステム。
【請求項7】
前記計算ユニットは、プログラムコードまたは構成コードを互いに転送して検査するように構成される、請求項1に記載のシステム。
【請求項8】
各計算ユニットは、チェックサムコンピュータにより、前記出力ベクトルおよび/または前記出力ベクトルのサブセットからチェックサムを形成するように構成され、前記出力ベクトルは、出力ユニットに転送されるべき前記出力変数を含み、前記計算ユニットの前記チェックサムコンピュータは異なっている、請求項1に記載のシステム。
【請求項9】
個々の前記チェックサムコンピュータは、前記チェックサムを計算するために異なる多項式を使用する、請求項8に記載のシステム。
【請求項10】
前記チェックサムコンピュータは、異なる初期ベクトルを用いて計算する、請求項8に記載のシステム。
【請求項11】
各計算ユニットは、想定された数の出力ユニットのうちの各出力ユニットについて、アドレス、パケット数、データおよびチェックサムを用いて通信パケットを独立して計算する、請求項1に記載のシステム。
【請求項12】
記計算ユニットの前記通信パケットをともに結合して合計パケットにするように、および、オプションでそれをグローバルアドレスおよびチェックサムで補足するように構成された、請求項11に記載のシステム。
【請求項13】
前記合計パケットが冗長情報を1回だけ送信するように構成された、請求項12に記載のシステム。
【請求項14】
前記出力変数の少なくとも1つの値を各々受信するように、および、これに依存して、インターフェイスを介してコマンドまたは情報を出力するように構成された、複数の出力ユニットを含む、請求項1に記載のシステム。
【請求項15】
各計算ユニットは、チェックサムコンピュータにより、前記出力ベクトルおよび/または前記出力ベクトルのサブセットからチェックサムを形成するように構成され、前記出力ベクトルは、前記出力ユニットに転送されるべき前記出力変数を含み、前記計算ユニットの前記チェックサムコンピュータは異なっており、前記出力ユニットは、受信されたデータパケットがすべての計算ユニットの正しいチェックサムを有するかどうかをチェックすることができる、請求項14に記載のシステム。
【請求項16】
前記出力ユニットは、すべての計算ユニットのすべてのチェックサムが正しい場合のみ、前記インターフェイスへの出力を実行するように構成される、請求項15に記載のシステム。
【請求項17】
前記出力ユニットは、すべての計算ユニットの最小数のチェックサムが正しい場合のみ、前記インターフェイスへの出力を実行するように構成される、請求項15に記載のシステム。
【請求項18】
前記計算ユニットは中央システムに割り当てられ、前記システムは、入力および/または出力ユニットへの前記中央システムの接続のためのネットワークを含む、請求項1に記載のシステム。
【請求項19】
利用可能性を増加させるための第2の冗長ネットワークを含む、請求項18に記載のシステム。
【請求項20】
請求項1に記載のシステムである第1の中央システムと、請求項1に記載のシステムである第2の中央システムとを含む、冗長システム。
【請求項21】
前記第1の中央システムおよび前記第2の中央システムは、各サイクルの後に少なくともすべての新規の状態ベクトルを互いに交換するように構成される、請求項20に記載の冗長システム。
【請求項22】
前記中央システムの前記計算ユニットによって生成された前記状態ベクトルの、または、適用可能であれば出力ベクトルまたは入力ベクトルの比較が差異をもたらす場合、各中央システムはサービスモードに入るように構成される、請求項21に記載の冗長システム。
【請求項23】
前記サービスモードでは、少なくとも他の計算ユニットとは異なるデータを生成した計算ユニットのプログラムが新たにロードされる、請求項22に記載の冗長システム。
【請求項24】
前記サービスモードから動作モードに戻った前記中央システムは、スレーブとして動作を再開する、請求項22に記載の冗長システム。
【発明の詳細な説明】
【技術分野】
【0001】
発明の詳細な説明
この発明は、出力変数が多くの入力変数の関数として求められる、コンピュータ化されたシステム、特に制御システムに関する。この発明は特に、たとえば交通安全システム、鉄道輸送用の信号ボックス、複雑な製造設備の制御など、高い安全性が要求されるシステムに関する。
【背景技術】
【0002】
技術に関し、制御システムが状態機械として表わされ得ることは、一般に知られている。そのようなシステムは、用途に依存していくつかの入力信号および出力信号といくつかの状態信号とを有しており、より大きいシステムは、数千もの入力信号、出力信号および状態信号を有し得る。図1は状態機械を概略的に示しており、は、入力変数(入力信号、ここで「信号」という用語は最も広い意味で理解されるべきであり、データも包含する)を表わす離散的な数の入力ベクトル、Lは論理、はそれぞれ現在の状態ベクトル、は、離散的な数の出力変数(最も広い意味での出力信号)を表わす出力ベクトルを示す。ベクトルの次元(すなわち、変数ごとの信号の数)は一般に異なる。
【0003】
実際には、および従来技術によれば、そのようなシステムは通常、図2に従った分散された入力および出力で実現される。ここで、環境からの信号が入力および出力ユニットIO…IOによってサンプリングされ、その結果、サンプリングされたデータID…IDがデータレジスタIDR…IDRに中間格納される。入力および出力ユニットは次に、入力パケットIPIPの形をしたサンプリングされたデータを、ネットワークNを介して中央ユニットCUに送信する。ここでのネットワークへのパケットの出力は、ネットワークインターフェイスT…Tを介して行なわれる。サンプリングされたデータID…IDに加えて、入力パケットは、送信エラーからの保護のためのさらなるテストデータ(ターゲットアドレスAI…AI、チェックサムCRC…CRC、および/またはその他)を含む。
【0004】
中央ユニットCUで、入力パケットは受信機Rによって受信され、テストされる。テストが成功した場合、パケットに含まれたデータID…IDは、入力ベクトルに採用される。次に、論理Lが、入力ベクトルおよび状態ベクトルを、出力ベクトルおよび状態ベクトルn+1上に写像化する。出力ベクトルは、入力/出力ユニットIOのための出力データDO…DOを含む。出力ベクトルに存在する出力データから、入力/出力ユニットのための出力パケットOPOPが形成され、前記出力パケットも、入力パケットと同様にテストデータを含む。出力パケットは次に送信機Tからネットワークに転送され、ネットワークはこれらをそれぞれの入力および出力ユニットに送信する。
【0005】
入力および出力ユニット上で、出力パケットは受信チップR…Rによって受信され、検査される。検査が成功した場合、出力データは出力レジスタDOR…DORに、ひいては出力、たとえばそれぞれの出力ユニットによって制御されるべき装置に達する。
【0006】
表わされた例では、外部の世界と信号(データまたは他の変数)を交換するユニットはすべて、入力および出力ユニットとして表わされる。しかしながら、入力ユニットのみを形成する、または出力ユニットのみを形成するユニットが存在することも可能である。計算ユニットとして、プログラムPによって制御されるプログラマブルプロセッサ(CPU)が、論理Lを実行するために適用され得る。しかしながら、プログラマブルゲートアレイ、いわゆるFPGAも考えられる。ここで、論理および手順制御は、構成メモリPに位置する。
【0007】
そのような態様に従って構成されるコンピュータシステムは、商業的に入手可能なマイクロプロセッサによって実現される場合、約1個のエラー/年というエラーレートを有する。そのようなエラーレートは、たとえば室温調節、照明調節、娯楽などといった多くの用途で許容され得る。しかしながら、たとえば鉄道安全技術、原子力発電所、または航空機のための制御システムといった、たった1つの機能不良が何百人もの人間の死をもたらし得る他の用途も存在する。
【0008】
いくつかの計算ユニットが同じ計算を並列で実行し、結果を受信機に転送することにより、コンピュータシステムのハザードレートを減少させることができるということが、すでに知られている。それらが同じ結果に達しない場合、不良が明らかに生じている。システムはそれに対し、安全な状態を仮定してそれに対応することができる。鉄道における用途の場合での安全な状態は「すべての信号が赤」であり、それにより、すべての列車が停止する。その場合、設備はもはや利用可能ではないが、危険のリスクもまったくない。概して、原子力設備または航空機の場合、安全な状態はない。
【0009】
エラー耐性があるコンピュータシステムの一例が、たとえばEP1 443 399に開示されている。
【0010】
コンピュータシステムのコンポーネントは、偶発的な損失または破壊による機能不良を有し得る。ある状況下では、これらの機能不良は、動作時にめったに使用されない機能にもっぱら影響を与える場合がある。そのような場合、潜伏エラーと言われる。潜伏エラーの場合、機能の2つの用途間で同じエラーがすべての並列計算ユニットで生じる確率は著しく増加する。従来技術によれば、そのような機能は、これに対抗するために定期的にテストされる。そのようなテストについての労力は相当なものであり、機能コードを実現するための労力さえも上回る場合がある。
【発明の概要】
【課題を解決するための手段】
【0011】
この発明の目的は、従来技術の欠点を克服し、要求の多い用途にとって好適である、コンピュータ化されたシステム、特に制御システムであって、好ましくは、若干より誤動作しがちなFPGAを実装した場合でも、および好ましくは、潜伏エラーを検出するために広範なテストが要求されることなく、許容ハザードレートが通常、動作時間1時間当たりエラーが10−8個未満である、システムを提供することである。
【0012】
この目的は、特許請求項で定義されるようなシステムによって達成される。
この発明の一局面によれば、離散的な数の入力変数を表わす入力ベクトル()から、および離散的な数の状態変数を表わす状態ベクトル()から、状態変数が更新された新規の状態ベクトル(n+1)と、離散的な数の出力変数を表わす出力ベクトル()とを求めるように構成された、コンピュータ化されたシステム、特に制御システムであって、出力変数は少なくとも1つの機器を制御するために、および/または情報を出力するために提供される、システムが提供される。システムは、入力ベクトルおよび状態ベクトルから新規の状態ベクトルおよび出力ベクトルを並列で求める複数の計算ユニットを含む。この発明によれば、システムは、少なくともすべての新規の状態ベクトルが各サイクルの後に計算ユニット間で交換されるように構成される。
【0013】
少なくとも新規の状態ベクトルが各サイクルの後に交換されるという事実は、計算ユニットによって新たに計算された各状態ベクトルが他の計算ユニットにとって利用可能となる、ということを意味する。計算サイクルは、クロック制御された態様で、規定されたリズムで実行可能である。しかしながら、これはそうである必要はない。すべてのサイクルが同じ持続時間を有する必要はない。たとえば、新規の計算が定期的に行なわれないものの、たとえば入力ユニットが何かの変化を通知した場合といったある事象によってのみ起動されることが、起こり得る。特に、変数(入力変数、状態変数、出力変数)が離散値のみを仮定する場合、すなわち、特にシステムが仮定し得る状態の量が有限である場合(システムはその場合、いわゆる「有限機械」を表わす)、これはオプションである。しかしながら、この発明に従ったアプローチはまた、連続的に変更可能な変数を用いても機能する。
【0014】
好ましくは、状態ベクトルに加えて、出力ベクトルおよび/または入力ベクトルも、各サイクルで交換される。入力ベクトルの交換は、潜在的に意味をなす。なぜなら、経路上の入力ユニットからいくつかの計算ユニットへの入力ベクトルの転送が常に同一の態様でその進路をたどることは保証されないためである。
【0015】
それぞれのベクトルを交換するために、各計算ユニットはたとえば、それ自体の交換バスOB…OBを有し、それを介して、各計算ユニットは残りの計算ユニットに結果を送信する。すなわち、計算ユニットは各々、他の計算ユニットのバスからデータを読出す可能性を有する(しかしながら、たとえばそれらの上に書込む可能性は有さない)。
【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】
計算ユニットにおける、または、たとえばネットワークの次に接続されたコンポーネントにおけるデータエラーは、偽の出力ベクトル、および/または偽の出力パケット0‥kOP0‥kOPをもたらし得るため、一群の実施形態によれば、各計算ユニットに固有のシグネチャを各出力パケットに提供することがさらに示唆される。そのようなシグネチャに関し、本質的に公知の態様で(CRCまたは他のアルゴリズムを介して)生成され得るものの、固有のものであるのは、チェックデータの場合である。
【0032】
個々の計算ユニットのシグネチャは、どの計算ユニットも別の計算ユニットのシグネチャを生成できないように設計されており、それにより、別の計算ユニットの正しいシグネチャによって受信ユニットがデータパケットを誤って受け入れることがないことが保証される。また、実際の出力データが(計算ユニットごとに1回ではなく)出力データパケットにおいて1回だけ生じること、および、互いに異なるすべての計算ユニットのシグネチャのみが含まれることが想定され得る。
【0033】
どの計算ユニットも別の計算ユニットのシグネチャを生成できないという事実は、異なる態様で実現され得る。たとえば、計算ユニットは、異なるアルゴリズムを使用すること、または同じアルゴリズムを異なるキー、初期値、生成多項式などで使用することができる。
【0034】
一群の実施形態では、計算ユニットは、構成可能論理回路として、特にFPGA技術で実現される。たとえば、各計算ユニットはFPGAを含んでいてもよく、またはそのようなものによって形成されてもよい。FPGAは、制御システムおよび他のコンピュータシステムにおける補助機能について、これまでかなりの期間、本質的に公知であったが、それらは特に、達成可能な計算性能とサイズとの間の有利な比率のために評価される。しかしながら、複合システムの中央ユニットにおける、または中央ユニットとしてのFPGAの用途は今まで拒否されてきた。これは特に、それらが、プログラムメモリからコマンドのシーケンスを取り除く従来のマイクロプロセッサよりもエラーを起こしやすい態様で動作するという評判を有するためである。しかしながら、構成可能論理回路のそのような申し立てられた欠点は、この発明に従った手順のために補償され、さらには埋め合わされて、大きい利点が保持されて十分に活用され得る。
【0035】
一群の実施形態(図9参照)では、この発明に従ったタイプの少なくとも2つのシステムがまとめられて冗長システムになる。ここで、冗長システムは、通常動作時、双方のシステムが互いから独立して動作し、すべての必要な計算を各自実行するように構成される。
【0036】
述べられたタイプの2つのシステム(中央システム、「部分システム」;図9のシステムCU、CUを参照)は各々の場合、特に各サイクルでそれらのパートナーにシステム全体の状態を通知することができる。
【0037】
上述された安全反応がシステムのうちの一方で起動され、結果が使用できない場合、他方のシステムは引き続き機能する。このため、高いシステム安全性にもかかわらず、非常に高い利用可能性が、冗長システムにおいて提供され得る。エラーを生成したシステムが再度動作する準備ができるやいなや、次に、各サイクルで交換されたデータを介して、それは直ちにそれ自体を他方のシステムと同期させて動作を再開することができる。
【0038】
オプションで、ここで冗長システムは、より長い間エラーがない状態ですでに動作してきた(部分)システムが「マスター」として動作するように構成され得る。
【0039】
この発明に従ったシステム、特に上述のタイプの冗長システムは、利用可能性を増加させるための第2の冗長ネットワークN図9参照)を有し得る。
【0040】
実施形態では、この発明に従ったシステム(たとえば冗長システム)はさらに、特に図2によって上述されたタイプの複数の入力および/または出力ユニットを含む。これらは、それらがデータを求めることにより、たとえば、ユニット(たとえばスイッチ)への制御信号をサンプリングし、および/または、インターフェイスを介して当該制御信号の出力を行なうことにより、環境とやりとりする。
【0041】
これらの入力/出力ユニット(または出力ユニット)は特に、受信データの一貫性をチェックするように構成され得る。たとえば、それらは、いくつかの計算ユニットによって作成された出力データがすべて同一かどうかをチェックするように構成され得る。これに加えて、またはこれに代えて、それらは、すべての計算ユニットのすべてのチェックサムが正しいかどうかを検査するように構成され得る。特に、すべてのチェックサムが正しい場合のみ、または、予め規定された最小数のチェックサムが正しい場合のみ、それらはインターフェイスを介して出力を実行することができる。
【0042】
入力および/または出力ユニットはさらに、最小限の持続時間中にデータパケットが中央コンピュータ(計算ユニットを含む中央システム)から受信されなかった場合に、安全な状態に入るように構成され得る。
【0043】
入力および/または出力ユニットのうちの少なくとも1つはまた、マルチチャネル態様で設計され得る。たとえば、それが入力ユニットとして(も)設計されている場合、それは、いくつかのチャネルを介して信号(電流または電圧)を独立してサンプリングすることができる。これに加えて、またはこれに代えて、いくつかの独立したチャネルは各々、ターゲットアドレス、データ(入力データベクトルの一部としてのデータベクトル)、およびチェックサムを計算することができる。計算ユニットと同様に、チャネルのチェックサム計算は、たとえば同じ多項式の初期値が異なることにより、チャネルのチェックサム同士が異なるとともに、チャネルがそれぞれの他のチャネルのチェックサムを計算できないように行なわれ得る。
【0044】
入力ユニットによって(およびおそらくはいくつかのチャネルによって)生成されたデータパケットは、たとえばネットワークを介してともに結合されて通信パケットIPになり、アドレスおよびチェックサムで補足される。そこから、それらはネットワークによって中央システムに送信される。中央システムCUの計算ユニットはたとえば、チェックサムコンピュータを自由裁量で有しており、チェックサムコンピュータは入力ユニットと同一であり、受信データパケットが入力ユニットから正確に送信されたかどうかを検査することができる。すべてのチェックサムが正しい場合、たとえばさらなる処理のために、受信パケットのデータのみも考慮に入れられる。
【0045】
オプションで、有効なパケットが受信されなかった限り、中央システムが出力ユニットIOにさらなるパケットを提供しないことが想定され得る。これらが受信パケットを有することなく一定時間後に安全な状態に入るように構成される場合、すべてのそのようなユニットはこのために一定時間後に安全な状態に入る。
【0046】
入力ユニットおよび出力ユニットのうちの少なくともいくつか、たとえばすべては、入力および出力ユニット(入力/出力ユニット)として設計され得る。
【0047】
この発明はまた、この発明に従ったシステムと、加えて、入力および/または出力ユニットに割り当てられた制御部品(センサ、スイッチ)とを含む、特に鉄道設備のための制御システムに関する。
【0048】
この発明の原理、およびこの発明の特殊な実施形態の原理を、概略図によって以下により詳細に説明する。図面における同じ特徴付けは、同じまたは同様の要素を示す。図3〜9によるこの発明の説明に関し、図1および図2、ならびにそこに取り入れられた表記が参照される。
【図面の簡単な説明】
【0049】
図1】状態機械の原理を示す図である。
図2】従来技術に従ったシステムを示す図である。
図3】ネットワークを有する、この発明に従ったシステムの中央システムを示す図である。
図4】起こり得る安全反応の概略図である。
図5】入力/出力ユニットkへの出力のための完全なデータパケットの生成を示す図である。
図6】入力/出力ユニットkに出力するための完全なデータパケットの生成のための代替例を示す図である。
図7】ネットワークを有する入力/出力ユニットを示す図である。
図8】入力/出力ユニットkから中央システムへの完全なデータパケットの作成を示す図である。
図9】冗長システムを示す図である。
【発明を実施するための形態】
【0050】
この発明に従ったシステムを、図3に概略的に表わす。中央ユニットは、いくつかの並列計算ユニットPU…PUを有する。これらの計算ユニットの各々は、ネットワークインターフェイスNIから入力パケットIPIPを受信し、また、前の状態ベクトルn−1n−1を格納している。これから、互いから独立した計算ユニットは、入力ベクトル、状態ベクトル、および出力ベクトルを計算する。
【0051】
図3では、PR(説明される変数には各々、プログラムユニットを表わす指数0pが提供される)はプログラム基準メモリ、Pはプログラムメモリ、Lは論理ユニット、CRIおよびCROはそれぞれ、受信データおよび発信データ用のチェックサムコンピュータ、CMPは、計算されたベクトルを他の計算ユニットの対応する受信ベクトルと比較する比較論理を示す。
【0052】
この発明によれば、計算ユニットは、新規の状態ベクトルの各計算の後に、互いに結果を交換する。このため、各計算ユニットはたとえば、それ自体のバスOB…OBを有し、それを介して、各計算ユニットは残りの計算ユニットに結果を送信する。計算ユニットは次に、比較論理CMP…CMPにより、個々のチャネルの結果を互いに比較する。それらが差異を判断した場合、次に、第1の実現化例に従った一実施形態で、それらは安全反応を開始する。これの一例を、図4に概略的に表わす。ここで、これは、個々の計算素子を通る供給電圧が、すべての計算素子用のスイッチPS…PSを介して遮断されることによって行なわれる。供給電圧を遮断するために、スイッチは常にそうすることができる(そのために、従来技術に従った方法に頼ることができる)ということが保証されるべきである。
【0053】
これに加えて、またはこれに代えて、それぞれの計算ユニットが再起動されること、および、再起動後に、他の計算ユニットから来る状態データとともにそれ自体をプロセスに再度リンクすることが想定され得る。
【0054】
本発明により、状態ベクトルにおけるデータエラーがある計算サイクルから次の計算サイクルに伝搬できないことが保証される。したがって、そのようなエラーの不良開示時間は、計算サイクルの時間に限定される。
【0055】
計算ユニットにおけるデータエラーはまた、偽の出力ベクトルを、または偽の出力パケット0…kOP0…kOPをもたらす場合がある。そのようなデータエラーを認識するために、一群の実施形態では、各計算ユニットPU…PUは、出力パケットごとに個々のシグネチャ0‥kCRC0‥kCRCを作成する。個々の計算ユニットのシグネチャは、どの計算ユニットも、別の計算ユニットのシグネチャを生成できないように設計される。これはたとえば、計算ユニットが、異なるアルゴリズムを使用することによって、または同じアルゴリズムを異なるキー、開始値、生成多項式などで使用することによって達成され得る。出力パケットは、シグネチャとともに、計算ユニットからネットワークインターフェイスNIに転送される。これらのネットワークインターフェイスは、個々の計算ユニットの出力パケットをメッセージになるよう構成し、それを図5に表わす。
【0056】
異なるデータが許容されない第1の実現化例に従った実施形態では、オプションで、出力パケットの有用データがメッセージに1回だけ含まれることにより、メッセージのサイズを減少させることができる。この目的のために、ネットワーク(または別のユニット)用のデータパケットをネットワークへの入力で組み立てるネットワークインターフェイスのプロトコル変換器が、図6に表わすようなデータパケットを生成することができる。たった1つのシグネチャでさえ、計算ユニットのうちのいずれか1つによって生成された出力ベクトルから得られ得るデータDOと一致しない場合、受信する出力ユニットは、ユニットのうちの1つが出力データまたはテストデータ(シグネチャ)を誤って計算したと認識し得る。ここに説明される実施形態では、出力ユニットは常に入力ユニットでもあり、すなわちI/Oユニットである。
【0057】
システムが第2の実現化例に従って設計される場合、たとえば、図5に示されるようなメッセージが送信され、または、選択が好適な態様で行なわれ、そのため、これにより、少なくとも使用可能なデータ(十分な数の計算ユニットによって同一に計算されたデータ)が出力ユニットに転送されることが保証される。
【0058】
2チャネルアーキテクチャの例を用いた、一実施形態に従った入力および出力ユニットの構成を図7に示す。図7の例は、データパケットは図6に示すように組み立てられると仮定する。
【0059】
チャネル0または1が、ネットワークインターフェイスIONI、ならびに受信機RおよびRをそれぞれ介してメッセージを受信する場合、それらは、そこに含まれるテストデータおよびシグネチャをチェックする。メッセージが最小必要数の有効シグネチャを有さない場合、入力および出力ユニットはメッセージを拒否する。その他の場合、出力データDOは、出力レジスタRDまたはRDに、ひいては出力に、図示された実施形態ではスイッチSおよびSに、それぞれ入る。したがって、本発明により、影響された計算ユニットの数が有効シグネチャの最小必要数よりも少ない限り、出力パケットにおけるデータエラーは間違った出力をもたらさない、ということが保証される。この発明によれば、入力および出力ユニットはしたがって、シグネチャに基づいて、十分な数の計算ユニットが出力パケットを一致する態様で計算したかどうかを確認することができる。
【0060】
データエラーはまた、偽の入力パケット0‥kIP0‥kIPをもたらす場合がある。そのようなエラーを認識するために、出力パケットと同じ方法に頼る。ここでは、よくあるように、入力変数はいくつかの独立したセンサを介して読込まれる。図7は、2つの電流センサISおよびISの例を用いて、これを示す。双方のチャネルにおける測定値(読取値)は、入力レジスタIDおよびIDにそれぞれ読込まれる。双方のチャネルは次に、通常のテストデータAを計算し、そしてこの発明によれば、それに加えて、個々のシグネチャCRCn+1およびCRCn+1をそれぞれ計算する。出力データパケットに関しても、同じ仮定がこれらのシグネチャに当てはまる。つまり、シグネチャは、それらがそれぞれの入力/出力ユニットのみによって生成され得るようになっている。チャネルはこのデータから入力パケットを生成し、このパケットをネットワークインターフェイスIONIに出力する。チャネルの入力パケットからのこれは、出力パケットと同様に、メッセージを合計データパケット(図8)として生成し、これを中央ユニットの計算ユニットPU…PUに送信する。このメッセージが、有効シグネチャを有する最小必要数の読取値を含まない場合、計算ユニットはメッセージを拒否する。第2のテストステップで、通常通り、計算ユニットは、(ここでのようにマルチチャネル入力/出力ユニットの場合の)チャネルが読取値を一致して測定したかどうかを確認するために、読取値を比較する。したがって、本発明により、影響されたチャネルの数が有効シグネチャの最小必要数よりも少ない限り、入力パケットにおけるデータエラーは偽の入力ベクトルをもたらさない、ということが保証される。この発明によれば、入力および出力ユニットはしたがって、シグネチャに基づいて、十分な量のチャネルが読取値を一致して測定したかどうかを確認することができる。
【0061】
プログラムコードにおけるエラー:
各計算ユニットPU…PUは、図3によれば、プログラムメモリP0…Pを有する。これに格納されたプログラムコードにおけるエラーを見出すための可能性は2つある:
可能性1:各計算ユニットは、他のすべての計算ユニットに、プログラムメモリの全内容を送信する。これらは、受信データを、それらのプログラム基準メモリPR‥PRの内容と比較し、差異がある場合、述べられたアクションのうちの1つ以上を開始する;
可能性2:各計算ユニットはセルフテストを有し、それにより、計算ユニットは、整合性に関してプログラムメモリの内容をテストすることができる。ある計算ユニットがそれ自体のプログラムメモリにおけるエラーを確認した場合、それは他の計算ユニットにエラーを信号で伝える。他の計算ユニットは次に、述べられたアクションのうちの1つ以上を開始する。
【0062】
冗長なコンピュータによって計算システムの利用可能性が向上され得ることは、一般に知られている。本発明に適合されたそのような冗長性の概念を、図9に表わす。安全機能としての冗長性は、図3に従った実施形態においても、オプションで互いから物理的に離れることができるいくつかの計算ユニットを含むシステムによって存在する。計算ユニットは個々に交換可能であり、そのため、それらはオプションで、異なる回路基板上に実装され得るということが想定され得る。図9の実施形態は最も高い安全レベルの概念を目指しており、それにより、第1の実現化例によれば、エラー(一致しない出力データ、入力データまたは状態データ、もしくは確認されたプログラムエラー)がある場合、コンピュータシステムは安全でないとして直ちにカウントされ、対応する反応が起動される。次に、図3に従った実現化例では、これは、動作が中断されること、および、安全反応の起動によってシステム全体が安全になることをもたらす。望ましくないであろう、許容されないであろう(たとえば、鉄道輸送全体を停止させる必要があるような場合の鉄道安全設備の制御)、またはさらに危険であろう(航空機などの制御)配置がある。
【0063】
(規定された基準に従って)最小限のデータが一致していることのみを要求することによってエラーの場合の動作を保証する上述の可能性に加えて、図9によれば、この発明に従った完全な作動コンピュータシステムを2つ提供する可能性もある。コンピュータシステムCUおよびCUは双方とも、この発明に従って構成され、たとえば図3〜8によって上述された原理に従って機能する。2つのコンピュータシステムは各々、たとえば計算ユニットおよびデータメモリなどが各々、個々の回路基板またはいくつかの個々の回路基板上に実装されることにより、互いから独立して保守点検され得るように構成され得る。
【0064】
完全な冗長システムはしたがって、中央コンピュータシステムCUおよびCUを含む(3つ以上のコンピュータシステムへの一般化は直ちに可能である)。双方のコンピュータシステムは同一に構成され、いくつかの計算ユニットPU…PUおよびPU0*…PUp*をそれぞれ有し、それらは各々、チャネルを形成する。システムはさらに、いくつかのI/OユニットIO…IOを有し、または少なくともそのようなI/Oユニットとやりとりするように構成される。IOユニットは、たとえば2チャネルの態様で実現されるが、必ずしも冗長に構成されるとは限らない。冗長なI/Oユニットはまた、特に重要なI/Oタスク(たとえば、上位の制御センターとの通信)のために可能である。システムは加えて、個々のエラーがシステム全体を損なうことができないように、2つの冗長ネットワークインターフェイスNIおよびNI、ならびにNIおよびNIをそれぞれ介して中央ユニットに接続された、2つの冗長ネットワークNおよびNを有する。
【0065】
通常動作では、2つの冗長システムCUおよびCUのうちの一方が「ボス」(マスター)であり、他方のシステムは従う(スレーブ)。双方のシステムは100%同一に動作するが、唯一の例外は、マスターは、スレーブよりも長く連続動作しているシステムである、ということである。処理における唯一の違いは、マスターが時間手順を設定する、ということである。
【0066】
システム全体の動作を開始する際、作業員はまず、冗長な中央システムCUまたはCUのうちの一方を手動で始動する。最初に始動されたシステムは、自動的にマスターになる。スレーブが始動されてプログラムがロードされるやいなや、次に各サイクルで、それは通信システムOBまたはOBを介して完全な入力および状態データを採用する。双方のシステムはここで独立して作動するが、同一の状態を生成し、これからIOユニットへの同一の通知を生成する。たとえば、マスターの計算ユニットのうちの1つでプログラムコードにエラーが生じた場合、このマスターは撤退し、スレーブがマスターになる。データエラーが確認された場合、処理は同様の態様で進む。
【0067】
撤退した中央システムは次に、たとえば、各ユニットでの基準メモリから、中央システムに割り当てられたソースまたは外部のソースから、もしくは別の中央システムから、プログラムコードまたは構成コードをロードすることにより、新たに構成される。
【0068】
この中央システムが動作する準備ができるやいなや、あるサイクルで、それは、通信システムOBおよびOBを介して新規の/現在のマスターの入力および状態データを採用する。新たに再起動された中央システムはここで、スレーブとして動作する準備ができており、これをマスターに通知して、続くサイクルで再度参加する。
【0069】
スレーブの計算ユニットのうちの1つがエラーを起こした場合、処理は同様に進む。すなわち、スレーブは撤退し、動作する準備ができてからスレーブとして再度参加する。
【0070】
ハードウェアエラーの兆候がプログラムテストで、もしくは繰り返し連続して観察されたデータエラーまたはプログラムエラーによって見つかるやいなや、それぞれの計算ユニットは、完全にスイッチオフされ得る。これは、ユーザへのヒントによって補足されてもよく、それに基づき、影響された計算ユニット、またはおそらくは計算ユニットを含む回路基板全体が交換されるべきである。システムが十分に冗長な態様で設計されている場合、ある状況下では、そのような交換は不要かもしれず、ユニットが永続的にスイッチオフされ続ける場合、それは十分である。
【符号の説明】
【0071】
:入力ベクトル、:状態ベクトル、:出力ベクトル、PU:計算ユニット。
図1
図2
図3
図4
図5
図6
図7
図8
図9