JP2008107944A - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP2008107944A
JP2008107944A JP2006288379A JP2006288379A JP2008107944A JP 2008107944 A JP2008107944 A JP 2008107944A JP 2006288379 A JP2006288379 A JP 2006288379A JP 2006288379 A JP2006288379 A JP 2006288379A JP 2008107944 A JP2008107944 A JP 2008107944A
Authority
JP
Japan
Prior art keywords
operating frequency
event
frequency
cpu
time
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
JP2006288379A
Other languages
English (en)
Other versions
JP4697805B2 (ja
Inventor
Teppei Kamijo
哲平 上條
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 Electronics Corp
Original Assignee
NEC Electronics 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 Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2006288379A priority Critical patent/JP4697805B2/ja
Priority to GB0720527A priority patent/GB2443307B/en
Publication of JP2008107944A publication Critical patent/JP2008107944A/ja
Application granted granted Critical
Publication of JP4697805B2 publication Critical patent/JP4697805B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • 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

【課題】高機能システムに適用可能であり、CPUの消費電力を低減すること。
【解決手段】OS20は、あるイベントが実行されるとき、あるイベントを識別する対応イベント識別子を特定し、テーブル25を参照して、対応イベント識別子に対応する設定動作周波数として対応設定動作周波数を選択する。OS20は、テーブル26を参照して、対応設定動作周波数に一致する対応動作周波数と、対応動作周波数に対応する対応動作電圧とを選択して通知する。制御装置36は、対応動作周波数と対応動作電圧で動作するようにCPU30を制御する。OS20は、あるイベントに対応する複数の対応プロセスをCPU30に割り当てる。OS20は、CPU30が複数の対応プロセスを処理するときの処理時間に基づいて、CPU30の消費電力を低減するための算出設定動作周波数を計算し、設定動作周波数として対応イベント識別子に対応付けてテーブル25に格納する。
【選択図】図1

Description

本発明は、利用者が携帯可能なデータ処理装置に関する。
携帯電話機のように、利用者が携帯可能なデータ処理装置が普及されている。このようなデータ処理装置ではバッテリーを内蔵しているため、バッテリーの使用可能な時間としてバッテリー持続時間を出来るだけ長くするために、消費電力の削減が望まれている。特に、データ処理装置は更にCPU(Central Processing Unit)を内蔵し、そのCPUの消費電力は、データ処理装置全体の消費電力に占める割合が高い。このため、CPUの消費電力を削減することが望まれている。
一般にCPUの消費電力は、動作周波数と、動作電圧の2乗とに比例して増加する。即ち、CPUの消費電力、動作周波数、動作電圧をそれぞれP、f、Vとしたとき、P∝fVにより表される。そこで、動作電圧Vは動作周波数fでCPUが動作するように設定される。
従来、リアルタイムOS(Operating System)を搭載したデータ処理装置が普及されている。このようなデータ処理装置をリアルタイムシステムと称する。このリアルタイムシステムにおいて、動作電圧Vは、例えば全てのイベントが同時に発生した場合、全てのイベントに対する処理が規定時間内に終了するように設定される。そこで、動作電圧Vを低下させることにより、CPUの消費電力を低減することが可能である。また、上述のように、動作電圧Vは動作周波数fでCPUが動作するように設定されるため、動作周波数fも低下させることにより、CPUが安定に動作する。このように、リアルタイムシステムでは、システム動作中に、CPUの動作周波数と動作電圧を動的に制御することにより、CPUの消費電力の低減に有効である。
近年、高機能OSを搭載したデータ処理装置が普及されている。高機能OSとは、カーネル、ユーザ層の区別を持ち、カーネル保護機能を有し、すべてのイベントがカーネルを介して通知されるOSをいう。このようなデータ処理装置を高機能システムと称する。また、機能の高度化に伴って、リアルタイムシステムから高機能システムに移行してきている。このため、高機能システムにおいても、効率的に消費電力を低減する方法が望まれている。
CPUの消費電力を低減するリアルタイムシステムとして、プロセッサ電力制御装置が特開2005−285093号公報に記載されている。この公報の[0011]〜[0014]項を参照して説明する。
このリアルタイムシステム(プロセッサ電力制御装置)は、OS10と、電力制御ブロック20と、クロック生成部31と、電圧生成部32と、CPU33とを具備している。
OS10は、タスクスケジューラ11を具備している。タスクスケジューラ11は、複数のタスクから1つのタスクを選択してCPU30に割り付ける。リアルタイムシステムでは、イベントに対する処理をタスクという最小処理単位で実行する。
電力制御ブロック20は、システム要求性能算出ブロック21と、タスク要求性能テーブル22と、判定ブロック23、24と、電力モードテーブル25とを具備している。タスク要求性能テーブル22には、事前に各タスクに必要な要求性能を表す値が設定されている。電力モードテーブル25には、要求性能に対する電力モード(動作周波数と動作電圧)が設定されている。
このリアルタイムシステム(プロセッサ電力制御装置)の動作について説明する。
(従来・動作1)
複数のタスクのうちの1つのタスクが起動された時に、タスクスケジューラ11は、そのタスクの起動を電力制御ブロック20に通知する。
(従来・動作2)
電力制御ブロック20のシステム要求性能算出ブロック21は、そのタスクのリアルタイム性を保証するために、そのタスクの要求性能を表す値をタスク要求性能テーブル22から取得し、システムの要求性能を計算する。
(従来・動作3)
判定ブロック23、24は、システムの要求性能を満たし、かつ最も消費電力が小さくなるように、電力モードテーブル25を用いて電力モード(動作周波数と動作電圧)を決定し、動作周波数、動作電圧をそれぞれクロック生成部31、電圧制御部32に通知する。クロック生成部31は、その動作周波数に対するクロックを生成してCPU33に供給し、電圧制御部32は、その動作電圧をCPU33に供給する。
(従来・動作4)
上記(従来・動作1)〜(従来・動作3)の処理をタスクの起動/停止の度に行う。
上記(従来・動作2)の処理において、個々のタスクの要求性能をLDtskとする。ここで、LDtskは、タスクを要求処理時間以内に処理するために必要な動作周波数をCPUの最大動作周波数に対してパーセンテージに表現したものであり、以下の式で算出される。
LDtsk=そのタスクをCPUの最大動作周波数で動作させた時の処理時間/そのタスクの要求処理時間×100
また、上記(従来・動作2)の処理において、システムの要求性能をLDsysとする。ここで、LDsysは、タスクの起動/停止の度に、以下により算出される。
(従来・算出法1)
タスクが新たに起動された場合は、タスク起動前のLDsysに起動されたタスクのLDtskを加算した値を新たなLDsysとする。
(従来・算出法2)
タスクが終了した場合で、かつ実行待ちのタスクがある場合は、LDsysを変更しない。
(従来・算出法3)
タスクが終了した場合で、かつ実行中もしくは実行待ちのタスクが無くなった場合は。LDsysを0とする。
上記(従来・算出法1)、(従来・算出法2)、(従来・算出法3)のサイクルにより、CPU33の動作周波数と動作電圧を最適に維持する。
また、この公報の[0027]〜[0029]項を参照すると、割込みは、非同期に発生する可能性があるため、動的に周波数を変更するシステムでは、動作周波数が遅い電力モードで動作している場合にも発生しうる。タスクの実行時間を考慮すると、割込み処理期間は極力短時間であることが望ましい。そこで、割込み処理期間は、無条件にCPU33が最大周波数で動作するようにし、割込み状態が終了したときに再度、電力モードを特定し、最適な周波数に変更する。
このように、リアルタイムシステムにおいて、性能を劣化させず、個々のタスクに最適な動作周波数と動作電圧をCPU33に設定することにより、低消費電力を実現すると共に、割込み処理性能も劣化させない。
特開2005−285093号公報([0011]〜[0014]、図1)
しかし、上記のリアルタイムシステムでは、以下のような問題点がある。
まず、第1に、上記のリアルタイムシステムを高機能システムに適用することを考えてみる。リアルタイムシステムでは、イベントに対する処理をタスクという最小処理単位で実行するのに対して、高機能システムでは、複数のイベントの各々に対する処理をプロセスという最小処理単位で実行する。この場合、個々のプロセスは、複数の機能を持つ場合が多いため、上述の要求性能を一意に設定することができない。つまり、高機能システムの場合、イベント1の場合は、10[μs]以内で処理しなければならず、イベント2の場合は、100[μs]以内で処理しなければならないといったケースが多数存在する。一方、リアルタイムシステムでは、タスク要求性能テーブル22を1つのタスクに1つの値しか設定できず、重層的にテーブルを設定できない。また、高機能システムの場合には、OSによるオーバーヘッドが大きく、一意でないため、個々のプロセスの要求処理時間を予め見積もることが困難である。
第2に、上記のシステムが大規模なシステムになった場合、タスク要求性能テーブル22をタスクの数だけ見積もる必要があるため、コストがかかる。
このように、高機能システムに適用可能であり、CPUの消費電力を低減することができるデータ処理装置が望まれる。
以下に、[発明を実施するための最良の形態]で使用する番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]の記載との対応関係を明らかにするために付加されたものであるが、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明のデータ処理装置は、
オペレーティングシステム(以下、OS)(20)と、
CPU(Central Processing Unit)(30)と、
対応動作周波数と対応動作電圧で動作するように前記CPU(30)を制御する制御装置(36)とを具備し、
前記OS(20)は、
複数のイベントのそれぞれを識別する複数のイベント識別子と、前記複数のイベント識別子に対応付けられ、複数のプロセスのそれぞれを識別する複数のプロセス識別子と、設定動作周波数(f’)とが格納された動作周波数保存テーブル(25)と、
複数の動作周波数(f)と、前記複数の動作周波数(f)に比例する複数の動作電圧(V)とが格納された周波数・電圧変換テーブル(26)と、
前記複数のイベントのうちの1つのイベントが実行されるとき、前記1つのイベントを識別する対応イベント識別子を通知し、前記1つのイベントに対応する前記複数のプロセスとして複数の対応プロセスを前記CPU(30)に割り当てるスケジューラ(21)と、
前記動作周波数保存テーブル(25)を参照して、前記対応イベント識別子に対応する前記設定動作周波数(f’)として対応設定動作周波数(f’)を選択する第1動作周波数判定部(23)と、
前記周波数・電圧変換テーブル(26)を参照して、前記対応設定動作周波数(f’)に一致する前記対応動作周波数(f)と、前記対応動作周波数(f)に対応する前記対応動作電圧(V)とを選択し、前記制御装置(36)に通知する第2動作周波数判定部(23)と、
前記CPU(30)が前記複数の対応プロセスを処理するときの処理時間に基づいて、前記CPU(30)の消費電力を低減するための算出設定動作周波数(f”)を計算し、前記設定動作周波数(f’)として前記対応イベント識別子に対応付けて前記動作周波数保存テーブル(25)に格納する負荷測定部(22)と
を具備している。
本発明のデータ処理装置では、上述のように、OS(20)は、動作周波数保存テーブル(25)により、対応イベント識別子に対応する設定動作周波数(f’)として対応設定動作周波数(f’)を選択し、周波数・電圧変換テーブル(26)により、対応設定動作周波数(f’)に一致する対応動作周波数(f)と、対応動作周波数(f)に対応する対応動作電圧(V)とを選択し、制御装置(36)に通知する。制御装置(36)は、対応動作周波数と対応動作電圧で動作するようにCPU(30)を制御する。前述のように、高機能システムの場合には、OSによるオーバーヘッドが大きく、一意でないため、プロセスの要求処理時間を予め見積もることが困難である。したがって、本発明のデータ処理装置では、OS(20)は、CPU(30)が複数の対応プロセスを処理するときの処理時間に基づいて、算出設定動作周波数(f”)を計算し、設定動作周波数(f’)として動作周波数保存テーブル(25)に格納(更新)する。このように、本発明のデータ処理装置では、高機能システムに適用可能である。
また、本発明のデータ処理装置では、上述のように、算出設定動作周波数(f”)は、CPU(30)の消費電力を低減するための動作周波数を表している。この算出設定動作周波数(f”)は、設定動作周波数(f’)として動作周波数保存テーブル(25)に更新され、その設定動作周波数(f’)は、上記1つのイベントが再度実行された場合、上記の対応動作周波数(f)として利用される。周波数・電圧変換テーブル(26)に格納された複数の動作周波数(f)と複数の動作電圧(V)とは比例しているため、上記1つのイベントが再度実行されるときの対応動作周波数(f)、対応動作電圧(V)は、それぞれ、上記1つのイベントが再度実行されたときの対応動作周波数(f)、対応動作電圧(V)よりも低い。このため、本発明のデータ処理装置では、CPU(30)の消費電力を低減することができる。
以上により、本発明のデータ処理装置では、高機能システムに適用可能であり、CPUの消費電力を低減することができる。
以下に添付図面を参照して、本発明のデータ処理装置について詳細に説明する。
図1は、本発明のデータ処理装置の構成を示したブロック図である。
本発明のデータ処理装置は、オペレーティングシステム(Operating System)20と、CPU(Central Processing Unit)30と、周期タイマ装置34と、周辺装置35と、制御装置36とを具備している。
周期タイマ装置34は、タイマの機能を有している。
周辺装置35は、入力装置を含んでいる。
制御装置36は、電圧制御装置31と、クロック制御装置32と、割込み制御装置33とを具備している。
オペレーティングシステム(以下、OS)20は、前述の高機能OSの機能を有し、スケジューラ21と、負荷測定部22と、動作周波数判定部23とを具備している。
スケジューラ21は、複数のイベントの各々の複数のプロセスを含むプロセス群10を管理する。
負荷測定部22は、負荷測定周期時間テーブル24を具備している。
動作周波数判定部23は、動作周波数保存テーブル25と、周波数・電圧変換テーブル26とを具備している。
図2は、負荷測定周期時間テーブル24を示している。負荷測定周期時間テーブル24には、複数のイベントのそれぞれを識別する複数のイベント識別子“0”、“1”、“2”、“3”、“4”、…と、複数のイベントのそれぞれに対する処理を終了しなければならない時間を表す複数の負荷測定時間TEとが格納されている。
図3は、動作周波数保存テーブル25を示している。動作周波数保存テーブル25には、複数のイベント識別子“0”、“1”、“2”、“3”、“4”、…が格納されている。動作周波数保存テーブル25には、更に、複数のイベント識別子“0”、“1”、“2”、“3”、“4”、…に対応付けて、複数のプロセスのそれぞれを識別する複数のプロセス識別子と、設定動作周波数f’[MHz]とが格納されている。
図4は、周波数・電圧変換テーブル26を示している。周波数・電圧変換テーブル26には、CPU30の動作周波数を表す複数の動作周波数f[MHz]と、CPU30の動作電圧を表す複数の動作電圧V[V]とが格納されている。複数の動作周波数fは、それぞれ、“1≦f<10”、“10≦f<20”、“20≦f<30”、“30≦f<40”、“40≦f<50”、…に設定されている。複数の動作電圧Vは、複数の動作周波数fに比例し、それぞれ、“0.5”、“0.51”、“0.52”、“0.53”、“0.54”、…に設定されている。
OS20は、OSの標準的な機能を有している。複数のイベントのうちの1つのイベントが発生した時に、OS20は、その標準的な機能を用いて、上記1つのイベントに対応した複数のプロセスとして複数の対応プロセスを特定する。このとき、OS20は、上記1つのイベントを識別する対応イベント識別子と、複数の対応プロセスをそれぞれ識別する複数の対応プロセス識別子とをスケジューラ21に通知する。
OS20内のスケジューラ21は、対応イベント識別子と複数の対応プロセス識別子とにより、プロセス群10の中から、複数の対応プロセスを選択する。このとき、スケジューラ21は、対応イベント識別子と複数の対応プロセス識別子とを動作周波数判定部23に通知すると共に、複数の対応プロセスを1番目から最終番目までこの順にCPU30に割り付ける(割り当てる)。また、スケジューラ21は、複数の対応プロセスをCPU30に割り当てたときに、CPU30への割り当てがない状態である場合、アイドル(IDLE)状態であることを負荷測定部22に通知する。
動作周波数判定部23は、対応イベント識別子と複数の対応プロセス識別子とをスケジューラ21から受け取る。動作周波数判定部23は、動作周波数保存テーブル25を参照して、複数の設定動作周波数f’の中から、対応イベント識別子と複数の対応プロセス識別子とに対応する設定動作周波数f’として対応設定動作周波数f’を選択する。
動作周波数判定部23は、周波数・電圧変換テーブル26を参照して、複数の動作周波数fの中から、対応設定動作周波数f’に一致する対応動作周波数fを選択し、複数の動作電圧Vの中から、対応動作周波数fに対応する対応動作電圧Vを選択する。動作周波数判定部23は、クロック制御装置32に対応動作周波数fを通知し、電圧制御装置31に対応動作電圧Vを通知し、負荷測定部22に対応イベント識別子を通知する。また、動作周波数判定部23は、負荷測定部22から渡される算出設定動作周波数f”を設定動作周波数f’として、対応イベント識別子に対応付けて動作周波数設定テーブル25に格納(更新)する。
負荷測定部22は、対応イベント識別子を動作周波数判定部23から受け取る。負荷測定部22は、負荷測定周期時間テーブル24を参照して、複数の負荷測定時間TEの中から、対応イベント識別子に対応する対応負荷測定時間TEを選択し、その時間で割込みが発生するように、対応負荷測定時間TEを周期タイマ装置34に設定する。また、負荷測定部22は、スケジューラ21からアイドル状態の通知を受け取り、周期タイマ装置34のカウント値を取得する。このときのカウント値は、CPU30が複数の対応プロセスを実行するときの処理時間を表している(後述)。また、負荷測定部22は、周期タイマ装置34からの割込みを通知された時に、処理時間に基づいてCPU30の消費電力を低減するための算出設定動作周波数f”を計算し、動作周波数判定部23に通知する。
電圧制御装置31、クロック制御装置32は、それぞれ、動作周波数判定部23から対応動作電圧V、対応動作周波数fを受け取った時、CPU30に供給する。電圧制御装置31、クロック制御装置32は、それぞれ、割込み制御装置33から割込みの通知があった場合、割込みによる処理を高速に終わらせるために、最大動作周波数fmaxとそれに対応する最大動作電圧VmaxをCPU30に供給する。
周期タイマ装置34は、負荷測定部22により対応負荷測定時間が設定されたときに、カウントを開始する。周期タイマ装置34は、そのカウント値に対応する計測時間が対応負荷測定時間TEになったときに、負荷測定部22と割込み制御装置33とに割込みを通知する。
周辺装置35は、利用者の操作に応じて、割込みを割込み制御装置33に通知する。例えば、利用者が入力装置を用いてある操作を行なった場合、周辺装置35は、割込みを割込み制御装置33に通知する。
割込み制御装置33は、周期タイマ装置34や周辺装置35からの割込みを電圧制御装置31とクロック制御装置32に通知後、CPU30に通知する。
本発明のデータ処理装置の動作について説明する。
前提として、あるイベントにより、あるプロセスの実行が開始されてから、アイドル状態になるまでの動作周波数は一定とする。
また、アイドル状態になる前に別のイベントが発生した場合も、動作周波数は操作せず、一定のままとする。ただし、割込みは例外とする。
また、アイドル状態の場合は、CPU30の動作周波数と動作電圧は最低値まで下げることとする。
また、同イベントに対する各プロセスの処理に周期性(次に同じイベントが発生した場合に同様の処置を行う特性)を持つことを前提条件として記載している。
図8A、8Bは、本発明のデータ処理装置の動作を示すフローチャート図である。
(ステップS1;イベント通知受付)
複数のイベントのうちの1つのイベントがOS20に通知される。
(ステップS2;プロセス特定処理)
OS20は、上記1つのイベントに対応した複数のプロセスとしてn個(nは1以上の整数)の対応プロセスを特定し、上記1つのイベントを識別する対応イベント識別子と、n個の対応プロセスをそれぞれ識別するn個の対応プロセス識別子とをスケジューラ21に通知する。スケジューラ21は、対応イベント識別子と複数の対応プロセス識別子とにより、プロセス群10の中から、n個の対応プロセスを選択し、対応イベント識別子とn個の対応プロセス識別子を動作周波数判定部23に通知する。
(ステップS3;動作周波数判定処理)
動作周波数判定部23は、対応イベント識別子と複数の対応プロセス識別子とをスケジューラ21から受け取る。このとき、動作周波数判定部23は、動作周波数保存テーブル25を参照して、複数の設定動作周波数f’の中から、対応イベント識別子と複数の対応プロセス識別子とに対応する設定動作周波数f’として対応設定動作周波数f’を選択する。動作周波数判定部23は、周波数・電圧変換テーブル26を参照して、複数の動作周波数fの中から、対応設定動作周波数f’に一致する対応動作周波数fを選択し、複数の動作電圧Vの中から、対応動作周波数fに対応する対応動作電圧Vを選択する。ここで、対応イベント識別子と複数の対応プロセス識別子とに対応する設定動作周波数f’が動作周波数保存テーブル25に存在しなかった場合は、例えば、上記1つのイベントが初めて実行される場合は、対応動作周波数fを最大動作周波数fmaxとする。動作周波数判定部23は、対応動作電圧V、対応動作周波数fをそれぞれ電圧制御装置31、クロック制御装置32に通知する。
(ステップS4;周波数・電圧供給処理)
電圧制御装置31、クロック制御装置32は、それぞれ、動作周波数判定部23から対応動作電圧V、対応動作周波数fを受け取り、CPU30に供給する。
(ステップS5;周期タイマ割込み設定処理)
動作周波数判定部23は、負荷測定部22に対応イベント識別子を通知する。負荷測定部22は、対応イベント識別子を動作周波数判定部23から受け取る。このとき、負荷測定部22は、負荷測定周期時間テーブル24を参照して、複数の負荷測定時間TEの中から、対応イベント識別子に対応する対応負荷測定時間TEを選択し、その時間で割込みが発生するように、対応負荷測定時間TEを周期タイマ装置34に設定する。周期タイマ装置34は、負荷測定部22により対応負荷測定時間TEが設定されたときに、カウントを開始する。周期タイマ装置34がカウントを開始した時間をカウント開始時間T1とする。
(ステップS6;プロセス割り当て処理)
スケジューラ21は、n個の対応プロセスのうちの第i対応プロセス(iは、1≦i≦nを満たす整数)をCPU30に割り当てる。CPU30は、その第i対応プロセスを実行する。
スケジューラ21は、n個の対応プロセスを1番目からn番目までこの順にCPU30に割り当てる。即ち、iがnではない場合、他にも実行可能なプロセスとして、iに1をインクリメントし(ステップS7−YES)、上記ステップS6の処理を実行し、iがnになるまで(ステップS7−NO)、ステップS6の処理を繰り返す。
スケジューラ21は、n個の対応プロセスを1番目からn番目までこの順にCPU30に割り当てたとき(ステップS7−NO)、即ち、アイドル状態になった時に、負荷測定部22にアイドル状態であることを通知する。このとき、負荷測定部22は、スケジューラ21からアイドル状態の通知を受け取り、周期タイマ装置34のカウント値に対応する計測時間をアイドル開始時間T2として取得する。
周期タイマ割込み設定処理(ステップS5)において、周期タイマ装置34は、そのカウント値が対応負荷測定時間TEに対応する値であるときに、負荷測定部22と割込み制御装置33とに割込みを通知する。
以下の処理では、本発明のデータ処理装置の動作として、第1〜第5のケースに分けることができる。
ここで、スケジューラ21は、上記1つのイベントのn個の対応プロセスをCPU30に割り当てるプロセス割り当て処理(ステップS6)を実行した後、次のイベントにおけるプロセス割り当て処理(ステップS6)を実行するものとする。
まず、第1のケースについて説明する。
第1のケースでは、上記1つのイベントが初めて実行されるときに、負荷測定時間TE内にアイドル状態になる場合(ステップS11−YES)で、かつ、周期タイマ装置34による割込みが、次のイベントにおけるプロセス割り当て処理の実行より先に発生する場合(ステップS12−YES)であり、後述の第1負荷測定処理(ステップS20)が実行される。
この場合、負荷測定部22は、対応負荷測定時間TEを周期タイマ装置34に設定したときに、周期タイマ装置34のカウント値によりカウント開始時間T1を取得する。その後、負荷測定部22は、対応負荷測定時間TE内にスケジューラ21からアイドル状態の通知を受け取り、周期タイマ装置34のカウント値によりアイドル開始時間T2を取得する。その後、負荷測定部22は、対応負荷測定時間TE経過後に周期タイマ装置34から割込みの通知を受け取る。
上述のように、対応負荷測定時間をTEとし、カウント開始時間をT1とし、アイドル開始時間をT2とし、最大動作周波数をfmaxとし、算出設定動作周波数をf”とする。このとき、負荷測定部22は、
f”=((T2+TM−T1)/(TE−T1))×fmax
により、算出設定動作周波数f”を計算する。ここで、T1からT2までの時間を処理時間とし、T2からTEまでの時間をアイドル時間としたとき、TMは、上記1つのイベントとその次のイベントとの間にアイドル時間として最低限必要な時間で、T2に比べて十分に小さく設定される。
そこで、TMを無視した場合、算出設定動作周波数f”は、
f”=((T2−T1)/(TE−T1))×fmax
により表される。
負荷測定部22は、その算出設定動作周波数f”を動作周波数判定部23に通知し、動作周波数判定部23は、負荷測定部22からの算出設定動作周波数f”を設定動作周波数f’として、対応イベント識別子に対応付けて動作周波数設定テーブル25に格納(更新)する。この設定動作周波数f’は、上記1つのイベントが再度実行された場合、上記の対応動作周波数fとして利用される。
上記の第1負荷測定処理(ステップS20)について具体的に説明する。例えば、図5Aに示されるように、上記のnを3とし、上記1つのイベントに対するn個の対応プロセスを1番目からn番目までこの順にプロセスA、B、Cとする。また、最大動作周波数fmaxを100[MHz]とし、最大動作周波数fmaxにおいてCPU30がプロセスA、B、Cを処理するときの処理時間をそれぞれ1、2、4[ms]とする。また、対応負荷測定時間TEを14[ms]とし、OS20のオーバーヘッドを0.1[ms]とする。
上記1つのイベントが初めて実行される場合、図5Aに示されるように、クロック制御装置32と電圧制御装置31は、それぞれ、最大動作周波数fmaxとして100[MHz]とそれに対応する最大動作電圧をCPU30に供給し、スケジューラ21は、上記1つのイベントに対するプロセスA、B、Cをこの順にCPU30に割り当てる。この場合、T1=0[s]、T2=7.1[ms](1+2+4+0.1=7.1[ms])、TE=14[ms]となるので、T1からT2までの処理時間は7.1[ms]となり、T2からTEまでのアイドル時間は6.9[ms]となる。また、TMを0.2[ms]とすると、算出設定動作周波数f”は、((7.1+0.2−0)/14)×100[MHz]となり、約52[MHz]となる。
次に、上記1つのイベントが再度実行された場合、図5Bに示されるように、クロック制御装置32と電圧制御装置31は、それぞれ、対応動作周波数fとして52[MHz]とそれに対応する対応動作電圧VとをCPU30に供給し、スケジューラ21は、上記1つのイベントに対するプロセスA、B、Cをこの順にCPU30に割り当てる。この場合、CPU30は52[MHz]とそれに対応する対応動作電圧Vで動作し、そのときのプロセスA、B、Cの処理時間は7.1[ms]から約13.65[ms]に延びている。一方、対応動作周波数fと対応動作電圧Vが前回のそれよりも下がっていることから、CPU30の消費電力は低下している。
このように、本発明では、同イベント(上記1つのイベント)で実行されるプロセスに周期性がある場合に、処理時間をアイドル時間分だけ間延びさせ、対応動作周波数fと対応動作電圧Vを低下させることにより、省電力化を図ることができる。また、負荷測定時間は、プロセスA、B、Cの処理を終わらせなければならない時間でもあるため、対応動作周波数fは必要以上に低下されない。
次に、第2のケースについて説明する。
第2のケースでは、上記1つのイベントが初めて実行されるときに、負荷測定時間TE内にアイドル状態になる場合(ステップS11−YES)で、かつ、次のイベントにおけるプロセス割り当て処理の実行が、周期タイマ装置34による割込みより先に発生する場合(ステップS12−NO)であり、後述の第2負荷測定処理(ステップS30)が実行される。
この場合、負荷測定部22は、対応負荷測定時間TEを周期タイマ装置34に設定したときに、周期タイマ装置34のカウント値によりカウント開始時間T1を取得する。その後、負荷測定部22は、対応負荷測定時間TE内にスケジューラ21からアイドル状態の通知を受け取り、周期タイマ装置34のカウント値によりアイドル開始時間T2を取得する。その後、負荷測定部22は、対応負荷測定時間TE内に、次のイベントにおける負荷測定時間を周期タイマ装置34に設定したときに、周期タイマ装置34のカウント値によりカウント開始時間として、次のカウント開始時間T3を取得する。負荷測定部22は、負荷測定時間TE経過後に周期タイマ装置34から割込みの通知を受け取る。
上述のように、カウント開始時間をT1とし、アイドル開始時間をT2とし、カウント開始時間T1に対する次のカウント開始時間をT3とし、最大動作周波数をfmaxとし、算出設定動作周波数をf”とする。このとき、負荷測定部22は、
f”=((T2+TM−T1)/(T3−T1))×fmax
により、算出設定動作周波数f”を計算する。ここで、上述のように、T1からT2までの時間を処理時間とし、T2からTEまでの時間をアイドル時間としたとき、TMは、上記1つのイベントとその次のイベントとの間にアイドル時間として最低限必要な時間で、T2に比べて十分に小さく設定される。
そこで、TMを無視した場合、算出設定動作周波数f”は、
f”=((T2−T1)/(T3−T1))×fmax
により表される。
負荷測定部22は、その算出設定動作周波数f”を動作周波数判定部23に通知し、動作周波数判定部23は、負荷測定部22からの算出設定動作周波数f”を設定動作周波数f’として、対応イベント識別子に対応付けて動作周波数設定テーブル25に格納(更新)する。この設定動作周波数f’は、上記1つのイベントが再度実行された場合、上記の対応動作周波数fとして利用される。
上記の第2負荷測定処理(ステップS30)について具体的に説明する。例えば、図6Aに示されるように、上記のnを3とし、上記1つのイベントに対するn個の対応プロセスを1番目からn番目までこの順にプロセスA、B、Cとする。また、最大動作周波数fmaxを100[MHz]とし、最大動作周波数fmaxにおいてCPU30がプロセスA、B、Cを処理するときの処理時間をそれぞれ1、2、4[ms]とする。対応負荷測定時間TEを14[ms]とし、OS20のオーバーヘッドを0.1[ms]とする。また、別のイベントによりプロセスDがプロセスAの開始から10[ms]後に開始されるものとする。
上記1つのイベントが初めて実行される場合、図6Aに示されるように、クロック制御装置32と電圧制御装置31は、それぞれ、最大動作周波数fmaxとして100[MHz]とそれに対応する最大動作電圧をCPU30に供給し、スケジューラ21は、上記1つのイベントに対するプロセスA、B、Cをこの順にCPU30に割り当てる。この場合、T1=0[s]、T2=7.1[ms](1+2+4+0.1=7.1[ms])、TE=14[ms]、T3=10[ms]となるので、T1からT2までの処理時間は7.1[ms]となり、T2からT3までのアイドル時間は2.9[ms]となる。また、TMを0.2[ms]とすると、算出設定動作周波数f”は、((7.1+0.2−0)/(10−0))×100[MHz]となり、約73[MHz]となる。
次に、上記1つのイベントが再度実行された場合、図6Bに示されるように、クロック制御装置32と電圧制御装置31は、それぞれ、対応動作周波数fとして73[MHz]とそれに対応する対応動作電圧VとをCPU30に供給し、スケジューラ21は、上記1つのイベントに対するプロセスA、B、Cをこの順にCPU30に割り当てる。この場合、CPU30は73[MHz]とそれに対応する対応動作電圧Vで動作し、そのときのプロセスA、B、Cの処理時間は7.1[ms]から約9.73[ms]に延びている。一方、対応動作周波数fと対応動作電圧Vが前回のそれよりも下がっていることから、CPU30の消費電力は低下している。
このように、本発明では、同イベント(上記1つの対応イベント)で実行されるプロセスに周期性があり、アイドル状態後、別のイベントでプロセスが動作した場合でも、処理時間をアイドル時間分だけ間延びさせ、対応動作周波数fと対応動作電圧Vを低下させることにより省電力化を図ることができる。また、何らかの理由によりプロセスDが実行されなかった場合でも、上述の第1のケースが実行されるので、更なる省電力化を期待できる。
次に、第3のケースについて説明する。
第3のケースでは、上記1つのイベントが実行されるときに、アイドル状態になる前に周期タイマ装置34による割込みが1回発生した場合(ステップS11−NO、S13−YES、S14−NO)であり、後述の第3負荷測定処理(ステップS40)が実行される。
この場合、負荷測定部22は、対応負荷測定時間TEを周期タイマ装置34に設定したときに、周期タイマ装置34のカウント値によりカウント開始時間T1を取得する。その後、負荷測定部22は、スケジューラ21からアイドル状態の通知を受け取る前に、負荷測定時間TE経過後に周期タイマ装置34から割込みの通知を受け取る。その後、負荷測定部22は、スケジューラ21からアイドル状態の通知を受け取り、周期タイマ装置34のカウント値によりアイドル開始時間T2を取得する。
上述のように、対応負荷測定時間をTEとし、カウント開始時間をT1とし、アイドル開始時間をT2とし、現在の動作周波数として上記の対応動作周波数をfとし、算出設定動作周波数f”に対する調整用算出設定動作周波数をf”’とする。このとき、負荷測定部22は、
f”’=((T2+TM−T1)/TE)×f
により、調整用算出設定動作周波数f”’を計算する。ここで、T1からT2までの時間を処理時間とし、T2からTEまでの時間をアイドル時間としたとき、TMは、上記1つのイベントとその次のイベントとの間にアイドル時間として最低限必要な時間で、T2に比べて十分に小さく設定される。また、調整用算出設定動作周波数f”’が最大動作周波数fmaxよりも大きい場合は、調整用算出設定動作周波数f”’を最大動作周波数fmaxとする。
また、TMを無視した場合、調整用算出設定動作周波数f”’は、
f”’=((T2−T1)/TE)×f
により表される。
負荷測定部22は、その調整用算出設定動作周波数f”’を動作周波数判定部23に通知し、動作周波数判定部23は、負荷測定部22からの調整用算出設定動作周波数f”’を設定動作周波数f’として、対応イベント識別子に対応付けて動作周波数設定テーブル25に格納(更新)する。この設定動作周波数f’は、上記1つのイベントが再度実行された場合、上記の対応動作周波数fとして利用される。
上記の第3負荷測定処理(ステップS40)について具体的に説明する。例えば、図7Aに示されるように、上記のnを3とし、上記1つのイベントに対するn個の対応プロセスを1番目からn番目までこの順にプロセスA、B、Cとする。また、最大動作周波数fmaxを100[MHz]とし、対応動作周波数fを50[MHz]とし、対応動作周波数fにおいてCPU30がプロセスA、B、Cを処理するときの処理時間をそれぞれ2、4、8[ms]とし、対応負荷測定時間TEを14[ms]とし、割り込みなどのOS20によるオーバーヘッドを4[ms]とする。
上記1つのイベントが実行される場合、図7Aに示されるように、クロック制御装置32と電圧制御装置31は、それぞれ、対応動作周波数fとして50[MHz]とそれに対応する対応動作電圧VをCPU30に供給し、スケジューラ21は、上記1つのイベントに対するプロセスA、B、Cをこの順にCPU30に割り当てる。この場合、T1=0[s]、T2=18[ms](2+4+8+4=18[ms])、TE=14[ms]となるので、T1からT2までの処理時間は18[ms]となる。また、TMを0.2[ms]とすると、調整用算出設定動作周波数f”’は、((18+0.2−0)/14)×50[MHz]となり、約65[MHz]となる。
次に、上記1つのイベントが再度実行された場合、図7Bに示されるように、クロック制御装置32と電圧制御装置31は、それぞれ、対応動作周波数fとして65[MHz]とそれに対応する対応動作電圧VとをCPU30に供給し、スケジューラ21は、上記1つのイベントに対するプロセスA、B、Cをこの順にCPU30に割り当てる。この場合、CPU30は65[MHz]とそれに対応する対応動作電圧Vで動作し、そのときのプロセスA、B、Cの処理時間は18[ms]から約13.85[ms]に縮まっている。このため、負荷測定時間TE内でプロセスA、B、Cの処理を完了している。
このように、本発明では、OS20のオーバーヘッド等の他の要因が発生しても、プロセスA、B、Cの処理が負荷測定時間TE内で完了するように、柔軟に対処し、かつ省電力化を図ることができる。
次に、第4のケースについて説明する。
第4のケースでは、上記1つのイベントが実行されるときに、アイドル状態になる前に周期タイマ装置34による割込みが2回以上発生した場合(ステップS11−NO、S13−YES、S14−YES)であり、割込み処理(ステップS50)が実行される。
この場合、負荷測定部22は、対応負荷測定時間TEを周期タイマ装置34に設定したときに、周期タイマ装置34のカウント値によりカウント開始時間T1を取得する。その後、負荷測定部22は、スケジューラ21からアイドル状態の通知を受け取る前に、負荷測定時間TE経過後に周期タイマ装置34から割込みの通知を2回受け取る。この時は、複数イベントによる高負荷状態なので、プロセスA、B、Cの処理を早く終わらせる必要がある。そのために、負荷測定部22は、最大動作周波数優先通知を動作周波数判定部23に通知する。動作周波数判定部23は、この最大動作周波数優先通知に応じて、最大動作電圧Vmax、最大動作周波数fmaxをCPU30に供給する。このとき、CPU30は、最大動作周波数fmaxと最大動作電圧Vmaxで動作し、割込み制御装置33は、CPU30に割込みを通知する。
上記のような場合は、多数のイベントにより多数のプロセスが動作している。このような時は高負荷状態なので、プロセスA、B、Cの処理を早期に終わらせる必要がある。そのためにCPU30を最大動作周波数fmaxと最大動作電圧Vmaxで動作させる。このような場合には、省電力化を図ることは期待できないが、性能要求としてデータ処理装置の信頼性を満足させることはできる。次に動作した場合は、第1〜3のケースが実行されるときに省電力化を図ることができる。このため、性能要求を満たしつつ省電力化を図ることができる。
周期タイマ装置34による割込みが2回発生する間は、CPU30が低速動作する可能性があるが、高機能OSを採用するシステムでは、リアルタイムOSほど厳密な処理要求性能を満たす必要がないため問題とはならない。
次に、第5のケースについて説明する。
第5のケースでは、上記1つのイベントが実行されるときに、周辺装置35による割込みが発生した場合(ステップS11−NO、S13−NO、S15−YES)であり、上述の割込み処理(ステップS50)が実行される。
割込みは非同期に発生するため、低周波数動作時でも発生する可能性がある。しかしシステム性能を劣化させないためには、割込み処理を高速に終わらせる必要がある。そこで、以下のような動作を行う。
割込み制御装置33は、周辺装置35からの割込みを電圧制御装置31とクロック制御装置32に通知する。電圧制御装置31、クロック制御装置32は、それぞれ、動作周波数判定部23から通知される対応動作電圧V、対応動作周波数fを無視して、優先的に最大動作電圧Vmax、最大動作周波数fmaxをCPU30に供給する。このとき、CPU30は最大動作周波数fmaxと最大動作電圧Vmaxで動作し、その後、割込み制御装置33は、CPU30に割込みを通知する。
OS20は、その発生した割込みに対応した処理を行う。OS20は、割込みに対応した処理を終了した後、動作周波数判定部23に割り込み発生前の対応動作周波数fと対応動作電圧Vに戻すように、電圧制御装置31、クロック制御装置32に通知を行う。
電圧制御装置31、クロック制御装置32は、それぞれ、動作周波数判定部23から通知される対応動作電圧V、対応動作周波数fをCPU30に供給する。CPU30は、割込み前の対応動作周波数fとそれに対応する対応動作電圧Vで動作する。
割込み発生時に、上記の割込処理を行うことにより、割込み性能を劣化せず、省電力化を実現できる。
以上の説明により、本発明のデータ処理装置では、高機能システムに適用可能であり、CPUの消費電力を低減することができる。
その理由として、第1に、本発明のデータ処理装置では、上述のように、OS20は、動作周波数保存テーブル25により、対応イベント識別子に対応する設定動作周波数f’として対応設定動作周波数f’を選択し、周波数・電圧変換テーブル26により、対応設定動作周波数f’に一致する対応動作周波数fと、対応動作周波数fに対応する対応動作電圧Vとを選択し、制御装置36(電圧制御装置31、クロック制御装置32)に通知する。制御装置36(電圧制御装置31、クロック制御装置32)は、対応動作周波数と対応動作電圧で動作するようにCPU30を制御する。前述のように、高機能システムの場合には、OSによるオーバーヘッドが大きく、一意でないため、プロセスの要求処理時間を予め見積もることが困難である。したがって、本発明のデータ処理装置では、OS20は、CPU30が複数の対応プロセスを処理するときの処理時間に基づいて、算出設定動作周波数f”を計算し、設定動作周波数f’として動作周波数保存テーブル25に格納(更新)する。このように、本発明のデータ処理装置では、高機能システムに適用可能である。
第2に、本発明のデータ処理装置では、上述のように、算出設定動作周波数f”は、CPU30の消費電力を低減するための動作周波数を表している。この算出設定動作周波数f”は、設定動作周波数f’として動作周波数保存テーブル25に更新され、設定動作周波数f’は、上記1つのイベントが再度実行された場合、上記の対応動作周波数fとして利用される。周波数・電圧変換テーブル26に格納された複数の動作周波数fと複数の動作電圧Vとは比例しているため、上記1つのイベントが再度実行されるときの対応動作周波数f、対応動作電圧Vは、それぞれ、上記1つのイベントが再度実行されたときの対応動作周波数f、対応動作電圧Vよりも低い。このため、本発明のデータ処理装置では、CPU30の消費電力を低減することができる。
本発明のデータ処理装置の構成を示すブロック図である。 図1の負荷測定周期時間テーブルを示す図である。 図1の動作周波数保存テーブルを示す図である。 図1の周波数・電圧変換テーブルを示す図である。 本発明のデータ処理装置の動作として第1負荷測定処理(S20)を説明するための図であり、あるイベントによりプロセスA、B、Cを最大動作周波数で実行した場合のタイミングチャート図である。 本発明のデータ処理装置の動作として第1負荷測定処理(S20)を説明するための図であり、同イベントによりプロセスA、B、Cを設定動作周波数で実行した場合のタイムチャート図である。 本発明のデータ処理装置の動作として第2負荷測定処理(S30)を説明するための図であり、あるイベントによりプロセスA、B、Cを最大動作周波数で実行した場合のタイミングチャート図である。 本発明のデータ処理装置の動作として第2負荷測定処理(S30)を説明するための図であり、同イベントによりプロセスA、B、Cを設定動作周波数で実行した場合のタイムチャート図である。 本発明のデータ処理装置の動作として第3負荷測定処理(S40)を説明するための図であり、あるイベントによりプロセスA、B、Cを最大動作周波数で実行した場合のタイミングチャート図である。 本発明のデータ処理装置の動作として第3負荷測定処理(S40)を説明するための図であり、同イベントによりプロセスA、B、Cを設定動作周波数で実行した場合のタイムチャート図である。 本発明のデータ処理装置の動作を示すフローチャート図である。 本発明のデータ処理装置の動作を示すフローチャート図である。
符号の説明
10 プロセス群
20 OS
21 スケジューラ
22 負荷測定部
23 動作周波数判定部
24 負荷測定周期時間テーブル
25 動作周波数保存テーブル
26 周波数・電圧変換テーブル
30 CPU
31 電圧制御装置
32 クロック制御装置
33 割込み制御装置
34 周期タイマ装置
35 周辺装置
36 制御装置

Claims (12)

  1. オペレーティングシステム(以下、OS)と、
    CPU(Central Processing Unit)と、
    対応動作周波数と対応動作電圧で動作するように前記CPUを制御する制御装置とを具備し、
    前記OSは、
    複数のイベントのそれぞれを識別する複数のイベント識別子と、前記複数のイベント識別子に対応付けられ、複数のプロセスのそれぞれを識別する複数のプロセス識別子と、設定動作周波数とが格納された動作周波数保存テーブルと、
    複数の動作周波数と、前記複数の動作周波数に比例する複数の動作電圧とが格納された周波数・電圧変換テーブルと、
    前記複数のイベントのうちの1つのイベントが実行されるとき、前記1つのイベントを識別する対応イベント識別子を通知し、前記1つのイベントに対応する前記複数のプロセスとして複数の対応プロセスを前記CPUに割り当てるスケジューラと、
    前記動作周波数保存テーブルを参照して、前記対応イベント識別子に対応する前記設定動作周波数として対応設定動作周波数を選択する第1動作周波数判定部と、
    前記周波数・電圧変換テーブルを参照して、前記対応設定動作周波数に一致する前記対応動作周波数と、前記対応動作周波数に対応する前記対応動作電圧とを選択し、前記制御装置に通知する第2動作周波数判定部と、
    前記CPUが前記複数の対応プロセスを処理するときの処理時間に基づいて、前記CPUの消費電力を低減するための算出設定動作周波数を計算し、前記設定動作周波数として前記対応イベント識別子に対応付けて前記動作周波数保存テーブルに格納する負荷測定部と
    を具備するデータ処理装置。
  2. 前記OSは、
    前記複数のイベント識別子と、前記複数のイベントのそれぞれに対する処理を終了しなければならない時間を表す複数の負荷測定時間とが格納された負荷測定周期時間テーブルを更に具備し、
    前記負荷測定部は、
    前記負荷測定周期時間テーブルを参照して、前記対応イベント識別子に対応する対応負荷測定時間を選択し、
    前記処理時間と前記対応負荷測定時間とに基づいて、前記算出設定動作周波数を計算する
    請求項1に記載のデータ処理装置。
  3. 周期タイマ装置を更に具備し、
    前記負荷測定部は、
    前記対応負荷測定時間を選択したときに、前記対応負荷測定時間を前記周期タイマ装置に設定し、
    前記スケジューラは、前記複数の対応プロセスを前記CPUに割り当てるプロセス割り当て処理を実行したときに、前記CPUへの割り当てがない場合、前記CPUがアイドル状態であることを前記負荷測定部に通知し、
    前記周期タイマ装置は、前記対応負荷測定時間が設定されたときに、カウントを開始し、そのカウント値に対応する計測時間が前記対応負荷測定時間になったときに、割込みを通知し、
    前記処理時間は、前記負荷測定部が前記対応負荷測定時間を前記周期タイマ装置に設定したカウント開始時間から、前記アイドル状態の通知を受け取ったアイドル開始時間までの時間を表し、
    前記負荷測定部は、
    前記カウント開始時間と前記アイドル開始時間と前記対応負荷測定時間とに基づいて、前記算出設定動作周波数を計算する
    請求項2に記載のデータ処理装置。
  4. 前記1つのイベントが実行されるときに、前記対応負荷測定時間内に前記アイドル状態になり、かつ、前記周期タイマ装置による割込みが、次のイベントにおける前記プロセス割り当て処理の実行より先に発生する場合、
    前記対応負荷測定時間をTEとし、前記カウント開始時間をT1とし、前記アイドル開始時間をT2とし、最大動作周波数をfmaxとし、前記算出設定動作周波数をf”としたとき、前記負荷測定部は、
    f”=((T2−T1)/(TE−T1))×fmax
    により、前記算出設定動作周波数を計算し、
    前記算出設定動作周波数を前記設定動作周波数として前記対応イベント識別子に対応付けて前記動作周波数保存テーブルに格納し、
    前記対応イベント識別子に対応する前記設定動作周波数は、前記1つのイベントが再度実行された場合、前記対応動作周波数として利用される
    請求項3に記載のデータ処理装置。
  5. 前記1つのイベントが実行されるときに、前記対応負荷測定時間内に前記アイドル状態になり、かつ、次のイベントにおける前記プロセス割り当て処理の実行が、前記周期タイマ装置による割込みより先に発生する場合、
    前記負荷測定部が前記対応負荷測定時間内に次のイベントにおける負荷測定時間を前記周期タイマ装置に設定したカウント開始時間として、次のカウント開始時間をT3としたとき、前記負荷測定部は、
    f”=((T2−T1)/(T3−T1))×fmax
    により、前記算出設定動作周波数を計算し、
    前記算出設定動作周波数を前記設定動作周波数として前記対応イベント識別子に対応付けて前記動作周波数保存テーブルに格納し、
    前記対応イベント識別子に対応する前記設定動作周波数は、前記1つのイベントが再度実行された場合、前記対応動作周波数として利用される
    請求項4に記載のデータ処理装置。
  6. 前記1つのイベントが実行されるときに、前記アイドル状態になる前に前記周期タイマ装置による割込みが1回発生した場合、
    現在の動作周波数として前記対応動作周波数をfとし、前記算出設定動作周波数に対する調整用算出設定動作周波数をf”’としたとき、前記負荷測定部は、
    f”’=((T2−T1)/TE)×f
    により、前記調整用算出設定動作周波数を計算し、
    前記調整用算出設定動作周波数が前記最大動作周波数よりも大きい場合は、前記調整用算出設定動作周波数を前記最大動作周波数とし、
    前記調整用算出設定動作周波数を前記設定動作周波数として前記対応イベント識別子に対応付けて前記動作周波数保存テーブルに格納し、
    前記対応イベント識別子に対応する前記設定動作周波数は、前記1つのイベントが再度実行された場合、前記対応動作周波数として利用される
    請求項4又は5に記載のデータ処理装置。
  7. 前記1つのイベントが実行されるときに、前記アイドル状態になる前に前記周期タイマ装置による割込みが2回以上発生した場合、
    前記負荷測定部は、最大動作周波数優先通知を前記第2動作周波数判定部に通知し、
    前記第2動作周波数判定部は、前記最大動作周波数優先通知に応じて、前記最大動作周波数とそれに対応する最大動作電圧とを前記制御装置に通知し、
    前記制御装置は、前記最大動作周波数とそれに対応する最大動作電圧で動作するように前記CPUを制御する
    請求項6に記載のデータ処理装置。
  8. 前記1つのイベントが実行されるときに、周辺装置による割込みが発生した場合、
    前記制御装置は、前記最大動作周波数とそれに対応する最大動作電圧で動作するように前記CPUを制御する
    請求項4〜7のいずれかに記載のデータ処理装置。
  9. 前記1つのイベントが実行されるときに、前記対応負荷測定時間内に前記アイドル状態になり、かつ、前記周期タイマ装置による割込みが、次のイベントにおける前記プロセス割り当て処理の実行より先に発生する場合、
    前記1つのイベントとその次のイベントとの間に最低限必要な時間をTMとしたとき、前記負荷測定部は、
    f”=((T2+TM−T1)/(TE−T1))×fmax
    により、前記算出設定動作周波数を計算する
    請求項4に記載のデータ処理装置。
  10. 前記1つのイベントが実行されるときに、前記対応負荷測定時間内に前記アイドル状態になり、かつ、次のイベントにおける前記プロセス割り当て処理の実行が、前記周期タイマ装置による割込みより先に発生する場合、
    前記1つのイベントとその次のイベントとの間に最低限必要な時間をTMとしたとき、前記負荷測定部は、
    f”=((T2+TM−T1)/(T3−T1))×fmax
    により、前記算出設定動作周波数を計算する
    請求項5に記載のデータ処理装置。
  11. 前記1つのイベントが実行されるときに、前記アイドル状態になる前に前記周期タイマ装置による割込みが1回発生した場合、
    前記1つのイベントとその次のイベントとの間に最低限必要な時間をTMとしたとき、前記負荷測定部は、
    f”’=((T2+TM−T1)/TE)×f
    により、前記調整用算出設定動作周波数を計算する
    請求項6に記載のデータ処理装置。
  12. CPU(Central Processing Unit)と、対応動作周波数と対応動作電圧で動作するように前記CPUを制御する制御装置とに接続されたオペレーティングシステム(以下、OS)を用いる方法であって、
    前記複数のイベントのうちの1つのイベントが実行されるとき、前記1つのイベントを識別する対応イベント識別子を特定する特定ステップと、
    複数のイベントのそれぞれを識別する複数のイベント識別子と、前記複数のイベント識別子に対応付けられ、複数のプロセスのそれぞれを識別する複数のプロセス識別子と、設定動作周波数とが格納された動作周波数保存テーブルを参照して、前記対応イベント識別子に対応する前記設定動作周波数として対応設定動作周波数を選択する第1動作周波数判定ステップと、
    複数の動作周波数と、前記複数の動作周波数に比例する複数の動作電圧とが格納された周波数・電圧変換テーブルを参照して、前記対応設定動作周波数に一致する前記対応動作周波数と、前記対応動作周波数に対応する前記対応動作電圧とを選択し、前記制御装置に通知する第2動作周波数判定ステップと、
    前記1つのイベントに対応する前記複数のプロセスとして複数の対応プロセスを前記CPUに割り当てるプロセス割り当てステップと、
    前記CPUが前記複数の対応プロセスを処理するときの処理時間に基づいて、前記CPUの消費電力を低減するための算出設定動作周波数を計算する負荷測定ステップと、
    前記算出設定動作周波数を前記設定動作周波数として前記対応イベント識別子に対応付けて前記動作周波数保存テーブルに格納する更新ステップと
    を具備するデータ処理方法。
JP2006288379A 2006-10-24 2006-10-24 データ処理装置 Expired - Fee Related JP4697805B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006288379A JP4697805B2 (ja) 2006-10-24 2006-10-24 データ処理装置
GB0720527A GB2443307B (en) 2006-10-24 2007-10-19 Data processing apparatus and cpu control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006288379A JP4697805B2 (ja) 2006-10-24 2006-10-24 データ処理装置

Publications (2)

Publication Number Publication Date
JP2008107944A true JP2008107944A (ja) 2008-05-08
JP4697805B2 JP4697805B2 (ja) 2011-06-08

Family

ID=38814168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006288379A Expired - Fee Related JP4697805B2 (ja) 2006-10-24 2006-10-24 データ処理装置

Country Status (2)

Country Link
JP (1) JP4697805B2 (ja)
GB (1) GB2443307B (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101931384A (zh) * 2009-06-22 2010-12-29 张中行 可实时调整频率升降的省电式触发控制装置及方法
JP2013030010A (ja) * 2011-07-28 2013-02-07 Fujitsu Ltd 情報処理装置、情報処理プログラムおよび情報処理方法
JP2014219788A (ja) * 2013-05-07 2014-11-20 富士通株式会社 情報処理装置、省電力化制御方法および省電力化制御プログラム
JP5870935B2 (ja) * 2011-01-20 2016-03-01 日本電気株式会社 制御システム
JP2016184274A (ja) * 2015-03-26 2016-10-20 日本電気株式会社 管理装置、管理装置の制御方法、及びプログラム
US9829952B2 (en) 2014-11-24 2017-11-28 Samsung Electronics Co., Ltd. Processor that has its operating frequency controlled in view of power consumption during operation and semiconductor device including the same
JPWO2020246594A1 (ja) * 2019-06-07 2020-12-10
US11086690B2 (en) 2018-04-27 2021-08-10 Renesas Electronics Corporation Semiconductor device and processor control method

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101893927B (zh) * 2009-05-22 2012-12-19 中兴通讯股份有限公司 手持设备功耗管理方法
GB2476650A (en) * 2009-12-30 2011-07-06 1E Ltd Computer which enters a low power state when there is no user activity and no process requiring a high power state
KR102222752B1 (ko) 2014-08-01 2021-03-04 삼성전자주식회사 프로세서의 동적 전압 주파수 스케일링 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09114540A (ja) * 1995-10-18 1997-05-02 Sony Corp クロック発生装置
JPH09297688A (ja) * 1996-03-06 1997-11-18 Mitsubishi Electric Corp システムクロック決定装置
JP2000122747A (ja) * 1998-10-12 2000-04-28 Nec Corp ディジタル信号演算処理部の制御装置および方法
JP2004152068A (ja) * 2002-10-31 2004-05-27 Sharp Corp 動作周波数制御システムおよび方法
JP2005136956A (ja) * 2003-10-08 2005-05-26 Toshiba Corp 論理回路装置、動作電圧変更方法
JP2005346301A (ja) * 2004-06-01 2005-12-15 Sony Computer Entertainment Inc タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム
WO2006109887A1 (ja) * 2005-04-12 2006-10-19 Waseda University マルチプロセッサシステム及びマルチグレイン並列化コンパイラ

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721892B1 (en) * 2000-05-09 2004-04-13 Palmone, Inc. Dynamic performance adjustment of computation means
US6988211B2 (en) * 2000-12-29 2006-01-17 Intel Corporation System and method for selecting a frequency and voltage combination from a table using a selection field and a read-only limit field
GB2408357A (en) * 2003-11-18 2005-05-25 Motorola Inc Regulating a voltage supply to a semiconductor device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09114540A (ja) * 1995-10-18 1997-05-02 Sony Corp クロック発生装置
JPH09297688A (ja) * 1996-03-06 1997-11-18 Mitsubishi Electric Corp システムクロック決定装置
JP2000122747A (ja) * 1998-10-12 2000-04-28 Nec Corp ディジタル信号演算処理部の制御装置および方法
JP2004152068A (ja) * 2002-10-31 2004-05-27 Sharp Corp 動作周波数制御システムおよび方法
JP2005136956A (ja) * 2003-10-08 2005-05-26 Toshiba Corp 論理回路装置、動作電圧変更方法
JP2005346301A (ja) * 2004-06-01 2005-12-15 Sony Computer Entertainment Inc タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム
WO2006109887A1 (ja) * 2005-04-12 2006-10-19 Waseda University マルチプロセッサシステム及びマルチグレイン並列化コンパイラ

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101931384A (zh) * 2009-06-22 2010-12-29 张中行 可实时调整频率升降的省电式触发控制装置及方法
JP2011003174A (ja) * 2009-06-22 2011-01-06 Chung-Hsing Chang 周波数の即時調整が可能な節電型トリガー制御装置、および、その方法
JP5870935B2 (ja) * 2011-01-20 2016-03-01 日本電気株式会社 制御システム
JP2013030010A (ja) * 2011-07-28 2013-02-07 Fujitsu Ltd 情報処理装置、情報処理プログラムおよび情報処理方法
JP2014219788A (ja) * 2013-05-07 2014-11-20 富士通株式会社 情報処理装置、省電力化制御方法および省電力化制御プログラム
US9829952B2 (en) 2014-11-24 2017-11-28 Samsung Electronics Co., Ltd. Processor that has its operating frequency controlled in view of power consumption during operation and semiconductor device including the same
JP2016184274A (ja) * 2015-03-26 2016-10-20 日本電気株式会社 管理装置、管理装置の制御方法、及びプログラム
US11086690B2 (en) 2018-04-27 2021-08-10 Renesas Electronics Corporation Semiconductor device and processor control method
JPWO2020246594A1 (ja) * 2019-06-07 2020-12-10
WO2020246594A1 (ja) * 2019-06-07 2020-12-10 ダイキン工業株式会社 機器制御システム、機器の制御方法
CN113994647A (zh) * 2019-06-07 2022-01-28 大金工业株式会社 设备控制系统、设备的控制方法
CN113994647B (zh) * 2019-06-07 2023-11-17 大金工业株式会社 设备控制系统、设备的控制方法
JP7448830B2 (ja) 2019-06-07 2024-03-13 ダイキン工業株式会社 機器制御システム、機器の制御方法

Also Published As

Publication number Publication date
JP4697805B2 (ja) 2011-06-08
GB2443307A (en) 2008-04-30
GB0720527D0 (en) 2007-11-28
GB2443307B (en) 2008-09-03

Similar Documents

Publication Publication Date Title
JP4697805B2 (ja) データ処理装置
JP6386165B2 (ja) 分散コンピュータシステムへの電力割り振りに変更がある場合に中断され得るジョブ及び中断され得ないジョブを管理するための方法並びに装置
US6986068B2 (en) Arithmetic processing system and arithmetic processing control method, task management system and task management method
JP4370336B2 (ja) 低消費電力ジョブ管理方法及び計算機システム
JP2005285093A (ja) プロセッサ電力制御装置及びプロセッサ電力制御方法
JPWO2005106623A1 (ja) Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
JP2008077563A (ja) 電子機器およびcpu動作環境制御プログラム
JP2008257578A (ja) 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
US20160210174A1 (en) Hybrid Scheduler and Power Manager
JP5982588B2 (ja) 保証された過渡期限とともに中央処理装置の電力を制御するためのシステムおよび方法
KR100731983B1 (ko) 저전력 무선 디바이스 프로세서용 하드와이어드 스케줄러및 스케줄링 방법
JP2004252937A (ja) アプリケーション実行のエネルギーを重視したスケジューリング
US20110016247A1 (en) Multiprocessor system and multiprocessor system interrupt control method
US20140137122A1 (en) Modified backfill scheduler and a method employing frequency control to reduce peak cluster power requirements
Mochocki et al. A unified approach to variable voltage scheduling for nonideal DVS processors
JP5462529B2 (ja) タスク割当装置、および、タスク割当方法
JP2003271401A (ja) 負荷監視機能を有するマイクロプロセッサ
JP5585651B2 (ja) マルチコアシステム、スケジューリング方法およびスケジューリングプログラム
EP3039544B1 (en) Method and system for assigning a computational block of a software program to cores of a multi-processor system
WO2010137233A1 (ja) マルチプロセッサシステムにおける省電力制御装置およびモバイル端末
WO2012036954A2 (en) Scheduling amongst multiple processors
JP2005018560A (ja) 命令プロセッサ割り当てスケジューリング方法、該命令プロセッサ割り当てスケジューリング方法を実現する計算機システムおよびそのためのプログラム
US9465655B2 (en) Method for managing threads using executing time scheduling technique and electronic device using the same method
JP2007072598A (ja) バス調停方法及びバス調停プログラム
US9201707B2 (en) Distributed system, device, method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110222

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110224

LAPS Cancellation because of no payment of annual fees