JP5060487B2 - ダイナミックメモリサイジングのレイテンシを最適化する方法、システムおよびプログラム - Google Patents

ダイナミックメモリサイジングのレイテンシを最適化する方法、システムおよびプログラム Download PDF

Info

Publication number
JP5060487B2
JP5060487B2 JP2008538127A JP2008538127A JP5060487B2 JP 5060487 B2 JP5060487 B2 JP 5060487B2 JP 2008538127 A JP2008538127 A JP 2008538127A JP 2008538127 A JP2008538127 A JP 2008538127A JP 5060487 B2 JP5060487 B2 JP 5060487B2
Authority
JP
Japan
Prior art keywords
memory
bit
block
processor
particular block
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.)
Expired - Fee Related
Application number
JP2008538127A
Other languages
English (en)
Other versions
JP2009514114A5 (ja
JP2009514114A (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 JP2009514114A publication Critical patent/JP2009514114A/ja
Publication of JP2009514114A5 publication Critical patent/JP2009514114A5/ja
Application granted granted Critical
Publication of JP5060487B2 publication Critical patent/JP5060487B2/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
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/12Replacement control
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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
    • 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)
  • Power Sources (AREA)

Description

関連出願
本出願は、2004年8月31日に出願され、インテル社に譲渡された米国特許出願第10/931,565号(発明者:Kurts他)、2004年9月3日に出願され、インテル社に譲渡された米国特許出願第10/934,034号(発明者Naveh他)、2004年12月28日に出願され、インテル社に譲渡された米国特許出願第11/024,538号(発明者Naveh他)、2004年7月27日に出願され、インテル社に譲渡された米国特許出願第10/899,674号(発明者Naveh他)、および、本件と同日に出願され、インテル社に譲渡された「ゼロ電圧スリープ状態」と題された(発明者Jahagirdar)整理番号042390.P22435に関する。
本発明のいくつかの実施形態は、概ね集積回路および/またはコンピュータ・システムに関する。より詳しくは、本発明のいくつかの実施形態は、ダイナミックメモリのサイジングに関する。
より多くのトランジスタを備え、より高周波数である例えば中央処理装置(CPU)など、より高性能なマイクロプロセッサへのトレンドの勢いが増すにつれ、コンピュータ設計者および製造者は、それに伴う電力・エネルギー消費増加の問題にぶつかることが多くなってきている。特にモバイル機器では、電力消費が高まると、性能にマイナスの影響を及ぼすオーバーヒートを招き、バッテリ寿命を著しく低下させてしまう。バッテリの容量は、一般的に限られているので、必要以上にモバイル機器のプロセッサを駆動すると、容量は、意図するより早く消耗してしまう。
したがって、消費電力の問題は、デスクトップコンピュータ、ラップトップコンピュータ、ワイヤレスハンドセット、パーソナル携帯情報機器などを含むコンピュータシステムにとって依然として重要であり続ける。今日では、コンピュータシステムは、例えば、電力消費問題に取り組むべく、低下した動作状態または需要に基づき、特定の構成要素を低消費電力状態にさせることができる。
マイクロプロセッサの設計と開発において、所定のシリコン領域の下でパフォーマンスをより良くするためにメモリサイズは拡張し続けている。トレンドがより大きなメモリサイズへと向かうことにより、メモリに関連する消費電力も増大している。その結果、低消費電力状態の適用、および、より大きなメモリがこれらの状態に出入りする動作に伴うレイテンシは、消費電力を管理する上でますます重要な領域となって来ている。
本発明の実施形態のさまざまな効果は、以下の明細書および添付の請求の範囲を読むことによって、また、以下の図面を参照することによって当業者に明らかになるであろう。
本発明のいくつかの実施形態における、ウェイによって構成されるメモリアーキテクチャの一例を示すブロック図である。
本発明のいくつかの実施形態におけるウェイによって構成されたのではないメモリアーキテクチャの他の例を示すブロック図である。
本発明のいくつかの実施形態におけるウォームビットおよびダーティビットの1つのビットレベル例を示す図である。
本発明のいくつかの実施形態におけるウォームビットおよびダーティビットを生成するロジックの一例を示す図である。
本発明の実施形態におけるダイナミックメモリのサイジングに関するメモリレイテンシの最適化を実装するために利用され得るコンピュータシステムの一例を示すブロック図である。
本発明のいくつかの実施形態における、メモリレイテンシを最適化するプロセスの一例を示すフローチャートである。
本発明のいくつかの実施形態における、ダイナミックメモリの減少または低電力消費状態に入るフローを含み得る、メモリが状態を出るプロセスの一例を示すフローチャートである。
本発明のいくつかの実施形態における、ダイナミックメモリの拡張、または、低電力状態脱出フローを含み得る、メモリが状態に入るプロセスの一例を示すフローチャートである。
コンピュータシステムおよび/またはその関連ソフトウェアにより実際に必要とされる記憶量は、時間に応じてしばしば変化する。一般的なアプリケーションでは、例えば、任意の所定の時間に必要とされるのはメモリのほんの小さい部分かもしれない。本発明のいくつかの実施形態によれば、図1および図2のメモリ配列のようなメモリ配列は、それが用いられるメモリ回路およびシステムの必要電源を減少させるべくダイナミックにサイジングされ得る。
具体的には、本発明のいくつかの実施形態は、本願明細書中に記載されているように、図1および2で示されるメモリトポロジにより実装される、図3乃至9に関して説明されるような、メモリのサブセクションが必要とされていない、および/または、選択されない場合に1つ以上のサブセクションを使用可/使用不可にする間の最適化されたレイテンシを提供する。本発明のいくつかの実施形態では、メモリは、コンピュータシステムの特定の状態で使用可/使用不可にされ得る。この状態を電力供給状態とも呼び、Advanced Configuration and Power Interface(ACPI)仕様(例えば、ACPI仕様、改訂版3.0、2004年9月2日、改訂版2.0c、2003年8月25日、および、改訂版2.0、2000年7月27日など)に記載される状態に関し、以下にさらに詳しく述べる。
図1は、本発明のいくつかの実施形態における、ウェイによって構成されるメモリアーキテクチャの一例を示すブロック図である。ダイナミックにサイジング可能なメモリによるいくつかの実施形態では、図1のn本のウェイの連想記憶が、例えば、スタティックRAM(SRAM)を用いて実装され得る。複数のサブセクション101a、101b−101n(それぞれこの特定の例におけるウェイ)は、サブセクションまたはウェイ101のそれぞれが選択的に使用可/使用不可にされるよう、複数のスリープデバイス(図示せず)と個別にまたは一緒に結合されるか、あるいは、電源に/から同等にかつ選択的に結合/分離されてよい。
代わりのスリープデバイスが用いられてもよく、ここで論じられるそれら代わりのデバイスは、本発明のいくつかの実施形態に従い、本願明細書中における教示に少なくとも基づき当業者により用いられ得るタイプのスリープデバイスを示す。「パワーゲーティングトランジスタ」、「スリープトランジスタ」、および、「スリープデバイス」の用語を用いているが、本発明の範囲をいかなる特定のデバイスに限定しようというのではなく、単に、メモリサブセクションへの電力をオフにするかまたはゲートで制限するスリープデバイスの能力を説明しようとしている。さらに、当業者には明らかなように、これらスリープデバイスのさまざまな実施形態は、他のものより特殊化された用途を有してよく、したがって、特定のタイプのダイナミックにサイジング可能なメモリにとってより好都合であり得る。
メモリトポロジは、メモリのセクションまたはサブセクションへの電力を制御するために特定のスリープデバイスが用いられ得るかどうかを決定してよい。図1に関し、メモリがウェイによって構成されるいくつかの実施形態では、スリープデバイスは、メモリの各ウェイを制御すべく用いられ得る。メモリトポロジがいくつかの他のやり方で構成されている場合、特に、所定のウェイが分離されていない場合、スリープデバイスは、メモリの特定のセクションを制御することができない可能性もある。代わりの手段は、図2を参照して述べる。
図2は、本発明のいくつかの実施形態におけるウェイによって構成されたのではないメモリアーキテクチャの他の例を示すブロック図である。ウェイ202a、202b−202nは、メモリ内に任意のサイズで任意の位置に配される。本発明のいくつかの実施形態では、ウェイはメモリの異なるブロックに物理的に分布しており、メモリはウェイ毎に漸進的にフラッシュされることができるが、スリープデバイスを用いてウェイをオフにすることはできない。このように、メモリは、所定のブロックのウェイのすべてがフラッシュされた後にのみスリープトランジスタを用いてオフにされ得る。
本発明のいくつかの実施形態によれば、例えば、これらに限定されないが、図1および2に示すような1つ以上のウェイは、ウェイに基づくダイナミックサイジングプロセスを用いて減らすことが出来る。本発明のいくつかの実施形態では、さまざまなダイナミックサイジングプロセスは、コンピュータシステムの構成要素によりさまざまな電力供給状態に入る、および/または、電力供給状態から出ると即座に実装され得る。
プロセッサ(例えば、マルチコアプロセッサ、または、中央処理装置(CPU)など)によりアクセスされるメモリに関し、プロセッサのマイクロコード(以下の図5参照)は、本発明のいくつかの実施形態に従い、非アクティブになったかまたは縮小したウェイにおける任意の変更されたデータをフラッシュすべく、各ウェイにおけるラインを順にたどってよい。本発明のいくつかの実施形態では、すべての変更されたデータがメモリにフラッシュされた後、1つまたは複数のウェイへの電力は、例えば、スリープデバイスを用いてオフにされ得る。
本発明のいくつかの実施形態に従い、プロセッサのパワーマネジメントロジック(PML)、または、バックサイドバスロジック(BBL)の制御ロジック(以下の図5参照)は、最近使用(LRU)されたことにより非アクティブになったウェイへの割り当てをやめさせることができる。本発明のさらなる実施形態では、ウェイが再び使用可能になり、再びアクティブになった場合(言い換えれば、メモリが上記「縮小」とは反対に大きくなった場合)、パワーゲーティングトランジスタは、オンにされ、ウェイの状態ビットはクリアされ(例えばMESIプロトコルの状態I)、PMLまたは制御ロジックは、このウェイに割り当て始めることができる。MESI(変更、排他的、共有、無効の4つの状態)に代わるコヒーレンシーまたは書き込み無効プロトコルが本発明で実装されて用いられてよいことが当業者であれば理解できるであろうことに留意されたい。例えば、当業者であれば、MOESI(変更、専有、排他的、共有、無効の5つの状態)、または、DRAGON(有効−排他的、共有−クリーン、共有―変更、ダーティの4つの状態)のいずれかが実装され得ることが直ちにわかるであろう。本発明のいくつかの実施形態、例えば、これらに限定されないが、ゼロ電圧を伴う状態を用いた実施形態では、状態ビットが保持され得る。本発明のいくつかの実施形態では、状態ビットが保持される場合、PML150またはパワーマネジメント状態制御ロジック642は、電力供給状態から出るときに、状態ビットをクリアできない。
本発明のいくつかの実施形態では、代わりのスリープロジックを実装すべく、および/または、異なるアプローチをさらに用いてスリープデバイスに似た機能を提供すべく、さまざまな回路技術が用いられ得る。本発明のいくつかの実施形態では、例えば、メモリの異なるサブセクションは、電源プレーンの制御によって使用可/使用不可にされることができるよう、異なる電源プレーンに実装され得る。他のアプローチもさまざまな実施形態の範囲内に納まる。
さらに、マイクロプロセッサに実装されるn本のウェイの連想記憶が本願明細書中に例示の目的で記載されるが、本発明の実施形態は、異なるアーキテクチャを有する他のタイプのメモリ、および/または、他のタイプの集積回路デバイスに実装されるメモリを有するメモリにも適用されてよい。また、さらに、本発明のいくつかの実施形態では、「メモリ」、「キャッシュ」、および、「キャッシュメモリ」という用語が用いられ、特に、いくつかの実施形態ではキャッシュメモリが用いられているが、それがすべての形式またはタイプのメモリに当てはまるというような、本発明の実施形態の動作を限定する意味はない。
本発明のいくつかの実施形態では、例えば、さまざまなレベルのキャッシュメモリを含む、メモリの他のパーティション、サブセクション、または、部分も本願明細書中に記載される1つ以上のアプローチを用いて選択的に使用可および/または使用不可にされてよい。したがって、図示されたウェイは、アレイなど、セルの便利なグループ分けを提供できるが、「ウェイ」という用語の使用は、本発明の趣旨および範囲を制限することを意図しない。
本発明のいくつかの実施形態では、アクティブなウェイは、漸進的にフラッシュされることができる。当業者の一人であれば、本願明細書中の教示に少なくとも基づき、キャッシュのウェイをフラッシングする他の方法も理解できるであろう。キャッシュをフラッシュするのに必要な時間は、例えば、これに限定されないが、スリープ状態など、電力供給状態へ入るレイテンシを決定する1つの要因となる。電力供給状態から出る、例えばこれに限定されないが、スリープ状態では、とりわけ、キャッシュの状態ビットは無効にされる。状態ビットを無効にするのに必要な時間は、電力供給状態から出るレイテンシを決定する1つの要因となる。
本発明のいくつかの実施形態における、電力供給状態に出入りするために必要な時間を減らすことなどによる最適化または改良は、製造者、ユーザ、および、プログラマにとり非常に有益であろう。本発明のいくつかの実施形態は、これに限定されないが、キャッシュを実装するために複数回インスタンス化されたブロックを含むキャッシュトポロジなどの他のトポロジのみならず、上記図1および図2で説明されたキャッシュトポロジにも適用され得る。さらに、本発明のいくつかの実施形態では、当業者の一人であれば、本願明細書中の教示に少なくとも基づき理解できるように、キャッシュのウェイは、各ウェイ均一であるか、または、複数のウェイごとに不均一であってよく、さまざまな方法でマッピングされてよい。
本発明のいくつかの実施形態では、電力供給状態は、ラインごとのキャッシュフラッシュ・マイクロアーキチャを用いてよく、その場合、プロセッサは、ラインがメインメモリに書き込まれるべき変更されたデータを含むかどうかを見るために、キャッシュ内の各ラインをチェックしてよい。このようにして、本発明のいくつかの実施形態に従い、例えば、変更されたデータなどのキャッシュデータをトラッキングするプロセスが出入りのレイテンシを短縮できる。レイテンシの短縮は、少なくとも2通りに役立つ。1つには、出入りのパフォーマンスが向上され得ることである。2つには、キャッシュラインのいくつかのフラッシング/無効化は起きない可能性もあるので、キャッシュを動作させるのに必要なエネルギーを節約できることである。
本発明のいくつかの実施形態に従い、キャッシュ状態のトラッキングは、ウォームビットおよび/またはダーティビットを用いることによりサポートされ得る。本発明のいくつかの実施形態では、ウォームビットは、電力供給状態から最後に出て以来、特定のキャッシュブロックがアクセスされているかどうかを記録するために用いられ得る。本発明のいくつかの実施形態では、アクセスすることは、そのキャッシュブロックの任意のラインへの読み取りおよび/または書き込み動作を含み得る。本発明のいくつかの実施形態では、ダーティビットは、特定のキャッシュブロックが変更されたデータを含むかどうかを記録するために用いられ得る。本発明のいくつかの実施形態では、変更されたデータは、キャッシュブロック内のラインに対して生じる書き込み動作の状態情報を観察することにより検出され得る。
図3および4は、ウォームビットおよびダーティビットそれぞれのいくつかの実施形態を示し、1ブロックにつき、1ビットを示してよい。他の実施形態も本願明細書中に記載の教示を逸脱せずに用いられ得る。図3において、ウォームビット302は、行302a、302b乃至302nで示される。図4において、ダーティビット402は、行402a、402b乃至402nで示される。本発明のいくつかの実施形態では、ダーティビットは、ウォームビットのサブセットでよい。例えば、いくつかの実施形態では、特定のキャッシュブロックは、それがウォームビットでもある場合のみ、ダーティビットとなり得る。すなわち、アクセスまたは使用は、本発明のいくつかの実施形態における変更の必要条件になり得る。
1つ以上の実施形態に従い、ダイナミックにサイジングされるメモリ101および/または202の関連するサブセクションを使用可および/または使用不可にすべく、最適化プロセスを制御するために必要なロジックがホスト集積回路、コンピュータシステム、または、ソフトウェアに実装され得る。このような実装の例は、本発明のいくつかの実施形態に関連して本願明細書中で説明される。
図5は、本発明のいくつかの実施形態における、ウォームビットおよび/またはダーティビットを生成するロジックの一例を示す図である。ロジックは、本発明のいくつかの実施形態に従い、ハードウェア、ソフトウェア、または、ファームウェアに実装されてもよいし、以下に述べる図6にすべて示されている、PML150、パワーマネジメント状態制御ロジック642、または、オペレーティングシステム(OS)645から格納および/または操作されてもよい。
本発明のいくつかの実施形態に従い、このロジックは、1.キャッシュへの1つ以上のトランザクションのアドレス;2.1つ以上のリード/ライトイネーブル;3.状態/ウェイ情報の1つ以上に基づき、ウォームおよび/またはダーティビットを生成する。本発明のいくつかの実施形態では、ロジック500は、ウェイ選択506、および、ライトイネーブル508のみならずメモリトランザクションアドレス502から情報を受信するデコードロジック512を含む。本発明のいくつかの実施形態では、メモリトランザクションアドレス502は、セットビット504の1つ以上のサブセットを含み得る。
本発明のいくつかの実施形態に従い、デコードロジック512は、トランザクションタイプ情報510も受信してよい。いくつかの実施形態では、トランザクションタイプの例は、メモリ読み込み、メモリ書き込み、メモリプローブ、メモリライトバック(フラッシュ)、または、メモリ無効化を含み得る。メモリ属性(例えばMESIの使用)も510により読み込まれることができる。この情報は、ウォームビットおよび/またはダーティビットの生成に用いられ得る。なぜなら、本発明のいくつかの実施形態によれば、ビットは、メモリトランザクションのタイプに対してのみ1に設定されるからである。例えば、いくつかの実施形態では、ウォームビットは、そのセットおよびウェイへのいかなるトランザクションに対し設定されてよい。さらに、いくつかの実施形態では、変更されたデータがそのセットおよびウェイに書き込まれた場合、ダーティビットが設定され得る。本発明のいくつかの実施形態では、デコードロジック512は、その後、1つ以上のウォームビット514および/または1つ以上のダーティビット516を生成し得る。いくつかの実施形態では、デコードロジックは、メモリトポロジおよびブロック境界を認識し得る。
さらに、本発明のいくつかの実施形態では、デコードロジックは、ウォームビット514およびダーティビット516をクリアしてよい。別の実施形態では、PML150、パワーマネジメント状態制御ロジック642、または、OS645は、ビット514および/または516をクリアしてよい。いくつかの実施形態では、ダーティビット516は、メモリブロックがフラッシュされるときクリアされてよい。いくつかの実施形態では、ウォームビット514は、電力供給状態を出るときクリアにされてよい。
本発明のいくつかの実施形態では、電力供給状態から出るたびに、ウォームおよびダーティビット情報収集プロセスが再開されてよい。いくつかの実施形態では、ウォームおよびダーティビットは、事実上飽和していてよく、すなわち、ウォームビットは、メモリの同じブロックへの複数回の書き込みに対し1(1または0のいずれかのうちの)であってよい。本発明のいくつかの実施形態では、ビット514および516は、コンピュータシステムの明確なリセットに対してのみクリアされてよい。いくつかの実施形態では、複数のメモリブロックは、ウォームビットおよび/またはダーティビットを共有してよい。
本願明細書中の他の箇所に記載されるように、本発明のいくつかの実施形態は、ハードウェア、ファームウェア、および、ソフトウェアのうちの1つ、または、それらの組み合わせに実装されてよい。本発明のいくつかの実施形態は、本願明細書中に記載される動作を実行する少なくとも1つのプロセッサにより読み取られて実行され得る機械可読媒体に格納される命令として全体的にあるいは部分的に実装されてもよい。機械可読媒体は、機械(例えばコンピュータ)によって読み取られることができる形式で情報を格納するかまたは伝送するためのいずれかの機構を含み得る。例えば、機械可読媒体は、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気、光、音響、または、他の形式で伝搬される信号(例えば、搬送波、赤外線信号、デジタル信号など)、その他を含み得る。
図6は、本発明の実施形態におけるダイナミックメモリのサイジングに関するメモリレイテンシの最適化を実装するために利用され得るコンピュータシステムの一例を示すブロック図である。システム600は、ノートブックまたはラップトップ・コンピュータシステム、あるいは、モバイルデバイス、パーソナル携帯情報機器、無線電話/ハンドセットなどの任意の異なるタイプのモバイル電子システムであってよく、あるいは、デスクトップ、または、企業向けのコンピュータシステムなどのような非モバイルシステムでもかまわない。他のタイプの電子システムもさまざまな実施形態の範囲内に納まる。
システム600は、例えば、マルチコアプロセッサなどのプロセッサ605、プラットフォームレベルのクロックジェネレータ611、プロセッサ605に結合された電圧レギュレータ612、バス617を介しプロセッサ605に結合されたメモリ制御ハブ615、1つ以上のランダムアクセスメモリ(RAM)、フラッシュメモリ、および/または、他のタイプのメモリを含み得るメモリ620、バス627を介しメモリ制御ハブ615に結合された入出力(I/O)制御ハブ625、および、バス632を介しI/O制御ハブ625に結合された大容量記憶装置630を含む。いくつかの実施形態において、システム600は、記載されたサブシステムを備えるモバイルデバイスであり得るが、システム600は、記載されたサブシステムを多かれ少なかれ備える異なるタイプのモバイルデバイス、または、非モバイルデバイスであってもよいことを理解されたい。
本発明のいくつかの実施形態では、プロセッサ605は、例えば、命令を処理するための1つ以上の処理コア(120および122など)、および、少なくとも1つの実行ユニット110を含むインテルペンティウム(登録商標)Mプロセッサの後続のプロセッサである、インテル(登録商標)アーキテクチャのマイクロプロセッサであってよい。本発明のいくつかの実施形態では、プロセッサ605は、インテルSpeedStep(登録商標)テクノロジー、または、2つ以上の電圧/周波数動作点を提供する他のパワーマネジメント関連のテクノロジーを含み得る。関連するクロック/パワーマネジメントユニット150は、2つ以上の電圧/周波数の対の間の移行を制御すべくプロセッサ605内に含まれてよい。
本発明のいくつかの実施形態では、プロセッサ605は、デジタルシグナルプロセッサ、組み込みプロセッサなどの異なるタイプのプロセッサ、または、異なるソースからのマイクロプロセッサであってよい。
他にも、プロセッサ605は、プロセッサの状態変数、および、ウォーム/ダーティビット情報を格納するために用いられ得る専用キャッシュメモリ140(例えば同期式ランダムアクセスメモリ(SRAM))を含んでよい。本発明のいくつかの実施形態では、メモリ140は、プロセッサが、例えばこれに限定されないが、ゼロ電圧スリープ状態など、非常に低い電圧状態に入るときに上記情報のいくらかあるいはすべてを格納してよい。本発明のいくつかの実施形態では、メモリは、プロセッサのチップに組み込まれるか、または、プロセッサチップと同じハウジング内に実装されてよい。
インテルSpeedStep(登録商標)テクノロジー、または、他のタイプのパワーマネジメントテクノロジーがプロセッサ605に組み込まれる場合、テクノロジーに付随する利用可能な電圧/周波数の対は、完全な機能動作モードの間のプロセッサ605に付随する最小アクティブモード動作電圧、および、最小動作周波数に対応する最小電圧/周波数対を含む。これらは、本願明細書中では、最小動作電圧および最小動作周波数、または、最小アクティブモード動作電圧、および、最小アクティブモード動作周波数とそれぞれ呼ばれてよい。同様に、最大動作電圧および周波数も定義され得る。他の利用可能な電圧/周波数対は、動作電圧/周波数対、あるいは、単に他の電圧/周波数、または、周波数/電圧対と呼ばれてもよい。
任意で、ゼロ電圧入/出ロジック154がプロセッサ605内のパワーマネジメントロジック(PML)150の中または外に含まれ、本願明細書中ではC6状態と呼ばれるゼロ電圧スリープ状態から/への出/入りを制御してもよい。本願明細書中の他の箇所に記載するように、PML150は、ロジック500を含み得る。
ゼロ電圧入/出ロジック154によりアクセス可能な、電圧識別コード・ルックアップテーブルを格納する電圧識別(VID)メモリ152が含まれてよい。VIDメモリは、オンチップまたはオフチップレジスタ、あるいは、他のタイプのメモリであってよく、VIDデータは、例えば、ソフトウェア、基本入出力システム(BIOS)コード678(ファームウェアハブ679、または、他のメモリに格納されてもよい)、オペレーティングシステム、他のファームウェアを介しメモリにロードされてよく、および/または、ハードコードされてもよい。あるいは、VIDおよび関連データを含むソフトウェアのルックアップテーブルは、ロジック150によりアクセス可能であってもよい。VID情報は、CPUにヒューズ(例えばプログラマブルROM)として格納されてもよい。
本発明のいくつかの実施形態では、ロジック500の動作に必要な情報、および/または、ウォーム/ダーティビットの状態がVIDデータと共に同じように格納され得る。
アナログ・デジタル変換器(ADC)156もゼロ電圧入/出ロジック154の一部として設けられ、電圧供給レベルを監視して以下にさらに詳細に述べるような関連するデジタル出力を供給し得る。
電圧レギュレータ612は、プロセッサ605に供給動作電圧を供給し、例えば、IMVP−6仕様などのインテルモバイル電圧ポジショニング(IMVP)仕様のバージョンに従ってよい。このような実施形態では、電圧レギュレータ612は、プロセッサ605からのVID信号をハブ635を介し受信するよう結合され、VID信号に応答して、信号ライン640を介し関連する動作電圧をプロセッサ605に供給する。電圧レギュレータ612は、1つ以上の信号に応答し、プロセッサ605への電圧640をゼロ状態に引き下げ、ゼロ電圧スリープ状態から抜け出た後、プロセッサへの電圧を再び上昇させるゼロ電圧スリープロジック102を含み得る。
本発明の他の実施形態では、異なる仕様に従う電圧レギュレータを含む、異なるタイプの電圧レギュレータを用いてよい。さらに、いくつかの実施形態では、電圧レギュレータは、プロセッサ605を含むシステム600の他の構成要素と集積されてよい。電圧レギュレータは、設計の配慮次第でCPUと集積されてもされなくてもよい。
メモリ制御ハブ615は、グラフィックスおよびメモリ制御能力の両方を備えることもあり、本願明細書中では、グラフィクス・メモリ制御ハブ(G/MCH)またはノースブリッジと呼ばれることもある。グラフィックス・メモリ制御ハブ615、および、I/O制御ハブ625(サウスブリッジとも呼ばれる)は、まとめてチップセットとも呼ばれることがある。他の実施形態では、チップセットの要素は、異なったやり方で区画されてよく、および/または、異なる数の集積回路チップを用いて実装されてよい。例えば、いくつかの実施形態では、グラフィックスおよびメモリ制御能力は、別々の集積回路デバイスを用いて実現され得る。
いくつかの実施形態のI/O制御ハブ625は、本願明細書中ではC状態制御ロジックとも呼ばれるパワーマネジメント状態制御ロジック642を含む。パワーマネジメント状態制御ロジック642は、プロセッサ605に関連するいくつかのパワーマネジメントおよび/または通常の動作状態との間の、自発的な、または、オペレーティングシステムあるいは他のソフトウェアまたはハードウェアイベントに応じての移行の態様を制御してよい。例えば、C0、C1、C2、および、C4、C5、C6と呼ばれる少なくともアクティブモードのパワーマネジメント状態がサポートされているインテル(登録商標)アーキテクチャのプロセッサでは、パワーマネジメント状態制御ロジック642は、ストップクロック(STPCLK#)、プロセッサスリープ(SLP#)、ディープスリープ(DPSLP#)、ディーパーストップ(DPRSTP#)、および/または、ストッププロセッサ(STPCPU#)信号のうちの1つ以上を用いて上記状態の少なくともサブセットの間の移行を少なくとも部分的に制御することができる。
また、本発明のいくつかの実施形態では、動作電圧640がゼロ状態に低下することによりプロセッサ605の残りがパワーダウンする一方で、専用キャッシュメモリ140がプロセッサ605に関連する状態変数を格納できるよう、専用キャッシュメモリ140に十分な電力を供給すべく、プロセッサ605にI/O制御ハブ625(VI/O 149)からの電圧が供給される。本発明のいくつかの実施形態では、状態変数は、ウォームビットおよび/またはダーティビット情報を含む。
他のタイプのアーキテクチャ、および/または、異なるパワーマネジメントおよび/または通常の動作状態をサポートするプロセッサでは、パワーマネジメント状態制御ロジック642は、本願明細書中に記載される信号と同様かまたは異なるかもしれない1つ以上の信号を用いて2つ以上の異なるパワーマネジメント、および/または、通常の動作状態の間の移行を制御し得る。
大容量記憶装置630は、ネットワークを介してコンピュータシステム600によりアクセス可能な1つ以上の読み取り専用コンパクトディスク(CD−ROM)ドライブと付随するディスク、1つ以上のハードドライブと付随するディスク、および/または、1つ以上の大容量記憶装置を含み得る。例えば、光ドライブと付随する媒体などの他のタイプの大容量記憶装置もさまざまな実施形態の範囲内に含まれる。
いくつかの実施形態では、大容量記憶装置630は、本願明細書中の他の箇所で説明するACPI仕様の現在のおよび/または後続バージョンをサポートすべく、コード650を含むオペレーティングシステム645を格納する。ACPIは、以下にさらに詳細に説明するようなパワーマネジメントのいくつかの態様を制御すべく用いられてよい。オペレーティングシステム645は、ワシントン州レドモンドのマイクロソフト(登録商標)社製のウィンドウズ(登録商標)、または、他のタイプのオペレーティングシステムであってよい。あるいは、例えば、リナックス(登録商標)オペレーティングシステムなどの他のタイプのオペレーティングシステム、および/または、他のタイプのオペレーティングシステムに基づくパワーマネジメントも他の実施形態で用いられ得る。さらに、ACPIに関連して本願明細書中に記載されたパワーマネジメント機能および能力は、異なるソフトウェアまたはハードウェアによっても実現できる。
また、システム600は、ユーザに情報を表示するためのブラウン管(CRT)、または、液晶ディスプレイ(LCD)などのディスプレイ装置を含み得る。さらに、システム600は、プロセッサ605と情報およびコマンド選択をやりとりするための英数字または他のキーを含む英数字入力装置(例えばキーボード)を含んでよい。追加のユーザ入力デバイスは、プロセッサ605と方向情報およびコマンド選択をやりとりし、ディスプレイ装置上のカーソルの動きを制御するための、マウス、トラックボール、トラックパッド、スタイラス、または、カーソル指示キーなどのカーソル制御装置であってよい。
システムに含まれ得る他の装置は、命令、データ、または、他の情報を紙、フィルム、または類似したタイプの媒体に印刷するために用いられるハードコピーデバイスである。さらに、スピーカおよび/またはマイクロフォン(図示せず)などの録音・再生デバイスが音声インターフェースとしてシステム600に任意で含まれてよい。
システム600がモバイルまたはポータブルシステムである場合、バッテリまたはバッテリコネクタ655が含まれることにより、単独で、または、他のタイプの電源がない状態でのいずれかにおいてシステム600を駆動する電力を提供する。また、いくつかの実施形態では、アンテナ660は、システム600に含まれ、例えば、システム600の無線接続性を提供する無線LAN(WLAN)デバイス661を介しシステム600に結合されてよい。
無線LANデバイス661は、無線通信チャネルを設定するワイヤレスアプリケーションプロトコル(WAP)を採用し得る無線通信モジュールを含んでよい。無線通信モジュールは、1999年に発行された米国電気電子技術者協会(IEEE)802.11規格などの無線ネットワーク規格を実装し得る。
本発明のいくつかの実施形態では、図6のプロセッサ605は、さまざまな既知のC状態の間を移行し得ると理解されたい。プロセッサ605の通常動作状態またはアクティブモードは、プロセッサが命令をアクティブに処理するC0状態である。C0状態のプロセッサ605は、最大電圧/周波数の対によって電圧/周波数が設定され得る高周波モード(HFM)にある。
電力を節約し、および/または、熱負荷を減らすべく、例えば、プロセッサ605は、可能であればいつでも低消費電力状態に移行され得る。C0状態から、マイクロコードなどのファームウェア、オペレーティングシステム645などのソフトウェア、あるいは、いくつかのケースでは、ACPIソフトウェアなどに応答してHALTまたはMWAIT命令(図示せず)を実行すると、プロセッサ605は、C1または自動HALT状態へと移行し得る。C1状態では、プロセッサ605の回路のそれぞれの部分はパワーダウンし、ローカルクロックは、ゲートで制限され得る。
例えば、I/Oコントローラ625によるSTPCLK#または同様の信号のアサーションに応じて、プロセッサは、ストップグラントまたはSLEEP状態とも呼ばれるC2状態へと移行してよい。I/Oコントローラ625は、低消費電力モードに入っている可能性があるかまたは入っているに違いないかを決定し、そのことをACPIソフトウェア650を介して示すオペレーティングシステム645に応答し、STPCLK#信号をアサートしてよい。特に、I/Oコントローラ625には1つ以上のACPIレジスタ(図示せず)が含まれてよく、ACPIソフトウェア650は、これらのレジスタに書き込みをすることにより、状態間の少なくともいくつかの移行を制御してよい。C2状態における動作の間、プロセッサ605の回路におけるそれぞれの部分はパワーダウンし、内部および外部コアクロックは、ゲートで制限され得る。いくつかの実施形態では、プロセッサは、C0状態からC2状態へと直接移行し得る。
同様に、CPUSLP#信号、次にDPSLP#信号、または、他の同様の信号をアサートするI/Oコントローラ625および他のチップセット機能に応答し、プロセッサ605は、Deep Sleep状態とも呼ばれるC3状態へと移行してよい。Deep Sleep状態では、内部プロセッサ回路をパワーダウンさせることに加え、プロセッサ605内のすべての位相ロックループを使用不可にしてよい。さらに、いくつかの実施形態では、入出力コントローラ625によりSTOP_CPU信号がアサートされ、それをクロックジェネレータ611が受信することにより、クロックジェネレータは、クロック信号CLKがCPU605に送られるのを止めることができる。
システム600では、例えば、保留中のプロセッサ割込みがないことを検出するACPIソフトウェア650に応答し、C4状態、または、ゼロ電圧スリープ状態へと移行し得る。このことは、ACPIソフトウェアが、ICH625に、例えば、典型的なDeeper Stop(DPRSTP#)信号、および、典型的なDPSLP#信号などの1つ以上のパワーマネジメント関連の信号をアサートさせることによりなされ得る。Deeper Stop(DPRSTP#)信号は、チップセットからプロセッサへと直接供給され、プロセッサのクロック/パワーマネジメントロジック150に低周波モード(LFM)を開始させる。低周波モードでは、プロセッサは、例えば、最小または他の低動作周波数へと移行してよい。
本発明のいくつかの実施形態では、DPRSTP#信号のアサーションにより、さらに、内部VIDターゲットがゼロ電圧レベルに設定され、その結果、プロセッサが非常に低い電力消費特性を有するきわめて深いスリープ状態へと移行するよう、ゼロ動作電圧が電圧レギュレータ612によりプロセッサ605に印加される。
本発明のいくつかの実施形態に従い、例えば、プロセッサ605などの集積回路は、ゼロ電圧パワーマネジメント状態へと移行し始めてよい。一例では、プロセッサ605は、中央処理装置(CPU)605であってよい。さらに、例えば、ゼロ電圧マネジメント状態は、ACPI規格に従うより深いスリープ状態であってもよい。この移行の間、CPU605の状態は、セーブされ得る。例えば、CPU605に関連する状態変数は、専用キャッシュメモリ(例えばSRAM)140にセーブされ得る。
CPU605の動作電圧は、その後、CPU605が非常に低い消費電力特性を有する非常に深いスリープ状態になるよう、ゼロへと低下し得る。特に、オプションのゼロ電圧スリープ状態ロジック102を利用する電圧レギュレータ612は、動作電圧640をゼロまで下げてよい。これは、上述の如く、CPU605のクロック/パワーマネジメントロジック150のゼロ電圧入/出ロジック154に関連してなされ得る。いくつかの実施形態では、このゼロ電圧パワーマネジメント状態は、ACPI規格と併せて実装される場合、C6状態と呼ばれることもある。
その後、ゼロ電圧パワーマネジメント状態から出る要求を受信したことに応答し、CPU605は、より高い基準動作電圧でのゼロ電圧パワーマネジメント状態を出る。特に、上述のような、CPU605のゼロ電圧入/出ロジック154と、電圧レギュレータ612のゼロ電圧スリープロジック102との制御下では、電圧レギュレータ612は、CPU605が正確に動作するよう、基準動作電圧640を適切なレベルまで引き上げてよい。その後、CPU605の重要な状態変数が専用キャッシュメモリ140からリストアされる。
したがって、本発明のいくつかの実施形態によれば、パワーマネジメントスキームは、CPU605がウォームビットおよびダーティビット情報を含むその状態情報をセーブして電源をオフにし、その後必要に応じて起動し、状態をリストアし、CPUが停止した時点から以降の処理を続けられるようにする。このことは、いくつかの実施形態においては、オペレーティングシステム645からの明確なサポートがなくてもなし得、ウォームビットおよび/またはダーティビットの使用も手伝ってより短いレイテンシで達成できる。
さらに詳しくは、本発明のいくつかの実施形態では、ACPI規格に従うC6状態と呼ばれることもあるゼロ電圧プロセッサのスリープ状態では、CPU605の状態は、I/O電源(VI/O)149をオフにし得る専用スリープ状態SRAMキャッシュ140にセーブされてよく、その間、CPU605のコア動作電圧640は、ほぼ0ボルトまで引き下げられる。この時点で、CPU605は、ほぼ完全にオフになり消費する電力は非常に小さい。
CPU605は、低電力状態を出ると即座に、電圧レギュレータ612に動作電圧640を再び上昇させることを指示し(例えばVIDコード635により)、位相ロックループ(PLL)を再びロックし、クロック/パワーマネジメントロジック150、および、ゼロ電圧入/出ロジック154を介しクロックを再びオンにする。さらに、CPU605は、状態をクリアすべく内部RESETを実行し、その後専用スリープ状態SRAMキャッシュ140からCPU605の状態をリストアしてよい。そしてCPU605は、実行ストリームおいて、停止した時点以降の処理を続けることができる。これらの動作は、オペレーティングシステム645および既存のパワーマネジメントソフトウェアインフラに対し透明であるよう、CPU605ハードウェアにおいて、非常に短い期間でなされ得る(例えば、ほぼ100マイクロ秒)。
いくつかの実施形態では、この方法論は、複数のプロセッサコアを有するCPU605に特に適している。ここでは、コア120(例えばCore#0)およびコア122(例えばCore#1)、すなわち、デュアルコアCPUを一例として挙げる。しかしながら、任意の適当な数のCPUコアでもかまわないことを理解されたい。デュアルコア構造では、CPUコア120および122は、共有キャッシュ130を利用する。例えば、この共有キャッシュ130は、コア120および122により共有されるレベル2(L2)キャッシュ120であってよい。
さらに、各コア120および122は、コアID121、マイクロコード123、共有状態124、および、専用状態125を含む。コア120および122のマイクロコード123は、CPU状態のセーブ/リストア機能の実行時に、また、CPU605のクロック/パワーマネジメントロジック150のゼロ電圧入/出ロジック154に関連するゼロ電圧プロセッサスリープ状態のパフォーマンスにおけるさまざまなデータフローのために利用される。さらに、専用スリープ状態SRAMキャッシュ140は、あらゆるウォーム/ダーティビットに関連する情報のみならず、コアの状態をセーブするためにも利用され得る。
当業者の一人であれば、本願明細書中で得られる教示に少なくとも基づき、システム600、および/または、さまざまな実施形態の他のシステムは、図6に示されていない他の構成要素または要素を含むことがあり、および/または、図6に示すすべての要素がすべての実施形態のシステム内に存在するわけではないことが理解できるであろう。
さらに、いくつかの実施形態のロジック500は、図6の構成要素の1つ以上の中の有限状態機械(FSM)として実装され得る。当業者の一人であれば、本願明細書中における少なくとも教示に基づき、このようなFSMは、以下に述べるフローチャートに従い動作することが理解できるであろう。
これまで1つ以上の実施形態の多くの詳細が記載されてきたが、他の実施形態では、ダイナミックメモリサイジングのレイテンシを最適化するための他のアプローチも実装され得ると理解されたい。例えば、特定の電力供給状態が記載されているが、他の実施形態では、メモリブロックが変更されたまたはアクセスされたデータを含むという決定において他の電力供給状態および/または他のパワーファクタも考えられる。さらに、例としてパーソナルコンピュータにおけるデュアルコアプロセッサ内のメモリを説明したが、本発明の1つ以上の実施形態によれば、ダイナミックメモリサイジングの最適化レイテンシへのアプローチは、異なるタイプのメモリおよび/またはホスト集積回路チップおよび/またはシステムにも適用され得ることがわかるだろう。
例えば、本発明のさまざまな実施形態によれば、メモリパワーマネジメントロジック(図示しないが、少なくとも実行ユニット110により実装されてよい)、あるいは、他のソフトウェアまたはハードウェアにより、通常はホストプロセッサの、および/または、特にメモリのワークロードを監視することができる。メモリパワーマネジメントロジックは、例えば、プロセッサが長時間アクティブでない場合、および/または、例えば、アプリケーションが総空メモリのほんのわずかな部分しか消費しない場合、プロセッサまたはコンピュータシステムのすべてまたは一部の電力供給状態に基づき、メモリを効果的に縮小させるコマンドを発行することができ、以下に詳しく述べる図7乃至9のプロセスの1つ以上を実行する。このことは、例えば、図1および/または2に示す例示の実施形態のような1つ以上のウェイなどのアクティブメモリの一部を使用不可にすることにより成し得る。メモリパワーマネジメントロジックが、プロセッサは長時間アクティブであることを検出する場合、プロセッサ、または、ホストコンピュータシステムのすべてまたは一部は、所定の電力供給状態にあり、および/または、メモリサイズがプロセッサまたはコンピュータシステムの要求される動作に対して十分な大きさでない場合、図7乃至9を参照して以下に詳細に述べる1つ以上のプロセスを実行する一方で、もっと多くのメモリを使用可能にすることによりメモリを拡張するコマンドあるいは制御ロジックを発行してよい。
したがって、本発明のいくつかの実施形態によれば、ハードウェア調整モニタまたは制御ロジックまたはPMLは、必要とされるウェイの数が使用可能なウェイの数より少ない場合、使用可能なウェイの数が必要とされるウェイの数と実質的に等しくなるよう、1つ以上のウェイを使用不可にすべく、スリープデバイスを非アクティブにするか(またはスリープデバイスがどのように構成されているかに基づきアクティブにする)ことを反復的に決定してよい。
さらに、本発明のいくつかの実施形態における1つ以上のコヒーレンシープロトコルを用い、ハードウェア調整モニタは、メモリに少なくとも書き込まれるデータのための1つ以上のウェイをスキャンしてよい。
本発明の他の実施形態では、ハードウェア調整モニタは、必要とされるウェイの数が使用可能なウェイの数より多い場合、使用可能なウェイの数が必要とされるウェイの数と実質的に等しくなるよう、1つ以上のウェイを使用可能にすべく、スリープデバイスをアクティブにするか、(または、スリープデバイスがどのように構成されているかに基づき非アクティブにする)ことを反復的に決定してよい。
本発明のいくつかの実施形態は、上記説明した機能を実行する方法を含み得る。例えば、本発明の一実施形態は、プロセッサおよびメモリを監視し、そのメモリを調整する方法を含み得る。プロセスは、図7乃至9を参照して以下に説明する実施形態の追加の動作を含んでよい。
これらの図は、ウォームおよびダーティビットを用いた電力供給状態への出入りの流れについてのいくつかの実施形態を表すフローチャートである。いくつかの実施形態では、ダーティビットは、電力供給状態へ入る間に用いられ得る。本発明のいくつかの実施形態によれば、ダーティビットは、変更されたデータを含まないメモリブロックをプロセッサにスキップさせることが少なくともできる。いくつかの実施形態では、ウォームビットは、例えば、これに限定されないが、特定のスリープ状態などの電力供給状態から出る間に用いられることができる。本発明のいくつかの実施形態では、ウォームビットは、いかなるデータも含まない、すなわち、アクセスされなかったメモリブロックの状態ビットの無効をプロセッサにスキップさせることが少なくともできる。ウォームビットの使用は、メモリブロックに状態ビットを保持する電力供給状態に依存するのではなく、図6に少なくとも関連して本願明細書中の他の箇所に記載されるゼロ電圧ロジックのような、本質的にスリープ状態あるいは電源オフ状態にあったとしてもプロセッサが状態情報を維持することができる、メモリに対する特定の電力レベルに依存する。換言すれば、本発明のいくつかの実施形態によれば、すべての状態ビットは、電力供給状態から出るときに無効にされ得るが、(ゼロ電圧ロジックの随意的な有無によっては)必ずしも無効にされる必要はない。
図7は、本発明のいくつかの実施形態におけるメモリレイテンシを最適化するプロセスの一例を示すフローチャートである。本願明細書中の他の箇所に記載されるように、プロセスは、パワーマネジメントロジック150または制御ロジック154だけでなくデコードロジック512も含むロジック500により全体的にあるいは部分的に実行され得る。プロセスは、700から開始し、702へと進む。702では、メモリブロックがプロセッサにアクセスされた場合、メモリブロックに関連するウォームビットが生成される。本発明のいくつかの実施形態では、プロセスは、任意で704に進む。704では、メモリブロックが変更された場合、メモリブロックに関連するダーティビットが生成される。
次に、プロセスは、706へと進む。706では、ロジック500、150、または、154は、メモリ状態を変更する要求を受信する。本発明のいくつかの実施形態では、要求は、プロセッサのコアの1つ以上、または、プロセッサ自体の電力供給状態の変化を示し得る。本発明のいくつかの実施形態では、要求は、例えば、これに限定されないが、無線LAN661などのプロセッサ605の外部にある他のデバイスを示してよい。本発明のいくつかの実施形態では、要求は、本願明細書中の他の箇所に記載されているように、メモリが全体的にまたは一部シャットダウンになることを示してよい。そして、プロセスは、708へと進む。708では、どのメモリブロックがアクセスされているかがウォームビットにより決定されることができる。メモリブロックが起動する間、プロセスは、ウォームビットによりマークされるブロックからの状態ビットを無効にしてよい。
本発明のいくつかの実施形態では、プロセスは、任意で710に進む。710では、どのメモリブロックが変更されているかがダーティビットにより決定されることができる。メモリブロックが非アクティブである間、プロセスは、ダーティビットによりマークされるブロックを無効にしてよい。そして、プロセスは、712へと進む。712で終了し、当業者の一人であれば本願明細書中に記載される教示に少なくとも基づき理解できるように、全体的にあるいは部分的に再インスタンス化されてよい。
図8は、図7の708における一実施形態に関連して述べられるような、本発明のいくつかの実施形態における、特定の電力供給状態を出るフローについてのプロセスの一例を示すフローチャートである。プロセスは、本願明細書中の他の箇所に記載されるような、ロジック500、150、または、154により実行され得る。プロセスは、800から開始し、802に進んで保持されている状態ビットがあるかどうかチェックする。もしなければ、プロセスは804へと進み、すべての状態ビットを無効にしてよい。もしあれば、プロセスは、806に進む。
806では、プロセスは、無効にする次のブロックを選択してよい。選ぶいかなるブロックもない場合、プロセスは812に進み、終了する。この場合、当業者の一人であれば、本願明細書中に記載される教示に少なくとも基づき理解できるように、全体的にあるいは部分的に再インスタンス化され得る。選ぶブロックがある場合、プロセスは、808へと進んでよい。
808では、プロセスは、ブロックがウォームビットによりマークされるかどうかをチェックしてよい。マークされれば、810において、プロセスは、このブロックの状態ビットを無効にしてよい。もしされなければ、プロセスは、806に戻ってよい。いくつかの実施形態では、810の後、プロセスは、806に戻る。
図9は、図7の710における一実施形態に関連して述べられるような、本発明のいくつかの実施形態における、特定の電力供給状態に入るフローについてのプロセスの一例を示すフローチャートである。プロセスは、本願明細書中の他の箇所に記載されるような、ロジック500、150、または、154により実行され得る。プロセスは、900から開始し、902に進んで無効にされる次のブロックを選択する。無効にするいかなるブロックもない場合、プロセスは、908で終了する。この場合、当業者の一人であれば本願明細書中に記載される教示に少なくとも基づき理解できるように、全体的にあるいは部分的に再インスタンス化され得る。もしブロックがある場合、プロセスは、904へと進む。

904では、プロセスは、ブロックがダーティビットによりマークされるかどうかをチェックする。マークされれば、プロセスは、906に進み、このブロックのすべてのエントリを無効にしてよい。もしマークされなければ、プロセスは、902に戻ってよい。いくつかの実施形態では、プロセスは、906の後、902に戻る。
本明細書中における「1つの実施形態」「一実施形態」、「いくつかの実施形態」などへのいかなる言及も、実施形態に関連して記載される特定の特徴、構造、または、特性が本発明の少なくとも1つの実施形態に含まれることを意味する。明細書の随所に見られるこのような言い回しは、必ずしも同じ実施形態にすべて言及しているわけではない。更に、特定の特徴、構造、または、特性がいずれかの実施形態と関連して記載される場合、実施形態の他のものと関連してこのような特徴、構造、または、特性に影響を及ぼすことは当業者の知る範囲であると思われる。さらに、理解を容易にすべく、特定の方法の手順は、別々の手順として詳細に説明されているが、これらの別々の詳細な手順が必ずしもそれらを実行する順序どおりに記載されていると解釈されるべきでない。すなわち、当業者であれば、本願明細書中の教示に少なくとも基づき理解できるように、いくつかの手順は、他の順序でもあるいは同時に実行されてもよい。
本発明の実施形態は、当業者が本発明を実行できるよう十分詳細に記載され得る。他の実施形態も利用でき、本発明の範囲を逸脱せずに、構造的、論理的、知的変更もなされ得る。さらに、本発明のさまざまな実施形態は、異なるとしても必ずしも排他的であるというわけではない。例えば、一実施形態に記載される特定の特徴、構造、または、特性は、他の実施形態にも含まれ得る。したがって、詳細な説明は、限定を意図するものではない。
上記実施形態および利点は、例示にすぎず、本発明を限定するものとして解釈されるべきでない。例えば、本発明の教示は、他のタイプのメモリにも直ちに適用できる。当業者であれば、本発明の実施形態の教示は、さまざまな形式で実装できることが上記説明から理解できるであろう。したがって、これまで本発明の実施形態をその特定の例と関連付けて説明してきたが、本発明の実施形態の真の範囲は、それに限定されるべきでなく、当業者であれば、図面、明細書、添付の請求項の範囲に基づき、他の変形例もあり得ることは明らかであろう。

Claims (12)

  1. ダイナミックメモリサイジングのレイテンシを最適化するシステムであって、
    それぞれが少なくとも1つのウェイを有する複数のブロックを含むメモリと、
    特定の電力供給状態を出るときにクリアされ、前記複数のブロックの少なくとも1つのブロックがアクセスされたか否かを示すウォームビット、前記複数のブロックの少なくとも1つのブロックが変更されたか否かを示すダーティビットを生成するロジックと、
    前記複数のブロックの特定のブロックをアクティブまたは非アクティブにするよう前記メモリに要求するプロセッサと、
    キャッシュコヒーレンシープロトコルまたは書き込み無効プロトコルにより定義される前記複数のブロックの状態を示す状態ビットを無効に設定するよう要求する制御ロジックと、
    を備え、
    前記制御ロジックは、
    前記特定のブロックが起動する間、前記状態ビットが保持されていたか否かをチェックし、
    前記状態ビットが保持されていなかった場合、すべての状態ビットを無効に設定し、
    前記状態ビットが保持されていた場合、前記特定のブロックを選択して、前記特定のブロックが前記ウォームビットによりマークされているかどうかを決定し、前記特定のブロックが前記ウォームビットによりマークされている場合に、前記特定のブロックの前記状態ビット無効に設定し、
    前記制御ロジックは、
    前記特定のブロックが非アクティブである間、前記特定のブロックを選択して、前記特定のブロックが前記ダーティビットによりマークされているかどうかを決定し、
    前記特定のブロックが前記ダーティビットによりマークされている場合、前記特定のブロックのエントリを無効にる、
    システム。
  2. 前記ロジックは、各ダーティビットに対し少なくとも1つのウォームビットを生成する、
    請求項1に記載のシステム。
  3. 前記少なくとも1つのウェイは、前記メモリの2つ以上のサブブロックを含む、
    請求項1または請求項2に記載のシステム。
  4. 前記ロジックは、パワーマネジメントロジック、前記制御ロジックおよびオペレーティングシステムの少なくとも1つの上で動作する、
    請求項1から請求項までの何れか一項に記載のシステム。
  5. 前記メモリは、前記プロセッサを含むパッケージに内蔵された同期式ランダムアクセスメモリである、
    請求項1から請求項までの何れか一項に記載のシステム。
  6. 前記プロセッサは、第1のコアおよび第2のコアを少なくとも含む、
    請求項1から請求項までの何れか一項に記載のシステム。
  7. 前記第1のコアは、第1の一意の識別子を有し、
    前記第2のコアは、第2の一意の識別子を有し、
    前記メモリは、特定のコアの前記識別子に基づき、前記特定のコアの状態変数をリストアする、
    請求項に記載のシステム。
  8. ダイナミックメモリサイジングのレイテンシを最適化する方法であって、
    特定の電力供給状態を出るときにクリアされ、メモリの複数のブロックの少なくとも1つのブロックがアクセスされたか否かを示すウォームビット、前記複数のブロックの少なくとも1つのブロックが変更されたか否かを示すダーティビットを生成する段階と、
    前記メモリの前記複数のブロックの特定のブロックをアクティブまたは非アクティブにする要求を受信する段階と、
    前記特定のブロックが起動する間、キャッシュコヒーレンシープロトコルまたは書き込み無効プロトコルにより定義される前記複数のブロックの状態を示す状態ビットが保持されていたか否かをチェックする段階と、
    前記状態ビットが保持されていなかった場合、すべての状態ビットを無効に設定する段階と、
    前記状態ビットが保持されていた場合、前記特定のブロックを選択して、前記特定のブロックが前記ウォームビットによりマークされているかどうかを決定し、記特定のブロックが前記ウォームビットによりマークされている場合に、前記特定のブロックの前記状態ビット無効に設定する段階と、
    前記特定のブロックが非アクティブである間、前記特定のブロックを選択して、前記特定のブロックが前記ダーティビットによりマークされているかどうかを決定する段階と、
    記特定のブロックが前記ダーティビットによりマークされている場合、前記特定のブロックのエントリを無効にる段階と、
    を含む方法。
  9. 前記ウォームビットは、メモリトランザクションアドレス、ウェイ選択、ライトイネーブルおよびトランザクションタイプ情報の少なくとも1つから導かれる、
    請求項に記載の方法。
  10. 前記要求は、特定の電力供給状態から他の電力供給状態への移行中に生成される、
    請求項8または請求項9に記載の方法。
  11. 前記ウォームビット、および/または、前記ダーティビットをクリアする段階をさらに含む、
    請求項から請求項10までの何れか一項に記載の方法。
  12. コンピュータに、ダイナミックメモリサイジングのレイテンシを最適化する複数の手順を実行させるためのプログラムであって、
    コンピュータに、請求項8から請求項11までの何れか一項に記載の方法を実行させるためのプログラム。
JP2008538127A 2005-12-30 2006-12-11 ダイナミックメモリサイジングのレイテンシを最適化する方法、システムおよびプログラム Expired - Fee Related JP5060487B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/323,259 US20070156992A1 (en) 2005-12-30 2005-12-30 Method and system for optimizing latency of dynamic memory sizing
US11/323,259 2005-12-30
PCT/US2006/047364 WO2007078724A2 (en) 2005-12-30 2006-12-11 Method and system for optimizing latency of dynamic memory sizing

Publications (3)

Publication Number Publication Date
JP2009514114A JP2009514114A (ja) 2009-04-02
JP2009514114A5 JP2009514114A5 (ja) 2011-09-08
JP5060487B2 true JP5060487B2 (ja) 2012-10-31

Family

ID=37954416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008538127A Expired - Fee Related JP5060487B2 (ja) 2005-12-30 2006-12-11 ダイナミックメモリサイジングのレイテンシを最適化する方法、システムおよびプログラム

Country Status (7)

Country Link
US (1) US20070156992A1 (ja)
JP (1) JP5060487B2 (ja)
KR (1) KR20080080586A (ja)
CN (1) CN101356508B (ja)
DE (1) DE112006002835B4 (ja)
TW (1) TWI336437B (ja)
WO (1) WO2007078724A2 (ja)

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892924B2 (en) * 2002-12-18 2005-05-17 General Motors Corporation Precessing rivet and method for friction stir riveting
US7664970B2 (en) * 2005-12-30 2010-02-16 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US7966511B2 (en) 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US8799687B2 (en) 2005-12-30 2014-08-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including optimizing C-state selection under variable wakeup rates
US8527709B2 (en) 2007-07-20 2013-09-03 Intel Corporation Technique for preserving cached information during a low power mode
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US20090150696A1 (en) * 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
US8589629B2 (en) * 2009-03-27 2013-11-19 Advanced Micro Devices, Inc. Method for way allocation and way locking in a cache
JP5338905B2 (ja) * 2009-05-29 2013-11-13 富士通株式会社 キャッシュ制御装置およびキャッシュ制御方法
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US20120166731A1 (en) * 2010-12-22 2012-06-28 Christian Maciocco Computing platform power management with adaptive cache flush
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US8793515B2 (en) 2011-06-27 2014-07-29 Intel Corporation Increasing power efficiency of turbo mode operation in a processor
US8769316B2 (en) 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor
US8688883B2 (en) 2011-09-08 2014-04-01 Intel Corporation Increasing turbo mode residency of a processor
US8914650B2 (en) 2011-09-28 2014-12-16 Intel Corporation Dynamically adjusting power of non-core processor circuitry including buffer circuitry
US8954770B2 (en) 2011-09-28 2015-02-10 Intel Corporation Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin
US9074947B2 (en) 2011-09-28 2015-07-07 Intel Corporation Estimating temperature of a processor core in a low power state without thermal sensor information
US8832478B2 (en) 2011-10-27 2014-09-09 Intel Corporation Enabling a non-core domain to control memory bandwidth in a processor
US9026815B2 (en) 2011-10-27 2015-05-05 Intel Corporation Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
US9239611B2 (en) 2011-12-05 2016-01-19 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including balancing power among multi-frequency domains of a processor based on efficiency rating scheme
US8972763B2 (en) 2011-12-05 2015-03-03 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including determining an optimal power state of the apparatus based on residency time of non-core domains in a power saving state
US9052901B2 (en) 2011-12-14 2015-06-09 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including configurable maximum processor current
US9098261B2 (en) 2011-12-15 2015-08-04 Intel Corporation User level control of power management policies
US9372524B2 (en) 2011-12-15 2016-06-21 Intel Corporation Dynamically modifying a power/performance tradeoff based on processor utilization
WO2013100940A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Cache memory staged reopen
US9354689B2 (en) 2012-03-13 2016-05-31 Intel Corporation Providing energy efficient turbo operation of a processor
US9323316B2 (en) 2012-03-13 2016-04-26 Intel Corporation Dynamically controlling interconnect frequency in a processor
WO2013137860A1 (en) 2012-03-13 2013-09-19 Intel Corporation Dynamically computing an electrical design point (edp) for a multicore processor
WO2013147849A1 (en) 2012-03-30 2013-10-03 Intel Corporation Dynamically measuring power consumption in a processor
US10185566B2 (en) 2012-04-27 2019-01-22 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US9063727B2 (en) 2012-08-31 2015-06-23 Intel Corporation Performing cross-domain thermal control in a processor
TWI562162B (en) * 2012-09-14 2016-12-11 Winbond Electronics Corp Memory device and voltage control method thereof
US9342122B2 (en) 2012-09-17 2016-05-17 Intel Corporation Distributing power to heterogeneous compute elements of a processor
US9423858B2 (en) 2012-09-27 2016-08-23 Intel Corporation Sharing power between domains in a processor package using encoded power consumption information from a second domain to calculate an available power budget for a first domain
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
US9575543B2 (en) 2012-11-27 2017-02-21 Intel Corporation Providing an inter-arrival access timer in a processor
US9183144B2 (en) 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
US9292468B2 (en) 2012-12-17 2016-03-22 Intel Corporation Performing frequency coordination in a multiprocessor system based on response timing optimization
US9405351B2 (en) 2012-12-17 2016-08-02 Intel Corporation Performing frequency coordination in a multiprocessor system
US9075556B2 (en) 2012-12-21 2015-07-07 Intel Corporation Controlling configurable peak performance limits of a processor
US9235252B2 (en) 2012-12-21 2016-01-12 Intel Corporation Dynamic balancing of power across a plurality of processor domains according to power policy control bias
US9164565B2 (en) 2012-12-28 2015-10-20 Intel Corporation Apparatus and method to manage energy usage of a processor
US9081577B2 (en) 2012-12-28 2015-07-14 Intel Corporation Independent control of processor core retention states
US9335803B2 (en) 2013-02-15 2016-05-10 Intel Corporation Calculating a dynamically changeable maximum operating voltage value for a processor based on a different polynomial equation using a set of coefficient values and a number of current active cores
US9367114B2 (en) 2013-03-11 2016-06-14 Intel Corporation Controlling operating voltage of a processor
US9395784B2 (en) 2013-04-25 2016-07-19 Intel Corporation Independently controlling frequency of plurality of power domains in a processor system
US9377841B2 (en) 2013-05-08 2016-06-28 Intel Corporation Adaptively limiting a maximum operating frequency in a multicore processor
US9823719B2 (en) 2013-05-31 2017-11-21 Intel Corporation Controlling power delivery to a processor via a bypass
US9348401B2 (en) 2013-06-25 2016-05-24 Intel Corporation Mapping a performance request to an operating frequency in a processor
US9471088B2 (en) 2013-06-25 2016-10-18 Intel Corporation Restricting clock signal delivery in a processor
US9348407B2 (en) 2013-06-27 2016-05-24 Intel Corporation Method and apparatus for atomic frequency and voltage changes
US9377836B2 (en) 2013-07-26 2016-06-28 Intel Corporation Restricting clock signal delivery based on activity in a processor
US9495001B2 (en) 2013-08-21 2016-11-15 Intel Corporation Forcing core low power states in a processor
US10386900B2 (en) 2013-09-24 2019-08-20 Intel Corporation Thread aware power management
US9594560B2 (en) 2013-09-27 2017-03-14 Intel Corporation Estimating scalability value for a specific domain of a multicore processor based on active state residency of the domain, stall duration of the domain, memory bandwidth of the domain, and a plurality of coefficients based on a workload to execute on the domain
US9405345B2 (en) 2013-09-27 2016-08-02 Intel Corporation Constraining processor operation based on power envelope information
US9494998B2 (en) 2013-12-17 2016-11-15 Intel Corporation Rescheduling workloads to enforce and maintain a duty cycle
US9459689B2 (en) 2013-12-23 2016-10-04 Intel Corporation Dyanamically adapting a voltage of a clock generation circuit
US9323525B2 (en) 2014-02-26 2016-04-26 Intel Corporation Monitoring vector lane duty cycle for dynamic optimization
US9665153B2 (en) 2014-03-21 2017-05-30 Intel Corporation Selecting a low power state based on cache flush latency determination
US10108454B2 (en) 2014-03-21 2018-10-23 Intel Corporation Managing dynamic capacitance using code scheduling
US9760158B2 (en) 2014-06-06 2017-09-12 Intel Corporation Forcing a processor into a low power state
US10417149B2 (en) 2014-06-06 2019-09-17 Intel Corporation Self-aligning a processor duty cycle with interrupts
US9513689B2 (en) 2014-06-30 2016-12-06 Intel Corporation Controlling processor performance scaling based on context
US9606602B2 (en) 2014-06-30 2017-03-28 Intel Corporation Method and apparatus to prevent voltage droop in a computer
US9575537B2 (en) 2014-07-25 2017-02-21 Intel Corporation Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states
US9760136B2 (en) 2014-08-15 2017-09-12 Intel Corporation Controlling temperature of a system memory
US9671853B2 (en) 2014-09-12 2017-06-06 Intel Corporation Processor operating by selecting smaller of requested frequency and an energy performance gain (EPG) frequency
US10339023B2 (en) 2014-09-25 2019-07-02 Intel Corporation Cache-aware adaptive thread scheduling and migration
US9977477B2 (en) 2014-09-26 2018-05-22 Intel Corporation Adapting operating parameters of an input/output (IO) interface circuit of a processor
US9684360B2 (en) 2014-10-30 2017-06-20 Intel Corporation Dynamically controlling power management of an on-die memory of a processor
US9703358B2 (en) 2014-11-24 2017-07-11 Intel Corporation Controlling turbo mode frequency operation in a processor
US9710043B2 (en) 2014-11-26 2017-07-18 Intel Corporation Controlling a guaranteed frequency of a processor
US10048744B2 (en) 2014-11-26 2018-08-14 Intel Corporation Apparatus and method for thermal management in a multi-chip package
US20160147280A1 (en) 2014-11-26 2016-05-26 Tessil Thomas Controlling average power limits of a processor
US10877530B2 (en) 2014-12-23 2020-12-29 Intel Corporation Apparatus and method to provide a thermal parameter report for a multi-chip package
US20160224098A1 (en) 2015-01-30 2016-08-04 Alexander Gendler Communicating via a mailbox interface of a processor
US9639134B2 (en) 2015-02-05 2017-05-02 Intel Corporation Method and apparatus to provide telemetry data to a power controller of a processor
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US9910481B2 (en) 2015-02-13 2018-03-06 Intel Corporation Performing power management in a multicore processor
US9874922B2 (en) 2015-02-17 2018-01-23 Intel Corporation Performing dynamic power control of platform devices
US9842082B2 (en) 2015-02-27 2017-12-12 Intel Corporation Dynamically updating logical identifiers of cores of a processor
US9710054B2 (en) 2015-02-28 2017-07-18 Intel Corporation Programmable power management agent
US9760160B2 (en) 2015-05-27 2017-09-12 Intel Corporation Controlling performance states of processing engines of a processor
US9710041B2 (en) 2015-07-29 2017-07-18 Intel Corporation Masking a power state of a core of a processor
US10001822B2 (en) 2015-09-22 2018-06-19 Intel Corporation Integrating a power arbiter in a processor
US9983644B2 (en) 2015-11-10 2018-05-29 Intel Corporation Dynamically updating at least one power management operational parameter pertaining to a turbo mode of a processor for increased performance
US9910470B2 (en) 2015-12-16 2018-03-06 Intel Corporation Controlling telemetry data communication in a processor
US10146286B2 (en) 2016-01-14 2018-12-04 Intel Corporation Dynamically updating a power management policy of a processor
US10289188B2 (en) 2016-06-21 2019-05-14 Intel Corporation Processor having concurrent core and fabric exit from a low power state
US10324519B2 (en) 2016-06-23 2019-06-18 Intel Corporation Controlling forced idle state operation in a processor
US10281975B2 (en) 2016-06-23 2019-05-07 Intel Corporation Processor having accelerated user responsiveness in constrained environment
US10379596B2 (en) 2016-08-03 2019-08-13 Intel Corporation Providing an interface for demotion control information in a processor
US10234920B2 (en) 2016-08-31 2019-03-19 Intel Corporation Controlling current consumption of a processor based at least in part on platform capacitance
US10423206B2 (en) 2016-08-31 2019-09-24 Intel Corporation Processor to pre-empt voltage ramps for exit latency reductions
US10379904B2 (en) 2016-08-31 2019-08-13 Intel Corporation Controlling a performance state of a processor using a combination of package and thread hint information
US10168758B2 (en) 2016-09-29 2019-01-01 Intel Corporation Techniques to enable communication between a processor and voltage regulator
US10429919B2 (en) 2017-06-28 2019-10-01 Intel Corporation System, apparatus and method for loose lock-step redundancy power management
US11593544B2 (en) 2017-08-23 2023-02-28 Intel Corporation System, apparatus and method for adaptive operating voltage in a field programmable gate array (FPGA)
US10620266B2 (en) 2017-11-29 2020-04-14 Intel Corporation System, apparatus and method for in-field self testing in a diagnostic sleep state
US10620682B2 (en) 2017-12-21 2020-04-14 Intel Corporation System, apparatus and method for processor-external override of hardware performance state control of a processor
US10620969B2 (en) 2018-03-27 2020-04-14 Intel Corporation System, apparatus and method for providing hardware feedback information in a processor
US10739844B2 (en) 2018-05-02 2020-08-11 Intel Corporation System, apparatus and method for optimized throttling of a processor
US10955899B2 (en) 2018-06-20 2021-03-23 Intel Corporation System, apparatus and method for responsive autonomous hardware performance state control of a processor
US10976801B2 (en) 2018-09-20 2021-04-13 Intel Corporation System, apparatus and method for power budget distribution for a plurality of virtual machines to execute on a processor
US10860083B2 (en) 2018-09-26 2020-12-08 Intel Corporation System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail
CN109491594B (zh) * 2018-09-28 2021-12-03 北京寄云鼎城科技有限公司 矩阵求逆过程中优化数据存储空间的方法和装置
US11656676B2 (en) 2018-12-12 2023-05-23 Intel Corporation System, apparatus and method for dynamic thermal distribution of a system on chip
US11256657B2 (en) 2019-03-26 2022-02-22 Intel Corporation System, apparatus and method for adaptive interconnect routing
US11442529B2 (en) 2019-05-15 2022-09-13 Intel Corporation System, apparatus and method for dynamically controlling current consumption of processing circuits of a processor
US11698812B2 (en) 2019-08-29 2023-07-11 Intel Corporation System, apparatus and method for providing hardware state feedback to an operating system in a heterogeneous processor
US11366506B2 (en) 2019-11-22 2022-06-21 Intel Corporation System, apparatus and method for globally aware reactive local power control in a processor
US11132201B2 (en) 2019-12-23 2021-09-28 Intel Corporation System, apparatus and method for dynamic pipeline stage control of data path dominant circuitry of an integrated circuit
US11921564B2 (en) 2022-02-28 2024-03-05 Intel Corporation Saving and restoring configuration and status information with reduced latency

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918061A (en) * 1993-12-29 1999-06-29 Intel Corporation Enhanced power managing unit (PMU) in a multiprocessor chip
US5632038A (en) * 1994-02-22 1997-05-20 Dell Usa, L.P. Secondary cache system for portable computer
JP3701409B2 (ja) * 1996-10-04 2005-09-28 株式会社ルネサステクノロジ メモリシステム
US5870616A (en) * 1996-10-04 1999-02-09 International Business Machines Corporation System and method for reducing power consumption in an electronic circuit
US6205521B1 (en) * 1997-11-03 2001-03-20 Compaq Computer Corporation Inclusion map for accelerated cache flush
US6550020B1 (en) * 2000-01-10 2003-04-15 International Business Machines Corporation Method and system for dynamically configuring a central processing unit with multiple processing cores
US6438658B1 (en) * 2000-06-30 2002-08-20 Intel Corporation Fast invalidation scheme for caches
US6845432B2 (en) * 2000-12-28 2005-01-18 Intel Corporation Low power cache architecture
JP2002236616A (ja) * 2001-02-13 2002-08-23 Fujitsu Ltd キャッシュメモリシステム
US6792551B2 (en) * 2001-11-26 2004-09-14 Intel Corporation Method and apparatus for enabling a self suspend mode for a processor
JP2003223360A (ja) * 2002-01-29 2003-08-08 Hitachi Ltd キャッシュメモリシステムおよびマイクロプロセッサ
US7043649B2 (en) * 2002-11-20 2006-05-09 Portalplayer, Inc. System clock power management for chips with multiple processing modules
US7546418B2 (en) * 2003-08-20 2009-06-09 Dell Products L.P. System and method for managing power consumption and data integrity in a computer system
US7117290B2 (en) * 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
US7127560B2 (en) * 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
EP1684180A4 (en) * 2003-11-12 2008-10-29 Matsushita Electric Ind Co Ltd CACHE MEMORY AND CONTROL PROCEDURE THEREFOR
JP3834323B2 (ja) * 2004-04-30 2006-10-18 日本電気株式会社 キャッシュメモリおよびキャッシュ制御方法
US7966511B2 (en) * 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US7356647B1 (en) * 2005-08-23 2008-04-08 Unisys Corporation Cache with integrated capability to write out entire cache

Also Published As

Publication number Publication date
WO2007078724A2 (en) 2007-07-12
TW200809493A (en) 2008-02-16
TWI336437B (en) 2011-01-21
DE112006002835B4 (de) 2013-02-28
JP2009514114A (ja) 2009-04-02
DE112006002835T5 (de) 2008-11-13
KR20080080586A (ko) 2008-09-04
CN101356508A (zh) 2009-01-28
WO2007078724A3 (en) 2007-11-01
CN101356508B (zh) 2015-08-05
US20070156992A1 (en) 2007-07-05

Similar Documents

Publication Publication Date Title
JP5060487B2 (ja) ダイナミックメモリサイジングのレイテンシを最適化する方法、システムおよびプログラム
US9841807B2 (en) Method and apparatus for a zero voltage processor sleep state
US8516285B2 (en) Method, apparatus and system to dynamically choose an optimum power state
US20070043965A1 (en) Dynamic memory sizing for power reduction
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: 20110426

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20110725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111121

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120604

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120625

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: 20120717

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: 20120803

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees