JP3983250B2 - 演算処理方法および演算処理装置 - Google Patents

演算処理方法および演算処理装置 Download PDF

Info

Publication number
JP3983250B2
JP3983250B2 JP2005088404A JP2005088404A JP3983250B2 JP 3983250 B2 JP3983250 B2 JP 3983250B2 JP 2005088404 A JP2005088404 A JP 2005088404A JP 2005088404 A JP2005088404 A JP 2005088404A JP 3983250 B2 JP3983250 B2 JP 3983250B2
Authority
JP
Japan
Prior art keywords
processing
processing device
calculation
clock speed
temperature
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
JP2005088404A
Other languages
English (en)
Other versions
JP2005285124A (ja
Inventor
敬介 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of JP2005285124A publication Critical patent/JP2005285124A/ja
Application granted granted Critical
Publication of JP3983250B2 publication Critical patent/JP3983250B2/ja
Active 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/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Devices For Executing Special Programs (AREA)
  • Air Conditioning Control Device (AREA)

Description

本発明は、処理環境において熱管理を実行し、および特に命令およびタスクを効果的に割り当てることにより、熱ホットスポットを減少させる方法と装置に関する。
コンピュータシステムはよりますます複雑になっている。そして、同時に、コンポーネントのサイズを縮小して、高密度にコンピュータチップ上のデバイスを実装しており、より高処理速度を達成している。これらの長所は、多くのアプリケーション、例えばリアルタイムでマルチメディアのゲームおよび他の計算集約型のアプリケーションの成功にきわめて重大である。コンピュータシステムは、処理効率を上げるために、しばしば並行に(または協調して)作動する多数のプロセッサを組み込む。
コンポーネントおよび素子が演算、例えば命令およびタスクを実行する時に、熱がよく発生する。過剰な熱は、逆に電子構成部品、例えばコンピュータチップの処理能力に影響を与え得る。例えば、チップの一つの領域が計算において集中的なタスクを実行している場合、その領域はかなり加熱する可能性があり、また他のチップと関連してホットスポットを形成する可能性がある。ホットスポットがある熱閾値を越える場合、コンポーネントの処理能力またはチップのその領域の素子は性能が低下する可能性があり、または、チップが損害を受けるかまたは破壊される可能性すらある。
過去において、種々の解決手段が加熱問題を解決するために採用されている。機械的解決手段の一つは、ヒートシンクをコンピュータチップに取り付けることである。しかしながら、ヒートシンクは大きく、単にチップから、そして、チップを囲んでいるスペース領域に熱を放出するのに役立ち得るにすぎない。チップがエンクロージャ、例えばパソコンキャビネットに格納されるときに、この熱はファンの使用などによって除去されなければならないが、それ自身スペースをとり、不要なノイズを発生させる。
ほかにも、より複雑な温度管理手段も存在する。例えば、ある解決手段では、温度センサが重要な回路要素、例えばプロセッサに配置されることができ、そして、ファンが関連するシステムエンクロージャに載置されることができる。温度センサが特定の温度に達したことを示すときに、ファンがオンになる。そして、プロセッサを冷却するためのシステムエンクロージャで、エアフローを増加させる。あるいは、温度センサが所定の温度を越えることを示すときに、処理環境にシャットダウンをするよう警報が発せられることもできる。このセンサは、しばしばホットスポットから少し離れて配置される。残念なことに、このフィードバック方法は、オーバーヒートを防止するにはあまりに遅く、または信頼性なく機能する可能性がある。
温度管理を行うための更なる試みでは、ソフトウェアの使用を採用する。例えば、ある技術では、演算間で冷却するより多くの時間をもつように、コンポーネントのクロックを減速する。ある従来のシステムは、命令キャッシュから抑制機構を使用する命令バッファまで、命令取得率を制御する。取得率を減らすことは、熱の発生を低減する。更により抜本的な方法は、プロセッサをシャットダウンして、それを冷やすことである。残念なことに、これらの技術の全てコンポーネントの演算速度に直接影響し、リアルタイム処理要求に不利益となる可能性がある。
したがって、追加的なハードウェアまたは非効率的なソフトウェアルーチンを避けると共に、温度管理を達成するための新規な方法と装置の必要性が本技術においてある。
本発明の実施の形態によって、演算の実行のために、方法とシステムが提供される。好ましい方法において、熱閾値は、複数の処理デバイスに関連する。演算は、少なくともいくつかの処理デバイスに提供される。第1デバイスは、第1演算を実行することができる。第1演算を実行する間に、第1処理デバイスがその熱閾値を越す場合、第1演算は第2処理デバイスへ転送される。
実施の形態において、第2処理デバイスは、第2演算を実行するように操作可能である。ここで、加えて、本方法は第2演算を第1処理デバイスへ転送することを含む。この場合、本方法は、好ましくは、減じられたクロックスピードで第2演算を実行する第1処理デバイスを更に備える。
計算演算を実行する好ましい他の方法において、複数の処理デバイスは、熱閾値と関連する。演算は、少なくともいくつかの処理デバイスに提供される。第1処理デバイスは、第1演算を実行するように操作可能である。第1処理デバイスが第1演算の実行中にその熱閾値を越す場合、第1演算はキューへ転送される。
実施の形態において、キューはホットキューまたはクールキューである。方法は、熱特性を第1演算と関連づけること、および、熱特性によって、ホットキューまたはクールキューに第1演算を送ることを含む、第1演算を転送することを更に含む。この場合、本方法は、そのデバイスが第1演算を実行するために選択される場合、選択された処理デバイスによって発生すると予想される熱量に基づいた熱特性を決定することを含むことができる。あるいは、ホットキューは複数のホットキューを備え、クールキューは複数のクールキューを備え、各々がそれらに関連する優先度を有する。第1演算は、それと関連する実行優先度を有する。この場合、第1演算を転送することは、実行優先度、およびホットおよびクールキューの優先度によって、ホットキューの選択された一つ、またはクールキューの選択された一つへ第1演算を送ることを更に含む。
本発明の態様にしたがって、好ましい処理システムは、第1および第2プロセッサを含む。プロセッサは、演算を実行することができる。各々のプロセッサは、熱閾値を有する。第1プロセッサが第1演算の実行中にその熱閾値を越す場合、第1演算は第2プロセッサへ転送される。
処理システムは、好ましくはキューを含む。第1プロセッサの熱閾値を越える間に、第2プロセッサが第2演算を実行している場合、第2プロセッサは、第2演算をキューにまたは第1プロセッサに転送するように操作可能である。キューは、複数の優先度キューの一つであってもよい。あるいは、キューはホットキューまたはクールキューであってもよい。
他の好ましい処理システムは、第1および第2プロセッサを含む。各々のプロセッサは、熱閾値を有する。第1および第2プロセッサは、それぞれ、第1および第2演算を実行することができる。第1演算は高優先度を有し、そして、第2演算は低優先度を有する。第1プロセッサが第1演算の実行中にその熱閾値を越す場合、第1演算は第2プロセッサへ転送され、そして、第2演算は第1プロセッサへ転送される。第1プロセッサは、減じられたクロックスピードで第2演算を実行する。
本発明の態様に従う好ましいさらに別の方法において、コンポーネントの処理操作の方法が提供される。コンポーネントは、あるクロックスピードで演算を実行する。本方法は、より低いまたはより高い実行の優先度を有する演算を提供することを含む。コンポーネントの温度を表す熱値は、決定される。それから、熱値によって、クロックスピードは減じられ、そして、より低い実行の優先度を有する演算の一つが選択される。または、クロックスピードは維持されるかまたは高められ、そして、より高い実行の優先度を有する演算の一つが選択される。そして、選択された演算は、処理される。
本発明の他の実施の形態にしたがって、処理システムは提供される。処理システムは、熱特性と関連する演算を処理することのためにある。システムは、第1演算、第2演算およびプロセッサを含む。第1演算は、操作の閾値を越す熱特性を有する。第2演算は、操作の閾値を越さない熱特性を有する。プロセッサは、演算を実行することができる。プロセッサは、熱閾値を有する。プロセッサの熱閾値を越えない場合、プロセッサは処理のための第1演算を選択する。プロセッサの熱閾値を越える場合、プロセッサは処理のための第2演算を選択する。
熱閾値を越えない場合、そして、第1演算が利用可能でない場合、プロセッサは、好ましくは、第2演算を得て、実行するように操作可能である。この場合、第2演算が利用可能でない場合、プロセッサは、例えば1以上のクロックサイクルなど所定の期間の間、休止することができる。他の変形例において、システムは複数の優先度キューを含むことができる。各々の優先度キューは、第1演算を格納するための第1キュー、および第2演算を格納するための第2キューを含む。望ましくは、第1優先度キューは、高優先度キューであり、第2優先度キューは、中優先度キューであり、そして、第3優先度キューは、低優先度キューである。
本発明の態様にしたがって、演算を処理するための処理装置が提供される。処理装置は、メモリおよび複数の処理デバイスから成る。メモリは、第1演算を格納する。処理デバイスは、第1演算を実行することができる。第1処理デバイスは、処理要素、処理ユニットまたはサブ処理ユニットを有することができる。第1処理デバイスは熱閾値を有し、およびメモリへアクセスする。第1演算の実行中に熱閾値を越える場合、その演算は第2処理デバイスへ転送される。
処理デバイスの少なくともいくつかは、処理要素であってもよい。この場合、いくつかの処理要素は、少なくとも一つのサブ処理ユニットを更に備えることができる。ここで、各々のサブ処理ユニットは、浮動小数点ユニット、整数ユニットおよび浮動小数点ユニットおよび整数ユニットと関連するレジスタを含むことができる。サブ処理ユニットは、任意に各々ローカル記憶部を含むことができる。
あるいは、処理要素の少なくともいくつかは、処理ユニット、および処理ユニットと関連する複数のサブ処理ユニットを更に備えることができる。この場合、各々のサブ処理ユニットは、ローカル記憶部を更に含むことができる。
実施の形態において、第1処理デバイスはサブ処理ユニットを含み、そして、メモリはサブ処理ユニットのローカル記憶部を含む。好ましくは、ローカル記憶部は演算を管理するキューを含む。第1処理デバイスの熱閾値を越える間に、第2処理デバイスが第2演算を実行している場合、第2処理デバイスは、第2演算をキューにまたは第1処理デバイスに転送するように操作可能である。キューは、複数の優先度キューの一つであってもよい。あるいは、キューは、第1演算を管理するための第1キュー、および第2演算を管理するための第2キューを有することができる。
他の例では、メモリは、第1演算を格納する第1メモリ、および第2演算を格納する第2メモリを有することができる。この場合、処理デバイスの少なくともいくつかは、第1および第2メモリにアクセスする。第1処理デバイスの熱閾値を越える間に、第2処理デバイスが第2演算を実行している場合、第2処理デバイスは、第2演算を第2メモリにまたは第1処理デバイスに転送することができる。
更なる例において、第1演算および第2演算は、同時にメモリにおいて、または時分割方式の装置において、維持されることができる。
本発明の更なる態様にしたがって、演算を処理することのため処理装置が提供される。第1および第2メモリは、第1および第2演算を格納する。複数の処理デバイスは、第1および第2演算を実行するように操作可能である。第1処理デバイスは、処理要素、処理ユニットまたはサブ処理ユニットを含むことができる。第1および第2メモリへのアクセスと同様に、第1処理ユニットは、熱閾値を有する。第1演算の実行中に熱閾値を越える場合、第1演算は第2処理デバイスへ転送される。
追加的な本発明の態様にしたがって、演算を処理するために処理装置が提供される。処理デバイスは、演算を実行するように操作可能である。第1および第2処理デバイスは各々、処理要素、処理ユニット、またはサブ処理ユニットを含むことができる。第1および第2処理デバイスは、各々熱閾値を有する。第1演算は第1優先度を有し、そして、第2演算は第2優先度を有する。第1演算の実行中に第1処理デバイスの熱閾値を越える場合、その演算は第2処理デバイスへ転送される。第2演算は、第1処理デバイスへ転送される。第1処理デバイスは、減じられたクロックスピードで第2演算を実行する。好ましくは、第1優先度は高優先度であり、そして、第2優先度は低優先度である。
本発明の更なる態様にしたがって、演算を処理するために処理装置が提供される。第1演算は、条件を満たさない熱特性を有する。第2演算は、条件を満たす熱特性を有する。プロセッサは、両方の演算を実行することができる。プロセッサは、処理要素、処理ユニットまたはサブ処理ユニットを有することができる。プロセッサの熱閾値を越えない場合、プロセッサは処理のための第1演算を選択する。熱閾値を越える場合、プロセッサは処理のための第2演算を選択する。
熱閾値を越えない場合、そして、第1演算が利用可能でない場合、プロセッサは第2演算を得て、実行するように操作可能である。第2演算が利用可能でない場合、プロセッサは所定の期間の間休止することができる。
装置は、任意に複数の優先度キューを含む。各々の優先度キューは、第1キューおよび第2キューを含む。第1キューは第1演算を格納するためにあり、そして、第2キューは第2演算を格納するためにある。好ましくは、第1優先度キューは、高優先度キューであり、第2優先度キューは、中優先度キューであり、そして、第3優先度キューは、低優先度キューである。
実施の形態において、プロセッサはサブ処理ユニットから成る。そして、それは、浮動小数点ユニット、整数ユニット、そして、浮動小数点ユニットおよび整数ユニットと関連するレジスタを含む。好ましくは、サブ処理ユニットも、ローカル記憶部を含む。
図面において示される本発明の好ましい実施例を記載することにおいて、特定の用語が明確性のため使われる。しかしながら、本発明は選択される詳細事項に限定されることを意図されない。そして、各々の詳細事項は、類似の目的を達成するための類似の方法において実行する、すべての技術的な同義語を含むことは理解される。
現在図3Aに参照がなされ、図3Aは、本発明の態様にしたがって採用され得る、基本的な処理モジュールまたは処理要素300のブロック図である。この図に示すように、処理要素(PE)300は、好ましくは、I/Oインタフェース302、処理ユニット(PU)304、ダイレクトメモリアクセスコントローラ(DMAC)306、複数のサブ処理ユニット(SPUs)308、すなわち、複数のサブ処理ユニット308a−308dを含む 。4つのサブ処理ユニット308a−dが示されているが、処理要素300はいかなる数のこのようなデバイスを含むことができる。ローカル(または内部)処理要素バス320は、処理ユニット304、複数のサブ処理ユニット308、I/Oインタフェース302、ダイレクトメモリアクセスコントローラ306およびメモリインタフェース310の中のデータおよびアプリケーションを送信する。ローカル処理要素バス320は、例えば、従来のアーキテクチャを有することができ、またはパケットスイッチネットワークとして提供される。パケットスイッチネットワークとしての機器は、より多くのハードウェアを必要とする一方、利用できるバンド幅を増やす。
ディジタル論理の機器を提供するさまざまな方法を使って処理要素300が作成されることができる。しかしながら、処理要素300は、好ましくはシリコン基板上のCMOSを使用している単一の集積回路として作成される。処理要素300は、高バンド幅メモリ接続322を通じてメモリ330と密接に関連する。メモリ330は、望ましくは処理要素300のためのメインメモリとして機能する。メモリ330は好ましくはダイナミックランダムアクセスメモリ(DRAM)であるが、メモリ330は、例えばスタティックRAM(SRAM)、他の手段、例えば、磁気ランダムアクセスメモリ(MRAM)、光メモリ、ホログラフィックメモリ、その他などを使って提供されてもよい。ダイレクトメモリアクセスコントローラ306およびメモリインタフェース310は、メモリ330および複数のサブ処理ユニット308および処理要素300の処理ユニット304間のデータ転送を容易にする。
処理ユニット304は、例えば、データおよびアプリケーションの単独処理ができる標準のプロセッサでもよい。演算中において、処理ユニット304は、複数のサブ処理ユニット308によってデータおよびアプリケーションの処理をスケジューリングし、編成する。複数のサブ処理ユニット308は、好ましくは単命令複データ(SIMD)プロセッサである。処理ユニット304の制御のもと、複数のサブ処理ユニット308は、並行かつ独立した方法においてデータおよびアプリケーションの処理を実行することができる。ダイレクトメモリアクセスコントローラ306は、共有メモリ330に格納されるデータおよびアプリケーションへのアクセスを、処理ユニット304および複数のサブ処理ユニット308によって制御する。好ましくは、処理要素300のような多数の処理要素は、高い処理能力を提供するために、ともに接続され、パッケージされてもよく、また、相互に論理的に関連付けられてもよい。
図3Bは、本発明の態様による、演算されることができる多数の処理要素350(処理要素1、処理要素2、処理要素3および処理要素4)を備える処理アーキテクチャを示す。好ましくは、処理要素350は単一のチップ上にある。複数の処理要素350は、図3Aの処理要素300に関して上記にて論じた処理ユニット、および/または複数のサブ処理ユニットのようにサブシステムを含んでいてもよく、または含んでいなくてもよい。必要な処理のタイプによって、複数の処理要素350は同じタイプでもよく、または異なるタイプでもよい。例えば、処理要素350は、一般的なマイクロプロセッサ、ディジタル信号プロセッサ、グラフィックプロセッサ、その他であってもよい。
複数の処理要素350は、好ましくは共有バス352に結合される。メモリコントローラまたはダイレクトメモリアクセスコントローラ356は、メモリバス354を通じて共有バス352に接続されてもよい。ダイレクトメモリアクセスコントローラ356は、メモリ358に接続し、メモリ358は、メモリ330に関して上記にて論じたタイプの一つでもよいI/Oコントローラ362もまた、I/Oバス360を通じて共有バス352に接続されてもよい。I/Oコントローラ362は、一つ以上の入出力装置36、例えばフレームバッファ、ディスク駆動装置、その他に接続してもよい。上記の処理モジュールおよびアーキテクチャは単に典型的なだけであると理解されるべきであり、そして、さまざまな本発明の態様は、2001年3月22日に出願され、「ブロードバンドネットワークのコンピュータアーキテクチャのためのメモリ保護システムおよび方法」という名称の米国特許番号6,526,491、および2003年2月25日に出願され、「ブロードバンドネットワークのためのコンピュータアーキテクチャおよびソフトウェアセル」という名称の米出願番号第09/816004号において開示されるタイプのマルチプロセッサシステムを含むが、これに限られない。これにより、この中での参照により明確に具体化される。
図4は、本発明の態様による、採用され得るサブ処理ユニット400の構造および機能を示す。サブ処理ユニット400は、好ましくはローカル記憶部402、レジスタ404、一つ以上の浮動小数点ユニット406および一つ以上の整数ユニット408を含む。サブ処理ユニット400のコンポーネントは、同様に後述するようなサブコンポーネントを備える。必要とされる処理能力によって、より多くのまたはより少ない数の浮動小数点ユニット(FPUs)406および整数ユニット(IUs)408が採用されてもよい。好ましい実施の形態においては、ローカル記憶部402は少なくとも128キロバイトの記憶部を含み、そして、レジスタ404の性能は128×128ビットである。浮動小数点ユニット406は、好ましくは1秒につき少なくとも320億の浮動小数点操作(32ギガフロップス)の速度で操作する、そして、整数ユニット408は、好ましくは1秒につき少なくとも320億の操作(32ギガオプス)の速度で操作する。
ローカル記憶部402は、好ましくはキャッシュメモリでない。サブ処理ユニット400のためのキャッシュ整合性サポートは、不必要である。その代わりに、ローカル記憶部402が好ましくはSRAMとして作成される。処理ユニット204は、処理ユニット204によって開始されるダイレクトメモリアクセスのキャッシュ整合性サポートを要求することができる。しかしながら、キャッシュ整合性サポートは、サブ処理ユニット400によって開始されるダイレクトメモリアクセスのために、または外部素子へまたは外部素子からの接続ために要求されない。
サブ処理ユニット400はバスインターフェース(Bus I/F)412を通じてサブ処理ユニット400へおよびサブ処理ユニット400からアプリケーションおよびデータを送信するバス410を更に含む。好ましい実施の形態においては、バス410は1,024ビット長である。サブ処理ユニット400は、内部バス414、416および418を更に含む。好ましい実施の形態においては、バス414は256ビットの幅を有し、ローカル記憶部402およびレジスタ404の間の通信を提供する。バス416および418は、レジスタ404、浮動小数点ユニット406、レジスタ404、および整数ユニット408の間に、それぞれ通信を提供する。好ましい実施の形態において、レジスタ404から浮動小数点または整数ユニットへのバス416および418の幅は384ビットであり、そして、浮動小数点または整数ユニットからレジスタ404へのバス416および418の幅は128ビットである。レジスタ404から浮動小数点ユニット406および整数ユニット408へのバスの大きな幅は、処理の間、レジスタ404から大きなデータフローに適応する。一例では、最高3つのワードが、各々の計算に必要とされる。しかしながら、各々の計算の結果は、通常一つのワードだけである。
現在図1に参照がなされ、この図1は基板100中または基板100上に形成されるコンポーネント102を示す。基板100およびコンポーネント102は、コンピュータチップの一部または全体を含むことができる。コンポーネント102は、論理デバイスまたは回路の他のコンポーネントであってもよい。基板100の領域の一つ以上のコンポーネント102は、ユニット104として共に関連付けられることができる。ユニット104およびユニット104のグループ106もまた、例えば処理要素300、処理ユニット304、複数のサブ処理ユニット308、処理要素350または複コンポーネントそれ自体を形成するために相互に関連づけられることができる。例えば、ユニットのグループ106は、グループ106内のサブ処理ユニット400およびユニット104は、ローカル記憶部402、レジスタ404、浮動小数点ユニット406、整数ユニット408およびバスインターフェース412を含むことができる。各々のユニット104は、同様に、例えばDRAMメモリセル、論理ゲート、バッファ等ような、他のユニット104およびコンポーネント102も含むことができる。コンポーネント102、ユニット104、およびグループ106は様々なレベルの複雑さを例証するのに使用されているが、より一般に、「コンポーネント」という用語は、処理要素300または処理要素350までの最も基本的な要素(例えばトランジスタおよびコンデンサ)および全体のコンピュータチップ自体から、すべてのレベルでデバイスについて言及するのにもまた使用される。典型的には、コンポーネントは基板100上の相補型金属酸化物半導体(CMOS)を採用している集積回路として作成される。基板100は、好ましくはシリコン基板である。基板100のために選択可能な材料はヒ化ガリウム、ヒ化ガリウムアルミニウム物、およびその他、多種多様なドーパントを採用したいわゆるIII−B合成物を含むが、これに限定されるものではない。コンポーネント102は、また、例えば高速単一磁束量子(RSFQ)論理などの超電導材料を使って提供されることができる。
コンポーネントが処理命令またはタスク(例えば一連の命令)のような演算を実行するにしたがって、それらはしばしば熱を発生させる。ここで使用しているように、「演算」または「タスク」という表現は、実行される活動に関連し、命令、タスクおよび一回または多数のステップのプログラムを含むが、これに限定されるものではない。
本発明の一態様において、コンポーネントによって実行される演算は、熱特性の値がその演算を実行するときに構造部分によって発生することが予想される熱量に関連するような熱特性と関連付けられることができる。好ましくは、熱特性はまた、適切なときに基礎が形成される。例えば、特性の値は、一定の期間にわたって発生された熱量を表してもよい。
熱特性は、測定されることができるか推定されることができる。例えば、温度計または他の温度検出装置が、特定の演算をしているときのユニットの温度を計測するために実際に使用されることができる。
熱特性は、好ましくはコンポーネントの電力消費に基づいて推定される。例えば、いくつかのコンポーネントは、演算するための電力をより多く必要としてもよく、そして高い熱特性を持ってもよい。他のコンポーネントは同じ電力消費を有することができるが、共により高密度にパッケージされ、それらはかなり離れて間隔を置かれるコンポーネントより多くの熱を発生させる傾向がある。この点に関しては、熱特性は、両方の要因に基づいて推定されることができ、その場合、熱属性は、コンポーネントまたはコンポーネントのグループの電力密度に基づく。このように、いくつかのケースでは、熱特性は、コンポーネントが演算を実行するにしたがって発生すると予想される熱、一定の期間にわたって発生された大量の熱、全体の消費電力、コンポーネントの電力密度、コンポーネントの関連グループの電力密度、を反映することができる。チップの効果的な温度管理を達成するために、各々のコンポーネントに電力消費をスケジューリングすることが望まれてもよい。コンポーネントの電力消費は、チップの開発中に推定されることができる。例えば、チップ、サブシステムおよび/または個別コンポーネントの回路シミュレーションが実行されてもよい。
好ましくは、熱特性は更に特定のコンポーネントと関連している。例えば、整数加算演算のような演算が整数ユニット408だけを含んでいる場合、熱特性は整数ユニット408と特に関連付けられることができる。同様に、浮動小数点演算の熱特性は、浮動小数点ユニット406と特に関連付けられていてもよい。他の演算は、ローカル記憶部402からレジスタ404へデータを移動するような、1セットのコンポーネントを含むことができる。さらに他の演算は、すべてのコンポーネントを含んでも良く、いずれか特定のコンポーネントのセットに原因があるとすることが困難でもよい。例えば、三次元図を描写することは、サブ処理ユニット400の全てのコンポーネントに従事させることができ、その場合、熱特性はサブ処理ユニット400の全てのコンポーネントに適用される。あるいは、演算を実行するときに、どれくらいの熱が個別コンポーネントによって発生するかを予測するのが困難でもよく、その場合、演算の熱特性は、コンポーネントのグループに全体的に割り当てられても良い。以下のテーブルは、演算、コンポーネントおよび熱特性のサンプルセットを示す。
Figure 0003983250
好ましい実施の形態において、与えられたコンポーネント(またはコンポーネントのセット)の熱特性は、次のように算出されることができる。
TA=k*(P/S)
TA(熱特性)は、コンポーネントの電力密度または電力消費(P)が、サイズまたはスペース(S)で割られ、温度の推定に使われる因数または定数(k)がかけられたものと等しい。
本発明の一態様による、プログラムコンパイラは、コンポーネントがオーバーヒートすることを防止するのことに役立てるために熱特性を使用する。コンパイラは、ソフトウェア、ファームウェア、ハードウェアまたは上記の組合せにおいて提供されることができる。それは、処理要素(例えば処理要素300または処理要素350)かそのサブコンポーネントと関連して(例えば、組み込まれて)もよい。図11は、本発明の態様によるコンパイラ機能を示す。本技術で公知であるように、コンパイラはソースコードを受信し、コンピュータシステム上で動作することができるオブジェクトコードを生成する。本発明の態様によれば、コンパイラは、演算および/またはコンポーネントに関する熱特性と同様にソースコードを受信する。コンパイラは、好ましくは熱特性に基づいてオブジェクトコードを生成する。コンパイラが、命令の数を計数することによってコンパイルを管理するときに、コンパイラによって編集されたオブジェクトコードの熱特性は不変的に推定される。強化された熱特性判定は、好ましくは、命令の動的な実行を計数することができ、各々のコンポーネントの演算周波数を伝えることができるパフォーマンスモニタである、「プロフィーラ」を使用してなされる。プロフィーラは、コンパイラにより正確な温度評価を提供することができ、それは同様に、熱的に最適化されたオブジェクトコード生成につながる。
図2A−Bは、コンパイラまたは他の命令スケジューラが、どのように処理の低下またはコンポーネントへの損害を防止するように演算を管理することができるかについて示す。図の目的のため、熱閾値(Tmax)は、越えることが望ましくない温度を表すものとされる。三角形部分A、BおよびCは、コンポーネントによって実行される命令を表す。例えば、セグメントAおよびBは、例えば、計算上、非常に大量の熱を発生する集中的な命令またはタスクを表し、一方、セグメントCは、例えば、計算上、集中的でなく、またAまたはBのいずれかと同じ熱を発生しない。より詳細には、タスクA、BおよびCが全体的な算出の一部であると仮定すると、(2*3)+(4*5)+(6+7)において、タスクAは(2*3)を表し、タスクBは(4*5)を表し、そしてタスクCは(6+7)を表す。図2Aに示すように、タスクがA、BおよびCの命令において実行されるときに、温度はTmaxを越える可能性がある。この際、AおよびBが連続的に実行されるので、熱閾値Tmaxは突破される。
コンパイラが確実な命令を命じる方法に関して、しばしばコンパイラが指示を有していることは、公知技術である。本発明の好ましい実施の形態にしたがって、コンパイラは演算の熱特性に基づいて、選択的にスケジュールを再び命令することができる。好ましくは、コンパイラはまず最初に、演算A、BまたはCのいずれかに、それと関連する熱特性があるかどうか決定する。その場合は、コンパイラは選択的に、その演算を、Tmaxを越えることを防止する命令を使用するオブジェクトコードに編集することができる。上記の実施の形態において、コンパイラは、方程式が最後の結果を変えずに、計算される命令を変えることができる。例えば、それはA、CおよびB.の順序に、演算をスケジューリングすることができる。したがって、図2Bによって見られるように、命令の順序が変わるときに、温度はTmaxを越えない。
熱閾値Tmaxが必ずしもフェール温度であるというわけではない点に注意する。その代わりに、Tmaxは、例えば、評価される実施パラメータに基づいて選択された設計基準であってもよい。
さらに、演算を再び命令するときに、コンパイラは、好ましくは計算をするコンポーネントの経過を追う。例えば、サブ処理ユニット他の一部(例えば浮動小数点ユニット406)が冷めたままである一方、一連の演算はサブ処理ユニット400の一部(例えば浮動小数点ユニット406)をオーバーヒートさせることができる。それらがサブ処理ユニットのさまざまなコンポーネントに均一に分配されるように、コンパイラは、好ましくは演算をスケジューリングすることを試みることによってこの課題に対処する。コンパイラがこれを行い得る方法は、これらが熱特性を使ってプログラムの演算を実行するときに、コンポーネントの温度の経過を追い、シミュレーションすることである。例えば、コンポーネントXは、クロックサイクル毎に2熱特性の割合においては、冷えたとみなされることができ、それがオーバーヒートする前に8熱特性の閾値を有する。そのコンポーネントと関連する演算が、サイクル毎に5ポイントの熱特性を有する場合、その演算が続けて3回実行された場合は、コンポーネントはオーバーヒートしたとみなされる(第1サイクルの後の5−2ポイントは、3の現在の熱インデックスの結果となる)。第2サイクルの後の5−2ポイントは、6の現在の総熱指数のためさらに3ポイントを加える。第2サイクルの後の5−2ポイントは、9の現在の総熱指数のためさらに3ポイントを加える。コンポーネントXがこのようなスケジューリングでオーバーヒートするかもしれないと検知された場合、コンパイラは、コンポーネントXが非稼働で冷たいままの間、別のコンポーネントにより実行される演算をスケジューリングするよう試みる。
あるいは、コンパイラは、異なる演算であって、熱特性がコンポーネントが冷えると予想される速度よりも低い演算を選択することを試みることができる。例えば、コンパイラが、コンポーネントXが演算の現在のスケジュールでオーバーヒートする可能性があると決定する場合、それは、5の熱特性を持つ演算の間において1(それで、1サイクルあたり2熱属性の割合で冷えるなら、コンポーネントは冷えるであろう)の熱特性を持つ演算を点在させるよう試みることができる。
その程度までコンポーネントは他のコンポーネントによって包含され、コンパイラは更により大きなコンポーネントの熱特性を、そのサブコンポーネントに、または、サブコンポーネントから親コンポーネントに割り当ててもよい。例えば、図10Aに示すように、個別コンポーネントが同時に2、3、2および7の熱特性を有する演算を実行している場合、それらの演算の全てのためのサブ処理ユニットの熱特性は14であるとみなされることができる。他方、全てのサブ処理ユニット400に起因している熱特性は、個別コンポーネントに割り当てられることができる。図10Bに示すように、三次元図の熱特性が12で全てのサブ処理ユニットに起因している場合、その値はサブ処理ユニット400の範囲内で均一にコンポーネントに割り当てられることができる。容器関連性、論理的機能および物理的近接によって関連するコンポーネント間の配分を含む、配分における他のバリエーションは可能である。
さまざまなコンポーネントの熱値が、個別コンポーネントの即時の演算を反映するだけでなく、時間とともに累積的なものでもよく、コンポーネントのセットのために集計されることができることが分かる。これらの要因を考慮し、コンパイラは効果的に、熱閾値Tmaxを避けるよう演算をスケジューリングすることができる。
好ましくは、冷却特性は、さまざまなコンポーネントを含むコンピュータチップと関連する。冷却特性は、コンピュータチップの冷却装置の特定の特徴に依存する。例えば、冷却特性は、好ましくは、もしあればチップパッケージおよび冷却器(例えばヒートシンクまたはファン)に依存する。冷却システム冷却器(例えば、常に、設定された回転速度でファンを作動して)のための一つの状態を有している場合、冷却特性が確定される。例えばファンの回転速度を変えることによって、冷却システムの状態が変えられることができる場合、冷却特性は好ましくは動的であり、冷却システムが冷却器の演算状態を変えるときに、決定され、または更新されてもよい。実施の形態において、コンパイラは、冷却器の典型的な演算状態に基づいて算出される確定された冷却特性を使用する。特定のコンポーネントに属する演算の密度を算出するときに、コンパイラは冷却特性を使用する。より好ましくは、コンパイラもまたチップパッケージの熱放出能力の要素として入れる。他の実施の形態において、コンパイラまたはプリフィーラは、コンパイラがオブジェクトコード生成を実行することに役立てるため、動的な冷却特性を採用する。下のテーブルは、熱および冷却特性に基づいて、与えられた整数ユニット(IU)408により、および与えられたローカル記憶部(LS)402により、処理される整数演算の典型的なスケジュールを示す。
Figure 0003983250
上記命令セットのため、整数ユニット408の熱特性が3であると仮定すると、チップの冷却特性は1であり、そして、整数ユニット408の熱閾値は10である。最も左の欄は命令番号を表し、第2欄はどのコンポーネントがその命令を扱うかを表し、そして、テーブルの右側上の2つの欄は、命令を扱った後に発生する熱またはコンポーネントの温度を示す。例えば、命令1はローカル記憶部によって処理されるかまたは実施され、2の熱値に結果となり、その一方で、整数ユニットはゼロのままとなる。命令2は整数ユニットによって作動され、そしてその後、整数ユニットは3の熱値を有し、そして、ローカル記憶部は1の熱値まで冷めている。この処理は命令5まで続き、そして、それは「非演算」(nop)である。これによって、整数ユニットおよびローカル記憶部がある程度まで冷めることができる。整数ユニットは命令6および7を処理する。そして、閾値までその熱値を増加させる。閾値を越えることを妨げるために、異なるコンポーネント(「その他」)は、好ましくは次の命令を処理する。例えば、プロフィーラは、整数ユニットおよびローカル記憶部による命令の実行をモニタすることができ、情報をコンパイラに伝えることができる。コンパイラは、他の整数ユニットによって処理される命令8を持つために、熱特性および冷却特性とともにこの情報を使用することができる。
現在図5に参照がなされ、図5は、本発明の態様による、手順500をスケジューリングしているマルチキューを示す。図5に示すように、スケジューラ502は、好ましくは2つのキューと関連する。便宜のために、第1キューは本願明細書において「ホットキュー」504と称され、そして、第2キューは本願明細書において「クールキュー」506と称される。キュー504、506は、例えば、データ構造、またはメモリにおける連続的または不連続の集合など、多くの異なる方法で実行されることができる。複数のサブ処理ユニット400を採用する一つの実施の形態においては、キュー504、506は複数のサブ処理ユニット400の外部で実行される。キュー504、506はまた、例えばメモリ330(またはメモリ358)と関連する、処理ユニット304または処理要素300(または処理要素350)の外部で実行されても良い。他の例では、キュー504、506は、複数のサブ処理ユニット400の内部で実行される。望ましくは、キュー504、506はローカル記憶部402またはレジスタ404に関連して実行される。例えば、ホットキュー504は第1サブ処理ユニット400のローカル記憶部402と連絡して実行され、そして、クールキュー506は第2サブ処理ユニット400のローカル記憶部402と連絡して実行されることができる。サブ処理ユニット400が多数のローカル記憶部402を含む場合には、ホットキュー504は、ローカル記憶部402の一つである第1ローカル記憶部402に格納されることができ、一方、クールキュー506は、同じサブ処理ユニット400において、ローカル記憶部402の一つである第2ローカル記憶部402に格納されることができる。あるいは、ホットキュー504およびクールキュー506は、同じローカル記憶部402で、またはサブ処理ユニット400の外部または処理要素300の外部の同じメモリで、実行されることができる。キュー504、506がレジスタ404を経由して実行される場合、さまざまな変形例が可能である。一つのケースでは、ホットキュー504は、第1サブ処理ユニット400のレジスタ404を経由して実行されることができ、そして、クールキュー506は第2サブ処理ユニット400のレジスタ404を経由して実行されることができる。キュー504、506はまた、例えば、キュー504、506のうちの一つが、第1期間にメモリに格納され、キュー504、506のうちの他の一つが、第2期間にメモリに格納されていた時分割方式の装置において行うことができる。
スケジューラ502は、熱特性に応じて、命令、タスクまたは他の演算により、ホットキュー504およびクールキュー506を占めることができる。好ましくは、スケジューラ502は、熱特性を含むルックアップテーブルにアクセスする。スケジューラ502は、実行時間演算の前および/または間、演算することができる。スケジューラ502は、コンポーネントの現在の(または予測された)温度によって、タスクをホットキュー504またはクールキュー506から選択することができる。好ましい実施の形態においては、装置の現在の温度が演算上の閾値を越えない限り、スケジューラ502は、ホットまたはクールキュー504、506からタスクを選択することができる。好ましい他の実施の形態においては、演算上の閾値を越えない場合、およびホットおよびクールタスクの両方が利用可能である場合、スケジューラ502は、クールキュー506からタスクを選択する前に、ホットキュー504からタスクを選択する。例えば、多数の演算を必要とする浮動小数点命令またはタスクは、比較的高いまたは正の熱特性値と関連していてもよい。例えば、タスクH1 ... HNによって見られるように、これらの演算はホットキュー504に配置される。例えば、整数命令および一つの演算タスクなどの他の演算は、比較的低いまたは負の熱特性と関係していてもよい。タスクC1 ... CNによって見られるように、例えば、この種の演算はクールキュー506において配置される。タスクの熱特性は、コンパイラおよび/またはプロフィーラから情報を使用して、好ましくは決定される。そして、そのいずれかは、タスクを実行している各々のコンポーネントの演算周波数を伝えることができる。より好ましくは、タスクの熱特性は、コンポーネントの演算周波数(例えば使用の頻度)、コンポーネントの熱特性、および冷却特性を組み込む。一つの実施の形態にしたがって、簡易なスケジューラは、例えば、サブ処理ユニット400などのサブコンポーネントを有するコンポーネントの全体熱特性を使用するだけである。他の実施の形態にしたがって、高度なスケジューラは、例えば、ローカル記憶部402、浮動小数点ユニット406および整数ユニット408などのサブ処理ユニットのサブコンポーネントの熱特性を管理する。下のテーブルは三次元タスクおよびMPEG−2タスクのための与えられたサブ処理ユニットにおける、整数ユニット、浮動小数点ユニット、およびローカル記憶部のための熱特性を示す。
Figure 0003983250
サブ処理ユニットの全体熱特性を見るだけの簡易なスケジューラは、それが12の値を有することを認識し、そして、それはサブ処理ユニットの熱閾値を越えることができる。このように、簡易なスケジューラは、サブ処理ユニットによって実行するMPEG−2タスクを選択することだけができてもよい。対照的に、高度なスケジューラは、好ましくはサブ処理ユニットのサブコンポーネントをモニタする。この場合、高度なスケジューラは、サブコンポーネントがその熱閾値を越えないことを認識することができ、そのため三次元タスクが選択されることができる。変形例において、スケジューラは、MPEG−2タスクが特定の段階で実行され、浮動小数点ユニットを冷やす時間を与えるように、タスクの範囲内でタスクまたは演算を再命令することができる。この適応性は、サブコンポーネント、コンポーネントおよび/または全ての多重処理システムがオーバーヒートせずに演算することを可能にする強力なツールである。
当業者にとって明らかであるように、スケジューラ502はハードウェア、ファームウェアまたはソフトウェアで実行されることができる。好ましくは、スケジューラ502はハードウェアに基礎が置かれ、処理ユニット204において実行される。好ましい他の変形例においては、スケジューラ502は、全体的な計算デバイスの演算システムの一部として、ソフトウェアに基礎がおかれる。ホットキュー504およびクールキュー506は、好ましくは、バス508によるプログラム実行の間、一つ以上の処理要素(処理要素1 ... 処理要素N)、処理ユニット(処理ユニット1 ... 処理ユニットN)および/または複数のサブ処理ユニット(サブ処理ユニット1 ... サブ処理ユニットN)にアクセスすることができる。一つの実施の形態にしたがって、各々の処理要素、処理ユニットおよび/またはサブ処理ユニットは、好ましくは、それらの温度をモニタする、または、選択的に、現在の温度を推定する温度センサ(温度検知手段)を含む。他の実施の形態にしたがって、各々の処理要素は、好ましくは、温度のデジタル評価を提供するための温度センサ、およびアナログ−デジタルA/Dコンバータを含む。処理要素上の各々のカーネルは、好ましくは、それ自身のデジタル化された温度をいつでも読み込むことができる。処理要素、処理ユニットおよび複数のサブ処理ユニットは、望ましくは各々が熱閾値Tmaxを有し、そして、それはコンポーネントごとに異なり得る。熱センサが利用できない場合、現在の温度は、タスクおよび現在の冷却特性の熱特性によって算出されることができる。
スケジューラ502はまた、キューを使用することなく演算を管理することができる。演算はメモリに格納されることができる、そして、スケジューラ502は、熱特性によって、いくつかの演算をプロセッサに割り当てることができる。例えば、2つの演算がある場合、スケジューラは、熱特性に基づいて、2つの演算を2つの別々の処理要素300(または他の処理デバイス)に割り当てることができる。演算は、別々のメモリ(または単一のメモリの別々の部分)に格納されることができる。第1演算は第1メモリ(または単一のメモリの第1部分)に格納されることができ、そして、第2演算は第2メモリ(または単一のメモリの第2部分)に格納されることができる。それは、2つの演算を同時に格納することは必要でない。むしろ、それらは異なる期間の間、同一のまたは異なるメモリに格納されることができる(そして、不変のまたは可変的な、連続的または不連続な期間の間に交互に生じることができる)。さらに、2つのメモリ(または単一のメモリの2つの部分)が必ずしも、特定の演算または特定の熱特性と関連した演算に限られる専用のメモリではないと理解されなければならない。このように、第1メモリ(または単一のメモリの第1部分)は第2演算を格納することができる、そして、第2メモリ(または単一のメモリの第2部分)は第1演算を格納することができる。同様に、第1および第2キュー504、506が同じように演算することができると理解されなければならない。
図6は、演算を得て処理する、好ましい処理の工程系統図600を示す。ステップ602で、処理要素、処理ユニットまたはサブ処理ユニットは、その現在の温度が、熱閾値Tmaxより高いかどうか決定する。Tmaxを越えない場合、処理は次にステップ604へ進み、さもなければ、処理はステップ608へ進む。ステップ604において、演算がホットキュー504から利用可能かどうか決定される。演算が利用できる場合、処理はステップ606へ進む、さもなければ、処理はステップ608へ進む。ステップ606において、処理要素、処理ユニットまたはサブ処理ユニットは、「ホット」演算を得て、それを実行する。演算終了後、処理はステップ602に返る。ステップ608において、演算がクールキュー506から利用可能かどうか決定される。演算が利用できる場合、処理はステップ610へ進む。一方、処理はステップ612へ進む。ステップ610において、処理要素、処理ユニットまたはサブ処理ユニットは、「クール」演算を得て、それを実行する。演算終了後、処理はステップ602にもどる。タスクが処理に利用可能でない場合、処理は、ステップ602に戻る前に、アイドルするか、または一定の時間(例えば、予め定められた数のサイクル)、ステップ612で、「nop」を実行することができる。ホットおよびクールタスクが利用でき、そして、Tmaxを越えない場合、図5に関して上記で論じたように、任意に、ホットおよびクールタスクのいずれかが選択されることができる。このように、工程系統図600によって見られるように、処理デバイスは、ホットおよびクールキュー504、506からタスクを選択することによって、ホットスポットおよびオーバーヒートを避けることができる。この処理は一つ以上の処理デバイスによって並行して実行されることができ、それによって、クロックスピードを変えること、または処理デバイスをシャットダウンすることなく、命令およびタスクの実行をすることができる。
図7に示すように、優先度キューでホットおよびクールキューの使用を結合することが可能である。この図において、手順540をスケジューリングするマルチキューが提供される。スケジューラ542は、高優先度キュー544、中優先度キュー546、および低優先度キュー548の3つの優先度キューと関連する。但し、キューの異なる優先度レベルおよび数が採用されることができる。スケジューラ542は、スケジューラ502に関して上記の通りに演算する。優先度キュー544、546および548の各々は、好ましくは、図5に関する上記と同一の方法で作成され、演算するホットキューおよびクールキューを含む。例えば、高優先度キュー544は、タスクH1H ... HNHを扱うためのホットキュー、およびタスクC1H ... CNHを扱うためのクールキューを有する。同様に、中優先度キューは、タスクH1M ... HNMを扱うためのホットキュー、およびタスクC1M ... CNMを扱うためのクールキューを有する。低優先度キューは、タスクH1L ... HNLを扱うためのホットキュー、およびタスクC1L ... CNLを扱うためのクールキューを有する。
図8は、優先度キューを使用するときに、演算を得て処理する好ましい処理の工程系統図800を示す。まず最初に、ステップ801で、処理要素、処理ユニットまたはサブ処理ユニットは、例えば高優先度キュー544、中優先度キュー546、低優先度キュー548など、どんな優先度キューを使用するべきかについて決定する。ステップ802で、処理要素、処理ユニットまたはサブ処理ユニットは、その現在の温度が熱閾値Tmaxより上にあるかどうか決定する。Tmaxを越えない場合、処理は次にステップ804へ進む、さもなければ、処理はステップ808へ進む。ステップ804において、演算が選択された優先度キューのホットキュー504から利用可能かどうか決定される。演算が利用できる場合、処理はステップ806へ進む、さもなければ、処理はステップ808へ進む。ステップ806において、処理要素、処理ユニットまたはサブ処理ユニットは、「ホット」演算を得て、それを実行する。演算終了後、処理はステップ801に返る。ステップ808において、演算が選択された優先度キューのクールキュー506から利用可能かどうか決定される。演算が利用できる場合、処理はステップ810へ進む、さもなければ、処理はステップ812へ進む。ステップ810において、処理要素、処理ユニットまたはサブ処理ユニットは、「クール」演算を得て、それを実行する。演算終了後、処理はステップ801にもどる。タスクが処理に利用可能でない場合、処理はステップ801に戻る前にステップ812でアイドルする。ホットおよびクールタスクが与えられた優先度レベルに利用でき、そして、Tmaxを越えない場合、任意に、ホットおよびクールタスクのいずれかがその優先度レベルに選択されることができる。このように、工程系統図800によって見られるように、処理コンポーネントは、さまざまな優先度キュー544、546および548のホットおよびクールキューからタスクを選択することによって、実行時間の間、ホットスポットおよびオーバーヒートを避けることができる。この処理は、一つ以上の処理コンポーネントによって並行して実行されることができ、それによって、クロックスピードを変えること、または処理デバイスをシャットダウンすることなく、命令およびタスクの実行をすることができる。変形例において、処理デバイスがあまりに熱くなるか、Tmaxに近づくかまたは越える場合、それは、より低い優先度キュー(例えば中優先度キュー546または低優先度キュー548)から演算を選択することができ、および/または演算熱特性にかかわらず、減じられたクロックサイクルで演算を実行する。このようなより低い優先度タスクは、減じられたクロックサイクルで実行されることができる。
ある状況において、コンポーネントは、演算(例えば、タスク)を実行する前に、熱閾値Tmaxの下にあってもよいが、それからタスク実行の間、Tmaxを越えるかもしれない。過去においては、このような場合においては、おそらくコンポーネントをシャットダウンし、それが冷めることができることを必要とする。しかしながら、この課題に対処する技術が開発され、そして、それは特にマルチプロセッサ環境に適している。
図9Aは、一群のタスクを走らせている多数の複数の処理要素を示す。この例においては、処理要素2がタスク1のその処理の間にオーバーヒートすると仮定する。処理要素2から他のプロセッサの一つへタスク1を移動することは可能であり、そして、それは、例えば、タスク2および3など、他のタスクを演算していることができる。他のタスクは、好ましくは、より低い優先度タスクであり、そして、処理要素2によって現在実行されているものである。
図9Bに示すように、他のプロセッサの、例えばタスク3などのタスクは、「交換」されることができ、例えば、適当なキューに(または異なるプロセッサに)送られることができる。このように、処理要素3がタスク1を完了する間、処理要素2はタスクを実行しない。あるいは、2つのプロセッサは、図9Cに示すように、処理要素2がより低い優先度タスクを実行するように、タスクを交換することができる。図9Cに示すように、(1) まず最初に、例えば、処理要素2および処理要素3は、例えば500MHzの標準のクロックスピードで演算することができる。それから、(2) 高優先度タスク1を演算する間に処理要素2が熱くなる場合、そのタスクは、処理要素3の、より低い優先度タスク3と交換されることができる。最後に、(3) より低い優先度タスク3は、より遅い、または減じられたクロックスピード(例えば250MHz)で実行され、処理要素2が冷えることを可能とし、一方、処理要素3は500MHzの標準のクロックスピードで、タスク1の実行を継続する。より高い優先度タスクを実行するためにクロックスピード(例えば、650MHzまで)を上げることもまた可能である。標準の、増加されたおよび減じられたクロックスピードが単に典型的なものであり、プロセッサ、サブプロセッサおよび/または多重処理システムの最大クロックレートの特定の構造によって、変化することができると理解されなければならない。最悪のシナリオにおいては、オーバーヒートしているプロセッサは、温度が満足なレベルに達するまで、演算を停止させることができる。しかしながら、マルチプロセッサシステムの他のプロセッサは、リアルタイム演算、および他の重要な演算が迅速に実行されるように、処理を継続する。処理要素が図9A−Cで示されるが、処理ユニットおよび複数のサブ処理ユニット、またはさまざまな処理デバイスの組合せで、同じ演算を実行することは可能である。例えば、オーバーヒートしているサブ処理ユニット308は、その高優先度タスクを処理ユニット304に送信することができ、そして、それは第2サブ処理ユニット308にそのタスクを再設定することができる。同様に、処理ユニット304は、第2サブ処理ユニット308の、より低い優先度タスクを獲得することができ、そしてそれを第1サブ処理ユニット308に割り当てることができる。一旦第1サブ処理ユニット308が冷めると、それは通常のクロックスピードで、高優先度および/または「ホット」タスクを処理することを再開することができる。
本発明が特定の実施の形態を参照してここに記載されているが、これらの実施の形態が単に本発明の原理および出願を例示するものであると理解されるべきである。したがって、多数の修正が、例示したものである実施の形態になされることができることは理解されるべきであり、そして、その他の装置は、添付の請求の範囲に記載の本発明の趣旨および範囲から逸脱することなく、発明されることができる。
本発明の態様による、さまざまな組合せにおいて体系化されたコンポーネントを示す。 温度に対する計算デバイスのための時間を表すグラフ図である。 温度に対する計算デバイスのための時間を表すグラフ図である。 本発明の態様による、処理要素(PE)の典型的な構造を示す図である。 本発明の態様による、複数の処理要素の多重処理システムの典型的な構造を示す図である。 本発明の態様による、サブ処理ユニットの典型的な構造を示す図である。 本発明の態様にしたがってスケジューリングするマルチキューを示す図である。 本発明の態様による、典型的な動的なスケジューリング方法を示す工程系統図である。 本発明の態様にしたがってスケジューリングするマルチキューを示す図である。 本発明の態様による典型的な動的なスケジューリング方法を示す工程系統図である。 本発明の態様による、タスク移動(マイグレーション)を示す図である。 本発明の態様による、タスク移動(マイグレーション)を示す図である。 本発明の態様による、タスク移動(マイグレーション)を示す図である。 本発明の態様による、コンポーネントおよびコンポーネントと関連する熱値を示す図である。 本発明の態様による、コンポーネントおよびコンポーネントと関連する熱値を示す図である。 本発明の態様による、コンパイラ機能を示す図である。
符号の説明
100 基板、 102 コンポーネント、 104 ユニット、 106 グループ、 300 処理要素、 304 処理ユニット、 308 複数のサブ処理ユニット、 350 処理要素、 400 サブ処理ユニット、 402 ローカル記憶部、 404 レジスタ、 502 スケジューラ、 504 ホットキュー、 506 クールキュー。

Claims (12)

  1. 第1の処理デバイスが第1のクロックスピードで第1演算を実行した場合に前記第1の処理デバイスの温度が所定の閾値を超えるか否かを判定するステップと、
    第1演算を実行することにより前記第1の処理デバイスの温度が所定の閾値を超える場合、第1演算を実行する前記第1の処理デバイスと第1演算よりも優先度の低い第2演算を実行する第2の処理デバイスとの間で第1演算と第2演算とを交換するステップと、
    前記第1の処理デバイスにおいて、第1のクロックスピードよりも低い第2のクロックスピードで第2演算を実行するステップと、
    を備えることを特徴とする演算処理方法。
  2. 前記第2の処理デバイスにおいて、第1のクロックスピードよりも高い第3のクロックスピードで第1演算を実行するステップをさらに備えることを特徴とする請求項1に記載の演算処理方法。
  3. 前記第1の処理デバイスが第1のクロックスピードで第1演算を実行した場合に前記第1の処理デバイスの温度が所定の閾値を超えるか否かの判定は、第1演算を実行した後の前記第1の処理デバイスの温度変化を示す第1演算の熱特性を利用して実施されることを特徴とする請求項1または2に記載の演算処理方法。
  4. 第1の処理デバイスが第1のクロックスピードで第1演算を実行した場合に前記第1の処理デバイスの温度が所定の閾値を超えるか否かを判定するステップと、
    第1演算を実行することにより前記第1の処理デバイスの温度が所定の閾値を超える場合、第1演算を実行する前記第1の処理デバイスと第1演算よりも優先度の低い第2演算を実行する第2の処理デバイスとの間で第1演算と第2演算とを交換するステップと、
    前記第1の処理デバイスにおいて、前記第1の処理デバイスの温度が所定の閾値以下に低下するまで第2演算の実行を停止するステップと、
    を備えることを特徴とする演算処理方法。
  5. 前記第2の処理デバイスにおいて、第1のクロックスピードよりも高い第3のクロックスピードで第1演算を実行するステップをさらに備えることを特徴とする請求項4に記載の演算処理方法。
  6. 前記第1の処理デバイスが第1のクロックスピードで第1演算を実行した場合に前記第1の処理デバイスの温度が所定の閾値を超えるか否かの判定は、第1演算を実行した後の前記第1の処理デバイスの温度変化を示す第1演算の熱特性を利用して実施されることを特徴とする請求項4または5に記載の演算処理方法。
  7. 複数の処理デバイスを含む演算処理装置において、
    第1の処理デバイスは、第1のクロックスピードで第1演算を実行した場合に前記第1の処理デバイスの温度が所定の閾値を超えるか否かを判定し、前記第1の処理デバイスの温度が所定の閾値を超える場合、第1演算よりも優先度の低い第2演算を実行する第2の処理デバイスとの間で第1演算と第2演算とを交換し、第1のクロックスピードよりも低い第2のクロックスピードで第2演算を実行することを特徴とする演算処理装置。
  8. 前記第2の処理デバイスは、第1のクロックスピードよりも高い第3のクロックスピードで第1演算を実行することを特徴とする請求項7に記載の演算処理装置。
  9. 前記第1の処理デバイスは、第1演算を実行した後の前記第1の処理デバイスの温度変化を示す第1演算の熱特性を利用して、第1のクロックスピードで第1演算を実行した場合に前記第1の処理デバイスの温度が所定の閾値を超えるか否かを判定することを特徴とする請求項7または8に記載の演算処理装置。
  10. 複数の処理デバイスを含む演算処理装置において、
    第1の処理デバイスは、第1のクロックスピードで第1演算を実行した場合に前記第1の処理デバイスの温度が所定の閾値を超えるか否かを判定し、前記第1の処理デバイスの温度が所定の閾値を超える場合、第1演算よりも優先度の低い第2演算を実行する第2の処理デバイスとの間で第1演算と第2演算とを交換し、前記第1の処理デバイスの温度が所定の閾値以下に低下するまで第2演算の実行を停止することを特徴とする演算処理装置。
  11. 前記第2の処理デバイスは、第1のクロックスピードよりも高い第3のクロックスピードで第1演算を実行することを特徴とする請求項10に記載の演算処理装置。
  12. 前記第1の処理デバイスは、第1演算を実行した後の前記第1の処理デバイスの温度変化を示す第1演算の熱特性を利用して、第1のクロックスピードで第1演算を実行した場合に前記第1の処理デバイスの温度が所定の閾値を超えるか否かを判定することを特徴とする請求項10または11に記載の演算処理装置。
JP2005088404A 2004-03-29 2005-03-25 演算処理方法および演算処理装置 Active JP3983250B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/812,155 US7360102B2 (en) 2004-03-29 2004-03-29 Methods and apparatus for achieving thermal management using processor manipulation

Publications (2)

Publication Number Publication Date
JP2005285124A JP2005285124A (ja) 2005-10-13
JP3983250B2 true JP3983250B2 (ja) 2007-09-26

Family

ID=34962548

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005088404A Active JP3983250B2 (ja) 2004-03-29 2005-03-25 演算処理方法および演算処理装置

Country Status (5)

Country Link
US (1) US7360102B2 (ja)
EP (1) EP1733296B1 (ja)
JP (1) JP3983250B2 (ja)
TW (1) TWI306552B (ja)
WO (1) WO2005093564A2 (ja)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4152348B2 (ja) * 2004-06-03 2008-09-17 株式会社ソニー・コンピュータエンタテインメント 電子デバイス冷却装置、電子デバイスシステムおよび電子デバイス冷却方法
JP3805344B2 (ja) * 2004-06-22 2006-08-02 株式会社ソニー・コンピュータエンタテインメント プロセッサ、情報処理装置およびプロセッサの制御方法
WO2006032028A2 (en) * 2004-09-13 2006-03-23 Reactivity, Inc. Metric-based monitoring and control of a limited resource
JP4197672B2 (ja) * 2004-09-30 2008-12-17 株式会社東芝 マルチプロセッサ計算機及びプログラム
US9063785B2 (en) * 2004-11-03 2015-06-23 Intel Corporation Temperature-based thread scheduling
JP3914230B2 (ja) * 2004-11-04 2007-05-16 株式会社東芝 プロセッサシステム及びその制御方法
US8112507B2 (en) * 2005-09-27 2012-02-07 Intel Corporation Remote node list searching mechanism for storage task scheduling
JP2007102313A (ja) * 2005-09-30 2007-04-19 Toshiba Corp 制御装置およびマルチプロセッサ制御方法
US7603576B2 (en) * 2005-11-29 2009-10-13 International Business Machines Corporation Hysteresis in thermal throttling
US20070124618A1 (en) * 2005-11-29 2007-05-31 Aguilar Maximino Jr Optimizing power and performance using software and hardware thermal profiles
US7721128B2 (en) * 2005-11-29 2010-05-18 International Business Machines Corporation Implementation of thermal throttling logic
US7512530B2 (en) * 2005-11-29 2009-03-31 International Business Machines Corporation Generation of software thermal profiles for applications in a simulated environment
US7386414B2 (en) * 2005-11-29 2008-06-10 International Business Machines Corporation Generation of hardware thermal profiles for a set of processors
US7480586B2 (en) * 2005-11-29 2009-01-20 International Business Machines Corporation Thermal interrupt generation
US7395174B2 (en) * 2005-11-29 2008-07-01 International Business Machines Corporation Generation of software thermal profiles executed on a set of processors using thermal sampling
US7460932B2 (en) * 2005-11-29 2008-12-02 International Business Machines Corporation Support of deep power savings mode and partial good in a thermal management system
US7848901B2 (en) * 2005-11-29 2010-12-07 International Business Machines Corporation Tracing thermal data via performance monitoring
US7512513B2 (en) * 2005-11-29 2009-03-31 International Business Machines Corporation Thermal throttling control for testing of real-time software
US7490017B2 (en) * 2005-11-29 2009-02-10 International Business Machines Corporation Analytical generation of software thermal profiles
US7376532B2 (en) * 2005-11-29 2008-05-20 International Business Machines Corporation Maximal temperature logging
US7698089B2 (en) * 2005-11-29 2010-04-13 International Business Machines Corporation Generation of software thermal profiles executed on a set of processors using processor activity
US7681053B2 (en) * 2005-11-29 2010-03-16 International Business Machines Corporation Thermal throttle control with minimal impact to interrupt latency
US7421601B2 (en) * 2006-02-17 2008-09-02 International Business Machines Corporation Method and system for controlling power in a chip through a power-performance monitor and control unit
US7552346B2 (en) * 2006-05-03 2009-06-23 International Business Machines Corporation Dynamically adapting software for reducing a thermal state of a processor core based on its thermal index
US8037893B2 (en) * 2006-05-03 2011-10-18 International Business Machines Corporation Optimizing thermal performance using thermal flow analysis
US20070260894A1 (en) * 2006-05-03 2007-11-08 Aguilar Maximino Jr Optimizing thermal performance using feed-back directed optimization
US7596430B2 (en) * 2006-05-03 2009-09-29 International Business Machines Corporation Selection of processor cores for optimal thermal performance
US7836314B2 (en) * 2006-08-21 2010-11-16 International Business Machines Corporation Computer system performance estimator and layout configurator
JP5045159B2 (ja) * 2007-03-12 2012-10-10 三菱電機株式会社 制御用サブユニットおよび制御用メインユニット
US7877620B2 (en) * 2007-08-17 2011-01-25 International Business Machines Corporation Managing power in a parallel computer
US7886172B2 (en) * 2007-08-27 2011-02-08 International Business Machines Corporation Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management
US8027798B2 (en) * 2007-11-08 2011-09-27 International Business Machines Corporation Digital thermal sensor test implementation without using main core voltage supply
US7971102B2 (en) * 2007-12-19 2011-06-28 International Business Machines Corporation Preemptive thermal management for a computing system based on cache performance
US7870370B2 (en) * 2007-12-19 2011-01-11 International Business Machines Corporation Determining thermal characteristics of instruction sets
US7953957B2 (en) * 2008-02-11 2011-05-31 International Business Machines Corporation Mapping and distributing parallel algorithms to compute nodes in a parallel computer based on temperatures of the compute nodes in a hardware profile and a hardware independent application profile describing thermal characteristics of each parallel algorithm
JP4804490B2 (ja) * 2008-02-18 2011-11-02 富士通株式会社 情報処理装置、情報処理方法、情報処理プログラム
US8250383B2 (en) * 2008-04-25 2012-08-21 International Business Machines Corporation Temperature threshold application signal trigger for real-time relocation of process
GB2461313A (en) * 2008-06-27 2009-12-30 Symbian Software Ltd Managing services in a computer system to limit overall system cost
US20100010688A1 (en) * 2008-07-08 2010-01-14 Hunter Robert R Energy monitoring and management
US7757233B2 (en) * 2008-07-10 2010-07-13 International Business Machines Corporation Controlling a computer system having a processor including a plurality of cores
US8321057B2 (en) * 2009-03-12 2012-11-27 Red Hat, Inc. Infrastructure for adaptive environmental control for equipment in a bounded area
US9569270B2 (en) * 2009-04-21 2017-02-14 Empire Technology Development Llc Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts
US9189282B2 (en) * 2009-04-21 2015-11-17 Empire Technology Development Llc Thread-to-core mapping based on thread deadline, thread demand, and hardware characteristics data collected by a performance counter
US8881157B2 (en) * 2009-09-11 2014-11-04 Empire Technology Development Llc Allocating threads to cores based on threads falling behind thread completion target deadline
US8311683B2 (en) * 2009-04-29 2012-11-13 International Business Machines Corporation Processor cooling management
US8479216B2 (en) * 2009-08-18 2013-07-02 International Business Machines Corporation Method for decentralized load distribution in an event-driven system using localized migration between physically connected nodes and load exchange protocol preventing simultaneous migration of plurality of tasks to or from a same node
US8479215B2 (en) * 2009-08-18 2013-07-02 International Business Machines Corporation Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
US8548639B2 (en) * 2010-07-15 2013-10-01 Seagate Technology Llc Temperature monitoring systems and methods
EP2601502B1 (en) 2010-08-03 2019-05-08 Bosch Automotive Service Solutions Inc. Vehicle diagnostic, communication and signal delivery system
US8776069B2 (en) 2010-12-07 2014-07-08 International Business Machines Corporation Energy and performance optimizing job scheduling
US8694279B1 (en) * 2010-12-30 2014-04-08 Exaflop Llc Data center thermal monitoring
US8942857B2 (en) 2011-04-22 2015-01-27 Qualcomm Incorporated Method and system for thermal load management in a portable computing device
US8943336B2 (en) 2011-07-01 2015-01-27 Intel Corporation Method and apparatus for configurable thermal management
US8516460B2 (en) * 2011-08-02 2013-08-20 International Business Machines Corporation Real-time temperature sensitive machine level code compilation and execution
US9513884B2 (en) * 2011-08-16 2016-12-06 International Business Machines Corporation Thermal-aware source code compilation
KR101840852B1 (ko) * 2011-10-10 2018-03-22 삼성전자주식회사 모바일 장치의 표면 온도 관리 방법 및 멀티칩 패키지의 메모리 열관리 방법
US8954984B2 (en) 2012-04-19 2015-02-10 International Business Machines Corporation Environmentally aware load-balancing
US9098258B2 (en) 2012-06-08 2015-08-04 Apple Inc. Thermal-based acoustic management
US9329648B2 (en) * 2012-07-17 2016-05-03 International Business Machines Corporation Performance management of subsystems in a server by effective usage of resources
US8938630B2 (en) 2012-07-30 2015-01-20 Micron Technology, Inc. Apparatus power control
TWI617988B (zh) 2013-01-31 2018-03-11 聯想企業解決方案(新加坡)有限公司 根據處理器位置之熱條件進行排程的電腦系統與方法
SG11201601785RA (en) * 2013-09-09 2016-04-28 Seagate Technology Llc Mobile data storage device with temperature management
US9570643B2 (en) 2013-10-28 2017-02-14 General Electric Company System and method for enhanced convection cooling of temperature-dependent power producing and power consuming electrical devices
US9760402B2 (en) * 2015-07-23 2017-09-12 Dell Products L.P. Systems and methods for input/output traffic shaping for optimal performance under thermal constraints
US9749740B2 (en) * 2015-11-17 2017-08-29 Motorola Solutions, Inc. Method and apparatus for expanded temperature operation of a portable communication device
KR20170069730A (ko) 2015-12-11 2017-06-21 삼성전자주식회사 온도 및 공간적인 위치에 따라 코어들의 동작들을 관리하는 연산 처리 장치, 및 연산 처리 장치를 포함하는 전자 장치
US10270434B2 (en) * 2016-02-18 2019-04-23 Apple Inc. Power saving with dynamic pulse insertion
US10809780B2 (en) * 2017-03-13 2020-10-20 Samsung Electronics Co., Ltd. Active disturbance rejection based thermal control
US20190340490A1 (en) * 2018-05-04 2019-11-07 Apple Inc. Systems and methods for assigning tasks in a neural network processor
US10782754B2 (en) * 2018-09-21 2020-09-22 Quanta Computer Inc. Thermal management via virtual BMC manager

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274797A (en) 1986-05-30 1993-12-28 Bull Hn Information Systems Inc. Multiprocessor system with centralized initialization, testing and monitoring of the system and providing centralized timing
US5222239A (en) 1989-07-28 1993-06-22 Prof. Michael H. Davis Process and apparatus for reducing power usage microprocessor devices operating from stored energy sources
US5394524A (en) 1992-08-07 1995-02-28 International Business Machines Corporation Method and apparatus for processing two graphics data streams in parallel
US5745778A (en) 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system
EP0683451B1 (en) * 1994-05-09 2004-02-25 Canon Kabushiki Kaisha Power supply control method in multi-task environment
JPH0816531A (ja) 1994-06-28 1996-01-19 Hitachi Ltd プロセススケジュール方式
US5754436A (en) 1994-12-22 1998-05-19 Texas Instruments Incorporated Adaptive power management processes, circuits and systems
US6192479B1 (en) 1995-01-19 2001-02-20 Texas Instruments Incorporated Data processing with progressive, adaptive, CPU-driven power management
US5715184A (en) 1995-01-23 1998-02-03 Motorola, Inc. Method of parallel simulation of standard cells on a distributed computer system
US5761516A (en) 1996-05-03 1998-06-02 Lsi Logic Corporation Single chip multiprocessor architecture with internal task switching synchronization bus
JP3567354B2 (ja) 1996-12-26 2004-09-22 株式会社リコー マルチプロセッサシステムおよび命令作成装置
EP1096360B1 (en) 1999-10-25 2004-09-22 Texas Instruments Incorporated Intelligent power management for distributed processing systems
US6564328B1 (en) 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
US6269043B1 (en) 2000-07-31 2001-07-31 Cisco Technology, Inc. Power conservation system employing a snooze mode
EP1182552A3 (en) 2000-08-21 2003-10-01 Texas Instruments France Dynamic hardware configuration for energy management systems using task attributes
EP1182556B1 (en) 2000-08-21 2009-08-19 Texas Instruments France Task based adaptive profiling and debugging
US6625737B1 (en) 2000-09-20 2003-09-23 Mips Technologies Inc. System for prediction and control of power consumption in digital system
US7174194B2 (en) 2000-10-24 2007-02-06 Texas Instruments Incorporated Temperature field controlled scheduling for processing systems
US20030055969A1 (en) 2001-09-17 2003-03-20 International Business Machines Corporation System and method for performing power management on a distributed system
US20030079151A1 (en) 2001-10-18 2003-04-24 International Business Machines Corporation Energy-aware workload distribution
US6804632B2 (en) 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US7318164B2 (en) 2001-12-13 2008-01-08 International Business Machines Corporation Conserving energy in a data processing system by selectively powering down processors
US7096145B2 (en) 2002-01-02 2006-08-22 Intel Corporation Deterministic power-estimation for thermal control
US6775787B2 (en) * 2002-01-02 2004-08-10 Intel Corporation Instruction scheduling based on power estimation
JPWO2003083693A1 (ja) 2002-04-03 2005-08-04 富士通株式会社 分散処理システムにおけるタスクスケジューリング装置
US6948082B2 (en) * 2002-05-17 2005-09-20 International Business Machines Corporation Method and apparatus for software-assisted thermal management for electronic systems
US7086058B2 (en) 2002-06-06 2006-08-01 International Business Machines Corporation Method and apparatus to eliminate processor core hot spots
US7100060B2 (en) 2002-06-26 2006-08-29 Intel Corporation Techniques for utilization of asymmetric secondary processing resources
JP3673245B2 (ja) 2002-06-28 2005-07-20 株式会社東芝 情報処理装置および同装置における電源制御方法

Also Published As

Publication number Publication date
WO2005093564A2 (en) 2005-10-06
WO2005093564A3 (en) 2006-07-13
EP1733296B1 (en) 2019-05-22
US7360102B2 (en) 2008-04-15
US20050216775A1 (en) 2005-09-29
TWI306552B (en) 2009-02-21
TW200602849A (en) 2006-01-16
EP1733296A2 (en) 2006-12-20
JP2005285124A (ja) 2005-10-13

Similar Documents

Publication Publication Date Title
JP3983250B2 (ja) 演算処理方法および演算処理装置
JP4053547B2 (ja) 演算スケジューリング方法および演算処理システム
US20240029488A1 (en) Power management based on frame slicing
Diniz et al. Limiting the power consumption of main memory
JP4792328B2 (ja) コンピュータシステムの電力管理のための方法及び装置
TWI430079B (zh) 用於多處理器核心之電力管理的裝置、系統及方法
JP5020181B2 (ja) タスク共有方法およびマルチプロセッサシステム
JP4413924B2 (ja) マルチコアプロセッサのパフォーマンス改善のための方法、システムおよび装置
US8707060B2 (en) Deterministic management of dynamic thermal response of processors
JP5583837B2 (ja) コンピュータ・システム内でタスクを開始するためのコンピュータ実装方法、システム及びコンピュータ・プログラム
US7516334B2 (en) Power management for processing modules
WO2005062180A1 (en) Almost-symmetric multiprocessor that supports high-performance and energy-efficient execution
TWI528180B (zh) 於處理器內之熱電致冷的模糊邏輯控制之技術
US20080077721A1 (en) Methods And Apparatus For Dynamic Grouping Of Requestors Of Resources In A Multi-Processor System
WO2004029784A2 (en) Method and apparatus for controlling the rate at which instructions are executed by a microprocessor system
US20220330454A1 (en) Methods and apparatus to remove dust with a reverse fan pulse
Bazzaz et al. Fast and predictable non-volatile data memory for real-time embedded systems
Wang et al. Cache latency control for application fairness or differentiation in power-constrained chip multiprocessors
Mittal et al. EnCache: A dynamic profiling-based reconfiguration technique for improving cache energy efficiency
Wee et al. Power optimization in multi-processor systems
Raghu et al. Thermal-aware power migration in many-core processors
Ghose et al. Memory-Aware DVFS for CMP Systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070515

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070703

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 3983250

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110713

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110713

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120713

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120713

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130713

Year of fee payment: 6

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

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