JP2008040606A - 低消費電力メモリ管理方法及びその方法を用いた計算機 - Google Patents

低消費電力メモリ管理方法及びその方法を用いた計算機 Download PDF

Info

Publication number
JP2008040606A
JP2008040606A JP2006211143A JP2006211143A JP2008040606A JP 2008040606 A JP2008040606 A JP 2008040606A JP 2006211143 A JP2006211143 A JP 2006211143A JP 2006211143 A JP2006211143 A JP 2006211143A JP 2008040606 A JP2008040606 A JP 2008040606A
Authority
JP
Japan
Prior art keywords
memory bank
memory
physical page
usage frequency
power consumption
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.)
Granted
Application number
JP2006211143A
Other languages
English (en)
Other versions
JP4209906B2 (ja
Inventor
Masaaki Shimizu
正明 清水
Naonobu Sukegawa
直伸 助川
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006211143A priority Critical patent/JP4209906B2/ja
Priority to US11/707,114 priority patent/US8108629B2/en
Publication of JP2008040606A publication Critical patent/JP2008040606A/ja
Application granted granted Critical
Publication of JP4209906B2 publication Critical patent/JP4209906B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • Power Sources (AREA)

Abstract

【課題】計算機システムにおけるメモリの消費電力を、実際の使用状況に応じて効果的に削減する。
【解決手段】プロセッサと、前記プロセッサが参照する情報を格納するメモリと、を備える計算機において、前記メモリを管理する方法であって、前記メモリは、各々の電源が独立に制御される複数のメモリバンクを含み、前記各メモリバンクは、複数の物理ページを含み、前記方法は、前記利用頻度が同程度である前記物理ページを同一の前記メモリバンクに集め、前記利用頻度に基づいて、電源を制御する対象となる前記メモリバンクを選択し、前記選択されたメモリバンクの電源を制御する。
【選択図】図2

Description

本願明細書で開示される技術は、計算機に使用されるメモリの管理方法に関し、特に、メモリの消費電力を削減する方法に関する。
近年の計算機システムの性能向上に伴い、計算機システムの消費電力が増大する傾向にある。特に、将来のペタフロップス級計算機においては、計算機システムの消費電力規模の問題が顕著になる。一般に、計算機システムにおいて、CPUと、メモリと、その他の部分の消費電力は、ほぼ同等であると言われている。計算機システムの消費電力を削減するために、CPUの動的な電力制御は積極的に行われているが、メモリの消費電力の削減については、検討されている事例が少ない。
計算機のメインメモリとして使用されるDRAMは、メモリアクセスが発生しないときに、低消費電力モード(例えば、セルフリフレッシュモード)に設定することができる。低消費電力モードに設定されたDRAMの消費電力は、通常のスタンバイモードの場合と比較して大幅に低くなる。このため、DRAMの電源モードを制御することによって、メモリの消費電力を削減し、最終的には、計算機システムの消費電力を削減することができる。
メモリの消費電力を削減するために、例えば特許文献1は、メモリの使用領域を任意のメモリデバイスに集約させ、使用されていないメモリデバイスを低消費電力モードとする技術を開示している。
特許文献2は、データを有するメモリバンクのみを定期リフレッシュすることによってデータを保持するデバイスを開示している。
特許文献3は、メモリバンク全体が未使用領域であるか否かを判定する手段と、メモリ節電手段と、を備え、全体が未使用領域であるメモリバンクの電源を遮断する技術を開示している。
一方、プロセッサの消費電力を削減するために、例えば特許文献4は、演算回路を操作する命令を予め検出し、その命令に対応する演算回路を予め活性化させる技術を開示している。演算終了後、使用された演算回路は不活性化される。この技術によって、レイテンシを抑えつつ、低消費電力モードの利用による計算機システムの低消費電力化を実現することができる。
米国特許第6954837号明細書 米国特許第6215714号明細書 特開平9−212416号公報 特開2005−235203号公報
上記の従来の技術によれば、メモリを割り当てる時点で、消費電力を小さくするような割り当てが実行される。しかし、割り当てられたメモリの実際の利用状況に応じた制御については開示されていない。このため、上記の従来の技術によれば、メモリの割り当てと、実際の使用状況との間に乖離がある場合に、メモリの消費電力を効果的に削減することができなかった。例えば、あるプログラムに大容量のメモリが割り当てられた後、実際にはその割り当てられたメモリのうち一部のみが使用された場合、割り当てられたが使用されていないメモリの消費電力を削減することができなかった。
本願で開示する代表的な発明は、プロセッサと、前記プロセッサが参照する情報を格納するメモリと、を備える計算機において、前記メモリを管理する方法であって、前記メモリは、各々の電源が独立に制御される複数のメモリバンクを含み、前記各メモリバンクは、複数の物理ページを含み、前記方法は、前記利用頻度が同程度である前記物理ページを同一の前記メモリバンクに集め、前記利用頻度に基づいて、電源を制御する対象となる前記メモリバンクを選択し、前記選択されたメモリバンクの電源を制御することを特徴とする。
本発明の一実施形態によれば、計算機システムにおけるメモリの消費電力を、実際の使用状況に応じて効果的に削減することができる。
以下、本発明の実施の形態を、図面を参照して説明する。
図1は、本発明の第1の実施の形態の計算機の構成を説明するブロック図である。
本実施の形態の計算機は、ハードウエア100、オペレーティングシステム(OS)110及びユーザプログラム130を備える。
ハードウエア100は、CPU101、メモリコントローラ102及びメモリバンク103Aから103Cを備える。
各メモリバンク103Aから103Cは、計算機が備えるメモリの管理単位である。各メモリバンク103Aから103Cの電源は、独立して制御される。各メモリバンク103A等には、CPU101によって参照される情報が格納される。以下の説明において、各メモリバンク103Aから103Cを区別する必要がない場合、単にメモリバンク103と記載する。
各メモリバンク103は、例えば、一つ又は複数のDRAM(Dynamic Random Access Memory)素子によって構成されてもよい。図1には三つのメモリバンク103を示すが、本実施の形態のハードウエア100は、任意の数のメモリバンク103を備えることができる。
各メモリバンク103には、各メモリバンク103を識別するためのバンク番号が付与される。図1の例では、メモリバンク103A、103B及び103Cに付与されたバンク番号は、それぞれ、「0」、「1」及び「2」である。
各メモリバンク103内の物理的な記憶領域は、所定の大きさ(例えば、4キロバイト)の物理ページに分割される。物理ページは、各メモリバンク103内の物理的な記憶領域の管理単位である。
メモリコントローラ102は、CPU101からの指示に従って、メモリバンク103を制御する。本実施の形態のメモリコントローラ102は、少なくとも、各メモリバンク103の電源を制御する。
CPU101は、メモリバンク103に格納されたソフトウエアを実行するプロセッサである。
OS110は、メモリバンク103に格納され、CPU101によって実行されるソフトウエアである。本実施の形態のOS110は、ページテーブル111、更新アクセス利用頻度リスト112、参照アクセス利用頻度リスト113、メモリバンク・ページ管理テーブル114、物理ページ利用頻度リスト作成部115、メモリバンク・ページリスト作成部116、物理ページ収集部117、電源制御バンク判定部118及びメモリバンク電源制御部119を含む。
ページテーブル111は、CPU101が実行するプロセスに提供される仮想的なアドレス空間と、メモリバンク103の物理的なアドレス空間とを対応付けるマッピングテーブルである。仮想的なアドレス空間は、物理ページと同じ大きさの仮想ページ単位で管理される。ページテーブル111は、さらに、各物理ページが参照されたか否かを示す参照ビット(図示省略)、及び、各物理ページが更新されたか否かを示す更新ビット(図示省略)を含む。
更新アクセス利用頻度リスト112、参照アクセス利用頻度リスト113及びメモリバンク・ページ管理テーブル114については、後に詳細に説明する。
物理ページ利用頻度リスト作成部115、メモリバンク・ページリスト作成部116、物理ページ収集部117、電源制御バンク判定部118及びメモリバンク電源制御部119は、OS110を構成するプログラムモジュールである。上記の各部が実行する処理については、後に詳細に説明する。以下の説明において上記の各部が実行する処理は、実際には、CPU101によって実行される。
ユーザプログラム130は、OS110の上で、CPU101によって実行されるソフトウエアである。ユーザプログラム130は、任意のアプリケーションプログラムであってよい。
図2は、本発明の第1の実施の形態において、メモリバンク103の電源を制御するために実行される処理の全体を示すフローチャートである。
図2に示す処理は、任意のタイミングで実行されてよい。例えば、図2に示す処理は、定期的に実行される。
最初に、物理ページ利用頻度作成部115が、更新アクセス利用頻度リスト112及び参照アクセス利用頻度リスト113を作成する(201)。ステップ201において実行される処理の詳細については、後に図3を参照して説明する。ステップ201で作成されるリストについては、後に図4を参照して説明する。
次に、物理ページ収集部117が、同じ程度の利用頻度の物理ページを同一のメモリバンク103に集めるために物理ページを移動又は交換する(202)。ステップ202において実行される処理の詳細については、後に図7を参照して説明する。
次に、電源制御バンク判定部118が、利用頻度に応じて、電源制御の対象となるメモリバンク103を決定する(203)。ステップ203において実行される処理の詳細については、後に図10を参照して説明する。
次に、メモリバンク電源制御部119が、ステップ203において電源制御の対象であると決定されたメモリバンクの電源制御を実行する(204)。ステップ202において実行される処理の詳細については、後に図8及び図9を参照して説明する。
図3は、本発明の第1の実施の形態の物理ページ利用頻度リスト作成部115が実行する処理を示すフローチャートである。
図3に示す処理は、図2のステップ201において実行される。
最初に、物理ページ利用頻度リスト作成部115は、物理ページを含むページテーブル(すなわち、物理ページが割り当てられた仮想ページを含むページテーブル)を選択する(301)。
次に、物理ページ利用頻度リスト作成部115は、選択されたページテーブルの参照ビット及び更新ビットを参照して、物理ページが参照又は更新されたか否かを判定する(302)。物理ページが参照又は更新のいずれもされていない場合、ステップ302において「No」と判定される。この場合、更新アクセス利用頻度リスト112及び参照アクセス利用頻度リスト113のいずれも更新する必要がないため、処理はステップ301に戻る。
一方、物理ページが参照又は更新されている場合、ステップ302において「Yes」と判定される。この場合、物理ページ利用頻度リスト作成部115は、更新アクセス利用頻度リスト112又は参照アクセス利用頻度リスト113を更新する(303)。
具体的には、物理ページが参照されている場合、物理ページ利用頻度リスト作成部115は、参照アクセス利用頻度リスト113において、参照された物理ページに対応する物理ページ管理エントリを先頭に移動させる。物理ページ管理エントリについては、後に説明する(図4参照)。物理ページが更新されている場合、物理ページ利用頻度リスト作成部115は、更新アクセス利用頻度リスト112において、更新された物理ページに対応する物理ページ管理エントリを先頭に移動させる。
次に、物理ページ利用頻度リスト作成部115は、ステップ301において選択されたページテーブルの参照ビット及び更新ビットをクリアする(304)。参照ビット及び更新ビットをクリアされた物理ページは、その後1回以上参照又は更新されない限り、ステップ302において「No」と判定される。
その後、処理はステップ301に戻る。
図4は、本発明の第1の実施の形態の物理ページの利用頻度リストの説明図である。
具体的には、図4には、更新アクセス利用頻度リスト112及び参照アクセス利用頻度リスト113を示す。
参照アクセス利用頻度リスト113は、物理ページの参照に関するLeast Recently Used(LRU)リストである。具体的には、参照アクセス利用頻度リスト113は、物理ページ管理エントリの配列である。各物理ページ管理エントリは、少なくとも、各物理ページの識別子を含む。
図4の例において、「most」と表示された左端の物理ページ管理エントリが参照アクセス利用頻度リスト113の先頭であり、「least」と表示された右端の物理ページ管理エントリが参照アクセス利用頻度リスト113の末尾である。
図3のステップ302において、物理ページが参照されていると判定された場合、その物理ページに対応する物理ページ管理エントリ(すなわち、その物理ページの識別子を含む物理ページ管理エントリ)が、ステップ303において参照アクセス利用頻度リスト113の先頭(左端)に移動する。その結果、最も最近に参照された物理ページに対応する物理ページ管理エントリが参照アクセス利用頻度リスト113の先頭となる。一方、最後に参照されてから現在までの時間が最も長い物理ページに対応する物理ページ管理エントリが、参照アクセス利用頻度リスト113の末尾となる。
以下、本実施の形態では、ある物理ページに対応する物理ページ管理エントリが、参照アクセス利用頻度リスト113の先頭に近いほど(言い換えると、後に参照された物理ページほど)、その物理ページの利用頻度(この場合、参照頻度)が高いと判定される。
なお、後に図6において説明するように、物理ページの利用頻度を示す指標として、物理ページ管理エントリの順位が使用される。参照アクセス利用頻度リスト113の先頭の物理ページ管理エントリの順位は「0」である。一方、例えば参照アクセス利用頻度リスト113に10000個の物理ページ管理エントリが登録されている場合、末尾の物理ページ管理エントリの順位は「9999」である。
更新アクセス利用頻度リスト112は、物理ページの更新に関するLRUリストである。具体的には、更新アクセス利用頻度リスト112は、参照アクセス利用頻度リスト113と同様、物理ページ管理エントリの配列である。
図3のステップ302において、物理ページが更新されていると判定された場合、その物理ページに対応する物理ページ管理エントリが、ステップ303において更新アクセス利用頻度リスト112の先頭(左端)に移動する。その結果、参照アクセス利用頻度リスト113と同様、最も利用頻度(この場合、更新頻度)が高い物理ページに対応する物理ページ管理エントリが、更新アクセス利用頻度リスト112の先頭となる。言い換えると、後に更新された物理ページほど、更新頻度が高いと判定される。参照アクセス利用頻度リスト113と同様、更新アクセス利用頻度リスト112の物理ページ管理エントリにも順位が付与される。
以下、本実施の形態において、物理ページの利用頻度は、物理ページの参照頻度又は更新頻度の少なくとも一方に基づいて判定される。
図4には、更新アクセスによる利用頻度と、参照アクセスによる利用頻度とを区別して管理する例を示した。しかし、更新と参照を区別せずに、アクセスによる利用頻度を管理するためのアクセス利用頻度リスト(図示省略)が作成されてもよい。その場合、物理ページの利用頻度は、上記のアクセスによる利用頻度に基づいて判定されてもよい。
上記図3及び図4には、ページテーブルの更新ビット及び参照ビットに基づいて、更新アクセス利用頻度リスト112及び参照アクセス利用頻度リスト113を作成する例を説明した。しかし、更新アクセス利用頻度リスト112及び参照アクセス利用頻度リスト113は、別の方法によって作成されてもよい。
例えば、いずれのプロセスにも使用されていない物理ページが存在する場合、その物理ページを、優先的に、更新アクセス利用頻度リスト112及び参照アクセス利用頻度リスト113の低い順位に配置してもよい。その結果、いずれのプロセスにも使用されていない物理ページの利用頻度は、いずれかのプロセスに使用されている物理ページの利用頻度より低いと判定される。
あるいは、ファイルキャッシュとして使用されている物理ページが存在する場合、その物理ページを、優先的に、更新アクセス利用頻度リスト112及び参照アクセス利用頻度リスト113の低い順位に配置してもよい。その結果、ファイルキャッシュとして使用されている物理ページの利用頻度は、ファイルキャッシュとして使用されていない物理ページの利用頻度より低いと判定される。
図5は、本発明の第1の実施の形態のメモリバンク・ページリスト作成部116が実行する処理を示すフローチャートである。
図5に示す処理は、図2のステップ201(すなわち、図3に示す処理)において、更新アクセス利用頻度リスト112又は参照アクセス利用頻度リスト113が更新された場合に、図6に示すメモリバンク・ページ管理テーブル114を更新するために実行される。
最初に、メモリバンク・ページリスト作成部116は、いずれかのメモリバンク103を選択する(501)。例えば、メモリバンク・ページリスト作成部116は、計算機システムが備えるメモリバンク103Aから103Cを順次選択してもよい。
次に、メモリバンク・ページリスト作成部116は、選択されたメモリバンク103に含まれるいずれかの物理ページを選択する(502)。例えば、メモリバンク・ページリスト作成部116は、メモリバンク103に含まれる物理ページを先頭から順次選択してもよい。
次に、メモリバンク・ページリスト作成部116は、選択された物理ページが使用中である(すなわち、現在使用されている)か否かを判定する(503)。メモリバンク・ページリスト作成部116は、ページテーブルにおいて、物理ページがOS110によって使用されているか否かを示すフラグ(図示省略)を参照することによって、ステップ503の判定を実行する。
ステップ503において、選択された物理ページが使用中であると判定された場合、メモリバンク・ページリスト作成部116は、メモリバンク・ページ管理テーブル114において、利用頻度に関する値603から605、及び、使用中ページリスト608を更新する(504)。
ステップ503において、選択された物理ページが使用中でないと判定された場合、メモリバンク・ページリスト作成部116は、メモリバンク・ページ管理テーブル114において、未使用ページ数606及び未使用ページリスト607を更新する(505)。
ステップ504及び505の更新については、後に図6を参照して説明する。
メモリバンク・ページリスト作成部116は、ステップ504又は505を実行した後、ステップ502において選択された物理ページが、ステップ501において選択されたメモリバンク103の最後の物理ページであるか否かを判定する(506)。
ステップ506において、選択された物理ページがメモリバンク103の最後の物理ページであると判定された場合、ステップ501において選択されたメモリバンク103に含まれる全ての物理ページに関して、メモリバンク・ページ管理テーブル114の更新が終了した。この場合、次のメモリバンク103に関してメモリバンク・ページ管理テーブル114を更新するために、処理はステップ501に戻る。ステップ501において、ハードウエア100内の次のメモリバンク103が選択され、その後、ステップ502以降の処理が実行される。
ステップ506において、選択された物理ページがメモリバンク103の最後の物理ページでないと判定された場合、残りの物理ページに関してメモリバンク・ページ管理テーブル114を更新するために、処理はステップ502に戻る。ステップ502において、メモリバンク103内の次の物理ページが選択され、その後、ステップ503以降の処理が実行される。
図6は、本発明の第1の実施の形態のメモリバンク・ページ管理テーブル114の説明図である。
本実施の形態のメモリバンク・ページ管理テーブル114は、バンク番号601、バンク電源602、利用頻度平均値603、利用頻度最小値604、利用頻度最大値605、未使用ページ数606、未使用ページリスト607及び使用中ページリスト608からなる。
バンク番号601には、各メモリバンク103を識別するためのバンク番号が登録される。
バンク電源602には、各メモリバンク103の電源の状態を示す値が登録される。図6の例では、バンク電源602として、「ON」又は「OFF」のいずれかの値が登録される。この場合、「ON」は、スタンバイモード(すなわち、通常モード)を示し、「OFF」は、低消費電力モードを示す。メモリバンク103の低消費電力モードとは、例えば、セルフリフレッシュモード又はパワーダウンモード等である。以下、「OFF」がセルフリフレッシュモードを示す場合を例として説明する。しかし、本実施の形態において、「OFF」は、メモリバンク103の消費電力が低下する限り、パワーダウンモード又はその他のいかなる低消費電力モードを示してもよい。
利用頻度平均値603、利用頻度最小値604及び利用頻度最大値605には、各メモリバンク103の利用頻度を示す値が登録される。これらの値は、更新アクセス利用頻度リスト112又は参照アクセス利用頻度リスト113に登録された物理ページ管理エントリの順位に基づいて算出される。
なお、これらの値は、更新アクセス利用頻度リスト112のみに基づいて算出されてもよいし、参照アクセス利用頻度リスト113のみに基づいて算出されてもよい。あるいは、更新アクセス利用頻度リスト112に基づいて算出された値と、参照アクセス利用頻度リスト113に基づいて算出された値の両方が登録されてもよい。あるいは、更新と参照の区別なく作成されたアクセス利用頻度リスト(図示省略)に基づいてこれらの値が算出されてもよい。
利用頻度平均値603は、各メモリバンク103に含まれる物理ページに対応する物理ページ管理エントリの順位の平均値である。利用頻度最小値604は、各メモリバンク103に含まれる物理ページに対応する物理ページ管理エントリの順位の最小値である。利用頻度最大値605は、各メモリバンク103に含まれる物理ページに対応する物理ページ管理エントリの順位の最大値である。
なお、図4において説明したように、物理ページの利用頻度が高いほど、その物理ページに対応する物理ページ管理エントリの順位の値は小さくなる。従って、利用頻度平均値603、利用頻度最小値604及び利用頻度最大値605に登録された値が小さいことは、その値に対応する利用頻度が高いことを意味する。
未使用ページ数606は、各メモリバンク103に含まれる物理ページのうち、図5のステップ503において「使用されていない」と判定された物理ページの数である。
未使用ページリスト607は、各メモリバンク103に含まれる物理ページのうち、図5のステップ503において「使用されていない」と判定された物理ページの識別子のリストである。
使用中ページリスト608は、各メモリバンク103に含まれる物理ページのうち、図5のステップ503において「使用されている」と判定された物理ページの識別子のリストである。この使用中ページリスト608は、図4と同様、利用頻度の順に配列された物理ページ管理エントリからなるLRUリストである。ただし、図4と異なり、使用中ページリスト608は、メモリバンク103ごとに作成される。
なお、図5のステップ504において、選択された物理ページに対応する物理ページ管理エントリが、その物理ページを含むメモリバンク103に対応する使用中ページリスト608に追加される。さらに、その物理ページの利用頻度に基づいて、利用頻度平均値603、利用頻度最小値604及び利用頻度最大値605が更新される。
一方、図5のステップ505において、選択された物理ページに対応する物理ページの識別子が、その物理ページを含むメモリバンク103に対応する未使用ページリスト607に追加される。さらに、未使用ページ数606の値が1だけ加算される。
図7は、本発明の第1の実施の形態の物理ページ収集部117が実行する処理を示すフローチャートである。
図7に示す処理は、図2のステップ202において実行される。
最初に、物理ページ収集部117は、物理ページの利用頻度リスト(図4参照)を参照して、利用頻度が低いページを選択する(701)。図7に示す処理の実行が開始された後、最初にステップ701が実行される場合、利用頻度が最も低い物理ページ(すなわち、図4において最も「least」側の物理ページ)が選択される。
なお、ステップ701において、更新アクセス利用頻度リスト112のみが参照されてもよいし、参照アクセス利用頻度リスト113のみが参照されてもよい。あるいは、更新と参照の区別なく作成されたアクセス利用頻度リストが参照されてもよい。
次に、物理ページ収集部117は、メモリバンク・ページ管理テーブル114を参照して、ステップ701において選択された物理ページのマイグレーション先となるメモリバンク103を選択する(702)。例えば、物理ページ収集部117は、利用頻度が最も低いメモリバンク103(すなわち、利用頻度平均値603が最も大きいメモリバンク103)を選択してもよい。
次に、物理ページ収集部117は、マイグレーション先として選択されたメモリバンク103に、使用されていない物理ページが存在するか否かを判定する(703)。
ステップ703において、使用されていない物理ページが存在すると判定された場合、物理ページ収集部117は、その使用されていない物理ページに、ステップ701において選択された物理ページの内容を移動する(706)。その結果、マイグレーション先のメモリバンク103内の物理ページに、ステップ701において選択された物理ページの内容の複製が格納される。そして、ステップ701において選択された物理ページの内容は削除される。
物理ページの内容が移動すると、ページテーブル、物理ページ管理エントリ、物理ページの利用頻度リスト(図4参照)及びメモリバンク・ページ管理テーブル114(図6参照)を更新する必要が生じる。このため、ステップ706において、物理ページ収集部117はさらに、これらのテーブル等を更新する。
上記のステップ706の処理によって、物理ページが、その物理ページの利用頻度が低い順に、利用頻度が最も低いメモリバンク103に移動する。
一方、ステップ703において、使用されていない物理ページが存在しないと判定された場合、物理ページ収集部117は、ステップ701において選択された物理ページの内容と、マイグレーション先のメモリバンク103内のいずれかの物理ページの内容とを交換する。そのために、物理ページ収集部117は、マイグレーション先のメモリバンク103の物理ページから交換対象の物理ページを選択する(704)。具体的には、物理ページ収集部117は、マイグレーション先のメモリバンク103の中で、利用頻度が最も高い物理ページ(すなわち、図4において最も「most」側の物理ページ)を選択する。
なお、ステップ704において選択された物理ページの利用頻度が、ステップ701において選択された物理ページの利用頻度より低い場合、物理ページ収集部117の処理は、ステップ705に進まずに、ステップ702に戻ってもよい。この場合、物理ページ収集部117は、前回ステップ702において選択されたメモリバンク103の次に利用頻度が低いメモリバンク103をマイグレーション先として選択し、ステップ703以降の処理を再び実行してもよい。また、このときマイグレーション先として選択されたメモリバンク103の利用頻度が、ステップ701において選択された物理ページを含むメモリバンク103の利用頻度と同じ又はそれより高い場合、処理はステップ701に戻り、次に利用頻度が低い物理ページが選択されてもよい。
次に、物理ページ収集部117は、ステップ704において選択された交換対象の物理ページの内容と、ステップ701において選択された物理ページの内容とを交換する(705)。その結果、ステップ701において選択された物理ページに格納されていた内容が、交換対象の物理ページに新たに格納され、交換対象の物理ページに格納されていた内容が、ステップ701において選択された物理ページに新たに格納される。
さらに、ステップ705において物理ページ収集部117は、ステップ706と同様、ページテーブル、物理ページ管理エントリ、物理ページの利用頻度リスト及びメモリバンク・ページ管理テーブル114を更新する。
ステップ704及び705の処理によって、マイグレーション先として選択されたメモリバンク103の利用頻度が、ステップ701において選択された物理ページを含むメモリバンク103の利用頻度より低く、かつ、マイグレーション先として選択されたメモリバンク103に含まれる物理ページの利用頻度が、ステップ701において選択された物理ページの利用頻度より高い場合、それらの二つの物理ページの内容が交換される。
その後、物理ページ収集部117の処理はステップ701に戻る。物理ページ収集部117は、前回ステップ701において選択された物理ページの次に利用頻度が低い物理ページを選択して(701)、ステップ702以降の処理を実行する。
上記図7の処理の結果、図6に示すように、利用頻度が同程度である物理ページが同一のメモリバンク103に集められる。図6の例では、バンク番号601が「0」であるメモリバンク103は、利用頻度が「0」から「149」までの物理ページ(言い換えると、利用頻度が比較的高い物理ページ)を含む。バンク番号601が「1」であるメモリバンク103は、利用頻度が「150」から「299」までの物理ページ(言い換えると、利用頻度が中程度の物理ページ)を含む。バンク番号601が「2」であるメモリバンク103は、利用頻度が「300」から「600」までの物理ページ(言い換えると、利用頻度が比較的低い物理ページ)を含む。
図8は、本発明の第1の実施の形態のメモリバンク電源制御部119が、メモリバンク103の電源を低消費電力モードに設定するために実行する処理を示すフローチャートである。
具体的には、図8の処理は、低消費電力候補リスト(図示省略)に登録されたメモリバンク103の電源を低消費電力モードに設定するために、図2のステップ204において実行される。低消費電力候補リストは、後で説明するように、図2のステップ203において、図10等に示す処理によって作成される。
最初に、メモリバンク電源制御部119は、低消費電力候補リストに登録されたメモリバンク103内の一つの物理ページを選択する(801)。図8に示す処理の実行が開始された後、最初にステップ801が実行される場合、例えば、メモリバンク103内の先頭の物理ページが選択される。
次に、メモリバンク電源制御部119は、ステップ801において選択された物理ページが現在使用されているか否かを判定する(802)。この判定は、図5のステップ503と同様の方法によって実行されてもよい。
ステップ802において、物理ページが現在使用されていないと判定された場合、その物理ページに対応するページテーブルエントリ(図示省略)を無効にする必要がない。このため、メモリバンク電源制御部119は、ステップ803を実行せずに、ステップ804に進む。
一方、ステップ802において、物理ページが現在使用されていると判定された場合、メモリバンク電源制御部119は、ステップ801において選択された物理ページに対応するページテーブルエントリを無効にする(803)。その結果、以後、その物理ページに対するアクセスがあった場合、ページフォールトが発生する。
次に、メモリバンク電源制御部119は、ステップ801において選択された物理ページが、メモリバンク103内の最後の物理ページであるか否かを判定する(804)。
ステップ804において、選択された物理ページが最後の物理ページでないと判定された場合、残りの物理ページについて、必要な設定を実行するために、処理はステップ801に戻る。この場合、メモリバンク電源制御部119は、前回ステップ801において選択された物理ページの次の物理ページを選択して(801)、ステップ802以降の処理を実行する。
一方、ステップ804において、選択された物理ページが最後の物理ページであると判定された場合、メモリバンク103内の全ての物理ページに対応するページテーブルエントリについて、必要な設定が終了した。この場合、メモリバンク電源制御部119は、メモリバンク103の電源の設定を低消費電力モードに切り替える(805)。
なお、実際には、メモリバンク103の電源は、メモリコントローラ102によって制御される。このため、ステップ805において、メモリバンク電源制御部119は、メモリバンク103の電源の設定を低消費電力モードに切り替える指示をメモリコントローラ102に送信する。この指示を受信したメモリコントローラ102が、指示に従って電源を制御する。
次に、メモリバンク電源制御部119は、メモリバンク・ページ管理テーブル114において、低消費電力モードとなったメモリバンク103に対応するバンク電源602の値を、「OFF」に更新する(806)。
以上で、メモリバンク103の電源が、低消費電力モードに設定される。低消費電力候補リストに複数のメモリバンク103が登録されている場合、登録されている各メモリバンク103を対象として、図8に示す処理が実行される。
図9は、本発明の第1の実施の形態のメモリバンク電源制御部119が、メモリバンク103の電源を通常モードに設定するために実行する処理を示すフローチャートである。
具体的には、図9の処理は、ページフォールトが発生したときに、ページフォールトが発生した物理ページを含むメモリバンク103の電源を通常モードに設定するために実行される。
いずれかの物理ページにおいてページフォールトが発生すると、メモリバンク電源制御部119は、図9に示す処理の実行を開始する(901)。
最初に、メモリバンク電源制御部119は、ページフォールトが発生した物理ページが電源制御の対象であるメモリバンク103に含まれているか否か(すなわち、ページフォールトが発生した物理ページを含むメモリバンク103の電源が低消費電力モードに設定されているか否か)を判定する(902)。メモリバンク103が低消費電力モードでなくとも、ページフォールトが発生する場合があるためである。
ステップ902において、ページフォールトが発生した物理ページを含むメモリバンク103の電源が低消費電力モードに設定されていないと判定された場合、メモリバンク電源制御部119は、図9に示す処理を終了する。その後、ページフォールトに対する通常の(すなわち、従来と同様の)処理が実行される(909)。
一方、ステップ902において、ページフォールトが発生した物理ページを含むメモリバンク103の電源が低消費電力モードに設定されていると判定された場合、低消費電力モードの設定が、ページフォールトの原因である。この場合、メモリバンク電源制御部119は、ページフォールトが発生した物理ページを含むメモリバンク103の一つの物理ページ(例えば、先頭の物理ページ)を選択する(903)。
次に、メモリバンク電源制御部119は、ステップ903において選択された物理ページが現在使用されているか否かを判定する(904)。この判定は、図5のステップ503と同様の方法によって実行されてもよい。
ステップ904において、物理ページが現在使用されていないと判定された場合、その物理ページに対応するページテーブルエントリを有効にする必要がない。このため、メモリバンク電源制御部119は、ステップ905を実行せずに、ステップ906に進む。
一方、ステップ904において、物理ページが現在使用されていると判定された場合、メモリバンク電源制御部119は、ステップ903において選択された物理ページに対応するページテーブルエントリを有効にする(905)。その結果、以後、その物理ページに対するアクセスがあった場合、そのアクセスは許可され、低消費電力モードに起因するページフォールトは発生しない。
次に、メモリバンク電源制御部119は、ステップ903において選択された物理ページが、メモリバンク103内の最後の物理ページであるか否かを判定する(906)。
ステップ906において、選択された物理ページが最後の物理ページでないと判定された場合、残りの物理ページについて、必要な設定を実行するために、処理はステップ903に戻る。この場合、メモリバンク電源制御部119は、前回ステップ903において選択された物理ページの次の物理ページを選択して(903)、ステップ904以降の処理を実行する。
一方、ステップ906において、選択された物理ページが最後の物理ページであると判定された場合、メモリバンク103内の全ての物理ページに対応するページテーブルエントリについて、必要な設定が終了した。この場合、メモリバンク電源制御部119は、メモリバンク103の電源の設定を通常モードに切り替える(907)。
なお、実際には、メモリバンク電源制御部119は、メモリバンク103の電源の設定を通常モードに切り替える指示をメモリコントローラ102に送信する。この指示を受信したメモリコントローラ102が、指示に従って電源を制御する。
次に、メモリバンク電源制御部119は、メモリバンク・ページ管理テーブル114において、通常モードとなったメモリバンク103に対応するバンク電源602の値を、「ON」に更新する(908)。
以上で、メモリバンク103の電源が、通常モードに設定される。このように、低消費電力モードに設定されているメモリバンク103に含まれる物理ページの一つでもアクセスの対象となった場合、その物理ページを含むメモリバンク103の電源が通常モードに切り替えられる。
図10は、本発明の第1の実施の形態の電源制御バンク判定部118が、電源制御の対象となるメモリバンク103のリストを作成するために実行する処理を示すフローチャートである。
具体的には、図10に示す処理は、低消費電力候補リスト及び通常電力候補リスト(図示省略)を作成するために、図2のステップ203において実行される。低消費電力候補リストには、低消費電力モードに設定されるべきメモリバンク103が登録される。通常電力候補リストには、通常モードに設定されるべきメモリバンク103が登録される。なお、図10に示す処理の実行が開始した時点で、低消費電力候補リスト及び通常電力候補リストには、いずれのメモリバンク103も登録されていない。
最初に、電源制御バンク判定部118は、低消費電力モードに設定されるべきメモリバンク103の数を取得する(1001)。ステップ1001において取得されるメモリバンク数は、例えば、後述する図11に示す方法によって決定されてもよい。
次に、電源制御バンク判定部118は、メモリバンク・ページ管理テーブル114を参照して、現在低消費電力モードに設定されているメモリバンク103の数を取得する(1002)。
次に、電源制御バンク判定部118は、新たに低消費電力モードに設定するメモリバンク103があるか否か(言い換えると、新たに低消費電力候補リストに登録されるべきメモリバンク103があるか否か)を判定する(1003)。ステップ1003の判定を実行するため、電源制御バンク判定部118は、ステップ1001において取得したメモリバンク103の数と、ステップ1002において取得したメモリバンク103の数と、既に低消費電力候補リストに登録されているメモリバンク103の数と、を比較する。
ステップ1001において取得したメモリバンク103の数が、ステップ1002において取得したメモリバンク103の数と、既に低消費電力候補リストに登録されているメモリバンク103の数との和より大きい場合、ステップ1003において、新たに低消費電力候補リストに登録されるべきメモリバンク103があると判定される。この場合、電源制御バンク判定部118は、メモリバンク・ページ管理テーブル114を参照して、現在通常モードであり、かつ、まだ低消費電力候補リストに登録されていないメモリバンク103のうち、利用頻度が最も低いメモリバンク103を選択する(1004)。利用頻度が最も低いメモリバンク103とは、例えば、利用頻度平均値603が最も大きいメモリバンク103である。
次に、電源制御バンク判定部118は、ステップ1004において選択されたメモリバンク103を、低消費電力候補リストに追加登録する(1005)。
その後、処理はステップ1003に戻る。
一方、ステップ1001において取得したメモリバンク103の数が、ステップ1002において取得したメモリバンク103の数と、既に低消費電力候補リストに登録されているメモリバンク103の数との和以下である場合、ステップ1003において、新たに低消費電力候補リストに登録されるべきメモリバンク103がないと判定される。
この場合、電源制御バンク判定部118は、新たに通常モードに設定するメモリバンク103があるか否か(言い換えると、新たに通常電力候補リストに登録されるべきメモリバンク103があるか否か)を判定する(1006)。ステップ1006の判定を実行するため、電源制御バンク判定部118は、ステップ1001において取得したメモリバンク103の数と、ステップ1002において取得したメモリバンク103の数と、既に通常電力候補リストに登録されているメモリバンク103の数と、を比較する。
ステップ1001において取得したメモリバンク103の数が、ステップ1002において取得したメモリバンク103の数から、既に通常電力候補リストに登録されているメモリバンク103の数を減算した値より小さい場合、ステップ1003において、新たに通常電力候補リストに登録されるべきメモリバンク103があると判定される。この場合、電源制御バンク判定部118は、メモリバンク・ページ管理テーブル114を参照して、現在低消費電力モードであり、かつ、まだ通常電力候補リストに登録されていないメモリバンク103のうち、利用頻度が最も高いメモリバンク103を選択する(1007)。利用頻度が最も高いメモリバンク103とは、例えば、利用頻度平均値603が最も小さいメモリバンク103である。
次に、電源制御バンク判定部118は、ステップ1007において選択されたメモリバンク103を、通常電力候補リストに追加登録する(1008)。
その後、処理はステップ1003に戻る。
一方、ステップ1001において取得したメモリバンク103の数が、ステップ1002において取得したメモリバンク103の数から、既に通常電力候補リストに登録されているメモリバンク103の数を減算した値以上である場合、ステップ1003において、新たに通常電力候補リストに登録されるべきメモリバンク103がないと判定される。この場合、電源制御バンク判定部118は、リストの作成処理を終了する(1009)。
図10の処理が終了した結果、低消費電力候補リストに一つ以上のメモリバンク103が登録されている場合、それらの各メモリバンク103を対象として、図8に示す処理が実行される。一方、通常電力候補リストに一つ以上のメモリバンク103が登録されている場合、それらの各メモリバンク103を対象として、図9のステップ903から908までに示す処理が実行される。
図11は、本発明の第1の実施の形態の電源制御バンク判定部118が、低消費電力モードに設定されるべきメモリバンク103の数を決定するために実行する処理を示すフローチャートである。
図11に示す処理は、図10のステップ1001において取得されるメモリバンク103の数を決定するために実行される。
最初に、電源制御バンク判定部118は、目標電力消費量値及びバンク当たりの電力消費量値を取得する(1101)。
次に、電源制御バンク判定部118は、ステップ1101において取得した値に基づいて、低消費電力モードに設定されるべきメモリバンク103の数を決定する(1102)。
次に、ステップ1101において取得される値、及び、それらの値を用いて実行されるステップ1102の詳細について、図12及び図13を参照して説明する。
図12は、本発明の第1の実施の形態の電源制御バンク判定部118が参照する目標電力消費量値の説明図である。
図12に示す目標電力消費量値は、例えば、全メモリバンク103の消費電力の総和の目標値である。例えば、図1に示す計算機のユーザが、システムコール又は設定ファイルによって目標電力消費量値を設定してもよい。設定された目標電力消費量値は、例えば、いずれかのメモリバンク103に格納されることによって、計算機に保持される。図12は、目標電力消費量値として「10W」が設定されている例を示す。この値は、図11のステップ1101において、電源制御バンク判定部118によって参照される。
図13は、本発明の第1の実施の形態のバンク当たりの電力消費量テーブル1300の説明図である。
バンク当たりの電力消費量テーブル1300は、通常モードにおける1メモリバンク103当たりの電力消費量1301(以下、通常モード1301と記載する)、及び、低消費電力モードにおける1メモリバンク103当たりの電力消費量1302(以下、低消費電力モード1302と記載する)を含む。例えば、図1に示す計算機のユーザが、システムコール又は設定ファイルによってこれらの値を設定してもよい。バンク当たりの電力消費量テーブル1300は、例えば、いずれかのメモリバンク103に格納されることによって、計算機に保持される。
図13は、通常モード1301として「1300mW」が、低消費電力モード1302として「100mW」が設定されている例を示す。これらの値は、図11のステップ1101において、電源制御バンク判定部118によって参照される。
ここで、図12及び図13の例を用いて、図11のステップ1102におけるメモリバンク103の数の決定方法を説明する。
説明のため、図1に示すハードウエア100が、10個のメモリバンク103を備えると仮定する。この場合、10個のメモリバンク103全てが通常モードであった場合、全メモリバンク103電力消費量の合計値は、通常モード1301に設定された「1300mW」の10倍である「13W」となる。この値は、目標電力消費量値として設定された「10W」を上回る。
しかし、7個のメモリバンク103を通常モードとし、残りの3個のメモリバンク103を低消費電力モードとすれば、全メモリバンク103の電力消費量の合計値は、「9400mW」となり、目標電力消費量値として設定された「10W」を下回る。すなわち、全メモリバンク103の電力消費量の合計値を目標電力消費量値より小さくするために必要な低消費電力モードのメモリバンク103の数の最低値は、「3」である。この場合、ステップ1102において、低消費電力モードに設定されるべきメモリバンク103の数は、「3」に決定される。
このように、ステップ1102では、全メモリバンク103の電力消費量の合計値が目標電力消費量値を下回るために必要な低消費電力モードのメモリバンク103の数が算出される。図11に示す処理によって決定されたメモリバンク103の数が、図10のステップ1001において取得される。
図10のステップ1001において取得されるメモリバンク103の数は、図11に示す処理によって決定されてもよいが、図14に示すように、ユーザ等によって予め定められていてもよい。
図14は、本発明の第1の実施の形態の電源制御バンク判定部118が参照する低消費電力モードバンク数目標値の説明図である。
図14に示す低消費電力モードバンク数目標値は、全メモリバンク103のうち、低消費電力モードに設定されるべきメモリバンク103の数の目標値である。例えば、図1に示す計算機のユーザが、システムコール又は設定ファイルによって低消費電力モードバンク数目標値を設定してもよい。設定された低消費電力モードバンク数目標値は、例えば、いずれかのメモリバンク103に格納されることによって、計算機に保持される。
図14は、低消費電力モードバンク数目標値として「5」が設定されている例を示す。電源制御バンク判定部118は、低消費電力モードバンク数目標値として設定された値を、図10のステップ1001において取得する。
上記図10に示す方法には、全メモリバンク103の消費電力の合計値を常に所定の値以下に抑えることができるという利点がある。その一方で、常に所定の数のメモリバンク103が通常モードに設定されるため、メモリバンク103に対するアクセスがほとんど発生しない状況においては、実際にはほとんど利用されていないメモリバンク103までもが通常モードに設定され、電力を消費してしまうという問題もある。この問題を解決するため、図10に示す処理に代えて、以下の図15に示す処理が実行されてもよい。
図15は、本発明の第1の実施の形態の電源制御バンク判定部118が、電源制御の対象となるメモリバンク103のリストを、物理ページの利用頻度に基づいて作成するために実行する処理を示すフローチャートである。
具体的には、図15に示す処理は、低消費電力候補リストを作成するために、図2のステップ203において、図10に示す処理の代わりに実行される。図15に示す処理の実行が開始した時点で、低消費電力候補リストには、いずれのメモリバンク103も登録されていない。
最初に、電源制御バンク判定部118は、利用頻度閾値を取得する(1501)。ここで取得される利用頻度閾値については、後で図16を参照して説明する。図16の例では、利用頻度閾値として「200」が取得される。
次に、電源制御バンク判定部118は、実際の利用頻度が、ステップ1501で取得した利用頻度閾値以下であるメモリバンク103を選択する(1502)。具体的には、電源制御バンク判定部118は、メモリバンク・ページ管理テーブル114を参照し、利用頻度最小値604が、ステップ1501において取得した利用頻度閾値以上であるメモリバンク103を選択する(1502)。ここで選択されたメモリバンク103は、低消費電力モードに設定されるべきメモリバンク103である。図6の例では、バンク番号601が「2」であるメモリバンク103の利用頻度最小値604が「300」である。したがって、この場合、バンク番号601が「2」であるメモリバンク103が選択される。
次に、電源制御バンク判定部118は、低消費電力モードに設定されるべきメモリバンク103があるか否かを判定する(1503)。具体的には、ステップ1502においていずれのメモリバンク103も選択されなかった場合、ステップ1503において「No」と判定される。また、ステップ1502において一つ以上のメモリバンク103が選択された場合であっても、それらのメモリバンク103が既に低消費電力候補リストに登録されている場合、ステップ1503において「No」と判定される。
ステップ1503において「Yes」と判定された場合、まだ低消費電力候補リストに登録されていないメモリバンク103が、ステップ1502において選択されている。この場合、電源制御バンク判定部118は、ステップ1502において選択されたメモリバンク103を低消費電力候補リストに追加登録する(1504)。
ステップ1503において「No」と判定された場合、低消費電力モードに設定されるべきメモリバンク103は、全て低消費電力候補リストに登録された。この場合、電源制御バンク判定部118は、図15に示すリストの作成処理を終了する(1505)。
図16は、本発明の第1の実施の形態の電源制御バンク判定部118が参照する利用頻度閾値の説明図である。
図15において説明したように、メモリバンク103の利用頻度最小値604が、図16に示す利用頻度閾値以上である場合、そのメモリバンク103が、低消費電力モードに設定されるべきメモリバンク103として選択される。
例えば、図1に示す計算機のユーザが、システムコール又は設定ファイルによって、図16に示す利用頻度閾値を設定してもよい。設定された利用頻度閾値は、例えば、いずれかのメモリバンク103に格納されることによって、計算機に保持される。図16は、利用頻度閾値として「200」が設定されている例を示す。
図17は、本発明の第1の実施の形態の電力モード遷移時間テーブル1700の説明図である。
電力モード遷移時間テーブル1700は、通常モードから低消費電力モードへの遷移時間1701及び低消費電力モードから通常モードへの遷移時間1702を含む。電力モード遷移時間テーブル1700は、例えば、いずれかのメモリバンク103に格納されることによって、計算機に保持される。
図17の例では、通常モードから低消費電力モードへの遷移時間1701として「5ns(ナノ秒)」、低消費電力モードから通常モードへの遷移時間1702として「1μs(マイクロ秒)」が登録されている。これらの値は、実際のアクセスに先行してメモリバンク103の電源を通常モードに設定する処理において参照される(図18参照)。
図18は、本発明の第1の実施の形態のメモリバンク電源制御部119が、実際のアクセスに先行して、メモリバンク103の電源を通常モードに設定するために実行する処理を示すフローチャートである。
最初に、図18に示す処理の目的を説明する。
図17に示すように、メモリバンク103の電源を低消費電力モードから通常モードに切り替えるためには、1μs程度の時間を要する。ユーザプログラム130によるメモリバンク103へのアクセス要求があった後で電源のモードを切り替えると、切り替えが終了するまでの間、ユーザプログラム130の処理が中断する。この中断による性能の低下を防ぐため、これからアクセスされる物理ページを予測し、その予測の結果に従って、メモリバンク103の電源を予め通常モードに設定しておくことが望ましい。
連続した物理ページに対する連続したアクセスがあった場合、その連続アクセスが継続すると仮定することによって、ある程度の精度で、これからアクセスされる物理ページを予測することができると期待される。そのような場合の予測、及び、予測の結果に基づくメモリバンク103の制御の処理を、図18に示す。
いずれかの物理ページにおいてページフォールトが発生すると、メモリバンク電源制御部119は、図18に示す処理の実行を開始する(1801)。
次に、メモリバンク電源制御部119は、所定の閾値を超える数の連続した物理ページにおいてページフォールトが発生したか否かを判定する(1802)。この閾値は、メモリバンク電源制御部119に予め設定されていてもよいし、ユーザによって設定されてもよい。
ステップ1802において、所定の閾値を超える数の連続した物理ページにおいてページフォールトが発生していないと判定された場合、これからアクセスされる物理ページを予測することができない。この場合、メモリバンク電源制御部119は、通常のページフォールトに対する処理を実行する(1806)。この場合、メモリバンク電源制御部119は、図9のステップ902以降の処理を実行してもよい。
一方、ステップ1802において、所定の閾値を超える数の連続した物理ページにおいてページフォールトが発生したと判定された場合、メモリバンク電源制御部119は、電力モード遷移時間テーブル1700を参照して、低消費電力モードから通常モードへの遷移時間1702を取得する(1803)。図17の例では、ステップ1803において「1μs」が取得される。
次に、メモリバンク電源制御部119は、ステップ1803において取得した時間内にアクセスされると予測されるメモリバンク103があるか否かを判定する(1804)。具体的には、メモリバンク電源制御部119は、連続アクセスが継続する結果、既にページフォールトが発生している連続した物理ページのさらに先に連続する物理ページが、これから順次アクセスされると仮定する。そして、このような仮定の下で、ステップ1803において取得した時間内にアクセスの対象となる物理ページを含むメモリバンク103があるか否かを判定する。
ステップ1804において、ステップ1803において取得した時間内にアクセスされると予測されるメモリバンク103があると判定された場合、メモリバンク電源制御部119は、そのメモリバンク103の電源を通常モードに設定する処理を実行する(1805)。この場合、メモリバンク電源制御部119は、ステップ1804において判定されたメモリバンク103を対象として、図9のステップ903から908までの処理を実行してもよい。
一方、ステップ1804において、ステップ1803において取得した時間内にアクセスされると予測されるメモリバンク103がないと判定された場合、メモリバンク103の電源を予め通常モードに設定する必要がない。この場合、メモリバンク電源制御部119は、通常のページフォールトに対する処理を実行する(1806)。
以上で、図18に示す処理が終了する。
以上の本発明の第1の実施の形態によれば、ページテーブルの参照ビット及び更新ビットに基づいて、各物理ページの実際の利用頻度が評価される。そして、利用頻度が低い物理ページが同一のメモリバンク103に集められ、そのメモリバンク103の電源が低消費電力モードに設定される。その結果、全メモリバンク103の消費電力の合計値を削減することができる。また、連続した物理ページに対するアクセスがあった場合、これからアクセスされる物理ページが予測され、予測された物理ページを含むメモリバンク103の電源が予め通常モードに設定される。その結果、計算機の処理性能低下を防ぐことができる。
次に、本発明の第2の実施の形態について説明する。
図1に示した本発明の第1の実施の形態では、OS110が、図2から図18に示すような、メモリバンク103の電源制御を実行した。一方、近年、Hypervisor又は仮想マシンモニタ(VMM)等のような、計算機のリソースを仮想化する技術が開発されている。このような仮想化技術が実装される場合、図2から図18に示す制御は、Hypervisor又はVMMによって実現されてもよい。
図19は、本発明の第2の実施の形態の計算機の構成を説明するブロック図である。
第2の実施の形態の計算機は、ハードウエア100、Hypervisor又はVMM1900、OS110及びユーザプログラム130を備える。
ハードウエア100及びユーザプログラム130は、第1の実施の形態と同様であるため、説明を省略する。
Hypervisor又はVMM1900は、ハードウエア100のリソースを仮想化するためのソフトウエアである。このソフトウエアは、いずれかのメモリバンク103に格納される。第2の実施の形態のHypervisor又はVMM1900は、ページテーブル111、更新アクセス利用頻度リスト112、参照アクセス利用頻度リスト113、メモリバンク・ページ管理テーブル114、物理ページ利用頻度リスト作成部115、メモリバンク・ページリスト作成部116、物理ページ収集部117、電源制御バンク判定部118及びメモリバンク電源制御部119を含む。これらの各部は、第1の実施の形態と同様であるため、説明を省略する(図2から図18参照)。
第2の実施の形態のOS110は、第1の実施の形態のOS110が備えていたページテーブル111からメモリバンク電源制御部119までの構成を含まなくてもよい。それ以外の点に関しては、第2の実施の形態のOS110は、第1の実施の形態のOS110と同等であってもよい。
以上の本発明の第2の実施の形態によれば、第1の実施の形態と同様の機能が、ハードウエアを仮想化するソフトウエアによって実現される。このため、既存のOSに変更を加えることなく、メモリの電源を制御することによって、計算機の消費電力を削減することができる。
本発明の第1の実施の形態の計算機の構成を説明するブロック図である。 本発明の第1の実施の形態において、メモリバンクの電源を制御するために実行される処理の全体を示すフローチャートである。 本発明の第1の実施の形態の物理ページ利用頻度リスト作成部が実行する処理を示すフローチャートである。 本発明の第1の実施の形態の物理ページの利用頻度リストの説明図である。 本発明の第1の実施の形態のメモリバンク・ページリスト作成部が実行する処理を示すフローチャートである。 本発明の第1の実施の形態のメモリバンク・ページ管理テーブルの説明図である。 本発明の第1の実施の形態の物理ページ収集部が実行する処理を示すフローチャートである。 本発明の第1の実施の形態のメモリバンク電源制御部が、メモリバンクの電源を低消費電力モードに設定するために実行する処理を示すフローチャートである。 本発明の第1の実施の形態のメモリバンク電源制御部が、メモリバンクの電源を通常モードに設定するために実行する処理を示すフローチャートである。 本発明の第1の実施の形態の電源制御バンク判定部が、電源制御の対象となるメモリバンクのリストを作成するために実行する処理を示すフローチャートである。 本発明の第1の実施の形態の電源制御バンク判定部が、低消費電力モードに設定されるべきメモリバンクの数を決定するために実行する処理を示すフローチャートである。 本発明の第1の実施の形態の電源制御バンク判定部が参照する目標電力消費量値の説明図である。 本発明の第1の実施の形態のバンク当たりの電力消費量テーブルの説明図である。 本発明の第1の実施の形態の電源制御バンク判定部が参照する低消費電力モードバンク数目標値の説明図である。 本発明の第1の実施の形態の電源制御バンク判定部が、電源制御の対象となるメモリバンクのリストを、物理ページの利用頻度に基づいて作成するために実行する処理を示すフローチャートである。 本発明の第1の実施の形態の電源制御バンク判定部が参照する利用頻度閾値の説明図である。 本発明の第1の実施の形態の電力モード遷移時間テーブルの説明図である。 本発明の第1の実施の形態のメモリバンク電源制御部が、実際のアクセスに先行して、メモリバンクの電源を通常モードに設定するために実行する処理を示すフローチャートである。 本発明の第2の実施の形態の計算機の構成を説明するブロック図である。
符号の説明
100 ハードウエア
101 CPU
102 メモリコントローラ
103A、103B、103C メモリバンク
110 オペレーティングシステム(OS)
111 ページテーブル
112 更新アクセス利用頻度リスト
113 参照アクセス利用頻度リスト
114 メモリバンク・ページ管理テーブル
115 物理ページ利用頻度リスト作成部
116 メモリバンク・ページリスト作成部
117 物理ページ収集部
118 電源制御バンク判定部
119 メモリバンク電源制御部
130 ユーザプログラム
1300 バンク当たりの電力消費量テーブル
1700 電力モード遷移時間テーブル
1900 Hypervisor又は仮想マシンモニタ(VMM)

Claims (16)

  1. プロセッサと、前記プロセッサが参照する情報を格納するメモリと、を備える計算機において、前記メモリを管理する方法であって、
    前記メモリは、各々の電源が独立に制御される複数のメモリバンクを含み、
    前記各メモリバンクは、複数の物理ページを含み、
    前記方法は、
    前記利用頻度が同程度である前記物理ページを同一の前記メモリバンクに集め、
    前記利用頻度に基づいて、電源を制御する対象となる前記メモリバンクを選択し、
    前記選択されたメモリバンクの電源を制御することを特徴とする方法。
  2. 前記方法は、前記利用頻度が同程度である前記物理ページを同一の前記メモリバンクに集めるために、前記利用頻度が低い前記物理ページから順に、前記物理ページを、利用頻度が最も低い前記メモリバンクに移動することを特徴とする請求項1に記載の方法。
  3. 前記複数のメモリバンクの一つである第1メモリバンクは、前記複数の物理ページの一つである第1物理ページを含み、
    前記複数のメモリバンクの別の一つである第2メモリバンクは、前記複数の物理ページの別の一つである第2物理ページを含み、
    前記方法は、前記利用頻度が同程度である前記物理ページを同一の前記メモリバンクに集めるために、前記第1メモリバンクの利用頻度が前記第2メモリバンクの利用頻度より低く、かつ、前記第1物理ページの利用頻度が前記第2物理ページの利用頻度より高い場合、前記第1物理ページと前記第2物理ページとを交換することを特徴とする請求項1に記載の方法。
  4. 前記方法は、
    前記選択されたメモリバンクの電源を低消費電力モードに設定することによって前記電源を制御し、
    前記電源を制御されたメモリバンクに含まれる物理ページを対象とするアクセスに応じて割り込みを発生させ、
    前記発生した割り込みに対応するアクセスの対象である前記物理ページを含む前記メモリバンクの電源を通常モードに設定し、
    前記通常モードに設定されたメモリバンクに含まれる前記物理ページを対象とするアクセスに応じて、前記割り込みを発生させずに前記アクセスを許可することを特徴とする請求項1に記載の方法。
  5. 前記計算機は、前記メモリバンクを制御するメモリコントローラを備え、
    前記方法は、前記メモリコントローラを制御することによって前記メモリバンクの電源の前記低消費電力モードへの設定及び前記通常モードへの設定を実行することを特徴とする請求項4に記載の方法。
  6. 前記方法は、
    連続した前記物理ページを対象とするアクセスに応じて、所定の時間内にアクセスの対象となる前記物理ページを予測し、
    前記予測された物理ページを含む前記メモリバンクの電源を前記通常モードに設定することを特徴とする請求項4に記載の方法。
  7. 前記計算機は、低消費電力モードに設定される前記メモリバンク数の目標値を保持し、
    前記方法は、
    前記利用頻度に基づいて、前記メモリバンク数の目標値と同数の前記メモリバンクを、電源を制御する対象として選択し、
    前記選択されたメモリバンクの電源を低消費電力モードに設定することによって前記電源を制御することを特徴とする請求項1に記載の方法。
  8. 前記方法は、システムコール又は設定ファイルによって設定された前記メモリバンク数の目標値を保持することを特徴とする請求項7に記載の方法。
  9. 前記計算機は、前記各メモリバンクの消費電力の値、及び、前記メモリ全体の消費電力の目標値を保持し、
    前記方法は、前記メモリ全体の消費電力の値が前記保持された消費電力の目標値以下となるように、低消費電力モードに設定される前記メモリバンク数の目標値を算出することを特徴とする請求項7に記載の方法。
  10. 前記方法は、システムコール又は設定ファイルによって設定された前記各メモリバンクの消費電力の値、及び、システムコール又は設定ファイルによって設定された前記メモリ全体の消費電力の目標値を保持することを特徴とする請求項9に記載の方法。
  11. 前記計算機は、利用頻度閾値を保持し、
    前記方法は、前記利用頻度が前記利用頻度閾値以下である前記物理ページのみを含む前記メモリバンクを、電源を制御する対象として選択し、
    前記選択されたメモリバンクの電源を低消費電力モードに設定することによって前記電源を制御することを特徴とする請求項1に記載の方法。
  12. 前記方法は、システムコール又は設定ファイルによって設定された前記利用頻度閾値を保持することを特徴とする請求項11に記載の方法。
  13. 前記方法は、
    ページテーブルの参照ビットの値に基づいて、後で参照された前記物理ページほど、参照頻度が高いと判定し、
    前記ページテーブルの更新ビットの値に基づいて、後で更新された前記物理ページほど、更新頻度が高いと判定し、
    前記参照頻度及び前記更新頻度の少なくとも一方に基づいて、前記物理ページの利用頻度を判定することを特徴とする請求項1に記載の方法。
  14. 前記方法は、前記物理ページがいずれかのプロセスに使用されているか否か、又は、前記物理ページがファイルキャッシュとして使用されているか否かに基づいて、前記物理ページの利用頻度を判定することを特徴とする請求項1に記載の方法。
  15. 前記メモリは、前記計算機のリソースを仮想化するためのソフトウエアを格納し、
    前記方法は、前記計算機のリソースを仮想化するためのソフトウエアを実行する前記プロセッサが、
    オペレーティングシステムに対して、前記物理ページを仮想化して提供し、
    前記選択されたメモリバンクの電源を低消費電力モードに設定することによって前記電源を制御し、
    前記電源を制御されたメモリバンクに含まれる物理ページを対象とするアクセスに応じて割り込みを発生させ、
    前記発生した割り込みに対応するアクセスの対象である前記物理ページを含む前記メモリバンクの電源を通常モードに設定し、
    前記通常モードに設定されたメモリバンクに含まれる前記物理ページを対象とするアクセスに応じて、前記割り込みを発生させずに前記アクセスを許可することを特徴とする請求項1に記載の方法。
  16. プロセッサと、前記プロセッサが参照する情報を格納するメモリと、を備える計算機において、
    前記メモリは、各々の電源が独立に制御される複数のメモリバンクを含み、
    前記各メモリバンクは、複数の物理ページを含み、
    前記計算機は、
    前記利用頻度が同程度である前記物理ページを同一の前記メモリバンクに集め、
    前記利用頻度に基づいて、電源を制御する対象となる前記メモリバンクを選択し、
    前記選択されたメモリバンクの電源を制御することを特徴とする計算機。
JP2006211143A 2006-08-02 2006-08-02 低消費電力メモリ管理方法及びその方法を用いた計算機 Expired - Fee Related JP4209906B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006211143A JP4209906B2 (ja) 2006-08-02 2006-08-02 低消費電力メモリ管理方法及びその方法を用いた計算機
US11/707,114 US8108629B2 (en) 2006-08-02 2007-02-16 Method and computer for reducing power consumption of a memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006211143A JP4209906B2 (ja) 2006-08-02 2006-08-02 低消費電力メモリ管理方法及びその方法を用いた計算機

Publications (2)

Publication Number Publication Date
JP2008040606A true JP2008040606A (ja) 2008-02-21
JP4209906B2 JP4209906B2 (ja) 2009-01-14

Family

ID=39030669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006211143A Expired - Fee Related JP4209906B2 (ja) 2006-08-02 2006-08-02 低消費電力メモリ管理方法及びその方法を用いた計算機

Country Status (2)

Country Link
US (1) US8108629B2 (ja)
JP (1) JP4209906B2 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010146181A (ja) * 2008-12-17 2010-07-01 Fujitsu Ltd 実行ファイル作成装置
JP2010211644A (ja) * 2009-03-11 2010-09-24 Nec Corp メモリ消費電力削減システム、方法及びプログラム
JP2011061443A (ja) * 2009-09-09 2011-03-24 Alaxala Networks Corp ネットワーク中継装置及びメモリ制御方法
JP2011134288A (ja) * 2009-01-19 2011-07-07 Fujitsu Ltd コード生成装置及びコード生成方法
US8140600B2 (en) 2008-11-21 2012-03-20 International Business Machines Corporation Memory power control method and memory power control program
JP2013508813A (ja) * 2009-10-15 2013-03-07 マイクロソフト コーポレーション 省電力を目的としたメモリ・オブジェクトの再配置
JP2013250791A (ja) * 2012-05-31 2013-12-12 Toshiba Corp プログラム、計算処理装置、メモリ管理方法および計算機
JP2015060589A (ja) * 2013-09-18 2015-03-30 インテル・コーポレーション ヘテロジニアスメモリアクセス
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
KR20170043642A (ko) * 2014-08-22 2017-04-21 세인칩스 테크놀로지 컴퍼니 리미티드 전기량 검출 방법 및 장치, 단말, 저장 매체
JP2022511629A (ja) * 2018-10-16 2022-02-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ダイナミックランダムアクセスメモリランクのパワーダウンモードの投機的な終了
WO2023021751A1 (ja) * 2021-08-20 2023-02-23 ソニーグループ株式会社 メモリシステム及び方法

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8381209B2 (en) * 2007-01-03 2013-02-19 International Business Machines Corporation Moveable access control list (ACL) mechanisms for hypervisors and virtual machines and virtual port firewalls
US8352705B2 (en) * 2008-01-15 2013-01-08 Vmware, Inc. Large-page optimization in virtual memory paging systems
US8683133B2 (en) * 2008-01-18 2014-03-25 Texas Instruments Incorporated Termination of prefetch requests in shared memory controller
JP4354001B1 (ja) 2008-07-03 2009-10-28 Necエレクトロニクス株式会社 メモリ制御回路および集積回路
KR101612922B1 (ko) * 2009-06-09 2016-04-15 삼성전자주식회사 메모리 시스템 및 메모리 시스템 관리 방법
US8799553B2 (en) * 2010-04-13 2014-08-05 Apple Inc. Memory controller mapping on-the-fly
US8578194B2 (en) * 2010-06-21 2013-11-05 Broadcom Corporation Green mode data buffer control
US8327172B2 (en) * 2010-06-23 2012-12-04 Intel Corporation Adaptive memory frequency scaling
US8412972B2 (en) * 2010-06-28 2013-04-02 Intel Corporation Method and apparatus for reducing power consumption for memories
US9032398B2 (en) * 2010-07-12 2015-05-12 Vmware, Inc. Online classification of memory pages based on activity level represented by one or more bits
US8990531B2 (en) 2010-07-12 2015-03-24 Vmware, Inc. Multiple time granularity support for online classification of memory pages based on activity level
US9063866B1 (en) * 2010-07-12 2015-06-23 Vmware, Inc. Page table data structure for online classification of memory pages based on activity level
US8832390B1 (en) 2010-07-12 2014-09-09 Vmware, Inc. Online classification of memory pages based on activity level using dynamically adjustable scan rates
US8484418B2 (en) * 2010-10-22 2013-07-09 Intel Corporation Methods and apparatuses for idle-prioritized memory ranks
US9235500B2 (en) * 2010-12-07 2016-01-12 Microsoft Technology Licensing, Llc Dynamic memory allocation and relocation to create low power regions
WO2013095559A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Power conservation by way of memory channel shutdown
IN2012DE00977A (ja) * 2012-03-30 2015-09-11 Intel Corp
US9104413B2 (en) 2012-11-05 2015-08-11 Qualcomm Incorporated System and method for dynamic memory power management
US9684465B2 (en) 2014-03-28 2017-06-20 International Business Machines Corporation Memory power management and data consolidation
CN106462214B (zh) * 2014-05-07 2019-07-12 马维尔国际贸易有限公司 低功率分布式存储器网络
US9684360B2 (en) * 2014-10-30 2017-06-20 Intel Corporation Dynamically controlling power management of an on-die memory of a processor
US9715268B2 (en) 2015-05-08 2017-07-25 Microsoft Technology Licensing, Llc Reducing power by vacating subsets of CPUs and memory
US10379748B2 (en) * 2016-12-19 2019-08-13 International Business Machines Corporation Predictive scheduler for memory rank switching
US10620879B2 (en) * 2017-05-17 2020-04-14 Macronix International Co., Ltd. Write-while-read access method for a memory device
KR102058739B1 (ko) * 2017-07-05 2019-12-23 한양대학교 산학협력단 비휘발성 메모리의 데이터 스와핑 방법 및 장치
KR20210128628A (ko) * 2020-04-17 2021-10-27 에스케이하이닉스 주식회사 전자 장치와, 이를 위한 데이터 저장 장치 및 동작 방법
US20210232504A1 (en) * 2021-04-09 2021-07-29 Intel Corporation Avoiding processor stall when accessing coherent memory device in low power

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04143819A (ja) 1989-12-15 1992-05-18 Hitachi Ltd 消費電力制御方法、半導体集積回路装置およびマイクロプロセツサ
JP2005235203A (ja) 1989-12-15 2005-09-02 Renesas Technology Corp マイクロプロセッサ
JPH07160574A (ja) 1993-12-13 1995-06-23 Matsushita Electric Ind Co Ltd 情報処理装置
US5928365A (en) 1995-11-30 1999-07-27 Kabushiki Kaisha Toshiba Computer system using software controlled power management method with respect to the main memory according to a program's main memory utilization states
JPH09212416A (ja) 1995-11-30 1997-08-15 Toshiba Corp 計算機システムおよび計算機システムの電力管理方法
JP4056173B2 (ja) 1999-04-14 2008-03-05 富士通株式会社 半導体記憶装置および該半導体記憶装置のリフレッシュ方法
US6742097B2 (en) * 2001-07-30 2004-05-25 Rambus Inc. Consolidation of allocated memory to reduce power consumption
US7010656B2 (en) * 2003-01-28 2006-03-07 Intel Corporation Method and apparatus for memory management
US7272734B2 (en) * 2004-09-02 2007-09-18 International Business Machines Corporation Memory management to enable memory deep power down mode in general computing systems
US20060117160A1 (en) * 2004-12-01 2006-06-01 Intel Corporation Method to consolidate memory usage to reduce power consumption

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140600B2 (en) 2008-11-21 2012-03-20 International Business Machines Corporation Memory power control method and memory power control program
JP2010146181A (ja) * 2008-12-17 2010-07-01 Fujitsu Ltd 実行ファイル作成装置
JP2011134288A (ja) * 2009-01-19 2011-07-07 Fujitsu Ltd コード生成装置及びコード生成方法
JP2010211644A (ja) * 2009-03-11 2010-09-24 Nec Corp メモリ消費電力削減システム、方法及びプログラム
JP2011061443A (ja) * 2009-09-09 2011-03-24 Alaxala Networks Corp ネットワーク中継装置及びメモリ制御方法
JP2013508813A (ja) * 2009-10-15 2013-03-07 マイクロソフト コーポレーション 省電力を目的としたメモリ・オブジェクトの再配置
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
JP2013250791A (ja) * 2012-05-31 2013-12-12 Toshiba Corp プログラム、計算処理装置、メモリ管理方法および計算機
JP2015060589A (ja) * 2013-09-18 2015-03-30 インテル・コーポレーション ヘテロジニアスメモリアクセス
US9513692B2 (en) 2013-09-18 2016-12-06 Intel Corporation Heterogenous memory access
KR20170043642A (ko) * 2014-08-22 2017-04-21 세인칩스 테크놀로지 컴퍼니 리미티드 전기량 검출 방법 및 장치, 단말, 저장 매체
KR101995856B1 (ko) 2014-08-22 2019-07-03 세인칩스 테크놀로지 컴퍼니 리미티드 전기량 검출 방법 및 장치, 단말, 저장 매체
JP2022511629A (ja) * 2018-10-16 2022-02-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ダイナミックランダムアクセスメモリランクのパワーダウンモードの投機的な終了
JP7408650B2 (ja) 2018-10-16 2024-01-05 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ダイナミックランダムアクセスメモリランクのパワーダウンモードの投機的な終了
WO2023021751A1 (ja) * 2021-08-20 2023-02-23 ソニーグループ株式会社 メモリシステム及び方法

Also Published As

Publication number Publication date
US20080034234A1 (en) 2008-02-07
US8108629B2 (en) 2012-01-31
JP4209906B2 (ja) 2009-01-14

Similar Documents

Publication Publication Date Title
JP4209906B2 (ja) 低消費電力メモリ管理方法及びその方法を用いた計算機
US7793129B2 (en) Power consumption decrease memory management method
US7925840B2 (en) Data processing apparatus and method for managing snoop operations
US10353454B2 (en) Information processing apparatus and computer program product for changing swap spaces based on a performance threshold
US8307369B2 (en) Power control method for virtual machine and virtual computer system
US9251081B2 (en) Management of caches
EP2619675B1 (en) Apparatus, method, and system for implementing micro page tables
US8645612B2 (en) Information processing device and information processing method
JP7340326B2 (ja) メンテナンス動作の実行
JP2017194947A (ja) キャッシュメモリの利用トレンドに基づく複数セットグループ内のウェイごとの動的パワー供給
US9063794B2 (en) Multi-threaded processor context switching with multi-level cache
KR101587579B1 (ko) 가상화 시스템에서 메모리 조정방법
KR102482516B1 (ko) 메모리 어드레스 변환
JP2005293300A (ja) セットアソシアティブキャッシュシステム及びキャッシュメモリの制御方法
US20120254526A1 (en) Routing, security and storage of sensitive data in random access memory (ram)
Min et al. Vmmb: Virtual machine memory balancing for unmodified operating systems
US20190294355A1 (en) Information processing device, information processing method, estimation device, estimation method, and computer program product
JP2008234320A (ja) キャッシュ制御回路
JP5045163B2 (ja) 演算処理装置および演算処理装置の制御方法
JP6800904B2 (ja) モデル生成装置、情報処理装置、モデル生成方法およびプログラム
CN101859282B (zh) 基于双重跟踪的虚拟化平台的磁盘页面换入的方法
JP6877381B2 (ja) 情報処理装置、情報処理方法およびプログラム
Hwang et al. Hyperdealer: Reference-pattern-aware instant memory balancing for consolidated virtual machines
JP2019164630A (ja) 推定装置、推定方法およびプログラム
CN104461928A (zh) 划分高速缓存的方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080717

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080722

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080922

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081021

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081023

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131031

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees