JP2015536494A - プロセッサのアーキテクチャ状態をキャッシュ階層に保存する方法および装置 - Google Patents

プロセッサのアーキテクチャ状態をキャッシュ階層に保存する方法および装置 Download PDF

Info

Publication number
JP2015536494A
JP2015536494A JP2015537784A JP2015537784A JP2015536494A JP 2015536494 A JP2015536494 A JP 2015536494A JP 2015537784 A JP2015537784 A JP 2015537784A JP 2015537784 A JP2015537784 A JP 2015537784A JP 2015536494 A JP2015536494 A JP 2015536494A
Authority
JP
Japan
Prior art keywords
cache
level
processing unit
processor
hierarchy
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
JP2015537784A
Other languages
English (en)
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2015536494A publication Critical patent/JP2015536494A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

プロセッサ(105)は、第1の処理ユニット(110,115)と、第1の処理ユニットに関連する第1レベルのキャッシュ(220)であって、第1の処理ユニットの正常動作中に使用されたデータを第1の処理ユニットによる使用のために格納するように動作可能な第1レベルのキャッシュと、を備える。第1の処理ユニットは、パワーダウン信号の受信に応じて、第1の処理ユニットについての第1のアーキテクチャ状態データ(240,250,260)を第1レベルのキャッシュ内に格納するように動作可能である。キャッシュレベル(220,230)の階層を有するプロセッサ(105)への電力を制御する方法は、パワーダウン信号の受信に応じて、プロセッサの第1の処理ユニット(110,115)についての第1のアーキテクチャ状態データ(240,250,260)を、キャッシュ階層の第1レベル(220)に格納するステップと、キャッシュ階層の第1レベルと第1の処理ユニットとをパワーダウンする前に、第1のアーキテクチャ状態データを含む第1レベルの内容を、キャッシュ階層の第1の下位レベル(230)にフラッシュするステップと、を含む。【選択図】図8

Description

