(57)【要約】【課題】オペレーティングシステム側において特段の対応を行なうことなく、余剰となったメモリモジュールの消費電力を削減できる、サーバを提供する。【解決手段】本発明のサーバは、システム運用中に複数のメモリモジュールの中から外部指定されたメモリモジュールをシステムから切り離すとともに、この切り離したメモリモジュールを再組み込みする機能を有するオペレーティングシステムと、複数のメモリモジュールの中で余剰のメモリモジュールとなり得る余剰メモリモジュールを判定するメモリアクセス頻度監視手段と、オペレーティングシステムに対して、余剰メモリモジュールのシステムからの切り離し要求、および切り離した余剰メモリモジュールのシステムへの組み込み要求を行うとともに、余剰メモリモジュールがシステムから切り離された場合に当該余剰メモリモジュールの動作状態を制御するメモリ状態管理手段と、を備える。【選択図】図１
2013149065.tif 000002
【特許請求の範囲】
【請求項１】
システム運用中に複数のメモリモジュールの中から外部要求により指定されたメモリモジュールをシステムから切り離すとともに、この切り離したメモリモジュールを再組み込みする機能を有するオペレーティングシステムと、
前記複数のメモリモジュールの各メモリモジュールへのアクセス頻度を監視し、このアクセス頻度の監視結果を基に、前記複数のメモリモジュールの中で余剰のメモリモジュールとなり得る余剰メモリモジュールを判定するメモリアクセス頻度監視手段と、
前記オペレーティングシステムに対して、前記余剰メモリモジュールのシステムからの切り離し要求、および前記切り離した余剰メモリモジュールのシステムへの組み込み要求を行うとともに、前記余剰メモリモジュールがシステムから切り離された場合に当該余剰メモリモジュールの動作状態を制御するメモリ状態管理手段と、
を備えることを特徴とするサーバ。
【請求項２】
前記メモリ状態管理手段は、
前記システムから切り離された余剰メモリモジュールについて、リフレッシュ動作停止状態と、電源オフ状態との２つの動作状態を管理する機能を有し、
前記メモリアクセス頻度監視手段は、
オペレーティングシステムに組み込まれている各メモリモジュール全体へのアクセス頻度に応じて、前記切り離された余剰メモリモジュールをリフレッシュ動作停止状態と電源オフ状態との間で遷移させるように前記メモリ状態管理手段に指示する
ことを特徴とする請求項１に記載のサーバ。
【請求項３】
前記メモリアクセス頻度監視手段は、
前記各メモリモジュールにおいてメモリアクセス頻度が所定の第１閾値以下のメモリモジュールが検出された場合に、当該メモリモジュールが余剰メモリモジュールであると判定し、当該メモリモジュールを切り離すように、前記メモリ状態管理手段に指示する
ことを特徴とする請求項１または請求項２に記載のサーバ。
【請求項４】
前記メモリアクセス頻度監視手段は、
各メモリモジュールのアクセス頻度が前記第１閾値を下回らず、かつ２以上のメモリモジュールのアクセス頻度の合計値が第２閾値以下となる場合に、
前記２以上のメモリモジュールの中で最もアクセス頻度の少ないメモリモジュールが余剰メモリモジュールであると判定し、当該余剰メモリモジュールをシステムから切り離すように、前記メモリ状態管理手段に指示する
ことを特徴とする請求項３に記載のサーバ。
【請求項５】
前記メモリアクセス頻度監視手段は、
前記余剰メモリモジュールをシステムから切り離した後に、システムに組み込まれている各メモリモジュール全体へのリアクセス頻度が所定の第３閾値以上になったと判定した場合に、前記切り離した余剰メモリモジュールを再度システムに組み込むように、前記メモリ状態管理手段に対して指示し、
前記メモリ状態管理手段は、
前記メモリアクセス頻度監視手段から前記余剰メモリモジュールを再度システムに組み込むように指示された場合に、
前記オペレーティングシステムに対して、前記切り離された余剰メモリモジュールのシステムへの組み込み要求を行うとともに、前記余剰メモリモジュールの動作を開始させる
ことを特徴とする請求項１から４のいずれか１項に記載のサーバ。
【請求項６】
前記メモリアクセス頻度監視手段は、
前記切り離した余剰メモリモジュールのリフレッシュ動作を停止させた後に、システムに組み込まれている各メモリモジュール全体へのアクセス頻度が所定の第４閾値以下になったと判定した場合に、前記切り離した余剰メモリモジュールの電源をオフにするように、前記メモリ状態管理手段に指示し、
前記切り離した余剰メモリモジュールの電源オフの後に、システムに組み込まれている各メモリモジュール全体へのアクセス頻度が所定の第５閾値以上になったと判定された場合に、前記電源オフした余剰メモリモジュールの電源をオンにしてリフレッシュ動作を再開させるように、前記メモリ状態管理手段に指示する、
ことを特徴とする請求項２から５のいずれか１項に記載のサーバ。
【請求項７】
前記メモリ状態管理手段は、
前記メモリアクセス頻度監視手段から余剰メモリモジュールの切り離し指示を受け取った場合に、
前記オペレーティングシステムに対して当該余剰メモリモジュールの切り離し要求を発行し、
前記オペレーティングシステムから当該余剰メモリモジュールの切り離し許可の情報を受け取った場合に、当該余剰メモリモジュールのリフレッシュ動作を停止させる
ことを特徴とする請求項２から６のいずれか１項に記載のサーバ。
【請求項８】
前記複数のメモリモジュールのそれぞれを構成する複数のＤＩＭＭと、
前記オペレーティングシステムに対してインタフェースとなるＡＣＰＩツリーを提供するとともに、前記メモリアクセス頻度監視手段と前記メモリ状態管理手段とを含むＢＩＯＳと、
前記ＢＩＯＳを介して前記オペレーティングシステムにアクセスするとともに、前記ＤＩＭＭにアクセスする１また２以上のプロセッサと、
前記プロセッサに内蔵され前記ＤＩＭＭの制御を行なうメモリコントローラであって、少なくとも、各ＤＩＭＭに対してリフレッシュを行うか否かを設定するリフレッシュレジスタと、各ＤＩＭＭに対して行なわれたアクセス回数を記録するアクセスカウンタレジスタと、を有するメモリコントローラと、
前記ＤＩＭＭへの電力供給のオン、オフを制御する電源制御手段と、
を備え、
前記メモリアクセス頻度監視手段は、
前記メモリコントローラ内のアクセスカウンタレジスタを監視することにより、所定の単位時間に各ＤＩＭＭへのアクセスが何回行なわれたかを算出し、このアクセス回数の算出結果を基に、複数のＤＩＭＭの中に余剰となる余剰ＤＩＭＭがあるか否かを判定し、
前記メモリ状態管理手段は、
前記メモリアクセス頻度監視手段からの指示により、
前記オペレーティングシステムに対して、前記ＡＣＰＩツリーを介して前記余剰ＤＩＭＭのシステムからの切り離し要求、または前記切り離した余剰ＤＩＭＭのシステムへの再組み込み要求を行うとともに、
前記余剰ＤＩＭＭをシステムから切り離した場合に、該余剰ＤＩＭＭの動作状態を、前記メモリコントローラ内のリフレッシュレジスタを介して前記余剰メモリモジュールのリフレッシュ動作を停止させるか、または、電力制御手段を介して前記余剰メモリモジュールの電源をオフにする
ことを特徴とする請求項２から７のいずれか１項に記載のサーバ。
【請求項９】
システム運用中に複数のメモリモジュールの中から外部要求により指定されたメモリモジュールをシステムから切り離すとともに、この切り離したメモリモジュールを再組み込みする機能を有するオペレーティングシステムをサーバに搭載する手順と、
前記複数のメモリモジュールの中で余剰のメモリモジュールとなり得る余剰メモリモジュールを判定する手順と、
前記オペレーティングシステムに対して、前記余剰メモリモジュールの切り離し要求、または前記切り離した余剰メモリモジュールのシステムへの再組み込み要求を行う手順と、
前記余剰メモリモジュールをシステムから切り離した場合に当該余剰メモリモジュールの動作状態を制御する手順と、
を含むことを特徴とするサーバの消費電力削減方法。
【請求項１０】
システム運用中に複数のメモリモジュールの中から外部要求により指定されたメモリモジュールをシステムから切り離すとともに、この切り離したメモリモジュールを再組み込みする機能を有するオペレーティングシステムを搭載したサーバ内のコンピュータに、
前記複数のメモリモジュールの各メモリモジュールへのアクセス頻度を監視し、このアクセス頻度の監視結果を基に、前記複数のメモリモジュールの中で余剰のメモリモジュールとなり得る余剰メモリモジュールを判定するメモリアクセス頻度監視手順と、
前記オペレーティングシステムに対して、前記余剰メモリモジュールのシステムからの切り離し要求、および前記切り離した余剰メモリモジュールのシステムへの組み込み要求を行うとともに、前記余剰メモリモジュールがシステムから切り離された場合に当該余剰メモリモジュールの動作状態を制御するメモリ状態管理手順と、
を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＩＭＭ（Dual Inline Memory Module）などのメモリモジュールの消費電力を削減できる、サーバ、サーバの消費電力削減方法、およびコンピュータプログラムに関する。
【背景技術】
【０００２】
携帯機器などバッテリ駆動が必要とされる計算機システムにおいては、システム全体の消費電力が小さいことが非常に重要視される。このため、特許文献１に記載の計算機システムや、特許文献２に記載の端末装置に示されるように、オペレーティングシステム（以下、単に「ＯＳ」とも呼ぶ）、ドライバ、アプリケーション、ハードウェアが連携して、余剰となったメモリの消費電力を削減する方法が存在している。しかし、これらの省電力技術を、サーバの余剰メモリの消費電力削減のために用いるためには、サーバを開発しているサーバベンダではなく、別のＯＳベンダが販売しているＯＳに改造を施す必要があり、この省電力技術をサーバに適用するのは現実的には難しい。
【０００３】
なお、上述の特許文献１に記載の計算機システムの電力管理方法は、プログラムによる主記憶の利用状態に応じてソフトウェア的に主記憶に対する電源供給を制御することを目的としている。この計算機システムは、主記憶の割り当て及び開放を管理するＯＳ内のメモリ管理部と、ＯＳの一部またはそのＯＳ上で動作するメモリ電源管理プログラム部と、が連携して、主記憶に対する電源供給を制御する。
【０００４】
また、上述の特許文献２に記載の端末装置は、ＤＲＡＭのセルフリフレッシュにおける電力消費を低減した端末装置を提供することを目的としている。この端末装置は、省電力モードに移行する際に、リフレッシュを中止する領域にデータが割り付けられないように制御する。そして、この端末装置は、省電力モードにおいてデータが存在しないメモリ領域に対するリフレッシュを中止することによって、メモリのリフレッシュに要する消費電力を低減する。
【０００５】
また、関連する画像処理コントローラーがある（特許文献３を参照）。この特許文献３に記載の画像処理コントローラーは、各ＤＲＡＭの使用状況に応じて適切にリフレッシュ動作を実行することを目的としている。この特許文献３に記載の画像処理コントローラーは、移行時間内にアクセスが発生しないＤＲＡＭに対して、作動クロックの供給停止を伴うセルフリフレッシュを実行させる。
【０００６】
また、関連する情報処理装置がある（特許文献４を参照）。この特許文献４に記載の情報処理装置は、アプリケーションの稼働に必要最低限のメモリに対してのみ電力供給を行ない、他のメモリに対しては効率良く電力供給を停止しシステム全体の消費電力消費を抑えることを目的としている。この特許文献４に記載の情報処理装置は、第１および第２の記憶手段と外部記憶装置とを有する。そして、この情報処理装置は、ＣＰＵから最も頻繁にアクセスされるデータ単位を第１の記憶手段に動的に配置し、各記憶手段をアクセスするために必要なバスのみを選択的にドライブすることにより必要最低限の電力でメモリへのアクセスを可能にする。また関連する技術が非特許文献１，２にも開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平９−２１２４１６号公報
【特許文献２】特開２００７−３１７１７６号公報
【特許文献３】特開２０１１−０９０４３４号公報
【特許文献４】特開平０７−１６０５７４号公報
【非特許文献】
【０００８】
【非特許文献１】ＡＣＰＩ仕様書「ADVANCED CONFIGURATION AND POWER INTERFACE SPECIFICATION」、インターネット、「URL:http://www.acpi.info/」（２０１１年１２月２９日現在）
【非特許文献２】ＤＩＧ６４仕様書「DIG64 Hot-Plug and Partitioning Flows Specification」、インターネット、「URL:http://www.dig64.org/home/DIG64_HPPF_R1_0.pdf」（２０１１年１２月２９日現在）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
運用中の計算機システムの余剰なメモリの消費電力を削減する方法として、例えば、上述の特許文献１に記載の計算機システムにおける電力管理方法がある。この電力管理方法は、ＯＳのメモリ領域割り当て処理部位に手を入れる（変更を加える）ことで、現在プログラムに割り当てられているメモリ領域を特定し、そのメモリ領域に対応するＤＲＡＭのリフレッシュ動作を停止、もしくは電力供給を停止する。これにより、メモリの消費電力を削減する。
【００１０】
しかし、上記特許文献１に記載の手法は、ＯＳ、ドライバ、ハードウェアなど計算機システム全体について、実装者の意図通りに実装することが容易な組み込みシステムなどには適用しやすいが、サーバを開発するサーバベンダがサーバに適用するには次の課題がある。
まず、サーバベンダは、ＯＳベンダが販売するサーバ向けＯＳの実装を自由に変更することが容易にはできないという課題がある。
次に、上記特許文献１の電力管理方法でも述べられているように、ＯＳ側のメモリ割り当て処理部位には手を入れず、ＯＳ上で動作するアプリケーションやドライバなどによってプログラムが利用していないメモリ領域を特定し、該当ＤＲＡＭの消費電力削減処理を実行する場合を考える。この場合、アプリケーションやドライバなどと、メモリコントローラを制御するプラットフォーム側との間に、ＤＲＡＭの電力制御を指示するためのインタフェースを設ける必要がある。しかし、その様なインタフェースを設けるための標準仕様は存在しない。そのため、サーバベンダが余剰ＤＲＡＭの消費電力削減を実現するためのアプリケーションやドライバなどを開発するには、ＯＳ毎にサーバベンダは何かしらの独自のインタフェースを設ける必要がある。
【００１１】
そのためには、アプリケーションやドライバなどだけでなく、プラットフォーム側のソフトウェア、ハードウェア含めた対応が必要であり、サーバベンダの開発規模が増大するという課題がある。また、新規インタフェース追加のための改造ができない場所があるという制約や、制御に必要な情報を取得するためのインタフェースがＯＳに存在していないという制約などがある。このため、アプリケーションやドライバによって余剰ＤＲＡＭの消費電力削減を実現することができない場合がありうる。以上の課題あるため、特許文献１の計算機システムで述べられている手法をサーバに適用することは，現実的には難しい。
【００１２】
また上述の他の特許文献についても、サーバのオペレーティングシステム（ＯＳ）が標準仕様として備えるメモリモジュールの切り離しおよび組み込み機能をそのまま利用して、余剰のメモリモジュールをシステムから切り離し、メモリモジュールにおける電力消費を低減することはできない。
【００１３】
本発明は、上述の課題を解決することのできるサーバ、サーバの消費電力削減方法、およびコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
本発明のサーバは、システム運用中に複数のメモリモジュールの中から外部要求により指定されたメモリモジュールをシステムから切り離すとともに、この切り離したメモリモジュールを再組み込みする機能を有するオペレーティングシステムと、前記複数のメモリモジュールの各メモリモジュールへのアクセス頻度を監視し、このアクセス頻度の監視結果を基に、前記複数のメモリモジュールの中で余剰のメモリモジュールとなり得る余剰メモリモジュールを判定するメモリアクセス頻度監視手段と、前記オペレーティングシステムに対して、前記余剰メモリモジュールのシステムからの切り離し要求、および前記切り離した余剰メモリモジュールのシステムへの組み込み要求を行うとともに、前記余剰メモリモジュールがシステムから切り離された場合に当該余剰メモリモジュールの動作状態を制御するメモリ状態管理手段と、を備えることを特徴とする。
【００１５】
また、本発明のサーバの消費電力削減方法は、システム運用中に複数のメモリモジュールの中から外部要求により指定されたメモリモジュールをシステムから切り離すとともに、この切り離したメモリモジュールを再組み込みする機能を有するオペレーティングシステムをサーバに搭載する手順と、前記複数のメモリモジュールの中で余剰のメモリモジュールとなり得る余剰メモリモジュールを判定する手順と、前記オペレーティングシステムに対して、前記余剰メモリモジュールの切り離し要求、または前記切り離した余剰メモリモジュールのシステムへの再組み込み要求を行う手順と、前記余剰メモリモジュールをシステムから切り離した場合に当該余剰メモリモジュールの動作状態を制御する手順と、を含むことを特徴とする。
【００１６】
また、本発明のコンピュータプログラムは、システム運用中に複数のメモリモジュールの中から外部要求により指定されたメモリモジュールをシステムから切り離すとともに、この切り離したメモリモジュールを再組み込みする機能を有するオペレーティングシステムを搭載したサーバ内のコンピュータに、前記複数のメモリモジュールの各メモリモジュールへのアクセス頻度を監視し、このアクセス頻度の監視結果を基に、前記複数のメモリモジュールの中で余剰のメモリモジュールとなり得る余剰メモリモジュールを判定するメモリアクセス頻度監視手順と、前記オペレーティングシステムに対して、前記余剰メモリモジュールのシステムからの切り離し要求、および前記切り離した余剰メモリモジュールのシステムへの組み込み要求を行うとともに、前記余剰メモリモジュールがシステムから切り離された場合に当該余剰メモリモジュールの動作状態を制御するメモリ状態管理手順と、を実行させるためのコンピュータプログラムである。
【発明の効果】
【００１７】
本発明のサーバ、サーバの消費電力削減方法、およびコンピュータプログラムにおいては、オペレーティングシステム側において特段の対応を行なうことなく、余剰となったメモリモジュールの消費電力を削減できる。
【図面の簡単な説明】
【００１８】
【図１】本発明のサーバの概要について説明するための図である。
【図２】本発明の第１の実施形態に係わるサーバの構成を示すブロック図である。
【図３】各ＤＩＭＭに対する単位時間あたりのアクセス回数の例を示す図である。
【図４】図２に示すサーバ１の動作を説明するための図である。
【図５】本発明の第２の実施形態に係わるサーバの構成を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態の構成について図面を参照して詳細に説明する。
【００２０】
［概要］
図１は、本発明のサーバの概要について説明するための図である。この図１に示すサーバ１において、オペレーティングシステム（ＯＳ）１０は、システム運用中に複数のＤＩＭＭ６０の中から外部要求により指定されたＤＩＭＭをシステムから切り離す機能と、この切り離されたＤＩＭＭの再組み込み機能とを、標準機能として備える。
なお、本明細書において、単に「システム」と呼ぶ場合は、オペレーティングシステム、または、オペレーティングシステムに組み込まれているサーバのメモリシステムを意味し、オペレーティングシステムであることを明示する場合は、「オペレーティングシステム」と呼ぶ。また、オペレーティングシステムは、単に「ＯＳ」とも呼ばれる。
【００２１】
メモリアクセス頻度監視手段２００は、各ＤＩＭＭ６０および単位時間あたりのアクセス頻度を監視し、複数のＤＩＭＭ６０の中から余剰とすることができるＤＩＭＭがあるか否かを判定する。この例では、ＤＩＭＭ６０Ａが余剰となる余剰ＤＩＭＭであるとする。メモリアクセス頻度監視手段２００は、この余剰となる余剰ＤＩＭＭ６０Ａの情報をメモリ状態管理手段２０１に通知するととともに、この余剰ＤＩＭＭ６０Ａをシステムから切り離すように指示する。
【００２２】
メモリ状態管理手段２０１は、メモリアクセス頻度監視手段２００から余剰ＤＩＭＭ６０Ａの切り離し指示を受け取ると、この余剰ＤＩＭＭ６０Ａをシステムから切り離すようにオペレーティングシステム１０に対して「切り離し要求」を発行する。オペレーティングシステム１０は、メモリ状態管理手段２０１から「切り離し要求」を受け取ると、余剰ＤＩＭＭ６０Ａをシステムから切り離す。そして、オペレーティングシステム１０において余剰ＤＩＭＭ６０Ａが切り離された後に、メモリ状態管理手段２０１は、余剰ＤＩＭＭ６０Ａのリフレッシュ動作を停止させる。または、メモリ状態管理手段２０１は、余剰ＤＩＭＭ６０Ａへの供給電力をオフ（電源オフ）にする。なおリフレッシュとは、メモリの記憶が失われないように電荷を補充する動作を示す。これにより、サーバ１は、余剰ＤＩＭＭ６０Ａのリフレッシュ動作に要する消費電力を低減することができる。また、サーバ１は、余剰ＤＩＭＭ６０Ａへの供給電力をオフ（電源オフ）にすることにより、余剰ＤＩＭＭ６０Ａの消費電力をさらに低減することができる。
【００２３】
また、メモリアクセス頻度監視手段２００は、余剰ＤＩＭＭ６０Ａがシステムから切り離された後も、オペレーティングシステム１０に組み込まれている各ＤＩＭＭ６０のアクセス頻度を監視する。そして、組み込まれているＤＩＭＭ６０のアクセス頻度が上昇する傾向にある場合に、メモリアクセス頻度監視手段２００は、切り離した余剰ＤＩＭＭ６０Ａを再びオペレーティングシステム１０に組み込むと判定する。そして、メモリアクセス頻度監視手段２００は、メモリ状態管理手段２０１に対して、切り離した余剰ＤＩＭＭ６０Ａを再びオペレーティングシステム１０に組み込むように指示する。
【００２４】
メモリ状態管理手段２０１は、メモリアクセス頻度監視手段２００から、余剰ＤＩＭＭ６０Ａの組み込み指示を受け取ると、余剰ＤＩＭＭ６０Ａを再びシステムに組み込むようにオペレーティングシステム１０に対して「余剰ＤＩＭＭ６０Ａの組み込み要求」を発行する。また、メモリ状態管理手段２０１は、余剰ＤＩＭＭ６０Ａのリフレッシュ動作を再開させる。オペレーティングシステム１０は、メモリ状態管理手段２０１から「余剰ＤＩＭＭ６０Ａの組み込み要求」を受け取ると、切り離した余剰ＤＩＭＭ６０Ａをシステムに再び組み込む。
これにより、サーバ１は、余剰ＤＩＭＭ６０Ａをシステムから切り離した後に、再び余剰ＤＩＭＭ６０Ａが必要になった場合は、オペレーティングシステム１０が標準として備える組み込み機能を利用して、余剰ＤＩＭＭ６０Ａを再びシステムに組み込むことができる。
【００２５】
このように、本発明のサーバ１は、プラットフォーム側にメモリアクセス頻度を監視するメモリアクセス頻度監視手段２００、メモリの動作状態を管理するメモリ状態管理手段２０１を設ける。そして、保守交換などを実現するためにオペレーティングシステム１０に標準仕様で規定されている機能、すなわち、システム運用中にＤＩＭＭ６０をシステムから切り離す機能、およびシステムに組み込む機能をそのまま利用する。これにより、本発明のサーバ１は、オペレーティングシステム１０側での特段の対応なしに、サーバ１の運用中に余剰となったＤＩＭＭ６０の消費電力削減処理、または電力供給停止処理を実現することができる。
【００２６】
［第１の実施形態］
（第１実施形態のサーバの構成の説明）
図２は、本発明の第１実施形態に係わるサーバ１の構成を示す図である。
図２を参照すると、本実施形態のサーバ１は、オペレーティングシステム（ＯＳ）１０と、ＢＩＯＳ（Basic Input/Output System）２０と、ＡＣＰＩ（Advanced Configuration and Power Interface）ツリー３０と、メモリコントローラ４００を内蔵するプロセッサ４０と、ＢＭＣＦＷ（Baseboard Management Controller firmware）５０と、複数のＤＩＭＭ６０と、から構成されるサーバである。プロセッサ４０の数、プロセッサ４０に内蔵されるメモリコントローラ４００の数、ＤＩＭＭ６０の数は、一例であり、これ以上の個数、これ以下の個数でもよい。また、ＯＳ１０とＢＩＯＳ２０は、プロセッサ４０により処理が実行される。ＢＭＣＦＷ５０における処理は、図２には記載していない別のプロセッサで実施される。
【００２７】
ＢＩＯＳ２０は、ＯＳ１０に対してＢＩＯＳ２０とＯＳ１０とのインタフェースとなるＡＣＰＩツリー３０を提供している。ＡＣＰＩツリー３０には、非特許文献１に示す標準仕様で規定されているＮｏｔｉｆｙオペコード３００と、_ＯＳＴメソッド３０１と、_ＥＪ０メソッド３０２と、を含む。
Ｎｏｔｉｆｙオペコード３００は、システムに組み込まれているハードウェアをＯＳ１０から切り離す要求などをＢＩＯＳ２０からＯＳ１０に対して行なうためなどに利用される。
_ＯＳＴメソッド３０１は、ハードウェアをＯＳ１０から切り離す処理の進捗状況などをＯＳ１０からＢＩＯＳ２０に対して通知するためなどに利用される。
_ＥＪ０メソッドは、ＯＳ１０から切り離されたハードウェアをシステムから切り離す、例えば電源を切断する、などの要求を、ＯＳ１０からＢＩＯＳ２０に対して行なうためなどに利用される。
なお、上述のＮｏｔｉｆｙオペコード３００は、本発明における「メモリモジュールの切り離し要求」、または「メモリモジュールの組み込み要求」の信号に相当し、ＥＪ０メソッドは、本発明における「切り離し許可の情報」に相当する。
【００２８】
プロセッサ４０に内蔵されるメモリコントローラ４００は、プロセッサ４０に接続されたＤＩＭＭ６０の制御を行なう。メモリコントローラ４００は、少なくとも、各ＤＩＭＭ６０の初期化に必要なレジスタ（初期化レジスタ４０１）と、各ＤＩＭＭ６０に対してリフレッシュを行うか否かを設定するレジスタ（リフレッシュレジスタ４０２）と、各ＤＩＭＭ６０に対して行なわれたアクセス回数を記録するレジスタ（アクセスカウンタレジスタ４０３）と、を備える。
【００２９】
ＢＭＣＦＷ５０は、プロセッサ４０やＤＩＭＭ６０など、図２に記載していないハードウェアを含め、サーバを構成するハードウェアの電源制御などを行なっている。ＢＩＯＳ２０はＢＭＣＦＷ５０に対して、ＤＩＭＭ６０への電力供給のオン、オフを指示することができる。
【００３０】
メモリアクセス頻度監視手段２００は、メモリコントローラ４００内のアクセスカウンタレジスタ４０３を監視し、ある単位時間において各ＤＩＭＭ６０へのアクセスが何回行なわれたかを算出し、それを基に、ＯＳ１０が必要としているメモリ容量に対して、現在ＯＳ１０に組み込まれているＤＩＭＭ６０の容量が必要十分であるか否かを判定する。このメモリアクセス頻度監視手段２００は、プロセッサ４０からの定期的なＢＩＯＳ２０に対する割り込み処理の中で実行する。
【００３１】
メモリ状態管理手段２０１は、各ＤＩＭＭ６０の動作状態の管理と、動作状態間の遷移に必要な処理を行なう。ＤＩＭＭ６０の動作状態の遷移は、メモリアクセス頻度監視手段２００またはＡＣＰＩツリー３０からの指示を契機に実施される。そして、状態遷移の際には、メモリ状態管理手段２０１が、メモリコントローラ４００の各種レジスタ（例えば、リフレッシュレジスタ４０２）を操作するか、または、ＢＭＣＦＷ５０に対して電力供給の指示を行なうことにより、ＤＩＭＭ６０の動作状態を制御する。
【００３２】
なお、図１および図２に示すサーバ１は、本発明におけるサーバに相当し、オペレーティングシステム１０は、本発明におけるオペレーティングシステムに相当し、ＢＩＯＳ２０は、本発明におけるＢＩＯＳに相当し、ＤＩＭＭ６０は、本発明におけるメモリモジュールに相当する。また、メモリアクセス頻度監視手段２００は、本発明におけるメモリアクセス頻度監視手段に相当し、プロセッサ４０は、本発明におけるプロセッサに相当し、メモリコントローラ４００は、本発明におけるメモリコントローラに相当し、ＢＭＣＦＷ５０は、本発明における電源制御手段に相当する。
【００３３】
（サーバ１の動作の説明）
次に、図２と図３と図４とを参照して、本実施形態のサーバ１の動作について詳細に説明する。
サーバ１の運用中、メモリアクセス頻度監視手段２００は、定期的にメモリコントローラ４００内のアクセスカウンタレジスタ４０３を参照し、各ＤＩＭＭ６０へのアクセスが単位時間当たり何回行なわれたかを算出している。ここで、例としてＯＳ１０が現在必要としているメモリ容量に対して、現在ＯＳ１０に組み込まれているＤＩＭＭ６０の容量が過不足ない状態での、各ＤＩＭＭ６０に対する単位時間あたりのアクセス回数（アクセス頻度）が図３（Ａ）に示す回数であった状態を考える。
【００３４】
この図３（Ａ）に示す状態において、サーバ１の運用を続け、あるとき各ＤＩＭＭ６０に対する単位時間当たりのアクセス回数（アクセス頻度）が、図３（Ｂ）に示すようになったとする。この図３（Ｂ）に示す例では、１つのＤＩＭＭ、例えば、ＤＩＭＭ#２の単位時間当たりのアクセス回数が、その値が非常に小さく、あらかじめ決めておいたＤＩＭＭ単位のアクセス頻度閾値（第１閾値）以下となる。このような場合に、メモリアクセス頻度監視手段２００は、ＤＩＭＭ#２がＯＳ１０にとって、現在使われていない余剰なメモリとなっていると判定する。
【００３５】
一方で、図３（Ｃ）に示す状態は、単位時間当たりのアクセス回数（アクセス頻度）が、１つ１つのＤＩＭＭ６０についてはＤＩＭＭ単位のアクセス頻度閾値（第１閾値）を下回らないが、複数のＤＩＭＭ、例えば、ＤＩＭＭ＃３と＃４の単位時間当たりのアクセス回数の合計が複数ＤＩＭＭでのアクセス頻度閾値（第２閾値）以下となる例である。図３（Ｃ）に示す状態において、メモリアクセス頻度監視手段２００は、ＯＳ１０にとってＤＩＭＭ＃３、ＤＩＭＭ＃４のどちらか片方が存在しなくとも、残りのＤＩＭＭでＯＳ１０が必要としているメモリ容量を満たすことができると判定する。この場合に、メモリアクセス頻度監視手段２００は、アクセス頻度の少ないＤＩＭＭ＃４が余剰なメモリになっていると判定する。
【００３６】
そして、メモリアクセス頻度監視手段２００がＤＩＭＭ６０の中に余剰となっている余剰ＤＩＭＭがあると判定した場合に、メモリアクセス頻度監視手段２００は、余剰と判定した余剰ＤＩＭＭをメモリ状態管理手段２０１に通知する。また、メモリアクセス頻度監視手段２００は、余剰と判定した余剰ＤＩＭＭを、図４に示す、ＯＳ１０に組み込まれている状態（状態１）から、組み込み待機状態（状態２）に遷移させるための処理を実施するようメモリ状態管理手段２０１に対して指示を出す。
なお、図４において、ＯＳ１０に組み込まれている状態（状態１）は、ＤＩＭＭへの電力供給がオン（電源オン）であり、かつリフレッシュ動作がオン（リフレッシュ動作を実行）している状態である。また、組み込み待機状態（状態２）は、ＤＩＭＭへの電力供給がオン（電源オン）であり、かつリフレッシュ動作がオフ（リフレッシュ動作を停止）している状態である。また、電源オフ状態（状態３）は、ＤＩＭＭへの電力供給がオフ（電源オフ）であり、かつリフレッシュ動作がオフ（リフレッシュ動作を停止）している状態である。
【００３７】
そして、メモリ状態管理手段２０１は、メモリアクセス頻度監視手段２００から余剰ＤＩＭＭの通知を受けると、この余剰ＤＩＭＭについて、Ｎｏｔｉｆｙオペコード３００を実施することで、ＯＳ１０に対して、余剰ＤＩＭＭのＯＳ１０からの切り離しを要求する。ＯＳ１０は、そのＤＩＭＭに割り当てているページがページアウトされないようになっていないか、切り離し後のメモリ容量が十分であるかなど、そのＤＩＭＭの切り離しの可否を判定する。ＯＳ１０は、余剰ＤＩＭＭの切り離しが可能である場合に、ＯＳ１０はその余剰ＤＩＭＭにすでに割り当てられているページを別のＤＩＭＭにすべて移行させた上で、_ＥＪ０メソッド３０２を実行する。一方で、切り離しが不可である場合は、ＯＳ１０は、_ＯＳＴメソッド３０１を実行する。このＮｏｔｉｆｙオペコード３００を実施した以降の、ＯＳ１０のＤＩＭＭ切り離しのための動きは、非特許文献２で示される標準仕様で定められているものであり、本実施形態のサーバ１を実現するためにＯＳ１０に何かしらの特別な対応を行なう必要はない。
【００３８】
メモリ状態管理手段２０１は、_ＥＪ０メソッド３０２により余剰ＤＩＭＭのシステムからの切り離しをＯＳ１０より許可された場合に、メモリコントローラ４００のリフレッシュレジスタ４０２を操作し、該当ＤＩＭＭのリフレッシュ動作を停止させる。これにより、メモリ状態管理手段２０１は、該当ＤＩＭＭの消費電力を削減し、ＤＩＭＭの状態を図４に示すＯＳ１０に組み込まれている状態（状態１）から、組み込み待機状態（状態２）に遷移させる。
【００３９】
ここで、余剰のＤＩＭＭへの電力供給までオフにした場合、そのＤＩＭＭを再度ＯＳ１０に組み込めるようにするには、メモリコントローラ４００が、メモリコントローラ４００とＤＩＭＭ間のインタフェースの初期化を含む、ＤＩＭＭの初期化を実施する必要がある。このため、メモリ状態管理手段２０１は、_ＥＪ０メソッド３０２の実行の際に、余剰ＤＩＭＭへの電力供給をオフにはしない。これは、ＯＳ１０が必要とするメモリ容量が短時間で変化し、余剰と判定したＤＩＭＭをすぐにＯＳ１０に組み込む必要がある状態になったときに、メモリコントローラ４００がＤＩＭＭの再組み込みを完了するまでの時間を短縮するためである。
一方、メモリ状態管理手段２０１は、_ＯＳＴメソッド３０１にて余剰ＤＩＭＭの切り離し不可がＯＳ１０より通知された場合に、余剰ＤＩＭＭの状態を図４に示すＯＳ１０に組み込まれている状態（状態１）のままとし、消費電力削減のための動作は何も行なわない。
【００４０】
メモリアクセス頻度監視手段２００が余剰なＤＩＭＭと判定したＤＩＭＭの状態が図４に示す組み込み待機状態（状態２）に遷移完了した後も、メモリアクセス頻度監視手段２００は、定期的にＯＳ１０に組み込まれている状態のＤＩＭＭのアクセス頻度を監視する。余剰ＤＩＭＭをＯＳ１０から切り離したことにより、余剰ＤＩＭＭ以外のＯＳ１０に組み込まれている状態のＤＩＭＭのアクセス頻度は、切り離しを行なう前より増加する。
【００４１】
この余剰ＤＩＭＭを切り離した状態で、メモリアクセス頻度監視手段２００は、ＯＳ１０に組み込まれている状態のＤＩＭＭ６０のアクセス頻度を監視する。そして、メモリアクセス頻度監視手段２００は、一定時間監視を続けてもＯＳ１０に組み込まれている状態のＤＩＭＭ６０のアクセス頻度がさらに増加せず、所定の閾値（第４閾値）以下を保っている場合に、余剰ＤＩＭＭの電源オフが可能と判定する。そして、メモリアクセス頻度監視手段２００は、余剰ＤＩＭＭの電源オフが可能と判定した場合に、組み込み待機状態（状態２）となっている余剰のＤＩＭＭへの電力供給オフをメモリ状態管理手段２０１に指示する。指示を受けたメモリ状態管理手段２０１は、該当ＤＩＭＭへの電力供給をオフする指示をＢＭＣＦＷ５０に行い、該当するＤＩＭＭの状態を、電源オフ状態（状態３）に遷移させる。
【００４２】
余剰ＤＩＭＭの状態が電源オフ状態に遷移（状態３）した後も、メモリアクセス頻度監視手段２００は定期的にＯＳ１０に組み込まれている状態のＤＩＭＭ６０のアクセス頻度を監視する。ここで、ＯＳ１０に組み込まれている状態のＤＩＭＭ全体のアクセス頻度が、ある閾値（第５閾値）以上となった場合に、メモリアクセス頻度監視手段２００は、今後、ＯＳ１０が必要とするメモリ容量がさらに増大すると判定する。すなわち、メモリアクセス頻度監視手段２００は、現在、電源オフ状態の余剰ＤＩＭＭをＯＳ１０に組み込む必要がでてくる可能性があると判定する。
【００４３】
メモリアクセス頻度監視手段２００は、電源オフ状態の余剰ＤＩＭＭをＯＳ１０に組み込む必要がでてくると判定した場合に、メモリ状態管理手段２０１に対して、電源オフ状態（状態３）の余剰ＤＩＭＭを組み込み待機状態（状態２）に遷移させるよう指示をする。この指示を受けたメモリ状態管理手段２０１は、該当余剰ＤＩＭＭへの電力供給をオンする指示をＢＭＣＦＷ５０に行う。さらに、メモリ状態管理手段２０１は、メモリコントローラ４００内のＤＩＭＭの初期化に必要な初期化レジスタ４０１を操作し、該当余剰ＤＩＭＭの初期化を完了した上で、該当余剰ＤＩＭＭの状態を組み込み可能状態（状態２）に遷移させる。
【００４４】
その後、ＯＳ１０に組み込まれている状態のＤＩＭＭ６０の全体のアクセス頻度がさらに増加し、ある閾値（第３閾値）以上になった場合、メモリアクセス頻度監視手段２００は、ＯＳ１０が必要としているメモリ容量が増加すると判定する。なお第５閾値＜第３閾値である。すなわち、メモリアクセス頻度監視手段２００は、現在ＯＳ１０に組み込まれている状態のＤＩＭＭではメモリ容量が不十分な状態になったと判定する。この判定が行われた場合に、メモリアクセス頻度監視手段２００は、メモリ状態管理手段２０１に対し、組み込み可能状態（状態２）の余剰ＤＩＭＭを、ＯＳ１０に組み込まれている状態（状態１）に遷移させるように指示をする。
【００４５】
指示を受けたメモリ状態管理手段２０１は、該当余剰ＤＩＭＭについて、Ｎｏｔｉｆｙオペコード３００を実行することでＯＳ１０に対し、該当余剰ＤＩＭＭのＯＳ１０への組み込みを要求する。ＯＳ１０は、該当余剰ＤＩＭＭをＯＳ１０に組み込む。このＮｏｔｉｆｙオペコード３００を実施した以降の、ＯＳ１０のＤＩＭＭ組み込みのための動きは、非特許文献２で示される標準仕様で定められているものであり、本発明を実現するためにＯＳ１０において何かしらの特別な対応を行なう必要はない。
【００４６】
以上説明したように、本実施形態のサーバ１は、プラットフォーム側に、余剰ＤＩＭＭを推定するメモリアクセス頻度監視手段２００と、システムから切り離された余剰ＤＩＭＭの動作状態を管理するメモリ状態管理手段２０１と、を備える。また、サーバ１は、余剰ＤＩＭＭをシステムから切り離す際に、オペレーティングシステム１０に標準仕様で規定されている機能、すなわち、システム運用中にＤＩＭＭ６０をシステムから切り離す機能と、システムに組み込む機能とをそのまま利用する。これにより、本実施形態のサーバ１は、オペレーティングシステム１０側での特段の対応なしに、サーバ１の運用中に余剰となったＤＩＭＭ６０を切り離し、余剰ＤＩＭＭにおける消費電力削減処理、電力供給停止処理を実現することができる。
【００４７】
また、本実施形態のサーバ１は、ＯＳ１０から切り離されている余剰ＤＩＭＭの状態を、リフレッシュ動作のみ停止してすぐにＯＳ１０に組み込める組み込み可能状態（状態２）と、電力の供給をオフにしている電源オフ状態（状態３）の２つに分けて管理する。
これにより、サーバ１は、ＯＳ１０に組み込まれているＤＩＭＭ６０へのアクセス頻度を基に、今後、ＯＳ１０への余剰ＤＩＭＭの再組み込みが必要となると予想される状況になった場合に、あらかじめ時間のかかるＤＩＭＭの初期化等を実施しておくことができる。このため、本実施形態にサーバ１は、ＯＳ１０が必要としているメモリ容量の変化が激しく、一旦、余剰と判定されたＤＩＭＭを再度ＯＳ１０に組み込む必要が生じた場合に、速やかに余剰ＤＩＭＭをＯＳ１０に再組み込みすることができる。
【００４８】
なお、上述の余剰となるＤＩＭＭを判定するためのＤＩＭＭ単位のアクセス頻度閾値は、本発明における「第１閾値」に相当する。また、上述の余剰となるＤＩＭＭを判定するための複数ＤＩＭＭ単位でのアクセス頻度閾値は、本発明における「第２閾値」に相当する。また、上述の組み込み可能状態（状態２）のＤＩＭＭをＯＳ１０に組み込まれている状態（状態１）に遷移させることを判定するための、組み込みＤＩＭＭ６０全体のアクセス頻度閾値は、本発明における「第３閾値」に相当する。また、上述の余剰ＤＩＭＭの電源オフが可能と判定するための、組み込みＤＩＭＭ６０全体のアクセス頻度閾値は、本発明における「第４閾値」に相当する。また、上述の電源オフ状態（状態３）の余剰ＤＩＭＭを組み込み待機状態（状態２）に遷移させるための、組み込みＤＩＭＭ６０全体のアクセス頻度閾値は、本発明における「第５閾値」に相当する。
【００４９】
［第２の実施形態］
次に、本発明の第２の実施形態について図５を参照して説明する。
図５は、本発明の第２の実施形態に係わるサーバの構成を示すブロック図である。
図５に示すサーバ１Ａは、図２に示すサーバ１と比較して、図２に示すプロセッサ４０内のメモリコントローラ４００が省略され、代わりに図５に示すプロセッサ４０の外部にメモリコントローラ７０を独立して設けた点が構成上で異なる。
また、図２に示すサーバ１内のＢＩＯＳ２０内のメモリアクセス頻度監視手段２００とメモリ状態管理手段２０１とが省略され、代わりに図５に示すメモリコントローラ７０内にメモリアクセス頻度監視手段７００とメモリ状態管理手段７０１とを新たに設けた点が異なる。また、図２に示すサーバ１内のＢＭＣＦＷ５０を省略し、代わりに図５に示すメモリコントローラ７０内にＤＩＭＭ電源制御手段７０２を新たに設けた点が構成上で異なる。他の構成は、図２に示すサーバ１と同様である。このため、同一の構成部分には同一の符号を付している。
【００５０】
上記構成のサーバ１Ａにおいて、ＤＩＭＭ電源制御手段７０２は、図２に示すＢＭＣＦＷ５０に代わり、ＤＩＭＭ６０への電力供給のオン、オフを制御する。先の第１実施形態と異なり、本第２実施形態は、メモリコントローラ７０単体で、余剰ＤＩＭＭの判定と、余剰ＤＩＭＭの動作状態の管理と、余剰ＤＩＭＭへの電力供給のオン、オフを制御することができる。
【００５１】
また、メモリアクセス頻度監視手段７００とメモリ状態管理手段７０１とＤＩＭＭ電源制御手段７０２とは、メモリコントローラ７０内にハードウェア的に実装してもよいし、メモリコントローラ７０内に図５には記載してないプロセッサを別途設け、そのプロセッサで実行するソフトウェアとして実装してもよい。
【００５２】
本第２実施形態においても、先の第１実施形態と同様に、メモリアクセス頻度監視手段７００は、各ＤＩＭＭ６０の単位時間あたりのアクセス頻度を監視し、余剰となるＤＩＭＭを判定する。余剰と判定されるＤＩＭＭが存在する場合に、メモリアクセス頻度監視手段７００は、先の第１実施形態と同様にメモリ状態管理手段７０１に該当ＤＩＭＭの状態遷移指示を出す。指示を受けたメモリ状態管理手段７０１は、第１実施形態と同様に、Ｎｏｔｉｆｙオペコード３００を実行し、ＯＳ１０に対して余剰と判定したＤＩＭＭの切り離しを指示する。
【００５３】
Ｎｏｔｉｆｙオペコード３００の実行は、メモリ状態管理手段７０１がＯＳ１０に対して割り込み要求をあげて実施させても良いし、一旦、ＢＩＯＳ２０に対して割り込み要求をあげ、ＢＩＯＳ２０がその処理を仲介してもよい。Ｎｏｔｉｆｙオペコード３００実施後のＯＳ１０の動作は、先の第１実施形態と同様である。ＯＳ１０が、_ＥＪ０メソッド３０２または_ＯＳＴメソッド３０１を実行した場合、その要求は、ＡＣＰＩツリー３０から直接メモリコントローラ７０のレジスタを操作するか、ＢＩＯＳ２０を仲介して、メモリ状態管理手段７０１に伝えられる。要求がメモリ状態管理手段７０１に伝えられた以降の動作は、第１実施形態と同様である。 
【００５４】
また、余剰ＤＩＭＭが組み込み待機状態と電源オフ状態との間を遷移する際の動作については、余剰ＤＩＭＭへの電力供給オンまたはオフ処理を、ＢＭＣＦＷ５０（図２）の代わりにＤＩＭＭ電源制御手段７０２が行うことが、先の第１実施形態と異なるが、その他の動作は同様である。
また、ＤＩＭＭが組み込み可能状態からＯＳ１０に組み込まれている状態に遷移する際の動作については、先の第１実施形態ではＮｏｔｉｆｙオペコード３００の実施をメモリ状態管理手段２０１が行うが、第２実施形態では、メモリ状態管理手段７０１が行う。この場合に、メモリ状態管理手段７０１が、ＯＳ１０に対して割り込み要求をあげてＮｏｔｉｆｙオペコード３００を実施させる、もしくは、ＢＩＯＳ２０がその処理を仲介するという形態の差があるが、それ以外の動作については、第１実施形態と同様である。
【００５５】
なお、図５に示すサーバ１Ａは、本発明におけるサーバに相当し、ＤＩＭＭ電源制御手段７０２は、本発明における電源制御手段に相当する。
【００５６】
以上説明したように、本発明のサーバによれば、ＯＳ側において特段の対応をすることと無く、余剰となったＤＩＭＭの消費電力削減を実施することができる。そのため、本発明は、特にサーバなどベンダが自由にＯＳの実装を改造することができない計算機システムにおいて、システムの消費電力を削減するために利用可能である。
【００５７】
以上、本発明の実施形態について説明したが、上述のサーバ１は、内部にコンピュータシステムを有している。そして、サーバ１におけるＢＩＯＳ２０、プロセッサ４０等における処理は、ソフトウェアプログラムを実行することにより、その処理機能を実現することができる。また、上述のサーバ１Ａは、内部にコンピュータシステムを有している。そして、サーバ１ＡにおけるＢＩＯＳ２０、プロセッサ４０、メモリコントローラ７０等における処理は、ソフトウェアプログラムを実行することにより、その処理機能を実現することができる。
そして、上述した処理に関する一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。すなわち、サーバ１および１Ａにおける、各処理は、ＣＰＵ等の中央演算処理装置がＲＯＭやＲＡＭ等の主記憶装置に上記プログラムを読み出して、情報の加工、演算処理を実行することにより、実現されるものである。
【００５８】
ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
また、サーバ１および１Ａには、周辺機器として入力装置、表示装置等（いずれも図示せず）が接続されているものとする。ここで、入力装置としては、キーボード、マウス等の入力デバイスのことをいう。表示装置とは、ＣＲＴ（Cathode Ray Tube）や液晶表示装置等のことをいう。
【００５９】
以上、本発明の実施の形態について説明したが、本発明のサーバは、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【００６０】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されるが、以下には限られない。
【００６１】
（付記１）
システム運用中に複数のメモリモジュールの中から外部要求により指定されたメモリモジュールをシステムから切り離すとともに、この切り離したメモリモジュールを再組み込みする機能を有するオペレーティングシステムと、
前記複数のメモリモジュールの各メモリモジュールへのアクセス頻度を監視し、このアクセス頻度の監視結果を基に、前記複数のメモリモジュールの中で余剰のメモリモジュールとなり得る余剰メモリモジュールを判定するメモリアクセス頻度監視手段と、
前記オペレーティングシステムに対して、前記余剰メモリモジュールのシステムからの切り離し要求、および前記切り離した余剰メモリモジュールのシステムへの組み込み要求を行うとともに、前記余剰メモリモジュールがシステムから切り離された場合に当該余剰メモリモジュールの動作状態を制御するメモリ状態管理手段と、
を備えることを特徴とするサーバ。
【００６２】
（付記１）前記メモリ状態管理手段は、
前記システムから切り離された余剰メモリモジュールについて、リフレッシュ動作停止状態と、電源オフ状態との２つの動作状態を管理する機能を有し、
前記メモリアクセス頻度監視手段は、
オペレーティングシステムに組み込まれている各メモリモジュール全体へのアクセス頻度に応じて、前記切り離された余剰メモリモジュールをリフレッシュ動作停止状態と電源オフ状態との間で遷移させるように前記メモリ状態管理手段に指示する
ことを特徴とする付記１に記載のサーバ。
【００６３】
（付記３）前記メモリアクセス頻度監視手段は、
前記各メモリモジュールにおいてメモリアクセス頻度が所定の第１閾値以下のメモリモジュールが検出された場合に、当該メモリモジュールが余剰メモリモジュールであると判定し、当該メモリモジュールを切り離すように、前記メモリ状態管理手段に指示する
ことを特徴とする付記１または付記２に記載のサーバ。
【００６４】
（付記４）前記メモリアクセス頻度監視手段は、
各メモリモジュールのアクセス頻度が前記第１閾値を下回らず、かつ２以上のメモリモジュールのアクセス頻度の合計値が第２閾値以下となる場合に、
前記２以上のメモリモジュールの中で最もアクセス頻度の少ないメモリモジュールが余剰メモリモジュールであると判定し、当該余剰メモリモジュールをシステムから切り離すように、前記メモリ状態管理手段に指示する
ことを特徴とする付記１に記載のサーバ。
【００６５】
（付記５）前記メモリアクセス頻度監視手段は、
前記余剰メモリモジュールをシステムから切り離した後に、システムに組み込まれている各メモリモジュール全体へのリアクセス頻度が所定の第３閾値以上になったと判定した場合に、前記切り離した余剰メモリモジュールを再度システムに組み込むように、前記メモリ状態管理手段に対して指示し、
前記メモリ状態管理手段は、
前記メモリアクセス頻度監視手段から前記余剰メモリモジュールを再度システムに組み込むように指示された場合に、
前記オペレーティングシステムに対して、前記切り離された余剰メモリモジュールのシステムへの組み込み要求を行うとともに、前記余剰メモリモジュールの動作を開始させる
ことを特徴とする付記１から４のいずれか１つに記載のサーバ。
【００６６】
（付記６）前記メモリアクセス頻度監視手段は、
前記切り離した余剰メモリモジュールのリフレッシュ動作を停止させた後に、システムに組み込まれている各メモリモジュール全体へのアクセス頻度が所定の第４閾値以下になったと判定した場合に、前記切り離した余剰メモリモジュールの電源をオフにするように、前記メモリ状態管理手段に指示し、
前記切り離した余剰メモリモジュールの電源オフの後に、システムに組み込まれている各メモリモジュール全体へのアクセス頻度が所定の第５閾値以上になったと判定された場合に、前記電源オフした余剰メモリモジュールの電源をオンにしてリフレッシュ動作を再開させるように、前記メモリ状態管理手段に指示する、
ことを特徴とする付記２から５のいずれか１つに記載のサーバ。
【００６７】
（付記７）前記メモリ状態管理手段は、
前記メモリアクセス頻度監視手段から余剰メモリモジュールの切り離し指示を受け取った場合に、
前記オペレーティングシステムに対して当該余剰メモリモジュールの切り離し要求を発行し、
前記オペレーティングシステムから当該余剰メモリモジュールの切り離し許可の情報を受け取った場合に、当該余剰メモリモジュールのリフレッシュ動作を停止させる
ことを特徴とする付記２から６のいずれか１つに記載のサーバ。
【００６８】
（付記８）前記複数のメモリモジュールのそれぞれを構成する複数のＤＩＭＭと、
前記オペレーティングシステムに対してインタフェースとなるＡＣＰＩツリーを提供するとともに、前記メモリアクセス頻度監視手段と前記メモリ状態管理手段とを含むＢＩＯＳと、
前記ＢＩＯＳを介して前記オペレーティングシステムにアクセスするとともに、前記ＤＩＭＭにアクセスする１また２以上のプロセッサと、
前記プロセッサに内蔵され前記ＤＩＭＭの制御を行なうメモリコントローラであって、少なくとも、各ＤＩＭＭに対してリフレッシュを行うか否かを設定するリフレッシュレジスタと、各ＤＩＭＭに対して行なわれたアクセス回数を記録するアクセスカウンタレジスタと、を有するメモリコントローラと、
前記ＤＩＭＭへの電力供給のオン、オフを制御する電源制御手段と、
を備え、
前記メモリアクセス頻度監視手段は、
前記メモリコントローラ内のアクセスカウンタレジスタを監視することにより、所定の単位時間に各ＤＩＭＭへのアクセスが何回行なわれたかを算出し、このアクセス回数の算出結果を基に、複数のＤＩＭＭの中に余剰となる余剰ＤＩＭＭがあるか否かを判定し、
前記メモリ状態管理手段は、
前記メモリアクセス頻度監視手段からの指示により、
前記オペレーティングシステムに対して、前記ＡＣＰＩツリーを介して前記余剰ＤＩＭＭのシステムからの切り離し要求、または前記切り離した余剰ＤＩＭＭのシステムへの再組み込み要求を行うとともに、
前記余剰ＤＩＭＭをシステムから切り離した場合に、該余剰ＤＩＭＭの動作状態を、前記メモリコントローラ内のリフレッシュレジスタを介して前記余剰メモリモジュールのリフレッシュ動作を停止させるか、または、電力制御手段を介して前記余剰メモリモジュールの電源をオフにする
ことを特徴とする付記２から７のいずれか１つに記載のサーバ。
【００６９】
（付記９）前記メモリ状態管理手段は、
前記メモリモジュールをオペレーティングシステムから切り離す際に、前記オペレーティングシステムに対してＮｏｔｉｆｙオペコードを発行し、
前記オペレーティングシステムから前記Ｎｏｔｉｆｙオペコードに応じて返信される_ＥＪ０メソッドを受信した後に、前記余剰ＤＩＭＭのリフレッシュ動作を停止させる
ことを特徴とする付記８に記載のサーバ。
【００７０】
（付記１０）前記メモリコントローラは、前記プロセッサの外部に独立して設けられ、
前記メモリアクセス頻度監視手段と、メモリ状態管理手段と、前記電源制御手段とが前記独立して設けられるメモリコントローラ内に配置される
ことを特徴とする付記８または付記９に記載のサーバ。
【００７１】
（付記１１）システム運用中に複数のメモリモジュールの中から外部要求により指定されたメモリモジュールをシステムから切り離すとともに、この切り離したメモリモジュールを再組み込みする機能を有するオペレーティングシステムをサーバに搭載する手順と、
前記複数のメモリモジュールの中で余剰のメモリモジュールとなり得る余剰メモリモジュールを判定する手順と、
前記オペレーティングシステムに対して、前記余剰メモリモジュールの切り離し要求、または前記切り離した余剰メモリモジュールのシステムへの再組み込み要求を行う手順と、
前記余剰メモリモジュールをシステムから切り離した場合に当該余剰メモリモジュールの動作状態を制御する手順と、
を含むことを特徴とするサーバの消費電力削減方法。
【００７２】
（付記１２）システム運用中に複数のメモリモジュールの中から外部要求により指定されたメモリモジュールをシステムから切り離すとともに、この切り離したメモリモジュールを再組み込みする機能を有するオペレーティングシステムを搭載したサーバ内のコンピュータに、
前記複数のメモリモジュールの各メモリモジュールへのアクセス頻度を監視し、このアクセス頻度の監視結果を基に、前記複数のメモリモジュールの中で余剰のメモリモジュールとなり得る余剰メモリモジュールを判定するメモリアクセス頻度監視手順と、
前記オペレーティングシステムに対して、前記余剰メモリモジュールのシステムからの切り離し要求、および前記切り離した余剰メモリモジュールのシステムへの組み込み要求を行うとともに、前記余剰メモリモジュールがシステムから切り離された場合に当該余剰メモリモジュールの動作状態を制御するメモリ状態管理手順と、
を実行させるためのコンピュータプログラム。
【符号の説明】
【００７３】
１，１Ａ…サーバ、１０…オペレーティングシステム（ＯＳ）、２０…ＢＩＯＳ、３０…ＡＣＰＩツリー、４０…プロセッサ、６０…ＤＩＭＭ、７０…メモリコントローラ、２００…メモリアクセス頻度監視手段、２０１…メモリ状態管理手段、３００…Ｎｏｔｉｆｙオペコード、３０１…_ＯＳＴメソッド、３０２…ＥＪ０メソッド、４００…メモリコントローラ、４０１…初期化レジスタ、４０２…リフレッシュレジスタ、４０３…アクセスカウンタレジスタ、７００…メモリアクセス頻度監視手段、７０１…メモリ状態管理手段、７０２…ＤＩＭＭ電源制御手段
【図１】
2013149065.tif 000003
【図２】
2013149065.tif 000004
【図３】
2013149065.tif 000005
【図４】
2013149065.tif 000006
【図５】
2013149065.tif 000007