(57)【要約】【課題】メモリシステムの性能低下を最低限に抑えつつ信頼性を向上させ、不必要な保守介入も予防する。【解決手段】制御ファームウェア６は、メモリでＥＣＣ１ビットエラー訂正が発生したことをＥＣＣ監視部８または９から通知されると、そのときのメモリの周囲温度を温度監視部１１より得る。ＥＣＣ１ビットエラー訂正が発生したときの温度が、あらかじめ設定した閾値を超える数値を示している場合、制御ファームウェア６はそのとき発生したＥＣＣ1ビットエラー訂正が高温によるデータ損失によるものと判断し、モードレジスタ制御部７に対してリフレッシュ時間の変更指示を発行する。モードレジスタ制御部７はリフレッシュ時間変更の指示を制御ファームウェア６から得ると、現在行われているメモリサイクルが終了した後に一旦メモリバスをアイドルにし、メモリのリフレッシュ間隔を短く設定するためのモードレジスタ設定サイクルを生成する。【選択図】図２
2008251066.tif 000002
【特許請求の範囲】
【請求項１】
ＥＣＣで保護された汎用ＤＲＡＭを用いたメモリシステムにおいて、メモリ周囲温度を監視し、ＥＣＣ１ビットエラー訂正が発生したときに、前記メモリ周囲温度から、該1ビットエラー訂正が温度によるものか、メモリ故障によるものかの切り分けを行い、温度による場合は、該メモリ周囲温度に応じてＤＲＡＭのリフレッシュ間隔を短く設定するメモリ制御方法。
【請求項２】
ＥＣＣで保護された汎用ＤＲＡＭを使ったメモリシステムにおいて、
メモリ周辺に温度センサーが配置され、
メモリコントローラは、前記温度センサーからの情報を監視する温度監視部と、ＤＲＡＭのモードレジスタを設定するモードレジスタ制御部と、各メモリバンクのＥＣＣ１ビットエラー訂正の発生状況を監視するＥＣＣ監視部を有しており、
ＣＰＵ上で動作している制御ファームウェアは、ＥＣＣ１ビットエラー訂正が発生したことを前記ＥＣＣ監視部より検出すると、前記温度監視部をチェックし、前記温度監視部から閾値を越える温度を検出したときは、そのときに発生したＥＣＣ１ビットエラー訂正が高温によるデータ補償不十分によるものと判断し、前記モードレジスタ制御部により、前記ＥＣＣ１ビットエラー訂正を発生したメモリバンクのＤＲＡＭのリフレッシュ間隔を短く設定する
メモリシステム。
【請求項３】
前記各ＥＣＣ監視部は、ＥＣＣ１ビットエラー訂正が発生した場合にその旨が登録されるステータスレジスタと、ＥＣＣ１ビットエラー訂正が発生した回数を保存するＥＣＣカウンタと、ＥＣＣ１ビットエラー訂正の発生回数の閾値を有し、
前記制御ファームウェアは、前記ＥＣＣステータスレジスタを定期的にポーリングし、前記ＥＣＣステータスレジスタにＥＣＣ１ビットエラー訂正の発生が登録されたことを検出すると、前記ＥＣＣカウンタをチェックし、前記ＥＣＣカウンタの値が前記閾値以上であれば、メモリ故障と判断して前記ＣＰＵに割り込みをかけてエラー処理を行い、前記ＥＣＣカウンタの値が前記閾値未満であれば、前記温度監視部をチェックし、前記温度監視部に登録されている温度がある一定値以上であった場合、前記モードレジスタ制御部に対し、該当するメモリバンクのリフレッッシュ間隔を短かく設定するための指示を発行し、前記モードレジスタ制御部は該指示を受けて、現在行われているメモリサイクルが終了した後に一旦メモリバスをアイドルにし、該当するメモリバンクのリフレッシュ間隔を短く設定するためのモードレジスタ設定サイクルを生成する、請求項２に記載のメモリシステム。
【請求項４】
メモリ周辺に温度センサーが配置され、前記温度センサーからの情報を監視する温度監視部と、ＤＲＡＭのモードレジスタを設定するモードレジスタ制御部と、ＥＣＣ１ビットエラー訂正が発生した場合にその旨が登録されるＥＣＣステータスレジスタと、ＥＣＣ１ビットエラー訂正が発生した回数を保存するＥＣＣカウンタと、ＥＣＣ１ビットエラー訂正の発生回数の閾値を有し、各メモリバンクのＥＣＣ１ビットエラー訂正の発生状況を監視するＥＣＣ監視部を有するメモリコントローラを含む、ＥＣＣで保護された汎用ＤＲＡＭを使ったメモリシステムにおいて、
前記ＥＣＣステータスレジスタを定期的にポーリングする手順と、
前記ＥＣＣステータスレジスタにＥＣＣ１ビットエラー訂正の発生が登録されたことを検出すると、前記ＥＣＣカウンタをチェックする手順と、
前記ＥＣＣカウンタの値が前記閾値以上であれば、メモリ故障と判断して前記ＣＰＵに割り込みをかけてエラー処理を行い、前記ＥＣＣカウンタの値が前記閾値未満であれば、前記温度監視部をチェックし、前記温度監視部に登録されている温度がある一定値以上であった場合、前記モードレジスタ制御部に対し、該当するメモリバンクのリフレッッシュ間隔を短かく設定するための指示を発行する手順と
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）で保護された汎用ＤＲＡＭ（ｄｙｎａｍｉｃ  ＲＡＭ）を用いたメモリシステムに関する。
【背景技術】
【０００２】
ＤＲＡＭを使った従来のメモリシステムにおいては、リフレッシュサイクルは転送効率とメモリの特性から最適な値があらかじめ設定されるのが一般的である（例えば特許文献１）。しかし、近年のＬＳＩの高性能化による消費電力の増大により装置内部の発熱量は増える傾向にある。また、ＤＲＡＭチップ単体に着目すると、微細化・高集積化によりリーク電流が増大する傾向にあり、メモリ単体の信頼性が温度に依存するケースも増えてきている。メモリの間欠故障の救済手段としてＥＣＣの1ビットエラー訂正、２ビットエラー訂正の検出が広く使われているが、このようにＥＣＣエラー訂正の発生要因がソフトエラーのみでなく、温度によるデータ損失が原因で発生する可能性もある。温度によるデータ損失に対しては、ＤＲＡＭのリフレッシュ時間を適切に設定することである程度防ぐことができるが、高温に対応したリフレッシュ間隔をメモリシステムの設定値として決めてしまうことは、不必要にリフレッシュサイクルを発生させることになる。リフレッシュサイクルを発生させるためには、メモリバスをアイドルステートにする必要があるため、高温に合わせたリフレッシュ間隔をメモリシステムの設定値として決めてしまうことは、不必要にアイドルステートを入れることになり、バスの転送効率を下げることにつながる。
【特許文献１】特開平０４−１９５８９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、メモリシステムの性能低下を最低限に抑えつつ信頼性を向上させることができ、不必要な保守介入も予防することができるメモリ制御方法およびメモリシステムを提供することにある。
【課題を解決するための手段】
【０００４】
本発明のメモリ制御方法は、メモリ周囲温度を監視し、ＥＣＣ１ビットエラー訂正が発生したときに、メモリ周囲温度から、該ＥＣＣ1ビットエラー訂正が温度によるものか、メモリ故障によるものかの切り分けを行い、温度による場合は、該メモリ周囲温度に応じてＤＲＡＭのリフレッシュ間隔を短く設定する。
【０００５】
また、本発明のメモリシステムは、
メモリ周辺に温度センサーが配置され、
メモリコントローラは、温度センサーからの情報を監視する温度監視部と、ＤＲＡＭのモードレジスタを設定するモードレジスタ制御部と、各メモリバンクのＥＣＣ１ビットエラー訂正の発生状況を監視するＥＣＣ監視部を有しており、
ＣＰＵ上で動作している制御ファームウェアは、ＥＣＣ１ビットエラー訂正が発生したことをＥＣＣ監視部より検出すると、温度監視部をチェックし、温度監視部から閾値を越える温度を検出したときは、そのときに発生したＥＣＣ１ビットエラー訂正が高温によるデータ補償不十分によるものと判断し、モードレジスタ制御部により、ＥＣＣ１ビットエラー訂正を発生したメモリバンクのＤＲＡＭのリフレッシュ間隔を短く設定する。
【０００６】
ＥＣＣで保護された汎用ＤＲＡＭを使用したメモリシステムにおいて、温度により最適なリフレッシュ間隔が設定できるので、メモリシステムの性能低下を抑えつつ信頼性を向上させることが可能となり、不必要な保守介入も予防することができる。また、特別なメモリを用意することもなく広く市販されているＤＩＭＭ（Ｄｏｕｂｌｅ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）等の汎用ＤＲＡＭを使用できるため、システム価格の上昇を抑えることができる。
【発明の効果】
【０００７】
以上説明したように、本発明は、以下に記載するような効果を奏する。
【０００８】
第１に、ＥＣＣ１ビットエラー訂正発生時に、温度による影響を判断して高温時のリフレッシュ間隔を動的に短く設定しなおす温度補償を入れることで、不必要な保守介入を防ぐことができる。
【０００９】
第２に、メモリコントローラ側で温度により適切なリフレッシュ時間を設定するようにすることで、メモリに特別な仕組みを作りこむことなく温度補償が可能となり、広く市販されている汎用ＤＲＡＭを使用することができ、価格上昇を最低限に抑えつつ高可用なメモリシステムが実現できる。
【００１０】
第３に、あらかじめリフレッシュ間隔を設定するのではなく、温度に応じて適切なリフレッシュ間隔を動的に設定しなおすように制御することで、必要以上にリフレッシュサイクルを発生させることなく、最適な間隔でリフレッシュさせることができるため、メモリバスの使用効率を落とさずに可用性が向上する。
【発明を実施するための最良の形態】
【００１１】
次に、本発明の実施の形態について図面を参照して説明する。
【００１２】
図１は本発明の一実施形態のメモリシステムの概略ブロック図である。このメモリシステムは、ＣＰＵ１と、メモリコントローラ２、ＤＲＡＭの、ＥＣＣで保護された２つのメモリバンク３、４と、メモリ周囲温度を監視するために、メモリ周辺に配置された温度センサー５とから構成される。
【００１３】
図２はメモリコントローラの詳細な構成を示すブロック図である。メモリコントローラ２は、温度センサー５からの情報を元にメモリ周囲温度を監視する温度監視部１１と、メモリバンク３のメモリバスのＥＣＣ１ビットエラー訂正の発生状況を監視し、ＥＣＣ１ビットエラー訂正が発生したときに登録されるステータスレジスタ８ｂおよび発生回数を保持するＥＣＣ１ビットエラー訂正カウンタ８ａを有するＥＣＣ監視部８と、メモリバンク４のメモリバスのＥＣＣ１ビットエラー訂正の発生状況を監視し、１ビットエラー訂正が発生したときに登録されるＥＣＣステータスレジスタ９ｂおよび発生回数を保持するＥＣＣ１ビットエラー訂正カウンタ９ａを有するＥＣＣ監視部９と、温度により適切なリフレッシュ間隔を設定するために、メモリに対してモードレジスタを設定するためのモードレジスタ制御部７と、メモリ制御部１０を有する。また、ＣＰＵ１上では、1ビットＥＣＣエラー訂正の発生状況とそのときの温度監視、およびリフレッシュ間隔などのモードレジスタの設定制御を行う制御ファームウェア６が動作する。制御ファームウェア６は、メモリでＥＣＣ１ビットエラー訂正が発生したことをＥＣＣ監視部８または９から通知されると、そのときのメモリの周囲温度を温度監視部１１より得る。温度監視部１１が示す、ＥＣＣ１ビットエラー訂正が発生したときの温度が、あらかじめ設定した閾値を超える数値を示している場合、制御ファームウェア６はそのとき発生したＥＣＣ1ビットエラー訂正が高温によるデータ損失によるものと判断し、モードレジスタ制御部７に対してリフレッシュ時間の変更指示を発行する。モードレジスタ制御部７はリフレッシュ時間変更の指示を制御ファームウェア６から得ると、現在行われているメモリサイクルが終了した後に一旦メモリバスをアイドルにし、当該メモリバンクのリフレッシュ間隔を短く設定するためのモードレジスタ設定サイクルを生成する。もし、バンク＃０のＤＲＡＭ３でＥＣＣ1ビットエラー訂正が発生し、リフレッシュ時間を短く設定するためのモードレジスタ設定サイクルが生成されている場合、バンク＃０に対するリクエストは受け付けられないが、バンク#１は処理を継続することができるため性能低下は一時的である。また、ＥＣＣ1ビットエラー訂正が発生したとき、温度監視部１１の出力の値があらかじめ設定した閾値を越えていない場合（メモリ周囲温度が高温でない場合）、制御ファームウェア６は、ＥＣＣ監視部８に保存されているＥＣＣ１ビットエラー訂正カウンタ８ａの値を参照する。ＥＣＣ１ビットエラー訂正カウンタ８ａが一定以上の数値を示しているときは、当該バンクのメモリ故障と判断し、ＣＰＵ１に対してエラーを通知し、エラー処理を開始させる。
【００１４】
次に、図２のメモリシステムにおいて、図３に示すようにバンク＃０でＥＣＣ１ビットエラー訂正が発生したときのときの動作について図４に示すフローチャートを用いて説明する。制御ファームウェア６は、ＥＣＣ監視部８(バンク＃０)、ＥＣＣ監視部９(バンク＃１)、温度監視部１１を定期的にポーリングしている。図３に示すようにＤＲＡＭ３（バンク＃０）においてＥＣＣ１ビットエラー訂正が発生したとき、ＥＣＣ制御部８(バンク＃０)のＥＣＣステータスレジスタ８ｂにフラグが立てられる。また、ＥＣＣ制御部８(バンク＃０)のＥＣＣ１ビットエラー訂正カウンタ８ａがカウントアップする。ＣＰＵ１で動作している制御ファームウェア６は図４のフローチャートのように動作する。制御ファームウェア６は、ＥＣＣ監視部のＥＣＣステータスレジスタ８ｂをリードする（ステップ１０１）。ＥＣＣステータスレジスタ８ｂにＥＣＣ１ビットエラー訂正が発生したことを示すフラグが立っていた場合、ＥＣＣ監視部８のＥＣＣ１ビットエラー訂正カウンタ８ａをリードする（ステップ１０２，１０３）。ＥＣＣ１ビットエラー訂正カウンタ８ａがあらかじめ設定した閾値を越えていた場合、制御ファームウェア６はメモリバンク#０(ＤＲＡＭ３)のメモリ固定故障によるＥＣＣ１ビットエラー訂正であると判断し、エラー処理へ移行する（ステップ１０４）。ＥＣＣ１ビットエラー訂正カウンタ８ａが閾値以下であった場合は、温度監視部１１をリードする（ステップ１０５）。温度監視部１１の温度が、あらかじめ設定した温度を上回っていた場合、制御ファームウェア６は、発生したＥＣＣ１ビットエラー訂正が高温によるエータ損失により発生したものと判断し、メモリモードレジスタ設定の処理へ移行する。メモリモードレジスタ設定の処理は、高温によるＥＣＣ１ビットエラー訂正の発生と判断された場合に、メモリのリフレッシュ間隔を温度によりあらかじめ決められた値に設定をするための処理を行う（ステップ１０６，１０７）。このリフレッシュ間隔は、高温になるにつれて短い間隔でリフレッシュが行われるように値が決められている。制御ファームウェア６は、高温によりＥＣＣ１ビットエラー訂正が発生しているものと判断すると、リフレッシュ間隔を短く設定するための指示をモードレジスタ制御部７に対して発行する。制御ファームウェア６より指示を受けたモードレジスタ制御部７は、現在メモリバンク＃０(ＤＲＡＭ３)に対して行われているメモリサイクルが終了した後に一旦バスをアイドルにし、メモリバンク＃０(ＤＲＡＭ３)のリフレッシュ間隔を短く設定するためのモードレジスタ設定サイクルを生成し、リフレッシュ間隔を短く設定する。このとき、メモリバンク＃０(ＤＲＡＭ３)に対するリクエストは受け付けることはできないが、メモリバンク#1(ＤＲＡＭ４)は処理を継続することができる。メモリバンク＃０(ＤＲＡＭ３)のリフレッシュ間隔を短く設定することでＥＣＣ１ビットエラー訂正が発生しなければ、保守介入することなく業務を継続することができる。また、メモリ周囲温度が下がったことを制御ファームウェア６が検出し、リフレッシュ間隔を元の長い設定に戻すようにすることで、高温時の必要な時にのみリフレッシュを長く設定するため、不必要にアイドルス���ートを入れなくてもよくなるため、性能低下の影響も最小限に抑えることができる。
【００１５】
なお、メモリコントローラ２および制御ファームウェア６の機能は、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間、動的にプログラムを保持するもの（伝送媒体もしくは伝送波）、その場合のサーバとなるコンピュータ内の揮発性メモリのように、一定時間プログラムを保持しているものを含む。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態によるメモリシステムの概略ブロック図である。
【図２】図１中のメモリコントローラの詳細を示すブロック図である。
【図３】図１のメモリシステムにおいてＥＣＣ１ビットエラー訂正が発生したときの様子を示す図である。
【図４】図１中のメモリコントローラにおける監視動作を示すフローチャートである。
【符号の説明】
【００１７】
１    ＣＰＵ
２    メモリコントローラ
３    ＤＲＡＭ（バンク＃０）
４    ＤＲＡＭ（バンク＃１）
５    温度センサー
６    制御ＦＷ
７    モードレジスタ制御部
８    ＥＣＣ監視部
８ａ  ＥＣＣ１ビットエラー訂正カウンタ
８ｂ  ＥＣＣステータスレジスタ
９    ＥＣＣ監視部
９ａ  ＥＣＣ１ビットエラー訂正カウンタ
９ｂ  ＥＣＣステータスレジスタ
１０  メモリ制御部
１０１〜１０７  ステップ
【図１】
2008251066.tif 000003
【図２】
2008251066.tif 000004
【図３】
2008251066.tif 000005
【図４】
2008251066.tif 000006