開示された発明は、概して、複数の電力状態を有する電子装置に関し、より具体的には、プロセッサのアーキテクチャ状態をキャッシュ階層に保存する方法および装置に関する。
これまでのシリコン処理技術の増進と、トランジスタの寸法の低減とによって、静止電力(リーク)は、例えばプロセッサ(CPU)などの集積回路装置の電力量において、より重要な影響度を有する。電力消費を減少させるために、1つ以上の電力減少状態に移行するいくつかの装置が設けられている。電力減少状態では、低減したクロック周波数および/または作動電圧が装置に採用され得る。
システム電力を節約するために、CPUコアは、使用中でない場合にパワーオフ可能に構成されている。システムがCPUコアを後に使う必要がある場合には、CPUコアをパワーアップし、当該CPUコア上で再度実行を開始する。CPUコアがパワーオフしている場合には、CPUコアのアーキテクチャ状態が失われる。しかし、CPUコアが再度パワーアップされる場合には、ソフトウェアの実行を続けるために、アーキテクチャ状態の復旧を必要とする。CPUコアを元の状態に復旧するために冗長なブートコードが実行されるのを避けるため、CPUコアは、パワーオフ前にアーキテクチャ状態を保存し、その後のパワーアップ時に当該状態を再度復旧するのが一般的である。CPUコアは、CPUコアのパワーダウンの間、アーキテクチャ状態を、電力を保持する箇所に格納する。
このアーキテクチャ状態の保存および復旧のプロセスは、システムにとってはタイムクリティカルである。パワーダウン状態に移行する前に浪費される全ての時間は、コアがパワーダウン可能だった時間である。従って、アーキテクチャ状態が長くなるほど、浪費電力を節約する。また、パワーアップのアーキテクチャ状態の復旧中の全ての浪費時間は、CPUコアが新たなプロセスに応答可能な待ち時間に加えられることにより、システムを低速にする。また、低電力状態の間にアーキテクチャ状態が保存されるメモリ箇所は、安全でなければならない。CPUコアが低電力状態である場合に、ハードウェアまたはソフトウェアエンティティがこのアーキテクチャ状態を故意に破壊可能であれば、CPUコアは、破壊された状態を復旧するであろうし、セキュリティリスクにさらされ得る。
従来のCPUコアは、低電力状態を容易にするため、アーキテクチャ状態を種々の箇所に保存する。例えば、CPUは、アーキテクチャ状態を、専用のSRAMアレイまたはシステムメモリ(例えばDRAM)に保存し得る。専用のSRAMは、高速の保存および復旧時間と、向上したセキュリティとを可能にするが、専用のハードウェアが必要になるので、コストの上昇をもたらす。システムメモリの節約するために既存のインフラストラクチャが使用されるが、保存および復旧時間が長くなり、セキュリティが低くなる。
本文書のこのセクションは、以下に記載および/または請求する開示された発明の種々の態様に関連しうる技術の種々の態様を紹介することを意図する。このセクションでは、開示された発明の種々の態様の理解をより容易にする背景情報を提供する。本文書のこのセクションの記載は、このような観点で読まれるべきであり、先行技術であることの了解と読まれるべきではない。開示された発明は、上述した1つ以上の問題を解消し、または、当該問題の影響を低減させることに関する。
開示された発明のいくつかの態様の基本的な理解をもたらすために、開示された発明の実施形態のいくつかの態様のみの簡略化した概要を、以下に示す。この概要は、開示された発明を網羅する概要ではない。開示された発明の主たる、もしくは重要な構成要素を特定すること、または、開示された発明の範囲を明らかにすることを意図していない。唯一の目的は、いくつかの概念を、後述する、より詳細な記載への前置きとして、簡略化した形態で示すことである。
いくつかの実施形態は、第1の処理ユニットと、第1の処理ユニットに関連する第1レベルのキャッシュであって、第1の処理ユニットの正常動作中に使用されたデータを第1の処理ユニットによる使用のために格納するように動作可能な第1レベルのキャッシュと、を備えるプロセッサを含む。第1の処理ユニットは、パワーダウン信号の受信に応じて、第1の処理ユニットに関する第1のアーキテクチャ状態データを、第1レベルのキャッシュ内に格納するように動作可能である。
いくつかの実施形態は、キャッシュレベルの階層を有するプロセッサの電力を制御する方法を含む。方法は、パワーダウン信号の受信に応じて、プロセッサの第1の処理ユニットに関する第1のアーキテクチャ状態データを、キャッシュ階層の第1レベルに格納するステップと、キャッシュ階層の第1レベルと第1の処理ユニットとをパワーダウンする前に、第1のアーキテクチャ状態データを含む第1レベルの内容を、キャッシュ階層の第1の下位レベルにフラッシュするステップを含む。
開示された発明を、添付の図面を参照して後述する。図面において同様の符号は同様の構成要素を示す。
いくつかの実施形態による、アーキテクチャのプロセッサ状態をキャッシュ階層内に格納するように動作可能なコンピュータシステムの簡略化したブロック図である。 いくつかの実施形態による、図1のシステムにより実行されるキャッシュ階層の簡略化した図である。 いくつかの実施形態による、図1のシステムで使用され得る命令キャッシュおよびデータキャッシュを含むレベル1キャッシュの簡略化した図である。 いくつかの実施形態による、パワーダウンイベント間にプロセッサのアーキテクチャ状態を格納するキャッシュ階層の使用を示す図である。 いくつかの実施形態による、パワーダウンイベント間にプロセッサのアーキテクチャ状態を格納するキャッシュ階層の使用を示す図である。 いくつかの実施形態による、パワーダウンイベント間にプロセッサのアーキテクチャ状態を格納するキャッシュ階層の使用を示す図である。 いくつかの実施形態による、パワーダウンイベント間にプロセッサのアーキテクチャ状態を格納するキャッシュ階層の使用を示す図である。 いくつかの実施形態による、パワーダウンイベント間にプロセッサのアーキテクチャ状態を格納するキャッシュ階層の使用を示す図である。 いくつかの実施形態による、図1〜図3の集積回路装置を製造するためにプログラムされ得るコンピューティング装置の簡略化した図である。
開示された発明は種々の修正および代替的な形態を受け入れることができるが、当該発明の特定の実施形態を例として図面に示し、本明細書で詳細に記載する。しかし、本明細書における特定の実施形態の記載は、開示された発明を、開示された特定の形態に限定することを意図しておらず、その一方で、添付の請求項により定義された開示された発明の趣旨および範囲内に含まれる全ての変更、均等物および代替に及ぶことを意図していることを理解すべきである。
開示された発明の1つ以上の特定の実施形態を以下に記載する。開示された発明は、本明細書に含まれる実施形態および例示に限定されず、後述の請求の範囲に含まれる実施形態の一部と、異なる実施形態の構成要素の組み合わせとを含む、これらの実施形態の変更された形態を含むことが特に意図される。例えばエンジニアリングまたは設計プロジェクトなどのかかる実装の開発において、開発者が特定の目標を達成するためには、システム関連およびビジネス関連の制約を準拠するなどの多数の実装特有の判断をしなければならず、1つの実装から他の実装への間で判断が変わり得ることを理解すべきである。また、かかる開発の努力は複雑で時間がかかるかもしれないが、この開示の利点を有する当業者にとっては、設計、製作および製造がルーチン作業であることを理解すべきである。「重要」または「本質的」であると明確に示される場合を除き、本願において開示された発明に対して重要または本質的なものがないと考えられる。
添付の図面を参照して、開示された発明を記載する。種々の構造、システムおよび装置は、説明の目的のためだけに、開示された発明は、当業者に周知の詳細部分により不明瞭にならないように、図面に概略的に示されている。それでも、添付の図面は、開示された発明の例を記載し説明するために、含まれている。本明細書で使用される用語は、関連分野の熟練者の用語の理解と一致した意味を有している理解および解釈すべきである。特別の定義、すなわち当業者に理解されるような通常および慣例の意味と異なる定義をしていない用語は、本明細書の用語の一貫した使用によって暗示されることが意図される。用語が特別な意味を有すると意図される範囲、すなわち当業者が理解する以外の意味については、かかる特別な定義を、その用語について直接明白に特別の定義を提供する定義方法で、本明細書にて明示的に記載する。
ここで図を参照すると、いくつかの図を通して同一の符号が同一の構成要素に対応しているが、特に図1を参照すると、開示された発明は、加速処理ユニット(APU)105を含むコンピュータシステム100の環境で記載されている。APU105は、1つ以上の中央処理装置(CPU)コア110と、これらに関連するキャッシュ112(例えば、L1、L2または他のレベルのキャッシュメモリ)と、グラフィック処理ユニット(GPU)115と、GPU115に関連するキャッシュ117(例えば、L1、L2、L3または他のレベルのキャッシュメモリ)と、キャッシュコントローラ119と、電源管理コントローラ120と、ノースブリッジ(NB)コントローラ125と、を有している。また、システム100は、サウスブリッジ(SB)130と、システムメモリ135(例えばDRAM)と、を有している。NBコントローラ125は、サウスブリッジ130およびシステムメモリ135へのインタフェースを提供する。コア110および/または1つ以上のキャッシュメモリ112の特定の例示的な態様の範囲については本明細書に記載せず、かかる例示的な態様は、当業者が理解するであろうように、本発明の実施形態の趣旨および範囲を限定することなく、種々の実施形態に含まれるかもしれないし、含まれないかもしれない。
いくつかの実施形態では、コンピュータシステム100は、1つ以上の周辺装置140、入力装置145、出力装置150、および/または、ディスプレイユニット155とインタフェースしてもよい。1つ以上の通信トポロジ(有線、無線、広帯域など)を用いてネットワーク接続を容易にするように、例えばネットワークインタフェース回路(NIC)などの通信インタフェース160を、サウスブリッジ130に接続してもよい。種々の実施形態では、サウスブリッジ130に接続された構成要素は、本発明の実施形態の範囲に影響することなく、コンピュータシステム100の内部または外部にあってもよく、例えばサウスブリッジ130とのインタフェースで示されているような有線、または無線で接続されてもよい。入力装置145は、キーボード、マウス、トラックボール、スタイラス、マウスパッド、マウスボタン、ジョイスティック、スキャナなどの何れかであってよい。出力装置150は、モニタ、プリンタ、プロッタ、複写機または他の出力装置の何れかであってよい。周辺装置140は、対応する物理的デジタル媒体に読み出しおよび/または書き込み可能なCD/DVDドライブ、汎用シリアルバス(“USB”)装置、ジップドライブ、外部のフロッピー(登録商標)ドライブ、外部のハードドライブ、電話機、および/または、ブロードバンドモデム、ルータ、ゲートウェイ、アクセスポイントなどのコンピュータに接続可能なあらゆる他の装置であってもよい。コンピュータシステム100の特定の例示的な態様の範囲については本明細書に記載しておらず、かかる例示的な態様は、当業者が理解し得るように、本願の実施形態の趣旨および範囲を限定することなく、種々の実施形態に含まれるかもしれないし、含まれないかもしれない。システム100の動作は、通常、システム100の種々の構成要素とインタフェースするソフトウェアを含むオペレーティングシステム165により制御される。種々の実施形態では、コンピュータシステム100は、パーソナルコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、モバイル装置、電話機、パーソナルデータアシスタント(“PDA”)、サーバ、メインフレーム、作業端末、音楽プレーヤ、スマートテレビなどであってもよい。
電源管理コントローラ120は、コンピュータシステム100のサポートにおいて1つ以上の機能を実行するように構成された回路またはロジックであってもよい。図1に示されるように、電源管理コントローラ120は、NBコントローラ125内で実行され、NBコントローラ125の全体の機能のうち1つの機能として、電源管理制御を実行するように構成された回路(またはサブ回路)を有してもよい。いくつかの実施形態では、サウスブリッジ130は、電力をシステム100の種々の部分に提供する複数の電圧レール132を制御する。個々の電圧レール132は、いくつかの構成要素がスリープ状態におかれ、一方で他の構成要素を電源が入った状態におくことを可能にする。
いくつかの実施形態では、NBコントローラ125により表される回路は、分散回路として実行され、分散回路のそれぞれの部分は、システム100の1つ以上の構成要素(例えばプロセッサコア110など)内に構成されるが、個々の電圧レール132上で作動する。すなわち、分散回路の区域と機能的に異なるコア110の区域とは異なる電源が用いられる。それによって、残りのプロセッサコア110またはシステム100の他の構成要素が電力減少状態にある場合でも、個々の電圧レール132は、分散回路のそれぞれの部分がその機能を実行するのを可能にし得る。この電力の独立が、図1に示されたNBコントローラ125により実行される機能のうち少なくともいくつかまたは全てを実行する分散回路、分散されたコントローラ、または、分散された制御回路を特徴とする実施形態を可能にする。いくつかの実施形態では、電源管理コントローラ120は、コンピュータシステム100内の種々の処理ユニット110,115の電力状態を制御する。
異なるソフトウェアプログラムの命令は、通常、比較的大きいが低速の不揮発性記憶装置ユニット(例えば、内部または外部のディスクドライブユニット)上に格納される。ユーザが実行のためにプログラムのうち1つのプログラムを選択する場合、選択されたプログラムの命令はシステムメモリ135内にコピーされ、プロセッサ105は、選択されたプログラムの命令をシステムメモリ135から取り出す。また、データのいくつかの部分も、1つ以上のコア110のキャッシュメモリ112内にロードされる。
キャッシュ112,117は、正常動作中、比較的頻繁に使用されると予測される命令および/またはデータのコピーを格納する、(システムメモリ135と比較して)より小さいがより速いメモリである。コア110および/またはGPU115は、キャッシュメモリ構成要素の階層を採用してもよい。
正常動作中、処理ユニット110,115により使用されると予測される命令またはデータは、キャッシュコントローラ119によって、比較的大きく低速のシステムメモリ135からキャッシュ112,117へ移される。処理ユニット110,115がシステムメモリ135内の箇所を読み出しまたは書き込みする必要がある場合には、キャッシュコントローラ119は、先ず、所望のメモリ箇所がキャッシュ112,117に含まれているかどうかチェックする。この箇所がキャッシュ112,117に含まれている(すなわち、キャッシュがヒットした)場合には、処理ユニット110,115は、キャッシュ112,117内のコピーに対する読み出しまたは書き込み動作を実行可能である。この箇所がキャッシュ112,117に含まれていない(すなわち、キャッシュミス)場合には、処理ユニット110,115は、システムメモリ135内に格納された情報にアクセスする必要があり、一部のケースでは、情報を、システムメモリ135キャッシュコントローラ119からコピーして、キャッシュ112,117に追加してもよい。キャッシュ112,117の適切な構成および動作では、メモリアクセスの待ち時間を、システムメモリ135の待ち時間を下回って、キャッシュメモリ112,117の値に近い値まで減少させることが可能である。
図2に移ると、プロセッサ105により採用されるキャッシュ階層を示すブロック図が示されている。図示された実施形態では、プロセッサ105は、キャッシュを、L1キャッシュ、L2キャッシュおよびL3キャッシュとして知られる3つのレベルに分割する階層キャッシュを採用している。コア110は、CPUクラスタ200内にグループ化されている。各コア110は、自身のL1キャッシュ210を有しており、各クラスタ200は、関連するL2キャッシュ220を有しており、クラスタ200は、L3キャッシュ230を共有している。システムメモリ135は、L3キャッシュ230の下流に位置する。キャッシュ階層では、通常、速度がレベルとともに減少するが、サイズは増加する。例えば、L1キャッシュ210は、通常、L2キャッシュ220より小さくおよび速く、L2キャッシュ220は、L3キャッシュ230より小さくおよび速い。キャッシュ階層内の最大のレベルはシステムメモリ135であって、システムメモリ135は、キャッシュメモリ210,220,230よりも低速である。特定のコア110は、先ず、L1キャッシュにおいて、必要とされるメモリ箇所を探すことを試み、キャッシュの上位レベルにメモリ箇所を見出すことができない場合には、引き続いてL2キャッシュ、L3キャッシュおよび最後にシステムメモリ135を検索するように進む。キャッシュコントローラ119は、全てのキャッシュ階層レベルを管理する集中型ユニットであってもよいし、分散型ユニットであってもよい。例えば、各キャッシュ210,220,230は、自身のキャッシュコントローラ119を有してもよく、または、いくつかのレベルで共用のキャッシュコントローラ119を共有してもよい。
いくつかの実施形態では、L1キャッシュを、図3に示されるように、命令をL1−I300に格納し、データをL1−D310に格納するように、個々のL1キャッシュに分割することが可能である。L1−Iキャッシュ300を、データよりも命令に対して頻繁にアクセスする必要があるエンティティの近辺に配置することができ、その一方で、L1−Dキャッシュ310を、命令よりもデータに対して頻繁にアクセスする必要があるエンティティの近辺に配置することができる。L2キャッシュ220は、通常、L1−IキャッシュおよびL1−Dキャッシュの両方に関連付けられており、L3キャッシュ230およびシステムメモリ135から取得した命令またはデータのコピーを格納可能である。頻繁に使用される命令は、L2キャッシュからL1−Iキャッシュ300内にコピーされ、頻繁に使用されるデータは、L2キャッシュからL1−Dキャッシュ310内にコピーされることが可能である。L2およびL3キャッシュ220,230は、一般的には統合キャッシュと呼ばれる。
いくつかの実施形態では、電源管理コントローラ120は、コア110の電力状態を制御する。特定のコア110がパワーダウン状態(例えばC6状態)におかれた場合に、コア110は、電源管理コントローラ120からのパワーダウン信号に応じて、コア110のアーキテクチャ状態を、コア110のL1キャッシュ220内に保存する。L1キャッシュ220がL1−Iキャッシュ300およびL1−Dキャッシュ310を有する実施形態では、L1−Dキャッシュ310は、通常、アーキテクチャ状態を格納するために使用される。この方法では、システム100は、電力イベントに対しアーキテクチャ状態の保存/復旧を容易にするために、キャッシュ階層を使用する。コア110がパワーダウンされた場合に、キャッシュの内容は、キャッシュコントローラ119によって、キャッシュ階層の次の下位レベルに自動的にフラッシュされる。図示された実施形態では、各コアは、アーキテクチャ状態を格納する指定されたメモリ箇所を有する。特定のコア110が電力復旧命令または信号を受信する場合には、当該コアは、指定されたメモリ箇所に基づきアーキテクチャ状態を取得する。指定されたメモリ箇所に基づき、キャッシュ階層は、アーキテクチャ状態データを、パワーダウンイベントに応じて当該データがフラッシュされた最下位レベルで探す。L1キャッシュ210のフラッシュ前に電源管理コントローラ120によりパワーダウンイベントがキャンセルされた場合には、アーキテクチャ状態がそこから取得されてもよい。
図4に示されるように、電源管理コントローラ120は、低電力状態に移行するようにCPU3に指示する。CPU3は、アーキテクチャ状態240(AST3)を、CPU3のL1キャッシュ210内に格納する。CPU3がパワーダウンされる場合、図5に示されるように、CPU3のL1キャッシュ210は、キャッシュコントローラ119によって、CPUクラスタ1に関するL2キャッシュ220へフラッシュされる。CPU3のパワーダウン状態は、グレーの陰影で示される。
図6に示されるように、CPU2は、電源管理コントローラ120によってパワーダウンするよう指示され、CPU2のアーキテクチャ状態250(AST2)を、CPU2のL1キャッシュ210内に格納する。CPU2がパワーダウンすると、CPU2の状態250が、キャッシュコントローラ119によってL2キャッシュ220へフラッシュされる。CPUクラスタ1内の両方のコア110がパワーダウンされるので、クラスタ全体がパワーダウンされてもよく、図7に示されるように、L2キャッシュ220をL3キャッシュ230へフラッシュする。
CPU1が電源管理コントローラ120によりパワーダウンされる場合、図8に示されるように、CPU1はアーキテクチャ状態260(ASTATE1)をL1キャッシュ210に保存し、それからキャッシュコントローラ119は、L2キャッシュ220へフラッシュするであろう。この電流状態では、CPU0のみが実行中であり、1つのCPUのみがプロセスを実行するCPUシステムの一般的な状況である。
CPU1が電力復旧命令または信号を受信した場合には、CPU1は、CPUクラスタ0のL2キャッシュ220からCPU1のアーキテクチャ状態をフェッチすることのみ必要となる。CPU2またはCPU3に電源が入れば、それらのCPUは、L3キャッシュ230からそれぞれの状態をフェッチする必要がある。コア110が、それぞれのアーキテクチャ状態データについて指定されたメモリ箇所を使用するので、復旧したコア110が必要なのは、指定された箇所からのデータを要求することだけである。キャッシュコントローラ119は、データが存在するキャッシュレベルを自動的に探す。例えば、アーキテクチャ状態データがL3キャッシュ230内に格納された場合には、復旧中のコア110は、L1キャッシュ210およびL2キャッシュ220内ではミスし、最終的にL3キャッシュ230内でヒットする。キャッシュ階層ロジックは、アーキテクチャ状態データの位置を識別し、当該位置を復旧中のコア110に転送する。
全てのコア110がパワーダウンした場合、L3キャッシュ230がシステムメモリ135にフラッシュされ、CPUシステム全体がパワーダウン可能になる。キャッシュコントローラ119は、電源復旧中、キャッシュ階層の上位レベルのミスに続き、システムメモリ135内でアーキテクチャ状態データを探す。
複数レベルのキャッシュ階層を有するプロセッサシステムについては、キャッシュ階層を用いてアーキテクチャ状態を保存することは、アーキテクチャ状態データを、電力状態のサポートに必要なのと同じくらいキャッシュ階層内に深くフラッシュするだけであるので、待ち時間が短くなるという利点がある。また、このアプローチでは、データをキャッシュへ保存し、その後に1つのキャッシュから次にフラッシュする既存のキャッシュフラッシュインフラストラクチャを使用するため、設計の複雑性が低い。
図9は、本発明のいくつかの態様で採用され得るようなコンピューティング装置900のハードウェアおよびソフトウェアアーキテクチャの選択された部分の簡略化された図である。コンピューティング装置900は、バスシステム915を介して記憶装置910と通信するプロセッサ905を有する。記憶装置910は、磁気ディスク920または光ディスク925などの、ハードディスクおよび/もしくはランダムアクセスメモリ(RAM)ならびに/または着脱可能な記憶装置を有してもよい。また、記憶装置910は、オペレーティングシステム930、ユーザ・インタフェースソフトウェア935およびアプリケーション940とともに符号化される。ユーザ・インタフェースソフトウェア935は、ディスプレイ945と関連してユーザ・インタフェース950を実行する。ユーザ・インタフェース950は、例えば、キーパッド、キーボード955またはマウス960などの周辺I/O装置を有してもよい。プロセッサ905は、オペレーティングシステム930の制御下で実行し、オペレーティングシステム930は、当業者において周知のあらゆるオペレーティングシステムであってもよい。アプリケーション940は、オペレーティングシステム930の実行に応じたパワーアップ、リセット、ユーザ対話などに際し、オペレーティングシステム930により起動される。アプリケーション940は、起動される場合、本発明の方法を実行する。ユーザは、ユーザ・インタフェース950を介して、従来の方法でアプリケーション940を起動してもよい。スタンドアロンシステムが示されているが、データは、処理するシミュレーションアプリケーション940と同一のコンピューティング装置900上に存在する必要がないことに留意されたい。従って、本発明のいくつかの実施形態を、分散記憶および/または処理機能を有する分散型計算システム上で実行してもよい。
いくつかの実施形態では、例えば半導体製品および装置ならびに/または他のタイプの半導体装置などの超大規模集積回路(VLSI回路)の設計および製造プロセスにおいて、異なる種類のハードウェア記述言語(HDL)が使用されてもよい。HDLのいくつかの例は、VHDLおよびVerilog/Verilog−XLであるが、挙げられていない他のHDLフォーマットを使用してもよい。1つの実施形態では、HDLコード(例えばレジスタ転送レベル(RTL)コード/データ)を使用して、GDSデータ、GDSIIデータなどを生成してもよい。例えば、GDSIIデータは記述ファイルフォーマットであり、3次元モデルの半導体製品または装置を表す異なる実施形態で使用してもよい。そのようなモデルを、半導体製品および/または装置を製作するために、半導体製造設備が使用してもよい。GDSIIデータを、データベースまたは他のプログラム記憶構造として格納してもよい。また、このデータを、コンピュータ可読記憶装置(例えば、記憶装置910、ディスク920,925、固体記憶装置など)上に格納してもよい。1つの実施形態では、GDSIIデータ(または、他の同様のデータ)を、開示された実施形態の種々の態様を実現可能な装置を(例えば、マスクワークの使用を通して)製造する製造設備を構成するように適応してもよい。言い換えれば、種々の実施形態では、このGDSIIデータ(または、他の同様のデータ)をコンピューティング装置900内にプログラムし、アプリケーション965を用いてプロセッサ905により実行されてもよく、それがそれから全体または一部で、半導体製品または装置を製作する半導体製造設備(または工場)の動作を制御してもよい。例えば、1つの実施形態では、図1〜図8で示されたコンピュータシステム100の一部を含むシリコンウエハを、GDSIIデータ(または、他の同様のデータ)を用いて製造してもよい。
上述した特定の実施形態は例示のみであり、開示された発明として、異なるが本明細書の教示の利点を有する当業者に明らかな同様の方法で修正および実施してもよい。さらに、後述の請求項内に記載したもの以外に、本明細書に示された構造または設計の詳細の限定を意図するものではない。従って、上述の特定の実施形態を変更および修正してもよく、全てのそのような変形は、開示された発明の範囲および趣旨内と考えられることは明らかである。従って、本明細書で求める保護は、後述の請求項内に記載するものである。

Claims (17)

  1. 第1の処理ユニット(110)と、
    前記第1の処理ユニットに関連する第1レベルのキャッシュ(220)であって、前記第1の処理ユニットの正常動作中に使用されたデータを、前記第1の処理ユニットによる使用のために格納するように動作可能な第1レベルのキャッシュと、を備え、
    前記第1の処理ユニットは、パワーダウン信号の受信に応じて、前記第1の処理ユニットについての第1のアーキテクチャ状態データ(240)を、前記第1レベルのキャッシュに格納するように動作可能である、プロセッサ。
  2. キャッシュコントローラ(120)と、
    第2レベルのキャッシュ(230)と、をさらに備え、
    前記キャッシュコントローラは、前記プロセッサが前記第1の処理ユニットおよび前記第1レベルのキャッシュをパワーダウンする前に、前記第1レベルのキャッシュの内容を前記第2レベルのキャッシュへフラッシュするように動作可能であり、前記キャッシュの内容は前記第1のアーキテクチャ状態データを含む、請求項1に記載のプロセッサ。
  3. 前記第1の処理ユニットは、電力復旧信号の受信に応じて、前記第2レベルのキャッシュから前記第1のアーキテクチャ状態データを取得するように動作可能である、請求項2に記載のプロセッサ。
  4. 第2の第1レベルのキャッシュ(220)に関連する第2の処理ユニット(115)をさらに備え、
    前記第2の処理ユニットは、前記第2の処理ユニットへのパワーダウン信号の受信に応じて、前記第2の処理ユニットについての第2のアーキテクチャ状態データ(250)を、前記第2の第1レベルのキャッシュに格納するように動作可能である、請求項3に記載のプロセッサ。
  5. 前記キャッシュコントローラは、前記プロセッサが前記第2の処理ユニットおよび前記第2の第1レベルのキャッシュをパワーダウンする前に、前記第2の第1レベルのキャッシュの内容を前記第2レベルのキャッシュへフラッシュするように動作可能であり、前記キャッシュの内容は第2のアーキテクチャ状態データを含む、請求項4に記載のプロセッサ。
  6. 第3レベルのキャッシュ(230)をさらに備え、
    前記キャッシュコントローラは、前記プロセッサが前記第1および第2の処理ユニットと、前記第1および第2の第1レベルのキャッシュと、をパワーダウンする前に、前記第2レベルのキャッシュの内容を、前記第3レベルのキャッシュへフラッシュするように動作可能であり、前記キャッシュの内容は前記第1および第2のアーキテクチャ状態データを含む、請求項5に記載のプロセッサ。
  7. 複数の処理ユニット(110,115)と、
    キャッシュコントローラ(120)と、
    前記複数の処理ユニットに接続された、複数のレベル(220,230)を有するキャッシュ階層と、を備えるプロセッサであって、
    前記複数の処理ユニットの各々は、パワーダウン信号の受信に応じて、アーキテクチャ状態データ(240,250,260)を前記キャッシュ階層の第1レベル(220)に格納するように動作可能であり、
    前記キャッシュコントローラは、前記プロセッサが、前記キャッシュ階層の前記第1レベルと、前記キャッシュ階層の前記第1レベルに関連する処理ユニットとをパワーダウンする前に、前記アーキテクチャ状態データを含む前記第1レベルの内容を、前記キャッシュ階層の第1の下位レベル(230)へフラッシュするように動作可能である、プロセッサ(105)。
  8. 前記キャッシュコントローラは、前記プロセッサが、前記キャッシュ階層の前記第1の下位レベルと、前記キャッシュ階層の前記第1の下位レベルに関連する処理ユニットとをパワーダウンする前に、キャッシュ階層の前記第1の下位レベルの内容を、前記キャッシュ階層の第2の下位レベル(230)へフラッシュするように動作可能である、請求項7に記載のプロセッサ。
  9. 前記プロセッサは、前記複数の処理ユニットのうち少なくとも1つの処理ユニットの電源を復旧するように動作可能であり、前記復旧した処理ユニットは、前記復旧した処理ユニットに関連するアーキテクチャ状態データを前記キャッシュ階層から取得するように動作可能である、請求項7に記載のプロセッサ。
  10. 各処理ユニットは、アーキテクチャ状態データを格納するための、関連する指定されたメモリ箇所を有し、前記復旧した処理ユニットは、前記指定されたメモリ箇所に基づいて、関連するアーキテクチャ状態データを前記キャッシュ階層から取得するように動作可能である、請求項7に記載のプロセッサ。
  11. 複数の処理ユニット(110,115)と、前記複数の処理ユニットに接続された複数のキャッシュメモリ(220,230)とを有するプロセッサ(105)と、
    前記プロセッサに接続されたシステムメモリ(135)であって、メモリ階層が複数のキャッシュレベルを有し、前記キャッシュレベルの下位の少なくとも1つのシステムメモリレベルが、前記複数のキャッシュメモリおよび前記システムメモリによって規定される、システムメモリと、
    前記複数の処理ユニットのうち第1の処理ユニットへパワーダウン信号を送信するように動作可能な電源管理コントローラ(120)であって、前記第1の処理ユニットは、パワーダウン信号の受信に応じて、前記第1の処理ユニットについての第1のアーキテクチャ状態データ(230)を、前記メモリ階層の第1レベル(220)に格納するように動作可能である、電源管理コントローラ(120)と、を備える、
    コンピュータシステム(100)。
  12. 前記プロセッサが、前記第1の処理ユニットおよび前記メモリ階層の前記第1レベルをパワーダウンする前に、前記メモリ階層の前記第1レベルの内容を、前記メモリ階層の第2のレベル(230)へフラッシュするように動作可能なキャッシュコントローラ(120)をさらに備え、
    前記内容は、前記第1のアーキテクチャ状態データを含む、
    請求項11に記載のシステム。
  13. 前記キャッシュコントローラは、前記プロセッサが、前記キャッシュ階層の前記第2のレベルと、前記キャッシュ階層の前記第2のレベルに関連する処理ユニットをパワーダウンする前に、前記メモリ階層の前記第2のレベルの内容を、前記キャッシュ階層の第3の下位レベル(230)へフラッシュするように動作可能である、請求項12に記載のシステム。
  14. パワーダウン信号の受信に応じて、プロセッサの第1の処理ユニット(110)についての第1のアーキテクチャ状態データ(240)を、キャッシュ階層の第1レベル(220)に格納するステップと、
    前記キャッシュ階層の前記第1レベルと前記第1の処理ユニットとをパワーダウンする前に、前記第1のアーキテクチャ状態データを含む前記第1レベルの内容を、前記キャッシュ階層の第1の下位レベル(230)にフラッシュするステップと、
    を含む、キャッシュレベル(220,230)の階層を有するプロセッサ(105)への電力を制御する方法。
  15. 前記キャッシュ階層の前記第1の下位レベルをパワーダウンする前に、前記第1の下位レベルの内容を、前記キャッシュ階層の第2の下位レベル(230)へフラッシュするステップをさらに含む、請求項14に記載の方法。
  16. 前記第1の処理ユニットへの電源を復旧するステップと、
    前記キャッシュ階層から前記第1のアーキテクチャ状態データを取得するステップと、をさらに含む、請求項15に記載の方法。
  17. 前記プロセッサは複数の処理ユニット(110,115)を有し、
    前記キャッシュ階層の特定のレベルと、前記キャッシュ階層の前記特定のレベルに関連する処理ユニットとをパワーダウンする前に、前記キャッシュ階層の前記特定のレベルの内容を、前記特定のレベルよりも下位のレベルへフラッシュするステップをさらに含む、請求項14に記載の方法。
