(57)【要約】【課題】メモリチェックで検出されるエラーが復旧不可能な故障であるかどうかを検出することができるメモリ装置およびそのセルフチェック制御方法を提供する。【解決手段】２つのメモリ（１０１ａ、１０１ｂ）にそれぞれ対応するエラー検出機能（１０２ａ、１０３ａ、１０２ｂ、１０３ｂ）が設けられた二重化メモリ部（１００ａ、１００ｂ）と、二重化メモリ部のそれぞれのデータに対するエラー検出結果に基づいて、一方のメモリのデータでエラーが検出された場合に他方のメモリの対応したデータで修正するエラーチェック処理を各メモリの所定領域全体にわたって繰り返すセルフチェック部（１１０−１１２）と、エラーチェック処理を繰り返した際の異常判定回数CNT(X)が所定回数に達した時にデータ修正不可能と判定する判定部（１１０）と、を有する。【選択図】図２
2011154593.tif 000002
【特許請求の範囲】
【請求項１】
機能分割された通信装置におけるメモリ装置であって、
２つのメモリにそれぞれ対応するエラー検出機能が設けられた二重化メモリ手段と、
前記二重化メモリ手段のそれぞれのデータに対するエラー検出結果に基づいて、一方のメモリの情報でエラーが検出された場合に他方のメモリの対応したデータで修正するエラーチェック処理を各メモリの所定領域全体にわたって繰り返すセルフチェック手段と、
前記エラーチェック処理を繰り返した際の異常判定回数が所定回数に達した時にデータ修正不可能と判定する判定手段と、
を有することを特徴とするメモリ装置。
【請求項２】
前記判定手段は、前記エラーチェック処理を繰り返した際の正常判定が所定回数だけ連続すると、前記異常判定回数をリセットすることを特徴とする請求項１に記載のメモリ装置。
【請求項３】
前記セルフチェック手段は、前記通信装置の制御ボードからのアクセス要求がないときに前記エラーチェック処理を実行し、前記エラーチェック処理を実行中であっても前記制御ボードからのアクセス要求があれば前記エラーチェック処理を中断し、当該アクセスが終了すれば当該エラーチェック処理を再開することを特徴とする請求項１または２に記載のメモリ装置。
【請求項４】
前記セルフチェック手段は、前記通信装置の制御ボードからのアクセスが所定時間以上継続した場合には、前記エラーチェック処理を強制的に実行することを特徴とする請求項３に記載のメモリ装置。
【請求項５】
機能分割された通信装置に設けられ、２つのメモリにそれぞれ対応するエラー検出機能が設けられた二重化メモリ手段を有するメモリ装置のセルフチェック制御方法であって、
前記二重化メモリ手段のそれぞれのデータに対するエラー検出結果に基づいて、一方のメモリの情報でエラーが検出された場合に他方のメモリの対応したデータで修正するエラーチェック処理を各メモリの所定領域全体にわたって繰り返し、
前記エラーチェック処理を繰り返した際の異常判定回数が所定回数に達した時にデータ修正不可能と判定する、
ことを特徴とするセルフチェック制御方法。
【請求項６】
前記エラーチェック処理を繰り返した際の正常判定が所定回数だけ連続すると、前記異常判定回数をリセットすることを特徴とする請求項５に記載のセルフチェック制御方法。
【請求項７】
機能分割された通信装置に設けられ、２つのメモリにそれぞれ対応するエラー検出機能が設けられた二重化メモリ手段を有するメモリ装置のセルフチェック制御機能をプログラム制御プロセッサに実現するプログラムであって、
前記二重化メモリ手段のそれぞれのデータに対するエラー検出結果に基づいて、一方のメモリの情報でエラーが検出された場合に他方のメモリの対応したデータで修正するエラーチェック処理を各メモリの所定領域全体にわたって繰り返し、
前記エラーチェック処理を繰り返した際の異常判定回数が所定回数に達した時にデータ修正不可能と判定する、
ように前記プログラム制御プロセッサを機能させることを特徴とするプログラム。
【請求項８】
前記エラーチェック処理を繰り返した際の正常判定が所定回数だけ連続すると、前記異常判定回数をリセットすることを特徴とする請求項７に記載のプログラム。
【請求項９】
請求項１−４のいずれか１項に記載のメモリ装置を搭載した設定保存ボード。
【請求項１０】
請求項９に記載の設定保存ボードを着脱可能に接続した通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリ装置に係り、特にメモリ装置内でデータチェックおよび自己修復可能なメモリ装置およびそのセルフチェック制御方法に関する。
【背景技術】
【０００２】
一般に、複数の機能ボードを搭載しＢＷＢ（バックワイアリングボード）などによって接続された伝送装置では、ＣＰＵ（Central Processing Unit）やその周辺回路から構成された制御ボードが伝送装置自体の管理制御を担当し、メモリを搭載した設定保存ボードが装置の設定情報を保存している。この設定保存ボードにおいて、メモリの劣化やソフトエラーの発生などにより異常状態が頻繁に発生すると、その都度、設定保存ボードの修理あるいは取り替え作業が必要となり、エンドユーザに負荷がかかってしまう。
【０００３】
特許文献１には、ＣＰＵの主記憶部に利用されるメモリ装置においてエラー発生を未然に防止する技術が開示されている。具体的には、ＣＰＵアクセスを定期的に禁止して二重化メモリをチェックし、一方のメモリでエラーが検出されると他方のメモリの正常なデータを書き込むことでエラー訂正を行うというものである（段落０００５、００１０、図１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−８８９９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示されたエラー訂正技術はメモリチェックで検出されるエラーが一時的なものか復旧不可能な故障であるかを判定することができず、メモリ装置を搭載したボード交換等の適切な修理を迅速に行うことができない。
【０００６】
そこで、本発明の目的は、メモリチェックで検出されるエラーが復旧不可能な故障であるかどうかを検出することができるメモリ装置およびそのセルフチェック制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明によるメモリ装置は、機能分割された通信装置におけるメモリ装置であって、２つのメモリにそれぞれ対応するエラー検出機能が設けられた二重化メモリ手段と、前記二重化メモリ手段のそれぞれのデータに対するエラー検出結果に基づいて、一方のメモリの情報でエラーが検出された場合に他方のメモリの対応したデータで修正するエラーチェック処理を各メモリの所定領域全体にわたって繰り返すセルフチェック手段と、前記エラーチェック処理を繰り返した際の異常判定回数が所定回数に達した時にデータ修正不可能と判定する判定手段と、を有することを特徴とする。
【０００８】
本発明によるセルフチェック制御方法は、機能分割された通信装置に設けられ、２つのメモリにそれぞれ対応するエラー検出機能が設けられた二重化メモリ手段を有するメモリ装置のセルフチェック制御方法であって、前記二重化メモリ手段のそれぞれのデータに対するエラー検出結果に基づいて、一方のメモリの情報でエラーが検出された場合に他方のメモリの対応したデータで修正するエラーチェック処理を各メモリの所定領域全体にわたって繰り返し、前記エラーチェック処理を繰り返した際の異常判定回数が所定回数に達した時にデータ修正不可能と判定する、ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、メモリチェックで検出されるエラーが復旧不可能な故障であるかどうかを検出することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態によるメモリ装置を搭載した設定保存ボードを有する通信装置の機能分割構成を示す概略的ブロック図である。
【図２】本発明の一実施例による設定保存ボードの機能的構成を示すブロック図である。
【図３】図２に示す設定保存ボードのセルフチェック制御方法におけるセルフチェック動作開始条件を示すフローチャートである。
【図４】図２に示す設定保存ボードのセルフチェック制御方法におけるセルフチェックおよびデータ訂正処理を示すフローチャートである。
【図５】図２に示す設定保存ボードのセルフチェック制御方法におけるカウンタ制御およびその判定を示すフローチャートである。
【図６】図２に示す設定保存ボードのセルフチェック制御方法におけるＣＰＵアクセスが発生した場合のＣＰＵアクセスモニタ処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
１．通信装置の構成
図１に示すように、通信装置は機能分割された複数のボードを搭載し、ＢＷＢ（バックワイアリングボード）などによってそれぞれが接続されている。このうち設定保存ボード１０は、他の機能部ボードに対する設定情報をバックアップとして保存する。設定保存ボード１０内にバッテリ（電池あるいは高容量キャパシタ）を搭載することにより、装置停電時でも設定情報が維持され、停電復旧後の装置復旧を可能にしている。
【００１２】
設定保存ボード１０に搭載されたメモリ装置には、装置設定情報を記憶する二重化されたメモリ部１１および１２が設けられ、各メモリ部はエラー検出機能を有する。メモリ制御部１３はメモリ部１１および１２を制御し、インタフェース１５を通して制御ボード２０との間で制御信号やデータの送受信を行う。セルフチェック部１４は、後述するように、二重化されたメモリ部１１および１２に対するセルフチェック機能および自己完結データ修正機能を実現する。メモリ制御部１３は、セルフチェック部１４により二重化メモリのデータが復旧できない異常状態を検出すると、ＬＥＤ等の発光手段（図示せず。）により異常表示を行うと共に制御ボード２０へ異常状態を通知する。
【００１３】
また、制御ボード２０は装置自体の管理制御を担当しており、ＣＰＵ２１、設定保存ボード１０と接続するためのインタフェース２２、他の機能部ボードとの通信を行うためのシリアルバス通信用の制御部２３およびその他周辺回路から構成される。周辺回路としては、装置内のメモリ、ブート用のメモリ、水晶発振器やボード内のデバイスに給電する電源回路などが含まれる。
【００１４】
本実施形態による設定保存ボード１０のメモリ制御部１３は制御ボード２０からのアクセス要求の有無を監視し、セルフチェック部１４はアクセス要求のない時にメモリ部１１および１２に対するセルフチェックを実行する。そして一方のメモリでデータエラーが検出された場合には、セルフチェック部１４がメモリ制御部１３を制御して、他方の正常データをエラーが検出されたメモリに書き込む自己完結データ修正を実行する。以下、設定保存ボード１０に搭載されたメモリ装置の構成および動作についてより詳細に説明する。
【００１５】
２．メモリ装置の構成
図２において、メモリ部１００ａおよび１００ｂは、図１における二重化されたメモリ部１１および１２に対応し、以下、メモリ部１００ａに関するブロックおよびラインをＡ系統、メモリ部１００ｂに関するブロックおよびラインをＢ系統と適宜呼ぶものとする。
【００１６】
メモリ部１００ａには、データメモリ１０１ａ、パリティメモリ１０２ａおよびパリティ演算部１０３ａが設けられ、メモリ部１００ｂにも同様にデータメモリ１０１ｂ、パリティメモリ１０２ｂおよびパリティ演算部１０３ｂが設けられている。パリティメモリ１０２ａおよびパリティ演算部１０３ａとパリティメモリ１０２ｂおよびパリティ演算部１０３ｂとは、図１におけるメモリ部１１および１２のエラー検出機能にそれぞれ対応する。なお、メモリ部１００ａおよび１００ｂにおけるメモリは、ここではＳＲＡＭ（Static Random Access Memory）であるものとする。
【００１７】
データメモリ１０１ａ、１０１ｂは当該通信装置の設定情報を保存し、パリティメモリ１０２ａ、１０２ｂはそれぞれのデータメモリに保存されたデータのパリティビットを保存する。これらのパリティビットはパリティ演算部１０３ａ、１０３ｂによって計算される。より詳細には、パリティ演算部１０３ａ、１０３ｂは、制御ボード２０のＣＰＵ２１からデータをデータメモリ１０１ａ、１０１ｂに書き込む場合、書込データに対応するパリティビットを計算してパリティメモリ１０２ａ、１０２ｂにそれぞれ保存する。また、データメモリ１０１ａ、１０１ｂに保存されているデータを参照する場合には、パリティ演算部１０３ａ、１０３ｂは当該データから改めてパリティビットを計算し、計算されたパリティビットと保存されている対応するパリティビットとをそれぞれ比較し、一致／不一致を判定する。
【００１８】
メモリ制御信号生成部１０４は、データメモリおよびパリティメモリに対する読み出しおよび書き込みに必要な信号を生成する。制御ボード２０からの読み出し／書き込み指令を実行する際には、ラインＬＣ１を選択し、データメモリ１０１ａおよびパリティメモリ１０２ａに対してメモリ制御信号をラインＬＣ２ａおよびＬＣ３ａを通してそれぞれ出力し、データメモリ１０１ｂおよびパリティメモリ１０２ｂに対してメモリ制御信号をラインＬＣ２ｂおよびＬＣ３ｂを通してそれぞれ出力する。たとえば、書込に関わる制御信号（例：WE（Write Enable））は制御ボード２０よりラインＬＣ１を通して供給され、読み出しに関わる制御信号（例：RE（Read Enable））も制御ボード２０よりラインＬＣ１を通して供給される。さらに、メモリ制御信号生成部１０４は、設定保存ボード内でのセルフチェックと自己復旧を実施する際には自ら生成したデータメモリおよびパリティメモリ用の制御信号をそれぞれのラインを選択して出力する機能も持っている。
【００１９】
データバス制御終端部１０５は、制御ボード２０からの読み出し／書き込み指令を実行する際に、制御ボード２０側のデータバスＤ１とメモリ部１００ａおよび１００ｂ側のデータバスＤ２ａ、Ｄ２ｂとを接続する機能を有する。さらに、データバス制御終端部１０５は、パリティ演算部１０３ａ、１０３ｂからラインＲ１ａ、Ｒ１ｂを通してパリティ判定結果を常時モニタしており、一方のメモリ部から不一致のパリティ判定結果を受けると、パリティが一致したメモリ部から不一致のメモリ部へのデータ転写パスを設定する機能を有する。
【００２０】
また、データバス制御終端部１０５は、制御ボード２０からのデータ書き込み時には、バスＤ１をバスＤ２ａ、Ｄ２ｂの両方に接続してデータを転送し、制御ボード２０がデータを読み出す時には、ラインＲ１ａ、Ｒ１ｂのパリティ判定結果を参照し、バスＤ２ａ、Ｄ２ｂのうちパリティエラーの発生していない正常なバスを選択してバスＤ１に接続する。バスＤ２ａ、Ｄ２ｂの両方が正常であれば、デフォルトとしてバスＤ２ａのデータをバスＤ１に転送する。さらに、データバス制御終端部１０５は制御ボード２０とのバス調停機能も終端している。
【００２１】
アドレスバスセレクタ１０６は、制御ボード２０から設定保存ボード１０へ設定情報を書き込む時あるいは設定保存ボード１０から設定情報を読み出す時には、アドレスバスＡ０１を選択し、設定保存ボード内でのセルフチェックと自己復旧を実施する際にはアドレスバスＡ０２を選択する。選択されたアドレスバスのアドレスデータがアドレスバスＡ１１を通して、メモリ部１００ａのデータメモリ１０１ａおよびパリティメモリ１０２ａとメモリ部１００ｂのデータメモリ１０１ｂおよびパリティメモリ１０２ｂへ出力される。なお、アドレスバスセレクタ１０６のバス選択は制御部１１０により制御される。
【００２２】
インタフェース部１０７は制御ボード２０との間でデータや制御信号をやりとりするための回路であり、ボードの活線挿抜に対応するバッファ回路により構成される。
【００２３】
さらに、本実施例による設定保存ボード１０には、制御部１１０、アドレス生成部１１１およびカウンタ１１２が設けられている。カウンタ１１２には、後述するアドレス情報カウンタAD、継続異常チェックカウンタCNT(X)および継続正常チェックカウンタDCNT(X)が設けられ、制御部１１０により制御される。ここで(X)はＡ系統の(A）とＢ系統(B）とを意味する。
【００２４】
制御部１１０は、後述するように、発振器１１３の基準クロックに従って動作するタイマ１１４を用いて時間監視を行い、アドレス生成部１１１、アドレスバスセレクタ１０６、メモリ制御信号生成部１０４、データバス制御終端部１０５およびカウンタ１１２を制御することでセルフチェックおよび自己完結データ修正機能と故障判定機能を実現する。
【００２５】
アドレス生成部１１１は、アドレス情報カウンタADの値に従って、データメモリ１０１ａおよび１０１ｂで保存されている設定情報をセルフチェックするためのアドレスをアドレスバスＡ０２を通してアドレスバスセレクタ１０６へ出力する。
【００２６】
データバス制御終端部１０５は、ラインＣＰ１、ＣＰ２を通して制御ボード２０からのアクセス状態を認識する。すなわち、手順として、制御ボード２０のＣＰＵ２１が設定保存ボード１０にアクセスする場合、ラインＣＰ２を通じて設定保存ボード１０に対して利用意図を表明する信号を伝達し、設定保存ボード１０がラインＣＰ１を通して確認信号を伝達することで、ＣＰＵ２１は「アクセス中」を示す信号をラインＣＰ２を通じてデータバス制御終端部１０５へ伝達する。ＣＰＵ２１のバスアクセスが終了すると、ラインＣＰ２のアクセス状態信号が変化するので、それによりデータバス制御終端部１０５は「非アクセス中」であることを知ることができる。このように、データバス制御終端部１０５は、制御ボード２０が使用中であるか否かをラインＣＰ２のアクセス状態信号により判断することができる。
【００２７】
したがって、制御部１１０はデータバス制御終端部１０５からの通知によりＣＰＵが非アクセス中であることを知ることができ、アクセスしていない時間に、後述するように設定保存ボード内でのデータメモリのセルフチェックとチェック異常時の復旧を実行する。
【００２８】
なお、万が一、制御ボード２０が設定保存ボード１０にアクセスしたまま故障あるいは異常などにより停止してアクセス状態が「アクセス中」に固定されるような事態を回避するために、制御部１１０はタイマ１１４により時間監視をおこない、監視時間が経過したら強制的にデータバス制御終端部１０５およびアドレスバスセレクタ１０６を切り替える。
【００２９】
なお、上述したセルフチェックおよび自己完結データ修正機能と故障判定機能は、図示しないメモリに格納されたプログラムをＣＰＵ等のプログラム制御プロセッサ上で実行することにより実現することもできる。
【００３０】
３．セルフチェック制御
次に、図２〜図６を参照して設定保存ボード１０で実行されるセルフチェックおよび自己復旧の動作を説明する。
【００３１】
３．１）セルフチェック開始条件
図３において、まず、設定保存ボード１０の初期起動時に、全てのカウンタ類はリセットされるが、Ａ系統とＢ系統の２つの継続正常チェックカウンタDCNT(A)、DCNT(B)は２を初期値としてセットされる（ステップ２０１）。なお、Ａ系統、Ｂ系統をそれぞれ示す(A)、(B)は、以下まとめて(X)と表すものとする。
【００３２】
続いて、制御部１１０は、設定保存ボード１０のセルフチェック動作を開始するにあたり、まずＣＰＵがアクセス中であるか否かについて判定する（ステップ２０２）。ＣＰＵがアクセス中であるか否かについては、上述したようにデータバス制御終端部１０５がラインＣＰ２の信号レベルをモニタすることで知ることができる。ここでは、ＣＰＵ２１がアクセス中であることをラインＣＰ２の信号レベルがＨ（High）であることで検知するものとする。ＣＰＵ２１がアクセス中であれば（ステップ２０２：ＹＥＳ）、データバス制御終端部１０５はラインＣＰ１の利用要求信号（REQ）をＬ（Low）にし、制御部１１０はタイマ１１４のタイマ値Ｔwaitを０にリセットしてスタートさせる（ステップ２０３）。
【００３３】
続いて、制御部１１０はタイマ値Ｔwaitを監視して所定値Ｔmaxを超えたか否かを判定し（ステップ２０４）、タイマ値ＴwaitがＴmax以下であれば（ステップ２０４：ＹＥＳ）、タイマ値Ｔwaitをチェックし（ステップ２０５）、ＣＰＵアクセス中であれば（ステップ２０６：ＹＥＳ）、タイマ値ＴwaitがＴmaxを超えるまで待機する。そして、タイマ値ＴwaitがＴmaxを超えた時（ステップ２０４：ＮＯ）あるいはＣＰＵアクセスが終了したとき（ステップ２０６：ＮＯ）、データバス制御終端部１０５はラインＣＰ１の利用要求信号（REQ）をＨに戻し（ステップ２０７）、制御部１１０は設定保存ボード内でのセルフチェック動作をスタートする。また、ＣＰＵ２１のアクセスがなければ（ステップ２０２：ＮＯ）、ラインＣＰ１の利用要求信号（REQ）はＨであるから、制御部１１０はそのままセルフチェック動作をスタートする。
【００３４】
なお、タイマ値Ｔwaitが所定値Ｔmaxを超えると、強制的に制御ボード２０からの制御バスを設定保存ボード内に切り替えてセルフチェックを開始するのは、万一、制御ボード２０からのアクセス状態がアクセス中のままで制御ボード２０がHALT（停止）したり、故障したり、あるいは抜去されたりすると、そのまま設定保存ボード１０でセルフチェックが実行されなくなってしまう事態を回避するためである。なお、所定値Ｔmaxは、当該装置における制御ボード２０から連続して設定保存ボード１０にアクセスしうる最大時間や制御ボード２０のウォッチドッグタイマの時間などを考慮して決定する。
【００３５】
３．２）セルフチェック
図４において、設定保存ボード内のセルフチェックがスタートすると、制御部１１０は、まずＡ系統およびＢ系統のメモリのアドレスを参照するためのアドレス情報カウンタADと、パリティエラー数をカウントするERR（A）およびERR（B）とをクリアする（ステップ３０１）。アドレス生成部１１１は制御部１１０から指定されたアドレス情報カウンタADに応じたセルフチェック用アドレスを生成し、アドレスバスセレクタ１０６は制御部１１０の制御によりアドレスバスＡ０２を選択する。なお、エラーカウンタERR(A) およびERR（B）はデータバス制御終端部１０５に設けられているものとする。
【００３６】
これによって、アドレス生成部１１１により生成されたセルフチェック用アドレスがアドレスバスＡ１１を通してＡ系統およびＢ系統のデータメモリおよびパリティメモリへ与えられる。また、メモリ制御信号生成部１０４は、制御部１１０の制御により、Ａ系統およびＢ系統のデータメモリおよびパリティメモリに対して必要な読み出し信号(RE: Read Enable)などの制御信号を供給する。
【００３７】
こうして、Ａ系統のデータメモリ１０１ａから対応するデータがデータバスＤ２ａに読み出され、そのデータからパリティ演算部１０３ａがパリティビットを計算する。そして、パリティ演算部１０３ａはパリティメモリ１０２ａから対応するパリティビットを読み出し、計算したパリティビットと比較し、その比較結果をラインＲ１ａを通してデータバス制御終端部１０５に送る。Ｂ系統についてもＡ系統と同様に、データメモリ１０１ｂから対応するデータがデータバスＤ２ｂに読み出され、パリティ演算部１０３ｂがパリティビットを計算し、パリティメモリ１０２ｂから読み出された対応するパリティビットと比較し、その比較結果をラインＲ１ｂを通してデータバス制御終端部１０５に送る（ステップ３０２）。
【００３８】
データバス終端部１０５は、受信したＡ系統およびＢ系統のパリティ演算結果を比較して、ＡおよびＢの双方の系統でエラーが検出されたか否かを判定する（ステップ３０３）。Ａ系統のみでパリティ演算結果の不一致（パリティエラー）が発生した場合（ステップ３０３：ＮＯ、ステップ３０４：ＹＥＳ）、正しいデータが格納されているＢ系統からエラーが発生しているＡ系統へ当該データをコピーしてデータを修正し、エラーカウンタERR（A）に１を加算する（ステップ３０５）。
【００３９】
Ｂ系統からＡ系統へのデータコピーは以下のように行う。すなわち、その時点でのアドレス情報カウンタＡＤにより指定されるアドレスがアドレスパスセレクタ１０６により選択され、アドレスバスＡ１１に転送される。また、データメモリ１０１ｂ対しては、メモリ制御信号生成部１０４からラインＬＣ２ｂを通して読出の制御信号が出力され、データメモリ１０１ａに対しては書込の制御信号が出力される。したがって、データメモリ１０１ｂから参照されたデータがデータバスＤ２ｂに読み出され、データバス制御終端部１０５を通してデータバスＤ２ｂに転送され、データメモリ１０１ａに書き込まれる。Ｂ系統にてパリティ演算結果の不一致（パリティエラー）が発生した場合には（ステップ３０３：ＮＯ、ステップ３０４：ＮＯ、ステップ３０６：ＹＥＳ）、逆方向であるが同様の手順でＡ系統からＢ系統へのデータコピーが実行され、エラーカウンタERR(B)に１を加算する（ステップ３０７）。
【００４０】
エラーが検出されなかった場合（ステップ３０３：ＮＯ、ステップ３０４，３０６：ＮＯ）あるいは必要なコピー動作（ステップ３０５、３０７）が終了すると、制御部１１０はアドレス情報カウンタADの値をチェックする（ステップ３０８）。アドレスがデータメモリの最終アドレスまたは監視最終アドレス（このいずれかをAD(max)とする）と一致すれば（ステップ３０８：ＹＥＳ）、このセルフチェックは終了し次の処理（図５）へ進む。
【００４１】
一方、ADの値がAD（max）に至ってない場合は（ステップ３０８：ＮＯ）、ADのカウンタ値を１だけ加算し（ステップ３０９）、ＣＰＵからのアクセス要求がない限り（ステップ３１０：ＮＯ）、ステップ３０２へ戻って上記処理を繰り返す。すなわち、ADの値をインクリメントしながら参照されるアドレスのデータに対して、上述したセルフチェックおよび必要によりコピー動作（自己修復）をADがAD（max）となるまで実行する。
【００４２】
ＡおよびＢの双方の系統でエラーが検出された場合（ステップ３０３：ＹＥＳ）、制御部１１０は、当該アドレスのデータについて正確なデータが装置として既に存在しないので、設定保存ボード１０の異常と判断しセルフチェックを終了し、自ボードの故障状態をデータバス制御終端部１０５からラインＣＰ１を通じて制御ボード２０へ通知するとともに、自ボードに異常表示機能を搭載していれば異常表示（例：LED）をおこなう（ステップ３１１）。
【００４３】
なお、アドレス情報カウンタADの値を１加算した後、制御ボード２０のＣＰＵ２１からの処理要求(アクセス要求)が来ているかをチェックするが（ステップ３１０）、このタイミングまで制御ボード２０からの処理を割り込みなどで受け付けてないのは、このセルフチェックで回路動作している時間が制御ボード２０のＣＰＵ２１が設定保存ボード１０に対するアクセス待ちになっている時間に対して十分小さいと判断しているためである。ＣＰＵ２１からの処理要求は、既に述べたようにラインＣＰ２を通じてデータバス制御終端部１０５に対してアクセス状態とは別に通知する。要求により設定保存ボード１０のデータメモリに対するオペレーションを制御ボード２０側に移す場合には、ラインＣＰ１を通じてデータバス制御終端部１０５から許可状態を通知し、制御ボード２０側にアクセス可能であることを認知させる。この通知手段については、制御ボード２０のアクセス中状態などのようにレベル信号を通知してもよいし、制御ボード２０から設定保存ボード１０にシリアルバスなどの接続手段を介してもよい。制御ボード２０が処理中にはアクセス中状態時と同様タイマ値Twaitによる監視をおこなう。
【００４４】
３．３）エラーカウンタ判定
設定保存ボード２０に搭載しているメモリの監視対象アドレス範囲を一巡してセルフチェックおよび必要なコピー動作が完了すると（ステップ３０８：ＹＥＳ）、図５に示すように、パリティエラーのカウンタ結果に基づく処理をおこなう。
【００４５】
図５において、パリティエラーカウンタERR(X)は、ERR(A）、ERR(B）についてそれぞれ判定をおこなうことを意味する。したがって、これらのカウンタERR(A）およびERR(B）についての判定手順は同じであるから、ここではＡ系統のカウンタERR(A）を一例として説明する。
【００４６】
上記セルフチェック（図４）において、アドレス0からAD(max)までの一巡のチェックにおいてＡ系統でパリティエラーが発生したとする。この場合、パリティエラーカウンタERR（A）≠0であるから（ステップ４０１：ＮＯ）、制御部１１０は継続異常チェックカウンタCNT(A)の値を１だけインクリメントし、継続正常チェックカウンタDCNT(A)を初期値２にセットする（ステップ４０２）。そして、継続異常チェックカウンタCNT(A)が３に到達したか否か、すなわち今回のセルフチェックが３巡目であるか否かを判定し（ステップ４０３）、アドレス0からAD(max)までのチェックが３回エラー検出（ERR(A)≠0）した場合（ステップ４０３：ＹＥＳ）、Ａ系統のメモリに恒常的な異常が発生している判断して設定保存ボード１０を故障として扱う（ステップ３１１）。すなわち、上述したように一つのアドレスに対してＡ、Ｂの両系統でパリティエラーが発生したときと同様の処理を行う。
【００４７】
継続異常チェックカウンタCNT(A)を用いて３回エラーが発生したかどうかをチェックするのは、１巡目でソフトエラーによりパリティエラーが発生した場合、再書き込みにより二巡目には正常に参照できることがあるからである。また、１巡目と２巡目のチェックはそれほど時間を要しない動作であるから、仮に１巡目のパリティエラーと２巡目のパリティエラーのアドレスが異なるとしても３回もパリティ異常を検出するような場合は設定保存ボード１０の異常として処理すべきと判断する。なお、継続異常チェックカウンタCNT(X）の上限値（ここでは３）は通信装置の性能などに依存して要求により変えることもできる。
【００４８】
一方、アドレス0からAD（max）までのチェック一巡においてＡ系統でパリティエラーが検出されたが自己復旧した後、二巡目のチェックにおいてパリティエラーが検出されなかった場合（ステップ４０１：ＹＥＳ）、継続正常チェックカウンタDCNT(A)の値を１だけデクリメントする（ステップ４０４）。続いて、継続正常チェックカウンタDCNT(A)の値が0であるか否かが判定され（ステップ４０５）、DCNT(A)=0であれば（ステップ４０５：ＹＥＳ）、継続異常チェックカウンタCNT(A)が0にリセットされ（ステップ４０６）、図３におけるステップ２０２へ戻る。DCNT(A)が0でなければ（ステップ４０５：ＮＯ）、継続異常チェックカウンタCNT(A)の値はそのまま維持され、図３におけるステップ２０２へ戻る。
【００４９】
具体的には、１巡目でパリティエラーが検出されると、カウンタCNT(A)=1、DCNT(A)=2となるが（ステップ４０２）、２巡目でパリティエラーが検出されなければ、カウンタCNT(A)=1、DCNT(A)=1となり（ステップ４０４）、さらに３巡目でも検出されなければ、カウンタCNT(A)=0、DCNT(A)=0となる（ステップ４０５、４０６）。したがって、Ａ系統でパリティエラーがアドレス一巡ごとに有、無、有、無、有の場合は継続異常カウンタ満了（CNT(A)=3）で設定保存ボード１０が故障終了するが（ステップ３１１）、アドレス一巡ごとに有、有、無、無、有の場合は、ステップ４０６においてCNT(A)が0にクリアされるため、この段階では設定保存ボード１０の故障終了とはならない。
【００５０】
このように継続異常チェックカウンタCNT(X)と継続正常チェックカウンタDCNT(X)とを設け、継続異常チェックカウンタCNT(X)が所定回数に達すると故障終了するが、それまでに正常判定が複数回連続すると継続正常チェックカウンタDCNT(X)が0になり、継続異常チェックカウンタCNT(X)がリセットされて故障終了しない。したがって、ソフトエラーにより一時的にエラー検出された場合には、故障とは判断されず、設定保存ボード１０を維持できる。
【００５１】
３．４）ＣＰＵ割り込み
図４におけるセルフチェック動作中に制御ボード２０のＣＰＵ２１からの処理要求(アクセス要求)が発生すると（ステップ３１０：ＹＥＳ）、制御部１１０はタイマ値Ｔwaitを0にリセットし（ステップ５０１）、既に述べたようにタイマ値Ｔwaitを監視して所定値Ｔmaxを超えたか否かを判定し（ステップ５０２）、タイマ値ＴwaitがＴmax以下であれば（ステップ５０２：ＹＥＳ）、タイマ値Ｔwaitをチェックし（ステップ５０３）、ＣＰＵアクセスが継続していれば（ステップ５０４：ＹＥＳ）、タイマ値ＴwaitがＴmaxを超えるまで待機する。そして、タイマ値ＴwaitがＴmaxを超えた時（ステップ５０２：ＮＯ）あるいはＣＰＵアクセスが終了したとき（ステップ５０４：ＮＯ）、ステップ３０２へ戻る。
【００５２】
なお、タイマ値Ｔwaitに上限値Ｔmaxを設定するのは、既に述べたように、万一制御ボード２０からのアクセス状態がアクセス中のままで制御ボード２０がHALT（停止）したり、故障したり、あるいは抜去されたりすると、そのまま設定保存ボード１０でセルフチェックが実行されなくなってしまう事態を回避するためである。なお、所定値Ｔmaxは、当該装置における制御ボード２０から連続して設定保存ボード１０にアクセスしうる最大時間や制御ボード２０のウォッチドッグタイマの時間などを考慮して決定する。
【００５３】
４．効果
以上説明したように、本実施例によれば、設定保存ボード内でセルフチェックしているので、継続的な異常状態が速く検知することができる。さらに設定保存ボード内でチェック結果に基づいて自己復旧しているので、設定保存ボード内でソフトエラーやメモリの劣化のような一時的なビットエラーが発生しても故障として停止しないようにできる。さらに、一時的なデータエラー状態を自己復旧しているので、装置利用顧客の故障対応や装置製造会社や装置保守サービス会社での修理対応などのコストを低減できる。
【００５４】
特に、本実施例によれば、二重化メモリの双方で異常が検知された場合や異常が連続あるいは頻繁に検知された場合に、設定保存ボード自体を故障として認識することができ、迅速なボード交換や修理が可能となる。また、異常判定が所定回数発生するまで故障と判定されないので、ソフトエラーによる一時的なエラーと故障によるエラーとを区別することが可能となる。その際、故障判定されるまでに正常判定が所定回数だけ連続すると、異常判定回数をリセットすることで、一時的なエラーによる異常判定の累積を回避できる。
【００５５】
さらに本実施例によれば、ＣＰＵからのアクセス要求がない時にセルフチェックを実行することができ、セルフチェックを実行中であっても、ＣＰＵからのアクセスに対してバスを開放してアクセス要求に対応することができる。また、ＣＰＵバスアクセスが開始した後にＣＰＵ側の原因でアクセスが継続している場合には、設定保存ボード内のタイマ監視によりセルフチェックを強制的に実行することができる。
【００５６】
５．他の実施例
上記実施例におけるインタフェース部１０７は制御ボード２０のＣＰＵバスがそのまま延長されているような構成となっているが、制御ボード２０のインタフェース部との接続と情報の授受が必要な速度で実現されればよく、ＵＳＢ（Universal Serial Bus）のようなシリアルバスやEthernet（登録商標）のような通信経路として構成しても良い。制御ボード２０のＣＰＵ２１との調停に必要な制御線についても保守情報としてインタフェース部の間で定期的に授受するような方式も可能である。
【産業上の利用可能性】
【００５７】
本発明は、通信装置の設定情報を保存するメモリ盤、設定保存ボードなどに利用可能である。
【符号の説明】
【００５８】
１０  設定保存ボード
１１  メモリ部Ａ
１２  メモリ部Ｂ
１３  メモリ制御部
１４  セルフチェック部
１５  インタフェース部
２０  制御ボード
２１  ＣＰＵ
２２  インタフェース部
２３  制御部
１００ａ、１００ｂ  メモリ部
１０１ａ、１０１ｂ  データメモリ
１０２ａ、１０２ｂ  パリティメモリ
１０３ａ、１０３ｂ  パリティ演算部
１０４  メモリ制御信号生成部
１０５  データバス制御終端部
１０６  アドレスバスセレクタ
１１０  制御部
１１１  アドレス生成部
１１２  カウンタ
１１３  発振器
１１４  タイマ
【図１】
2011154593.tif 000003
【図２】
2011154593.tif 000004
【図３】
2011154593.tif 000005
【図４】
2011154593.tif 000006
【図５】
2011154593.tif 000007
【図６】
2011154593.tif 000008