説明

情報処理装置

【課題】メモリにエラーが発生する度に装置の再起動を行うと平均故障間隔が短くなってしまうこと。
【解決手段】情報処理装置1は、メモリと、このメモリに接続されたマイクロプロセッサとを備える。マイクロプロセッサは、アプリケーションプログラムの実行中に上記メモリにエラーが発生したとき、上記エラーが発生したメモリ領域の使用用途が予め定められた使用用途か否かを判定し、上記エラーが発生したメモリ領域が上記予め定められた使用用途であれば、上記エラーが発生したメモリアドレスのメモリ領域を初期化して上記アプリケーションプログラムの実行を再開する、ようにプログラムされている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理装置に関し、特にソフトエラーが原因でメモリに発生したパリティエラーを自動的に解除する機能を有する情報処理装置に関する。
【背景技術】
【0002】
一般に情報処理装置では、電源投入時および再起動時に、その情報処理装置を構成するCPU等のマイクロプロセッサ、ROM、RAM、I/Oポート等の自己診断を実施し、この自己診断により正常と判断できた場合に、アプリケーションプログラムを起動して、通常の業務処理を行っている。この自己診断では、例えばROMのチェックサム検定、RAMのパリティエラーチェックなどが実施される。
【0003】
また、自己診断におけるRAMのパリティエラーチェックにおいて、パリティエラーを検出した場合には、RAM全体あるいはパリティエラーの発生した一部のRAMに対して初期値(例えば数値0)を書き込むことで初期化を行う。若し、ソフトエラーが原因でパリティエラーが発生していた場合、上記の初期化によってパリティエラーが解消する。その後、他の診断でも正常と判定されると、前述したようにアプリケーションプログラムが起動され、通常の業務処理が開始される。このような電源投入時および再起動時に発生したパリティエラーを自動的に解除する仕組みについて記載した文献として、例えば特許文献1がある。
【0004】
他方、アプリケーションプログラムによる通常の業務処理が行われている最中にメモリにパリティエラーが発生した場合、装置を再起動する方法が一般的に採用されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平6−250866号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
近年のメモリの高集積化に伴いソフトエラーの影響が大きくなっている。このため、メモリにソフトエラーが発生する度に情報処理装置を再起動すると、平均故障間隔(MTBF)が極端に短くなってしまう。
【0007】
本発明の目的は、上述したような課題、すなわち、メモリにエラーが発生する度に装置の再起動を行うと平均故障間隔が短くなってしまう、という課題を解決する情報処理装置を提供することにある。
【課題を解決するための手段】
【0008】
本発明の一形態にかかる情報処理装置は、
メモリと、該メモリに接続されたマイクロプロセッサとを備え、
前記マイクロプロセッサは、
アプリケーションプログラムの実行中に前記メモリにエラーが発生したとき、前記エラーが発生したメモリ領域の使用用途が予め定められた使用用途か否かを判定し、
前記エラーが発生したメモリ領域が前記予め定められた使用用途であれば、前記エラーが発生したメモリアドレスを初期化して前記アプリケーションプログラムの実行を継続する
ようにプログラムされている、という構成を採る。
【発明の効果】
【0009】
本発明は上述したような構成を有するため、メモリにエラーが発生しても、その発生したメモリ領域が装置の運用に支障が無いとして予め定められた使用用途であれば、エラーの発生したメモリアドレスを初期化してアプリケーションプログラムの実行を継続するため、装置の平均故障間隔を延ばすことが可能になる。
【図面の簡単な説明】
【0010】
【図1】本発明の第1の実施形態のブロック図である。
【図2】本発明の第1の実施形態にかかる情報処理装置の電源投入時または再起動時に行われる処理の一例を示すフローチャートである。
【図3】本発明の第1の実施形態で使用するマップデータの構成例である。
【図4】本発明の第1の実施形態において通常の業務処理の実行中にパリティエラーが発生した際の情報処理装置の処理の一例を示すフローチャートである。
【図5】本発明の第2の実施形態において通常の業務処理の実行中にパリティエラーが発生した際の情報処理装置の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1を参照すると、本発明の第1の実施形態にかかる情報処理装置1は、マイクロプロセッサ2と、そのバス3に接続されたROM4、RAM5、通信インターフェース部6、操作入力部7、および画面表示部8とから構成されている。
【0012】
マイクロプロセッサ2は、CPU等で構成され、情報処理装置1全体の制御を司る。バス3は、アドレスバス、データバス、コントロール線などで構成される。ROM4は、マイクロプロセッサが実行するアプリケーションプログラムおよび変化しない定数などを記憶する。
【0013】
RAM5は、マイクロプロセッサ2が処理する各種のデータを記憶する。このRAM5には、パリティチェックビットが、このRAMの番地毎のビット長(例えば8ビット、16ビット、32ビット等)に対して1ビット形成されている。各番地のパリティチェックビットは、その番地へデータが書き込まれる際に、書き込まれるデータにより算出されてその番地に書き込まれる。また各番地のパリティチェックビットは、その番地の読み取り時に検査され、そのパリティチェックビットを含めたビットデータの合計が奇数または偶数のうち予め定められた側以外であれば、その番地のデータが破壊されているとして、マイクロプロセッサ2に、エラーアドレスを添えてパリティエラー割り込みを発生する。
【0014】
通信インターフェース部(以下、通信I/F部と称す)6は、専用のデータ通信回路からなり、通信回線(図示せず)を介して接続された図示しない各種装置との間でデータ通信を行う機能を有している。操作入力部7は、キーボードやマウスなどの操作入力装置からなり、オペレータの操作を検出してマイクロプロセッサ2に出力する機能を有している。画面表示部8は、LCDやPDPなどの画面表示装置からなり、マイクロプロセッサ2からの指示に応じて、エラーメッセージなどの各種情報を画面表示する機能を有している。
【0015】
図2は、情報処理装置1の電源投入時または再起動時に行われる処理の一例を示すフローチャートである。マイクロプロセッサ2は、電源が投入されるか、あるいは再起動されると、初期化処理を実行する(ステップS1)。この初期化処理では、ROM4やRAM5等の自己診断、RAM5の各エリアの初期化、ROM4に記憶されたプログラムや定数などのRAM5への複写などが実施される。また、本発明に関連する処理として、マップデータの作成処理S2が実施される。
【0016】
マップデータの作成処理S2では、メモリの使用用途を表すマップデータ9を作成する。図3は、作成されたマップデータ9の構成例である。この例のマップデータ9は、メモリのアドレス範囲に対応して、そのアドレス範囲のメモリ領域の使用用途を記憶している。例えば1行目は、アドレス0x0070〜0x0100は、統計領域であることを示す。また、2行目は、アドレス0x00E0〜0x0FFFは、ログ領域であることを示す。また、3行目は、アドレス0x0070〜0x0100、0x00E0〜0x0FFF以外のアドレスは、統計領域およびログ領域以外の領域であることを示している。ここで、統計領域とは、例えば情報処理装置1がパケットの送受信を行う通信装置である場合に、送信したパケットの数をカウントしている送信カウンタ、受信したパケットの数をカウントしている受信カウンタなどの統計情報を記憶する領域のことである。また、ログ領域とは、通信ログなどの各種のログを記憶する領域のことである。これらの統計情報とログ領域とは、その領域内のデータが破壊されたとしても情報処理装置1の通常の業務に支障の無い領域である。
【0017】
図3に示すマップデータ9は、データが破壊されたとしても通常の業務に支障の無い領域に関してのみ、その使用用途を記述している。しかし、本発明はそのようなマップデータに限定されず、例えばプログラム領域など、その領域のデータが破壊された場合には通常の業務に支障が生じる領域についても、そのアドレス範囲と使用用途とを記述したマップデータを作成しておいてもよい。
【0018】
上記の初期化処理S1の実行において、正常と判断されると、アプリケーションプログラムが起動され、通常の業務処理が実行される(ステップS3、S4)。他方、異常と判断されると、アプリケーションプログラムは起動されず、装置は停止する(ステップS5)。
【0019】
図4は、通常の業務処理の実行中にRAM5においてパリティエラーが発生した際の情報処理装置1の処理の一例を示すフローチャートである。マイクロプロセッサ2は、パリティエラーの検出による割り込みが発生すると(ステップS11)、まず、実行中のアプリケーションプログラムの情報(プログラムカウンタやスタックポインタ等)を退避させる(ステップS12)。
【0020】
次に、割り込みで通知されたパリティエラー発生アドレスの番地に対して、RAW(リード・アフター・ライト)テストを行う(ステップS13)。すなわち、該当する番地に対して、所定のデータを書き込んだ後、読み出して、読み出したデータと所定のデータとを比較する。例えば、データの全ビットが値1のデータを書き込んだ後、読み出し、読み出したデータの全ビットが値1か否かを判定する第1回目のRAWテストと、データの全ビットが値0のデータを書き込んだ後、読み出し、読み出したデータの全ビットが値0か否かを判定する第2回目のRAWテストとを実施する。若し、パリティエラーがソフトエラーによる一時的なものであれば、読み出したデータと所定のデータとが一致するため、RAWテストに成功する。他方、ハードウェアの故障に起因する固定障害であれば、読み出したデータと所定のデータとが一致しないため、RAWテストに失敗する。マイクロプロセッサ2は、RAWテストの結果に基づいて、パリティエラーの原因がソフトエラーか否かを判定する(ステップS14)。そして、ソフトエラーでなく、固定障害であれば、画面表示部8に、固定障害が発生している部位の情報を添えて故障部品の交換を促すエラーメッセージを表示し(ステップS15)、図4の処理を終える。
【0021】
他方、パリティエラーの原因がソフトエラーであれば、マイクロプロセッサ2は、図3のマップデータをエラーアドレスで引いて使用用途を取得し(ステップS16)、パリティエラーが発生した番地のメモリ領域の使用用途が、予め定められた使用用途か否かを判定する(ステップS17)。ここで、予め定められた使用用途は、データが破壊されていても通常の業務処理に支障のない使用用途のことであり、具体的には、本実施形態の場合、統計領域およびログ領域を指す。
【0022】
マイクロプロセッサ2は、パリティエラーの発生した番地のメモリ領域の使用用途が、統計領域およびログ領域以外であれば、情報処理装置1を再起動する(ステップS18)。しかし、パリティエラーの発生した番地のメモリ領域の使用用途が、統計領域およびログ領域であれば、マイクロプロセッサ2は、その番地のメモリ領域を再度、初期化する(ステップS19)。具体的には、その番地に値0を書き込む。そして、退避していたアプリケーションプログラムの情報を復元し、再実行を行う(ステップS20)。これにより、通常の業務が継続される。
【0023】
このように本実施形態によれば、RAM5にパリティエラーが発生しても、その発生したメモリ領域が装置の運用に支障が無いとして予め定められた使用用途であれば、パリティエラーの発生した番地のメモリ領域を初期化してアプリケーションプログラムの実行を継続するため、装置の平均故障間隔を延ばすことが可能になる。
【0024】
また、本実施形態によれば、パリティエラーが発生した番地に対してRAWテストを実施し、パリティエラーの原因がソフトエラーか否かを判定し、ソフトエラーであると判定した場合に限り、その番地の使用用途の確認、所定の使用用途である場合のメモリ領域の初期化とアプリケーションプログラムの再実行とを行う。このため、固定障害であるのにもかかわらず、初期化してアプリケーションプログラムを再実行してしまい、障害が多重に発生してしまう危険性を回避することができる。
【0025】
また、マップデータを起動毎に作成しているため、メモリ領域の使用領域を動的に割り当てる場合にも対応できる利点がある。但し、本発明はマップデータを起動毎に生成する場合に限定されず、ROMに固定的に保持するようにしても良い。
【0026】
以上、本発明の実施形態について説明したが、本発明は以上の実施形態にのみ限定されず、その他各種の付加変更が可能である。例えば、図5のフローチャートのステップS13’に示すように、RAWテストを1回以上実施し、最後のRAWテストにおいて、初期化と同じ値である全ビット0のデータを書き込むようにしても良い。この実施形態によれば、ステップS19のエラー発生アドレスのメモリ領域の初期化処理は、既に目的を達成しているために省略することができる。
【符号の説明】
【0027】
1…情報処理装置
2…マイクロプロセッサ2
3…バス
4…ROM
5…RAM
6…通信I/F部
7…操作入力部
8…画面表示部

