JP5866430B2 - オペレーティング・システムを実行するプロセッサ・コアの動的割当 - Google Patents

オペレーティング・システムを実行するプロセッサ・コアの動的割当 Download PDF

Info

Publication number
JP5866430B2
JP5866430B2 JP2014502602A JP2014502602A JP5866430B2 JP 5866430 B2 JP5866430 B2 JP 5866430B2 JP 2014502602 A JP2014502602 A JP 2014502602A JP 2014502602 A JP2014502602 A JP 2014502602A JP 5866430 B2 JP5866430 B2 JP 5866430B2
Authority
JP
Japan
Prior art keywords
core
token
program
computer
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.)
Active
Application number
JP2014502602A
Other languages
English (en)
Other versions
JP2014509767A (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 JP2014509767A publication Critical patent/JP2014509767A/ja
Application granted granted Critical
Publication of JP5866430B2 publication Critical patent/JP5866430B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Description

本発明は、一般に、マルチコア・コンピュータ・プロセッサに関し、より詳細には、オペレーティング・システムを実行するプロセッサ・コアの動的割当に関するものである。
現在、例えばMicrosoft(登録商標)Windows(登録商標)7オペレーティング・システムなどオペレーティング・システム(OS)を扱う複数のコアを有するマルチコア・プロセッサ・マシンが存在している。このようなマシンでは、実行中の各プロセッサ・コアに大きな電力を使用し、この点が、モバイル・デバイスなどの、バッテリの電力で動作するマシンにとっては不利である。特定の電力管理条件が存在する場合、おそらく、ストレスの加わる期間に一時的に、可能な限り多くのコアをアイドル状態にすると電力に関して都合がよいであろう。
しかし、Microsoft(登録商標)Windows(登録商標)7などのオペレーティング・システム(OS)では、動作中のプロセッサ内のアクティブ・コアの数の増減をサポートしていない。Microsoft(登録商標)Windows(登録商標)7OSがこのような「ホット・コア」の再割当をサポートしていない理由は、OSが起動時に存在したコアに基づいてリソースを割当、重要な仮定を行うからである。Microsoft(登録商標)Windows(登録商標)7OSでは、未使用のコアを保留(パーキング)させるか、または不使用にする(disused)ことができ、事実上停止させるが、これは、OSの負荷の認識の結果としてのみ実行され、軽い負荷条件ではOSは負荷分散を行い、コアのパーキングを行うことができる。
この問題に対する解決手段の1つは、OSとプロセッサのハードウェアとの間で実行されるハイパーバイザ・ソフトウェアを使用して、OSに仮想コア・セットを提供することである。実際、ハイパーバイザ・ソフトウェアは、OSに対して複数のコアの偽のイメージを形成し、ハードウェアが実際にはすべてではなく一部しかコアをアクティブにしていないのに、それが複数のアクティブ・コアを有しているとOSに思わせる。残念なことに、ハイパーバイザ・ソフトウェアは大きく、ハイパーバイザ・コードのフットプリントが大きくならざるを得ず、また妥当なパフォーマンスを結果として得るためにプロセッサ内に仮想化機能がサポートされている必要がある。さらに、ハイパーバイザ・ソフトウェアによって、パフォーマンス・ペナルティが生じる。
別の解決手段として、プロセッサ・アフィニティを使用して実現される「コア・パーキング」があり、この場合、OSプロセスは1つのコアに物理的に割り当てられ、使用されていないコアのパーキングが効果的に実行される。しかし、これは、OSによって制御されているため、保証された技術ではなく、やはりOSによって認識されるワークロードに応じた機能である。
したがって、電力に関する理由からオペレーティング・システムを扱うアクティブ・コアの増減を素早く行う必要があり、またプロセス負荷を考慮することなく、ほぼリアルタイムで、これを行う必要がある。さらに、OSを再起動せずにアクティブ・コアを動的に割り当てることも有利であろう。
従来技術のマルチコア・プロセッサの簡略化されたブロック図。 本発明による、アクティブ・コアの動的割当の簡略化されたブロック図。 本発明のさらなる実施形態による、方法の簡略化されたブロック図。
類似の参照番号が個別の図面全体を通して同一の、または機能面で類似している要素を指す、添付図面は、以下の詳細な説明とともに、本明細書に組み込まれ、本明細書の一部をなし、特許請求されている発明を含む概念の実施形態をさらに例示し、それらの実施形態のさまざまな原理および利点を説明するために使用される。
当業者であれば、図中の要素は簡単に、また分かりやすいように図示されており、必ずしも原寸に比例して示されていないことを理解するであろう。例えば、図中のそれらの要素のうちのいくつかの寸法は、本発明の実施形態の理解を高めるため他の要素に比べて誇張されている場合がある。
装置および方法の構成要素は、適宜、図面内で慣例記号により表されており、本明細書の説明を利用する当技術者にとって容易に理解できる詳細を述べることで本開示を分かりにくくしないため本発明の実施形態を理解するうえで関連性のある特定の詳細のみを示す。
本発明は、電力に関する理由からオペレーティング・システムを扱うアクティブ・コアを単純に増減するための新規な技術を提供する。これは、オペレーティング・システム(OS)の修正、またはサポートなしでも行われる。これは、オペレーティング・システムへの変更を伴わないハードウェアの構成を用いて達成され、これは、ドライバ・コールを使用するアプリケーションとして実装されうる。有利には、本発明は、OSを再起動することなく、またプロセス負荷を考慮することなく、アクティブ・コアを動的に割り当てることによって電力流出を素早く低減することができる。
図1は、例えばMicrosoft(登録商標)Windows(登録商標)7OSによって使用されうるような、従来技術のマルチコア・プロセッサのブロック図である。4コア・プロセッサの例が、図示されており、コアはCPU0(110)、CPU1(112)、CPU2(114)、およびCPU3(116)である。ディスパッチャ・データベース100は、OSによって制御されるワークロード・リポジトリである。データベース100は、コアによって実行されるプロセスおよびスレッドを保持する。OSは、プロセスおよびスレッドを各コアに対するレディ・キューに分配するようデータベース100に指令する。例えば、コアCPU0(110)は、CPU0(110)によって実行されるべきデータベース100によって分配されたプロセスおよびスレッドを保持するCPU0レディ・キューを有する。同様に、コアCPU1(112)は、CPU1(112)によって実行されるべきデータベース100によって分配されたプロセスおよびスレッドを保持するCPU1レディ・キューを有し、コアCPU2(114)は、CPU2(114)によって実行されるべきデータベース100によって分配されたプロセスおよびスレッドを保持するCPU2レディ・キューを有し、コアCPU3(116)は、CPU3(116)によって実行されるべきデータベース100によって分配されたプロセスおよびスレッドを保持するCPU3レディ・キューを有する。データベース100による分配は、各コアが時間の経過とともに処理負荷をほぼ均等に共有するように公平ルールに従って実行され、負荷分散コア・パーキング・ルールなどの他の考慮事項は関わっていないと仮定している。
図2は、本発明による、コンピュータのマルチコア・プロセッサのブロック図である。図2に示されているようなプロセッサおよびコアは、限定はしないが、マイクロプロセッサ、デジタル・シグナル・プロセッサ(DSP)、マイクロコントローラ、メモリ・デバイス、特定用途向け集積回路、および/または論理回路などの、基本コンポーネントを備えることができる。コンピュータは、電力制限のあるモバイル・コンピューティング・デバイスとすることができる。このようなデバイスは、典型的には、高水準設計言語もしくは記述を使用して表現されている、コンピュータ命令を使用して表現されている、メッセージング/シグナリング・フロー図を使用して表現されている、および/または論理フロー図を使用して表現されているアルゴリズムおよび/またはプロトコルを実装するように適合される。したがって、アルゴリズム、論理フロー、メッセージング/シグナリング・フロー、コール・フロー、および/またはプロトコル仕様が与えられた場合、当業者であれば、与えられた論理を実行するユーザ機器を実装するのに利用可能な多くの設計および開発技術を承知している。
したがって、図2のプロセッサは、本発明のさまざまな実施形態を実装するように、本明細書の説明に従って適合されている既知の装置を表す。さらに、当業者であれば、本発明の態様は、さまざまな物理的コンポーネントにおいて、またさまざまな物理的コンポーネントを通じて実装することができ、いずれも単一のプラットフォームの実装に必ずしも限定されないことを理解するであろう。例えば、本発明のこれらの態様は、上に列挙された、またはこのようなコンポーネントの間に分散されるデバイスのうちのどれかで実装されうる。本発明の目的に関して、プロセッサ・コア、コア、および中央演算処理装置(CPU)という用語は同等である。
図2を再び参照すると、本発明では、コンピュータのプロセッサのコアのうちの1つ以外のすべての使用を停止し、1つのコアを唯一のアクティブ・コアとして残す動的技術を導入することがわかる。他の実施形態では、複数のコアをアクティブのままにできる。コアの停止は、オペレーティング・システム(OS)の修正、またはサポートがない場合にも、電力に関する理由から実行される。これは、オペレーティング・システムへの変更を伴わないハードウェアの構成を用いて達成され、これは、ドライバ・コールを使用するアプリケーションとして実装されうる。OSの再起動を必要とせず、OS側のワークロードの認識を考慮せずにコアの停止が実行される。本発明は、Microsoft(登録商標)Windows(登録商標)7OSへの特定の応用とともに本明細書で説明されているが、本発明は、他の種類のマルチコア・プロセッサ・システムにも応用可能であることは理解されるであろう。
本発明では、図1と同じディスパッチャ・データベース100のCPUレディ・キュー102、104、106、108、およびコアを利用する。しかし、本発明では、例えば、GPIO(汎用入出力)などの、コンピュータのI/Oインターフェースのうちの1つに接続するハードウェア構成200を導入する。このハードウェア構成は、コンピュータI/Oインターフェースと外部的に、または内部的にも、接続された周辺デバイスとして実施されうる。このハードウェア構成は、インターフェースのアドレス・バスに接続し、各コアによってアドレス・バスを介してアクセス可能なグローバル・セマフォを導入することができる。グローバル・セマフォは、本発明による、コアがCoreHaltプログラムを実行するためのトークンを与える。当技術分野で知られているように、コアの動作には、量子クロック・サイクル(つまり、100ミリ秒)毎に割込が生じる。この割込において、各コアは、CoreHaltプログラムの実行時に、グローバル・セマフォからトークンを取得しようとする。これらのコアに利用可能なトークンの最大カウント(例えば、コアの総数−1)がある。1実施形態では、例えば、コアのうちの1つを除く全部がトークンを取得することができる。トークンを取得したコアは、CoreHaltプログラムのアセンブラ停止ステートメントを実行する。
CoreHaltプログラムは、そのコアのレディ・キューから命令のコア処理を停止するセンブリ命令を含む。物理コア毎に1つのそのようなCoreHaltプログラムがある。CoreHaltプログラムは、典型的には、デバイスが必要な特権レベルを保有するようにデバイス・ドライバ内に実装される。本明細書の例では、グローバル・セマフォにより、3つのCoreHaltプログラムがそれぞれのコア(図2の212、214、216)のそれぞれで実行されうる。トークンを取得していない第4のコア110は、グローバル・セマフォがトークンを与えてくれるのを待機し、こうして待機することで、コアはレディ・キューにおいてワークロードを実行する。それぞれのコア212、214、216上で実行されるCoreHaltプログラムは、これらのコアがそれぞれのレディ・キュー104、106、108を処理するのを停止させる。実際、CoreHaltプログラムは、次の量子クロック・サイクルの割込が発生するまでアセンブラ停止コマンドをコアに実行させ、静止電力のみを使用するようにこれらのコアを事実上アイドル状態にする。それぞれのコア110によって実行されることをブロックされたCoreHaltプログラムは、そのコアをアクティブ状態のままにし、レディ・キュー102内のワークロードを処理させる。セマフォによって実行を許可された残り3つのCoreHaltプログラムは、その後ワークロードの実行に加わらないそれぞれのコア212、214、216に対して停止命令を実行する。
実際、本発明では、コンピュータの電源204(例えば、バッテリ)からの消費電力を、データベースまたはレディ・キュー内のプロセス負荷に関係なく、OSの修正、またはサポートがない場合にも、通常約25%まで下げる。この電力低減は、停止されたコアが静止電力を消費する結果として、またシステムが時間あたり実行する命令の割合が少なく、メモリおよび周辺コンポーネントのような他のコンポーネントに対する負荷を低下させるため、生じる。もちろん、トークンの最大カウントは、各サイクルにおいて約50%、75%、さらには100%アクティブのコアを許容するように変化することは理解されるであろう。25%の実施形態では、量子クロック・サイクルで割込が生じる毎に、各コアは、再び、セマフォ・トークンを取得しようと試み、1つのコアはトークンの最大カウントに達した後には取得を試みることはできない。各コアはどの1サイクルにおいてもトークンを取得する等しい確率を有しているので、コアはすべて、ある時間を通じて等しくレディ・キューを処理する機会を有する。
各コア停止(CoreHalt)プログラムは、アフィニティを使用して特定のコアに割り当てることができ、OSプロセスは特定のコアに物理的に割り当てられる。次いで、CoreHaltプログラムは、Microsoft(登録商標)Windows(登録商標)7OSにおいて、他のプログラムおよびドライバ上でオペレーティング・システムにおける利用可能な最高優先度まで引き上げられるように設定されうる。その結果、CoreHaltプログラムの実行は、ほぼリアルタイムで動作し、他のプログラムおよびドライバとのコンフリクトが緩和される。
本発明の動作および監視は、コア割当、コンピュータのユーザ・インターフェース202上のアイコン、ボタン、または他の機能のアクティベーションを通じてユーザがトグル式に切り替えることができるコンピュータ上の本発明の節電機能を実行することで、コンピュータ上でユーザ・アクティベーションまたはハードウェア・アクティベーションが可能であることが企図される。また、コンピュータはユーザへのユーザ・インターフェース202上に、コア割当、節電機能が動作しているか、または動作していないこと、または達成されている節電を示す表示を行うことができることも企図される。また、ユーザは、コンピュータのユーザ・インターフェース202上のアイコン、ボタン、または他の機能のアクティベーションを通じて利用可能なトークンの最大カウントを制御し、それにより、本発明を使用して利用可能な量の節電を行うことが可能であることも企図される。
ユーザ・アクティベーション/デアクティベーションは、CoreHaltプログラムにグローバル・セマフォおよびその後の停止命令の連動/非連動を命令するソフトウェア・コールの結果として発生しうる。ハードウェア・アクティベーション/デアクティベーションも、グローバル・セマフォ・ハードウェアへのハードウェア信号の結果として生じ、その結果、セマフォ動作がアクティベートもしくはデアクティベートされるか、またはトークンの挙動を変えてアクティベートされる、例えば、コア4つのうち2つを停止させる、コア4つのうち3つを停止させる、などが可能である。また、本発明を使用することで、一時的電力ストレス状況が緩和されうることも企図される。例えば、システムが壁の電力供給からバッテリ電力供給に移行するドッキングからアンドッキング(dock−to−undock)のシナリオでは、本発明は、電力引込を低減し、システムの通常シャットダウン(1つのコア上で)を行えるようにできることが企図される。さらに、本発明は、コアのスロットリングの既存の利用可能な方法と連携して動作しうる。
図3は、本発明による、オペレーティング・システムを実行する複数のプロセッサ・コアの動的割当のための方法のフローチャートを示している。
この方法は、プロセッサのコアがそれぞれのレディ・キューからの命令を処理することを停止させるように動作可能なプログラムを用意する(300)ことから始まる。
次の工程は、プログラムの実行を可能とするために利用可能なトークンの最大カウントを確立すること(302)を含み、最大カウントはプロセッサ内のコアの総数より小さい。
次の工程は、コアによるトークンの取得(304)を含み、少なくとも1つのコアはトークンを取得することができない。
トークンが、コア306によって取得されている場合、次の工程は、そのコアのそれぞれのレディ・キューの処理を停止するプログラムをそのコアによって実行すること(308)を含む。トークンが、コア306によって取得されていない場合、トークンなしのそのコアはプログラムを実行することができず、そのため、それぞれのレディ・キューからの命令を処理するようにアクティブのままとなる(310)。
いずれの場合も、次の工程は、所定の長さの時間、つまり、次の量子クロック・サイクルを待機すること(312)を含む。
タイムアウトした後、つまり、割込が発生すると、プロセスはコアによるトークンの取得(304)に戻り、次のサイクルにどのコアがアクティブのままであるかを調べる。
好ましくは、上記の方法は、コンピュータのユーザ・インターフェースを介してコンピュータにユーザによって操作され(314)、監視されることが企図される。
有利には、本発明を使用すると、今日のデスクトップ・ウィンドウズ(登録商標)・オペレーティング・システムについて当てはまるが、強制コア・パーキングをサポートしていないMicrosoft(登録商標)Windows(登録商標)7OSにおいて強制コア・パーキングが可能になる。本発明は、比較的単純に実装することができ、オペレーティング・システムへの変更を伴わず、またドライバ・コールを使用するアプリケーションとして実装されうる。
前記の仕様で、特定の実施形態が説明された。しかし、以下の請求項で定められているような本発明の範囲から逸脱することなくさまざまな修正および変更を加えられることは、当業者には明白であろう。そこで、本明細書および図は、制限的な意味ではなく例示する意味で考慮され、このような修正形態はすべて、本発明の教示の範囲内に含まれることが意図される。
利益、利点、問題の解決手段、および利益、利点、もしくは解決手段をもたらしうるか、または顕著なものとしうる要素(複数可)は、任意の、またはすべての請求項の重大な、必要な、または不可欠な特徴もしくは要素として解釈すべきでない。本発明は、本出願の係属期間中になされた修正を含む付属の請求項、および発行されたとおりの請求項のすべての等価物によってのみ定められる。
さらに、本明細書では、第1の、第2の、上、および下などの関係語、ならびに同様の語は、一方のエンティティまたはアクションを別のエンティティまたはアクションから、そのようなエンティティまたはアクションの間の実際のそのような関係もしくは順序を必ずしも必要とするか、または暗示することなく、区別するためにのみ使用されうる。「comprises(備える、含む)」、「comprising(備える、含む)」、「has(有する)」、「having(有する)」、「includes(含む)」、「including(含む)」、「contains(含む)」、「containing(含む)」、および他の変形の用語は、非排他的な包含を対象とすることを意図しており、一連の要素を備える、有する、含む、包含するプロセス、方法、物品、または装置は、それらの要素のみを含むわけではなく、明示的に列挙されない、またはそのようなプロセス、方法、物品、または装置に固有のものでない他の要素を含むことができる。「comprises ...a」、「has ...a」、「includes ...a」、「contains ...a」が続く要素は、さらに制約を付けることなく、要素を備える、有する、含む、包含するプロセス、方法、物品、または装置内の追加の同一の要素の存在を除外しない。「a」および「an」という用語は、本明細書で別段明示的に述べられていない限り1つまたは複数として定義される。「実質的に」、「本質的に」、「約」、「ほぼ」、または他の用語は、当業者が理解する用語に近いものとして定義され、非限定的な1実施形態では、用語は、10%以内であると定義され、別の実施形態では、5%以内であると定義され、別の実施形態では、1%以内であると定義され、別の実施形態では、0.5%以内であると定義される。本明細書で使用されているような「結合」という用語は、接続として定義されるが、必ずしも直接的ではなく、また必ずしも機械的なものではない。特定の方法で「構成」されたデバイスまたは構造は、少なくともその方法で構成されるが、列挙されていない方法でも構成されうる。
いくつかの実施形態は、マイクロプロセッサ、デジタル・シグナル・プロセッサ、カスタマイズされたプロセッサおよびフィールド・プログラマブル・ゲート・アレイ(FPGA)、および1つまたは複数のプロセッサを制御していくつかの非プロセッサ回路と併せて、本明細書で説明されている方法および/または装置の機能のうちの一部、大半、または全部を実行する固有のストアド・プログラム命令(ソフトウェアとファームウェアの両方を含む)などの1つまたは複数の汎用もしくは専用プロセッサ(または「処理デバイス」)からなるものとしてよいのは明白であろう。あるいは、いくつかの、またはすべての機能は、ストアド・プログラム命令を有しない状態機械によって、または1つもしくは複数の特定用途向け集積回路(ASIC)で実装することも可能であり、各機能またはそれらの機能のうちのいくつかの何らかの組み合わせはカスタム・ロジックとして実装される。もちろん、2つのアプローチの組み合わせも使用することが可能である。
さらに、1実施形態は、説明されている、また本明細書で特許請求されているように方法を実行するようにコンピュータ(例えば、プロセッサを備える)をプログラムするためコンピュータ可読コードが格納されているコンピュータ可読記憶媒体として実装することができる。このようなコンピュータ可読記憶媒体の例として、限定はしないが、ハードディスク、CD−ROM、光記憶デバイス、磁気記憶デバイス、ROM(リード・オンリー・メモリ)、PROM(プログラマブル・リード・オンリー・メモリ)、EPROM(消去可能プログラマブル・リード・オンリー・メモリ)、EEPROM(電気的消去可能プログラマブル・リード・オンリー・メモリ)、およびフラッシュ・メモリが挙げられる。さらに、当業者であれば、例えば、使用可能時間、現行技術、および経済上の考慮事項に起因する多大な労力と多くの設計選択の可能性があるにもかかわらず、本明細書で開示されている概念および原理に導かれたときに、実験を最小限度に抑えつつ、ICに対するそのようなソフトウェアの命令およびプログラムを容易に生成することができることは予測される。
読者が技術的開示の性質を素早く確認できるように開示の要約をまとめてある。これは請求項の範囲または意味を解釈または制限するために使用されないことを了解したうえで提出される。それに加えて、前記の「発明を実施するための形態」では、本開示を合理化するためにさまざまな特徴をさまざまな実施形態においてグループにまとめられていることがわかる。この開示方法は、特許請求されている実施形態が各請求項において明示的に述べられている以上の特徴を必要とする意図を反映するものとして解釈すべきでない。むしろ、以下の請求項が反映するように、発明対象は、単一の開示されている実施形態のすべてに満たない数の特徴にある。したがって、以下の請求項は、これにより「発明を実施するための形態」に組み込まれ、各請求項は別々に特許請求される発明対象として自立している。

Claims (16)

  1. オペレーティング・システムを実行するコンピュータにおける複数のプロセッサ・コアの動的割当を行うための方法であって、
    プログラムを用意する工程(300)であって、前記プログラムはコアに各レディ・キューからの命令の処理を停止させるように動作可能である、プログラム用意工程と、
    該プログラムの実行を可能とするために利用可能なトークンの最大カウントを確立する工程(302)であって、前記最大カウントは前記コアの総数未満である、最大カウント確立工程と、
    前記複数のコアによってトークンを取得する工程(304)であって、1つ以上のコアはトークンを取得することが不可能である、トークン取得工程と、を備え、
    トークンが1つのコアによって取得されている場合(306)、該コアの各レディ・キューの処理を停止するプログラムを該コアによって実行し(308)、
    トークンが1つのコアによって取得されていない場合(306)、該コアによってプログラムを実行することなく、アクティブとしたまま該コアの各レディ・キューからの命令を処理する、方法。
  2. 所定の長さの時間、待機する工程(312)と、
    前記トークン取得工程(304)に戻る工程とをさらに備える、請求項1に記載の方法。
  3. 前記所定の長さの時間は、前記複数のコアを備えるコンピュータの量子クロック・サイクルである、請求項2に記載の方法。
  4. 記トークンは、入出力インターフェースに接続された周辺デバイスによって供給されるグローバル・セマフォにより与えられ、前記最大カウント確立工程(302)では、アドレス・バスを介して前記トークンにアクセスすることが含まれる、請求項1に記載の方法。
  5. 前記プログラム用意工程(300)では、各コアに対しプログラムが用意される、請求項1に記載の方法。
  6. 前記プログラム用意工程(300)では、前記オペレーティング・システムにおいて利用可能な最高の優先度を有するように前記プログラムを設定する請求項1に記載の方法。
  7. 前記コンピュータのユーザ・インターフェースを介してユーザが前記方法を操作する工程(314)をさらに備える、請求項1に記載の方法。
  8. 前記オペレーティング・システムは、Microsoft(登録商標)Windows(登録商標)7オペレーティング・システムである、請求項1に記載の方法。
  9. オペレーティング・システムを実行する複数のプロセッサ・コアの動的割当を行うように動作可能であるコンピュータであって、
    コア(212、214、216)に各レディ・キュー(104、106、108)からの命令の処理を停止させるように動作可能なプログラムと、
    該プログラムの実行を可能とするために利用可能なトークンを提供するように動作可能な周辺デバイス(200)であって、前記トークンは前記コアの総数未満である最大カウントを有する、周辺デバイスと、を備え、
    前記複数のコアは、トークンの取得を試みるよう動作可能であり、1つ以上のコア(110)はトークンを取得することが不可能であり、
    トークンが1つのコア(212、214、216)によって取得されている場合、該コアの各レディ・キュー(104、106、108)の処理を停止するプログラムを該コア(212、214、216)によって実行し、
    トークンが1つのコア(110)によって取得されていない場合、該コアによってプログラムを実行することなく、アクティブとしたまま該コアの各レディ・キュー(102)からの命令を処理する、コンピュータ。
  10. 前記コア(110、212、214、216)は、所定の長さの時間、待機し、再びトークンの取得を試みるよう動作可能である、請求項9に記載のコンピュータ。
  11. 前記所定の長さの時間は、前記複数のコアを備えるコンピュータの量子クロック・サイクルである、請求項10に記載のコンピュータ。
  12. 前記トークンは、前記コンピュータの入出力インターフェースに接続された周辺デバイス(200)によって供給されるグローバル・セマフォにより与えられる、請求項9に記載のコンピュータ。
  13. 各コアに対しプログラムが用意される、請求項9に記載のコンピュータ。
  14. 前記プログラムは、前記オペレーティング・システムにおいて利用可能な最高の優先度を有するように設定される、請求項9に記載のコンピュータ。
  15. ユーザ・インターフェース(202)をさらに備え、前記ユーザ・インターフェースを介してユーザが前記プログラムおよびトークンの機能を操作可能である、請求項9に記載のコンピュータ。
  16. 前記オペレーティング・システムは、Microsoft(登録商標)Windows(登録商標)7オペレーティング・システムである請求項9に記載のコンピュータ。
JP2014502602A 2011-03-30 2012-03-12 オペレーティング・システムを実行するプロセッサ・コアの動的割当 Active JP5866430B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/076,353 US8407506B2 (en) 2011-03-30 2011-03-30 Dynamic allocation of processor cores running an operating system
US13/076,353 2011-03-30
PCT/US2012/028678 WO2012134776A1 (en) 2011-03-30 2012-03-12 Dynamic allocation of processor cores running an operating system

Publications (2)

Publication Number Publication Date
JP2014509767A JP2014509767A (ja) 2014-04-21
JP5866430B2 true JP5866430B2 (ja) 2016-02-17

Family

ID=45977025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014502602A Active JP5866430B2 (ja) 2011-03-30 2012-03-12 オペレーティング・システムを実行するプロセッサ・コアの動的割当

Country Status (7)

Country Link
US (1) US8407506B2 (ja)
EP (1) EP2691830B1 (ja)
JP (1) JP5866430B2 (ja)
KR (1) KR101548068B1 (ja)
CN (1) CN103502906B (ja)
CA (1) CA2831240C (ja)
WO (1) WO2012134776A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819345B2 (en) * 2012-02-17 2014-08-26 Nokia Corporation Method, apparatus, and computer program product for inter-core communication in multi-core processors
EP3282359A1 (en) 2016-08-09 2018-02-14 Alcatel Lucent Method for managing a virtual radio access network and method for calibrating a software component
CN110427223A (zh) * 2019-07-02 2019-11-08 中国航空工业集团公司雷华电子技术研究所 一种基于上位机pcie总线动态加载多核dsp的方法及系统
US11281474B2 (en) * 2020-03-31 2022-03-22 International Business Machines Corporation Partial computer processor core shutoff
CN111782411A (zh) * 2020-07-02 2020-10-16 江苏华创微系统有限公司 在numa系统中提升抢锁操作公平性的方法
CN114610394B (zh) * 2022-03-14 2023-12-22 海飞科(南京)信息技术有限公司 指令调度的方法、处理电路和电子设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754788B2 (en) * 2001-03-15 2004-06-22 International Business Machines Corporation Apparatus, method and computer program product for privatizing operating system data
FR2823932B1 (fr) * 2001-04-23 2003-06-27 Intaan Technology Systeme et procede pour la distribution dynamique de donnees et/ou de services
US7117388B2 (en) * 2003-04-28 2006-10-03 International Business Machines Corporation Dynamic, Non-invasive detection of hot-pluggable problem components and re-active re-allocation of system resources from problem components
CN1287290C (zh) * 2003-07-15 2006-11-29 中兴通讯股份有限公司 嵌入式实时操作系统中非缓冲内存动态分配方法
US8756605B2 (en) * 2004-12-17 2014-06-17 Oracle America, Inc. Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline
US20060136919A1 (en) 2004-12-17 2006-06-22 Sun Microsystems, Inc. System and method for controlling thread suspension in a multithreaded processor
JP2008257578A (ja) * 2007-04-06 2008-10-23 Toshiba Corp 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
CN101464813A (zh) * 2007-12-19 2009-06-24 国际商业机器公司 用于多核处理器上的自动工作量分配的系统和方法
JP4877347B2 (ja) * 2009-03-25 2012-02-15 ブラザー工業株式会社 ネットワーク装置
JP5095682B2 (ja) * 2009-07-03 2012-12-12 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、情報処理装置の電力制御方法、およびコンピュータが実行可能なプログラム
US8972707B2 (en) * 2010-12-22 2015-03-03 Via Technologies, Inc. Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin
US9342379B2 (en) * 2011-01-21 2016-05-17 Wind River Systems, Inc. Lock free acquisition and release of a semaphore in a multi-core processor environment

Also Published As

Publication number Publication date
KR101548068B1 (ko) 2015-08-27
US8407506B2 (en) 2013-03-26
US20120254647A1 (en) 2012-10-04
JP2014509767A (ja) 2014-04-21
KR20140002012A (ko) 2014-01-07
CN103502906A (zh) 2014-01-08
CN103502906B (zh) 2016-02-03
WO2012134776A1 (en) 2012-10-04
EP2691830A1 (en) 2014-02-05
CA2831240A1 (en) 2012-10-04
EP2691830B1 (en) 2015-01-07
CA2831240C (en) 2016-07-05

Similar Documents

Publication Publication Date Title
US11797327B2 (en) Dynamic virtual machine sizing
EP3039540B1 (en) Virtual machine monitor configured to support latency sensitive virtual machines
US8261284B2 (en) Fast context switching using virtual cpus
JP5866430B2 (ja) オペレーティング・システムを実行するプロセッサ・コアの動的割当
US9798582B2 (en) Low latency scheduling on simultaneous multi-threading cores
US10564995B2 (en) Dynamic control of halt polling based on receiving a monitoring instruction executed by a guest
JP2009223842A (ja) 仮想計算機制御プログラム及び仮想計算機システム
US11086658B2 (en) System performance enhancement with SMI on multi-core systems
US11061730B2 (en) Efficient scheduling for hyper-threaded CPUs using memory monitoring
US10810032B2 (en) System and method for dynamic guest-controlled halt polling using a CPU governor
CN114064128B (zh) 内核重启方法
US9619277B2 (en) Computer with plurality of processors sharing process queue, and process dispatch processing method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141216

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150313

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20150313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151013

A59 Written plea

Free format text: JAPANESE INTERMEDIATE CODE: A59

Effective date: 20151013

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20151013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20151013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151110

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160104

R150 Certificate of patent or registration of utility model

Ref document number: 5866430

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250