JP2005165470A - 電子機器およびプロセッサ速度制御方法 - Google Patents

電子機器およびプロセッサ速度制御方法 Download PDF

Info

Publication number
JP2005165470A
JP2005165470A JP2003400788A JP2003400788A JP2005165470A JP 2005165470 A JP2005165470 A JP 2005165470A JP 2003400788 A JP2003400788 A JP 2003400788A JP 2003400788 A JP2003400788 A JP 2003400788A JP 2005165470 A JP2005165470 A JP 2005165470A
Authority
JP
Japan
Prior art keywords
task
processor
real
time
period
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
JP2003400788A
Other languages
English (en)
Other versions
JP4213572B2 (ja
Inventor
Katsuki Uetoko
克樹 上床
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003400788A priority Critical patent/JP4213572B2/ja
Priority to US10/958,140 priority patent/US20050120252A1/en
Publication of JP2005165470A publication Critical patent/JP2005165470A/ja
Application granted granted Critical
Publication of JP4213572B2 publication Critical patent/JP4213572B2/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Power Sources (AREA)

Abstract

【課題】リアルタイム性を損なうことなく、プロセッサを安全に動作させる。
【解決手段】CPU速度制御モジュール26は、温度センサ14によって検出されるCPU11の温度がある閾値を超えた時、CPU11の平均動作速度を低下させるためにCPU速度制御処理を実行する。CPU速度制御処理においては、CPU11の動作を停止する命令を含むプロセッサ停止タスク(CPU Stop Task)が定期的に実行されるように、CPU Stop Taskの実行期間をリアルタイムタスクの実行期間以外の他の期間に割り当てる処理が実行される。これにより、リアルタイムの動作に影響を与えることなくCPU11の平均動作速度を低下させることができるので、リアルタイム性を損なうことなく、プロセッサを安全に動作させることが可能となる。
【選択図】 図1

Description

本発明はプロセッサを含む電子機器および同電子機器で用いられるプロセッサ速度制御方法に関する。
近年、プロセッサの動作速度を制御する技術が開発されている。例えば、プロセッサに供給されるクロックの周波数を低下させることによって、プロセッサの発熱の抑制およびプロセッサのパワーセーブを図ることができる。
プロセッサに供給されるクロックを制御する技術の一つとして、プロセッサがアイドル状態に入った時に実行されるクロック制御プログラムを用いて、プロセッサに供給されるクロックを停止するシステムが知られている(例えば、特許文献1参照)。
米国特許第5,189,647号明細書
しかし、特許文献1のシステムでは、プロセッサがアイドル状態にならない限り、クロック制御プログラムは実行されない。このため、実行可能なタスクが存在する限り、プロセッサは常にその100%の性能で動作しつづける。
プロセッサを常にその100%の性能で動作させることは、非常に危険である。プロセッサの温度がその安全動作保証温度を越えてしまう可能性があるためである。
また、リアルタイムシステムにおいては、プロセッサに供給されるクロックの周波数を単純に下げることはできない。プロセッサがリアルタイムタスクを実行している期間中にもしクロック周波数を低下させたならば、決められた時間制約内にリアルタイムタスクの実行を完了できなくなる危険が発生するからである。
本発明は上述の事情を考慮してなされたものであり、リアルタイム性を損なうことなく、プロセッサを安全に動作させることが可能な電子機器およびプロセッサ速度制御方法を提供することを目的とする。
上述の課題を解決するため、本発明の電子機器は、プロセッサと、リアルタイム処理を実行するためのリアルタイムタスクを含む複数のタスクの実行順序を制御するためのスケジュール情報に従って、前記リアルタイムタスクが優先して実行されるように前記複数のタスクを前記プロセッサに割り当てるためのスケジューリング処理を実行する手段と、前記プロセッサの温度を検出する温度検出器と、前記温度検出器によって検出される前記プロセッサの温度が所定の閾値を越えた場合、前記プロセッサの動作を停止する命令を含むプロセッサ停止タスクが前記プロセッサによって定期的に実行されるように、前記プロセッサ停止タスクの実行期間を前記リアルタイムタスクの実行期間以外の他の期間中に割り当てるための処理を実行する手段とを具備することを特徴とする。
この電子機器においては、プロセッサの温度が所定の閾値を越えた場合には、プロセッサ停止タスクが定期的に実行されるので、プロセッサの平均動作速度を低下することができる。さらに、プロセッサ停止タスクの実行期間はリアルタイムタスクの実行期間以外の他の期間中に割り当てられるので、リアルタイムタスクの動作に影響を与えることなく、プロセッサの平均動作速度を低下することができる。
本発明によれば、リアルタイム性を損なうことなく、プロセッサを安全に動作させることが可能となる。
以下、図面を参照して、本発明の実施形態を説明する。
図1には、本発明の一実施形態に係る電子機器の構成が示されている。この電子機器は、例えば、オーディオ・ビデオのようなマルチメディアデータを扱う装置である。この電子機器は、リアルタイムシステムとして機能する組み込みシステムを含んでいる。この組み込みシステムはプロセッサを含む情報処理装置であり、図示のように、バス10、CPU11、システムコントローラ12、メモリ13、温度センサ14、システムタイマ15、および各種I/Oデバイス16を含んでいる。
CPU11は本電子機器の動作を制御するプロセッサである。CPU11は、メモリ13にロードされたオペレーティングシステム(OS)21および各種アプリケーションプログラムを実行する。CPU11はクロック信号CLKに同期して動作する。システムコントローラ12はCPU11のプロセッサバスとバス10との間を双方向で接続するブリッジデバイスであり、メモリ13を制御するメモリコントローラも含んでいる。さらに、システムコントローラ12は、システムタイマ15および各I/Oデバイス16それぞれからの割り込み要求信号に応じて割り込み信号INTをCPU11に供給する割り込みコントローラを内蔵している。システムタイマ15は、予め決められた時間間隔で割り込み要求信号(タイマ割り込み)を発生する。
温度センサ14はCPU11の温度を検出するセンサである。温度センサ14によって検出されたCPU11の温度は、システムコントローラ12内のレジスタにセットされる。温度センサ14はCPU11のチップ上またはそのCPU11の近傍に配置されている。CPU11の温度はそのCPU11自体の発熱によって上昇する。もしCPU11がその100%の動作速度で動作し続けると、CPU11の温度はそのCPU11の安全動作温度範囲を超える危険がある。温度センサ14は、CPU11の温度が安全動作温度範囲にあるかどうかを監視するために用いられる。
本実施形態においては、温度センサ14によって検出されるCPU11の温度が所定の閾値を超えたとき、CPU11の平均動作速度を低下させるためにCPU速度制御処理が実行される。閾値は、例えば、CPU11の安全動作温度範囲の上限値よりもすこし低い値に設定されている。CPU速度制御処理は、ある一定時間内に一回の割合でCPU11の動作停止期間が挿入されるように、CPU11の動作を定期的に停止する。たとえば1秒当たり200msの期間だけCPU11の動作が停止されるように、CPU11の動作を定期的に停止することにより、CPU11の平均動作速度をその最高動作速度の80%の動作速度に低減することができる。
CPU速度制御処理は、CPU11の動作を停止するために用意されたタスクであるプロセッサ停止タスク(CPU Stop Task)を利用して実行される。プロセッサ停止タスク(CPU Stop Task)は、例えばHALT命令のような、CPU11の動作を停止するための命令を含む。プロセッサ停止タスク(CPU Stop Task)がCPU11にディスパッチされたとき、CPU11はプロセッサ停止タスク(CPU Stop Task)のHALT命令を実行し、これによってそのCPU11自身の動作を停止する。この場合、CPU11の内部クロックも停止され、CPU11内のコアユニットの動作が停止する。
オペレーティングシステム(OS)21はマルチタスク機能をサポートするように構成されている。OS21は、スケジューラ22およびディスパッチャ23を含む。スケジューラ22は、CPU時間を割り当てるべき次のタスクを決定する。このスケジューラ22は、リアルタイムタスクおよび非リアルタイムタスクを含むタスク群の実行順序を制御するためのスケジュール情報にしたがって、リアルタイムタスクが非リアルタイムタスクよりも優先して実行されるようにリアルタイムタスクおよび非リアルタイムタスクを含むタスク群をCPU11に順次割り当てるためのスケジューリング処理を実行する。ここで、リアルタイムタスクは、リアルタイム処理を実行するためのタスク、つまりある時間制約内に処理を完了することが必要とされるタスクである。
スケジューラ22は、スケジューリングキュー24およびスケジューリングテーブル25の少なくとも一方を用いてスケジュール情報を管理する。スケジューリングキュー24は実行可能なタスクを登録するためのキューである。スケジューリングキュー24は、上述のスケジュール情報として、各タスクの優先度レベルを示す優先度情報を管理する。リアルタイムタスクの優先度レベルは最も高く、非リアルタイムタスクそれぞれにはリアルタイムタスクよりも低い優先度レベルが割り当てられる。これにより、リアルタイムタスクは非リアルタイムタスクよりも優先して実行される。
スケジューリングテーブル25は周期実行すべきタスクを登録するためのテーブルである。スケジューリングテーブル25は、上述のスケジュール情報として、リアルタイムタスクの実行期間を予約するプロセッサ時間割り当て情報を管理する。リアルタイムタスクはスケジューリングテーブル25に登録され、リアルタイムタスクの実行開始タイミングおよび実行期間が予約される。これにより、リアルタイムタスク毎にその実行開始タイミングおよび実行期間が規定される。非リアルタイムタスクは、リアルタイムタスクの実行期間以外の残りの空き時間を利用して実行される。スケジューリングテーブル25は、リアルタイムタスクに、決められたタイミングで周期的にCPU時間を割り当てるために利用される。
ディスパッチャ23は、スケジューリングキュー24またはスケジューリングテーブル25にしたがって、タスクをCPU11にディスパッチする。このディスパッチャ23は、スケジューラ22がタスクスイッチ(コンテクストスイッチ)が必要である判断した場合、スケジューリングキュー24またはスケジューリングテーブル25を参照して、タスクスイッチを実行する。なお、スケジューラ22とディスパッチャ23とを合わせたたものをスケジューラと称することもある。
OS21は、さらに、CPU速度制御モジュール26を含んでいる。CPU速度制御モジュール26は、上述のCPU速度制御処理を実行する。CPU速度制御モジュール26は、CPU11の温度がある閾値を超えた時、CPU Stop Taskが定期的にCPU11によって実行されるようにCPU Stop Taskの実行期間をリアルタイムタスクの実行期間以外の他の期間に割り当てるための処理を実行する。CPU Stop Taskの実行期間をリアルタイムタスクの実行期間以外の他の期間に割り当てるための処理は、スケジュール情報を変更することによって実現される
具体的には、CPU速度制御モジュール26は、(1)リアルタイムタスクに割り当てられた優先度レベルに次いで高い優先度レベルがCPU Stop Taskに割り当てられるようにCPU Stop Taskの優先度レベルを変更する処理、あるいは(2)リアルタイムタスクの実行期間以外の他の期間にCPU Stop Taskの実行期間が予約されるようにCPU Stop Taskの実行期間を予約する処理、を実行する。
CPU速度制御モジュール26は、スケジューラ22に対してスケジュール情報の更新を依頼することにより、あるいはスケジューリングキュー24またはスケジューリングテーブル25を直接更新することにより、CPU Stop Taskの優先度レベルの変更、またはCPU Stop Taskのための実行期間の予約を行う。
次に、図2乃図4を参照して、プロセッサ時間割り当て情報の更新によってCPU Stop Taskを定期的に実行する方法について説明する。
図2には、スケジューリングテーブル25のプロセッサ時間割り当て情報にしたがって、リアルタイムタスクとCPU Stop Taskとが周期的に実行される様子が示されている。図2の例においては、各サイクルタイム内に、リアルタイム処理を実行するための期間T1と非リアルタイム処理を実行するための期間T2とが定義されている。2つのリアルタイムタスクA,Bには、サイクルタイム毎にその期間T1においてCPU時間が割り当てられる。CPU Stop Taskには、サイクルタイム毎にその期間T2においてCPU時間が割り当てられる。CPU Stop Taskに割り当てられたCPU時間に対応する期間中は、CPU11の動作は停止されている。CPU Stop Taskに割り当てられたCPU時間以外の期間中は、CPU11は、その100%の動作速度で動作する。CPU Stop Taskに割り当てられたCPU時間の長さが1つのサイクルタイムの長さの20%であるならば、CPU11の平均動作速度は80%に低減される。リアルタイムタスクA,Bは、常に、100%の動作速度で動作するCPU11によって実行されるので、リアルタイム性を損なうことなく、CPU11の動作速度を低減することができる。
図3には、CPU11の温度が閾値以下の場合に対応するスケジューリングの様子が示されている。リアルタイムタスクA,Bは、スケジューリングテーブル25に登録されており、リアルタイムタスクA,Bそれぞれに割り当てるべきCPU時間が予約されている。
リアルタイムタスクA,Bは、CPU時間割り当て情報にしたがって、各サイクルタイムの期間T1において実行される。非リアルタイムタスクCはスケジューリングキュー24に登録されている。各サイクルタイムの期間T2においては、スケジューリングキュー24に登録されている非リアルタイムタスクCが実行される。
図4には、CPU11の温度が閾値を超えた場合に対応するスケジューリングの様子が示されている。CPU速度制御モジュール26は、CPU Stop Taskの実行期間が各サイクルタイムの期間T2に予約されるように、CPU Stop Taskをスケジューリングテーブル25に登録してそのCPU Stop Taskに割り当てるべきCPU時間を予約する。CPU Stop Taskに対して予約されるCPU時間としては、上述したように各サイクルタイムの期間T2が利用される。スケジューリングキュー24に登録されている非リアルタイムタスクCは、各サイクルタイムの期間T2内において、CPU Stop Taskに対して予約された実行期間以外の残りの期間を利用して実行される。
次に、図5乃至図7を参照して、優先度情報の更新によってCPU Stop Taskを定期的に実行する方法について説明する。
図5には、スケジューリングキュー24の構成例が示されている。スケジューリングキュー24は、優先度レベルが互いに異なるいくつかのスケジューリングキューを含む。例えば、5つの優先度レベルそれぞれに対応する5つのスケジューリングキュー241〜245によってスケジューリングキュー24が構成される。最も優先度レベルが高いスケジューリングキュー241には、リアルタイムタスクA,Bが登録される。非リアルタイムタスクC,Dは、例えば、スケジューリングキュー243に登録される。CPU Stop Taskは、通常は、最も優先度レベルが低いスケジューリングキュー245に登録されている。CPU11の温度が閾値を超えたとき、CPU速度制御モジュール26は、CPU Stop Taskの優先度レベルを変更し、第2位の優先度レベルが割り当てられたスケジューリングキュー242にCPU Stop Taskに登録する。これにより、CPU Stop Taskは、リアルタイムタスクA,Bの実行期間以外の他の期間中に、非リアルタイムタスクC,Dよりも優先して実行される。
図6には、CPU11の温度が閾値以下である場合に対応するスケジューリングの様子が示されている。優先度レベルが高い順に、タスクA,B,C,Dが順次実行される。CPU Stop Taskの優先度レベルは最下位であるので、実行可能な他のタスクが存在する限り、CPU Stop Taskは実行されない。
図7には、CPU11の温度が閾値を超えた場合に対応するスケジューリングの様子が示されている。CPU Stop Taskの優先度レベルはリアルタイムタスクA,Bに次いで高い優先度レベルに変更されるので、優先度レベルが高い順に、タスクA,タスクB,CPU Stop Task,そしてタスクC,Dが順次実行される。
図6と図7を比較するとわかるように、CPU Stop Taskの優先度レベルの変更前および変更後のどちらでも、リアルタイムタスクA,Bそれぞれの実行タイミングは変化しない。
次に、図8のフローチャートを参照して、OS21によって実行されるスケジューリング処理について説明する。
CPU速度制御モジュール26は、温度センサ14によって検出されたCPU11の温度が閾値を超えたかどうかを判断する(ステップS101)。ステップS101においては、CPU速度制御モジュール26は、システムコントローラ12内のレジスタにセットされているCPU温度をリードし、そのリードしたCPU温度と閾値とを比較する。また、CPU11に割り込み信号を供給して、CPU温度が閾値を超えたことをCPU速度制御モジュール26に通知するようにしてもよい。
温度センサ14によって検出されたCPU11の温度が閾値を超えたならば(ステップS101のYES)、CPU速度制御モジュール26は、CPU Stop Taskの優先度レベルを上げること、あるいはCPU Stop Taskに割り当てるべきCPU時間を予約すること、をスケジューラ22に対して要求する(ステップS102)。スケジューラ22は、CPU速度制御モジュール26からの要求にしたがって、スケジューリングキュー24の優先度情報またはスケジューリングテーブル25のCPU時間割当て情報を変更する(ステップS103)。
このステップS103では、CPU Stop Taskの優先度レベルがリアルタイムタスクに次ぐ第2の優先度レベル(つまり、リアルタイムタスクの優先度レベルと非リアルタイムタスクの優先度レベルとの間の中間の優先度レベル)になるように優先度情報を変更する処理、またはCPU Stop TaskにCPU時間が予約されるようにCPU時間割り当て情報を変更する処理が実行される。
ディスパッチャ23は、スケジューリングキュー24またはスケジューリングテーブル25から次に実行すべきタスクを取り出す(ステップS104)。次に実行すべきタスクがCPU Stop Taskであれば(ステップS105のYES)、CPU Stop TaskがCPU11にディスパッチされて実行される(ステップS106)。CPU Stop TaskはHALT命令を含んでいるので、CPU11がCPU Stop Taskを実行したとき、CPU11の動作は停止される。CPU11に対してタイマ割り込みのような割り込み信号がスケジューリングイベントとして入力されると(ステップS107のYES)、CPU11は動作を再開する(ステップS108)。
一方、次に実行すべきタスクがCPU Stop Task以外の他のタスクであれば(ステップS105のNO)、リアルタイムタスクまたは非リアルタイムタスクがCPU11にディスパッチされて実行される(ステップS111)。CPU11にディスパッチされたリアルタイムタスクまたは非リアルタイムタスクは、CPU11にタイマ割り込みのような割り込み信号がスケジューリングイベントとして入力されるまで(ステップS107のNO)、継続して実行される(ステップS113)。CPU11にタイマ割り込みのような割り込み信号がスケジューリングイベントとして入力されると(ステップS107のYES)、ステップS101の処理に戻る。
CPU11が動作を再開すると(ステップS108)、温度センサ14によって検出されたCPU11の温度が閾値以下になったかどうかがCPU速度制御モジュール26によって判断される(ステップS109)。もしCPU11の温度が閾値以下であれば(ステップS109のYES)、CPU速度制御モジュール26は、CPU Stop Taskの優先度レベルを下げること、あるいはCPU Stop Taskに対するCPU時間の予約を解除すること、をスケジューラ22に対して要求する(ステップS110)。スケジューラ22は、CPU速度制御モジュール26からの要求にしたがって、スケジューリングキュー24の優先度情報またはスケジューリングテーブル25のCPU時間割当て情報を変更する(ステップS103)。これにより、以降は、CPU11はその100%の動作速度で動作する。
もしCPU11の温度が閾値以下に下がっていない場合には(ステップS109のNO)、ステップS110,S103の処理は実行されない。CPU11の温度が閾値以下に下がるまで、CPU Stop Taskは定期的に実行される。
なお、CPU11の動作が再開されるたびに、CPU Stop Taskがディスパッチされてからの経過時間の長さをチェックし、その経過時間が予め与えられた時間に達するまで、CPU Stop Taskを継続して実行するようにしてもよい。この場合、CPU Stop TaskをCPU11にディスパッチする処理が、何回か連続して繰り返されることになる。
以上のように、本実施形態によれば、リアルタイムタスクの動作に影響を及ぼすことなく、CPU11の動作速度を低減することが出来る。さらに、CPU Stop Taskの優先順位の変更、またはCPU Stop Taskに対して割り当てるべきCPU時間の予約を行うだけで、リアルタイムタスクの動作に影響を及ぼすことなくCPU Stop Taskを定期的に実行することが出来るので、OS21が有する通常のスケジューリングアルゴリズムを変更する必要もない。
また、本実施形態のCPU速度制御処理はコンピュータプログラムによって実現されているので、そのコンピュータプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータにインストールするだけで、本実施形態と同様の効果を容易に得ることが可能である。
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明の一実施形態に係る電子機器のシステム構成を示すブロック図。 図1のシステムにおいてリアルタイムタスクとCPU Stop Taskが周期的に実行される様子を示す図。 図1のシステムに設けられたCPUの温度が閾値以下の場合に対応するスケジューリングの例を示す図。 図1のシステムに設けられたCPUの温度が閾値を越えた場合に対応するスケジューリングの例を示す図。 図1のシステムで用いられるスケジューリングキューの構成例を示す図。 図5のスケジューリングキューを用いて、CPUの温度が閾値以下の場合に実行されるスケジューリングの例を示す図。 図5のスケジューリングキューを用いて、CPUの温度が閾値を越えた場合に実行されるスケジューリングの例を示す図。 図1のシステムにおいて実行されるCPU速度制御処理の手順を示すフローチャート。
符号の説明
11…CPU、13…メモリ、14…温度センサ、21…オペレーティングシステム、22…スケジューラ、23…ディスパッチャ、24…スケジューリングキュー、25…スケジューリングテーブル、26…CPU速度制御モジュール。

Claims (10)

  1. プロセッサと、
    リアルタイム処理を実行するためのリアルタイムタスクを含む複数のタスクの実行順序を制御するためのスケジュール情報に従って、前記リアルタイムタスクが優先して実行されるように前記複数のタスクを前記プロセッサに割り当てるためのスケジューリング処理を実行する手段と、
    前記プロセッサの温度を検出する温度検出器と、
    前記温度検出器によって検出される前記プロセッサの温度が所定の閾値を越えた場合、前記プロセッサの動作を停止する命令を含むプロセッサ停止タスクが定期的に実行されるように、前記プロセッサ停止タスクの実行期間を前記リアルタイムタスクの実行期間以外の他の期間中に割り当てるための処理を実行する手段とを具備することを特徴とする電子機器。
  2. 前記スケジュール情報は、前記複数のタスクそれぞれに割り当てられた優先度レベルを示す情報を含み、
    前記プロセッサ停止タスクの実行期間を前記リアルタイムタスクの実行期間以外の他の期間中に割り当てるための処理を実行する手段は、前記リアルタイムタスクに割り当てられた優先度レベルに次いで高い優先度レベルが前記プロセッサ停止タスクに割り当てられるように前記プロセッサ停止タスクの優先度レベルを変更する手段を含むことを特徴とする請求項1記載の電子機器。
  3. 前記スケジュール情報は、前記複数のタスクそれぞれに割り当てられた優先度レベルを示す情報を含み、
    前記プロセッサ停止タスクの実行期間を前記リアルタイムタスクの実行期間以外の他の期間中に割り当てるための処理を実行する手段は、前記温度検出器によって検出される前記プロセッサの温度が所定の閾値を越えた場合、前記プロセッサ停止タスクの優先度レベルが最下位の優先度レベルから、前記リアルタイムタスクに割り当てられた優先度レベルに次いで高い優先度レベルに変更されるように前記プロセッサ停止タスクの優先度レベルを変更する手段を含むことを特徴とする請求項1記載の電子機器。
  4. 前記スケジュール情報は、前記リアルタイムタスクの実行期間を予約するプロセッサ時間割り当て情報を含み、
    前記プロセッサ停止タスクの実行期間を前記リアルタイムタスクの実行期間以外の他の期間中に割り当てるための処理を実行する手段は、前記リアルタイムタスクの実行期間以外の他の期間に前記プロセッサ停止タスクの実行期間を予約する手段を含むことを特徴とする請求項1記載の電子機器。
  5. 前記スケジューリング処理を実行する手段は、前記リアルタイムタスクが各サイクルタイム内の第1の期間に実行され、且つ前記リアルタイムタスク以外の他のタスクが前記各サイクルタイム内の第2の期間に実行されるように、前記スケジュール情報に従って前記スケジューリング処理を実行する手段を含み、
    前記プロセッサ停止タスクの実行期間を前記リアルタイムタスクの実行期間以外の他の期間中に割り当てるための処理を実行する手段は、前記温度検出器によって検出される前記プロセッサの温度が所定の閾値を越えた場合、前記プロセッサ停止タスクが前記リアルタイムタスク以外の他のタスクよりも優先して前記各サイクルタイム内の前記第2の期間内に実行されるように前記プロセッサ停止タスクの実行期間を前記各サイクルタイム内の前記第2の期間に予約する手段を含むことを特徴とする請求項1記載の電子機器。
  6. プロセッサの動作速度を制御するプロセッサ速度制御方法であって、
    リアルタイム処理を実行するためのリアルタイムタスクを含む複数のタスクの実行順序を制御するためのスケジュール情報に従って、前記リアルタイムタスクが優先して実行されるように前記複数のタスクを前記プロセッサに割り当てるためのスケジューリング処理を実行するステップと、
    前記プロセッサの温度が所定の閾値を越えたか否かを判別するステップと、
    前記プロセッサの温度が所定の閾値を越えた場合、前記プロセッサの動作を停止する命令を含むプロセッサ停止タスクが前記プロセッサによって定期的に実行されるように、前記プロセッサ停止タスクの実行期間を前記リアルタイムタスクの実行期間以外の他の期間中に割り当てるための処理を実行するステップとを含むことを特徴とするプロセッサ速度制御方法。
  7. 前記スケジュール情報は、前記複数のタスクそれぞれに割り当てられた優先度レベルを示す情報を含み、
    前記プロセッサ停止タスクの実行期間を前記リアルタイムタスクの実行期間以外の他の期間中に割り当てるための処理を実行するステップは、前記リアルタイムタスクに割り当てられた優先度レベルに次いで高い優先度レベルが前記プロセッサ停止タスクに割り当てられるように前記プロセッサ停止タスクの優先度レベルを変更するステップを含むことを特徴とする請求項6記載のプロセッサ速度制御方法。
  8. 前記スケジュール情報は、前記複数のタスクそれぞれに割り当てられた優先度レベルを示す情報を含み、
    前記プロセッサ停止タスクの実行期間を前記リアルタイムタスクの実行期間以外の他の期間中に割り当てるための処理を実行するステップは、前記プロセッサの温度が所定の閾値を越えた場合、前記プロセッサ停止タスクの優先度レベルが最下位の優先度レベルから、前記リアルタイムタスクに割り当てられた優先度レベルに次いで高い優先度レベルに変更されるように前記プロセッサ停止タスクの優先度レベルを変更するステップを含むことを特徴とする請求項6記載のプロセッサ速度制御方法。
  9. 前記スケジュール情報は、周期実行すべきタスクに対して割り当てるべきプロセッサ時間を予約するためのプロセッサ時間割り当て情報を含み、
    前記プロセッサ停止タスクの実行期間を前記リアルタイムタスクの実行期間以外の他の期間中に割り当てるための処理を実行するステップは、前記リアルタイムタスクの実行期間以外の他の期間に前記プロセッサ停止タスクの実行期間を予約するステップを含むことを特徴とする請求項6記載のプロセッサ速度制御方法。
  10. 前記スケジューリング処理を実行するステップは、前記リアルタイムタスクが各サイクルタイム内の第1の期間に実行され、且つ前記リアルタイムタスク以外の他のタスクが前記各サイクルタイム内の第2の期間に実行されるように、前記スケジュール情報に従って前記スケジューリング処理を実行するステップを含み、
    前記プロセッサ停止タスクの実行期間を前記リアルタイムタスクの実行期間以外の他の期間中に割り当てるための処理を実行するステップは、前記プロセッサの温度が所定の閾値を越えた場合、前記プロセッサ停止タスクが前記リアルタイムタスク以外の他のタスクよりも優先して前記各サイクルタイム内の前記第2の期間内に実行されるように前記プロセッサ停止タスクの実行期間を前記各サイクルタイム内の前記第2の期間に予約するステップを含むことを特徴とする請求項6記載のプロセッサ速度制御方法。
JP2003400788A 2003-11-28 2003-11-28 電子機器およびプロセッサ速度制御方法 Expired - Fee Related JP4213572B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003400788A JP4213572B2 (ja) 2003-11-28 2003-11-28 電子機器およびプロセッサ速度制御方法
US10/958,140 US20050120252A1 (en) 2003-11-28 2004-10-05 Electric apparatus and processor speed control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003400788A JP4213572B2 (ja) 2003-11-28 2003-11-28 電子機器およびプロセッサ速度制御方法

Publications (2)

Publication Number Publication Date
JP2005165470A true JP2005165470A (ja) 2005-06-23
JP4213572B2 JP4213572B2 (ja) 2009-01-21

Family

ID=34616666

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003400788A Expired - Fee Related JP4213572B2 (ja) 2003-11-28 2003-11-28 電子機器およびプロセッサ速度制御方法

Country Status (2)

Country Link
US (1) US20050120252A1 (ja)
JP (1) JP4213572B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009025950A (ja) * 2007-07-18 2009-02-05 Koyo Electronics Ind Co Ltd Cpu搭載電子装置のcpu冷却方法および該cpu搭載電子装置
JP2009087223A (ja) * 2007-10-02 2009-04-23 Fujitsu Ltd 処理性能調整機能を有するモジュール,処理性能調整方法および処理性能調整プログラム
US8046634B2 (en) 2006-11-06 2011-10-25 Samsung Electronics Co., Ltd. Integrated circuit card with condition detector
JP2012533828A (ja) * 2009-07-23 2012-12-27 エンパイア テクノロジー ディベロップメント エルエルシー スレッドスロットリング
JP2014521169A (ja) * 2011-07-14 2014-08-25 クアルコム,インコーポレイテッド ポータブルコンピューティングデバイスにおける熱エネルギー生成を低減するための方法およびシステム
US8924975B2 (en) 2009-07-23 2014-12-30 Empire Technology Development Llc Core selection for applications running on multiprocessor systems based on core and application characteristics
WO2022190424A1 (ja) * 2021-03-08 2022-09-15 オムロン株式会社 情報処理装置およびプログラム
WO2022190425A1 (ja) * 2021-03-08 2022-09-15 オムロン株式会社 制御装置および制御方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3914230B2 (ja) * 2004-11-04 2007-05-16 株式会社東芝 プロセッサシステム及びその制御方法
TWI307012B (en) * 2005-11-17 2009-03-01 Via Tech Inc Idle state adjusting method and logical chip and computer system using the same
US20090271548A1 (en) * 2006-06-23 2009-10-29 Freescale Semiconductor, Inc. Interrupt response control apparatus and method therefor
JP4804490B2 (ja) * 2008-02-18 2011-11-02 富士通株式会社 情報処理装置、情報処理方法、情報処理プログラム
US8311683B2 (en) 2009-04-29 2012-11-13 International Business Machines Corporation Processor cooling management
US9268389B2 (en) * 2010-03-23 2016-02-23 Sony Corporation Reducing power consumption on a processor system by masking actual processor load with insertion of dummy instructions
US10346276B2 (en) * 2010-12-16 2019-07-09 Microsoft Technology Licensing, Llc Kernel awareness of physical environment
KR20150008950A (ko) * 2013-06-26 2015-01-26 삼성전자주식회사 온도 제어 방법 및 이를 적용한 단말 장치
US20160170474A1 (en) * 2013-08-02 2016-06-16 Nec Corporation Power-saving control system, control device, control method, and control program for server equipped with non-volatile memory
US9886326B2 (en) * 2014-02-13 2018-02-06 Advanced Micro Devices, Inc. Thermally-aware process scheduling
US10528097B2 (en) 2016-03-10 2020-01-07 International Business Machines Corporation Chip transient temperature predictor
CN106293909B (zh) * 2016-07-29 2019-06-14 华东师范大学 一种对异构多核处理器温度-调度长度感知的实时任务调度方法
US9753773B1 (en) 2016-10-19 2017-09-05 International Business Machines Corporation Performance-based multi-mode task dispatching in a multi-processor core system for extreme temperature avoidance
US9747139B1 (en) 2016-10-19 2017-08-29 International Business Machines Corporation Performance-based multi-mode task dispatching in a multi-processor core system for high temperature avoidance
JP7172625B2 (ja) * 2019-01-16 2022-11-16 トヨタ自動車株式会社 情報処理装置
KR20210101081A (ko) * 2020-02-07 2021-08-18 삼성전자주식회사 프로세스를 제어하는 전자 장치 및 그 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0776894B2 (ja) * 1991-02-25 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション プロセッサ用クロック信号の制御方法及び情報処理システム
US6463396B1 (en) * 1994-05-31 2002-10-08 Kabushiki Kaisha Toshiba Apparatus for controlling internal heat generating circuit
JPH0954699A (ja) * 1995-08-11 1997-02-25 Fujitsu Ltd 計算機のプロセススケジューラ
US20040088704A1 (en) * 2002-10-30 2004-05-06 Advanced Simulation Technology, Inc. Method for running real-time tasks alongside a general purpose operating system

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8046634B2 (en) 2006-11-06 2011-10-25 Samsung Electronics Co., Ltd. Integrated circuit card with condition detector
JP2009025950A (ja) * 2007-07-18 2009-02-05 Koyo Electronics Ind Co Ltd Cpu搭載電子装置のcpu冷却方法および該cpu搭載電子装置
JP2009087223A (ja) * 2007-10-02 2009-04-23 Fujitsu Ltd 処理性能調整機能を有するモジュール,処理性能調整方法および処理性能調整プログラム
JP2012533828A (ja) * 2009-07-23 2012-12-27 エンパイア テクノロジー ディベロップメント エルエルシー スレッドスロットリング
US8819686B2 (en) 2009-07-23 2014-08-26 Empire Technology Development Llc Scheduling threads on different processor cores based on memory temperature
US8924975B2 (en) 2009-07-23 2014-12-30 Empire Technology Development Llc Core selection for applications running on multiprocessor systems based on core and application characteristics
JP2014521169A (ja) * 2011-07-14 2014-08-25 クアルコム,インコーポレイテッド ポータブルコンピューティングデバイスにおける熱エネルギー生成を低減するための方法およびシステム
US9383804B2 (en) 2011-07-14 2016-07-05 Qualcomm Incorporated Method and system for reducing thermal load by forced power collapse
WO2022190424A1 (ja) * 2021-03-08 2022-09-15 オムロン株式会社 情報処理装置およびプログラム
WO2022190425A1 (ja) * 2021-03-08 2022-09-15 オムロン株式会社 制御装置および制御方法

Also Published As

Publication number Publication date
US20050120252A1 (en) 2005-06-02
JP4213572B2 (ja) 2009-01-21

Similar Documents

Publication Publication Date Title
JP4213572B2 (ja) 電子機器およびプロセッサ速度制御方法
JP3922070B2 (ja) 分散制御方法及び装置
US7954101B2 (en) Skipping non-time-critical task according to control table when operating frequency falls
JP5324934B2 (ja) 情報処理装置および情報処理方法
US20090172428A1 (en) Apparatus and method for controlling power management
JPWO2005106623A1 (ja) Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
JP5347451B2 (ja) マルチプロセッサシステム、競合回避プログラム及び競合回避方法
WO2012001835A1 (ja) マルチプロセッサシステム
EP2677377A1 (en) Safety control device and safety control method
KR100731983B1 (ko) 저전력 무선 디바이스 프로세서용 하드와이어드 스케줄러및 스케줄링 방법
KR100959548B1 (ko) 인터럽트 스케줄링 방법
US10271326B2 (en) Scheduling function calls
JP3962370B2 (ja) 資源予約システムおよび資源予約方法および該方法を実行するためのプログラムが記録された記録媒体
WO2012036954A2 (en) Scheduling amongst multiple processors
JP2013152636A (ja) 情報処理装置、タスクスケジューリング方法
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
JPWO2018211865A1 (ja) 車両制御装置
JP2005149312A (ja) タスク管理システム
JP2019079336A (ja) 数値制御装置
US20150331466A1 (en) Method and apparatus for managing a thermal budget of at least a part of a processing system
JP2009048358A (ja) 情報処理装置及びスケジューリング方法
JP2016184315A (ja) 電子制御装置
JP2010224853A (ja) ベクトル計算機およびベクトル計算機におけるマイクロプロセッサのスケジューリング方法
TW200422942A (en) Performance level setting of a data processing system
CN110109743B (zh) 一种实时进程调度方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061023

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080930

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

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

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

Free format text: PAYMENT UNTIL: 20111107

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111107

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121107

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131107

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees