(57)【要約】【課題】本発明は処理可能な熱の量が制限されているシステムにおいて、処理可能な熱量を増加する手段を講ずることなく、システム全体の処理能力の向上を図る。【解決手段】各構成要素の処理能力と発熱量の関係を調査し、システム全体に供されている発生熱量をシステムの処理能力の向上に寄与する割合が高い構成要素に多く割り当てる。多くの熱量が割り当てられた構成要素はより高い動作電圧あるいは動作周波数による動作が可能となり、高い処理能力を発揮する。結果として、システム全体の処理能力が向上する。【選択図】図２
2009223381.tif 000002
【特許請求の範囲】
【請求項１】
複数の構成要素からなるシステムにおいて各構成要素の発熱量を決定する方法であって、
各構成要素の動作性能と発熱量の関係を測定するステップと、
各構成要素の発熱量の合計がシステムの許容熱量以下となる構成要素の動作性能の組み合わせを抽出するステップと、
前記組み合わせからシステムの動作性能が最も高くなる組み合わせを選択するステップと、
前記選択された組み合わせに従って各構成要素を動作させることを特徴とする発熱量決定方法。
【請求項２】
請求項１記載の発熱量決定方法であって、
構成要素は半導体集積回路であり、動作性能は半導体集積回路の動作周波数と動作電圧の一方又は両方であることを特徴とする発熱量決定方法。
【請求項３】
請求項１又は請求項２記載の発熱量決定方法であって、
システムは許容熱量が定められた複数の階層により構成されており、
構成要素の階層を除く各階層は１つ下の階層又は構成要素の発熱量の合計が各階層の許容熱量以下となる１つ下の階層又は構成要素の動作性能の組み合わせを抽出することを特徴とする発熱量決定方法。
【請求項４】
複数の構成要素の発熱量を決定する発熱量決定システムであって、
各構成要素の動作性能と発熱量の関係を測定する第１手段と、
各構成要素の発熱量の合計がシステムの許容熱量以下となる構成要素の動作性能の組み合わせを抽出する第２手段と、
前記組み合わせからシステムの動作性能が最も高くなる組み合わせを選択する第３手段と、
前記選択された組み合わせに従って各構成要素を動作させる第４手段からなることを特徴とする発熱量決定システム。
【請求項５】
請求項４記載の発熱量決定システムであって、
システムは許容熱量が定められた複数の階層により構成されており、
構成要素の階層を除く各階層は１つ下の階層又は構成要素の発熱量の合計が各階層の許容熱量以下となる１つ下の階層又は構成要素の動作性能の組み合わせを抽出することを特徴とする発熱量決定システム。
【請求項６】
請求項４又は請求項５記載の発熱量決定システムであって、
前記第１ないし第４の手段の一部又は全部が各構成要素対応に設けられていることを特徴とする発熱量決定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシステムを構成する構成要素の発熱量の合計をシステム全体に許容される発熱量以下となるように、各構成要素に放出可能な熱量を配分する方法とシステムに関するものであり、詳しくは、システム全体の能力の向上に寄与する構成要素に多くの発熱量を配分することにより、システムの熱処理能力を上げることなく、システムの処理能力の向上を図ることが可能な発熱量の配分を決定する方法及び発熱量の配分を決定するシステムに関するものである。
【背景技術】
【０００２】
同一の設計の構成要素、例えば半導体集積回路であっても、製造時に発生するばらつきにより回路の特性が異なり、性能が大きく異なることが知られている。対策として、製造された集積回路の特性をテストし、特性に応じてランク分けをし、同じ設計の半導体集積回路であっても、特性の良否に応じて異なった性能の製品として取り扱う方法がある。また、特表2002−505497号公報(特許文献１)には、半導体集積回路の性能に合わせた動作周波数の指標を内部に持たせ、性能に合わせた制御を可能にする技術が記載されている。同技術の制御の単位は半導体集積回路であり、動作周波数の指標は製造時に製造者によって決定されるか、使用時に使用者によって決定される。
【０００３】
特開2005−322860号公報（特許文献２）には、半導体集積回路の性能に合わせた動作電圧の指標を内部に記録し、当該記録を参照して回路の性能に合わせた制御を可能にする技術が記載されている。
特開2006−120686号公報（特許文献３）には、半導体集積回路の性能に合わせて動作電圧を制御する技術であり、規定の周波数より高い周波数で動作することが可能ではあるが消費電力が高い半導体集積回路に対して、供給電圧を下げることにより規定の消費電力と規定の周波数による動作を可能とする技術が記載されている。この技術は消費電力に余裕がある半導体集積回路の供給電圧を上昇させることにより、規定の消費電力と規定の周波数による動作を可能とするものである。
【特許文献１】特表2002−505497号公報
【特許文献２】特開2005−322860号公報
【特許文献３】特開2006−120686号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
コンピュータシステムには処理に伴い発生する熱を除去する冷却装置が設けられている。しかし、冷却装置の熱処理の能力には限界があり、処理可能な熱量は限られている。今日のコンピュータシステム、特にハイエンドシステムでは処理可能な熱量が性能を制限する大きな要素となっている。
特許文献１に記載される技術は、動作周波数のみを変えている。当該技術は製造上のばらつきにより発生する各半導体の特性の差異に対応した動作周波数で動作させることを可能とするものである。しかし、熱という観点からの考慮はなされていないため、特性の差異に応じて動作電圧を下げ、熱の発生を抑える処理を行うものでない。
【０００５】
特許文献２に記載される技術は、半導体集積回路の個々の特性によって決まる発生熱量に対応した動作周波数で動作するように動作電圧を調整するものである。同技術は、製造のばらつきに応じて動作電圧のみを変えるものであり、動作周波数を変化させものではないため、半導体集積回路の処理能力は一定である。また、製品を規定の動作周波数で動作させることを目的にしている。したがって、発生可能な熱内で動作周波数を上げ、規定の動作周波数を維持しつつ発熱を抑える処理は行っていない。
【０００６】
製造のばらつき等により発生する半導体集積回路の特性の相違に対応する多くの手法が提案されている。しかし、コンピュータシステムにおいて近年大きな問題になってきている発熱の問題を考慮して製造のばらつきを扱う技術は存在しない。この結果と、多くのシステムにおいて下記のような問題がある。
1．半導体集積回路で情報を交換することにより、より効率的に制御を行う手法が考慮されていない。
2．供給クロックの制御など動作速度を制御する手法が考慮されていない。
3．速度制御手法が考慮されていない。
4．優先実行手法が考慮されていない。
5．電圧の制御など、熱の発生を制御するために効果的な手法が考慮されていない。
6．Sleepモードへの移行タイミングを調整するなど、省消費電力モードなど半導体集積回路内の機能ブロックへの供給クロックの制御、半導体集積回路内の機能ブロックへの供給電圧の制御（電力カットを含む）、半導体集積回路内の機能ブロックの制御（機能ブロックへの供給クロックの制御及び供給電力の制御に伴う処理）などを伴う処理に対する制御を行う手法が考慮されていない。
7．高速な動作もしくは省消費電力での動作が期待される半導体集積回路に優先的に処理を行わせることにより、より高い供給クロック周波数での動作、又は低消費電力での実行を行う手法が考慮されていない。
【０００７】
コンピュータシステムでは処理可能な熱量が制限されており、これにより性能が制限される。処理可能な熱量は半導体集積回路毎、チップ毎、パーツ毎、システムの一部毎、システム毎、全体のシステムと各階層において制限されており、それぞれの階層で当該階層に適合した熱量を処理する能力が必要となる。したがって、処理可能な熱量を増加させるとシステム全体のコストを増加させることになる。
本発明はシステムを構成する各階層で発生する熱量を増加させることなく、システム全体で高い処理能力を得るようにシステムの構成要素に発生可能な熱量を配分する方法、及び、構成要素に発生可能な熱量を配分するシステムを提供すものである。
【０００８】
図１(ａ)はCPU102とチップセット104の２つの半導体集積回路からなる下の階層（階層A101）とケース等の上の階層（階層B106）からなるシステムを示す。CPU102は発熱103を、チップセット104は発熱105を階層Bに放出する。階層Bは空調設備等により熱量107を大気中に放出する。上の階層（階層B）が処理可能な熱量は下の階層(階層A)が放出する熱量の合計より多い必要がある。しかし、この条件を満足しない場合、階層Bが処理可能な熱量に合わせて、階層Aが放出する熱量を制限する必要がある。図１(ａ)において、CPU103の冷却装置が50W、チップセットの冷却装置が15Wの熱を処理可能であっても、階層Bが処理可能な熱量が55Wの場合、CPU102とチップセット104はCPU102の冷却装置とチップセット104の冷却装置の限界まで熱を発生させることはできず、性能が制限される。このように、上の階層の処理可能な熱量による制限のため、下の階層の処理可能な熱量の限界まで電圧や動作周波数を上げることができない場合がある。
【０００９】
また、デュアルコアCPUの場合、各コアが動作周波数限界で動作した場合の発生熱量より、CPU等の冷却システムの処理可能な熱量が小さいため、各コアの動作周波数が動作可能周波数の限界以下に抑えられる場合がある。しかし、このようなデュアルCPUは、一方のコアが動作していないなど、発生熱量が少ない場合、もう一方のコアの動作周波数を向上させることが可能である（INTELのINTEL Enhanced Dynamic Acceleration Technology,  White Paper, "Introducing the 45nm Next-Generation Intel(R) Core(TM) Microarchitecture",  Page6）。
本発明は、下の階層の処理可能な熱量の合計が上の階層の処理可能な熱量を超えないように、システムの構成要素の動作性能を制限する必要がある場合であっても、製造のばらつきにより構成要素毎に動作可能な周波数、動作可能な電圧等、動作可能なパラメータが異なることを利用し、より高い動作性能を得ることが可能な構成要素に、より多くの発熱量を配分することにより、システム全体として、より高い処理能力を得ることを可能とするのである。
【課題を解決するための手段】
【００１０】
本発明は、例えば、半導体集積回路等、発熱源となる複数の構成要素を有するシステムにおいて、システム全体で許容される発熱量の範囲内でシステムの動作能力を上させることを可能とする、各構成要素の動作周波数と動作電圧の一方あるいは両方を決定する方法とシステムを提供するものである。
図１−１(ａ)はCPU102とチップセット104からなるシステムを示す。システム全体の処理可能熱量107を55Wとし、CPU102の通常処理の発熱を45W、冷却装置の能力を50Wとし、チップセット104の通常処理の発熱を10W、冷却装置の能力を15Wとする。図１−１(ｂ)は、システム全体の許容熱量55WをCPU102とチップセット104に配分する従来の方法(１)、(２)と本発明による方法(３)を示すものである。
【００１１】
CPU102は製造上の固有の動作特性により、通常電圧では通常の動作周波数でのみ動作可能であり、チップセット104は動作電圧を下げても動作周波数を維持することが可能とする。特許文献１に記載される方法(１)ではチップセットの動作周波数をチップセットの限界まで、もしくは発生可能熱量の限界まで向上させる。また、特許文献２に記載される方法(２)ではチップセットの動作電圧を下げる。
CPUとチップセットを比較すると、CPUの動作周波数を上げることによる処理能力の向上は、チップセットの動作周波数を上げることによる処理能力の向上より、システム全体の処理能力の向上に結びつく。本発明の方法(３)は、チップセット104の動作電圧を下げて発熱量を10Wから5Wに下げる。チップセット104の発生熱量を5Wに下げることにより、システム全体の発生熱量は50Wに減少し、システムの処理可能な熱量55Wに対して5Wの余裕が生じる。CPU102の動作が通常電圧と通常の駆動周波数の場合、発熱量は45Wである。しかし、チップセット104の発生熱量を5W少なくしたことにより、CPUの発生熱量を現在の発生熱量より5W高くし50Wとすることが可能となる。また、CPU102の冷却装置の能力は50Wであり、前記の50Wを処理することが可能である。したがって、チップセット104の発生熱量を下げることにより生じた5Wの発熱の余裕をCPUの発生熱量に加え50Wとすることにより、CPU102の動作電圧と動作周波数を上げることが可能になる。この結果、CPU102の処理能力は増加し、システム全体の処理能力も増加する。
【発明の効果】
【００１２】
本発明の特徴は、発生可能な熱量を複数の構成要素で共有しており、一方の構成要素の発生熱量を減少させることが可能な場合、他の構成要素の発生可能熱量を増加させるように制御する点にある。上記のCPUとチップセットの例ではCPUとチップセットが発生可能な熱量を共有しているため、チップセットの発生熱量を減少させ、CPUの発生熱量を増加させている。発生可能な熱量を共有している構成要素間で発生する熱量を調整する手法を熱シェアリングと呼ぶ。
【発明を実施するための最良の形態】
【００１３】
本発明は、システムを構成する構成要素の発熱量の合計をシステム全体に許容される発熱量以下となるように、各構成要素の発熱量を決定する構成において、システム全体の能力の向上に寄与する構成要素に多くの発熱量を配分するものである。
熱シェアリングを実現するため、本発明の実施態様は半導体集積回路等システムの構成要素の動作周波数を調整する機能と、動作電圧を調整する機能を有している。
半導体集積回路等、システムの構成要素の多くは動作周波数を高くすることにより処理能力を向上させることが可能である。また、動作電圧を高くすることにより動作周波数を上げることが可能になる。しかし、動作電圧を高くする、あるいは動作周波数を高くすると消費電力が増加し発生熱量も増加する。複数の半導体集積回路からなるシステムにおいて、製造のばらつきによる特性の差異に基づいて複数の構成要素の駆動周波数と動作電圧を連係して調整することにより、システム全体の発熱量を許容量以下に制限しつつ、処理性能を向上させることが可能となる。
【００１４】
構成要素の発熱量を変更したことにより、構成要素の動作モードの切り替えを調整する機能、あるいは、実行する処理の制御が必要となる場合がある。熱シェアリングにより動作周波数や動作電圧を変更するため、Sleepモードへ移行するタイミング等、動作モードを切り替わるタイミングを変更することが必要となる場合がある。例えば、同じコアを２つ搭載したデュアルコアCPUにおいて一方のコアが通常の動作周波数と低い動作電圧、もう一方のコアが高い動作周波数と高い動作電圧の場合、消費電力の低減を優先する場合には高電圧のコアを優先的にSleepモードにし、消費電力を大きく削減する。また、シングルコアの処理能力を維持する場合には、通常電圧のコアを優先的にSleepモードにし、シングルコアの処理能力を維持しながら消費電力の削減を可能にする等、システム全体が必要とする処理能力に基づいて動作モードが決定される。
同じ機能を持った構成要素であっても処理能力に差があるため、高い処理能力が要求されるプログラムの実行は動作周波数が高いコアで行い、処理能力が要求されないプログラムの実行は動作周波数が低いコアで行う等の制御を熱シェアリングにより実行することが可能となる。複数の同じコアを持った集積回路において各コアが異なった処理を実行するシステムの場合、実行する処理を動作周波数・動作電圧に応じて割り振る構成、また、OSがプログラムなどの制御を行う際の補助機能を持つ構成が可能である。
【００１５】
本発明の概要が図１−２に示される。
図１−２(ａ)はシステムの階層構成を示す図である。半導体集積回路等の発熱体121と122はプリント基板131に搭載されて階層A1となる。同様に発熱体である構成要素123と124はプリント基板132に搭載されて階層Anとなる。プリント基板131とプリント基板132はブロック化されてサブシステム141を構成し階層B1となる。同様、サブシステム142が階層Bnとして存在する。サブシステム141とサブシステム142によりシステム151が構成され、最上位層である階層Cとなる。階層A1ないし階層Cは処理可能な熱量が定められており、下位の階層の発生熱量の合計は上位の階層が処理可能な熱量の範囲内である必要がある。
【００１６】
図１−２(ｂ)は、半導体集積回路1ないし半導体集積回路7からなる構成を例に、本発明の方法及びシステムの概要を示すものである。半導体集積回路1と半導体集積回路2が階層A1、半導体集積回路3と半導体集積回路4が階層A2、半導体集積回路5ないし半導体集積回路7が階層A3を構成している。また、階層A1と階層A2が層B1を構成している。システム全体の階層であり最上位層となる階層Cは階層B1と階層A3から構成されている。(１)ないし(４)は、半導体集積回路1ないし半導体集積回路7の動作パラメータの候補を下位の階層から上位の階層に伝達する動作を表し、(６)ないし(８)は、階層Cの制御部が(５)で決定した各半導体集積回路の動作パラメータを上位の階層から下位の階層に伝達する動作を表す。各動作の詳細は以下のとおりである。
【００１７】
(１)各半導体集積回路が動作可能な周波数と電圧、及び動作モードを調査する。半導体集積回路の発熱量は供給される電圧と周波数から求めることが可能であり、上記の調査値から発熱量を求める。動作周波数・動作電圧・動作モード・発熱量等からなる動作パラメータを半導体集積回路の動作候補として全て生成する。
(２)階層A1ないし階層A3の各制御部は、各階層に属する半導体集積回路の合計の発熱量が各階層に許容されている発熱量以下となる各半導体集積回路の動作パラメータの組み合わせを抽出する。例えば、階層A1の制御部は半導体集積回路１と半導体集積回路2の動作パラメータから、両半導体集積回路の発熱量の合計が階層A1に許容されている発熱量以下となる動作パラメータの組み合わせを全て抽出して階層A1の候補とする。複数の組み合わせが同じ発熱量となる場合は、各半導体集積回路の動作パラメータから、各半導体集積回路の動作性能を算出し、最も動作性能が高くなる組み合わせを、当該熱量に対応する候補とする。抽出された発熱量対応の候補を上の階層の制御部に送る。階層A2、階層A3も同様の動作を行う。
(３)階層B(図１−２(ｂ)では階層B1のみ)の制御部は、下位の階層A(図１−２(ｂ)では階層A1と階層A2)が抽出した候補を取り込み、階層A1の発熱量と階層A2の発熱量の合計が階層B1に許容されている熱量以下となるように、階層A1の候補と階層A2の候補から１つずつ選択し、その組み合わせの全てを階層B1の候補とする。１つの発熱量に対して複数の組み合わせが存在する場合は、階層B1の動作性能が最も高くなる組み合わせを候補とする。
(４)階層Cの制御部は、下位の階層(図１−２(ｂ)では階層B1と階層A3)が(３)と(２)で選択した候補を取り込み、各階層の発熱の合計が階層Cの許容熱量以下となるような、階層B1の候補の１つと階層A3の候補の１つの組み合わせを全て抽出する。
(５)階層Cの制御部は、(４)で抽出された候補の組み合わせの中から、システムの動作性能が最も高くなる組み合わせを抽出する。
(６)階層Cの制御部は、(５)で決定された組み合わせに対応する階層B1の熱量(候補)と階層A3の熱量(候補)を、各々対応する下位の階層の制御部に送信する。
(７)前記下位の階層が更に下位の階層を有する場合、前記下位の階層の制御部は上位の制御部から送信された熱量(候補)を更に下位の階層の熱量(候補)に分け、対応する制御部に送信する。例えば、階層B1は階層Cから送信された熱量(候補)を、階層B1の動作性能が最も高くなるように階層A1の熱量(候補)と階層A2の熱量(候補)に分割し、階層A1と階層A2の制御部に送信する。階層A1と階層A2の制御部は階層B1から送信された熱量(候補)に基づいて下位の半導体集積回路の動作パラメータを決定する。階層A3の制御部も同様の動作を行う。
(８)階層Aの各制御部は(７)で決定した動作パラメータにより、半導体集積回路を動作させる。
【００１８】
図２ないし図６は本発明の１つの実施態様を示す図であり、本発明に係る熱シェアリングをCPUとチップセットの２つの半導体集積回路を有するシステムにより説明するものである。CPU部201はCPUの本体となるCPU回路202、CPU回路202を駆動する動作周波数を変更する動作周波数変更回路203、CPU回路202に供給する動作電圧を変更する動作電圧変更回路204、CPU回路202の特性のばらつきを測定する製造ばらつき判定回路205から構成されている。チップセット部211もCPU部201と同様の構成であり、動作周波数変更回路213、動作電圧変更回路214、製造ばらつき判定回路215から構成されている。CPU部201の製造ばらつき判定回路205とチップセット部211の製造ばらつき判定回路215は、通信路216により結合されており、CPU回路202とチップセット回路212の動作特性に関する情報と、両半導体集積回路に供給する動作周波数と動作電圧に関する情報を授受する。
また、図示されていない調停回路を設ける、あるいは、OSに製造ばらつき判定回路と通信する機能を持たせることにより、各製造ばらつき判定回路と調停回路あるいはOSが通信し、製造ばらつき判定回路の判定結果に基づいた制御を行うことが可能となる。
【００１９】
［製造ばらつき判定回路］
製造ばらつき判定回路は、対象となる半導体集積回路の製造ばらつきを調査し、その結果を記憶部に記憶する製造ばらつき調査機能と、他の製造ばらつき判定回路の調査結果を参照して半導体集積回路の動作周波数、動作電圧等の動作パラメータを決定する熱シェアリング機能を実行する。なお、複数の半導体集積回路の特性を調査する構成として、全ての製造ばらつき判定回路が独立して動作する構成の他、１つの製造ばらつき判定回路、例えば製造ばらつき判定回路205をマスタとし、他の製造ばらつき判定回路、例えば製造ばらつき判定回路215をスレーブとし、マスタとなったが製造ばらつき判定回路がスレーブの製造ばらつき判定回路を制御して半導体集積回路の特性を調査する構成が可能である。
図３は製造ばらつき判定回路205の構成図である。製造ばらつき判定回路205は、動作周波数変更回路203にCPU回路202に供給する周波数を指定する動作周波数制御部302と、動作電圧変更回路204にCPU回路201に供給する電圧を指定する動作電圧制御部303を有している。CPU回路202は動作周波数制御部302と動作電圧制御部303が指定した周波数と電圧に従って動作する。
【００２０】
CPU回路テスト部304は、動作周波数制御部302と動作電圧制御部303により指定された周波数と電圧の下、CPU回路202が正常に動作するか否かを判定する。半導体集積回路のテストは対象となる半導体集積回路内の回路を使用してテストする構成、あるいは製造ばらつき判定回路内に専用のテスト回路を設ける構成が可能である。
調査の結果、CPU回路202が正常に動作すると判定された周波数と電圧は揮発メモリ又は不揮発メモリにより構成される記憶部306に記憶する。
製造ばらつき判定回路204は通信部307を介して、他の製造ばらつき判定回路同士、もしくは他の半導体集積回路と通信する。この通信により他の半導体集積回路の製造ばらつきに関する情報等を収集する。熱シェアリング機能は、収集された情報を元に各半導体集積回路を動作させる動作パラメータを決定する。決定された動作パラメータは通信部307を介して各半導体集積回路に渡される。
【００２１】
［動作周波数変更回路］［動作電圧変更回路］
動作周波数変更回路203、動作電圧変更回路204は製造ばらつき判定回路205からの指示、又は他の回路からの指示により半導体集積回路(CPU回路202)の動作周波数と動作電圧を変更する回路である。半導体集積回路自体が動作周波数を変更する回路、あるいは動作電圧を変更する回路を持つ場合、変更の基準として製造ばらつき判定回路からの信号が加わることになる。
【００２２】
［製造ばらつき調査機能］
システムが初めて使用された時、あるいは電源がオンとなった時、製造ばらつき判定回路204は、CPU回路202に与える周波数と電圧を順次変更し、CPU回路テスト部304を制御してCPUが正常に動作するか否かをテストする。このテストによって得られたCPU回路202が許容する動作周波数と動作電圧の関係を記憶部306に保存する。システムを構成する複数の半導体集積回路は、各半導体集積回路内に独自の製造ばらつき判定回路を有しており前記のテストを行い、テスト結果を自身の記憶部に保存する。なお、システムを製造ばらつき判定回路を有する半導体集積回路と製造ばらつき判定回路を有しない半導体集積回路により構成し、特定の製造ばらつき判定回路をマスタとし製造ばらつき判定回路を有しない半導体集積回路の特性を調査する構成も可能である。
【００２３】
［熱シェアリング機能］
システム内の半導体集積回路等の構成要素が発生する熱量の合計は、システム全体に許容されている熱量以下とする必要がある。半導体集積回路は動作電圧あるいは動作周波数を高くすると動作性能は高くなるが、発生する熱量も増加する。したがって、半導体集積回路の動作周波数、動作電圧に余裕がある場合であっても、システム全体に許容される熱量のため、動作周波数、動作電圧が制限され、各構成要素が持つ能力を最大限に利用することはできない。
システム全体の性能に対する寄与率はシステムを構成する半導体集積回路により異なる。CPUとチップセットからなるシステムの場合、システム全体の能力の多くはCPUの能力に依存している。したがって、CPUの動作性能を高くすることによりシステム全体の性能を高くすることが可能になる。
製造ばらつきによりCPUの能力に余裕がある場合、チップセットの発熱量を抑え、CPUに許容される発熱量を高くすると、CPUの動作周波数あるいは動作電圧を高くし、動作性能を高くすることが可能となる。熱シェアリング機能は、CPU等、システムの動作性能に寄与する割合の高い構成要素の許容発熱量を増加させ、その動作電圧あるいは動作周波数を上げて処理能力を高めることにより、システム全体の能力を上げることを可能とするものである。
図３に示される製造ばらつき判定制御部305の製造ばらつき調査機能が半導体集積回路(CPU回路)の特性の調査を終了すると、熱シェアリング機構が動作する。製造ばらつき判定制御部305は通信部307を介して他の半導体集積回路の製造ばらつき判定回路(例えば、図２のチップセット部211の製造ばらつき判定回路215)と通信し、各製造ばらつき判定回路の調査結果に基づいて、各半導体集積回路に許容される発生熱量を決める。
【００２４】
［製造ばらつき判定回路のプロセス］
図２の製造ばらつき判定回路は、システムの設定時、あるいは起動時にCPUとチップセットの製造ばらつき調査機能により下記［400.］の製造ばらつきを測定するプロセスを実行する。次に、熱シェアリング機能により下記［500.］のCPUとチップセットの動作パラメータを決定するプロセスを実行する。
図４は製造ばらつき調査機能の処理フローである。
400.  システムの起動時にCPUとチップセットの製造ばらつきの測定を開始する。
401.  動作電圧変更回路を使ってCPU(又はチップセット)の動作電圧を各回路が動作可能な最も低い電圧に設定する。
402.  動作周波数変更回路を使ってCPU(又はチップセット)の動作周波数を各回路が動作可能な最も低い周波数に設定する。
403.  テスト用の回路を使ってCPU(又はチップセット)が正常に動作するか否かを調査する。
404.  正常に動作しなかった場合は［408.］に制御を移す。
405.  動作周波数が最も高い周波数に設定されている場合は［408.］に制御を移す。
406.  動作周波数変更回路を使ってCPU(又はチップセット)の動作周波数を1段階上げる。
407.  ［403.］に制御を移す。
408.  動作した最も高い周波数を現在の動作電圧とともに記憶する。
409.  動作電圧が最も高い設定の場合は［500］の熱シェアリング機能に制御を移す。記憶部には各動作電圧対応に、当該CPU又はチップセットが動作可能な最も高い周波数が記憶される。
410.  動作電圧変更回路に指示してCPU(又はチップセット)の動作電圧を１段階上げる。
411.  ［402.］に制御を移す。
【００２５】
図５は熱シェアリング機能の動作フローである。
500.  CPUとチップセットの製造ばらつき判定回路の間で情報を交換し、CPUとチップセットに対する制御形態(動作パラメータ)を決定する。
501.  製造ばらつきにより通常の動作周波数、通常の動作電圧のみで動作する場合は熱シェアリングによる制御を終了する。
502.  製造ばらつきによりCPUとチップセットの動作電圧を下げることが可能な場合はCPUの動作周波数を上げ、チップセットの電圧を下げる。
503.  製造ばらつきによりCPUの動作電圧を下げることが可能な場合は発生熱量を維持しCPUの動作周波数を上げ、CPUの電圧を下げる。
504.  製造ばらつきによりチップセットの動作電圧を下げることが可能な場合はCPUの動作周波数を上げ、チップセットの電圧を下げる。
【００２６】
図６は製造ばらつき判定回路が各半導体集積回路の動作形態(動作パラメータ)を決定するプロセスの詳細である。
601.  全ての製造ばらつき判定回路が通信し、1個以上のマスタとなる製造ばらつき判定回路とそれによって制御される0個以上のスレーブとなる製造ばらつき判定回路を決定する。マスタとなる製造ばらつき判定回路間で、上位のマスタとなる製造ばらつき判定回路とスレーブとなる製造ばらつき判定回路を階層形式で決定する。1個のマスタと0個以上のスレーブからなる各階層を製造ばらつき階層と呼ぶ。階層は複数段になることがある。マスタとスレーブの関係はあらかじめ設定しておく構成も可能である。
図１−２(ｂ)の階層構成で、例えば、以下のように各階層のマスタを設定する。
半導体集積回路が自身の製造ばらつき判定回路を有する場合、当該製造ばらつき判定回路が半導体集積回路のマスタとなり製造ばらつき調査機能を実行する。自身の製造ばらつき判定回路を有しない半導体集積回路に対しては、他の半導体集積回路の製造ばらつき判定回路がマスタとなる。
階層Aでは、半導体集積回路1の製造ばらつき判定回路と半導体集積回路2の製造ばらつき判定回路のうち、半導体集積回路1の製造ばらつき判定回路を階層A1のマスタに設定する。同様に、半導体集積回路3と半導体集積回路4では半導体集積回路3の製造ばらつき判定回路を階層A2のマスタに設定し、半導体集積回路5ないし半導体集積回路7では半導体集積回路5の製造ばらつき判定回路を階層A3のマスタに設定する。
階層Bでは、階層Aのマスタである半導体集積回路1と半導体集積回路3の製造ばらつき判定回路のうち、半導体集積回路１の製造ばらつき判定回路を階層B1のマスタに設定する。
階層Cでは階層B1のマスタである半導体集積回路1の製造ばらつき判定回路と階層A3のマスタである半導体集積回路5の製造ばらつき判定回路のうち、半導体集積回路1の製造ばらつき判定回路を階層Cのマスタに設定する。
【００２７】
602.  マスタとなった製造ばらつき判定回路は下位に位置する全半導体集積回路に対して製造ばらつき調査機能を実行し、各半導体集積回路の可能動作電圧と可能動作周波数を取得する。他に、半導体体集積回路の特性・可能動作モード・可能熱量(前記の可能動作電圧と可能動作周波数から算出した発生熱量)・可能熱量における可能性能指標(可能熱量の範囲で実現可能な動作性能を示す情報)・製造ばらつき判定結果(可能電圧と可能動作周波数と動作可能なモードの関係を示す情報)(これらの情報が半導体集積回路の動作パラメータとなる)を取得する。動作パラメータは、半導体集積回路の動作可能電圧、動作可能周波数、動作モードの組み合わせに対応して複数取得される。
603.  スレーブの製造ばらつき判定回路は、自身が調査した下位の半導体集積回路の動作パラメータをマスタとなった製造ばらつき判定回路に送信する。
図１−２(ｂ)の階層A１は、半導体集積回路1の製造ばらつき判定回路がマスタに設定されている。半導体集積回路2の製造ばらつき判定回路は製造ばらつき調査機能を実行して取得した半導体集積回路2の動作パラメータをマスタである半導体集積回路1の製造ばらつき判定回路に送信する。
【００２８】
604.  マスタとなった製造ばらつき判定回路は、自身の下位に位置する半導体集積回路の動作パラメータと、スレーブの製造ばらつき判定回路から送信された他の半導体集積回路の動作パラメータから各半導体集積回路の熱量を抽出する。各半導体集積回路の熱量の合計がその階層の許容熱量の範囲内となる動作パラメータの組み合わせを決定する。
システムが複数の階層により構成されている場合、各階層のマスタとなった製造ばらつき判定回路は自身の階層で実行可能な動作パラメータの組み合わせを当該階層の候補として抽出し、1つ上の階層に送る。最上位の階層の製造ばらつき判定回路は、システムの許容熱量の範囲内でシステム全体の動作性能が最も高くなる動作パラメータの組み合わせを決定する。
当該決定プロセスの詳細は以下の［604.1.］ないし［604.6.］のとおりである。
【００２９】
604.1.  １つ下の階層の各製造ばらつき判定回路から送信された各半導体集積回路の可能熱量に含まれる、各半導体集積回路の可能熱量における可能性能指標の組み合わせを抽出する。この際、当該階層の可能熱量内であれば全ての可能性能指標の組み合わせを抽出する。
図１−２(ｂ)の階層A1の製造ばらつき判定回路は、上記［603.］で収集した半導体集積回路１と半導体集積回路2の動作パラメータから、両半導体集積回路が発生する熱量の合計が、階層A1の許容熱量内となる両半導体集積回路の動作パラメータの組み合わせを全て抽出し、階層A1の候補とする。
604.2.  可能性能指標の組み合わせの中から、全半導体集積回路の発生可能なある熱量の中で最も性能が高くなる組み合わせを選ぶ。
［604.1.］で抽出した半導体集積回路の動作パラメータの組み合わせのうち、複数の組み合わせにおいて、半導体集積回路１と半導体集積回路2の発熱の合計が同じとなる場合、動作パラメータの組み合わせにより駆動された半導体集積回路１と半導体集積回路2の動作性能を求め、最も高い動作性能が得られる動作パラメータの組み合わせを当該発熱の候補とする。
604.3.  更に上の階層の製造ばらつき階層がある場合は［600.］から［604.3.］のプロセスを繰り返す。
図１−２(ｂ)の階層A1の上には階層B1が存在する。階層B1の候補を選定するためには階層A1の候補の他、階層A2の候補が必要である。［600.］から［604.3.］のプロセスを繰り返し階層A2の候補を抽出する。階層B1は、階層A1と階層A2から送信された候補から、両階層の発熱量の合計が階層B1に許容されている熱量より小さくなるように、両階層の候補から１つずつ候補を取り出す。［604.2.］と同様、階層A1と階層A2の候補の組み合わせのうち、複数の組み合わせにおいて、両階層の発熱の合計が同じとなる場合、各候補の動作パラメータの組み合わせにより駆動された階層A1と階層A2の動作性能、即ち階層B1の動作性能を求め、最も高い動作性能が得られる動作パラメータの組み合わせを当該発熱の候補とする。
604.4.  最上位の製造ばらつき階層においてその製造ばらつき階層に含まれる各半導体集積回路及びその製造ばらつき階層の一段下の各製造ばらつき階層の発生熱量を、最上位の階層において発生可能な熱量両で最も性能が高くなる組み合わせから選ぶ。
図１−２(ｂ)の最上位の階層Cは、階層B1と階層A3から送信された候補から、両階層の発熱量の合計が階層Cに許容される熱量(システム全体に許容される熱量)より小さくなるように、階層B1と階層A3の候補から１つずつ候補を取り出し、その組み合わせを階層Cの候補とする。次に、階層Cの各候補が指定する動作パラメータに従って半導体集積回路1ないし7を駆動した時の動作性能を求める。階層Cの全ての候補の動作性能を求め、最も高い組み合わせをシステム全体の動作パラメータの組み合わせとする。
604.5.  一段ずつ判定する製造ばらつき階層を下っていきその製造ばらつき階層に含まれる各半導体及びその製造ばらつき階層の一段下の各製造ばらつき階層の発生熱量を、その階層において発生可能な熱量内で最も性能が高くなる組み合わせから選ぶ。
図１−２(ｂ)の最上位の階層Cがシステム全体の動作パラメータの組み合わせを決定すると、当該組み合わせから下位の階層B1と階層A3に許容される熱量を求め、両階層に通知する。階層B1は階層Cから通知された許容熱量の範囲内で階層B1の性能が最も高くなる階層A1と階層A2の熱配分を決定し、階層A1と階層A2に通知する。
604.6.  各半導体の発生熱量から各半導体集積回路の動作電圧・動作周波数・動作モードを決定する。
図１−２(ｂ)の階層A1ないし階層A3は、上位の階層から通知された許容熱量の範囲内で各階層の性能が最も高くなる各半導体集積回路の動作周波数、動作電圧、動作モード等の動作パラメータを決定する。
【００３０】
605.  各半導体集積回路の製造ばらつき判定回路に各半導体集積回路の動作電圧・動作周波数・動作モードを送信する。
606.  各半導体集積回路の製造ばらつき判定回路は動作電圧・動作周波数・動作モードを動作電圧変更回路・動作周波数変更回路に送信する。
607.  特定の半導体集積回路の製造ばらつき判定回路は調停回路、OSに製造ばらつき判定の結果を送信する。
調停回路は各集積回路間のプログラム・データの優先順位の調停、各集積回路間の役割の調停などを行う。調停回路の調停基準に製造ばらつき判定回路からの信号を加える。OSは製造ばらつき判定回路からの信号を制御の判定基準に加える。
【産業上の利用可能性】
【００３１】
本発明は各階層で発生可能な熱量を考慮してシステムの性能の向上を目指すものである。コンピュータシステムでは処理可能な熱の量が制限されており、これによりシステムの性能が制限される。処理可能な熱量はシステム全体の他、半導体集積回路レベル、モジュールレベル、サブシステムレベルの各階層で制限されている。各階層の発熱量は当該階層で処理可能な熱量を越えることは許されない。したがって、１つの階層に包含される構成要素が放出する熱量の合計は、当該階層が処理可能な熱量の範囲内とすることが必すの要件である。
本発明は、１つの階層で処理可能な熱量を、当該階層を構成する構成要素に配分する方法に関するものであり、システム全体の動作性能が向上するように構成要素の発熱可能量を配分するものである。当構成により、システム全体、あるいは、システムを構成するサブシステムの熱処理能力を上げるための設備の増強をすることなく、システム全体の処理能力を高めることが可能となる。
【００３２】
本発明の１つの実施態様は、複数の半導体集積回路により構成されるシステムにおいて、システム全体の動作性が高くなる様に、各半導体集積回路の発熱量を決定するものである。同態様は、半導体集積回路の動作性能は半導体集積回路の動作周波数と動作電圧により変化すること、及び、半導体集積回路の発熱量は動作周波数と動作電圧により決まることに着目し、システム全体の性能の向上に寄与する割合の高い構成要素に多くの発熱量を割り当てるものである。
本発明の実施形態は、各構成要素が動作可能なパラメータを測定する手段を有している。複数の半導体集積回路により構成されるシステムに適用した実施態様では、製造ばらつき判定回路により各半導体集積回路が動作可能な周波数と電圧を測定する構成を有している。また、動作周波数と動作電圧から各半導体集積回路の発熱量と動作性能を求め、各半導体集積回路の発熱量の合計がシステムに許容される熱量の範囲内となる各半導体集積回路の動作周波数と動作電圧の組み合わせを抽出する構成を有している。更に、抽出された動作周波数と動作電圧の組み合わせからシステム全体の処理能力が最も高くなる組み合わせ選び、各半導体集積回路を駆動する動作周波数と動作電圧とする構成を有している。
本発明は処理可能な熱量が定められている複数の階層からなるシステムに適用可能である。当構成では、各階層は自身に許容された熱量の範囲内となるように下位の階層のパラメータの組を抽出し、抽出結果を上位の階層に送る構成を有している。更に、最上位の階層はシステム全体の処理能力が最も高くなるパラメータを決定する構成を有している。当該構成により、複数階層から構成されている複雑なシステムであっても、システムに許容されている発熱を考慮した最適な動作パラメータを決定することが可能となる。
【図面の簡単な説明】
【００３３】
【図１−１】２つの半導体集積回路間で熱シェアリングを実行する図
【図１−２】階層化されたシステムにおいて本発明に係る熱シェアリング実行する図
【図２】熱シェアリングを制御する製造ばらつき判定回路と半導体集積回路の図
【図３】製造ばらつき判定回路の機能ブロック図
【図４】半導体集積回路が周波数と電圧を調査するフロー図
【図５】半導体集積回路を動作させる周波数と電圧の決定図
【図６】熱シェアリングにより周波数と電圧の決定するフロー図
【図１−１】
2009223381.tif 000003
【図１−２】
2009223381.tif 000004
【図２】
2009223381.tif 000005
【図３】
2009223381.tif 000006
【図４】
2009223381.tif 000007
【図５】
2009223381.tif 000008
【図６】
2009223381.tif 000009