(57)【要約】【課題】プロセッサ冷却管理を提供すること。【解決手段】例示的実施形態は、冷却セッティングを調整する、コンピュータ実施される方法、データ処理システム、およびコンピュータ・プログラム製品を提供する。コンピュータ実施される方法は、アプリケーションの命令のセットが少なくとも１つのプロセッサ・コアの温度を高める度数を判定するために命令のそのセットを分析することを含む。コンピュータ実施される方法は、少なくとも１つのプロセッサ・コア用の少なくとも１つの冷却システムの冷却セッティングをさらに計算する。コンピュータ実施される方法は、冷却セッティングに基づいて少なくとも１つの冷却システムを調整する。命令のセットを分析するステップは、少なくとも１つのプロセッサ・コアで命令のセットが実行される前に実行される。少なくとも１つの冷却システムを調整するステップは、命令のセットが少なくとも１つのプロセッサ・コアで実行される前に実行される。【選択図】図２
2010262649.tif 000002
【特許請求の範囲】
【請求項１】
冷却セッティングを調整する、コンピュータ実施される方法であって、
アプリケーションの命令のセットが少なくとも１つのプロセッサ・コアの温度を高める度数を判定するために命令の前記セットを分析することと、
前記少なくとも１つのプロセッサ・コア用の少なくとも１つの冷却システムの冷却セッティングを計算することと、
前記冷却セッティングに基づいて前記少なくとも１つの冷却システムを調整することと
を含む方法。
【請求項２】
命令の前記セットを分析することは、前記少なくとも１つのプロセッサ・コアの前記温度が命令の前記セットの実行に起因して高められる前に実行され、前記少なくとも１つの冷却システムを調整することは、命令の前記セットが前記少なくとも１つのプロセッサ・コアで実行される前に実行される、請求項１に記載の方法。
【請求項３】
少なくとも１つのプロセッサ・コアの温度を識別すること
をさらに含む、請求項１に記載の方法。
【請求項４】
前記少なくとも１つの冷却システムを調整することは、前記少なくとも１つのプロセッサ・コアのそれぞれで、前記少なくとも１つの冷却システムをオフに切り替えること、前記少なくとも１つの冷却システムをオンに切り替えること、前記少なくとも１つの冷却システムの強度を高めること、および前記少なくとも１つの冷却システムの前記強度を下げることという群から選択される組合せを調整することを含む、請求項１に記載の方法。
【請求項５】
前記冷却セッティングを計算することは、制約式を使用することを含む、請求項１に記載の方法。
【請求項６】
前記制約式は、エネルギ・コストおよび金銭的コストに基づく、請求項５に記載の方法。
【請求項７】
度数を判定することは、
リポジトリ内の命令のセットに関する情報を取り出すことであって、前記リポジトリは、命令の複数のセットに関する前記情報を含み、前記情報は、命令の前記複数のセットのそれぞれのエネルギ消費データを含み、前記情報は、前記少なくとも１つのプロセッサ・コアのそれぞれの熱慣性データを含む、取り出すこと
をさらに含む、請求項１に記載の方法。
【請求項８】
命令の前記セットを分析することは、命令の前記セット内に配置されたカウンタを識別することを含む、請求項１に記載の方法。
【請求項９】
命令の前記セットを分析することは、分岐命令が実行される回数のパーセンテージを識別することを含む、請求項１に記載の方法。
【請求項１０】
命令の前記セットを分析することは、コンパイラ・ヒントを使用することによって、命令の前記セットを並列に実行できるかどうかを識別することを含む、請求項１に記載の方法。
【請求項１１】
冷却セッティングを調整するデータ処理システムであって、
バスと、
前記バスに接続され、コンピュータ実行可能命令を含むメモリと、
前記バスに接続された通信ユニットと、
前記バスに接続されたプロセッサ・ユニットであって、
アプリケーションの命令のセットが少なくとも１つのプロセッサ・コアの温度を高める度数を判定するために命令の前記セットを分析し、前記少なくとも１つのプロセッサ・コア用の少なくとも１つの冷却システムの冷却セッティングを計算し、前記冷却セッティングに基づいて前記少なくとも１つの冷却システムを調整する
ように前記データ処理システムに指示する前記コンピュータ実行可能命令を実行する、プロセッサ・ユニットと
を含むデータ処理システム。
【請求項１２】
命令の前記セットを分析することは、前記少なくとも１つのプロセッサ・コアの前記温度が命令の前記セットの実行に起因して高められる前に実行され、前記少なくとも１つの冷却システムを調整することは、命令の前記セットが前記少なくとも１つのプロセッサ・コアで実行される前に実行される、請求項１１に記載のデータ処理システム。
【請求項１３】
少なくとも１つのプロセッサ・コアの温度を識別する
ように前記データ処理システムに指示する命令をさらに含む、請求項１１に記載のデータ処理システム。
【請求項１４】
前記少なくとも１つの冷却システムを調整することは、前記少なくとも１つのプロセッサ・コアのそれぞれで、前記少なくとも１つの冷却システムをオフに切り替えること、前記少なくとも１つの冷却システムをオンに切り替えること、前記少なくとも１つの冷却システムの強度を高めること、および前記少なくとも１つの冷却システムの前記強度を下げることという群から選択される組合せを調整することを含む、請求項１１に記載のデータ処理システム。
【請求項１５】
前記冷却セッティングを計算することは、制約式を使用することを含む、請求項１１に記載のデータ処理システム。
【請求項１６】
プロセッサの冷却のために冷却セッティングを調整する、コンピュータ・プログラムであって、
アプリケーションの命令のセットが少なくとも１つのプロセッサ・コアの温度を高める度数を判定するために命令の前記セットを分析する命令と、
前記少なくとも１つのプロセッサ・コア用の少なくとも１つの冷却システムの冷却セッティングを計算する命令と、
前記冷却セッティングに基づいて前記少なくとも１つの冷却システムを調整する命令と
を、コンピュータに実行させるコンピュータ・プログラム。
【請求項１７】
プロセッサ・ユニットの冷却を管理する方法であって、
命令のセットを実行することから生じるプロセッサ・ユニット内の複数のプロセッサの温度変化を識別することと、
識別された変化を形成するために前記プロセッサ・ユニットの所望の温度プロファイルを維持するために、前記複数のプロセッサに関連する冷却システムに対する変化を識別することと、
前記識別された変化を使用して前記冷却システムを調整することと
を含む方法。
【請求項１８】
前記変化は、制約式を使用して識別される、請求項１７に記載の方法。
【請求項１９】
前記変化は、前記冷却システムの更新された冷却セッティングである、請求項１７に記載の方法。
【請求項２０】
プロセッサ・ユニットの冷却を管理する方法であって、
命令のセットを実行することから生じるプロセッサ・ユニット内の複数のプロセッサの温度変化を識別することと、
識別された変化を形成するために前記プロセッサ・ユニットの所望の温度プロファイルを維持するために、前記複数のプロセッサに関連する作業負荷に対する変化を識別することと、
前記識別された変化を使用して前記作業負荷を調整することと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にはプロセッサ冷却管理に関し、より具体的には、命令のセットに必要なエネルギに基づいてプロセッサ温度変化の前にプロセッサ冷却セッティングを調整することに関する。
【背景技術】
【０００２】
同一シャーシ内での複数のプロセッサの提供および同一冷却システムによる冷却は、熱エネルギおよびコスト効率を高める。しかし、集約された冷却の利益の一部は、ミスマッチな冷却の非効率性によって部分的に相殺され得る。言い換えると、あるプロセッサが、その作業負荷に起因して高い強度の冷却を要求すると同時に、他のモジュールが低強度の冷却を要求する場合がある。
【０００３】
冷却の効率を高める１つの形は、すべてのプロセッサにまたがる冷却の均一な使用を行うことである。各プロセッサは、均一な温度を有する。効率の向上は、最高の熱放出を伴うタスクを、その温度が最も低いプロセッサに割り当てることによって行うこともできる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、プロセッサの冷却に関する冷却セッティングを調整する、コンピュータ実施される方法、データ処理システム、およびコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【０００５】
コンピュータ実施される方法は、アプリケーションの命令のセットが少なくとも１つのプロセッサ・コアの温度を高める度数を判定するために命令のそのセットを分析することを含む。コンピュータ実施される方法は、少なくとも１つのプロセッサ・コア用の少なくとも１つの冷却システムの冷却セッティングをさらに計算する。コンピュータ実施される方法は、冷却セッティングに基づいて少なくとも１つの冷却システムを調整する。命令のセットを分析するステップは、命令のセットが少なくとも１つのプロセッサ・コアで実行される前に実行される。少なくとも１つの冷却システムを調整するステップは、命令のセットが少なくとも１つのプロセッサ・コアで実行される前に実行される。
【図面の簡単な説明】
【０００６】
【図１】例示的実施形態に従って図示されたデータ処理システムを示す図である。
【図２】例示的実施形態による冷却管理システムのコンポーネントを示すブロック図である。
【図３】例示的実施形態による冷却管理システムを使用するプロセスを示す流れ図である。
【図４】例示的実施形態による冷却管理システムを使用するプロセスを示す流れ図である。
【図５】例示的実施形態による冷却管理システムを使用するプロセスを示す流れ図である。
【発明を実施するための形態】
【０００７】
当業者によって了解されるとおり、本発明を、システム、方法、またはコンピュータ・プログラムとして実施することができる。したがって、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、またはソフトウェア態様およびハードウェア態様を組み合わせる実施形態の形をとることができ、これらのすべてを、本明細書では一般に「回路」、「モジュール」、または「システム」と称する場合がある。さらに、本発明は、媒体内で実施されるコンピュータ使用可能プログラム・コードを有する表現のすべての有形の媒体で実施されるコンピュータ・プログラムの形をとることができる。
【０００８】
１つまたは複数のコンピュータ使用可能媒体またはコンピュータ可読媒体の任意の組合せを利用することができる。コンピュータ使用可能媒体またはコンピュータ可読媒体は、たとえば、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、デバイス、または伝搬媒体とすることができるが、これらに限定はされない。コンピュータ可読媒体のより特定の例（非網羅的なリスト）は、１つまたは複数のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読取り専用メモリ（ＣＤＲＯＭ）、光記憶デバイス、インターネットまたはイントラネットをサポートするものなどの伝送媒体、あるいは磁気記憶デバイスを含む。コンピュータ使用可能媒体またはコンピュータ可読媒体を、紙またはプログラムがその上に印刷される別の適当な媒体とすることすらできることに留意されたい。というのは、プログラムを、たとえば、紙または他の媒体の光学スキャンを介して電子的に取り込むことができ、その後、必要な場合に、適当な形でコンパイルし、解釈し、または他の形で処理し、その後、コンピュータ・メモリに格納することができるからである。本文書の文脈では、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、命令実行装置、または命令実行デバイスによるまたはこれに関連する使用のためにプログラムを含み、格納し、通信し、伝搬し、または搬送することができるすべての媒体とすることができる。コンピュータ使用可能媒体は、ベースバンド内または搬送波の一部としてのいずれであれ、それと共に実施されたコンピュータ使用可能プログラム・コードを有する伝搬されるデータ信号を含むことができる。コンピュータ使用可能プログラム・コードを、無線、有線、光ファイバ・ケーブル、ＲＦなどを含むがこれらに限定はされない任意の適当な媒体を使用して送信することができる。
【０００９】
本発明の動作を実行するコンピュータ・プログラム・コードを、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋、または類似物などのオブジェクト指向プログラミング言語および「Ｃ」プログラミング言語または類似するプログラミング言語などの従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組合せで記述することができる。プログラム・コードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは完全にリモート・コンピュータ上またはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータを、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、あるいは、接続を、外部コンピュータに対して（たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して）行うことができる。
【００１０】
本発明を、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラムの流れ図またはブロック図あるいはその両方を参照して下で説明する。流れ図またはブロック図あるいはその両方の各ブロックならびに流れ図またはブロック図あるいはその両方のブロックの組合せを、コンピュータ・プログラム命令によって実施できることを理解されたい。
【００１１】
これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに供給して、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が流れ図またはブロック図あるいはその両方の１つまたは複数のブロックで指定される機能／動作を実施する手段を作るように、機械を作ることができる。これらのコンピュータ・プログラム命令を、コンピュータ可読媒体に格納された命令が流れ図またはブロック図あるいはその両方の１つまたは複数のブロックで指定される機能／動作を実施する命令手段を含む製造品を作るように、コンピュータまたは他のプログラマブル・データ処理装置に特定の形で機能するように指示できるコンピュータ可読媒体に格納することもできる。
【００１２】
コンピュータ・プログラム命令を、コンピュータまたは他のプログラマブル装置で実行される命令が流れ図またはブロック図あるいはその両方の１つまたは複数のブロックで指定される機能／動作を実施するプロセスを提供するように、コンピュータ実施されるプロセスを作るために一連の動作ステップをコンピュータまたは他のプログラマブル装置で実行させるためにコンピュータまたは他のプログラマブル・データ処理装置にロードすることもできる。
【００１３】
ここで図１に移ると、例示的実施形態に従って、データ処理システムの図が示されている。この例示的な例では、データ処理システム１００は、通信ファブリック１０２を含み、通信ファブリック１０２は、プロセッサ・ユニット１０４、メモリ１０６、永続ストレージ１０８、通信ユニット１１０、入出力ユニット１１２およびディスプレイ１１４の間の通信を提供する。本明細書で使用されるときに、用語「プロセッサ」は、「プロセッサ・コア」または「プロセッサ・ユニット」と交換可能に使用される場合がある。
【００１４】
プロセッサ・ユニット１０４は、メモリ１０６にロードできるソフトウェアの命令を実行するように働く。プロセッサ・ユニット１０４は、特定の実施態様に応じて、１つまたは複数のプロセッサのセットとすることができ、あるいは、マルチプロセッサ・コアとすることができる。さらに、プロセッサ・ユニット１０４を、メイン・プロセッサが単一チップ上に副プロセッサと共に存在する、１つまたは複数の異種プロセッサ・システムを使用して実施することができる。もう１つの例示的な例として、プロセッサ・ユニット１０４を、同一タイプの複数のプロセッサを含む対称型マルチプロセッサ・システムとすることができる。
【００１５】
本発明の例示的実施形態では、プロセッサ・ユニット１０４を、図２に示された冷却システム２１０などの冷却システムによって冷却することができる。プロセッサ・ユニット１０４に提供される冷却のタイプおよび冷却の量は、プロセッサ・ユニット１０４によって実行される命令のセットが必要とするエネルギの量によって決定することができる。
【００１６】
メモリ１０６および永続ストレージ１０８は、ストレージ・デバイスの例である。ストレージ・デバイスは、たとえば、限定なしに、データ、機能し得る形でのプログラム・コード、または他の適切な情報、あるいはこれらの組合せを、一時的な基礎または永久的な基礎のいずれかあるいはその両方でなど、情報を格納することができるすべてのハードウェアである。メモリ１０６は、これらの例で、たとえば、ランダム・アクセス・メモリまたは任意の他の適切な揮発性ストレージ・デバイスもしくは不揮発性ストレージ・デバイスとすることができる。永続ストレージ１０８は、特定の実施態様に応じてさまざまな形をとることができる。たとえば、永続ストレージ１０８は、１つまたは複数のコンポーネントまたはデバイスを含むことができる。たとえば、永続ストレージ１０８を、ハード・ドライブ、フラッシュ・メモリ、書換可能光ディスク、書換可能磁気テープ、または上記のある組合せとすることができる。永続ストレージ１０８によって使用される媒体を、取り外し可能とすることもできる。たとえば、取り外し可能ハード・ドライブを、永続ストレージ１０８に使用することができる。
【００１７】
通信ユニット１１０は、これらの例では、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット１１０は、ネットワーク・インターフェース・カードである。通信ユニット１１０は、物理的通信リンクおよび無線通信リンクのいずれかまたは両方の使用を介して通信を提供することができる。
【００１８】
入出力ユニット１１２は、データ処理システム１００に接続され得る他のデバイスを用いるデータの入力および出力を可能にする。たとえば、入出力ユニット１１２は、キーボード、マウス、またはある他の適切な入力デバイス、あるいはその組合せを介してユーザ入力用の接続を提供することができる。さらに、入出力ユニット１１２は、出力をプリンタに送ることができる。ディスプレイ１１４は、ユーザに情報を表示する機構を提供する。
【００１９】
オペレーティング・システム、アプリケーション、またはプログラム、あるいはその組合せの命令を、ストレージ・デバイス１２０に配置することができ、ストレージ・デバイス１２０は、通信ファブリック１０２を介してプロセッサ・ユニット１０４と通信している。これらの例示的な例では、命令は、機能し得る形で永続ストレージ１０８上にある。これらの命令を、プロセッサ・ユニット１０４による実行のためにメモリ１０６にロードすることができる。異なる実施形態のプロセスを、コンピュータ実施される命令を使用してプロセッサ・ユニット１０４によって実行することができ、このコンピュータ実施される命令は、メモリ１０６などのメモリ内に配置することができる。
【００２０】
これらの命令は、プロセッサ・ユニット１０４内のプロセッサによって読み取り、実行することができる、プログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと称する。異なる実施形態のプログラム・コードを、メモリ１０６または永続ストレージ１０８などの異なる物理的なまたは有形のコンピュータ可読媒体上で実施することができる。
【００２１】
プログラム・コード１１６は、機能し得る形で、選択的に取り外し可能であるコンピュータ可読媒体１１８上に配置され、プロセッサ・ユニット１０４による実行のためにデータ処理システム１００にロードされまたは転送され得る。プログラム・コード１１６およびコンピュータ可読媒体１１８は、これらの例では、コンピュータ・プログラム１２０を形成する。一例では、コンピュータ可読媒体１１８は、たとえば、永続ストレージ１０８の一部であるハード・ドライブなどのストレージ・デバイスへの転送のために永続ストレージ１０８の一部であるドライブまたは他のデバイスに挿入されまたは配置される光ディスクまたは磁気ディスクなどの有形の形とすることができる。有形の形では、コンピュータ可読媒体１１８は、データ処理システム１００に接続されるハード・ドライブ、サム・ドライブ、またはフラッシュ・メモリなどの永続ストレージの形をとることもできる。コンピュータ可読媒体１１８の有形の形を、コンピュータ記録可能記憶媒体とも称する。いくつかの実例では、コンピュータ可読媒体１１８を、取り外し可能ではないものとすることができる。
【００２２】
その代わりに、プログラム・コード１１６を、コンピュータ可読媒体１１８から通信ユニット１１０への通信リンクまたは入出力ユニット１１２への接続あるいはその両方を介してデータ処理システム１００に転送することができる。通信リンクまたは接続あるいはその両方を、例示的な例では物理的または無線とすることができる。コンピュータ可読媒体は、プログラム・コードを含む通信リンクまたは無線伝送など、非有形の媒体の形をとることもできる。
【００２３】
いくつかの例示的実施形態では、プログラム・コード１１６を、データ処理システム１００内での使用のために、ネットワークを介して別のデバイスまたはデータ処理システムから永続ストレージ１０８にダウンロードすることができる。たとえば、サーバ・データ処理システム内のコンピュータ可読記憶媒体に格納されたプログラム・コードを、ネットワークを介してサーバからデータ処理システム１００にダウンロードすることができる。プログラム・コード１１６を供給するデータ処理システムは、サーバ・コンピュータ、クライアント・コンピュータ、またはプログラム・コード１１６を格納でき、伝送できるある他のデバイスとすることができる。
【００２４】
データ処理システム１００について図示された異なるコンポーネントは、異なる実施形態を実施できる形に対するアーキテクチャ的な限定を提供することを意図されたものではない。異なる例示的実施形態を、データ処理システム１００について図示されたコンポーネントに加えてまたはその代わりにコンポーネントを含むデータ処理システム内で実施することができる。図１に示された他のコンポーネントを、図示の例示的な例から変更することができる。異なる実施形態を、プログラム・コードを実行できる任意のハードウェア・デバイスまたはシステムを使用して実施することができる。一例として、データ処理システムは、非有機的コンポーネントと一体化された有機コンポーネントを含むことができ、または人間を除く有機コンポーネントから完全になるものとすることができ、あるいはその両方とすることができる。たとえば、ストレージ・デバイスを、有機半導体からなるものとすることができる。
【００２５】
もう１つの例として、データ処理システム１００内のストレージ・デバイスは、データを格納できる任意のハードウェア装置である。メモリ１０６、永続ストレージ１０８、およびストレージ・デバイス１２０は、有形の形のストレージ・デバイスの例である。
【００２６】
もう１つの例では、バス・システムを使用して、通信ファブリック１０２を実施することができ、バス・システムは、システム・バスまたは入出力バスなどの１つまたは複数のバスからなるものとすることができる。もちろん、バス・システムを、バス・システムに接続された異なるコンポーネントまたはデバイスの間でのデータの転送をもたらす任意の適切なタイプのアーキテクチャを使用して実施することができる。さらに、通信ユニットは、モデムまたはネットワーク・アダプタなど、データを送信し、受信するのに使用される１つまたは複数のデバイスを含むことができる。さらに、メモリを、たとえば、通信ファブリック１０２内に存在し得るインターフェースおよびメモリ・コントローラ・ハブ内に見られるものなどのメモリ１０６またはキャッシュとすることができる。
【００２７】
図２を参照すると、例示的実施形態による冷却管理システム２００のコンポーネントのブロック図が示されている。冷却管理システム２００は、動作中に図１のデータ処理システム１００のコンポーネントに頼るが、これらのコンポーネントには、この図では対処しない。この例示的実施形態では、冷却管理システム２００のコンポーネントは、アプリケーション２０２、冷却管理プログラム２０４、リポジトリ２０６、オペレーティング・システム２０８、およびデータ処理システム２２６を含む。データ処理システム２２６は、さらに、冷却システム２１０およびプロセッサ２１２〜２１８を含む。各プロセッサ２１２、２１４、２１６、および２１８は、特定の実施態様に応じて、１つまたは複数のプロセッサのセットとすることができ、あるいはマルチプロセッサ・コアとすることができる。さらに、各プロセッサ２１２、２１４、２１６、および２１８を、メイン・プロセッサが単一チップ上に副プロセッサと共に存在する、１つまたは複数の異種プロセッサ・システムを使用して実施することができる。もう１つの例示的な例として、各プロセッサ２１２、２１４、２１６、および２１８を、同一タイプの複数のプロセッサを含む対称型マルチプロセッサ・システムとすることができる。
【００２８】
冷却システム２１０は、さらに、液冷２２０、空冷２２２、熱電冷却２２４、またはある他の適切な冷却デバイス、あるいはその組合せのうちの少なくとも１つを含む。本明細書で使用されるときに、句「少なくとも１つ」は、アイテムのリストと共に使用されるときに、リストされたアイテムのうちの１つまたは複数の異なる組合せを使用でき、リスト内の各アイテムのうちの１つだけが必要になる可能性があることを意味する。たとえば、「アイテムＡ、アイテムＢ、およびアイテムＣのうちの少なくとも１つ」は、たとえば、限定なしに、アイテムＡまたはアイテムＡおよびアイテムＢを含むことができる。この例は、アイテムＡ、アイテムＢ、およびアイテムＣを含むこともできる。この例は、アイテムＢおよびアイテムＣのみを含むこともできる。
【００２９】
アプリケーション２０２は、コンピュータ・システム上で実行される任意のタイプのアプリケーションとすることができる。アプリケーション２０２は、プロセッサ・ユニット１０４またはプロセッサ２１２〜２１８あるいはその両方などのプロセッサ・ユニットによって実行できる機能し得る形のプログラム・コードの形である。アプリケーション２０２は、ソース・コードまたは実行可能機械コードを含むことができる。通常、アプリケーション２０２は、アプリケーション２０２の動作の通常の過程の間にオペレーティング・システム２０８と通信する。たとえば、アプリケーション２０２は、アプリケーション・プログラミング・インターフェース（ＡＰＩ）を介してオペレーティング・システム２０８と通信することができる。
【００３０】
この例示的実施形態では、冷却管理プログラム２０４は、命令のセット２２８など、次に実行されようとしている命令のセットを識別することができる。命令のセット２２８は、単一命令ほどに小さいおよびアプリケーション全体ほど大きい、ループまたは命令の任意の他のセットを含むことができる。本明細書でアイテムへの言及と共に使用されるセットは、１つまたは複数のアイテムを意味する。たとえば、命令のセット２２８は、１つまたは複数の命令とすることができる。冷却管理プログラム２０４は、命令のセット２２８が少なくとも１つのプロセッサ・コアの温度を上げる度数を判定するために、命令のセット２２８を分析することができる。
【００３１】
冷却管理プログラム２０４は、リポジトリ２０６から命令のセット２２８に関する情報を取り出すことができる。たとえば、命令のセット２２８が、ある計算を実行しつつある場合に、リポジトリは、その計算が実行される時にどれほどのエネルギを消費するかに関する情報を含むことができる。冷却管理プログラム２０４は、命令のセット２２８が消費するエネルギの量を判定し、これをプロセッサの熱慣性と組み合わせて、プロセッサの変化の量またはレートあるいはその両方を判定する。リポジトリ２０６は、図１に示された永続ストレージ１０８など、任意の形のストレージとすることができる。また、リポジトリ２０６を、冷却管理プログラム２０４など、同一のデバイス、コンピュータ、または冷却管理システム上に含めることができるが、リポジトリ２０６を、リモート位置またはサーバあるいはその両方に配置することもできる。
【００３２】
冷却管理プログラム２０４は、プロセッサからの情報およびリポジトリ内の情報を制約式内で使用して、データ処理システム２２６に関する更新された冷却セッティングを判定する。冷却管理プログラム２０４は、どの冷却システムまたはどの組合せで冷却システムを使用すべきかをも判定することができる。冷却管理プログラム２０４は、更新された冷却セッティング２３２をオペレーティング・システム２０８に送る。オペレーティング・システム２０８は、冷却管理プログラム２０４から受け取った更新された冷却セッティング２３２に従って、冷却システム２１０の冷却セッティング２３０を変更することができる。
【００３３】
消費されるエネルギは、プロセッサ２１２〜２１８などのプロセッサに温度を上昇させる。この例示的実施形態によって提供される特徴は、プロセッサ２１２、２１４、２１６、および２１８の温度の将来の変化が、温度の実際の変化の前にわかることである。これは、プロセッサの寿命を延ばすのに役立つ。さらに、温度の変化が、変化が発生する前にわかるので、オペレーティング・システム２０８は、少なくとも１つの冷却システムの冷却セッティング２３０をより効率的に調整することができる。
【００３４】
冷却セッティング２３０を調整して、制約式に基づいて冷却システム２１０の効率を高めることができる。この制約式は、プロセッサの最高温度または温度が留まらなければならない範囲などの多数の制約を有することができる。所望の温度プロファイルは、プロセッサ・ユニット内のプロセッサごとに冷却セッティング２３０を示す。温度プロファイルは、各冷却システムおよびプロセッサ・ユニット内の各プロセッサに対する集合的セッティングである。
【００３５】
制約式は、エネルギ・コストまたは金銭的コストあるいはその両方の最小化に基づいて効率を最大にする。たとえば、プロセッサ２１２が、大量のエネルギを必要とする命令のブロックを受け取ることになると判定することができる。この例では、冷却管理プログラム２０４は、制約式に基づいて、プロセッサ２１２に対する冷却を最大冷却まで強める必要があると同時に、プロセッサ２１４、２１６、および２１８に対する冷却を最小冷却まで弱めることができると判定する。冷却は、命令のセット２２８が、プロセッサ２１２に達する前に高められる。命令のいくつかのセットは、他のセットより多くのエネルギを必要とする。命令のセット２２８が必要とするエネルギの量を、リポジトリ内で見つけることができる。
【００３６】
さらに、命令のセット２２８が待機ループである場合には、冷却管理プログラム２０４は、命令のセット２２８の不在に起因して、冷却を少なくとも１つのプロセッサ２１２、２１４、２１６、または２１８に対して弱めることができると判定することができる。ループは、増分カウンタを含む場合もあり、この増分カウンタは、冷却管理プログラム２０４がそのループの反復のセット全体のエネルギ・コストを判定することを可能にする。冷却管理プログラム２０４は、アプリケーション２０２が分岐命令を採用する回数またはパーセンテージあるいはその両方を考慮に入れることができる。アプリケーション２０２が分岐命令を実行する回数またはパーセンテージあるいはその両方を、冷却セッティングの計算で使用することができる。たとえば、分岐命令Ａが９９％の時に実行される場合には、冷却管理プログラム２０４は、分岐命令Ａが実行される高い確率のゆえに、分岐命令Ａが実行される前に分岐命令Ａのエネルギ要件を考慮に入れるために冷却セッティングを調整することができる。冷却管理プログラム２０４は、命令のセット２２８が複数のプロセッサで並列に実行される可能性があるかどうかを判定するのに、アプリケーション２０２のセクションに関するコンパイラ・ヒントを使用することもできる。たとえば、コンパイラ・ヒントは、ループまたは命令のセット２２８あるいはその両方が手続き呼出しを含むことを示すことができる。ループが手続き呼出しを含む場合には、並列ループがその関数にローカルな変数と干渉するので、そのループが並列に実行される可能性は低い。その代わりに、ループを並列に実行できる場合には、冷却管理プログラム２０４は、冷却セッティングを更新する時に並列／マルチスレッド処理を考慮に入れる。
【００３７】
リポジトリは、情報を事前にロードされてもよく、あるいは動的に更新されてもよい。たとえば、リポジトリを、命令の新しいセットが実行されるたびに更新することができる。情報は、命令の新しいセットがプロセッサの温度をどれほど高めたかからとることができる。命令のセット２２８が必要とするエネルギを、英熱単位（ＢＴＵ）で表すことができる。さらに、リポジトリは、各プロセッサ２１２、２１４、２１６、または２１８の熱慣性を含むことができる。熱慣性は、プロセッサ２１２、２１４、２１６、または２１８のそれぞれの温度の変化の量およびレートを決定するのに、冷却管理プログラム２０４によって使用される。
【００３８】
図２の冷却管理システム２００の図は、異なる有利な実施形態を実施できる形に関する物理的またはアーキテクチャ的な限定を暗示することを意図されたものではない。図示のコンポーネントに加えて、またはその代わりに、あるいはその両方で、他のコンポーネントを使用することができる。一部のコンポーネントが、いくつかの有利な実施形態で不要である場合がある。また、ブロックは、いくつかの機能し得るコンポーネントを示すために提示される。これらのブロックのうちの１つまたは複数を、異なる有利な実施形態で実施されるときに、組み合わせ、または異なるブロックに分割し、あるいはその両方を行うことができる。たとえば、冷却管理プログラム２０４を、複数のアプリケーションに適用することができる。また、冷却管理プログラム２０４が、冷却システム２１０内の冷却セッティングを直接に変更することができる。さらに、冷却管理プログラム２０４を、データ処理システム２２６、プロセッサ２１２〜２１８、または冷却システム２１０あるいはこれらの組合せの中のマイクロコードとして実施することができる。
【００３９】
図３を参照すると、例示的実施形態による図２の冷却管理システム２００を使用するプロセスの流れ図が示されている。このプロセスを、図２の冷却管理プログラム２０４によって実施することができる。
【００４０】
このプロセスは、開始され、命令のセットが少なくとも１つのプロセッサの温度を上げる度数を判定するためにアプリケーションの命令のセットを分析する（ステップ３０２）。命令のセットは、プロセッサでのその命令のセットの実行の前に分析される。冷却セッティングの計算を、少なくとも１つのプロセッサの少なくとも１つの冷却システムに関して行う（ステップ３０４）。冷却セッティングの計算を、制約式に基づくものとすることができる。制約式は、各プロセッサの温度、エネルギ・コスト、金銭的コスト、各プロセッサの熱慣性、またはプロセッサに関連する任意の他の特徴あるいはこれらの組合せを使用することができる。次に、冷却セッティングに基づいて、少なくとも１つの冷却システムに対して調整を行う（ステップ３０６）。冷却システムの調整は、少なくとも１つの冷却システムをオフに切り替えること、オンに切り替えること、強度を高めること、または強度を下げること、あるいはその任意の組合せを含む。その後、このプロセスは終了する。
【００４１】
図４を参照すると、例示的実施形態による図２の冷却管理システム２００を使用するプロセスの流れ図が示されている。このプロセスを、図２の冷却管理プログラム２０４によって実施することができる。
【００４２】
このプロセスは、開始され、命令のセットがプロセッサ上で実行される前に、命令のセットが少なくとも１つのプロセッサの温度を上げる度数を判定するためにアプリケーションの命令のセットを分析する（ステップ４０２）。冷却セッティングの計算を、少なくとも１つのプロセッサの少なくとも１つの冷却システムに関して行う（ステップ４０４）。命令のセットがプロセッサ上で実行される前に、冷却セッティングに基づいて、少なくとも１つの冷却システムに対して調整を行う（ステップ４０６）。その後、このプロセスは終了する。
【００４３】
図５を参照すると、例示的実施形態による図２の冷却管理システム２００を使用するプロセスの流れ図が示されている。このプロセスを、図２の冷却管理プログラム２０４によって実施することができる。
【００４４】
このプロセスは、開始され、命令のセットがプロセッサ・コア上で実行される前に、命令のセットが少なくとも１つのプロセッサ・コアの温度を上げる度数を判定するためにアプリケーションの命令のセットを分析する（ステップ５０２）。少なくとも１つのプロセッサ・コアの温度を識別する（ステップ５０４）。命令のセットに関する情報をリポジトリから取り出す（ステップ５０６）。リポジトリは、命令の複数のセットに関する情報を含む。この情報は、命令の複数のセットのそれぞれのエネルギ消費データを含む。この情報は、少なくとも１つのプロセッサ・コアのそれぞれの熱慣性データを含む。冷却セッティングの計算を、少なくとも１つのプロセッサ・コアの少なくとも１つの冷却システムに関して行う（ステップ５０８）。命令のセットがプロセッサ・コアで実行される前に、冷却セッティングに基づいて、少なくとも１つの冷却システムに対して調整を行う（ステップ５１０）。その後、このプロセスは終了する。
【００４５】
図面の流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラムの可能な実施態様のアーキテクチャ、機能性、および動作を示す。これに関して、流れ図またはブロック図内の各ブロックは、指定された論理的機能（１つまたは複数）を実施する１つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの部分を表す場合がある。いくつかの代替実施態様では、ブロック内に注記された機能が、図に注記された順序から外れて発生し得ることにも留意されたい。たとえば、連続して示された２つのブロックが、実際に、実質的に同時に実行される場合があり、あるいは、ブロックが、用いられる機能性に応じて、時々逆の順序で実行される場合がある。また、ブロック図または流れ図あるいはその両方の図の各ブロック、およびブロック図または流れ図あるいはその両方の図のブロックの組合せを、指定された機能または動作を実行する特殊目的ハードウェアベースのシステムまたは特殊目的ハードウェアおよびコンピュータ命令の組合せによって実施できることに留意されたい。
【００４６】
１つまたは複数の例示的実施形態は、現在使用可能な冷却技法と比較してより効率的な冷却技法を提供することができる。例示的実施形態は、先読み冷却（ｌｏｏｋ−ａｈｅａｄ  ｃｏｏｌｉｎｇ）を提供することができる。先読み冷却は、プロセッサが温度変化を開始する前またはそれと同時にプロセッサに対する冷却を変更することを可能にする。先読み冷却は、プロセッサに送られる命令のセットのエネルギ要件を計算することによって、変化が発生する前にプロセッサの温度の変化を判定する。
【００４７】
１つまたは複数の例示的実施形態は、プロセッサまたはプロセッサのセットあるいはその両方の所望の最高温度または所望の温度範囲を判定するために制約式を利用することを提供することができる。制約式の使用は、プロセッサの効率、冷却システム、エネルギ・コスト、または金銭的コストあるいはこれらの組合せの最大化を提供する。
【００４８】
１つまたは複数の例示的実施形態では、冷却管理システムは、命令のセットを実行することから生じる、プロセッサ・ユニット内の複数のプロセッサの温度変化を識別することができる。次に、冷却管理システムは、識別された変化を形成するためにプロセッサ・ユニットの所望の温度プロファイルを維持するために、複数のプロセッサに関連する冷却システムに対する変化を識別することができる。次に、冷却管理システムまたはオペレーティング・システムあるいはその両方は、識別された変化を使用して冷却システムを調整することができる。さらに、制約式を使用して、変化を識別することができる。変化は、冷却システムの更新された冷却セッティングとすることができる。
【００４９】
１つまたは複数の例示的実施形態では、冷却管理システムは、命令のセットを実行することから生じる、プロセッサ・ユニット内の複数のプロセッサの温度変化を識別することができる。次に、冷却管理システムは、識別された変化を形成するためにプロセッサ・ユニットの所望の温度プロファイルを維持するために、複数のプロセッサに関連する作業負荷に対する変化を識別することができる。作業負荷は、あるプロセッサに送られる命令の量およびタイプである。次に、冷却管理システムまたはオペレーティング・システムあるいはその両方は、識別された変化を使用して作業負荷を調整することができる。たとえば、オペレーティング・システムは、低い温度および高い最高温度を有するプロセッサに、よりエネルギ集中型の命令を送ることができる。制約式を使用して、作業負荷の分配の最大効率を判定することができる。制約式を使用して、変化を識別することができる。
【００５０】
本明細書で使用される用語法は、特定の実施形態を説明するためのみのものであって、本発明について限定的であることは意図されていない。本明細書で使用されるときに、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈がそうではないと明らかに示さない限り、複数形をも含むことが意図されている。さらに、用語「含む（ｃｏｍｐｒｉｓｅｓ）」または「含む（ｃｏｍｐｒｉｓｉｎｇ）」あるいはその両方は、本明細書で使用されるときに、述べられた特徴、整数、ステップ、動作、要素、またはコンポーネントあるいはその組合せの存在を指定するが、１つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、またはその群あるいはこれらの組合せの存在または追加を除外しないことが理解されよう。
【００５１】
添付の特許請求の範囲のすべての手段またはステップおよび機能要素の対応する構造、材料、行為、および同等物は、具体的に請求される他の請求される要素との組合せで機能を実行するすべての構造、材料、または行為を含むことが意図されている。本発明の説明は、例示および説明のために提示されたものであって、網羅的であることまたは開示された形の発明に限定することは意図されていない。本発明の範囲および趣旨から逸脱しない、多くの修正形態および変形形態が、当業者には明白であろう。実施形態は、本発明の原理および実用的応用を最もよく説明するため、および企図される特定の使用に適するようにさまざまな変更を伴うさまざまな実施形態のために当業者が本発明を理解することを可能にするために選択され、説明された。
【００５２】
本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェア要素とソフトウェア要素との両方を含む実施形態の形をとることができる。好ましい実施形態では、本発明はソフトウェアで実施され、このソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定はされない。
【００５３】
さらに、本発明は、コンピュータまたは任意の命令実行システムによるまたはこれらに関連する使用のためのプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形をとることができる。この説明の目的において、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、命令実行装置、または命令実行デバイスによるまたはこれらに関連する使用のためのプログラムを含み、格納し、通信し、伝搬し、または搬送することができるすべての有形の装置とすることができる。
【００５４】
媒体は、電子、磁気、光、電磁、赤外線、または半導体システム（または装置もしくはデバイス）、あるいは伝搬媒体とすることができる。コンピュータ可読媒体の例は、半導体メモリ、ソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、リジッド磁気ディスク、および光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク−読取り専用メモリ（ＣＤ−ＲＯＭ）、書換可能型コンパクト・ディスク（ＣＤ−Ｒ／Ｗ）、およびＤＶＤを含む。
【００５５】
プログラム・コードの格納または実行あるいはその両方に適するデータ処理システムは、メモリ要素に直接にまたはシステム・バスを介して間接に結合された少なくとも１つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、バルク・ストレージ、およびコードを実行中にバルク・ストレージから取り出さなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的ストレージを提供するキャッシュ・メモリを含むことができる。
【００５６】
入出力デバイスまたはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定はされない）を、直接にまたは介在するＩ／Ｏコントローラを介してのいずれかでシステムに結合することができる。
【００５７】
ネットワーク・アダプタをシステムに結合して、データ処理システムが他のデータ処理システムまたはリモート・プリンタもしくはリモート・ストレージ・デバイスに、介在する私有網または公衆網を介して接続されるようになることを可能にすることもできる。モデム、ケーブル・モデム、およびイーサネット・カードが、現在使用可能なタイプのネットワーク・アダプタのうちの少数である。
【００５８】
本発明の説明は、例示および説明のために提示され、網羅的であることまたは開示された形の発明に限定することは意図されていない。多くの修正形態および変形形態が、当業者には明白であろう。実施形態は、本発明の原理および実用的応用を最もよく説明するため、および企図される特定の使用に適するようにさまざまな変更を伴うさまざまな実施形態のために当業者が本発明を理解することを可能にするために選択され、説明された。
【符号の説明】
【００５９】
１００  データ処理システム
１０２  通信ファブリック
１０４  プロセッサ・ユニット
１０６  メモリ
１０８  永続ストレージ
１１０  通信ユニット
１１２  入出力ユニット
１１４  ディスプレイ
１１６  プログラム・コード
１１８  コンピュータ可読媒体
１２０  ストレージ・デバイス
コンピュータ・プログラム
２００  冷却管理システム
２０２  アプリケーション
２０４  冷却管理プログラム
２０６  リポジトリ
２０８  オペレーティング・システム
２１０  冷却システム
２１２  プロセッサ
２１４  プロセッサ
２１６  プロセッサ
２１８  プロセッサ
２２０  液冷
２２２  空冷
２２４  熱電冷却
２２６  データ処理システム
２２８  命令のセット
２３０  冷却セッティング
２３２  更新された冷却セッティング
【図１】
2010262649.tif 000003
【図２】
2010262649.tif 000004
【図３】
2010262649.tif 000005
【図４】
2010262649.tif 000006
【図５】
2010262649.tif 000007