(57)【要約】プロセッサ（１０５）は、第１の処理ユニット（１１０，１１５）と、第１の処理ユニットに関連する第１レベルのキャッシュ（２２０）であって、第１の処理ユニットの正常動作中に使用されたデータを第１の処理ユニットによる使用のために格納するように動作可能な第１レベルのキャッシュと、を備える。第１の処理ユニットは、パワーダウン信号の受信に応じて、第１の処理ユニットについての第１のアーキテクチャ状態データ（２４０，２５０，２６０）を第１レベルのキャッシュ内に格納するように動作可能である。キャッシュレベル（２２０，２３０）の階層を有するプロセッサ（１０５）への電力を制御する方法は、パワーダウン信号の受信に応じて、プロセッサの第１の処理ユニット（１１０，１１５）についての第１のアーキテクチャ状態データ（２４０，２５０，２６０）を、キャッシュ階層の第１レベル（２２０）に格納するステップと、キャッシュ階層の第１レベルと第１の処理ユニットとをパワーダウンする前に、第１のアーキテクチャ状態データを含む第１レベルの内容を、キャッシュ階層の第１の下位レベル（２３０）にフラッシュするステップと、を含む。【選択図】図８
2015536494.tif 000002
【特許請求の範囲】
【請求項１】
第１の処理ユニット（１１０）と、
前記第１の処理ユニットに関連する第１レベルのキャッシュ（２２０）であって、前記第１の処理ユニットの正常動作中に使用されたデータを、前記第１の処理ユニットによる使用のために格納するように動作可能な第１レベルのキャッシュと、を備え、
前記第１の処理ユニットは、パワーダウン信号の受信に応じて、前記第１の処理ユニットについての第１のアーキテクチャ状態データ（２４０）を、前記第１レベルのキャッシュに格納するように動作可能である、プロセッサ。
【請求項２】
キャッシュコントローラ（１２０）と、
第２レベルのキャッシュ（２３０）と、をさらに備え、
前記キャッシュコントローラは、前記プロセッサが前記第１の処理ユニットおよび前記第１レベルのキャッシュをパワーダウンする前に、前記第１レベルのキャッシュの内容を前記第２レベルのキャッシュへフラッシュするように動作可能であり、前記キャッシュの内容は前記第１のアーキテクチャ状態データを含む、請求項１に記載のプロセッサ。
【請求項３】
前記第１の処理ユニットは、電力復旧信号の受信に応じて、前記第２レベルのキャッシュから前記第１のアーキテクチャ状態データを取得するように動作可能である、請求項２に記載のプロセッサ。
【請求項４】
第２の第１レベルのキャッシュ（２２０）に関連する第２の処理ユニット（１１５）をさらに備え、
前記第２の処理ユニットは、前記第２の処理ユニットへのパワーダウン信号の受信に応じて、前記第２の処理ユニットについての第２のアーキテクチャ状態データ（２５０）を、前記第２の第１レベルのキャッシュに格納するように動作可能である、請求項３に記載のプロセッサ。
【請求項５】
前記キャッシュコントローラは、前記プロセッサが前記第２の処理ユニットおよび前記第２の第１レベルのキャッシュをパワーダウンする前に、前記第２の第１レベルのキャッシュの内容を前記第２レベルのキャッシュへフラッシュするように動作可能であり、前記キャッシュの内容は第２のアーキテクチャ状態データを含む、請求項４に記載のプロセッサ。
【請求項６】
第３レベルのキャッシュ（２３０）をさらに備え、
前記キャッシュコントローラは、前記プロセッサが前記第１および第２の処理ユニットと、前記第１および第２の第１レベルのキャッシュと、をパワーダウンする前に、前記第２レベルのキャッシュの内容を、前記第３レベルのキャッシュへフラッシュするように動作可能であり、前記キャッシュの内容は前記第１および第２のアーキテクチャ状態データを含む、請求項５に記載のプロセッサ。
【請求項７】
複数の処理ユニット（１１０，１１５）と、
キャッシュコントローラ（１２０）と、
前記複数の処理ユニットに接続された、複数のレベル（２２０，２３０）を有するキャッシュ階層と、を備えるプロセッサであって、
前記複数の処理ユニットの各々は、パワーダウン信号の受信に応じて、アーキテクチャ状態データ（２４０，２５０，２６０）を前記キャッシュ階層の第１レベル（２２０）に格納するように動作可能であり、
前記キャッシュコントローラは、前記プロセッサが、前記キャッシュ階層の前記第１レベルと、前記キャッシュ階層の前記第１レベルに関連する処理ユニットとをパワーダウンする前に、前記アーキテクチャ状態データを含む前記第１レベルの内容を、前記キャッシュ階層の第１の下位レベル（２３０）へフラッシュするように動作可能である、プロセッサ（１０５）。
【請求項８】
前記キャッシュコントローラは、前記プロセッサが、前記キャッシュ階層の前記第１の下位レベルと、前記キャッシュ階層の前記第１の下位レベルに関連する処理ユニットとをパワーダウンする前に、キャッシュ階層の前記第１の下位レベルの内容を、前記キャッシュ階層の第２の下位レベル（２３０）へフラッシュするように動作可能である、請求項７に記載のプロセッサ。
【請求項９】
前記プロセッサは、前記複数の処理ユニットのうち少なくとも１つの処理ユニットの電源を復旧するように動作可能であり、前記復旧した処理ユニットは、前記復旧した処理ユニットに関連するアーキテクチャ状態データを前記キャッシュ階層から取得するように動作可能である、請求項７に記載のプロセッサ。
【請求項１０】
各処理ユニットは、アーキテクチャ状態データを格納するための、関連する指定されたメモリ箇所を有し、前記復旧した処理ユニットは、前記指定されたメモリ箇所に基づいて、関連するアーキテクチャ状態データを前記キャッシュ階層から取得するように動作可能である、請求項７に記載のプロセッサ。
【請求項１１】
複数の処理ユニット（１１０，１１５）と、前記複数の処理ユニットに接続された複数のキャッシュメモリ（２２０，２３０）とを有するプロセッサ（１０５）と、
前記プロセッサに接続されたシステムメモリ（１３５）であって、メモリ階層が複数のキャッシュレベルを有し、前記キャッシュレベルの下位の少なくとも１つのシステムメモリレベルが、前記複数のキャッシュメモリおよび前記システムメモリによって規定される、システムメモリと、
前記複数の処理ユニットのうち第１の処理ユニットへパワーダウン信号を送信するように動作可能な電源管理コントローラ（１２０）であって、前記第１の処理ユニットは、パワーダウン信号の受信に応じて、前記第１の処理ユニットについての第１のアーキテクチャ状態データ（２３０）を、前記メモリ階層の第１レベル（２２０）に格納するように動作可能である、電源管理コントローラ（１２０）と、を備える、
コンピュータシステム（１００）。
【請求項１２】
前記プロセッサが、前記第１の処理ユニットおよび前記メモリ階層の前記第１レベルをパワーダウンする前に、前記メモリ階層の前記第１レベルの内容を、前記メモリ階層の第２のレベル（２３０）へフラッシュするように動作可能なキャッシュコントローラ（１２０）をさらに備え、
前記内容は、前記第１のアーキテクチャ状態データを含む、
請求項１１に記載のシステム。
【請求項１３】
前記キャッシュコントローラは、前記プロセッサが、前記キャッシュ階層の前記第２のレベルと、前記キャッシュ階層の前記第２のレベルに関連する処理ユニットをパワーダウンする前に、前記メモリ階層の前記第２のレベルの内容を、前記キャッシュ階層の第３の下位レベル（２３０）へフラッシュするように動作可能である、請求項１２に記載のシステム。
【請求項１４】
パワーダウン信号の受信に応じて、プロセッサの第１の処理ユニット（１１０）についての第１のアーキテクチャ状態データ（２４０）を、キャッシュ階層の第１レベル（２２０）に格納するステップと、
前記キャッシュ階層の前記第１レベルと前記第１の処理ユニットとをパワーダウンする前に、前記第１のアーキテクチャ状態データを含む前記第１レベルの内容を、前記キャッシュ階層の第１の下位レベル（２３０）にフラッシュするステップと、
を含む、キャッシュレベル（２２０，２３０）の階層を有するプロセッサ（１０５）への電力を制御する方法。
【請求項１５】
前記キャッシュ階層の前記第１の下位レベルをパワーダウンする前に、前記第１の下位レベルの内容を、前記キャッシュ階層の第２の下位レベル（２３０）へフラッシュするステップをさらに含む、請求項１４に記載の方法。
【請求項１６】
前記第１の処理ユニットへの電源を復旧するステップと、
前記キャッシュ階層から前記第１のアーキテクチャ状態データを取得するステップと、をさらに含む、請求項１５に記載の方法。
【請求項１７】
前記プロセッサは複数の処理ユニット（１１０，１１５）を有し、
前記キャッシュ階層の特定のレベルと、前記キャッシュ階層の前記特定のレベルに関連する処理ユニットとをパワーダウンする前に、前記キャッシュ階層の前記特定のレベルの内容を、前記特定のレベルよりも下位のレベルへフラッシュするステップをさらに含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示された発明は、概して、複数の電力状態を有する電子装置に関し、より具体的には、プロセッサのアーキテクチャ状態をキャッシュ階層に保存する方法および装置に関する。
【背景技術】
【０００２】
これまでのシリコン処理技術の増進と、トランジスタの寸法の低減とによって、静止電力（リーク）は、例えばプロセッサ（ＣＰＵ）などの集積回路装置の電力量において、より重要な影響度を有する。電力消費を減少させるために、１つ以上の電力減少状態に移行するいくつかの装置が設けられている。電力減少状態では、低減したクロック周波数および／または作動電圧が装置に採用され得る。
【０００３】
システム電力を節約するために、ＣＰＵコアは、使用中でない場合にパワーオフ可能に構成されている。システムがＣＰＵコアを後に使う必要がある場合には、ＣＰＵコアをパワーアップし、当該ＣＰＵコア上で再度実行を開始する。ＣＰＵコアがパワーオフしている場合には、ＣＰＵコアのアーキテクチャ状態が失われる。しかし、ＣＰＵコアが再度パワーアップされる場合には、ソフトウェアの実行を続けるために、アーキテクチャ状態の復旧を必要とする。ＣＰＵコアを元の状態に復旧するために冗長なブートコードが実行されるのを避けるため、ＣＰＵコアは、パワーオフ前にアーキテクチャ状態を保存し、その後のパワーアップ時に当該状態を再度復旧するのが一般的である。ＣＰＵコアは、ＣＰＵコアのパワーダウンの間、アーキテクチャ状態を、電力を保持する箇所に格納する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このアーキテクチャ状態の保存および復旧のプロセスは、システムにとってはタイムクリティカルである。パワーダウン状態に移行する前に浪費される全ての時間は、コアがパワーダウン可能だった時間である。従って、アーキテクチャ状態が長くなるほど、浪費電力を節約する。また、パワーアップのアーキテクチャ状態の復旧中の全ての浪費時間は、ＣＰＵコアが新たなプロセスに応答可能な待ち時間に加えられることにより、システムを低速にする。また、低電力状態の間にアーキテクチャ状態が保存されるメモリ箇所は、安全でなければならない。ＣＰＵコアが低電力状態である場合に、ハードウェアまたはソフトウェアエンティティがこのアーキテクチャ状態を故意に破壊可能であれば、ＣＰＵコアは、破壊された状態を復旧するであろうし、セキュリティリスクにさらされ得る。
【０００５】
従来のＣＰＵコアは、低電力状態を容易にするため、アーキテクチャ状態を種々の箇所に保存する。例えば、ＣＰＵは、アーキテクチャ状態を、専用のＳＲＡＭアレイまたはシステムメモリ（例えばＤＲＡＭ）に保存し得る。専用のＳＲＡＭは、高速の保存および復旧時間と、向上したセキュリティとを可能にするが、専用のハードウェアが必要になるので、コストの上昇をもたらす。システムメモリの節約するために既存のインフラストラクチャが使用されるが、保存および復旧時間が長くなり、セキュリティが低くなる。
【０００６】
本文書のこのセクションは、以下に記載および／または請求する開示された発明の種々の態様に関連しうる技術の種々の態様を紹介することを意図する。このセクションでは、開示された発明の種々の態様の理解をより容易にする背景情報を提供する。本文書のこのセクションの記載は、このような観点で読まれるべきであり、先行技術であることの了解と読まれるべきではない。開示された発明は、上述した１つ以上の問題を解消し、または、当該問題の影響を低減させることに関する。
【課題を解決するための手段】
【０００７】
開示された発明のいくつかの態様の基本的な理解をもたらすために、開示された発明の実施形態のいくつかの態様のみの簡略化した概要を、以下に示す。この概要は、開示された発明を網羅する概要ではない。開示された発明の主たる、もしくは重要な構成要素を特定すること、または、開示された発明の範囲を明らかにすることを意図していない。唯一の目的は、いくつかの概念を、後述する、より詳細な記載への前置きとして、簡略化した形態で示すことである。
【０００８】
いくつかの実施形態は、第１の処理ユニットと、第１の処理ユニットに関連する第１レベルのキャッシュであって、第１の処理ユニットの正常動作中に使用されたデータを第１の処理ユニットによる使用のために格納するように動作可能な第１レベルのキャッシュと、を備えるプロセッサを含む。第１の処理ユニットは、パワーダウン信号の受信に応じて、第１の処理ユニットに関する第１のアーキテクチャ状態データを、第１レベルのキャッシュ内に格納するように動作可能である。
【０００９】
いくつかの実施形態は、キャッシュレベルの階層を有するプロセッサの電力を制御する方法を含む。方法は、パワーダウン信号の受信に応じて、プロセッサの第１の処理ユニットに関する第１のアーキテクチャ状態データを、キャッシュ階層の第１レベルに格納するステップと、キャッシュ階層の第１レベルと第１の処理ユニットとをパワーダウンする前に、第１のアーキテクチャ状態データを含む第１レベルの内容を、キャッシュ階層の第１の下位レベルにフラッシュするステップを含む。
【００１０】
開示された発明を、添付の図面を参照して後述する。図面において同様の符号は同様の構成要素を示す。
【図面の簡単な説明】
【００１１】
【図１】いくつかの実施形態による、アーキテクチャのプロセッサ状態をキャッシュ階層内に格納するように動作可能なコンピュータシステムの簡略化したブロック図である。
【図２】いくつかの実施形態による、図１のシステムにより実行されるキャッシュ階層の簡略化した図である。
【図３】いくつかの実施形態による、図１のシステムで使用され得る命令キャッシュおよびデータキャッシュを含むレベル１キャッシュの簡略化した図である。
【図４】いくつかの実施形態による、パワーダウンイベント間にプロセッサのアーキテクチャ状態を格納するキャッシュ階層の使用を示す図である。
【図５】いくつかの実施形態による、パワーダウンイベント間にプロセッサのアーキテクチャ状態を格納するキャッシュ階層の使用を示す図である。
【図６】いくつかの実施形態による、パワーダウンイベント間にプロセッサのアーキテクチャ状態を格納するキャッシュ階層の使用を示す図である。
【図７】いくつかの実施形態による、パワーダウンイベント間にプロセッサのアーキテクチャ状態を格納するキャッシュ階層の使用を示す図である。
【図８】いくつかの実施形態による、パワーダウンイベント間にプロセッサのアーキテクチャ状態を格納するキャッシュ階層の使用を示す図である。
【図９】いくつかの実施形態による、図１〜図３の集積回路装置を製造するためにプログラムされ得るコンピューティング装置の簡略化した図である。
【発明を実施するための形態】
【００１２】
開示された発明は種々の修正および代替的な形態を受け入れることができるが、当該発明の特定の実施形態を例として図面に示し、本明細書で詳細に記載する。しかし、本明細書における特定の実施形態の記載は、開示された発明を、開示された特定の形態に限定することを意図しておらず、その一方で、添付の請求項により定義された開示された発明の趣旨および範囲内に含まれる全ての変更、均等物および代替に及ぶことを意図していることを理解すべきである。
【００１３】
開示された発明の１つ以上の特定の実施形態を以下に記載する。開示された発明は、本明細書に含まれる実施形態および例示に限定されず、後述の請求の範囲に含まれる実施形態の一部と、異なる実施形態の構成要素の組み合わせとを含む、これらの実施形態の変更された形態を含むことが特に意図される。例えばエンジニアリングまたは設計プロジェクトなどのかかる実装の開発において、開発者が特定の目標を達成するためには、システム関連およびビジネス関連の制約を準拠するなどの多数の実装特有の判断をしなければならず、１つの実装から他の実装への間で判断が変わり得ることを理解すべきである。また、かかる開発の努力は複雑で時間がかかるかもしれないが、この開示の利点を有する当業者にとっては、設計、製作および製造がルーチン作業であることを理解すべきである。「重要」または「本質的」であると明確に示される場合を除き、本願において開示された発明に対して重要または本質的なものがないと考えられる。
【００１４】
添付の図面を参照して、開示された発明を記載する。種々の構造、システムおよび装置は、説明の目的のためだけに、開示された発明は、当業者に周知の詳細部分により不明瞭にならないように、図面に概略的に示されている。それでも、添付の図面は、開示された発明の例を記載し説明するために、含まれている。本明細書で使用される用語は、関連分野の熟練者の用語の理解と一致した意味を有している理解および解釈すべきである。特別の定義、すなわち当業者に理解されるような通常および慣例の意味と異なる定義をしていない用語は、本明細書の用語の一貫した使用によって暗示されることが意図される。用語が特別な意味を有すると意図される範囲、すなわち当業者が理解する以外の意味については、かかる特別な定義を、その用語について直接明白に特別の定義を提供する定義方法で、本明細書にて明示的に記載する。
【００１５】
ここで図を参照すると、いくつかの図を通して同一の符号が同一の構成要素に対応しているが、特に図１を参照すると、開示された発明は、加速処理ユニット（ＡＰＵ）１０５を含むコンピュータシステム１００の環境で記載されている。ＡＰＵ１０５は、１つ以上の中央処理装置（ＣＰＵ）コア１１０と、これらに関連するキャッシュ１１２（例えば、Ｌ１、Ｌ２または他のレベルのキャッシュメモリ）と、グラフィック処理ユニット（ＧＰＵ）１１５と、ＧＰＵ１１５に関連するキャッシュ１１７（例えば、Ｌ１、Ｌ２、Ｌ３または他のレベルのキャッシュメモリ）と、キャッシュコントローラ１１９と、電源管理コントローラ１２０と、ノースブリッジ（ＮＢ）コントローラ１２５と、を有している。また、システム１００は、サウスブリッジ（ＳＢ）１３０と、システムメモリ１３５（例えばＤＲＡＭ）と、を有している。ＮＢコントローラ１２５は、サウスブリッジ１３０およびシステムメモリ１３５へのインタフェースを提供する。コア１１０および／または１つ以上のキャッシュメモリ１１２の特定の例示的な態様の範囲については本明細書に記載せず、かかる例示的な態様は、当業者が理解するであろうように、本発明の実施形態の趣旨および範囲を限定することなく、種々の実施形態に含まれるかもしれないし、含まれないかもしれない。
【００１６】
いくつかの実施形態では、コンピュータシステム１００は、１つ以上の周辺装置１４０、入力装置１４５、出力装置１５０、および／または、ディスプレイユニット１５５とインタフェースしてもよい。１つ以上の通信トポロジ（有線、無線、広帯域など）を用いてネットワーク接続を容易にするように、例えばネットワークインタフェース回路（ＮＩＣ）などの通信インタフェース１６０を、サウスブリッジ１３０に接続してもよい。種々の実施形態では、サウスブリッジ１３０に接続された構成要素は、本発明の実施形態の範囲に影響することなく、コンピュータシステム１００の内部または外部にあってもよく、例えばサウスブリッジ１３０とのインタフェースで示されているような有線、または無線で接続されてもよい。入力装置１４５は、キーボード、マウス、トラックボール、スタイラス、マウスパッド、マウスボタン、ジョイスティック、スキャナなどの何れかであってよい。出力装置１５０は、モニタ、プリンタ、プロッタ、複写機または他の出力装置の何れかであってよい。周辺装置１４０は、対応する物理的デジタル媒体に読み出しおよび／または書き込み可能なＣＤ／ＤＶＤドライブ、汎用シリアルバス（“ＵＳＢ”）装置、ジップドライブ、外部のフロッピー（登録商標）ドライブ、外部のハードドライブ、電話機、および／または、ブロードバンドモデム、ルータ、ゲートウェイ、アクセスポイントなどのコンピュータに接続可能なあらゆる他の装置であってもよい。コンピュータシステム１００の特定の例示的な態様の範囲については本明細書に記載しておらず、かかる例示的な態様は、当業者が理解し得るように、本願の実施形態の趣旨および範囲を限定することなく、種々の実施形態に含まれるかもしれないし、含まれないかもしれない。システム１００の動作は、通常、システム１００の種々の構成要素とインタフェースするソフトウェアを含むオペレーティングシステム１６５により制御される。種々の実施形態では、コンピュータシステム１００は、パーソナルコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、モバイル装置、電話機、パーソナルデータアシスタント（“ＰＤＡ”）、サーバ、メインフレーム、作業端末、音楽プレーヤ、スマートテレビなどであってもよい。
【００１７】
電源管理コントローラ１２０は、コンピュータシステム１００のサポートにおいて１つ以上の機能を実行するように構成された回路またはロジックであってもよい。図１に示されるように、電源管理コントローラ１２０は、ＮＢコントローラ１２５内で実行され、ＮＢコントローラ１２５の全体の機能のうち１つの機能として、電源管理制御を実行するように構成された回路（またはサブ回路）を有してもよい。いくつかの実施形態では、サウスブリッジ１３０は、電力をシステム１００の種々の部分に提供する複数の電圧レール１３２を制御する。個々の電圧レール１３２は、いくつかの構成要素がスリープ状態におかれ、一方で他の構成要素を電源が入った状態におくことを可能にする。
【００１８】
いくつかの実施形態では、ＮＢコントローラ１２５により表される回路は、分散回路として実行され、分散回路のそれぞれの部分は、システム１００の１つ以上の構成要素（例えばプロセッサコア１１０など）内に構成されるが、個々の電圧レール１３２上で作動する。すなわち、分散回路の区域と機能的に異なるコア１１０の区域とは異なる電源が用いられる。それによって、残りのプロセッサコア１１０またはシステム１００の他の構成要素が電力減少状態にある場合でも、個々の電圧レール１３２は、分散回路のそれぞれの部分がその機能を実行するのを可能にし得る。この電力の独立が、図１に示されたＮＢコントローラ１２５により実行される機能のうち少なくともいくつかまたは全てを実行する分散回路、分散されたコントローラ、または、分散された制御回路を特徴とする実施形態を可能にする。いくつかの実施形態では、電源管理コントローラ１２０は、コンピュータシステム１００内の種々の処理ユニット１１０，１１５の電力状態を制御する。
【００１９】
異なるソフトウェアプログラムの命令は、通常、比較的大きいが低速の不揮発性記憶装置ユニット（例えば、内部または外部のディスクドライブユニット）上に格納される。ユーザが実行のためにプログラムのうち１つのプログラムを選択する場合、選択されたプログラムの命令はシステムメモリ１３５内にコピーされ、プロセッサ１０５は、選択されたプログラムの命令をシステムメモリ１３５から取り出す。また、データのいくつかの部分も、１つ以上のコア１１０のキャッシュメモリ１１２内にロードされる。
【００２０】
キャッシュ１１２，１１７は、正常動作中、比較的頻繁に使用されると予測される命令および／またはデータのコピーを格納する、（システムメモリ１３５と比較して）より小さいがより速いメモリである。コア１１０および／またはＧＰＵ１１５は、キャッシュメモリ構成要素の階層を採用してもよい。
【００２１】
正常動作中、処理ユニット１１０，１１５により使用されると予測される命令またはデータは、キャッシュコントローラ１１９によって、比較的大きく低速のシステムメモリ１３５からキャッシュ１１２，１１７へ移される。処理ユニット１１０，１１５がシステムメモリ１３５内の箇所を読み出しまたは書き込みする必要がある場合には、キャッシュコントローラ１１９は、先ず、所望のメモリ箇所がキャッシュ１１２，１１７に含まれているかどうかチェックする。この箇所がキャッシュ１１２，１１７に含まれている（すなわち、キャッシュがヒットした）場合には、処理ユニット１１０，１１５は、キャッシュ１１２，１１７内のコピーに対する読み出しまたは書き込み動作を実行可能である。この箇所がキャッシュ１１２，１１７に含まれていない（すなわち、キャッシュミス）場合には、処理ユニット１１０，１１５は、システムメモリ１３５内に格納された情報にアクセスする必要があり、一部のケースでは、情報を、システムメモリ１３５キャッシュコントローラ１１９からコピーして、キャッシュ１１２，１１７に追加してもよい。キャッシュ１１２，１１７の適切な構成および動作では、メモリアクセスの待ち時間を、システムメモリ１３５の待ち時間を下回って、キャッシュメモリ１１２，１１７の値に近い値まで減少させることが可能である。
【００２２】
図２に移ると、プロセッサ１０５により採用されるキャッシュ階層を示すブロック図が示されている。図示された実施形態では、プロセッサ１０５は、キャッシュを、Ｌ１キャッシュ、Ｌ２キャッシュおよびＬ３キャッシュとして知られる３つのレベルに分割する階層キャッシュを採用している。コア１１０は、ＣＰＵクラスタ２００内にグループ化されている。各コア１１０は、自身のＬ１キャッシュ２１０を有しており、各クラスタ２００は、関連するＬ２キャッシュ２２０を有しており、クラスタ２００は、Ｌ３キャッシュ２３０を共有している。システムメモリ１３５は、Ｌ３キャッシュ２３０の下流に位置する。キャッシュ階層では、通常、速度がレベルとともに減少するが、サイズは増加する。例えば、Ｌ１キャッシュ２１０は、通常、Ｌ２キャッシュ２２０より小さくおよび速く、Ｌ２キャッシュ２２０は、Ｌ３キャッシュ２３０より小さくおよび速い。キャッシュ階層内の最大のレベルはシステムメモリ１３５であって、システムメモリ１３５は、キャッシュメモリ２１０，２２０，２３０よりも低速である。特定のコア１１０は、先ず、Ｌ１キャッシュにおいて、必要とされるメモリ箇所を探すことを試み、キャッシュの上位レベルにメモリ箇所を見出すことができない場合には、引き続いてＬ２キャッシュ、Ｌ３キャッシュおよび最後にシステムメモリ１３５を検索するように進む。キャッシュコントローラ１１９は、全てのキャッシュ階層レベルを管理する集中型ユニットであってもよいし、分散型ユニットであってもよい。例えば、各キャッシュ２１０，２２０，２３０は、自身のキャッシュコントローラ１１９を有してもよく、または、いくつかのレベルで共用のキャッシュコントローラ１１９を共有してもよい。
【００２３】
いくつかの実施形態では、Ｌ１キャッシュを、図３に示されるように、命令をＬ１−Ｉ３００に格納し、データをＬ１−Ｄ３１０に格納するように、個々のＬ１キャッシュに分割することが可能である。Ｌ１−Ｉキャッシュ３００を、データよりも命令に対して頻繁にアクセスする必要があるエンティティの近辺に配置することができ、その一方で、Ｌ１−Ｄキャッシュ３１０を、命令よりもデータに対して頻繁にアクセスする必要があるエンティティの近辺に配置することができる。Ｌ２キャッシュ２２０は、通常、Ｌ１−ＩキャッシュおよびＬ１−Ｄキャッシュの両方に関連付けられており、Ｌ３キャッシュ２３０およびシステムメモリ１３５から取得した命令またはデータのコピーを格納可能である。頻繁に使用される命令は、Ｌ２キャッシュからＬ１−Ｉキャッシュ３００内にコピーされ、頻繁に使用されるデータは、Ｌ２キャッシュからＬ１−Ｄキャッシュ３１０内にコピーされることが可能である。Ｌ２およびＬ３キャッシュ２２０，２３０は、一般的には統合キャッシュと呼ばれる。
【００２４】
いくつかの実施形態では、電源管理コントローラ１２０は、コア１１０の電力状態を制御する。特定のコア１１０がパワーダウン状態（例えばＣ６状態）におかれた場合に、コア１１０は、電源管理コントローラ１２０からのパワーダウン信号に応じて、コア１１０のアーキテクチャ状態を、コア１１０のＬ１キャッシュ２２０内に保存する。Ｌ１キャッシュ２２０がＬ１−Ｉキャッシュ３００およびＬ１−Ｄキャッシュ３１０を有する実施形態では、Ｌ１−Ｄキャッシュ３１０は、通常、アーキテクチャ状態を格納するために使用される。この方法では、システム１００は、電力イベントに対しアーキテクチャ状態の保存／復旧を容易にするために、キャッシュ階層を使用する。コア１１０がパワーダウンされた場合に、キャッシュの内容は、キャッシュコントローラ１１９によって、キャッシュ階層の次の下位レベルに自動的にフラッシュされる。図示された実施形態では、各コアは、アーキテクチャ状態を格納する指定されたメモリ箇所を有する。特定のコア１１０が電力復旧命令または信号を受信する場合には、当該コアは、指定されたメモリ箇所に基づきアーキテクチャ状態を取得する。指定されたメモリ箇所に基づき、キャッシュ階層は、アーキテクチャ状態データを、パワーダウンイベントに応じて当該データがフラッシュされた最下位レベルで探す。Ｌ１キャッシュ２１０のフラッシュ前に電源管理コントローラ１２０によりパワーダウンイベントがキャンセルされた場合には、アーキテクチャ状態がそこから取得されてもよい。
【００２５】
図４に示されるように、電源管理コントローラ１２０は、低電力状態に移行するようにＣＰＵ３に指示する。ＣＰＵ３は、アーキテクチャ状態２４０（ＡＳＴ３）を、ＣＰＵ３のＬ１キャッシュ２１０内に格納する。ＣＰＵ３がパワーダウンされる場合、図５に示されるように、ＣＰＵ３のＬ１キャッシュ２１０は、キャッシュコントローラ１１９によって、ＣＰＵクラスタ１に関するＬ２キャッシュ２２０へフラッシュされる。ＣＰＵ３のパワーダウン状態は、グレーの陰影で示される。
【００２６】
図６に示されるように、ＣＰＵ２は、電源管理コントローラ１２０によってパワーダウンするよう指示され、ＣＰＵ２のアーキテクチャ状態２５０（ＡＳＴ２）を、ＣＰＵ２のＬ１キャッシュ２１０内に格納する。ＣＰＵ２がパワーダウンすると、ＣＰＵ２の状態２５０が、キャッシュコントローラ１１９によってＬ２キャッシュ２２０へフラッシュされる。ＣＰＵクラスタ１内の両方のコア１１０がパワーダウンされるので、クラスタ全体がパワーダウンされてもよく、図７に示されるように、Ｌ２キャッシュ２２０をＬ３キャッシュ２３０へフラッシュする。
【００２７】
ＣＰＵ１が電源管理コントローラ１２０によりパワーダウンされる場合、図８に示されるように、ＣＰＵ１はアーキテクチャ状態２６０（ＡＳＴＡＴＥ１）をＬ１キャッシュ２１０に保存し、それからキャッシュコントローラ１１９は、Ｌ２キャッシュ２２０へフラッシュするであろう。この電流状態では、ＣＰＵ０のみが実行中であり、１つのＣＰＵのみがプロセスを実行するＣＰＵシステムの一般的な状況である。
【００２８】
ＣＰＵ１が電力復旧命令または信号を受信した場合には、ＣＰＵ１は、ＣＰＵクラスタ０のＬ２キャッシュ２２０からＣＰＵ１のアーキテクチャ状態をフェッチすることのみ必要となる。ＣＰＵ２またはＣＰＵ３に電源が入れば、それらのＣＰＵは、Ｌ３キャッシュ２３０からそれぞれの状態をフェッチする必要がある。コア１１０が、それぞれのアーキテクチャ状態データについて指定されたメモリ箇所を使用するので、復旧したコア１１０が必要なのは、指定された箇所からのデータを要求することだけである。キャッシュコントローラ１１９は、データが存在するキャッシュレベルを自動的に探す。例えば、アーキテクチャ状態データがＬ３キャッシュ２３０内に格納された場合には、復旧中のコア１１０は、Ｌ１キャッシュ２１０およびＬ２キャッシュ２２０内ではミスし、最終的にＬ３キャッシュ２３０内でヒットする。キャッシュ階層ロジックは、アーキテクチャ状態データの位置を識別し、当該位置を復旧中のコア１１０に転送する。
【００２９】
全てのコア１１０がパワーダウンした場合、Ｌ３キャッシュ２３０がシステムメモリ１３５にフラッシュされ、ＣＰＵシステム全体がパワーダウン可能になる。キャッシュコントローラ１１９は、電源復旧中、キャッシュ階層の上位レベルのミスに続き、システムメモリ１３５内でアーキテクチャ状態データを探す。
【００３０】
複数レベルのキャッシュ階層を有するプロセッサシステムについては、キャッシュ階層を用いてアーキテクチャ状態を保存することは、アーキテクチャ状態データを、電力状態のサポートに必要なのと同じくらいキャッシュ階層内に深くフラッシュするだけであるので、待ち時間が短くなるという利点がある。また、このアプローチでは、データをキャッシュへ保存し、その後に１つのキャッシュから次にフラッシュする既存のキャッシュフラッシュインフラストラクチャを使用するため、設計の複雑性が低い。
【００３１】
図９は、本発明のいくつかの態様で採用され得るようなコンピューティング装置９００のハードウェアおよびソフトウェアアーキテクチャの選択された部分の簡略化された図である。コンピューティング装置９００は、バスシステム９１５を介して記憶装置９１０と通信するプロセッサ９０５を有する。記憶装置９１０は、磁気ディスク９２０または光ディスク９２５などの、ハードディスクおよび／もしくはランダムアクセスメモリ（ＲＡＭ）ならびに／または着脱可能な記憶装置を有してもよい。また、記憶装置９１０は、オペレーティングシステム９３０、ユーザ・インタフェースソフトウェア９３５およびアプリケーション９４０とともに符号化される。ユーザ・インタフェースソフトウェア９３５は、ディスプレイ９４５と関連してユーザ・インタフェース９５０を実行する。ユーザ・インタフェース９５０は、例えば、キーパッド、キーボード９５５またはマウス９６０などの周辺Ｉ／Ｏ装置を有してもよい。プロセッサ９０５は、オペレーティングシステム９３０の制御下で実行し、オペレーティングシステム９３０は、当業者において周知のあらゆるオペレーティングシステムであってもよい。アプリケーション９４０は、オペレーティングシステム９３０の実行に応じたパワーアップ、リセット、ユーザ対話などに際し、オペレーティングシステム９３０により起動される。アプリケーション９４０は、起動される場合、本発明の方法を実行する。ユーザは、ユーザ・インタフェース９５０を介して、従来の方法でアプリケーション９４０を起動してもよい。スタンドアロンシステムが示されているが、データは、処理するシミュレーションアプリケーション９４０と同一のコンピューティング装置９００上に存在する必要がないことに留意されたい。従って、本発明のいくつかの実施形態を、分散記憶および／または処理機能を有する分散型計算システム上で実行してもよい。
【００３２】
いくつかの実施形態では、例えば半導体製品および装置ならびに／または他のタイプの半導体装置などの超大規模集積回路（ＶＬＳＩ回路）の設計および製造プロセスにおいて、異なる種類のハードウェア記述言語（ＨＤＬ）が使用されてもよい。ＨＤＬのいくつかの例は、ＶＨＤＬおよびＶｅｒｉｌｏｇ／Ｖｅｒｉｌｏｇ−ＸＬであるが、挙げられていない他のＨＤＬフォーマットを使用してもよい。１つの実施形態では、ＨＤＬコード（例えばレジスタ転送レベル（ＲＴＬ）コード／データ）を使用して、ＧＤＳデータ、ＧＤＳＩＩデータなどを生成してもよい。例えば、ＧＤＳＩＩデータは記述ファイルフォーマットであり、３次元モデルの半導体製品または装置を表す異なる実施形態で使用してもよい。そのようなモデルを、半導体製品および／または装置を製作するために、半導体製造設備が使用してもよい。ＧＤＳＩＩデータを、データベースまたは他のプログラム記憶構造として格納してもよい。また、このデータを、コンピュータ可読記憶装置（例えば、記憶装置９１０、ディスク９２０，９２５、固体記憶装置など）上に格納してもよい。１つの実施形態では、ＧＤＳＩＩデータ（または、他の同様のデータ）を、開示された実施形態の種々の態様を実現可能な装置を（例えば、マスクワークの使用を通して）製造する製造設備を構成するように適応してもよい。言い換えれば、種々の実施形態では、このＧＤＳＩＩデータ（または、他の同様のデータ）をコンピューティング装置９００内にプログラムし、アプリケーション９６５を用いてプロセッサ９０５により実行されてもよく、それがそれから全体または一部で、半導体製品または装置を製作する半導体製造設備（または工場）の動作を制御してもよい。例えば、１つの実施形態では、図１〜図８で示されたコンピュータシステム１００の一部を含むシリコンウエハを、ＧＤＳＩＩデータ（または、他の同様のデータ）を用いて製造してもよい。
【００３３】
上述した特定の実施形態は例示のみであり、開示された発明として、異なるが本明細書の教示の利点を有する当業者に明らかな同様の方法で修正および実施してもよい。さらに、後述の請求項内に記載したもの以外に、本明細書に示された構造または設計の詳細の限定を意図するものではない。従って、上述の特定の実施形態を変更および修正してもよく、全てのそのような変形は、開示された発明の範囲および趣旨内と考えられることは明らかである。従って、本明細書で求める保護は、後述の請求項内に記載するものである。
【図１】
2015536494.tif 000003
【図２】
2015536494.tif 000004
【図３】
2015536494.tif 000005
【図４】
2015536494.tif 000006
【図５】
2015536494.tif 000007
【図６】
2015536494.tif 000008
【図７】
2015536494.tif 000009
【図８】
2015536494.tif 000010
【図９】
2015536494.tif 000011
【国際調査報告】
2015536494.tif 000012
2015536494.tif 000013