JP4397843B2 - プロセッサ、マルチプロセッサシステムおよび温度制御方法 - Google Patents

プロセッサ、マルチプロセッサシステムおよび温度制御方法 Download PDF

Info

Publication number
JP4397843B2
JP4397843B2 JP2005084845A JP2005084845A JP4397843B2 JP 4397843 B2 JP4397843 B2 JP 4397843B2 JP 2005084845 A JP2005084845 A JP 2005084845A JP 2005084845 A JP2005084845 A JP 2005084845A JP 4397843 B2 JP4397843 B2 JP 4397843B2
Authority
JP
Japan
Prior art keywords
heat generation
instruction
block
execution
decoder
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.)
Expired - Fee Related
Application number
JP2005084845A
Other languages
English (en)
Other versions
JP2005285117A5 (ja
JP2005285117A (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
Priority to JP2005084845A priority Critical patent/JP4397843B2/ja
Publication of JP2005285117A publication Critical patent/JP2005285117A/ja
Publication of JP2005285117A5 publication Critical patent/JP2005285117A5/ja
Application granted granted Critical
Publication of JP4397843B2 publication Critical patent/JP4397843B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Executing Machine-Instructions (AREA)

Description

この発明はプロセッサ技術に関し、特に発熱量を制御することのできるプロセッサ、マルチプロセッサシステム、プロセッサシステム、情報処理装置、および温度制御方法に関する。
LSI設計において製造プロセスの微細化と素子の高集積化が一段と進み、チップの性能限界として発熱量を考慮することが設計上非常に重要になってきている。チップが高温になると、動作不良を起こしたり、長期信頼性が低下するため、様々な発熱対策がとられている。たとえば、チップの上部に放熱フィンを設けて、チップから発生する熱を逃がす方法がとられる。
また、チップ上の消費電力分布は一様ではないため、チップの一部が異常に高温になるいわゆる「ホット・スポット」の問題を避けることができない。そこで、チップの消費電力分布にもとづいて、プロセッサのタスクをスケジューリングすることも検討されている(たとえば、特許文献1参照)。
米国特許出願公開第2002/0065049号明細書
チップの一部が発熱すると、時間経過とともに熱伝導により発熱箇所の周囲に高温領域が広がり、やがてはチップ全体の温度が上昇する。従来の発熱対策は、チップ全体の温度分布を巨視的に観測し、数秒〜1分程度の時間をかけて放熱するものであり、時間応答性はよくない。最近の高集積化したLSIの中には、1チップでも数十ワット程度の電力を消費するものも設計されており、数十マイクロ秒のオーダーで放熱処理をしなければ、急峻な温度上昇によって動作不良が起こりうる。局所的に発熱しているが、チップ全体としては安全な温度にあるという場合に、チップの動作周波数を下げると、プロセッサ全体の処理性能を犠牲にすることになり、効率的ではない。こうした状況の下、本出願人は、チップの一部が発熱した場合、熱伝導により高温領域が広がる前に、ピンポイントで発熱箇所を検出し、それ以上の温度上昇を抑える微視的なレベルでの発熱対策の必要性を認識するに至った。
本発明はこうした課題に鑑みてなされたものであり、その目的は、チップ発熱量を時間的にも空間的にも微細なレベルで制御することのできるプロセッサ、マルチプロセッサシステム、プロセッサシステム、情報処理装置、および温度制御方法を提供することにある。
本発明のある態様はプロセッサに関する。このプロセッサは、発熱制御対象となる複数のブロックの発熱度数を保持する発熱度数保持部と、命令の実行に関わるブロックとそのブロックの発熱量に係る発熱係数とを所定の命令単位で特定する発熱特定部と、実行すべき命令の進行に合わせて前記所定の命令単位で、前記発熱特定部により特定されたブロックの前記発熱度数を前記発熱係数をもとに累積加算する発熱度数加算部とを含む。
「ブロック」は、プロセッサの領域を区分けした最小単位であり、スポット的に熱のピークが発生する領域の大きさに合わせて区分けされる。たとえば、ブロックは、プロセッサを構成するトランジスタなどの素子単体であってもよく、ある程度の数の素子の集合であってもよい。複数のプロセッサを含むマルチプロセッサシステムの場合、ブロックは、個々のプロセッサ内で区分けされたブロックであってもよく、個々のプロセッサ全体を1つのブロックとしてもよい。
「命令単位」は、命令コードの1ステップであってもよく、命令ステップがいくつか集まって構成されるサブルーチンもしくはタスクであってもよい。
「ブロック」の大きさおよび「命令単位」の粒度については、発熱制御の要求精度やプロセッサの設計条件などにより設計の自由度がある。
本発明の別の態様もプロセッサに関する。このプロセッサは、発熱制御対象となる複数のブロックの発熱度数を保持する発熱度数保持部と、所定の命令単位で見積もられた発熱量をもとに、命令の進行に合わせて前記所定の命令単位で前記命令の実行に関わるブロックの発熱度数を累積加算する発熱度数加算部と、各ブロックの前記発熱度数にもとづいて実行すべき命令をスケジューリングするスケジューラとを含む。
本発明のさらに別の態様もプロセッサに関する。このプロセッサは、発熱制御対象となる複数のブロックの発熱度数を保持する発熱度数保持レジスタと、実行すべき命令と前記命令の実行に関わるブロックとそのブロックの発熱量に係る発熱係数とを対応づけて格納する発熱係数プロファイルと、実行すべき命令を解析して、前記命令の実行に関わる前記ブロックと前記発熱係数とを所定の命令単位で特定し、前記発熱係数プロファイルに格納するデコーダと、前記発熱係数プロファイルにもとづいて、前記命令の進行に合わせて前記所定の命令単位で前記ブロックの前記発熱度数を累積加算する発熱度数加算器と、各ブロックの前記発熱度数にもとづいて実行すべき命令をスケジューリングするスケジューラとを含む。
本発明のさらに別の態様はマルチプロセッサシステムに関する。このマルチプロセッサシステムは、複数のサブプロセッサとメインプロセッサとを含む。前記メインプロセッサは、前記サブプロセッサ内の複数のブロックの発熱度数を保持する発熱度数保持部と、命令の実行に関わるブロックとそのブロックの発熱量に係る発熱係数とを所定の命令単位で特定する発熱特定部と、実行すべき命令の進行に合わせて前記所定の命令単位で、前記発熱特定部により特定されたブロックの前記発熱度数を前記発熱係数をもとに累積加算する発熱度数加算部と、各ブロックの前記発熱度数にもとづいて、実行すべき命令を前記複数のサブプロセッサ間で振り分けるスケジューラとを含む。
本発明のさらに別の態様もプロセッサに関する。このプロセッサは、実行すべき命令を解読するデコーダに、前記命令の実行に関わるプロセッサ内のブロックの発熱を解析する機能をもたせる。
本発明のさらに別の態様は温度制御方法に関する。この方法は、命令コードの進行に合わせて所定の命令単位で前記命令の実行に関わるブロックの発熱度数を累積加算してレジスタに保持することにより、命令コードの進行による発熱をブロック単位で検出する。
本発明のさらに別の態様も温度制御方法に関する。この方法は、所定の命令単位で見積もられた発熱量をもとに、命令の進行に合わせて前記所定の命令単位で前記命令の実行に関わるブロックの発熱度数を累積加算してレジスタに保持し、前記レジスタに保持された各ブロックの前記発熱度数にもとづいて実行すべき命令をスケジューリングする。
本発明のさらに別の態様も温度制御方法に関する。この方法は、マルチプロセッサシステムにおける各プロセッサ内のブロックの発熱量を所定の命令単位で見積もり、命令の進行によるブロックの温度変化を予測し、予測された温度変化をもとに命令を前記プロセッサ間で振り分ける。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、プロセッサの処理性能を下げることなく、プロセッサの発熱量を抑えて動作不良を防ぐことができる。
実施の形態1
図1は、実施の形態1に係るプロセッサシステムの構成図である。このプロセッサシステムは、CPUコア100と、メインメモリ110とを含み、これらはアドレスバス28およびデータバス30に接続されている。CPUコア100は、メインメモリ110に対してアドレスを指定してデータの読み出しと書き込みを行う。CPUコア100は、命令キャッシュ12と、命令デコーダ14と、命令スケジューラ16と、実行ユニット18と、発熱係数プロファイル20と、演算ブロック発熱度数レジスタ22とを含む。メインメモリ110には、命令24と演算結果26が記憶される。
CPUコア100がメインメモリ110から読み出す命令24は、いったん命令キャッシュ12にキャッシュされる。命令デコーダ14は、命令キャッシュ12にキャッシュされた命令24を順次解読し、命令スケジューラ16に与える。命令スケジューラ16は、命令デコーダ14により解読された命令24間のデータ依存関係により、命令24の実行順序の並べ替えや実行タイミングの調整を行い、命令24をスケジューリングして、実行ユニット18に渡す。実行ユニット18はスケジュールされた命令24を実行し、演算結果26をメインメモリ110に書き出す。
プロセッサシステムのチップの領域全体を発熱制御対象となる小さな領域に区分けし、その小領域をブロックもしくは演算ブロックとよぶ。演算ブロックは、チップを構成するトランジスタ単体もしくはある程度の数のトランジスタの集合である。演算ブロックは、スポット的に発熱のピークが現れる領域の大きさに合わせて区切られるが、演算ブロックの大きさは、発熱制御の目標精度やプロセッサの要求仕様によって自由に決めてよい。また、また、演算ブロックは同一サイズで規則的に区切られてもよいが、各種演算ユニットの境界に合わせて不規則に区切られてもよい。
発熱係数プロファイル20は、命令ステップ毎にその命令ステップの実行に関わるプロセッサシステムの演算ブロックとその演算ブロックの発熱量に関する発熱係数を対応づけた格納したプロファイルである。演算ブロック発熱度数レジスタ22は、各演算ブロックの発熱度数を累積して保持するためのレジスタである。
図2は、CPUコア100における発熱制御に係る機能構成を詳細に説明する図である。命令デコーダ14は、発熱解析機能をもち、プロセッサシステムのハードウエア情報をもとに、各命令ステップの実行に関わる演算ブロックを特定し、その演算ブロックの動作による発熱量を予測し、発熱係数を決定する。命令デコーダ14は、命令ステップ毎に特定した演算ブロックの位置情報と発熱係数を命令ステップに対応づけて発熱係数プロファイル20に格納する。
図3は、発熱係数プロファイル20の例を説明する図である。命令ステップ40、演算ブロック位置42、および発熱係数44が対応づけられて格納されている。命令ステップ40は、命令デコーダ14によりデコードされたステップ毎の命令であり、MOV(転送)、ADD(加算)、LD(ロード)、ST(ストア)などのコマンドに引数が与えられている。たとえば、命令ステップ「MOV AX BX」は、CPUコア100の演算レジスタBXの内容を演算レジスタAXに代入する命令であり、命令ステップ「LD AX 2D」は、メインメモリ110のアドレス2DのデータをCPUコア100の演算レジスタAXにロードする命令である。
演算ブロック位置42は、プロセッサシステムのパッケージ上のダイ(die)を矩形領域に区分けした場合のマトリックスのインデックスで与えられる。発熱係数44は、演算ブロック位置42で示された領域にある演算ブロックがその命令を実行したときの発熱量の予測値から定められる数値である。
プロセッサシステムのLSIの配置配線が完了した後の論理シミュレーションにおいて、プログラムコードをシミュレートしたときの結果を利用すれば、細かい時間ステップでプロセッサのトランジスタのオンオフ状態の変化をトレースすることができる。この結果を利用すれば、命令ステップ毎にどの演算ブロックがアクティブになるかを完全に解析することができる。
演算ブロックの発熱量については、回路設計時にCADツールなどを利用して演算ブロックの静的な温度特性を考慮して予測することができる。演算ブロックの静的な温度特性は、主として物理的な特性や素子の位置関係にもとづいて定量化される。たとえば、CMOSは値が反転するときにPチャネルとNチャネルの両トランジスタが一瞬同時にオンし、貫通電流が流れる。これがCMOSの消費電力の大半を占め、消費電力はCMOSの動作周波数に比例して増加する。このような消費電力を見積もることで演算ブロックの発熱量を予測することができる。発熱係数は発熱量の予測値を量子化した値である。回路設計時のシミュレーション結果や発熱予測量などの情報は、ハードウエア情報として命令デコーダ14から参照できるように構成される。
図3に示す例では、命令ステップ「MOV AX BX」の実行には、(2,3)および(2,4)の位置の演算ブロックが関わり、発熱係数は2であり、命令ステップ「LD AX 2D」の実行には、(2,2)の位置の演算ブロックが関わり、発熱係数は1である。
再び図2を参照し、命令スケジューラ16は、命令デコーダ14によりデコードされた命令24をデータ依存関係にもとづきスケジューリングし、次に実行すべき命令ステップを選択する。命令スケジューラ16は、発熱係数プロファイル20を参照して、その選択された命令ステップの実行に関わる演算ブロックの位置と発熱係数を特定し、発熱度数加算器32に与える。発熱度数加算器32は、特定された演算ブロック位置の現在の発熱度数を演算ブロック発熱度数レジスタ22から読み取り、命令スケジューラ16から与えられた発熱係数を加算して演算ブロック発熱度数レジスタ22に書き込む。
発熱度数減算器34は、演算ブロック発熱度数レジスタ22から各演算ブロックの発熱度数を読み取り、所定の放熱定数にもとづく減算処理を行い、演算ブロック発熱度数レジスタ22に書き込む。発熱度数減算器34は、所定のクロックで動作して、演算ブロック発熱度数レジスタ22の各演算ブロックの発熱度数を減算する。これにより、時間経過による放熱量が演算ブロック発熱度数レジスタ22の発熱度数に反映される。
発熱度数減算器34は、発熱度数がゼロになるまで減算するが、各演算ブロックの発熱度数が大きいほど発熱度数の減算量を大きく設定する。各演算ブロックの発熱度数から予測される温度と外界温度との差が大きいほど、放熱による温度低下が速いと考えられるからである。外界温度は測定値、推定値もしくはあらかじめ設定した値のいずれを用いてもよい。
図4は、演算ブロック発熱度数レジスタ22に格納された発熱度数の例を示す。演算ブロック発熱度数レジスタ22に格納された各演算ブロックの発熱度数は、発熱度数加算器32により命令コードの進行に合わせて累積加算され、発熱度数減算器34により時間経過とともに減算される。
発熱度数加算器32および発熱度数減算器34は、演算ブロックの温度特性の動的な面も考慮して、演算ブロックの発熱度数を調整してもよい。演算ブロックの動的な温度特性は、主としてタスクの実行履歴や負荷状況に依存するが、場合によっては、隣接するブロックに同時にタスクが割り振られると、離れたブロックにタスクが分散する場合よりも熱が発生しやすいなどの物理的な性質からの影響も受ける。発熱度数加算器32は、演算ブロックへのタスクの割り当て状況や、隣接する演算ブロックの発熱による相互作用などを加味して発熱度数の加算を行ってもよい。発熱度数減算器34は、演算ブロックの周囲の放熱の進み具合を考慮して発熱度数の減算を行ってもよい。
再び図2を参照し、ホットスポット検出器36は、演算ブロック発熱度数レジスタ22の発熱度数が所定の閾値を超えた演算ブロックをホットスポットとして検出し、その演算ブロックの位置を命令スケジューラ16に与える。この所定の閾値は、演算ブロックが動作不良になる限界温度よりも低い温度に対応する発熱度数で与えられる。したがって、ホットスポット検出器36は、現実にホットスポットとなった演算ブロックを検出するだけではなく、将来ホットスポットとなる可能性の高い演算ブロックもホットスポットとして検出する。
命令スケジューラ16は、ホットスポットと判定された演算ブロックが実行に関わる命令ステップの前にウエイト命令を挿入して実行タイミングをずらしたり、ホットスポットと判定された演算ブロックが関与しない命令の実行を優先的に実行するなどの再スケジューリングを行う。このように、命令スケジューラ16は、各演算ブロックの定量化された静的/動的温度特性を評価パラメータとして利用したスケジューリングを行う。
上記の構成では、命令デコーダ14がハードウエア情報をもとに命令ステップ毎に演算ブロックを特定し、発熱係数を決定したが、発熱係数は命令のオペランドの一部として命令コードの生成段階で埋め込まれていてもよい。たとえば、プログラマやコンパイラが命令毎に発熱係数を指定してもよい。
図5は、CPUコア100の命令デコーダ14と命令スケジューラ16による発熱制御手順を示すフローチャートである。
命令キャッシュ12に次にデコードすべき命令がキャッシュされている場合(S10のY)、命令デコーダ14は、キャッシュされた命令をデコードする(S12)。命令デコーダ14は、デコードされた命令に関わる演算ブロックを特定し、その演算ブロックの発熱係数を求め、発熱係数プロファイル20を作成する(S14)。
命令スケジューラ16は、命令デコーダ14によりデコードされた命令をデータ依存関係にもとづいてスケジューリングする(S16)。発熱度数加算器32は、スケジュールされた命令コードの進行に合わせて、演算ブロック発熱度数レジスタ22に保持されている該当する演算ブロックの発熱度数に発熱係数を累積加算する(S18)。ここで、発熱度数加算器32は、隣接する演算ブロックとの相互作用を考慮し、隣接する演算ブロックの発熱度数が大きい場合に、当該演算ブロックの発熱度数の加算量を大きくしてもよい。
ホットスポット検出器36は、演算ブロック発熱度数レジスタ22の各演算ブロックの発熱度数を評価して温度を予測し、ホットスポットとなる演算ブロックがあるかどうか調べる(S20)。ホットスポットになる可能性の高い演算ブロックが存在する場合(S20のY)、命令スケジューラ16は、ホットスポットとなる演算ブロックが実行に関わる命令の実行を遅らせるように、命令の実行順序や実行タイミングを調整し、命令を再スケジューリングする(S22)。
発熱度数減算器34は、時間経過による放熱量の予測値にもとづいて、演算ブロック発熱度数レジスタ22の各演算ブロックの発熱度数を減算する(S24)。以降、S10に戻り、次にデコードすべき命令がなくなる(S10のN)まで、一連の処理が繰り返される。
本実施の形態のプロセッサシステムによれば、命令コードの進行に伴って命令ステップ毎に演算ブロック単位で発熱量を予測するため、プロセッサシステムのパッケージ全体の温度分布を時間的にも空間的にも非常に細かいレベルで正確に把握することができる。これにより、プロセッサシステムの特定の演算ブロックに処理が集中し、急峻な温度上昇が予測される場合でも、その演算ブロックが関わる命令の実行をリアルタイムでスケジューリングし、発熱のピークを回避することができる。プロセッサ全体の処理性能を犠牲にすることなく、発熱による局所的な動作不良を防ぐことができる。
実施の形態2
図6は、実施の形態2に係るプロセッサシステムの構成図である。本実施の形態のプロセッサシステムは、実施の形態1のCPUコア100に相当するメインプロセッサ200以外に、2つのサブプロセッサ230a、230bがバス結合したマルチプロセッサシステムである。メインプロセッサ200は、バスを介してDRAM220にアクセスしてデータを読み取り、キャッシュ210にデータをキャッシュする。メインプロセッサ200は適宜2つのサブプロセッサ230a、230bにタスクを振り分けてプログラムを実行する。
メインプロセッサ200には、実施の形態1で説明したCPUコア100の各機能構成、すなわち、命令キャッシュ12、命令デコーダ14、命令スケジューラ16、実行ユニット18、発熱係数プロファイル20、演算ブロック発熱度数レジスタ22、発熱度数加算器32、発熱度数減算器34、およびホットスポット検出器36が含まれる。以下、これらの構成について、実施の形態1とは異なる動作を説明する。
本実施の形態のプロセッサシステムでは、メインプロセッサ200、サブプロセッサ230a、230bの各モジュールを含むプロセッサシステムのパッケージ全体の発熱量が制御対象となる。実施の形態1で述べた演算ブロックは、メインプロセッサ200、サブプロセッサ230a、230bの各モジュール内で区分けされたブロックであり、演算ブロック毎の発熱度数の加算および減算については実施の形態1と同様に行われる。
命令スケジューラ16は、実施の形態1で述べた命令の実行順序の変更、実行タイミングの調整以外に、サブプロセッサ230a、230bに命令を振り分けることで命令のスケジューリングを行う。命令スケジューラ16によるサブプロセッサ230a、230b間の命令の振り分けは命令ステップ単位の他、サブルーチンなどある程度まとまったタスクの単位で行われてもよい。命令スケジューラ16は、サブプロセッサ230a、230bの負荷状況に応じた命令の振り分けにより、負荷分散を図るとともに、サブプロセッサ230a、230bの演算ブロックの発熱状況に応じた命令の振り分けにより、発熱量を制御する。たとえば、一方のサブプロセッサ230aにホットスポットとなる可能性の高い演算ブロックが検出された場合、命令を他方のサブプロセッサ230bに割り当てる。
本実施の形態のプロセッサシステムによれば、各サブプロセッサ230a、230bの演算ブロックの発熱状況に応じて、サブプロセッサ230a、230b間でタスクを割り振ることで、プロセッサシステム全体の温度分布を平準化し、プロセッサシステム内にホットスポットが生じるのを防ぐことができる。
以上、本発明を実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
そのような変形例を説明する。実施の形態では、発熱対策として、ホットスポットとなる可能性のある演算ブロックに負荷が集中しないように、命令のスケジューリングを行う方法を説明したが、これ以外の発熱対策として、たとえば、ホットスポットとなる可能性のある演算ブロックを局所的に冷却ノズルを用いて冷却する方法をとってもよい。また、命令のスケジューリングをしても演算ブロックの発熱を抑えられない場合は、プロセッサ全体の動作周波数を落としたり、電源電圧を下げるなどの緊急処置をとるように構成してもよい。
実施の形態では、回路設計時のシミュレータなどによりあらかじめ発熱量を見積もり、プロセッサ内に発熱係数の情報をハードウエア情報としてもたせたが、プロセッサの温度を測定するセンサを設けて、局所的に演算ブロックの温度を実測した上で、実施の形態で述べたスケジューリングによる発熱制御を実施するように構成してもよい。
実施の形態では、命令ステップ毎に発熱量を予測し、発熱度数をカウントしたが、サブルーチンなどある程度まとまったタスク単位で発熱量を予測して、発熱度数をカウントするように構成してもよく、スケジューリングの単位も命令ステップ単位だけでなくタスク単位で行うように構成してもよい。プロセッサの各演算ブロックが比較的安全な温度範囲にあるときは、タスク単位でカウントされた発熱度数を参照してタスクスケジューリングを行い、温度が上昇してクリティカルな状況になったときは、各演算ブロックの発熱度数を命令ステップ単位でカウントして、命令単位の細かいスケジューリングを行うように切り替える切り替え制御部を設けてもよい。
実施の形態では、発熱制御をプロセッサシステムのハードウエアで行う構成であったが、命令コードの解析と温度予測にもとづいた命令のスケジューリングとをプロセッサシステムの外部でソフトウエア処理などで行い、スケジューリングされた命令をプロセッサに供給する構成の命令コード生成装置をプロセッサシステムとは別に設けてもよい。
アプリケーション毎に発熱特性のプロファイルを作成し、チップ上の温度センサにより実測された温度分布と照合することで発熱係数などのプロファイル情報を修正する照合部を設けてもよい。これにより発熱制御の精度をさらに向上させることができる。
実施の形態のプロセッサをメモリなどの他の素子とともに基板に搭載したプロセッサシステムを構成してもよい。また、そのようなプロセッサシステムを搭載した情報処理装置を構成してもよい。そのような情報処理装置としてパーソナルコンピュータ、各種携帯機器などがある。
実施の形態1に係るプロセッサシステムの構成図である。 図1のプロセッサシステムにおける発熱制御に係る機能構成の詳細説明図である。 図1の発熱係数プロファイルの説明図である。 図1の演算ブロック発熱度数レジスタに格納された発熱度数を説明する図である。 図1のプロセッサシステムにおける発熱制御手順を示すフローチャートである。 実施の形態2に係るプロセッサシステムの構成図である。
符号の説明
12 命令キャッシュ、 14 命令デコーダ、 16 命令スケジューラ、 18 実行ユニット、 20 発熱係数プロファイル、 22 演算ブロック発熱度数レジスタ、 32 発熱度数加算器、 34 発熱度数減算器、 36 ホットスポット検出器、 100 CPUコア、 110 メインメモリ、 200 メインプロセッサ、 210 キャッシュ、 220 DRAM、 230a、230b サブプロセッサ。

Claims (16)

  1. 発熱制御対象となる複数のブロックの発熱度数を保持する発熱度数保持部と、
    命令の実行に関わるブロックとそのブロックの発熱量に係る発熱係数とを所定の命令単位で特定する発熱特定部と、
    実行すべき命令の進行に合わせて前記所定の命令単位で、前記発熱特定部により特定されたブロックの前記発熱度数を前記発熱係数をもとに累積加算する発熱度数加算部とを含み、
    前記発熱特定部は、実行すべき命令を解読するデコーダであり、
    前記デコーダによりデコードされた命令について、前記デコーダが、当該プロセッサのハードウエア情報をもとに、各命令の実行に関わるブロックを特定し、そのブロックの動作による発熱量を予測し、前記発熱係数を決定することを特徴とするプロセッサ。
  2. 発熱制御対象となる複数のブロックの発熱度数を保持する発熱度数保持部と、
    命令の実行に関わるブロックとそのブロックの発熱量に係る発熱係数とを所定の命令単位で特定する発熱特定部と、
    実行すべき命令の進行に合わせて前記所定の命令単位で、前記発熱特定部により特定されたブロックの前記発熱度数を前記発熱係数をもとに累積加算する発熱度数加算部とを含み、
    前記発熱特定部は、実行すべき命令を解読するデコーダであり、
    前記デコーダによりデコードされた命令について、前記デコーダが、各命令の実行に関わるブロックを特定し、命令のオペランドの一部として命令コードの生成段階で埋め込まれた発熱情報を用いてそのブロックの動作による発熱量を予測し、前記発熱係数を決定することを特徴とするプロセッサ。
  3. 各ブロックの前記発熱度数を時間経過による放熱量にもとづいて減算する発熱度数減算部をさらに含むことを特徴とする請求項1または2に記載のプロセッサ。
  4. 前記発熱度数減算部は、各ブロックの前記発熱度数が大きいほど前記発熱度数の減算量を大きく設定することを特徴とする請求項3に記載のプロセッサ。
  5. 発熱制御対象となる複数のブロックの発熱度数を保持する発熱度数保持レジスタと、
    実行すべき命令と前記命令の実行に関わるブロックとそのブロックの発熱量に係る発熱係数とを対応づけて格納する発熱係数プロファイルと、
    実行すべき命令を解析して、前記命令の実行に関わる前記ブロックと前記発熱係数とを所定の命令単位で特定し、前記発熱係数プロファイルに格納するデコーダと、
    前記発熱係数プロファイルにもとづいて、前記命令の進行に合わせて前記所定の命令単位で前記ブロックの前記発熱度数を累積加算する発熱度数加算器と、
    各ブロックの前記発熱度数にもとづいて実行すべき命令をスケジューリングするスケジューラとを含み、
    前記発熱特定部は、実行すべき命令を解読するデコーダであり、
    前記デコーダによりデコードされた命令について、前記デコーダが、当該プロセッサのハードウエア情報をもとに、各命令の実行に関わるブロックを特定し、そのブロックの動作による発熱量を予測し、前記発熱係数を決定することを特徴とするプロセッサ。
  6. 発熱制御対象となる複数のブロックの発熱度数を保持する発熱度数保持レジスタと、
    実行すべき命令と前記命令の実行に関わるブロックとそのブロックの発熱量に係る発熱係数とを対応づけて格納する発熱係数プロファイルと、
    実行すべき命令を解析して、前記命令の実行に関わる前記ブロックと前記発熱係数とを所定の命令単位で特定し、前記発熱係数プロファイルに格納するデコーダと、
    前記発熱係数プロファイルにもとづいて、前記命令の進行に合わせて前記所定の命令単位で前記ブロックの前記発熱度数を累積加算する発熱度数加算器と、
    各ブロックの前記発熱度数にもとづいて実行すべき命令をスケジューリングするスケジューラとを含み、
    前記発熱特定部は、実行すべき命令を解読するデコーダであり、
    前記デコーダによりデコードされた命令について、前記デコーダが、各命令の実行に関わるブロックを特定し、命令のオペランドの一部として命令コードの生成段階で埋め込まれた発熱情報を用いてそのブロックの動作による発熱量を予測し、前記発熱係数を決定することを特徴とするプロセッサ。
  7. 複数のサブプロセッサとメインプロセッサとを含むマルチプロセッサシステムであって、
    前記メインプロセッサは、
    前記サブプロセッサ内の複数のブロックの発熱度数を保持する発熱度数保持部と、
    命令の実行に関わるブロックとそのブロックの発熱量に係る発熱係数とを所定の命令単位で特定する発熱特定部と、
    実行すべき命令の進行に合わせて前記所定の命令単位で、前記発熱特定部により特定されたブロックの前記発熱度数を前記発熱係数をもとに累積加算する発熱度数加算部と、
    各ブロックの前記発熱度数にもとづいて、実行すべき命令を前記複数のサブプロセッサ間で振り分けるスケジューラとを含み、
    前記発熱特定部は、実行すべき命令を解読するデコーダであり、
    前記デコーダによりデコードされた命令について、前記デコーダが、当該プロセッサのハードウエア情報をもとに、各命令の実行に関わるブロックを特定し、そのブロックの動作による発熱量を予測し、前記発熱係数を決定することを特徴とするマルチプロセッサシステム。
  8. 複数のサブプロセッサとメインプロセッサとを含むマルチプロセッサシステムであって、
    前記メインプロセッサは、
    前記サブプロセッサ内の複数のブロックの発熱度数を保持する発熱度数保持部と、
    命令の実行に関わるブロックとそのブロックの発熱量に係る発熱係数とを所定の命令単位で特定する発熱特定部と、
    実行すべき命令の進行に合わせて前記所定の命令単位で、前記発熱特定部により特定されたブロックの前記発熱度数を前記発熱係数をもとに累積加算する発熱度数加算部と、
    各ブロックの前記発熱度数にもとづいて、実行すべき命令を前記複数のサブプロセッサ間で振り分けるスケジューラとを含み、
    前記発熱特定部は、実行すべき命令を解読するデコーダであり、
    前記デコーダによりデコードされた命令について、前記デコーダが、各命令の実行に関わるブロックを特定し、命令のオペランドの一部として命令コードの生成段階で埋め込まれた発熱情報を用いてそのブロックの動作による発熱量を予測し、前記発熱係数を決定することを特徴とするマルチプロセッサシステム。
  9. 実行すべき命令を解読するデコーダに、前記命令の実行に関わるプロセッサ内のブロックの発熱を解析する機能をもたせ、
    前記デコーダによりデコードされた命令について、前記デコーダが、当該プロセッサのハードウエア情報をもとに、各命令の実行に関わるブロックを特定し、そのブロックの動作による発熱量を予測し、前記発熱係数を決定することを特徴とするプロセッサ。
  10. 実行すべき命令を解読するデコーダに、前記命令の実行に関わるプロセッサ内のブロックの発熱を解析する機能をもたせ、
    前記デコーダによりデコードされた命令について、前記デコーダが、各命令の実行に関わるブロックを特定し、命令のオペランドの一部として命令コードの生成段階で埋め込まれた発熱情報を用いてそのブロックの動作による発熱量を予測し、前記発熱係数を決定することを特徴とするプロセッサ。
  11. 命令コードの進行に合わせて所定の命令単位で前記命令の実行に関わるブロックの発熱度数を累積加算してレジスタに保持することにより、命令コードの進行による発熱をブロック単位で検出するステップを含み、
    前記検出するステップは、実行すべき命令を解読するデコーダによりデコードされた命令について、当該プロセッサのハードウエア情報をもとに、各命令の実行に関わるブロックを特定し、そのブロックの動作による発熱量を予測し、前記発熱係数を決定することを特徴とする温度制御方法。
  12. 命令コードの進行に合わせて所定の命令単位で前記命令の実行に関わるブロックの発熱度数を累積加算してレジスタに保持することにより、命令コードの進行による発熱をブロック単位で検出するステップを含み、
    前記検出するステップは、実行すべき命令を解読するデコーダによりデコードされた命令について、各命令の実行に関わるブロックを特定し、命令のオペランドの一部として命令コードの生成段階で埋め込まれた発熱情報を用いてそのブロックの動作による発熱量を予測し、前記発熱係数を決定することを特徴とする温度制御方法。
  13. 命令コードの進行に合わせて所定の命令単位で前記命令の実行に関わるブロックの発熱度数を累積加算してレジスタに保持するステップと、
    前記レジスタに保持された各ブロックの前記発熱度数にもとづいて命令コードの進行による発熱をブロック単位で検出するステップとをコンピュータに実行させ
    前記検出するステップは、実行すべき命令を解読するデコーダによりデコードされた命令について、当該プロセッサのハードウエア情報をもとに、各命令の実行に関わるブロックを特定し、そのブロックの動作による発熱量を予測し、前記発熱係数を決定することを特徴とするプログラム。
  14. 命令コードの進行に合わせて所定の命令単位で前記命令の実行に関わるブロックの発熱度数を累積加算してレジスタに保持するステップと、
    前記レジスタに保持された各ブロックの前記発熱度数にもとづいて命令コードの進行による発熱をブロック単位で検出するステップとをコンピュータに実行させ、
    前記検出するステップは、実行すべき命令を解読するデコーダによりデコードされた命令について、各命令の実行に関わるブロックを特定し、命令のオペランドの一部として命令コードの生成段階で埋め込まれた発熱情報を用いてそのブロックの動作による発熱量を予測し、前記発熱係数を決定することを特徴とするプログラム。
  15. 命令コードの進行に合わせて所定の命令単位で前記命令の実行に関わるブロックの発熱度数を累積加算してレジスタに保持するステップと、
    前記レジスタに保持された各ブロックの前記発熱度数にもとづいて命令コードの進行による発熱をブロック単位で検出するステップとをコンピュータに実行させ
    前記検出するステップは、実行すべき命令を解読するデコーダによりデコードされた命令について、当該プロセッサのハードウエア情報をもとに、各命令の実行に関わるブロックを特定し、そのブロックの動作による発熱量を予測し、前記発熱係数を決定するプログラムを格納したことを特徴とする記録媒体。
  16. 命令コードの進行に合わせて所定の命令単位で前記命令の実行に関わるブロックの発熱度数を累積加算してレジスタに保持するステップと、
    前記レジスタに保持された各ブロックの前記発熱度数にもとづいて命令コードの進行による発熱をブロック単位で検出するステップとをコンピュータに実行させ、
    前記検出するステップは、実行すべき命令を解読するデコーダによりデコードされた命令について、当該プロセッサのハードウエア情報をもとに、各命令の実行に関わるブロックを特定し、そのブロックの動作による発熱量を予測し、前記発熱係数を決定するプログラムを格納したことを特徴とする記録媒体。
JP2005084845A 2005-03-23 2005-03-23 プロセッサ、マルチプロセッサシステムおよび温度制御方法 Expired - Fee Related JP4397843B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005084845A JP4397843B2 (ja) 2005-03-23 2005-03-23 プロセッサ、マルチプロセッサシステムおよび温度制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005084845A JP4397843B2 (ja) 2005-03-23 2005-03-23 プロセッサ、マルチプロセッサシステムおよび温度制御方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004096410A Division JP3830491B2 (ja) 2004-03-29 2004-03-29 プロセッサ、マルチプロセッサシステム、プロセッサシステム、情報処理装置および温度制御方法

Publications (3)

Publication Number Publication Date
JP2005285117A JP2005285117A (ja) 2005-10-13
JP2005285117A5 JP2005285117A5 (ja) 2007-05-10
JP4397843B2 true JP4397843B2 (ja) 2010-01-13

Family

ID=35183364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005084845A Expired - Fee Related JP4397843B2 (ja) 2005-03-23 2005-03-23 プロセッサ、マルチプロセッサシステムおよび温度制御方法

Country Status (1)

Country Link
JP (1) JP4397843B2 (ja)

Also Published As

Publication number Publication date
JP2005285117A (ja) 2005-10-13

Similar Documents

Publication Publication Date Title
JP3830491B2 (ja) プロセッサ、マルチプロセッサシステム、プロセッサシステム、情報処理装置および温度制御方法
Shen et al. Learning based DVFS for simultaneous temperature, performance and energy management
Coskun et al. Static and dynamic temperature-aware scheduling for multiprocessor SoCs
Coskun et al. Temperature-aware MPSoC scheduling for reducing hot spots and gradients
Coskun et al. Proactive temperature management in MPSoCs
Chen et al. Coordinating processor and main memory for efficientserver power control
US8595525B2 (en) On-chip thermal management techniques using inter-processor time dependent power density data for indentification of thermal aggressors
US20130158892A1 (en) Method for selecting a resource from a plurality of processing resources so that the probable times to failure of the resources evolve in a substantially identical manner
Zhou et al. Performance-aware thermal management via task scheduling
Haghbayan et al. Performance/reliability-aware resource management for many-cores in dark silicon era
Ranjbar et al. Power-aware runtime scheduler for mixed-criticality systems on multicore platform
Wächter et al. Predictive thermal management for energy-efficient execution of concurrent applications on heterogeneous multicores
Lee et al. Thermal-Aware Scheduling for Integrated CPUs--GPU Platforms
Salami et al. Proactive task migration with a self-adjusting migration threshold for dynamic thermal management of multi-core processors
Alsafrjalani et al. Tasat: Thermal-aware scheduling and tuning algorithm for heterogeneous and configurable embedded systems
Krishna et al. Thermal-aware management techniques for cyber-physical systems
JP4397843B2 (ja) プロセッサ、マルチプロセッサシステムおよび温度制御方法
Chien et al. A thermal-aware scheduling for multicore architectures
KR100838438B1 (ko) 태스크 관리방법, 태스크 관리장치, 반도체 집적회로, 전자장치, 태스크 관리 시스템, 및 프로그램을 격납한 기록매체
Revathi et al. Multistep temperature prediction for proactive thermal management on chip multiprocessors
Kumar et al. Thermal aware learning based CPU governor
Patnaik et al. Prowatch: a proactive cross-layer workload-aware temperature management framework for low-power chip multi-processors
Ghiasi Aide de camp: asymmetric multi-core design for dynamic thermal management
JP5444964B2 (ja) 情報処理装置及びスケジューリング方法
Ranjbar et al. QoS-And Power-Aware Run-Time Scheduler for Multi-core Mixed-Criticality Systems

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070319

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090609

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090716

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091021

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

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131030

Year of fee payment: 4

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

LAPS Cancellation because of no payment of annual fees