説明

コンピュータ、制御方法、及びプログラム

【課題】アクセス数の少ないメモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行い、メモリモジュールの故障を早期に発見する。
【解決手段】コンピュータ100は、エラー検出部110、ログ収集部120、診断部130、メモリチェック部140、障害処理部150、及び障害ログ情報格納部160を備え、メモリチェック部140は、診断機能によって特定されたメモリエラーが発生した位置に対してメモリチェックを行い、メモリアクセスを行い、メモリエラーが発生するかどうかの確認を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ、制御方法、及びプログラムに関する。特に、本発明は、複数のメモリモジュールを利用するコンピュータ、当該コンピュータを制御する制御方法、並びに当該コンピュータ用のプログラムに関する。
【背景技術】
【0002】
信頼性が求められるコンピュータシステムにおいては、エラー訂正機能を持ったメモリモジュールが利用される。メモリモジュールは、プログラムによるメモリアクセスが発生することによってエラーを検出する。そして、訂正可能な範囲のエラーである場合は、メモリモジュールのエラー訂正機能によって自動で修復し継続運用を行う。メモリエラーの発生には、半導体素子や配線の劣化等によるメモリ故障が原因となる場合と、電磁波等の影響により間欠的にメモリエラーを引き起こす場合がある。メモリ故障が起きると、メモリエラーが高頻度で発生し、他の部位にも波及して故障する可能性が高い。
【0003】
訂正可能エラーを高頻度で検出した場合の障害処理方式の一例が特許文献1に記載されている。この従来の障害処理方式では、訂正可能エラーの検出回数が一定時間内に予め定められた回数になったときに障害処理を行う。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平02−135533号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、アクセス数の少ないメモリモジュールの場合には、仮にエラーの頻度が高かったとしても、エラー検出回数がしきい値を超え難いケースが発生する。そのため、特許文献1に記載の技術によっては、アクセス数が少ないメモリモジュールに故障が発生したとしても障害処理が行われない虞がある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明の第1の形態によると、複数のメモリモジュールを利用するコンピュータであって、各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うメモリチェック部を備える。
【0007】
本発明の第2の形態によると、複数のメモリモジュールを利用するコンピュータを制御する制御方法であって、各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うメモリチェック段階を備える。
【0008】
本発明の第3の形態によると、複数のメモリモジュールを利用するコンピュータ用のプログラムであって、コンピュータを、各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うメモリチェック部として機能させる。
【0009】
なおまた、上記のように発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となり得る。
【発明の効果】
【0010】
以上の説明から明らかなように、この発明においては、各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うようにした。その結果、この発明によっては、アクセス頻度は低いが高頻度にエラーが発生するメモリモジュールが存在していても、そのメモリモジュールの故障を早期に発見することができる。
【図面の簡単な説明】
【0011】
【図1】コンピュータ100のブロック構成の一例を示す図である。
【図2】障害ログ情報格納部160に格納されているデータの一例をテーブル形式で示す図である。
【図3】コンピュータ100の動作フローの一例を示す図である。
【図4】コンピュータ100のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0012】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は、特許請求の範囲にかかる発明を限定するものではなく、また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0013】
図1は、コンピュータ100のブロック構成の一例を示す。コンピュータ100は、複数のメモリモジュールを利用する装置である。
【0014】
コンピュータ100は、エラー検出部110、ログ収集部120、診断部130、メモリチェック部140、障害処理部150、及び障害ログ情報格納部160を備える。以下に、各構成要素の機能及び動作を説明する。
【0015】
エラー検出部110は、コンピュータ100のメモリモジュールにメモリエラーが発生すると、その旨を検出する。
【0016】
ログ収集部120は、エラー検出部110からの報告に応じて、障害ログ情報格納部160からエラーが発生したメモリモジュールの位置情報、エラー訂正機能によって訂正可能かどうかの情報を収集する。
【0017】
診断部130は、ログ収集部120によって集められた情報から、メモリエラーが発生した位置を特定し、訂正可能なエラーの場合は、メモリチェック部140を動作させる。
【0018】
メモリチェック部140は、診断機能によって特定されたメモリエラーが発生した位置に対してメモリチェックを行う。メモリチェックでは、メモリアクセスを行い、メモリエラーが発生するかどうかの確認を行う。
【0019】
障害処理部150は、検出された障害に応じて必要な障害処理を行う。
【0020】
図2は、障害ログ情報格納部160に格納されているデータの一例をテーブル形式で示す。障害ログ情報格納部160には、エラーが発生したメモリモジュールの位置情報と、そのメモリモジュールがエラー訂正機能によって訂正可能か否かを示す情報とが対応付けて格納されている。
【0021】
図3は、コンピュータ100の動作フローの一例を示す。この動作は、メモリエラーを検出した際に、そのエラーがメモリ故障によるものかどうかを判断する。メモリ故障と判断した場合には、障害処理部150に対して通知を行う。
【0022】
メモリエラーが発生すると、エラー検出部110は、メモリエラーが発生したことを検出する(S101)。
【0023】
そして、ログ収集部120は、障害ログ情報格納部160からエラーが発生したメモリモジュールの位置情報、エラー訂正機能によって訂正可能かどうかの情報を収集する(S102)。
【0024】
そして、診断部130は、収集した情報から、発生したメモリエラーが訂正可能なエラーかどうかを判定する(S103)。訂正可能でないと判定された場合(S103:No)、障害処理部150は、検出された障害に応じて必要な障害処理を行う(S108)。
【0025】
一方、訂正可能と判定された場合(S103:Yes)、メモリチェック部140は、診断機能によって特定されたメモリエラーが発生した領域に対して、メモリチェック回数がN回を超えたかどうかの判定を行い(S104)、超えていない場合(S104:No)、メモリチェックを行う(S105)。
【0026】
そして、メモリチェックで検出されたエラー回数がM回を超えていない場合(S106:No)、メモリチェック部140は、メモリチェック回数を更新して(S107)、ステップS104からの処理を繰り返す。
【0027】
そして、メモリチェック回数がN回を超えた場合(S104:Yes)、メモリチェック部140は、メモリ障害検出の処理を終了する。
【0028】
すなわち、ステップS103で訂正可能と判定された場合は、ステップS104〜S107により、N回メモリチェックを繰り返し、エラーがM回検出されるかどうかを確認している。
【0029】
メモリチェックで検出されたエラー回数がM回を超えた場合(S106:Yes)、メモリチェック部140は、メモリ故障と判断する。その場合、障害処理部150は、検出された障害に応じて必要な障害処理を行う(S108)。
【0030】
このように、N回のメモリチェックを集中的に繰り返すことにより、M回のメモリエラーを検出した場合は、M/Nの頻度でメモリエラーが発生したこととなる。NとMには、M/Nが高頻度となるような値をあらかじめ設定する必要がある。
【0031】
以上説明したように、コンピュータ100においては、各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うようにした。
【0032】
その結果、コンピュータ100によっては、アクセス頻度は低いが高頻度にエラーが発生するメモリモジュールが存在していても、そのメモリモジュールの故障を早期に発見することができる。
【0033】
図4は、コンピュータ100のハードウェア構成の一例を示す。コンピュータ100は、CPU(Central Processing Unit)周辺部と、入出力部と、レガシー入出力部とを備える。CPU周辺部は、ホスト・コントローラ801により相互に接続されるCPU802、RAM(Random Access Memory)803、グラフィック・コントローラ804、及び表示装置805を有する。入出力部は、入出力コントローラ806によりホスト・コントローラ801に接続される通信インターフェース807、ハードディスクドライブ808、及びCD−ROM(Compact Disk Read Only Memory)ドライブ809を有する。レガシー入出力部は、入出力コントローラ806に接続されるROM(Read Only Memory)810、フレキシブルディスク・ドライブ811、及び入出力チップ812を有する。
【0034】
ホスト・コントローラ801は、RAM803と、高い転送レートでRAM803をアクセスするCPU802、及びグラフィック・コントローラ804とを接続する。CPU802は、ROM810、及びRAM803に格納されたプログラムに基づいて動作して、各部の制御をする。グラフィック・コントローラ804は、CPU802等がRAM803内に設けたフレーム・バッファ上に生成する画像データを取得して、表示装置805上に表示させる。これに代えて、グラフィック・コントローラ804は、CPU802等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0035】
入出力コントローラ806は、ホスト・コントローラ801と、比較的高速な入出力装置であるハードディスクドライブ808、通信インターフェース807、CD−ROMドライブ809を接続する。ハードディスクドライブ808は、CPU802が使用するプログラム、及びデータを格納する。通信インターフェース807は、ネットワーク通信装置891に接続してプログラム又はデータを送受信する。CD−ROMドライブ809は、CD−ROM892からプログラム又はデータを読み取り、RAM803を介してハードディスクドライブ808、及び通信インターフェース807に提供する。

