(57)【要約】      （修正有）【課題】アクセス数の少ないメモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行い、メモリモジュールの故障を早期に発見する。【解決手段】コンピュータ１００は、エラー検出部１１０、ログ収集部１２０、診断部１３０、メモリチェック部１４０、障害処理部１５０、及び障害ログ情報格納部１６０を備え、メモリチェック部１４０は、診断機能によって特定されたメモリエラーが発生した位置に対してメモリチェックを行い、メモリアクセスを行い、メモリエラーが発生するかどうかの確認を行う。【選択図】図１
2012168841.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリモジュールを利用するコンピュータであって、
前記各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うメモリチェック部
を備えるコンピュータ。
【請求項２】
前記メモリチェック部は、エラーが発生したメモリモジュールに対してメモリチェックを集中的に繰り返して、メモリエラーの頻度を検出することによって、当該メモリモジュールに対するメモリチェックを行う
請求項１に記載のコンピュータ。
【請求項３】
エラーが発生したメモリモジュールを特定すると共に、当該特定されたメモリモジュールに発生したエラーが訂正可能か否かを診断する診断部
を更に備え、
前記メモリチェック部は、発生したエラーが訂正可能であると前記診断部が診断した場合に、前記診断部が特定したメモリモジュールに対してメモリチェックを行う
請求項１又は２に記載のコンピュータ。
【請求項４】
エラーが発生したメモリモジュールの位置情報と、エラーが発生したメモリモジュールがあった場合に、当該メモリモジュールのエラーが訂正可能か否かを示す情報を収集するログ収集部
を更に備え、
前記診断部は、前記ログ収集部が収集した情報に基づいて、エラーが発生したメモリモジュールを特定すると共に、当該特定されたメモリモジュールに発生したエラーが訂正可能か否かを診断する
請求項３に記載のコンピュータ。
【請求項５】
前記メモリモジュールへのエラーの発生を検出するエラー検出部
を更に備え、
前記ログ収集部は、前記エラー検出部がエラーの発生を検出したメモリモジュールを特定するための情報と、当該メモリモジュールのエラーが訂正可能か否かを示す情報を収集する
請求項４に記載のコンピュータ。
【請求項６】
エラーが発生したメモリモジュールの位置情報と、当該メモリモジュールがエラー訂正機能によって訂正可能か否かを示す情報とを対応付けて格納する障害ログ情報格納部
を更に備え、
前記ログ収集部は、前記障害ログ情報格納部に格納されている情報を参照して、エラーが発生したメモリモジュールの位置情報と、エラーが発生したメモリモジュールがあった場合に、当該メモリモジュールのエラーが訂正可能か否かを示す情報を収集する
請求項４又は５に記載のコンピュータ。
【請求項７】
複数のメモリモジュールを利用するコンピュータを制御する制御方法であって、
前記各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うメモリチェック段階
を備える制御方法。
【請求項８】
複数のメモリモジュールを利用するコンピュータ用のプログラムであって、前記コンピュータを、
前記各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うメモリチェック部
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ、制御方法、及びプログラムに関する。特に、本発明は、複数のメモリモジュールを利用するコンピュータ、当該コンピュータを制御する制御方法、並びに当該コンピュータ用のプログラムに関する。
【背景技術】
【０００２】
信頼性が求められるコンピュータシステムにおいては、エラー訂正機能を持ったメモリモジュールが利用される。メモリモジュールは、プログラムによるメモリアクセスが発生することによってエラーを検出する。そして、訂正可能な範囲のエラーである場合は、メモリモジュールのエラー訂正機能によって自動で修復し継続運用を行う。メモリエラーの発生には、半導体素子や配線の劣化等によるメモリ故障が原因となる場合と、電磁波等の影響により間欠的にメモリエラーを引き起こす場合がある。メモリ故障が起きると、メモリエラーが高頻度で発生し、他の部位にも波及して故障する可能性が高い。
【０００３】
訂正可能エラーを高頻度で検出した場合の障害処理方式の一例が特許文献１に記載されている。この従来の障害処理方式では、訂正可能エラーの検出回数が一定時間内に予め定められた回数になったときに障害処理を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０２−１３５５３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、アクセス数の少ないメモリモジュールの場合には、仮にエラーの頻度が高かったとしても、エラー検出回数がしきい値を超え難いケースが発生する。そのため、特許文献１に記載の技術によっては、アクセス数が少ないメモリモジュールに故障が発生したとしても障害処理が行われない虞がある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の第１の形態によると、複数のメモリモジュールを利用するコンピュータであって、各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うメモリチェック部を備える。
【０００７】
本発明の第２の形態によると、複数のメモリモジュールを利用するコンピュータを制御する制御方法であって、各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うメモリチェック段階を備える。
【０００８】
本発明の第３の形態によると、複数のメモリモジュールを利用するコンピュータ用のプログラムであって、コンピュータを、各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うメモリチェック部として機能させる。
【０００９】
なおまた、上記のように発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となり得る。
【発明の効果】
【００１０】
以上の説明から明らかなように、この発明においては、各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うようにした。その結果、この発明によっては、アクセス頻度は低いが高頻度にエラーが発生するメモリモジュールが存在していても、そのメモリモジュールの故障を早期に発見することができる。
【図面の簡単な説明】
【００１１】
【図１】コンピュータ１００のブロック構成の一例を示す図である。
【図２】障害ログ情報格納部１６０に格納されているデータの一例をテーブル形式で示す図である。
【図３】コンピュータ１００の動作フローの一例を示す図である。
【図４】コンピュータ１００のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は、特許請求の範囲にかかる発明を限定するものではなく、また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１３】
図１は、コンピュータ１００のブロック構成の一例を示す。コンピュータ１００は、複数のメモリモジュールを利用する装置である。
【００１４】
コンピュータ１００は、エラー検出部１１０、ログ収集部１２０、診断部１３０、メモリチェック部１４０、障害処理部１５０、及び障害ログ情報格納部１６０を備える。以下に、各構成要素の機能及び動作を説明する。
【００１５】
エラー検出部１１０は、コンピュータ１００のメモリモジュールにメモリエラーが発生すると、その旨を検出する。
【００１６】
ログ収集部１２０は、エラー検出部１１０からの報告に応じて、障害ログ情報格納部１６０からエラーが発生したメモリモジュールの位置情報、エラー訂正機能によって訂正可能かどうかの情報を収集する。
【００１７】
診断部１３０は、ログ収集部１２０によって集められた情報から、メモリエラーが発生した位置を特定し、訂正可能なエラーの場合は、メモリチェック部１４０を動作させる。
【００１８】
メモリチェック部１４０は、診断機能によって特定されたメモリエラーが発生した位置に対してメモリチェックを行う。メモリチェックでは、メモリアクセスを行い、メモリエラーが発生するかどうかの確認を行う。
【００１９】
障害処理部１５０は、検出された障害に応じて必要な障害処理を行う。
【００２０】
図２は、障害ログ情報格納部１６０に格納されているデータの一例をテーブル形式で示す。障害ログ情報格納部１６０には、エラーが発生したメモリモジュールの位置情報と、そのメモリモジュールがエラー訂正機能によって訂正可能か否かを示す情報とが対応付けて格納されている。
【００２１】
図３は、コンピュータ１００の動作フローの一例を示す。この動作は、メモリエラーを検出した際に、そのエラーがメモリ故障によるものかどうかを判断する。メモリ故障と判断した場合には、障害処理部１５０に対して通知を行う。
【００２２】
メモリエラーが発生すると、エラー検出部１１０は、メモリエラーが発生したことを検出する（Ｓ１０１）。
【００２３】
そして、ログ収集部１２０は、障害ログ情報格納部１６０からエラーが発生したメモリモジュールの位置情報、エラー訂正機能によって訂正可能かどうかの情報を収集する（Ｓ１０２）。
【００２４】
そして、診断部１３０は、収集した情報から、発生したメモリエラーが訂正可能なエラーかどうかを判定する（Ｓ１０３）。訂正可能でないと判定された場合（Ｓ１０３：Ｎｏ）、障害処理部１５０は、検出された障害に応じて必要な障害処理を行う（Ｓ１０８）。
【００２５】
一方、訂正可能と判定された場合（Ｓ１０３：Ｙｅｓ）、メモリチェック部１４０は、診断機能によって特定されたメモリエラーが発生した領域に対して、メモリチェック回数がＮ回を超えたかどうかの判定を行い（Ｓ１０４）、超えていない場合（Ｓ１０４：Ｎｏ）、メモリチェックを行う（Ｓ１０５）。
【００２６】
そして、メモリチェックで検出されたエラー回数がＭ回を超えていない場合（Ｓ１０６：Ｎｏ）、メモリチェック部１４０は、メモリチェック回数を更新して（Ｓ１０７）、ステップＳ１０４からの処理を繰り返す。
【００２７】
そして、メモリチェック回数がＮ回を超えた場合（Ｓ１０４：Ｙｅｓ）、メモリチェック部１４０は、メモリ障害検出の処理を終了する。
【００２８】
すなわち、ステップＳ１０３で訂正可能と判定された場合は、ステップＳ１０４〜Ｓ１０７により、Ｎ回メモリチェックを繰り返し、エラーがＭ回検出されるかどうかを確認している。
【００２９】
メモリチェックで検出されたエラー回数がＭ回を超えた場合（Ｓ１０６：Ｙｅｓ）、メモリチェック部１４０は、メモリ故障と判断する。その場合、障害処理部１５０は、検出された障害に応じて必要な障害処理を行う（Ｓ１０８）。
【００３０】
このように、Ｎ回のメモリチェックを集中的に繰り返すことにより、Ｍ回のメモリエラーを検出した場合は、Ｍ／Ｎの頻度でメモリエラーが発生したこととなる。ＮとＭには、Ｍ／Ｎが高頻度となるような値をあらかじめ設定する必要がある。
【００３１】
以上説明したように、コンピュータ１００においては、各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うようにした。
【００３２】
その結果、コンピュータ１００によっては、アクセス頻度は低いが高頻度にエラーが発生するメモリモジュールが存在していても、そのメモリモジュールの故障を早期に発見することができる。
【００３３】
図４は、コンピュータ１００のハードウェア構成の一例を示す。コンピュータ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）周辺部と、入出力部と、レガシー入出力部とを備える。ＣＰＵ周辺部は、ホスト・コントローラ８０１により相互に接続されるＣＰＵ８０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８０３、グラフィック・コントローラ８０４、及び表示装置８０５を有する。入出力部は、入出力コントローラ８０６によりホスト・コントローラ８０１に接続される通信インターフェース８０７、ハードディスクドライブ８０８、及びＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ８０９を有する。レガシー入出力部は、入出力コントローラ８０６に接続されるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１０、フレキシブルディスク・ドライブ８１１、及び入出力チップ８１２を有する。
【００３４】
ホスト・コントローラ８０１は、ＲＡＭ８０３と、高い転送レートでＲＡＭ８０３をアクセスするＣＰＵ８０２、及びグラフィック・コントローラ８０４とを接続する。ＣＰＵ８０２は、ＲＯＭ８１０、及びＲＡＭ８０３に格納されたプログラムに基づいて動作して、各部の制御をする。グラフィック・コントローラ８０４は、ＣＰＵ８０２等がＲＡＭ８０３内に設けたフレーム・バッファ上に生成する画像データを取得して、表示装置８０５上に表示させる。これに代えて、グラフィック・コントローラ８０４は、ＣＰＵ８０２等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００３５】
入出力コントローラ８０６は、ホスト・コントローラ８０１と、比較的高速な入出力装置であるハードディスクドライブ８０８、通信インターフェース８０７、ＣＤ−ＲＯＭドライブ８０９を接続する。ハードディスクドライブ８０８は、ＣＰＵ８０２が使用するプログラム、及びデータを格納する。通信インターフェース８０７は、ネットワーク通信装置８９１に接続してプログラム又はデータを送受信する。ＣＤ−ＲＯＭドライブ８０９は、ＣＤ−ＲＯＭ８９２からプログラム又はデータを読み取り、ＲＡＭ８０３を介してハードディスクドライブ８０８、及び通信インターフェース８０７に提供する。
入出力コントローラ８０６には、ＲＯＭ８１０と、フレキシブルディスク・ドライブ８１１、及び入出力チップ８１２の比較的低速な入出力装置とが接続される。ＲＯＭ８１０は、コンピュータ１００が起動時に実行するブート・プログラム、あるいはコンピュータ１００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ８１１は、フレキシブルディスク８９３からプログラム又はデータを読み取り、ＲＡＭ８０３を介してハードディスクドライブ８０８、及び通信インターフェース８０７に提供する。入出力チップ８１２は、フレキシブルディスク・ドライブ８１１、あるいはパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
【００３６】
ＣＰＵ８０２が実行するプログラムは、フレキシブルディスク８９３、ＣＤ−ＲＯＭ８９２、又はＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード等の記録媒体に格納されて利用者によって提供される。記録媒体に格納されたプログラムは圧縮されていても非圧縮であってもよい。プログラムは、記録媒体からハードディスクドライブ８０８にインストールされ、ＲＡＭ８０３に読み出されてＣＰＵ８０２により実行される。ＣＰＵ８０２により実行されるプログラムは、コンピュータ１００を、図１から図３に関連して説明したエラー検出部１１０、ログ収集部１２０、診断部１３０、メモリチェック部１４０、障害処理部１５０、及び障害ログ情報格納部１６０として機能させる。
【００３７】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク８９３、ＣＤ−ＲＯＭ８９２の他に、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）又はＰＤ（Ｐｈａｓｅ  Ｄｉｓｋ）等の光学記録媒体、ＭＤ（ＭｉｎｉＤｉｓｋ）等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークあるいはインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶媒体を記録媒体として使用して、ネットワークを介したプログラムとして提供してもよい。
【００３８】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は、上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【００３９】
１００  コンピュータ
１１０  エラー検出部
１２０  ログ収集部
１３０  診断部
１４０  メモリチェック部
１５０  障害処理部
１６０  障害ログ情報格納部
８０１  ホスト・コントローラ
８０２  ＣＰＵ
８０３  ＲＡＭ
８０４  グラフィック・コントローラ
８０５  表示装置
８０６  入出力コントローラ
８０７  通信インターフェース
８０８  ハードディスクドライブ
８０９  ＣＤ−ＲＯＭドライブ
８１０  ＲＯＭ
８１１  フレキシブルディスク・ドライブ
８１２  入出力チップ
８９１  ネットワーク通信装置
８９２  ＣＤ−ＲＯＭ
８９３  フレキシブルディスク
【図１】
2012168841.tif 000003
【図２】
2012168841.tif 000004
【図３】
2012168841.tif 000005
【図４】
2012168841.tif 000006