(57)【要約】少なくとも一実施例に従って、低電力モード中にキャッシュされた情報を保持するための技術である。一実施例において、プロセッサのローカル・キャッシュに格納された情報は、プロセッサが低電力モードに置かれる前に共有キャッシュに保存されるので、他のプロセッサは、低電力モードのプロセッサを、そのローカル・キャッシュへのアクセスを提供するように低電力モードから復帰させる代わりに、共有キャッシュからの情報にアクセスする。
2010534377.tif 000002
【特許請求の範囲】
【請求項１】
低電力モードに置かれる第１プロセッサ・コアであって、前記第１プロセッサ・コアのローカル・キャッシュ内に格納された少なくとも修正された情報は、共有キャッシュに格納される、第１プロセッサ・コアと、
前記第１プロセッサ・コアが前記低電力モードに入る前に、前記ローカル・キャッシュ内でアクセス可能な情報のために前記共有キャッシュにアクセスするための第２プロセッサ・コアであって、前記第１プロセッサ・コアが前記低電力モードへ置かれることに応答して前記ローカル・キャッシュの代わりに前記共有キャッシュにアクセスする、第２プロセッサ・コアと、
から構成されることを特徴とする機器。
【請求項２】
前記第１プロセッサ・コアは、それが低電力モードに入り、それに従ってアクセスを指示するかどうかを示すことを特徴とする請求項１記載の機器。
【請求項３】
前記第１プロセッサ・コアは、それが前記低電力モードであるかどうかを判定し、かつ、前記第１プロセッサが前記低電力モードであるかどうかに基づいて、前記第１プロセッサ・コアのローカル・キャッシュからの情報にアクセスすることを試みるための論理を含むことを特徴とする請求項２記載の機器。
【請求項４】
前記共有キャッシュは、少なくとも２つのプロセッサ・コアに対応する少なくとも２つのローカル・キャッシュ内に格納された少なくともいくつかの情報を格納することを特徴とする請求項１記載の機器。
【請求項５】
前記ローカル・キャッシュは、レベル１（Ｌ１）キャッシュを含み、前記共有キャッシュは、レベル２（Ｌ２）キャッシュを含むことを特徴とする請求項４記載の機器。
【請求項６】
前記低電力モードは、前記第１プロセッサ・コアの少なくとも１個のクロックを低減し、前記第１プロセッサ・コアへの電力を不能にすることを含むことを特徴とする請求項１記載の機器。
【請求項７】
前記低電力モードは、前記第１プロセッサ・コアをアイドル状態に置き、かつ、前記第１プロセッサ・コアの動作電圧をほぼ零に低減することを含むことを特徴とする請求項１記載の機器。
【請求項８】
前記低電力状態に入った結果、前記ローカル・キャッシュはフラッシュされることを特徴とする請求項１記載の機器。
【請求項９】
少なくとも２つのプロセッサ・コアを有する第１プロセッサであって、前記プロセッサ・コアの少なくとも１つは、低電力モードに入ると、前記少なくとも１つのプロセッサ・コアのローカル・キャッシュ内に格納された情報はもはやアクセス可能ではない、第１プロセッサと、
前記少なくとも１つのプロセッサ・コアが低電力モードである場合は、共有キャッシュからの情報にアクセスするための少なくとも１つのプロセッサ・コアを有し、前記共有キャッシュは、前記少なくとも２つのプロセッサ・コアのローカル・キャッシュのそれぞれに格納された情報のバージョンを格納する、第２プロセッサと、
前記共有キャッシュ内に格納された情報のバージョンを格納するためのシステム・メモリと、
メモリ・コントローラであって、そこを通って前記第２プロセッサの少なくとも１つのプロセッサ・コアは前記システム・メモリにアクセスする、メモリ・コントローラと、
から構成されることを特徴とするシステム。
【請求項１０】
前記第１プロセッサの少なくとも１つのプロセッサ・コアの電力状態を格納するための不揮発性メモリをさらに含むことを特徴とする請求項９記載のシステム。
【請求項１１】
前記第２プロセッサの少なくとも１つのプロセッサ・コアは、前記第１プロセッサの少なくとも１つのプロセッサ・コアがどのような電力状態にあるかにかかわらず、前記第１プロセッサの少なくとも１つのプロセッサ・コアからの情報へのアクセスを試みることを特徴とする請求項１０記載のシステム。
【請求項１２】
前記第１プロセッサの少なくとも１つのプロセッサ・コアが低電力モードに入っていない場合、前記第２プロセッサの少なくとも１つのプロセッサ・コアは、前記第１プロセッサの少なくとも１つのプロセッサ・コアのローカル・キャッシュをスヌープすることを特徴とする請求項１１記載のシステム。
【請求項１３】
前記第１および第２プロセッサは、フロントサイド・バスを介して結合されることを特徴とする請求項９記載のシステム。
【請求項１４】
前記第１および第２プロセッサは、ポイント・ツー・ポイント相互接続を介して結合されることを特徴とする請求項９記載のシステム。
【請求項１５】
前記第１および第２プロセッサは、リング相互接続を介して結合されることを特徴とする請求項９記載のシステム。
【請求項１６】
前記低電力モードは、クロックを停止し、かつ、前記第１プロセッサの少なくとも１つのプロセッサ・コアへの電力を除去することを含むことを特徴とする請求項９記載のシステム。
【請求項１７】
前記第１プロセッサの少なくとも１つのプロセッサ・コアが前記低電力モードから復帰し、かつ、そのローカル・キャッシュにアクセスするのを待つ時間よりも、前記共有キャッシュからの情報にアクセスするために要求される時間の方が短いことを特徴とする請求項９記載のシステム。
【請求項１８】
第１プロセッサ・コアを低電力モードに置く段階であって、前記低電力モードは、第１プロセッサ・コアのレベル１（Ｌ１）キャッシュからレベル２（Ｌ２）キャッシュへ少なくとも修正された情報を格納する段階を含む、段階と、
前記第１プロセッサ・コアが前記低電力モードに入ることに応答して、前記Ｌ１キャッシュの代わりに前記Ｌ２キャッシュにアクセスする段階と、
前記第２プロセッサ・コアによって要求された情報が前記Ｌ２キャッシュに格納されていない場合に、システム・メモリへのアクセスを生成する段階と、
から構成されることを特徴とする方法。
【請求項１９】
前記第１プロセッサ・コアは、前記第１プロセッサ・コアの前記低電力モードに基づいて、前記アクセスを前記Ｌ１またはＬ２キャッシュへのルートすることを特徴とする請求項１８記載の方法。
【請求項２０】
前記低電力モードは、前記第１プロセッサ・コアに関連する不揮発性プログラマブル・メモリ内に示されることを特徴とする請求項１９記載の方法。
【請求項２１】
前記第１プロセッサは、前記第１プロセッサが前記低電力モードにあるかどうかに基づいて、前記第２プロセッサからの前記アクセスをどこへルートするのかを決定するための論理を含むことを特徴とする請求項１８記載の方法。
【請求項２２】
前記低電力モードは、前記第１プロセッサ・コアを停止状態に置き、かつ、前記動作電圧を低減することを含むことを特徴とする請求項１８記載の方法。
【請求項２３】
１セットの命令をその上に格納している機械読取り可能な媒体であって、それが機械によって実行された場合、前記機械に、
第２および第３プロセッサの少なくとも１つが低電力モードに入ったという決定に応答して、前記第２および第３プロセッサの１つに対応するローカル・キャッシュの代わりに、少なくとも前記第２および第３プロセッサの間で共有されたキャッシュに第１プロセッサをアクセスさせる段階を含む方法を実行させることを含み、前記低電力モードに入ったことにより、前記第２および第３プロセッサの少なくとも１つに、そのそれぞれのローカル・キャッシュから共有キャッシュへ情報を格納させ、前記第２および第３プロセッサの少なくとも１つへのクロックをゲートし、かつ、前記第２および第３プロセッサの少なくとも１つへの電力をほぼ零に低減させる、
ことを特徴とする機械読取り可能な媒体。
【請求項２４】
前記少なくとも第２および第３プロセッサが前記低電力モードにあるかどうかを決定する段階をさらに含むことを特徴とする請求項２３記載の機械読取り可能な媒体。
【請求項２５】
前記決定する段階は、前記少なくとも第２および第３プロセッサの電力状態情報が入っている格納領域にアクセスする段階を含むことを特徴とする請求項２４記載の機械読取り可能な媒体。
【請求項２６】
前記格納領域は、前記少なくとも第２および第３プロセッサによって維持されることを特徴とする請求項２５記載の機械読取り可能な媒体。
【請求項２７】
前記決定する段階は、ソフトウェア・ルーチンを実行する段階を含むことを特徴とする請求項２６記載の機械読取り可能な媒体。
【請求項２８】
前記ローカル・キャッシュは、レベル１（Ｌ１）キャッシュであることを特徴とする請求項２３記載の機械読取り可能な媒体。
【請求項２９】
前記共有キャッシュは、レベル２（Ｌ２）キャッシュであることを特徴とする請求項２８記載の機械読取り可能な媒体。
【請求項３０】
前記低電力モードは、コア・コンポーネント３（ＣＣ３）電力状態であることを特徴とする請求項２３記載の機械読取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、一般に情報処理の分野に関し、より詳しくは、コンピューティング・システムおよびマイクロプロセッサ内の電力管理分野に関する。
【背景技術】
【０００２】
いくつかのマイクロプロセッサおよび／またはプロセッサ・コア（ここでは一般に「プロセッサ」と称する）は、レベル１（「Ｌ１」）キャッシュのような１次キャッシュ・メモリ、または他のメモリ構造を含み（または有し）、プロセッサは、それらから、比較的迅速に、プロセッサまたはコンピューティング・システム内の他のメモリ構造に関連する、頻繁にアクセスされるデータまたは命令のような情報を検索する。加えて、いくつかのプロセッサは、レベル２（「Ｌ２」）キャッシュ・メモリのような２次キャッシュ・メモリ、または他のメモリ構造を含み（または有し）、プロセッサは、それらから、１次キャッシュ・メモリから検索する場合ほど迅速ではないが、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、ハードドライブ・メモリのようなシステム・メモリから検索するよりは迅速に、あまり頻繁にアクセスされないデータまたは命令のような情報を検索する。
【０００３】
いくつかのコンピュータ・システムはプロセッサを含み、各プロセッサは、それが対応するプロセッサによって主に使用される情報を格納するために、Ｌ１キャッシュのようなローカル・キャッシュ・メモリへのアクセスを含む（または有する）。さらに、いくつかのコンピュータ・システムは、Ｌ２キャッシュのような共有キャッシュ・メモリを含み、それは２以上のプロセッサによって使用される。共有キャッシュ・メモリを有するコンピュータ・システムでは、共有キャッシュ・メモリは、ローカル・キャッシュ・メモリの各々に格納された情報の全部またはいくらかの部分を格納するので、複数のローカル・キャッシュ・メモリは、共有キャッシュ・メモリ内に格納された頻繁に使用される情報のサブセットを格納する。ローカル・キャッシュ・メモリ内に格納された情報は、共有キャッシュ・メモリ内の対応する情報よりも頻繁に更新され、したがって、コンピュータ・システムは、１またはそれ以上のローカル・キャッシュ・メモリ内に格納された情報と同一の情報を共有キャッシュ・メモリ内で保持するために、キャッシュ・コヒーレンシ・スキームを実行する。
【０００４】
特定のプロセッサが使用されていないとき、あるいは、プロセッサまたはコンピュータ・システムの温度がモニタされ、閾値温度を超過することを防止するアルゴリズムのような他のアルゴリズムに応答しているとき、いくつかのコンピュータ・システムは、システム内の１またはそれ以上のプロセッサへのクロック周波数および／または電圧を低減することによって、システム内のプロセッサを低電力モードに置くための電力管理技術を用いる。低電力モードに置かれたプロセッサは、例えばローカル・キャッシュへの電力を維持することによって、低電力モードにある間もそれらの対応するローカル・キャッシュ・メモリ内に格納された情報を保持するので、その情報は、プロセッサが低電力モードから復帰したときに利用可能になる。
【０００５】
低電力モード中にキャッシュされた情報を保持するという先行技術の欠点の１つは、低電力モードにあるプロセッサのキャッシュにアクセスするプロセッサは、例えば「スヌープ」サイクルによって、低電力モードにあるプロセッサが低電力モードから復帰し、かつ、他のプロセッサによるアクセスに応答できるようになるまで待たなければならないことである。低電力モード・プロセッサのキャッシュにアクセスした時と、要求されたデータが検索されるか、または低電力モード・プロセッサのキャッシュに存在しないと決定された時との間の遅延は、対応するコンピュータ・システムの性能を著しく低下させる。このような問題は、プロセッサの数が増加するにつれて、低電力モードにあるプロセッサの数、およびこれらのプロセッサへのアクセス数も増加するので、より悪化する。さらに、コンピュータ・システムは、特に、要求された情報が低電力モードにあるプロセッサのローカル・キャッシュ内に存在しないと決定された場合に、不必要な電力を引き込む。
【図面の簡単な説明】
【０００６】
本発明の実施例は、制限目的ではなく例示目的のために示され、また、添付図面の図中にある類似の要素は同様の参照番号で示される。
【図１】本発明の少なくとも一実施例が使用された、マルチコア・マイクロプロセッサのブロック図を示す。
【図２】本発明の少なくとも一実施例が使用された、共有バス・コンピュータ・システムのブロック図を示す。
【図３】本発明の少なくとも一実施例が使用された、ポイント・ツー・ポイント相互接続コンピュータ・システムのブロック図を示す。
【図４】本発明の少なくとも一実施例が使用された、リング・ベースド・マルチコア・マイクロプロセッサのブロック図を示す。
【図５】本発明の一実施例に従って、低電力モード中にキャッシュされた情報を保持するために用いられる動作のフローチャートである。
【発明を実施するための形態】
【０００７】
ここでは、コンピュータ・システム内の低電力モード中にキャッシュされた情報を保持するための少なくとも１つの技術が示される。以下の記述では、本発明の実施例について完全な理解を提供するために、説明目的のための多くの特定の詳細事項が述べられる。しかしながら、当業者にとって、これらの特定の詳細事項がなくても本発明の実施例を実行することができることは明白であろう。
【０００８】
一般に、ここに記述された実施例は、複数のマイクロプロセッサ、複数のプロセッサ・コア、複数のプロセッサ・コアを有する単一のマイクロプロセッサ、または、各々が複数のプロセッサ・コアを有する複数のプロセッサ、を含む任意の数のマルチプロセッサ・システムに適用することができる。
【０００９】
簡略化するために、マイクロプロセッサおよびマイクロプロセッサ・コアは、ここでは「プロセッサ」と総称する。さらに、１次キャッシュ（すなわち、それらは、プロセッサが最も頻繁に用いる情報を格納するために使用される）は、ここでは「ローカル・キャッシュ」と総称する。一方、２次キャッシュ（すなわち、それらは、Ｌ２キャッシュ、Ｌ３キャッシュ等のように、ローカル・キャッシュよりも頻繁に用いない情報を格納するために使用される）は、２またはそれ以上のプロセッサの１次キャッシュ内に格納された情報の少なくともいくらかを格納するために使用され、ここでは「共有キャッシュ」と総称される。最後に、プロセッサが動作する電圧および／または周波数状態は、１またはそれ以上のプロセッサのクロックが、アイドル、停止、ホールト、または最大動作周波数以下に低減される状態、および／または、１またはそれ以上のプロセッサの電圧が、最大動作電圧以下に低減される状態を含み、ここでは「電力モード」と総称される。
【００１０】
いくつかの実施例では、プロセッサは、低電力モードに置かれる前に、そのローカル・キャッシュ内に格納された情報を共有キャッシュ内の対応する位置に保存し、その結果、さもなければ低電力モードのプロセッサのローカル・キャッシュからの情報に対してアクセスを試みるであろう他のプロセッサは、その代りに共有キャッシュから必要な情報を検索し、そして、低電力モードにあるプロセッサは、それが他に必要とされるまで低電力モードのままである。都合の良いことに、少なくとも一実施例では、コンピュータ・システム内の性能を改善することができる。なぜならば、他のプロセッサによるローカル・キャッシュへのアクセスを提供するために、低電力状態にあるプロセッサが低電力状態から復帰するのを待つシステムの代わりに、情報は、低電力状態に入る前に低電力モード・プロセッサが情報を保存した共有キャッシュから検索されるからである。いくつかの実施例では、共有キャッシュへのアクセスは、低電力モードのプロセッサのローカル・キャッシュへのアクセスよりも迅速に提供される。さらに、低電力モードのプロセッサは、そのローカル・キャッシュへのアクセスを提供するために低電力モードから復帰する必要がないので、少なくとも一実施例では、その実施例を使用するシステム内の電力の保存に役立つ。
【００１１】
一実施例では、低電力モードに置かれるプロセッサは、最初に、キャッシュ・フラッシュ（一括消去）動作、キャッシュ無効動作、ライトバック動作、または、プロセッサのローカル・キャッシュ内に格納された情報を共有キャッシュに保存させるような他の動作を実行する。一実施例では、低電力モードは、プロセッサを低電力モードに置くために、プロセッサへの１またはそれ以上のクロックをオフにすることを含む。他の実施例では、低電力モードは、プロセッサ、ローカル・キャッシュ、またはその両方に電力を与えるために使用される１またはそれ以上の動作電圧の低減または取り除くことを含む。さらに他の実施例では、低電力モードは、プロセッサへの周波数および電圧の両方を、低減または完全に不能にしてもよい。
【００１２】
図１は、本発明の少なくとも一実施例を用いたマルチコア・マイクロプロセッサを示す。特に、図１は、少なくとも２つのプロセッサ・コア１０５,１１０を有するマイクロプロセッサ１００を示し、プロセッサ・コア１０５はローカル・キャッシュ１０７と、プロセッサ・コア１１０はローカル・キャッシュ１１３と、それぞれ関連している。さらに、図１には、ローカル・キャッシュ１０７,１１３の各々に格納された情報の少なくともいくつかのバージョンを格納する共有キャッシュ・メモリ１１５が示される。いくつかの実施例では、マイクロプロセッサ１００は、さらに、図１に示されない他の論理、例えば、集積メモリ・コントローラ、集積グラフィック・コントローラを含むほか、Ｉ／Ｏ制御のようなコンピュータ・システム内の他の機能を実行するための他の論理も含む。一実施例では、マルチプロセッサ・システム内の各マイクロプロセッサ、またはマルチコアプロセッサ内の各プロセッサ・コアは、いずれの所定の時間においてもプロセッサ／コアの電力状態に依存してローカル・キャッシュまたは共有キャッシュのいずれかへのアクセスを指示するための論理１１９を含む（または、それに関連している）。論理は、コンピュータ・システムの動作中のいずれの時間においてもコアまたはプロセッサの電力状態を格納するために、不揮発性プログラマブル・メモリのようなメモリを含む（または、それに関連している）。そのような実施例では、プロセッサまたはコアへのアクセスは、ターゲット・プロセッサまたはコアの電力状態を考慮せずに行なわれるので、スヌープのような同一タイプのアクセスが各プロセッサまたはコアへ送られ、そして、ターゲット・プロセッサまたはコアは、プロセッサまたはコアの電力状態に依存して、スヌープをそのローカル・キャッシュへ提供するか、あるいは、スヌープを共有キャッシュへのアクセス（スヌープまたは他の動作）へ転送する。
【００１３】
一実施例では、図１に示されたプロセッサ・コアの１つは、低電力モードに入る前に、そのローカル・キャッシュに格納された情報の最新バージョンを共有キャッシュに格納する。コアの１つが低電力モードにあるとき（「低電力モード・コア」）、低電力モード・コアは、低電力モードに入る前に、そのローカル・キャッシュから共有キャッシュへ最新情報を保存しているので、他のコアは、共有キャッシュへアクセスすることにより、低電力モード・コアのローカル・キャッシュ内に格納された情報の最新バージョンを獲得することができる。一実施例では、低電力モード・コアは、キャッシュ・フラッシュ動作を実行し、そこでは、ローカル・キャッシュされた情報の一部または全部が無効にされるか、あるいは、低電力モード・コアが低電力モードに入る前に、低電力モード・コアのローカル・キャッシュ内に格納された情報の一部または全部が共有キャッシュに保存される。他の実施例では、コアの命令セット・アーキテクチャに依存して、他の動作が、低電力モード・コアのローカル・キャッシュの情報の一部または全部を共有キャッシュへ保存するために実行される。
【００１４】
一実施例では、プロセッサは、いつでも、１またはそれ以上の低電力モードを含む、多くの異なる電力状態の１つにある。例えば、プロセッサは、最大許容量の電力が消費されるような完全に電力供給されたコンポーネント状態（「Ｃ０」）、Ｃ０状態よりも低い許容電力消費量によって定義される低減電力コンポーネント状態（「Ｃ１」）、あるいは、他の低電力状態（例えばＣ３、Ｃ６など）にあり、それぞれが、連続的により低い許容電力消費によって定義される。さらに、１またはそれ以上のプロセッサのクロックあるいは電力供給は、各状態に関連する許容電力消費を遂行するために調整される。
【００１５】
例えば、一実施例では、完全に電力供給されたＣ０状態は、プロセッサの性能を最大限にするために、周波数の範囲内で１またはそれ以上のプロセッサのクロックを操作することによって、および、電圧の範囲内でプロセッサへの１またはそれ以上の電力供給を操作することによって達成される。そのような電力状態は、例えば、プロセッサ上で実行されるプログラムによって、大きな実行要求がプロセッサに課されるときに有用である。低減電力状態Ｃ１は、電圧の範囲内でプロセッサへの１またはそれ以上の電力供給を維持しつつ、１またはそれ以上のプロセッサのクロックを停止または低減することによって、プロセッサをアイドル、ホールト、または他の低実行状態状に置くことにより遂行される。そのような低減電力状態では、プロセッサは、Ｃ０状態よりも少ない電力しか引き込まないが、例えばスヌープ動作と比較して、他のプロセッサからローカル・キャッシュへのアクセスは、なおも提供することができる。
【００１６】
一実施例では、図１に示されたコアの１つのようなプロセッサは、プロセッサへの１またはそれ以上のクロックを停止または低減すること、および、プロセッサに供給される１またはそれ以上の電源の電圧を除去または低減することによって、Ｃ０またはＣ１よりも低電力状態に置かれるので、その結果、プロセッサのローカル・キャッシュ内に格納された情報は保持されないであろう。例えば、図１において、コアの１つが低電力コア・コンポーネント状態（「ＣＣ３」状態）に置かれ、そこでは、コアへの全てのクロックがホールトされ、さらに、全ての電源電圧が除去されるか、あるいは非活動レベルまで低減される。一実施例によれば、ＣＣ３状態では、コアは最小量の電力を引き込むか、恐らく電力を引き込まない。したがって、図１に示されたプロセッサまたはコアがＣＣ３状態に置かれる前に、コアのローカル・キャッシュ内に格納された修正された情報の少なくとも一部が、共有キャッシュ内の対応する位置に格納される。一実施例では、コアがＣＣ３状態に入る前に、修正された情報のみ（すなわち、共有キャッシュ内に格納された同一情報のバージョンよりも最新の、ローカル・キャッシュ内の情報のバージョン）が共有キャッシュ内に格納される。他の実施例では、ローカル・キャッシュの全コンテンツは、共有キャッシュ内で利用可能なバージョンから修正されたかどうかにかかわらず、コアがＣＣ３状態に入る前に共有キャッシュに格納される。
【００１７】
都合の良いことに、共有キャッシュは、ＣＣ３状態に置かれるコアのローカル・キャッシュ内に格納された少なくとも修正された情報を含んでいるので、一実施例では、図１に示された他のいずれのプロセッサまたはコアも、別な状態ではアクセスされるコアが低減されたコア・コンポーネント状態（つまり「ＣＣ１」）にあるときのようにＣＣ３にあるコアのキャッシュへアクセスすることを試みるであろうが、それに代えて、ＣＣ３コアを低電力モードに残した状態で、共有キャッシュに直接に要求された情報にアクセスし、それによって電力を節約することができる。さらに、一実施例では、ＣＣ３のコアは、他のコアまたはプロセッサからそのローカル・キャッシュへのアクセスにサービスするために低電力状態から復帰していないので、例えば、スヌープ動作と比べて、そのアクセスしているプロセッサまたはコアは、そのアクセスされたコアが要求にサービスするためにその低電力状態から復帰するのを待たなければならない場合ほど、その要求する情報のために長く待つ必要がない。様々な実施例における上記の技術は、任意の数のプロセッサまたはプロセッサ・コアを有するシステムに適用することができる。
【００１８】
図２は、例えば、本発明の一実施例が使用されたフロントサイド・バス（ＦＳＢ）コンピュータ・システムを示す。いずれのプロセッサ２０１，２０５，２１０，２１５も、ローカル・レベル１（Ｌ１）キャッシュ・メモリ２２０，２２５，２３０，２３５，２４０，２４５，２５０，２５５のいずれかからの情報にアクセスすることができるが、これらは、プロセッサ・コア２２３，２２７，２３３，２３７，２４３，２４７，２５３，２５７の１つの中にあるか、あるいはそれらと関連している。さらに、プロセッサ２０１，２０５，２１０，２１５のいずれかは、共有レベル２（Ｌ２）キャッシュ２０３，２０７，２１３，２１７のいずれか１つからの情報、あるいは、チップセット２６５を介してシステム・メモリ２６０からの情報にアクセスすることができる。図２のプロセッサの１またはそれ以上は、いずれの時間においてもプロセッサ／コアの電力状態に依存して、ローカル・キャッシュまたは共有キャッシュのいずれかへのアクセスを指示するための論理２１９を含む（または、それに関連している）。論理は、コンピュータ・システムの動作中、コアまたはプロセッサの電力状態をいつでも格納するための不揮発性プログラマブル・メモリのようなメモリを含む（または、それに関係している）。
【００１９】
図２に示された例において、プロセッサ２０１内では、両方のコアは、アクティブ・コア・コンポーネント状態（「ＣＣ０」状態）であるのに対して、プロセッサ２０５内では、両方のコアは、低減電力状態（「ＣＣ１」状態）であり、その結果、各コアはスヌープをサービスすることができ、あるいはアクティブ・コア２２３，２２７から同様の動作を提供することができる。プロセッサ２１０，２１５のそれぞれは、プロセッサ２０１，２０５のコアよりも低電力モード（「ＣＣ３」状態）にあるコアを有し、その結果、ローカル・キャッシュ２４０，２４５，２５０，２５５は、もはや利用することができない。一実施例では、アクティブ・コア２２３または２２７がプロセッサ２１０，２１５のコアのローカル・キャッシュ内に格納された情報にアクセスする場合、それらは、それぞれプロセッサ２１０，２１５の共有キャッシュから、情報を獲得しなければならない。なぜなら、一実施例において、プロセッサのコア２２３，２２７は、ＣＣ３状態に入る前に、それらのローカル・キャッシュ内に格納された情報の少なくとも修正されたバージョンをそれらの個々の共有キャッシュ２１３，２１７へ格納したからである。プロセッサ２０１のコアから要求された情報が、共有キャッシュ２１３，２１７内で利用できず、またローカル・キャッシュ２３０，２３５でも利用できない場合、次に、プロセッサ２０１のコアは、チップセット２６５を介して、あるいは図２に示されないハード・ドライブまたは他のメモリ・ソースを介して、システム・メモリ２６０からの情報にアクセスせざるを得ないであろう。
【００２０】
いくつかの実施例では、図２の各プロセッサのコアは、図２に示されたように同一の電力モードではなく、互いに異なる電力モードにある。一実施例では、論理は、各プロセッサまたは各コアに含まれ、アクセスされているコアが、ＣＣ３状態にあるのか、または他の状態にあるのかを、スヌープまたは同様の動作で表示し、その結果、要求しているコアは、アクセスされているコアの適切なメモリ構造（ローカル・キャッシュまたは共有キャッシュ）をアドレスするために適切なトランザクションを送出する。いくつかの実施例では、コアの電力状態の表示は、コンピュータ・システムのＢＩＯＳによってアクセス可能なテーブルのようなソフトウェア・プログラムに記録され、追跡される。例えば、一実施例では、コアまたはプロセッサが電力状態を変更する場合は常に、その変更が論理またはメモリに格納されたテーブルに記録され、それをシステムのＢＩＯＳが読み取り、他のプロセッサまたはコアのローカル・キャッシュへのアクセスを試みるあらゆるコアまたはプロセッサに通知することができる。他のプロセッサまたはコアの電力モードについて、アクセスしているプロセッサまたはコアに通知することによって、それは、アクセスされる対応するローカル・キャッシュがＣＣ３のような低減電力状態であるとき、共有キャッシュのような適切なメモリ構造にアクセスすることができる。他の実施例では、各プロセッサまたは各コアの電力モード情報は、ＢＩＯＳのほかにハードウェア論理または他のソフトウェアを含む他の手段によって、修正され記録されてもよい。
【００２１】
いくつかの実施例では、アクセスされているプロセッサまたはコアは、アクセスされたプロセッサ／コアの応答を制御するための論理を含む。例えば、一実施例において、ここで記述した技術を使用するためのコンピュータ・システム内の各プロセッサ（またはコア）は、あらゆる指定の時間でプロセッサの電力状態を格納するための、不揮発性プログラマブル・メモリのようなストレージを含み、そして、関連する論理は、他のプロセッサ／コアからのスヌープ要求または他の同様の動作にどのように応答すべきかを決定する。一実施例では、ストレージおよび論理は、例えば、ＣＣ３状態のプロセッサまたはコアへのアクセスを、プロセッサまたはコアのローカル・キャッシュから、共有キャッシュまたは他のＬ２キャッシュへ転送するために使用される。ところが、アクセスされているプロセッサまたはコアが、ＣＣ０またはＣＣ１状態（すなわち、ＣＣ３よりも高い電力状態）のような他の状態である場合は、アクセスされたプロセッサまたはコア内の論理は、そのローカル・キャッシュをスヌープあるいはアクセスすることを許可するであろう。そのような実施例では、アクセスしているプロセッサ・コアは、プロセッサの電力状態を認識している必要はないが、他のプロセッサのローカル・キャッシュへスヌープのようなアクセスを単に送出し、そして、アクセスされたプロセッサ（またはコア）は、その時の電力状態に基づいて、どこへアクセスすべきかを指示する。
【００２２】
図２に示されたＦＳＢコンピュータ・システムに加えて、ポイント・ツー・ポイント（Ｐ２Ｐ）相互接続システムおよびリング相互接続システムを含む他のシステム構成が、本発明の様々な実施例と共に使用される。図３のＰ２Ｐシステムは、例えばいくつかのプロセッサを含んでもよいが、ここではプロセッサ３７０，３８０の２つのみが例示される。プロセッサ３７０，３８０は、メモリ３２，３４に接続するためのローカル・メモリ・コントローラ・ハブ（ＭＣＨ）３７２，３８２をそれぞれ含む。プロセッサ３７０，３８０は、ポイント・ツー・ポイント（ＰｔＰ）インターフェイス回路３７８，３８８を使用して、ＰｔＰインターフェイス３５０を介してデータを交換する。プロセッサ３７０，３８０は、ポイント・ツー・ポイント・インターフェイス回路３７６，３９４，３８６，３９８をそれぞれ使用して、個別のＰｔＰインターフェイス３５２，３５４を介してチップセット３９０とデータを交換する。チップセット３９０は、さらに、高性能グラフィック・インターフェイス３３９を介して高性能グラフィック回路３３８とデータを交換する。本発明の実施例は、任意の数の処理コアを有するあらゆるプロセッサ内、または図３の各ＰｔＰバス・エージェント内に配置される。一実施例では、あらゆるプロセッサ・コアは、ローカル・キャッシュ・メモリ（図示せず）に含まれるか、あるいはそれと関連する。さらに、共有キャッシュ（図示せず）は、両方のプロセッサの外部のプロセッサの一方に含まれ、それもまたｐ２ｐ相互接続を介してプロセッサに接続されるので、一方または両方のプロセッサのローカル・キャッシュ情報は、プロセッサが低電力モードに置かれた場合には、共有キャッシュに格納される。図３のプロセッサまたはコアの１つまたはそれ以上は、あらゆる所定の時間でプロセッサ／コアの電力状態に依存して、ローカル・キャッシュまたは共有キャッシュのいずれかへのアクセスを指示するための論理３１９含む（または、それらと関連している）。論理は、コンピュータ・システムの動作中にコアまたはプロセッサの電力状態をいつでも格納するための、不揮発性プログラマブル・メモリのようなメモリを含む（または、それらと関連している）。
【００２３】
図４は、少なくとも一実施例を使用する、リング構成で組織されたコンピュータ・システムまたはプロセッサを示す。図１のリング・システムは、同心円のリング相互接続に沿って組織された、８つのプロセッサまたはプロセッサ・コア４０１，４０５，４１０，４１５，４２０，４２５，４３０，４３５を含み、各プロセッサまたはコアは、対応するローカル・キャッシュを有し、そのローカル・キャッシュは、リング相互接続に沿って他のコアによってアクセスされる。図４のシステムまたはプロセッサは、さらに、最終レベルの共有キャッシュ（ＬＬＣ）４４０を含み、それが、ローカル・キャッシュ４０３，４０７，４１３，４１７，４２３，４２７，４３３，４３７に格納された情報の全てまたはいくつかのバージョンを格納する。一実施例では、図４のプロセッサまたはコアの１つが電力モードにある場合、もはやプロセッサまたはコアのローカル・キャッシュから情報にアクセスすることができず、したがって、低電力モード・プロセッサ／コアのローカル・キャッシュに格納された情報へのアクセスを試みる他のあらゆるプロセッサまたはコアは、その代りに、ＬＬＣからこの情報にアクセスすることを試みなければならない。一実施例では、情報がＬＬＣ内で利用できない場合、アクセスするプロセッサまたはコアは、メモリ・コントローラ４４５を介してシステム・メモリ・ソース（図示せず）からデータにアクセスする必要がある。図４のプロセッサの１つまたはそれ以上は、あらゆる所定の時間でプロセッサ／コアの電力状態に依存して、ローカル・キャッシュあるいは共有キャッシュのいずれかへのアクセスを指示するための論理４１９を含む（または、これらと関連している）。論理は、コンピュータ・システムの動作中に、コアまたはプロセッサの電力状態をいつでも格納するための、不揮発性プログラマブル・メモリのようなメモリを含む（または、これらと関連している）。
【００２４】
図５は、本実施例が使用されるプロセッサまたはシステムの構成にかかわらず、本発明の少なくとも一実施例と共に使用される動作のフローチャートを示す。動作５０１で、例えば、スヌープ動作または他のキャッシュ・アクセス動作等によって、プロセッサへのアクセスが行なわれる。動作５０５で、アクセスされたプロセッサがＣＣ３状態のような低電力モードである場合、動作５１０で、プロセッサの共有キャッシュがアクセスされる。アクセスは、使用されるプロトコルに依存して、共有キャッシュへのスヌープかもしれないし、あるいは、そのスヌープは、共有キャッシュにアクセスするための他の動作に変換されるかもしれない。動作５１５で、要求された情報が共有キャッシュ内にない場合、動作５２０で、システム・メモリへのアクセスが行なわれ、さらに、動作５３０で、情報がシステム・メモリから戻され、そうでない場合は、動作５２５で、情報が共有キャッシュから戻される。
【００２５】
動作５０５で、プロセッサがＣＣ３のような低電力モードでなかった場合、動作５３５で、プロセッサのローカル・キャッシュがアクセスされる。動作５４０で、情報がローカル・キャッシュ内で利用可能な場合、次に、動作５４５で、情報がローカル・キャッシュから戻される。そうでない場合は、上述のように、共有キャッシュまたはシステム・メモリのいずれかから情報にアクセスするために、そのプロセスは動作５１０に返る。一実施例では、アクセスするプロセッサは、それらが置かれている電力状態にかかわらずシステム内の他のプロセッサへスヌープを送り、アクセスされたプロセッサは、アクセスされたプロセッサの電力状態に基づいて、ローカル・キャッシュまたは共有キャッシュへアクセスを送るべきかどうかを決定する。例えば、アクセスされたときにアクセスされたプロセッサがＣＣ３状態である場合は、他のプロセッサからのスヌープ動作は、スヌープまたは他の動作のいずれかとしてアクセスされたプロセッサの共有キャッシュに転送されるであろう。そうでない場合は、アクセスされたプロセッサが、ローカル・キャッシュがスヌープされることを可能にする電力状態である場合は、スヌープ動作は、アクセスされたプロセッサのローカル・キャッシュへアクセスする結果になる。他の実施例では、テーブルは、例えばＢＩＯＳを通して保持され、アクセスするプロセッサは、テーブル内に示された電力状態に基づいて、そのプロセッサのローカル・キャッシュがアクセスされるべきであるか、あるいは、その共有キャッシュがアクセスされるべきであるかを決定するために、他のプロセッサへのアクセスに先立って参照する。他の実施例では、アクセスが、アクセスされたプロセッサの電力状態に基づいて指示されるべき場合を管理するための他の技術が使用される。
【００２６】
ここに記述された実施例は、多くの技術を用いて、多くの方法で実行することができる。例えば、少なくとも一実施例は、ＣＭＯＳ論理で実行されるが、他の実施例は、ソフトウェアで実行される。さらに、他の実施例は、ハードウェア論理およびソフトウェアの組合せによって実行される。
【００２７】
一実施例では、ルーチンを促進するために使用されるソフトウェアは、機械読取り可能な媒体上に埋め込むことができる。機械読取り可能な媒体は、機械（例えば、コンピュータ、ネットワーク装置、携帯情報端末、製造ツール、１またはそれ以上のプロセッサのセットを具備する任意の装置等）によってアクセス可能な形式で情報を提供（すなわち、格納および／または転送）する、あらゆるメカニズムを含む。例えば、機械読取り可能な媒体は、記録可能／記録不可能な媒体（例えば、ファームウェアを含むリード・オンリ・メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュ・メモリ装置など）を含むほか、電気的、光学的、音響的、または他の形式の伝播信号（例えば、搬送波、赤外線信号、デジタル信号など）も同様に含む。
【００２８】
少なくとも一実施例の１またはそれ以上の側面が、プロセッサ内の様々な論理を表わす機械可読媒体上に格納された代表的なデータによって実行され、それが機械によって読み取られたとき、機械にここに記述された技術を実行させるための論理を作り上げる。このような表現は、「ＩＰコア」として知られ、有形の、機械読取り可能な媒体（「テープ」）に格納され、そして、実際に論理またはプロセッサを作成する組立機械内でロードするために様々な顧客または生産設備に提供される。
【００２９】
以上、マイクロアーキテクチャのメモリ領域アクセスを指示するための方法および機器が記述された。上記の記述は、例示であり、これらに限定する意図ではないと理解すべきである。上記の記述を読みかつ理解することによって、当業者には他の多くの実施例が明らかになるであろう。したがって、本発明の範囲は、添付の請求項に付与されるべき全均等範囲に加えて、かかる請求項に関して決定されるべきである。
【図１】
2010534377.tif 000003
【図２】
2010534377.tif 000004
【図３】
2010534377.tif 000005
【図４】
2010534377.tif 000006
【図５】
2010534377.tif 000007
【国際調査報告】
2010534377.tif 000008
2010534377.tif 000009