【特許請求の範囲】
【請求項1】
メモリと、該メモリに接続されたマイクロプロセッサとを備え、
前記マイクロプロセッサは、
アプリケーションプログラムの実行中に前記メモリにエラーが発生したとき、前記エラーが発生したメモリ領域の使用用途が予め定められた使用用途か否かを判定し、
前記エラーが発生したメモリ領域が前記予め定められた使用用途であれば、前記エラーが発生したメモリアドレスのメモリ領域を初期化して前記アプリケーションプログラムの実行を再開する
ようにプログラムされていることを特徴とする情報処理装置。
【請求項2】
前記マイクロプロセッサは、さらに、
前記エラーが発生したメモリ領域が前記予め定められた使用用途以外であれば、情報処理装置の再起動を行う
ようにプログラムされていることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記マイクロプロセッサは、さらに、
前記エラーが発生したメモリアドレスのメモリ領域に対してRAWテストを行って前記エラーが間欠障害か否かを判定する
ようにプログラムされていることを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記RAWテストは1回以上実施し、最後のRAWテストでは、前記初期化と同じ値を前記エラーが発生したメモリアドレスのメモリ領域に書き込むことにより、RAWテストと前記初期化とを同時に実施する
ようにプログラムされていることを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記マイクロプロセッサは、さらに、
起動時に、前記メモリの使用用途を表すマップデータを作成し、
前記判定では、前記マップデータを参照して前記エラーが発生したメモリアドレスのメモリ領域の使用用途を確認する
ようにプログラムされていることを特徴とする請求項1乃至4の何れかに記載の情報処理装置。
【請求項6】
前記エラーは、パリティエラーである
ことを特徴とする請求項1乃至5の何れかに記載の情報処理装置。
【請求項7】
メモリと、該メモリに接続されたマイクロプロセッサとを備えた情報処理装置が実行するメモリ障害復旧方法であって、
前記マイクロプロセッサが、
アプリケーションプログラムの実行中に前記メモリにエラーが発生したとき、前記エラーが発生したメモリ領域の使用用途が予め定められた使用用途か否かを判定し、
前記エラーが発生したメモリ領域が前記予め定められた使用用途であれば、前記エラーが発生したメモリアドレスのメモリ領域を初期化して前記アプリケーションプログラムの実行を再開する
ことを特徴とするメモリ障害復旧方法。
【請求項8】
コンピュータに、
アプリケーションプログラムの実行中にメモリにエラーが発生したとき、前記エラーが発生したメモリ領域の使用用途が予め定められた使用用途か否かを判定するステップと、
前記エラーが発生したメモリ領域が前記予め定められた使用用途であれば、前記エラーが発生したメモリアドレスのメモリ領域を初期化して前記アプリケーションプログラムの実行を再開するステップと
を実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate