JP2008077563A - 電子機器およびcpu動作環境制御プログラム - Google Patents

電子機器およびcpu動作環境制御プログラム Download PDF

Info

Publication number
JP2008077563A
JP2008077563A JP2006258811A JP2006258811A JP2008077563A JP 2008077563 A JP2008077563 A JP 2008077563A JP 2006258811 A JP2006258811 A JP 2006258811A JP 2006258811 A JP2006258811 A JP 2006258811A JP 2008077563 A JP2008077563 A JP 2008077563A
Authority
JP
Japan
Prior art keywords
operating
cpu
frequency
voltage
operating frequency
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
JP2006258811A
Other languages
English (en)
Inventor
Shigeki Kato
茂樹 加藤
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 JP2006258811A priority Critical patent/JP2008077563A/ja
Publication of JP2008077563A publication Critical patent/JP2008077563A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

【課題】CPUのクロック周波数および電源電圧を簡易に制御して省電力効果を得るようにした電子機器およびCPU動作環境制御プログラムを得ること。
【解決手段】電子機器は、操作部107の操作等によりイベントが発生しアプリケーションプログラムの起動が検出されると(ステップS201)、そのアプリケーションプログラムを実行する際のCPUの使用率をテーブルにより算出し(ステップS202)、その使用率に対応する動作周波数と動作電圧をテーブルにより算出する(ステップS203)。そして、これらをCPUに設定する(ステップS204)。これにより、使用率の低いアプリケーションプログラムに対する消費電力を低減できる。
【選択図】図7

Description

本発明は、CPUの動作周波数や動作電圧を制御するようにした電子機器およびCPU動作環境制御プログラムに係わり、特に省電力に効果がある電子機器およびCPU動作環境制御プログラムに関する。
携帯電話機、PHS(Personal Handy-phone System)、PDA(Personal Digital Assistant)、携帯型のパーソナルコンピュータといったバッテリで駆動される小型の電子機器は、商用電源に接続する必要がないので、外出先で広く使用されている。これらの電子機器は一般に高機能化しており、これに伴ってプロセッサの高速化が望まれている。ところが、プロセッサを高速化すると、これに伴って消費電力が大きくなるので、バッテリの持続時間が短くなるという問題がある。
そこで従来からCPU(Central Processing Unit;中央演算処理ユニット)の動作周波数とCPUへの印加電圧を必要最小限に抑制することで、電子機器の省電力化を実現している。一般に電子機器の消費電力をPとし、CPUへの供給電圧をV、CPUの駆動周波数あるいはプロセッサ周波数をF、漏れ電流をI、スイッチングキャパシタンス(Switching Capacitance)をCとすると、次の(1)式が成立する。
P=C*V*V*F+V*I ……(1)
この(1)式を用いて電子機器のLSI(Large Scale Integration)を効率的に使用してその消費電力を下げる提案が各種行われている。このために、CPUの動作電圧と周波数を可変制御するためのハードウェアとしてのLSI(Large Scale Integration)が製品化されており、一般に供給されている。しかしながら、このようなLSIは消費電力を重視する設計のために、コンピュータが実行する各処理を完了させるための所要時間が長くなるという問題がある。この結果として総電力の削減効果を十分得ることができない。また、それぞれの処理が中断することなく順次行われるようにするために、各処理の処理タイミングを予め設定するようにしておくと、リアルタイム処理のように緊急度の高い処理の要求が発生したときにこれに対応することができない。
そこで、ソフトウェアを用いることで、次の周期の開始までに実行を完了させる必要がある周期リアルタイムタスクと実行完了時間に関する制約のない非リアルタイムタスクを並行して実行することで電力削減を図るようにした第1の提案が提案されている(たとえば特許文献1参照)。この第1の提案では、プロセッサが実行するタスクの管理や、タスク実行に必要なプロセッサの動作周波数の算出は、例えば、オペレーティング・システムの機能として実装するようにしている。そして、起動された周期リアルタイム・タスク並びに非リアルタイム・タスクを遅滞なく処理するために必要なプロセッサの動作周波数を適応的に変化させるとともに、時々刻々と切り替わる動作周波数に応じて最適なプロセッサ用電源電圧を決定していくことで、プロセッサの消費電力を低減するようにしている。そして、実行可能な周期リアルタイム・タスクのリストの先頭からタスクを取り出す処理を行い、このリストが空の場合には、実行可能な非リアルタイム・タスクのリストの先頭からタスクを取り出すようにする。これにより、周期リアルタイム・タスクに課された要求を満たしながら各タスクを実行することができる。更に、この第1の提案では、実行すべきタスクがなくなったことに応答して、前記プロセッサを稼動率が低下したスリープ状態に移行させるスリープ遷移手段又はステップを備えることで、未処理タスクがない場合におけるプロセッサの消費電力を最大限に節約するようにしている。
ここで、第1の提案では、具体的には、起動開始すべき周期リアルタイム・タスクにタスク番号iを付与し、現在オペレーティング・システムに登録され、かつ起動要求が発行された周期リアルタイム・タスクの処理負荷を周期で割った値に合計値laにタスクiの分ci/piを加算する。次いで、現在オペレーティング・システムに登録され、かつ起動要求が発行された周期リアルタイム・タスクの処理負荷を周期で割った値に合計値laと、アプリケーションプログラムによって設定された動作周波数の下限値fminのうち、大きい値を変数fに設定する。そして、プロセッサの動作周波数をfに設定するとともに、プロセッサに供給する電源電圧を周波数fで動作可能な最小の電圧に設定する。プロセッサの動作周波数や電源電圧の変更は、プロセッサ・クロック生成器ならびにプロセッサ用DC/DC変換器の各々に指示値を送信することによって行われる。プロセッサに課された処理負荷から求まる動作周波数がアプリケーションプログラムによって設定された動作周波数の下限値fminを下回る場合には、下限値fminを動作周波数として設定することにより、プロセッサに生まれる余剰時間に非リアルタイム・タスクを実行することができる。この結果、周期リアルタイム・タスクが次の周期の開始以前に実行を完了することを保証しつつ、非リアルタイム・タスクの実行によって消費される電力量を削減することができる。
一方、クロック周波数および電源電圧を頻繁に変更すると十分な消費電力低減効果を得ることができないという観点から、これらのチェック間隔を動的に制御することが第2の提案として提案されている(たとえば特許文献2参照)。この第2の提案では、具体的にはクロック周波数および電源電圧の制御頻度をまず決定する。そしてクロック周波数および電源電圧の制御を実行する場合には、タイマにより現在の時刻情報を得る。次にアプリケーションプログラムの処理の進捗状況を把握し、これらの結果を基にして、動作クロック周波数を決定し、更に電源電圧を決定するようにしている。最後に、決定されたクロック周波数および電源電圧を設定して、プログラムを終了するようにしている。
特開2002−099432号公報(第0022、第0025〜第0027段落、第0101〜第0103段落、図6) 特開2004−029983号公報(第0020段落、図1)
ところが、このような第1および第2の提案によれば、CPUのクロック周波数および電源電圧をそれぞれの状況に応じて変更できる利点はあるものの、このような状況判断が必要とされる。したがって、ソフトウェアによる処理が重くなり、CPUに負担を掛ける結果、必ずしも効率的で省電力効果のある制御を行うことができないという問題があった。
そこで本発明の目的は、CPUのクロック周波数および電源電圧を簡易に制御して省電力効果を得るようにした電子機器およびCPU動作環境制御プログラムを提供することにある。
請求項1記載の発明では、(イ)CPUと、(ロ)このCPUを動作させるクロックの周波数を予め定めた複数の動作周波数のいずれか1つに選択する動作周波数選択手段と、(ハ)CPUを動作させるクロックの動作電圧を予め定めた複数の動作電圧のいずれか1つに選択する動作電圧選択手段と、(ニ)CPUが装置を制御するために使用する各種のアプリケーションプログラムを格納したアプリケーションプログラム格納手段と、(ホ)CPUの動作環境についてのポリシとして、動作周波数選択手段の選択可能な複数の動作周波数および動作電圧選択手段の選択可能な複数の動作電圧の中から1つずつを選択してアプリケーションプログラム格納手段に格納されているアプリケーションプログラムのそれぞれに個別に対応付けたポリシテーブルと、(へ)アプリケーションプログラム格納手段に格納されているアプリケーションプログラムの中から実行するアプリケーションプログラムを順次検出する実行アプリケーションプログラム検出手段と、(ト)この実行アプリケーションプログラム検出手段の検出したアプリケーションプログラムに対応する動作周波数および動作電圧をポリシテーブルから検索するテーブル検索手段と、(チ)CPUがアプリケーションプログラムを実行するたびにこのテーブル検索手段によって検索された対応する動作周波数および動作電圧に設定するCPU動作環境設定手段とを電子機器に具備させる。
すなわち本発明は、CPUの動作周波数を複数のうちから1つ選択する動作周波数選択手段と、動作電圧を複数のうちから1つ選択する動作電圧選択手段を備えた携帯電話機等の電子機器に関するものであり、アプリケーションプログラムのそれぞれに個別に対応付けたポリシテーブルを備えている。ポリシテーブルは、アプリケーションプログラムごとにCPUの動作環境としての動作周波数と動作電圧を記載している。したがって、電子機器は実行するアプリケーションプログラムごとにポリシテーブルを検索してCPUの動作周波数と動作電圧を設定すればよく、従来のような演算処理を必要としない。したがって、CPUのクロック周波数および電源電圧を簡易に制御して省電力効果を得ることができる。
請求項7記載の発明では、CPUを動作させるクロックの周波数を複数の動作周波数から1つずつ選択する動作周波数選択手段と、このCPUを動作させるクロックの動作電圧を動作周波数に応じて予め定めた複数の動作電圧の中から1つずつ選択する動作電圧選択手段とを備えた電子機器のCPUが、(イ)マルチタスク処理で実行を待機するアプリケーションプログラムを検出する実行待機アプリケーション検出処理と、(ロ)この実行待機アプリケーション検出処理で検出された待機中のアプリケーションプログラムについての動作周波数および動作電圧を動作周波数選択手段および動作電圧選択手段からそれぞれ選択するCPU動作環境選択処理と、(ハ)マルチタスク処理におけるタスク単位で時分割処理で実行される1つずつのアプリケーションプログラムに対応させて、CPU動作環境選択処理で選択した動作周波数および動作電圧に設定するCPU動作環境設定処理とをCPU動作環境制御プログラムとして実行することを特徴としている。
すなわち本発明では、CPUを動作させるクロックの周波数を複数の動作周波数から1つずつ選択する動作周波数選択手段と、このCPUを動作させるクロックの動作電圧を動作周波数に応じて予め定めた複数の動作電圧の中から1つずつ選択する動作電圧選択手段とを備えた電子機器に関するもので、この電子機器に搭載されたCPUが、マルチタスク処理で実行を待機するアプリケーションプログラムを検出する実行待機アプリケーション検出処理と、この実行待機アプリケーション検出処理で検出された待機中のアプリケーションプログラムについての動作周波数および動作電圧を動作周波数選択手段および動作電圧選択手段からそれぞれ選択するCPU動作環境選択処理と、マルチタスク処理におけるタスク単位で時分割処理で実行される1つずつのアプリケーションプログラムに対応させて、CPU動作環境選択処理で選択した動作周波数および動作電圧に設定するCPU動作環境設定処理とをCPU動作環境制御プログラムとして実行することにしている。これにより、電子機器は実行するアプリケーションプログラムごとにポリシテーブルを検索してCPUの動作周波数と動作電圧を設定すればよく、従来のような演算処理を必要としない。したがって、CPUのクロック周波数および電源電圧を簡易に制御して省電力効果を得ることができる。
以上説明したように本発明によれば、電子機器がCPUについての動作周波数選択手段と動作電圧選択手段とを備えていれば、個々のアプリケーションプログラムに対応させてCPUの動作周波数および動作電圧を適切な組み合わせに設定することにしたので、CPUの負荷の状況を演算するといった複雑な手法を採らずに、マルチタスク処理で省電力効果を簡単に得ることができる。更に、ミドルウェアについても同様にCPUの動作周波数および動作電圧を適切な組み合わせに設定することで、省電力の効果を高めることができる。
以下実施例につき本発明を詳細に説明する。
図1は、本発明の一実施例における電子機器としての携帯電話装置の構成の概要を表わしたものである。この携帯電話装置100は、装置内の各種の制御を行う主制御部101を有している。主制御部101は、CPU(Central Processing Unit)102と、このCPU102が実行する各種のプログラムを格納したメモリ103を備えており、バス等の信号伝達手段104を介して装置内の各部と接続されている。
このうち通信制御部105は、アンテナ106に接続されており、図示しない基地局と通話あるいはデータ転送のための無線通信を行うようになっている。操作部107は、図示しない各種のキースイッチやポインタ等の入力デバイスによって構成されており、ユーザが各種の入力操作を行うときに使用される。表示部108は、たとえば液晶ディスプレイや有機ディスプレイによって構成されており、視覚的な情報を表示するようになっている。音声処理部109は、音声の入出力処理を行うためのものであり、通話のためのマイクロフォン111およびレシーバ112と、音声の外部出力用のスピーカ113を接続している。画像処理部114は、CCD(Charged Coupled Device)等の撮像デバイス115を接続しており、静止画および動画の撮影後の処理を行うようになっている。
図2は、この携帯電話装置の主制御部の回路構成の概要を表わしたものである。図1と共に説明する。主制御部101は、図1に示したCPU102にクロックを供給するためのクロック供給回路121と、CPU102のクロックの動作電圧を設定する電圧設定回路122を備えている。クロック供給回路121に供給するクロックの周波数は、クロック制御回路123によって制御されるようになっている。また、電圧設定回路122は、電圧制御回路124によってCPU102に供給するクロックの印加電圧を制御されるようになっている。
この主制御部101には、図1に示したCPU102とメモリ103に格納された制御プログラムによって実現されるタスク処理部125が存在しており、その内部にタスクスケジューラ126が配置されている。また、本実施例では、アプリケーションプログラムについてCPU102の動作周波数と動作電圧を専用に管理するアプリケーションマネージャ127が配置されている。アプリケーションマネージャ127には、図1のメモリ103の一部領域によって構成されるアプリケーション別CPU使用率テーブル131および使用率・動作周波数・動作電圧テーブル132と、アクティブアプリケーション検出部133が接続されている。
ここで、アクティブアプリケーション検出部133は、複数のアプリケーションプログラムのうちで1つだけアクティブとなっているそのアプリケーションプログラムを検出するようになっている。アプリケーション別CPU使用率テーブル131は、アプリケーションプログラム別のCPU102の使用率を示したテーブルである。使用率・動作周波数・動作電圧テーブル132は、それぞれの使用率に対するCPU102の動作周波数と動作電圧を対比させたテーブルである。本実施例では、CPU102の動作周波数および動作電圧をH(高)、M(中)、L(低)の3つのいずれかに設定することでその動作環境の制御を行うことになる。動作周波数および動作電圧についてのH、M、Lの詳細については、後に説明する。アプリケーションマネージャ127は、CPU102のクロックの周波数を設定するためのクロック制御回路123および印加電圧を設定するための電圧制御回路124と接続されている。
一方、タスク処理部125には、アプリケーションマネージャ127の管轄外のミドルウェア(middle ware)やドライバ(あるいはデバイスドライバ;device driver)ならびにアイドルタスクについてのCPU102の動作周波数および動作電圧を規定したアプリケーション外動作環境テーブル134を接続している。また、これらミドルウェアやドライバならびにアイドルタスクを処理しているときのCPU102の動作周波数および動作電圧を制御するために、タスク処理部125はクロック制御回路123および電圧制御回路124と接続されている。ここで、アプリケーション外動作環境テーブル134は、ミドルウェアについてCPU102の動作周波数および動作電圧をH、M、Lの3つのいずれかに設定するようになっている。また、ドライバについては、CPU102の動作周波数および動作電圧をHの1種類に設定するようになっている。
タスク処理部125内のタスクスケジューラ126は、複数のタスクを並行処理するためのマルチタスク処理を行うようになっている。本実施例のマルチタスク処理では、実際には複数のタスクを時分割的に処理しており、一度に1つのタスクしか処理しない。このタスク処理部125は、クロック制御回路123を介してクロック供給回路121を制御してCPU102に所定の周波数のクロックを供給し、また電圧制御回路124を介して電圧設定回路122を制御してCPU102の印加電圧を制御するようになっている。
図3は、アプリケーション別CPU使用率テーブルの一部を表わしたものである。アプリケーション別CPU使用率テーブル131は、本実施例の携帯電話機100が使用するそれぞれのアプリケーションを特定するためのアプリケーションID(Identification)と、これらのアプリケーションプログラムを実行する際のCPU102の使用率を対応付けたものである。
ここでCPU102の使用率は、実際にこれらのアプリケーションプログラムを使用した場合の測定結果を基に算出している。本実施例でCPU102の使用率は、最も低い使用率R1から最も高い使用率R10までの10段階に区分されており、個々のアプリケーションプログラム別にこれらの使用率がアプリケーション別CPU使用率テーブル131に示されている。たとえばアプリケーションIDが「XXX」で示されるあるアプリケーションプログラムについては、CPU使用率が最も低い使用率R1から3番目の使用率R3となっている。もちろん、CPU102の使用率は10段階に区分けする必要はなく、たとえば3段階あるいはその他の段階に区分けするものであってもよい。
図4は、使用率・動作周波数・動作電圧テーブルの一部を表わしたものである。使用率・動作周波数・動作電圧テーブル132は、図1に示したCPU102の使用率と、クロック制御回路123に指示するクロックの動作周波数および電圧制御回路124に指示するCPU102へのクロックによる印加電圧の関係を規定したものである。
本実施例では、CPU使用率を使用率R1〜使用率R3までの比較的低いグループと、使用率R8〜使用率R10までの比較的高いグループと、使用率R4〜使用率R7までの中間的なグループの3つのグループに分けている。そして、使用率R1〜使用率R3までのCPU使用率が比較的低いグループについては動作周波数および動作電圧が低い「L」を割り当てて、クロックの周波数を低めることでCPU102の効率的な活用を図るようにしている。クロックの周波数が低い場合には、動作電圧も低くできるので省電力を図ることができる。
一方、使用率R8〜使用率R10までのCPU使用率が比較的高いグループについては、CPU102の動作周波数および動作電圧が高い「H」を割り当てて、クロックの周波数を高めにして迅速な処理を可能にしている。このとき、動作電圧はクロックの周波数に対応させて高くすることが要求される。使用率R4〜使用率R7までの中間的なグループについては、中間的な動作周波数および動作電圧の「M」が割り当てられるようになっている。
以上説明したアプリケーション別CPU使用率テーブル131および使用率・動作周波数・動作電圧テーブル132は、図1に示した携帯電話装置100の実行するそれぞれのアプリケーションプログラムを動作周波数および動作電圧との関係でどのように設定するかといったCPU102の処理負荷のポリシを定めたものとも考えることができる。
図5は、本実施例の携帯電話装置の各種のソフトウェアの管理の仕組みを概念的に表わしたものである。電力制御の対象となるソフトウェア141は、アプリケーションプログラム(AP)142と、複数のタスクから共通して使用されるタスクとしてのミドルウエア(MDL)143およびハードウェアとの間に緩衝的に用意されたソフトウェア群としてのドライバ(Driver)144のそれぞれから得られた情報145をエネルギコントローラ146とでも言うべき回路部分に与えて、図2に示すCPU102が各制御の過程で効率的に動作するためのコマンド147を発行するようになっている。このコマンド147はパワー管理ユニット148とでも言うべき回路部分に与えられて、クロック制御部149とでも言うべき回路部分がCPU102のクロックの周波数と電圧を制御することになる。
図6は、CPUの稼働する様子と使用エネルギの一例を従来の場合と本実施例の場合とで対比したものである。同図(a)は従来のCPUの稼働率を時間軸上で表わしている。CPUは、それぞれ画一的に稼働率100%で動作するように動作周波数および動作電圧が規定されている。これは、本実施例における動作周波数および動作電圧が高い「H」の場合に相当する。
同図(b)は本実施例の場合を示しており、単位時間当たりのCPU使用率(稼働率)を「H」、「M」、「L」の3段階に分けている。この結果として、CPU使用率が「M」および「L」の場合における動作周波数と動作電圧を、CPU使用率が「H」の場合よりも低めて効率を高めることができる。この結果として、同図(b)に示す本実施例の総使用エネルギE1の方が、同図(a)に示す従来の総使用エネルギE2よりも小さくなり、この分だけバッテリの寿命を延ばすことができることになる。
図7は、本実施例におけるタスクの処理の一般原則を原理的に説明するためのものである。図1および図2と共に説明する。携帯電話装置100のユーザが操作部107を構成する所定のキーを押すことで、これに対応するイベント201が発生したものとする。アプリケーションマネージャ127は、図2に示したアクティブアプリケーション検出部133を用いて、起動したアプリケーションプログラムを検出する(ステップS201)。そして、アプリケーション別CPU使用率テーブル131を検索して、対応するタスクが処理されるときのCPU102の使用率を求める(ステップS202)。
次にアプリケーションマネージャ127は使用率・動作周波数・動作電圧テーブル132を検索することで、該当する使用率に対応するCPU102の動作周波数と動作電圧を求める(ステップS203)。そして、クロック制御回路123および電圧制御回路124を用いてCPU102を動作させるクロックの周波数と電圧を設定する(ステップS204)。このようにしてCPU102の動作環境が設定されたら、ステップS201で検出した該当のアプリケーションプログラムにイベントを渡して(ステップS205)、電力消費を適正化したタスクが実行されることになる。
このような処理が行われる結果として、アプリケーションマネージャ127は、たとえばアプリケーションIDが「XXX」で示されるあるアプリケーションプログラムを実行するときに、そのタスクに対してクロック周波数と電圧値を共に「H」に割り当てることになる。また、「YYY」で示される他のアプリケーションプログラムのタスクについてはクロックと電圧値を「M」に割り当て、「ZZZ」で示される更に他のアプリケーションプログラムのタスクについてはクロックと電圧値を「L」に割り当てることになる。
すでに説明したように、複数のアプリケーションプログラムが並行処理される場合のある本実施例のマルチタスク処理で、CPU102は1つずつタスクを処理するようになっており、同時に複数のタスクが処理されるものではない。
図8は、本実施例におけるタスクの状態遷移を説明するためのものである。図2と共に説明する。本実施例でもタスクの処理について一般的な手順が採用されている。すなわち、あるタスクが生成されると(ステップS221)、CPU102により実行可能なレディ(READY)状態になり、そのタスクの処理が待機される(ステップS222)。図2に示したタスクスケジューラ136は、この段階でスケジューリングの調整を行い(ステップS223)、タスクがその調整されたタイミングで実行される(RUN)(ステップS224)。これにより該当するタスクの処理が終了したとすれば、リソースが開放される(ステップS225)。
一方、ステップS224で実行されるタスクが終了しない場合、入出力動作が終了するまで事象待ちの状態となる(WAIT)(ステップS226)。入出力動作が終了すると、該当するタスクは再び実行可能な状態としてのレディ(READY)状態になり、他のタスクが実行されている間、そのタスクの次の処理が待機される(ステップS222)。このようにして、個々のタスクの時分割処理が行われることになる。
図9〜図15は、各アプリケーションプログラム、ミドルウェア、ドライバにおけるタスクの処理の際のCPUの動作周波数および動作電圧の設定の様子を個別に表わしたものである。先に説明したように図2に示したタスク処理部125は、並行処理すべき各タスクを時分割的に順に読み出して、それぞれに応じた制御を行うことになる。
このうち図9はドライバの通常の制御の様子を表わしている。ドライバのタスクが処理される場合には、図2に示すタスク処理部125がアプリケーション外動作環境テーブル134を参照する。アプリケーション外動作環境テーブル134には、図示しないがドライバの場合、CPU102の動作周波数および動作電圧を常に「H」に割り当てることが記載されている。したがって、タスク処理部125はドライバのタスクを処理するとき、CPU102の動作周波数および動作電圧を「H」に設定する(図9ステップS241)。そして、ドライバに関する通常の処理を実行する(ステップS242)。このようにドライバに関するタスクの処理については、CPU102の動作周波数および動作電圧の設定に関して、従来の処理と結果的に同様となる。
図10は、他のタスクの処理中に割り込み処理でドライバのタスクが実行される場合を示したものである。デバイスからの割り込みを受けるドライバは、このための割り込み処理用のエントリ(entry)を持っている。割り込み処理の要求があると、まず、現在処理しているタスクについてのCPU102の動作周波数および動作電圧に関する情報をセーブ(保存)する(ステップS261)。続いて、図9のステップS241と同様にクロックと電圧値をドライバ用に「H」に設定する(ステップS262)。そして、ドライバに関する通常の割り込み処理を行って(ステップS263)、該当するタスクを実行する。
この後、ステップS261でセーブしておいたCPU102の動作周波数および動作電圧をロードする(ステップS264)。そして、割り込み前の処理が行われる直前のタスクを処理するためにCPU102の動作周波数および動作電圧をその時点の動作環境に戻す設定を行う(ステップS265)。これでドライバの割り込み処理が終了し、割り込み直前のタスクの実行待ちの状態となる(エンド)。
図11は、ミドルウェアのタスクが処理される場合の処理を表わしたものである。ミドルウェアのタスクがアクティブになると、図2に示すタスク処理部125はアプリケーション外動作環境テーブル134を参照する。アプリケーション外動作環境テーブル134は、個々のミドルウェアごとにCPU102の動作環境を「H」、「M」、「L」のいずれかに設定するようになっている。タスク処理部125は、これを基にしてCPU102の動作周波数および動作電圧を「H」、「M」、「L」のうちの該当するものに設定する(ステップS281)。その後、タスク処理部125は通常のミドルウェアの処理を行って(ステップS282)、処理を終了する(エンド)。
すなわち、この図11に示したタスクの処理の場合には、ミドルウェアの内容に応じてCPU102の動作周波数および動作電圧が設定される。したがって、すべてのミドルウェアに対してクロックと電圧値を画一的に「H」に割り当てた従来の処理とは異なる処理が行われることになる。
図12は、アプリケーションプログラムについてタスクが起動した場合の処理を表わしたものである。アプリケーションプログラムについては図2に示したアプリケーションマネージャ127がCPU102の動作周波数および動作電圧についての管理を行う。そこで、図2に示すタスク処理部125による特別な処理は不要であり、タスクが起動されると通常のアプリケーションプログラムの処理が行われ(ステップS301)、そのタスクを終了する(エンド)。
図13は、アイドルタスクの処理を表わしたものである。アイドルタスクは、他にどのタスクも実行されていない時に実行されるタスクであるために基本的には消費電力を最小にしたい。そこで、アイドルタスクを実行する場合には、図2に示したアプリケーション外動作環境テーブル134が参照され、図1に示したCPU102の動作周波数および動作電圧が「L」に設定される(ステップS321)。そして、通常のアイドルタスクの処理が行われることになる(ステップS322)。この場合には、アイドルタスクの処理の期間だけセルフループして処理を終了させる(エンド)。
図14は、タスクスケジューラの処理についてタスクが起動した場合を表わしたものである。タスクスケジューラ126に処理が渡ってきた場合には通常のタスクスケジューラとしての処理を行う(ステップS341)。その後、アプリケーション外動作環境テーブル134が参照され、CPU102の動作周波数および動作電圧を「M」に設定する(ステップS342)。そして、次のタスクに処理を渡すことになる(ステップS343)。次のタスクは、図9あるいは図10に示したドライバの処理か、図11に示したミドルウェアの処理か、図12で示したアプリケーションプログラムの処理か、図13に示したアイドルタスクの処理となる。
このうち、図12で示したアプリケーションプログラムの処理以外は、それぞれの処理の先頭でCPU102の動作周波数および動作電圧を再設定している。アプリケーションプログラムの場合には、通常、その数が多く、これらの全部に対してタスク処理部125が動作周波数や動作電圧を再設定することが困難である。そこで、タスクスケジューラ126はCPU102の動作周波数および動作電圧を「M」に画一的に設定することにして、これらの設定の処理を省略することができるようにしている。
図15は、アプリケーションマネージャの処理を表わしたものである。アプリケーションマネージャ127に制御が渡された場合、通常の処理が行われる(ステップS361)。次にそのアプリケーションプログラムについてのCPU102の動作周波数および動作電圧を、図2に示したアプリケーション別CPU使用率テーブル131および使用率・動作周波数・動作電圧テーブル132を参照してチェックする(ステップS362)。そして、その結果に応じて、CPU102の動作周波数および動作電圧をH、M、Lの3つのうちの該当するものに設定する(ステップS363)。そして、スタートしたイベントを渡すことになる(ステップS364)。
このように本実施例では、CPU102の動作周波数および動作電圧を動的に変更する手段を設けた。このため、特にアプリケーションプログラムを管理するソフトウェアでCPU102の処理負荷のポリシに応じた制御を行うことができ、図6(b)に示したように従来よりも使用エネルギを低減することが可能になる。
なお、以上説明した実施例ではCPUを駆動するクロックの周波数および動作電圧をH、M、Lの3段階に設定したが、2段階でもよいし、4段階以上に設定してもよい。また、実施例ではクロックの動作周波数および動作電圧をH、M、Lの3つずつ異なった値のものとしたが、たとえばクロックの動作周波数をH、M、Lの3つに規定し、動作電圧については2段階のH、Lとしてもよい。この場合、クロックの動作周波数のH、Mを動作電圧についてのHに対応させてもよいし、クロックの動作周波数のM、Lを動作電圧についてのLに対応させてもよい。
本発明の一実施例における電子機器としての携帯電話装置の構成の概要を表わしたブロック図である。 本実施例の携帯電話装置の主制御部の回路構成の要部を表わしたブロック図である。 本実施例のアプリケーション別CPU使用率テーブルの一部を表わした説明図である。 本実施例の使用率・動作周波数・動作電圧テーブルの一部を表わした説明図である。 本実施例の携帯電話装置のアプリケーションマネージャの管理の仕組みを表わした説明図である。 CPUの稼働する様子と使用エネルギについての一例を従来の場合と本実施例の場合と比較した説明図である。 本実施例におけるタスクの処理の一般原則を示した説明図である。 本実施例におけるタスクの状態遷移を示した説明図である。 ドライバの通常の制御の様子を表わした流れ図である。 割り込み処理でドライバのタスクが実行される場合を示した流れ図である。 ミドルウェアのタスクが処理される場合の処理を表わした流れ図である。 アプリケーションプログラムについてタスクが起動した場合の処理を表わした流れ図である。 アイドルタスクの処理を表わした流れ図である。 スケジューラの処理についてタスクが起動した場合を表わした流れ図である。 アプリケーションマネージャの処理を表わした流れ図である。
符号の説明
100 携帯電話装置
101 主制御部
102 CPU
103 メモリ
107 操作部
121 クロック供給回路
122 電圧設定回路
123 クロック制御回路
124 電圧制御回路
125 タスク処理部
126 タスクスケジューラ
127 アプリケーションマネージャ
131 アプリケーション別CPU使用率テーブル
132 使用率・動作周波数・動作電圧テーブル
133 アクティブアプリケーション検出部
134 アプリケーション外動作環境テーブル
142 アプリケーションプログラム
143 ミドルウエア
144 ドライバ
146 エネルギコントローラ
148 パワー管理ユニット
149 クロック制御部

