説明

冷却セッティングを調整する方法、データ処理システム、およびコンピュータ・プログラム、ならびにプロセッサ・ユニットの冷却を管理する方法

【課題】プロセッサ冷却管理を提供すること。
【解決手段】例示的実施形態は、冷却セッティングを調整する、コンピュータ実施される方法、データ処理システム、およびコンピュータ・プログラム製品を提供する。コンピュータ実施される方法は、アプリケーションの命令のセットが少なくとも1つのプロセッサ・コアの温度を高める度数を判定するために命令のそのセットを分析することを含む。コンピュータ実施される方法は、少なくとも1つのプロセッサ・コア用の少なくとも1つの冷却システムの冷却セッティングをさらに計算する。コンピュータ実施される方法は、冷却セッティングに基づいて少なくとも1つの冷却システムを調整する。命令のセットを分析するステップは、少なくとも1つのプロセッサ・コアで命令のセットが実行される前に実行される。少なくとも1つの冷却システムを調整するステップは、命令のセットが少なくとも1つのプロセッサ・コアで実行される前に実行される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、全般的にはプロセッサ冷却管理に関し、より具体的には、命令のセットに必要なエネルギに基づいてプロセッサ温度変化の前にプロセッサ冷却セッティングを調整することに関する。
【背景技術】
【0002】
同一シャーシ内での複数のプロセッサの提供および同一冷却システムによる冷却は、熱エネルギおよびコスト効率を高める。しかし、集約された冷却の利益の一部は、ミスマッチな冷却の非効率性によって部分的に相殺され得る。言い換えると、あるプロセッサが、その作業負荷に起因して高い強度の冷却を要求すると同時に、他のモジュールが低強度の冷却を要求する場合がある。
【0003】
冷却の効率を高める1つの形は、すべてのプロセッサにまたがる冷却の均一な使用を行うことである。各プロセッサは、均一な温度を有する。効率の向上は、最高の熱放出を伴うタスクを、その温度が最も低いプロセッサに割り当てることによって行うこともできる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の目的は、プロセッサの冷却に関する冷却セッティングを調整する、コンピュータ実施される方法、データ処理システム、およびコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【0005】
コンピュータ実施される方法は、アプリケーションの命令のセットが少なくとも1つのプロセッサ・コアの温度を高める度数を判定するために命令のそのセットを分析することを含む。コンピュータ実施される方法は、少なくとも1つのプロセッサ・コア用の少なくとも1つの冷却システムの冷却セッティングをさらに計算する。コンピュータ実施される方法は、冷却セッティングに基づいて少なくとも1つの冷却システムを調整する。命令のセットを分析するステップは、命令のセットが少なくとも1つのプロセッサ・コアで実行される前に実行される。少なくとも1つの冷却システムを調整するステップは、命令のセットが少なくとも1つのプロセッサ・コアで実行される前に実行される。
【図面の簡単な説明】
【0006】
【図1】例示的実施形態に従って図示されたデータ処理システムを示す図である。
【図2】例示的実施形態による冷却管理システムのコンポーネントを示すブロック図である。
【図3】例示的実施形態による冷却管理システムを使用するプロセスを示す流れ図である。
【図4】例示的実施形態による冷却管理システムを使用するプロセスを示す流れ図である。
【図5】例示的実施形態による冷却管理システムを使用するプロセスを示す流れ図である。
【発明を実施するための形態】
【0007】
当業者によって了解されるとおり、本発明を、システム、方法、またはコンピュータ・プログラムとして実施することができる。したがって、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェア態様およびハードウェア態様を組み合わせる実施形態の形をとることができ、これらのすべてを、本明細書では一般に「回路」、「モジュール」、または「システム」と称する場合がある。さらに、本発明は、媒体内で実施されるコンピュータ使用可能プログラム・コードを有する表現のすべての有形の媒体で実施されるコンピュータ・プログラムの形をとることができる。
【0008】
1つまたは複数のコンピュータ使用可能媒体またはコンピュータ可読媒体の任意の組合せを利用することができる。コンピュータ使用可能媒体またはコンピュータ可読媒体は、たとえば、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、デバイス、または伝搬媒体とすることができるが、これらに限定はされない。コンピュータ可読媒体のより特定の例(非網羅的なリスト)は、1つまたは複数のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読取り専用メモリ(CDROM)、光記憶デバイス、インターネットまたはイントラネットをサポートするものなどの伝送媒体、あるいは磁気記憶デバイスを含む。コンピュータ使用可能媒体またはコンピュータ可読媒体を、紙またはプログラムがその上に印刷される別の適当な媒体とすることすらできることに留意されたい。というのは、プログラムを、たとえば、紙または他の媒体の光学スキャンを介して電子的に取り込むことができ、その後、必要な場合に、適当な形でコンパイルし、解釈し、または他の形で処理し、その後、コンピュータ・メモリに格納することができるからである。本文書の文脈では、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、命令実行装置、または命令実行デバイスによるまたはこれに関連する使用のためにプログラムを含み、格納し、通信し、伝搬し、または搬送することができるすべての媒体とすることができる。コンピュータ使用可能媒体は、ベースバンド内または搬送波の一部としてのいずれであれ、それと共に実施されたコンピュータ使用可能プログラム・コードを有する伝搬されるデータ信号を含むことができる。コンピュータ使用可能プログラム・コードを、無線、有線、光ファイバ・ケーブル、RFなどを含むがこれらに限定はされない任意の適当な媒体を使用して送信することができる。
【0009】
本発明の動作を実行するコンピュータ・プログラム・コードを、Java、Smalltalk、C++、または類似物などのオブジェクト指向プログラミング言語および「C」プログラミング言語または類似するプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述することができる。プログラム・コードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは完全にリモート・コンピュータ上またはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータを、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、あるいは、接続を、外部コンピュータに対して(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)行うことができる。
【0010】
本発明を、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラムの流れ図またはブロック図あるいはその両方を参照して下で説明する。流れ図またはブロック図あるいはその両方の各ブロックならびに流れ図またはブロック図あるいはその両方のブロックの組合せを、コンピュータ・プログラム命令によって実施できることを理解されたい。
【0011】
これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに供給して、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実施する手段を作るように、機械を作ることができる。これらのコンピュータ・プログラム命令を、コンピュータ可読媒体に格納された命令が流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実施する命令手段を含む製造品を作るように、コンピュータまたは他のプログラマブル・データ処理装置に特定の形で機能するように指示できるコンピュータ可読媒体に格納することもできる。
【0012】
コンピュータ・プログラム命令を、コンピュータまたは他のプログラマブル装置で実行される命令が流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実施するプロセスを提供するように、コンピュータ実施されるプロセスを作るために一連の動作ステップをコンピュータまたは他のプログラマブル装置で実行させるためにコンピュータまたは他のプログラマブル・データ処理装置にロードすることもできる。
【0013】
ここで図1に移ると、例示的実施形態に従って、データ処理システムの図が示されている。この例示的な例では、データ処理システム100は、通信ファブリック102を含み、通信ファブリック102は、プロセッサ・ユニット104、メモリ106、永続ストレージ108、通信ユニット110、入出力ユニット112およびディスプレイ114の間の通信を提供する。本明細書で使用されるときに、用語「プロセッサ」は、「プロセッサ・コア」または「プロセッサ・ユニット」と交換可能に使用される場合がある。
【0014】
プロセッサ・ユニット104は、メモリ106にロードできるソフトウェアの命令を実行するように働く。プロセッサ・ユニット104は、特定の実施態様に応じて、1つまたは複数のプロセッサのセットとすることができ、あるいは、マルチプロセッサ・コアとすることができる。さらに、プロセッサ・ユニット104を、メイン・プロセッサが単一チップ上に副プロセッサと共に存在する、1つまたは複数の異種プロセッサ・システムを使用して実施することができる。もう1つの例示的な例として、プロセッサ・ユニット104を、同一タイプの複数のプロセッサを含む対称型マルチプロセッサ・システムとすることができる。
【0015】
本発明の例示的実施形態では、プロセッサ・ユニット104を、図2に示された冷却システム210などの冷却システムによって冷却することができる。プロセッサ・ユニット104に提供される冷却のタイプおよび冷却の量は、プロセッサ・ユニット104によって実行される命令のセットが必要とするエネルギの量によって決定することができる。
【0016】
メモリ106および永続ストレージ108は、ストレージ・デバイスの例である。ストレージ・デバイスは、たとえば、限定なしに、データ、機能し得る形でのプログラム・コード、または他の適切な情報、あるいはこれらの組合せを、一時的な基礎または永久的な基礎のいずれかあるいはその両方でなど、情報を格納することができるすべてのハードウェアである。メモリ106は、これらの例で、たとえば、ランダム・アクセス・メモリまたは任意の他の適切な揮発性ストレージ・デバイスもしくは不揮発性ストレージ・デバイスとすることができる。永続ストレージ108は、特定の実施態様に応じてさまざまな形をとることができる。たとえば、永続ストレージ108は、1つまたは複数のコンポーネントまたはデバイスを含むことができる。たとえば、永続ストレージ108を、ハード・ドライブ、フラッシュ・メモリ、書換可能光ディスク、書換可能磁気テープ、または上記のある組合せとすることができる。永続ストレージ108によって使用される媒体を、取り外し可能とすることもできる。たとえば、取り外し可能ハード・ドライブを、永続ストレージ108に使用することができる。
【0017】
通信ユニット110は、これらの例では、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット110は、ネットワーク・インターフェース・カードである。通信ユニット110は、物理的通信リンクおよび無線通信リンクのいずれかまたは両方の使用を介して通信を提供することができる。
【0018】
入出力ユニット112は、データ処理システム100に接続され得る他のデバイスを用いるデータの入力および出力を可能にする。たとえば、入出力ユニット112は、キーボード、マウス、またはある他の適切な入力デバイス、あるいはその組合せを介してユーザ入力用の接続を提供することができる。さらに、入出力ユニット112は、出力をプリンタに送ることができる。ディスプレイ114は、ユーザに情報を表示する機構を提供する。
【0019】
オペレーティング・システム、アプリケーション、またはプログラム、あるいはその組合せの命令を、ストレージ・デバイス120に配置することができ、ストレージ・デバイス120は、通信ファブリック102を介してプロセッサ・ユニット104と通信している。これらの例示的な例では、命令は、機能し得る形で永続ストレージ108上にある。これらの命令を、プロセッサ・ユニット104による実行のためにメモリ106にロードすることができる。異なる実施形態のプロセスを、コンピュータ実施される命令を使用してプロセッサ・ユニット104によって実行することができ、このコンピュータ実施される命令は、メモリ106などのメモリ内に配置することができる。
【0020】
これらの命令は、プロセッサ・ユニット104内のプロセッサによって読み取り、実行することができる、プログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと称する。異なる実施形態のプログラム・コードを、メモリ106または永続ストレージ108などの異なる物理的なまたは有形のコンピュータ可読媒体上で実施することができる。
【0021】
プログラム・コード116は、機能し得る形で、選択的に取り外し可能であるコンピュータ可読媒体118上に配置され、プロセッサ・ユニット104による実行のためにデータ処理システム100にロードされまたは転送され得る。プログラム・コード116およびコンピュータ可読媒体118は、これらの例では、コンピュータ・プログラム120を形成する。一例では、コンピュータ可読媒体118は、たとえば、永続ストレージ108の一部であるハード・ドライブなどのストレージ・デバイスへの転送のために永続ストレージ108の一部であるドライブまたは他のデバイスに挿入されまたは配置される光ディスクまたは磁気ディスクなどの有形の形とすることができる。有形の形では、コンピュータ可読媒体118は、データ処理システム100に接続されるハード・ドライブ、サム・ドライブ、またはフラッシュ・メモリなどの永続ストレージの形をとることもできる。コンピュータ可読媒体118の有形の形を、コンピュータ記録可能記憶媒体とも称する。いくつかの実例では、コンピュータ可読媒体118を、取り外し可能ではないものとすることができる。
【0022】
その代わりに、プログラム・コード116を、コンピュータ可読媒体118から通信ユニット110への通信リンクまたは入出力ユニット112への接続あるいはその両方を介してデータ処理システム100に転送することができる。通信リンクまたは接続あるいはその両方を、例示的な例では物理的または無線とすることができる。コンピュータ可読媒体は、プログラム・コードを含む通信リンクまたは無線伝送など、非有形の媒体の形をとることもできる。
【0023】
いくつかの例示的実施形態では、プログラム・コード116を、データ処理システム100内での使用のために、ネットワークを介して別のデバイスまたはデータ処理システムから永続ストレージ108にダウンロードすることができる。たとえば、サーバ・データ処理システム内のコンピュータ可読記憶媒体に格納されたプログラム・コードを、ネットワークを介してサーバからデータ処理システム100にダウンロードすることができる。プログラム・コード116を供給するデータ処理システムは、サーバ・コンピュータ、クライアント・コンピュータ、またはプログラム・コード116を格納でき、伝送できるある他のデバイスとすることができる。
【0024】
データ処理システム100について図示された異なるコンポーネントは、異なる実施形態を実施できる形に対するアーキテクチャ的な限定を提供することを意図されたものではない。異なる例示的実施形態を、データ処理システム100について図示されたコンポーネントに加えてまたはその代わりにコンポーネントを含むデータ処理システム内で実施することができる。図1に示された他のコンポーネントを、図示の例示的な例から変更することができる。異なる実施形態を、プログラム・コードを実行できる任意のハードウェア・デバイスまたはシステムを使用して実施することができる。一例として、データ処理システムは、非有機的コンポーネントと一体化された有機コンポーネントを含むことができ、または人間を除く有機コンポーネントから完全になるものとすることができ、あるいはその両方とすることができる。たとえば、ストレージ・デバイスを、有機半導体からなるものとすることができる。
【0025】
もう1つの例として、データ処理システム100内のストレージ・デバイスは、データを格納できる任意のハードウェア装置である。メモリ106、永続ストレージ108、およびストレージ・デバイス120は、有形の形のストレージ・デバイスの例である。
【0026】
もう1つの例では、バス・システムを使用して、通信ファブリック102を実施することができ、バス・システムは、システム・バスまたは入出力バスなどの1つまたは複数のバスからなるものとすることができる。もちろん、バス・システムを、バス・システムに接続された異なるコンポーネントまたはデバイスの間でのデータの転送をもたらす任意の適切なタイプのアーキテクチャを使用して実施することができる。さらに、通信ユニットは、モデムまたはネットワーク・アダプタなど、データを送信し、受信するのに使用される1つまたは複数のデバイスを含むことができる。さらに、メモリを、たとえば、通信ファブリック102内に存在し得るインターフェースおよびメモリ・コントローラ・ハブ内に見られるものなどのメモリ106またはキャッシュとすることができる。
【0027】
図2を参照すると、例示的実施形態による冷却管理システム200のコンポーネントのブロック図が示されている。冷却管理システム200は、動作中に図1のデータ処理システム100のコンポーネントに頼るが、これらのコンポーネントには、この図では対処しない。この例示的実施形態では、冷却管理システム200のコンポーネントは、アプリケーション202、冷却管理プログラム204、リポジトリ206、オペレーティング・システム208、およびデータ処理システム226を含む。データ処理システム226は、さらに、冷却システム210およびプロセッサ212〜218を含む。各プロセッサ212、214、216、および218は、特定の実施態様に応じて、1つまたは複数のプロセッサのセットとすることができ、あるいはマルチプロセッサ・コアとすることができる。さらに、各プロセッサ212、214、216、および218を、メイン・プロセッサが単一チップ上に副プロセッサと共に存在する、1つまたは複数の異種プロセッサ・システムを使用して実施することができる。もう1つの例示的な例として、各プロセッサ212、214、216、および218を、同一タイプの複数のプロセッサを含む対称型マルチプロセッサ・システムとすることができる。
【0028】
冷却システム210は、さらに、液冷220、空冷222、熱電冷却224、またはある他の適切な冷却デバイス、あるいはその組合せのうちの少なくとも1つを含む。本明細書で使用されるときに、句「少なくとも1つ」は、アイテムのリストと共に使用されるときに、リストされたアイテムのうちの1つまたは複数の異なる組合せを使用でき、リスト内の各アイテムのうちの1つだけが必要になる可能性があることを意味する。たとえば、「アイテムA、アイテムB、およびアイテムCのうちの少なくとも1つ」は、たとえば、限定なしに、アイテムAまたはアイテムAおよびアイテムBを含むことができる。この例は、アイテムA、アイテムB、およびアイテムCを含むこともできる。この例は、アイテムBおよびアイテムCのみを含むこともできる。
【0029】
アプリケーション202は、コンピュータ・システム上で実行される任意のタイプのアプリケーションとすることができる。アプリケーション202は、プロセッサ・ユニット104またはプロセッサ212〜218あるいはその両方などのプロセッサ・ユニットによって実行できる機能し得る形のプログラム・コードの形である。アプリケーション202は、ソース・コードまたは実行可能機械コードを含むことができる。通常、アプリケーション202は、アプリケーション202の動作の通常の過程の間にオペレーティング・システム208と通信する。たとえば、アプリケーション202は、アプリケーション・プログラミング・インターフェース(API)を介してオペレーティング・システム208と通信することができる。
【0030】
この例示的実施形態では、冷却管理プログラム204は、命令のセット228など、次に実行されようとしている命令のセットを識別することができる。命令のセット228は、単一命令ほどに小さいおよびアプリケーション全体ほど大きい、ループまたは命令の任意の他のセットを含むことができる。本明細書でアイテムへの言及と共に使用されるセットは、1つまたは複数のアイテムを意味する。たとえば、命令のセット228は、1つまたは複数の命令とすることができる。冷却管理プログラム204は、命令のセット228が少なくとも1つのプロセッサ・コアの温度を上げる度数を判定するために、命令のセット228を分析することができる。
【0031】
冷却管理プログラム204は、リポジトリ206から命令のセット228に関する情報を取り出すことができる。たとえば、命令のセット228が、ある計算を実行しつつある場合に、リポジトリは、その計算が実行される時にどれほどのエネルギを消費するかに関する情報を含むことができる。冷却管理プログラム204は、命令のセット228が消費するエネルギの量を判定し、これをプロセッサの熱慣性と組み合わせて、プロセッサの変化の量またはレートあるいはその両方を判定する。リポジトリ206は、図1に示された永続ストレージ108など、任意の形のストレージとすることができる。また、リポジトリ206を、冷却管理プログラム204など、同一のデバイス、コンピュータ、または冷却管理システム上に含めることができるが、リポジトリ206を、リモート位置またはサーバあるいはその両方に配置することもできる。
【0032】
冷却管理プログラム204は、プロセッサからの情報およびリポジトリ内の情報を制約式内で使用して、データ処理システム226に関する更新された冷却セッティングを判定する。冷却管理プログラム204は、どの冷却システムまたはどの組合せで冷却システムを使用すべきかをも判定することができる。冷却管理プログラム204は、更新された冷却セッティング232をオペレーティング・システム208に送る。オペレーティング・システム208は、冷却管理プログラム204から受け取った更新された冷却セッティング232に従って、冷却システム210の冷却セッティング230を変更することができる。
【0033】
消費されるエネルギは、プロセッサ212〜218などのプロセッサに温度を上昇させる。この例示的実施形態によって提供される特徴は、プロセッサ212、214、216、および218の温度の将来の変化が、温度の実際の変化の前にわかることである。これは、プロセッサの寿命を延ばすのに役立つ。さらに、温度の変化が、変化が発生する前にわかるので、オペレーティング・システム208は、少なくとも1つの冷却システムの冷却セッティング230をより効率的に調整することができる。
【0034】
冷却セッティング230を調整して、制約式に基づいて冷却システム210の効率を高めることができる。この制約式は、プロセッサの最高温度または温度が留まらなければならない範囲などの多数の制約を有することができる。所望の温度プロファイルは、プロセッサ・ユニット内のプロセッサごとに冷却セッティング230を示す。温度プロファイルは、各冷却システムおよびプロセッサ・ユニット内の各プロセッサに対する集合的セッティングである。
【0035】
制約式は、エネルギ・コストまたは金銭的コストあるいはその両方の最小化に基づいて効率を最大にする。たとえば、プロセッサ212が、大量のエネルギを必要とする命令のブロックを受け取ることになると判定することができる。この例では、冷却管理プログラム204は、制約式に基づいて、プロセッサ212に対する冷却を最大冷却まで強める必要があると同時に、プロセッサ214、216、および218に対する冷却を最小冷却まで弱めることができると判定する。冷却は、命令のセット228が、プロセッサ212に達する前に高められる。命令のいくつかのセットは、他のセットより多くのエネルギを必要とする。命令のセット228が必要とするエネルギの量を、リポジトリ内で見つけることができる。
【0036】
さらに、命令のセット228が待機ループである場合には、冷却管理プログラム204は、命令のセット228の不在に起因して、冷却を少なくとも1つのプロセッサ212、214、216、または218に対して弱めることができると判定することができる。ループは、増分カウンタを含む場合もあり、この増分カウンタは、冷却管理プログラム204がそのループの反復のセット全体のエネルギ・コストを判定することを可能にする。冷却管理プログラム204は、アプリケーション202が分岐命令を採用する回数またはパーセンテージあるいはその両方を考慮に入れることができる。アプリケーション202が分岐命令を実行する回数またはパーセンテージあるいはその両方を、冷却セッティングの計算で使用することができる。たとえば、分岐命令Aが99%の時に実行される場合には、冷却管理プログラム204は、分岐命令Aが実行される高い確率のゆえに、分岐命令Aが実行される前に分岐命令Aのエネルギ要件を考慮に入れるために冷却セッティングを調整することができる。冷却管理プログラム204は、命令のセット228が複数のプロセッサで並列に実行される可能性があるかどうかを判定するのに、アプリケーション202のセクションに関するコンパイラ・ヒントを使用することもできる。たとえば、コンパイラ・ヒントは、ループまたは命令のセット228あるいはその両方が手続き呼出しを含むことを示すことができる。ループが手続き呼出しを含む場合には、並列ループがその関数にローカルな変数と干渉するので、そのループが並列に実行される可能性は低い。その代わりに、ループを並列に実行できる場合には、冷却管理プログラム204は、冷却セッティングを更新する時に並列/マルチスレッド処理を考慮に入れる。
【0037】
リポジトリは、情報を事前にロードされてもよく、あるいは動的に更新されてもよい。たとえば、リポジトリを、命令の新しいセットが実行されるたびに更新することができる。情報は、命令の新しいセットがプロセッサの温度をどれほど高めたかからとることができる。命令のセット228が必要とするエネルギを、英熱単位(BTU)で表すことができる。さらに、リポジトリは、各プロセッサ212、214、216、または218の熱慣性を含むことができる。熱慣性は、プロセッサ212、214、216、または218のそれぞれの温度の変化の量およびレートを決定するのに、冷却管理プログラム204によって使用される。
【0038】
図2の冷却管理システム200の図は、異なる有利な実施形態を実施できる形に関する物理的またはアーキテクチャ的な限定を暗示することを意図されたものではない。図示のコンポーネントに加えて、またはその代わりに、あるいはその両方で、他のコンポーネントを使用することができる。一部のコンポーネントが、いくつかの有利な実施形態で不要である場合がある。また、ブロックは、いくつかの機能し得るコンポーネントを示すために提示される。これらのブロックのうちの1つまたは複数を、異なる有利な実施形態で実施されるときに、組み合わせ、または異なるブロックに分割し、あるいはその両方を行うことができる。たとえば、冷却管理プログラム204を、複数のアプリケーションに適用することができる。また、冷却管理プログラム204が、冷却システム210内の冷却セッティングを直接に変更することができる。さらに、冷却管理プログラム204を、データ処理システム226、プロセッサ212〜218、または冷却システム210あるいはこれらの組合せの中のマイクロコードとして実施することができる。
【0039】
図3を参照すると、例示的実施形態による図2の冷却管理システム200を使用するプロセスの流れ図が示されている。このプロセスを、図2の冷却管理プログラム204によって実施することができる。
【0040】
このプロセスは、開始され、命令のセットが少なくとも1つのプロセッサの温度を上げる度数を判定するためにアプリケーションの命令のセットを分析する(ステップ302)。命令のセットは、プロセッサでのその命令のセットの実行の前に分析される。冷却セッティングの計算を、少なくとも1つのプロセッサの少なくとも1つの冷却システムに関して行う(ステップ304)。冷却セッティングの計算を、制約式に基づくものとすることができる。制約式は、各プロセッサの温度、エネルギ・コスト、金銭的コスト、各プロセッサの熱慣性、またはプロセッサに関連する任意の他の特徴あるいはこれらの組合せを使用することができる。次に、冷却セッティングに基づいて、少なくとも1つの冷却システムに対して調整を行う(ステップ306)。冷却システムの調整は、少なくとも1つの冷却システムをオフに切り替えること、オンに切り替えること、強度を高めること、または強度を下げること、あるいはその任意の組合せを含む。その後、このプロセスは終了する。
【0041】
図4を参照すると、例示的実施形態による図2の冷却管理システム200を使用するプロセスの流れ図が示されている。このプロセスを、図2の冷却管理プログラム204によって実施することができる。
【0042】
このプロセスは、開始され、命令のセットがプロセッサ上で実行される前に、命令のセットが少なくとも1つのプロセッサの温度を上げる度数を判定するためにアプリケーションの命令のセットを分析する(ステップ402)。冷却セッティングの計算を、少なくとも1つのプロセッサの少なくとも1つの冷却システムに関して行う(ステップ404)。命令のセットがプロセッサ上で実行される前に、冷却セッティングに基づいて、少なくとも1つの冷却システムに対して調整を行う(ステップ406)。その後、このプロセスは終了する。
【0043】
図5を参照すると、例示的実施形態による図2の冷却管理システム200を使用するプロセスの流れ図が示されている。このプロセスを、図2の冷却管理プログラム204によって実施することができる。
【0044】
このプロセスは、開始され、命令のセットがプロセッサ・コア上で実行される前に、命令のセットが少なくとも1つのプロセッサ・コアの温度を上げる度数を判定するためにアプリケーションの命令のセットを分析する(ステップ502)。少なくとも1つのプロセッサ・コアの温度を識別する(ステップ504)。命令のセットに関する情報をリポジトリから取り出す(ステップ506)。リポジトリは、命令の複数のセットに関する情報を含む。この情報は、命令の複数のセットのそれぞれのエネルギ消費データを含む。この情報は、少なくとも1つのプロセッサ・コアのそれぞれの熱慣性データを含む。冷却セッティングの計算を、少なくとも1つのプロセッサ・コアの少なくとも1つの冷却システムに関して行う(ステップ508)。命令のセットがプロセッサ・コアで実行される前に、冷却セッティングに基づいて、少なくとも1つの冷却システムに対して調整を行う(ステップ510)。その後、このプロセスは終了する。
【0045】
図面の流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラムの可能な実施態様のアーキテクチャ、機能性、および動作を示す。これに関して、流れ図またはブロック図内の各ブロックは、指定された論理的機能(1つまたは複数)を実施する1つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの部分を表す場合がある。いくつかの代替実施態様では、ブロック内に注記された機能が、図に注記された順序から外れて発生し得ることにも留意されたい。たとえば、連続して示された2つのブロックが、実際に、実質的に同時に実行される場合があり、あるいは、ブロックが、用いられる機能性に応じて、時々逆の順序で実行される場合がある。また、ブロック図または流れ図あるいはその両方の図の各ブロック、およびブロック図または流れ図あるいはその両方の図のブロックの組合せを、指定された機能または動作を実行する特殊目的ハードウェアベースのシステムまたは特殊目的ハードウェアおよびコンピュータ命令の組合せによって実施できることに留意されたい。
【0046】
1つまたは複数の例示的実施形態は、現在使用可能な冷却技法と比較してより効率的な冷却技法を提供することができる。例示的実施形態は、先読み冷却(look−ahead cooling)を提供することができる。先読み冷却は、プロセッサが温度変化を開始する前またはそれと同時にプロセッサに対する冷却を変更することを可能にする。先読み冷却は、プロセッサに送られる命令のセットのエネルギ要件を計算することによって、変化が発生する前にプロセッサの温度の変化を判定する。
【0047】
1つまたは複数の例示的実施形態は、プロセッサまたはプロセッサのセットあるいはその両方の所望の最高温度または所望の温度範囲を判定するために制約式を利用することを提供することができる。制約式の使用は、プロセッサの効率、冷却システム、エネルギ・コスト、または金銭的コストあるいはこれらの組合せの最大化を提供する。
【0048】
1つまたは複数の例示的実施形態では、冷却管理システムは、命令のセットを実行することから生じる、プロセッサ・ユニット内の複数のプロセッサの温度変化を識別することができる。次に、冷却管理システムは、識別された変化を形成するためにプロセッサ・ユニットの所望の温度プロファイルを維持するために、複数のプロセッサに関連する冷却システムに対する変化を識別することができる。次に、冷却管理システムまたはオペレーティング・システムあるいはその両方は、識別された変化を使用して冷却システムを調整することができる。さらに、制約式を使用して、変化を識別することができる。変化は、冷却システムの更新された冷却セッティングとすることができる。
【0049】
1つまたは複数の例示的実施形態では、冷却管理システムは、命令のセットを実行することから生じる、プロセッサ・ユニット内の複数のプロセッサの温度変化を識別することができる。次に、冷却管理システムは、識別された変化を形成するためにプロセッサ・ユニットの所望の温度プロファイルを維持するために、複数のプロセッサに関連する作業負荷に対する変化を識別することができる。作業負荷は、あるプロセッサに送られる命令の量およびタイプである。次に、冷却管理システムまたはオペレーティング・システムあるいはその両方は、識別された変化を使用して作業負荷を調整することができる。たとえば、オペレーティング・システムは、低い温度および高い最高温度を有するプロセッサに、よりエネルギ集中型の命令を送ることができる。制約式を使用して、作業負荷の分配の最大効率を判定することができる。制約式を使用して、変化を識別することができる。
【0050】
本明細書で使用される用語法は、特定の実施形態を説明するためのみのものであって、本発明について限定的であることは意図されていない。本明細書で使用されるときに、単数形「a」、「an」、および「the」は、文脈がそうではないと明らかに示さない限り、複数形をも含むことが意図されている。さらに、用語「含む(comprises)」または「含む(comprising)」あるいはその両方は、本明細書で使用されるときに、述べられた特徴、整数、ステップ、動作、要素、またはコンポーネントあるいはその組合せの存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、またはその群あるいはこれらの組合せの存在または追加を除外しないことが理解されよう。
【0051】
添付の特許請求の範囲のすべての手段またはステップおよび機能要素の対応する構造、材料、行為、および同等物は、具体的に請求される他の請求される要素との組合せで機能を実行するすべての構造、材料、または行為を含むことが意図されている。本発明の説明は、例示および説明のために提示されたものであって、網羅的であることまたは開示された形の発明に限定することは意図されていない。本発明の範囲および趣旨から逸脱しない、多くの修正形態および変形形態が、当業者には明白であろう。実施形態は、本発明の原理および実用的応用を最もよく説明するため、および企図される特定の使用に適するようにさまざまな変更を伴うさまざまな実施形態のために当業者が本発明を理解することを可能にするために選択され、説明された。
【0052】
本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェア要素とソフトウェア要素との両方を含む実施形態の形をとることができる。好ましい実施形態では、本発明はソフトウェアで実施され、このソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定はされない。
【0053】
さらに、本発明は、コンピュータまたは任意の命令実行システムによるまたはこれらに関連する使用のためのプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形をとることができる。この説明の目的において、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、命令実行装置、または命令実行デバイスによるまたはこれらに関連する使用のためのプログラムを含み、格納し、通信し、伝搬し、または搬送することができるすべての有形の装置とすることができる。
【0054】
媒体は、電子、磁気、光、電磁、赤外線、または半導体システム(または装置もしくはデバイス)、あるいは伝搬媒体とすることができる。コンピュータ可読媒体の例は、半導体メモリ、ソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、リジッド磁気ディスク、および光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク−読取り専用メモリ(CD−ROM)、書換可能型コンパクト・ディスク(CD−R/W)、およびDVDを含む。
【0055】
プログラム・コードの格納または実行あるいはその両方に適するデータ処理システムは、メモリ要素に直接にまたはシステム・バスを介して間接に結合された少なくとも1つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、バルク・ストレージ、およびコードを実行中にバルク・ストレージから取り出さなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的ストレージを提供するキャッシュ・メモリを含むことができる。
【0056】
入出力デバイスまたはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定はされない)を、直接にまたは介在するI/Oコントローラを介してのいずれかでシステムに結合することができる。
【0057】
ネットワーク・アダプタをシステムに結合して、データ処理システムが他のデータ処理システムまたはリモート・プリンタもしくはリモート・ストレージ・デバイスに、介在する私有網または公衆網を介して接続されるようになることを可能にすることもできる。モデム、ケーブル・モデム、およびイーサネット・カードが、現在使用可能なタイプのネットワーク・アダプタのうちの少数である。
【0058】
本発明の説明は、例示および説明のために提示され、網羅的であることまたは開示された形の発明に限定することは意図されていない。多くの修正形態および変形形態が、当業者には明白であろう。実施形態は、本発明の原理および実用的応用を最もよく説明するため、および企図される特定の使用に適するようにさまざまな変更を伴うさまざまな実施形態のために当業者が本発明を理解することを可能にするために選択され、説明された。
【符号の説明】
【0059】
100 データ処理システム
102 通信ファブリック
104 プロセッサ・ユニット
106 メモリ
108 永続ストレージ
110 通信ユニット
112 入出力ユニット
114 ディスプレイ
116 プログラム・コード
118 コンピュータ可読媒体
120 ストレージ・デバイス
コンピュータ・プログラム
200 冷却管理システム
202 アプリケーション
204 冷却管理プログラム
206 リポジトリ
208 オペレーティング・システム
210 冷却システム
212 プロセッサ
214 プロセッサ
216 プロセッサ
218 プロセッサ
220 液冷
222 空冷
224 熱電冷却
226 データ処理システム
228 命令のセット
230 冷却セッティング
232 更新された冷却セッティング

