JP2003337713A - プロセッサの制御方法 - Google Patents

プロセッサの制御方法

Info

Publication number
JP2003337713A
JP2003337713A JP2002146077A JP2002146077A JP2003337713A JP 2003337713 A JP2003337713 A JP 2003337713A JP 2002146077 A JP2002146077 A JP 2002146077A JP 2002146077 A JP2002146077 A JP 2002146077A JP 2003337713 A JP2003337713 A JP 2003337713A
Authority
JP
Japan
Prior art keywords
processor
time
execution
processing
control
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.)
Pending
Application number
JP2002146077A
Other languages
English (en)
Inventor
Toshiyuki Aritsuka
俊之 在塚
Kazuo Aisaka
一夫 相坂
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002146077A priority Critical patent/JP2003337713A/ja
Publication of JP2003337713A publication Critical patent/JP2003337713A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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

Abstract

(57)【要約】 【課題】 マルチタスクOS(Operating System)によ
るソフトウェア制御システム環境において、時間制約が
あり且つ負荷変動のある複数のタスクを実行させる際
に、プロセッサの消費電力を効果的に節減することの出
来るプロセッサの制御方法を提供することにある。 【解決手段】 監視部300とカウンタ処理部203に
より時間制約があり負荷変動のあるタスクの処理の進行
度を計測し、平均化部206によりこの進行度の時間平
均を単位時間ごとに演算し、判定部207によりこの時
間平均と予め設定された閾値とを比較して、この比較結
果に基づき電圧設定部209、周波数設定部210、タ
スク実行制御部211により上記第1制御フローを実行
する際のプロセッサの動作周波数の変更或いは上記第1
制御フローの実行優先度の切換えを行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、動作周波数の制
御やタスクの管理を行うプロセッサの制御方法に関し、
時間制約が課された処理を実行するマイクロプロセッサ
等に利用して有用な技術に関する。
【0002】
【従来の技術】近年、PDA(携帯型情報端末)、携帯
電話機および家庭電化製品など、様々な機器にプロセッ
サが組み込まれるようになってきている。それに伴い、
バッテリの持続時間の向上や発熱への対策を目的とし
て、プロセッサを中心とする電子回路の節電の必要性が
高まっている。プロセッサの節電には、回路構成を低消
費電力化するなどハードウェア的なアプローチのほか、
ソフトウェアの実行状況に合わせてプロセッサの動作条
件を調整するなど動作制御によるアプローチがある。電
子機器の制御や映像音声信号の圧縮・展開などマルチメ
ディア系の処理では、処理が複雑であるためマルチタス
クOS(Operating System)が用いられる傾向が強まっ
ているが、このようなマルチタスクOS環境下で効果的
にタスクの実行を制御し、消費電力を節減する方法が必
要となっている。
【0003】以上のような要求から、従来、プロセッサ
の動作制御による低消費電力化の技術について幾つかの
提案がなされている。例えば特開平7−294594号
公報(従来技術1)には、他に実行すべきタスクが存在
しない時に起動されるアイドルタスク中のNOP命令
を、プロセッサの動作を停止する命令に置き換えること
により、アイドル時の消費電力を節減する方法が開示さ
れ、特開平8−76874号公報(従来技術2)には、
複数のタスクのそれぞれに対し性能情報を付与してお
き、その性能情報に基づいて各タスク毎に必要な動作周
波数を設定して実行する方法が開示されている。
【0004】また、特開平11−353052号公報
(従来技術3)においては、プログラム開発者がプログ
ラム作成時に低消費電力化を考慮して設計を行う負担を
低減するため、プロセッサの温度や電流、実行命令の種
類によってプロセッサの動作状況を判断し、プロセッサ
が忙しいときには高速に忙しくないときは低速に動作さ
せるなど、プロセッサの動作状況に適した動作周波数で
プロセッサを動作させる方法が開示されている。特開2
001−34357号公報(従来技術4)においては外
部メモリへのアクセス領域に応じてプロセッサの動作状
況を判断し、従来技術3の場合と同様に動作状況に適し
た動作周波数でプロセッサを動作させる方法が、特開2
001−109538号公報(従来技術5)においては
メモリ上のアイドルタスク固有のメモリアドレスへのア
クセス頻度に基づいてプロセッサの動作状況を判断し、
従来技術3の場合と同様に動作状況に適した動作周波数
でプロセッサを動作させる方法が開示されている。
【0005】さらに、時間制約のあるタスクを持つシス
テムの消費電力を節減する方法として、「大隈他、信学
技報 VLD98-129, CPSY98-149 (1998/12), pp.87-94」
(従来技術6)には、あらかじめ実行順序が設定されて
いる複数のタスクに対し、タスクの切り替わり時に、こ
れから実行されるタスクのデッドライン時間までの余裕
を考慮してできるだけ低い動作周波数、および該動作周
波数で動作可能なできるだけ低い動作電圧でプロセッサ
を動作させる方法が開示されている。「川口他、信学技
報ICD2001-32 (2001/05), pp.59-65」(従来技術7)に
は、各々のタスクプログラムを複数のスライスに分割
し、対象タスクのデッドライン時間から、これまでに実
行完了したスライスの累積実行時間、および残りのスラ
イスの累積実行時間の最大値を除いた残り時間を計算
し、その時間内に次のスライスの実行が完了するように
動作周波数および動作電圧を調整する方法が開示されて
いる。
【0006】
【発明が解決しようとする課題】一般に、プログラムに
よる処理をある制限時間内に完了させる場合、プロセッ
サを高い動作周波数および動作電圧で動作させてプログ
ラムを高速に実行し、プロセッサがアイドル状態になっ
てからプロセッサを停止させる方法に較べて、プロセッ
サを低い動作周波数および動作電圧で動作させ、制限時
間をいっぱいに使ってプログラムを実行させた方が節電
効果が高くなる。これは、動作周波数を下げることで、
その周波数で動作可能とされる動作電圧の設定範囲も低
くなり、動作周波数を低くするのに伴って動作電圧も低
下させることが出来るからである。しかしながら、上記
従来技術1では、プロセッサがアイドル状態の時にプロ
セッサを停止させるのみであるため、節電効果は十分で
ない。
【0007】また、プログラム処理の中には、一定の処
理を実行するのに時間制約が課され、且つ、処理の負荷
が動的に変化するものがある。例えばMPEG(Motion
Pictures Experts Group)動画のデコード処理などで
は、映像データのバッファ期間に15フレーム分の映像
データをデコードしなければならないなどの時間制約が
課され、且つ、映像の内容に応じて1フレームのデコー
ドに要する演算処理の回数が異なるなどデコード処理の
負荷は動的に変化する。しかしながら、上記従来技術2
では、複数のタスクの各々に対し、負荷に応じた動作周
波数を設定してプロセッサを動作させるが、タスクの負
荷が動的に変化する場合、およびタスクに時間制約があ
る場合が考慮されていない。
【0008】また、上記従来技術3〜5では、プロセッ
サの動作状況を判断し、該動作状況に適した動作周波数
でプロセッサを動作させるなど、タスクの負荷が動的に
変化する場合のことが考慮されているが、タクスに時間
制約が課されている場合のことが考慮されていない。さ
らに、上記従来技術6および7は、時間制約のあるマル
チタスクシステムの低消費電力化を目的としているが、
実行状況によって複数のタスクが適宜切り替わるシステ
ムに対し、タスクごとに独立に実行状況を見積もってい
るため、予めタスクが切り替わるタイミングが予想でき
ない場合のことが考慮されていない。
【0009】この発明の目的は、時間制約があり且つ負
荷が動的に変化するタスクを処理する場合でも、プロセ
ッサを最適な状態で動作させて効率的な低消費電力化を
図ることの出来るプロセッサの制御方法を提供すること
にある。この発明の前記ならびにそのほかの目的と新規
な特徴については、本明細書の記述および添附図面から
明らかになるであろう。
【0010】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を説明すれば、下記のと
おりである。すなわち、一定量の処理を行うのに時間制
約が課せられ且つ負荷が動的に変化する第1制御フロー
を実行するのに、時間制約の開始時点から第1制御フロ
ーの実行量を計測し、累積的な上記実行量の時間平均を
単位時間ごとに演算し、この時間平均に基づきプロセッ
サの動作周波数や該第1制御フローの処理の優先度を変
更するようにしたものである。
【0011】このような方法によれば、第1制御フロー
の負荷が増加して実行量の時間平均が下がったらデッド
ライン時間までに一定量の処理が完了するように動作周
波数を上げたり、第1制御フローの負荷が減って実行量
の時間平均が上がったらデッドライン時間近くまで時間
をかけてゆっくり実行されるように動作周波数を下げる
など、負荷が動的に変化する制御フローに対して時間制
約を満たしつつ効果的な低消費電力化を図ることが出来
る。
【0012】また、例えば、複数の制御フローを平行処
理している場合には、第1制御フローの負荷が減って実
行量の時間平均が上がったら優先度を下げて他の制御フ
ローの処理を優先的に実行させたり、第1制御フローの
実行頻度が少なく実行量の時間平均が下がったら優先度
を上げて第1制御フローの実行を優先的に行うなど、負
荷が動的に変化する制御フローに対して時間制約を満た
しつつ効率的な並行処理を行うことができ、それにより
低消費電力化も図ることが出来る。
【0013】
【発明の実施の形態】以下、本発明の好適な実施例を図
面に基づいて説明する。図1は、本発明が適用されるプ
ロセッサの構成例を示すブロック図である。本発明の制
御方法が実施されるプロセッサ100は、プログラムに
従って演算処理を行うCPU101、CPU101が接
続される内部バス102A,102B、周辺モジュール
が接続される内部周辺バス103A,103B、外部メ
モリ104が接続される外部バス105A,105B、
それぞれのバスの状態を管理して各バスの間でアドレス
やデータの受渡しを行うバスステートコントローラ10
7、CPU101やプロセッサ内部の各モジュールに供
給する動作電圧の電圧値を制御する電圧制御ユニット
(電圧制御回路)109、外部発振器111からクロッ
ク信号を受けてCPU101やプロセッサ内部の各モジ
ュールに内部クロック信号を供給すると共にこの内部ク
ロック信号の周波数を制御する周波数制御ユニット(周
波数制御回路)112、実時間の計時を行うタイマユニ
ット113、プロセッサ内部の各モジュールから割込み
信号が発せられた場合に割込み制御を行う割込みコント
ローラ114、外部のI/Oデバイス116,117…
を接続して入出力制御を行うI/Oコントローラ11
5、外部アドレスバス105Aの信号を監視してCPU
101からアクセスされるメモリアドレスを抽出する監
視手段としてのアドレス判定ユニット119、および、
プロセッサ100の電力制御を行う電力コントローラ2
00等を備えている。
【0014】上記電圧制御ユニット109は、外部の電
源回路108から供給される電源電圧を所定電圧に調整
してプロセッサ100に供給するレギュレータ110を
制御することでプロセッサの動作電圧を変更する。この
プロセッサ100では、マルチタスクOSが実行され、
そのマルチタスクOS上で複数のアプリケーション・ソ
フトウェアが時分割並行処理により実行されるものであ
る。また、1つのアプリケーション・ソフトウェアにお
いても、複数の制御の流れ(制御フロー)を有する場合
があり、一般に、これら個々の制御の流れのことをタス
クと呼んでいる。また、1つのタスクにおいて、その一
部の処理が繰り返し行われるとともに、この繰返しの処
理により一定の処理を一定の時間内に行わなければなら
ないといった時間制約が課されている場合がある。例え
ば、MPEGデータのデコード処理において、15フレ
ーム分の映像データのデコードを15フレームのバッフ
ァ期間内に行わなければならない場合などである。以
下、このような時間制約の課されたタスクのことを時限
タスクと呼ぶ。
【0015】図2には、上記の電力コントローラの詳細
なブロック図を示す。電力コントローラ200は、監視
部300、カウンタ処理部203、時間計測部204、
平均化部206、判定部208、電圧設定部209、周
波数設定部210、タスク実行制御部211等を備えて
なる。なお、図1や図2では、電力コントローラ200
をハードウェアとして表しているが、同様の機能をCP
U101が実行するソフトウェアで実現することも出来
る。また、監視値テーブル201、実行頻度テーブル2
02、経過時間テーブル205、閾値テーブル208
は、それぞれメモリ104に形成されるものである。
【0016】上記監視部300は、後述する監視対象デ
ータOBSを監視して監視値テーブル201に設定され
た監視値MV_1〜MV_nと比較し、一致していた場
合にカウンタ処理部203に検出信号を出力する。カウ
ンタ処理部203は、監視部300から一致信号を入力
した場合に実行頻度テーブル202の格納領域FRQ_
1〜FRQ_nのうち所定領域の値をカウントアップす
る。この実行頻度テーブル202には、マルチタスクO
S上で実行される複数のタスクのうち時間制約のある各
時限タスクに対して1個または複数個の格納領域が割り
当てられている。そして、この格納領域に対応する時限
タスクにおける時間制約の課された処理の進行度を表わ
す実行量の値が格納されるようになっている。
【0017】詳細は後述するが、時限タスクには上記進
行度を計測する上で指標となる1個または複数個の動作
状態が設定されており、この状態を表わす監視値が監視
値テーブル201に設定されている。以下、この動作状
態のことを被監視状態と呼ぶ。従って、ある時限タスク
の実行中に被監視状態が発生した場合に、監視部300
においてこの状態が検出され、その検出信号に基づきカ
ウンタ処理部203が実行頻度テーブル202の当該時
限タスクに対応する格納領域の値をカウントアップする
ことで、実行頻度テーブル202に各時限タスクの実行
量がカウントされていく。
【0018】カウントアップする方式は単に「+1」イ
ンクリメントする方式のほか、1個の時限タスクに複数
の被監視状態DET1,DET2…DETiが設定され
ている場合に、各被監視状態DET1,DET2…DE
Tiに対してそれぞれ重み付けした係数G1,G2…G
iを設定しておき、或る被監視状態DETnが検出され
た場合にそれに対応した係数Gnを掛けた値を加算する
方式とすることも出来る。後者の方式は、1つの被監視
状態だけでは実行量の計測が出来ず、複数の被監視状態
の各々において時限タスクの進み具合が異なってくるよ
うな場合に有用である。
【0019】なお、図2では省略されているが、検出さ
れた監視値とカウントアップする実行頻度テーブル20
2の格納領域とを対応づけるために、その対応関係を表
わす対応テーブルが別途用意されているとともに、或る
監視値が検出された場合に、該監視値に対応する実行頻
度テーブル202の格納領域がどこか指し示す情報(例
えば格納領域番号)が監視部300からカウンタ処理部
203へ通知されるようになっている。また、カウンタ
処理部203は、システムの起動時において実行頻度テ
ーブル202の全領域の値を“0”にリセットし、ま
た、或る時限タスクが時間制約のデッドライン時間に達
したときに、該時限タスクに対応する実行頻度テーブル
202の格納領域の値を“0”にリセットする。
【0020】時間計測部204は、タイマユニット11
3で計時される実時間データに基づき予め決められた微
小な時間間隔ΔT(例えば1ms〜5ms)を単位時間
として計測し、この単位時間ごとに経過時間テーブル2
05の各格納領域T_1〜T_nの値に単位時間ΔTを
加算していく。この経過時間テーブル205にも、1個
の時限タスクごとに1個または複数個の格納領域が割り
当てられており、その値が、対応する時限タスクの時間
制約のデッドライン時間(すなわち次の時間制約の開始
時点)に達したときにリセットされるようになってい
る。従って、経過時間テーブル205の各格納領域T_
1〜T_nの値は、対応する時限タクスの時間制約の開
始時点からの経過時間を示すことになる。
【0021】平均化部206は、時間計測部204で計
測された単位時間ΔTごとに、各時限タスクの時間制約
の開始時点からの累積的な実行量の時間平均を演算す
る。すなわち、各時限タスクごとに、経過時間テーブル
205に格納された経過時間と、実行頻度テーブル20
2に格納された実行量とを読み出し、この実行量を経過
時間で除算する。そして、この時間平均を判定部207
に出力する。判定部207は、平均化部206から出力
された値と閾値テーブル208の対応する格納領域にあ
る閾値とを比較して、その大小を判定する。閾値テーブ
ル208には、1個の時限タスクに対応させて1個の格
納領域が割り当てられ、さらに、この格納領域に各時限
タスクの時間制約や処理内容に応じた後述する閾値TH
1,TH2,TH3が設定されている。これら閾値TH
1〜TH3や判定部207の判定内容については後述す
る。
【0022】電圧設定部209は、判定部207の判定
結果に基づき動作電圧値を設定して電圧制御ユニット1
09に送信し、それに基づき電圧制御ユニット109が
プロセッサ100の動作電圧を変更する。周波数設定部
210は、判定部207の判定結果に基づき動作周波数
を設定して周波数制御ユニット112に送信し、それに
基づき周波数制御ユニット112がプロセッサ100の
動作周波数を変更する。タスク実行制御部211は、判
定部207の判定結果に基づき、並行処理する複数のタ
スクの実行の切り替え設定など、タスクの実行制御に関
わる設定処理を行う。
【0023】次に、電力コントローラ200の監視部3
00およびカウント処理部203により行われる時限タ
スクの実行量の計測方法について説明する。図3には、
上記監視部300とその周辺構成の詳細を表わすブロッ
ク図を示す。この例は、予め、時限タスクの中に時間制
約のある処理の実行量を計測するための指標となる命令
コードを指定しておくとともに、CPU101からメモ
リ104へのリードアドレスを常に監視して、上記指定
の命令コードの読み出しがあったときにこれを検出し、
その検出を計数していくことで時限タスクの実行量を計
測する方式を適用したものである。以下、上記実行量を
計測するために指定される命令コードのことを特定コー
ドと呼ぶ。
【0024】この場合、監視部300には、CPU10
1からメモリ104へアクセスされるアドレスを抽出す
るアドレス判定ユニット119が接続され、該アドレス
判定ユニット119により抽出されたメモリ104への
リードアドレスが監視対象データOBSとして入力され
る。また、監視値テーブル201には、各時限タスクに
おいてその実行量を計測する上で指標となる命令コード
のアドレス値(ADR_1〜ADR_n)が設定されて
いる。監視部300は、アドレス判定ユニット119か
ら入力されるアドレスを受けるメモリアドレス監視部3
01と、該アドレスと監視値テーブル201の各値とを
比較して比較結果の信号を出力するアドレス比較部30
2とを備える。
【0025】ここで、実行量の計測のために指定される
特定コードについて説明する。図4は、実行制御される
第1制御フローとしての時限タスクの構成とその中の指
定される特定コードを説明する図である。図(a)に示
す第1制御フローとしてのタスク501は、マルチタス
クOS上で動作するソフトウェアの1つの制御フローで
あり、例えば、MPEG形式の映像データをデコードす
るタスクである。このようなタスクは、例えば、一定の
バッファ期間(例えば15フレーム期間)内に一定の映
像データをデコードしなければならないと云った時間制
約が課されるとともに、映像データの内容によって例え
ば1画面のデコード処理に必要な演算回数が異なると云
った負荷変動が生じるものである。
【0026】このタスク501は、一般的な構成とし
て、タスクの初期処理を行う初期処理モジュール502
と、タスクの終了処理を行う終了処理モジュール504
とを有し、これらの間に例えばデコード処理など主処理
を行う主処理モジュール503が設けられた構成となっ
ている。このようなタスク501においては、タスクの
起動時に初期処理モジュール502による初期処理が実
行された後、主処理モジュール503により例えばデコ
ード処理などの主処理が繰り返し行われる。そして、タ
クス501を終了させる際に終了処理モジュール504
により終了処理が行われる。
【0027】従って、このような構造のタスク501の
場合には、映像データのデコード量を計測するための指
標となる特定コードは、初期処理モジュール502や終
了処理モジュール504ではなく、主処理モジュール5
03内にあるものが指定されることになる。具体的に
は、時間制約のある処理量(例えば映像デコードの進行
度)とそのプログラムコードの実行回数とが依存関係に
あり、且つ、できるだけ実行頻度の高いプログラムコー
ド506を特定コードとして指定するのが望ましい。
【0028】実行頻度の高いプログラムコードを指定す
るのは、それによりタスクの実行量を細かな単位で計測
することが可能となり、その分、タスクの実行制御やプ
ロセッサの動作制御を精度良く行うことが可能となるか
らである。すなわち、例えば、1フレーム分のデコード
処理に1回しか実行されないコードを指定した場合に
は、タスク処理の実行量は1フレーム単位でしか計測で
きず、時間制約を満たすように行われるタスクの実行制
御も大まかなものとなるが、1フレーム分の映像を多数
の分割した1ブロックのデコード処理ごとに1回実行さ
れるようなコードを指定すれば、タスク処理の実行量は
ブロック単位で計測できるので、タスクの実行制御も詳
細に行うことができる。
【0029】また、図4(b)に示すように、主処理部
515の構成が複雑で、1つのプログラムコードを指定
しただけでは、タクス処理の実行量をうまく計測できな
いような場合には、複数のプログラムコード513,5
14を特定コードとして指定することで対応する。すな
わち、図4(b)に示す第1制御フローとしてのタスク
507は、初期処理モジュール508と終了処理モジュ
ール512は図4(a)のタスクと同様であるが、主処
理部において3つの処理モジュール509〜511を有
し、例えば、入力データに基づき何れかの処理モジュー
ル509〜511が選択的に実行されるようなフロー構
成を有している。
【0030】このような構成の場合、時間制約のある処
理の実行量と依存する処理モジュール509,511の
一部のプログラムコード513,514を特定コードと
して指定し、且つ、両者の間で処理の実行量に対する依
存度が異なる場合には、この依存度の応じた重み付けを
行って実行量のカウントを行うようにする。例えば、特
定コード513の1回の実行で1ブロック分のデコード
処理が完了となり、特定コード514の1回の実行で4
ブロック分のデコード処理が完了となる場合には、特定
コード514の検出に基づく実行量のカウントアップ数
を特定コード513の検出の場合の4倍とするなどであ
る。なお、上記の特定コード506,513,514
は、ソフトウェア開発者が指定し、ソフトウェアによる
初期設定処理などにおいてその格納アドレスが監視値テ
ーブルへ登録されるようにしておくことが出来る。
【0031】また、時限タスクに課せられた制約時間の
長さやその間に実行しなければならない処理の実行量
も、ソフトウェア開発者が予め指定しておくことが出来
る。そして、ソフトウェアによる初期設定処理などにお
いて、これらの情報が電力コントローラ200やOSに
通知され、時間計測部204やカウント処理部203に
おけるリセットタイミングを設定するのに使用された
り、制限タスクの実行制御に必要な閾値を求めるのに使
用されたりする。なお、時限タスクの実行量を計測する
ために設定される監視対象としては、CPU101のリ
ードアドレスのほか、様々な監視対象を利用することが
可能である。
【0032】図5には、上記監視部300とその周辺の
その他の構成例を示す。図5(a)の例は、実行量を計
測するための監視対象としてCPU101のプログラム
カウンタの値を用いたものである。そして、プログラム
カウンタの値が上記特定コードの位置を指し示した場合
に、それを検出して計数するようにしたものである。こ
の場合、監視部300には、プログラムカウンタの値が
格納されるPCレジスタ305が接続されてその値が入
力される。また、監視値テーブル201には、各時限タ
スクにおいてその実行量を計測する上で指標となる命令
コードの実行位置(プログラムカウンタの値PC_V_
1〜PC_V_n)が設定される。また、監視部300
は、PCレジスタ305の値を入力するPCレジスタ監
視部304と、監視値テーブル201の値とプログラム
カウンタ値とを比較するレジスタ値比較部306とから
構成される。
【0033】図5(b)の例は、監視対象としてCPU
101で発生される割込み情報を利用したものである。
監視対象として割込み情報を利用することのできる処理
としては、例えば、外部出力処理に時間制約が課されて
いるような処理がある。このような処理においては、外
部出力後に得られるI/O割込みの回数をカウントする
ことで外部出力処理の実行量を計測することが出来る。
この場合、監視部300には、割込みを発生する際に割
込みの種類を示す値が格納される割込みレジスタ309
が接続され、その値が入力されるように構成される。ま
た、監視値テーブル201には、各時限タスクにおいて
その実行量を計測する上で指標となる割込み動作を表わ
す値(INT_V_1〜INT_V_n)が設定され
る。また、監視部300は、割込みレジスタ309の値
を入力する割込みレジスタ監視部308と、この入力値
と監視値テーブル201の値とを比較するレジスタ値比
較部310とから構成される。
【0034】図5(c)の例は、監視対象としてI/O
ポートの使用状態を利用したものである。このように監
視対象としてI/Oポートの状態値を利用できる処理と
しては、例えば、特定の外部入出力によりなされる処理
に時間制約が課されているような処理がある。この場
合、監視部300には、I/O制御ユニット115が接
続され、該I/O制御ユニット115が制御する複数の
I/Oポートの各状態を表わす値(1“開”又は0
“閉”)が入力されるように構成される。また、監視値
テーブル201には、各時限タスクの実行量を計測する
上で指標となる複数のI/Oポートの開閉状態の組み合
わせを表わす複数ビットの値(P_1〜P_n)が設定
される。また、監視部300は、複数のI/Oポートに
おける各状態値を入力するI/Oデバイス監視部312
と、この入力値と監視値テーブル201の値とを比較す
るI/Oポート比較部313とから構成される。
【0035】図5(d)の例は、監視対象としてソフト
ウェアの命令コード(トラップ命令)により割込みを発
生させるトラップ処理を利用したものである。トラップ
処理を利用する場合には、時限タスクの中に、該時限タ
スクの実行量を計測する上で指標となる箇所に、カウン
ト用のコマンドコードとしてトラップ命令を挿入してお
くことで実現することが出来る。この場合、監視部30
0には、例えば、割込み直前のプログラムカウンタの値
が退避される退避用レジスタ(TRPレジスタ)316
の値が入力されるように構成される。また、監視値テー
ブル201には、トラップ命令が挿入されたプログラム
位置を示す値(TRP_V_1〜TRP_V_n)が設
定される。また、監視部300は、TRPレジスタ31
6の値を監視するTRPレジスタ監視部315と、この
レジスタ値と監視値テーブル201の値とを比較するレ
ジスタ値比較部317とから構成される。
【0036】次に、上記の電力コントローラ200によ
るプロセッサの動作制御の内容について説明する。な
お、監視対象として時限タスク中に指定された特定コー
ドを利用した場合について説明する。図6には、1個の
時限タスクについてのプロセッサの動作制御の内容を説
明するタイムチャートを示す。同図(a)は、プロセッ
サにより実行される1個の時限タスクの実行量を示す
図、(b)は時限タスクの優先度の切換えを示す図、
(c)と(d)はプロセッサの動作周波数と動作電圧を
示す図である。
【0037】図6において、Tsは時限タスクの時間制
約の開始時点、Tdはこの時間制約のデッドライン時
点、ΔTは任意設定の単位時間、CNは単位時間ΔTの
間に1つの時限タスクにおいて検出された特定コードの
カウント量、CNaveは開始時点Tsからの特定コー
ドの累積的なカウント量の時間平均を単位時間ごとに演
算した平均値である。電力コントローラ200によるプ
ロセッサ100の動作制御は、上記特定コードのカウン
ト量の時間平均CNaveに基づいて行われる。すなわ
ち、時間平均CNaveが第3閾値TH3より小さくな
った場合に、次の単位時間ΔTから動作周波数を高い第
1周波数F1に、時間平均CNaveが第3閾値TH3
より大きくなった場合に、次の単位時間ΔTから動作周
波数を低い第2周波数F2に変更する。
【0038】また、動作周波数を変更する際には、動作
電圧もその動作周波数を実現するのに足る電圧範囲の中
で最も低いレベルに設定された動作電圧V1,V2に変
更し、それにより消費電力の低減を図る。一定の処理を
高速に短時間で完了させるよりも、低速に長い期間かけ
て行った方がトータルの消費電力量を低減することが出
来るためである。また、動作電圧を変更する場合には、
システムが安定するまでに時間がかかるため、CPU1
01やその他の内部モジュールが安定するまで動作を休
止させる必要がある。図6(d)において、動作電圧の
変更タイミングと周波数の変化タイミングとがずれてい
るのは、システムが安定する期間を考慮したもので、厳
密にはこのずれの期間中、プロセッサは休止状態とされ
る。
【0039】さらに、時間平均CNaveが第1閾値T
H1より大きくなった場合には、次の単位時間ΔTから
この時限タスクの優先度を下げて他のタスクが優先的に
実行されるようにする。また、優先度が下げられた後、
時間平均CNaveが第2閾値TH2より小さくなった
場合には、次の単位時間ΔTからこの時限タスクの優先
度を上げて該時限タスクを優先的に実行させる。
【0040】なお、図6では、時限タスクの時間制約の
開始時点Tsから所定の期間(例えば単位時間ΔT×3
の期間)において、時間平均CNaveがどのような値
になろうとも高い第1周波数F1で実行されるように例
外処理を行っている。上記の閾値TH1〜TH3は、詳
細は後述するが、時間制約の課された処理がデッドライ
ン時間Tdまでに完了するように少し余裕を持って定め
られるが、実際の時限タスクの負荷変動によりこの余裕
時間の見積りでは不足して制限時間内に処理を完了でき
ない場合も生じ得る。上記の例外処理は、このような場
合を考慮して余裕時間を補う目的で行われるものであ
る。なお、このような例外処理は、所定の期間だけ行う
のではなく、開始時点Tsからの累積実行量が所定の値
に達するまで行うようにすることも出来る。
【0041】また、図6のタイムチャートは1つの時限
タスクが実行されている場合のプロセッサの動作内容と
して説明したが、複数の時限タスクが並行処理されてい
る場合には、図6のタイムチャートがそのままプロセッ
サの動作内容とはならない。複数の時限タスクが並行処
理されている場合には、図6のタイムチャートは1つの
時限タスクについての設定値となる。そして、複数の時
限タスクの各々について同様の設定値が求められる。
【0042】この場合、プロセッサでは、マルチタスク
OSによる並行処理により、各時限タスクに設定された
優先度が各時点ごとに比較され、優先度の高いものから
処理が行われるような制御が行われる。従って、図6
(b)において優先度高“TASK_ON”になってい
る期間でも、他に、もっと優先度の高いタスクがある場
合には、そちらのタスクが優先的に行われ、その間、図
6の時限タスクは休止状態となる。他方、図6(b)に
おいて優先度低“TASK_OFF”となっている期間
でも、他に、優先度の高いタスクがない場合には、図6
の時限タスクが実行されることになる。そして、複数の
タスクが優先度順に実行される中、或る時限タスクが実
行されるときに当該時限タスクに設定された周波数およ
び動作電圧が適用されるように制御される。
【0043】次に、上述の閾値TH1〜TH3について
説明する。上記の第1〜第3の閾値TH1〜TH3は、
例えば、次のように定めることが出来る。 TH1=β×CNttl・ΔT/(α・Td−Ts) … (1) TH2=ΔT/(T−Ts) ×{CNttl−(α・Td−T)×F1/CL} … (2) TH3=CNttl・ΔT/(α・Td−T) … (3) ここで、CNttlは時限タスクが制限時間内に実行し
なければならない処理の実行量を表わす特定コードのト
ータルのカウント量、α,γは多少の余裕を持って処理
を完了させるための安全係数(0<α<1、例えばα=
0.9;0<γ<1、例えばγ=0.8)、βは優先度
を下げる条件を設定する係数(β>1、例えばβ=1.
5)である。
【0044】先ず、第3閾値TH3の説明を行う。時限
タスクが制限時間内で且つデッドライン時間の近傍に処
理を終了するためには、時刻Tにおけるカウント量の時
間平均CNave(T)は次式(4)を満足すればよ
い。 CNave(T)={CNttl−CNave(T−1)×(T−Ts) /ΔT}×ΔT/(α・Td−T) … (4) 従って、この右辺を第3閾値TH3として設定し、時間
平均CNave(T)が右辺を上回ったら動作周波数を
第2周波数F2に下げ、下回ったら第1周波数F1に上
げるように制御する。式(4)の右辺を、負荷変動なし
とした条件(CNave(T)=CNave(T−
1))で、時間平均CNaveについてまとめると式
(1)の右辺になる。
【0045】次に、第1閾値TH1の説明をする。この
実施例では、プロセッサの効率を考えて動作周波数は2
通りしか設定していない。従って、時限タスクの負荷が
ずっと低い場合には、処理の実行量に余裕が生じる可能
性がある。そこで、閾値3に係数β(β>1)をかけた
値を第1閾値TH1に設定し、時間平均CNaveが第
1閾値TH1を上回ったときには、時限タスクの優先度
を下げ、他のタスクが優先的に実行可能なようにする。
【0046】次に、第2閾値TH2について説明する。
デッドライン時間Tdまでの残り時間を高い第1周波数
F1で実行しても必要な実行量が得られないという条件
になった場合には、時間制約を満足することが出来な
い。このような条件となる時刻Tにおける時間平均CN
ave(T)は、負荷変動なしとした条件では、次式
(5)のように表わされる。 CNave(T) < ΔT/(T−Ts) ×{CNttl−(α・Td−T)×F1/CL} … (5) ここで、CLは特定コードの出現間隔あたりのクロック
数である。そこで、上式(5)の右辺に安全係数γ(0
<γ<1、例えばγ=0.8)をかけた値を第2閾値T
H2とし、時間平均CNaveが第2閾値TH2を下回
ったときには、この時限タスクの優先度を上げて優先的
に実行されるようにする。ただし、負荷変動がある場合
はCLは一定値とはならないため、(5)式は、CLを
時間T以降の特定コードの出現間隔あたりの平均クロッ
ク数としたときに成立する。
【0047】なお、式(1),(3)の閾値は、負荷変
動なしという条件を入れて求めたものであるが、その時
点までの負荷変動を考慮して単位時間ΔTごとに閾値が
変動するようにしても良い。その場合、第1〜第3閾値
TH1〜TH3は次式(6)〜(8)のように定めるこ
とが出来る。 TH1=β×{CNttl−CNave(T−1)×(T−Ts)/ΔT} ×ΔT/(α・Td−T) … (6) TH3={CNttl−CNave(T−1)×(T−Ts)/ΔT} ×ΔT/(α・Td−T) … (7)
【0048】なお、図6の例では、2通りの周波数の切
換えを1つの閾値TH3を用いて制御しているが、例え
ば、タスクの優先度の切換えの場合と同様に、2つの閾
値を用意して高い第4の閾値を上回ったら周波数を下
げ、低い第5の閾値を上回ったら周波数を上げるように
制御することも出来る。また、図6の例では、切換え可
能な周波数は2通りで、タスクの優先度の切換えにより
タスクの停止と実行とを制御する構成となっているが、
例えば、切換え可能な周波数を3通り以上とすることも
出来る。その場合、周波数の数に応じて閾値の数も適宜
増やして対応する。また、タスクの優先度の切換えも2
段階の切り替えではなく、3段階以上の切り替えによ
り、時分割による並行処理で自己のタスクに割当てられ
る処理時間の長さを複数段階に切換え可能なようにして
も良い。
【0049】図7は、電力コントローラによるプロセッ
サの動作制御の第2例を説明するタイムチャートであ
る。この例は、プロセッサの動作周波数の変更制御は行
わず、タスクの優先度の切換えのみを行う例である。こ
の場合、時限タスクの実行量の時間平均CNaveと比
較される閾値は第1閾値TH1と第2閾値TH2のみと
なる。この例では、時限タスクの時間制約のある処理が
まだ完了していない途中においても、処理の実行量に余
裕がある場合に優先度を下げて、他に実行待ちのタスク
がある場合に、このタスクを優先的に実行させ、時限タ
スクを一時的に休止させることが出来る。なお,本図で
は、動作周波数を一定にしているためにデッドライン時
間より前に時限タスクの処理が完了し、その後タスクが
アイドル状態(TSK_IDL)にある場合を示してい
る。
【0050】図8は、アイドル時にプロセッサの動作を
停止する従来技術におけるタスクの実行態様を説明する
タイムチャートである。アイドル時にプロセッサの動作
を停止する従来技術では、同図に示すように、時限タス
クはその時間制約のある処理を完了するまで一定の動作
周波数で実行され、時間制約のある処理を完了してから
休止状態となる。従って、複数の時限タスクが並行処理
される場合には、すべての時限タスクが負荷最大の条件
で実行された時に時間制約を満足して処理を完了するこ
とを保証できる動作周波数を設定する必要がある。負荷
変動によって各時限タスクの負荷が最大負荷の条件より
小さくなった場合には、不必要に高い動作周波数でCP
Uを動作することになり、消費電力が増大する。
【0051】なお、図6、図7に示したプロセッサ10
0の動作制御は、上述したハードウェア構成の電力コン
トローラ200により実行させるほか、CPU101に
より実現されるソフトウェア構成により実行させること
も出来る。すなわち、アプリケーションソフトを実行制
御する制御ソフトを作成するか、あるいはOSソフトに
上記電力コントローラ200と同様の処理を行うモジュ
ールを組み込むことで、同様の動作制御が実現できる。
次に、同様の動作制御をOSソフトに組み込んで、ソフ
トウェア構成で実現する場合について説明する。
【0052】図9は、電力コントローラをソフトウェア
で実現した場合におけるその制御手順を示すフローチャ
ートである。なお、この例では、図6のタイムチャート
の開始時点Tsに示した例外処理は省略している。ソフ
トウェア構成でプロセッサ100の動作制御を行う場
合、先ず、監視対象の検出は、割込み信号の出力により
CPU101に通知されるように構成する。そして、こ
の割込み信号による例外処理により、CPU101に時
限タスク実行量のカウント処理(ステップ401〜40
4)を開始させる。
【0053】また、タイマユニット113の値に基づき
単位時間ΔT毎にタイマ割込みが発生するように構成
し、このタイマ割込みによる例外処理により、CPU1
01において単位時間ΔTごとにプロセッサの動作制御
処理(ステップ405〜420)を開始させる。
【0054】また、システムの起動時などにおいて、監
視対象を確認する監視値を格納する監視値テーブル20
1、時限タスクの処理の実行量が格納される実行頻度テ
ーブル202、課せられた時間制約の開始時点Tsから
の経過時間が格納される経過時間テーブル205、時限
タスク毎に設定された上述の閾値TH1〜TH3が格納
される閾値テーブル208を、予めメモリ104内に形
成しておく。
【0055】そして、時限タスクが起動される際の初期
処理などにおいて、この時限タスクに課せられた時間制
約の時間長や、その間に実行しなければならない実行
量、監視対象となる監視値などが、OSに渡されて、該
OSがこれらの情報に基づき監視値テーブル201に監
視対象の監視値を設定したり、実行頻度テーブル202
や経過時間テーブル205のリセット周期を時間制約の
時間長に設定したり、対応する閾値を演算して閾値テー
ブル208に設定したりする。
【0056】以下、上記のカウント処理とプロセッサの
動作制御処理の詳細を説明する。監視対象の検出に基づ
く割込みが発生して例外処理へ移行(ステップ401)
すると、先ず、監視対象の値(例えばアドレス判定ユニ
ット119に取得されたアドレス値)と監視値テーブル
201との値を比較して、どの時限タスクのどの被監視
状態が発生したか特定する(ステップ402)。次い
で、実行頻度テーブル202の前ステップで特定した時
限タスクのカウント値を更新し(ステップ403)、そ
の後、例外処理を終了して通常処理に復帰する(ステッ
プ404)。以上のカウント処理により、実行頻度テー
ブル202に各時限タスクの実行量が計数されていく。
【0057】一方、単位時間ΔTの経過によりタイマ割
込みが発生して例外処理へ移行(ステップ405)する
と、先ず、ステップ406において、経過時間テーブル
205の全時限タスクについての値を更新する。更新の
内容は、経過時間テーブル205の各値に単位時間ΔT
を加算するとともに、値が各時限タスクごとに設定され
た時間制約の時間長に達していた場合にリセットを行
う。次いで、ステップ407,417,418の繰返し
処理の設定により、ステップ408〜416の処理を、
並行処理している複数の時限タスクの各々について繰り
返し行う。
【0058】すなわち、ステップS408では、1つの
時限タスクについて、実行頻度テーブル202の実行量
の値を経過時間テーブル205の経過時間で除算して、
時間制約の開始時点Tsからの累積的な実行量の時間平
均CNaveを演算してステップS409に移行する。
ステップ409では、1つの時限タスクに対応して設定
されている閾値TH1,TH2,TH3と、上で求めた
時間平均CNaveとを比較判定する。そして、ステッ
プ410,412,414,416の分岐処理により、
時間平均CNaveが、一番大きな第1閾値TH1より
も大きければステップ411に、一番小さな第2閾値T
H2よりも小さければステップ413に、中間の第3閾
値TH3と第2閾値TH2の間であればステップ415
に、中間の第3閾値TH3と第1閾値TH1の間であれ
ばステップ416に移行して、それぞれ時間平均CNa
veの大きさに応じた動作周波数、動作電圧、実行優先
度の設定を行う。
【0059】例えば、時間平均CNaveが第1閾値T
H1以上のときには、ステップ411において周波数お
よび動作電圧を低く、実行優先度を低“Task_of
f”に設定する。時間平均CNaveが第1閾値TH1
と第3閾値TH3の間のときは、ステップ416におい
て周波数および動作電圧を低く設定し、実行優先度は変
更しない。時間平均CNaveが第3閾値TH3と第2
閾値TH2の間のときは、ステップ415において周波
数および動作電圧を高く設定し、実行優先度は変更しな
い。時間平均CNaveが第2閾値TH2以下のとき
は、ステップ415において周波数および動作電圧は高
く設定し、実行優先度を高“Task_on”に設定す
る。
【0060】そして、上記の設定処理を、並行処理して
いる複数の時限タスクのそれぞれについて行った後、続
くステップ419で、各時限タスクの実行が上記設定さ
れた条件で行われるようにOSのタスク制御用の設定テ
ーブルを設定する。そして、この例外処理を終了して通
常処理に復帰する(ステップ419)。
【0061】以上のように、電力コントローラ200を
備えた実施例のプロセッサ100、或いは、プロセッサ
の動作制御を行うモジュールを組み込んだOSによれ
ば、時間制約が課されたタスクに対して、該タスク処理
の実行量をカウントしながらこの実行量の時間平均CN
aveを計算し、この時間平均CNaveに基づきプロ
セッサの動作周波数や動作電圧ならびに該タスクの実行
優先度の制御を行うので、負荷変動のあるタスク処理を
制限時間をいっぱいに使ってゆっくりと実行させること
ができ、それにより、プロセッサの消費電力の低減が図
れたり、或いは、マルチタスク環境下で1つの処理が長
い期間プロセッサを占有してしまうと云った事態を少な
くすることが出来る。
【0062】また、時間制約のある複数のタスクを並行
処理する場合にも、各タスクの時間制約を満たしつつ、
各タスクをそれぞれ制限時間をいっぱいに使って実行さ
せることができ、それによりプロセッサの消費電力の低
減を図ることが出来る。
【0063】以上本発明者によってなされた発明を実施
例に基づき具体的に説明したが、本発明は上記実施例に
限定されるものではなく、その要旨を逸脱しない範囲で
種々変更可能であることはいうまでもない。例えば、図
9のフローチャートにおいても、時間制約の開始時点T
sから所定期間において高い周波数F1が適用されるよ
うに例外処理を行うようにしても良い。また、動作周波
数や動作電圧の変更にかかる時間的なオーバーヘッドを
考慮して、動作周波数や動作電圧を変更した場合に、そ
の後の所定期間、同一の周波数が持続するように制御す
ることも可能である。
【0064】また、実施例では、動作電圧を動作周波数
を実現するのに足りる電圧範囲の中で最低の電圧に設定
するとしたが、システムの制約等によりこの理想電圧を
選択することが出来ない場合などは、この理想電圧を上
回り且つ設定可能な最低電圧を適用すると良い。
【0065】また、実施例では、プロセッサの動作周波
数の変更に伴って動作電圧も変更することで節電効果を
上げているが、それに加えて、MOSFETのしきい値
電圧Vthを変更して、より節電効果を向上させること
も出来る。この場合、プロセッサの基板電位を変更する
構成を付加し、動作周波数を変更する際に基板電位を調
整してMOSFETのしきい値電圧Vthを変更するよ
うに構成する。
【0066】一般に、動作周波数と動作電圧を一定とし
た場合、MOSFETのしきい値電圧は高くするほど消
費電力を低くすることが可能であり、且つ、動作周波数
が高くなるほど該条件で動作可能とされるしきい値電圧
は低くなる。従って、設定された動作周波数および動作
電圧で動作可能とされる範囲で高いしきい値電圧が使用
されるように制御すれば良い。但し、動作電圧が一定以
下になると製造バラツキに基づくMOSFETの動作遅
延のばらつきが大きくなったり、しきい値電圧が一定以
下になると待機時のリーク電流が増大すると云った不都
合な要因が生じてくるので、これらのことも考慮した範
囲で動作電圧やしきい値電圧の調整を行う必要もある。
【0067】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるソフト
ウェアを実行するプロセッサの制御方法について説明し
たがこの発明はそれに限定されるものでなく、例えば、
映像デコードなどの主処理をハードウェア処理やFPG
A(Field Programmable Gate Array)のマイクロプロ
グラムにより繰り返し実行するようなプロセッサなど、
種々のプロセッサの動作制御に広く利用することが出来
る。ハードウェア処理により主処理を繰り返し実行する
プロセッサの場合には、そのハードウェア処理の処理量
をカウントしその時間平均によりこれらハードウェアの
動作周波数や動作電圧を変更するように制御すれば良
い。
【0068】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
のとおりである。すなわち、本発明に従うと、例えばM
PEGデータのデコード処理など、処理の負荷が一定で
なく、且つ、時間制約の課された処理であっても、時間
制約を満たしつつ且つ制限時間をいっぱいに使って処理
を実行させることが出来、それにより、消費電力の低減
が図れたり、或いは、マルチタスク環境下で1つの処理
が長い期間プロセッサを占有してしまうと云った事態を
少なくできるという効果がある。
【図面の簡単な説明】
【図1】本発明が適用されるプロセッサの構成例を示す
ブロック図である。
【図2】図1の電力コントローラの詳細を示すブロック
図である。
【図3】図2の監視部とその周辺の詳細を示すブロック
図である。
【図4】監視対象のタスクの構成とその監視ポイントを
示す説明図である。
【図5】図2の監視部とその周辺のその他の構成例を示
すブロック図である。
【図6】図2の電力コントローラによるプロセッサの動
作制御の内容を説明するタイムチャートである。
【図7】周波数コントロールを行わない場合におけるタ
スクの実行制御を説明するタイムチャートである。
【図8】アイドル時にプロセッサの動作を停止するだけ
の従来技術におけるタスクの実行制御を説明するタイム
チャートである。
【図9】電力コントローラをソフトウェアで実現した場
合におけるその制御手順を示すフローチャートである。
【符号の説明】
100 プロセッサ 101 CPU 102A,102B 内部バス 103A,103B 内部周辺バス 104 メモリ 105A 外部アドレスバス 105B 外部データバス 109 電圧制御ユニット 110 レギュレータ 111 外部発振器 112 周波数制御ユニット 113 タイマユニット 114 割込みコントローラ 115 I/Oコントローラ 200 電力コントローラ 201 監視値テーブル 202 実行頻度テーブル 203 カウンタ処理部 204 時間計測部 205 経過時間テーブル 206 平均化部 207 判定部 208 閾値テーブル 209 電圧設定部 210 周波数設定部 211 タスク実行制御部 316 TRPレジスタ 501,507 タスク 506,513,514 特定コード

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサにより実行される処理のうち
    繰返し実行される第1制御フローの実行量を計測し、 上記実行量の第1時点からの累積的な総和量を時間平均
    した平均値を単位時間ごとに演算し、 この平均値に基づき上記第1制御フローを実行する際の
    プロセッサの動作周波数の変更或いは上記第1制御フロ
    ーの実行優先度の切換えを行うことを特徴とするプロセ
    ッサの制御方法。
  2. 【請求項2】 上記プロセッサは、複数の制御フローの
    各々に設定された実行優先度に従って各制御フローを時
    分割処理し、複数の制御フローを並行処理することを特
    徴とする請求項1記載のプロセッサの制御方法。
  3. 【請求項3】 上記プロセッサに該プロセッサからのメ
    モリアクセスを監視して設定されたアドレスへのアクセ
    スを検出する監視手段を設け、 上記第1制御フロー中に予め指定された特定のコマンド
    コードのアドレスを上記監視手段により検出し、この検
    出を計数することで上記第1制御フローの実行量の計測
    を行うことを特徴とする請求項1又は2に記載のプロセ
    ッサの制御方法。
  4. 【請求項4】 上記第1制御フローの中に予めカウント
    用のコマンドコードを挿入しておき、プロセッサによる
    該コマンドコードの実行を計数することで第1制御フロ
    ーの実行量の計測を行うことを特徴とする請求項1又は
    2に記載のプロセッサの制御方法。
  5. 【請求項5】 上記平均値が第1閾値を上回った場合に
    上記第1制御フローの実行優先度を下げ、上記平均値が
    上記第1閾値より小さい第2閾値を下回った場合に上記
    第1制御フローの実行優先度を上げることを特徴とする
    請求項1〜4の何れかに記載のプロセッサの制御方法。
  6. 【請求項6】 上記平均値が上記第1閾値と上記第2閾
    値との中間の第3閾値を上回った場合に上記動作周波数
    を下げ、上記平均値が上記第3閾値を下回った場合に上
    記動作周波数を上げることを特徴とする請求項1〜5の
    何れかに記載のプロセッサの制御方法。
  7. 【請求項7】 上記プロセッサに設けられている該プロ
    セッサの動作クロックの周波数を制御する周波数制御回
    路を制御して、上記プロセッサの動作周波数を変更させ
    ることを特徴とする請求項1〜6の何れかに記載のプロ
    セッサの制御方法。
  8. 【請求項8】 上記プロセッサの動作電圧を制御する電
    圧制御回路を制御して、上記プロセッサの動作周波数が
    変更されるのに伴って上記動作電圧を変更することを特
    徴とする請求項1〜7の何れかに記載のプロセッサの制
    御方法。
  9. 【請求項9】 上記第1制御フローが、該第1制御フロ
    ー内の所定の処理を繰り返し行って所定時間内に一定量
    の処理を実行しなければならない時間制約を有し、且
    つ、上記一定量の処理に要するプロセッサの処理サイク
    ルが変動される負荷変動を有する場合において、 上記第1制御フローの実行量は上記時間制約が課された
    上記所定の処理の進行度を表わす量であることを特徴と
    する請求項1〜8の何れかに記載のプロセッサの制御方
    法。
  10. 【請求項10】 上記第1時点は上記一定量の処理を実
    行するのに課された時間制約の開始時点であり、該一定
    量の処理を複数回数行う場合に、各回の処理の開始時点
    に上記第1時点を設定しておくことを特徴とする請求項
    9に記載のプロセッサの制御方法。