Claims (8)

  1. CPUと、
    このCPUを動作させるクロックの周波数を予め定めた複数の動作周波数のいずれか1つに選択する動作周波数選択手段と、
    前記CPUを動作させる前記クロックの動作電圧を予め定めた複数の動作電圧のいずれか1つに選択する動作電圧選択手段と、
    前記CPUが装置を制御するために使用する各種のアプリケーションプログラムを格納したアプリケーションプログラム格納手段と、
    前記CPUの動作環境についてのポリシとして、前記動作周波数選択手段の選択可能な複数の動作周波数および前記動作電圧選択手段の選択可能な複数の動作電圧の中から1つずつを選択して前記アプリケーションプログラム格納手段に格納されているアプリケーションプログラムのそれぞれに個別に対応付けたポリシテーブルと、
    前記アプリケーションプログラム格納手段に格納されているアプリケーションプログラムの中から実行するアプリケーションプログラムを順次検出する実行アプリケーションプログラム検出手段と、
    この実行アプリケーションプログラム検出手段の検出したアプリケーションプログラムに対応する動作周波数および動作電圧を前記ポリシテーブルから検索するテーブル検索手段と、
    前記CPUがアプリケーションプログラムを実行するたびにこのテーブル検索手段によって検索された対応する動作周波数および動作電圧に設定するCPU動作環境設定手段
    とを具備することを特徴とする電子機器。
  2. 前記ポリシテーブルは、前記CPUの使用率を前記アプリケーションプログラム格納手段に格納されているアプリケーションプログラムのそれぞれについて予め対応付けて記憶したアプリケーション別CPU使用率格納手段と、それぞれのCPU使用率で効率的な消費電力を実現するCPUの動作周波数および動作電圧を、それぞれの使用率に対応させて予め記憶した使用率別動作周波数・動作電圧格納手段とによって構成されていることを特徴とする請求項1記載の電子機器。
  3. 前記CPU動作環境設定手段は、タスクごとに時分割処理で実行されるマルチタスク処理における1つずつのアプリケーションプログラムに対応するCPUの動作周波数と動作電圧を前記ポリシテーブルから順次読み出して設定することを特徴とする請求項1記載の電子機器。
  4. 前記マルチタスク処理でミドルウェアが実行されるとき、これらのミドルウェアに応じて前記CPUの動作周波数および動作電圧を設定するためのミドルウェア用動作周波数・動作電圧設定手段を具備することを特徴とする請求項3記載の電子機器。
  5. 前記マルチタスク処理でドライバが実行されるとき、前記CPUの動作周波数を前記動作周波数選択手段の選択可能な最も高い動作周波数に設定し、動作電圧を前記動作電圧選択手段の選択可能な最も高い動作電圧に設定するドライバ用動作周波数・動作電圧設定手段を具備することを特徴とする請求項3記載の電子機器。
  6. 前記マルチタスク処理でアイドルタスクが実行されるとき、前記CPUの動作周波数を前記動作周波数選択手段の選択可能な最も低い動作周波数に設定し、動作電圧を前記動作電圧選択手段の選択可能な最も低い動作電圧に設定するアイドルタスク用動作周波数・動作電圧設定手段を具備することを特徴とする請求項3記載の電子機器。
  7. CPUを動作させるクロックの周波数を複数の動作周波数から1つずつ選択する動作周波数選択手段と、このCPUを動作させる前記クロックの動作電圧を前記動作周波数に応じて予め定めた複数の動作電圧の中から1つずつ選択する動作電圧選択手段とを備えた電子機器の前記CPUが、
    マルチタスク処理で実行を待機するアプリケーションプログラムを検出する実行待機アプリケーション検出処理と、
    この実行待機アプリケーション検出処理で検出された待機中のアプリケーションプログラムについての前記動作周波数および前記動作電圧を前記動作周波数選択手段および前記動作電圧選択手段からそれぞれ選択するCPU動作環境選択処理と、
    前記マルチタスク処理におけるタスク単位で時分割処理で実行される1つずつのアプリケーションプログラムに対応させて、CPU動作環境選択処理で選択した前記動作周波数および前記動作電圧に設定するCPU動作環境設定処理
    とを実行することを特徴とするCPU動作環境制御プログラム。
  8. 前記マルチタスク処理でミドルウェアが実行されるとき、これらのミドルウェアに応じて前記CPUの動作周波数および動作電圧を設定するためのミドルウェア用動作周波数・動作電圧設定処理を実行することを特徴とする請求項7記載のCPU動作環境制御プログラム。
