JP2009505306A - 電力削減のための動的メモリサイジング - Google Patents

電力削減のための動的メモリサイジング Download PDF

Info

Publication number
JP2009505306A
JP2009505306A JP2008527937A JP2008527937A JP2009505306A JP 2009505306 A JP2009505306 A JP 2009505306A JP 2008527937 A JP2008527937 A JP 2008527937A JP 2008527937 A JP2008527937 A JP 2008527937A JP 2009505306 A JP2009505306 A JP 2009505306A
Authority
JP
Japan
Prior art keywords
memory
ways
sleep
power
required number
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
JP2008527937A
Other languages
English (en)
Other versions
JP2009505306A5 (ja
Inventor
マンデルブラット、ジュリアス
メハレル、モティ
アビ メンデルソン
ナヴェー、アロン
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2009505306A publication Critical patent/JP2009505306A/ja
Publication of JP2009505306A5 publication Critical patent/JP2009505306A5/ja
Pending legal-status Critical Current

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
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

結合スリープデバイスを有するメモリに関して電力を削減する動的メモリのシステム及び方法を記載する。一実施形態では、動作要件は、相応の動作を実行するのに必要なメモリ量を反映しうる。メモリ電力管理論理を使用して、必要メモリを動作要件に対して調整する。スリープデバイスは、電力消費量を削減するよう要件に基づいてメモリを有効化又は無効化することができる。
【選択図】 なし

Description

本発明の1つ以上の実施形態は、一般的に、集積回路及び/又はコンピューティングシステムに関する。特に、特定の実施形態は、メモリ回路の電力管理に関する。
より多くのトランジスタを有し且つ高周波数で動作する高度プロセッサの傾向が高まるにつれ、コンピュータ設計者及び製造業者は、しばしば、対応して増加する電力消費量の問題に対処することになる。また、高速及び小型のコンポーネントを供給する製造技術は、同時に、漏れ電力を増加する。特に、モバイルコンピューティング環境において、このような増加は過熱の原因となり、これは、性能に悪影響を及ぼし、電池の寿命を相当短くしてしまいうる。
例えば、マイクロプロセッサにおいて、性能及び小フォームファクタに重点的に取り組むことによって、キャッシュメモリサイズは、所与のシリコン領域に対して最良の性能を実現するよう増加されている。より一層大きいメモリサイズに向かう最近のこの傾向は、メモリに関連付けられる電力消費量を増加している。その結果、メモリにより放散される漏れ電力は、中央演算処理ユニット(CPU)の総電力に比べるとかなり相当である。
本発明の実施形態の様々な利点は、当業者には、以下の詳細な説明及び請求項を読むことにより、また、以下の図面を参照することにより明らかとなろう。
本発明の一実施形態による、動的サイジングを実施するためのメモリアーキテクチャの一例を示すブロック図である。
本発明の一実施形態による、動的サイジングを実施するためのメモリアーキテクチャの別の例を示す図である。
本発明の一実施形態による、動的サイジングを実施するためのメモリアーキテクチャのセルレベルの例を示す図である。
本発明の一実施形態による、動的サイジングを実施するためのメモリアーキテクチャのセルレベルの例を示す図である。
本発明の一実施形態による、動的サイジングを実施するためのメモリアーキテクチャのセルレベルの例を示す図である。
本発明の実施形態によるスリープデバイスの様々な例を示す図である。
本発明の実施形態による例示的なコンピュータシステムを示すシステムレベルブロック図である。
本発明の一実施形態による動的メモリサイジングを管理する方法の一例を示すフローチャートである。
本発明の一実施形態による動的メモリサイジングを管理する方法の別の例を示すフローチャートである。
本発明の一実施形態による動的メモリ管理マシンの一例を示す状態図である。
コンピュータシステム及び/又は関連付けられるソフトウェアにより実際に必要とされうるメモリ量は、多くの場合、時間の経過と共に変化する。例えば、一般的なアプリケーションでは、所与の時間にメモリの小さな一部しか必要でない場合がある。1つ以上の実施形態では、図1のメモリといったメモリは、メモリ回路と、それを使用するシステムの所要電力を低減するよう動的にサイズ変更されうる。具体的には、本願に説明するように、本発明の実施形態は、メモリの1つ以上のサブセクションを、それらが必要ではない及び/又は選択されない場合に、無効にすることにより、性能に実質的に影響を与えることなく電力消費量を減少しうる。
図1は、一実施形態による動的にサイズ変更可能なメモリ100を示す。図1のこの例示的な実施形態の動的にサイズ変更可能なメモリは、例えば、静的ランダムアクセスメモリ(SRAM)を使用して実施されうるnウエイ連想キャッシュメモリである。動的にサイズ変更可能なメモリ100は、複数のサブセクション102a、102b、…、102n(各サブセクションは、この特定の例では、ウエイ(way)である)を含み、それぞれ、別個に、図示するように、各サブセクション又はウエイ102が選択的に有効/無効にされるよう複数のスリープデバイス104a、104b、…、104nに結合される。本発明の1つ以上の実施形態では、スリープデバイス104は、メモリの関連付けられるサブセクションを電源に選択的に結合/減結合するよう使用されるスリープトランジスタを含みうる。
図3は、トランジスタレベルにおけるそのような実施の例示的なサブセクション又はウエイ300を示す。ウエイ300は、スリープデバイス304に結合されるセル302a、302b、…、302mを含む。ウエイ300の電源は、ここではスリープデバイス又はスリープトランジスタと称しうる直列トランジスタ304を介してホスト集積回路のグローバル電源線に結合されうる。図4は、図3の複数のセル302のうちの1つに対応しうる単一セル402を示す。より具体的には、図3及び4に示すように、スリープデバイス304及び404の入力ポートは、電源(この例ではVss)に結合され、出力ポートは、アレイ供給に結合される。このアレイ供給は、アレイの仮想電源、すなわち、VVssと称されうる。
図3及び4の例示的な実施形態は、メモリのサブセクションとVssとの間に結合されるスリープデバイスを示すが、別の実施形態では、スリープデバイスは、図5のセル502に示すようにメモリのサブセクションとVccとの間に結合されてもよく、又は、1つのスリープ回路が、Vcc及びVssのそれぞれと関連付けられるサブセクションとの間に結合されてもよい。
1つ以上の実施形態では、スリープデバイスは、関連付けられるウエイがアクティブである限りオンであり、また、関連付けられるウエイが非アクティブにされるべきであると決定される場合はオフにされうる。スリープデバイスをオフにし、メモリの関連付けられるサブセクションを無効にする結果、仮想電源のレールツーレール(Rail-to-Rail)電圧は減少する。従って、関連付けられるメモリアレイの漏れ電力が減少する。これは、漏れは、電圧に依存することによる(以下の式1を参照されたい)。
Ilkg=k・V (式1)
このとき、Ilkgは、漏れ電流であり、Vは、レールツーレール電圧であり、kは、定数でありえ、また、nは、必須ではないが、3より大きい。
図6及び図7は、本発明の実施形態によるスリープデバイスの代替の実施形態を示す。図6は、2つのスリープトランジスタ606a及び606bを有するスリープデバイス604を示す。この構成の利点には、以下に限定されないが、スリープトランジスタ606aが、606bとは異なる抵抗値を有する場合が含まれる。実施形態では、スリープレジスタ606aのサイズを減少することにより、スリープレジスタ606aのゲートにおける電圧は、接地より高くなり、従って、ウエイ又はセル602を無効にするのにそれほど電圧を必要としなくなる。
同様に別の利点が、図7に示すスリープデバイス704及び図8に示すスリープデバイス804により与えられる。スリープデバイス704は、ウエイ又はセル702に供給される電力を漸進的に減少しうる。スリープデバイス804は、ウエイ又はセル802に供給される電力を限定的に減少しうる。図6乃至8の代替のスリープデバイスは、本発明の実施形態に従って、少なくとも本願に与えられる教示内容に基づいて当業者が使用しうるスリープデバイスのタイプを例示する代替の実施形態を与えるが、本発明の範囲を限定することを意図しない。さらに、当業者には明らかなように、これらのスリープデバイスの様々な実施形態は、他のスリープデバイスより特殊であり、従って、特定の動的にサイズ変更可能なメモリにはより有利でありうる応用を有しうる。
他の実施形態では、様々な回路及び/又は他の技術を使用して、代替のスリープ論理を実施しうる、及び/又は、異なるアプローチを使用してスリープデバイスと同様の機能性を供給しうる。本発明の一実施形態では、例えば、メモリの様々なサブセクションを、そのメモリのサブセクションが電力面制御を介して有効/無効にされうるよう様々な電力面上で実装されうる。他のアプローチも様々な実施形態の範囲内である。
ここでは、ウエイと関連付けられるスリープデバイスの複数の個々のペアを示すが、本発明の実施形態は、本発明の実施形態の精神及び範囲から逸脱することなく様々な配置で容易に実施されうる。例えば、図2は、単一のスリープデバイス204に結合される複数のウエイ202a、202b、…、202nを含む、本発明の代替の実施形態による動的メモリ200を示す。ここでは、nは、1より大きい数でありうる。ウエイ及びスリープデバイスは、機能及び設計に関して、図1に示すものと同様でありうる。ただし、この代替の実施形態では、スリープデバイス204は、それに関連付けられるすべてのウエイを無効にするよう非アクティブにされうる。
さらに、ここでは、説明目的でマイクロプロセッサ上に実装されるnウエイ連想キャッシュメモリを記載するが、本発明の実施形態は、異なるアーキテクチャを有するキャッシュメモリ及び/又は別のタイプの集積回路デバイス上に実装されるメモリを含む他のタイプのメモリにも適用されうることは理解されよう。
他の実施形態では、例えば、様々なレベルのキャッシュメモリを含むメモリの他のパーティション、サブセクション、又はポーションは、本願に記載する1つ以上のアプローチを使用して選択的に有効及び/又は無効にされうる。従って、説明するウエイは、アレイといったセルの便利なグループ分けを提供しうるが、「ウエイ」という用語の使用は、本発明の精神又は範囲を限定することを意図しない。
図1を再び参照する。上述したように、スリープデバイス104aは、漏れ電力を削減するようウエイ102aが必要ではない場合にウエイ102aを無効にするよう非アクティブにされ、又は、ウエイ102aを有効にするようアクティブにされうる。なお、メモリに関して「有効にする」との用語の使用は、メモリの任意のアクティブレベルでの電力投入を意味し、また、「無効にする」との用語の使用は、メモリへの電力の除去又は遮断を意味する。論理的な観点から、本願に記載する本発明の実施形態では、有効化されたメモリは、読出し/書込み演算のためにアクセスされ、一方、無効にされたメモリは、アクセスされない。
1つ以上の実施形態では、動的にサイズ変更可能なメモリ100の関連付けられるサブセクションを有効及び/又は無効にする目的で、スリープデバイス104a−104nは、ホスト集積回路、コンピュータシステム、又はソフトウェア内に実装されうるメモリ電力管理論理又は他の論理(図示せず)により制御されうる。このような実施の例を、図9を参照しながら以下に説明する。
図9は、本発明の例示的な実施形態による動的にサイズ変更可能なメモリ905を有するコンピュータシステム900を示すブロック図である。コンピュータシステム900は、例えば、ラップトップ、ノートブック又はデスクトップコンピュータシステムといったパーソナルコンピュータシステムでありうる。コンピュータシステム900は、以下に限定されないが、コア902及びコア904により示す1つ以上のコアといったサブブロックを含みうる1つ以上のプロセッサ901と、例えば、L2キャッシュメモリでありうる動的にサイズ変更可能なキャッシュメモリ905と、メモリ電力管理論理907を含みうる電力管理論理906とを含みうる。1つ以上のプロセッサは、インテル(登録商標)アーキテクチャマイクロプロセッサでありうる。他の実施形態では、プロセッサは、例えば、グラフィクスプロセッサ、デジタル信号プロセッサ、混載プロセッサ等といった異なるタイプのプロセッサであり、及び/又は、異なるアーキテクチャを実装しうる。
1つ以上のプロセッサ901は、1つ以上のクロック源908と共に動作し、また、1つ以上の電圧源910から電力が供給されうる。1つ以上のプロセッサ901はさらに、メモリ912といった異なるレベルのメモリとも通信しうる。システム内に含まれても、システムによってアクセス可能にされてもよいシステムメモリ(RAM)918a、及び、大容量記憶装置といった記憶装置918bといった上位メモリヒエラルキーレベルが、ホストバス914及びチップセット916を介してアクセスされうる。
さらに、例えば、グラフィクスインターフェース920及びネットワークインターフェース922等といった他の機能ユニットが、適切なバス又はポートを介して1つ以上のプロセッサ901と通信しうる。例えば、メモリ912、RAM918a、及び/又は、記憶装置918bは、本発明の実施形態によるメモリの動的サイジングを提供するサブセクションを含みうる。さらに、当業者は、図示するコンポーネントの一部又はすべては、説明する実施形態の精神又は範囲から逸脱することなく、図9に示すものの変形において、異なる領域確保及び/又は集積アプローチを使用して実施しうることを認識するであろう。
一実施形態では、記憶装置918bは、例えば、オペレーティングシステム924といったソフトウェアを格納しうる。一実施形態では、オペレーティングシステムは、ワシントン州レッドモンドにあるマイクロソフト社から入手可能なウィンドウズ(登録商標)のオペレーティングシステムである。これは、ACPI(Advanced Configuration and Power Interface:高度設定及び電力インターフェース)規格(例えば、ACPI仕様の2004年9月2日の3.0版、2003年8月25日の2.0c版、2000年7月27日の2.0版など)に従った特徴及び機能を含み、及び/又は、OSPM(Operating System-directed Power Management:オペレーティングシステム指向電力管理)を提供する。他の実施形態では、オペレーティングシステムは、例えば、リナックスオペレーティングシステムといった異なるタイプのオペレーティングシステムでありうる。
システム900は、モバイルパーソナルコンピュータシステムであるが、例えば、他のタイプのコンピュータ(例えば、手持ち式、サーバ、タブレット、ウェブアプライアンス、ルータなど)、ワイヤレス通信装置(例えば、セルラ電話機、コードレス電話機、ページャ、携帯情報端末など)、コンピュータ関連周辺機器(例えば、プリンタ、スキャナ、モニタなど)、娯楽装置(例えば、テレビ受像機、ラジオ、ステレオ、テープ及びコンパクトディスクプレイヤ、ビデオカセットレコーダ、ビデオレコーダ、デジタルカメラ、MP3(モーション・ピクチャ・エキスパーツ・グループ、オーディオレイヤ3)プレイヤ、ビデオゲーム、時計など)などといった他のタイプのシステムも様々な実施形態の範囲内である。上述の様々な図面により示すメモリ回路も任意のタイプであってよく、任意の上述したシステムに実装されてもよい。
一実施形態のメモリ電力管理モジュール907は、有限状態マシン(FSM)として実装されうる。1つの例示的な実施形態のメモリ電力管理モジュール907の動作に対応する状態図を図12に示す。
メモリ電力管理モジュール907は、電力管理モジュール906といったプロセッサ901の他の特徴及び機能と協働して動作しうる。特に、一実施形態の電力管理モジュールは、様々な電力状態間の移動を含む、プロセッサ901及び/又は個々のコア902及び904の電力管理を制御しうる。例えば、オペレーティングシステム924がACPIをサポートする場合、電力管理モジュール907は、様々なコアのc状態及び/又はp状態を制御及び追跡しうる。電力管理モジュールはさらに、例えば、プロセッサ及び/又は1つ以上のコアの動作電圧/周波数、最小キャッシュメモリサイズ、タイマ情報、及び/又は、レジスタ又は他のデータストアに格納される他の情報といった、1つ以上の実施形態の動的メモリサイジングアプローチを管理するのに使用する他の情報を格納する、又は、そうでなければ、これらの情報へのアクセスを有しうる。
図9及び図12を続けて参照する。メモリ電力管理モジュールは、3つの高レベル状態(様々な実施形態では中間状態が含まれてもよい)間を移動する。すなわち、「フルキャッシュサイズ」状態1205、「最小キャッシュサイズ」状態1210、及び「縮小停止」状態1215間を移動する。これらの状態間の移動は、メモリ905に結合されるマイクロコード(μコード)又は他のモジュール926と協働して管理されうる。「フルキャッシュサイズ」状態1205では、キャッシュをそのフルサイズに戻すマイクロコード926がリクエストされる。これはデフォルト(リセット)状態である。「最小キャッシュサイズ」状態1210では、キャッシュメモリをその最小サイズに縮小するマイクロコード926がリクエストされる。一部の実施形態では、最小サイズは(例えば、マイクロコードを介して)プログラム可能であり、また、以下に限定されないが、一般的なソフトウェアプロファイル、キャッシュサイズを縮小する際の許容可能な遅延、メモリがそれより下では動作不可となる最小サイズ、及び/又は他のファクタといった様々な設計検討事項により決定されうる。なお、メモリのいずれの最小サイズも、システムの状態に依存し、従って、当業者は理解するように、時間の経過と共に一定ではない。「縮小停止」状態1215では、キャッシュ縮小シーケンスを停止するマイクロコードがリクエストされる。無効又はシャットダウンされたウエイ又は他のサブセクションは無効のままであるが、実効キャッシュサイズは、それ以上は縮小されない。
これらの状態間の移動は、例えば、レジスタ又は他のデータストア(図示せず)内に格納されうる特定の変数に従って管理されうる。一実施形態では、例えば、これらの変数には、以下に限定されないが、1)1つだけ除いてすべてのコアが低電力状態にある、2)比率<=縮小閾値、3)c状態タイマ出力、4)少なくとも1つのコアが低電力状態にある、5)比率>縮小閾値、6)拡張、及び/又は、7)縮小が含まれうる。
2つのコアを含み、ACPI仕様に従って動作する図9のプロセッサ901では、一実施形態では、変数「1つだけ除いてすべてのコアが低電力状態にある」は、1つのコアはすでにC4状態にあり、動的メモリサイジング動作時に実行し続けうるもう1つのコアは依然としてアクティブ状態(C0)にあるという決定に応答して設定されうる。一実施形態では、この変数は、いずれかのコアがペンディング中のブレイクイベントを有する場合には設定されるべきではない。2つ(以上)のコアがプロセッサ901上に存在するが、1つ(以上)のコアが無効に又は除去される場合、そのコアは、意思決定プロセス時には無視されうる。
変数「比率<=縮小閾値」は、一実施形態では、プロセッサ901又はそのコアのうちの1つが、縮小閾値として設定される所定の周波数より低い/等しい周波数で動作するようプログラムされることに応答して設定されうる。一部の実施形態では、縮小閾値はプログラムされ、また、ゼロであってよい。
1つ以上のタイマ出力も、状態間で移動すべきか否かを決定する際に考慮されうる。一実施形態では、例えば、8ビットダウンカウンタといったタイマを使用して、プロセッサ(又はコア)がアクティブ又はC0状態であり続ける連続時間を計時し、その時間が予めプログラムされた閾値を超えると知らせうる。この例では、変数「閾値超過C0タイマ」を使用しうる。
図9に示す例示的なプロセッサ及びシステムでは、変数「少なくとも1つのコアが低電力状態にある」は、コアのうちの1つが、C4又はWFS状態ではなく、安定したC1、C2、又はC3状態に入ると設定されうる。
変数「比率>縮小閾値」は、プロセッサ又はそのコアのうちの1つが、縮小閾値より高い周波数で動作するようプログラムされる場合に設定されうる。一部の実施形態では、縮小閾値が0である場合、この比率は、メモリを拡張するか否かを決定する際に考慮に入れる必要がない。
一実施形態では、「比率>縮小閾値」である、「少なくとも1つのコアが低電力状態にある」、及び/又は、「C0タイマ>閾値」である場合に、「拡張」変数が設定されるか、又は、そうでなければ、動的メモリ拡張が有効にされうる。他の実施形態及び/又は実施では、拡張変数は、様々な条件下で、又は、様々な入力に応答して設定されうる。
一実施形態では、「比率<=縮小閾値」が設定され、また、「1つだけ除いてすべてのコアが低電力状態である」が設定される場合に、「縮小」変数が設定されるか、又は、そうでなければ、動的メモリサイズ縮小が有効にされうる。
図9及び図12を続けて参照する。マルチコアプロセッサを使用する一実施形態では、「フルキャッシュサイズ」状態1205から「最小キャッシュサイズ」状態1210への移動は、1つのコアがすでにC4(又は他の低電力)状態にあるという決定に応答して、また、プロセッサ901が、縮小閾値p状態より下で動作している場合に行われうる。その場合、実効キャッシュ縮小は、実質的に性能に影響を与えないとみなされうるので、開始できる。同時に、実効メモリ拡張は必要ではないこと、例えば、C0タイマがタイムアウトしていないことによりアクティビティファクタの増加の可能性を示すことが確認されうる。
マイクロコードは、C4状態にあるコアでC4フローに入ると、メモリの実効サイズを「最小キャッシュサイズ」に縮小するリクエストを検出し、メモリのウエイ又は他のサブセクションを無効にし始めうる。一実施形態では、「最小キャッシュサイズ」状態1210において、ウエイ又は他のサブセクションは、1回につき1つが無効にされうる。他の実施形態では、他のアプローチを使用してもよい。
動的メモリサイズ縮小処理時、マイクロコードは、縮小変数が依然としてアサートされているか否かを決定するよう、プログラム可能なチャンク又は他のインターバル後に、縮小処理を停止しうる。縮小変数がアサートされていない場合、縮小処理は凍結される。さらに、ペンディング割り込みが発生する場合、縮小処理は中断される。
所定数のウエイ又は他のサブセクションがシャットダウンされると、残りのコアは、C4状態を示し、それにより、プロセッサ901全体がC4状態に入る。一部の実施形態では、このシーケンスは、キャッシュメモリが所定の最小サイズに到達するまで、最後のコアのC4エントリの度に繰り返されうる。最小サイズに到達すると、縮小リクエストは無視されうる。
「最小キャッシュサイズ」状態1210にある間で、1つのコアが、C4状態を終了し、拡張動作の条件(又は拡張変数の設定)がまだ満たされてない、又は、ペンディング中のブレイクリクエストが任意のコアに存在する場合、縮小変数は無効にされ、縮小処理は、停止される(すなわち、「縮小停止」状態1215に入る)。これは、メモリ905を、縮小を続けるための条件又は拡張動作のための条件が発生するまで、中間実効サイズにする。実効メモリ905サイズが、メモリ905が適切に動作できなくなる最小数のウエイといった所与数のウエイ又は他のサブセクションより下であり、また、「0」に到達していない又は最小サイズが、例えば「2に再び開く(re-open to 2)」といった所与のレベルにおいてプログラムされる場合、マイクロコードは、メモリを再度開き、それにより、少なくとも所与数のウエイ又は他のサブセクションが動作可能であるようにする必要がある。
「最小キャッシュサイズ」状態1210又は「縮小停止」状態1215のどちらかから、メモリ905を効率的に拡張する指示が発生しうる。メモリ905の拡張は、アクティビティファクタが増加したという1つ以上の指示子に基づきうる。一実施形態では、指示子には、縮小閾値より高いp状態への移動、例えば、C4ではなくC1/2/3といった異なる電力状態に移動するコアのうちの1つ、及び/又は、その閾値を超過するC0タイマを含みうる。このようなことが発生すると、プログラムは、その長いアクティビティストレッチ(activity stretches)の1つにあることを示しうる。上述したうちのいずれかが発生する場合、拡張変数がアサートされるか、又は、そうでなければ、メモリ905の実効拡張が開始されうる。
一実施形態では、実効メモリ拡張は、実質的に瞬時に行われる。すなわち、電流スパイクを阻止するための一部の遅延以外は、複数のサイクルに亘って行われるのではない。拡張後、マイクロコードは、拡張リクエストを無視する。上述に加えて、一部の実施形態では、コアがC4を終了するたびに、マイクロコードは、縮小変数(又は縮小制御フィールド)を確認し、高い電力状態へのブレイクに進む前に最小数のウエイにメモリを拡張して戻しうる。
縮小処理では、一部の追加の検討事項が、1つ以上の実施形態に適用されうる。例えば、一部の実施形態では、マイクロコードは、一度に単一のコアだけがメモリインターフェースにアクセスするようセマフォを用いてメモリ縮小セグメントエントリを制御する必要がありうる(上述した例示的な実施形態について、他のコアは、コアC4状態にあるとみなされるが、これは、拡張セグメント又は処理時には保証されない場合がある。いずれの場合においても、イベントタイミングが、縮小フローの原子セグメント(atomic segment)が完了する前にブレイクを引き起こしうる。セマフォは、第2のコアが、縮小/拡張処理が完了するまで、メモリインターフェースにアクセスしないことを保証しうる)。
さらに、メモリ905問題を阻止する目的で、マイクロコードは、第2の(又は他の)コアは、縮小/拡張処理時には、コアC4状態に固定されることを保証する必要がありうる。一部の実施形態では、これは、同じセマフォに基づいたハードウェアにおいて発生しうるが、マイクロコードは、実際の原子縮小フローを開始する前に縮小指示を再確認することによって遅延ファクタを考慮に入れる必要がありうる。
潜在的に長い縮小フローによって、マイクロコードは、ブレイクがペンディングしておらず、また、縮小フローを停止するリクエストが発生していないことを定期的に検出及び保証する必要がありうる。これは、縮小変数が依然としてアサートされているか否かをテストすることによって各「チャンク」後に定期的に行われうる。マイクロコードは、縮小条件が終了したことを検出すると、他のコアがブレイクイベントに応答し、他のフローを進めることができることを確実にするようセマフォを解放すべきである。縮小リクエスト/変数は、任意のペンディングのブレイクイベントが検出されると無効にされうるので、フローの途中で割り込みウィンドウが開かれる必要がない。
一部の実施形態では、上述したように、それより下ではメモリ905が動作しない最小実効メモリサイズがありうる。例えば、メモリ905の最小サイズが、2ウエイである(すなわち、メモリ905は、1ウエイだけが有効であると正常に機能しない)場合、縮小処理は、一度に1つのウエイ又は他のサブセクションを縮小するようプログラムされている場合でも、直接2ウエイから0ウエイが有効となるようにされうる。
一実施形態での「標準の」拡張フローでは、マイクロコードは、拡張が要求されているか否かに関わらず、各コアC4終了後にセマフォを獲得することを試みる(アンワインド(unwind))。従って、(マルチコアプロセッサの)スリープした又は低電力のコアは、縮小フロー時に実行を開始することができず、それにより、縮小処理とのコンテンションの可能性が起こらないようにする。メモリ拡張は、割り込みマイクロコード処理ルーチン時に実行されうる。上述したように、メモリがある最小動作可能サイズより下では動作不可となる一部の実施形態では、メモリは、特定の条件下で最小動作可能サイズに直接拡張されうる。例えば、プロセッサがMWAIT状態を実装しうる本発明の一実施形態では、自動拡張が、各MWAIT終了後に実施され、メモリは、最小動作可能有効サイズに直接されうる。
コアのクロックが再開する及び/又はコアがコアC4終了を開始した場合、マシンチェックアーキテクチャ(MCA)の例外(例えば、メモリ905のパリティエラー)が、縮小フローを終了するコア又は他のコアのいずれか一方で発生しうる。いずれの場合においても、メモリ905は、最小動作可能サイズより下に縮小されるが、ゼロの実効サイズに到達していない場合がある。これは、正当な動作可能なサイズではなく、また、すぐにはC4には入らないことが想定されうるので、MCA例外ハンドラにおいてメモリ905を完全に拡張するマイクロコードが要求されうる。従って、マイクロコードは、セマフォを獲得すること、メモリ905をその最大実効サイズに拡張すること(メモリ905が既に最大実効サイズとなっていない場合)、セマフォを解放すること、及び、コアをアクティブ状態に移すことを含むMCA例外時にMWAITのアンワインドフローと同様のアンワインドフローを実行する必要がありうる。
キャッシュメモリを縮小するコマンドの受信に応答して、1つ以上の以下の演算のセットが実行されうる。
1.無効にされるべきウエイが、新しいリクエストに対して割り当てられないよう新しいラインの割り当てを偏らせる。
2.無効にされるべきウエイにおけるすべてのロケーションを走査する。有効データが発見された場合、そのデータは、クリーンデータである場合は無効にされ、変更されている場合は、ライトバックされるべきである。なお、当業者は認識するように、MESI(4状態:変更、排他、共有、無効)以外の別のコヒーレンシ又は書込み−無効プロトコルを、本発明に実装及び使用してもよい。例えば、当業者には、MOESI(5状態:変更、所有、排他、共有、無効)又はDRAGON(4状態:有効−排他、共有−クリーン、共有−変更、ダーティ)を実装しうることは容易に明らかであろう。
3.無効にされるべきウエイを「無効」とマーク付けし、メモリに状態変更を信号で伝える。
本発明の実施形態では、これらの演算時、無効にされるべきウエイにあるすべての有効データは、読出しアクセス及び書込みアクセスの両方に利用可能である。実施形態において、キャッシュが拡張されるべき場合、メモリ電力管理論理が、有効にされるべきウエイをマーク付けしうる。本発明の実施形態では、現在無効状態にあるウエイのいずれかが、その状態が確実でなくなるような電力を受け取ると、これらのウエイは、システム又はプロセッサに利用可能となる前に無効にされうる。
1つ以上の実施形態の多くの詳細を上述したが、他の実施形態にはメモリサイズを動的に縮小する他のアプローチを実施してもよいことは理解されよう。例えば、特定の電力状態を上述したが、他の実施形態では、実効メモリサイズを拡張又は縮小することを決定する際に、他の電力状態及び/又は他のファクタを考慮しうる。さらに、パーソナルコンピュータにおけるデュアルコアプロセッサのキャッシュメモリを例示的に上述したが、1つ以上の実施形態による動的メモリサイジングアプローチは、異なるタイプのメモリ及び/又はホスト集積回路チップ及び/又はシステムに適用しうることは理解されよう。
例えば、本発明の様々な実施形態では、メモリ電力管理論理又は他のソフトウェア又はハードウェアは、一般的にはホストプロセッサ及び/又は具体的にはメモリの作業負荷をモニタリングしうる。メモリ電力管理論理は、例えば、プロセッサが長時間、非アクティブである場合、及び/又は、1つのアプリケーションが利用可能なキャッシュメモリ全体の小部分しか使用しない場合、プロセッサ又はコンピューティングシステムのすべての又は一部の電力状態に依存してメモリを効果的に縮小するコマンドを発行しうる。縮小は、図1の例示的な実施形態に示すように、1つ以上のウエイといったアクティブメモリの部分を無効にすることにより行われる。メモリ電力管理論理は、プロセッサが長時間アクティブである、プロセッサ又はホストコンピューティングシステムのすべて又は一部が所与の電力状態にある、及び/又は、キャッシュサイズが、プロセッサ又はコンピュータシステムに必要な演算のために十分に大きくないことを検出すると、コマンドを発行するか、又は、そうでなければ、より多くのメモリを有効にすることによりキャッシュを拡張するよう論理を制御しうる。
従って、本発明の一実施形態では、ハードウェア調整モニタが、ウエイの必要数がウエイの有効数より少ない場合を繰り返し決定し、ウエイの有効数がウエイの必要数と実質的に等しくなるよう1つ以上のウエイを無効にするようスリープデバイスを非アクティブにしうる。
さらに、本発明の一実施形態では、1つ以上のコヒーレンシプロトコルを使用して、ハードウェア調整モニタは、メモリに少なくとも書込みされるべきデータを見つけるよう1つ以上のウエイを走査しうる。
本発明の別の実施形態では、ハードウェア調整モニタはさらに、ウエイの必要数がウエイの有効数より多い場合を繰り返し決定し、ウエイの有効数がウエイの必要数と実質的に等しくなるよう1つ以上のウエイを有効にするようスリープデバイスをアクティブにしうる。
本発明の実施形態は、上述した機能を実行する方法を含みうる。例えば、本発明の一実施形態は、プロセッサ及びメモリをモニタリングし、メモリを調節する方法を含みうる。この方法は、追加の演算を含んでもよく、その実施形態を、図10及び11を参照して以下に説明する。
図10は、本発明の一実施形態の演算のフローチャートを示す。これらの演算は、工程1000においてインスタンス化され、すぐに工程1002に進みうる。工程1002では、プロセッサ及びメモリをモニタリングする演算が開始しうる。本発明の実施形態では、1を超えるプロセッサがあり、各プロセッサは1つ以上のコアを有し、いずれのコアもモニタリングされうる。処理は次に工程1004に進む。
工程1004では、プロセッサの要件及びメモリの要件を決定する処理が開始しうる。本発明の実施形態では、以下に限定されないが、OSPM及びACPIといった様々な管理規格が、以下に限定されないが、様々なc状態又はp状態、又はそれらの組み合わせ、並びに様々なキャッシュヒット又はキャッシュミスレベルといった閾値又は要件を与え、これらの閾値又は要件により、ハードウェア調整モニタは、システムの必要メモリを決定しうる。処理は次に工程1006に進む。
工程1006では、プロセッサの要件及びメモリの要件から複数の要件を決定する処理が開始しうる。本発明の実施形態では、この複数の要件には優先順位が付けられるか、又は、本発明の1つ以上の実施形態により有効にされるシステムに、メモリの有効化又は無効化を実行させる他の順序付けられたリストが与えられる。処理は次に工程1008に進む。
工程1008では、複数の要件のうちの1つ以上の要件が満足される場合を決定する処理が開始しうる。本発明の実施形態では、メモリ電力管理論理がこの決定を行いうる。上述したように、以下に限定されないが、メモリ電力管理論理906といったメモリ電力管理論理は、工程1006にて決定された複数の要件へのアクセスを有しうる。処理は次に工程1010に進む。
工程1010では、複数の要件のうちの少なくとも1つの満足された要件に基づいてメモリを調節する演算が開始しうる。上述したように、本発明の実施形態は、システムが利用可能となるべきメモリの少なくとも要件に基づいてそのメモリを有効化する。本発明の他の実施形態では、メモリは、必要でないため無効にされるべきウエイを有しうる。次に処理は終了し、工程1012に進む。工程1012では、工程1000の演算を再開しうる。本発明の代替実施形態では、少なくとも本願に提供する教示内容に基づいて当業者が認識するように、演算は、図10のどの工程から開始してもよい。
図11は、本発明の別の実施形態の演算のフローチャートを示す。これらの演算は、工程1100においてインスタンス化され、すぐに工程1102に進みうる。工程1102では、1つ以上のプロセッサのうちの少なくとも1つのコアと、1を超えるウエイを有する少なくとも1つのメモリをモニタリングする演算が開始しうる。処理は次に工程1104に進む。
工程1104では、ウエイの必要数を決定する処理が開始しうる。本発明の実施形態では、以下に限定されないが、OSPM及びACPIといった様々な管理規格が、以下に限定されないが、様々なc状態又はp状態、又はそれらの組み合わせ、並びに様々なキャッシュヒット又はキャッシュミスレベルといった閾値又は要件を与え、これらの閾値又は要件により、ハードウェア調整モニタは、システムの必要メモリを決定しうる。処理は次に工程1106に進む。
工程1106では、ウエイの必要数がウエイの有効数より少ない場合、ウエイの有効数がウエイの必要数と実質的に等しくなるよう1つ以上のウエイの無効にする処理を開始しうる。本発明の実施形態では、1を超える段階数で、又は、反復法で、又は、すべて一度に、不必要なウエイを無効にしうる。これは、メモリの無効化を実行するようスリープデバイスの1つ以上の実施形態により可能にされる。処理は次に工程1108に進む。
工程1108では、ウエイの必要数がウエイの有効数より多い場合、ウエイの有効数がウエイの必要数と実質的に等しくなるよう1つ以上のウエイを有効にする処理を開始しうる。本発明の実施形態では、メモリ電力管理論理が、工程1106及び1108の少なくとも1つにおける決定をしうる。上述したように、以下に限定されないが、メモリ電力管理論理906といったメモリ電力管理論理は、工程1006にて決定された複数の要件へのアクセスを有しうる。処理は次に工程1110に進む。
工程1110において、メモリに少なくとも書込みされるべきデータを見つけるよう、工程1006にて無効にされる前に、1つ以上のウエイを走査するオプションの演算が開始しうる。本発明の他の実施形態では、メモリは、必要でないため無効にされるべきウエイを有しうる。次に処理は終了し、工程1112に進む。工程1112では、工程1100の演算を再開しうる。本発明の代替の実施形態では、少なくとも本願に提供する教示内容に基づいて当業者が認識するように、演算は、図11のどの工程から開始してもよい。
上述の工程及びその演算の一部を鑑みて、本発明の実施形態は、機器であろうとメモリ装置であろうと、1つ以上のプロセッサの少なくとも1つのコアをモニタリングし、1を超えるウエイを含むメモリをモニタリングし、また、ウエイの必要数がウエイの有効数より少ない場合に、ウエイの有効数がウエイの必要数に実質的に等しくなるよう1つ以上のウエイを繰り返し有効にすることによって動作しうる。
さらに、1つ以上のウエイを無効にする前に、機器又はメモリ装置は、メモリに少なくとも書込みされるべきデータを見つけるよう1つ以上のウエイを走査しうる。
さらに、本発明の別の実施形態では、ウエイの必要数がウエイの有効数より多い場合に、機器又はメモリ装置は、ウエイの有効数がウエイの必要数に実質的に等しくなるよう1つ以上のウエイを繰り返し無効にしうる。
本明細書における「一実施形態」、「例示的な実施形態」等への参照は、実施形態に関連して説明される特定の機能、構造、又は特徴が、本発明の少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な場所におけるそのような語句の出現は、必ずしも同一の実施形態について言及しているわけではない。さらに、特定の機能、構造、又は特徴が、任意の実施形態に関連して説明される場合、そのような機能、構造、又は特徴を、実施形態の他の機能、構造、又は特徴に関連して変更することは当業者の想定内であるものとする。さらに、理解を容易にするために、特定の方法手順は、別個の手順として描画したが、これらの別個に描画された手順は、その動作に依存する必須の順番であると解釈すべきではない。つまり、一部の手順は、少なくとも本願に提供する教示内容に基づいて当業者が理解するように、別の順序又は同時に実行されることが可能である。
本発明の実施形態は、当業者が、本発明を実施可能であるよう十分な詳細で説明する。他の実施形態を用いてもよく、また、構造上、論理上、及び知識上の変更を、本発明の範囲から逸脱することなく行いうる。さらに、本発明の様々な実施形態は、異なるが、必ずしも相互に排他的である必要なないことを理解するものとする。例えば、一実施形態において説明する特定の機能、構造、又は特徴は、他の実施形態に包含されてもよい。従って、詳細な説明は、限定的な意味合いで解釈すべきではない。
上述の実施形態及び利点は、例示的に過ぎず、本発明を限定すると解釈すべきではない。例えば、本教示内容は、他のタイプのメモリにも容易に適用することができる。当業者は、上述の説明から、本発明の実施形態の技術は、様々な形式で実施可能であることを理解できよう。従って、本発明の実施形態は、その特定の例に関連して説明したが、本発明の実施形態の真の範囲は、それらに限定されるべきではない。というのは、他の変形も、図面、明細書、および請求項を検討することにより当業者には明らかとなるからである。

Claims (20)

  1. それぞれ少なくとも1つのメモリセルを含む複数のウエイを含む一のメモリと、
    前記複数のウエイのうちの1以上のウエイに結合され、当該1以上のウエイを無効にする一のスリープデバイスと、
    前記スリープデバイスに結合され、1以上の要件に基づいて当該スリープデバイスを制御する一のメモリ電力管理論理と、
    を含む、動的メモリの電力を削減する装置。
  2. 前記メモリ電力管理論理は、i)1以上のプロセッサ、ii)前記1以上のプロセッサのそれぞれにおける1以上のコア、iii)オペレーティングシステムの1以上のパラメータ、及び、iv)前記メモリの1以上のパラメータからなる群から選択される少なくとも1つの演算をモニタリングする、請求項1に記載の装置。
  3. 前記1以上の要件のうちの1つは、前記複数のウエイからのウエイの必要数に基づく、請求項1に記載の装置。
  4. ハードウェア調整モニタは、前記ウエイの必要数がウエイの有効数より少ない場合を繰り返し決定し、前記ウエイの有効数が前記ウエイの必要数に実質的に等しくなるよう1以上のウエイを無効にするよう前記スリープデバイスを非アクティブにする、請求項3に記載の装置。
  5. 前記ハードウェア調整モニタは、一のメモリに少なくとも書込みされるべきデータを見つけるよう前記1以上のウエイを走査する、請求項4に記載の装置。
  6. 前記ハードウェア調整モニタは、前記ウエイの必要数がウエイの有効数より多い場合を繰り返し決定し、前記ウエイの有効数が前記ウエイの必要数に実質的に等しくなるよう1以上のウエイを有効にするよう前記スリープデバイスをアクティブにする、請求項3に記載の装置。
  7. 前記スリープデバイスは、1を超えるスリープトランジスタを含む、請求項1に記載の装置。
  8. 前記スリープデバイスは、前記複数のウエイのうちの1以上のウエイの状態を少なくともモニタリングする論理を含む、請求項1に記載の装置。
  9. 前記メモリは、一の静的ランダムアクセスメモリ(SRAM)アレイを含む、請求項1に記載の装置。
  10. それぞれ少なくとも1つのメモリセルを含む複数のウエイを含む一のメモリと、
    前記複数のウエイのうちの1以上のウエイに結合され、当該1以上のウエイを無効にする一のスリープデバイスと、
    前記スリープデバイスに結合され、1以上の要件に基づいて当該スリープデバイスを制御する一のメモリ電力管理論理と、
    を含む、動的メモリの電力を削減するメモリデバイス。
  11. 前記メモリは、一の静的ランダムアクセスメモリ(SRAM)アレイを含む、請求項10に記載のメモリデバイス。
  12. 動的メモリの電力を削減する方法であって、
    1以上のプロセッサの少なくとも1つのコアをモニタリングすることと、
    1を超えるウエイを含む一のメモリをモニタリングすることと、
    ウエイの必要数を決定することと、
    前記ウエイの必要数がウエイの有効数より少ない場合に、前記ウエイの有効数が前記ウエイの必要数に実質的に等しくなるよう1以上のウエイを繰り返し有効にすることと、
    を含む方法。
  13. 前記1以上のウエイを無効にする前に、一のメモリに少なくとも書込みされるべきデータを見つけるよう当該1以上のウエイを走査することをさらに含む、請求項12に記載の方法。
  14. 前記ウエイの必要数がウエイの有効数より多い場合に、前記ウエイの有効数が前記ウエイの必要数に実質的に等しくなるよう1以上のウエイを繰り返し無効にすることをさらに含む、請求項12に記載の方法。
  15. 単一の集積回路チップ上に実装され、それぞれ少なくとも1つのメモリセルを含む複数のサブセクションを含む一のメモリと、
    前記メモリに結合され、前記複数のサブセクションの少なくとも一部の有効化及び無効化を選択的且つ個別に制御するよう少なくとも1つの電力状態に応答するメモリ電力管理論理と、
    を含む動的メモリの電力を削減する装置。
  16. 前記メモリは、一のキャッシュメモリを含み、
    前記複数のサブセクションは、複数のウエイを含む、請求項15に記載の装置。
  17. 複数のスリープデバイスをさらに含み、
    少なくとも1つのスリープデバイスは、前記複数のサブセクションのそれぞれに結合され、
    前記複数のスリープデバイスのそれぞれは、各サブセクションの有効化及び無効化を制御するよう前記メモリ電力管理論理に応答する、請求項15に記載の装置。
  18. 前記複数のスリープデバイスのそれぞれは、一の電源と、前記各サブセクションとの間に結合される少なくとも1つの第1のトランジスタを含む、請求項17に記載の装置。
  19. 前記電力状態は、少なくとも1つの第1のマイクロプロセッサコアの電力状態を含む、請求項15に記載の装置。
  20. 前記メモリ電力管理論理は、前記メモリの実効サイズを縮小する一のリクエストの受信に呼応して、一の最小実効メモリサイズに到達する又は一の縮小停止条件が検出されるまで、一度に1つのサブセクションを無効にする、請求項15に記載の装置。