JP2002146077A 2002-05-21 2002-05-21 プロセッサの制御方法 Pending JP2003337713A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002146077A JP2003337713A (ja) 2002-05-21 2002-05-21 プロセッサの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002146077A JP2003337713A (ja) 2002-05-21 2002-05-21 プロセッサの制御方法

Publications (1)

Publication Number Publication Date
JP2003337713A true JP2003337713A (ja) 2003-11-28

Family

ID=29705169

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002146077A Pending JP2003337713A (ja) 2002-05-21 2002-05-21 プロセッサの制御方法

Country Status (1)

Country Link
JP (1) JP2003337713A (ja)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005322144A (ja) * 2004-05-11 2005-11-17 Namco Ltd 画像生成プログラム、情報記憶媒体及び画像生成システム
JP2007058601A (ja) * 2005-08-24 2007-03-08 Matsushita Electric Ind Co Ltd タスク実行装置および方法
WO2007141849A1 (ja) * 2006-06-07 2007-12-13 Hitachi, Ltd. 半導体集積回路
WO2008139677A1 (ja) * 2007-05-11 2008-11-20 Panasonic Corporation データ処理装置
JP2009086733A (ja) * 2007-09-27 2009-04-23 Toshiba Corp 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
JP2010160804A (ja) * 2010-02-12 2010-07-22 Namco Bandai Games Inc 画像生成プログラム、情報記憶媒体及び画像生成システム
FR2943807A1 (fr) * 2009-03-31 2010-10-01 Inst Nat Rech Inf Automat Dispositif de commande d'alimentation d'un calculateur
JP2011508328A (ja) * 2007-12-28 2011-03-10 フリースケール セミコンダクター インコーポレイテッド データ・プロセッサのパフォーマンス予測
US8069357B2 (en) 2007-05-18 2011-11-29 Semiconductor Technology Academic Research Center Multi-processor control device and method
WO2012008019A1 (ja) 2010-07-13 2012-01-19 富士通株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
WO2013001576A1 (en) * 2011-06-29 2013-01-03 Nec Corporation Multiprocessor system and method of saving energy therein
JP2015069576A (ja) * 2013-09-30 2015-04-13 富士通株式会社 情報処理装置および情報処理装置の制御方法
JP2019046339A (ja) * 2017-09-06 2019-03-22 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
JP2019215725A (ja) * 2018-06-13 2019-12-19 株式会社デンソー 電子制御装置及びソフトウエア生成方法
KR20200072657A (ko) * 2018-12-13 2020-06-23 한화시스템 주식회사 전투체계 소프트웨어 빌드 시스템
KR20200072656A (ko) * 2018-12-13 2020-06-23 한화시스템 주식회사 전투체계 소프트웨어 빌드 방법

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005322144A (ja) * 2004-05-11 2005-11-17 Namco Ltd 画像生成プログラム、情報記憶媒体及び画像生成システム
JP4528027B2 (ja) * 2004-05-11 2010-08-18 株式会社バンダイナムコゲームス 画像生成プログラム、情報記憶媒体及び画像生成システム
JP2007058601A (ja) * 2005-08-24 2007-03-08 Matsushita Electric Ind Co Ltd タスク実行装置および方法
US8370846B2 (en) 2005-08-24 2013-02-05 Panasonic Corporation Task execution device and method
JP4580845B2 (ja) * 2005-08-24 2010-11-17 パナソニック株式会社 タスク実行装置
WO2007141849A1 (ja) * 2006-06-07 2007-12-13 Hitachi, Ltd. 半導体集積回路
KR100985966B1 (ko) * 2006-06-07 2010-10-06 가부시키가이샤 히타치세이사쿠쇼 반도체 집적 회로
WO2008139677A1 (ja) * 2007-05-11 2008-11-20 Panasonic Corporation データ処理装置
US8069357B2 (en) 2007-05-18 2011-11-29 Semiconductor Technology Academic Research Center Multi-processor control device and method
JP2009086733A (ja) * 2007-09-27 2009-04-23 Toshiba Corp 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
JP2011508328A (ja) * 2007-12-28 2011-03-10 フリースケール セミコンダクター インコーポレイテッド データ・プロセッサのパフォーマンス予測
FR2943806A1 (fr) * 2009-03-31 2010-10-01 Inst Nat Rech Inf Automat Dispositif de commande d'alimentation d'un calculateur
WO2010112700A3 (fr) * 2009-03-31 2011-04-07 Inria Institut National De Recherche En Informatique Et En Automatique Dispositif de commande d'alimentation d'un calculateur
FR2943807A1 (fr) * 2009-03-31 2010-10-01 Inst Nat Rech Inf Automat Dispositif de commande d'alimentation d'un calculateur
JP2012522300A (ja) * 2009-03-31 2012-09-20 イエヌエールイアー アンスティテュ ナシオナル ドゥ ルシェルシェ アン アンフォルマティク エ アン オートマティク コンピュータの電源の制御装置
JP2010160804A (ja) * 2010-02-12 2010-07-22 Namco Bandai Games Inc 画像生成プログラム、情報記憶媒体及び画像生成システム
WO2012008019A1 (ja) 2010-07-13 2012-01-19 富士通株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
WO2013001576A1 (en) * 2011-06-29 2013-01-03 Nec Corporation Multiprocessor system and method of saving energy therein
JP2014521131A (ja) * 2011-06-29 2014-08-25 日本電気株式会社 マルチプロセッサシステム、および、その省エネルギー化方法
US9323319B2 (en) 2011-06-29 2016-04-26 Nec Corporation Multiprocessor system and method of saving energy therein
JP2015069576A (ja) * 2013-09-30 2015-04-13 富士通株式会社 情報処理装置および情報処理装置の制御方法
US9830195B2 (en) 2013-09-30 2017-11-28 Fujitsu Limited Apparatus and method for controlling execution of processes in a parallel computing system
JP2019046339A (ja) * 2017-09-06 2019-03-22 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
JP2019215725A (ja) * 2018-06-13 2019-12-19 株式会社デンソー 電子制御装置及びソフトウエア生成方法
JP7172155B2 (ja) 2018-06-13 2022-11-16 株式会社デンソー 電子制御装置及びソフトウエア生成方法
KR20200072657A (ko) * 2018-12-13 2020-06-23 한화시스템 주식회사 전투체계 소프트웨어 빌드 시스템
KR20200072656A (ko) * 2018-12-13 2020-06-23 한화시스템 주식회사 전투체계 소프트웨어 빌드 방법
KR102157843B1 (ko) * 2018-12-13 2020-09-21 한화시스템 주식회사 전투체계 소프트웨어 빌드 시스템
KR102162030B1 (ko) * 2018-12-13 2020-10-07 한화시스템 주식회사 전투체계 소프트웨어 빌드 방법

Similar Documents

Publication Publication Date Title
US8452999B2 (en) Performance estimation for adjusting processor parameter to execute a task taking account of resource available task inactive period
US7813897B2 (en) Method for measuring quantity of usage of CPU
JP2003337713A (ja) プロセッサの制御方法
US9176572B2 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
US9104411B2 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
US8261112B2 (en) Optimizing power consumption by tracking how program runtime performance metrics respond to changes in operating frequency
US8135966B2 (en) Method and device for power management
US7512820B2 (en) Performance level selection in a data processing system by combining a plurality of performance requests
US7954101B2 (en) Skipping non-time-critical task according to control table when operating frequency falls
US20080307248A1 (en) Cpu Clock Control Device, Cpu Clock Control Method, Cpu Clock Control Program, Recording Medium, and Transmission Medium
TW201727427A (zh) 用於在電腦處理器中基於程式階段動態時脈及電壓縮放之方法及裝置
US20050097228A1 (en) Data processing system performance counter
US8224497B2 (en) Energy limit in a sliding window in power and heat management
JP5982588B2 (ja) 保証された過渡期限とともに中央処理装置の電力を制御するためのシステムおよび方法
JP5764150B2 (ja) パワー・オン状態から省電力状態に移行させる方法およびコンピュータ
US7975155B2 (en) Apparatus and method for controlling voltage and frequency
US10732698B2 (en) Event-based power manager
US20140089694A1 (en) Dynamically controlling power based on work-loop performance
JP5930504B2 (ja) 保証された過渡期限とともに中央処理装置の電力を制御するためのシステムおよび方法
JP3830133B2 (ja) 電力制御装置及び方法並びに電力制御プログラム