(57)【要約】  本発明の主題は、とりわけ、少なくとも２つの論理コアの実装を可能にし、該少なくとも２つの論理コアに共通の少なくとも１つのリソースをスタンバイにするための手段を備えている少なくとも１つのマイクロプロセッサの一部分のスタンバイ管理の最適化である。前記少なくとも２つの論理コアの各々の所望のスタンバイ状態が決定（４００）された後で、前記少なくとも２つの論理コアのうちの１つの論理コアの前記所望のスタンバイ状態が、前記少なくとも２つの論理コアのうちの残りの論理コアの前記所望のスタンバイ状態と比較される。前記比較に応答して、前記スタンバイを準備し、さらには／あるいは前記少なくとも２つの論理コアのうちの前記１つの論理コアの復帰を可能にするインストラクションが開始される（４２０）。
2013531836.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにおいて、前記コンピュータのマイクロプロセッサであって、少なくとも２つの論理コアを実装することができ、前記少なくとも２つの論理コアに共通の少なくとも１つのリソースをスタンバイさせるための手段を備えている少なくとも１つのマイクロプロセッサに関し、該マイクロプロセッサの少なくとも一部のスタンバイの管理を最適化するために、前記コンピュータの論理層において実行される方法であって、
前記少なくとも２つの論理コアの各々の所望のスタンバイ状態を決定するステップ（４００）と、
前記少なくとも２つの論理コアのうちの１つの論理コアの前記所望のスタンバイ状態を、前記少なくとも２つの論理コアのうちの残りの論理コアの前記所望のスタンバイ状態と比較するステップと、
前記比較に応答して、前記スタンバイを準備し、さらには／あるいはスタンバイの期間の後の前記少なくとも２つの論理コアのうちの前記１つの論理コアの復帰を可能にするインストラクションを開始するステップ（４２０）と
を含むことを特徴とする方法。
【請求項２】
前記比較するステップが、
前記少なくとも２つの論理コアの各々の前記所望のスタンバイ状態に従って、前記マイクロプロセッサのスタンバイ状態を推定するステップ（４１０）と、
前記マイクロプロセッサの前記推定したスタンバイ状態を、前記少なくとも２つの論理コアのうちの前記１つの論理コアの前記所望のスタンバイ状態と比較するステップ（４１５）と
を含んでおり、
前記スタンバイを準備し、さらには／あるいはスタンバイの期間の後の前記少なくとも２つの論理コアのうちの前記１つの論理コアの復帰を可能にする前記インストラクションが、前記マイクロプロセッサの前記推定したスタンバイ状態が前記少なくとも２つの論理コアのうちの前記１つの論理コアの前記推定されたスタンバイ状態に一致する場合に開始（４２０）される、請求項１に記載の方法。
【請求項３】
前記少なくとも２つの論理コアのうちの少なくとも１つの論理コアの所望のスタンバイ状態の変化を検出するステップ（４０５）
をさらに含んでおり、
前記比較するステップおよび前記インストラクションを開始するステップが、前記少なくとも２つの論理コアのうちの前記少なくとも１つの論理コアの所望のスタンバイ状態の変化が検出される場合に限って実行される、請求項１または２に記載の方法。
【請求項４】
前記少なくとも１つのマイクロプロセッサが、マルチコアのマイクロプロセッサであり、前記少なくとも２つの論理コアが同じ物理コア内に実装されている、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記少なくとも２つの論理コアのうちの前記１つの論理コアの前記所望のスタンバイ状態を送信するステップ（４２５）
をさらに含んでおり、
前記送信するステップが、前記インストラクションを開始するステップの後で実行される、請求項４に記載の方法。
【請求項６】
前記論理層が、前記コンピュータに実装されたオペレーティングシステムに属する、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記マイクロプロセッサにおける論理コアの実装を可能にするモードが有効であることを確認する最初のステップを含む、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記少なくとも２つの論理コアの実装が、同時マルチスレッディングと呼ばれるモードにもとづいている、請求項１から７のいずれか一項に記載の方法。
【請求項９】
コンピュータ上で実行されたときに、請求項１から８のいずれか一項に記載の方法の各ステップを実行するように構成されたインストラクションを含んでいるコンピュータプログラム。
【請求項１０】
コンピュータまたはマイクロプロセッサによって部分的または完全に読み取ることができ、取り外し可能、あるいは取り外し可能ではない、請求項１から８のいずれか一項に記載の方法の各ステップを実行するためのコンピュータプログラムのコードインストラクションを含んでいる情報記憶手段。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサにおけるスタンバイの管理に関し、さらに詳しくは、特に高性能計算の関連において、例えば同時マルチスレッディングという名称で知られる技術を実装するマイクロプロセッサなど、複数の論理コアの実装を可能にするマイクロプロセッサのスタンバイの管理を最適化する方法、ならびにそのような方法を実行するコンピュータプログラムに関する。
【背景技術】
【０００２】
高性能計算（ＨＰＣ）が、特に航空、エネルギー、気候、および生命科学などの技術分野において、大学および産業界における研究などのために開発されている。モデル化およびシミュレーションが、特により信頼できかつ消費するエネルギーも少ない革新的な製品の開発コストの削減および商品化を迅速にすることを可能にする。研究技術者にとって、高性能計算は、不可欠の研究手段となっている。
【０００３】
この計算は、一般に、クラスタと呼ばれるデータ処理システムにおいて実行される。クラスタは、典型的には、相互接続されたノードの組を備えている。いくつかのノード（計算ノード）は、計算タスクの実行に使用され、別のノード（ストレージノード）は、データの記憶に使用され、他の１つ以上のノード（管理ノード）が、クラスタを管理する。各々のノードは、例えばＬｉｎｕｘ（登録商標）などのオペレーティングシステムを実行するサーバである。ノード間の接続は、例えばＥｔｈｅｒｎｅｔ（登録商標）またはＩｎｆｉｎｉｂａｎｄのリンク（Ｉｎｆｉｎｉｂａｎｄは商標である）を使用して行なわれる。
【０００４】
図１が、ファットツリー（ｆａｔ−ｔｒｅｅ）形式のクラスタの接続形態１００の一例の概略図である。クラスタが、ノード（大まかに１０５で指し示されている）の組を備えている。組１１０に属するノードが、ここでは計算ノードである一方で、組１１５のノードは、サービスノード（ストレージノードおよび管理ノード）である。計算ノードを、計算アイランドと称される下位の組１２０にグループ化でき、組１１５は、サービスアイランドと称される。
【０００５】
ノードは、スイッチによって例えば階層的に接続される。図１に示した例では、ノードが第１のレベルのスイッチ１２５へと接続され、第１のレベルのスイッチ１２５が、第２のレベルのスイッチ１３０へと接続され、次いで第２のレベルのスイッチ１３０が、第３のレベルのスイッチ１３５へと接続されている。
【０００６】
図２に示されるように、各々のノードは、通常は１つ以上のマイクロプロセッサ、ローカルメモリ、および通信インターフェイスを備えている。より具体的には、ここでは、ノード２００が通信バス２０２を備えており、
中央演算ユニット（ＣＰＵ）またはマイクロプロセッサ２０４、
プログラムの実行時に生成および変更される変数およびパラメータを記録するように構成されたレジスタを備えるランダムアクセスメモリ（ＲＡＭ）２０６の構成要素（図示のように、各々のランダムアクセスメモリ構成要素をマイクロプロセッサに組み合わせることができる）、ならびに
データの送信および受信を行なうように構成された通信インターフェイス２０８が通信バス２０２へと接続されている。
【０００７】
ノード２００は、ここでは、特にプログラムの実行可能コードを収容することができるハードディスクなどの内部ストレージ手段２１２をさらに有している。
【０００８】
通信バスが、ノード２００に含まれ、あるいはノード２００へと接続される種々の構成要素の間の通信および相互運用を可能にしている。マイクロプロセッサ２０４が、１つ以上のプログラムのソフトウェアコードの各部のインストラクションの実行を制御および指揮する。起動時に、例えばハードディスクなどの不揮発メモリに保存された１つ以上のプログラムが、ランダムアクセスメモリ２０６へと転送される。
【０００９】
各々のノードの性能を向上させるために、使用されるマイクロプロセッサは、多くの場合にマルチコアのマイクロプロセッサであり、すなわち並行して使用することができる複数のコアを備えるマイクロプロセッサである。
【００１０】
さらに、特定のマイクロプロセッサは、複数の論理コアを備えており、各々の物理コアが、複数の論理コアを実装するように構成されている。同時マルチスレッディング（あるいは、Ｉｎｔｅｌ（Ｉｎｔｅｌは商標である）の実装によれば、ハイパースレッディング）と呼ばれるこの技術は、マイクロプロセッサの物理コアにおいて複数の基本プロセス（スレッドと呼ばれる）を実質的に並列に実行することを可能にする（実行コンテキストが同時にロードされ、スレッドが実行カーネルを共有する）。したがって、この技術を実装する物理コアは、通常は物理コアを利用する論理層によってデュアルコアとして認識される。
【００１１】
この技術を実装する物理コアは、論理コア間で共有されるリソースと、各々の論理コアに特有のリソースとを含む。共有されるリソースは、典型的には、実行ユニット、キャッシュメモリ、およびバスインターフェイスである。特有のリソースは、特に論理コアのデータおよびインストラクション、セグメント、および制御のためのレジスタ、ならびに割り込みコントローラ（アドバンスト・プログラマブル・インターラプト・コントローラ（Ａｄｖａｎｃｅｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ  Ｃｏｎｔｒｏｌｌｅｒ）を略してＡＰＩＣと呼ばれる）である。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上述の技術は、特定の用途（特に、画像処理の用途）においてマイクロプロセッサの性能の著しい向上を可能にできる一方で、他の用途（特に、科学計算の用途）においては、性能がほんのわずかしか向上せず、低下することさえあることが明らかになっている。したがって、高性能計算に使用されるクラスタにおいては、クラスタのリソースを可能な限り利用するようにクラスタを最適化するという原理に逆らい、通常は無効にされている。
【００１３】
本発明は、上述した問題のうちの少なくとも１つを解決できるようにする。
【課題を解決するための手段】
【００１４】
本発明は、コンピュータにおいて、該コンピュータのマイクロプロセッサであって、少なくとも２つの論理コアを実装することができ、該少なくとも２つの論理コアに共通の少なくとも１つのリソースをスタンバイさせるための手段を備えている少なくとも１つのマイクロプロセッサに関し、該マイクロプロセッサの少なくとも一部のスタンバイの管理を最適化するために、前記コンピュータの論理層において実行される方法であって、
前記少なくとも２つの論理コアの各々の所望のスタンバイ状態を決定するステップと、
前記少なくとも２つの論理コアのうちの１つの論理コアの前記所望のスタンバイ状態を、前記少なくとも２つの論理コアのうちの残りの論理コアの前記所望のスタンバイ状態と比較するステップと、
前記比較に応答して、前記スタンバイを準備し、さらには／あるいはスタンバイの期間の後の前記少なくとも２つの論理コアのうちの前記１つの論理コアの復帰を可能にするインストラクションを開始するステップと
を含む方法に関する。
【００１５】
このようにして、本発明による方法は、複数の論理コアを同じマイクロプロセッサに実装することを、マイクロプロセッサの特定のリソースをスタンバイにする機能が使用されるときの当該マイクロプロセッサの性能を知覚できるほどには低下させずに可能にする。
【００１６】
特定の実施の形態によれば、前記比較するステップが、
前記少なくとも２つの論理コアの各々の前記所望のスタンバイ状態に従って、前記マイクロプロセッサのスタンバイ状態を推定するステップと、
前記マイクロプロセッサの前記推定したスタンバイ状態を、前記少なくとも２つの論理コアのうちの前記１つの論理コアの前記所望のスタンバイ状態と比較するステップと
を含んでおり、
前記スタンバイを準備し、さらには／あるいは前記少なくとも２つの論理コアのうちの前記１つの論理コアの復帰を可能にする前記インストラクションが、前記マイクロプロセッサの前記推定されたスタンバイ状態が前記少なくとも２つの論理コアのうちの前記１つの論理コアの前記推定されたスタンバイ状態に一致する場合に開始される。
【００１７】
したがって、論理コアの所望のスタンバイ状態の間の比較の回数が、特に３つ以上の論理コアが実装される場合に抑制される。
【００１８】
好都合には、この方法が、前記少なくとも２つの論理コアのうちの少なくとも１つの論理コアの所望のスタンバイ状態の変化を検出するステップをさらに含み、前記比較するステップおよび前記インストラクションを開始するステップが、前記少なくとも２つの論理コアのうちの前記少なくとも１つの論理コアの所望のスタンバイ状態の変化が検出された場合に限って実行される。この検出ステップは、好ましくは前記論理層が属するオペレーティングシステムによって直接実行される。
【００１９】
特定の実施の形態によれば、前記少なくとも１つのマイクロプロセッサが、マルチコアのマイクロプロセッサであり、前記少なくとも２つの論理コアが、同じ物理コア内に実装されている。したがって、本発明による方法を、特に高性能計算の関連に適合した高性能のマイクロプロセッサにおいて実行することができる。
【００２０】
さらに特定の実施の形態によれば、この方法が、前記少なくとも２つの論理コアのうちの前記１つの論理コアの前記所望のスタンバイ状態を送信するステップをさらに含み、該送信するステップが、前記インストラクションを開始するステップの後で実行される。したがって、本発明による方法の実施に、使用されるプロセッサのいかなる変更も必要でない。
【００２１】
前記論理層は、好ましくは前記コンピュータに実装されたオペレーティングシステムに属する。
【００２２】
本方法は、好ましくは、前記マイクロプロセッサにおける論理コアの実装を可能にするモードが有効であることを確認する最初のステップを含む。したがって、本発明による方法が、適切なときにしか実行されない。
【００２３】
前記少なくとも２つの論理コアの実装は、例えば同時マルチスレッディングと呼ばれるモードにもとづく。
【００２４】
さらに本発明は、コンピュータ上で実行されたときに上述の方法の各ステップを実行するように構成されたインストラクションを含んでいるコンピュータプログラム、ならびにコンピュータまたはマイクロプロセッサによって部分的または完全に読み取ることができ、取り外し可能、あるいは取り外し可能ではない、上述の方法の各ステップを実行するためのコンピュータプログラムのコードインストラクションを含んでいる情報記憶手段に関する。
【００２５】
このコンピュータプログラムおよびこの記憶手段によってもたらされる利点は、上述した利点と同様である。
【００２６】
本発明の他の利点、目的、および特徴が、あくまでも本発明を限定するものではない例として添付の図面に関連して提示される以下の詳細な説明から、明らかになるであろう。
【図面の簡単な説明】
【００２７】
【図１】クラスタの接続形態の例を示している。
【図２】クラスタのノードのアーキテクチャの例を示している。
【図３】クラスタに属するノードのマイクロプロセッサの論理アーキテクチャの概略図であり、ここではマイクロプロセッサがそれぞれが２つの論理コアを実装する２つのコアを備えている。
【図４】オペレーティングシステムと協働し、あるいはコンピュータの論理層と協働するマイクロプロセッサの物理コアを、当該物理コアに実装された各々の論理コアに関する所望のスタンバイ状態に従ってスタンバイさせるためのプロセスを制御するために、オペレーティングシステムによって実行され、あるいはより一般的にはコンピュータの論理層によって実行されるアルゴリズムの例を示している。
【発明を実施するための形態】
【００２８】
すでに示したように、クラスタのノードにおいて使用することができる多数のマイクロプロセッサが、論理コアの生成を可能にする同時マルチスレッディング（あるいは、Ｉｎｔｅｌ（Ｉｎｔｅｌは商標である）の実装によれば、ハイパースレッディング）と呼ばれる技術を実装している。これらのマイクロプロセッサが使用されるとき、この技術を有効にでき、あるいは無効にすることができる。
【００２９】
図３は、クラスタに属するノードのマイクロプロセッサの論理アーキテクチャの概略図であり、ここではマイクロプロセッサが、それぞれが２つの論理コアを実装する２つの物理コアを備えており、すなわち高性能計算のアプリケーションの実行において、マイクロプロセッサの同時マルチスレッディングが有効にされている。ここでは、各々の物理コアが、各々の物理コアに実装された異なる実行ユニットのおかげで、同じサイクルにおいて最大４つのインストラクションを実行することができる。すなわち、２つの論理コアの各々が、他方のコアによってなされる使用に応じて、最大４つのインストラクションを実行することができる。コンフリクトの場合には、コンフリクト解決機構が、該当のリソースを各々の論理コアに交互に帰属させる。
【００３０】
図示のとおり、物理コア３００−１および３００−２が、システムバス３０５によって接続されており、システムバス３０５には、特に通信インターフェイスおよびメモリを接続することができる。各々の物理コアが、論理コア間で共有される実行ユニットと、各々の論理コアに特有のインストラクションレジスタとを備えている。
【００３１】
したがって、物理コア３００−１が、実行ユニットの組３１０−１ならびに物理コア３００−１の第１の論理コアへと接続されたインストラクションレジスタ３１５−１１および物理コア３００−１の第２の論理コアへと接続されたインストラクションレジスタ３１５−１２を備えている。同様に、物理コア３００−２が、実行ユニットの組３１０−２ならびに物理コア３００−２の第１の論理コアへと接続されたインストラクションレジスタ３１５−２１および物理コア３００−２の第２の論理コアへと接続されたインストラクションレジスタ３１５−２２を備えている。
【００３２】
ここで、最適化の理由のため、物理コアの論理コアが、好ましくは実行中の高性能計算のアプリケーションに関するインストラクションの実行へと割り当てられる一方で、同じ物理コアの他方の論理コアが、好都合には一般的にデーモンと称されるオペレーティングシステムの補助的タスクの実行に関連付けられることに、注意すべきである。結果として、論理コアへの負荷が、同じ物理コアの他方の論理コアへの負荷よりもはるかに大きくなる。したがって、典型的には、論理コアへの負荷が１００パーセントに近付く一方で、同じ物理コアの他方の論理コアへの負荷は、およそ５％である。
【００３３】
一般に、同時マルチスレッディングモードが有効にされ、すなわち論理コアが使用され、高性能計算のアプリケーションが実行されるとき、クラスタの性能が低下することが明らかになっている。この現象を分析したところ、この性能の低下が、特にプロセッサの特定の構成要素をスタンバイにする機能の管理に関係していることを示している。本発明は、それらの機能を改良し、この性能の問題を軽減することを目的とする。
【００３４】
まず最初に、エネルギーの節約および回路の温度制御の理由で、最近のマイクロプロセッサが、それらのリソースの使用に応じて、プロセッサの性能を一時的に大きく低下させることなく一部のリソースを停止させることができるスタンバイ機能を備えていることを思い出すべきである（一般に、使用されておらず、あるいは少ししか使用されていないリソースだけが該当する）。マイクロプロセッサのコアのスタンバイ状態は、一般に「Ｃ状態（Ｃ−ｓｔａｔｅ）」と呼ばれ、Ｃｉによって表わされ、ここでｉは、ゼロからｎまで変化する指数であり、ｎは典型的には８に等しい。状態Ｃ０において、コアならびにコアに接続されたすべてのリソースがアクティブである一方で、状態Ｃ８においては、コアが完全なスタンバイにある。中間の状態は、中間的なスタンバイの状態に相当する。例として、物理コアのレベル１のキャッシュメモリ（キャッシュＬ１と称される）は、物理コアがスタンバイの状態Ｃ３にあるときにスタンバイとなる。
【００３５】
物理コアのスタンバイ状態は、多くの場合にオペレーティングシステムによって決定され、物理コアを備えるマイクロプロセッサへと送信される。次いで、マイクロプロセッサが、該当のリソースのスタンバイへの移行を管理し、あるいは対照的に、該当のリソースのスタンバイの解除を管理する。さらに、マイクロプロセッサに物理コアに関するスタンバイ状態を送信する前に、オペレーティングシステムは、スタンバイを準備し、さらには／あるいはスタンバイの終わりにおける物理コアの復帰を可能にするインストラクションを開始することができる。したがって、例えば、コアがスタンバイ状態Ｃ２からスタンバイ状態Ｃ３へと移行しなければならないとき、該当するレベル１のキャッシュメモリ（キャッシュＬ１）の中身が、別のメモリ（典型的には、関連のレベル２のキャッシュメモリ）へとコピーされる。物理コアは、このコピー作業の後でなければ、状態Ｃ３へと移行されない。物理コアが状態Ｃ３から状態Ｃ２へと移行した後で、レベル１のキャッシュメモリの中身が、アプリケーションが該当のデータにアクセスするときに徐々に回復される。
【００３６】
同時マルチスレッディングモードが有効であり、すなわち論理コアが使用されているとき、所望のスタンバイ状態がオペレーティングシステムによって各々の論理コアに組み合わせられる。この所望のスタンバイ状態は、オペレーティングシステムによって決定され、マイクロプロセッサへと送信され、次いでマイクロプロセッサが、受信した所望のスタンバイの状態に応じて、特定のリソースをスタンバイに移行させることができる。論理コアの所望のスタンバイ状態が、別の論理コアの所望のスタンバイ状態とは異なる場合、マイクロプロセッサによって物理コアへと適用されるスタンバイ状態は、最も多くのリソースがアクティブとなるスタンバイ状態である。換言すると、２つの論理コアを備える物理コアのスタンバイ状態Ｃｉは、２つの論理コアの所望のスタンバイ状態がそれぞれＣｊおよびＣｋであるとき、以下の方法で決定される。
【００３７】
【数１】
2013531836.tif 000003
【００３８】
しかしながら、たとえ物理コアのスタンバイ状態が当該物理コアに係る論理コアの各々の所望のスタンバイ状態に起因して変化することがなくても、スタンバイへの移行を準備し、さらには／あるいは倫理コアの復帰を可能にするインストラクションを、スタンバイへの移行に先立って実行することができる。この現象は、論理コアの所望のスタンバイ状態がオペレーティングシステムによって決定される場合に、物理コアの状態を変化させる決定が、物理コアを備えるマイクロプロセッサによって、オペレーティングシステムとは無関係に行なわれるということに起因する。さらに、スタンバイへの移行を準備し、さらには／あるいは論理コアの後の復帰を可能にするためのインストラクションの実行が、物理コアを妨げる。したがって、例えば論理コアの所望のスタンバイ状態がＣ２からＣ３へと移行するとき、レベル１のキャッシュメモリの中身が別のメモリへとコピーされるが、これが、このレベル１のキャッシュメモリを使用する他の論理コアに関して、レベル１のキャッシュメモリを妨げる。これが、これらの論理コアの性能の低下につながる。
【００３９】
したがって、本発明は、特に、スタンバイへの移行を準備し、さらには／あるいは論理コアの復帰を可能にするインストラクションを、物理コアの推定されるスタンバイ状態のみに応じて開始することからなり、すなわち該当の論理コアの所望のスタンバイ状態だけによるのではなく、物理コアの各々の論理コアの所望のスタンバイ状態に応じて開始することからなる。換言すると、本発明は、物理コアに実装された論理コアの所望のスタンバイ状態に応じた物理コアのスタンバイへの移行の決定のための機構を、オペレーティングシステムにおいて模擬することを目的とする。
【００４０】
図４が、オペレーティングシステムと協働し、あるいはコンピュータの論理層と協働するマイクロプロセッサの物理コアを、当該物理コアに実装された各々の論理コアに関する所望のスタンバイ状態に従ってスタンバイさせるためのプロセスを制御するために、オペレーティングシステムによって実行され、あるいはより一般的にはコンピュータの論理層によって実行されるアルゴリズムの例を示している。
【００４１】
図４に示したアルゴリズムが、好ましくは同時マルチスレッディングが有効にされている場合に限って実行されることに、注意すべきである。したがって、最初のステップ（図示されていない）は、当該モードが有効であることを確認することからなる。
【００４２】
時刻ｔにおける論理コアＣＬｒの所望のスタンバイ状態Ｃｊ（ｔ）（ＣＬｒ）を決定（ステップ４００）した後で、その所望のスタンバイ状態が、Ｃｊ（ｔ−１）（ＣＬｒ）と称される先の時刻（ｔ−１）における当該論理コアの所望のスタンバイ状態に対して変化したか否かを判断するために、試験が実行される（ステップ４０５）。所望のスタンバイ状態を見積もり、所望のスタンバイ状態の変化を判断するこれらのステップは、従来からのシステムにおいて実行されるステップと同様である。それらは、特に、該当の論理コアによって実行されるべきインストラクションの分析にもとづく。
【００４３】
論理コアＣＬｒの所望のスタンバイ状態の変化が検出された場合、論理コアＣＬｒが実装される物理コアＣＰｔのスタンバイ状態が推定される（ステップ４１０）。例として、推定される物理コアＣＬｔのスタンバイ状態Ｃｉ（ＣＰｔ）は、最も多くのリソースが活動するスタンバイ状態に相当し、すなわちこの物理コアに実装された論理コアの所望のスタンバイ状態Ｃ０，・・・，ｎのうちで、指数が最も小さいスタンバイ状態に相当する。当然ながら、物理コアのスタンバイ状態を推定するためのモデルは、物理コアそのものに実際に実装されたものに一致していなければならない。
【００４４】
次いで、論理コアＣＬｒの所望のスタンバイ状態Ｃｊ（ＣＬｒ）が、推定された物理コアＣＰｔのスタンバイ状態と同じであるか否かを判断し、すなわち指数ｉおよびｊが同じであるかを判断するための試験が実行される（ステップ４１５）。結果が肯定であり、論理コアＣＬｒをそれまでのスタンバイ状態よりも深いスタンバイ状態へと移行させるべき場合、オペレーティングシステム（または、論理層）は、スタンバイを準備し、さらには／あるいはスタンバイの終了時の論理コアの後の復帰を可能にするためのインストラクションを開始する（ステップ４２０）。このステップは、例えばレジスタの中身をコピーする動作を開始させることからなる。その後に、所望のスタンバイ状態Ｃｊ（ＣＬｒ）がプロセッサへと送信され（ステップ４２５）、プロセッサが、物理コアＣＰｔ上に実装された残りの論理コアの所望のスタンバイ状態に応じて、この物理コアのスタンバイ状態を変更し、あるいは変更しない。
【００４５】
論理コアＣＬｒの所望のスタンバイ状態Ｃｊ（ＣＬｒ）が、推定された物理コアＣＰｔのスタンバイ状態と同じでない場合、スタンバイを準備し、さらには／あるいはスタンバイの終了時の論理コアＣＬｒの復帰を可能にするためのインストラクションは、マイクロプロセッサへと送信されない。しかしながら、図４に示されるとおり、それでもなお論理コアＣＬｒの所望のスタンバイ状態Ｃｊ（ＣＬｒ）をマイクロプロセッサへと送信することができるが、このステップは、新たな所望のスタンバイ状態が該当の物理コアのスタンバイ状態を変更しない場合には不要である。
【００４６】
特定の実施の形態によれば、図４に示したアルゴリズムを、例えばＬｉｎｕｘカーネルなど、使用されるオペレーティングシステムのカーネルにおいて実行することができる。このように、論理コアのスタンバイ状態のマイクロプロセッサへの伝達機能を傍受することによって、当該論理コアを実装する物理コアの推定したスタンバイ状態に応じて、スタンバイを準備し、さらには／あるいは論理コアの復帰を可能にするためのインストラクションを、開始したり、あるいは開始しないようにすることができる。推定は、当該物理コアに実装されるすべての論理コアの状態にもとづいて行なわれる。
【００４７】
さらに、図４を参照して説明したアルゴリズムは、論理コアの所望のスタンバイ状態を、この論理コアを実装する論理コアの推定によるスタンバイ状態と比較することを目的とするが、同等の方法で、同じ物理コア上に実装された論理コアの所望のスタンバイ状態同士を比較して、スタンバイを準備し、さらには／あるいは論理コアの後の復帰を可能にするためのインストラクションを、実行すべきか否かを判断することも可能である。
【００４８】
例として、２つの論理コアが同じ物理コアに実装される場合、第１の論理コアの所望のスタンバイ状態が、第２の論理コアの所望のスタンバイ状態と比較される。このようにして、第１の論理コアのスタンバイ状態および所望のスタンバイ状態がＣ１であり、第２の論理コアのスタンバイ状態がＣ１であり、第２の論理コアの所望のスタンバイ状態がＣ２である場合に、第２の論理コアのスタンバイを準備し、さらには／あるいは後の復帰を可能にするためのインストラクションは、これらの論理コアが実装される物理コアのスタンバイ状態が変更されないため、実行されない。対照的に、第１および第２の論理コアのスタンバイ状態がＣ１であり、第１および第２の論理コアの所望のスタンバイ状態がＣ２である場合には、第１および第２の論理コアのスタンバイを準備し、さらには／あるいは後の復帰を可能にするためのインストラクションが、これらの論理コアが実装される物理コアのスタンバイ状態が変更されるため、実行される。
【００４９】
当然ながら、特定のニーズを満たすために、当業者であれば以上の説明に変更を加えることができるであろう。
【図１】
2013531836.tif 000004
【図２】
2013531836.tif 000005
【図３】
2013531836.tif 000006
【図４】
2013531836.tif 000007
【国際調査報告】
2013531836.tif 000008
2013531836.tif 000009
2013531836.tif 000010
2013531836.tif 000011