JP2008527937A 2005-08-22 2006-08-03 電力削減のための動的メモリサイジング Pending JP2009505306A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/208,935 US20070043965A1 (en) 2005-08-22 2005-08-22 Dynamic memory sizing for power reduction
PCT/US2006/030201 WO2007024435A2 (en) 2005-08-22 2006-08-03 Dynamic memory sizing for power reduction

Publications (2)

Publication Number Publication Date
JP2009505306A true JP2009505306A (ja) 2009-02-05
JP2009505306A5 JP2009505306A5 (ja) 2011-06-30

Family

ID=37192499

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008527937A Pending JP2009505306A (ja) 2005-08-22 2006-08-03 電力削減のための動的メモリサイジング

Country Status (7)

Country Link
US (1) US20070043965A1 (ja)
JP (1) JP2009505306A (ja)
KR (1) KR100998389B1 (ja)
CN (1) CN101243379A (ja)
DE (1) DE112006002154T5 (ja)
TW (1) TW200731276A (ja)
WO (1) WO2007024435A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010137164A1 (ja) * 2009-05-29 2010-12-02 富士通株式会社 キャッシュ制御装置およびキャッシュ制御方法
JP2013526739A (ja) * 2010-05-11 2013-06-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュ制御のための方法および装置
JP2014501987A (ja) * 2010-12-23 2014-01-23 インテル・コーポレーション コンピュータプラットフォームのシステム電力状態を遷移させる方法、装置およびシステム
JP2015505388A (ja) * 2011-11-22 2015-02-19 インテル・コーポレーション メモリ管理を有するコンピューティングプラットフォームインターフェース
JP2016189049A (ja) * 2015-03-30 2016-11-04 ルネサスエレクトロニクス株式会社 半導体装置及びその制御方法

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5805300A (en) 1999-06-10 2001-01-02 Pact Informationstechnologie Gmbh Sequence partitioning in cell structures
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US9411532B2 (en) 2001-09-07 2016-08-09 Pact Xpp Technologies Ag Methods and systems for transferring data between a processing device and external devices
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
WO2004038599A1 (de) 2002-09-06 2004-05-06 Pact Xpp Technologies Ag Rekonfigurierbare sequenzerstruktur
US7966511B2 (en) * 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US7664970B2 (en) * 2005-12-30 2010-02-16 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US7555659B2 (en) * 2006-02-28 2009-06-30 Mosaid Technologies Incorporated Low power memory architecture
US7930564B2 (en) * 2006-07-31 2011-04-19 Intel Corporation System and method for controlling processor low power states
US20080052428A1 (en) * 2006-08-10 2008-02-28 Jeffrey Liang Turbo station for computing systems
US7774650B2 (en) * 2007-01-23 2010-08-10 International Business Machines Corporation Power failure warning in logically partitioned enclosures
US20080229050A1 (en) * 2007-03-13 2008-09-18 Sony Ericsson Mobile Communications Ab Dynamic page on demand buffer size for power savings
JP2009251713A (ja) * 2008-04-02 2009-10-29 Toshiba Corp キャッシュメモリ制御装置
US20090327609A1 (en) * 2008-06-30 2009-12-31 Bruce Fleming Performance based cache management
GB2464131A (en) * 2008-10-06 2010-04-07 Ibm Lowering i/o power of a computer system by lowering code switching frequency
KR101600951B1 (ko) 2009-05-18 2016-03-08 삼성전자주식회사 고체 상태 드라이브 장치
US9311245B2 (en) * 2009-08-13 2016-04-12 Intel Corporation Dynamic cache sharing based on power state
US20110055610A1 (en) * 2009-08-31 2011-03-03 Himax Technologies Limited Processor and cache control method
CN102141920B (zh) * 2010-01-28 2014-04-02 华为技术有限公司 一种动态配置C-State方法和通信设备
US8924645B2 (en) 2010-03-08 2014-12-30 Hewlett-Packard Development Company, L. P. Data storage apparatus and methods
KR20110137973A (ko) * 2010-06-18 2011-12-26 삼성전자주식회사 컴퓨터시스템 및 그 제어방법
US8352683B2 (en) 2010-06-24 2013-01-08 Intel Corporation Method and system to reduce the power consumption of a memory device
CN103348303B (zh) * 2011-02-08 2016-08-17 飞思卡尔半导体公司 提供电力管理的集成电路器件、电力管理模块以及方法
US9214924B2 (en) 2011-03-25 2015-12-15 Freescale Semiconductor, Inc. Integrated circuit and method for reducing an impact of electrical stress in an integrated circuit
US20130124891A1 (en) * 2011-07-15 2013-05-16 Aliphcom Efficient control of power consumption in portable sensing devices
US20120095607A1 (en) * 2011-12-22 2012-04-19 Wells Ryan D Method, Apparatus, and System for Energy Efficiency and Energy Conservation Through Dynamic Management of Memory and Input/Output Subsystems
WO2013100940A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Cache memory staged reopen
CN102662868B (zh) * 2012-05-02 2015-08-19 中国科学院计算技术研究所 用于处理器的动态组相联高速缓存装置及其访问方法
TWI562162B (en) * 2012-09-14 2016-12-11 Winbond Electronics Corp Memory device and voltage control method thereof
US9269406B2 (en) 2012-10-24 2016-02-23 Winbond Electronics Corp. Semiconductor memory device for controlling an internal supply voltage based on a clock frequency of an external clock signal and a look-up table
US9207750B2 (en) 2012-12-14 2015-12-08 Intel Corporation Apparatus and method for reducing leakage power of a circuit
US9760149B2 (en) * 2013-01-08 2017-09-12 Qualcomm Incorporated Enhanced dynamic memory management with intelligent current/power consumption minimization
US9400544B2 (en) 2013-04-02 2016-07-26 Apple Inc. Advanced fine-grained cache power management
US8984227B2 (en) * 2013-04-02 2015-03-17 Apple Inc. Advanced coarse-grained cache power management
US9396122B2 (en) 2013-04-19 2016-07-19 Apple Inc. Cache allocation scheme optimized for browsing applications
US9261939B2 (en) * 2013-05-09 2016-02-16 Apple Inc. Memory power savings in idle display case
KR102027573B1 (ko) * 2013-06-26 2019-11-04 한국전자통신연구원 캐시 메모리 제어 방법 및 그 장치
TW201533657A (zh) * 2014-02-18 2015-09-01 Toshiba Kk 資訊處理系統及記憶體系統
US9778871B1 (en) 2016-03-27 2017-10-03 Qualcomm Incorporated Power-reducing memory subsystem having a system cache and local resource management
US9785371B1 (en) 2016-03-27 2017-10-10 Qualcomm Incorporated Power-reducing memory subsystem having a system cache and local resource management
US10073787B2 (en) * 2016-04-18 2018-09-11 Via Alliance Semiconductor Co., Ltd. Dynamic powering of cache memory by ways within multiple set groups based on utilization trends
US10539997B2 (en) 2016-09-02 2020-01-21 Qualcomm Incorporated Ultra-low-power design memory power reduction scheme
US11385693B2 (en) * 2020-07-02 2022-07-12 Apple Inc. Dynamic granular memory power gating for hardware accelerators
WO2022252042A1 (zh) * 2021-05-31 2022-12-08 华为技术有限公司 内存管理装置和方法、电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07334423A (ja) * 1994-06-07 1995-12-22 Hitachi Ltd セットアソシアティブ方式のメモリ装置
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
JPH10124202A (ja) * 1996-10-04 1998-05-15 Internatl Business Mach Corp <Ibm> 電子回路内の電力消費を減少させる方法及びシステム
JP2000298618A (ja) * 1999-04-14 2000-10-24 Toshiba Corp セットアソシアティブ型キャッシュメモリ装置
JP2002236616A (ja) * 2001-02-13 2002-08-23 Fujitsu Ltd キャッシュメモリシステム
JP2003131945A (ja) * 2001-10-25 2003-05-09 Hitachi Ltd キャッシュメモリ装置
US20030145239A1 (en) * 2002-01-31 2003-07-31 Kever Wayne D. Dynamically adjustable cache size based on application behavior to save power
JP2004185576A (ja) * 2002-10-08 2004-07-02 Japan Science & Technology Agency キャッシュメモリ
WO2005034189A2 (en) * 2003-09-30 2005-04-14 Freescale Semiconductor, Inc. Integrated circuit power management for reducing leakage current in circuit arrays and method therefor

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539484B1 (en) * 1997-12-18 2003-03-25 Intel Corporation Configurable power distribution circuit
US6766420B2 (en) * 2001-09-27 2004-07-20 International Business Machines Corporation Selectively powering portions of system memory in a network server to conserve energy
US7076672B2 (en) * 2002-10-14 2006-07-11 Intel Corporation Method and apparatus for performance effective power throttling
EP1573490A2 (en) * 2002-12-04 2005-09-14 Koninklijke Philips Electronics N.V. Software-based control of microprocessor power dissipation
US20040128445A1 (en) * 2002-12-31 2004-07-01 Tsafrir Israeli Cache memory and methods thereof
US7127560B2 (en) * 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
US7966511B2 (en) * 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07334423A (ja) * 1994-06-07 1995-12-22 Hitachi Ltd セットアソシアティブ方式のメモリ装置
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
JPH10124202A (ja) * 1996-10-04 1998-05-15 Internatl Business Mach Corp <Ibm> 電子回路内の電力消費を減少させる方法及びシステム
JP2000298618A (ja) * 1999-04-14 2000-10-24 Toshiba Corp セットアソシアティブ型キャッシュメモリ装置
JP2002236616A (ja) * 2001-02-13 2002-08-23 Fujitsu Ltd キャッシュメモリシステム
JP2003131945A (ja) * 2001-10-25 2003-05-09 Hitachi Ltd キャッシュメモリ装置
US20030145239A1 (en) * 2002-01-31 2003-07-31 Kever Wayne D. Dynamically adjustable cache size based on application behavior to save power
JP2004185576A (ja) * 2002-10-08 2004-07-02 Japan Science & Technology Agency キャッシュメモリ
WO2005034189A2 (en) * 2003-09-30 2005-04-14 Freescale Semiconductor, Inc. Integrated circuit power management for reducing leakage current in circuit arrays and method therefor

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010137164A1 (ja) * 2009-05-29 2010-12-02 富士通株式会社 キャッシュ制御装置およびキャッシュ制御方法
JP5338905B2 (ja) * 2009-05-29 2013-11-13 富士通株式会社 キャッシュ制御装置およびキャッシュ制御方法
JP2013526739A (ja) * 2010-05-11 2013-06-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュ制御のための方法および装置
JP2014501987A (ja) * 2010-12-23 2014-01-23 インテル・コーポレーション コンピュータプラットフォームのシステム電力状態を遷移させる方法、装置およびシステム
JP2015505388A (ja) * 2011-11-22 2015-02-19 インテル・コーポレーション メモリ管理を有するコンピューティングプラットフォームインターフェース
US9594570B2 (en) 2011-11-22 2017-03-14 Intel Corporation Computing platform with interface based error injection
US10078522B2 (en) 2011-11-22 2018-09-18 Intel Corporation Computing platform interface with memory management
US10732986B2 (en) 2011-11-22 2020-08-04 Intel Corporation Computing platform with interface based error injection
JP2016189049A (ja) * 2015-03-30 2016-11-04 ルネサスエレクトロニクス株式会社 半導体装置及びその制御方法
US10216679B2 (en) 2015-03-30 2019-02-26 Renesas Electronics Corporation Semiconductor device and control method thereof

Also Published As

Publication number Publication date
CN101243379A (zh) 2008-08-13
KR100998389B1 (ko) 2010-12-03
KR20080030674A (ko) 2008-04-04
DE112006002154T5 (de) 2008-06-26
US20070043965A1 (en) 2007-02-22
WO2007024435A3 (en) 2007-11-29
TW200731276A (en) 2007-08-16
WO2007024435A2 (en) 2007-03-01

Similar Documents

Publication Publication Date Title
JP2009505306A (ja) 電力削減のための動的メモリサイジング
JP5060487B2 (ja) ダイナミックメモリサイジングのレイテンシを最適化する方法、システムおよびプログラム
US9870044B2 (en) Method and apparatus for a zero voltage processor sleep state
US9785226B2 (en) Operating point management in multi-core architectures
US20080313482A1 (en) Power Partitioning Memory Banks
US20110213998A1 (en) System and Method for Power Optimization
WO2007030133A1 (en) System and method of coherent data transfer during processor idle states
WO2005069148A2 (en) Memory management method and related system
US11922172B2 (en) Configurable reduced memory startup

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20110512

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110607