JP2015537784A 2012-10-17 2013-10-16 プロセッサのアーキテクチャ状態をキャッシュ階層に保存する方法および装置 Pending JP2015536494A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/653,744 2012-10-17
US13/653,744 US20140108734A1 (en) 2012-10-17 2012-10-17 Method and apparatus for saving processor architectural state in cache hierarchy
PCT/US2013/065178 WO2014062764A1 (en) 2012-10-17 2013-10-16 Method and apparatus for saving processor architectural state in cache hierarchy

Publications (1)

Publication Number Publication Date
JP2015536494A true JP2015536494A (ja) 2015-12-21

Family

ID=49517688

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015537784A Pending JP2015536494A (ja) 2012-10-17 2013-10-16 プロセッサのアーキテクチャ状態をキャッシュ階層に保存する方法および装置

Country Status (7)

Country Link
US (1) US20140108734A1 (ja)
EP (1) EP2909714A1 (ja)
JP (1) JP2015536494A (ja)
KR (1) KR20150070179A (ja)
CN (1) CN104756071A (ja)
IN (1) IN2015DN03134A (ja)
WO (1) WO2014062764A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019530112A (ja) * 2016-09-06 2019-10-17 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 遅延キャッシュの利用のためのシステム及び方法
JP2020517006A (ja) * 2017-04-04 2020-06-11 ハイロ テクノロジーズ リミテッド 装置間接続を組み込むニューラルネットワークプロセッサ

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
CN104781803B (zh) * 2012-12-26 2018-06-15 英特尔公司 用于架构不同核的线程迁移支持
US9367114B2 (en) 2013-03-11 2016-06-14 Intel Corporation Controlling operating voltage of a processor
US9262322B2 (en) * 2013-09-17 2016-02-16 Advanced Micro Devices, Inc. Method and apparatus for storing a processor architectural state in cache memory
US9891695B2 (en) * 2015-06-26 2018-02-13 Intel Corporation Flushing and restoring core memory content to external memory
US10373285B2 (en) * 2017-04-09 2019-08-06 Intel Corporation Coarse grain coherency
US10325341B2 (en) 2017-04-21 2019-06-18 Intel Corporation Handling pipeline submissions across many compute units
US10970080B2 (en) 2018-02-08 2021-04-06 Marvell Asia Pte, Ltd. Systems and methods for programmable hardware architecture for machine learning
US10929778B1 (en) 2018-05-22 2021-02-23 Marvell Asia Pte, Ltd. Address interleaving for machine learning
US10929760B1 (en) 2018-05-22 2021-02-23 Marvell Asia Pte, Ltd. Architecture for table-based mathematical operations for inference acceleration in machine learning
US10997510B1 (en) 2018-05-22 2021-05-04 Marvell Asia Pte, Ltd. Architecture to support tanh and sigmoid operations for inference acceleration in machine learning
US10891136B1 (en) 2018-05-22 2021-01-12 Marvell Asia Pte, Ltd. Data transmission between memory and on chip memory of inference engine for machine learning via a single data gathering instruction
US11016801B1 (en) 2018-05-22 2021-05-25 Marvell Asia Pte, Ltd. Architecture to support color scheme-based synchronization for machine learning
US10929779B1 (en) * 2018-05-22 2021-02-23 Marvell Asia Pte, Ltd. Architecture to support synchronization between core and inference engine for machine learning

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860106A (en) * 1995-07-13 1999-01-12 Intel Corporation Method and apparatus for dynamically adjusting power/performance characteristics of a memory subsystem
US7412565B2 (en) * 2003-08-18 2008-08-12 Intel Corporation Memory optimization for a computer system having a hibernation mode
US7139909B2 (en) * 2003-10-16 2006-11-21 International Business Machines Corporation Technique for system initial program load or boot-up of electronic devices and systems
US7539819B1 (en) * 2005-10-31 2009-05-26 Sun Microsystems, Inc. Cache operations with hierarchy control
US7958312B2 (en) * 2005-11-15 2011-06-07 Oracle America, Inc. Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state
US7606976B2 (en) * 2006-10-27 2009-10-20 Advanced Micro Devices, Inc. Dynamically scalable cache architecture
US20100274972A1 (en) * 2008-11-24 2010-10-28 Boris Babayan Systems, methods, and apparatuses for parallel computing
US8117498B1 (en) * 2010-07-27 2012-02-14 Advanced Micro Devices, Inc. Mechanism for maintaining cache soft repairs across power state transitions
US8751745B2 (en) * 2010-08-11 2014-06-10 Advanced Micro Devices, Inc. Method for concurrent flush of L1 and L2 caches
US20130262780A1 (en) * 2012-03-30 2013-10-03 Srilatha Manne Apparatus and Method for Fast Cache Shutdown

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019530112A (ja) * 2016-09-06 2019-10-17 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 遅延キャッシュの利用のためのシステム及び方法
JP2020517006A (ja) * 2017-04-04 2020-06-11 ハイロ テクノロジーズ リミテッド 装置間接続を組み込むニューラルネットワークプロセッサ
JP7108268B2 (ja) 2017-04-04 2022-07-28 ハイロ テクノロジーズ リミテッド 装置間接続を組み込むニューラルネットワークプロセッサ

