(57)【要約】  高い安全性を有し、異常の検出が可能である処理装置を提供する。例えば、共通要因故障が発生した場合においても異常の検出を可能であり、一点故障による安全機能喪失の可能性を排除して異常の検出が可能である処理装置を提供する。  本発明における処理装置は、それぞれ同一の機能を有する複数の系により多重化された処理回路（１００）を備える。それぞれの処理回路（１００）の出力信号を相互に照合する出力信号照合部（１１１）を、それぞれの処理回路（１００）が具備する。これにより、処理回路（１００）において異常が発生した場合、出力信号には異なる信号が現れ、出力信号照合部（１１１）が出力信号を対比することにより、異常を検出することが可能である。また、出力信号照合部（１１１）が多重化されており、出力信号照合部（１１１）の一点故障による安全機能喪失の可能性を排除することが可能である。
2020090034.tif 000002
【特許請求の範囲】
【請求項１】
同一の入力信号に対して同一の処理を行い、同一の出力信号を生成する複数系の処理回路を備え、
前記複数系の処理回路それぞれは、当該処理回路の出力信号と、他の処理回路の出力信号とを照合する出力信号照合部を備える
ことを特徴とする処理装置。
【請求項２】
前記複数系の処理回路ぞれぞれは、ＦＰＧＡ（Field Programmable Gate Array）によって構成される
ことを特徴とする請求項１に記載の処理装置。
【請求項３】
前記ＦＰＧＡに配置される処理回路は、ユーザが定義可能なハードウェアロジックのみで構成される
ことを特徴とする請求項２に記載の処理装置。
【請求項４】
前記複数系の処理回路を構成するＦＰＧＡそれぞれにおいて、入出力信号と端子との組み合わせが異なる
ことを特徴とする請求項２に記載の処理装置。
【請求項５】
前記複数系の処理回路を構成するＦＰＧＡそれぞれにおいて、内部論理の物理的配置が異なる
ことを特徴とする請求項２に記載の処理装置。
【請求項６】
前記複数系の処理回路を構成するＦＰＧＡそれぞれにおいて、製造業者およびパッケージ種の何れか一方または双方が異なる
ことを特徴とする請求項２に記載の処理装置。
【請求項７】
前記処理装置は、他の装置との通信データを送受信する通信路を備え、
前記複数系の処理回路ぞれぞれは、前記他の装置から受信した通信データの異常を検出する通信制御部を備え、
前記通信制御部は、前記出力信号照合部による前記出力信号を照合の結果が一致する場合には、前記出力信号を前記他の装置に送信する
ことを特徴とする請求項１から６の何れか１項に記載の処理装置。
【請求項８】
前記通信制御部は、安全レイヤの通信プロトコルを実装し、前記通信路はブラックチャネルである
ことを特徴とする請求項７に記載の処理装置。
【請求項９】
前記出力信号照合部の照合の結果が不一致である場合には、前記通信路が切断される
ことを特徴とする請求項７に記載の処理装置。
【請求項１０】
前記複数系の処理回路は、それぞれ別系統の電源を備える
ことを特徴とする請求項１〜６，８，９の何れか１項に記載の処理装置。
【請求項１１】
前記複数系の処理回路のなかの２つの処理回路において、当該２つの処理回路の間で信号が行き来するための絶縁素子を有する
ことを特徴とする請求項１０に記載の処理装置。
【請求項１２】
前記複数系の処理回路は、それぞれ別系統のクロックおよびリセットを備える
ことを特徴とする請求項１〜６，８〜９の何れか１項に記載の処理装置。
【請求項１３】
前記複数系の処理回路それぞれは、所定の条件が揃わないと動作しない論理回路に対して、当該論理回路を活性化させる入力信号を入力する論理回路と、前記入力信号を入力する期間を設けている
ことを特徴とする請求項１〜６，８〜９の何れか１項に記載の処理装置。
【請求項１４】
前記複数系の処理回路それぞれは、複数のＦＰＧＡによって構成され、かつ当該ＦＰＧＡの各々が、前記出力信号照合部を備える
ことを特徴とする、請求項２〜６，８〜９の何れか１項に記載の処理装置。
【請求項１５】
前記複数系の処理回路を構成する全てのＦＰＧＡは、製造業者および製造ロットが同一である
ことを特徴とする、請求項４または５の何れか１項に記載の処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は高い信頼性が要求されるシステムを構成する処理装置に関する。
【背景技術】
【０００２】
原子力発電所や工場プラントにおいてプロセスを制御するシステムなど、高い信頼性が要求されるシステムでは、機能安全（functional safety）が採用される。機能安全とは、システムに対して監視機能あるいは保護装置などを付加することにより、システム障害のリスクを低減するものである。【０００３】
機能安全のために、例えば、システムの一部を構成するハードウェアが多重化あるいは多様化される場合がある。多重化とは、同一機能を有するハードウェアを複数設けることで、一部のハードウェアの故障などによる障害に備えるものである。また、多様化とは、多重化されるハードウェアを互いに異なるハードウェア部品で構成するものである。
プロセス制御システムにＦＰＧＡ（Field Programmable Gate Array）が採用される例がある。このような例では、入出力装置や演算装置に搭載するＦＰＧＡなど、各処理装置（モジュール）における基幹機能を担う部品については、多重化または多様化が要求される。【０００４】
例えば、同一の入力信号に対して同一の処理を行い、同一の出力信号を生成する２つの系のハードウェア回路を設け、２つの出力信号が一致していることを確認することでハードウェア回路の正常動作を確認することができる。どちらか一方のハードウェア回路に異常が発生すると、２つのハードウェア回路の出力信号が不一致となるので、異常を容易に検出することができる。【０００５】
一方で、ハードウェアの多重化を行う場合、多重化された２系のハードウェア回路に、共通要因故障（ＣＣＦ：Common Cause Failure）が発生することがある。共通要因故障とは、共通する要因により複数のハードウェアにおける同じ個所が同じように故障することである。２つの系で同時に共通要因故障が起こると、２つの系の出力信号が同じ不正な値を示す。この場合、出力信号同士が一致するか否かを監視することで異常を検出することはできない。共通要因故障の要因としては、例えば、複数のハードウェアに共通に採用されている部品におけるロット不良がある。特許文献１には、このような共通要因故障に起因する異常であっても検出を可能にする技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１８−１０１２４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の発明は、同一の入力信号に対して同一の処理を行い、同一の出力信号を生成する、複数系の処理回路に対し、それらの出力信号を照合する出力信号照合部を備えている。出力信号照合部は、複数系の処理回路とは別に具備されることにより、処理回路に共通要因故障が発生したときに、異常を検出することを可能である。しかしながら、出力信号照合部は多重化されておらず、出力信号照合部に故障が発生した場合には、一点故障により安全機能喪失に陥る可能性がある。【０００８】
本発明は、上記した背景を鑑みてなされたものであって、高い安全性を有し、異常の検出が可能である処理装置を提供する。例えば、共通要因故障が発生した場合においても異常の検出を可能とする処理装置であり、一点故障による安全機能喪失の可能性を排除して異常の検出が可能である処理装置を提供する。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明の処理装置は、同一の入力信号に対して同一の処理を行い、同一の出力信号を生成する複数系の処理回路を備え、前記複数系の処理回路それぞれは、当該処理回路の出力信号と、他の処理回路の出力信号とを照合する出力信号照合部を備える。
【発明の効果】
【００１０】
本発明によれば、高い安全性を有し、異常の検出が可能である処理装置を提供することができる。
上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る処理装置の全体構成を示す図である。
【図２】本実施形態に係るＦＰＧＡの内部論理の構成例を示す図である。
【図３】本実施形態に係る処理装置間の通信路を説明するための図である。
【図４】本実施形態に係る演算部（１系）および演算部（２系）が実行する演算の例を説明するための図である。
【図５】本実施形態に係る内部信号照合部が実行する処理を説明するための図である。
【図６】本実施形態に係る内部信号照合部の、正常ケースの処理を説明するための図である。
【図７】本実施形態に係る内部信号照合部の、異常ケースの処理を説明するための図である。
【図８】本実施形態に係る通信制御部（１系）が実行する処理を説明するための図である。
【図９】本実施形態に係るＣＲＣ生成部が実行する処理を説明するための図である。
【図１０】本実施形態に係る出力フレーム生成部が生成する、通信フレームフォーマットを示す図である。
【図１１】本実施形態に係るＣＲＣチェック部が実行する処理を説明するための図である。
【図１２】本実施形態に係るＣＲＣチェック部の正常ケースおよび異常ケースにおける処理を説明するための図である。
【図１３】本実施形態に係る出力信号照合部が実行する処理を説明するための図である。
【図１４】本実施形態に係るデータ照合部が実行する処理を説明するための図である。
【図１５】本実施形態に係るデータ照合部の、正常時における処理を説明するための図である。
【図１６】本実施形態に係るデータ照合部の、異常時における処理を説明するための図である。
【図１７】本実施形態に係る系間照合タイムアウト検出部が実行する処理を説明するための図である。
【図１８】本実施形態に係るバッファが実行する処理を説明するための図である。
【図１９】本実施形態に係るスイッチの具体例を示した図である。
【図２０】本実施形態に係る電源、クロック、リセットの系間分離と絶縁素子の役割を説明するための図である。
【図２１】本実施形態に係るＦＰＧＡの入出力端子の割り当ておよび内部論理のレイアウトを説明するための図である。
【図２２】本実施形態に係るＦＰＧＡの入出力端子の割り当ておよび内部論理のレイアウトを説明するための図である。
【図２３】本実施形態の変形例１に係るＦＰＧＡの内部論理構成を示す図である。
【図２４】本実施形態の変形例４に係る埋め込みマイクロプロセッサの使用を避けた内部論理配置の例を説明するための図である。
【図２５】本実施形態の変形例６に係わる診断期間を説明するための図である。
【図２６】本実施形態の変形例７に係わる活性化条件注入回路を付与する前の論理回路の一例を示す図である。
【図２７】本実施形態の変形例７に係わる活性化条件注入回路を説明するための図である。
【図２８】本実施形態の変形例７に係わる処理回路（ＦＰＧＡ）の分割構成を模式的に示した図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態（実施形態）における処理装置について、図面を参照しながら説明する。
≪処理装置の全体構成≫
図１は、本実施形態に係る処理装置１０の全体構成を示す図である。処理装置１０は、発電所や工場などの施設の設備に設置された信号源（センサ）１１から出力された信号を入力信号として処理して、処理結果である出力信号を送信信号として処理装置２０に送信する。また、本実施形態では、処理装置１０は、信号源２１からの信号を入力される処理装置２０からの送信信号を入力の一部とする。
【００１３】
処理装置１０には、Ａ系とＢ系とが存在する。Ａ系は、入力端子部１２１、処理装置間通信用出力端子部１２２、処理装置間通信用入力端子部１２３、シャットダウン信号用出力端子部１２４、系間照合用出力端子部１２５および系間照合用入力端子部１２６を有するＦＰＧＡ１００を備える。ＦＰＧＡ１００の内部論理は、外部からプログラミングが可能である。また、Ａ系は、電源３４１Ａ、クロック３４２Ａおよびリセット３４３Ａを備える。
【００１４】
Ａ系と同様にＢ系は、入力端子部２２１、処理装置間通信用出力端子部２２２、処理装置間通信用入力端子部２２３、シャットダウン信号用出力端子部２２４、系間照合用入力端子部２２５および系間照合用出力端子部２２６を有するＦＰＧＡ２００を備える。ＦＰＧＡ２００の内部論理は、外部からプログラミングが可能である。また、Ｂ系は、電源３４１Ｂ、クロック３４２Ｂおよびリセット３４３Ｂを備える。なお、処理装置間通信用出力端子部２２２は未接続（オープン）である。
【００１５】
ＦＰＧＡ１００における入力信号群（入力信号１〜３）と、ＦＰＧＡ２００における入力信号群（入力信号１〜３）は、共通の信号源１１からＡ系およびＢ系に並列に入力される信号であり、同一の信号である。詳しくは、ＦＰＧＡ１００に入力される入力信号１とＦＰＧＡ２００に入力される入力信号１とは同一であり、入力信号２，３についても同様である。
ＦＰＧＡ１００およびＦＰＧＡ２００は、それぞれ同一の機能を有しており、同一の入力信号に対して同一の処理を行い、同一の出力信号を生成する。
【００１６】
Ａ系とＢ系とは、それぞれ異なる電源系統で動作している。Ａ系は電源３４１Ａによって動作し、Ｂ系は電源３４１Ｂによって動作する。またクロック、リセットについても、Ａ系とＢ系とでは、それぞれ独立である。Ａ系はクロック３４２Ａとリセット３４３Ａによって動作し、Ｂ系はクロック３４２Ｂとリセット３４３Ｂによって動作する。
【００１７】
処理装置１０は、Ａ系とＢ系とは別に共通部分として、処理装置２０との信号を送受信するトランシーバ（図１ではＴＲＳと記載）３２０、トランシーバ３２０に供給される電源を遮断するためのスイッチ（図１ではＳＷと記載）３３１およびスイッチ３３２を備える。スイッチ３３１，３３２は、直列に接続されており、スイッチ３３１およびスイッチ３３２の何れか一方がオフになるとトランシーバ３２０の電源供給は遮断され、処理装置１０，２０間の通信が遮断される。またＡ系とＢ系との間には、異なる電源系統で信号の行き来をするための絶縁素子３５０を備える。
【００１８】
ＦＰＧＡ１００の系間照合用出力端子部１２５は、絶縁素子３５０を介してＦＰＧＡ２００の系間照合用入力端子部２２５と接続される。また、ＦＰＧＡ２００の系間照合用出力端子部２２６は、絶縁素子３５０を介してＦＰＧＡ１００の系間照合用入力端子部１２６と接続される。絶縁素子３５０については、後記する図２０で詳細に説明する。
【００１９】
処理装置２０は、処理装置１０と同様のハードウェア構成であって、信号源２１からの出力された信号を入力信号としている。トランシーバ３２０と処理装置２０のトランシーバ（不図示）を介して、処理装置１０，２０は相互に接続される。
【００２０】
≪ＦＰＧＡの内部論理構成≫
図２は、本実施形態に係るＦＰＧＡ１００の内部論理の構成例を示す図である。図２を参照しながら、ＦＰＧＡ１００の内部論理の構成について説明する。なお、ＦＰＧＡ２００の内部論理構成は、ＦＰＧＡ１００と同一であるため、説明を省略する。
【００２１】
なお、ＦＰＧＡ２００の構成要素の符号について、説明する上での不都合がない限りにおいて、ＦＰＧＡ１００の対応する構成要素の符号と同一とする。例えば、後記する出力信号照合部について、ＦＰＧＡ１００，２００の双方の出力信号照合部に対して出力信号照合部１１１と記載する。
【００２２】
ＦＰＧＡ１００は、内部論理として、演算部（１系）１０５、演算部（２系）１０６、内部信号照合部１０７、通信制御部（１系）１０８、通信制御部（２系）１０９、内部信号照合部１１０、出力信号照合部１１１およびＯＲゲート１１２を含んで構成される。点線１９９で示される箇所は、処理装置１０，２０間の通信路３６０（後記する図３参照）の端点である。
【００２３】
図３は、本実施形態に係る処理装置１０，２０間の通信路３６０を説明するための図である。処理装置２０に備わるＦＰＧＡ１００Ｚは、処理装置１０におけるＦＰＧＡ１００に対応するＡ系のＦＰＧＡである。処理装置１０から処理装置２０へ送信される通信フレームは、処理装置間通信用出力端子部１２２、トランシーバ３２０、処理装置１０，２０間を接続する通信媒体、処理装置２０のトランシーバ（不図示）およびＦＰＧＡ１００Ｚの処理装置間通信用入力端子部（不図示）を経由して、処理装置２０側の端点１９９Ｚに到達する。
【００２４】
処理装置２０から処理装置１０へ送信される通信フレームは、ＦＰＧＡ１００Ｚの処理装置間通信用出力端子部（不図示）、処理装置２０のトランシーバ、処理装置１０，２０間を接続する通信媒体、トランシーバ３２０および処理装置間通信用入力端子部１２３を経由して、処理装置１０側の端点１９９に到達する。
【００２５】
以下、内部論理としての演算部（１系）１０５、演算部（２系）１０６、内部信号照合部１０７、通信制御部（１系）１０８、通信制御部（２系）１０９、内部信号照合部１１０および出力信号照合部１１１を順に説明する。
【００２６】
≪ＦＰＧＡの内部論理構成：演算部≫
図２に示すように、演算部（１系）１０５および演算部（２系）１０６は、入力端子部１２１から入力された同一の信号を入力信号としており、かつ同一の処理を行う。演算部（１系）１０５および演算部（２系）１０６は、入力信号群の入力値に基づいて所定の演算を行い、その演算結果を出力する。演算部（１系）１０５および演算部（２系）１０６は同等の機能を有するので、演算部（２系）１０６についての説明は省略し、演算部（１系）１０５について説明を続ける。
【００２７】
図４は、本実施形態に係る演算部（１系）１０５および演算部（２系）１０６が実行する演算の例を説明するための図である。例えば、入力信号１が「１」、入力信号２が「１」、入力信号３が「１」であったならば、演算部（１系）１０５および演算部（２系）１０６は、８ビットのデータ「０ｘＡＡ」を出力する。なお、図４は、演算部（１系）１０５および演算部（２系）１０６で実行する演算の一例を示したものであって、この他にも、入力信号の値に応じて、所定の四則演算を行うなど、より複雑な演算であってもよい。また、出力するデータは、８ビットに限定されるものではなく、３２ビットなどの長いデータであってもよいし、１ビットであってもよい。また、入力信号について、入力信号は３つとは限らず、各入力信号は１ビットであっても複数ビットであってもよい。
【００２８】
≪ＦＰＧＡの内部論理構成：内部信号照合部≫
図２に戻って、演算部（１系）１０５および演算部（２系）１０６から出力された演算結果は、内部信号照合部１０７によって照合される。
図５は、本実施形態に係る内部信号照合部１０７が実行する処理を説明するための図である。
【００２９】
演算部（１系）１０５から出力された演算結果「Ｘ１」および演算部（２系）１０６から出力された演算結果「Ｘ２」は、ＥＯＲゲート１４１によって、ビットごとに照合される。ビットごとの照合結果は、ＯＲゲート１４２によって集約される。２つの演算結果の何れかのビットに不一致があった場合には、異常の発生を通知する異常信号が出力される。出力された異常信号は、ＯＲゲート１１２に入力される（図２参照）。
【００３０】
図６は、本実施形態に係る内部信号照合部１０７の、正常ケースの処理を説明するための図である。演算部（１系）１０５の出力（演算結果）Ｘ１および演算部（２系）１０６の出力（演算結果）Ｘ２がともに「０ｘＡＡ（二進表記で10101010）」だった場合は、ＥＯＲゲート１４１の出力（Ｘ１＾Ｘ２）は、全て０となり、異常信号は異常なしを示す「０」となる。即ち、演算部（１系）１０５および演算部（２系）１０６は正常動作していると判定される。
【００３１】
図７は、本実施形態に係る内部信号照合部１０７の、異常ケースの処理を説明するための図である。演算部（１系）１０５において異常が発生し、誤った演算結果として「０ｘＡＢ」が出力されたとする。この場合、最下位ビットの照合不一致により、ＥＯＲゲート１４１の出力（Ｘ１＾Ｘ２）の最下位ビットが「１」となって、異常信号は異常ありを示す「１」となる。即ち、演算部（１系）１０５か演算部（２系）１０６の何れかに異常が発生したと判定される。
【００３２】
上記したとおり、演算部（１系）１０５および演算部（２系）１０６の何れかで異常が発生し、誤った演算結果が出力された場合は、内部信号照合部１０７によって異常を検出することができる。
【００３３】
≪ＦＰＧＡの内部論理構成：通信制御部≫
図２に戻って通信制御部（１系）１０８および通信制御部（２系）１０９は、入力信号が同一であり、かつ同一の処理を行う機能部である。通信制御部（１系）１０８および通信制御部（２系）１０９は、処理装置１０，２０間の通信を制御する機能を備えている。通信制御部（１系）１０８と通信制御部（２系）１０９とは、同等の機能を有するので、通信制御部（２系）１０９の説明を省略し、通信制御部（１系）１０８の説明を続ける。
【００３４】
通信制御部（１系）１０８は、演算部（１系）１０５が出力した演算結果のデータを、処理装置２０へ送信する。なお、処理装置２０に送信されるのは、通信制御部（１系）１０８が出力した演算結果であって、同じデータである通信制御部（２系）１０９の出力結果は、処理装置２０に送信されない。
また、通信制御部（１系）１０８は、処理装置２０から受信したデータを、演算部（１系）１０５および演算部（２系）１０６へ出力する。
また、通信制御部（１系）１０８および通信制御部（２系）１０９は、通信路３６０（図３参照）内で異常が発生した場合に、この異常を検出する通信異常検出機能を備える。
【００３５】
≪ＦＰＧＡの内部論理構成：通信制御部：出力フレーム生成≫
図８は、本実施形態に係る通信制御部（１系）１０８が実行する処理を説明するための図である。演算部（１系）１０５から出力された演算結果のデータは、通信制御部（１系）１０８のＣＲＣ生成部１５０（後記する図９参照）と、出力フレーム生成部１６１とへ入力される。ＣＲＣ生成部１５０は、演算部（１系）１０５より入力される演算結果のデータからＣＲＣコードを生成し、出力フレーム生成部１６１へ出力する。
【００３６】
図９は、本実施形態に係るＣＲＣ生成部１５０が実行する処理を説明するための図である。ＣＲＣ生成部１５０に入力されたデータは、まず６ビットＣＲＣ生成論理１５１へ入力される。６ビットＣＲＣ生成論理１５１は、入力された８ビットデータから６ビットのＣＲＣコードを生成する。生成されたＣＲＣコードは、インバータ１５２により極性反転された後、出力フレーム生成部１６１（図８参照）へ出力される。
【００３７】
なお、本実施形態では６ビットのＣＲＣコードを使用しているが、あくまでも一例であって、これに限定するものではない。送受信するデータのサイズや、求められる誤り検出率などの要求に応じて、例えば、１６ビットのＣＲＣコードでもよいし、さらに長いＣＲＣコードでもよい。
【００３８】
図８に戻り、出力フレーム生成部１６１は、演算部（１系）１０５より入力される演算結果のデータと、ＣＲＣ生成部１５０から入力されるＣＲＣコードを、所定の通信フレームフォーマット（後記する図１０参照）に変換した後に、シリアルデータとして処理装置間通信用出力端子部１２２、系間照合用出力端子部１２５および出力信号照合部１１１（図２参照）に出力する。
処理装置間通信用出力端子部１２２から出力されたシリアルデータは、トランシーバ３２０を介して処理装置２０に送信される（図１参照）。この送信処理は所定のタイミング、例えば一定周期の時間間隔、で繰り返し実行される。
【００３９】
図１０は、本実施形態に係る出力フレーム生成部１６１が生成する、通信フレームフォーマットを示す図である。通信フレーム５１０は、フレームの先頭を示すフレーム開始フラグ５１１と、データエリア５１２と、ＣＲＣエリア５１３と、フレームの終わりを示すフレーム終了フラグ５１４とを含んで構成される。データエリア５１２には、演算部（１系）１０５が出力した演算結果のデータが入り、ＣＲＣエリア５１３には、ＣＲＣ生成部１５０が出力したＣＲＣコードが入る。
≪ＦＰＧＡの内部論理構成：通信制御部：入力フレーム解析≫
【００４０】
図８に戻って、入力フレーム解析部１６２は、トランシーバ３２０が出力し、処理装置間通信用入力端子部１２３から入力された処理装置２０からのシリアルデータ（以下、通信フレーム、入力フレームとも記す）（図１、図２参照）の健全性を確認する。入力フレーム解析部１６２は、ＣＲＣチェック部１５５（後記する図１１参照）において、入力フレームのＣＲＣエリア５１３（図１０参照）に格納されたＣＲＣコードのチェックを行うことにより、入力フレームの健全性を確認する。
【００４１】
チェックの結果、健全性が確認できた場合は、入力フレーム解析部１６２は、入力フレームのデータエリア５１２に格納されたデータを、演算部（１系）１０５および演算部（２系）１０６へ出力する。チェックの結果、エラーが確認された場合は、エラー検出を通知する信号（エラー検出信号）をＯＲゲート１６４に出力する。
【００４２】
図１１は、本実施形態に係るＣＲＣチェック部１５５が実行する処理を説明するための図である。ＣＲＣチェック部１５５に入力されたデータ（図１１では、「DATA[7:0]」と記載）とＣＲＣコード（図１１では、「CRC[5:0]」と記載）は、まず６ビットＣＲＣチェック論理１５６へ入力される。また、６ビットＣＲＣチェック論理１５６には、６ビットＣＲＣ初期値が入力される。６ビットＣＲＣチェック論理１５６は、入力された計１４ビットのデータおよび６ビットＣＲＣ初期値から６ビットのチェック用ＣＲＣコード（図１１では「CRCCHK[5:0]」と記載）を生成した後、マジックナンバー照合部１５７に出力する。
【００４３】
マジックナンバー照合部１５７は、チェック用ＣＲＣコードと、マジックナンバー（図１１では「6'h14（６ビットのデータを十六進表記）」と記載）とを照合し、不一致が検出された場合は、入力フレームの内容に誤りがあるとして、エラー検出を通知する信号をＯＲゲート１６４に出力する（図８参照）。
【００４４】
図１２は、本実施形態に係るＣＲＣチェック部１５５の正常ケースおよび異常ケースにおける処理を説明するための図である。処理装置２０から受信した通信フレームのデータ（図１０のデータエリア５１２参照）とＣＲＣコード（ＣＲＣエリア５１３参照）が、処理装置１０において、ともに正常に受信された場合は、図１２の正常ケースに示すとおり、６ビットＣＲＣチェック論理１５６の出力とマジックナンバーとは一致し、エラー出力は「０」となる。
【００４５】
これに対して、通信フレームのデータとＣＲＣコードの何れかが誤って受信された場合（図１２ではデータ（DATA[7:0]）に誤りが発生）、図１２の異常ケースに示すとおり、６ビットＣＲＣチェック論理１５６の出力とマジックナンバーとは不一致となり、エラー検出信号は「１」となる。
上記した機能により、通信路３６０内で、信号に誤りが発生した場合は、ＣＲＣチェック部１５５によって、誤りを検出することができる。
【００４６】
≪ＦＰＧＡの内部論理構成：通信制御部：タイムアウト検出≫
図８に戻り、処理装置間通信タイムアウト検出部１６３は、処理装置１０，２０の間の通信断を検出する機能部である。処理装置間通信タイムアウト検出部１６３は、処理装置２０から一定の周期で送られてくるシリアルデータ（通信フレーム、入力フレーム）の受信間隔を監視し、処理装置２０からの通信フレームの受信が、一定期間途絶えた場合にエラー検出を通知する信号をＯＲゲート１６４に出力する。
上記した機能により、通信路３６０内において通信断が発生した場合は、処理装置間通信タイムアウト検出部１６３によって、これを検出することができる。
【００４７】
ＣＲＣチェック部１５５および処理装置間通信タイムアウト検出部１６３の双方または何れか一方でエラーが検出された場合は、ＯＲゲート１６４を介し、異常の発生を通知する異常信号が出力される。なお、出力された異常信号は、ＯＲゲート１１２（図２参照）に入力される。
上述した実施形態は、通信異常検出の機能として最も簡易な一例を示しており、これに限定するものではない。
【００４８】
≪ＦＰＧＡの内部論理構成：通信制御部：安全通信（安全レイヤ、ブラックチャネル）≫
機能安全規格IEC 61508-2が参照する安全通信規格IEC 61784-3において規定される、安全通信で想定すべき異常としては、劣化（corruption）、消失（loss）、受容できない遅延（unacceptable delay）、意図しない繰り返し（unintended repetition）、誤った順序（incorrect sequence）、挿入（insertion）、偽装（masquerade）およびアドレス誤り（addressing）がある。また、通信の送信端および受信端において、これら全ての異常検出が可能な通信プロトコルを実装したものは安全レイヤ（safety layer）と呼ばれる。安全レイヤ間の通信路においては、考え得るあらゆる通信異常に対して、安全レイヤによって異常が検出可能であるため、安全通信において、当該通信路の信頼性は不問と考えることができ、どのような接続方法、通信媒体であってもよい。このような通信路はブラックチャネル（black channel）と呼ばれる。
【００４９】
図２に戻り、通信制御部（１系）１０８および通信制御部（２系）１０９において、上記した安全通信で想定すべき全ての異常に対する異常検出機能を具備すれば、処理装置１０，２０間の通信路３６０（図３参照）は、ブラックチャネルとなる。
上記の各通信異常を検出する具体的手段の例として、劣化の異常に対しては、前述したＣＲＣ異常検出が有効である。また、消失、受容できない遅延の異常に対しては、前述したタイムアウト異常検出が有効である。
【００５０】
意図しない繰り返し、誤った順序の異常に対しては、通信フレーム中にシーケンス番号を付与する方式が有効である。例えば、フレーム送信側は、フレーム送信の都度、通信フレーム中のシーケンス番号の数値をインクリメントして送信し、受信側では、受信した通信フレーム中の当該数値が正しくインクリメントされていることを確認することにより、上記異常を検出することができる。挿入の異常に対しても、前記のシーケンス番号を付与する方式が有効である。またブラックチャネル内に１フレーム分未満のバッファしか持たない、といった形態をとることにより対策が可能である。
【００５１】
偽装、アドレス誤りの異常に対しては、マスターおよびスレーブに相当する処理装置が、各々、通信フレーム中に自アドレスを付与して送信することにより、受信側で当該アドレスを期待値と照合し、上記異常を検出することが可能である。
また、通信の異常検出においては、落雷などの突発的なノイズによって、異常の誤検出が生じる場合がある。通信のタフネス性に配慮し、一回の異常検出で即に異常と判断せず、所定の回数連続で異常が検出された場合に、異常と判断するといった実施形態でもよい。
【００５２】
≪ＦＰＧＡの内部論理構成：内部信号照合部≫
図２に戻って、通信制御部（１系）１０８および通信制御部（２系）１０９から出力されたシリアルデータは、内部信号照合部１１０によって照合される。内部信号照合部１１０の処理内容については、入力信号のビット幅が異なる点を除けば、前述の内部信号照合部１０７と同様であるため、説明を省略する。内部信号照合部１１０により、通信制御部（１系）１０８および通信制御部（２系）１０９の何れかで異常が発生し、異なるデータが出力された場合には、これを検出することができる。
【００５３】
≪ＦＰＧＡの内部論理構成：出力信号照合部≫
ＦＰＧＡ１００の通信制御部（１系）１０８およびＦＰＧＡ２００の通信制御部（１系）１０８から出力されたシリアルデータ（通信フレーム）は、ＦＰＧＡ１００の出力信号照合部１１１およびＦＰＧＡ２００の出力信号照合部１１１において、相互に照合される。
【００５４】
図１３は、本実施形態に係る出力信号照合部１１１が実行する処理を説明するための図である。ＦＰＧＡ１００の通信制御部（１系）１０８から出力されたシリアルデータは、ＦＰＧＡ１００のフレーム検出部Ａ１７２と、系間照合用出力端子部１２５とに出力される。系間照合用出力端子部１２５に出力されたシリアルデータは、系間照合用入力端子部２２５（図１参照）を介して、ＦＰＧＡ２００の出力信号照合部１１１の入力同期化部１７１へ入力される。
【００５５】
また逆に、ＦＰＧＡ２００の系間照合用出力端子部２２６から出力されたシリアルデータは、系間照合用入力端子部１２６を介してＦＰＧＡ１００の入力同期化部１７１へ入力される。
入力同期化部１７１は、ＦＰＧＡ２００から入力されたシリアルデータを、Ａ系のクロック３４２Ａ（図１参照）に同期化した後、フレーム検出部Ｂ１７３へ出力する。
【００５６】
フレーム検出部Ａ１７２は、通信制御部（１系）１０８から入力されたシリアルデータについて、シリアルデータの受信を完了すると、データ照合部１７４および系間照合タイムアウト検出部１７５に対し、Ａ系フレーム受信完了通知を送出するとともに、当該通信フレームから取得したＡ系出力データとＣＲＣコードを、データ照合部１７４へ出力する。同様に、フレーム検出部Ｂ１７３は、入力同期化部１７１から入力されたシリアルデータについて、シリアルデータの受信を完了すると、データ照合部１７４および系間照合タイムアウト検出部１７５に対し、Ｂ系フレーム受信完了通知を送出するとともに、当該シリアルデータから取得したＢ系出力データとＣＲＣコードを、データ照合部１７４へ出力する。
【００５７】
≪ＦＰＧＡの内部論理構成：出力信号照合部：データ照合≫
データ照合部１７４は、フレーム検出部Ａ１７２から送られるＡ系出力データおよびＣＲＣコードと、フレーム検出部Ｂ１７３から送られるＢ系出力データおよびＣＲＣコードとを照合し、不一致が検出された場合は、照合不一致の検出を通知する、エラー検出信号を出力する。
【００５８】
図１４は、本実施形態に係るデータ照合部１７４が実行する処理を説明するための図である。フレーム検出部Ａ１７２から送られるＡ系出力データおよびＣＲＣコードは、Ａ系フレーム受信完了通知を受領したタイミングで、フリップフロップ群１８２にラッチされる。同様に、フレーム検出部Ｂ１７３から送られるＢ系出力データおよびＣＲＣコードは、Ｂ系フレーム受信完了通知が受領されたタイミングで、フリップフロップ群１８３にラッチされる。
【００５９】
受信完了検出部１８１は、Ａ系フレーム受信完了通知とＢ系フレーム受信完了通知の双方が受領されたときに、照合開始指示信号を送出する。
フリップフロップ群１８２およびフリップフロップ群１８３にラッチされた値は、照合開始指示信号が送出されたタイミングで、照合用フリップフロップ群１８４にセットされる。
照合用フリップフロップ群１８４にセットされた値は、ＥＯＲゲート１８５によって照合される。その結果はＯＲゲート１８６によって集約され、何れか１ビットでも不一致があった場合は、エラー検出信号が出力される。出力されたエラー検出信号は、ＯＲゲート１７６（図１３参照）に入力される。
【００６０】
図１５は、本実施形態に係るデータ照合部１７４の、正常時における処理を説明するための図である。Ａ系出力データおよびＣＲＣコードと、Ｂ系出力データおよびＣＲＣコードとがともに正常だった場合には、照合は一致し、エラー検出信号は「０」となる。
図１６は、本実施形態に係るデータ照合部１７４の、異常時における処理を説明するための図である。通信路３６０内において、外来ノイズなどの影響を受けて信号変化が起きる場合がある。信号変化によりデータに誤り（図１６ではＡ系出力データの最下位ビットに誤り発生）が生じた場合、照合は不一致となり、エラー検出信号は「１」となる。
【００６１】
≪ＦＰＧＡの内部論理構成：出力信号照合部：タイムアウト検出≫
図１３に戻り、系間照合タイムアウト検出部１７５は、フレーム検出部Ａ１７２からのＡ系フレーム受信完了通知と、フレーム検出部Ｂ１７３からのＢ系フレーム受信完了通知との受信時間差を監視する。受信時間差が許容範囲を超えた場合は、系間照合タイムアウトとして、エラー検出信号を出力する。出力されたエラー検出信号は、ＯＲゲート１７６に入力される。
【００６２】
図１７は、本実施形態に係る系間照合タイムアウト検出部１７５が実行する処理を説明するための図である。系間照合タイムアウト検出部１７５は、ステートマシン１９０によって構成される。初期状態は、アイドル状態（図１７ではアイドルと記載）１９１である。
アイドル状態１９１において、Ａ系フレーム受信完了通知を受領すると、ステートマシン１９０は、タイムアウト監視状態（図１７ではタイムアウト監視と記載）１９２へ遷移する。ステートマシン１９０は、タイムアウト監視状態１９２において、Ｂ系フレーム受信完了通知を受領するまでの時間をカウントする。タイムアウト許容時間内にＢ系フレーム受信完了通知が受領された場合は、ステートマシン１９０は、アイドル状態１９１に戻る。タイムアウト許容時間内に、Ｂ系フレーム受信完了通知が受領されなかった場合は、ステートマシン１９０は、エラー出力状態（図１７ではエラー出力と記載）１９４へ遷移し、タイムアウトが検出されたことを通知するエラー検出信号を出力する。出力されたエラー検出信号は、ＯＲゲート１７６（図１３参照）に入力される。
【００６３】
アイドル状態１９１において、Ｂ系フレーム受信完了通知を受領すると、ステートマシン１９０は、タイムアウト監視状態（図１７ではタイムアウト監視と記載）１９３へ遷移する。ステートマシン１９０は、タイムアウト監視状態１９３において、Ａ系フレーム受信完了通知を受領するまでの時間をカウントする。タイムアウト許容時間内にＡ系フレーム受信完了通知が受領された場合は、ステートマシン１９０は、アイドル状態１９１に戻る。タイムアウト許容時間内に、Ａ系フレーム受信完了通知が受領されなかった場合は、ステートマシン１９０は、エラー出力状態１９４へ遷移し、タイムアウトが検出されたことを通知するエラー検出信号を出力する。出力されたエラー検出信号は、ＯＲゲート１７６に入力される。
【００６４】
図１３に戻って、データ照合部１７４および系間照合タイムアウト検出部１７５の何れか一方または双方でエラーが検出された場合は、ＯＲゲート１７６を介し、異常の発生を通知する異常信号が出力される。出力された異常信号は、ＯＲゲート１１２に入力される（図２参照）。
【００６５】
≪ＦＰＧＡの内部論理構成：出力信号照合部：通信フレーム送信≫
バッファ１１３は、出力信号照合部１１１において異常が検出された場合に、処理装置２０への通信フレーム送信を中止するための送信遅延を目的として具備されたものである。なお、図２では、バッファ１１３の記載を省略している。
図１８は、本実施形態に係るバッファ１１３が実行する処理を説明するための図である。図１８において、バッファ１１３は、６４個のフリップフロップをカスケード接続した、シフトレジスタ１４９によって構成される。通信制御部（１系）１０８から出力された送信データは、バッファ１１３により、６４サイクル遅延された後、トランシーバ３２０へ出力され、処理装置２０へ送信される。
【００６６】
これにより、例えば、前述した系間照合タイムアウト検出部１７５（図１３参照）において、タイムアウトの許容時間を１６サイクルとした場合においても、処理装置２０への送信が開始される前に、系間照合タイムアウトの検出を完了できる。このため、異常発生時には、処理装置２０への送信データ（通信フレーム）の送信を中止することができる。
【００６７】
上記した実施形態は、Ａ系およびＢ系からの受信データを一時的に蓄積しておき、Ａ系およびＢ系の双方からの通信フレームの受信を完了したタイミングで、一括して照合を行うものであるが、データ照合の方式としてはこれに限定しない。例えばこの他にも、Ａ系およびＢ系から受信したシリアルデータを、１ビットずつ随時照合していく、といったデータ照合の方式も考えられる。この方式によれば、データの送信と照合とを並行して行うことができ、前述のバッファ１１３に相当するバッファを除することにより、時間的遅延を生じることなく処理装置２０への送信を行うことが可能である。また、前述した安全通信で想定すべき挿入の異常に対する対策としても有効である。
【００６８】
≪ＦＰＧＡの内部論理構成：異常信号の処理≫
図２に戻って、ＦＰＧＡ１００のＯＲゲート１１２は、ＦＰＧＡ１００の内部信号照合部１０７から出力される異常信号と、通信制御部（１系）１０８から出力される異常信号と、通信制御部（２系）１０９から出力される異常信号と、内部信号照合部１１０から出力される異常信号と、出力信号照合部１１１から出力される異常信号とを集約し、その結果をシャットダウン信号として、シャットダウン信号用出力端子部１２４を介してスイッチ３３１（図１参照）へ出力する。スイッチ３３１は、ＦＰＧＡ１００のＯＲゲート１１２からのシャットダウン信号の入力が「１」のとき、即ち、ＦＰＧＡ１００の内部信号照合部１０７か、通信制御部（１系）１０８か、通信制御部（２系）１０９か、内部信号照合部１１０か、出力信号照合部１１１かの何れかが異常信号を出力していた場合に、スイッチ３３１がオフになる。これにより、トランシーバ３２０に供給される電源が遮断され、結果として、処理装置１０，２０の間の通信が切断される。
【００６９】
ＦＰＧＡ２００についても、同様であって、ＦＰＧＡ２００に備わる内部信号照合部１０７か、通信制御部（１系）１０８か、通信制御部（２系）１０９か、内部信号照合部１１０か、出力信号照合部１１１かの何れかが異常信号を出力していた場合に、スイッチ３３２がオフになる。これにより、トランシーバ３２０に供給される電源が遮断され、結果として、処理装置１０，２０の間の通信が切断される。
【００７０】
≪スイッチおよびトランシーバ≫
図１９は、本実施形態に係るスイッチ３３１，３３２の具体例を示した図である。図１９において、スイッチ３３１，３３２としてＭＯＳＦＥＴ（Metal-Oxide Semiconductor Field-Effect Transistor）３３１Ａ，３３２Ａを用いている。ＦＰＧＡ１００からのシャットダウン信号が「１」のとき、ＭＯＳＦＥＴ３３１Ａのゲートがオフになり、トランシーバ３２０に供給される電源が遮断され、処理装置１０，２０間の通信が切断される。また、ＦＰＧＡ２００からのシャットダウン信号が「１」のとき、ＭＯＳＦＥＴ３３２Ａのゲートがオフになり、トランシーバ３２０に供給される電源が遮断され、処理装置１０，２０間の通信が切断される。
【００７１】
異常が発生した場合には、ＦＰＧＡ１００，２００からシャットダウン信号「１」が出力され、ＭＯＳＦＥＴ３３１Ａ，３３２Ａの双方がオフになり、電源が遮断される。ＭＯＳＦＥＴ３３１Ａ，３３２Ａは直列に接続されており、仮に何れか一方に故障が発生してオフにならなかったとしても、トランシーバ３２０の電源は遮断される。
【００７２】
上記した実施形態は、異常検出時にトランシーバ３２０の電源が切断されることによって、処理装置１０，２０間の通信を切断するものであるが、通信切断の実現手段としては、これに限定するものではなく、様々なバリエーションが考えられる。例えば、送受信信号の信号伝送経路上にスイッチを実装し、異常検出時に当該スイッチをオフすることによって、通信を切断するようにしてもよい。また、送受信信号にＡＮＤゲートなどを介することにより、異常検出時に送受信信号を「０」または「１」に固着させ、これによって通信を切断する例なども考えられる。
【００７３】
≪処理装置の特徴≫
上記したとおり、ＦＰＧＡ１００およびＦＰＧＡ２００は、それぞれ同一の機能を有しており、同一の入力に対して同一の処理を行い、同一の出力信号を生成するものである。このため、ＦＰＧＡ１００およびＦＰＧＡ２００双方に故障などの異常がない限りは、双方の出力は一致する。また、ＦＰＧＡ１００およびＦＰＧＡ２００の何れかに故障が発生した場合には、出力信号照合部１１１によって異常を検出することができる。
【００７４】
また、出力信号照合部１１１は、ＦＰＧＡ１００およびＦＰＧＡ２００の双方に具備されて多重化されているため、何れかの出力信号照合部１１１が故障した場合においても、安全機能喪失に陥ることはない。また、スイッチ３３１，３３２も多重化されており、何れかが故障した場合においても、安全機能喪失に陥ることはない。
さらに本実施形態では、出力信号照合部１１１が、処理装置１０，２０間の通信フレームの異常を検出することによって、シングル構成の通信路であっても、通信路３６０（図３参照）の故障を検出可能としている。詳しくは、図２において、通信路３６０において異常が発生した場合には、通信制御部（１系）１０８および通信制御部（２系）１０９で異常が検出され、出力信号照合部１１１に通知されて、通信路３６０が切断される。
【００７５】
≪絶縁素子、電源、クロックおよびリセットの特徴≫
図２０は、本実施形態に係る電源、クロック、リセットの系間分離と絶縁素子の役割を説明するための図である。前述したとおり、Ａ系とＢ系は、それぞれ異なる電源系統で動作している。Ａ系には電源３４１Ａが供給され、Ｂ系には電源３４１Ｂが供給される。Ａ系とＢ系とを異なった電源プレーンで動作させるため、処理装置１０のプリント回路基板上において、電源プレーンはＡ系電源プレーン３６１ＡとＢ系電源プレーン３６１Ｂとで、物理的ギャップを設けて分離する。Ａ系とＢ系との間には、異なる電源系統で信号の行き来をするために、絶縁素子３５０を設ける。図２０では、絶縁素子として、磁気アイソレータを使用した例を示しているが、この他にもコンデンサーアイソレータやフォトカプラなどを使用してもよい。
【００７６】
このようにＡ系とＢ系とで、電源を別系統として備えることにより、どちらか一方の系において電源が故障した場合においても、もう一方の系でその故障を検出することができる。
また図２０において、Ａ系は、クロック３４２Ａとして発信器３４２Ｐおよびリセット３４３Ａとしてリセット制御ＩＣ３４３Ｐを備えており、Ｂ系は、クロック３４２Ｂとして発信器３４２Ｑおよびリセット３４３Ｂとしてリセット制御ＩＣ３４３Ｑを備えている。上述した電源と同様に、Ａ系とＢ系とで、これらの部品を独立して備えることによって、何れか一方の系において、上記部品の何れかが故障した場合においても、もう一方の系でその故障を検出することができる。
【００７７】
≪ＦＰＧＡの内部論理レイアウトの特徴≫
図２１は、本実施形態に係るＦＰＧＡ１００の入出力端子の割り当ておよび内部論理のレイアウトを説明するための図である。図２２は、本実施形態に係るＦＰＧＡ２００の入出力端子の割り当ておよび内部論理のレイアウトを説明するための図である。
【００７８】
前述したとおり、ＦＰＧＡ１００とＦＰＧＡ２００とはそれぞれ同一の機能を有しており、同一の入力に対して同一の処理を行い、同一の出力信号を生成するものである。ＦＰＧＡ１００とＦＰＧＡ２００とは、入出力信号と入出力端子の割り当て（ピンアサイン）が異なっている。例えば、入力信号１のピンアサインは、ＦＰＧＡ１００ではＰＮ３９であるのに対し、ＦＰＧＡ２００では、ＰＮ１１に割り当てられている。
【００７９】
またＦＰＧＡ１００とＦＰＧＡ２００とが、異なるピンアサインであることにより、ＦＰＧＡ１００とＦＰＧＡ２００との内部論理の物理的配置がそれぞれ異なっている。入出力端子部と内部論理の物理的配置が異なる２つのＦＰＧＡ１００，２００の出力を照合することにより、ＦＰＧＡの製造過程における共通要因故障が発生しても、異常の検出が可能となる。
【００８０】
また、入出力端子部と内部論理の物理的配置が異なる２つのＦＰＧＡ１００，２００の出力を照合することにより、ＦＰＧＡ配置配線ツールによって生成されるビットストリームファイルの検証についても、ＦＰＧＡを動作しながら検証することができ、ＦＰＧＡ配置配線ツールのバグによる共通要因故障が発生しても、異常を検出することが可能である。
【００８１】
上述した例は、ＦＰＧＡ１００とＦＰＧＡ２００とで、入出力信号と入出力端子の割り当てを変えることにより、その結果として内部論理の物理的配置を異なるものとする手法であるが、この他にも、ＦＰＧＡ配置配線ツールを使用し、設計者が意図的に配置配線制約を与えることによって、内部論理の物理的配置を２つのＦＰＧＡ１００，２００で異なる配置とする手法もある。以上の手法を用いることで、ＦＰＧＡ１００，２００の製造業者が同一で、製造ロットが同一であって共通要因故障が発生したとしても、処理装置１０は異常を検出して、処理装置２０との通信を切断することが可能である。
【００８２】
さらに、ＦＰＧＡ１００，２００における共通要因故障の回避策として、異なる製造業者のＦＰＧＡを用いる手法がある。異なる製造業者のＦＰＧＡを採用することで、製造過程における共通要因故障やＦＰＧＡ配置配線ツールのバグによる共通要因故障を排除することができる。
【００８３】
また、別の回避策として、同一製造業者であっても異なるパッケージ種のＦＰＧＡを用いる手法がある。異なるパッケージ種のＦＰＧＡを採用することで、製造過程における共通要因故障のリスクを小さくできる。また、同一製造業者の同一機能のＦＰＧＡであっても、パッケージ種が異なることで、ビットストリームファイルは相違するため、ＦＰＧＡ配置配線ツールのバグによる共通要因故障が発生しても、異常を検出することが可能である。
【００８４】
≪変形例１：二重化超の多重化≫
上記した実施形態では、処理装置１０でＡ系とＢ系との２系に多重化しているが、さらに多重化してもよい。図２３は、本実施形態の変形例１に係るＦＰＧＡ１００Ａの内部論理構成を示す図である。変形例１は、Ａ系、Ｂ系およびＣ系とからなる３系の多重化の例であって、ＦＰＧＡ１００Ａは、Ａ系に備わるＦＰＧＡである。Ｃ系は、Ａ系やＢ系と同様の構成であって、ＦＰＧＡ、および、Ａ系とＢ系とから独立した電源とクロックとリセットとを備える。
【００８５】
トランシーバ３２０に供給される電源を遮断するためにスイッチ３３１，３３２に加えて、Ｃ系のＦＰＧＡからのシャットダウン信号によりオフになるスイッチが直列に接続される。Ａ系、Ｂ系およびＣ系の何れかのＦＰＧＡからシャットダウン信号の「１」が出力されれば、トランシーバ３２０の電源供給は遮断され、処理装置１０，２０間の通信が遮断される。
【００８６】
ＦＰＧＡ１００と比較して、ＦＰＧＡ１００Ａは、Ｃ系のＦＰＧＡからのシリアルデータと通信制御部（１系）１０８が出力するシリアルデータ（通信フレーム）を照合する出力信号照合部１１１Ａをさらに備える。出力信号照合部１１１Ａは、出力信号照合部１１１と同等の構成である。また、ＯＲゲート１１２Ａへの入力には、出力信号照合部１１１Ａが出力する異常信号が加わる。
【００８７】
出力信号照合部１１１は、Ａ系のシリアルデータとＢ系のシリアルデータとを照合し、不一致があった場合には、ＯＲゲート１１２Ａに異常信号を送出する。出力信号照合部１１１Ａは、Ａ系のシリアルデータとＣ系のシリアルデータとを照合し、不一致があった場合には、ＯＲゲート１１２Ａに異常信号を送出する。Ａ系のシリアルデータ、Ｂ系のシリアルデータおよびＣ系のシリアルデータ全てが一致しない場合には、シャットダウン信号「１」が出力されてトランシーバ３２０の電源供給が遮断され、処理装置１０，２０間の通信が切断される。
【００８８】
処理装置の系の多重化度を上げることにより、入力信号の処理に関するリスクを低減することができる。また、上記したように、出力信号照合部を追加することによって、さらなる系の多重化を行うことができる。
【００８９】
≪変形例２：一方の処理装置でのみの多重化≫
上記した実施形態では、処理装置１０，２０の双方が、二重化構成にしているが、処理装置２０は、多重化構成としない、または、３重化構成としてもよい。このように、通信相手となる処理装置の多重化構成を限定しないことで、柔軟なシステム構成をとることができる。
【００９０】
≪変形例３：片方向の通信≫
上記した実施形態では、処理装置１０，２０の双方が、データを送信していた。処理装置２０は、データを送信せず、生死確認のためのハートビートをシリアルデータ（通信フレーム）として所定の間隔で送信するようにしてもよい。この場合、入力フレーム解析部１６２（図８参照）は動作せず、エラー検出を行わない。処理装置間通信タイムアウト検出部１６３は、処理装置２０からのハートビートの受信が、一定期間途絶えた場合にエラー検出を通知する信号をＯＲゲート１６４（図８参照）に出力する。
【００９１】
≪変形例４：埋め込みマイクロプロセッサを使用しない構成≫
一般のＦＰＧＡの論理構成では、処理速度向上や低消費電力化のために、ＦＰＧＡに埋め込まれているマイクロプロセッサ（ハードＩＰ（Intellectual Property））を使用する場合がある。しかしながら、マイクロプロセッサを使用すると、当該マイクロプロセッサが共通要因故障の原因となってしまう。このため、埋め込みマイクロプロセッサの使用を避け、ＦＰＧＡの内部論理の設計者（ユーザ、利用者）が定義したハードウェアロジックのみによって動作することが望ましい。このようにすることで、マイクロプロセッサが原因となる共通要因故障を避けることができる。同様の理由で、ＦＰＧＡ埋め込みのハードＩＰの使用を避け、ＦＰＧＡの内部論理の設計者が定義したハードウェアロジックのみによって動作することが望ましい。
【００９２】
図２４は、本実施形態の変形例４に係る埋め込みマイクロプロセッサの使用を避けた内部論理配置の例を説明するための図である。ＦＰＧＡ１００Ｂの内部領域１９８には、埋め込みマイクロプロセッサが配置されている。内部論理として、演算部（１系）１０５、演算部（２系）１０６、内部信号照合部１０７、通信制御部（１系）１０８、通信制御部（２系）１０９、内部信号照合部１１０、出力信号照合部１１１およびＯＲゲート１１２は、内部領域１９８を除いて配置されている。
【００９３】
≪変形例５：ＦＰＧＡの内部論理を多重化構成≫
上記した実施形態では、ＦＰＧＡ１００の入力信号の処理は、演算部（１系）１０５と演算部（２系）１０６とで２重化され、内部信号照合部１０７で処理結果を照合している。また、通信制御についても、通信制御部（１系）１０８と通信制御部（２系）１０９とで２重化され、内部信号照合部１１０で処理結果を照合している。
【００９４】
演算部や通信制御部を２重化せず、内部信号照合部を省略してもよい。内部論理を簡略することで、コストを削減することができる。
また、逆に３重化など多重度を２以上にしてもよい。多重度を上げることで、入力信号の処理に関するリスクを低減することができる。
【００９５】
≪変形例６：非活性論理の活性化≫
上記した実施形態では、出力信号照合部は、実際に動作している内部論理の故障しか検出することができない。例えば、低頻度で発生する、特別な状態においてのみ実行される処理など、特定の条件が揃わないと動作しない論理回路に対しては、たとえ故障があっても、直ぐにそれを検出することはできない。このような低頻度で動作する論理回路の故障に対しては、処理装置間のデータ送受信を行う通常動作期間とは別に、当該論理回路が正常に動作するかを診断するための診断期間（後記する図２５参照）を設け、この診断期間中に、当該論理回路が動作する特定の条件を意図的に注入し、当該論理回路を活性化させることより、出力信号照合部でその故障を検知することができる。
【００９６】
図２５は、本実施形態の変形例６に係わる診断期間を説明するための図である。ＦＰＧＡ１００，２００は、図２５に示すように周期的な動作を行う。ＦＰＧＡ１００，２００は、通常動作期間６１０において、処理装置１０，２０間のデータ送受信を行う。診断期間６２０において、論理回路が正しく機能しているかの診断を行う。ＦＰＧＡ１００，２００は、通常動作期間６１０と診断期間６２０とを１周期として、繰り返し動作を行う。
【００９７】
図２６は、本実施形態の変形例６に係わる活性化条件注入回路を付与する前の論理回路の一例を示す図である。論理回路４００は、ＦＰＧＡ１００，２００の主たる機能を実行する演算部（１系）１０５、演算部（２系）１０６、通信制御部（１系）１０８および通信制御部（２系）１０９の一部であって、ＡＮＤゲート４０１およびＯＲゲート４０２によって構成されて論理回路の例である。入力信号Ａ、Ｂ、Ｃのなかで、入力信号Ｃは、低頻度で発生する、ある特別な状態のときにしかアサート（信号が「１」となる）されない。
【００９８】
図２７は、本実施形態の変形例６に係わる活性化条件注入回路を説明するための図である。活性化条件注入回路４１０は、論理回路４００の入力信号Ｃを活性化するための回路である。活性化条件注入回路４１０は、診断期間６２０において、活性化条件注入信号が入力されると、入力信号Ｃの値を強制的に「１」に切り替え、ＯＲゲート４０２を活性化させる。これにより、もし論理回路４００において、ＯＲゲート４２０が故障し、入力信号Ｃの値が出力信号Ｑに反映されない異常が起こった場合においても、出力信号照合部によって、その異常を検出することが可能となる。
変形例６は、ＡＮＤゲート４０１およびＯＲゲート４０２によって構成されて論理回路４００における活性化条件注入回路４１０であったが、他の論理回路であってもよい。低頻度でアサートされる入力信号の信号線に対して、活性化条件注入回路４１０を付与することで、特定の条件が揃わないと動作しない論理回路に故障が発生しても、これを検出することができる。
【００９９】
≪変形例７：各系で処理回路（ＦＰＧＡ）を２分割≫
上述した実施形態は、Ａ系およびＢ系それぞれの処理回路が、１つのＦＰＧＡで構成されている。各系で処理回路を２分割して２つのＦＰＧＡで構成するようにしてもよいし、それ以上の個数に分割してもよい。
【０１００】
図２８は、本実施形態の変形例７に係わる処理回路（ＦＰＧＡ）の分割構成を模式的に示した図である。処理装置１０Ａの主機能を、内部論理１１５Ａと内部論理１１５Ｂとに分割し、内部論理１１５ＡはＦＰＧＡ１００ＣとＦＰＧＡ２００Ｃとに、内部論理１１５ＢはＦＰＧＡ１００ＤとＦＰＧＡ２００Ｄとに、それぞれ実装している。
ＦＰＧＡ１００Ｃ，２００Ｃの出力は、ＦＰＧＡ１００Ｃの出力信号照合部１１６ＡおよびＦＰＧＡ２００Ｃの出力信号照合部１１６Ａにおいて、Ａ系とＢ系それぞれ相互に照合される。また、ＦＰＧＡ１００Ｄ，２００Ｄの出力は、ＦＰＧＡ１００Ｄの出力信号照合部１１６ＢおよびＦＰＧＡ２００Ｄの出力信号照合部１１６Ｂにおいて、Ａ系とＢ系それぞれ相互に照合される。
【０１０１】
単一のＦＰＧＡで実装することができない大規模な処理回路であっても、上記したように複数のＦＰＧＡに分割して構成することができる。Ａ系とＢ系のそれぞれにおいて、分割した処理回路（ＦＰＧＡ）の出力信号を相互に照合することで、何れかの出力信号照合部が故障した場合においても、安全機能喪失に陥ることはない。また、図２１と図２２とで説明したように、Ａ系とＢ系とでＦＰＧＡの内部論理を異なるようにレイアウトすることで、ＦＰＧＡの製造過程における共通要因故障が発生しても、異常の検出が可能となる。
【０１０２】
本構成において、使用する全てのＦＰＧＡに、同一製造業者かつ同一パッケージ種のＦＰＧＡを採用することで、各系で単一のＦＰＧＡを使用するよりも、ビットストリームファイルの検証の効果をより高めることができる。また上記の実施形態において、全ての処理装置に備わる全てのＦＰＧＡに、同一製造業者かつ同一製造ロットのＦＰＧＡを採用することで、ＦＰＧＡの製造過程における不良があった場合には、それをより確実に検出することが可能である。
【０１０３】
本発明は上記の実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含む。
また、上記した各実施形態例は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。
【符号の説明】
【０１０４】
１０，１０Ａ，２０  処理装置
１００，１００Ａ，１００Ｂ，１００Ｃ，１００Ｄ，１００Ｚ，２００，２００Ｃ，２００Ｄ  ＦＰＧＡ（処理回路）
１０５  演算部（１系）（内部論理）
１０６  演算部（２系）（内部論理）
１０７  内部信号照合部（内部論理）
１０８  通信制御部（１系）（内部論理）
１０９  通信制御部（２系）（内部論理）
１１０  内部信号照合部（内部論理）
１１１，１１１Ａ  出力信号照合部（内部論理）
１１２，１１２Ａ  ＯＲゲート（内部論理）
１１６Ａ，１１６Ｂ  出力信号照合部（内部論理）
３４１Ａ，３４１Ｂ  電源
３４２Ａ，３４２Ｂ  クロック
３４３Ａ，３４３Ｂ  リセット
３５０  絶縁素子
３６０  通信路
４１０  活性化条件注入回路
【図１】
2020090034.tif 000003
【図２】
2020090034.tif 000004
【図３】
2020090034.tif 000005
【図４】
2020090034.tif 000006
【図５】
2020090034.tif 000007
【図６】
2020090034.tif 000008
【図７】
2020090034.tif 000009
【図８】
2020090034.tif 000010
【図９】
2020090034.tif 000011
【図１０】
2020090034.tif 000012
【図１１】
2020090034.tif 000013
【図１２】
2020090034.tif 000014
【図１３】
2020090034.tif 000015
【図１４】
2020090034.tif 000016
【図１５】
2020090034.tif 000017
【図１６】
2020090034.tif 000018
【図１７】
2020090034.tif 000019
【図１８】
2020090034.tif 000020
【図１９】
2020090034.tif 000021
【図２０】
2020090034.tif 000022
【図２１】
2020090034.tif 000023
【図２２】
2020090034.tif 000024
【図２３】
2020090034.tif 000025
【図２４】
2020090034.tif 000026
【図２５】
2020090034.tif 000027
【図２６】
2020090034.tif 000028
【図２７】
2020090034.tif 000029
【図２８】
2020090034.tif 000030
【手続補正書】
【提出日】平成31年4月4日(2019.4.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
同一の入力信号に対して同一の処理を行い、同一の出力信号を生成する複数系の処理回路を備え、
前記複数系の処理回路それぞれは、当該処理回路の出力信号と、他の処理回路の出力信号とを照合する出力信号照合部を備える
ことを特徴とする処理装置。
【請求項２】
前記複数系の処理回路ぞれぞれは、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）によって構成される
ことを特徴とする請求項１に記載の処理装置。
【請求項３】
前記ＦＰＧＡに配置される処理回路は、ユーザが定義可能なハードウェアロジックのみで構成される
ことを特徴とする請求項２に記載の処理装置。
【請求項４】
前記複数系の処理回路を構成するＦＰＧＡそれぞれにおいて、入出力信号と端子との組み合わせが異なる
ことを特徴とする請求項２に記載の処理装置。
【請求項５】
前記複数系の処理回路を構成するＦＰＧＡそれぞれにおいて、内部論理の物理的配置が異なる
ことを特徴とする請求項２に記載の処理装置。
【請求項６】
前記複数系の処理回路を構成するＦＰＧＡそれぞれにおいて、製造業者およびパッケージ種の何れか一方または双方が異なる
ことを特徴とする請求項２に記載の処理装置。
【請求項７】
前記処理装置は、他の装置との通信データを送受信する通信路を備え、
前記複数系の処理回路ぞれぞれは、前記他の装置から受信した通信データの異常を検出する通信制御部を備え、
前記通信制御部は、前記出力信号照合部による前記出力信号を照合の結果が一致する場合には、前記出力信号を前記他の装置に送信する
ことを特徴とする請求項１から６の何れか１項に記載の処理装置。
【請求項８】
前記通信制御部は、安全レイヤの通信プロトコルを実装し、前記通信路はブラックチャネルである
ことを特徴とする請求項７に記載の処理装置。
【請求項９】
前記出力信号照合部は、前記通信制御部が前記通信路に出力した信号を照合する
ことを特徴とする請求項８に記載の処理装置。
【請求項１０】
前記出力信号照合部の照合の結果が不一致である場合には、前記通信路が切断される
ことを特徴とする請求項７に記載の処理装置。
【請求項１１】
前記複数系の処理回路は、それぞれ別系統の電源を備える
ことを特徴とする請求項１〜６，８〜１０の何れか１項に記載の処理装置。
【請求項１２】
前記複数系の処理回路のなかの２つの処理回路において、当該２つの処理回路の間で信号が行き来するための絶縁素子を有する
ことを特徴とする請求項１１に記載の処理装置。
【請求項１３】
前記複数系の処理回路は、それぞれ別系統のクロックおよびリセットを備える
ことを特徴とする請求項１〜６，８〜１０の何れか１項に記載の処理装置。
【請求項１４】
前記複数系の処理回路それぞれは、所定の条件が揃わないと動作しない論理回路に対して、当該論理回路を活性化させる入力信号を入力する論理回路と、前記入力信号を入力する期間を設けている
ことを特徴とする請求項１〜６，８〜１０の何れか１項に記載の処理装置。
【請求項１５】
前記複数系の処理回路それぞれは、複数のＦＰＧＡによって構成され、かつ当該ＦＰＧＡの各々が、前記出力信号照合部を備える
ことを特徴とする、請求項２〜６，８〜１０の何れか１項に記載の処理装置。
【請求項１６】
前記複数系の処理回路を構成する全てのＦＰＧＡは、製造業者および製造ロットが同一である
ことを特徴とする、請求項４または５の何れか１項に記載の処理装置。
【国際調査報告】
2020090034.tif 000031
2020090034.tif 000032
2020090034.tif 000033
2020090034.tif 000034