JP2016162378A - プロセッサおよびその制御方法 - Google Patents

プロセッサおよびその制御方法 Download PDF

Info

Publication number
JP2016162378A
JP2016162378A JP2015043041A JP2015043041A JP2016162378A JP 2016162378 A JP2016162378 A JP 2016162378A JP 2015043041 A JP2015043041 A JP 2015043041A JP 2015043041 A JP2015043041 A JP 2015043041A JP 2016162378 A JP2016162378 A JP 2016162378A
Authority
JP
Japan
Prior art keywords
temperature
unit
instruction
instructions
value
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.)
Granted
Application number
JP2015043041A
Other languages
English (en)
Other versions
JP6477032B2 (ja
Inventor
聡 中里
Satoshi Nakazato
聡 中里
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2015043041A priority Critical patent/JP6477032B2/ja
Publication of JP2016162378A publication Critical patent/JP2016162378A/ja
Application granted granted Critical
Publication of JP6477032B2 publication Critical patent/JP6477032B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Abstract

【課題】動作環境によらずに温度に応じた的確な制御を行うことが可能なプロセッサを得る。
【解決手段】プロセッサを、カウント手段1と、温度計測手段2と、第1の記憶手段3と、第2に記憶手段4と、制御手段5を備える構成とする。カウント手段1は、所定の時間内に実行された命令数を実行命令数としてカウントする。温度計測手段2は、命令を実行する所定のユニット付近の温度を計測する。第1の記憶手段3は、あらかじめ設定された第1の温度を所定のユニット付近の温度が超えたときの実行命令数を第1の命令数として記憶する。第2の記憶手段4は、あらかじめ設定され、第1の温度よりも高い第2の温度を所定のユニット付近の温度が超えたときの実行命令数を第2の命令数として記憶する。制御手段5は、所定の時間に実行する命令の数が第2の命令数より小さく、第1の命令数より大きくなるように命令の実行を制御する。
【選択図】 図1

Description

本発明は、特に半導体プロセッサに関するものであり、特に半導体プロセッサの命令実行制御に関するものである。
情報処理装置や通信端末装置等の高性能化にともない使用されるプロセッサの高性能化が進んでいる。高性能化にともないプロセッサは高クロックで動作するため、消費電力や発熱量も増大する傾向にある。また、情報処理装置等の用途の多様化によってプロセッサは様々な環境での動作が要求されるようになっている。情報処理装置等の重要性が増していることから、様々な環境で使われた場合においても高可用性が求められている。そのため、プロセッサには、様々な環境下で使用された際にも性能の維持と安定動作の両立が求められることが多い。
モバイル用途のプロセッサでは消費電力を抑制して稼働時間を長くするために、例えば、DVFS(Dynamic Voltage and Frequency Scaling)制御技術が用いられる。DVFS技術では、プロセッサの動作負荷が高い場合には、通常の動作周波数および動作電圧で稼働し、動作負荷が低い場合には動作周波数や動作電圧を下げることにより消費電力等を抑制しつつ、必要な性能が維持される。
また、複数のプロセッサを備えるサーバのような情報処理装置では、動作負荷の軽いプロセッサの動作を抑制して、他のプロセッサの動作周波数を上げて性能を高くする技術が用いられることもある。このような動作を行うことで、消費電力の増大や装置内の発熱を抑制しつつ性能を高くすることが可能となる。
プロセッサには、冷却機能が備えられていることが多いが、動作負荷が高くなったときに冷却能力を超えて温度が上昇する可能性がある。温度上昇は、半導体素子の特性変化による動作不良や、半導体素子や配線の信頼性および寿命の低下をもたらす。そのため、温度上昇を抑制するために、プロセッサの温度を監視して動作状態を制御する技術の開発が行われている。そのような動作状態を制御する方法としては、例えば、温度上昇時に、クロック数を抑制した状態で稼動する方法が用いられる。プロセッサの温度を監視して動作状態を制御する技術としては、例えば、特許文献1のような技術が開示されている。
特許文献1は、温度制御部を備えた処理装置に関するものである。特許文献1の処理装置は、温度測定部と、温度ごとに実行可能な命令数を設定したデータデーブルを備えている。特許文献1の温度ごとのデータテーブルは、クロック数、命令実行が可能な時間および実行可能な命令数の情報を有している。特許文献1の処理装置の制御部は、温度測定結果に応じたデータテーブルを参照して、実行を予定している命令数等を基に命令を実行する際のクロック数を判断している。特許文献1の処理装置の制御部は、命令を実行する際に判断したクロック数で命令が実行されるように制御を行う。特許文献1では、データテーブルと温度測定結果を基にクロック数を判断することで、温度上昇を抑制しつつ必要な処理能力を確保して出来るだけ高速な命令実行が可能になるとしている。
特開2011−138217号公報
しかしながら、特許文献1の技術は次のような点で十分ではない。特許文献1の処理装置は、あらかじめ設定されたデータテーブルを参照して命令実行可能なクロック数を予測して命令の実行の制御を行っている。そのため、特許文献1の処理装置は、処理装置が備えられている情報処理装置等の使用環境が変わって、温度特性に変化が生じた場合などに正確なクロック数を予測できない可能性がある。また、特許文献1の処理装置は、処理装置として用いている半導体プロセッサの特性が変動した場合や、装置構成が変更された場合などに、温度変化の特性が変わると的確なクロック数を判断できない恐れがある。すなわち、特許文献1の処理装置はあらかじめ設定されたデータテーブルと実際の特性にずれが生じたときに適正なクロック数を判断することができない。そのような場合に、特許文献1の処理装置では、温度上昇による動作不良が生じる恐れや、電力量の抑制が十分に行えない恐れが生じる。よって、特許文献1の技術は、動作環境によらずに温度に応じた的確な制御を行うことが可能なプロセッサに用いる技術としては十分ではない。
本発明は、動作環境によらずに温度に応じた的確な制御を行うことが可能なプロセッサを得ることを目的としている。
上記の課題を解決するため、本発明のプロセッサは、カウント手段と、温度計測手段と、第1の記憶手段と、第2に記憶手段と、制御手段を備えている。カウント手段は、所定の時間内に実行された命令数を実行命令数としてカウントする。温度計測手段は、命令を実行する所定のユニット付近の温度を計測する。第1の記憶手段は、あらかじめ設定された第1の温度を所定のユニット付近の温度が超えたときの実行命令数を第1の命令数として記憶する。第2の記憶手段は、あらかじめ設定され、第1の温度よりも高い第2の温度を所定のユニット付近の温度が超えたときの実行命令数を第2の命令数として記憶する。制御手段は、所定の時間に実行する命令の数が第2の命令数より小さく、第1の命令数より大きくなるように命令の実行を制御する。
本発明のプロセッサの制御方法は、所定の時間内に実行された命令数を実行命令数としてカウントし、命令を実行する所定のユニット付近の温度を計測する。本発明のプロセッサの制御方法は、あらかじめ設定された第1の温度を所定のユニット付近の温度が超えたときの実行命令数を第1の命令数として記憶する、本発明のプロセッサの制御方法は、あらかじめ設定され、第1の温度よりも高い第2の温度を所定のユニット付近の温度が超えたときの実行命令数を第2の命令数として記憶する。本発明のプロセッサの制御方法は、所定の時間に実行する命令の数が第2の命令数より小さく、第1の命令数より大きくなるように命令の実行を制御する。
本発明によると、動作環境によらずに温度に応じた的確な制御を行うことができる。
本発明の第1の実施形態の構成の概要を示す図である。 本発明の第2の実施形態の構成の概要を示す図である。 本発明の第2の実施形態の構成の一部を示した図である。 本発明の第2の実施形態の構成の一部を示した図である。 本発明の第2の実施形態における動作フローの概要を示した図である。 本発明の第2の実施形態のプロセッサの温度変化の例を示す図である。 本発明の第2の実施形態における各信号の例を示す図である。 本発明の第3の実施形態の構成の概要を示す図である。 本発明の第3の実施形態の構成の一部を示した図である。 本発明の第3の実施形態における動作フローの概要を示した図である。 本発明の第3の実施形態における動作フローの一部を示した図である。 本発明の第3の実施形態における動作フローの一部を示した図である。 本発明の第3の実施形態のプロセッサの温度変化の例を示す図である。 本発明の第3の実施形態のプロセッサの温度変化の例を示す図である。
(第1の実施形態)
本発明の第1の実施形態について図を参照して詳細に説明する。図1は、本実施形態のプロセッサの構成の概要を示したものである。本実施形態のプロセッサは、カウント手段1と、温度計測手段2と、第1の記憶手段3と、第2の記憶手段4と、制御手段5を備えている。
カウント手段1は、所定の時間内に実行された命令数を実行命令数としてカウントする。温度計測手段2は、命令を実行する所定のユニット付近の温度を計測する。第1の記憶手段3は、あらかじめ設定された第1の温度を所定のユニット付近の温度が超えたときの実行命令数を第1の命令数として記憶する。第2の記憶手段4は、あらかじめ設定され、第1の温度よりも高い第2の温度を所定のユニット付近の温度が超えたときの実行命令数を第2の命令数として記憶する。制御手段5は、所定の時間に実行する命令の数が第2の命令数より小さく、第1の命令数より大きくなるように命令の実行を制御する。
本実施形態のプロセッサは、あらかじめ設定された第1の温度と第2の温度を、温度計測手段2によって計測を行っている所定のユニット付近の温度が超えたときに、カウント手段1がカウントした所定の時間に実行された命令数を保存している。本実施形態のプロセッサは、カウント手段1がカウントした命令数を、第1の温度では第1の命令数、第2の温度では第2の命令数として記憶手段3と第2の記憶手段4にそれぞれ保存している。また、制御手段5は、所定の時間に実行する命令の数が第2の命令数より小さく、第1の命令数より大きくなるように命令の実行を制御している。
このように、第1の温度および第2の温度において実際に実行された命令数を保存し、保存した2つの命令数の間になるように命令の実行数を制御することで、プロセッサの温度が第1の温度と第2の温度の間で推移する可能性が高くなる。そのため、本実施形態のプロセッサでは、温度上昇によってプロセッサの動作に不具合が生じる状態を避けることができる。また、本実施形態のプロセッサでは、実際に計測した結果に基づいて、命令の実行数を制御するので環境が変化しても環境に応じた制御を行うことが可能となる。以上より、本実施形態のプロセッサでは、動作環境によらずに温度に応じた的確な制御を行うことができる。
(第2の実施形態)
本発明の第2の実施形態について図を参照して詳細に説明する。図2は、本実施形態のプロセッサの構成の概要を示したものである。本実施形態のプロセッサは、演算処理部10と、温度制御部20を備えている。また、演算処理部10は、プロセッサが備えられた情報処理装置の主記憶装置とも接続されている。
演算処理部10の構成について詳細に説明する。図3は演算処理部10の構成の概要を示したものである。
演算処理部10は、命令キャッシュ部11と、命令フェッチ部12と、命令デコード部13と、命令制御部14を備えている。また、演算処理部10は、ロード/ストア部15−1と、整数演算部15−2と、浮動小数点演算部15−3と、分岐部15−4をさらに備えている。また、演算処理部10は、レジスタファイル部16と、データキャッシュ部17と、メモリ管理部18をさらに備えている。また、演算処理部10は、温度センサ19をさらに備えている。
命令キャッシュ部11は、演算処理部10が実行する命令のデータを保存する機能を有する。命令キャッシュ部11は、演算処理部10が実行する命令のデータを命令列として複数、保存している。命令キャッシュ部11に命令列として保存されているデータは1つであってもよい。命令キャッシュ部11に保存されている命令のデータは、メモリ管理部18を介して主記憶装置から入力される。
命令フェッチ部12は、命令のデータを読み出して命令デコード部13に送る機能を有する。命令フェッチ部12は、命令キャッシュ部11に命令列として保存されているデータを読み出して、命令デコード部13に送る。
命令デコード部13は、入力された命令のデコードを行う機能を有する。命令デコード部13は、命令列として入力された複数の命令を命令発行や命令実行の順になるようにデコードを行う。デコードが行われた命令は、命令制御部14に送られる。
命令制御部14は、命令発行および命令実行を制御する機能を有する。命令制御部14は、命令デコード部13から入力された命令のデータを基に、命令間の依存性の解析および命令実行に必要なリソースの割り当て等のリソース管理を行う。命令制御部14は、依存性の解析およびリソース管理の結果を基に、命令種別ごとに対応する命令実行ユニットに命令を発行する。本実施形態では命令実行ユニットとして、ロード/ストア部15−1、整数演算部15−2、浮動小数点演算部15−3および分岐部15−4が備えられている。
命令制御部14は、複数の命令実行ユニットに同時に命令を送って実行させることもできる。また、命令実行ユニットには、ロード/ストア部15−1、整数演算部15−2、浮動小数点演算部15−3および分岐部15−4以外の機能ユニットが備えられていてもよい。また、各ユニットが複数、備えられていてもよい。
命令制御部14は、命令実行の制御を行う際に所定の時間あたりの命令の実行数が最大実行可能命令数と最小実行命令数の間となるように制御を行う。最大実行可能命令数と最小実行命令数の情報は、上限命令数信号S32および下限命令数信号S33として温度制御部20から入力される。最大実行可能命令数と最小実行命令数の設定方法については、後で説明する。
また、命令制御部14は温度制御部20から温度状態信号S31として送られてくるプロセッサの温度の情報に基づいて、命令実行の制御を行う。命令制御部14は、プロセッサの温度が上限設定温度としてあらかじめ設定されている温度を超えたと判断したときに、所定の抑制状態となるように制御を行う。所定の抑制状態とするための制御方法としては、例えば、スロットリング制御が用いられる。命令制御部14は、所定の抑制状態のときに、プロセッサの温度が下限設定温度としてあらかじめ設定されている温度を下回ったと判断したときに通常の動作状態の制御に移行する。また、本実施形態の命令制御部14は、第1の実施形態の制御手段5に相当する。
ロード/ストア部15−1は、命令制御部14から送られてくる命令に基づいて、データキャッシュ部17のデータを参照して、レジスタファイル部16との間でデータの読み出し動作および書き込み動作を行う機能を有する。
整数演算部15−2は、命令制御部14から送られてくる命令に基づいて、整数演算を行う機能を有する。
浮動小数点演算部15−3は、命令制御部14から送られてくる命令に基づいて、浮動小数点演算を行う機能を有する。
分岐部15−4は、命令制御部14から送られてくる命令に基づいて、必要な分岐処理を行う機能を有する。
ロード/ストア部15−1、整数演算部15−2、浮動小数点演算部15−3および分岐部15−4の各命令実行ユニットは、命令を実行する際にレジスタファイル部16にアクセスして命令実行に必要なレジスタの値を読み出す。また、各命令実行ユニットは、命令を実行した際に、必要に応じて命令実行結果をレジスタファイル部16に書き込む。
レジスタファイル部16は、命令実行に必要なレジスタの値を保存する機能を有する。レジスタファイル部16は、各命令実行ユニットからの制御に基づいて、レジスタの値の保存および出力を行う。
データキャッシュ部17は、各命令実行ユニットで行われる命令実行に必要なデータを保存する機能を有する。データキャッシュ部17は、ロード/ストア部15−1の制御により必要なデータの保存および出力を行う。ロード/ストア部15−1が、処理を行う対象とするデータが保存されていない場合には、データキャッシュ部17は、メモリ管理部18を介して、主記憶装置との間で必要なデータの転送動作を行う。
メモリ管理部18は、主記憶装置との間でデータの送受信を行う機能を有する。メモリ管理部18は、演算処理部10で実行する命令のデータ、命令実行に必要なデータを主記憶装置から受け取って、演算処理部10の各ユニットに送る。また、メモリ管理部18は、演算処理部10での命令実行結果を主記憶装置等に送る。
温度センサ19は、プロセッサの温度を計測する機能を有する。温度センサ19は、プロセッサの温度を測定して、計測した温度のデータを計測温度信号S12として、温度制御部20の温度計測部23に送る。
本実施形態の温度センサ19は、CMOS(Complementary Metal-Oxide-Semiconductor)温度センサによってプロセッサにおいて命令を実行する所定のユニット付近の温度の計測を行う。温度センサには、サーミスタ等の他の温度測定用素子を用いてもよい。本実施形態のCMOS温度センサは、命令を実行する所定のユニットとして演算処理部10の命令実行ユニット付近の温度を計測できるように備えられている。
温度センサ19は、命令を実行する所定のユニットとして、例えば、命令実行ユニットである、ロード/ストア部15−1、整数演算部15−2、浮動小数点演算部15−3および分岐部15−4付近の温度を測定する。温度センサ19は、命令制御部14、レジスタファイル部16、または、データキャッシュ部17などの他のユニットを計測するように備えられていてもよい。
次に温度制御部20の構成について詳細に説明する。図4は、温度制御部20の構成の概要を示したものである。
温度制御部20は、制御部21と、タイマ部22と、温度計測部23と、カウンタ部24と、上限値記憶部25と、下限値記憶部26を備えている。
制御部21は、プロセッサの温度管理に関する温度制御部20における動作の全般を制御する機能を有する。制御部21は、プロセッサの温度測定結果を基に上限値記憶部25および下限値記憶部26への命令数の保存を制御する機能を有する。また、制御部21は、プロセッサの温度の情報を演算処理部10に伝達する機能を有する。
制御部21は、所定の時間ごとに温度計測部23に温度の情報を要求し、プロセッサの温度の状態を監視する。所定の時間は、プロセッサの温度を監視する間隔としてあらかじめ設定されている。制御部21は、所定の時間の経過をタイマ部22から入力される時間経過信号S21を受信することにより判断する。時間経過信号S21は、タイマ部22が所定の時間が経過するごとに、所定の時間が経過したことを制御部21に伝達する信号である。
制御部21は、温度の測定結果を基に上限値記憶部25および下限値記憶部26への命令数の保存の要否を判断する。制御部21は、プロセッサの稼働開始後に最初に上限設定温度を超えたと判断したときに、上限値記憶部25に命令数の保存を要求する信号を上限値保存信号S24として送る。上限設定温度とは、その温度を超えたときに演算処理部10がスロットリング等の抑制状態の動作を開始する温度のことをいう。
制御部21は、プロセッサの稼働開始後に最初に下限設定温度を超えたと判断したときに、下限値記憶部26に命令数の保存を要求する信号を下限値保存信号S25として送る。下限設定温度とは、その温度を下回ると演算処理部10がスロットリング等の抑制状態の動作を解除して通常状態の動作に戻る温度のことをいう。上限設定温度および下限設定温度は、上限設定温度の方が、下限設定温度よりも高い温度となるようにあらかじめ設定された温度である。
制御部21は、カウンタ部24に保存している命令数の情報の出力を要求する信号を命令数出力信号S26として送る。制御部21が命令数出力信号S26を送信するタイミングは、温度を計測する所定の時間の間隔と同じである。
また、制御部21は、プロセッサの温度の情報を演算処理部10に温度状態信号S31として送る。また、制御部21は、温度状態信号S31を温度計測部23から温度の情報を得る所定の時間ごとに送る。演算処理部10は、温度状態信号S31の温度情報を基に各ユニットの制御を行う。
制御部21は、プロセッサの温度が上限設定値および下限設定値を超えたときにアラームを出力する構成としてもよい。また、アラームは上限設定値を超えているときのみとしてもよく、他の温度または複数段階で設定された温度で出力されるようにしてもよい。
タイマ部22は、プロセッサの温度測定を行う間隔を計測する機能を有する。タイマ部22は、あらかじめ設定された所定の時間ごとに制御部21に設定時間が経過したことを示す信号を時間経過信号S21として送る。タイマ部22は、クロック数を積算し、積算した値があらかじめ設定された時間に相当するクロック数となったときにあらかじめ設定された所定の時間が経過したと判断する。タイマ部22は、積算した値が所定の時間に相当するクロック数となるごとに時間経過信号S21を出力する。また、タイマ部22に入力されるクロックは、プロセッサが起動している間は動作状態に関わらず一定である。
温度計測部23は、プロセッサの温度を計測する機能を有する。温度計測部23は、演算処理部10の温度センサ19から温度計測信号S12として送られてくるプロセッサの温度のデータを基に、制御部21から測定要求信号S22を受け取ったときに温度測定結果の情報を計測温度信号S23として制御部21に送る。
また、温度センサ19を演算処理部10内に複数、備えて各温度センサ19から温度計測信号S12として送られてくる温度データを基に、温度計測部23が各温度センサ19の計測値の平均値を、計測温度信号S23として出力してもよい。本実施形態の温度センサ部19および温度計測部23は、第1の実施形態の温度計測手段2に相当する。
カウンタ部24は、演算処理部10が実行した命令の数を積算する機能を有する。カウンタ部24は、演算処理部10の命令制御部14から実行命令数信号S11として送られてくる命令数を積算する。カウンタ部24は、所定の時間ごとに制御部21から命令数出力信号S26として送られてくるストローブ信号の間隔ごとに命令数を命令数信号S27として出力する。カウンタ部24は、所定の時間ごとの命令数を示す命令数信号S27を上限値記憶部25および下限値記憶部26にそれぞれ送る。本実施形態のカウンタ部24は、第1の実施形態のカウント手段1に相当する。
上限値記憶部25は、プロセッサが上限設定温度付近で動作している際の、所定の時間に実行された命令数を保存する機能を有する。上限値記憶部25は、制御部21から命令数の保存を要求する信号を上限値保存信号S24として受け取ると、カウンタ部24から命令数信号S27として入力される命令数を保存する。制御部21は、稼動開始後、最初に上限設定温度を超えていると判断した際に、上限値記憶部25に命令数の保存を要求する。上限値記憶部25は、保存している命令数の情報を上限命令数信号S32として命令制御部14に送る。また、本実施形態では上限値記憶部25に保存されている命令数のことを最大実行可能命令数とも呼ぶ。本実施形態の上限値記憶部25は、第1の実施形態の第2の記憶手段4に相当する。
下限値記憶部26は、下限設定温度付近で動作している際に、所定の時間に実行された命令数を保存する機能を有する。下限値記憶部26は、制御部21から命令数の保存を要求する信号を下限値保存信号S25として受け取ると、カウンタ部24から命令数信号S27として入力される所定の時間に演算処理部10で実行された命令数の情報を保存する。制御部21は、稼動開始後、最初に下限設定温度を超えていると判断した際に、下限値記憶部26に命令数の保存を要求する。下限値記憶部26は、保存している命令数の情報を下限命令数信号S33として命令制御部14に送る。また、本実施形態では下限値記憶部26に保存されている命令数のことを最小実行命令数とも呼ぶ。実施形態の下限値記憶部26は、第1の実施形態の第1の記憶手段3に相当する。
本実施形態のプロセッサの動作について説明する。本実施形態のプロセッサが稼働を開始したときに、上限設定温度と下限設定温度における命令数が設定される際の動作について説明する。本実施形態では、稼動開始後にプロセッサの温度が初めて下限設定温度を超えたときに、下限値記憶部26に最小実行命令数の情報が設定される。また、上限設定温度を初めて超えたときに、最大実行可能命令数が設定される。図5は、実施形態のプロセッサにおいて、上限設定温度と下限設定温度における命令の実行数が設定される際のフローの概要を示したものである。
プロセッサが稼働を開始するとタイマ部22にクロック信号が入力される(ステップ101)。タイマ部22は、クロック数を積算することにより温度を計測する間隔を所定の時間として計測する。所定の時間が経過していないとき、すなわち、クロック数の積算数が所定の回数に達していないとき(ステップ102でNo)、タイマ部22は、クロック数が所定の回数に到達するまでクロック数の積算を行う。
所定の時間が経過したとき、すなわち、クロック数の積算値が所定の回数に達したとき(ステップ102でYes)、タイマ部22は所定の時間が経過したことを示す情報を時間経過信号S21として制御部21に送る。
制御部21は、時間経過信号S21を受け取ると、温度計測部23にプロセッサの温度の情報を要求する信号を測定要求信号S22として送り、温度の情報を取得する(ステップ103)。温度計測部23は、測定要求信号S22を受け取ると、温度計測信号S12を基にプロセッサの温度の情報を計測温度信号S23として制御部21に送る。
制御部21は、計測温度信号S23としてプロセッサの温度の情報を受け取ると、受け取った温度の情報を下限設定温度と比較する。計測温度信号S23の温度が下限設定温度未満のとき(ステップ104でNo)、制御部21は温度が下限設定温度未満の通常状態であることを示す情報を温度状態信号S31として演算処理部10の命令制御部14に送る。通常状態であることを示す温度状態信号S31を受け取ると、命令制御部14は通常状態の命令実行動作を継続する(ステップ111)。
計測温度信号S23の温度が下限設定温度よりも高いとき(ステップ104でYes)、制御部21は温度が制御部21は温度が下限設定温度を超過していることを示す情報を温度状態信号S31として演算処理部10の命令制御部14に送る。命令制御部14は、通常の動作状態なので、温度が下限設定温度を超過していることを示す情報を温度状態信号S31として受け取った後も通常の動作状態を継続する。
また、制御部21は演算処理部10で所定の時間に実行された命令数の情報の保存を要求する信号を下限値保存信号S25として下限値記憶部26に送る。下限値記憶部26は、下限値保存信号S25を受け取ると、カウンタ部24から命令数信号S27として入力される命令数を保存する(ステップ105)。このとき保存される命令数は、最小実行命令数の値となる。命令数信号S27は、制御部21からカウンタ部24に所定の時間ごとに送られる命令数出力信号S26に基づいてカウンタ部24から出力される。
最小実行命令数、すなわち、下限設定温度に対応する命令数が保存されると、所定の時間ごとの温度モニターが継続される。タイマ部22は、クロック数の積算を行い所定の回数に達しているかの確認を行う。所定の時間が経過していないとき、すなわち、クロック数の積算値が所定の回数に達していないときは(ステップ106でNo)、所定の時間が経過するまでクロック数の積算が行われる。
クロック数の積算値が所定の回数に達し所定の時間が経過したことを検出すると(ステップ106でYes)、タイマ部22は所定の時間が経過したことを示す情報を時間経過信号S21として制御部21に送る。
制御部21は、時間経過信号S21を受け取ると、温度計測部23にプロセッサの温度の情報を要求する信号を測定要求信号S22として送り温度の情報を取得する(ステップ107)。温度計測部23は、測定要求信号S22を受け取ると、温度計測信号S12を基にプロセッサの温度の情報を計測温度信号S23として制御部21に送る。制御部21は、計測温度信号S23としてプロセッサの温度の情報を受け取ると、受け取った温度の情報を上限設定温度と比較する。
計測温度信号S23の温度が上限設定温度未満のとき(ステップ108でNo)、制御部21は温度状態の情報を温度状態信号S31として演算処理部10の命令制御部14に送る。このときプロセッサは通常の動作状態のため、下限設定温度を超えていることを示す温度状態信号S31を受け取った後も、命令制御部14は、通常の動作状態での命令の実行を継続する(ステップ112)。
計測温度信号S23の温度が上限設定温度よりも高いとき(ステップ108でYes)、制御部21は温度が動作可能温度を超過していることを示す情報を温度状態信号S31として演算処理部10の命令制御部14に送る。演算処理部10は、温度が動作可能温度を超過していることを示す情報を温度状態信号S31として受け取ると、命令の実行動作を抑止状態に移行させる。抑止状態とは、例えば、スロットリング制御により命令実行に関するクロック数を下げる状態のことをいう。演算処理部10の命令制御部14は、抑止状態に移行する際に、命令の実行を一時的に休止する制御や、一部の機能を停止する制御を行ってもよい。
また、制御部21は、プロセッサで所定の時間に実行された命令数の保存を要求する信号を上限値保存信号S24として上限値記憶部25に送る。上限値記憶部25は、上限値保存信号S24を受け取ると、カウンタ部24から命令数信号S27として入力される命令数を保存する(ステップ109)。このとき上限値記憶部25に保存される命令数は、最大実行可能命令数の値である。命令数信号S27は、制御部21からカウンタ部24に所定の時間ごとに送られる命令数出力信号S26に基づいてカウンタ部24から出力される。
上限設定温度に対応する命令数が保存されると、所定の時間ごとの温度モニターが継続され、命令制御部14は最大実行可能命令数および最小実行命令数を満たすように命令の実行を制御する(ステップ110)。以上で、プロセッサが稼働を開始したときに、上限設定温度と下限設定温度における命令数、すなわち、大実行可能命令数および最小実行命令数が設定される際の動作は完了する。
最大実行可能命令数および最小実行命令数が設定された後のプロセッサの動作について説明する。演算処理部10の命令キャッシュ部11には、メモリ管理部18を介して主記憶装置から命令データが保存される。命令フェッチ部12は、命令キャッシュ部11から命令データを読み出し、命令デコード部13に送る。命令デコード部13は、命令のデコード処理を行い、デコード処理を行った命令を命令制御部14に送る。
命令制御部14は、受け取った命令の実行に必要な命令実行ユニットを判断する。命令制御部14は、所定の時間あたりの命令の実行数が最大実行可能命令数および最小実行命令数の間になるように命令の実行を制御する。最大実行可能命令数および最小実行命令数の情報は、上限命令数信号S32および下限命令数信号S33として温度制御部20から命令制御部14に入力される。
各命令実行ユニットは、命令制御部14の制御に基づいて命令の実行を行い、必要に応じてレジスタファイル部16およびデータキャッシュ部17へのデータの読み書きを行う。演算処理部10での処理結果は必要に応じてメモリ管理部18を介して主記憶装置に送られる。また、命令制御部14は、所定の時間に実行した命令数の情報を実行命令数信号S11として温度制御部20に送る。
命令制御部14は、命令実行の制御を行う際に温度制御部31から送られてくる温度状態信号S31を参照して温度に応じた制御を行う。温度状態信号S31の温度が上限設定温度を超えているときは、命令制御部14は抑制状態として命令の実行を制御する。また、抑制状態で制御しているときに、温度状態信号S31の温度が下限設定温度を下回ったとき、命令制御部14は通常状態の制御に移行する。
命令制御部14は、通常状態の制御の際に、温度状態信号S31の温度が下限設定温度未満のときは最大実行可能命令数を目標に命令の実行数を制御し、下限設定温度を超えたときは最小実行命令数を目標として命令の実行数を制御するようにしてもよい。
抑制状態の制御方法としては、クロック数の抑制の他、順次命令を実行していき、上限設定温度の命令数に達した段階で以降の命令実行を停止する方法とすることもできる。また、抑制状態の制御方法としては、下限値や上限値の理論最大命令実行数に対する比率を求めて、その比率になるよう数クロックサイクルに1回の頻度でNOP(No Operation)命令を挿入する方法を用いることもできる。
本実施形態のプロセッサにおいて最大実行可能命令数および最小実行命令数、すなわち、上限設定温度と下限設定温度に対応する命令の実行数が設定される際の動作をより具体的な例で説明する。本実施形態のプロセッサの温度が稼動開始後に図6のような変化した場合を例に説明する、図6は、横軸を時間、縦軸を温度度してプロセッサの温度変化を示した図である。図6の温度のTLは下限設定温度の値を示している。また、図6の温度のTHは上限設定温度の値を示している。図6の時間のT1、T2、T3、T4、T5およびT6はプロセッサの稼動開始後からの時間を示している。
図6ではプロセッサの稼働開始後にプロセッサの温度の上昇が始まり、時間T1では下限設定温度TL以下であったプロセッサの温度は、時間T2で下限設定温度TLを超えている。また、図6の例では、プロセッサの温度は、時間T4で上限設定温度THも超えている。その後、動作が抑制されて時間T5以降では下限設定温度TLと上限設定温度THの間でプロセッサの温度が推移している。
図7は、図6のような温度変化を行った場合の、各信号の状態を模式的に示したものである。図7の横軸は時間を示し、縦軸は信号の状態、すなわち、High状態またはLow状態もしくは信号が有している情報を示している。
図7の最上段の「タイマ」は、タイマ部22が温度の測定間隔を計測するために行うクロック数のカウントを示している。タイマ部22は、クロック数を積算して所定の積算数に達するごとに所定の時間が経過したと判断する。
図7の上から2番目の「温度センサ測定要求信号」は、制御部21から温度計測部23に測定要求信号S22として送るストローブ信号を示している。制御部21から温度計測部23への温度情報の要求を示す測定要求信号S22は、クロック数が所定の積算数に達するごとにHigh状態、すなわち、温度情報を要求する状態となる。
図7の上から3番目の「温度センサ出力」は、温度計測部23から制御部21に計測温度信号S23として送られる温度計測結果の信号を示している。図7の上から3番目の「温度センサ出力」は、時間T1で最初の測定要求信号S22が入力されてから温度計測結果の出力が開始されている。時間T1では、計測温度信号S23が示す温度は下限設定温度TLよりも低い。時間T2およびT3では、温度は下限設定温度TLよりも高く、上限設定温度THよりも低い。また、時間T4では、温度は上限設定温度THよりも高くなり、時間T5およびT6では、温度は再び、下限設定温度TLよりも高く、上限設定温度THよりも低い状態になっている。
図7の上から4番目の「命令数カウンタ」は、クロック数のカウントの周期ごとに、演算処理部10実行された命令数をカウントしている状態を示している。また、図7の上から5番目の「命令数カウンタ出力」は、カウンタ部24から所定の時間ごとに命令数信号S27として出力される命令数の情報を示している。図7では、時間T1で命令数N1、時間T2で命令数N2、時間T3で命令数N3、時間T4で命令数N4、時間T5で命令数N5、時間T6で命令数N6がそれぞれ出力されている。
図7の上から6番目の「温度下限値比較結果」は、制御部21が温度計測部23から受け取った温度情報と下限設定温度を比較した結果を示している。時間T2以降、温度が下限設定温度TLを超えているので、温度下限値比較結果は、High状態となっている。
図7の上から7番目の「温度上限値比較結果」は、制御部21が温度計測部23から受け取った温度情報と上限設定温度を比較した結果を示している。時間T4以降、温度が上限設定温度THを超えているので、温度上限値比較結果は、High状態となっている。また、時間T5で再び、温度が上限設定温度THより低くなっているので、温度上限値比較結果は、Low状態に戻っている。
図7の上から8番目の「温度下限値命令数」は、下限値記憶部26に保存されている命令実行数、すなわち、最小実行命令数のデータの状態を示している。起動直後には初期値の情報が保存されている。本実施形態では、初期値は0として設定されている。初期値には、データの保存が行われていないことを示す情報が設定されている。下限値記憶部26には時間T2で命令数N2が入力されるので、時間T2以降はN2の値が保持されている。
図7の上から9番目の「温度上限値命令数」は、上限値記憶部25に保存されている命令実行数、すなわち、最大実行可能命令数のデータの状態を示している。起動直後には初期値の情報が保存されている。初期値としては、演算処理部10で所定の時間に理論的に実行可能な最大の命令数が設定されている。理論的に実行可能な最大の命令数は、例えば、1クロックで同時に実行可能な命令数に所定の時間に相当するクロック数を乗じた値として算出することができる。上限値記憶部25には時間T4で命令数N4が入力されるので、時間T4以降はN4の値が保持されている。
本実施形態のプロセッサは、稼動開始後、下限設定温度と上限設定温度を超えたときに、所定の時間におけるプロセッサの命令実行数をカウンタ部24で積算し、積算した命令実行数を下限値記憶部26および上限値記憶部25に保存している。演算処理部10は、上限値記憶部25および下限値記憶部26に保存された命令数の範囲に入るように、実行する命令数を制御する。このような制御を行うことで、本実施形態のプロセッサでは、下限設定温度と上限設定温度の範囲で動作するため、温度の上昇によって不具合が生じる可能性を抑制することができる。また、下限値記憶部26に保存された命令数以上となるように制御するので、処理能力の低下を抑制することができる。よって、本実施形態のプロセッサでは、温度上昇の抑制と処理能力の維持を両立することができる。また、本実施形態のプロセッサは、実際の動作における命令実行数を基に、上限値記憶部25および下限値記憶部26に命令数を保存して制御を行っている。そのため、動作環境が変わっても環境に応じた条件を設定することができる。以上より、本実施形態のプロセッサは、動作環境によらずに温度に応じた的確な制御を行うことができる。
(第3の実施形態)
本発明の第3の実施形態について図を参照して詳細に説明する。図8は、本実施形態のプロセッサの構成の概要を示したものである。本実施形態のプロセッサは、演算処理部10と、温度制御部40を備えている。また、演算処理部10には第2の実施形態と同様に主記憶装置が接続されている。本実施形態の演算処理部10は、第2の実施形態の演算処理部と同様の構成を備えている。
温度制御部40の詳細な構成について説明する。図9は、本実施形態の温度制御部40の構成の概要を示した図である。図9に示す通り、温度制御部40は、制御部41と、タイマ部42と、温度計測部43と、カウンタ部44と、上限値記憶部45と、下限値記憶部46と、上限値比較部47と、下限値比較部48を備えている。
本実施形態のタイマ部42、温度計測部43、カウンタ部44、上限値記憶部45および下限値記憶部46の構成と機能は、第2の実施形態の同名称の部位と同様である。また、本実施形態の時間経過信号S41、測定要求信号S42、計測温度信号S43および命令数出力信号S46の機能は、第2の実施形態の同名称の信号と同様である。本実施形態の命令数信号S47は第2の実施形態の命令数信号と同様の機能を有する。また、本実施形態においてカウンタ部44から出力された命令数信号S47は、上限値記憶部45および下限値記憶部46に加え、上限値比較部47および下限値比較部48にも入力される。
本実施形態の温度状態信号S51、上限命令数信号S52および下限命令数信号S53の機能は第2の実施形態の同名称の信号と同様であり、それぞれ温度制御部40から演算処理部10の命令制御部14に入力される。また、本実施形態においても第2の実施形態と同様に命令制御部14が実行した命令数の情報が実行命令数信号S11として命令制御部14から温度制御部40に送られる。また、本実施形態においても第2の実施形態と同様に演算処理部10の温度センサ19が測定した温度データが、温度計測信号S12として温度センサ部19から温度制御部40に送られる。
上限値記憶部45から出力される上限命令数信号S52は、演算処理部10への出力に加え上限値比較部47にも入力される。下限値記憶部46から出力される下限命令数信号S53は、演算処理部10への出力に加え下限値比較部48にも入力される。
制御部41は、第2の実施形態の制御部と同様の機能に加え、上限値記憶部45および下限値記憶部46に保存された命令数の情報を補正する機能を有する。制御部41は、上限値比較部47から送られてくる上限値比較信号S48および計測温度信号S43に基づいて、上限値記憶部45に保存されている上限設定温度の命令数を補正する。また、制御部41は、下限値比較部48から送られてくる下限値比較信号S49および計測温度信号S43に基づいて、下限値記憶部46に保存されている下限設定温度の命令数を補正する。制御部41は、命令数の補正の内容を示す上限値保存信号S44および下限値保存信号S45を上限値記憶部45および下限値記憶部46にそれぞれ送ることで命令数の補正を行う。
上限値比較部47は、上限値記憶部45とカウンタ部44に保存されている命令数を比較する機能を有する。上限値比較部47は、上限値記憶部45から送られてくる上限命令数信号S52の命令数と、カウンタ部44から送られてくる命令数信号S47の命令数を比較し、比較結果を上限値比較信号S48として制御部41に送る。
下限値比較部48は、下限値記憶部46とカウンタ部44に保存されている命令数を比較する機能を有する。下限値比較部48は、下限値記憶部46から送られてくる下限命令数信号S53の命令数と、カウンタ部44から送られてくる命令数信号S47の命令数を比較し、比較結果を下限値比較信号S49として制御部41に送る。
本実施形態のプロセッサの動作について説明する。本実施形態のプロセッサにおいて、上限設定温度と下限設定温度に対応した命令数の補正以外の動作は、第2の実施形態と同様である。すなわち、本実施形態のプロセッサは、稼動開始後の下限設定温度および上限設定温度に対応する命令数の設定や命令実行の制御等については、第2の実施形態のプロセッサと同様の動作を行う。そのため、以下では、下限設定温度および上限設定温度に対応する命令数、すなわち、最大実行可能命令数および最小実行命令数が設定された後に、それぞれに対応する命令数の補正が行われる際の動作について図10を参照して説明する。図10は、上限設定温度および下限設定温度に対応する命令数の補正が行われる際のフローの概要を示したものである。
プロセッサの稼働開始後に、下限設定温度および上限設定温度に対応する命令数がそれぞれ設定される(ステップ121)。上限設定温度の命令数、すなわち、最大実行可能命令数が設定されると、タイマ部42は、クロック数を積算してさらに所定の時間が経過したかを監視する。所定の時間が経過していない場合は(ステップ122でNo)、タイマ部42は、所定の時間に対応するクロック数が積算されるまで、クロック数の積算および積算数の監視を継続する。
上限設定温度の命令数が設定されてから所定の時間が経過すると(ステップ122でYes)、タイマ部42は、時間経過信号S41を制御部41に送る。時間経過信号S41を受け取ると、制御部41は、温度情報を要求する測定要求信号S42を温度計測部43に送って温度の情報を取得する(ステップ123)。測定要求信号S42を受け取ると、温度計測部42は測定要求信号S42を受け取ったときのプロセッサの温度の情報を計測温度信号S43として制御部41に送る。また、このとき温度計測部42は、プロセッサの温度のデータを、温度計測信号S12として演算処理部10の温度センサ19から受け取っている。
計測温度信号S43を受け取ると、制御部41は、上限値記憶部45の補正の要否を判断する(ステップ124)。制御部41が上限値記憶部45の補正の要否を判断する際のフローは、図11を参照して説明する。図11は、上限値記憶部45の補正の要否を判断する際のフローの概要を示した図である。
計測温度信号S43を受け取ると、制御部41は、上限値記憶部45の補正の要否の判断を開始する。制御部41は、上限値比較信号S48として上限値比較部47から送られてくるデータを基に上限値記憶部45とカウンタ部44の値を比較する(ステップ131)。
上限値記憶部45の命令数の方がカウンタ部44の値より大きいとき、すなわちカウンタ部44の値が小さい場合は(ステップ132でYes)、制御部41は計測温度信号S43が示すプロセッサの温度の確認を行う。計測温度信号S43の温度が上限設定温度よりも高いとき(ステップ133でYes)、制御部41は、カウンタ部44の値で上限値記憶部45に保存された命令数のデータを更新する(ステップ134)。
制御部41は、上限値記憶部45にカウンタ部44の値でデータの更新を要求する信号を上限値保存信号S44として上限値記憶部45に送る。データの更新を要求する上限値保存信号S44を受け取ると、上限値記憶部45は、命令数信号S47としてカウンタ部44から入力される命令の実行数の情報をそれまで保存していたデータに代えて保存する。
ステップ134で上限値記憶部45のデータを更新すると、制御部41はステップ124の動作を終えてステップ125へ進む。また、計測温度信号S43の温度が上限設定温度よりも低いとき(ステップ133でNo)、制御部41はステップ124の動作を終えてステップ125へと進む。
上限値記憶部45の命令数の方がカウンタ部44の値より小さい場合は(ステップ132でNo)、制御部41は計測温度信号S43が示すプロセッサの温度の確認を行う。計測温度信号S43の温度が上限設定温度よりも低いとき(ステップ135でYes)、制御部41は、上限値記憶部45に保存されているデータを所定の数、増加させる(ステップ136)。所定の数は、あらかじめ制御部41に保存されている。所定の数は、上限値記憶部45の値を増加させて更新した際に、元の値から大きく変動しないように設定される。また、所定の数は、上限値記憶部45とカウンタ部44の命令数の差に応じた変動値として設定されるようにしてもよい。
制御部41は、増加させる所定の数を示す信号を上限値保存信号S44として上限値記憶部45に送る。上限値記憶部45は、受け取った信号を基に保存しているデータを所定の数、増加させることにより更新する。
ステップ136で上限値記憶部45のデータを更新すると、制御部41はステップ124の動作を終えてステップ125へ進む。また、計測温度信号S43の温度が上限設定温度よりも高いとき(ステップ135でNo)、制御部41はステップ124の動作を終えてステップ125へと進む。
ステップ124の動作を終えると、制御部41は、下限値記憶部46の補正の要否を判断する(ステップ125)。制御部41が下限値記憶部46の補正の要否を判断する際のフローは、図12を参照して説明する。図12は、下限値記憶部46の補正の要否を判断する際のフローの概要を示した図である。
下限値記憶部46の補正の要否の判断を開始すると、制御部41は、下限値比較信号S49として下限値比較部48から送られてくるデータを基に下限値記憶部46とカウンタ部44の値を比較する(ステップ141)。
下限値記憶部46の命令数の方がカウンタ部44の値より小さいとき、すなわちカウンタ部44の値が大きい場合は(ステップ142でYes)、制御部41は計測温度信号S43が示すプロセッサの温度の確認を行う。計測温度信号S43の温度が下限設定温度よりも低いとき(ステップ143でYes)、制御部41は、カウンタ部44の値で下限値記憶部46に保存された命令数のデータを更新する(ステップ144)。
制御部41は、下限値記憶部46にカウンタ部44の値でデータの更新を要求する信号を下限値保存信号S45として下限値記憶部46に送る。データの更新を要求する下限値保存信号S45を受け取ると、下限値記憶部46は、命令数信号S47としてカウンタ部44から入力される命令数の情報で保存している命令数のデータを更新する。
ステップ144で下限値記憶部46のデータを更新すると、制御部41は上限値記憶部45および下限値記憶部46の命令数の補正の動作を終了する。また、計測温度信号S43の温度が下限設定温度よりも高いときも(ステップ143でNo)、制御部41は上限値記憶部45および下限値記憶部46の命令数の補正の動作を終了する。
下限値記憶部46の命令数の方がカウンタ部44の値より大きい場合は(ステップ142でNo)、制御部41は計測温度信号S43が示すプロセッサの温度の確認を行う。計測温度信号S43の温度が下限設定温度よりも高いとき(ステップ145でYes)、制御部41は、下限値記憶部46に保存されているデータを所定の数、減少させる(ステップ146)。
データを減少させる際の所定の数は、あらかじめ制御部41に保存されている。所定の数は、下限値記憶部46の値を減少させて更新した際に、元の値から大きく変動しないように設定される。また、所定の数は、下限値記憶部46とカウンタ部44の命令数の差に応じた変動値として設定されるようにしてもよい。また、上限値記憶部45の値を増加させる際の所定の数と、下限値記憶部46の値を減少させる際の所定の数は、同じ大きさの値でもよく、異なっていてもよい。
制御部41は、増加させる所定の数を示す信号を下限値保存信号S45として下限値記憶部46に送る。下限値記憶部46は、受け取った信号を基に保存しているデータを所定の数、減少させることにより更新する。
ステップ146で下限値記憶部46のデータを更新すると、制御部41は上限値記憶部45および下限値記憶部46の命令数の補正の動作を終了する。また、計測温度信号S43の温度が下限設定温度よりも低いときも(ステップ145でNo)、上限値記憶部45および下限値記憶部46の制御部41は命令数の補正の動作を終了する。
制御部41は、上限値記憶部45および下限値記憶部46の命令数の補正の動作を終了すると、命令実行の制御を継続し、所定の時間の経過後に、再度、命令数の補正の要否の判断を行う。
本実施形態のプロセッサの動作についてより具体的な例を基に説明する。図13は、プロセッサ稼働時のプロセッサの温度変化の例を示したグラフである。図13の例では、プロセッサの温度は、時間t1で下限設定温度TLを超え、時間t2で上限設定温度THを超えている。すなわち、図13の例では、時間t1で下限設定温度に対応する命令実行数が設定され、時間t2で上限設定温度に対応する命令実行数が設定される。時間t2で上限設定温度に対応する命令実行数を設定する動作が時間t2での動作がステップ121に相当し、時間t2以降で、本実施形態で説明したステップ122以降の動作が行われる。
図13の時間t3で温度の計測が行われたとすると、温度は下限設定温度TLよりも低い状態である。このときカウンタ部44に保存されている命令数の値が、下限値記憶部46に保存されている値よりも大きい場合には、カウンタ部44の値で下限値記憶部46のデータが更新される。
また、図14は、図13とは異なるプロセッサの温度変化の例を示したグラフである。図14の例でも、図13の例と同様に時間t2でステップ121に相当する上限設定温度に対応する命令実行数を設定する動作が行われ、時間t2以降で、本実施形態で説明したステップ122以降の動作が行われる。
図14の時間t3で温度の計測が行われたとすると、温度は上限設定温度THよりも高い状態である。このときカウンタ部44に保存されている命令数の値が、上限値記憶部45に保存されている値未満の場合には、カウンタ部44の値で上限値記憶部45のデータが更新される。
本実施形態のプロセッサは、第2の実施形態と同様の効果を得ることができる。また、本実施形態のプロセッサは、所定の時間ごとにカウントされた命令実行数と、上限値記憶部45に保存されている命令数を比較し、比較結果とプロセッサの温度を基に上限値記憶部45の値を更新している。また、同様にまた、本実施形態のプロセッサは、所定の時間ごとにカウントされた命令実行数と、下限値記憶部46に保存されている命令数を比較し、比較結果とプロセッサの温度を基に下限値記憶部46の値を更新している。すなわち、本実施形態のプロセッサでは動作を継続している間にも、上限値記憶部45および下限値記憶部46に保存されている命令実行数を更新している。そのため、本実施形態のプロセッサでは、稼働を行っているうちに環境等が変化した場合でも、変化に応じた条件で的確に命令実行数を制御することができる。その結果、本実施形態のプロセッサは、動作環境によらずに温度に応じた制御をより的確に行うことができる。
本実施形態の第2および第3のプロセッサでは、スロットリング等の抑制状態の開始温度および解除温度と、命令制御部が実行数の制御を行う際の目標温度を一致させていたが、いずれか一方または両方の温度が異なっていてもよい。また、温度設定を複数段階にしてそれぞれに命令数の設定し、より多段階で命令実行の制御を行ってもよい。
第2および第3の実施形態のプロセッサでは、それぞれ1つの温度制御部を備えていた。すなわち、演算処理部の全ての命令実行ユニットに対して、1つの温度制御部を備えていた。そのような構成に代えて、温度制御部が複数、備えられている構成としてもよい。例えば、第2および第3の実施形態のように、ロード/ストア部、整数演算部、浮動小数点演算部および分岐部の4つのユニットで構成されているとき、プロセッサが温度制御部を4つ備える構成としてもよい。各命令実行ユニットの温度を計測して、命令実行数を制御することにより、より精度の高い命令実行数の制御が可能となる。命令実行ユニットは、各ユニットの特性や処理内容に応じて動作状態が異なるからである。命令実行数の制御の精度を上げることで、処理能力と、消費電力および温度のバランスをより良く保つことができるようになる。
また、命令実行ユニットごとに温度制御を行う構成とした場合に、制御部は共通していてもよい。すなわち、温度の測定およびデータ保存機能のみ各実行ユニットに対応する数を備える構成としてもよい。また、温度制御部は、命令実行ユニットごとではなく、複数の命令実行ユニットまたはその他のユニットに1つ備え、全体で複数、備えられているようにしてもよい。そのような構成とする場合には、命令の実行種別が似ていて動作特性の近い命令実行ユニットと組み合わせて、温度制御部を備える構成とすることが望ましい。
例えば、命令の実行種別を演算命令、ロード/ストア命令、その他の命令の3つの種別に分類したとする。そのような場合に、温度センサを整数演算部および浮動小数点演算部の近傍、ロード/ストア部およびデータキャッシュ部の近傍ならびに命令フェッチ部および命令デコード部の近傍などに1つずつ備える構成とする。命令種別毎の一定時間内の実行命令数が各温度センサにおける温度測定結果により大きな影響として現れるようにすることでより的確な温度制御を行うことができる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
[付記1]
所定の時間内に実行された命令数を実行命令数としてカウントするカウント手段と、
命令を実行する所定のユニット付近の温度を計測する温度計測手段と、
あらかじめ設定された第1の温度を前記所定のユニット付近の前記温度が超えたときの前記実行命令数を第1の命令数として記憶する第1の記憶手段と、
あらかじめ設定され、前記第1の温度よりも高い第2の温度を前記所定のユニット付近の前記温度が超えたときの前記実行命令数を第2の命令数として記憶する第2の記憶手段と、
前記所定の時間に実行する命令の数が前記第2の命令数より小さく、前記第1の命令数より大きくなるように命令の実行を制御する制御手段と
を備えることを特徴とするプロセッサ。
[付記2]
前記制御手段は、前記第2の命令数の設定後に、前記所定のユニット付近の前記温度が前記第2の温度を超えたときに、所定の抑制状態となるように命令の実行を制御することを特徴とする付記1に記載のプロセッサ。
[付記3]
前記制御手段は、前記所定の抑制状態のときに、前記所定のユニット付近の前記温度が前記第1の温度未満となった場合に、前記所定の抑制状態を解除することを特徴とする付記2に記載のプロセッサ。
[付記4]
前記第2の記憶手段に記憶された前記第2の命令数と、前記カウント手段がカウントした前記実行命令数とを比較する比較手段をさらに備え、
前記制御部は、前記所定のユニット付近の前記温度が、前記第2の温度を超えているときに、前記実行命令数の値よりも前記第2の命令数の値が大きい場合に、前記第2の命令数の値を前記実行命令数の値となるように更新することを特徴とする付記1から3いずれかに記載のプロセッサ。
[付記5]
前記制御部は、前記所定のユニット付近の前記温度が、前記第2の温度を下回っているときに、前記実行命令数の値よりも前記第2の命令数の値が小さい場合に、前記第2の命令数の値を第2の所定の値、増加させることを特徴とする付記4に記載のプロセッサ。
[付記6]
前記比較手段は、前記第1の記憶手段に記憶された前記第1の命令数と、前記カウント手段がカウントした前記実行命令数とを比較する手段をさらに備え、
前記制御部は、前記所定のユニット付近の前記温度が、前記第1の温度未満となったときに、前記実行命令数の値よりも前記第1の命令数の値が小さい場合に、前記第1の命令数の値を前記実行命令数の値となるように更新することを特徴とする付記4または5いずれかに記載のプロセッサ。
[付記7]
前記制御部は、前記所定のユニット付近の前記温度が、前記第1の温度を超えたときに、前記実行命令数の値よりも前記第1の命令数の値が大きい場合に、前記第1の命令数の値を第1の所定の値、減少させることを特徴とする付記6に記載のプロセッサ。
[付記8]
前記所定の抑制状態は、通常状態よりもクロック数を減少させる状態であることを特徴とする付記2から7いずれかに記載のプロセッサ。
[付記9]
前記温度計測手段は、前記所定のユニット付近の温度として複数の箇所で温度を計測する手段を備え、前記第1の命令数および前記第2の命令数が温度を計測する箇所に応じて設定されていることを特徴とする付記1から8いずれかに記載のプロセッサ。
[付記10]
所定の時間内に実行された命令数を実行命令数としてカウントし、
命令を実行する所定のユニット付近の温度を計測し、
あらかじめ設定された第1の温度を前記所定のユニット付近の前記温度が超えたときの前記実行命令数を第1の命令数として記憶し、
あらかじめ設定され、前記第1の温度よりも高い第2の温度を前記所定のユニット付近の前記温度が超えたときの前記実行命令数を第2の命令数として記憶し、
前記所定の時間に実行する命令の数が前記第2の命令数より小さく、前記第1の命令数より大きくなるように命令の実行を制御することを特徴とするプロセッサの制御方法。
[付記11]
前記第2の命令数の設定後に、前記所定のユニット付近の前記温度が前記第2の温度を超えたときに、所定の抑制状態となるように命令の実行を制御することを特徴とする付記10に記載のプロセッサの制御方法。
[付記12]
前記所定の抑制状態のときに、前記所定のユニット付近の前記温度が前記第1の温度未満となった場合に、前記所定の抑制状態を解除することを特徴とする付記11に記載のプロセッサの制御方法。
[付記13]
記憶された前記第2の命令数と、カウントした前記実行命令数とを比較し、
前記所定のユニット付近の前記温度が、前記第2の温度を超えているときに、前記実行命令数の値よりも前記第2の命令数の値が大きい場合に、前記第2の命令数の値を前記実行命令数の値となるように更新することを特徴とする付記10から12いずれかに記載のプロセッサの制御方法。
[付記14]
前記所定のユニット付近の前記温度が、前記第2の温度を下回っているときに、前記実行命令数の値よりも前記第2の命令数の値が小さい場合に、前記第2の命令数の値を第2の所定の値、増加させることを特徴とする付記13に記載のプロセッサの制御方法。
[付記15]
記憶された前記第1の命令数と、前記実行命令数とを比較し、
前記所定のユニット付近の前記温度が、前記第1の温度未満となったときに、前記実行命令数の値よりも前記第1の命令数の値が小さい場合に、前記第1の命令数の値を前記実行命令数の値となるように更新することを特徴とする付記13または14いずれかに記載のプロセッサの制御方法。
[付記16]
前記所定のユニット付近の前記温度が、前記第1の温度を超えたときに、前記実行命令数の値よりも前記第1の命令数の値が大きい場合に、前記第1の命令数の値を第1の所定の値、減少させることを特徴とする付記15に記載のプロセッサの制御方法。
[付記17]
前記所定の抑制状態は、通常状態よりもクロック数を減少させる状態であることを特徴とする付記11から16いずれかに記載のプロセッサの制御方法。
[付記18]
前記所定のユニット付近の温度として複数の箇所で温度を計測し、
前記第1の命令数および前記第2の命令数を温度を計測する箇所に応じて設定することを特徴とする付記10から17いずれかに記載のプロセッサの制御方法。
1 カウント手段
2 温度計測手段
3 第1の記憶手段
4 第2の記憶手段
5 制御手段
10 演算処理部
11 命令キャッシュ部
12 命令フェッチ部
13 命令デコード部
14 命令制御部
15−1 ロード/ストア部
15−2 整数演算部
15−3 浮動小数点演算部
15−4 分岐部
16 レジスタファイル部
17 データキャッシュ部
18 メモリ管理部
19 温度センサ部
20 温度制御部
21 制御部
22 タイマ部
23 温度計測部
24 カウンタ部
25 上限値記憶部
26 下限値記憶部
40 温度制御部
41 制御部
42 タイマ部
43 温度計測部
44 カウンタ部
45 上限値記憶部
46 下限値記憶部
47 上限値比較部
48 下限値比較部
S11 実行命令数信号
S12 温度計測信号
S21 時間経過信号
S22 測定要求信号
S23 計測温度信号
S24 上限値保存信号
S25 下限値保存信号
S26 命令数出力信号
S27 命令数信号
S31 温度状態信号
S32 上限命令数信号
S33 下限命令数信号
S41 時間経過信号
S42 測定要求信号
S43 計測温度信号
S44 上限値保存信号
S45 下限値保存信号
S46 命令数出力信号
S47 命令数信号
S48 上限値比較信号
S49 下限値比較信号
S51 温度状態信号
S52 上限命令数信号
S53 下限命令数信号

Claims (10)

  1. 所定の時間内に実行された命令数を実行命令数としてカウントするカウント手段と、
    命令を実行する所定のユニット付近の温度を計測する温度計測手段と、
    あらかじめ設定された第1の温度を前記所定のユニットの温度が超えたときの前記実行命令数を第1の命令数として記憶する第1の記憶手段と、
    あらかじめ設定され、前記第1の温度よりも高い第2の温度を前記所定のユニット付近の前記温度が超えたときの前記実行命令数を第2の命令数として記憶する第2の記憶手段と、
    前記所定の時間に実行する命令の数が前記第2の命令数より小さく、前記第1の命令数より大きくなるように命令の実行を制御する制御手段と
    を備えることを特徴とするプロセッサ。
  2. 前記第2の記憶手段に記憶された前記第2の命令数と、前記カウント手段がカウントした前記実行命令数とを比較する比較手段をさらに備え、
    前記制御部は、前記所定のユニット付近の前記温度が、前記第2の温度を超えているときに、前記実行命令数の値よりも前記第2の命令数の値が大きい場合に、前記第2の命令数の値を前記実行命令数の値となるように更新することを特徴とする請求項1に記載のプロセッサ。
  3. 前記制御部は、前記所定のユニット付近の前記温度が、前記第2の温度を下回っているときに、前記実行命令数の値よりも前記第2の命令数の値が小さい場合に、前記第2の命令数の値を第2の所定の値、増加させることを特徴とする請求項2に記載のプロセッサ。
  4. 前記比較手段は、前記第1の記憶手段に記憶された前記第1の命令数と、前記カウント手段がカウントした前記実行命令数とを比較する手段をさらに備え、
    前記制御部は、前記所定のユニット付近の前記温度が、前記第1の温度未満となったときに、前記実行命令数の値よりも前記第1の命令数の値が小さい場合に、前記第1の命令数の値を前記実行命令数の値となるように更新することを特徴とする請求項2または3いずれかに記載のプロセッサ。
  5. 前記制御部は、前記所定のユニット付近の前記温度が、前記第1の温度を超えたときに、前記実行命令数の値よりも前記第1の命令数の値が大きい場合に、前記第1の命令数の値を第1の所定の値、減少させることを特徴とする請求項4に記載のプロセッサ。
  6. 前記温度計測手段は、前記所定のユニット付近の温度として複数の箇所で温度を計測する手段を備え、前記第1の命令数および前記第2の命令数が温度を計測する箇所に応じて設定されていることを特徴とする請求項1から5いずれかに記載のプロセッサ。
  7. 所定の時間内に実行された命令数を実行命令数としてカウントし、
    命令を実行する所定のユニット付近の温度を計測し、
    あらかじめ設定された第1の温度を前記所定のユニット付近の前記温度が超えたときの前記実行命令数を第1の命令数として記憶し、
    あらかじめ設定され、前記第1の温度よりも高い第2の温度を前記所定のユニット付近の前記温度が超えたときの前記実行命令数を第2の命令数として記憶し、
    前記所定の時間に実行する命令の数が前記第2の命令数より小さく、前記第1の命令数より大きくなるように命令の実行を制御することを特徴とするプロセッサの制御方法。
  8. 記憶された前記第2の命令数と、カウントした前記実行命令数とを比較し、
    前記所定のユニット付近の前記温度が、前記第2の温度を超えているときに、前記実行命令数の値よりも前記第2の命令数の値が大きい場合に、前記第2の命令数の値を前記実行命令数の値となるように更新することを特徴とする請求項7に記載のプロセッサの制御方法。
  9. 記憶された前記第1の命令数と、前記実行命令数とを比較し、
    前記所定のユニット付近の前記温度が、前記第1の温度未満となったときに、前記実行命令数の値よりも前記第1の命令数の値が小さい場合に、前記第1の命令数の値を前記実行命令数の値となるように更新することを特徴とする請求項7または8いずれかに記載のプロセッサの制御方法。
  10. 前記所定のユニット付近の温度として複数の箇所で温度を計測し、
    前記第1の命令数および前記第2の命令数を温度を計測する箇所に応じて設定することを特徴とする請求項7から9いずれかに記載のプロセッサの制御方法。
JP2015043041A 2015-03-05 2015-03-05 プロセッサおよびその制御方法 Active JP6477032B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015043041A JP6477032B2 (ja) 2015-03-05 2015-03-05 プロセッサおよびその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015043041A JP6477032B2 (ja) 2015-03-05 2015-03-05 プロセッサおよびその制御方法

Publications (2)

Publication Number Publication Date
JP2016162378A true JP2016162378A (ja) 2016-09-05
JP6477032B2 JP6477032B2 (ja) 2019-03-06

Family

ID=56845164

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015043041A Active JP6477032B2 (ja) 2015-03-05 2015-03-05 プロセッサおよびその制御方法

Country Status (1)

Country Link
JP (1) JP6477032B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000187523A (ja) * 1998-12-21 2000-07-04 Funai Electric Co Ltd クロック可変回路
US6397343B1 (en) * 1999-03-19 2002-05-28 Microsoft Corporation Method and system for dynamic clock frequency adjustment for a graphics subsystem in a computer
JP2004038291A (ja) * 2002-06-28 2004-02-05 Toshiba Corp クロック周波数の制御方法および電子機器
JP2005533296A (ja) * 2001-10-25 2005-11-04 インテル・コーポレーション 電力低減方法およびシステム
JP2011138217A (ja) * 2009-12-25 2011-07-14 Aisin Aw Co Ltd 処理装置、処理方法、及び処理プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000187523A (ja) * 1998-12-21 2000-07-04 Funai Electric Co Ltd クロック可変回路
US6397343B1 (en) * 1999-03-19 2002-05-28 Microsoft Corporation Method and system for dynamic clock frequency adjustment for a graphics subsystem in a computer
JP2005533296A (ja) * 2001-10-25 2005-11-04 インテル・コーポレーション 電力低減方法およびシステム
JP2004038291A (ja) * 2002-06-28 2004-02-05 Toshiba Corp クロック周波数の制御方法および電子機器
JP2011138217A (ja) * 2009-12-25 2011-07-14 Aisin Aw Co Ltd 処理装置、処理方法、及び処理プログラム

Also Published As

Publication number Publication date
JP6477032B2 (ja) 2019-03-06

Similar Documents

Publication Publication Date Title
KR101526051B1 (ko) 열적 제어 장치 및 방법론
JP4198644B2 (ja) 半導体集積回路
US9176569B2 (en) Apparatus and method for dynamically adjusting frequency of central processing unit
US8261112B2 (en) Optimizing power consumption by tracking how program runtime performance metrics respond to changes in operating frequency
US7840823B2 (en) Processor system for varying clock frequency and voltage in response to a comparison of instruction execution rate to a reference value
US9678562B2 (en) Information processing apparatus, data transfer apparatus, and control method for data transfer apparatus
WO2014151323A1 (en) Processor control system
US9672310B1 (en) Reliability guardband compensation
JP6477032B2 (ja) プロセッサおよびその制御方法
TWI638517B (zh) 用於產生時脈之電子電路及其方法
JP2012047705A (ja) 時刻補正装置、及び制御方法
JP2013047666A (ja) 炉心監視システム、方法、及びプログラム
US10037065B2 (en) Multi-core processor, information processing method, and program
JP2010009258A (ja) ソフトウエアの異常検出装置
US9817743B2 (en) Maintenance apparatus of electronic device, maintenance method of electronic device, and non-transitory computer readable medium storing program
US8938742B2 (en) Processing system for switching between execution of a normal task and a management task
US9465614B2 (en) Parallel execution of instructions in processing units and adjusting power mode based on monitored data dependency over a period of time
JP5987723B2 (ja) 通信用スレーブ
JP2012003691A (ja) 情報処理装置、情報処理方法、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体及び集積回路
US9898434B2 (en) System, process control method and medium
JP6123831B2 (ja) 電子回路、演算処理制御方法、プログラム、マルチコアプロセッサ
US10067483B1 (en) Controlling electrical device based on temperature and voltage
JP2019114011A (ja) 半導体装置及び半導体装置の制御方法
WO2018180664A1 (ja) 車両制御装置
JP2016206899A (ja) 情報処理システム、測定方法及びそのためのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181207

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190121

R150 Certificate of patent or registration of utility model

Ref document number: 6477032

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150