説明

複数のコアを含むプロセッサを有するコンピュータ・システムの制御

【課題】 複数のコアを含むプロセッサを有するコンピュータ・システムを制御する方法を提供すること。
【解決手段】 複数のコアを含む少なくとも1つのプロセッサを有するコンピュータ・システムの制御が、動作条件に基づいて、所定の期間に動作する複数のコアの最大数を設定するコア最大値を確立することと、所定の期間に動作する少なくとも1つのプロセッサの複数のコアの数と関連したコア実行値を求めることと、所定の期間においてコア実行値がコア最大値を上回る場合には、複数のコアの少なくとも1つを停止させることと、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ・システムの技術に関し、より特定的には、複数のコアを含むプロセッサを有するコンピュータ・システムを制御する方法に関する。
【背景技術】
【0002】
コンピュータ・システムは、より複雑になりつつあり、一層多くのタスクを実行すると同時に、サイズを低減させることが可能になっている。ストリーミング・ビデオ、ゲーム(gamming)のようなプロセッサ集中型アプリケーション、及び、複雑なスプレッドシートの処理、計算等を迅速に処理するために、プロセッサのクロック速度が増大し続けている。多くのコンピュータ・システムは、プロセッサ集中型アプリケーションに適合させるように、マルチプロセッサを用いている。マルチプロセッサを用いることに加えて、現在のところ、速度及び処理帯域幅が増大した2つのコアを有するプロセッサが存在する。プロセッサの速度及び複雑さが増大するにつれて、熱が問題になる。
【0003】
現在のところ、放熱はマクロ・レベルで対処されている。つまり、プロセッサから熱を放散するために、ファン及び熱シンクが設けられる。熱が依然として問題になるとき、システムのシャットダウンが行なわれる。つまり、大規模なマルチコンピュータ・システムの場合には、温度レベルが低下するまで、1つ又は複数のシステムがシャットダウンされる。マルチプロセッサ・システムの場合には、温度レベルが最大許容限界よりも下に下がるまで、1つ又は複数のプロセッサが停止される。温度レベルが許容限界の範囲内に戻ると、システム/プロセッサは再開される。
【発明の開示】
【発明が解決しようとする課題】
【0004】
熱を低減させるのに有効ではあるが、両方の解決策は、コンピュータ・リソースの著しい損失を示す。
【課題を解決するための手段】
【0005】
本発明の例示的な実施形態は、動作条件に基づいて、所定の期間に動作する複数のコアの最大数を設定するコア最大値を確立することと、所定の期間に動作する少なくとも1つのプロセッサの複数のコアの数と関連したコア実行値を求めることと、所定の期間においてコア実行値がコア最大値を上回る場合に、複数のコアの少なくとも1つを停止させることとによって、複数のコアを含む少なくとも1つのプロセッサを有するコンピュータ・システムを制御することを含む。
【0006】
上に要約された方法に対応するシステム及びコンピュータ・プログラム製品も、ここに説明され、特許請求される。
【0007】
さらなる特徴及び利点が、本発明の例示的な実施形態の技術を通して実現される。本発明の他の実施形態及び態様は、ここに詳細に説明され、特許請求される本発明の一部とみなされる。利点及び特徴を有する本発明をより良く理解するために、説明及び図面を参照されたい。
【発明を実施するための最良の形態】
【0008】
本発明と考えられる主題は、本明細書の冒頭の特許請求の範囲において具体的に示され、明確に特許請求されている。本発明の前記及び他の目的、特徴、並びに利点は、添付の図面と関連して用いられる以下の詳細な説明から明らかである。
【0009】
詳細な説明は、例として図面を参照して、利点及び特徴と共に本発明の例示的な実施形態を説明する。
【0010】
まず図1を参照すると、複数のコアが設けられた中央処理装置を有するコンピュータ・システムを制御する方法が、全体を20で示される。ブロック22に示されるように、最初に、プロセッサについての動作パラメータが感知される。より具体的には、これらに限られるものではないが、電力供給容量、空調装置容量、処理負荷、及び/又は周囲温度といった種々の動作パラメータに関する判断を行なう。ブロック24に示されるように、動作パラメータの1つ又は複数に基づいて、C_最大値すなわち同時に実行されるべきプロセッサ・コアの数を求める。ブロック26に示されるように、C_最大値を求めた後、C_実行値を設定するために、現在実際に実行されているコアの数に関する判断を行なう。ブロック27に示されるように、実行中のコアの数に関してプロセッサを走査しながら、全てのアクティブ・ジョブに優先順位をつける。優先順位は、これらに限られるものではないが、問題解決の深刻さなどの種々のパラメータに基づいている。例えば、即答を必要とするジョブは、長期の調査を必要とするジョブよりも優先する。優先順位は、システム管理者又は各ユーザにより設定することができる。いずれにしても、現在の優先順位リストを維持するために、アクティブ・ジョブの優先順位を定期的に更新する。ブロック28に示されるように、この時点で、C_実行値をC_最大値と比較する。C_実行値がC_最大値よりも小さい場合には、何のアクションもとられず、C_実行値を連続的に更新し、C_最大値と比較する。しかしながら、ブロック30に示されるように、C_実行値がC_最大値を上回る場合には、コアを停止しなければならず、C_実行値をC_最大値を下回るレベルに戻すために、停止する必要があるコアの数に関する判断を行なう。
【0011】
停止する必要があるコアの数は、C_実行値をC_最大値を下回る点まで下げるのに必要なコアの数に等しいか、又はそれよりも大きくすべきである。コアの停止は、ブロック27において求められたようなジョブ優先順位に基づいている。優先順位の低いコアは、優先順位の高いコアより先に停止される。停止されるコアが識別されると、停止値が、関連したコア割り当てテーブルに割り当てられる。停止される各コアについて、ジョブが完了するか、又は停止点に達すると、コアが停止され、さらなる命令なしに付加的なジョブを引き受けないように命令される。より具体的には、停止値を受け取ると、コアは、呼び出しスタック、ページング状態、メモリ・アクセス及び他のジョブ情報をメモリにコピーし、スリープ・モードをとる。ブロック32に示されるように、この時点で、C_実行値がC_最大値よりも小さいかどうかの判断を行なう。C_実行値がC_最大値よりも小さくない場合には、付加的なコアが停止される。他方、ブロック34に示されるように、C_実行値がC_最大値のレベル又はこれを下回るレベルに下がった場合には、前に停止したコアが再開され、付加的なジョブを引き受けることが可能になる。
【0012】
より具体的には、C_実行値がC_最大値のレベル又はそれよりも低いレベルに下がると、幾つのコアをスリープ・モードから覚醒させ得るかについて判断を行なう。スリープ・モードから覚醒されるコアの特定のもの、例えば、特定の処理ジョブを処理するのに必要なコアは、割り当てられたジョブの優先順位によって決まる。再開されるコアが識別されると、覚醒値が、コア割り当てテーブルに割り当てられる。覚醒値を受け取ると、コアは、呼び出しスタック、ページング状態、メモリ・アクセス及び他のジョブ情報をメモリにコピーし、既に処理中のジョブをレジュームする、又は新しいジョブを引き受けることが可能になる。
【0013】
この時点で、本発明の例示的な実施形態は、単一のプロセッサと関連して説明されているが、多数のコアを有するマルチプロセッサ、及び各々が多数のコアを有するマルチプロセッサを有するサーバと共に用い得ることも認識すべきである。このように、本発明の例示的な実施形態は、例えば、高温、高い利用頻度といった過酷状態(duress)にある間、プロセッサ負荷を管理する。著しく過酷な状態にある間、システムは、必要に応じてコアの特定のものを停止又はシャットダウンし、長時間過酷状態にある間、プログラムを持続可能なレベルに維持し、電源供給の停止又は温度調節機器の故障を防ぐ。
【0014】
本発明の能力は、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組み合わせで実施することができる。一例として、ここに説明される複数のコアが設けられた中央処理装置を有するコンピュータ・システムを制御する方法は、汎用コンピュータを用いて実行され、この方法は、汎用コンピュータによって用いるための、リムーバブル媒体又はハード媒体上の1組の命令としてコード化することができる。図2は、本発明の実施形態を実行するのに好適な汎用コンピュータの概略的なブロック図である。図2において、コンピュータ・システム400は、少なくとも1つのマイクロプロセッサ又は中央処理装置(CPU)405を有する。CPU405は、システム・バス410を介して、ランダム・アクセス・メモリ(RAM)415と、読み出し専用メモリ(ROM)420と、リムーバブル・データ及び/又はプログラム記憶装置430並びに大容量データ及び/又はプログラム記憶装置435を接続するための入力/出力(I/O)アダプタ425と、キーボード445及びマウス450を接続するためのユーザ・インターフェース・アダプタ440と、データ・ポート460を接続するためのポート・アダプタ455と、ディスプレイ装置470を接続するためのディスプレイ・アダプタ465と、に相互接続される。
【0015】
ROM420は、コンピュータ・システム400のための基本オペレーティング・システムを収容する。当技術分野において周知のように、オペレーティング・システムは、代替的に、RAM415又は他の場所にあってもよい。リムーバブル・データ及び/又はプログラム記憶装置430の例は、フロッピー(登録商標)・ドライブ及びテープ・ドライブなどの磁気媒体と、CD ROMドライブなどの光媒体とを含む。大容量データ及び/又はプログラム記憶装置435の例は、ハードディスク・ドライブと、フラッシュ・メモリなどの不揮発性メモリとを含む。キーボード445及びマウス450に加えて、トラックボール、書き込みタブレット、圧力パッド、マイクロフォン、ライトペン、及び位置感知スクリーン・ディスプレイといった他のユーザ入力装置をユーザ・インターフェース440に接続することができる。ディスプレイ装置の例は、陰極線管(CRT)ディスプレイと、液晶ディスプレイ(LCD)とを含む。
【0016】
ここに示されるフロー図は、単なる例にすぎない。本発明の精神から逸脱することなく、ここに説明されるこれらの図又はステップ(或いは、動作)に対する多くの変形があり得る。例えば、ステップを異なる順序で実行することができ、或いはステップを付加し、削除し、又は変更することができる。これら変形の全てが、本発明の特許請求の範囲の一部と考えられる。
【0017】
本発明の好ましい実施形態が説明されたが、当業者であれば、現在においても将来においても、上記の特許請求の範囲内に含まれる種々の改良及び向上を行ない得ることが理解されるであろう。これらの特許請求の範囲は、最初に説明された本発明に関する適切な保護を維持するように解釈すべきである。
【図面の簡単な説明】
【0018】
【図1】本発明の例示的な実施形態による、複数のコアを有するプロセッサを制御する方法を説明するフローチャートである。
【図2】本発明の例示的な実施形態を実行するのに好適な汎用コンピュータの概略的なブロック図である。
【符号の説明】
【0019】
400:コンピュータ・システム
405:中央処理装置
410:システム・バス
415:ランダム・アクセス・メモリ
420:読み出し専用メモリ
425:入力/出力(I/O)アダプタ
430:リムーバブル記憶装置
435:大容量記憶装置
440:ユーザ・インターフェース・アダプタ
445:キーボード
450:マウス
455:ポート・アダプタ
460:データ・ポート
465:ディスプレイ・アダプタ
470:ディスプレイ装置

【特許請求の範囲】
【請求項1】
複数のコアを含む少なくとも1つのプロセッサを有するコンピュータ・システムを制御する方法であって、
動作条件に基づいて、所定の期間に動作する前記複数のコアの最大数を設定するコア最大値を確立することと、
前記所定の期間に動作する前記少なくとも1つのプロセッサの前記複数のコアの数と関連したコア実行値を求めることと、
前記所定の期間において前記コア実行値が前記コア最大値を上回る場合には、前記複数のコアの少なくとも1つを停止させることと、
を含む前記方法。
【請求項2】
前記少なくとも1つのプロセッサにおける温度を感知することと、
前記少なくとも1つのプロセッサにおける前記温度に基づいて、前記コア最大値を確立することと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記複数のコアの各々についての処理負荷を感知することと、
前記処理負荷に基づいて、前記コア最大値を確立することと、
をさらに含む、請求項1に記載の方法。
【請求項4】
前記複数のコアのどれが優先順位の低いプロセスを実行しているかを検知することと、
優先順位の最も低いプロセスを実行している前記コアを停止させることと、
をさらに含む、請求項1に記載の方法。
【請求項5】
前記コア最大値が前記コア実行値より大きくなるまで、前記複数のコアの付加的なものを停止させることをさらに含む、請求項1に記載の方法。
【請求項6】
停止させるために前記複数のコアの選択されたものを識別することと、
前記複数のコアの前記選択されたものを停止させる前に、前記複数のコアの前記選択されたものからプロセスを転送することと、
をさらに含む、請求項1に記載の方法。
【請求項7】
別の所定の期間における動作条件に基づいて、新しいコア最大値を確立することと、
前記コア実行値が前記新しいコア最大値と等しいか又はこれよりも大きい場合には、前記複数のコアの前記少なくとも1つを再開することと、
をさらに含む、請求項1に記載の方法。
【請求項8】
コンピュータ・システムを動作させるためのシステムであって、
複数のコアを含む少なくとも1つの中央処理装置(CPU)であって、前記少なくとも1つの中央処理装置は、システム・バスを介して、
リムーバブル・データ記憶装置、プログラム記憶装置、及び大容量データ記憶装置の少なくとも1つに接続する入力/出力(I/O)アダプタと、
1つ又は複数のコンピュータ入力装置に接続するユーザ・インターフェース・アダプタと、
ディスプレイ装置に接続するディスプレイ・アダプタと、
前記少なくとも1つのCPUによって実行されるとき、前記システムに、
動作条件に基づいて所定の期間に動作する前記複数のコアの最大数を設定するコア最大値を確立させ、
前記所定の期間に動作する前記少なくとも1つのプロセッサの前記複数のコアの数と関連したコア実行値を求めさせ、
前記所定の期間において前記コア実行値が前記コア最大値を上回る場合には、前記複数のコアの少なくとも1つを停止させる、
1組の命令が格納された少なくとも1つのメモリ装置と、
に機能的に相互接続される、前記少なくとも1つの中央処理装置(CPU)を備える、前記システム。
【請求項9】
前記命令の組は、前記少なくとも1つのCPUによって実行されるとき、前記システムに、
前記少なくとも1つのCPUにおける温度を感知させ、
前記少なくとも1つのCPUにおける前記温度に基づいて、前記コア最大値を確立させる、請求項8に記載のシステム。
【請求項10】
前記命令の組は、前記少なくとも1つのCPUによって実行されるとき、前記システムに、
前記複数のコアの各々についての処理負荷を感知させ、
前記処理負荷に基づいて、前記コア最大値を確立させる、
請求項8に記載のシステム。
【請求項11】
前記命令の組は、前記少なくとも1つのCPUによって実行されるとき、前記システムに、
前記複数のコアのどれが優先順位の低いプロセスを実行しているかを検知させ、
優先順位の最も低いプロセスを実行している前記コアを停止させる、
請求項8に記載のシステム。
【請求項12】
前記命令の組は、前記少なくとも1つのCPUによって実行されるとき、前記システムに、
前記コア最大値が前記コア実行値よりも大きくなるまで、前記複数のコアの付加的なものを停止させる、
請求項8に記載のシステム。
【請求項13】
前記命令の組は、前記少なくとも1つのCPUによって実行されるとき、前記システムに、
停止させるために前記複数のコアの選択されたものを識別させ、
前記複数のコアの前記選択されたものを停止させる前に、前記複数のコアの前記選択されたものからプロセスを転送させる、
請求項8に記載のシステム。
【請求項14】
前記命令の組は、前記CPUによって実行されるとき、前記システムに、
別の所定の期間における動作条件に基づいて、新しいコア最大値を確立させ、
前記コア実行値が前記新しいコア最大値と等しいか又はこれよりも大きい場合には、前記複数のコアの前記少なくとも1つを再開させる、
請求項8に記載のシステム。
【請求項15】
コンピュータ可読プログラムを含むコンピュータ使用可能媒体であって、
前記コンピュータ可読プログラムは、コンピュータ上で実行されるとき、前記コンピュータに、
動作条件に基づいて、所定の期間に動作する少なくとも1つのプロセッサの複数のコアの最大数を設定するコア最大値を確立させ、
前記所定の期間に動作する前記複数のコアの数と関連したコア実行値を求めさせ、
前記所定の期間において前記コア実行値が前記コア最大値を上回る場合には、前記複数のコアの少なくとも1つを停止させる、
前記コンピュータ使用可能媒体を備えるコンピュータ・プログラム製品。
【請求項16】
前記コンピュータ可読プログラムは、コンピュータ上で実行されるとき、前記コンピュータに、
前記少なくとも1つのプロセッサにおける温度を感知させ、
前記少なくとも1つのプロセッサにおける前記温度に基づいて、前記コア最大値を確立させる、
請求項15に記載のコンピュータ・プログラム製品。
【請求項17】
前記コンピュータ可読プログラムは、コンピュータ上で実行されるとき、前記コンピュータに、
前記複数のコアの各々についての処理負荷を感知させ、
前記処理負荷に基づいて、前記コア最大値を確立させる、
請求項15に記載のコンピュータ・プログラム製品。
【請求項18】
前記コンピュータ可読プログラムは、コンピュータ上で実行されるとき、前記コンピュータに、
前記複数のコアのどれが優先順位の低いプロセスを実行しているかを検知させ、
優先順位の最も低いプロセスを実行している前記コアを停止させる、
請求項15に記載のコンピュータ・プログラム製品。
【請求項19】
前記コンピュータ可読プログラムは、コンピュータ上で実行されるとき、前記コンピュータに、
前記コア最大値が前記コア実行値よりも大きくなるまで、前記複数のコアの付加的なものを停止させる、
請求項15に記載のコンピュータ・プログラム製品。
【請求項20】
前記コンピュータ可読プログラムは、コンピュータ上で実行されるとき、前記コンピュータに、
停止させるために前記複数のコアの選択されたものを識別させ、
前記複数のコアの前記選択されたものを停止させる前に、前記複数のコアの前記選択されたものからプロセスを転送させる、
請求項15に記載のコンピュータ・プログラム製品。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2010−20743(P2010−20743A)
【公開日】平成22年1月28日(2010.1.28)
【国際特許分類】
【出願番号】特願2008−279636(P2008−279636)
【出願日】平成20年10月30日(2008.10.30)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100110607
【弁理士】
【氏名又は名称】間山 進也
【Fターム(参考)】