(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上述した特許文献1に記載された技術は、単一のメモリエリアの障害発生回数が閾値を超えた場合、ページ閉塞する。一方、メモリモジュール上の単一のメモリエリアの訂正可能な障害に留まっている場合、同時に複数の障害が発生しないため、当該メモリモジュールは、訂正不可能な障害に発展する可能性が低い。したがって、特許文献1に記載された技術は、閉塞する必要のないメモリ領域をページ閉塞するという問題点がある。
【0006】
また、上述した特許文献1に記載された技術は、メモリ試験の結果、故障を検知しなければ当該メモリエリアは、ページ閉塞の状態から解放される。しかし、メモリエリアに発生した障害が間欠障害の場合、もしくは特定のパターンで書き込んだ場合のみ発生する障害の場合、特許文献1に記載された技術は、メモリ試験を実施しても故障を確実に検知することはできない。したがって、特許文献1に記載された技術は、メモリ試験で検知できなかった故障を含むメモリエリアをページ閉塞から開放し、その結果、メモリエラーに起因する訂正不可能な障害に発展する可能性がある。また、特許文献1に記載された技術は、有効を示す登録レコードに該当するメモリエリア全てに対して、全てのパターンのメモリ試験を網羅的に実行した場合、メモリ試験実行時間が膨大になる可能性があり、現実的ではない。特許文献1に記載された技術は、メモリ試験実行時間の短縮のため、有効を示す登録レコードに該当するメモリエリア全てに対して、特定のパターンのみのメモリ試験を実施した場合、故障を検知できない可能性が大きくなる。
【0007】
本発明の目的の一例は、上述した問題点を解決できるメモリモジュール制御装置、メモリモジュール制御方法およびプログラムを提供することにある。具体的には、本発明の目的の一例は、メモリモジュールの致命的な障害を未然に防止できるメモリモジュール制御装置、メモリモジュール制御方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0008】
本発明の一形態における第1のメモリモジュール制御装置は、少なくとも1つのメモリモジュールを含む記憶装置のメモリモジュールで発生した訂正可能な障害を検出する障害検出部と、訂正可能な障害が発生したメモリモジュールのメモリチップ単位の領域であるメモリ領域を特定する障害箇所特定部と、メモリモジュールでの特定されたメモリ領域を含む複数のメモリ領域において訂正可能な障害が発生した場合、メモリモジュールに対して処置を実施する制御部とを備える。
【0009】
本発明の一形態における第1のメモリモジュール制御方法は、少なくとも1つのメモリモジュールを含む記憶装置のメモリモジュールで発生した訂正可能な障害を検出した場合、訂正可能な障害が発生したメモリモジュールのメモリチップ単位の領域であるメモリ領域を特定し、メモリモジュールでの特定されたメモリ領域を含む複数のメモリ領域において訂正可能な障害が発生した場合、メモリモジュールに対して処置を実施する。
【0010】
本発明の一形態における第1のプログラムは、コンピュータに、少なくとも1つのメモリモジュールを含む記憶装置のメモリモジュール上で発生した訂正可能な障害を検出した場合、訂正可能な障害が発生したメモリモジュール上のメモリチップ単位の領域であるメモリ領域を特定し、メモリモジュールでの特定されたメモリ領域を含む複数のメモリ領域において訂正可能な障害が発生した場合、メモリモジュールに対して処置を実施する処理を実行させる。
【発明の効果】
【0011】
本発明によれば、メモリモジュールの致命的な障害を未然に防止できるという効果が得られる。
【発明を実施するための形態】
【0013】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【0014】
[第1の実施の形態]
図1は、本発明の第1の実施の形態におけるメモリモジュール制御装置を含む情報処理装置1000の構成の一例を示すブロック図である。
図1を参照すると、情報処理装置1000のメモリモジュール制御装置100は、障害検出部110と障害箇所特定部120と制御部130と、を備える。メモリモジュール制御装置100は、1つないし複数のメモリモジュールと接続するが、メモリモジュール制御装置100の構成要素の一部ないし全部がメモリモジュールの一部であってもよい。たとえば、メモリモジュールと障害検出部110と制御部130が、1つのCPU(Central Processing Unit)ボード上にあってもよい。
図1の情報記憶装置1000において、メモリモジュール制御装置100は、SDRAM(Synchronous Dynamic Random Access Memory)201〜208を実装するメモリモジュール200と、SDRAM211〜218を実装するメモリモジュール210と、接続する。メモリモジュール200と、メモリモジュール210は、記憶装置を構成する。
【0015】
次に、第1の実施の形態におけるメモリモジュール制御装置100の構成について説明する。
【0016】
障害検出部110は、メモリモジュール制御装置100が接続するメモリモジュールで発生した訂正可能な障害を検出し、障害箇所特定部120に、例えば、訂正可能な障害を検出したことを表す通知情報を通知する。その通知情報には、訂正可能な障害を発生したメモリチップ(SDRAM)の情報が含まれていてもよい。
【0017】
障害箇所特定部120は、障害検出部110から訂正可能な障害の検出の通知を受信した場合、訂正可能な障害が発生したメモリ領域を特定し、図示しない記憶部にそのメモリ領域を特定する情報を記録するとともに、制御部130に、その情報を通知する。このときのメモリ領域とは、メモリモジュール上に実装された物理的なメモリチップ単位、たとえばSDRAMとする。すなわち、図示しない記憶部に記録するメモリ領域を特定する情報とは、メモリモジュール上に実装されたメモリチップのID(Identification)情報であってもよい。
【0018】
図2は、本実施の形態に係る障害箇所特定部120が図示しない記憶部に記録する情報の一例を示す図である。
図2を参照すると、障害箇所特定部120は、訂正可能な障害が発生したメモリ領域と、当該メモリ領域が実装されているメモリモジュールの2つの情報を記録する。これらの情報の他に、障害箇所特定部120は、当該メモリ領域において発生した訂正可能な障害の発生回数を記録してもよい。また、情報の形式は、
図2の形式に限らない。
【0019】
図3は、本実施の形態に係る障害箇所特定部120が図示しない記憶部に記録する情報の別の一例を示す図である。
図3に示すように、障害箇所特定部120が記録する情報の形式は、全てのメモリモジュールのSDRAMの訂正可能な障害の発生回数が記録される形式でもよい。図示しない記憶部は、後述される
図4における主記憶装置14または二次記憶装置15であってもよい。
【0020】
制御部130は、記憶装置を構成するメモリモジュール200、210の一方のメモリモジュール上の複数のメモリ領域において訂正可能な障害が発生した場合、当該メモリモジュール(以降、同一メモリモジュールとも言う)に対して処置を実施する。具体的に、障害箇所特定部120から訂正可能な障害が発生したメモリ領域を特定したことの通知(訂正可能な障害が発生したメモリ領域を特定する情報を含む)を受信した場合、制御部130は、図示しない記憶部に記録された、訂正可能な障害を検出したメモリ領域の情報(たとえば
図2または
図3に示す情報)を参照する。参照した結果、制御部130は、当該メモリ領域以外に同一メモリモジュールにおいて訂正可能な障害を検出したメモリ領域の情報が記録されていたと判断した場合、当該メモリモジュールに対して処置を実施する。処置とは、たとえば制御部130が当該メモリモジュールを使用しないよう稼動から切り離す(あるいは当該メモリモジュールをイネーブルしない)処置である。また、制御部130は、使用者に当該メモリモジュールの交換要求の通知を図示しない出力部(後述される
図4における出力装置12)に出力する処置を行ってもよい。
【0021】
ここで、
図2に示す状態のメモリモジュール200、210のどちらかにおいて訂正可能な障害が発生した場合を検討する。
【0022】
1つ目のケースとして、障害箇所特定部120は、メモリモジュール200のSDRAM、たとえばSDRAM201のメモリ領域上で訂正可能な障害が発生したと特定したとする。この場合、まず、障害箇所特定部120は、図示しない記憶部にメモリモジュール200のSDRAM201で訂正可能な障害が発生した旨の情報を記録するとともに、制御部130に、訂正可能な障害が発生したメモリ領域を特定したことを通知する。次に、制御部130は、図示しない記憶部に記録された、訂正可能な障害を検出したメモリ領域の情報を参照する。この結果、制御部130は、訂正可能な障害が発生したメモリモジュール200には他に訂正可能な障害が発生したメモリ領域がないことを確認する。したがって、制御部130は、訂正可能な障害が発生したメモリモジュール200に対して処置はせずに処理を続行する。
【0023】
2つ目のケースとして、障害箇所特定部120は、メモリモジュール210のSDRAM218のメモリ領域上で訂正可能な障害が発生したと特定したとする。この場合、まず、障害箇所特定部120は、図示しない記憶部にメモリモジュール210のSDRAM218で訂正可能な障害が発生した旨の情報を記録するとともに、制御部130に、訂正可能な障害が発生したメモリ領域を特定したことを通知する。メモリモジュール210のSDRAM218で訂正可能な障害が発生した旨の情報は既に記録済みである場合、障害箇所特定部120は、記録を上書きしてもよいし、記録をスキップしてもよい。もし障害発生回数を記録している場合、障害箇所特定部120は、発生回数を更新する。次に、制御部130は、図示しない記憶部に記録された、訂正可能な障害を検出したメモリ領域の情報を参照する。この結果、制御部130は、訂正可能な障害が発生したメモリモジュール210には他に訂正可能な障害が発生したメモリ領域がないことを確認する。したがって、制御部130は、訂正可能な障害が発生したメモリモジュール210に対して処置はせずに処理を続行する。
【0024】
3つ目のケースとして、障害箇所特定部120は、メモリモジュール210のSDRAM218以外のSDRAM、たとえばSDRAM211のメモリ領域上で訂正可能な障害が発生したと特定したとする。この場合、まず、障害箇所特定部120は、図示しない記憶部にメモリモジュール210のSDRAM211で訂正可能な障害が発生した旨の情報を記録するとともに、制御部130に通知する。次に、制御部130は、図示しない記憶部に記録された、訂正可能な障害を検出したメモリ領域の情報を参照する。この結果、制御部130は、訂正可能な障害が発生したメモリモジュール210には、訂正可能な障害が発生したSDRAM211以外に既にSDRAM218で訂正可能な障害が発生していることを確認する。したがって、制御部130は、訂正可能な障害が発生したメモリモジュール210に対して前述した処置を実施する。
【0025】
図4は、本発明の第1の実施の形態におけるメモリモジュール制御装置100をコンピュータ装置で実現した場合のハードウェア構成例を示す図である。
図4に示されるように、メモリモジュール制御装置100は、それぞれ通信インタフェース10、CPU11、出力装置12、入力装置13、主記憶装置14、および二次記憶装置15を含む。
【0026】
通信インタフェース10は、処理装置および周辺端末との通信のための入出力インタフェースを構成する。また通信インタフェース10は、メモリモジュール制御装置100に接続する図示しないネットワークとの接続制御のためのインタフェースも含む。
【0027】
CPU11は、オペレーティングシステムを動作させて本発明の第1の実施の形態に係るメモリモジュール制御装置100の全体を制御する。また、CPU11は、例えば二次記憶装置15から主記憶装置14にプログラムまたはデータを読み出す。具体的には、メモリモジュール制御装置100のCPU11は、第1の実施の形態における障害検出部110と障害箇所特定部120と制御部130として動作し、それぞれプログラム制御に基づいて各種の処理を実行する。また、メモリモジュール制御装置100のCPU11は、1つに限らず2つ以上備えていてもよい。
【0028】
出力装置12は、例えばディスプレイ、表示器で実現され、出力を確認するために用いられる。
【0029】
入力装置13は、例えばマウスやキーボード、内蔵のキーボタン等で実現され、入力操作に用いられる。入力装置13は、マウスやキーボード、内蔵のキーボタンに限らず、例えばタッチパネルでもよい。
【0030】
主記憶装置14は、CPU11の制御に基づく作業用メモリである。
【0031】
二次記憶装置15は、例えば光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、または半導体メモリ等であって、コンピュータプログラムをコンピュータ読み取り可能に記録する。二次記憶装置15は、メモリモジュール制御装置100が実行するためのコンピュータプログラムを一時的に記憶するまたは非一時的に記憶する。したがって、CPU11は、二次記憶装置15に記録されているコンピュータプログラムを読み込み、そのプログラムにしたがって、障害検出部110と障害箇所特定部120と制御部130として動作してもよい。また、コンピュータプログラムは、通信網に接続されている図示しない外部コンピュータからダウンロードされてもよい。
【0032】
なお、第1の実施の形態の説明において利用されるブロック図(
図1)には、機能単位のブロックが示されている。これらの機能ブロックは、
図4に示すコンピュータ装置に限らず、各部がハードウェア回路によって実現されてもよい。ただし、メモリモジュール制御装置100が備える各部の実現手段は特に限定されない。すなわち、メモリモジュール制御装置100は、物理的に結合した1つの装置により実現されてもよいし、物理的に分離した2つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
【0033】
以上のように構成されたメモリモジュール制御装置100の動作について、
図5のフローチャートを参照して説明する。
【0034】
図5は、第1の実施の形態におけるメモリモジュール制御装置100での訂正可能な障害の発生に基づく処置の動作の概要を示すフローチャートである。尚、このフローチャートによる処理は、前述したCPUによるプログラム制御に基づいて、実行されても良い。
【0035】
図5に示すように、まず、メモリモジュール制御装置100が接続するメモリモジュール上で発生した訂正可能な障害を検出した場合(ステップS101でYES)、障害検出部110は、障害箇所特定部120にその検出を通知する(ステップS102)。
【0036】
次に、障害箇所特定部120は、訂正可能な障害が発生したメモリ領域を特定し、図示しない記憶部に当該メモリ領域を特定する情報を記録する(ステップS103)。また、障害箇所特定部120は、制御部130に訂正可能な障害が発生したメモリ領域を特定したことを通知する(ステップS104)。
【0037】
次に、制御部130は、図示しない記憶部に記録された、訂正可能な障害を検出したメモリ領域の情報を参照し、当該メモリ領域以外に同一メモリモジュールにおいて訂正可能な障害を検出したメモリ領域の情報が記録されているか否か確認する(ステップS105)。もし、記録されていない場合(ステップS105でNO)、制御部130は、本動作を終了する。もし、記録されている場合(ステップS105でYES)、制御部130は、当該メモリモジュールに対して処置を実施する(ステップS106)。
【0038】
以上で、メモリモジュール制御装置100は、訂正可能な障害の発生に基づく処置の動作を終了する。メモリモジュール制御装置100は、本動作を所定の周期で定期的に実施する。また、障害検出部110が訂正可能な障害を検出したことをトリガにしてステップS102以降を実施する動作としてもよい。
【0039】
次に、本発明の第1の実施の形態の効果について説明する。
【0040】
上述した本実施形態におけるメモリモジュール制御装置100は、メモリモジュールの致命的な障害を未然に防止できる。
【0041】
その理由は、以下のような構成を含むからである。即ち、第1に障害検出部は、メモリモジュール上で発生した訂正可能な障害を検出する。第2に、障害箇所特定部は、訂正可能な障害が発生したメモリモジュール上のメモリチップ単位の領域であるメモリ領域を特定する。第3に、制御部は、同一のメモリモジュール上の複数のメモリ領域において訂正可能な障害が発生した場合、メモリモジュールに対して処置を実施する。これにより、制御部130は、メモリモジュール上の単一のメモリエリアの訂正可能な障害に留まっている場合は処置しないことを可能にする。また、制御部130は、同一のメモリモジュール上の複数のメモリ領域において訂正可能な障害が発生した場合、メモリ空間に組み込まないよう処置することを可能にする。したがって、メモリモジュールの致命的な障害を未然に防止できるという効果が得られる。
【0042】
[第2の実施の形態]
図6は、本発明の第2の実施の形態におけるメモリモジュール制御装置の構成の一例を示すブロック図である。
図6を参照すると、メモリモジュール制御装置500は、障害検出部510と、障害箇所特定部520と、制御部530と、を備える。本実施の形態は、第一の実施の形態におけるメモリモジュール制御装置100の基本的な構成に相当する。障害検出部510と、障害箇所特定部520と、制御部530のそれぞれの一例が、第1の実施の形態における障害検出部110と、障害箇所特定部120と、制御部130である。
【0043】
障害検出部510は、少なくとも1つのメモリモジュールを含む記憶装置のメモリモジュールで発生した訂正可能な障害を検出する。障害箇所特定部520は、訂正可能な障害が発生したメモリモジュールのメモリチップ単位の領域であるメモリ領域を特定する。制御部530は、メモリモジュールでの特定されたメモリ領域を含む複数のメモリ領域において訂正可能な障害が発生した場合、特定されたメモリ領域のメモリチップを含むメモリモジュールに対して処置を実施する。
【0044】
障害箇所特定部520は、メモリモジュールにおいて訂正可能な障害が発生した複数のメモリ領域を特定した場合、制御部530は、メモリモジュールを使用しないよう処置を実施してもよい。
【0045】
次に、本発明の第2の実施の形態の効果について説明する。
【0046】
上述した本実施形態におけるメモリモジュール制御装置500は、メモリモジュールの致命的な障害を未然に防止できる。
【0047】
その理由は、制御部530は、メモリモジュールでの特定されたメモリ領域を含む複数のメモリ領域において訂正可能な障害が発生した場合、特定されたメモリ領域のメモリチップを含むメモリモジュールに対して処置を実施するからである。そのため、制御部530は、メモリモジュールの単一のメモリエリアの訂正可能な障害に留まっている場合は処置しないことを可能にする。また、制御部130は、同一のメモリモジュール上の複数のメモリ領域において訂正可能な障害が発生した場合、メモリ空間に組み込まないよう処置することを可能にする。したがって、メモリモジュールの致命的な障害を未然に防止できるという効果が得られる。
【0048】
以上説明した、本発明の各実施形態における各構成要素は、その機能をハードウェア的に実現することはもちろん、プログラム制御に基づくコンピュータ装置、ファームウェアで実現することができる。プログラムは、磁気ディスクや半導体メモリなどのコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における構成要素として機能させる。
【0049】
以上、各実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえる様々な変更をすることができる。
【0050】
たとえば、以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が1個のモジュールとして実現されたり、一つの構成要素が複数のモジュールで実現されたりしてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。
【0051】
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
【0052】
さらに、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複していたりしていてもよい。
【0053】
さらに、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作の全ての関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。