(57)【要約】  複数の入力部（１１０）それぞれは、入力データ（１０１）が入力された入力タイミングに入力通知（１０４）を出力し、入力タイミングと他の入力部から入力通知が出力されたタイミングとのうちの遅い方のタイミングである同期タイミングに入力データを出力する。複数の演算部（１２０）それぞれは、対応付けられた入力部から出力された入力データが入力されたときに演算を始める。
2017094162.tif 000002
【特許請求の範囲】
【請求項１】
データがそれぞれに入力される複数の入力部を備え、
前記複数の入力部それぞれは、前記データが入力された入力タイミングに入力通知を出力し、前記入力タイミングと他の入力部から入力通知が出力されたタイミングとのうちの遅い方のタイミングである同期タイミングに前記データを出力する
ことを特徴とする多重系システム。
【請求項２】
前記複数の入力部それぞれは、
前記データが入力されて前記データを記憶する記憶部と、
前記データが前記記憶部に記憶されたタイミングを前記入力タイミングとして検出して入力通知を出力する通知部と、
前記入力タイミングと他の入力部から入力通知が出力されたタイミングとのうちの遅い方のタイミングを前記同期タイミングとして検出する検出部と、
前記同期タイミングが検出されたときに、前記記憶部から前記データを読み出して前記データを出力する同期部と
を備える請求項１に記載の多重系システム。
【請求項３】
前記複数の入力部それぞれは、制限タイミングまでに前記同期タイミングにならない場合、前記制限タイミングに前記データを出力する
請求項１に記載の多重系システム。
【請求項４】
前記制限タイミングは、前回入力されたデータが出力されてから経過した時間が許容時間に達するタイミングである
請求項３に記載の多重系システム。
【請求項５】
前記複数の入力部それぞれは、
前記データが入力されて前記データを記憶する記憶部と、
前記データが前記記憶部に記憶されたタイミングを前記入力タイミングとして検出して入力通知を出力する通知部と、
前記入力タイミングと他の入力部から入力通知が出力されたタイミングとのうちの遅い方のタイミングを前記同期タイミングとして検出する要素であって、前記同期タイミングと前記制限タイミングとのうちの早い方のタイミングである先行タイミングを検出する要素である検出部と、
前記先行タイミングが検出されたときに、前記記憶部から前記データを読み出して前記データを出力する同期部と
を備える請求項４に記載の多重系システム。
【請求項６】
演算を行う複数の演算部を備え、
前記複数の演算部それぞれは、入力部に対応付けられて、対応付けられた入力部から出力されたデータが入力されたときに演算を始める
請求項１に記載の多重系システム。
【請求項７】
前記複数の演算部によって得られた複数の演算結果から演算結果を選択し、選択した演算結果と同じ内容のデータを出力する出力部を備える
請求項６に記載の多重系システム。
【請求項８】
前記出力部は、選択しなかった演算結果が得られた演算部にエラーを通知する
請求項７に記載の多重系システム。
【請求項９】
エラーが通知された演算部は、次回以降の演算を行わない
請求項８に記載の多重系システム。
【請求項１０】
前記複数の演算部のうちの多数決で選ばれない演算結果が得られた演算部を特定する特定部を備える
請求項６に記載の多重系システム。
【請求項１１】
前記特定部は、特定した演算部にエラーを通知し、
前記エラーが通知された演算部は、次回以降の演算を行わない
請求項１０に記載の多重系システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理系を有する多重系システムに関するものである。
【背景技術】
【０００２】
信頼度が高い組み込みシステムにおいては、故障などのトラブルが発生した場合にも処理を継続することが求められる。そのため、処理系を多重化していずれかの処理系で故障が発生しても他の処理系で動作が継続させるフォルトトレラント設計が行われる。
フォルトトレラント設計の一つとして、故障が発生した処理系を検知し、検知した処理系を分離し、残りの処理系で処理を継続する方法がある。【０００３】
故障の発生を判別する一般的な方法として、各処理系の演算結果を比較する方法がある。演算結果が不一致であれば、いずれかの処理系で故障が発生したことが検知できる。
この方法では、各処理系に故障が発生していない場合に、各処理系の演算結果を一致させるため、各処理系に同じ入力を与える必要がある。
しかし、処理系が同じタイミングで演算を行う場合、各処理系にデータが入力されるタイミングがずれると、各処理系の演算結果が一致しない。具体的には、第１の処理系には第１のデータが演算タイミングの前に入力されたが、第２の処理系には第１のデータが演算タイミングの後に入力された場合である。この場合、第１の処理系は第１のタイミングに第１のデータを用いて演算を行うが、第２の処理系は第１のタイミングに第１のデータを用いずに演算を行う。そのため、第１の処理系の演算結果と第２の処理系の演算結果は互いに一致しない。
このような処理系のシステムでは、各処理系にデータが入力されるタイミングを合わせる必要がある。【０００４】
また、各処理系で演算が開始されるタイミングが合っていないと、各処理系にデータが入力されるタイミングが合っていても、各処理系でデータが入力されたタイミングに実行される演算が異なる。具体的には、第２のデータが入力された後に第１の処理系が第２の演算を開始したが、第２のデータが入力された後に第２の処理系が第１の演算を開始した場合である。この場合、第１の処理系は第２のデータを用いて第２の演算を行うが、第２の処理系は第２のデータを用いて第１の演算を行う。そのため、第１の処理系と第２の処理系とに第２のデータが入力された後の演算結果は、第１の処理系と第２の処理系とで異なる。
このような処理系のシステムでは、各処理系で演算が開始されるタイミングを合わせる必要がある。【０００５】
各処理系の演算開始のタイミングを合わせる方法として、各処理系のクロック源を以下のように同一にする方法がある。
（１）単一の水晶発振器から出力されるクロック信号を各処理系のクロック源とする。そして、各処理系は単一の水晶発振器から出力されるクロック信号に合わせて動作する。
しかし、この方法の場合、水晶発振器が単一故障すると、システム全体が停止してしまう。また、一般に水晶発振器の故障率は他のＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）に比べて高い。そのため、システムの信頼度は低下し、処理系を多重化して継続動作を可能とするメリットが損なわれる。
（２）同期化用ＩＣによって同期化されたクロック信号を各処理系のクロック源とする。同期化用ＩＣは複数の水晶発振器から出力されるクロック信号を同期化する。そして、各処理系は同期化用ＩＣによって同期化されたクロック信号に合わせて動作する。
この場合、システムが複数の水晶発振器を持つため、水晶発振器が単一故障してもシステム全体が停止することはない。したがって、システムの信頼度を保つことができる。
しかし、同期化用ＩＣは非常に高価であるため、コストを重要視する組み込みシステムでは、この方法を適用することができない。【０００６】
つまり、高い信頼度を確保し、かつ安価にシステムを構築するには、上記（１）、（２）のいずれの方法も適用することができない。
そのため、各処理系に別々のクロック源を与えて各処理系を非同期で動かした上で、各処理系の演算開始のタイミングを合わせる必要がある。【０００７】
このような課題を解決するための方法を開示する先行技術文献として、特許文献１および特許文献２がある。【０００８】
特許文献１に開示された方法では、クロック源が異なる各処理系のクロックサイクル数の違いがカウントされる。そして、各処理系のクロックサイクル数の違いを考慮して、各処理系へのデータの入力と、各処理系の演算結果の比較とが行われる。
例えば、第２の処理系の動作が第１の処理系の動作よりも１０クロック遅い場合、データが第１の処理系に入力されてから１０クロック後に、同じデータが第２の処理系に入力されるように調整される。また、第１の処理系の演算結果は１０クロック後の第２の処理系の演算結果と比較される。
これにより、各処理系が非同期で動作している場合でも、各処理系が同じデータを用いて同じ演算を行うことが可能となる。さらに、各処理系の同じ演算の結果を比較することが可能となる。【０００９】
しかし、一般的に使用される水晶発振器の精度には、±１００ＰＰＭ（Ｐａｒｔｓ  Ｐｅｒ  Ｍｉｌｌｉｏｎ）以内の偏差が生じる。すなわち、１００ＭＨｚ（メガヘルツ）の水晶発振器が使用される場合、１クロックの時間である１０ナノ秒に対して、±１ピコ秒の範囲でばらつきが発生する。
このため、第１の処理系の１クロックが１０ナノ秒＋１ピコ秒であり、第２の処理系の１クロックが１０ナノ秒−１ピコ秒であった場合、第１の処理系と第２の処理系とには、１００万クロックの時間に１マイクロ秒の時間差が発生する。１００万クロックは１００ＭＨｚで１秒である。さらに、第１の処理系と第２の処理系とには、３６億クロックの時間に３．６ミリ秒の時間差が発生する。３６億クロックは１００ＭＨｚで１時間である。つまり、各処理系の動作時間が長くなるほど、各処理系の時間差が広がる。
また、各処理系の演算結果を比較するためには、処理が早い方の処理系の演算結果を、処理が遅い方の処理系の演算結果が得られるまで、保持しなければならない。さらに、各処理系の動作時間が長くなると、保持しなければならない演算結果の量が増えるため、バッファの空きが無くなる。そして、各処理系の演算結果を比較することができなくなる。
つまり、各処理系の時間差が広がる場合、特許文献１に開示された方法では、各処理系の同じ演算の結果を比較することが困難になる。【００１０】
特許文献２に開示された方法では、各処理系が同期化のコマンドを送受信することによって、各処理系がデータを受け付けるタイミングと、各処理系が演算を開始するタイミングが合わされる。これにより、各処理系が同じデータを用いて同じ演算を行うことが可能となる。但し、各処理系にデータが同時に届く必要がある。
つまり、各処理系にデータが届くタイミングが同時でない場合、特許文献２に開示された方法は使用できない。
また、周期的な演算においては、各処理系が同期化のコマンドを送受信するまで各処理系が待機状態となるような動作が適さない場合がある。その場合、特許文献２に開示された方法は使用できない。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００９−１９３５０４号
【特許文献２】特開昭５８−９９８６５号
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は、多重系システムにおいて、複数の処理系それぞれにデータが入力されるタイミングが同期されない場合であっても、複数の処理系それぞれの動作が同期されるようにすることを目的とする。
【課題を解決するための手段】
【００１３】
本発明の多重系システムは、データがそれぞれに入力される複数の入力部を備える。
前記複数の入力部それぞれは、前記データが入力された入力タイミングに入力通知を出力し、前記入力タイミングと他の入力部から入力通知が出力されたタイミングとのうちの遅い方のタイミングである同期タイミングに前記データを出力する。
【発明の効果】
【００１４】
本発明によれば、多重系システムにおいて、複数の入力部それぞれにデータが入力されるタイミングが同期されない場合であっても、複数の入力部それぞれからデータが同期して出力される。そのため、複数の処理系それぞれにデータが入力されるタイミングが同期されない場合であっても、複数の処理系それぞれの動作を同期させることが可能になる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１における多重系システム１００の構成図。
【図２】実施の形態１における入力部１１０の機能構成図。
【図３】実施の形態１における演算回路２２０の構成図。
【図４】実施の形態１における出力部１３０の機能構成図。
【図５】実施の形態１における多重化方法のフローチャート。
【図６】実施の形態１における入力処理（Ｓ１１０）のフローチャート。
【図７】実施の形態１における演算処理（Ｓ１２０）のフローチャート。
【図８】実施の形態１における出力処理（Ｓ１３０）のフローチャート。
【図９】実施の形態２における入力部１１０の機能構成図。
【図１０】実施の形態２における入力処理（Ｓ１１０）のフローチャート。
【図１１】実施の形態３における多重系システム１００の構成図。
【図１２】実施の形態３における特定部１４０の機能構成図。
【図１３】実施の形態３における多重化方法のフローチャート。
【図１４】実施の形態３における特定処理（Ｓ１４０）のフローチャート。
【発明を実施するための形態】
【００１６】
実施の形態１．
複数の処理系を有する多重系システム１００について、図１から図８に基づいて説明する。
【００１７】
＊＊＊構成の説明＊＊＊
図１に基づいて、多重系システム１００の構成について説明する。
多重系システム１００は、複数の集積回路２１０と複数の演算回路２２０と１つの集積回路２３０とを備える。
具体的には、集積回路２１０および集積回路２３０はＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ
Ｉｎｔｅｇｒａｔｉｏｎ）と呼ばれる回路である。また、演算回路２２０はプロセッサを有する回路である。
【００１８】
複数の集積回路２１０、複数の演算回路２２０およびと１つの集積回路２３０は信号線を介して接続されている。
具体的には、複数の集積回路２１０は互いに接続されて、複数の演算回路２２０は集積回路２３０に接続されている。また、第ｎの集積回路２１０は第ｎの演算回路２２０に接続されている。
【００１９】
集積回路２１０は入力部１１０として機能し、演算回路２２０は演算部１２０として機能し、集積回路２３０は出力部１３０として機能する。
つまり、多重系システム１００は、複数の入力部１１０と複数の演算部１２０と１つの出力部１３０といった「部」を機能構成の要素として備える。そして、「部」の機能は回路というハードウェアで実現される。「部」の機能については後述する。
【００２０】
入力部１１０と演算部１２０とは１対１で対応付けられて、入力部１１０と演算部１２０との組は処理系を構成する。
つまり、第ｎの入力部１１０と第ｎの演算部１２０とが１対１に対応付けられて、第ｎの入力部１１０と第ｎの演算部１２０との組が第ｎの処理系を構成する。第ｎの入力部１１０は第ｎの集積回路２１０が備える入力部１１０であり、第ｎの演算部１２０は第ｎの演算回路２２０が備える演算部１２０である。
【００２１】
図２に基づいて、入力部１１０の機能構成について説明する。
入力部１１０は、記憶部１１１と通知部１１２と検出部１１３と同期部１１４とを機能構成の要素として備える。これらの部の機能については後述する。
【００２２】
図３に基づいて、演算回路２２０の構成について説明する。
演算回路２２０は、プロセッサ２２１とメモリ２２２と発振器２２３とを備える。プロセッサ２２１は、メモリ２２２と発振器２２３に信号線を介して接続されている。
プロセッサ２２１はプロセッシングを行う集積回路である。具体的には、プロセッサ９０１はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
メモリ２２２は不揮発性の記憶装置である。具体的には、メモリ２２２はＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）である。
発振器２２３はクロック信号を生成する回路である。具体的には、発振器２２３は水晶発振器である。
【００２３】
発振器２２３はプロセッサ２２１のクロック源である。プロセッサ２２１は、発振器２２３のクロック周波数を動作周波数として動作する。但し、プロセッサ２２１は、発振器２２３のクロック周波数を逓倍し、逓倍したクロック周波数を動作周波数として動作してもよい。
発振器２２３には個体差がある。具体的には、発振器２２３の精度には、±１００ＰＰＭ以内の偏差が生じる。そのため、発振器２２３の定格周波数が１００ＭＨｚである場合、発振器２２３には±１０ＫＨｚ（キロヘルツ）の差が生じる。つまり、早い発振器２２３ではクロック周波数が１００ＭＨｚ＋１０ＫＨｚであり、遅い発振器２２３ではクロック周波数が１００ＭＨｚ−１０ＫＨｚである。したがって、プロセッサ２２１間で動作周波数に差が生じる。
【００２４】
メモリ２２２には演算プログラムが記憶されている。演算プログラムには複数の演算および演算の順序が定義されている。
プロセッサ２２１は、発振器２２３によって生成されるクロック信号に合わせて動作し、メモリ２２２に記憶されている演算プログラムを実行する。プロセッサ２２１は演算部１２０として機能する。
【００２５】
図４に基づいて、出力部１３０の機能構成について説明する。
出力部１３０は、多数決部１３１と検出部１３２とリセット部１３３とタイマ部１３４とを機能構成の要素として備える。これらの部の機能については後述する。
【００２６】
＊＊＊動作の説明＊＊＊
多重系システム１００の動作は多重化方法に相当する。
【００２７】
図５に基づいて、多重化方法について説明する。
ステップＳ１０１において、複数の入力部１１０それぞれにデータが入力されると、処理はステップＳ１１０に進む。それぞれの入力部１１０に入力されるデータを入力データ１０１という。
なお、それぞれの入力部１１０には同じ入力データ１０１が入力される。また、それぞれの入力部１１０に入力データ１０１が入力されるタイミングは、ずれても構わない。つまり、入力データ１０１は、それぞれの入力部１１０に入力されるタイミングが同期されずに、それぞれの入力部１１０に入力されても構わない。
【００２８】
ステップＳ１１０は入力処理である。
複数の入力部１１０それぞれは、入力データ１０１が入力された入力タイミングに入力通知１０４を出力し、入力データ１０１を同期タイミングに出力する。同期タイミングは、入力タイミングと他の入力部１１０から入力通知１０４が出力されたタイミングとのうちの遅い方のタイミングである。
【００２９】
具体的には、それぞれの入力部１１０は入力通知１０４および入力データ１０１を以下のように出力する。
入力データ１０１が記憶部１１１に入力されて、記憶部１１１が入力データ１０１を入力する。
通知部１１２は、入力データ１０１が記憶部１１１に記憶されたタイミングを入力タイミングとして検出して入力通知１０４を出力する。
検出部１１３は、入力タイミングと他の入力部１１０から入力通知１０４が出力されたタイミングとのうちの遅い方のタイミングを同期タイミングとして検出する。
同期部１１４は、同期タイミングが検出されたときに、記憶部１１１から入力データ１０１を読み出して入力データ１０１を出力する。
【００３０】
図６に基づいて、入力処理（Ｓ１１０）の手順について説明する。
ステップＳ１１１において、入力データ１０１が記憶部１１１に入力される。そして、記憶部１１１は入力データ１０１を記憶する。
【００３１】
ステップＳ１１２において、記憶部１１１は記憶通知１９１を出力する。記憶通知１９１は、入力データ１０１が記憶部１１１に記憶されたことを通知するための信号である。
出力された記憶通知１９１は、通知部１１２と検出部１１３とに入力される。
【００３２】
ステップＳ１１３において、通知部１１２は入力通知１０４を出力する。入力通知１０４は、入力データ１０１が入力部１１０に入力されたことを通知するための信号である。
出力された入力通知１０４は、他の入力部１１０に入力される。
【００３３】
ステップＳ１１４において、検出部１１３は同期タイミングを検出する。
同期タイミングは、記憶部１１１から出力された記憶通知１９１が入力されたタイミングと他の入力部１１０から出力された入力通知１０４が入力されたタイミングとのうちの遅い方のタイミングである。
【００３４】
具体的には、検出部１１３は同期タイミングを以下のように検出する。以下の説明において、他の入力部１１０は第２の入力部１１０および第３の入力部１１０である。
検出部１１３は第１〜第３のフラグを有する。
記憶通知１９１が入力されると第１のフラグの値が０から１に変わる。また、第２の入力部１１０の入力通知１０４が入力されると第２のフラグの値が０から１に変わり、第３の入力部１１０の入力通知１０４が入力されると第３のフラグの値が０から１に変わる。
検出部１１３は、第１〜第３のフラグの全ての値が１になったタイミングを同期タイミングとして検出する。
同期タイミングが検出されると、処理はステップＳ１１５に進む。
【００３５】
ステップＳ１１５において、検出部１１３は検出通知１９２を出力する。検出通知１９２は、同期タイミングが検出されたことを通知するための信号である。
出力された検出通知１９２は、同期部１１４に入力される。
【００３６】
ステップＳ１１６において、同期部１１４は、記憶部１１１から入力データ１０１を読み出す。そして、同期部１１４は、読み出した入力データ１０１を出力する。
第ｎの入力部１１０の同期部１１４から出力された入力データ１０１は、第ｎの演算部１２０に入力される。
【００３７】
図５に戻り、ステップＳ１２０から説明を続ける。
ステップＳ１２０は演算処理である。
ステップＳ１２０において、複数の演算部１２０は、複数の入力部１１０から出力された入力データ１０１が入力されたときに演算を始める。つまり、第ｎの演算部１２０は、第ｎの入力部１１０から出力された入力データ１０１が入力されたときに演算を始める。
そして、複数の演算部１２０それぞれは、演算結果１０２を出力する。
但し、出力部１３０からエラーが通知された演算部１２０は、演算を行わず、演算結果１０２を出力しない。エラーが通知された演算部１２０を有する処理系は故障していると考えられるためである。
【００３８】
図７に基づいて、演算処理（Ｓ１２０）の手順について説明する。
ステップＳ１２１において、演算部１２０は演算の要否を判定する。
【００３９】
具体的には、演算部１２０は演算の要否を以下のように判定する。
メモリ２２２には演算フラグが記憶されている。演算フラグの値は、エラーが通知された場合に０から１に変更される。
演算フラグの値が０である場合、演算部１２０は演算が必要であると判定する。また、演算フラグの値が１である場合、演算部１２０は演算が不要であると判定する。
演算が必要であると判定されると、処理はステップＳ１２２に進む。
【００４０】
ステップＳ１２２において、演算部１２０は、入力された入力データ１０１を用いて演算を行う。具体的には、演算部１２０として機能するプロセッサ２２１が、メモリ２２２に記憶された演算プログラムを実行する。
演算が終了すると、処理はステップＳ１２３に進む。
【００４１】
ステップＳ１２３において、演算部１２０は演算結果１０２を出力する。演算結果１０２は、演算によって得られた結果を示すデータである。
出力された演算結果１０２は、出力部１３０に入力される。
【００４２】
図５に戻り、ステップＳ１３０から説明を続ける。
ステップＳ１３０は出力処理である。
ステップＳ１３０において、出力部１３０は、複数の演算部１２０によって得られた複数の演算結果１０２から演算結果１０２を選択し、選択した演算結果１０２と同じ内容のデータを出力する。出力部１３０から出力されるデータを出力データ１０３という。
また、出力部１３０は、選択しなかった演算結果１０２が得られた演算部１２０にエラーを通知する。
【００４３】
図８に基づいて、出力処理（Ｓ１３０）の手順について説明する。
ステップＳ１３１において、多数決部１３１は、演算結果１０２を比較する比較タイミングを検出する。
比較タイミングは、複数の演算部１２０から出力された演算結果１０２が入力されたタイミングと演算結果１０２の比較が済んでいるべきタイミングとのうちの早い方のタイミングである。
演算結果１０２の比較が済んでいるべきタイミングは、タイマ部１３４から出力されるタイムアウト通知１９５が入力されるタイミングである。
【００４４】
具体的には、多数決部１３１は比較タイミングを以下のように検出する。以下の説明において、複数の演算部１２０は第１〜第３の演算部１２０である。
第１〜第３の演算部１２０から出力された演算結果１０２は、多数決部１３１、タイマ部１３４および検出部１３２に入力される。
多数決部１３１は第１〜第３のフラグを有する。第ｎのフラグの値は、第ｎの演算部１２０から出力された演算結果１０２が入力されると０から１に変わる。
タイマ部１３４は、第１〜第３の演算部１２０から出力される演算結果１０２のうち１つ目の演算結果１０２が入力されると時間の計測を開始し、１つ目の演算結果１０２が入力されてから経過した経過時間を計測する。そして、タイマ部１３４は、経過時間が保留時間に達すると、タイムアウト通知１９５を出力する。タイムアウト通知１９５は、経過時間が保留時間に達したことを通知するための信号である。出力されたタイムアウト通知１９５は、多数決部１３１に入力される。保留時間は予め決められた時間である。具体的には、保留時間は１ミリ秒である。
多数決部１３１は、第１〜第３のフラグの全ての値が１になったタイミングとタイムアウト通知１９５が入力されたタイミングとのうちの早い方のタイミングを比較タイミングとして検出する。
比較タイミングが検出されると、処理はステップＳ１３２に進む。
【００４５】
ステップＳ１３２において、多数決部１３１は、入力された演算結果１０２の多数決を取り、多数派の演算結果１０２を選択する。多数派の演算結果１０２は、多数決で選ばれる演算結果１０２を意味する。
つまり、第１〜第３の演算結果１０２が入力されて、第１の演算結果１０２および第２の演算結果１０２が第１の値であり、第３の演算結果１０２が第２の値である場合、多数決部１３１は第１の演算結果１０２および第２の演算結果１０２を選択する。
【００４６】
ステップＳ１３３において、多数決部１３１は、選択した演算結果１０２と同じ内容のデータを出力データ１０３として出力する。
出力データ１０３は、多重系システム１００の外部に出力される。また、出力データ１０３は、検出部１３２とリセット部１３３とに入力される。
【００４７】
リセット部１３３は、出力データ１０３が入力されるとリセット通知１９６を出力する。リセット通知１９６は経過時間の計測をリセットするための信号である。出力されたリセット通知１９６は、タイマ部１３４に入力される。
タイマ部１３４は、経過時間の計測を停止し、計測した時間をゼロに戻す。
【００４８】
ステップＳ１３４において、検出部１３２は、入力された演算結果１０２を入力された出力データ１０３と比較する。
【００４９】
ステップＳ１３５において、検出部１３２は、入力された演算結果１０２が入力された出力データ１０３と一致するか判定する。
少なくともいずれかの演算結果１０２が出力データ１０３と一致しない場合、処理はステップＳ１３６に進む。
【００５０】
ステップＳ１３６において、検出部１３２はエラー通知１０５を生成する。
具体的には、検出部１３２は、出力データ１０３と一致しない演算結果１０２の入力元の演算部１２０を特定し、特定した演算部１２０を識別する識別子を含んだエラー通知１０５を生成する。
エラー通知１０５は、少数派の演算結果１０２が得られた演算部１２０を通知するためのデータである。少数派の演算結果１０２は、多数決で選ばれない演算結果１０２を意味する。
【００５１】
そして、検出部１３２は、生成したエラー通知１０５を出力する。出力されたエラー通知１０５は、複数の演算部１２０それぞれに入力される。
エラー通知１０５に含まれる識別子によって識別される演算部１２０は、次回以降の演算を行わない。つまり、エラーが通知された演算部１２０は次回以降の演算を行わない。エラーが通知された演算部１２０を有する処理系は故障していると考えられるためである。
【００５２】
＊＊＊実施の形態１の効果＊＊＊
多重系システム１００は、複数の処理系それぞれにデータが入力されるタイミングが同期されない場合であっても、複数の処理系それぞれの動作を同期させることができる。
複数の入力部１１０は同期タイミングに入力データ１０１を出力する。そのため、複数の演算部１２０には入力データ１０１が同じタイミングで入力される。
【００５３】
複数の演算部１２０は、入力データ１０１が入力されたタイミングで演算を開始する。つまり、入力データ１０１が入力されたタイミングが、演算プログラム内の演算の実行を開始するタイミングとなる。
そのため、複数の演算部１２０それぞれの動作周波数に差が生じていても、同じ演算が実行されるタイミングには同じ入力データ１０１が複数の演算部１２０に入力されている。したがって、複数の演算部１２０は、同じ入力データ１０１を用いて同じ演算を実行することができる。そして、複数の演算部１２０は、同じ演算結果１０２を出力することができる。
具体的には、プロセッサ２２１の内部タイマが所定値になったときに演算プログラムが起動される。例えば、所定値は０である。この場合、入力データ１０１が入力されたタイミングでプロセッサ２２１の内部タイマの値を０に変更することにより、複数のプロセッサ２２１において演算プログラムはほぼ同じ時刻に起動する。プロセッサ２２１間で動作周波数が違うために演算プログラムが起動するタイミングが若干ずれたとしても、演算プログラムは入力データ１０１が入力されたときに起動する。そのため、いずれかの処理系で故障等のトラブルが発生しない限り、複数の演算部１２０は、同じ入力データ１０１を用いて同じ演算を実行することができる。そして、複数の演算部１２０は、同じ演算結果１０２を出力することができる。
入力データ１０１が入力されたタイミングでプロセッサ２２１の内部タイマの値が所定値になるため、プロセッサ２２１間で動作周波数が違っても演算が開始されるタイミングのずれは拡大しない。入力データ１０１が入力される周期が数百ミリ秒で、発振器２２３の精度の偏差が±１００ＰＰＭ以内で、プロセッサ２２１の動作周波数が１００ＭＨｚである場合、演算が完了するタイミングのずれが数百マイクロ秒程度に抑えられる。入力データ１０１が届いたタイミングで、演算が開始されるためである。そして、演算が完了するタイミングのずれが小さいことにより、出力部１３０が保持する各演算部１２０の演算結果１０２の量が少なくて済む。つまり、タイムアウトに引っかからず、記憶領域が小さくて済む、という効果を得ることができる。
【００５４】
＊＊＊他の構成＊＊＊
多重系システム１００が有する処理系の数は３つではなく、２つまたは４つ以上であってもよい。
【００５５】
実施の形態２．
入力データ１０１がいずれかの入力部１１０に入力されない故障を考慮した形態について、図９および図１０に基づいて説明する。但し、実施の形態１と重複する説明は省略または簡略する。
【００５６】
＊＊＊構成の説明＊＊＊
多重系システム１００の構成、演算回路２２０の構成および出力部１３０の機能構成は、実施の形態１と同じである。
【００５７】
図９に基づいて、入力部１１０の機能構成について説明する。
入力部１１０は、記憶部１１１と通知部１１２と検出部１１３と同期部１１４との他に、リセット部１１５とタイマ部１１６とを機能構成の要素として備える。
記憶部１１１、通知部１１２、検出部１１３および同期部１１４の機能は、実施の形態１と同じである。リセット部１１５およびタイマ部１１６の機能については後述する。
【００５８】
＊＊＊動作の説明＊＊＊
多重化方法の手順、演算処理（Ｓ１２０）の手順および出力処理（Ｓ１３０）の手順は、実施の形態１と同じである。
但し、図５に基づいて説明した多重化方法において、入力処理（Ｓ１１０）は以下の点で実施の形態１と異なる。
【００５９】
ステップＳ１１０において、複数の入力部１１０それぞれは、制限タイミングまでに同期タイミングにならない場合、制限タイミングに入力データ１０１を出力する。制限タイミングは、入力データ１０１の入力が済んでいるべきタイミングである。
【００６０】
図１０に基づいて、入力処理（Ｓ１１０）について説明する。
入力処理（Ｓ１１０）は、ステップＳ１１１〜Ｓ１１３およびステップＳ１１５〜Ｓ１１７を含んでいる。ステップＳ１１１〜Ｓ１１３、ステップＳ１１５およびステップＳ１１６は、実施の形態１と基本的に同じである。
【００６１】
ステップＳ１１１において、記憶部１１１は入力データ１０１を記憶する。
ステップＳ１１２において、記憶部１１１は記憶通知１９１を出力する。
ステップＳ１１３において、通知部１１２は入力通知１０４を出力する。
ステップＳ１１３の後、処理はステップＳ１１７に進む。
【００６２】
ステップＳ１１７において、検出部１１３は先行タイミングを検出する。
先行タイミングは、同期タイミングと制限タイミングとのうちの早い方のタイミングである。
同期タイミングは、実施の形態１で説明したように、記憶部１１１から出力された記憶通知１９１が入力されたタイミングと他の入力部１１０から出力された入力通知１０４が入力されたタイミングとのうちの遅い方のタイミングである。
同期タイミングを検出する方法は、実施の形態１においてステップＳ１１４で説明した通りである。
【００６３】
具体的な制限タイミングは、前回入力された入力データ１０１が出力されてから経過した時間が許容時間に達するタイミングである。許容時間は予め決められた時間である。
【００６４】
具体的には、検出部１１３は制限タイミングを以下のように検出する。
同期部１１４から前回出力された入力データ１０１は、演算部１２０の他に、リセット部１１５に入力される。
リセット部１１５は、入力データ１０１が入力されるとリセット通知１９３を出力する。リセット通知１９３は時間の計測をリセットするための信号である。出力されたリセット通知１９３はタイマ部１１６に入力される。
タイマ部１１６は、リセット通知１９３が入力されると時間の計測を開始し、リセット通知１９３が入力されてから経過した経過時間を計測する。そして、タイマ部１１６は、経過時間が許容時間に達すると、タイムアウト通知１９４を出力する。タイムアウト通知１９４は、経過時間が許容時間に達したことを通知するための信号である。出力されたタイムアウト通知１９４は検出部１１３に入力される。許容時間は予め決められた時間である。具体的には、許容時間は１０ミリ秒である。
検出部１１３は、タイムアウト通知１９４が入力されたタイミングを制限タイミングとして検出する。
【００６５】
制限タイミングまたは同期タイミングが先行タイミングとして検出されると、処理はステップＳ１１５に進む。
【００６６】
ステップＳ１１５において、検出部１１３は検出通知１９２を出力し、出力された検出通知１９２は同期部１１４に入力される。
【００６７】
ステップＳ１１６において、同期部１１４は入力データ１０１を出力し、出力された入力データ１０１は演算部１２０とリセット部１１５とに入力される。
リセット部１１５は入力データ１０１が入力されるとリセット通知１９３を出力し、出力されたリセット通知１９３はタイマ部１１６に入力される。タイマ部１１６は、リセット通知１９３が入力されると、計測した時間をゼロに戻して時間の計測を開始する。
【００６８】
＊＊＊実施の形態２の効果＊＊＊
複数の入力部１１０は入力データ１０１を遅くても制限タイミングには出力する。そのため、入力データ１０１が伝送される伝送経路が、いずれかの入力部１１０において断線している場合であっても、多重系システム１００は動作を継続することができる。
【００６９】
実施の形態３．
複数の演算結果１０２が外部に出力される形態について、図１１から図１４に基づいて説明する。但し、実施の形態１および実施の形態２と重複する説明は省略または簡略する。
【００７０】
＊＊＊構成の説明＊＊＊
図１１に基づいて、多重系システム１００の構成について説明する。
多重系システム１００は、複数の集積回路２１０と複数の演算回路２２０と１つの集積回路２４０とを備える。
集積回路２１０および演算回路２２０は、実施の形態１で説明したように入力部１１０および演算部１２０として機能する。
集積回路２４０は特定部１４０として機能する。つまり、多重系システム１００は特定部１４０を機能構成の要素として備える。特定部１４０の機能については後述する。
【００７１】
図１２に基づいて、特定部１４０の機能構成について説明する。
特定部１４０の機能構成は、実施の形態１で説明した出力部１３０の機能構成と同じである。
つまり、特定部１４０は、多数決部１４１と検出部１４２とリセット部１４３とタイマ部１４４とを機能構成の要素として備える。
【００７２】
＊＊＊動作の説明＊＊＊
図１３に基づいて、多重化方法について説明する。
多重化方法は、ステップＳ１０１、ステップＳ１１０、ステップＳ１２０およびステップＳ１４０を有する。
ステップＳ１０１、ステップＳ１１０およびステップＳ１２０は、実施の形態１または実施の形態２と基本的に同じである。但し、演算処理（Ｓ１２０）において、演算結果１０２は多重系システム１００の外部に出力される。また、演算結果１０２は特定部１４０に入力される。
【００７３】
ステップＳ１４０は特定処理である。
ステップＳ１４０において、特定部１４０は、複数の演算部１２０のうちの多数決で選ばれない演算結果１０２が得られた演算部１２０を特定する。
そして、特定部１４０は特定した演算部１２０にエラーを通知し、エラーが通知された演算部１２０は次回以降の演算を行わない。
【００７４】
図１４に基づいて、特定処理（Ｓ１４０）の手順について説明する。
特定処理（Ｓ１４０）は、ステップＳ１４１〜Ｓ１４６を有する。ステップＳ１４１〜Ｓ１４６は、実施の形態１で図８に基づいて説明したステップＳ１３１〜Ｓ１３６に相当する。
【００７５】
ステップＳ１４１において、多数決部１４１は、演算結果１０２を比較する比較タイミングを検出する。比較タイミングを検出する方法は実施の形態１で説明した通りである。
【００７６】
ステップＳ１４２において、多数決部１４１は、入力された演算結果１０２の多数決を取り、多数派の演算結果１０２を選択する。
【００７７】
ステップＳ１４３において、多数決部１４１は、選択した演算結果１０２を出力する。多数決部１４１から出力される演算結果１０２を選択結果１９７という。選択結果１９７は検出部１４２とリセット部１４３とに入力される。
リセット部１４３は選択結果１９７が入力されるとリセット通知１９６を出力し、出力されたリセット通知１９６はタイマ部１３４に入力される。タイマ部１３４は経過時間の計測を停止し、計測した時間をゼロに戻す。
【００７８】
ステップＳ１４４において、検出部１４２は、入力された演算結果１０２を入力された選択結果１９７と比較する。
【００７９】
ステップＳ１４５において、検出部１４２は、入力された演算結果１０２が入力された選択結果１９７と一致するか判定する。
少なくともいずれかの演算結果１０２が選択結果１９７と一致しない場合、処理はステップＳ１４６に進む。
【００８０】
ステップＳ１４６において、検出部１４２は、エラー通知１０５を生成し、生成したエラー通知１０５を出力する。出力されたエラー通知１０５は、複数の演算部１２０それぞれに入力される。エラー通知１０５の内容およびエラー通知１０５の生成方法は実施の形態１で説明した通りである。
エラー通知１０５に含まれる識別子によって識別される演算部１２０は、次回以降の演算を行わない。つまり、エラーが通知された演算部１２０は次回以降の演算を行わない。
【００８１】
＊＊＊実施の形態３の効果＊＊＊
実施の形態３では、実施の形態１および実施の形態２で入力データ１０１が外部から入力されてから出力データ１０３が外部へ出力されるまでの時間に比べて、入力データ１０１が外部から入力されてから演算結果１０２が外部へ出力されるまでの時間が短い。すなわち、実施の形態３により、多重系システム１００の外部への応答時間を短縮することができる。
【００８２】
＊＊＊実施の形態の補足＊＊＊
各実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。各実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。
フローチャート等を用いて説明した手順は、システムおよび方法の手順の一例である。
機能構成の要素である「部」は「回路」と読み替えてもよい。
【符号の説明】
【００８３】
１００  多重系システム、１０１  入力データ、１０２  演算結果、１０３  出力データ、１０４  入力通知、１０５  エラー通知、１１０  入力部、１１１  記憶部、１１２  通知部、１１３  検出部、１１４  同期部、１１５  リセット部、１１６  タイマ部、１２０  演算部、１３０  出力部、１３１  多数決部、１３２  検出部、１３３  リセット部、１３４  タイマ部、１４０  特定部、１４１  多数決部、１４２  検出部、１４３  リセット部、１４４  タイマ部、１９１  記憶通知、１９２  検出通知、１９３  リセット通知、１９４  タイムアウト通知、１９５  タイムアウト通知、１９６  リセット通知、１９７  選択結果、２１０  集積回路、２２０  演算回路、２２１  プロセッサ、２２２  メモリ、２２３  発振器、２３０  集積回路、２４０  集積回路。
【図１】
2017094162.tif 000003
【図２】
2017094162.tif 000004
【図３】
2017094162.tif 000005
【図４】
2017094162.tif 000006
【図５】
2017094162.tif 000007
【図６】
2017094162.tif 000008
【図７】
2017094162.tif 000009
【図８】
2017094162.tif 000010
【図９】
2017094162.tif 000011
【図１０】
2017094162.tif 000012
【図１１】
2017094162.tif 000013
【図１２】
2017094162.tif 000014
【図１３】
2017094162.tif 000015
【図１４】
2017094162.tif 000016
【手続補正書】
【提出日】平成29年10月25日(2017.10.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データがそれぞれに入力される複数の入力部を備え、
前記複数の入力部それぞれは、前記データが入力された入力タイミングに入力通知を出力し、制限タイミングまでに同期タイミングになる場合、前記同期タイミングに前記データを出力し、前記制限タイミングまでに前記同期タイミングにならない場合、前記制限タイミングに前記データを出力し、
前記同期タイミングが、前記入力タイミングと他の入力部から入力通知が出力されたタイミングとのうちの遅い方のタイミングである
ことを特徴とする多重系システム。
【請求項２】
前記制限タイミングは、前回入力されたデータが出力されてから経過した時間が許容時間に達するタイミングである
請求項１に記載の多重系システム。
【請求項３】
前記複数の入力部それぞれは、
前記データが入力されて前記データを記憶する記憶部と、
前記データが前記記憶部に記憶されたタイミングを前記入力タイミングとして検出して入力通知を出力する通知部と、
前記入力タイミングと他の入力部から入力通知が出力されたタイミングとのうちの遅い方のタイミングを前記同期タイミングとして検出する要素であって、前記同期タイミングと前記制限タイミングとのうちの早い方のタイミングである先行タイミングを検出する要素である検出部と、
前記先行タイミングが検出されたときに、前記記憶部から前記データを読み出して前記データを出力する同期部と
を備える請求項２に記載の多重系システム。
【国際調査報告】
2017094162.tif 000017
2017094162.tif 000018
2017094162.tif 000019
2017094162.tif 000020