(57)【要約】【課題】異常検知時の前後で、ＣＰＵがどのようなプログラム処理を実行していたかを記憶し、後でそのときの状態を知ることにより、故障解析の効率向上を図る。【解決手段】故障解析支援用の二重系コントローラの二重化したバスのそれぞれに、バスの動作履歴を記憶（トレース）する手段を設置して異常検知時の前後一定時間のバス状態を保持し、保持された二重化バスの情報を比較検証することにより、故障解析の効率向上に貢献する。【選択図】図１
2012146009.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ、メモリ及びＣＰＵとメモリを接続するバスからなる互いに同一なシステムを二重化した冗長構成を持ち、二つのバスのアドレス・データ・制御信号の状態を常時比較するバス比較器を有する二重系コントローラにおいて、各々のバス状態を記憶するトレース手段を有し、ＣＰＵがプログラム処理異常を検出し、二重系コントローラが停止したときに、その前後一定時間分の二重化したトレース情報を保持することを特徴とする故障解析支援用の二重系コントローラ。
【請求項２】
請求項１記載の故障解析支援用の二重系コントローラにおいて、前記バス比較器が前記二つのバスのアドレス・データ・制御信号の比較不一致を検出し、二重系コントローラが停止したときに、前後一定時間分の二重化したトレース情報を保持することを特徴とする故障解析支援用の二重系コントローラ。
【請求項３】
請求項１記載の故障解析支援用の二重系コントローラにおいて、前記ＣＰＵとは独立に動作可能なデータ転送装置を有し、該データ転送装置は、二重系コントローラが異常を検知し停止したときに、トレース手段に保持されたトレース情報を不揮発な記憶装置に転送する機能を有することを特徴とする故障解析支援用の二重系コントローラ。
【請求項４】
請求項１〜３の何れか１項に記載の故障解析支援用の二重系コントローラにおいて、トレース情報として、バス状態とともに時刻情報を保持することを特徴とする故障解析支援用の二重系コントローラ。
【請求項５】
請求項１〜４の何れか１項に記載の故障解析支援用の二重系コントローラにおいて、トレース情報を保持するための条件設定手段を有し、バス信号状態が設定した条件と一致したときに、その前後一定時間分の二重化したトレース情報を保持することを特徴とする故障解析支援用の二重系コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、冗長二重化したＣＰＵを有する故障解析支援用の二重系コントローラに関する。
【背景技術】
【０００２】
鉄道保安装置などの高い安全性の要求される分野においては、演算処理を行うシステムは、処理系を二重化し、その処理結果を照合し、一致していれば正常動作を継続し、不一致であればシステムとして安全な状態に遷移するように制御を実行している。その実現方法の一つに、ＣＰＵとメモリ間のデータを伝送するバスの状態を常時比較照合する方法がある。
【０００３】
例えば、特許文献１（特開２０００−２７６２０２号公報）には、交番信号を出力に持つフェールセーフな制御装置において、安全性を確保しつつ、生産性を向上させる方法であって、制御演算を行う制御演算プログラムと、制御演算プログラムによる演算結果から制御信号を生成する出力プログラムとを記憶したメモリと、タイマの割込み信号に応じて制御演算プログラムの結果を取り込み出力プログラムを実行して演算結果に基づいて制御信号を生成するプロセッサによって構成するものが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２７６２０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の方式においては、異常検出時の安全状態への遷移は保証されるが、どのような異常により当該二重系コントローラが動作停止したかが判然とせず、故障原因究明が困難となる場合が多い。また、故障原因究明のために類似の事象が発生することを再現させる試験がしばしば実施されるが、手掛かりとなる情報が少ない状況では試行錯誤の繰り返しになり、故障解析のために長大な時間が割かれることとなる。
【０００６】
そこで、本願発明は、上記のような課題を解決するためになされたものであり、異常検知時の前後で、ＣＰＵがどのようなプログラム処理を実行していたかを記憶し、後でそのときの状態を検証して故障に至る経緯を知る手掛かりとすることによって、故障解析の効率向上が図れる故障解析支援用の二重系コントローラを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明による故障解析支援用の二重系コントローラは、ＣＰＵ、メモリ及びＣＰＵとメモリを接続するバスからなる互いに同一なシステムを二重化した冗長構成を持ち、二つのバスのアドレス・データ・制御信号の状態を常時比較するバス比較器を有する二重系コントローラにおいて、各々のバス状態を記憶するトレース手段を有し、ＣＰＵがプログラム処理異常を検出し、二重系コントローラが停止したときに、その前後一定時間分の二重化したトレース情報を保持することを特徴とする。
【０００８】
また、本発明による故障解析支援用の二重系コントローラは、前記バス比較器が前記二つのバスのアドレス・データ・制御信号の比較不一致を検出し、二重系コントローラが停止したときに、その前後一定時間分の二重化したトレース情報を保持することを特徴とする。
【０００９】
また、本発明による故障解析支援用の二重系コントローラは、前記ＣＰＵとは独立に動作可能なデータ転送装置を有し、該データ転送装置は、二重系コントローラが異常を検知し停止したときに、トレース手段に保持されたトレース情報を不揮発な記憶装置に転送する機能を有することを特徴とする。
【００１０】
また、本発明による故障解析支援用の二重系コントローラは、トレース情報として、バス状態とともに時刻情報を保持することを特徴とする。
【００１１】
また、本発明による故障解析支援用の二重系コントローラは、トレース情報を保持するための条件設定手段を有し、バス信号状態が設定した条件と一致したときに、その前後一定時間分の二重化したトレース情報を保持することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、故障解析支援用の二重系コントローラが異常を検知して動作停止したときに、その前後の二重化バスの状態を詳細に解析することが可能となり、故障解析の効率向上を実現することができる。特に、トレースを二重化して記憶することにより、異常発生の原因がプログラム処理の異常であるか、ハードウェア故障によるバス比較不一致によるものかの判別が容易となる。
【００１３】
さらに、本発明によれば、ＣＰＵの実行状態を知る手段として、二重化したバスのそれぞれに、バスの動作履歴を記憶（トレース）する手段を設置して異常検知時の前後一定時間のバス状態を保持し、保持された二重化バスの情報を比較検証することにより、故障解析の効率向上に貢献する。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施例１を示す故障解析支援用の二重系コントローラの全体構成概略図である。
【図２】実施例１のトレース制御部を示す構成図である。
【図３】実施例１のレジスタへの書き込み処理を示す説明図である。
【図４】実施例１のバス状態変化を示す説明図である。
【図５】実施例１の図４におけるトレース情報を示す説明図である。
【図６】実施例１の二重化したバスのそれぞれのトレース情報を並べた状態を示す説明図である。
【発明を実施するための形態】
【００１５】
図１は、本発明の実施の形態１に従う故障解析支援用の二重系コントローラの全体構成概略図である。図１においてＣＰＵ１ａ、１ｂは二重系コントローラの演算処理を実行するプロセッサである。ＣＰＵ１ａ、１ｂは、プログラム処理に異常を検出した場合、ＣＰＵエラー信号８ａ、８ｂをそれぞれアサートする。また、メモリ２ａ、２ｂはＣＰＵ１ａ、１ｂの演算実行に必要なプログラムや、演算結果データを格納する記憶装置である。バス３ａ、３ｂはアドレス信号、データ信号、及びメモリリード／ライトに関わる制御信号（チップセレクト信号やリード／ライトストローブ信号）で構成されており、バス３ａはＣＰＵ１ａとメモリ２ａとの間を、バス３ｂはＣＰＵ１ｂとメモリ２ｂの間をそれぞれ接続している。また、バス３ａ、３ｂはバス比較器４にも接続されており、バス比較器４は、バス３ａとバス３ｂをクロック単位で比較を行い、一致／不一致を判定し、不一致となったときに比較エラー信号９がアサートされる。更に、バス３ａ、３ｂにはそれぞれトレース制御部５ａ、５ｂが接続される。
【００１６】
トレース制御部５ａ、５ｂは、バス状態情報を常に一定時間記憶する制御を行っている。異常状態が検知されない通常動作時には、トレース制御部５ａ、５ｂ内に記憶されるバス状態情報は、常時更新されて一定時間のバス状態情報が記憶されていく。この状態で、比較エラー信号９またはＣＰＵエラー信号８ａ、８ｂにより異常検知が伝達されると、トレース制御部５ａ、５ｂはバスの状態情報を保持する。同時に、トレース制御部５ａ、５ｂは、データ転送装置６ａ、６ｂに対し、データ転送要求信号１０ａ、１０ｂをアサートする。このとき、データ転送装置６ａ、６ｂは、データバス１１ａ、１１ｂからトレース制御部５ａ、５ｂに保持されたバス状態情報を取り出し、データバス１２ａ、１２ｂより不揮発性記憶装置７ａ、７ｂにデータを格納する。これにより、実稼動中に異常検知した二重系コントローラを交換するために電源を落としても、バス状態情報が記憶装置７ａ、７ｂに保存されているため、後に情報を取り出すことが可能である。そして、その際のバス状態情報は、常に一定時間のバス状態情報が記憶されているために、異常検知の前後のバス状態情報を確保することを可能にするものである。
【００１７】
次に、図２にトレース制御部５ｂの構成を示す。なお、トレース制御部５ａも同一の構成である。レジスタ５０１は、２Ｎ個分のバス状態情報を格納する記憶装置である。バス状態情報は、バスクロック毎に１回ずつ格納しても良いが、同じ状態が複数クロックにわたり継続する場合も考えられるため、バス状態情報に時刻情報を付加し情報の圧縮を図ることも可能である。つまり、信号変化検知器５０３は、バス状態の変化を調べ、バス状態に変化があった場合に信号変化検知信号５０９をアサートする。そして、バス状態変化が無い場合には、クロックカウンタ５０３が起動し、バス状態変化が発生するまでバスクロック毎にカウンタを＋１する。カウントした値を状態が変化しない時刻情報５１０として出力する。次にバス状態変化が発生したとき、バス３ｂと、前回までの状態変化の無かった時刻情報５１０とを合わせてバス状態情報５０８とし、レジスタ５０１に格納する。
【００１８】
また、ポインタカウンタ５０４は、レジスタ５０１への格納場所及び格納タイミングを生成する。図３に示すように、レジスタ５０１の格納場所は、０〜２Ｎ−１のポインタにより指定される。また、レジスタ５０１は、リングバッファ構造となっており、ポインタが２Ｎ−１まで達したとき、次のポインタは０に戻る。ポインタカウンタ５０４は、信号変化検知信号５０９がアサートされたとき、レジスタ５０１に対しポインタ５１１と、書き込みイネーブル信号５１２をアサートし、指定の格納場所へバス状態情報５０８が格納される。また、トリガ信号５１３がアサートされたとき、ポインタカウンタ５０４は、ポインタの更新及び書き込みイネーブル信号のアサートをＮ回実行した後停止する。即ち、トリガ発生前後Ｎ回（合計２Ｎ回）分のバス状態情報がレジスタ５０１に保持される。トリガ信号のアサートは、トリガ検知器５０５が制御する。トリガ検知器５０５は、バス比較器からのエラー信号９のアサート、またはＣＰＵエラー信号８ａまたは８ｂのアサート、またはバス３ｂが特定の状態になったことを検知したときにトリガ信号５１３をアサートする。これらのトリガ条件は、トリガ条件設定器５０６で設定する。トリガ条件は、バス３ｂを経由してＣＰＵ１ｂからトリガ条件設定器５０６に設定することができる。トリガ発生前後Ｎ回（合計２Ｎ回）分のバス状態情報がレジスタ５０１に保持された後、ポインタカウンタ５０４からデータ転送要求信号１０ｂがデータ転送装置６ｂに対しアサートされる。データ転送装置６は、レジスタ５０１の内容をデータバス１１ｂを経由し取り出す。
【００１９】
次に、図４のようなバス状態変化を例にして、格納されるトレース情報のフォーマットについて説明する。図４に対応するトレース情報を図５に示す。まず、チップセレクト信号（ＣＳ）が１から０に変化するため、書き込みタイミング１が発生し、前回状態のカウント値Ｘと、変化後のバス状態がポインタｎの位置に格納される。次にリードストローブ信号（ＲＤ）が１から０に変化するため、書き込みタイミング２が発生し、前回状態のカウント値２と、変化後のバス状態がポインタｎ＋１の位置に格納される。同様に、データの変化で書き込みタイミング３が、ＲＤの０から１の変化で書き込みタイミング４が、ＣＳの０から１の変化で書き込みタイミング５が発生し、それぞれポインタ位置を更新し格納される。このようにして得られた図５のようなトレース情報から、図４の信号波形を再現することができる。
【００２０】
図６に二重化したバスのそれぞれのトレース情報を並べた例を示す。この例では、アドレス１１２０に対するリードデータが、ＣＰＵ１ａ側が５５５５に対し、ＣＰＵ１ｂ側が５５５４となって比較不一致となっている。このような際に、異常検知がなされる。その際に、異常検知の前後のバス状態情報が保持されているので、直前のデータアクセスがアドレス２００４へのアクセスであることが分かる。このように、異常検知の直接原因となったメモリアドレスの確定や、異常検知前後のプログラム処理を知ることができるため、故障部位の推定が容易となる。
【００２１】
また、ＣＰＵエラーにより動作停止した場合には、ＣＰＵ１ａ側トレース、ＣＰＵ１ｂ側トレースには同一のバス情報が格納される。従って、二重化したトレース情報よりハードウェア故障による比較不一致を起因とした動作停止ではなく、プログラム処理の異常による動作停止と判別できる。また、異常検知前後のプログラム処理を知ることができるため、ＣＰＵプログラムの処理部位や、メモリアクセス先の特定が容易となる。
【符号の説明】
【００２２】
１ａ，１ｂ…ＣＰＵ
２ａ，２ｂ…メモリ
３ａ，３ｂ…バス
４…バス比較器
５ａ，５ｂ…トレース制御部
６ａ，６ｂ…データ転送装置
７ａ，７ｂ…不揮発性記憶装置
８ａ，８ｂ…ＣＰＵからのエラー信号
９…比較エラー信号
１０ａ，１０ｂ…データ転送要求信号
１１ａ，１１ｂ…データバス（トレース制御部−データ転送装置間）
１２ａ，１２ｂ…データバス（データ転送装置−不揮発性記憶装置間）
【図１】
2012146009.tif 000003
【図２】
2012146009.tif 000004
【図３】
2012146009.tif 000005
【図４】
2012146009.tif 000006
【図５】
2012146009.tif 000007
【図６】
2012146009.tif 000008