JP6073955B2 - 複数の論理コアの実装を可能にするマイクロプロセッサのスタンバイの管理を最適化するための方法およびそのような方法を実行するコンピュータプログラム - Google Patents

複数の論理コアの実装を可能にするマイクロプロセッサのスタンバイの管理を最適化するための方法およびそのような方法を実行するコンピュータプログラム Download PDF

Info

Publication number
JP6073955B2
JP6073955B2 JP2015078235A JP2015078235A JP6073955B2 JP 6073955 B2 JP6073955 B2 JP 6073955B2 JP 2015078235 A JP2015078235 A JP 2015078235A JP 2015078235 A JP2015078235 A JP 2015078235A JP 6073955 B2 JP6073955 B2 JP 6073955B2
Authority
JP
Japan
Prior art keywords
logical
logical cores
standby
microprocessor
cores
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
JP2015078235A
Other languages
English (en)
Other versions
JP2015158932A (ja
Inventor
ブリユ,グザビエ
ウエランレテール,フランソワ
ウエルテルラン,ブノワ
Original Assignee
ブル・エス・アー・エス
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 ブル・エス・アー・エス filed Critical ブル・エス・アー・エス
Publication of JP2015158932A publication Critical patent/JP2015158932A/ja
Application granted granted Critical
Publication of JP6073955B2 publication Critical patent/JP6073955B2/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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • 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
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、マイクロプロセッサにおけるスタンバイの管理に関し、さらに詳しくは、特
に高性能計算の関連において、例えば同時マルチスレッディングという名称で知られる技
術を実装するマイクロプロセッサなど、複数の論理コアの実装を可能にするマイクロプロ
セッサのスタンバイの管理を最適化する方法、ならびにそのような方法を実行するコンピ
ュータプログラムに関する。
高性能計算(HPC)が、特に航空、エネルギー、気候、および生命科学などの技術分
野において、大学および産業界における研究などのために開発されている。モデル化およ
びシミュレーションが、特により信頼できかつ消費するエネルギーも少ない革新的な製品
の開発コストの削減および商品化を迅速にすることを可能にする。研究技術者にとって、
高性能計算は、不可欠の研究手段となっている。
この計算は、一般に、クラスタと呼ばれるデータ処理システムにおいて実行される。ク
ラスタは、典型的には、相互接続されたノードの組を備えている。いくつかのノード(計
算ノード)は、計算タスクの実行に使用され、別のノード(ストレージノード)は、デー
タの記憶に使用され、他の1つ以上のノード(管理ノード)が、クラスタを管理する。各
々のノードは、例えばLinux(登録商標)などのオペレーティングシステムを実行す
るサーバである。ノード間の接続は、例えばEthernet(登録商標)またはInf
inibandのリンク(Infinibandは商標である)を使用して行なわれる。
図1が、ファットツリー(fat−tree)形式のクラスタの接続形態100の一例
の概略図である。クラスタが、ノード(大まかに105で指し示されている)の組を備え
ている。組110に属するノードが、ここでは計算ノードである一方で、組115のノー
ドは、サービスノード(ストレージノードおよび管理ノード)である。計算ノードを、計
算アイランドと称される下位の組120にグループ化でき、組115は、サービスアイラ
ンドと称される。
ノードは、スイッチによって例えば階層的に接続される。図1に示した例では、ノード
が第1のレベルのスイッチ125へと接続され、第1のレベルのスイッチ125が、第2
のレベルのスイッチ130へと接続され、次いで第2のレベルのスイッチ130が、第3
のレベルのスイッチ135へと接続されている。
図2に示されるように、各々のノードは、通常は1つ以上のマイクロプロセッサ、ロー
カルメモリ、および通信インターフェイスを備えている。より具体的には、ここでは、ノ
ード200が通信バス202を備えており、
中央演算ユニット(CPU)またはマイクロプロセッサ204、
プログラムの実行時に生成および変更される変数およびパラメータを記録するように構
成されたレジスタを備えるランダムアクセスメモリ(RAM)206の構成要素(図示の
ように、各々のランダムアクセスメモリ構成要素をマイクロプロセッサに組み合わせるこ
とができる)、ならびに
データの送信および受信を行なうように構成された通信インターフェイス208が通信
バス202へと接続されている。
ノード200は、ここでは、特にプログラムの実行可能コードを収容することができる
ハードディスクなどの内部ストレージ手段212をさらに有している。
通信バスが、ノード200に含まれ、あるいはノード200へと接続される種々の構成
要素の間の通信および相互運用を可能にしている。マイクロプロセッサ204が、1つ以
上のプログラムのソフトウェアコードの各部のインストラクションの実行を制御および指
揮する。起動時に、例えばハードディスクなどの不揮発メモリに保存された1つ以上のプ
ログラムが、ランダムアクセスメモリ206へと転送される。
各々のノードの性能を向上させるために、使用されるマイクロプロセッサは、多くの場
合にマルチコアのマイクロプロセッサであり、すなわち並行して使用することができる複
数のコアを備えるマイクロプロセッサである。
さらに、特定のマイクロプロセッサは、複数の論理コアを備えており、各々の物理コア
が、複数の論理コアを実装するように構成されている。同時マルチスレッディング(ある
いは、Intel(Intelは商標である)の実装によれば、ハイパースレッディング
)と呼ばれるこの技術は、マイクロプロセッサの物理コアにおいて複数の基本プロセス(
スレッドと呼ばれる)を実質的に並列に実行することを可能にする(実行コンテキストが
同時にロードされ、スレッドが実行カーネルを共有する)。したがって、この技術を実装
する物理コアは、通常は物理コアを利用する論理層によってデュアルコアとして認識され
る。
この技術を実装する物理コアは、論理コア間で共有されるリソースと、各々の論理コア
に特有のリソースとを含む。共有されるリソースは、典型的には、実行ユニット、キャッ
シュメモリ、およびバスインターフェイスである。特有のリソースは、特に論理コアのデ
ータおよびインストラクション、セグメント、および制御のためのレジスタ、ならびに割
り込みコントローラ(アドバンスト・プログラマブル・インターラプト・コントローラ(
Advanced Programmable Interrupt Controll
er)を略してAPICと呼ばれる)である。
上述の技術は、特定の用途(特に、画像処理の用途)においてマイクロプロセッサの性
能の著しい向上を可能にできる一方で、他の用途(特に、科学計算の用途)においては、
性能がほんのわずかしか向上せず、低下することさえあることが明らかになっている。し
たがって、高性能計算に使用されるクラスタにおいては、クラスタのリソースを可能な限
り利用するようにクラスタを最適化するという原理に逆らい、通常は無効にされている。
本発明は、上述した問題のうちの少なくとも1つを解決できるようにする。
本発明は、コンピュータにおいて、該コンピュータのマイクロプロセッサであって、少
なくとも2つの論理コアを実装することができ、該少なくとも2つの論理コアに共通の少
なくとも1つのリソースをスタンバイさせるための手段を備えている少なくとも1つのマ
イクロプロセッサに関し、該マイクロプロセッサの少なくとも一部のスタンバイの管理を
最適化するために、前記コンピュータの論理層において実行される方法であって、
前記少なくとも2つの論理コアの各々の所望のスタンバイ状態を決定するステップと、
前記少なくとも2つの論理コアのうちの1つの論理コアの前記所望のスタンバイ状態を
、前記少なくとも2つの論理コアのうちの残りの論理コアの前記所望のスタンバイ状態と
比較するステップと、
前記比較に応答して、前記スタンバイを準備し、さらには/あるいはスタンバイの期間
の後の前記少なくとも2つの論理コアのうちの前記1つの論理コアの復帰を可能にするイ
ンストラクションを開始するステップと
を含む方法に関する。
このようにして、本発明による方法は、複数の論理コアを同じマイクロプロセッサに実
装することを、マイクロプロセッサの特定のリソースをスタンバイにする機能が使用され
るときの当該マイクロプロセッサの性能を知覚できるほどには低下させずに可能にする。
特定の実施の形態によれば、前記比較するステップが、
前記少なくとも2つの論理コアの各々の前記所望のスタンバイ状態に従って、前記マイ
クロプロセッサのスタンバイ状態を推定するステップと、
前記マイクロプロセッサの前記推定したスタンバイ状態を、前記少なくとも2つの論理
コアのうちの前記1つの論理コアの前記所望のスタンバイ状態と比較するステップと
を含んでおり、
前記スタンバイを準備し、さらには/あるいは前記少なくとも2つの論理コアのうちの
前記1つの論理コアの復帰を可能にする前記インストラクションが、前記マイクロプロセ
ッサの前記推定されたスタンバイ状態が前記少なくとも2つの論理コアのうちの前記1つ
の論理コアの前記推定されたスタンバイ状態に一致する場合に開始される。
したがって、論理コアの所望のスタンバイ状態の間の比較の回数が、特に3つ以上の論
理コアが実装される場合に抑制される。
好都合には、この方法が、前記少なくとも2つの論理コアのうちの少なくとも1つの論
理コアの所望のスタンバイ状態の変化を検出するステップをさらに含み、前記比較するス
テップおよび前記インストラクションを開始するステップが、前記少なくとも2つの論理
コアのうちの前記少なくとも1つの論理コアの所望のスタンバイ状態の変化が検出された
場合に限って実行される。この検出ステップは、好ましくは前記論理層が属するオペレー
ティングシステムによって直接実行される。
特定の実施の形態によれば、前記少なくとも1つのマイクロプロセッサが、マルチコア
のマイクロプロセッサであり、前記少なくとも2つの論理コアが、同じ物理コア内に実装
されている。したがって、本発明による方法を、特に高性能計算の関連に適合した高性能
のマイクロプロセッサにおいて実行することができる。
さらに特定の実施の形態によれば、この方法が、前記少なくとも2つの論理コアのうち
の前記1つの論理コアの前記所望のスタンバイ状態を送信するステップをさらに含み、該
送信するステップが、前記インストラクションを開始するステップの後で実行される。し
たがって、本発明による方法の実施に、使用されるプロセッサのいかなる変更も必要でな
い。
前記論理層は、好ましくは前記コンピュータに実装されたオペレーティングシステムに
属する。
本方法は、好ましくは、前記マイクロプロセッサにおける論理コアの実装を可能にする
モードが有効であることを確認する最初のステップを含む。したがって、本発明による方
法が、適切なときにしか実行されない。
前記少なくとも2つの論理コアの実装は、例えば同時マルチスレッディングと呼ばれる
モードにもとづく。
さらに本発明は、コンピュータ上で実行されたときに上述の方法の各ステップを実行す
るように構成されたインストラクションを含んでいるコンピュータプログラム、ならびに
コンピュータまたはマイクロプロセッサによって部分的または完全に読み取ることができ
、取り外し可能、あるいは取り外し可能ではない、上述の方法の各ステップを実行するた
めのコンピュータプログラムのコードインストラクションを含んでいる情報記憶手段に関
する。
このコンピュータプログラムおよびこの記憶手段によってもたらされる利点は、上述し
た利点と同様である。
本発明の他の利点、目的、および特徴が、あくまでも本発明を限定するものではない例
として添付の図面に関連して提示される以下の詳細な説明から、明らかになるであろう。
クラスタの接続形態の例を示している。 クラスタのノードのアーキテクチャの例を示している。 クラスタに属するノードのマイクロプロセッサの論理アーキテクチャの概略図であり、ここではマイクロプロセッサがそれぞれが2つの論理コアを実装する2つのコアを備えている。 オペレーティングシステムと協働し、あるいはコンピュータの論理層と協働するマイクロプロセッサの物理コアを、当該物理コアに実装された各々の論理コアに関する所望のスタンバイ状態に従ってスタンバイさせるためのプロセスを制御するために、オペレーティングシステムによって実行され、あるいはより一般的にはコンピュータの論理層によって実行されるアルゴリズムの例を示している。
すでに示したように、クラスタのノードにおいて使用することができる多数のマイクロ
プロセッサが、論理コアの生成を可能にする同時マルチスレッディング(あるいは、In
tel(Intelは商標である)の実装によれば、ハイパースレッディング)と呼ばれ
る技術を実装している。これらのマイクロプロセッサが使用されるとき、この技術を有効
にでき、あるいは無効にすることができる。
図3は、クラスタに属するノードのマイクロプロセッサの論理アーキテクチャの概略図
であり、ここではマイクロプロセッサが、それぞれが2つの論理コアを実装する2つの物
理コアを備えており、すなわち高性能計算のアプリケーションの実行において、マイクロ
プロセッサの同時マルチスレッディングが有効にされている。ここでは、各々の物理コア
が、各々の物理コアに実装された異なる実行ユニットのおかげで、同じサイクルにおいて
最大4つのインストラクションを実行することができる。すなわち、2つの論理コアの各
々が、他方のコアによってなされる使用に応じて、最大4つのインストラクションを実行
することができる。コンフリクトの場合には、コンフリクト解決機構が、該当のリソース
を各々の論理コアに交互に帰属させる。
図示のとおり、物理コア300−1および300−2が、システムバス305によって
接続されており、システムバス305には、特に通信インターフェイスおよびメモリを接
続することができる。各々の物理コアが、論理コア間で共有される実行ユニットと、各々
の論理コアに特有のインストラクションレジスタとを備えている。
したがって、物理コア300−1が、実行ユニットの組310−1ならびに物理コア3
00−1の第1の論理コアへと接続されたインストラクションレジスタ315−11およ
び物理コア300−1の第2の論理コアへと接続されたインストラクションレジスタ31
5−12を備えている。同様に、物理コア300−2が、実行ユニットの組310−2な
らびに物理コア300−2の第1の論理コアへと接続されたインストラクションレジスタ
315−21および物理コア300−2の第2の論理コアへと接続されたインストラクシ
ョンレジスタ315−22を備えている。
ここで、最適化の理由のため、物理コアの論理コアが、好ましくは実行中の高性能計算
のアプリケーションに関するインストラクションの実行へと割り当てられる一方で、同じ
物理コアの他方の論理コアが、好都合には一般的にデーモンと称されるオペレーティング
システムの補助的タスクの実行に関連付けられることに、注意すべきである。結果として
、論理コアへの負荷が、同じ物理コアの他方の論理コアへの負荷よりもはるかに大きくな
る。したがって、典型的には、論理コアへの負荷が100パーセントに近付く一方で、同
じ物理コアの他方の論理コアへの負荷は、およそ5%である。
一般に、同時マルチスレッディングモードが有効にされ、すなわち論理コアが使用され
、高性能計算のアプリケーションが実行されるとき、クラスタの性能が低下することが明
らかになっている。この現象を分析したところ、この性能の低下が、特にプロセッサの特
定の構成要素をスタンバイにする機能の管理に関係していることを示している。本発明は
、それらの機能を改良し、この性能の問題を軽減することを目的とする。
まず最初に、エネルギーの節約および回路の温度制御の理由で、最近のマイクロプロセ
ッサが、それらのリソースの使用に応じて、プロセッサの性能を一時的に大きく低下させ
ることなく一部のリソースを停止させることができるスタンバイ機能を備えていることを
思い出すべきである(一般に、使用されておらず、あるいは少ししか使用されていないリ
ソースだけが該当する)。マイクロプロセッサのコアのスタンバイ状態は、一般に「C状
態(C−state)」と呼ばれ、Cによって表わされ、ここでiは、ゼロからnまで
変化する指数であり、nは典型的には8に等しい。状態Cにおいて、コアならびにコア
に接続されたすべてのリソースがアクティブである一方で、状態Cにおいては、コアが
完全なスタンバイにある。中間の状態は、中間的なスタンバイの状態に相当する。例とし
て、物理コアのレベル1のキャッシュメモリ(キャッシュL1と称される)は、物理コア
がスタンバイの状態Cにあるときにスタンバイとなる。
物理コアのスタンバイ状態は、多くの場合にオペレーティングシステムによって決定さ
れ、物理コアを備えるマイクロプロセッサへと送信される。次いで、マイクロプロセッサ
が、該当のリソースのスタンバイへの移行を管理し、あるいは対照的に、該当のリソース
のスタンバイの解除を管理する。さらに、マイクロプロセッサに物理コアに関するスタン
バイ状態を送信する前に、オペレーティングシステムは、スタンバイを準備し、さらには
/あるいはスタンバイの終わりにおける物理コアの復帰を可能にするインストラクション
を開始することができる。したがって、例えば、コアがスタンバイ状態Cからスタンバ
イ状態Cへと移行しなければならないとき、該当するレベル1のキャッシュメモリ(キ
ャッシュL1)の中身が、別のメモリ(典型的には、関連のレベル2のキャッシュメモリ
)へとコピーされる。物理コアは、このコピー作業の後でなければ、状態Cへと移行さ
れない。物理コアが状態Cから状態Cへと移行した後で、レベル1のキャッシュメモ
リの中身が、アプリケーションが該当のデータにアクセスするときに徐々に回復される。
同時マルチスレッディングモードが有効であり、すなわち論理コアが使用されていると
き、所望のスタンバイ状態がオペレーティングシステムによって各々の論理コアに組み合
わせられる。この所望のスタンバイ状態は、オペレーティングシステムによって決定され
、マイクロプロセッサへと送信され、次いでマイクロプロセッサが、受信した所望のスタ
ンバイの状態に応じて、特定のリソースをスタンバイに移行させることができる。論理コ
アの所望のスタンバイ状態が、別の論理コアの所望のスタンバイ状態とは異なる場合、マ
イクロプロセッサによって物理コアへと適用されるスタンバイ状態は、最も多くのリソー
スがアクティブとなるスタンバイ状態である。換言すると、2つの論理コアを備える物理
コアのスタンバイ状態Cは、2つの論理コアの所望のスタンバイ状態がそれぞれC
よびCであるとき、以下の方法で決定される。
Figure 0006073955
しかしながら、たとえ物理コアのスタンバイ状態が当該物理コアに係る論理コアの各々
の所望のスタンバイ状態に起因して変化することがなくても、スタンバイへの移行を準備
し、さらには/あるいは倫理コアの復帰を可能にするインストラクションを、スタンバイ
への移行に先立って実行することができる。この現象は、論理コアの所望のスタンバイ状
態がオペレーティングシステムによって決定される場合に、物理コアの状態を変化させる
決定が、物理コアを備えるマイクロプロセッサによって、オペレーティングシステムとは
無関係に行なわれるということに起因する。さらに、スタンバイへの移行を準備し、さら
には/あるいは論理コアの後の復帰を可能にするためのインストラクションの実行が、物
理コアを妨げる。したがって、例えば論理コアの所望のスタンバイ状態がCからC
と移行するとき、レベル1のキャッシュメモリの中身が別のメモリへとコピーされるが、
これが、このレベル1のキャッシュメモリを使用する他の論理コアに関して、レベル1の
キャッシュメモリを妨げる。これが、これらの論理コアの性能の低下につながる。
したがって、本発明は、特に、スタンバイへの移行を準備し、さらには/あるいは論理
コアの復帰を可能にするインストラクションを、物理コアの推定されるスタンバイ状態の
みに応じて開始することからなり、すなわち該当の論理コアの所望のスタンバイ状態だけ
によるのではなく、物理コアの各々の論理コアの所望のスタンバイ状態に応じて開始する
ことからなる。換言すると、本発明は、物理コアに実装された論理コアの所望のスタンバ
イ状態に応じた物理コアのスタンバイへの移行の決定のための機構を、オペレーティング
システムにおいて模擬することを目的とする。
図4が、オペレーティングシステムと協働し、あるいはコンピュータの論理層と協働す
るマイクロプロセッサの物理コアを、当該物理コアに実装された各々の論理コアに関する
所望のスタンバイ状態に従ってスタンバイさせるためのプロセスを制御するために、オペ
レーティングシステムによって実行され、あるいはより一般的にはコンピュータの論理層
によって実行されるアルゴリズムの例を示している。
図4に示したアルゴリズムが、好ましくは同時マルチスレッディングが有効にされてい
る場合に限って実行されることに、注意すべきである。したがって、最初のステップ(図
示されていない)は、当該モードが有効であることを確認することからなる。
時刻tにおける論理コアCLの所望のスタンバイ状態Cj(t)(CL)を決定(
ステップ400)した後で、その所望のスタンバイ状態が、Cj(t−1)(CL)と
称される先の時刻(t−1)における当該論理コアの所望のスタンバイ状態に対して変化
したか否かを判断するために、試験が実行される(ステップ405)。所望のスタンバイ
状態を見積もり、所望のスタンバイ状態の変化を判断するこれらのステップは、従来から
のシステムにおいて実行されるステップと同様である。それらは、特に、該当の論理コア
によって実行されるべきインストラクションの分析にもとづく。
論理コアCLの所望のスタンバイ状態の変化が検出された場合、論理コアCLが実
装される物理コアCPのスタンバイ状態が推定される(ステップ410)。例として、
推定される物理コアCLのスタンバイ状態C(CP)は、最も多くのリソースが活
動するスタンバイ状態に相当し、すなわちこの物理コアに実装された論理コアの所望のス
タンバイ状態C0,・・・,nのうちで、指数が最も小さいスタンバイ状態に相当する。
当然ながら、物理コアのスタンバイ状態を推定するためのモデルは、物理コアそのものに
実際に実装されたものに一致していなければならない。
次いで、論理コアCLの所望のスタンバイ状態C(CL)が、推定された物理コ
アCPのスタンバイ状態と同じであるか否かを判断し、すなわち指数iおよびjが同じ
であるかを判断するための試験が実行される(ステップ415)。結果が肯定であり、論
理コアCLをそれまでのスタンバイ状態よりも深いスタンバイ状態へと移行させるべき
場合、オペレーティングシステム(または、論理層)は、スタンバイを準備し、さらには
/あるいはスタンバイの終了時の論理コアの後の復帰を可能にするためのインストラクシ
ョンを開始する(ステップ420)。このステップは、例えばレジスタの中身をコピーす
る動作を開始させることからなる。その後に、所望のスタンバイ状態C(CL)がプ
ロセッサへと送信され(ステップ425)、プロセッサが、物理コアCP上に実装され
た残りの論理コアの所望のスタンバイ状態に応じて、この物理コアのスタンバイ状態を変
更し、あるいは変更しない。
論理コアCLの所望のスタンバイ状態C(CL)が、推定された物理コアCP
のスタンバイ状態と同じでない場合、スタンバイを準備し、さらには/あるいはスタンバ
イの終了時の論理コアCLの復帰を可能にするためのインストラクションは、マイクロ
プロセッサへと送信されない。しかしながら、図4に示されるとおり、それでもなお論理
コアCLの所望のスタンバイ状態C(CL)をマイクロプロセッサへと送信するこ
とができるが、このステップは、新たな所望のスタンバイ状態が該当の物理コアのスタン
バイ状態を変更しない場合には不要である。
特定の実施の形態によれば、図4に示したアルゴリズムを、例えばLinuxカーネル
など、使用されるオペレーティングシステムのカーネルにおいて実行することができる。
このように、論理コアのスタンバイ状態のマイクロプロセッサへの伝達機能を傍受するこ
とによって、当該論理コアを実装する物理コアの推定したスタンバイ状態に応じて、スタ
ンバイを準備し、さらには/あるいは論理コアの復帰を可能にするためのインストラクシ
ョンを、開始したり、あるいは開始しないようにすることができる。推定は、当該物理コ
アに実装されるすべての論理コアの状態にもとづいて行なわれる。
さらに、図4を参照して説明したアルゴリズムは、論理コアの所望のスタンバイ状態を
、この論理コアを実装する論理コアの推定によるスタンバイ状態と比較することを目的と
するが、同等の方法で、同じ物理コア上に実装された論理コアの所望のスタンバイ状態同
士を比較して、スタンバイを準備し、さらには/あるいは論理コアの後の復帰を可能にす
るためのインストラクションを、実行すべきか否かを判断することも可能である。
例として、2つの論理コアが同じ物理コアに実装される場合、第1の論理コアの所望の
スタンバイ状態が、第2の論理コアの所望のスタンバイ状態と比較される。このようにし
て、第1の論理コアのスタンバイ状態および所望のスタンバイ状態がC1であり、第2の
論理コアのスタンバイ状態がC1であり、第2の論理コアの所望のスタンバイ状態がC2
である場合に、第2の論理コアのスタンバイを準備し、さらには/あるいは後の復帰を可
能にするためのインストラクションは、これらの論理コアが実装される物理コアのスタン
バイ状態が変更されないため、実行されない。対照的に、第1および第2の論理コアのス
タンバイ状態がC1であり、第1および第2の論理コアの所望のスタンバイ状態がC2で
ある場合には、第1および第2の論理コアのスタンバイを準備し、さらには/あるいは後
の復帰を可能にするためのインストラクションが、これらの論理コアが実装される物理コ
アのスタンバイ状態が変更されるため、実行される。
当然ながら、特定のニーズを満たすために、当業者であれば以上の説明に変更を加える
ことができるであろう。

Claims (9)

  1. コンピュータにおいて、前記コンピュータのマイクロプロセッサであって、少なくとも2つの論理コアを実装することができ、前記少なくとも2つの論理コアに共通の少なくとも1つの物理リソースのスタンバイ及び/又はスタンバイからの復帰を実行するための手段を備えている少なくとも1つのマイクロプロセッサに関し、該マイクロプロセッサの少なくとも一部のスタンバイの管理を最適化するために、前記コンピュータによって、前記コンピュータの論理層において実行される方法であって、
    前記少なくとも2つの論理コアの各々のスタンバイ状態に関して所望の状態を決定するステップ(400)と、
    前記手段が前記物理リソースのスタンバイ及び/又はスタンバイからの復帰を実行するか否かを推定するために、前記少なくとも2つの論理コアのうちの1つの論理コアの前記所望の状態を、前記少なくとも2つの論理コアのうちの残りの論理コアの前記所望の状態と比較するステップと、
    前記比較した結果に応答して、前記少なくとも2つの論理コアに共通の少なくとも一つの物理リソースの前記スタンバイに対しての準備、及び/又は前記少なくとも2つの論理コアに共通の少なくとも一つの物理リソースのスタンバイの期間の後の前記少なくとも2つの論理コアのうちの前記1つの論理コアの復帰に対しての準備をするインストラクションを開始するステップ(420)と
    を含み、
    前記比較するステップが、
    前記少なくとも2つの論理コアの各々の前記所望の状態に従って、前記マイクロプロセッサのスタンバイ状態を推定するステップ(410)と、
    前記マイクロプロセッサの前記推定したスタンバイ状態を、前記少なくとも2つの論理コアのうちの前記1つの論理コアの前記所望の状態と比較するステップ(415)と
    を含んでおり、
    前記スタンバイを準備し、さらには/あるいはスタンバイの期間の後の前記少なくとも2つの論理コアのうちの前記1つの論理コアの復帰を可能にする前記インストラクションが、前記マイクロプロセッサの前記推定したスタンバイ状態が前記少なくとも2つの論理コアのうちの前記1つの論理コアの前記推定されたスタンバイ状態に一致する場合に開始(420)されることを特徴とする方法。
  2. 前記少なくとも2つの論理コアのうちの少なくとも1つの論理コアの所望の状態の変化を検出するステップ(405)
    をさらに含んでおり、
    前記比較するステップおよび前記インストラクションを開始するステップが、前記少なくとも2つの論理コアのうちの前記少なくとも1つの論理コアの所望の状態の変化が検出される場合に限って実行される、請求項1に記載の方法。
  3. 前記少なくとも1つのマイクロプロセッサが、マルチコアのマイクロプロセッサであり、前記少なくとも2つの論理コアが同じ物理コア内に実装されている、請求項1または2に記載の方法。
  4. 前記少なくとも2つの論理コアのうちの前記1つの論理コアの前記所望の状態を前記マイクロプロセッサのスタンバイ機能を有する部分に送信するステップ(425)
    をさらに含んでおり、
    前記送信するステップが、前記インストラクションを開始するステップの後で実行される、請求項に記載の方法。
  5. 前記論理層が、前記コンピュータに実装されたオペレーティングシステムに属する、請求項1からのいずれか一項に記載の方法。
  6. 前記マイクロプロセッサにおける論理コアの実装を可能にするモードが有効であることを確認する最初のステップを含む、請求項1からのいずれか一項に記載の方法。
  7. 前記少なくとも2つの論理コアの実装が、同時マルチスレッディングと呼ばれるモードにもとづいている、請求項1からのいずれか一項に記載の方法。
  8. 請求項1からのいずれか一項に記載の方法の各ステップをコンピュータに実行させるためのインストラクションを含んでいるコンピュータプログラム。
  9. コンピュータまたはマイクロプロセッサによって部分的または完全に読み取ることができ、取り外し可能、あるいは取り外し可能ではない、請求項1からのいずれか一項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータプログラムのコードインストラクションを含んでいる情報記憶手段。


JP2015078235A 2010-05-19 2015-04-07 複数の論理コアの実装を可能にするマイクロプロセッサのスタンバイの管理を最適化するための方法およびそのような方法を実行するコンピュータプログラム Expired - Fee Related JP6073955B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1002102 2010-05-19
FR1002102A FR2960314B1 (fr) 2010-05-19 2010-05-19 Procede d'optimisation de gestion de veille d'un microprocesseur permettant la mise en oeuvre de plusieurs coeurs logiques et programme d'ordinateur mettant en oeuvre un tel procede

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013510656A Division JP2013531836A (ja) 2010-05-19 2011-05-13 複数の論理コアの実装を可能にするマイクロプロセッサのスタンバイの管理を最適化するための方法およびそのような方法を実行するコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2015158932A JP2015158932A (ja) 2015-09-03
JP6073955B2 true JP6073955B2 (ja) 2017-02-01

Family

ID=43416801

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013510656A Pending JP2013531836A (ja) 2010-05-19 2011-05-13 複数の論理コアの実装を可能にするマイクロプロセッサのスタンバイの管理を最適化するための方法およびそのような方法を実行するコンピュータプログラム
JP2015078235A Expired - Fee Related JP6073955B2 (ja) 2010-05-19 2015-04-07 複数の論理コアの実装を可能にするマイクロプロセッサのスタンバイの管理を最適化するための方法およびそのような方法を実行するコンピュータプログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013510656A Pending JP2013531836A (ja) 2010-05-19 2011-05-13 複数の論理コアの実装を可能にするマイクロプロセッサのスタンバイの管理を最適化するための方法およびそのような方法を実行するコンピュータプログラム

Country Status (6)

Country Link
US (1) US9910474B2 (ja)
EP (1) EP2572253B1 (ja)
JP (2) JP2013531836A (ja)
BR (1) BR112012027176A2 (ja)
FR (1) FR2960314B1 (ja)
WO (1) WO2011144847A1 (ja)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665791B1 (en) * 2000-03-30 2003-12-16 Agere Systems Inc. Method and apparatus for releasing functional units in a multithreaded VLIW processor
US6779065B2 (en) * 2001-08-31 2004-08-17 Intel Corporation Mechanism for interrupt handling in computer systems that support concurrent execution of multiple threads
US7152169B2 (en) * 2002-11-29 2006-12-19 Intel Corporation Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state
US7219241B2 (en) * 2002-11-30 2007-05-15 Intel Corporation Method for managing virtual and actual performance states of logical processors in a multithreaded processor using system management mode
JP2005182473A (ja) * 2003-12-19 2005-07-07 Toshiba Corp 周波数制御方法および情報処理装置
US7966511B2 (en) * 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US7426648B2 (en) * 2004-09-30 2008-09-16 Intel Corporation Global and pseudo power state management for multiple processing elements
US7600135B2 (en) * 2005-04-14 2009-10-06 Mips Technologies, Inc. Apparatus and method for software specified power management performance using low power virtual threads
US8140885B2 (en) * 2007-02-14 2012-03-20 International Business Machines Corporation Accounting for microprocessor resource consumption
US8402290B2 (en) * 2008-10-31 2013-03-19 Intel Corporation Power management for multiple processor cores
US8700943B2 (en) * 2009-12-22 2014-04-15 Intel Corporation Controlling time stamp counter (TSC) offsets for mulitple cores and threads

Also Published As

Publication number Publication date
EP2572253A1 (fr) 2013-03-27
JP2013531836A (ja) 2013-08-08
WO2011144847A1 (fr) 2011-11-24
US9910474B2 (en) 2018-03-06
FR2960314A1 (fr) 2011-11-25
JP2015158932A (ja) 2015-09-03
BR112012027176A2 (pt) 2016-07-19
FR2960314B1 (fr) 2012-07-27
US20130091368A1 (en) 2013-04-11
EP2572253B1 (fr) 2017-10-11

Similar Documents

Publication Publication Date Title
TWI742032B (zh) 用於使用者等級執行緒暫止的方法、設備及指令
CN100422940C (zh) 在数据处理系统中仲裁线程访问共享资源的系统和方法
US20170329635A1 (en) Systems and methods for distributed computing
US9098302B2 (en) System and apparatus to improve boot speed in serial peripheral interface system using a baseboard management controller
CN109997113B (zh) 用于数据处理的方法和装置
US9378069B2 (en) Lock spin wait operation for multi-threaded applications in a multi-core computing environment
JP2003131900A (ja) サーバシステム運用管理方式
US8464269B2 (en) Handling and reporting of object state transitions on a multiprocess architecture
US20110131425A1 (en) Systems and methods for power management in a high performance computing (hpc) cluster
US9715403B2 (en) Optimized extended context management for virtual machines
US11537429B2 (en) Sub-idle thread priority class
EP3662376B1 (en) Reconfigurable cache architecture and methods for cache coherency
US11061840B2 (en) Managing network interface controller-generated interrupts
US10289306B1 (en) Data storage system with core-affined thread processing of data movement requests
CN113946445A (zh) 一种基于asic的多线程模块及多线程控制方法
US11243800B2 (en) Efficient virtual machine memory monitoring with hyper-threading
US11093332B2 (en) Application checkpoint and recovery system
WO2012014287A1 (ja) マルチコアプロセッサシステム、制御プログラム、および制御方法
US20180143828A1 (en) Efficient scheduling for hyper-threaded cpus using memory monitoring
JP6073955B2 (ja) 複数の論理コアの実装を可能にするマイクロプロセッサのスタンバイの管理を最適化するための方法およびそのような方法を実行するコンピュータプログラム
JP2013534670A (ja) 複数の論理コアを備えるマイクロプロセッサにおけるアプリケーション実行再開時のメモリアクセス最適化方法および該方法を実行するコンピュータプログラム
WO2012101759A1 (ja) プロセッサ処理方法、およびプロセッサシステム
US9652296B1 (en) Efficient chained post-copy virtual machine migration
US20230237010A1 (en) Power efficient memory value updates for arm architectures
US20180060097A1 (en) Hyper-threading based host-guest communication

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160628

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160927

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170105

R150 Certificate of patent or registration of utility model

Ref document number: 6073955

Country of ref document: JP

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