入出力コントローラ806には、ROM810と、フレキシブルディスク・ドライブ811、及び入出力チップ812の比較的低速な入出力装置とが接続される。ROM810は、コンピュータ100が起動時に実行するブート・プログラム、あるいはコンピュータ100のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ811は、フレキシブルディスク893からプログラム又はデータを読み取り、RAM803を介してハードディスクドライブ808、及び通信インターフェース807に提供する。入出力チップ812は、フレキシブルディスク・ドライブ811、あるいはパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
【0036】
CPU802が実行するプログラムは、フレキシブルディスク893、CD−ROM892、又はIC(Integrated Circuit)カード等の記録媒体に格納されて利用者によって提供される。記録媒体に格納されたプログラムは圧縮されていても非圧縮であってもよい。プログラムは、記録媒体からハードディスクドライブ808にインストールされ、RAM803に読み出されてCPU802により実行される。CPU802により実行されるプログラムは、コンピュータ100を、図1から図3に関連して説明したエラー検出部110、ログ収集部120、診断部130、メモリチェック部140、障害処理部150、及び障害ログ情報格納部160として機能させる。
【0037】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク893、CD−ROM892の他に、DVD(Digital Versatile Disk)又はPD(Phase Disk)等の光学記録媒体、MD(MiniDisk)等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークあるいはインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶媒体を記録媒体として使用して、ネットワークを介したプログラムとして提供してもよい。
【0038】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は、上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【0039】
100 コンピュータ
110 エラー検出部
120 ログ収集部
130 診断部
140 メモリチェック部
150 障害処理部
160 障害ログ情報格納部
801 ホスト・コントローラ
802 CPU
803 RAM
804 グラフィック・コントローラ
805 表示装置
806 入出力コントローラ
807 通信インターフェース
808 ハードディスクドライブ
809 CD−ROMドライブ
810 ROM
811 フレキシブルディスク・ドライブ
812 入出力チップ
891 ネットワーク通信装置
892 CD−ROM
893 フレキシブルディスク

