(57)【要約】【課題】現用系のＣＰＵが異常になったときに、安全に現用系から待機系へ切り換えることができる、高い信頼性を保障する情報処理装置およびそのメモリ制御方法を提供する。【解決手段】本発明の情報処理装置は、現用系からの共用メモリへの書き込みを禁止または許可する現用系のアクセス制御装置と、待機系に通知する通知データを前記共用メモリに書き込むときのみ前記現用系のアクセス制御装置に該共用メモリへの書き込みを許可させ、前記通知データを前記共用メモリに書き込むと、該通知データを該共用メモリに書き込み済みであることを示す書き込み通知を待機系に通知する現用系のＣＰＵと、前記現用系のＣＰＵから前記書き込み通知が通知されると、前記通知データを前記共用メモリから読み出し、待機系のメモリに保存し、現用系から待機系に切り替わると、該待機系のメモリに保存された通知データを用いて処理を実行する待機系のＣＰＵを有する。【選択図】図１
2010231249.tif 000002
【特許請求の範囲】
【請求項１】
現用系および待機系からアクセス可能な第１の共用メモリと、
現用系からの前記第１の共用メモリへの書き込みを禁止または許可する現用系の第１のアクセス制御装置と、
待機系からのみアクセス可能な待機系のメモリと、
現用系からの要求に応じて待機系に割り込み信号を出力する待機系の割り込みコントローラと、
待機系からの要求に応じて現用系に割り込み信号を出力する現用系の割り込みコントローラと、
待機系に通知する通知データを前記第１の共用メモリに書き込むときのみ前記現用系の第１のアクセス制御装置に該第１の共用メモリへの書き込みを許可させ、前記通知データを前記第１の共用メモリに書き込むと、前記待機系の割り込みコントローラに割り込み信号を出力させることにより、該通知データを該第１の共用メモリに書き込み済みであることを示す書き込み通知を待機系に通知する現用系のＣＰＵと、
前記現用系のＣＰＵから前記書き込み通知が通知されると、前記通知データを前記第１の共用メモリから読み出し、該通知データを前記待機系のメモリに保存し、前記現用系の割り込みコントローラに割り込み信号を出力させることにより、該通知データを該第１の共用メモリから読み出し済みであることを示す読み出し通知を現用系に通知し、現用系から待機系に切り替わると、前記待機系のメモリに保存された通知データを用いて処理を実行する待機系のＣＰＵと、
を有する情報処理装置。
【請求項２】
現用系および待機系からアクセス可能であり、現用系から待機系に通知する通知データを格納する第１の共用メモリと、
現用系からの前記第１の共用メモリへの書き込みを禁止または許可する現用系の第１のアクセス制御装置と、
待機系からのみアクセス可能な待機系のメモリと、
現用系および待機系からアクセス可能であり、前記通知データを現用系から前記第１の共用メモリに書き込み済みであることを示す書き込み情報および前記通知データを待機系で前記第１の共用メモリから読み出し済みであることを示す読み出し情報を格納する第２の共用メモリと、
現用系からの前記第２の共用メモリへの書き込みを禁止または許可する現用系の第２のアクセス制御装置と、
待機系からの前記第２の共用メモリへの書き込みを禁止または許可する待機系の第２のアクセス制御装置と、
前記通知データを前記第１の共用メモリに書き込むときのみ前記現用系の第１のアクセス制御装置に該第１の共用メモリへの書き込みを許可させ、前記書き込み情報を前記第２の共用メモリに書き込むときのみ前記現用系の第２のアクセス制御装置に該第２の共用メモリへの書き込みを許可させ、前記通知データを前記第１の共用メモリに書き込むと、前記第２の共用メモリの前記書き込み情報を更新する現用系のＣＰＵと、
前記読み出し情報を前記第２の共用メモリに書き込むときのみ前記待機系の第２のアクセス制御装置に該第２の共用メモリへの書き込みを許可させ、前記現用系のＣＰＵから前記書き込み情報が前記第２の共用メモリに書き込まれると、前記通知データを前記第１の共用メモリから読み出し、該通知データを前記待機系のメモリに保存し、前記第２の共用メモリの前記読み出し情報を更新し、現用系から待機系に切り替わると、前記待機系のメモリに保存された通知データを用いて処理を実行する待機系のＣＰＵと、
を有する情報処理装置。
【請求項３】
外部の通信機器とデータを送受信する外部入出力装置と、
現用系または待機系のいずれで処理するかによって前記外部入出力装置の接続先を切り替える外部バス切り替え器と、をさらに有する請求項１または２記載の情報処理装置。
【請求項４】
現用系および待機系からアクセス可能な第１の共用メモリと、
現用系からの前記第１の共用メモリへの書き込みを禁止または許可する現用系の第１のアクセス制御装置と、
待機系からのみアクセス可能な待機系のメモリと、
現用系からの要求に応じて待機系に割り込み信号を出力する待機系の割り込みコントローラと、
待機系からの要求に応じて現用系に割り込み信号を出力する現用系の割り込みコントローラと、を有する情報処理装置のメモリ制御方法であって、
現用系のＣＰＵが、
待機系に通知する通知データを前記第１の共用メモリに書き込むときのみ前記現用系の第１のアクセス制御装置に該第１の共用メモリへの書き込みを許可させ、
前記通知データを前記第１の共用メモリに書き込むと、前記待機系の割り込みコントローラに割り込み信号を出力させることにより、該通知データを該第１の共用メモリに書き込み済みであることを示す書き込み通知を待機系に通知し、
待機系のＣＰＵが、
前記現用系のＣＰＵから前記書き込み通知が通知されると、前記通知データを前記第１の共用メモリから読み出し、該通知データを前記待機系のメモリに保存し、前記現用系の割り込みコントローラに割り込み信号を出力させることにより、該通知データを該第１の共用メモリから読み出し済みであることを示す読み出し通知を現用系に通知し、
現用系から待機系に切り替わると、前記待機系のメモリに保存された通知データを用いて処理を実行するメモリ制御方法。
【請求項５】
現用系および待機系からアクセス可能であり、現用系から待機系に通知する通知データを格納する第１の共用メモリと、
現用系からの前記第１の共用メモリへの書き込みを禁止または許可する現用系の第１のアクセス制御装置と、
待機系からのみアクセス可能な待機系のメモリと、
現用系および待機系からアクセス可能であり、前記通知データを現用系から前記第１の共用メモリに書き込み済みであることを示す書き込み情報および前記通知データを待機系で前記第１の共用メモリから読み出し済みであることを示す読み出し情報を格納する第２の共用メモリと、
現用系からの前記第２の共用メモリへの書き込みを禁止または許可する現用系の第２のアクセス制御装置と、
待機系からの前記第２の共用メモリへの書き込みを禁止または許可する待機系の第２のアクセス制御装置と、を有する情報処理装置のメモリ制御方法であって
現用系のＣＰＵが、
前記通知データを前記第１の共用メモリに書き込むときのみ前記現用系の第１のアクセス制御装置に該第１の共用メモリへの書き込みを許可させ、
前記書き込み情報を前記第２の共用メモリに書き込むときのみ前記現用系の第２のアクセス制御装置に該第２の共用メモリへの書き込みを許可させ、
前記通知データを前記第１の共用メモリに書き込むと、前記第２の共用メモリの前記書き込み情報を更新し、
待機系のＣＰＵが、
前記読み出し情報を前記第２の共用メモリに書き込むときのみ前記待機系の第２のアクセス制御装置に該第２の共用メモリへの書き込みを許可させ、
前記現用系のＣＰＵから前記書き込み情報が前記第２の共用メモリに書き込まれると、前記通知データを前記第１の共用メモリから読み出し、該通知データを前記待機系のメモリに保存し、前記第２の共用メモリの前記読み出し情報を更新し、
現用系から待機系に切り替わると、前記待機系のメモリに保存された通知データを用いて処理を実行するメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置およびそのメモリ制御方法に関する。
【背景技術】
【０００２】
近年の情報処理装置では、万一故障した場合であっても、運用を継続できるように冗長化構成を採用したものが増加してきている。冗長化構成には用途に応じてさまざまな種類があるが、一般的に、一瞬の停止も許されない環境で用いられる情報処理装置は、装置内に複数のＣＰＵを搭載し、現用系のＣＰＵが故障したとき待機系のＣＰＵに切り換えることにより信頼性の向上をはかっている。
【０００３】
冗長化構成を採用した背景技術の情報処理装置では、現用系と待機系の間で情報処理装置の動作を規定するための設定情報や処理中のデータの情報を共有していない。そのため、情報処理装置を現用系から待機系に切り替えた場合に、情報処理装置の動作が変わってしまう問題がある。また、情報処理装置を通信システムに用いる場合は、情報処理装置を現用系から待機系に切り替えたときに処理中の通信データが消失し、通信データの連続性を失ってしまう問題があった。
【０００４】
これらの問題を解決するため、特許文献１には、現用系のＣＰＵと待機系のＣＰＵとの間に共用メモリを備えた情報処理装置が記載されている。これにより、現用系のＣＰＵが一部のデータを共用メモリに蓄積し、待機系のＣＰＵが当該データを読み出せるため、情報処理装置は、データの連続性を保障することができる。
【０００５】
また、特許文献２には、待機系のＣＰＵが動作するときに誤って共用メモリのデータを破壊しないようにする方法が記載されている。
【特許文献１】特開昭６３−６１３３８号公報
【特許文献２】特開平８−１２９５０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述した特許文献１および特許文献２では、現用系のＣＰＵが暴走した場合に、共用メモリ内の不特定の領域に誤ったデータを書き込み、共用メモリ上のデータを破壊することがある。また、現用系のＣＰＵが共用メモリへデータ書き込み中に停止した場合に、共用メモリ上のデータが不連続になることもある。このような場合、情報処理装置は、現用系から待機系へ切り替わったときに壊れたデータにもとづいて動作するため、異常動作や動作停止などの重大な問題を引き起こすおそれがある。
【０００７】
本発明の目的は、現用系のＣＰＵに異常が発生したときに、安全に現用系から待機系へ切り換えることができる、高い信頼性を保障する情報処理装置およびそのメモリ制御方法を提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の情報処理装置は、現用系および待機系からアクセス可能な第１の共用メモリと、現用系からの前記第１の共用メモリへの書き込みを禁止または許可する現用系の第１のアクセス制御装置と、待機系からのみアクセス可能な待機系のメモリと、現用系からの要求に応じて待機系に割り込み信号を出力する待機系の割り込みコントローラと、待機系からの要求に応じて現用系に割り込み信号を出力する現用系の割り込みコントローラと、待機系に通知する通知データを前記第１の共用メモリに書き込むときのみ前記現用系の第１のアクセス制御装置に該第１の共用メモリへの書き込みを許可させ、前記通知データを前記第１の共用メモリに書き込むと、前記待機系の割り込みコントローラに割り込み信号を出力させることにより、該通知データを該第１の共用メモリに書き込み済みであることを示す書き込み通知を待機系に通知する現用系のＣＰＵと、前記現用系のＣＰＵから前記書き込み通知が通知されると、前記通知データを前記第１の共用メモリから読み出し、該通知データを前記待機系のメモリに保存し、前記現用系の割り込みコントローラに割り込み信号を出力させることにより、該通知データを該第１の共用メモリから読み出し済みであることを示す読み出し通知を現用系に通知し、現用系から待機系に切り替わると、前記待機系のメモリに保存された通知データを用いて処理を実行する待機系のＣＰＵを有する。
【発明の効果】
【０００９】
本発明によれば、情報処理装置の現用系のＣＰＵに異常が発生したときに、安全に現用系から待機系へ切り換えることができ、高い信頼性を保障できる。
【発明を実施するための最良の形態】
【００１０】
次に本発明について図面を参照して詳細に説明する。
【００１１】
本発明では、現用系のＣＰＵあるいは待機系のＣＰＵが共用メモリへ書き込みを実施しないとき、共用メモリへの書き込みを禁止する。さらに、待機系のＣＰＵは、現用系のＣＰＵから通知されたデータを現用系のＣＰＵがアクセスできない待機系のメモリに保存することにより、データの保全をはかる。
【００１２】
（第１の実施の形態）
次に本発明の第１の実施の形態について説明する。
【００１３】
図１は第１の実施の形態の情報処理装置の構成を示すブロック図である。
【００１４】
図１に示すように、第１の実施の形態の情報処理装置１は、現用系として、ＣＰＵ１０、メモリ１１、第１のアクセス制御装置１２および割り込みコントローラ１３を有し、待機系として、ＣＰＵ２０、メモリ２１、第１のアクセス制御装置２２および割り込みコントローラ２３を有し、共通部として、記録媒体３０、記録媒体インタフェース部３１および第１の共用メモリ３２を有する。
【００１５】
記録媒体３０には、情報処理装置１の所定の機能を提供するための現用系用のプログラムおよび待機系用のプログラムが記録される。なお、記録媒体３０は、磁気ディスク、半導体メモリ、光ディスクあるいはその他の記録媒体であってもよい。
【００１６】
記録媒体３０に記録された現用系用のプログラムは、現用系のＣＰＵ１０によって記憶媒体インタフェース装置３１を介して現用系のメモリ１１に読み込まれる。ＣＰＵ１０はメモリ１１に読み込んだプログラムにしたがって処理を実行する。
【００１７】
一方、記録媒体３０に記録された待機系用のプログラムは、待機系のＣＰＵ２０によって記憶媒体インタフェース装置３１を介して待機系のメモリ２１に読み込まれる。ＣＰＵ２０はメモリ２１に読み込んだプログラムにしたがって処理を実行する。
【００１８】
現用系のメモリ１１は、現用系用のプログラムおよび現用系のＣＰＵ１０が処理するデータを記憶するための記憶装置である。メモリ１１には、現用系のＣＰＵ１０のみがアクセス可能であり、待機系のＣＰＵ２０はアクセスできない。
【００１９】
一方、待機系のメモリ２１は、待機系用のプログラムおよび待機系のＣＰＵ２０が処理するデータを記憶するための記憶装置である。メモリ２１には、待機系のＣＰＵ２０のみがアクセス可能であり、現用系のＣＰＵ１０はアクセスできない。
【００２０】
第１の共用メモリ３２は、現用系と待機系の間の情報伝達のために用いられるメモリであり、ＣＰＵ１０およびＣＰＵ２０の両方からアクセス可能である。第１の共用メモリ３２として、例えばマルチポートを備えたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が用いられる。
【００２１】
現用系の第１のアクセス制御装置１２は、ＣＰＵ１０の第１の共用メモリ３２への書き込みを制限するための装置であり、例えば各種の論理回路からなるＬＳＩによって実現できる。第１のアクセス制御装置１２には、ＣＰＵ１０によって、ＣＰＵ１０から第１の共用メモリ３２への書き込みを許可するか禁止するかが設定される。第１のアクセス制御装置１２は、通常は第１の共用メモリ３２への書き込みを禁止するように設定されており、ＣＰＵ１０が第１の共用メモリ３２へ書き込みを実施するときのみ第１の共用メモリ３２への書き込みを許可するように設定される。第１の共用メモリ３２への書き込みが許可されると、ＣＰＵ１０が第１の共用メモリ３２にアクセスするとき、第１のアクセス制御装置１２は、第１の共用メモリ３２へＣＳ（チップセレクト）信号を出力する。逆に、第１の共用メモリ３２への書き込みが禁止されると、第１のアクセス制御装置１２は、ＣＳ信号をインアクティブに固定し、ＣＰＵ１０が誤って第１の共用メモリ３２にデータを書き込むことを防止する。
【００２２】
一方、待機系の第１のアクセス制御装置２２は、ＣＰＵ２０の第１の共用メモリ３２への書き込みを制限するための装置であり、その実現方法は、第１のアクセス制御装置１２と同様である。
【００２３】
待機系の割り込みコントローラ２３は、現用系のＣＰＵ１０からの要求に応じて待機系のＣＰＵ２０に割り込み信号を出力する装置である。現用系のＣＰＵ１０は、第１の共用メモリ３２へデータを書き込んだことを、割り込みコントローラ２３に待機系のＣＰＵ２０に割り込み信号を出力させることにより、待機系のＣＰＵ２０に通知する。
【００２４】
一方、現用系の割り込みコントローラ１３は、待機系のＣＰＵ２０からの要求に応じて現用系のＣＰＵ１０に割り込み信号を出力する装置である。待機系のＣＰＵ２０は、第１の共用メモリ３２からデータを読み出したことを、割り込みコントローラ１３に現用系のＣＰＵ１０に割り込み信号を出力させることにより、現用系のＣＰＵ１０に通知する。
【００２５】
現用系では、ＣＰＵ１０、記録媒体３１、メモリ１１、第１の共用メモリ３２、第１のアクセス制御装置１２および割り込みコントローラ１３が内部バス１４を介して接続される。
【００２６】
一方、待機系では、ＣＰＵ２０、記録媒体３１、メモリ２１、第１の共用メモリ３２、第１のアクセス制御装置２２および割り込みコントローラ２３が内部バス２４を介して接続される。
【００２７】
次に図１に示した現用系のＣＰＵ１０の第１の共用メモリ３２へのデータ書き込み処理手順について図２のフローチャートを参照して説明する。
【００２８】
ＣＰＵ１０はメモリ１１に保存された現用系用のプログラムにしたがって以下に記載する処理を実行する。
【００２９】
ＣＰＵ１０は、処理を開始すると（ステップＳ１）、まず、待機系のＣＰＵ２０に通知すべきデータ（以降、通知データと称する）が発生するまで待機する（ステップＳ２）。なお、通知データとしては、情報処理装置の動作を規定するための設定情報などがある。利用者によって情報処理装置の動作を規定するための設定情報が変更されると、情報処理装置１は、当該設定情報を現用系のＣＰＵ１０が参照できるように現用系のメモリ１１に保存する。さらに、情報処理装置１は、現用系のＣＰＵ１０で異常が発生し、待機系に切り替わる場合に備えて、当該設定情報を待機系のＣＰＵ２０も参照できるようにしておく。
【００３０】
通知データが発生すると、ＣＰＵ１０は、待機系のＣＰＵ２０が第１の共用メモリ３２からデータを読み出し中か否かを判別する（ステップＳ３）。なお、待機系のＣＰＵ２０が通知データを読み出し中にＣＰＵ１０が別の通知データを書き込むと、待機系のＣＰＵ２０が読み出し中の通知データは破壊されるおそれがある。このため、ＣＰＵ１０は、待機系のＣＰＵ２０が第１の共用メモリ３２から通知データを読み出し中の場合、完了するまで待機する。第１の実施の形態では、現用系のＣＰＵ１０は、通知データを第１の共用メモリ３２へ書き込み済みであること（以降、書き込み通知と称する）を、割り込みコントローラ２３に待機系のＣＰＵ２０に割り込み信号を出力させることにより、待機系のＣＰＵ２０に通知する。一方、待機系のＣＰＵ２０は、通知データを第１の共用メモリ３２から読み出し済みであること（以降、読み出し通知と称する）を、割り込みコントローラ１３に現用系のＣＰＵ１０に割り込み信号を出力させることにより、現用系のＣＰＵ１０に通知する。したがって、現用系のＣＰＵ１０は、書き込み通知を待機系のＣＰＵ２０に通知してから、読み出し通知が待機系のＣＰＵ２０から通知されるまでの間は、待機系のＣＰＵ２０が第１の共用メモリ３２からデータを読み出し中であると判別する。一方、それ以外の期間は、待機系のＣＰＵ２０が第１の共用メモリ３２からデータを読み出し中でないと判別する。
【００３１】
待機系のＣＰＵ２０が第１の共用メモリ３２から通知データを読み出し中でない場合、ＣＰＵ１０は、第１のアクセス制御装置１２に第１の共用メモリ３２へ書き込みを許可するように設定する（ステップＳ４）。続いて、ＣＰＵ１０は、通知データを第１の共用メモリ３２へ書き込む（ステップＳ５）。第１の共用メモリ３２へ通知データを書き込むと、ＣＰＵ１０は、第１のアクセス制御装置１２に第１の共用メモリ３２へ書き込みを禁止するように設定する（ステップＳ６）。
【００３２】
第１のアクセス制御装置１２に第１の共用メモリ３２へ書き込みを禁止するように設定すると、ＣＰＵ１０は、割り込みコントローラ２３に待機系のＣＰＵ２０に割り込み信号を出力させることにより、書き込み通知を待機系のＣＰＵ２０に通知する（ステップＳ７）。ＣＰＵ１０は、書き込み通知を待機系のＣＰＵ２０に通知すると、ステップＳ２へ移行し、再度待機系に通知するデータが発生するまで待機する。
【００３３】
次に図１に示した待機系のＣＰＵ２０の第１の共用メモリ３２からのデータ読み出し処理手順について図３のフローチャートを参照して説明する。
【００３４】
ＣＰＵ２０はメモリ２１に保存された待機系用のプログラムにしたがって以下に記載する処理を実行する。
【００３５】
ＣＰＵ２０は、処理を開始すると（ステップＳ１１）、まず、書き込み通知が現用系のＣＰＵ１０から通知されるまで待機する（ステップＳ１２）。なお、書き込み通知は、割り込みコントローラ２３から割り込み信号を受信することにより通知される。
【００３６】
書き込み通知が現用系のＣＰＵ１０から通知されると、ＣＰＵ２０は、通知データを第１の共用メモリ３２から読み出し、読み出した通知データをメモリ２１に保存する（ステップＳ１３）。なお、待機系のＣＰＵ２０が第１の共用メモリ３２へ書き込むことはないため、第１のアクセス制御装置２２は、常に第１の共用メモリ３２へ書き込みを禁止するように設定される。続いて、ＣＰＵ２０は、割り込みコントローラ１３に現用系のＣＰＵ１０に割り込み信号を出力させることにより、読み出し通知を現用系のＣＰＵ１０に通知する（ステップＳ１４）。
【００３７】
ＣＰＵ２０は、読み出し通知を現用系のＣＰＵ１０に通知すると、ステップＳ３２へ移行し、再度、書き込み通知が現用系のＣＰＵ１０から通知されるまで待機する。
【００３８】
第１の実施の形態の情報処理装置は、共用メモリへの書き込みを制限する。現用系のＣＰＵあるいは待機系のＣＰＵが共用メモリへデータを書き込んでいないとき、共用メモリへの書き込みは禁止されているので、運用中に共用メモリのデータが破壊される可能性は低くなる。
【００３９】
また、待機系のＣＰＵは、現用系のＣＰＵが通知データを共用メモリへ書き込み終わったタイミングで当該データを読み出し、読み出したデータを現用系からアクセスできない待機系のメモリに保存する。現用系から待機系に切り替わると、待機系のＣＰＵは、共用メモリに保存されたデータではなく、待機系のメモリに保存されたデータにしたがって動作する。また、現用系のＣＰＵが通知データを共用メモリへ書き込んでいるときに停止した場合、書き込み通知が待機系のＣＰＵに通知されず、待機系のＣＰＵは共用メモリからデータを読み出さない。このため、書き込み途中の不連続なデータが待機系で使用されるおそれがなくなる。
【００４０】
また、現用系のＣＰＵは共用メモリへの書き込みを禁止にしてから書き込み通知を待機系のＣＰＵに通知する。つまり、現用系のＣＰＵが暴走し、共用メモリの通知データが破壊された場合、書き込み通知が待機系のＣＰＵに通知されず、待機系のＣＰＵは共用メモリからデータを読み出さない。このため、破壊された通知データが待機系で使用されるおそれがなくなる。
【００４１】
これにより、第１の実施の形態の情報処理装置は、現用系のＣＰＵに異常が発生したときに、安全に現用系から待機系へ切り換えることができ、高い信頼性を保障できる。
【００４２】
（第２の実施の形態）
第２の実施の形態では、通信システムで用いられる情報処理装置について説明する。
【００４３】
図４は第２の実施の形態の情報処理装置の構成を示すブロック図である。
【００４４】
図４に示すように、第２の実施の形態の情報処理装置１は、現用系として、ＣＰＵ１０、メモリ１１、第１のアクセス制御装置１２および割り込みコントローラ１３を有し、待機系として、ＣＰＵ２０、メモリ２１、第１のアクセス制御装置２２および割り込みコントローラ２３を有し、共通部として、記録媒体３０、記録媒体インタフェース部３１、第１の共用メモリ３２、外部入出力装置３４および外部バス切り替え器３５を有する。
【００４５】
ＣＰＵ１０、メモリ１１、第１のアクセス制御装置１２、割り込みコントローラ１３、ＣＰＵ２０、メモリ２１、第１のアクセス制御装置２２、割り込みコントローラ２３、記録媒体３０、記録媒体インタフェース部３１、第１の共用メモリ３２の構成は第１の実施の形態と同一である。
【００４６】
外部入出力装置３４は、外部の通信機器とデータを送受信する機能をもつ、通信システムで用いられる周知の通信装置が備える装置である。外部入出力装置３４の例としては、ＬＡＮコントローラや無線ＬＡＮコントローラなどがある。
【００４７】
外部バス切り替え器３５は、現用系または待機系のいずれで処理するかによって外部入出力装置の接続先を切り替える装置であり、例えば各種の論理回路からなるＬＳＩによって実現できる。
【００４８】
外部入出力装置３４および外部切り替え器３５は、外部バス３６を介して接続される。
【００４９】
第１の実施の形態の情報処理装置では、情報処理装置の動作を規定するための設定情報を通知データとして用いる例を示した。第２の実施の形態の情報処理装置では、外部の通信機器から受信したデータを通知データとして用いる例を示す。
【００５０】
第２の実施の形態の情報処理装置は、外部の通信機器からデータを受信すると、受信したデータをメモリ１１に格納し、格納したデータに対して所定の処理を実施し、所定の処理を実施したデータを外部の通信機器に送信する。なお、所定の処理とは、情報処理装置の機能に応じて異なる処理であり、例えば、外部の通信機器から受信したデータを別の通信機器に送信するために、当該データに含まれるアドレス情報を書き換える処理などがある。
【００５１】
現用系のＣＰＵ１０は、外部の通信機器からデータを受信すると、受信したデータを、第１の共用メモリ３２を介して待機系のＣＰＵ２０に送信する。待機系のＣＰＵ２０は、現用系のＣＰＵ１０から受信したデータをメモリ２１に保存する。
【００５２】
また、現用系のＣＰＵ１０は、外部の通信機器から受信したデータに対して所定の処理を実施し、外部の通信機器に送信すると、当該データに対する処理の完了を、第１の共用メモリ３２を介して待機系のＣＰＵ２０に通知する。待機系のＣＰＵ２０は、現用系のＣＰＵ１０から処理の完了が通知されたデータをメモリ２１から消去する。
【００５３】
情報処理装置１は、現用系のＣＰＵ１０に異常が発生すると、現用系から待機系へ切り換える。情報処理装置１が待機系に切り替わると、待機系のＣＰＵ２０は、外部バス切り替え器３５を待機系へ切り替える。また、待機系のＣＰＵ２０は、メモリ２１に保存されているデータに対して所定の処理を実施し、所定の処理を実施したデータを外部の通信機器に送信する。
【００５４】
第２の実施の形態によれば、情報処理装置が通信システムに用いられる場合において、現用系のＣＰＵに異常が発生したときに、処理中のデータを消失することなく、通信データの連続性を保つことが可能になる。
【００５５】
（第３の実施の形態）
第１の実施の形態で示した情報処理装置は、現用系のＣＰＵが通知データを共用メモリへ書き込んだことを待機系のＣＰＵに通知するために割り込みコントローラを使用した。一方、情報処理装置が複数の共用メモリを有する場合は、共用メモリを使用して、現用系のＣＰＵが通知データを共用メモリへ書き込んだことを待機系のＣＰＵに通知してもよい。第３の実施の形態では、割り込みコントローラを使用せず、共用メモリを使用して現用系のＣＰＵが通知データを共用メモリへ書き込んだことを待機系のＣＰＵに通知する方法を説明する。
【００５６】
図５は第３の実施の形態の情報処理装置の構成を示すブロック図である。
【００５７】
図５に示すように、第３の実施の形態の情報処理装置１は、現用系として、ＣＰＵ１０、メモリ１１、第１のアクセス制御装置１２および第２のアクセス制御装置１５を有し、待機系として、ＣＰＵ２０、メモリ２１、第１のアクセス制御装置２２および第２のアクセス制御装置２５を有し、共通部として、記録媒体３０、記録媒体インタフェース部３１、第１の共用メモリ３２および第２の管理用共用メモリ３３を有する。
【００５８】
ＣＰＵ１０、メモリ１１、第１のアクセス制御装置１２、ＣＰＵ２０、メモリ２１、第１のアクセス制御装置２２、記録媒体３０、記録媒体インタフェース部３１および第１の共用メモリ３２の構成は第１の実施の形態と同一である。
【００５９】
第２の共用メモリ３３は、現用系のＣＰＵ１０が通知データを第１の共用メモリ３２へ書き込んだことを待機系のＣＰＵ２０に通知するために用いられるメモリである。第２の共用メモリ３３は、ＣＰＵ１０およびＣＰＵ２０の両方からアクセス可能である。第２の共用メモリ３３として、例えばマルチポートを備えたＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が用いられる。
【００６０】
現用系の第２のアクセス制御装置１５は、ＣＰＵ１０の第２の共用メモリ３３への書き込みを制限するための装置であり、その実現方法は、第１のアクセス制御装置１２と同様である。
【００６１】
一方、待機系の第２のアクセス制御装置２５は、ＣＰＵ２０の第２の共用メモリ３３への書き込みを制限するための装置であり、その実現方法は、第１のアクセス制御装置１２と同様である。
【００６２】
現用系では、ＣＰＵ１０、記録媒体３１、メモリ１１、第１の共用メモリ３２、第１のアクセス制御装置１２、第２の共用メモリ３３および第２のアクセス制御装置１５が内部バス１４を介して接続される。
【００６３】
一方、待機系では、ＣＰＵ２０、記録媒体３１、メモリ２１、第１の共用メモリ３２、第１のアクセス制御装置２２、第２の共用メモリ３３および第２のアクセス制御装置２５が内部バス２４を介して接続される。
【００６４】
次に図５に示した現用系のＣＰＵ１０の第１の共用メモリ３２へのデータ書き込み処理手順について図６のフローチャートを参照して説明する。
【００６５】
ＣＰＵ１０はメモリ１１に保存された現用系用のプログラムにしたがって以下に記載する処理を実行する。
【００６６】
ＣＰＵ１０は、処理を開始すると（ステップＳ２１）、まず、通知データが発生するまで待機する（ステップＳ２２）。
【００６７】
通知データが発生すると、ＣＰＵ１０は、待機系のＣＰＵ２０が第１の共用メモリ３２からデータを読み出し中か否かを判別する（ステップＳ２３）。なお、第３の実施の形態の情報処理装置１は、通知データが発生したことを現用系のＣＰＵ１０が待機系のＣＰＵ２０に通知するために、第２の共用メモリ３３に書き込み情報および読み出し情報を備える。書き込み情報および読み出し情報の例として、書き込みカウンタおよび読み出しカウンタがある。書き込みカウンタおよび読み出しカウンタは、情報処理装置の起動時は０に初期化されている。現用系のＣＰＵ１０は、第１の共用メモリ３２に通知データを書き込むと第２の共用メモリ３３の書き込みカウンタをカウントアップする。一方、待機系のＣＰＵ２０は、第１の共用メモリ３２から通知データを読み出すと第２の共用メモリ３３の読み出しカウンタをカウントアップする。待機系のＣＰＵ２０は、書き込みカウンタの値が読み出しカウンタの値より大きいと、読み出していない通知データが第１の共用メモリ３２に存在すると判別する。また、現用系のＣＰＵ１０は、書き込みカウンタの値が読み出しカウンタの値より大きいと、待機系のＣＰＵ２０が第１の共用メモリ３２から通知データを読み出し中であると判別する。
【００６８】
待機系のＣＰＵ２０が第１の共用メモリ３２から通知データを読み出し中でない場合、ＣＰＵ１０は、第１のアクセス制御装置１２に第１の共用メモリ３２へ書き込みを許可するように設定する（ステップＳ２４）。続いて、ＣＰＵ１０は、通知データを第１の共用メモリ３２へ書き込む（ステップＳ２５）。第１の共用メモリ３２へ通知データを書き込むと、ＣＰＵ１０は、第１のアクセス制御装置１２に第１の共用メモリ３２へ書き込みを禁止するように設定する（ステップＳ２６）。
【００６９】
次に、ＣＰＵ１０は、第２のアクセス制御装置１５に第２の共用メモリ３３へ書き込みを許可するように設定する（ステップＳ２７）。続いて、ＣＰＵ１０は、第２の共用メモリ３３の書き込みカウンタをカウントアップする（ステップＳ２８）。第２の共用メモリ３３の書き込みカウンタをカウントアップすると、ＣＰＵ１０は、第２のアクセス制御装置１５に第２の共用メモリ３３へ書き込みを禁止するように設定する（ステップＳ２９）。
【００７０】
ＣＰＵ１０は、第２のアクセス制御装置１５に第２の共用メモリ３３へ書き込みを禁止するように設定すると、ステップＳ２２へ移行し、再度、通知データが発生するまで待機する。
【００７１】
次に図５に示した待機系のＣＰＵ２０の第１の共用メモリ３２からのデータ読み出し処理手順について図７のフローチャートを参照して説明する。
【００７２】
ＣＰＵ２０はメモリ２１に保存された待機系用のプログラムにしたがって以下に記載する処理を実行する。
【００７３】
ＣＰＵ２０は、処理を開始すると（ステップＳ３１）、まず、現用系のＣＰＵ１０によって第１の共用メモリ３２に通知データが書き込まれるまで待機する（ステップＳ３２）。なお、現用系のＣＰＵ１０によって第１の共用メモリ３２に通知データが書き込まれたか否かは、第２の共用メモリ３３に格納されている書き込みカウンタの値と読み出しカウンタの値を比較することにより判別する。
【００７４】
現用系のＣＰＵ１０によって第１の共用メモリ３２に通知データが書き込まれると、ＣＰＵ２０は、通知データを第１の共用メモリ３２から読み出し、読み出したデータをメモリ２１に保存する（ステップＳ３３）。なお、待機系のＣＰＵ２０が第１の共用メモリ３２へ書き込むことはないため、第１のアクセス制御装置２２は、常に第１の共用メモリ３２へ書き込みを禁止するように設定される。
【００７５】
次に、ＣＰＵ２０は、第２のアクセス制御装置２５に第２の共用メモリ３３へ書き込みを許可するように設定する（ステップＳ３４）。続いて、ＣＰＵ２０は、第２の共用メモリ３３の読み出しカウンタをカウントアップする（ステップＳ３５）。第２の共用メモリ３３の読み出しカウンタをカウントアップすると、ＣＰＵ２０は、第２のアクセス制御装置２５に第２の共用メモリ３３へ書き込みを禁止するように設定する（ステップＳ３６）。
【００７６】
ＣＰＵ２０は、第２のアクセス制御装置２５に第２の共用メモリ３３へ書き込みを禁止するように設定すると、ステップＳ３２へ移行し、再度、現用系のＣＰＵ１０によって第１の共用メモリ３２に通知データが書き込まれるまで待機する。
【００７７】
第３の実施の形態の情報処理装置は、共用メモリへの書き込みを制限する。現用系のＣＰＵあるいは待機系のＣＰＵが共用メモリへデータを書き込んでいないとき、共用メモリへの書き込みは禁止されているので、運用中に共用メモリのデータが破壊される可能性は低くなる。
【００７８】
また、待機系のＣＰＵは、現用系のＣＰＵが通知データを共用メモリへ書き込み終わったタイミングで当該データを読み出し、読み出したデータを現用系からアクセスできない待機系のメモリに保存する。現用系から待機系に切り替わると、待機系のＣＰＵは、共用メモリに保存されたデータではなく、待機系のメモリに保存されたデータにしたがって動作する。現用系のＣＰＵが通知データを共用メモリへ書き込んでいるときに停止した場合、第２の共用メモリの書き込み情報が更新されず、待機系のＣＰＵは共用メモリからデータを読み出さない。このため、書き込み途中の不連続なデータが待機系で使用されるおそれがなくなる。
【００７９】
また、現用系のＣＰＵは共用メモリへの書き込みを禁止にしてから、第２の共用メモリの書き込み情報を更新し、通知データを共用メモリへ書き込んだことを待機系のＣＰＵに通知する。つまり、現用系のＣＰＵが暴走し、共用メモリの通知データが破壊された場合、第２の共用メモリの書き込み情報が更新されず、待機系のＣＰＵは共用メモリからデータを読み出さない。このため、破壊された通知データが待機系で使用されるおそれがなくなる。
【００８０】
つまり、第３の実施の形態によれば、第１の実施の形態に示した割り込みコントローラを使用せずに、第１の実施の形態の情報処理装置と同様の効果を得ることが可能になる。第３の実施の形態の情報処理装置は、現用系のＣＰＵに異常が発生したときに、安全に現用系から待機系へ切り換えることができ、高い信頼性を保障できる。
【００８１】
（第４の実施の形態）
第４の実施の形態では、通信システムで用いられる情報処理装置について説明する。
【００８２】
図８は第４の実施の形態の情報処理装置の構成を示すブロック図である。
【００８３】
図８に示すように、第４の実施の形態の情報処理装置１は、現用系として、ＣＰＵ１０、メモリ１１、第１のアクセス制御装置１２および第２のアクセス制御装置１５を有し、待機系として、ＣＰＵ２０、メモリ２１、第１のアクセス制御装置２２および第２のアクセス制御装置２５を有し、共通部として、記録媒体３０、記録媒体インタフェース部３１、第１の共用メモリ３２、第２の管理用共用メモリ３３、外部入出力装置３４および外部バス切り替え器３５を有する。
【００８４】
ＣＰＵ１０、メモリ１１、第１のアクセス制御装置１２、第２のアクセス制御装置１５、ＣＰＵ２０、メモリ２１、第１のアクセス制御装置２２、第２のアクセス制御装置２５、記録媒体３０、記録媒体インタフェース部３１、第１の共用メモリ３２および第２の共用メモリ３２の構成は第３の実施の形態と同一である。
【００８５】
また、外部入出力装置３４および外部バス切り替え器３５の構成は第２の実施の形態と同一である。
【００８６】
本構成を採ることにより、第４の実施の形態の情報処理装置は、第２の実施の形態に示した割り込みコントローラを使用せずに、第２の実施の形態の情報処理装置と同様の効果を得ることが可能になる。つまり、第４の実施の形態の情報処理装置は、情報処理装置が通信システムに用いられる場合において、現用系のＣＰＵに異常が発生したときに、処理中のデータを消失することなく、通信データの連続性を保つことが可能になる。
【図面の簡単な説明】
【００８７】
【図１】第１の実施の形態の情報処理装置の構成を示すブロック図である。
【図２】図１に示した現用系のＣＰＵの共用メモリへのデータ書き込み処理手順を示すフローチャートである。
【図３】図１に示した待機系のＣＰＵの共用メモリからのデータ読み出し処理手順を示すフローチャートである。
【図４】第２の実施の形態の情報処理装置の構成を示すブロック図である。
【図５】第３の実施の形態の情報処理装置の構成を示すブロック図である。
【図６】図５に示した現用系のＣＰＵの共用メモリへのデータ書き込み処理手順を示すフローチャートである。
【図７】図５に示した待機系のＣＰＵの共用メモリからのデータ読み出し処理手順を示すフローチャートである。
【図８】第４の実施の形態の情報処理装置の構成を示すブロック図である。
【符号の説明】
【００８８】
１  情報処理装置
１０、２０  ＣＰＵ
１１、２１  メモリ
１２、２２  第１のアクセス制御装置
１３、２３  割り込みコントローラ
１４、２４  内部バス
１５、２５  第２のアクセス制御装置
３０  記録媒体
３１  記録媒体インタフェース部
３２  第１の共用メモリ
３３  第２の共用メモリ
３４  外部入出力装置
３５  外部バス切り替え器
３６  外部バス
【図１】
2010231249.tif 000003
【図２】
2010231249.tif 000004
【図３】
2010231249.tif 000005
【図４】
2010231249.tif 000006
【図５】
2010231249.tif 000007
【図６】
2010231249.tif 000008
【図７】
2010231249.tif 000009
【図８】
2010231249.tif 000010