(57)【要約】【課題】コンピュータシステムの状態に応じてメモリモジュールのリフレッシュレートを動的に調節する方法及び装置を提供すること。【解決手段】一実施形態は、コンピュータシステム（１００）においてダイナミック・ランダム・アクセス・メモリ（「ＤＲＡＭ」）（１０２）のリフレッシュレートを動的に調節する方法である。この方法は、複数のシステム状態を監視し（２０２）、監視したシステム状態のうちの少なくとも１つにおける変化を検出し（２０４）、検出に応じてコンピュータシステムの現在の状態における最適リフレッシュレートを判定し（３０２）、リフレッシュレートをその判定された最適リフレッシュレートに設定すること（３０２）からなる。【選択図】図１
2006120144.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムにおけるダイナミック・ランダム・アクセス・メモリ（「ＤＲＡＭ」）モジュール（１０２）のリフレッシュレートを動的に調節する方法であって、
複数のシステム状態を監視するステップ（２０２）と、
監視する前記システム状態のうちの少なくとも１つにおける変化を検出するステップ（２０４）と、
検出に応じて、前記コンピュータシステムの現在の状態における最適リフレッシュレートを判定するステップ（３０２）と、
前記リフレッシュレートを判定された最適リフレッシュレートに設定するステップ（３０２）と
からなる方法。
【請求項２】
監視される前記システム状態は、温度、消費電力、高度、気圧、ＤＲＡＭ製造業者、メモリモジュール搭載位置、及びバス使用率からなるグループの中から選択される、請求項１に記載の方法。
【請求項３】
前記監視は、温度検出素子、パフォーマンスカウンタ、高度計、及び気圧計（１０６、１１０）からなるグループの中から選択されたいずれか１つの機器を使用して実施される、請求項１または請求項２に記載の方法。
【請求項４】
前記検出は、前記コンピュータシステム（１００）に関連する冷却ファン（１０８）の故障を検出することからなり、判定される前記最適リフレッシュレートは元のリフレッシュレートよりも高い、請求項１〜３のうちのいずれか一項に記載の方法。
【請求項５】
前記検出は、前記コンピュータシステム（１００）に関連する冷却ファン（１０８）の修理を検出することからなり、判定される前記最適リフレッシュレートは元のリフレッシュレートよりも低い、請求項１に記載の方法。
【請求項６】
前記判定は、ルックアップテーブル（１２０）中の、前記少なくとも１つのシステム状態に対応する最適リフレッシュレートを得ることからなる、請求項１〜４のうちのいずれか一項に記載の方法。
【請求項７】
前記判定は、前記少なくとも１つのシステム状態に数式を適用することからなり（１１２）、該適用の結果は、前記少なくとも１つのシステム状態に対応する最適リフレッシュレートからなる、請求項１〜６のうちのいずれか一項に記載の方法。
【請求項８】
前記設定は、リフレッシュレート設定（「ＳＲＲ」）信号を前記ＤＲＡＭモジュール（１０２）に接続されたチップセット（１０１）に送信し、リフレッシュコマンドを前記ＤＲＡＭモジュール（１０２）に送信する速度を設定することからなる、請求項１〜７のうちのいずれか一項に記載の方法。
【請求項９】
コンピュータシステム（１００）におけるダイナミック・ランダム・アクセス・メモリ（「ＤＲＡＭ」）（１０２）のリフレッシュレートを動的に調節するシステムであって、
複数のシステム状態を監視する手段（１０６）と、
監視する前記システム状態のうちの少なくとも１つにおける変化を検出する手段（１０４）と、
監視する前記システム状態のうちの少なくとも１つにおける変化の検出に応じて、前記コンピュータシステムの現在の状態における最適リフレッシュレートを判定する手段（１１２）と、
前記リフレッシュレートを判定された前記最適リフレッシュレートに設定する手段（１０１）と、
からなるシステム。
【請求項１０】
監視する前記システム状態は、温度、消費電力、高度、気圧、ＤＲＡＭ製造業者、メモリモジュール搭載位置、及びバス使用率からなるグループの中から選択され、
前記監視する手段は、温度検出素子、パフォーマンスカウンタ、高度計、及び気圧計（１０６、１１０）からなるグループの中から選択されたいずれか１つの測定装置からなる、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータシステムにおいてメモリモジュールのリフレッシュレートを動的に調節する方法及び装置に関する。
【背景技術】
【０００２】
ダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）モジュールは容量性電池（セル）から構成され、その電荷は時間が経つにつれて漏洩することが一般に知られている。従って、ＤＲＡＭセルは毎秒何千回も再充電、すなわち「リフレッシュ」しなければならず、そうしなければＤＲＡＭセルのデータは失われてしまう。ＤＲＡＭセルの電荷はセルの読み出しや書き込みによってリフレッシュされるため、ＤＲＡＭをリフレッシュする一般的方法は各セルを定期的に読み出すことである。これは通常、行アドレスストローブすなわちＲＡＳを使用して各行をアクティブにするだけで達成される。その他に、ＤＲＡＭセルコントローラはリフレッシュサイクルのスケジューリングも管理し、リフレッシュによって通常の読み出しや書き込みが妨害されないようにする。ＤＲＡＭモジュールのデータが漏電によって失われないようにするために、ＤＲＡＭセルコントローラはＲＡＳを繰り返し循環させて使用し、一連の行アドレスをアドレスバスに配置することにより、全ての行を定期的にスイープする。
【０００３】
たとえ全てのリフレッシュをＤＲＡＭセルコントローラで処理し、最大性能が得られるようにリフレッシュをスケジューリングしようとしても、数ミリ秒ごとに行わなければならない各行のリフレッシュは、読み出しや書き込みの実行の障害となる可能性があり、ＤＲＡＭモジュールの性能に大きな悪影響を与える可能性がある。従って、ＤＲＡＭセルのリフレッシュに要する時間を短縮することが、システム性能全体にとって有益であることは明らかである。
【０００４】
ＤＲＡＭモジュール全体のリフレッシュに要するリフレッシュサイクルの数は、ＤＲＡＭモジュールのＤＲＡＭセルの行数によって決まる。行数が増えるほど、モジュール全体のリフレッシュに要するサイクル数は増える。従って、ＤＲＡＭモジュールのリフレッシュに要する時間を短縮する一つの方法は、モジュールの行数を減らすことである。
【０００５】
ＤＲＡＭモジュールのリフレッシュに要する時間を短縮する他の方法として、リフレッシュレート、すなわち、モジュールがリフレッシュされる頻度を調節することがある。コンピュータシステムの「ＢＩＯＳ（Ｂａｓｉｃ  Ｉ／Ｏ  Ｓｙｓｔｅｍ）」は一般に、ユーザがＤＲＡＭモジュールのリフレッシュレートを設定するための機能を有する。一実施形態において、ＢＩＯＳは３つの異なるリフレッシュレートの設定、及び「ＡＵＴＯ（自動）」オプションを有する。ＡＵＴＯオプションが選択されると、ＢＩＯＳはＤＲＡＭモジュールに問い合わせ、最大の互換性が得られることが判明した最低の設定を使用する。リフレッシュレートの最適化は重要であるが、難しい。頻繁にリフレッシュしすぎると、上述のようにシステム性能に悪影響を及ぼす。しかしながら、あまりにもまれにしかリフレッシュしないと、データが失われる可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
様々な状態が、リフレッシュレートの最適化に影響を与える可能性がある。そうした状態には、温度、消費電力、高度、気圧、ＤＲＡＭ製造業者、メモリモジュールの搭載位置、バス使用率などがある。単純化のために、以下ではそれらの状態をまとめて「システム状態」と呼ぶことにする。前述のように、リフレッシュレートはコンピュータシステムの起動中に設定され、システムがリブートされるまでそのリフレッシュレートが維持される。言い換えれば、現在のところ、リフレッシュレートは、システムの使用中における上述のようなシステム状態のうちの１以上の変化に適応することができない。例えば、温度が変化すると、リフレッシュレートを変更してシステム性能を最適化しなければならない場合がある。しかしながら、当該技術分野の現状では、システムをリブートせずにこの変更を行うことが出来ない。そのため、従来の解決法は、冷却システムを過剰設計したり、リフレッシュレートを高レベルに常時固定（すなわち、単位時間当たりのリフレッシュ回数が比較的多い）したりするものになっている。前者は、種々の極端な高温条件下でＤＲＡＭモジュールのオーバーヒートを防止するのに役立つものの、コストや消費エネルギー消費を増加させる。また、後者はシステム性能に悪影響を与える。
【課題を解決するための手段】
【０００７】
ＤＲＡＭリフレッシュレートを動作中のシステム状態の変化に応じて調節する方法を開示する。一実施形態は、コンピュータシステムにおけるＤＲＡＭモジュールのリフレッシュレートを動的に調節する方法である。この方法は、複数のシステム状態を監視し、監視されたシステム状態のうちの少なくとも１つにおける変化を検出し、検出に応じて、コンピュータシステムの現在の状態における最適リフレッシュレートを判定し、そして、リフレッシュレートをその判定された最適リフレッシュレートに設定することからなる。
【発明を実施するための最良の形態】
【０００８】
図中、複数の図面にわたって、同一の要素または類似の要素には同じ参照符号を付してある。また、図面に描かれた種々の要素は必ずしも一定の縮尺で描かれてはいない。
【０００９】
図１は、ＤＲＡＭリフレッシュレートを使用中のシステムのシステム状態の変化に応じて動的に調節する方法及びシステムの一実施形態を実施するコンピュータシステム１００の一部を示すブロック図である。図１に示すように、コンピュータシステム１００はＤＲＡＭサブシステム１０２に対してリフレッシュコマンドを発行するためのチップセットを有する。このチップセットは、一実施形態においてセルコントローラ１０１である。ＤＲＡＭサブシステム１０２は複数のＤＲＡＭモジュールを含み、各ＤＲＡＭモジュールがＤＲＡＭセルを含み、各ＤＲＡＭセルが１ビットのデータを記憶する。上述のように、ＤＲＡＭセルの電荷を維持し、ＤＲＡＭセルに保持されたデータを維持するためには、各セルを時々リフレッシュしなければならない。この処理は例えば、セルコントローラ１０１からリフレッシュコマンドを定期的に発行することによって行われる。
【００１０】
システム１００は更に、複数のシステムモニタ・検出器１０６からシステム状態情報を受信するための管理ファームウェア１０４を有する。この管理ファームウェアは、システム状態情報を受信し、それを処理するための、プロセッサで実行されるソフトウェアを有する。この処理の詳細については、図２に関連して後で詳しく説明する。
【００１１】
システムモニタ・検出器１０６は、ＤＲＡＭサブシステム１０２の最適リフレッシュレートに影響を与える可能性を持つシステム１００のシステム状態を監視及び検出するための複数の装置からなる。システムモニタ・検出器１０６は、例えば、ＤＲＡＭサブシステム１０２を最適温度に維持するように設計された１以上の冷却ファン１０８の状態を監視する。何らかの理由でファン１０８が動作不能になると、システムモニタ・検出器１０６はこの状態を検出し、それをシステム状態情報として管理ファームウェア１０４に報告する。同様に、システムモニタ・検出器１０６は１以上の温度検出素子１１０によって測定されたシステム１００の或る部分の温度を監視し、それを同様にして管理ファームウェア１０４に報告する。監視可能な状態は他にも、電力消費、高度、気圧、ＤＲＡＭ製造業者、メモリモジュール搭載位置、バス使用率などがある。従って、システムモニタ・検出器１０６は、それらのシステム状態を測定及び検出するための高度計、気圧計、パフォーマンスカウンタ等の適当な装置を含む場合がある。一実施形態において、システムモニタ・検出器１０６は冷却ファンの故障や修理を検出する場合がある。
【００１２】
一実施形態において、このシステム状態情報は一定時間間隔で自動的に管理ファームウェア１０４に報告される。他の実施形態において、管理ファームウェア１０４は、自分自身に対して発行されたシステム状態情報の要求によってシステムモニタ・検出器１０６をポーリングし、そのような情報を得る場合がある。さらに他の実施形態では、例えば情報が変化した時（例えば、ファン故障や温度変化）に、システム状態情報を管理ファームウェアに報告するようにしてもよい。
【００１３】
後で詳しく説明するように、管理ファームウェア１０４は、システム状態情報の変化を検出すると、セルコントローラ１０１を介して「新規設定」コマンドをシステムファームウェア１１２に発行する。この新規設定コマンドは、システムモニタ・検出器１０６から受信したシステム状態情報を含む。システムファームウェア１１２は、新規設定コマンドを受信すると、所与の現在のシステム状態における最適リフレッシュレートを判定し、「リフレッシュレート設定」（「ＳＲＲ」）コマンドをセルコントローラ１０１に対して発行することにより、その新たに判定された最適リフレッシュレートでリフレッシュコマンドを発行すべきことをセルコントローラ１０１に命じる。一実施形態において、この最適リフレッシュレートは、種々のシステム状態（またはその範囲）を対応する最適リフレッシュレートにマッピングする多次元ルックアップテーブル（「ＬＵＴ」）１２０を使用して判定される。他の実施形態において、この最適リフレッシュレートは適当な状態をすべて考慮した数式を用いて判定され、所与の一連の状態における最適リフレッシュレートが生成される。一実施形態において、システム状態情報が冷却ファンの故障を示す場合、最適リフレッシュレートは元のリフレッシュレートよりも高く設定され、システム状態情報が冷却ファンの修理を示す場合、最適リフレッシュレートは元のリフレッシュレートよりも低く設定される場合がある。
【００１４】
図２は、一実施形態による管理ファームウェア１０４の動作を示すフロー図である。ブロック２００では、システム状態情報をチェックする時刻であるか否かの判定を行う。上述のように、この判定は、所定時間を経過することによって実施されてもよいし、システムモニタ・検出器１０６からシステム状態情報を受信することによって実施されてもよい。まだシステム状態情報をチェックする時刻でない場合は、再びブロック２００が実行される。システム状態情報をチェックする時刻であれば、処理はブロック２０２へ進む。ブロック２０２では、現在のシステム状態情報を前のシステム状態情報と比較する。ブロック２０４では、現在のシステム状態情報と前のシステム状態情報が同じであるか否かの判定を行う。両者が同じでなかった場合、それはシステム状態に変化があったことを意味するため、管理ファームウェア１０４は、ブロック２０６で新規設定コマンドをシステムファームウェア１１２に送信する。
【００１５】
図３は、一実施形態によるシステムファームウェア１１２の動作を示すフロー図である。ブロック３００では、新規設定コマンドを受信したか否かの判定を行う。受信していない場合は、再びブロック３００が実行される。受信していた場合、処理はブロック３０２へ進む。ブロック３０２で、システムファームウェア１１２は、所与の状態における最適リフレッシュレートを判定した後、リフレッシュレート設定コマンドをセルコントローラ１０１に送信し、その新たに判定されたリフレッシュレートでリフレッシュコマンドを発行すべきことをセルコントローラ１０１に命じることにより、リフレッシュレートを調節する。上述のように、一実施形態において、この最適リフレッシュレートは、種々のシステム状態（またはその範囲）を対応する最適リフレッシュレートにマッピングする多次元ルックアップテーブル（「ＬＵＴ」）１２０を使用して判定される。また、他の実施形態において、この最適リフレッシュレートは適当な状態をすべて考慮した数式を用いて判定され、所与の一連の状態における最適リフレッシュレートが生成される場合もある。いかなる数の異なる方法を使用して、種々の一連の状態における最適リフレッシュレートを判定してもよいものと考えられる。
【００１６】
また、管理ファームウェア１０４とシステムファームウェア１１２は別々の要素として図示されているが、それらの機能は単一の要素として実施することも可能である。さらに、ファームウェア１０４、１１２の機能も、必要であれば３以上の要素として実施することも可能である。
【００１７】
このように、この明細書に記載した本発明の一実施形態によれば、コンピュータシステムにおけるＤＲＡＭモジュールのリフレッシュレートを動的に調節する方法及びシステムが得られる。特に本明細書の教示によれば、通常動作中のコンピュータシステムの性能が確実に最適化されるだけでなく、最悪の動作条件に合わせてコンピュータシステムをオンザフライで調節した後、条件が許せば、その後直ぐにコンピュータシステムを高性能モードに戻すことが可能になる。従って、本発明の実施形態は、コンピュータシステムに関係する環境設備の過剰設計に伴う高コストを回避するのに役立つ。
【００１８】
図示説明した種々の実施形態は単なる例に過ぎない。従って、当然ながら、特許請求の範囲に記載した本発明の範囲から外れることなく、種々の変形や変更を行うことも可能であるものと解釈しなければならない。
【図面の簡単な説明】
【００１９】
【図１】一実施形態によるコンピュータシステムの一部を示すブロック図である。
【図２】図１のコンピュータシステムの管理ファームウェアのループ動作を示すフロー図である。
【図３】図１のコンピュータシステムのシステムファームウェアのループ動作を示すフロー図である。
【符号の説明】
【００２０】
１００  コンピュータシステム
１０１  セルコントローラ（チップセット）
１０２  ＤＲＡＭモジュール
１０４  管理ファームウェア
１０６  システムモニタ・検出器
１０８  冷却ファン
１１２  システムファームウェア
１２０  ルックアップテーブル
【図１】
2006120144.tif 000003
【図２】
2006120144.tif 000004
【図３】
2006120144.tif 000005