【特許請求の範囲】
【請求項1】
複数のメモリモジュールを利用するコンピュータであって、
前記各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うメモリチェック部
を備えるコンピュータ。
【請求項2】
前記メモリチェック部は、エラーが発生したメモリモジュールに対してメモリチェックを集中的に繰り返して、メモリエラーの頻度を検出することによって、当該メモリモジュールに対するメモリチェックを行う
請求項1に記載のコンピュータ。
【請求項3】
エラーが発生したメモリモジュールを特定すると共に、当該特定されたメモリモジュールに発生したエラーが訂正可能か否かを診断する診断部
を更に備え、
前記メモリチェック部は、発生したエラーが訂正可能であると前記診断部が診断した場合に、前記診断部が特定したメモリモジュールに対してメモリチェックを行う
請求項1又は2に記載のコンピュータ。
【請求項4】
エラーが発生したメモリモジュールの位置情報と、エラーが発生したメモリモジュールがあった場合に、当該メモリモジュールのエラーが訂正可能か否かを示す情報を収集するログ収集部
を更に備え、
前記診断部は、前記ログ収集部が収集した情報に基づいて、エラーが発生したメモリモジュールを特定すると共に、当該特定されたメモリモジュールに発生したエラーが訂正可能か否かを診断する
請求項3に記載のコンピュータ。
【請求項5】
前記メモリモジュールへのエラーの発生を検出するエラー検出部
を更に備え、
前記ログ収集部は、前記エラー検出部がエラーの発生を検出したメモリモジュールを特定するための情報と、当該メモリモジュールのエラーが訂正可能か否かを示す情報を収集する
請求項4に記載のコンピュータ。
【請求項6】
エラーが発生したメモリモジュールの位置情報と、当該メモリモジュールがエラー訂正機能によって訂正可能か否かを示す情報とを対応付けて格納する障害ログ情報格納部
を更に備え、
前記ログ収集部は、前記障害ログ情報格納部に格納されている情報を参照して、エラーが発生したメモリモジュールの位置情報と、エラーが発生したメモリモジュールがあった場合に、当該メモリモジュールのエラーが訂正可能か否かを示す情報を収集する
請求項4又は5に記載のコンピュータ。
【請求項7】
複数のメモリモジュールを利用するコンピュータを制御する制御方法であって、
前記各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うメモリチェック段階
を備える制御方法。
【請求項8】
複数のメモリモジュールを利用するコンピュータ用のプログラムであって、前記コンピュータを、
前記各メモリモジュールへのアクセス頻度に拘らず、エラーが発生したメモリモジュールに対してメモリチェックを行うメモリチェック部
として機能させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate