JP2008262451A - メモリ電源管理装置及びメモリ電源管理方法 - Google Patents

メモリ電源管理装置及びメモリ電源管理方法 Download PDF

Info

Publication number
JP2008262451A
JP2008262451A JP2007105603A JP2007105603A JP2008262451A JP 2008262451 A JP2008262451 A JP 2008262451A JP 2007105603 A JP2007105603 A JP 2007105603A JP 2007105603 A JP2007105603 A JP 2007105603A JP 2008262451 A JP2008262451 A JP 2008262451A
Authority
JP
Japan
Prior art keywords
memory
transfer
bank
priority
management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007105603A
Other languages
English (en)
Inventor
Tadao Tanigawa
忠雄 谷川
Masahiko Saito
雅彦 齊藤
Katsushige Amano
克重 天野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2007105603A priority Critical patent/JP2008262451A/ja
Publication of JP2008262451A publication Critical patent/JP2008262451A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Power Sources (AREA)
  • Memory System (AREA)

Abstract

【課題】メモリ領域を複数のバンクに分割し省電力制御する計算機システムにおいて、メモリバンクの最適化処理のオーバーヘッドを低減することができるメモリ電源管理装置を提供すること。
【解決手段】メモリ管理部131と、メモリ転送管理部132と、メモリ電源管理部133と、仮想MMU134、仮想計算機制御部135と、仮想計算機管理情報記憶部136とを備え、メモリ管理部131は、仮想計算機の切り替えタイミングで、停止する仮想計算機に割り当てられているメモリ領域のうち、割り当て優先度の低いメモリバンクにあるメモリ領域の転送を決定し、メモリ転送管理部132が転送処理を実施し、メモリ電源管理部133とメモリ電源制御部16が、転送の結果未使用となったメモリバンクの電力供給を遮断する。
【選択図】図2

Description

本発明は、計算機システムの電力管理技術に関し、特に、複数の仮想計算機を備えた計算機システムにおけるメモリ電源管理装置及びメモリ電源管理方法に関するものである。
一般に計算機システムでは、実行中のプログラムおよびそのプログラムが読書きするデータは、主記憶と呼ばれる記憶装置に格納される。この主記憶は、揮発性の半導体メモリ素子で構成されており、その内容(書き込まれたデータ)保持のためには、常に電源を供給する必要がある。
このような揮発性メモリの省電力化の技術として、メモリ領域を複数のバンクに分割し、現在のメモリの使用状態を調べ、未使用メモリバンクの電源をオフ、あるいはDRAMのリフレッシュを停止することで、内容保持が必要なバンクだけ電源オンする方法があった(例えば、特許文献1参照)。
また、仮想アドレスを優先度の高い上位メモリバンクから順に割り当てることで、上記のデータの点在を回避する方法や、優先度の低い下位メモリバンクに割り当てられているデータを、計算機システムが省電力モードへ移行するときに、一括して上位メモリバンクの空き領域に転送することでデータの点在を解消する方法があった(例えば、特許文献2参照)。
また、オペレーティングシステムにガベージコレクション部を搭載し、メモリ領域に点在する空き領域を一つの連続した空き領域にまとめ、空き領域に対応するメモリバンクを電源オフする方法があった(例えば、特許文献3参照)。
特開平9−212416号公報 特開2005−196343号公報 特開2000−172386号公報
しかしながら、前記従来の技術では、メモリバンクの電源オフを可能とする空き領域を生成する際、データの転送処理にともなうオーバーヘッド(CPU時間、消費電力)がかかるという課題を有していた。特に、計算機システムの高機能・高性能化とともに、搭載されるメモリ容量が増大の傾向にあり、同時に計算機システム上で動作するアプリケーションの機能を実現するために必要となるメモリ容量も増加の傾向にあることから、転送対象のデータ容量も増えることになり、転送処理にともなうオーバーヘッドも増大することになる。その結果、オペレーティングシステムやアプリケーションの動作速度などの性能を低下させるという問題が生じていた。
本発明は、前記従来の課題を解決するもので、メモリ領域を複数のバンクに分割し省電力制御する計算機システムにおいて、メモリバンクの最適化処理のオーバーヘッドを低減することができるメモリ電源管理装置を提供することを目的とする。
前記従来の課題を解決するために、本発明のメモリ電源管理装置は、複数のメモリバンクから構成されるメモリと複数の仮想計算機を備えた計算機システムのメモリ電源管理を行うメモリ電源管理装置であって、前記メモリバンク毎に設定した優先度を優先度情報として記憶するメモリ管理情報記憶手段と、停止した前記仮想計算機に割り当てられているメモリ領域を決定し、メモリバンク間のデータ転送を行うか否かの判断を行う転送判断手段と、前記転送判断手段がデータ転送を行うと判断した場合、前記メモリ管理情報記憶手段に記憶された情報を用いて、転送先メモリバンクを決定する転送決定手段と、前記転送決定手段が決定した転送先メモリバンクへのデータ転送を制御するメモリ転送手段と、メモリ領域の割り当ておよび解放の状況に基づいて、全メモリ領域が未使用の状態にあるメモリバンクを決定し、前記メモリバンクへの節電制御を行うメモリ電源管理手段とを具備することを特徴とする。
本構成によって、メモリ領域を複数のバンクに分割し省電力制御する計算機システムにおいて、仮想計算機の切り替え時にメモリ転送処理を実行することで、メモリバンクの最適化処理のオーバーヘッドを低減することができる。
本発明のメモリ電源管理装置によれば、オペレーティングシステムやアプリケーションが使用中のメモリを再配置する処理機構を簡略化し、メモリバンクの最適化処理のオーバーヘッドを低減することが可能となる。このオーバーヘッドの低減により、オペレーティングシステムやアプリケーションの動作性能の低下を抑えたメモリバンクの最適化を行うことができる。
以下本発明の実施の形態について、図面を参照しながら説明する。
図1は、本発明の実施の形態におけるメモリ電源管理装置を備えた計算機システム100の構成図である。
図1において、計算機システム100は、内部バス10に接続されたCPU11(中央演算装置)と、MMU12(メモリマネージメントユニット)と、周辺モジュール13と、メモリ14、メモリ転送部15、メモリ電源制御部16を備えている。
CPU11は、メモリ14に格納されているプログラムを読み出し実行する。
MMU12は、CPU11で処理するプログラムおよびデータを論理アドレスから物理アドレスへ変換するメモリマネジメントユニットである。
周辺モジュール13は、計算機システム100の機能に必要となる処理モジュールであり、例えば、入力モジュールや出力モジュール、通信モジュール、カメラモジュールなどがある。
メモリ14は、MMU12で変換された物理アドレスに、プログラムおよびデータを記憶する。また、メモリ14は、独立して電力供給を制御可能な複数個のメモリバンク(121〜124)から構成されている。
なお、ここでは、メモリ14は、RAM(ランダムアクセスメモリ)の単一の構成を想定しているが、十分な機能および容量があれば、フラッシュメモリや、ROM(リードオンリーメモリー)などの異なる種類のメモリの組合せであってもよい。また、メモリバンク数についても、二つ以上であればいくつであっても良い。
メモリ転送部15は、物理的な記憶装置であるメモリバンク121乃至124に対して、データ転送を実行するハードウェアエンジンである。効率的なメモリ転送を実現するために、メモリ転送部15は、離散しているメモリブロックに対して、まとめて連続転送が行えるスキャッタ・ギャザーであることが望ましい。なお、計算機システム100が複数のCPUを持つ構成であるときは、メモリ転送部15を、汎用CPUを用いて実現することも可能である。
メモリ電源制御部16は、計算機システム100全体の電力を制御すべく構成された電子回路であり、その一機能として、メモリ14の各メモリバンク121乃至124への電力の供給や遮断の切替え等のメモリバンクの節電制御を行う。
図2は、本発明の実施の形態における計算機システム100のメモリ電源管理に関する機能ブロックを示す図である。
計算機システム100は、複数の仮想計算機(102、103)を備えており、ハイパーバイザー101が、仮想計算機(102、103)の管理を行っている。
仮想計算機(102、103)には、CPU11上で動作するOS(オペレーティングシステム)(110、111)が存在している。また、OS110は、タスク(112、113)の実行を管理している。同様に、OS111は、タスク(114、115、116)の実行を管理している。また、これらのタスク(112〜116)が動作する際に必要となるデータは、メモリ14に格納される。
なお、図2および以降の本発明の実施の形態では、二つの仮想計算機が存在する例のみを示しているが、三つ以上の仮想計算機が存在する構成を用いても良い。また、タスク数、オペレーティングシステム数、および、タスクとオペレーティングシステムの関係は、図2で示した例に一致しなくても良い。
ハイパーバイザー101は、前述した通り複数の仮想計算機(102、103)の管理を行う機能を有しており、メモリ管理部131と、メモリ転送管理部132と、メモリ電源管理部133と、仮想MMU134と、仮想計算機制御部135と、仮想計算機管理情報記憶部136とを備えている。
メモリ管理部131は、仮想MMU134とともに、物理アドレスと論理アドレスの対応を管理し、仮想計算機(102、103)上のOS(110、111)からの要求に従い、メモリ領域の割り当てと解放を制御する機能を有している。また、メモリバンク毎の優先度を設定して管理する。また、メモリ転送管理部132、メモリ電源管理部133にメモリ領域転送の指示およびメモリ電源状態の変更の指示を行う。
メモリ転送管理部132は、メモリバンク121乃至124の、バンク内およびバンク間のデータ転送を制御する。メモリ管理部131から転送の指示を受けたメモリ転送管理部132は、その転送指示を、データ転送を実行するハードウェアモジュールであるメモリ転送部15の制御シーケンスに変換し、メモリ転送部15を制御してデータ転送を実行する。
メモリ電源管理部133は、メモリバンク毎の割り当て状況から、未使用メモリバンクを決定し、そのメモリバンクに対して節電を行うよう、メモリ電源制御部16にメモリバンクへの電力の遮断等の節電制御を指示する。また、メモリ管理部131が、仮想計算機に対して割り当てるメモリ領域に不足が生じた時、節電あるいは電力遮断状態にある未使用メモリバンクが存在するならば、そのメモリバンクの活性化をメモリ電源制御部16に指示する。更に、通常モードから省電力モードへの移行や、省電力モードから通常モードへの移行といった、メモリ電源状態の変更の指示を、メモリ管理部131から受け取り、メモリ電源制御部16に対して、各メモリバンクの活性化や電力遮断などの指示を行う。
メモリ転送部15によるスキャッタ・ギャザーを効率的に行うために、ハイパーバイザー101は、仮想計算機102乃至103に対して、メモリバンク121乃至124の物理的なメモリマップ(物理アドレス空間)とは独立した論理的なメモリマップ(一次論理アドレス空間)を提供する。仮想MMU134は、この物理アドレス空間と一次論理アドレス空間との関係を示すマップと、仮想計算機102乃至103上の論理アドレスである二次論理アドレス空間と一次論理アドレス空間との関係を示すマップを管理しており、MMU12を制御して、物理アドレス空間と一次論理アドレス空間とのアドレス変換を実現するとともに、メモリ管理部131を通じて仮想計算機に対して一次論理アドレス空間と二次論理アドレス空間のアドレス変換の機能を提供する。
仮想計算機制御部135は、仮想計算機102と仮想計算機103の切り替え制御を行う。仮想計算機102と仮想計算機103は、停止中状態(Sleep)と、実行中状態(Active)があり、実行中状態の仮想計算機(102または103)のOS(110または111)が動作し、計算機システム100における各処理を実行することになる。つまり、CPU11上でどちらか一方の仮想計算機(102または103)のみが動作していることになる。
仮想計算機管理情報記憶部136は、仮想計算機制御部135が制御する対象の仮想計算機(102、103)の状態を記憶している。仮想計算機制御部135が、仮想計算機の切り替えを行った際に、仮想計算機管理情報の更新を行う。また、メモリ管理部131は、転送対象のメモリ領域を決定する際に、格納されている仮想計算機管理情報を参照して、停止中状態の仮想計算機を判断する。
次に、メモリ管理部131の詳細を説明する。
メモリ管理部131は、メモリ制御部141と、転送判断部142と、転送決定部143と、優先度設定部144と、メモリ管理情報記憶部145とを備えている。また、メモリ管理情報記憶部145は、メモリ領域割り当て優先度管理テーブル151と、割り当て済みメモリ領域管理テーブル152と、空きメモリ領域管理テーブル153を有している。これら各テーブルの詳細については、後に図面を用いて説明する。
メモリ制御部141は、メモリ管理部131全体の制御と、メモリ領域の割り当て及び解放処理を行う。仮想計算機(102、103)上のOS(110、111)からのメモリ割り当て要求を受け取り、メモリバンクの割り当て優先度およびメモリバンクのメモリ領域割り当て状態から、適切なメモリ領域を決定し、要求した仮想計算機にメモリ領域の割り当てを実行する。また、割り当ての実行時に、割り当て済みメモリ領域管理テーブル152と空きメモリ領域管理テーブル153の更新を行う。なお、この適切なメモリ領域とは、割り当て優先度が高くて空き容量がある領域であるため、メモリ領域割り当て優先度管理テーブル151と空きメモリ領域管理テーブル153を用いて最適なメモリ領域を決定する。さらに、仮想計算機(102、103)上のOS(110、111)からのメモリ解放要求を受け取り、要求されたメモリ領域の解放を実行する。また、解放の実行時に、割り当て済みメモリ領域管理テーブル152と空きメモリ領域管理テーブル153の更新を行う。
転送判断部142は、メモリバンク間のデータ転送を行うか否かの判断を行い、結果をメモリ制御部141に通知する。この判断処理は、(1)仮想計算機制御部135が仮想計算機の切り替えを行った際に、通知を受け取って実施する。(2)仮想計算機管理情報記憶部136に格納された情報を定期的に監視することで実施する。(3)メモリ管理情報記憶部145に格納された情報を定期的に監視することで実施する。などが可能である。(1)の場合、転送判断部142は、仮想計算機制御部135からメモリ制御部141を介して切り替え通知を受け取ることで、仮想計算機の切り替えを検出し、切り替え通知の内容に基づいて停止した仮想計算機を決定する。次に、メモリ領域割り当て優先度管理テーブル151と割り当て済みメモリ領域管理テーブル152を用いて、下位メモリバンクにある割り当て済みメモリ領域のうち、その停止した仮想計算機に割り当てられているメモリ領域の有無を決定する。対象のメモリ領域がある場合、データ転送を行うと判断し、結果をメモリ制御部141に通知する。
(2)の場合、転送判断部142は、仮想計算機管理情報記憶部136に格納された情報を定期的に監視し、仮想計算機の切り替えを検出した際に、停止した仮想計算機を決定する。次に、メモリ領域割り当て優先度管理テーブル151と割り当て済みメモリ領域管理テーブル152を用いて、下位メモリバンクにある割り当て済みメモリ領域のうち、その停止した仮想計算機に割り当てられているメモリ領域の有無を決定する。対象のメモリ領域がある場合、データ転送を行うと判断し、結果をメモリ制御部141に通知する。(3)の場合、転送判断部143は、割り当て済みメモリ領域管理テーブル152に格納された情報を定期的に監視し、利用頻度が低く、かつ、上位メモリバンクにある割り当て済みのメモリ領域のうち、停止中の仮想計算機に割り当てられているメモリ領域の有無を決定する。対象のメモリ領域がある場合、データ転送を行うと判断し、結果をメモリ制御部141に通知する。
転送決定部143は、メモリ制御部141から通知を受け、メモリ領域割り当て優先度管理テーブル151に格納された情報を用いて、転送先メモリバンクを決定する。この決定処理は、より具体的には、転送先アドレス及びサイズの決定を行う。転送決定部143は、メモリ制御部141を介してメモリ転送管理部132に決定した転送先アドレス及びサイズを通知し、転送を指示する。なお、転送判断部142で説明した(1)と(2)の場合は、転送先メモリバンクとして、上位メモリバンクを決定し、(3)の場合は、転送先メモリバンクとして下位メモリバンクを決定する。
優先度設定部144は、メモリ領域割り当て優先度管理テーブル151と割り当て済みメモリ領域管理テーブル152とを用いて、メモリバンクの割り当て優先度と、そのメモリバンクが保持している全メモリ領域の利用頻度情報およびメモリ領域の割り当て情報に基づき、メモリバンク毎に利用状況に即した優先度が設定されているかを管理し、必要に応じて優先度を設定し、最適な優先度に更新する。これにより、例えば割り当て優先度は高いが、バンク内の割り当て済みメモリ領域の多くは利用頻度の低い領域であるようなメモリバンクがあるとき、その利用頻度の低いメモリ領域をすべて、下位メモリバンクへ退避するよりも、メモリバンクそのものの優先度を落とし、利用頻度の高い領域を上位バンクへ転送するといった転送の最適化を可能とする。
なお、図2の仮想計算機(102、103)およびハイパーバイザー101については、ソフトウェアで実現されるとしたが、電子回路や集積回路等のハードウェアで実現してもよい。
以上により、仮想計算機の切り替えタイミングで、メモリ転送処理を実施することが可能となり、停止する仮想計算機のメモリ領域に対する転送処理であることから、転送するデータの種類に関わらず任意のメモリバンク間でデータ転送が可能となり、また、オーバーヘッドの低減が可能となる。このオーバーヘッドの低減により、動作中の仮想計算機上のオペレーティングシステムやアプリケーションの動作に影響を与えることなく、定常的にメモリバンクを最適化することが可能となる。更に、下位メモリバンクのメモリ領域の消費が抑えられるため、電力の供給を必要とするメモリバンクの数あるいは容量を低減することが可能である。
図3は、本発明の実施の形態におけるメモリ管理情報記憶部145に格納した各テーブルの一例を示した図である。また、図4は、図3で示した各テーブルと物理アドレス空間との関係を示している。
メモリ領域割り当て優先度管理テーブル151は、メモリバンク(121〜124)毎のメモリ領域の割り当て優先度を管理する。この優先度は、優先度設定部144により設定される。図3では、メモリバンク識別情報と、メモリバンクの開始アドレス情報と、メモリバンクのサイズ情報、割り当て優先度情報を組としてテーブル管理する例を示している。なお、終了アドレス情報など他の情報を有していてもよいし、各情報を格納したアドレスで管理するなど他のフォーマットでもよい。
割り当て済みメモリ領域管理テーブル152は、仮想計算機に対して割り当て済みのメモリ領域を管理する。図3では、メモリ領域識別情報、メモリ領域の開始アドレス情報、メモリ領域のサイズ情報、メモリ領域を使用している割り当て仮想計算機識別情報、利用頻度情報を組としてテーブル管理する例を示している。利用頻度情報は、仮想計算機がハイパーバイザー101を通して、任意に設定しても良いし、ハイパーバイザー101あるいはメモリ管理部131が仮想計算機のメモリアクセスを監視し、更新する実装でも良い。なお、終了アドレス情報など他の情報を有していてもよいし、各情報を格納したアドレスで管理するなど他のフォーマットでもよい。
空きメモリ領域管理テーブル153は、割り当てしていない(使用していない)空きメモリ領域を管理する。図3では、メモリ領域識別情報、メモリ領域の開始アドレス情報、メモリ領域のサイズ情報を組としてテーブル管理する例を示している。なお、終了アドレス情報など他の情報を有していてもよいし、各情報を格納したアドレスで管理するなど他のフォーマットでもよい。
図5から図7を参照して、本発明の実施の形態における計算機システムのメモリ電源管理手順を説明する。
図5は、仮想計算機を切り替えた直後に実施するメモリ移動処理の開始処理を説明するためのフローチャートである。ここでは、仮想計算機制御部135が、メモリ管理部131に仮想計算機の切り替えを通知し、処理を開始するものとする。前述した通り、仮想計算機管理情報記憶部136に格納された情報を定期的に監視することで切り替えを検出してもよい。
転送判断部142は、仮想計算機制御部135からの切り替え通知をメモリ制御部141を介して受け取り、切り替え通知の内容に基づいて停止した仮想計算機を決定する(ステップA1)。なお、通知を受け取った後、仮想計算機管理情報記憶部136を参照することで、停止した仮想計算機を決定する実装でもよい。
転送判断部142は、使用中メモリ領域割り当て優先度管理テーブル151と割り当て済みメモリ領域管理テーブル152を用いて、下位メモリバンクにある割り当て済みメモリ領域のうち、ステップA1で決定した停止した仮想計算機に割り当てられているメモリ領域の有無を決定する(ステップA2)。対象のメモリ領域がある場合(ステップA2がYES)、転送判断部142は、データ転送を行うと判断し、結果をメモリ制御部141に通知する。一方、対象のメモリ領域がない場合(ステップA2がNO)、処理を終了する。
転送決定部143は、メモリ制御部141から通知を受け、メモリ領域割り当て優先度管理テーブル151と割り当て済みメモリ領域管理テーブル152に格納された情報を用いて、転送先メモリバンクを決定する(ステップA3)。この決定処理は、より具体的には、転送先アドレス及びサイズの決定を行う。
転送決定部143は、メモリ制御部141を介して、決定した転送先アドレス及びサイズをメモリ転送管理部132に通知し、メモリ領域転送を指示する(ステップA4)。
メモリ転送管理部132は、メモリ転送部15に転送先のアドレスとサイズを設定し、転送の開始を指示する(ステップA5)。転送の開始の指示を受けたメモリ転送部15は、転送を開始する(ステップA6)。転送はバックグラウンドで実行されるため、完了待ちの処理は不要となり、ステップA7で、ハイパーバイザー101に制御を戻し、仮想計算機制御部135は、次に実行すべき仮想計算機を決定し、その仮想計算機の実行を再開する。
図6は、図5で開始したメモリ移動処理の終了処理を説明するためのフローチャートである。ここでは、仮想計算機制御部135が、メモリ転送処理の完了を通知する割り込みを受け取り、メモリ管理部131に転送完了を通知し、処理を開始するものとする。
メモリ管理部131は、仮想計算機制御部135から転送完了通知を受け取り、仮想MMU134にアドレス変換マップの更新を指示する(ステップB1)。
仮想MMU134は、図5で開始したメモリ転送処理により、転送対象のデータが格納されたメモリ領域の物理アドレスが変更されるため、MMU12のアドレス変換記述子を更新し、転送対象となったメモリ領域の、仮想計算機に対して割り当てている一次アドレスと、転送後のメモリ領域の物理アドレスの関連付けを修正する(ステップB2)。
メモリ管理部131(メモリ制御部141)は、仮想MMU134による更新処理の終了後、割り当て済みメモリ領域管理テーブル152と空きメモリ領域管理テーブル153を更新することで、転送元のメモリバンクから、転送の完了したデータが格納されていたメモリ領域を解放する(ステップB3)。
メモリ制御部141は、メモリ領域割り当て優先度管理テーブル15と空きメモリ領域管理テーブル153を参照し、転送元のメモリ領域が格納されていたメモリバンクのメモリ領域の割り当て状態を調べ、すべてのメモリ領域が解放され、未使用状態か否かを検査する(ステップB4)。未使用状態になっているならば(ステップB4がYES)、メモリ管理部131(メモリ制御部141)は、メモリ電源管理部133に指示することで、未使用状態のメモリバンクの電源を遮断する等の省電力制御を実行する(ステップB5)。
最後に、仮想計算機制御部135は、実行優先度のもっとも高い仮想計算機の実行を再開する(ステップB6)。
以上により、例えば、仮想計算機102が動作中で仮想計算機103が停止中である場合に、仮想計算機103での処理実行が必要となり、仮想計算機の切り替えが発生したタイミングで、動作中から停止中に状態変化する仮想計算機102が使用しているメモリ領域の移動処理を開始することが可能となる。これにより、実際の移動処理は、バックグラウンドで、メモリ転送部15によるハード処理により行われることになり、仮想計算機103でのアプリケーションの動作速度などの性能の低下を低減することが可能となる。また、定常的にメモリバンクの使用状態を最適に保つことになり、省電力モード移行時に下位メモリバンクから上位メモリバンクへ一括して転送するデータの総量の削減も意味するため、この転送の処理時間が短縮される。省電力モード移行時の処理時間の短縮は、システムのスリープ時間の延長であるため、計算機システム全体の消費電力の効果的な削減が可能となり、携帯情報端末などに代表される携帯情報端末において連続使用時間の延長や、連続待ち受け時間の延長、および電池容量の削減などが可能となる。
図7および図8は、計算機システムが省電力モードに移行する際のメモリ移動処理手順を説明するためのフローチャートである。ここでは、ハイパーバイザー101への割り込みを仮想計算機制御部135が受け取り、割り込み要因を判断し、メモリ管理部131に省電力モードへの移行を通知するか、または、仮想計算機制御部135が仮想計算機上のタスクの実行状態を監視し、省電力モードへの移行可否を判断し、メモリ管理部131に省電力モードへの移行を通知し、処理を開始するものとする。なお、省電力モードへの移行は、動作中の仮想計算機からの通知を受け取ることで、省電力モードへの移行を検出してもよい。また、ハード的な切り替えスイッチとして省電力モードも変更を行ってもよいとする。
メモリ管理部131(メモリ制御部141)は、仮想計算機制御部135から省電力モードへの移行の通知を受けると、優先度設定部144に優先度の再設定を要求する。優先度設定部144は、メモリ領域割り当て優先度管理テーブル151と割り当て済みメモリ領域管理テーブル152とを用いて、メモリバンクの割り当て優先度と、そのメモリバンクが保持している全メモリ領域の利用頻度情報およびメモリ領域の割り当て情報に基づき、メモリバンク毎に利用状況に即した最適な優先度に更新する(ステップC1)。具体的には、割り当て優先度は高いが、バンク内の割り当て済みメモリ領域の多くは利用頻度の低い領域であるようなメモリバンクに対し、メモリバンクの優先度を落とす処理を行う。つまり、その利用頻度の低いメモリ領域のすべてを、下位メモリバンクへ退避するよりも、メモリバンクそのものの優先度を落とし、利用頻度の高い領域を上位バンクへ転送する方が、転送する対象のサイズが小さくてすみ、転送処理時間を短くすることが可能となる。また、優先度設定部144は、優先度の変更が発生した場合、メモリ領域割り当て優先度管理テーブル151が格納する割り当て優先度情報の更新を行う。
優先度設定部144は、優先度を更新した結果を、メモリ制御部141に通知する。メモリ制御部141は、受け取った結果を用いて、優先度に変更があったか否かを判定する(ステップC2)。なお、ここでは、優先度設定部144から結果を受け取るとしたが、メモリ領域割り当て優先度テーブル151に更新情報を追加し、優先度設定部144が変更したメモリバンクに対する更新情報をONし、メモリ制御部141が、メモリ領域割り当て優先度テーブル151の更新情報がONのメモリバンクの有無を判定してもよい。
優先度に変更があった場合(ステップC2がYES)、転送決定部143は、メモリ制御部141から通知を受け、メモリ領域割り当て優先度管理テーブル151と割り当て済みメモリ領域管理テーブル152に格納された情報を用いて、転送先メモリバンクを決定する(ステップC3)。この決定処理は、より具体的には、最下位のメモリバンクから順に、使用中のメモリ領域を上位のメモリバンクに転送するための、転送先アドレス及びサイズの決定を行う。
転送決定部143は、メモリ制御部141を介して、決定した転送先アドレス及びサイズをメモリ転送管理部132に通知し、メモリ領域転送を指示する(ステップC4)。
メモリ転送管理部132は、メモリ転送部15に転送先のアドレスとサイズを設定し、転送の開始を指示する(ステップC5)。転送の開始の指示を受けたメモリ転送部15は、転送を開始する(ステップC6)。これにより、最下位のメモリバンクから順に、使用中のメモリ領域を上位のメモリバンクへの転送を実行することになる。
転送はバックグラウンドで実行されるため、完了待ちの処理は不要となり、ステップC1から処理を繰り返す。
一方、優先度に変更がなかった場合(ステップC2がNO)、つまり、全メモリバンクの優先度が決定して転送を開始した後、メモリ管理部131は、仮想計算機制御部135から転送完了通知を受け取り、仮想MMU134にアドレス変換マップの更新を指示する(ステップC7)。
仮想MMU134は、MMU12のアドレス変換記述子を更新し、転送対象となったメモリ領域の、仮想計算機に対して割り当てている一次アドレスと、転送後のメモリ領域の物理アドレスの関連付けを修正する(ステップC8)。
メモリ管理部131(メモリ制御部141)は、仮想MMU134による更新処理の終了後、割り当て済みメモリ領域管理テーブル152と空きメモリ領域管理テーブル153を更新することで、転送元のメモリバンクから、転送の完了したデータが格納されていたメモリ領域を解放する(ステップC9)。
メモリ制御部141は、メモリ領域割り当て優先度管理テーブル15と空きメモリ領域管理テーブル153を参照し、各メモリバンクのメモリ領域の割り当て状態を調べ、すべてのメモリ領域が解放され、未使用状態のメモリバンクの有無を判定する(ステップC10)。未使用状態のメモリバンクがある場合(ステップC10がYES)、メモリ管理部131(メモリ制御部141)は、メモリ電源管理部133に指示することで、未使用状態のメモリバンクの電力供給を遮断する(ステップC11)。
最後に、仮想計算機制御部135は、残りのスリープ遷移処理を実行してシステムをスリープ状態に遷移する(ステップC12)。
以上により、メモリバンク毎に利用状況に即した優先度が設定されているかを管理し、必要に応じて優先度を設定し、最適な優先度に更新することが可能となる。これにより、例えば割り当て優先度は高いが、バンク内の割り当て済みメモリ領域の多くは利用頻度の低い領域であるようなメモリバンクあるとき、その利用頻度の低いメモリ領域をすべて、下位メモリバンクへ退避するよりも、メモリバンクそのものの優先度を落とし、利用頻度の高い領域を上位バンクへ転送するといった転送の最適化を可能とする。
図9は、本発明の実施の形態における仮想MMU134のアドレス変換に関するアドレス空間と変換マップの一例を示している。メモリバンク(121〜124)の物理的なメモリマップ(物理アドレス空間)と、MMU12が管理する論理的なメモリマップ(一次論理アドレス空間)と、仮想MMU134が管理する仮想計算機(102、103)上の論理アドレスである二次論理アドレス空間を用いて、メモリ上のデータ制御を行う。
ハイパーバイザー101は、MMU12を制御し、仮想計算機用変換テーブル(211〜212)の内容を更新することで、一次アドレス変換マップを任意に変更することができる。仮想計算機(102〜103)上のオペレーティングシステム(110〜111)は、仮想MMU134を制御し、仮想計算機用変換テーブル(221〜222)の内容を更新することで、二次アドレス変換マップを任意に変更することができる。
また、オペレーティングシステム(110〜111)から見た仮想MMU134、および、一次論理アドレス空間と二次論理アドレス空間の関係は、一般的な計算機におけるMMU、および、物理アドレス空間と論理アドレス空間の関係に等しいため、仮想計算機上のタスク(112〜116)およびOS(110〜111)は、一次論理アドレスを物理アドレス、二次論理アドレスを論理アドレスに置き換えて実行される。
したがって、これらの二段階のアドレス変換マップにより、メモリバンク(121〜124)の物理アドレス空間と、仮想計算機上のタスク(112〜116)が実行される論理アドレス空間は独立した関係となるため、メモリ領域を転送する際の物理アドレスの変更は、一次論理アドレス変換マップの変更のみで完結し、二次論理アドレス変換マップの変更は必要としない。ゆえに、仮想計算機上で実行されているOSやアプリケーションプログラムの実行に影響を与えることなく、メモリ転送などの物理アドレスの変更処理を実行することができる。
以下、携帯電話やデジタルカメラ、PDA、携帯音楽プレイヤーに代表される携帯情報端末の計算機システムにおけるメモリ制御を一例として説明する。
近年、携帯情報端末は、高機能・高性能化が進んでおり、搭載されるメモリ容量は増大の傾向にある。また、高機能・高性能化の実現には、複数の大規模なアプリケーションプログラムの起動が必要とされており、仮想アドレス空間でメモリを管理する高機能なオペレーティングシステムによるアプリケーションプログラムの管理が必須となっている。このような携帯情報端末の計算機システムでは、アプリケーションプログラムの機能の一部の実現のために、一時的に大容量のメモリ領域を確保し、使用した後に解放する動作を繰り返すケースが多くなっている。つまり、下位メモリバンクに使用中のメモリ領域が増加することになる。その結果、省電力効率を高めるためのメモリ領域の転送処理の対象となるメモリ領域は増加し、転送処理時間が増大することになってきた。
また、携帯情報端末の計算機システムでは、ユーザーに対するアプリケーションプログラムの起動応答性能が重視される。そのため、複数のアプリケーションを上位メモリバンクのメモリ領域に常駐させ、利用シーンによりアプリケーションを切り替えて動作させる構成が一般的である。近年の携帯情報端末の高機能化にともない、アプリケーション毎に消費するメモリあるいは常駐数は増加の傾向にあり、必要とされる上位メモリバンクの数あるいは容量も増加の傾向にある。典型的に、上位メモリバンクは、電力を遮断できないかあるいは供給されている時間が、下位メモリバンクに比較して長い。そのため、上位メモリバンクの増加は、システムの消費電力を増大させることを意味する。
このような状況において、従来技術として、アプリケーション性能に影響を与えないために、計算機システムが省電力モードへ遷移するタイミングで一括転送処理を実施するものがあった。しかしながら、この方法では、転送処理時間が増大することで、システムのスリープ時間が減少し、システムの消費電力が増加することになる。
一方、本発明のメモリ電源管理装置によれば、仮想計算機の切り替えタイミングで転送処理を実施することで、定常的にメモリバンクの最適化処理を行っていることから、省電力モード移行タイミングでの転送対象のメモリ領域を削減することが可能となる。これにより、より長くスリープすることができ、より効率的な低消費電力制御を行うことが可能となる。その結果、携帯情報端末における連続使用時間の延長や、連続待ち受け時間の延長、および電池容量の削減などが可能となる。
また、前述した省電力モードへ遷移するタイミングでの一括転送処理でなく、所定のタイミングでガベージコレクション処理を実行することで、定常的にメモリバンクの使用状態を最適に保つ従来技術があった。しかしながら、この方法では、メモリ領域管理とガベージコレクション処理をオペレーティングシステムで実行しているため、計算機システムに搭載されるメモリの総量が多くなると、オペレーティングシステムに割り当てるCPU時間が増大し、アプリケーションの動作速度などの性能を低下させることになる。また、上記のガベージコレクション処理をバックグランドで実行した場合、メモリ領域管理、およびメモリ電源管理が必要とするデータ領域はガベージコレクション処理中にも参照される可能性があり、メモリバンク間を移動することはできない。さらに、ガベージコレクション処理もオペレーティングシステムの中で実行しているために、この処理に必要なデータを移動すること、および移動処理にともなうオーバーヘッド(CPU時間、および電力消費)を十分に抑えることは、非常に困難である。
一方、本発明のメモリ電源管理装置によれば、仮想計算機の切り替えが発生したタイミングで、動作中から停止中に状態変化する仮想計算機が使用しているメモリ領域の移動処理を開始することが可能となる。これにより、実際の移動処理は、バックグラウンドでハード処理により行われることになり、実行中の仮想計算機でのアプリケーションの動作速度などの性能の低下を低減することが可能となる。
以上により、本発明のメモリ電源管理方法によれば、転送するデータの種類に関わらず任意のメモリバンク間でデータ転送が可能となるため、オペレーティングシステムやアプリケーションが使用中のメモリを再配置する処理機構を簡略化し、メモリバンクの最適化処理のオーバーヘッドを低減することが可能となる。このオーバーヘッドの低減により、オペレーティングシステムやアプリケーションの動作に影響を与えることなく、定常的にメモリバンクを最適化することができ、下位メモリバンクのメモリ領域の消費が抑えられるため、電力の供給を必要とするメモリバンクの数あるいは容量を低減することが可能である。
さらに、下位メモリバンクのメモリ領域の消費の低減は、省電力モード移行時に下位メモリバンクから上位メモリバンクへ一括して転送するデータの総量の削減も意味するため、この転送の処理時間が短縮される。省電力モード移行時の処理時間の短縮は、システムのスリープ時間の延長であるため、本発明のメモリ電源管理方法によれば、計算機システム全体の消費電力の効果的な削減が可能となり、携帯情報端末などにおいて連続使用時間の延長や、携帯電話の連続待ち受け時間の延長、および電池容量の削減などが可能となる。
本発明にかかるメモリ電源管理装置は、仮想計算機の切り替えタイミングで、メモリ転送処理を実施する機能を有し、携帯情報端末などとして有用である。また、各種情報家電のメモリ電源管理などの用途にも応用できる。
本発明の実施の形態におけるメモリ電源管理装置を備えた計算機システムの構成図 本発明の実施の形態におけるメモリ電源管理装置の構成を示すブロック図 本発明の実施の形態におけるメモリ管理情報記憶部に格納した各テーブルの一例を示した図 本発明の実施の形態におけるメモリ管理情報記憶部に格納した各テーブルと物理アドレス空間との関係の一例を示す図 本発明の実施の形態におけるメモリ電源管理のメモリ移動処理の開始手順の一例を示す図 本発明の実施の形態におけるメモリ電源管理のメモリ移動処理の終了手順の一例を示す図 本発明の実施の形態におけるメモリ電源管理のメモリ一括転送処理の手順の一例を示す図 本発明の実施の形態におけるメモリ電源管理のメモリ一括転送処理の手順の一例を示す図 本発明の実施の形態における仮想MMUのアドレス変換に関するアドレス空間と変換マップの一例を示す図
符号の説明
10 内部バス
11 CPU
12 MMU
13 周辺モジュール
14 メモリ
15 メモリ転送部
16 メモリ電源制御部
100 計算機システム
101 ハイパーバイザー
102,103 仮想計算機
110,111 オペレーティングシステム
121,122,123,124 メモリバンク
131 メモリ管理部
132 メモリ転送管理部
133 メモリ電源管理部
134 仮想MMU
135 仮想計算機制御部
136 仮想計算機管理情報記憶部
141 メモリ制御部
142 転送判断部
143 転送決定部
144 優先度設定部
145 メモリ管理情報記憶部
151 メモリ領域割り当て優先度管理テーブル
152 割り当て済みメモリ領域管理テーブル
153 空きメモリ領域管理テーブル

Claims (5)

  1. 複数のメモリバンクから構成されるメモリと複数の仮想計算機を備えた計算機システムのメモリ電源管理を行うメモリ電源管理装置であって、
    前記メモリバンク毎に設定した優先度を優先度情報として記憶するメモリ管理情報記憶手段と、
    停止した前記仮想計算機に割り当てられているメモリ領域を決定し、メモリバンク間のデータ転送を行うか否かの判断を行う転送判断手段と、
    前記転送判断手段がデータ転送を行うと判断した場合、前記メモリ管理情報記憶手段に記憶された情報を用いて、転送先メモリバンクを決定する転送決定手段と、
    前記転送決定手段が決定した転送先メモリバンクへのデータ転送を制御するメモリ転送手段と、
    メモリ領域の割り当ておよび解放の状況に基づいて、全メモリ領域が未使用の状態にあるメモリバンクを決定し、前記メモリバンクへの節電制御を行うメモリ電源管理手段とを具備することを特徴とするメモリ電源管理装置。
  2. 前記転送判断手段は、前記仮想計算機の切り替えを検出した際に、メモリバンク間のデータ転送を行うか否かの判断を行い、
    前記転送決定手段は、優先度の低いメモリバンクから優先度の高いメモリバンクへの転送を決定し、
    前記メモリ転送手段は、前記仮想計算機が停止している間に、データ転送を行うことを特徴とする請求項1記載のメモリ電源管理装置。
  3. メモリバンク毎のメモリ領域の割り当ておよび解放の状況に基づいて、前記優先度情報を設定する優先度設定手段を具備することを特徴とする請求項1に記載のメモリ電源管理装置。
  4. 前記メモリ管理情報記憶手段は、割り当て済みのメモリ領域の利用頻度を利用頻度情報としてメモリ領域毎に記憶し、
    前記優先度設定手段は、前記利用頻度情報を用いて、前記優先度情報の更新を行うことを特徴とする請求項1に記載のメモリ電源管理装置。
  5. 前記転送決定手段は、前記利用頻度情報に基づいて、優先度の高いメモリバンクに存在し、前記利用頻度の低いメモリ領域を決定し、前記決定したメモリ領域に存在するデータを、優先度の低いメモリバンクへの転送を決定することを特徴とする請求項4に記載のメモリ電源管理装置。
JP2007105603A 2007-04-13 2007-04-13 メモリ電源管理装置及びメモリ電源管理方法 Pending JP2008262451A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007105603A JP2008262451A (ja) 2007-04-13 2007-04-13 メモリ電源管理装置及びメモリ電源管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007105603A JP2008262451A (ja) 2007-04-13 2007-04-13 メモリ電源管理装置及びメモリ電源管理方法

Publications (1)

Publication Number Publication Date
JP2008262451A true JP2008262451A (ja) 2008-10-30

Family

ID=39984868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007105603A Pending JP2008262451A (ja) 2007-04-13 2007-04-13 メモリ電源管理装置及びメモリ電源管理方法

Country Status (1)

Country Link
JP (1) JP2008262451A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2174834A2 (en) 2008-10-09 2010-04-14 Sanyo Electric Co., Ltd. Maneuvering assisting apparatus
JP2010211644A (ja) * 2009-03-11 2010-09-24 Nec Corp メモリ消費電力削減システム、方法及びプログラム
JP2011060238A (ja) * 2009-09-14 2011-03-24 Ricoh Co Ltd 情報処理装置、画像形成装置、動作モード切替方法
US9075604B2 (en) 2010-08-04 2015-07-07 Sony Corporation Device and method for determining whether to hold data in a memory area before transitioning to a power saving state
CN111538399A (zh) * 2019-01-23 2020-08-14 爱思开海力士有限公司 控制器、存储器***及存储器***的操作方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2174834A2 (en) 2008-10-09 2010-04-14 Sanyo Electric Co., Ltd. Maneuvering assisting apparatus
JP2010211644A (ja) * 2009-03-11 2010-09-24 Nec Corp メモリ消費電力削減システム、方法及びプログラム
JP2011060238A (ja) * 2009-09-14 2011-03-24 Ricoh Co Ltd 情報処理装置、画像形成装置、動作モード切替方法
US9075604B2 (en) 2010-08-04 2015-07-07 Sony Corporation Device and method for determining whether to hold data in a memory area before transitioning to a power saving state
CN111538399A (zh) * 2019-01-23 2020-08-14 爱思开海力士有限公司 控制器、存储器***及存储器***的操作方法

Similar Documents

Publication Publication Date Title
JP4281421B2 (ja) 情報処理システム及びその制御方法、並びにコンピュータ・プログラム
JP4938080B2 (ja) マルチプロセッサ制御装置、マルチプロセッサ制御方法及びマルチプロセッサ制御回路
JP6483609B2 (ja) マルチcpuシステム
US10353454B2 (en) Information processing apparatus and computer program product for changing swap spaces based on a performance threshold
US8799554B1 (en) Methods and system for swapping memory in a virtual machine environment
EP3602310B1 (en) Power-conserving cache memory usage
KR101222082B1 (ko) Mla의 소비 전력을 줄이기 위한 멀티 포트 메모리 장치의 전원제어방법
CN102495756A (zh) 操作***在不同的中央处理器之间切换的方法及***
WO2006117950A1 (ja) 情報処理装置における電力制御装置
US8381003B2 (en) Memory relocation in computer for power saving
JP2008090395A (ja) 計算機システム、演算用ノード及びプログラム
JP2019159802A (ja) 記憶装置の電力制御方法および記憶装置
WO2005069148A2 (en) Memory management method and related system
US20140297927A1 (en) Information processing apparatus, information processing method, and recording medium
JP2008262451A (ja) メモリ電源管理装置及びメモリ電源管理方法
JP2010044460A (ja) 電源制御装置、計算機システム、電源制御方法、電源制御プログラムおよび記録媒体
CN103914406A (zh) 一种混合内存的迁移方法及***
JP2010108253A (ja) 不揮発性メモリを主記憶に用いた装置
JP2009020555A (ja) スワップ処理装置
CN102141920A (zh) 一种动态配置C-State方法和通信设备
JP4839749B2 (ja) コンピュータ、携帯端末装置、電力制御方法、電力制御プログラム
US20060174079A1 (en) Computer system
JP4868012B2 (ja) コンピュータシステム、コンピュータシステムの制御方法、及びプログラム
JP5505195B2 (ja) メモリの制御装置、及び制御方法
TWI493563B (zh) 記憶體管理方法及應用該方法之電子裝置