Also Published As

Publication number Publication date
CN104756071A (zh) 2015-07-01
US20140108734A1 (en) 2014-04-17
IN2015DN03134A (ja) 2015-10-02
EP2909714A1 (en) 2015-08-26
WO2014062764A1 (en) 2014-04-24
KR20150070179A (ko) 2015-06-24

Similar Documents

Publication Publication Date Title
JP2015536494A (ja) プロセッサのアーキテクチャ状態をキャッシュ階層に保存する方法および装置
US10095300B2 (en) Independent power control of processing cores
US9383801B2 (en) Methods and apparatus related to processor sleep states
US9262322B2 (en) Method and apparatus for storing a processor architectural state in cache memory
US9442557B2 (en) Using a linear prediction to configure an idle state of an entity in a computing device
US9471130B2 (en) Configuring idle states for entities in a computing device based on predictions of durations of idle periods
CN1442772B (zh) 在执行实时应用的同时实现节电的方法
CN109154907B (zh) 在输入-输出存储器管理单元中使用多个存储器元件来执行虚拟地址到物理地址转译
US20120096295A1 (en) Method and apparatus for dynamic power control of cache memory
CN109716307B (zh) 用于延迟的高速缓存利用的系统和方法
US20130159750A1 (en) Method and apparatus for transitioning a system to an active disconnect state
JP2015515687A (ja) 高速キャッシュシャットダウンのための装置および方法
US20120254526A1 (en) Routing, security and storage of sensitive data in random access memory (ram)
US9043628B2 (en) Power management of multiple compute units sharing a cache
US11989131B2 (en) Storage array invalidation maintenance
US20230334214A1 (en) Design of an integrated circuit using multiple and different process corners
US20160342354A1 (en) Saving the Architectural State of a Computing Device using Sectors
JP5577518B2 (ja) メモリ管理方法、計算機及びメモリ管理プログラム
Zhang et al. Accelerate context switch by racetrack-SRAM hybrid cells