【特許請求の範囲】
【請求項1】
冷却セッティングを調整する、コンピュータ実施される方法であって、
アプリケーションの命令のセットが少なくとも1つのプロセッサ・コアの温度を高める度数を判定するために命令の前記セットを分析することと、
前記少なくとも1つのプロセッサ・コア用の少なくとも1つの冷却システムの冷却セッティングを計算することと、
前記冷却セッティングに基づいて前記少なくとも1つの冷却システムを調整することと
を含む方法。
【請求項2】
命令の前記セットを分析することは、前記少なくとも1つのプロセッサ・コアの前記温度が命令の前記セットの実行に起因して高められる前に実行され、前記少なくとも1つの冷却システムを調整することは、命令の前記セットが前記少なくとも1つのプロセッサ・コアで実行される前に実行される、請求項1に記載の方法。
【請求項3】
少なくとも1つのプロセッサ・コアの温度を識別すること
をさらに含む、請求項1に記載の方法。
【請求項4】
前記少なくとも1つの冷却システムを調整することは、前記少なくとも1つのプロセッサ・コアのそれぞれで、前記少なくとも1つの冷却システムをオフに切り替えること、前記少なくとも1つの冷却システムをオンに切り替えること、前記少なくとも1つの冷却システムの強度を高めること、および前記少なくとも1つの冷却システムの前記強度を下げることという群から選択される組合せを調整することを含む、請求項1に記載の方法。
【請求項5】
前記冷却セッティングを計算することは、制約式を使用することを含む、請求項1に記載の方法。
【請求項6】
前記制約式は、エネルギ・コストおよび金銭的コストに基づく、請求項5に記載の方法。
【請求項7】
度数を判定することは、
リポジトリ内の命令のセットに関する情報を取り出すことであって、前記リポジトリは、命令の複数のセットに関する前記情報を含み、前記情報は、命令の前記複数のセットのそれぞれのエネルギ消費データを含み、前記情報は、前記少なくとも1つのプロセッサ・コアのそれぞれの熱慣性データを含む、取り出すこと
をさらに含む、請求項1に記載の方法。
【請求項8】
命令の前記セットを分析することは、命令の前記セット内に配置されたカウンタを識別することを含む、請求項1に記載の方法。
【請求項9】
命令の前記セットを分析することは、分岐命令が実行される回数のパーセンテージを識別することを含む、請求項1に記載の方法。
【請求項10】
命令の前記セットを分析することは、コンパイラ・ヒントを使用することによって、命令の前記セットを並列に実行できるかどうかを識別することを含む、請求項1に記載の方法。
【請求項11】
冷却セッティングを調整するデータ処理システムであって、
バスと、
前記バスに接続され、コンピュータ実行可能命令を含むメモリと、
前記バスに接続された通信ユニットと、
前記バスに接続されたプロセッサ・ユニットであって、
アプリケーションの命令のセットが少なくとも1つのプロセッサ・コアの温度を高める度数を判定するために命令の前記セットを分析し、前記少なくとも1つのプロセッサ・コア用の少なくとも1つの冷却システムの冷却セッティングを計算し、前記冷却セッティングに基づいて前記少なくとも1つの冷却システムを調整する
ように前記データ処理システムに指示する前記コンピュータ実行可能命令を実行する、プロセッサ・ユニットと
を含むデータ処理システム。
【請求項12】
命令の前記セットを分析することは、前記少なくとも1つのプロセッサ・コアの前記温度が命令の前記セットの実行に起因して高められる前に実行され、前記少なくとも1つの冷却システムを調整することは、命令の前記セットが前記少なくとも1つのプロセッサ・コアで実行される前に実行される、請求項11に記載のデータ処理システム。
【請求項13】
少なくとも1つのプロセッサ・コアの温度を識別する
ように前記データ処理システムに指示する命令をさらに含む、請求項11に記載のデータ処理システム。
【請求項14】
前記少なくとも1つの冷却システムを調整することは、前記少なくとも1つのプロセッサ・コアのそれぞれで、前記少なくとも1つの冷却システムをオフに切り替えること、前記少なくとも1つの冷却システムをオンに切り替えること、前記少なくとも1つの冷却システムの強度を高めること、および前記少なくとも1つの冷却システムの前記強度を下げることという群から選択される組合せを調整することを含む、請求項11に記載のデータ処理システム。
【請求項15】
前記冷却セッティングを計算することは、制約式を使用することを含む、請求項11に記載のデータ処理システム。
【請求項16】
プロセッサの冷却のために冷却セッティングを調整する、コンピュータ・プログラムであって、
アプリケーションの命令のセットが少なくとも1つのプロセッサ・コアの温度を高める度数を判定するために命令の前記セットを分析する命令と、
前記少なくとも1つのプロセッサ・コア用の少なくとも1つの冷却システムの冷却セッティングを計算する命令と、
前記冷却セッティングに基づいて前記少なくとも1つの冷却システムを調整する命令と
を、コンピュータに実行させるコンピュータ・プログラム。
【請求項17】
プロセッサ・ユニットの冷却を管理する方法であって、
命令のセットを実行することから生じるプロセッサ・ユニット内の複数のプロセッサの温度変化を識別することと、
識別された変化を形成するために前記プロセッサ・ユニットの所望の温度プロファイルを維持するために、前記複数のプロセッサに関連する冷却システムに対する変化を識別することと、
前記識別された変化を使用して前記冷却システムを調整することと
を含む方法。
【請求項18】
前記変化は、制約式を使用して識別される、請求項17に記載の方法。
【請求項19】
前記変化は、前記冷却システムの更新された冷却セッティングである、請求項17に記載の方法。
【請求項20】
プロセッサ・ユニットの冷却を管理する方法であって、
命令のセットを実行することから生じるプロセッサ・ユニット内の複数のプロセッサの温度変化を識別することと、
識別された変化を形成するために前記プロセッサ・ユニットの所望の温度プロファイルを維持するために、前記複数のプロセッサに関連する作業負荷に対する変化を識別することと、
前記識別された変化を使用して前記作業負荷を調整することと
を含む方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2010−262649(P2010−262649A)
【公開日】平成22年11月18日(2010.11.18)
【国際特許分類】
【出願番号】特願2010−100920(P2010−100920)
【出願日】平成22年4月26日(2010.4.26)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
2.イーサネット
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】