(57)【特許請求の範囲】
【請求項１】
通信インターフェイス部と、メモリと、該メモリおよび前記通信インターフェイス部に接続されたマイクロプロセッサとを備え、パケットの送受信を行う情報処理装置であって、
前記マイクロプロセッサは、
アプリケーションプログラムの実行中に前記メモリにエラーが発生したとき、前記エラーが発生したメモリ領域の使用用途が、送信した前記パケットの数をカウントしている送信カウンタ、受信した前記パケットの数をカウントしている受信カウンタ、および通信ログの何れかであるかを判定し、
前記エラーが発生したメモリ領域が前記送信カウンタ、前記受信カウンタ、前記通信ログの何れかであれば、前記エラーが発生したメモリアドレスのメモリ領域を初期化して前記アプリケーションプログラムの実行を再開し、
前記エラーが発生したメモリ領域が前記送信カウンタ、前記受信カウンタ、前記通信ログの何れか以外であれば、情報処理装置の再起動を行う
ようにプログラムされていることを特徴とする情報処理装置。
【請求項２】
前記マイクロプロセッサは、さらに、
前記エラーが発生したメモリアドレスのメモリ領域に対してＲＡＷテストを行って前記エラーが間欠障害か否かを判定する
ようにプログラムされていることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ＲＡＷテストは１回以上実施し、最後のＲＡＷテストでは、前記初期化と同じ値を前記エラーが発生したメモリアドレスのメモリ領域に書き込むことにより、ＲＡＷテストと前記初期化とを同時に実施する
ようにプログラムされていることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記マイクロプロセッサは、さらに、
起動時に、前記メモリの使用用途を表すマップデータを作成し、
前記判定では、前記マップデータを参照して前記エラーが発生したメモリアドレスのメモリ領域の使用用途を確認する
ようにプログラムされていることを特徴とする請求項１乃至３の何れかに記載の情報処理装置。
【請求項５】
前記エラーは、パリティエラーである
ことを特徴とする請求項１乃至４の何れかに記載の情報処理装置。
【請求項６】
通信インターフェイス部と、メモリと、該メモリおよび前記通信インターフェイス部に接続されたマイクロプロセッサとを備え、パケットの送受信を行う情報処理装置が実行するメモリ障害復旧方法であって、
前記マイクロプロセッサが、
アプリケーションプログラムの実行中に前記メモリにエラーが発生したとき、前記エラーが発生したメモリ領域の使用用途が、送信した前記パケットの数をカウントしている送信カウンタ、受信した前記パケットの数をカウントしている受信カウンタ、および通信ログの何れかであるかを判定し、
前記エラーが発生したメモリ領域が前記送信カウンタ、前記受信カウンタ、前記通信ログの何れかであれば、前記エラーが発生したメモリアドレスのメモリ領域を初期化して前記アプリケーションプログラムの実行を再開し、
前記エラーが発生したメモリ領域が前記送信カウンタ、前記受信カウンタ、前記通信ログの何れか以外であれば、情報処理装置の再起動を行う
ことを特徴とするメモリ障害復旧方法。
【請求項７】
通信インターフェイス部と、メモリと、該メモリおよび前記通信インターフェイス部に接続されたマイクロプロセッサとを備え、パケットの送受信を行うコンピュータに、
アプリケーションプログラムの実行中にメモリにエラーが発生したとき、前記エラーが発生したメモリ領域の使用用途が、送信した前記パケットの数をカウントしている送信カウンタ、受信した前記パケットの数をカウントしている受信カウンタ、および通信ログの何れかであるかを判定するステップと、
前記エラーが発生したメモリ領域が前記送信カウンタ、前記受信カウンタ、前記通信ログの何れかであれば、前記エラーが発生したメモリアドレスのメモリ領域を初期化して前記アプリケーションプログラムの実行を再開するステップと、
前記エラーが発生したメモリ領域が前記送信カウンタ、前記受信カウンタ、前記通信ログの何れか以外であれば、情報処理装置の再起動を行うステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置に関し、特にソフトエラーが原因でメモリに発生したパリティエラーを自動的に解除する機能を有する情報処理装置に関する。
【背景技術】
【０００２】
一般に情報処理装置では、電源投入時および再起動時に、その情報処理装置を構成するＣＰＵ等のマイクロプロセッサ、ＲＯＭ、ＲＡＭ、Ｉ／Ｏポート等の自己診断を実施し、この自己診断により正常と判断できた場合に、アプリケーションプログラムを起動して、通常の業務処理を行っている。この自己診断では、例えばＲＯＭのチェックサム検定、ＲＡＭのパリティエラーチェックなどが実施される。
【０００３】
また、自己診断におけるＲＡＭのパリティエラーチェックにおいて、パリティエラーを検出した場合には、ＲＡＭ全体あるいはパリティエラーの発生した一部のＲＡＭに対して初期値（例えば数値０）を書き込むことで初期化を行う。若し、ソフトエラーが原因でパリティエラーが発生していた場合、上記の初期化によってパリティエラーが解消する。その後、他の診断でも正常と判定されると、前述したようにアプリケーションプログラムが起動され、通常の業務処理が開始される。このような電源投入時および再起動時に発生したパリティエラーを自動的に解除する仕組みについて記載した文献として、例えば特許文献１がある。
【０００４】
他方、アプリケーションプログラムによる通常の業務処理が行われている最中にメモリにパリティエラーが発生した場合、装置を再起動する方法が一般的に採用されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−２５０８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年のメモリの高集積化に伴いソフトエラーの影響が大きくなっている。このため、メモリにソフトエラーが発生する度に情報処理装置を再起動すると、平均故障間隔（ＭＴＢＦ）が極端に短くなってしまう。
【０００７】
本発明の目的は、上述したような課題、すなわち、メモリにエラーが発生する度に装置の再起動を行うと平均故障間隔が短くなってしまう、という課題を解決する情報処理装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一形態にかかる情報処理装置は、
メモリと、該メモリに接続されたマイクロプロセッサとを備え、
前記マイクロプロセッサは、
アプリケーションプログラムの実行中に前記メモリにエラーが発生したとき、前記エラーが発生したメモリ領域の使用用途が予め定められた使用用途か否かを判定し、
前記エラーが発生したメモリ領域が前記予め定められた使用用途であれば、前記エラーが発生したメモリアドレスを初期化して前記アプリケーションプログラムの実行を継続する
ようにプログラムされている、という構成を採る。
【発明の効果】
【０００９】
本発明は上述したような構成を有するため、メモリにエラーが発生しても、その発生したメモリ領域が装置の運用に支障が無いとして予め定められた使用用途であれば、エラーの発生したメモリアドレスを初期化してアプリケーションプログラムの実行を継続するため、装置の平均故障間隔を延ばすことが可能になる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態のブロック図である。
【図２】本発明の第１の実施形態にかかる情報処理装置の電源投入時または再起動時に行われる処理の一例を示すフローチャートである。
【図３】本発明の第１の実施形態で使用するマップデータの構成例である。
【図４】本発明の第１の実施形態において通常の業務処理の実行中にパリティエラーが発生した際の情報処理装置の処理の一例を示すフローチャートである。
【図５】本発明の第２の実施形態において通常の業務処理の実行中にパリティエラーが発生した際の情報処理装置の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第１の実施形態]
図１を参照すると、本発明の第１の実施形態にかかる情報処理装置１は、マイクロプロセッサ２と、そのバス３に接続されたＲＯＭ４、ＲＡＭ５、通信インターフェース部６、操作入力部７、および画面表示部８とから構成されている。
【００１２】
マイクロプロセッサ２は、ＣＰＵ等で構成され、情報処理装置１全体の制御を司る。バス３は、アドレスバス、データバス、コントロール線などで構成される。ＲＯＭ４は、マイクロプロセッサが実行するアプリケーションプログラムおよび変化しない定数などを記憶する。
【００１３】
ＲＡＭ５は、マイクロプロセッサ２が処理する各種のデータを記憶する。このＲＡＭ５には、パリティチェックビットが、このＲＡＭの番地毎のビット長（例えば８ビット、１６ビット、３２ビット等）に対して１ビット形成されている。各番地のパリティチェックビットは、その番地へデータが書き込まれる際に、書き込まれるデータにより算出されてその番地に書き込まれる。また各番地のパリティチェックビットは、その番地の読み取り時に検査され、そのパリティチェックビットを含めたビットデータの合計が奇数または偶数のうち予め定められた側以外であれば、その番地のデータが破壊されているとして、マイクロプロセッサ２に、エラーアドレスを添えてパリティエラー割り込みを発生する。
【００１４】
通信インターフェース部（以下、通信Ｉ／Ｆ部と称す）６は、専用のデータ通信回路からなり、通信回線（図示せず）を介して接続された図示しない各種装置との間でデータ通信を行う機能を有している。操作入力部７は、キーボードやマウスなどの操作入力装置からなり、オペレータの操作を検出してマイクロプロセッサ２に出力する機能を有している。画面表示部８は、ＬＣＤやＰＤＰなどの画面表示装置からなり、マイクロプロセッサ２からの指示に応じて、エラーメッセージなどの各種情報を画面表示する機能を有している。
【００１５】
図２は、情報処理装置１の電源投入時または再起動時に行われる処理の一例を示すフローチャートである。マイクロプロセッサ２は、電源が投入されるか、あるいは再起動されると、初期化処理を実行する（ステップＳ１）。この初期化処理では、ＲＯＭ４やＲＡＭ５等の自己診断、ＲＡＭ５の各エリアの初期化、ＲＯＭ４に記憶されたプログラムや定数などのＲＡＭ５への複写などが実施される。また、本発明に関連する処理として、マップデータの作成処理Ｓ２が実施される。
【００１６】
マップデータの作成処理Ｓ２では、メモリの使用用途を表すマップデータ９を作成する。図３は、作成されたマップデータ９の構成例である。この例のマップデータ９は、メモリのアドレス範囲に対応して、そのアドレス範囲のメモリ領域の使用用途を記憶している。例えば１行目は、アドレス0x0070〜0x0100は、統計領域であることを示す。また、２行目は、アドレス0x00E0〜0x0FFFは、ログ領域であることを示す。また、３行目は、アドレス0x0070〜0x0100、0x00E0〜0x0FFF以外のアドレスは、統計領域およびログ領域以外の領域であることを示している。ここで、統計領域とは、例えば情報処理装置１がパケットの送受信を行う通信装置である場合に、送信したパケットの数をカウントしている送信カウンタ、受信したパケットの数をカウントしている受信カウンタなどの統計情報を記憶する領域のことである。また、ログ領域とは、通信ログなどの各種のログを記憶する領域のことである。これらの統計情報とログ領域とは、その領域内のデータが破壊されたとしても情報処理装置１の通常の業務に支障の無い領域である。
【００１７】
図３に示すマップデータ９は、データが破壊されたとしても通常の業務に支障の無い領域に関してのみ、その使用用途を記述している。しかし、本発明はそのようなマップデータに限定されず、例えばプログラム領域など、その領域のデータが破壊された場合には通常の業務に支障が生じる領域についても、そのアドレス範囲と使用用途とを記述したマップデータを作成しておいてもよい。
【００１８】
上記の初期化処理Ｓ１の実行において、正常と判断されると、アプリケーションプログラムが起動され、通常の業務処理が実行される（ステップＳ３、Ｓ４）。他方、異常と判断されると、アプリケーションプログラムは起動されず、装置は停止する（ステップＳ５）。
【００１９】
図４は、通常の業務処理の実行中にＲＡＭ５においてパリティエラーが発生した際の情報処理装置１の処理の一例を示すフローチャートである。マイクロプロセッサ２は、パリティエラーの検出による割り込みが発生すると（ステップＳ１１）、まず、実行中のアプリケーションプログラムの情報（プログラムカウンタやスタックポインタ等）を退避させる（ステップＳ１２）。
【００２０】
次に、割り込みで通知されたパリティエラー発生アドレスの番地に対して、ＲＡＷ（リード・アフター・ライト）テストを行う（ステップＳ１３）。すなわち、該当する番地に対して、所定のデータを書き込んだ後、読み出して、読み出したデータと所定のデータとを比較する。例えば、データの全ビットが値１のデータを書き込んだ後、読み出し、読み出したデータの全ビットが値１か否かを判定する第１回目のＲＡＷテストと、データの全ビットが値０のデータを書き込んだ後、読み出し、読み出したデータの全ビットが値０か否かを判定する第２回目のＲＡＷテストとを実施する。若し、パリティエラーがソフトエラーによる一時的なものであれば、読み出したデータと所定のデータとが一致するため、ＲＡＷテストに成功する。他方、ハードウェアの故障に起因する固定障害であれば、読み出したデータと所定のデータとが一致しないため、ＲＡＷテストに失敗する。マイクロプロセッサ２は、ＲＡＷテストの結果に基づいて、パリティエラーの原因がソフトエラーか否かを判定する（ステップＳ１４）。そして、ソフトエラーでなく、固定障害であれば、画面表示部８に、固定障害が発生している部位の情報を添えて故障部品の交換を促すエラーメッセージを表示し（ステップＳ１５）、図４の処理を終える。
【００２１】
他方、パリティエラーの原因がソフトエラーであれば、マイクロプロセッサ２は、図３のマップデータをエラーアドレスで引いて使用用途を取得し（ステップＳ１６）、パリティエラーが発生した番地のメモリ領域の使用用途が、予め定められた使用用途か否かを判定する（ステップＳ１７）。ここで、予め定められた使用用途は、データが破壊されていても通常の業務処理に支障のない使用用途のことであり、具体的には、本実施形態の場合、統計領域およびログ領域を指す。
【００２２】
マイクロプロセッサ２は、パリティエラーの発生した番地のメモリ領域の使用用途が、統計領域およびログ領域以外であれば、情報処理装置１を再起動する（ステップＳ１８）。しかし、パリティエラーの発生した番地のメモリ領域の使用用途が、統計領域およびログ領域であれば、マイクロプロセッサ２は、その番地のメモリ領域を再度、初期化する（ステップＳ１９）。具体的には、その番地に値０を書き込む。そして、退避していたアプリケーションプログラムの情報を復元し、再実行を行う（ステップＳ２０）。これにより、通常の業務が継続される。
【００２３】
このように本実施形態によれば、ＲＡＭ５にパリティエラーが発生しても、その発生したメモリ領域が装置の運用に支障が無いとして予め定められた使用用途であれば、パリティエラーの発生した番地のメモリ領域を初期化してアプリケーションプログラムの実行を継続するため、装置の平均故障間隔を延ばすことが可能になる。
【００２４】
また、本実施形態によれば、パリティエラーが発生した番地に対してＲＡＷテストを実施し、パリティエラーの原因がソフトエラーか否かを判定し、ソフトエラーであると判定した場合に限り、その番地の使用用途の確認、所定の使用用途である場合のメモリ領域の初期化とアプリケーションプログラムの再実行とを行う。このため、固定障害であるのにもかかわらず、初期化してアプリケーションプログラムを再実行してしまい、障害が多重に発生してしまう危険性を回避することができる。
【００２５】
また、マップデータを起動毎に作成しているため、メモリ領域の使用領域を動的に割り当てる場合にも対応できる利点がある。但し、本発明はマップデータを起動毎に生成する場合に限定されず、ＲＯＭに固定的に保持するようにしても良い。
【００２６】
以上、本発明の実施形態について説明したが、本発明は以上の実施形態にのみ限定されず、その他各種の付加変更が可能である。例えば、図５のフローチャートのステップＳ１３’に示すように、ＲＡＷテストを１回以上実施し、最後のＲＡＷテストにおいて、初期化と同じ値である全ビット０のデータを書き込むようにしても良い。この実施形態によれば、ステップＳ１９のエラー発生アドレスのメモリ領域の初期化処理は、既に目的を達成しているために省略することができる。
【符号の説明】
【００２７】
１…情報処理装置
２…マイクロプロセッサ２
３…バス
４…ＲＯＭ
５…ＲＡＭ
６…通信Ｉ／Ｆ部
７…操作入力部
８…画面表示部
【図１】
0005645262.tif 000002
【図２】
0005645262.tif 000003
【図３】
0005645262.tif 000004
【図４】
0005645262.tif 000005
【図５】
0005645262.tif 000006