(57)【要約】【課題】ＥＣＣメモリの故障を早期に検知し、信頼性をさらに向上させる。【解決手段】データ処理装置は、起動指示があると、記録手段によりメモリエラーの履歴が記録されているか否かを判断する。メモリエラーの履歴が記録されていると判断されると、ＥＣＣメモリの検査を実行する。その結果、ＥＣＣメモリの異常が検出されると、メモリエラーの警告後に起動を停止する。【選択図】図３
2008191864.tif 000002
【特許請求の範囲】
【請求項１】
メモリエラーの検出及びその修正機能を有するＥＣＣメモリと、このＥＣＣメモリにメモリエラーが発生した履歴を記録する記録手段とを備えたデータ処理装置において、
起動指示があると、前記記録手段によりメモリエラーの履歴が記録されているか否かを判断する判断手段と、
この判断手段により前記メモリエラーの履歴が記録されていると判断されたことを条件に前記ＥＣＣメモリの検査を実行する検査手段と、
この検査手段による検査の結果、前記ＥＣＣメモリの異常が検出されると、メモリエラーの警告後に起動を停止する起動停止手段と、
を具備したことを特徴とするデータ処理装置。
【請求項２】
前記検査手段による検査の結果、前記ＥＣＣメモリの異常が検出されないと、前記記録手段に記録されているメモリエラー発生履歴を解除する履歴解除手段、をさらに具備したことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記検査手段による前記ＥＣＣメモリの検査は、当該ＥＣＣメモリの全領域を検査する詳細メモリ検査であり、
前記判断手段により前記メモリエラーの履歴が記録されていないと判断されたことを条件に前記ＥＣＣメモリの特定領域を検査する簡易メモリ検査を実行する簡易検査手段をさらに備えたことを特徴とする請求項１または２に記載のデータ処理装置。
【請求項４】
メモリエラーの検出及びその修正機能を有するＥＣＣメモリと、このＥＣＣメモリにメモリエラーが発生した履歴を記録する記録手段とを備えたデータ処理装置の起動方法であって、
データ処理装置は、
起動指示があると、前記記録手段によりメモリエラーの履歴が記録されているか否かを判断する判断ステップと、
この判断ステップによりメモリエラーの履歴が記録されていると判断されると、前記ＥＣＣメモリの検査を実行する検査ステップと、
この検査ステップにより前記ＥＣＣメモリの異常が検出されると、メモリエラーの警告後に起動を停止する起動停止ステップと、
を備えたことを特徴とするデータ処理装置の起動方法。
上記メモリ故障判断手段で上記ＥＣＣメモリが故障と判断された場合には、この判断結果を出力し、上記システムを停止可能に形成されていることを特徴とするデータ処理装置の起動方法。
【請求項５】
前記検査ステップによる前記ＥＣＣメモリの検査は、当該ＥＣＣメモリの全領域を検査する詳細メモリ検査であり、
前記判断ステップにより前記メモリエラーの履歴が記録されていないと判断された場合には、前記ＥＣＣメモリの特定領域を検査する簡易メモリ検査を実行する簡易検査ステップをさらに備えたことを特徴とする請求項４に記載のデータ処理装置の起動方法。
【請求項６】
前記起動停止ステップは、起動を停止する前に前記記録手段に記録されているメモリエラー発生履歴を解除することを特徴とする請求項４または５記載のデータ処理装置の起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＥＣＣ（Error Check and Correct）メモリを用いたデータ処理装置及びその起動方法に関する。
【背景技術】
【０００２】
現在、一般家庭等で用いられるＰＣ（パーソナルコンピュータ）等のデータ処理装置には、メモリエラーが発生した場合にメモリエラーの発生を検出するパリティチェック機能が付与されたメモリが使用されている。パリティチェック機能付メモリは、８ビットに対して１ビットの冗長ビットを持たせ、メモリ書き込み時と読み込み時とが同一ビットであるかのチェック（パリティチェック）を行うメモリである。パリティチェック時に、書き込み時と読み込み時とが同一でないときには、メモリエラーとして検知する。このようなパリティチェック機能付メモリは、メモリエラーが発生したことを検知するだけで、どのビットにエラーが発生したのかを特定することはできない。このため、信頼性が乏しい。
【０００３】
そこで、データベース・サーバやＰＯＳ（Point Of Sales）システム等の高い信頼性が求められるデータ処理装置には、主としてＥＣＣメモリが用いられる。ＥＣＣメモリは、パリティチェック機能付メモリのようなメモリエラーの検出だけではなく、エラーが発生した部位を特定し、このエラーを正しい値に訂正することが可能なメモリである。
【０００４】
ＥＣＣメモリは、主機能として、例えば６４ビットにつき８ビットのエラー訂正のためのデータを対応させ、６４ビットのうち１ビットがエラーの値になったときに、このエラーを検出し訂正する機能を有する。また、２ビット以上がエラーとなった場合には、ＥＣＣメモリは、この２ビットメモリエラーを訂正することはできないが、検知することが可能に形成されている。
【０００５】
このようなＥＣＣメモリは、パリティチェック機能付メモリと比較すると、より多くの冗長データが必要となり、さらにメモリのコストも必要となってしまう問題点もある。しかし、ＥＣＣメモリは、システムのメモリエラーを訂正することで、信頼性を高くすることができるため、データベース・サーバやＰＯＳシステム等の高い信頼性が必要なデータ処理方法等に多用されている。
【０００６】
従来、このようなＥＣＣメモリを用いたデータ処理装置として、ＥＣＣメモリにエラーが発生した際には制御権をＯＳ（Operating System）からＢＩＯＳ（Basic Input Operating System）に切替え、１ビットメモリエラーであり自動的に修復された場合には、当該ＢＩＯＳに付加されたＥＣＣメモリエラー処理モジュールに当該１ビットメモリエラーをカウントしつつログを取る記録処理を実行させた後に制御権をＯＳに戻し、２ビット以上のメモリエラーの場合には、上記ＥＣＣメモリエラー処理モジュールに当該２ビットメモリエラーをカウントしつつログを取る記録処理を実行させた後にシステムエラー警告を行い、動作停止させることで信頼性を向上させるようにしたものが知られている（例えば特許文献１参照）。
【特許文献１】特開２００２−７３４２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このように、従来のＥＣＣメモリを用いたデータ処理装置においては、メモリエラーの履歴をログとして残すことはできたものの、１ビットメモリエラーであった場合には自動的に修復されるために、ユーザはメモリエラーが発生したことに気付かない。メモリエラーは、ノイズ等の外要因によって偶発的に発生するだけでなく、メモリの劣化等による故障前兆によって発生する場合もある。しかし、いずれの原因でメモリエラーが発生したのかは外部からは判別できない。これを判別するには、システムの管理者等が、メモリ検査を指示し実行する必要があった。また、メモリ故障の前兆に気づかずにメモリが故障するまで放置されてしまうこともある。このため、ＥＣＣメモリ故障によるシステムロックや機能停止等が発生してしまい、サーバシステムやＰＯＳシステム等の機能停止となる可能性があった。
【０００８】
本発明は、このような事情に基づいてなされたもので、その目的とするところは、ＥＣＣメモリの故障を早期に検知することができ、信頼性をさらに向上できるデータ処理装置及びその起動方法を提供しようとするものである。
【課題を解決するための手段】
【０００９】
本発明のデータ処理装置は、メモリエラーの検出及びその修正機能を有するＥＣＣメモリと、このＥＣＣメモリにメモリエラーが発生した履歴を記録する記録手段とを備えたものであって、起動指示があると、記録手段によりメモリエラーの履歴が記録されているか否かを判断する判断手段と、この判断手段によりメモリエラーの履歴が記録されていると判断されたことを条件にＥＣＣメモリの検査を実行する検査手段と、この検査手段による検査の結果、ＥＣＣメモリの異常が検出されると、メモリエラーの警告後に起動を停止する起動停止手段とを備えたものである。
【００１０】
また、本発明のデータ処理装置の起動方法は、起動指示があると、記録手段によりメモリエラーの履歴が記録されているか否かを判断する判断ステップと、この判断ステップによりメモリエラーの履歴が記録されていると判断されると、ＥＣＣメモリの検査を実行する検査ステップと、この検査ステップによりＥＣＣメモリの異常が検出されると、メモリエラーの警告後に起動を停止する起動停止ステップとを備えたものである。
【発明の効果】
【００１１】
かかる手段を講じた本発明によれば、ＥＣＣメモリの故障を早期に検知することができ、信頼性をさらに向上できるデータ処理装置及びその起動方法を提供できる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施の形態を、図面を参照して説明する。  
図１は本実施の形態に係るデータ処理装置１の要部構成を示すブロック図である。  
図１に示すように、データ処理装置１は、制御部本体としてＣＰＵ１０を搭載している。また、データの受け渡しの管理等の情報流通を制御するチップセット２０と、メインメモリとしてのＥＣＣメモリ３０と、画像の処理を行う画像処理カード４０と、拡張ボード等を装着するための複数のＰＣＩスロット５０と、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）６０とを備え、これら構成品を、例えばＰＣＩバス等のバスライン７０によりＣＰＵ１０に接続している。
【００１３】
チップセット２０は、ＣＰＵ１０とバスライン７０とを接続するために用いられるノースブリッジ２１と、各種コントローラ等の機能を有するサウスブリッジ２２とを備えている。画像処理カード４０には、情報を出力するための画面４１が接続されている。チップセット２０は、ＣＰＵ１０と他構成品とを接続するよう形成されている。
【００１４】
ノースブリッジ２１は、ＯＳ制御によりアプリケーションを起動し、データ処理を実行することができるよう、ＣＰＵ１０をＥＣＣメモリ３０等の他構成品と接続可能に形成されている。また、ノースブリッジ２１には、ＥＣＣメモリ３０に１ビットメモリエラーが発生し、それを検出すると、その１ビットメモリエラーを自動的に修復するＥＣＣ制御回路が形成されている。
【００１５】
ＢＩＯＳ６０には、ＥＣＣメモリにメモリエラーが発生した履歴を記録する記録手段としてのＥＣＣメモリエラー処理モジュールが実装されている。記録手段は、エラー発生回数Ｘをカウントするカウンタを含む。また、エラー発生状況（発生箇所，発生内容等）をログとして取り記録するログファイルを有する。
【００１６】
このように構成されたデータ処理装置１の基本的な動作の流れを、図２の流れ図を用いて説明する。  
データ処理装置１の電源投入等により起動が指示されると、データ処理装置１では、後述する起動処理が実行される（ＳＴ１）。そして、この起動処理によりシステムが正常に立ち上がると、データ処理装置１では、ＯＳが作動する（ＳＴ２）。これにより、以後、ＣＰＵ１０は、ＯＳの制御下でデータ処理装置１を動作させる。
【００１７】
この通常の動作の中で、ＥＣＣメモリ３０が使用される（ＳＴ３）。すなわち、データの書込み及び読出しが行われる。このとき、ＥＣＣメモリ３０に１ビットメモリエラーが発生し、それが検知されると（ＳＴ４、ＹＥＳ）、ＣＰＵ１０の制御権がＯＳからＢＩＯＳ６０へ切り替えられる（ＳＴ５）。なお、ＥＣＣメモリ３０の１ビットメモリエラーは、ＥＣＣ制御回路によって自動的に修復される（ＳＴ６）。
【００１８】
ＢＩＯＳに制御権が切替えられると、このＢＩＯＳに付加されたＥＣＣメモリエラー処理モジュールが前記カウンタをカウントアップ（Ｘ←Ｘ＋１）する（ＳＴ７）。例えば、データ処理装置１を起動してから初めてのメモリエラーであれば、カウント数Ｘは１となる。また、エラー発生状況のログ処理を行う。その後、ＣＰＵ１０の制御権がＢＩＯＳ６０からＯＳへと戻される（ＳＴ８）。
【００１９】
一方、ＥＣＣメモリ３０に発生したメモリエラーが１ビットメモリエラーではなく２ビット以上のメモリエラーであった場合にも（ＳＴ９、ＹＥＳ）、ＣＰＵ１０の制御権がＯＳからＢＩＯＳ６０へ切り替えられる（ＳＴ１０）。ただし、２ビット以上のメモリエラーは、ＥＣＣメモリ３０では自己修復されない。
【００２０】
ＢＩＯＳ６０に制御権が切替えられると、このＢＩＯＳに付加されたＥＣＣメモリエラー処理モジュールが前記カウンタをカウントアップ（Ｘ←Ｘ＋１）する（ＳＴ１１）。また、エラー発生状況のログ処理を行う。その後、ＣＰＵ１０の制御権がＢＩＯＳ６０からＯＳへと戻される（ＳＴ１２）。なお、１ビットメモリエラーと２ビット以上のメモリエラーとでカウント数Ｘを分別してもよい。
【００２１】
ＯＳに制御権が戻されると、データ処理装置１では、システムの終了指示（ＳＴ１３）があるまで、ＥＣＣメモリが使用される（ＳＴ４）。終了指示が有ると（ＳＴ１３のＹＥＳ）、システム停止がＯＳに指示され、データ処理装置１はシャットダウンされる（ＳＴ１４）。
【００２２】
次に、ＳＴ１の起動処理の手順について図３の流れ図を用いて説明する。
【００２３】
ＣＰＵ１０は、起動処理を開始すると、前回の当該データ処理装置１の稼動時に、メモリエラーが発生したかどうか、すなわち、メモリエラーの履歴が記録されているか否かを、カウンタのカウント数Ｘから判断する（ＳＴ２１：判断手段）。具体的には、カウント数Ｘが１以上の場合には、メモリエラーの履歴が記録されているのでメモリエラーが発生していると判断し、カウント数Ｘが０の場合にはメモリエラーが発生していないと判断する。
【００２４】
メモリエラーが発生していた場合（ＳＴ２１、ＹＥＳ）には、ＥＣＣメモリ３０に対して詳細メモリ検査を行う（ＳＴ２２：検査手段）。ここで、詳細メモリ検査とは、ＥＣＣメモリ３０の全領域において、ＥＣＣメモリ３０の物理領域に障害が発生していないかを調べる検査である。
【００２５】
この詳細メモリ検査が終了し、検査結果でＥＣＣメモリ３０の故障が発見されると（ＳＴ２３、ＹＥＳ）、ＣＰＵ１０は、画面４１に例えば、ＥＣＣメモリ３０が故障しているため交換してください、との旨を表示させる（ＳＴ２４）。表示後、ＣＰＵ１０は、システムを停止させ（ＳＴ２５：起動停止手段）、データ処理装置１をシャットダウンさせる。データ処理装置１をシャットダウンさせることで、ＥＣＣメモリ３０の故障をこれ以上進行させないようにする。
【００２６】
例えば、ＥＣＣメモリ３０は、故障していたとしても、表面上は問題なく作動することがある。このために、この作動を行うことで、ＥＣＣメモリ３０が完全に壊れる可能性がある。データ処理装置１を使用中にＥＣＣメモリ３０が故障すると、フリーズやシステムロック等が発生してしまう可能性があり、これらにより、データ処理装置１が使用不能となる場合がある。データ処理装置１が使用不能となると、データ処理装置１を店舗のＰＯＳシステム等に用いたときは会計ができなくなる等の不都合が生じる。これを防ぐためにも、画面４１に警告を表示後、システムを停止させる。
【００２７】
ＳＴ２３で、ＥＣＣメモリ３０の故障が発見されないときは（ＳＴ２３、ＮＯ）、カウント数Ｘを０として、カウンタをリセットする（ＳＴ２６：履歴解除手段）。しかる後、通常の起動を行う（ＳＴ２７）。一方、カウンタのカウント数Ｘが０であり、メモリエラーが発生していない場合には（ＳＴ２１、ＮＯ）、ＣＰＵ１０は、簡易メモリ検査を実行する（ＳＴ２８：簡易検査手段）。この簡易メモリ検査とは、例えばＥＣＣメモリ３０の特定領域のみをチェックするものである。簡易メモリ検査は、特定領域のみのチェックを行うため、検査にかかる時間を詳細メモリ検査に比べ、短時間とすることができる。メモリ検査のために必要とする時間を短時間とすることで、起動性が向上することとなる。
【００２８】
簡易メモリ検査実行後、ＣＰＵ１０は、この簡易メモリ検査によりメモリの故障が検知されたかどうかを判定する（ＳＴ２９）。このとき、簡易メモリ検査によりメモリの故障が検知された場合には（ＳＴ２９のＹＥＳ）、ＳＴ２２に進み、ＥＣＣメモリ３０に対して詳細メモリ検査を行う。これ以降はＳＴ２２以降からの動作となる。
【００２９】
簡易メモリ検査の結果、メモリ故障が検知されなかった場合には、ＳＴ２７に進み、通常の起動を実行する。
【００３０】
このように本実施の形態のデータ処理装置１においては、システム起動時に、前回のデータ処理装置１作動時のＥＣＣメモリ３０のメモリエラー発生履歴の有無をチェックしている。そして、メモリエラーが発生していた場合には、ＥＣＣメモリ３０に対して詳細なメモリ検査を行うようにしている。したがって、前回ＥＣＣメモリ３０を使用した場合に１ビット又は２ビットメモリエラーが発生した場合には、メモリエラーがノイズ等の外要因によりメモリエラーが発生したのか、又は、ＥＣＣメモリ３０の故障又は故障の前兆によりメモリエラーが発生したのかを検査することが可能となる。これにより、ＥＣＣメモリ３０の故障によるメモリ障害のためのシステムロック等を未然に防止することができる。このため、ＥＣＣメモリ３０の信頼性の向上とすることもできる。
【００３１】
また、詳細メモリ検査は、ＥＣＣメモリ３０の全領域で行う検査のため、検査を行うのに長時間必要となる。このため、信頼性を向上させるために、詳細メモリ検査を毎回行っていると、データ処理装置１使用までに時間がかかり、起動性及び使用効率等が悪くなる。そこで本実施の形態では、メモリエラー発生履歴の有無をチェックした結果、メモリエラーが発生していなかった場合には、短時間で済む簡易なメモリ検査を実行するようにしている。したがって、信頼性を向上させつつ、検査時間の短縮とすることが可能となる。これにより、起動性及び使用効率も向上することとなる。
【００３２】
さらに、前回の使用時にメモリエラーが発生していなかったとしても、簡易メモリ検査を行うことで、表立たないメモリ故障を発見することもできる。さらに、簡易メモリ検査でメモリ故障を発見したら、詳細メモリ検査を自動的に実行させることとなる。ＥＣＣメモリ３０が故障していたとしても、メモリエラーが発生しないことがあり、この見落としを簡易メモリ検査で判断した後に詳細メモリ検査を行うことで、２重のチェックとなり、より信頼性は向上する。
【００３３】
このように、本実施の形態に係るデータ処理装置１によれば、前回のデータ処理装置１のＥＣＣメモリ３０の状況に応じて、次回起動時に、検査方法を判別し、ＥＣＣメモリ３０の検査を行うため、高い信頼性をえることができる。また、無駄な検査を実行しないために、検査時間の短縮とすることもできる。
【００３４】
なお、この発明は前記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【００３５】
例えば、前記実施の形態では、システム起動後毎に、前回のデータ処理装置１作動時のメモリエラーのカウント数に応じて検査方法を判別する、としたが、これを、毎回行わなくともよい。例えば、通常、システム起動毎に簡易メモリ検査を行い、故障と判定されたときに詳細メモリ検査を行うこととする。そして、データ処理装置１の起動時間をカウントすることで、一定の起動時間を作動させた次のシステム起動時に、検査方法を判定するものとしてもよい。これにより、例えば、使用場所や環境等でノイズが多く発生する場所で、ＥＣＣメモリのエラーが頻発することによる、システム起動時毎の検査時間の短縮とすることもできる。
【００３６】
また、システム起動毎に簡易メモリ検査を行うと同時に、画面４１に前回のビットメモリエラーの発生カウント数Ｘを表示するようにしてもよい。このカウント数Ｘをユーザが確認し、必要と思われるときに詳細メモリ検査を行い、通常は簡易メモリ検査を行うことにより、検査にかかる時間を低減させることが可能となる。また、簡易メモリ検査で故障判断がなされたときに、詳細メモリ検査を行うため、信頼性も向上とすることができる。
【００３７】
さらに、システム起動毎に前回のメモリエラーのカウント数に応じて検査方法を判別し、検査を実行するのではなく、システム終了時に、システム終了時のメモリエラーのカウント数Ｘから検査方法を判別し、検査を実行するようにしてもよい。このようにすることで、検査時間を設けるのをシステム終了時（データ処理装置１シャットダウン時）とすることで、次回起動するときに検査を行わない。これにより、起動のための起動時間を短縮させることができるとともに、検査終了後自動的に電源が落ちるよう形成することで、検査時に放置したとしてもよくなる。
【００３８】
また、データ処理装置１は、スーパーマーケットにおける会計場（チェックアウトカウン）に設置されているＰＯＳ（Ｐｏｉｎｔ  Ｏｆ  Ｓａｌｅｓ）端末を含む商品販売データ処理装置に適用してもよいし、サーバシステムに用いる端末に用いても適用できる。
【００３９】
この他にも、ＳＴ２３にて、ＥＣＣメモリ３０が故障と判断された場合は、画面４１に故障情報を表示するとともに、ＥＣＣメモリ３０内の情報を外部媒体にバックアップできるようなプログラムを発動する構成としてもよい。
【００４０】
この他、前記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を組み合わせてもよい。
【図面の簡単な説明】
【００４１】
【図１】本実施の形態に係るデータ処理装置の要部構成を示すブロック図。
【図２】同データ処理装置の基本的な動作を示す流れ図。
【図３】同データ処理装置のメモリ検査方法の動作を示す流れ図。
【符号の説明】
【００４２】
１…データ処理装置、１０…ＣＰＵ、２０…チップセット、２１…ノースブリッジ、２２…サウスブリッジ、３０…ＥＣＣメモリ、４０…画像処理カード、４１…画面、５０…ＰＣＩスロット、６０…ＢＩＯＳ、７０…バスライン。
【図１】
2008191864.tif 000003
【図２】
2008191864.tif 000004
【図３】
2008191864.tif 000005
【手続補正書】
【提出日】平成19年3月7日(2007.3.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項４
【補正方法】変更
【補正の内容】
【請求項４】
メモリエラーの検出及びその修正機能を有するＥＣＣメモリと、このＥＣＣメモリにメモリエラーが発生した履歴を記録する記録手段とを備えたデータ処理装置の起動方法であって、
データ処理装置は、
起動指示があると、前記記録手段によりメモリエラーの履歴が記録されているか否かを判断する判断ステップと、
この判断ステップによりメモリエラーの履歴が記録されていると判断されると、前記ＥＣＣメモリの検査を実行する検査ステップと、
この検査ステップにより前記ＥＣＣメモリの異常が検出されると、メモリエラーの警告後に起動を停止する起動停止ステップと、
を備えたことを特徴とするデータ処理装置の起動方法。