JP2006258811A 2006-09-25 2006-09-25 電子機器およびcpu動作環境制御プログラム Pending JP2008077563A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006258811A JP2008077563A (ja) 2006-09-25 2006-09-25 電子機器およびcpu動作環境制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006258811A JP2008077563A (ja) 2006-09-25 2006-09-25 電子機器およびcpu動作環境制御プログラム

Publications (1)

Publication Number Publication Date
JP2008077563A true JP2008077563A (ja) 2008-04-03

Family

ID=39349526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006258811A Pending JP2008077563A (ja) 2006-09-25 2006-09-25 電子機器およびcpu動作環境制御プログラム

Country Status (1)

Country Link
JP (1) JP2008077563A (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010039791A (ja) * 2008-08-05 2010-02-18 Toshiba Corp 携帯端末装置
JP2010039543A (ja) * 2008-07-31 2010-02-18 Autonetworks Technologies Ltd 処理装置、クロック周波数決定方法、及びコンピュータプログラム
JP2010113641A (ja) * 2008-11-10 2010-05-20 Fujitsu Ltd プロセッサシステムの動作方法およびプロセッサシステム
JP4886889B1 (ja) * 2010-09-09 2012-02-29 株式会社東芝 情報処理装置およびデバイス制御方法
JP2012068882A (ja) * 2010-09-22 2012-04-05 Nec Personal Computers Ltd 情報処理装置
JP2012150668A (ja) * 2011-01-19 2012-08-09 Fujitsu Ltd 情報処理装置、制御方法及びプログラム
KR101427526B1 (ko) * 2013-05-31 2014-08-07 고려대학교 산학협력단 이동 단말기의 전력 관리 방법
CN104007804A (zh) * 2013-02-21 2014-08-27 北京金山安全软件有限公司 移动设备的运行方法及装置
JP2014529146A (ja) * 2012-08-30 2014-10-30 ▲華▼▲為▼▲終▼端有限公司 中央演算装置を制御するための方法および装置
US9032407B2 (en) 2009-05-25 2015-05-12 Panasonic Intellectual Property Corporation Of America Multiprocessor system, multiprocessor control method, and multiprocessor integrated circuit
KR101543969B1 (ko) 2014-09-24 2015-08-11 연세대학교 산학협력단 애플리케이션 처리 속도와 소모 전력 향상을 위한 cpu 제어 방법 및 장치
KR102067680B1 (ko) * 2019-03-22 2020-01-17 박치영 Cpu 전력 절감 방법 및 장치
WO2020171552A1 (ko) * 2019-02-19 2020-08-27 삼성전자 주식회사 발열 제어를 수행하는 전자 장치 및 그 제어 방법

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010039543A (ja) * 2008-07-31 2010-02-18 Autonetworks Technologies Ltd 処理装置、クロック周波数決定方法、及びコンピュータプログラム
US8166322B2 (en) 2008-08-05 2012-04-24 Fujitsu Toshiba Mobile Communications Limited Portable terminal device
JP2010039791A (ja) * 2008-08-05 2010-02-18 Toshiba Corp 携帯端末装置
JP2010113641A (ja) * 2008-11-10 2010-05-20 Fujitsu Ltd プロセッサシステムの動作方法およびプロセッサシステム
US9032407B2 (en) 2009-05-25 2015-05-12 Panasonic Intellectual Property Corporation Of America Multiprocessor system, multiprocessor control method, and multiprocessor integrated circuit
JP4886889B1 (ja) * 2010-09-09 2012-02-29 株式会社東芝 情報処理装置およびデバイス制御方法
US8560870B2 (en) 2010-09-09 2013-10-15 Kabushiki Kaisha Toshiba Apparatus and method for determining devices used by an application based on a management data, and controlling power state of the determined devices
JP2012068882A (ja) * 2010-09-22 2012-04-05 Nec Personal Computers Ltd 情報処理装置
JP2012150668A (ja) * 2011-01-19 2012-08-09 Fujitsu Ltd 情報処理装置、制御方法及びプログラム
US9405353B2 (en) 2012-08-30 2016-08-02 Huawei Device Co., Ltd. Method and apparatus for controlling central processing unit
JP2014529146A (ja) * 2012-08-30 2014-10-30 ▲華▼▲為▼▲終▼端有限公司 中央演算装置を制御するための方法および装置
CN104007804A (zh) * 2013-02-21 2014-08-27 北京金山安全软件有限公司 移动设备的运行方法及装置
KR101427526B1 (ko) * 2013-05-31 2014-08-07 고려대학교 산학협력단 이동 단말기의 전력 관리 방법
KR101543969B1 (ko) 2014-09-24 2015-08-11 연세대학교 산학협력단 애플리케이션 처리 속도와 소모 전력 향상을 위한 cpu 제어 방법 및 장치
US10481669B2 (en) 2014-09-24 2019-11-19 Industry-Academic Cooperation Foundation, Yonsei University CPU control method and apparatus for improving application processing speed and power consumption
WO2020171552A1 (ko) * 2019-02-19 2020-08-27 삼성전자 주식회사 발열 제어를 수행하는 전자 장치 및 그 제어 방법
KR102067680B1 (ko) * 2019-03-22 2020-01-17 박치영 Cpu 전력 절감 방법 및 장치

Similar Documents

Publication Publication Date Title
JP2008077563A (ja) 電子機器およびcpu動作環境制御プログラム
TWI425422B (zh) 多cpu領域行動電子裝置與其操作方法
US9411390B2 (en) Integrated circuit device having power domains and partitions based on use case power optimization
JP4697805B2 (ja) データ処理装置
US7702938B2 (en) Method and apparatus for implementing a hybrid power management mode for a computer with a multi-core processor
JP5893568B2 (ja) 推定される作業負荷並列性に基づき中央処理装置電力を制御するためのシステムおよび方法
US8826052B1 (en) Methods and apparatus for power mode control for PDA with separate communications and applications processors
AU2007342556B2 (en) Methods and systems for power management in a data processing system
JP3790743B2 (ja) コンピュータ・システム
US20090204835A1 (en) Use methods for power optimization using an integrated circuit having power domains and partitions
US20030149904A1 (en) Power management method for portable electronic terminals
JP4490298B2 (ja) プロセッサ電力制御装置及びプロセッサ電力制御方法
EP1321855A1 (en) Arithmetic processing system and arithmetic processing control method, task managemnt system and task management method, and storage medium
JP2002099433A (ja) 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
EP1365312A1 (en) Energy-aware scheduling of application execution
US20080141265A1 (en) Power Management Method for Platform and that Platform
JP2013544006A (ja) リソースセット移行をスケジュールすることによる、ポータブルコンピューティングデバイスにおけるプロセッサアプリケーション状態間のリソース待ち時間の最小化
JP5423362B2 (ja) 情報処理端末およびその制御方法
US9632563B2 (en) Methods and systems for time keeping in a data processing system
JP6151465B1 (ja) プロセッサコアの電力モードを制御するためのレイテンシベースの電力モードユニット、ならびに関連する方法およびシステム
WO2014032254A1 (zh) 一种控制中央处理器的方法和装置
JP2001168879A (ja) 無線lan端末のためのパワーマネージメント方式
US20120137155A1 (en) Electronic apparatus and power saving control method for electronic apparatus
KR20140026308A (ko) 멀티 코어 시스템의 전력 관리 장치 및 방법
JP2006072698A (ja) 省電力対応装置