(57)【特許請求の範囲】
【請求項１】
１つ以上の熱センサと、
第１の時間間隔で前記１つ以上の熱センサからの温度測定値を取得するように構成されたソフトウェア温度制御ルーチンのインストラクションを実行するプロセッサと、
前記１つ以上の熱センサに結合されて、前記１つ以上の熱センサの各出力が１つ以上の熱スレッシュホールドを越えたことを検出するように構成された熱トリップポイント回路であって、前記検出には、前記第１の時間間隔よりも短い第２の時間間隔で、前記１つ以上の熱センサから取得する温度測定値が含まれる、当該熱トリップポイント回路と、
１つ以上の熱スレッシュホールドを越えることを前記熱トリップポイント回路が指示するのに応答して装置内の１つ以上の被制御サブシステムの性能レベルを低下させるように構成された熱制御回路と、を備え、
前記プロセッサが実行するとき、前記ソフトウェア温度制御ルーチンは、前記１つ以上の熱スレッシュホールドを越えた温度測定値を取得することに反応して、前記被制御サブシステムの少なくとも１つをシャットダウンさせるインストラクションを含む、装置。
【請求項２】
前記熱制御回路は、前記１つ以上の被制御サブシステムへ送られるクロック信号の周波数を下げることにより装置内の１つ以上の被制御サブシステムの性能を低下させるように構成された、請求項１に記載の装置。
【請求項３】
前記熱制御回路は、前記１つ以上の被制御サブシステムへ送られる供給電圧を下げることにより装置内の１つ以上の被制御サブシステムの性能を低下させるように構成された、請求項１に記載の装置。
【請求項４】
前記熱制御回路は、１つ以上の熱スレッシュホールドを越えたことを前記熱トリップポイント回路が指示した後の所定の時間に、１つ以上の熱スレッシュホールドを越えたことを前記熱トリップポイント回路が指示するのに応答するように構成された、請求項１に記載の装置。
【請求項５】
前記熱制御回路は、前記１つ以上の熱センサの出力が１つ以上の熱スレッシュホールドをもはや越えないことを前記熱トリップポイント回路が指示した後の所定の時間に、前記１つ以上の被制御サブシステムの性能低下を中止するように構成された、請求項１に記載の装置。
【請求項６】
第１の時間間隔で１つ以上の熱センサから受信した各出力が１つ以上の熱スレッシュホールドを越えているかを判断するためにソフトウェア温度制御ルーチンのインストラクションをプロセッサ上で実行する処理と、
前記第１の時間間隔よりも短い第２の時間間隔で、前記１つ以上の熱センサから受け取られる各出力が前記１つ以上の熱スレッシュホールドを越えたかどうかを熱トリップポイント回路を使用して決定する処理と、
１つ以上の熱スレッシュホールドを越えたことを前記熱トリップポイント回路が指示するのに応答して集積回路の１つ以上の被制御サブシステムの性能レベルを低下させる処理であって、前記低下を熱制御回路により遂行する当該処理と、
前記ソフトウェア温度制御ルーチンにより前記１つ以上の熱スレッシュホールドを越えたかを決定することに反応して、前記集積回路の１つ以上の被制御サブシステムの少なくとも１つをシャットダウンさせることを開始する処理と、
が実行される方法。
【請求項７】
性能レベルを低下させる前記処理は、前記１つ以上の被制御サブシステムの少なくとも１つに送られるクロック信号の周波数を前記熱制御回路が下げることを含む、請求項６に記載の方法。
【請求項８】
少なくとも前記第１の時間間隔中に前記１つ以上の熱スレッシュホールドを越えたとの決定に応答して、少なくとも１つの被制御サブシステムの性能レベルを前記熱制御回路が低下させる処理を更に含む、請求項６に記載の方法。
【請求項９】
少なくとも１つの被制御サブシステムの性能レベルを低下させるのに続いて、少なくとも１つの前記熱センサからの出力が、少なくとも第３の時間間隔中に、少なくとも１つの熱スレッシュホールドより低いとの決定に応答して、前記少なくとも１つの被制御サブシステムの性能を上昇させる処理を更に含む、請求項８に記載の方法。
【請求項１０】
少なくとも１つのプロセッサコアを含む複数のファンクションユニットと、
前記複数のファンクションユニットの各１つに各々関連した複数の温度センサと、
前記温度センサから受け取られた温度の読みが１つ以上の温度スレッシュホールドのうちの少なくとも１つを越えるかどうか決定するように構成された比較回路と、
温度の読みが前記温度スレッシュホールドの少なくとも１つを越えることを前記比較回路が決定するのに応答して前記複数のファンクションユニットの１つ以上に送られるクロック周波数を下げるように構成された制御回路とを備え、
前記少なくとも１つのプロセッサコアは、温度制御ルーチンのインストラクションを実行するように構成され、その温度制御ルーチンは、前記少なくとも１つのプロセッサコアにより実行されたとき、前記複数の温度センサからの温度の読みを監視し、そしてその監視された温度の読みが前記温度スレッシュホールドの少なくとも１つを越えたとの決定に応答して前記複数のファンクションユニットの少なくとも１つをシャットダウンするインストラクションを含み、
前記プロセッサコアは、モニタされた温度の読みを１つ以上の温度センサと第１の周期で比較するために前記温度制御ルーチンのインストラクションを実行するように構成され、そして前記比較回路は、複数の温度センサからの温度の読みを、前記第１の周期より短い第２の周期で１つ以上の温度スレッシュホールドと比較するように構成されていることを特徴とする集積回路。
【請求項１１】
前記制御回路は、前記複数の温度センサからの少なくとも１つの温度の読みが第１のスレッシュホールドを越えるとの決定に応答して前記クロック周波数を第１の量だけ下げるように構成され、そして更に、
前記複数の温度センサからの少なくとも１つの温度の読みが第２の温度スレッシュホールドを越えるとの決定に応答して前記クロック周波数を第２の量だけ下げるように構成され、前記第２の温度スレッシュホールドは、前記第１のスレッシュホールドより大きいことを特徴とする、請求項１０に記載の集積回路。
【請求項１２】
前記温度制御ルーチンは、プロセッサにより実行されたときに、対応する温度の読みが前記第２の温度スレッシュホールドを越えるとの決定に応答して前記複数のファンクションユニットの少なくとも１つをシャットダウンするインストラクションを含む、請求項１１に記載の集積回路。
【請求項１３】
前記制御回路は、前記第１及び第２の温度センサからの温度の読みが所定の期間中前記第１のスレッシュホールドより低いことを前記比較回路が決定した後に前記クロック信号の周波数を上げるように構成される、請求項１１に記載の集積回路。
【請求項１４】
集積回路に実装されたプロセッサでソフトウェア温度制御ルーチンのインストラクションを実行する処理であって、前記実行は、第１の時間巾の間隔で少なくとも１つの熱センサから温度の読みを取得することを含むものである当該処理と、
前記第１の時間巾より短い第２の時間巾の間隔で前記少なくとも１つの熱センサからの温度の読みを温度比較回路が取得する処理と、
１つ以上の温度スレッシュホールドのうちの１つを越える温度の読みを前記温度比較回路が取得するのに応答して前記集積回路の１つ以上のファンクションユニットの性能メトリックを温度制御回路が低下させる処理と、
前記１つ以上の温度スレッシュホールドのうちの１つを越える温度の読みを取得するのに応答して前記１つ以上のファンクションユニットの少なくとも１つをシャットダウンする前記ソフトウェア温度制御ルーチンのインストラクションを前記プロセッサが実行する処理と、
が実行される方法。
【請求項１５】
前記温度の読みが第１の温度スレッシュホールドを越えるのに応答して前記１つ以上のファンクションユニットの少なくとも１つをシャットダウンするインストラクションを前記プロセッサが実行する処理と、
前記第１の温度スレッシュホールドより低い第２の温度スレッシュホールドを越える温度の読みを前記温度比較回路が取得するのに応答して前記集積回路の１つ以上のファンクションユニットの性能メトリックを前記温度制御回路が低下させる処理と、
を更に含む、請求項１４に記載の方法。
【請求項１６】
前記第２の温度スレッシュホールドを越える温度の読みを前記温度比較回路が取得するのに応答して前記１つ以上のファンクションユニットへ送られるクロック信号の周波数を第１の量だけ前記温度制御回路が下げる処理を更に含む、請求項１５に記載の方法。
【請求項１７】
前記第１の温度スレッシュホールドを越える温度の読みを前記温度比較回路が取得するのに応答して前記クロック信号の周波数を第２の量だけ前記温度制御回路が下げる処理を更に含む、請求項１６に記載の方法。
【請求項１８】
第１の所定時間中１つ以上の温度スレッシュホールドのうちの１つを越える温度の読みを前記温度比較回路が取得するのに応答して前記集積回路の１つ以上のファンクションユニットの性能メトリックを前記温度制御回路が低下させる処理と、
第２の所定時間中１つ以上の温度スレッシュホールドのうちの１つより低い温度の読みを前記温度比較回路が取得するのに応答して前記集積回路の１つ以上のファンクションユニットの性能メトリックを前記温度制御回路が上昇させる処理と、
を更に含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子システムに関するもので、より特定すれば、電子システムの熱制御に関する。
【背景技術】
【０００２】
トランジスタで具現化される集積回路（ＩＣ）の数が増加するにつれて、温度に関する問題の管理が重要性を高めている。多くのＩＣでは、多数のトランジスタが同時に動作するために、著しい量の熱が発生する。チェックしないままにすると、ＩＣのトランジスタの動作により発生する熱の量で動作エラー又は永久的なダメージが生じる。
【０００３】
多数の異なる形式のＩＣにおいて温度センサが具現化される。１つ以上の温度センサがＩＣダイに配置され、そして各位置の温度を決定するように使用される。温度センサは、温度を測定し、そして１つ以上のレジスタのような他の回路に温度情報を報告する。種々の形式のプロセッサ及びシステムオンチップ（ＳＯＣ）のような幾つかのＩＣでは、レジスタを監視するソフトウェアが実行される。温度が規定スレッシュホールドを越えることが検出されると、そのソフトウェアは、ＩＣの１つ以上の部分をシャットダウンするアクションを開始する。
【発明の概要】
【０００４】
熱制御方法及び装置の種々の実施形態が開示される。１つの実施形態において、集積回路は、１つ以上の熱センサ、比較回路及び制御回路を備えている。比較回路は、１つ以上の熱センサから温度の読みを受け取るように構成される。制御回路は、１つ以上の熱センサからの少なくとも１つの温度の読みが１つ以上のスレッシュホールド値の１つを越えたことを比較回路が決定するのに応答して、１つ以上の被制御サブシステムの性能レベルを下げるように構成される。
【０００５】
１つの実施形態において、比較回路及び制御回路は、プロセッサにおいて実行されるソフトウェア温度制御ルーチンとパラレルに動作する。従って、システムは、ハードウェア及びソフトウェアの両熱監視及び制御メカニズムを備えている。ハードウェアメカニズム（例えば、比較回路を含む）は、ソフトウェアメカニズムより頻繁に、１つ以上の温度センサから受け取った温度の読みを監視する。温度の読みが温度スレッシュホールドを越えることをハードウェアメカニズムが決定した場合は、ハードウェアメカニズムは、少なくともＩＣの対応ファンクションユニットに対する性能レベルの対応的低下を生じさせる。この性能レベルの低下は、報告センサの温度を、ソフトウェアメカニズムによりチェックされる前の温度スレッシュホールドより低く下げられるようにする。
【０００６】
１つの実施形態において、複数の温度スレッシュホールドが使用される。例えば、制御ユニットは、対応する温度値が第１のスレッシュホールドを越えたとの決定に応答して第１の量だけ、或いは対応する温度値が第２のスレッシュホールドを越えたとの決定に応答して第２の量だけ、被制御サブシステムの性能を低下させる。第２のスレッシュホールドは、第１のスレッシュホールドより大きい。ソフトウェアメカニズムは、対応する温度の読みが第２のスレッシュホールドを越える場合には被制御サブシステム（及びある実施形態では集積回路の他の部分）をシャットダウンする。ある実施形態では、ソフトウェアメカニズムは、温度の読みが第１のスレッシュホールドを越えると決定した際に何のアクションも取らない。従って、ハードウェアメカニズムは、完全なシャットダウンを行う必要なく、集積回路の種々のサブシステムの温度を安全な範囲内に維持する機会が許される。ソフトウェアメカニズムは、ハードウェアメカニズムが各温度を安全範囲内にもはや維持できなくなった後にのみ１つ以上の被制御サブシステムのシャットダウンを遂行する。
【０００７】
ハードウェアメカニズムの異なる実施形態において種々の形式の性能低下が制御回路により遂行される。例えば、１つの実施形態では、被制御サブシステムへ送られるクロック信号の周波数は、温度の読みがスレッシュホールドを越えるのに応答して下げられる。他の形式の性能低下は、動作電圧の降下、帯域巾制限、別のシステムへのワークロードの再割り当て（例えば、あるプロセッサコアから別のプロセッサコアへの）、等を含む。
【０００８】
以下、添付図面を参照して、本発明を詳細に説明する。
【図面の簡単な説明】
【０００９】
【図１】集積回路の１つの実施形態のブロック図である。
【図２】ハードウェアベースの熱制御装置の１つの実施形態のブロック図である。
【図３Ａ】ハードウェアベースの熱制御装置の１つの実施形態の動作におけるヒステリシスを示すタイミング図である。
【図３Ｂ】ハードウェアベースの熱制御装置の１つの実施形態の動作におけるヒステリシスを示すタイミング図である。
【図４】ハードウェアベースの熱制御メカニズムの１つの実施形態と、ソフトウェアベースの熱制御メカニズムの１つの実施形態との合成動作を示すフローチャートである。
【図５】システムの１つの実施形態のブロック図である。
【発明を実施するための形態】
【００１０】
本発明は、種々の変更を受けそして別の形態でも実施できるが、その特定の実施形態を一例として添付図面に示して以下に詳細に説明する。しかしながら、添付図面及び詳細な説明は、本発明を、ここに開示する特定の形態に限定するものではなく、本発明は、特許請求の範囲に規定される本発明の精神及び範囲内に入る全ての変更、等効物及び代替え物を網羅することを理解されたい。ここに使用する見出しは、編成上の目的に過ぎず、説明の範囲を限定するためのものではない。又、本出願全体にわたって使用される「〜してもよい(may)」という語は、許すという意味（即ち、〜の潜在性があるという意味）で使用されるもので、強制の意味（即ち、〜しなければならないという意味）ではない。同様に、「含む(include)」、「含んでいる(including)」及び「含む(includes)」という語は、含むことを意味するが、それに限定されない。
【００１１】
種々のユニット、回路又は他のコンポーネントは、１つ又は複数のタスクを遂行するように「構成される」ものとして述べる。この点について、「構成される」とは、動作中に１つ又は複数のタスクを遂行する「回路を有する」ことを一般的に意味する構造を広く表現するものである。従って、ユニット／回路／コンポーネントは、そのユニット／回路／コンポーネントが現在オンでなくても、タスクを遂行するように構成することができる。一般的に、「構成される」に対応する構造を形成する回路は、ハードウェア回路、及び／又は動作を具現化するために実行できるプログラムインストラクションを記憶するメモリを含む。メモリは、スタティック又はダイナミックランダムアクセスメモリのような揮発性メモリ、及び／又は光学的又は磁気的ディスク記憶装置、フラッシュメモリ、プログラム可能なリードオンリメモリ、等の不揮発性メモリを含む。同様に、種々のユニット／回路／コンポーネントは、説明の便宜上、１つ又は複数のタスクを遂行するものとして説明されてもよい。そのような説明は、「構成される」という句を含むものと解釈されねばならない。１つ以上のタスクを遂行するように構成されたユニット／回路／コンポーネントを表現する場合に、そのユニット／回路／コンポーネントに関して３５Ｕ.Ｓ.Ｃ.§１１２、第６節の解釈を引用しないことが明確に意図される。
【００１２】
図１は、集積回路（ＩＣ）の１つの実施形態のブロック図である。図示された実施形態において、ＩＣ１０は、プロセッサコア１２、１４、グラフィックユニット１６、及びオンチップメモリ１８を含むシステムオンチップ（ＳｏＣ）である。図示された実施形態のメモリ１８は、リードオンリメモリ（ＲＯＭ）、フラッシュメモリ、ランダムアクセスメモリ、又は他の適当なメモリ形式である。又、ＩＣ１０は、動作中にその温度を監視及び調整するための種々の熱制御メカニズムも備えている。この実施例では、プロセッサコア１２、１４及びグラフィックユニット１６は、各々、温度センサ１１を含む。各温度センサ１１は、各熱センサから受け取られた温度の読みを１つ以上のスレッシュホールド値と比較するように構成されたトリップポイント回路１３に結合される。又、ＩＣ１０は、トリップポイント回路１３からの比較情報を受け取るように結合された熱制御回路１５も備えている。この特定の実施形態では、熱制御回路１５は、各受信クロック信号の周波数を変化させることによりＩＣ１０の種々のファンクションユニット（又はサブシステム）の性能レベルを調整する。又、熱制御ユニット１５が他の制御アクションを遂行して各性能レベルを調整するような実施形態も考えられ意図される。そのようなアクションは、電圧の調整、帯域巾の調整、ワークロードの割り当て／再割り当て、等を含むが、それに限定されない。
【００１３】
トリップポイント回路１３及び熱制御回路１５は、ハードウェアベースの熱制御メカニズムを含む。即ち、図示された実施形態におけるハードウェアベースの熱制御メカニズムは、ＩＣ１０のハードウェア回路を使用して具現化される。又、この実施形態のＩＣ１０は、ハードウェアベースの熱制御メカニズムと相補的であって且つそれとパラレルに動作するソフトウェアベースの熱制御メカニズムを具現化するようにも構成される。より詳細には、この実施形態では、ソフトウェアベースの熱制御メカニズム（ＳＷＴＣＭ）１９を具現化するためのインストラクションは、メモリ１８に記憶される。ＳＷＴＣＭ１９のインストラクションは、プロセッサコア１２によりアクセスされ、このプロセッサコアは、それらインストラクションを実行してソフトウェアベースの熱制御ルーチンを実施する。ＳＷＴＣＭ１９のインストラクションの実行中に、プロセッサコア１２は、トリップポイント回路１３からの温度比較結果にアクセスし、そしてそれに基づいて熱制御アクションを行う。
【００１４】
上述したように、トリップポイント回路１３は、受け取った温度の読みを、１つ以上の温度スレッシュホールドと比較する。それらのスレッシュホールドは、プログラム可能であってもよいし、トリップポイント回路１３へ固定布線されてもよい。いずれにせよ、熱制御回路１５への比較結果の報告は、所定の間隔で遂行される。ハードウェアベースの熱制御メカニズムの動作と同時に、プロセッサ１２により実行されるＳＷＴＣＭ１９のインストラクションにより、それ自身の所定の間隔でトリップポイント回路１３から比較結果にアクセスする。図示された実施形態では、トリップポイント回路１３が比較結果を熱制御回路１５に報告する間隔は、ＳＷＴＣＭ１９がトリップポイント回路１３からの比較情報にアクセスする間隔より時間巾が短い。従って、熱制御回路１５は、プロセッサコア１２で実行されるＳＷＴＣＭ１９のインストラクションにより比較情報が受け取られるよりも頻繁に、更新された比較情報を受け取る。
【００１５】
図示された実施形態における熱制御回路１５は、３つの異なるクロック信号、ＣＰＵ  １  Ｃｌｋ、ＣＰＵ  ２  Ｃｌｋ、及びＧｒａｐｈｉｃｓ  Ｃｌｏｃｋを受け取るように結合される。それに対応する出力クロック信号Ｃｌｋ  １、Ｃｌｋ  ２及びＣｌｋ  ３が熱制御回路１５からプロセッサコア１２、プロセッサコア１４及びグラフィックユニット１６へ各々送られる。入力クロック信号は、本質的に、それらの対応する出力クロック信号に対して全周波数基準クロック信号として働く。この特定の実施形態における熱制御回路１５は、低下周波数において各出力クロック信号を発生するように入力クロック信号を分割することによりプロセッサコア１２、１４及びグラフィックユニット１６のいずれかの性能を低下させる。この実施形態では、あるユニットが低下性能モードで動作する一方、他のユニットが全（通常）性能モードで動作するように、クロック信号は、互いに独立して分割される。
【００１６】
ハードウェアベースの熱制御メカニズムは、ソフトウェアベースの熱制御メカニズムより頻繁な間隔で更新を行うので、ハードウェアベースのメカニズムは、ＩＣ１０のための微細利得熱制御ファンクションを与える。従って、上述したように、ハードウェアベースの熱制御メカニズムは、幾つかの比較結果に応答してＩＣ１０に対して種々の形式の性能調整を遂行する。例えば、温度の読みが第１の温度スレッシュホールドを越える場合は、熱制御回路１５は、報告温度センサ１１に関連したファンクションユニットの性能を第１の量だけ低下させる。温度の読みが第２の温度スレッシュホールドを越える場合には、熱制御回路は、報告温度センサ１１に関連したファンクションユニットの性能を第２の量だけ低下させる。クロック周波数の例を使用すると、熱制御回路１５は、第１の温度スレッシュホールドを越える場合には、対応するクロック信号の周波数を第１の量だけ下げ、そして第２の温度スレッシュホールドを越える場合には、対応するクロック信号の周波数を第２の量だけ下げる。この特定の例では、熱制御アクションは、報告温度センサに関連したファンクションユニットのみについて遂行される。しかしながら、温度の読みがスレッシュホールドの１つを越えるのに応答して付加的なファンクションユニットに対して性能低下を遂行する実施形態も考えられ意図される。更に、温度の読みがスレッシュホールド値の１つより下がるのに応答して、性能を、それが以前に低下されたところの値へ復帰できることにも注意されたい。
【００１７】
ハードウェア熱制御メカニズムはその動作にヒステリシスを含む。熱制御回路１５は、特定の温度センサ１１からの温度の読みの最初の指示がスレッシュホールドを越えるのに応答して１つ以上のファンクションユニットの性能レベルを直ちに低下するのではない。むしろ、熱制御回路１５は、所定の時間中待機する。所定時間の経過後に、特定の温度センサ１１からの温度の読みが依然スレッシュホールドより高い場合には、熱制御回路１５は、少なくとも対応するファンクションユニットへのクロック周波数を下げる等の熱制御アクションを遂行する。他方、所定時間が経過する前に、特定の温度センサ１１からの温度の読みがスレッシュホールドより下がった場合には、熱制御回路１５は、対応するファンクションユニットの性能レベルをその現在レベルに維持する。
【００１８】
温度が温度スレッシュホールドより下がったときに性能レベルを上げる際にもヒステリシスが使用される。図示された実施形態において、熱制御ユニット１５は、対応する温度の読みが所与のスレッシュホールドより下がった後にファンクションユニットの性能を上げるために別の所定時間を待機する。所定時間が経過しそして温度がスレッシュホールドより低く留まる場合には、熱制御回路１５は、例えば、クロック周波数を高くすることにより、対応するファンクションユニットの性能を上昇させる。他方、温度が所定時間巾の間スレッシュホールドより低く留まらない場合には、熱制御回路１５は、対応するファンクションユニットを低下性能レベルに維持する。（温度がスレッシュホールドより降下したときに）性能を上昇させ及び（温度がスレッシュホールドを越えたときに）性能を低下させるのに必要な所定の時間は、互いに異なることに注意されたい。更に、これら所定の時間は、プログラム可能である。
【００１９】
上述したように、対応するインストラクションがプロセッサコア１２において実行されるときには、ＳＷＴＣＭ１９は、ハードウェアベースの熱制御メカニズムより低い頻度の間隔で温度比較結果にアクセスする。更に、ＳＷＴＣＭ１９は、温度の読みがスレッシュホールドを越えるのに応答して異なるアクションを取ることができる。この特定の実施形態では、特定の温度センサ１１からの温度の読みが最大温度スレッシュホールドを越えるのに応答して、プロセッサコア１２は、ＳＷＴＣＭ１９のインストラクションを実行して、少なくとも対応するファンクションユニットをシャットダウンさせる。典型的に、ハードウェアベースの熱制御メカニズムは、より頻繁に更新を行うので、温度を規定範囲内に維持することがしばしば可能である。温度が最大スレッシュホールドを越えることをＳＷＴＣＭ１９により決定することは、ハードウェアベースの熱制御メカニズムが温度を規定範囲内に維持する上で不成功であったことを指示し、従って、ＩＣ１０の回路への潜在的なダメージを防止するためにシャットダウンが遂行される。シャットダウンの程度は、特定の状況に基づいて変化する。例えば、１つのファンクションユニットのみに関連した熱センサが最大スレッシュホールドより高い温度を報告する場合には、そのファンクションユニットだけがシャットダウンされる。別の例において、多数のファンクションユニットに関連した熱センサが最大スレッシュホールドを越える温度を報告する場合には、ＩＣ１０の全体がシャットダウンされる。又、図示された実施形態においてプロセッサコア１２をシャットダウンすべき場合には、プロセッサコア１４は、ＳＷＴＣＭ１９のインストラクションを実行する役割を果たすことに注意されたい。
【００２０】
最大温度スレッシュホールドに加えて、トリップポイント回路は、受け取った温度の読みを他のスレッシュホールド値と比較する。最大値より低い付加的なスレッシュホールド値を具現化することにより、ＩＣ１０及びその各々のファンクションユニットの熱出力（ひいては、温度）を範囲内に維持しながら、ＳＷＴＣＭ１９によるシャットダウンを潜在的に防止することができる。
【００２１】
図２は、ハードウェアベースの熱制御装置の１つの実施形態のブロック図である。より詳細には、図２は、トリップポイント回路１３及び熱制御回路１５の各々を１つの実施形態について詳細に示している。この規範的実施形態では、ハードウェアベースの熱制御装置は、２つの異なるファンクションユニット（このケースでは、プロセッサコア及びグラフィックユニット）に対して２つの異なるスレッシュホールドに基づき２つの温度センサ１１を監視するように構成される。しかしながら、３つ以上の温度センサ１１により報告される温度が３つ以上のファンクションユニットについて監視される実施形態（図１に示した実施形態を含む）が考えられ意図される。更に、この例では、２つの異なるスレッシュホールドに対して比較がなされるが、種々の実施形態では、３つ以上のスレッシュホールドに対する比較も考えられ意図される。単一の温度スレッシュホールドのみに対して単一の温度センサ１１のみを監視し、及び／又は単一の機能的ユニットのみを制御するように構成された実施形態も考えられ、意図される。
【００２２】
図示された実施形態において、トリップポイント回路１３は、４つの個別の比較器２１Ａ−２１Ｄを含むように結合される。各比較器は、温度センサ１１Ａ又は１１Ｂの一方から温度の読みを受け取るように結合される。又、トリップポイント回路１３は、第１及び第２の温度スレッシュホールド値を各々記憶するように構成されたスレッシュホールドレジスタ２２及び２３も含む。図示された実施形態では、温度スレッシュホールド値は、プログラム可能である。他の実施形態では、レジスタに代わって、温度スレッシュホールドを記憶する他の記憶装置を具現化することもできる。
【００２３】
図示された実施形態では、比較器２１Ａ及び２１Ｃがスレッシュホールドレジスタ２２に結合され、一方、比較器２１Ｂ及び２１Ｄがスレッシュホールドレジスタ２３に結合される。比較器２１Ａ及び２１Ｂは、温度センサ１１Ａから温度の読みを受け取るように結合され、一方、比較器２１Ｃ及び２１Ｄは、温度センサ１１Ｂから温度の読みを受け取るように結合される。図示された実施形態における比較器２１Ａ及び２１Ｃは、温度の読みを、スレッシュホールドレジスタ２２に記憶された温度スレッシュホールド値と比較するように構成される。同様に、図示された実施形態における比較器２１Ｂ及び２１Ｄは、温度の読みを、スレッシュホールドレジスタ２３に記憶された温度スレッシュホールド値と比較するように構成される。
【００２４】
図示された実施形態におけるＯＲゲート２７Ａは、比較器２１Ｂ及び２１Ｄからの比較結果を受け取るように結合される。比較器２１Ｂ又は２１Ｄのいずれかからの比較結果が、対応的に受け取られた温度の読みがスレッシュホールドレジスタ２３に記憶された温度スレッシュホールドより高いことを指示する場合には、ＯＲゲート２７Ａが論理１を出力する。さもなければ、比較器２１Ｂ又は２１Ｄのいずれも、各々受け取られた温度の読みがスレッシュホールドレジスタ２３に記憶された温度スレッシュホールドを越えることを指示しない場合には、ＯＲゲート２７Ｂが論理０を出力する。図示された実施形態におけるＯＲゲート２７Ｂは、比較器２１Ａ及び２１Ｃから比較結果を受け取るように結合される。比較器２１Ａ又は２１Ｃのいずれかが、受け取られた温度の読みがスレッシュホールドレジスタ２２に記憶された温度スレッシュホールドを越えることを指示する場合には、ＯＲゲート２７Ａが論理１を出力する。比較器２１Ａ又は２１Ｃのいずも、受け取られた温度の読みがスレッシュホールドレジスタ２２に記憶された温度スレッシュホールドを越えることを指示しない場合には、ＯＲゲート２７Ａが論理０を出力する。
【００２５】
図示された実施形態におけるカウンタ／セレクタ２４Ａは、ＯＲゲート２７Ａの出力に結合される。同様に、カウンタ／セレクタ２４Ｂは、ＯＲゲート２７Ｂの出力に結合される。図示された実施形態におけるカウンタ／セレクタの各々は、各々結合されたＯＲゲートの出力の遷移に応答してカウントを開始する。更に、各カウンタ／セレクタは、所与のファンクションユニットに対して性能レベルをセットするのに使用される選択コードも発生する。図２には明確に示されていないが、各カウンタ／セレクタは、温度センサ１１Ａ及び／又は１１Ｂのどちらが温度スレッシュホールド値の１つを越える温度を報告するか決定するために比較器２１Ａ−２１Ｄの各々から情報を受け取るようにも接続される。これは、次いで、熱制御回路１５が、対応的に結合されたファンクションユニットの各性能レベルを互いに独立して制御できるようにする。
【００２６】
図示された実施形態では、カウンタ／セレクタユニット２４Ａは、受け取った温度の読みと、スレッシュホールドレジスタ２３に記憶された温度スレッシュホールドとの比較に基づいて動作するように構成される。ＯＲゲート２７Ａの出力の状態変化に応答して（例えば、一方又は両方の比較器がスレッシュホールドレジスタ２３に記憶されたスレッシュホールドを越える温度の読みを指示することにより）、カウンタ／セレクタ２４Ａは、カウントを開始する。カウントは、所定のカウント値に到達するまで、又はＯＲゲート２７Ａの出力が状態を再び変化するまで、のどちらかが先に生じるまで、続けられる。所定のカウント値は、所定の時間に対応する。従って、所定のカウントに到達すると、カウンタ／セレクタ２４Ａは、１つ以上のファンクションユニットの性能レベルに変化を生じさせるために出力コードを変化させる。ＯＲゲート２７Ａの出力が再び状態を変化する前に、所定のカウントに到達しない場合には、カウンタ／セレクタ２４Ａは、その現在出力コード（１つ又は複数）を維持し、それにより、ＩＣ１０のファンクションユニットは、それらの現在の性能レベルを維持することができる。カウンタ／セレクタ２４Ｂは、ＯＲゲート２７Ｂに対して同様に動作する。性能レベルを変化させることは、性能レベルを低下すること（例えば、各々の受信クロック信号の周波数を下げることにより）又は性能レベルを上昇すること（例えば、各々の受信クロック信号の周波数を上げることにより）を含む。性能レベルの低下は、温度の読みがスレッシュホールド値の１つを越えたとの決定に応答して行われる。性能レベルの上昇は、温度の読みが先に越えた温度スレッシュホールド値より下がったとの決定に応答して行われる。
【００２７】
カウンタ／セレクタ２４Ａ及び２４Ｂにより与えられる出力コードは、マルチプレクサ３１Ａ及び３１Ｂにより選択入力に受け取られる。１つの実施形態では、マルチプレクサ３１Ａ及び３１Ｂは、独立して制御される。他の実施形態では、マルチプレクサ３１Ａ及び３１Ｂは、互いに関連して動作する。マルチプレクサ３１Ａ及び３１Ｂの各々は、入力として除数値を受け取るように結合される。マルチプレクサ３１Ａにより選択された除数値は、クロック除算器３２Ａにより受け取られ、一方、マルチプレクサ３１Ｂにより選択された除数値は、クロック除算器３２Ｂにより受け取られる。図示された実施形態におけるマルチプレクサ３１Ａ及び３１Ｂの各々は、３つの除数入力：全周波数（即ち、１で除算）、除数１、及び除数２、を受け取るように結合される。後者の２つの除数は、除算器３２Ａ及び３２Ｂの受信する一方がその各々の受信入力クロック信号を除算して、低い周波数をもつ出力クロック信号を発生するようにさせる。例えば、除数１＝２の場合には、除算器３２Ａにより受け取られたときに、Ｃｌｋ  １出力信号は、入力クロック信号ＣＰＵ  Ｃｌｋ  １の半分の周波数を有する。
【００２８】
従って、この特定例における熱制御回路１５は、送られるクロック信号の周波数を制御することによりプロセッサコア及びグラフィックユニットの性能レベルを制御する。全周波数から除数１への切り換えは、クロック信号の除算される方の周波数を第１の量だけ下げる。除数２への切り換えは、除算されるクリック信号の周波数を第２の量だけ下げる。除算器３２Ａ及び３２Ｂにより受け取られる除数を変化させることで、ＩＣ１０のファンクションユニットのクロック周波数及びそれに対応する性能レベルを、受け取った温度の読みに従って制御することができる。図示された実施形態では、性能レベルがクロック周波数を経て制御されるが、異なる方法を使用して性能レベルを制御する実施形態も考えられ意図されることに注意されたい。例えば、種々の実施形態において、性能を制御するために供給電圧、ワークロード、帯域巾及び他のパラメータを変更してもよい。更に、受け取った温度の読みに従って性能を制御するために複数のパラメータを調整する実施形態も考えられ、意図される。
【００２９】
図３Ａ及び３Ｂは、ハードウェアベースの熱制御装置の一実施形態の動作におけるヒステリシスを示すタイミング図である。これらの例は、単一のスレッシュホールド及び２つの性能レベルのみについて示されたものであるが、上述したように、複数のスレッシュホールド及び複数の性能レベルについての実施形態も考えられ意図されることに注意されたい。
【００３０】
図３Ａは、温度の読みが温度スレッシュホールドに交差するのに応答して性能レベルを変化する際のヒステリシスを示す。図３Ａに示す例は、受け取った温度がスレッシュホールド値より低いことで始まる。（Ａ）において、温度レベルがスレッシュホールドを越えたことが決定される。その後の時間Ｔ１中に、性能がその現在レベルに維持される。Ｔ１が経過したときに（例えば、図２を参照して上述したカウンタ／セレクタにより指示される）、温度は、スレッシュホールドより高いままであり、ファンクションユニットの性能がその通常レベルから低下レベルへ降下される。
【００３１】
（Ｂ）において、温度が再びスレッシュホールドレベルより下がる。その後の時間Ｔ２中に、ファンクションユニットの性能レベルが低下レベルに保持される。Ｔ２が経過したとき、温度がスレッシュホールドより低いままであり、従って、ファンクションユニットの性能レベルがその通常レベルへ回復される。この特定の実施形態では、時間Ｔ１及びＴ２が異なる。しかしながら、これらの値が同じである実施形態も考えられる。更に、ある実施形態では、これらの値がプログラム可能である。
【００３２】
図３Ｂにおいて、温度は、再び、スレッシュホールドより低いレベルで始まる。（Ｃ）において、温度は、スレッシュホールドより上であることが決定される。次いで、カウンタが時を打つためのカウントを開始する。しかしながら、この場合では、時間Ｔ１が経過する前に温度がスレッシュホールドより低く下がる。Ｔ１が経過した後、もはやスレッシュホールドを越えないので、性能レベルが維持される。
【００３３】
ハードウェアベースの熱制御メカニズムにヒステリシスを使用することにより、熱制御と性能との間のバランスが達成される。より詳細には、ハードウェアベースの熱制御メカニズムの動作にヒステリシスを追加することは、スレッシュホールドを越えるか又はそれより下がる一時的な温度変化に対して性能レベルを変化させることを防止しながら、性能レベルの変化が望ましいかどうか決定するに充分な時間を許す上で有用である。
【００３４】
図４は、ハードウェアベースの熱制御メカニズムの１つの実施形態と、ソフトウェアベースの熱制御メカニズムの１つの実施形態との合成動作を示すフローチャートである。図示された実施形態における方法４００は、上述したハードウェア及びソフトウェア実施形態の種々の組み合わせを使用して遂行されてもよいし、又はここでは明確に述べなかった他の実施形態を使用して具現化されてもよい。ここに述べる方法は、単一の温度センサに向けられた。しかしながら、上述したように、この方法は、ハードウェア及びソフトウェアベースの両熱制御メカニズムで多数のセンサに対して同時に遂行されてもよい。
【００３５】
方法４００は、ＩＣ上又はシステム内の温度センサから受け取られる温度の読みを監視することで始まる（ブロック４０５）。監視は、ハードウェアベースの熱制御メカニズム及びソフトウェアベースの熱制御メカニズムの両方により同時に遂行される。ハードウェアベースの熱制御メカニズムは、第１の長さの間隔で温度を監視し、一方、ソフトウェアベースの熱制御メカニズムは、第２の長さの間隔で温度を監視する。ハードウェアベースの熱制御メカニズムは、ソフトウェアベースの熱制御メカニズムより頻繁に温度の読みを監視する。
【００３６】
温度センサからの温度の読みを監視する間に、温度の読みと第１の温度スレッシュホールドとの比較が遂行される。温度の読みが第１のスレッシュホールドを越えない場合には（ブロック４３５、ノー）、それに対応するファンクションユニット又は他の被制御システムの動作が通常（例えば、全）性能レベルに維持される。温度の読みが第１の温度スレッシュホールドを越えるが（ブロック４１０、イエス）、第２の温度スレッシュホールドを越えない（ブロック４１５、ノー）場合には、ファンクションユニットの性能が第１の低下レベルにセットされる（ブロック４２０）。１つの実施形態では、第１の低下レベルを作用させることは、通常動作モード中にクロック信号の周波数を全周波数に対して下げることを含む。２つ以上の動作パラメータを変化させるものを含めて、ファンクションユニットの性能を低下させる他の方法も考えられ意図される。
【００３７】
上述したように、温度の読みの監視は、ハードウェア及びソフトウェアベースの熱制御メカニズムの両方により遂行される。この実施形態では、ソフトウェアベースの熱制御メカニズムは、温度の読みと第１のスレッシュホールドとの比較を無視し、むしろ、温度の読みと第２のスレッシュホールドとの比較に注目する。この実施形態では、第２のスレッシュホールドは、第１のスレッシュホールドより大きい。従って、比較により温度の読みが第２のスレッシュホールドより大きいことが決定された場合には（ブロック４１５、イエス）、その後に行われるアクションは、比較情報がハードウェアベースの熱制御メカニズムにより使用されるか又はソフトウェアベースの熱制御メカニズムにより行われるかに依存する。ハードウェアベースの熱制御メカニズムが、温度の読みが第２のスレッシュホールドを越えると決定したときには（ブロック４２５、ＨＷ）、ファンクションユニットの性能は、第２の低下レベルにセットされる。
【００３８】
ソフトウェアベースの熱制御メカニズムが、温度の読みが第２のスレッシュホールドを越えると決定したときには（ブロック４２５、ＳＷ）、（ＩＣ／システムそれ自体でなくても）少なくともファンクションユニットがシャットダウンされる（ブロック４４０）。ハードウェアベースの熱制御メカニズムは、ソフトウェアベースの熱制御メカニズムより頻繁に温度の読みを温度スレッシュホールドに対して監視するので、後者によって読みが第２のスレッシュホールドを越えるとの決定は、ハードウェアメカニズムが機能的ユニット（又は全体としてＩＣ／システム）の温度を制御下にもっていけないことを指示する。従って、システムへのダメージのおそれを防止するためにシャットダウンが遂行される。更に、ハードウェアベースのメカニズムは、ソフトウェアベースの熱制御メカニズムより頻繁に温度の読みを温度スレッシュホールドに対して監視するので、温度の読みが第２のスレッシュホールドを越える見込みは、そのような結果がソフトウェアベースのメカニズムにより検出される見込みと同様に、低下する。
【００３９】
低下性能レベルの１つで動作するとき、ハードウェアベースのメカニズムは、ブロック４０５において、スレッシュホールドに対する温度の読みを監視し続ける。第２の低下性能レベルで動作するときには、温度の読みが第２のスレッシュホールドより低いと検出された結果、最終的に、ハードウェアベースのメカニズムは、性能レベルを第１の低下性能レベルへ上昇させて戻す。その後の温度の読みが、温度が第１のスレッシュホールドより降下したことを指示する場合に、ハードウェアベースのメカニズムは、更に、性能レベルを通常の性能レベルへ上昇させて戻す。性能レベルの低下及び上昇の両方において、温度上昇又は低下の傾向の一部分ではない一時的な温度変化により性能レベルが低下又は上昇されないようにヒステリシスが使用される。これは、次いで、温度変化の全体的な傾向に基づき性能レベルの長期最適化を許す。
【００４０】
図５は、システム１５０の１つの実施形態のブロック図である。図示された実施形態において、システム１５０は、１つ以上の周辺装置１５４及び外部メモリ１５８に結合されたＩＣ５（例えば、図１のプロセッサ１０を具現化する）の少なくとも１つのインスタンスを含む。ＩＣ１０に供給電圧を、そしてメモリ１５８及び／又は周辺装置１５４に１つ以上の供給電圧を供給する電源１５６も設けられる。ある実施形態では、ＩＣ１０の２つ以上のインスタンスも含まれる（及び２つ以上の外部メモリ１５８も含まれる）。
【００４１】
周辺装置１５４は、システム１５０の形式に基づき望ましい回路を含む。例えば、１つの実施形態では、システム１５０は、移動装置（例えば、パーソナルデジタルアシスタント（ＰＤＡ）、スマートホン、等）、であり、そして周辺装置１５４は、ｗｉｆｉ、Ｂｌｕｅｔｏｏｔｈ、セルラー、グローバルポジショニングシステム、等の種々の形式のワイヤレス通信のための装置を含む。又、周辺装置１５４は、ＲＡＭ記憶装置、ソリッドステート記憶装置、又はディスク記憶装置を含めて、付加的な記憶装置も含む。周辺装置１５４は、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又は他の入力装置、マイクロホン、スピーカ、等のユーザインターフェイス装置を含む。他の実施形態では、システム１００は、任意の形式のコンピューティングシステムである（例えば、デスクトップパーソナルコンピュータ、ラップトップ、ワークステーション、ネットトップ、等）。
【００４２】
外部メモリ１５８は、任意の形式のメモリを含む。例えば、外部メモリ１５８は、ＳＲＡＭ、ダイナミックＲＡＭ（ＤＲＡＭ）、例えば、同期ＤＲＡＭ（ＳＤＲＡＭ）、倍データレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３、ＬＰＤＤＲ１、ＬＰＤＤＲ２、等）ＳＤＲＡＭ、ＲＡＭＢＵＳ  ＤＲＡＭ、等である。又、外部メモリ１５８は、メモリ装置がマウントされる１つ以上のメモリモジュール、例えば、インラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）、等を含む。
【００４３】
当業者であれば、前記開示を完全に理解すれば、多数の変更や修正が明らかとなろう。そのような変更や修正は、全て、特許請求の範囲に包含されることが意図される。
【符号の説明】
【００４４】
１０：集積回路（ＩＣ）
１１：温度センサ
１２、１４：プロセッサコア
１３：トリップポイント回路
１５：熱制御回路
１６：グラフィックユニット
１８：オンチップメモリ
１９：ソフトウェアベースの熱制御メカニズム（ＳＷＴＣＭ）
２１：比較器
２２、２３：スレッシュホールドレジスタ
２４：カウンタ／セレクタ
２７：ＯＲゲート
３１：マルチプレクサ
３２：クロック除算器
１５４：周辺装置
１５６：電源
１５８：外部メモリ
【図１】
0005638110.tif 000002
【図２】
0005638110.tif 000003
【図３Ａ】
0005638110.tif 000004
【図３Ｂ】
0005638110.tif 000005
【図４】
0005638110.tif 000006
【図５】
0005638110.tif 000007