JP4445410B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP4445410B2
JP4445410B2 JP2005048593A JP2005048593A JP4445410B2 JP 4445410 B2 JP4445410 B2 JP 4445410B2 JP 2005048593 A JP2005048593 A JP 2005048593A JP 2005048593 A JP2005048593 A JP 2005048593A JP 4445410 B2 JP4445410 B2 JP 4445410B2
Authority
JP
Japan
Prior art keywords
time
task
information processing
processing apparatus
execution 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.)
Expired - Fee Related
Application number
JP2005048593A
Other languages
English (en)
Other versions
JP2006235907A (ja
Inventor
智 三坂
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2005048593A priority Critical patent/JP4445410B2/ja
Publication of JP2006235907A publication Critical patent/JP2006235907A/ja
Application granted granted Critical
Publication of JP4445410B2 publication Critical patent/JP4445410B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Landscapes

  • Power Sources (AREA)

Description

本発明は、情報処理装置及びそれに搭載されたオペレーティングシステムを含むソフトウェアに関し、特に組み込み機器などの情報処理装置およびそれに搭載されたリアルタイムOSおよびミドルウェアプログラムなどのソフトウェアに適用して有効な技術に関するものである。
本発明者が検討したところによれば、情報処理装置の省電力技術に関しては、以下のようなものが考えられる。
図27は、特許文献1の図5に記載の従来技術の電力制御装置及びその電力制御方法並びにそのプログラムを示す構成図である。この電力制御装置は、バッテリ駆動且つプロセッサ搭載の携帯機器、例えば携帯電話、携帯型オーディオ、携帯型ビデオカメラ、ノートブックパーソナルコンピュータ、PDA(Personal Digital Assistants)の消費電力の最適化を実現する技術である。
図27のように従来の電力制御装置には、ソフトウェア(SW)で動作するプロセッサ(CPU)及び電力制御回路(PWCU)が搭載されている。PWCUは、電源電圧/閾値電圧制御回路(VCU)、クロックパルス発生器(CPG:Clock Pulse Generator)、タイマ(TMU)で構成されている。電源電圧/閾値電圧制御回路(VCU)は、プロセッサ(CPU)に対して印加する電源電圧、または閾値電圧を可変にする為の基板バイアス電圧を制御する機能を持っている。
クロックパルス発生器(CPG)は、CPUに提供するクロックパルスを発生し、このクロックパルスの時間幅、つまり動作周波数を制御する機能を持っている。また、CPGは、CPUに提供の前記クロックパルスとは別に、タイマ(TMU)にもタイマ用クロックパルスを提供する。TMUは、CPUが所望する任意の周期のカウントを実施する機能を有する。
ソフトウェア(SW)は、オペレーティングシステム(OS)と単数ないし複数のタスク(TSK)等で構成されている。オペレーティングシステム(OS)(以下では、OSまたはRTOSという)は、タイマ(TMU)から供給される周期の割り込みイベント信号の割り込み回数のカウントを実施する。なお、このような情報処理装置における時刻とは、カウントの数に相当する。
タスク(TSK)は、ミドルウェアプログラム、デバイスドライバプログラム等を用いたプログラムであり、1処理単位である。情報処理装置におけるアプリケーションは、単数ないし複数のタスク(TSK)で形成する。更に電力制御プログラムも用いることにより情報処理装置の電力を制御する。更にTSKは、RTOSで管理されるタスク優先度に従い、高いタスク優先度の順番、及びタスクの起動時刻の早い順番から処理を実行する。
電力制御プログラムは、実行中のタスク(TSK)に対して割り付けた起動時刻から現時刻までの実行時間を計測し、この実行時間と、予め設定したアプリケーションプログラムまたはミドルウェアプログラムのアプリケーションスライシングと呼ばれる処理単位毎に割り当てた最悪実行時間(WCET:Worst Case Execution Time)から、実行中のタスク(TSK)におけるデッドラインまでの余裕時間を算出する。なお、アプリケーションスライスは、アプリケーションプログラムをN個のスライス1,2,3,...,Nに分割することをいい、スライス1,2,3,...,Nの各々のWCETと各スライスの時間間隔は、解析や測定を通じて取得される。
余裕時間があれば、図27の実行中のタスク(TSK)からRTOSに対し、所望の電源電圧、動作周波数を設定する為のシステムコール(SC)を発行する。そして、RTOSの内部処理を行った後、ソフトウェア(SW)でプロセッサ(CPU)から電力制御回路(PWCU)に対して所望の電源電圧、動作周波数が供給されるようにコマンド(C)を送信する。PWCUは、受け取ったコマンド(C)からソフトウェア(SW)で所望の電源電圧、動作周波数を設定し、制御信号(CS)をPWCUからCPUに送信する。制御信号(CS)を受け取ったCPUは、所望の電源電圧及び動作周波数で駆動される。
次に、RTOS上でのタスク(TSK)の動作状態について言及する。
図28は、RTOSのタスク状態遷移を説明する図である。
タスク(TSK)は、実行状態(Run)、待機状態(Wait)、実行準備状態(Ready)、初期状態(Init)の何れかの状態となる。Initは、未だタスク(TSK)存在していない状態である。例えばタスク(TSKc)は、既に生成されたRun上のタスク(TSKa)からRTOS提供のタスク生成用システムコールを発行して初めて生成され、Readyへ遷移する事が可能になる。
Runは、任意のタスク(TSK)がCPUを占有し、処理実行中の状態である。Waitは、所定の処理を終えたタスク(TSKd)が他のタスク(TSK)にCPUの占有を譲る為に、RTOS提供のイベント受信待ち用システムコールを発行し、Runから遷移して起動イベント待ちになる状態である。Wait上のタスク(TSKd)は自分に対する起動イベントを受信するとReadyに遷移する。
Readyは、タスク(TSK)がRTOSによってタスク優先度の高い順番、またはタスク起動時刻の早い順番にReady Queue(RQ)に並び替えられた状態である。実際はReady Queue(RQ)は、タスク(TSK)の状態を管理する動的メモリであるタスクコントロールブロック(TCB)のタスク優先度格納部に記録されたタスク優先度の高い順に従って、TCBをリンクリストを用いて並び変える。
Ready Queue(RQ)でタスク優先度順、及びタスク起動時刻の早い順番に並び変える事をスケジューリングという。Ready上のタスク(TSK)の内、最も先頭に並んでいるタスク(TSK)、つまりReady上のタスク(TSK)の内で最も優先度が高いタスクまたはタスク起動時刻が最も早いタスク(TSK)が現時点でRunになる。ReadyからRunに遷移してCPUを占有する事をディスパッチという。例えば、Run上のタスク(TSKa)、Ready上のタスク(TSKb,TSKc)の内、その時点で最もタスク優先度が高いタスク(TSKa)がディスパッチされることになる。
また、例えば起動用イベントの受信によってWaitからReadyに遷移したタスク(TSKd)のタスク優先度が、現在Run上のタスク(TSKa)のタスク優先度よりもタスク優先度の順位が高い場合、現在Run上のタスク(TSKa)は、Ready上に遷移したタスク(TSKd)にCPUを開放してReadyに遷移しなければならない。なお、CPUを開放してReadyに遷移する事をプリエンプトという。同時にプリエンプトされたタスク(TSKa)は、RTOSによってタスク優先度順に並び換えられ、RTOSにディスパッチされる機会を伺う事になる。
特開2003−140787号公報
本願発明者等は本願に先立って、携帯電話、PDA、携帯ディジタルカメラ、携帯ディジタルビデオプレイヤー、携帯ディジタルビデオカメラ、携帯ディジタルオーディオレコーダー及びプレイヤー等に代表される、バッテリ駆動の情報処理装置を対象に、前述した特許文献1の電力制御装置の技術について検討した。まず、この検討に先立ち、特許文献1で用いられているアプリケーションスライシングについて再度説明する。
図29は、アプリケーションスライシングを説明する図である。
タスク(TSK)は、アプリケーションプログラム開始点(S2901)から初期化処理(S2902)を経て、アプリケーションプログラム終了点(S2903)までの一連の処理を実行する。
初期化処理(S2902)では、ミドルウェアやデバイスドライバで使用するメモリ領域の確保やグローバルないしローカル変数の初期化、更にはプロセッサ(CPU)で使用の電源電圧、動作周波数及び各レジスタの値の設定等、CPU上でアプリケーションを動かす為に必要な前処理を実施する。
例えば、情報処理装置の主要な処理の一つにマルチメディア処理が挙げられるが、マルチメディア処理を扱うミドルウェアのプログラムは、繰り返し処理を実施する性質がある。また、役割の異なる処理毎にプログラムをプログラムモジュールとして纏める事も可能である。従って繰り返し処理やプログラムモジュールの処理単位をアプリケーションスライス(AS)と呼び、アプリケーションスライス(AS)に分割する技術をアプリケーションスライシングと呼ぶ事にする。
また、図29におけるアプリケーションスライス(AS1〜ASn)の中の値は、アプリケーションスライス(AS)の繰り返し処理数を表している。繰り返し処理数は、アプリケーションの処理経過として、タスク(TSK)の内部に実装したアプリケーションスライス経過管理部(ASCU)で逐次、カウントされる。
繰り返し判別処理(JGE)では、アプリケーションスライス経過管理部(ASCU)でカウントされ記録されたアプリケーションスライス(AS)の繰り返し処理数が判別される。そして、全部のアプリケーションスライス(AS)の完了を判別した場合には、アプリケーションプログラム終了点(S2903)でアプリケーションが終了し、そうでない場合は完了するまでアプリケーションスライス(AS)を処理する。
電力制御チェックポイント処理部(CP)は、アプリケーションスライス(AS)の直後で繰り返し判別処理(JGE)の直前にプログラム配置されている。電力制御チェックポイント処理部(CP)については後ほど詳細を説明する。
図30は、本願発明者等が特許文献1の電力制御装置を使用するに当たって作成した電力制御方法の概念図である。なお、図30は、特許文献1には記載されていない。
図30における横軸は、アプリケーションプログラムの処理経過時刻、縦軸は、電力制御チェックポイント処理部(JGE)におけるアプリケーションプログラム処理経過を表している。ここで、アプリケーションスライス(AS)の数は任意のN個とする。デッドライン(DL)は、タスク(TSK)の処理を仕様上、完了させなければならない、またはタスク(TSK)の処理結果を出していなければならないと、予め分かっている時刻である。例えば、映像の1画面の出力時刻等が相当する。
特許文献1の電力制御は、動作周波数と電源電圧ないし閾値電圧を制御するという技術である。従って、電力の最適化、つまり低消費電力化の効果を出来るだけ上げるには、動作周波数も下げると同時に電源電圧を下げるないし閾値電圧を高くする必要がある。動作周波数を下げるないし閾値電圧を上げるということはすなわち、タスク(TSK)の処理をゆっくりと実施する事に相当する。低消費電力化の効果を向上させるには、出来るだけデッドライン(DL)ギリギリまで低動作周波数で動作を行い、デッドライン(DL)直前に処理が終了するように、タスク(TSK)の処理を行わせたい。
そこで本願発明者等は、図30に示すように、タスク開始時刻(STIM)からタスク(TSK)の処理を始め、所望の処理の完了がデッドライン(DL)に間に合うように、線形計画法に基づいてアプリケーションスライス(AS)毎に同じ時間間隔のチェックポイント時間間隔(CPTIM)を割り当てる事にした。また同じくアプリケーションスライス(AS)毎に、タスク開始時刻(STIM)からチェックポイント時間間隔(CPTIM)の整数倍の時間間隔であるサブWCET(S_WCET)を予め割り当てる事にした。例えば、線形計画法に基づいて設定したk番目のアプリケーションスライス(ASk)のサブWCET(S_WCETk)は、チェックポイント時間間隔(CPTIM)にkを掛けた積算時間に相当する。
電力制御チェックポイント部(CP)は、タスク開始時刻(STIM)からk番目のアプリケーションスライス終了点(EP)までのプロセッサ(CPU)の実行時間(RTIM)と、(k+1)番目のアプリケーションスライス(ASk+1)のサブWCET(S_WCETk+1)を比較判定し、逐次、電力制御つまり電源電圧、閾値電圧及び動作周波数の制御を実施する。例えば、高動作周波数及び高電源電圧の組み合わせである高電力モード状態と低動作周波数及び低電源電圧の組合せである低電力モード状態という、2つの電力モードで制御が可能な電力制御装置を想定する。
まず、タスク開始時刻(STIM)からk番目のアプリケーションスライス(ASk)処理終了時点(EP)の実行時間(RTIM)を(k+1)番目のアプリケーションスライス(ASk+1)に対応するサブWCET(S_WCETk+1)から引いた時間差と、k番目のアプリケーションスライス(ASk)のサブWCET(S_WCETk)を(k+1)番目のアプリケーションスライス(ASk+1)のサブWCET(S_WCETk+1)から引いた時間差とを比較する。すなわち、((S_WCETk+1)−RTIM)の値と、k番目から(k+1)番目のアプリケーションスライス(AS)間のチェックポイント時間間隔(CPTIM)の値とを比較する。そして、CPUの動作周波数の予測値とCPUが採りえる最低動作周波数との比率に対してCPTIMを積算した値より、((S_WCETk+1)−RTIM)の値の方が大きい場合、つまり余裕時間がある場合、k番目の電力制御チェックポイント部(CPk)において低電力モードに制御して電力を下げる。
低電力モードに制御しても、つまり電源電圧及び動作周波数の予測値を下げても、(k+1)番目のアプリケーションスライス(ASk+1)が(k+1)番目の電力制御チェックポイント(CPk+1)時にサブWCET(S_WCETk+1)以内で終了するという予測が出来るので、デッドライン(DL)の厳守が満たせる。反対に小さい場合は、つまり余裕時間が無い場合は、高電力モードに制御して電力を上げないと、つまり電源電圧及び動作周波数を上げないと、デッドライン(DL)の厳守は満たせない。
上述のような事象の検討結果から、情報処理装置に図27の電力制御装置を適用した場合、消費電力の最適化(省エネルギー化)効果を向上させ、また安定した処理動作を行わせるため、三つの課題が残されていることがわかった。
第一の課題は、割り込み処理により実行状態(Run)に遷移した高優先度のタスクで費やす実行時間により、プリエンプトした低タスク優先度のタスクの処理に遅延時間が生じてしまい、消費電力の最適化が図れないということである。
図31は、割り込みを受けた低タスク優先度のタスクの処理遅延を説明する図である。例えばタスク(TSKa)内でk番目のアプリケーションスライス(ASk)を処理している途中で高タスク優先度のタスク(TSKd)に割り込まれた場合、割り込まれた低タスク優先度のタスク(TSKa)は、実行準備状態(Ready)にプリエンプトされて処理が停止状態になる。割り込んだ高タスク優先度のタスク(TSKd)の処理が終了すると、割り込まれたタスク(TSKa)はRun上にディスパッチされ、割り込まれた時点から処理を継続する。
しかし、割り込まれたタスク(TSKa)の処理は、停止した状態でもタイマ(TMU)は動作し続ける為、割り込まれた時間分、絶対時間から見ると遅延が生じている。つまり、割り込みによって生じた遅延時間(DTIM)分、割り込まれたタスク(TSKa)の実行時間(RTIM)は長くなる。従ってk番目での電力制御チェックポイント(CPk)では、遅延時間(DTIM)を含んだ実行時間(RTIM)を下に電力制御を行ってしまうので、高電力モード状態に制御される機会が増加し、低消費電力効果及び省エネルギー効果が低下してしまう事が分った。
第二の課題は、同じく割り込み処理によりRunに遷移した高タスク優先度のタスクで費やす実行時間により、遅延を含んでデッドラインを超過するサブWCET(S_WCET)が生じてしまい、消費電力の最適化が図れないということである。
図32は、低タスク優先度のタスクに割り込まれて生じたサブWCETの遅延を説明する図である。通常、サブWCET(S_WCET)は、アプリケーションスライス(AS)毎に割り当てたチェックポイント時間間隔(CPTIM)の和として予め求められる。また、チェックポイント時間間隔(CPTIM)は、アプリケーションスライス(AS)間の各チェックポイント時間間隔(CPTIM)の総和が、タスク開始時刻(STIM)からデッドライン(DL)までの時間幅と丁度一致するように予め設定される。
しかし、例えばタスク(TSKa)内でk番目のアプリケーションスライス(ASk)を処理している途中で高タスク優先度のタスク(TSKd)に割り込まれた場合、割り込まれた低タスク優先度のタスク(TSKa)の処理は、遅延時間(DTIM)分遅れる。このことは、実質的に、チェックポイント時間間隔(CPTIM)に基づいて設定されたサブWCET(S_WCET)が、絶対時間上遅れることと等価であり、そうすると、最終のサブWCET(S_WCETn)がデッドライン(DL)を超過する場合がある。そして、遅れたサブWCET(S_WCET)を基準に電力制御を実施すると、アプリケーションの動作が不安定になる恐れがある。
第三の課題は、低、高タスク優先度のタスクが一緒のプロセッサで並行処理を実施する環境の下、ジッタが生じることにより、消費電力の最適化が図れないということである。ここで、ジッタとは、高タスク優先度タスクのRun状態により、起動イベントを受信したWait状態の低タスク優先度タスクがディスパッチ出来ずにReady状態に留まることで生じる起動時刻のズレの事である。
図33は、ジッタによって生じたサブWCETの遅延を説明する図である。待機状態(Wait)のタスク(TSK)は、起動イベントを受信した時刻、つまりタスク起動時刻(BTIM)に実行準備状態(Ready)を経由して実行状態(Run)にディスパッチするようにタスク優先度を設定する。ここで、図28に記載のタスク(TSKe)よりもタスク(TSKa)の方が高タスク優先度で、且つタスク(TSKe)がWait、タスク(TSKa)がRunの場合、起動イベントをタスク(TSKe)が受信し、Readyに遷移してもタスク(TSKa)の方が高タスク優先度の為、タスク(TSKa)がWaitに遷移するまでReadyで待機しなければならない。この待機時間は、タスク起動時刻(BTIM)からの遅延時間に相当し、ジッタ(ZTIM)と呼ばれる。
しかし、ここでタスク起動時刻(BTIM)をタスク開始時刻(STIM)としてサブWCET(S_WCET)を設定した場合、ジッタの分、サブWCET(S_WCET)は遅延し、デッドライン(DL)を超過してしまう。そうすると、アプリケーションの動作が不安定になる恐れがある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明の情報処理装置は、プロセッサと、プロセッサに内蔵する又はプロセッサの外部に設けるタイマと、プロセッサが所望する動作周波数のクロックパルスをプロセッサ及びタイマに供給するクロックパルス発生器と、プロセッサが所望する電源電圧ないし基板バイアス電圧をプロセッサに供給する電源供給器とを有し、プロセッサは、RTOSと、アプリケーションが実装され且つRTOSで管理された複数のタスクとによって制御されるものとなっている。
そして、前記情報処理装置は、高タスク優先度のタスクによる割り込み及びジッタによって生じた低タスク優先度のタスクの処理の遅延時間をタイマで計測する遅延時間計測部を有しており、タスクは、自身に複数の処理単位毎に配置した電力制御チェックポイント毎にタイマを用いて計測した実行時間から、この遅延時間計測部で計測済みの遅延時間を引き算した補正実行時間を算出する機能を備えている。
更に、タスクは、前記電力制御チェックポイントの時間間隔を、タスク開始時刻からデッドラインまでのWCETを元に線形計画法で予め計画し、このチェックポイント時間間隔にプロセッサの動作周波数を反映させた値と、前記補正実行時間との比較を行う。そして、比較の結果、余裕時間がある場合には、クロックパルス発生器に対して動作周波数を下げるように指令し、電源供給器に対して電源電圧を下げるようにないし基板電圧を上げるように指令し、余裕時間がない場合は、その逆の指令を行う。
また、このような前記情報処理装置に対して、WCETを元に線形計画法で予め計画したチェックポイント時間間隔を、割り込みやジッタによって生じる遅延時間に基づいて修正する機能を備えることも可能である。
以上のような構成によって、電力制御を行う際に、割り込まれて生じた遅延時間を実行時間から除去することができ、また、電力制御を行う前に、サブWCETに含まれる遅延時間の影響を回避するようにチェックポイント時間間隔を修正する事が可能となり、さらに、電力制御を行う前に、サブWCETに含まれるジッタの影響を回避するようにサブWCETを修正する事が可能となる。これによって、前述した第一から第三の課題を解決でき、情報処理装置における消費電力の最適化や、処理の安定性を向上させることなどが可能となる。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、特に1プロセッサ上のマルチタスク実装アプリケーションに対して低消費電力効果を発揮し、情報処理装置の省エネルギー化の向上を達成することが出来る。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
図1は、本発明の一実施の形態による情報処理装置において、その構成の一例を示すブロック図である。ここではバッテリ駆動で且つプロセッサ内蔵の情報処理装置を例として説明する。
図1に示す情報処理装置は、例えば、バッテリパック(BAT)と、クロックパルス発生器(CPG)と、電源電圧制御回路(VDDCU)と、閾値電圧制御回路(VTHCU)と、中央処理装置(CPU)と、入出力部(I/O)と、プログラムメモリ(MEM)と、ワーキングメモリ(RAM1)と、バス(BUS)などで構成される。
クロックパルス発生器(CPG)は、例えばPLL(Phase Locked Loop)回路を内蔵し、CPUからの命令によって送信された制御信号(FRQCS)で設定されるレジスタ(REGb)により、CPU、I/O、プログラムメモリ(MEM)、ワーキングメモリ(RAM1)、およびBUSのそれぞれに所望の動作周波数のクロックパルス(FRQ)を提供する。
電源電圧制御回路(VDDCU)は、CPUからの命令によって送信された制御信号(VDDCS)で設定されるレジスタ(REGc)により、CPU、I/O、MEM、RAM1、BUS、CPG、および閾値電圧制御回路(VTHCU)に対し、バッテリパック(BAT)の電池電圧(PWR)からそれぞれ所望の電圧に変換した電源電圧(VDD)を提供する。閾値電圧制御回路(VTHCU)は、CPUからの命令によって送信された制御信号(VBBCS)で設定されるレジスタ(REGd)により、CPU、I/O、MEM、RAM1、およびBUSに対し、それぞれ所望の基板バイアス電圧(VBB)を印加する。
I/Oは、情報処理装置の内部信号を出力する出力部、外部からの割り込みにより外部信号を入力する入力部を内蔵する他に、I/Oのレジスタ(REGa)を操作してCPUの所望の時刻を設定したり、所定の時刻にCPUに対して割り込みを掛けたりするタイマ(TMU)も内蔵する。ちなみに出力部は、例えば映像信号をディスプレイに、音声音響信号をスピーカーに出力し、入力部はカメラから撮像信号を、マイクから音声音響信号を入力する。
プログラムメモリ(MEM)は、ROMおよび/またはRAMであり、例えば、アプリケーションプログラム(APL)、リアルタイムオペレーティングシステム(RTOS)、電力管理制御ソフトウェア(PMCS)などを格納する。アプリケーションプログラム(APL)は、例えば、MPEG標準化となっているビデオやオーディオのディジタル信号処理、またはJava(登録商標)等のディジタル情報処理機能等が代表的である。RTOSは、CPU、I/O、MEM、およびRAM1をタスクという形態で管理する。
電力管理制御ソフトウェア(PMCS)は、本発明の主要な特徴の一つであり、タイマ(TMU)を用いてAPLの時間的処理負荷を計測する事により、CPUが所望する動作周波数のクロックパルス(FRQ)をCPUに供給するため、CPGのレジスタ(REGb)に制御信号(FRQCS)を送信する。また、PMCSは、同じく所望する電源電圧(VDD)をCPUに供給するため、VDDCUのレジスタ(REGc)に制御信号(VDDCS)を送信し、同じく所望する基板バイアス電圧(VBB)をCPUに印加するため、VTHCUのレジスタ(REGd)に制御信号(VBBCS)を送信する。そして、これによって、CPUの電力制御を行う。
またPMCSは、未使用のCPU、I/O、MEM、およびRAM1を検出し、レジスタ(REGb〜d)に制御信号(FRQCS,VDDCS,VBBCS)を送信して、CPU、I/O、MEM、RAM1に対してクロックパルス(FRQ)の停止または電源電圧(VDD)の遮断を施す。
図2は、図1の情報処理装置において、そのソフトウェアの詳細を含めた構成の一例を示すブロック図である。図2においては、図1の情報処理装置がハードウェア(HW)部とソフトウェア部に分けて示されている。そして、図2のソフトウェア部には、図1の例えばプログラムメモリ(MEM)に格納されているプログラム機能の一部が示されている。
図2のリアルタイムオペレーティングシステム(RTOS)は、CPUで駆動するタスク(TSK)と、I/Oの割り込みと、メモリ資源であるプログラムメモリ(MEM)およびワーキングメモリ(RAM1)のメモリブロックを管理する機能などを備えている。RTOSがタスク(TSK)を割り当てて、且つTSKが所望するメモリ容量を割り当てる。システムコール(SC)は、TSKの生成や消去、同期、非同期動作の為のTSK間のメッセージ通信、メモリ資源及び割り込み等の管理機能をユーザープログラムであるTSK等から呼び出す、RTOS提供のプログラムインターフェースである。
タスク(TSK)は、情報処理装置に対する外部割り込みイベントやタイマ(TMU)からのタイマイベントによって起動するスレッド又はプロセス等と呼ばれるRTOS管理の1処理単位である。更に各TSKは、RTOSが提供するメッセージ通信機能を用いてTSK間で同期、非同期動作を実施する。
同期動作とは、ある任意のTSKがRTOSのメッセージ作成用のシステムコール(SC)を呼び出して提供されるメッセージ(MSG)に伝えたい情報を書き込み、メッセージ送信用のSCを呼び出して他のTSKに送信し、自らはメッセージ受信待ち状態遷移用のSCを呼び出して待機状態(Wait)に遷移し、送信したTSKにCPUを開放する事をいう。一方、非同期動作とは、同じく任意のTSKがRTOSのメッセージ作成用のSCを呼び出して提供されるMSGに、伝えたい情報を書き込んで、メッセージ送信用のSCを呼び出して他のTSKに送信する。しかし、実行状態(Run)に引き続き留まり、自分の処理の終了または自分よりタスク優先度が高いTSKに割り込まれるまでCPUを占有する事をいう。
メッセージ(MSG)は、メッセージ作成用のシステムコール(SC)が呼び出されればその都度、RTOSによって生成される。MSGの実態は例えば、RTOSがワーキングメモリ(RAM1)から一部取得した、タスク(TSK)間で共有出来るメモリブロックである。
図3は、図2におけるメッセージのフォーマットの一例を示す説明図である。図3のメッセージ(MSG)の中味である送信パラメータは、説明を容易にする為の一例であり、様々なフォーマットが可能である。
送信パラメータAの内容であるTo_IDは、MSGの送信先、受信元タスクのIDを表す。送信パラメータBの内容であるFrom_IDは、MSGの送信元、受信先タスクのIDを表す。送信パラメータCの内容であるイベント番号は、MSGの受信先タスクに実施させたい機能の番号を表す。送信パラメータDの内容である引数は、MSGの送信先、受信元タスクのタスク優先度を表す。送信パラメータEからHの内容である引数は、MSGの受信先タスクに送信したい情報を表す。
図2に戻り、アプリケーションプログラム(APL)は、本発明の主要な特徴の一つであるミドルウェアプログラム(MW)と単数ないし複数のタスク(TSKa〜TSKg)で構成する。MWは、アプリケーションプログラムインターフェース(API)を介して情報処理装置が所望する処理機能をタスク(TSKa〜TSKg)に提供する。
図2の電力管理制御プログラム(PMCP)は、電力管理制御プログラムインターフェース(PMCPI)を介して、CPUの時間的処理負荷や未使用のモジュール、例えばCPU、I/O、MEM、およびRAM1の状況を把握し、CPUからクロックパルス発生器(CPG)、電源電圧制御回路(VDDCU)及び閾値電圧制御回路(VTHCU)に対して所望の電力、クロックパルス(FRQ)や電源電圧(VDD)や基板バイアス電圧(VBB)を供給するように命令する。
図4は、図2のソフトウェア部において、そのミドルウェアプログラムの詳細を含めた構成の一例を示すブロック図である。図4のミドルウェアプログラム(MW)は、例えば、メディア処理ミドルウェア(MWa)、デバイスドライバ(DD)、実行準備状態管理プログラム(RSMP)などで構成される。また、図4のアプリケーションプログラムインターフェース(API)は、MWa、DD、RSMPにそれぞれ対応して、ミドルウェアインターフェース(MI)、デバイスドライバインターフェース(DI)、実行準備状態管理プログラムインターフェース(RI)を含んでいる。
メディア処理ミドルウェア(MWa)は、例えばMPEG標準化となっているビデオ及びオーディオ機能、更にJava(登録商標)でプログラミングされた位置検出機能等に相当する。デバイスドライバ(DD)は、例えば、ディスプレイへの映像信号の出力、スピーカーへの音響信号の出力の為等のI/Oにおける割り込み管理プログラムに相当する。本実施の形態では、MWaは、CPUやDSP(ディジタル信号処理ユニット)やFPU(浮動小数点演算ユニット)に内蔵のレジスタ(REG)を直接操作したり、システムコール(SC)を介してRTOS提供のメモリやタスクや割り込みの管理機能を用いたり、電力管理制御プログラムインターフェース(PMCPI)を介して電力管理制御プログラム(PMCP)が提供する電力制御、電力管理機能を用いたりする事を許容する。
図5は、図1の情報処理装置において、そのソフトウェアの一つである電力管理制御ソフトウェア(PMCS)の詳細な構成の一例を示すブロック図である。図5に示す電力管理制御ソフトウェア(PMCS)は、図2に示した電力管理制御プログラム(PMCP)や、図4に示した実行準備状態管理プログラム(RSMP)や、実行準備状態管理タスク(以下、RTMタスクという)(TSKa)で構成する。
図4でも記載したRSMPは、任意のタスク(TSK)がReadyになる毎にタイマ(TMU)を用いてプリエンプト時刻を記録し、Readyになったタスク数を把握する機能を具備する。そしてディスパッチされるタスク(TSK)の前記プリエンプト時刻と、ディスパッチ時のディスパッチ時刻から、割り込まれたTSKの処理の遅延時間(DTIM)を算出する機能も具備する。Readyになったタスク数は、実行開始命令を発行されて直ぐにでも処理しなければならないタスクの数を表す。従ってRSMPは、AV再生機におけるシステムの忙しさの情報も他のTSKに提供する事が出来る。
RTMタスク(TSKa)は、RIを呼び出して、RSMPの機能を実施する。メッセージ(MSG)が、RTMタスク(TSKa)宛でない、つまり図3のTo_IDがRTMタスク(TSKa)のIDでなかった場合には、To_IDのタスクIDである他のタスク(TSK)にMSGを再送信する。反対に、RTMタスク(TSKa)宛である、つまりTo_IDがRTMタスク(TSKa)のIDである場合には、受信したMSGを再送信しない。
以下では本願発明の情報処理装置の動作説明を解かり易くする為、RTMタスク(TSKa)、PCM出力タスク(TSKb)、画像表示タスク(TSKc)、出力時間管理タスク(TSKd)、オーディオ処理タスク(TSKe)、ビデオ処理タスク(TSKf)及びスリープタスク(TSKg)という7つのタスクで構成した情報処理装置の1例であるAV再生機を想定して説明する。各タスク(TSK)の詳細な処理フローは後に記述する事とし、機能について以下に簡潔に紹介する。
出力時間管理タスク(TSKd)は、PCM出力タスク(TSKb)で音声音響信号をスピーカーに出力する時刻、及び画像表示タスク(TSKc)で映像信号をディスプレイに出力する時刻等のデッドライン(DL)を管理し、デッドライン(DL)をRTOSに認識させる機能を具備する。デッドライン(DL)になった際、RTOSからPCM出力タスク(TSKb)または画像表示タスク(TSKc)に対してそれぞれ、起動イベント用メッセージが発信される事になる。
PCM出力タスク(TSKb)は、情報処理装置のI/Oに接続されたスピーカー等から音響音声信号を出力する機能を具備する。画像表示タスク(TSKc)は、情報処理装置のI/Oに接続されたディスプレイ等から画像を表示する機能を具備する。オーディオ処理タスク(TSKe)は、例えばMP3やMPEG−AAC等の音声圧縮データをPCM信号に復号化を実施する機能を具備する。
ビデオ処理タスク(TSKf)は、例えばMPEG等の画像圧縮データを映像信号に復号化を実施する機能を具備する。スリープタスク(TSKg)は、他の全てのタスク(TSK)がWaitになった、つまりAV再生機のシステム全体においてアイドル状態になった際に、CPUへのクロックパルス(FRQ)の提供を停止する機能を具備する。
タスク優先度については、RTMタスク(TSKa)、PCM出力タスク(TSKb)、画像表示タスク(TSKc)、出力時間管理タスク(TSKd)、オーディオ処理タスク(TSKe)、ビデオ処理タスク(TSKf)、スリープタスク(TSKg)の順に高タスク優先度を割り付ける。PCM出力タスク(TSKb)の方が画像表示タスク(TSKc)よりもタスク優先度が高く、且つオーディオ処理タスク(TSKe)の方がビデオ処理タスク(TSKf)よりもタスク優先度が高い理由は、音響音声信号の出力時刻の間隔が映像信号の出力時刻の間隔よりも短く、処理が乱れた場合に音響音声信号の方が映像信号よりも主観的な違和感が目立つからである。
各タスク(TSK)は所望の処理を行う為、図3のようなメッセージ(MSG)のフォーマットに従って送信パラメータAからHをそれぞれの内容に従って書き込む。そして各タスク(TSK)は書き込まれたMSGの送受信を繰り返しながら、所望の同期、非同期処理を実施する。
以下にAV再生機内部の各タスク(TSK)の動作を説明する。
図6は、アプリケーションタスクフレームワーク動作のフローチャートを説明する図である。アプリケーションタスクは、PCM出力タスク(TSKb)、画像表示タスク(TSKc)、出力時間管理タスク(TSKd)、オーディオ処理タスク(TSKe)、ビデオ処理タスク(TSKf)に該当する。
アプリケーションタスクは、アプリケーションタスク処理開始点(S601)から処理を開始する。アプリケーションタスク処理開始点(S601)では、当該アプリケーションタスクで使用するワーキングメモリ(RAM1)のメモリ空間の初期化を実施する。
メッセージ受信待ち判別処理(S602)は、アプリケーションタスクへの起動イベントとしてメッセージ(MSGa)が届いているかを判別し、届いていたらアプリケーション処理(S603)を行い、届いていなければメッセージ(MSGa)が受信されるまで、アプリケーションタスクをWaitに遷移させる。なお、メッセージ受信待ち判別処理(S602)の機能は、実行準備状態管理プログラムインターフェース(RI)を呼び出す事でシステムコール(SC)を介してRTOSから提供される。
待機状態遷移処理(S604)は、アプリケーション処理(S603)が終了した事をRTMタスク(TSKa)に知らせる為、メッセージ(MSGb)のTo_IDにRTMタスク(TSKa)のIDを書き込み、RIを呼び出してシステムコール(SC)を介してメッセージ(MSGb)をRTMタスク(TSKa)に送信する。最後にSCを介してアプリケーションタスクをWaitに遷移させる。
アプリケーションタスクフレームワークは、図6のアプリケーション処理(S603)のみを換える事で、情報処理装置の開発を容易にする為のプログラムのフォーマットである。従って、アプリケーション処理(S603)に、PCM出力タスク(TSKb)、画像表示タスク(TSKc)、出力時間管理タスク(TSKd)、オーディオ処理タスク(TSKe)、ビデオ処理タスク(TSKf)のそれぞれに対応の処理を実装すればよい。各タスク(TSK)におけるアプリケーション処理(S603)の詳細を説明する。
出力時間管理タスク(TSKd)のアプリケーション処理(S603)である出力時間管理処理(S603d)は、例えば通信や放送によって受信した、またはハードディスクやフラッシュメモリ等の蓄積メディアに記録されたAVビットストリームデータを、1フレームオーディオビットストリームデータないし1フレームビデオビットストリームデータに逐次分解すると同時に、1フレームオーディオ出力時刻ないし1フレームビデオ表示時刻も前記AVビットストリームデータから分解し抽出する。
更に前記1フレームビデオ表示時刻が画像表示タスク(TSKd)のRunへの遷移時刻ないし1フレームオーディオ出力時刻がPCM出力タスク(TSKc)のRunへの遷移時刻となるようにシステムコール(SC)を呼び出してタイマ(TMU)を設定する。最後にRIを呼び出し、SCを介してメッセージ(MSGa)のTo_IDにオーディオ処理タスク(TSKe)ないしビデオ処理タスク(TSKf)のIDを、From_IDに出力時間管理タスク(TSKd)のIDを書き込み、再度RIを呼び出してSCを介してメッセージ(MSGa)をRTMタスク(TSKa)経由でオーディオ処理タスク(TSKe)ないしビデオ処理タスク(TSKf)に送信する。従って一旦、メッセージ(MSGa)をRTMタスク(TSKa)に送信する事になる。
オーディオ処理タスク(TSKe)のアプリケーション処理(S603)であるオーディオ復号化処理(S603e)は、出力時間管理タスク(TSKd)の出力時間管理処理(S603d)で分解された前記1フレームオーディオビットストリームをPCM信号に復号する。オーディオ復号化処理(S603e)は、例えばMPEG−AAC−DecoderやMP3−Decoderに相当する。
ビデオ処理タスク(TSKf)のアプリケーション処理(S603)であるビデオ復号化処理(S603f)は、出力時間管理タスク(TSKd)の前記出力時間管理処理(S603d)で分解された前記1フレームビデオビットストリームを映像信号に復号する。ビデオ復号化処理(S603f)は、例えばMPEG−4−Video−DecoderやH.264−Decoderに相当する。
PCM出力タスク(TSKb)のアプリケーション処理(S603)であるPCM出力処理(S603b)は、オーディオ処理タスク(TSKe)で復号したPCM信号をスピーカーに出力する。そして実行準備状態管理プログラムインターフェース(RI)を呼び出し、システムコール(SC)を介してメッセージ(MSGa)のTo_IDに出力時間管理タスク(TSKd)のIDを、From_IDにPCM出力タスク(TSKb)のIDを書き込み、再度RIを呼び出し、SCを介してメッセージ(MSGa)をRTMタスク(TSKa)経由で出力時間管理タスク(TSKd)に送信する。従って一旦、メッセージ(MSGa)をRTMタスク(TSKa)に送信する事になる。
画像表示タスク(TSKc)のアプリケーション処理(S603)である画像出力処理(S603c)は、ビデオ処理タスク(TSKf)で復号した画像信号をディスプレイに表示する。そしてRIを呼び出し、SCを介してメッセージ(MSGa)のTo_IDに出力時間管理タスク(TSKd)のIDを、From_IDに画像表示タスク(TSKc)のIDを書き込み、再度RIを呼び出し、SCを介してメッセージ(MSGa)をRTMタスク(TSKa)経由で出力時間管理タスク(TSKd)に送信する。従って一旦、メッセージ(MSGa)をRTMタスク(TSKa)に送信する事になる。
なお、前記1フレームオーディオ出力時刻になると、PCM出力タスク(TSKb)にRTOSからRTMタスク(TSKa)経由で起動用メッセージ(MSGa)が送信され、PCM出力タスク(TSKb)がRunに遷移する。更に、前記1フレームビデオ出力時刻になると、画像表示タスク(TSKc)にRTOSからRTMタスク(TSKa)経由で起動用メッセージ(MSGa)が送信され、画像表示タスク(TSKc)がRunに遷移する。
図7は、スリープタスク動作のフローチャートを説明する図である。スリープタスク(TSKg)のスリーププログラム開始点(S701)から開始し、スリープ処理(S702)に進む。
スリープ処理(S702)は、CPUに供給のクロックパルス(FRQ)を停止するようにクロックパルス発生器(CPG)のレジスタ(REGb)を設定し、CPUを停止させる。また、電源電圧制御回路(VDDUC)のレジスタ(REGc)で設定し、CPUへの電力を遮断させるとより低消費電力効果が現れる。スリープタスク(TSKg)は最低優先度タスクなので、スリープタスク(TSKg)以外の全タスクがWait、つまりアイドル状態になったらスリープタスク(TSKg)がディスパッチされ、CPUを停止する。またI/Oまたはタイマ(TMU)からの割り込みが生じるとアイドル状態からスリープタスク(TSKg)がプリエンプトされ、通常の動作に復帰する。
図8は、RTMタスク動作のフローチャートを説明する図である。
RTMタスク(TSKa)は、RTMタスク初期化処理開始点(S801)で、プリエンプト時刻スタックメモリ(ST_RAMa)、電力モードスタックメモリ(ST_RAMb)、プリエンプト時刻スタックポインタ(SPa)、電力モードスタックポインタ(SPb)、割り込み時間格納メモリ(RAMa)、復帰電力モード格納メモリ(RAMb)のメモリエリアをワーキングメモリ(RAM1)から取得し、プリエンプト時刻スタックポインタ(SPa)をプリエンプト時刻スタックメモリ(ST_RAMa)の0番地に、電力モードスタックポインタ(SPb)を電力モードスタックメモリ(ST_RAMb)の0番地に初期化した後、RIを呼び出し、SCを介してメッセージ受信待ち判別処理(S802)を実施する。なお、電力モードとは、情報処理装置で設定可能なクロックパルス(FRQ)、電源電圧(VDD)、基板バイアス電圧(VBB)の数値の組合せを数値で表したものである。
メッセージ受信待ち判別処理(S802)は、RTMタスク(TSKa)への起動イベントとしてメッセージ(MSGa)またはメッセージ(MSGb)が届いているかを判別し、届いていたら宛先判別処理(S803)を行い、届いていなければMSGaないしMSGbが受信されるまでRTMタスク(TSKa)をWaitに遷移させる。なお、Waitへの遷移は、RIを呼び出し、SCを介す事でメッセージ受信待ち判別処理(S802)の機能が、RTOSから提供される。
宛先判別処理(S803)は、受信したメッセージ(MSG)がRTMタスク(TSKa)宛、つまり、From_IDがRTMタスク(TSKa)のIDかどうか、メッセージ(MSGa)かメッセージ(MSGb)かどうかを判別する。もし、To_IDがRTMタスク(TSKa)のIDでならばPOP処理(S804)、To_IDがRTMタスク(TSKa)のID以外ならばPUSH処理(S805)に処理に進める。
図9は、図8におけるPUSH処理の動作を説明する図である。
PUSH処理(S805)は、プリエンプト時刻スタックポインタ(SPa)に指されている、プリエンプト時刻スタックメモリ(ST_RAMa)のスタックメモリ番地(ADDa)に、プリエンプト時のタイマ(TMU)の時刻、つまりプリエンプト時刻を記録すると共にプリエンプト時刻スタックポインタ(SPa)の値に1を加算する。更に電力モードスタックポインタ(SPb)に指されている、電力モードスタックメモリ(ST_RAMb)のスタックメモリ番地(ADDb)に、プリエンプト時の電力モードの値を記録し、電力モードスタックポインタ(SPb)の値に1を加算する。そして受信したメッセージ(MSGa)を同メッセージに書き込まれているTo_IDのIDに相当するタスク(TSK)に再送する。
例えばビデオ処理タスク(TSKf)の処理途中で出力時間管理タスク(TSKd)がメッセージ(MSGa)をRTMタスク(TSKa)経由でオーディオ処理タスク(TSKe)に送信、つまり出力時間管理タスク(TSKd)から送信されたメッセージ(MSGa)をRTMタスク(TSKa)が受信し、更にRTMタスク(TSKa)がPUSH処理(S805)で受信メッセージ(MSGa)をオーディオ処理タスク(TSKe)に再送した場合、再送されたメッセージ(MSGa)を受信したオーディオ処理タスク(TSKe)がビデオ処理タスク(TSKf)の処理途中で割り込み、オーディオ処理タスク(TSKe)が終了してWaitに遷移するまで、ビデオ処理タスク(TSKf)はプリエンプトされる。
PUSH処理(S805)でプリエンプト時刻スタックメモリ(ST_RAMa)に記録されたプリエンプト時刻は略、ビデオ処理タスク(TSKf)にとってオーディオ処理タスク(TSKe)に割り込まれた時刻に相当する。つまり、低タスク優先度のタスク(TSKf)から見て高タスク優先度のタスク(TSKe)に割り込まれた時刻という事になる。また、同時に記録された電力モードは割り込まれる前の低タスク優先度のタスクで動作していた電力モードとなる。
図10は、図8におけるPOP処理の動作を説明する図である。
POP処理(S804)は、プリエンプト時刻スタックポインタ(SPa)の値を1減算し、これによって指されるプリエンプト時刻スタックメモリ(ST_RAMa)のスタックメモリ番地(ADDa)において、その番地に格納されたプリエンプト時刻を、現時点のタイマ(TMU)の時刻から引き算し、この引き算して得た時間値を割り込み時間格納メモリ(RAMa)に格納する。更に電力モードスタックポインタ(SPb)の値を1減算し、これによって指される電力モードスタックメモリ(ST_RAMb)のスタックメモリ番地(ADDb)において、その番地に格納された電力モードの値を復帰電力モード格納メモリ(RAMb)に格納する。そして復帰電力モード格納メモリ(RAMb)に格納された電力モードに従って電力、つまりクロックパルス(FRQ)、電源電圧(VDD)、基板バイアス電圧(VBB)を再設定する。
例えばオーディオ処理タスク(TSKe)でオーディオ復号化処理(S603e)が終了すると、待機状態遷移処理(S604)を実施し、オーディオ処理タスク(TSKe)からRTMタスク(TSKa)宛、つまりTo_IDにRTMタスク(TSKa)のIDが書きこまれたメッセージ(MSGb)が送信され、そしてRTMタスク(TSKa)がメッセージ(MSGb)を受信するとPOP処理(S804)が実施される。POP処理(S804)が終了すると略同時に、プリエンプトされていたビデオ処理タスク(TSKf)がディスパッチされる。POP処理(S804)で格納した割り込み時間格納メモリ(RAMa)の値は、ビデオ処理タスク(TSKf)がオーディオ処理タスク(TSKe)に割り込まれた時間、つまり低タスク優先度のタスク(TSKf)の処理の遅延時間(DTIM)に相当し、復帰電力モード格納メモリ(RAMb)の値は、オーディオ処理タスク(TSKe)に割り込まれる直前のビデオ処理タスク(TSKf)の電力モードに相当する。
また本発明においては、POP処理(S804)およびPUSH処理(S805)に、前述したようなスタックメモリではなく、リンクリストを用いて実施することも可能である。
図11は、図8におけるPOP処理およびPUSH処理にリンクリストを用いた場合のRTMタスクの初期化動作の一例を示す説明図である。
RTMタスク(TSKa)は、先ずRTMタスク初期化処理開始点(S801)でワーキングメモリ(RAM1)にプリエンプト時刻リンクリスト(LK_LTa)及び電力モードリンクリスト(LK_LTb)、つまりプリエンプト時刻リンクリストの番兵(STLa)、電力モードリンクリストの番兵(STLb)を作成し、番兵(STLa)及び番兵(STLb)のリンクリストポインタ(LLPa)及びリンクリストポインタ(LLPb)は、自分自身のリンクリストメモリの先頭メモリ番地を指すように設定する。
図12は、図8におけるPUSH処理にリンクリストを用いた場合の動作の一例を示す説明図である。
リンクリストを用いたPUSH処理(S805)は先ず、ワーキングメモリ(RAM1)にプリエンプト時刻格納用のリスト(LTa)及び電力モード格納用のリスト(LTb)を獲得し、リスト(LTa)にはメッセージ(MSGa)に記載のタスク優先度とプリエンプト時刻を、リスト(LTb)にはMSGaに記載のタスク優先度とプリエンプト時の電力モードの値を記録する。
そしてリスト(LTa)をリンクリスト(LK_LTa)に、リスト(LTb)をリンクリスト(LK_LTb)に挿入、つまりリンクリストポインタ(LLPa)にリスト(LTa)の先頭メモリ番地を、リンクリストポインタ(LLPb)にリスト(LTb)の先頭メモリ番地を格納する。
その後、リンクリストを用いたPUSH処理(S805)を実施する都度、前述したようにリスト(LT)に記載されたタスク優先度の高い順番にリスト(LT)をリンクリスト(LK_LT)に並べる、つまり番兵(STL)及び既に挿入されているリスト(LT)のリンクリストポインタ(LLP)に、新しく挿入するリスト(LT)の先頭メモリ番地を格納することになる。
図13は、図8におけるPOP処理にリンクリストを用いた場合の動作の一例を示す説明図である。
リンクリストを用いたPOP処理(S804)は先ず、番兵(STL)のリンクリストポインタ(LLP)に格納のメモリ番地のリスト(LT)を解放する。つまり解放するリスト(LT)に記録しているリンクリストポインタ(LLP)のメモリ番地を、番兵(STL)のリンクリストポインタ(LLP)に格納する。
そして解放したプリエンプト時刻格納用のリスト(LTa)に記録されているプリエンプト時刻を現時点のTMUの時刻から引き算し、この引き算して得た時間値を割り込み時間格納メモリ(RAMa)に格納する。同じく、解放した電力モード格納用のリスト(LTb)に記録されている電力モードの値を復帰電力モード格納メモリ(RAMb)に格納する。そして最後に、解放したリスト(LT)をワーキングメモリ(RAM1)に戻す。
上記のような一連のリンクリスト(LK_LT)の動作は、図28で述べたRTOSの内部処理である、Ready Queueのスケジューリングに相当する。従って、図28のTCBにプリエンプト時刻と電力モードの記録部を持たせ、RTMタスクと同等の機能を提供するシステムコール(SC)を設ければ、RTMタスクの実装は省ける。
以上のように、POP処理及びPUSH処理を用いることによって、高優先度タスクの割り込みなどに伴う遅延時間(DTIM)を記録する機能や低優先度タスクが復帰する際の電力モードを記録する機能を容易に実現することが可能となる。そして、このような処理をスタックメモリやリンクリストなどを用いて実装することで、AV再生機の正常動作が可能となる。
次に、本願発明であるマルチタスク処理に対応した電力制御方法について説明する。
実際の電力制御は、図6のアプリケーション処理(S603)の内部で、前述した図29のフローチャートの動作を実施する。つまりアプリケーションプログラム開始点(S2901)からアプリケーションプログラム終了点(S2903)までの間で、初期化処理(S2902)、アプリケーションスライス(AS)、電力制御チェックポイント(CP)、繰り返し判別処理(JGE)の一連の処理を実施する。本明細書ではアプリケーションスライス(AS)の一例として、MPEG−4−ビデオ−Decoderプログラムにおけるアプリケーションスライスを説明する。
図14は、図1の情報処理装置をMPEG−4−ビデオ−Decoderとした場合のアプリケーションスライスの処理の一例を示す説明図である。
図14ではQCIFと呼ばれる縦144画素、横176画素の1フレームの画像フォーマット(FMT)を取り上げた。MPEG−4−ビデオ−Decoderは、マクロブロック(MB)と呼ばれる縦16画素、横16画素の画素ブロック毎に画像の復号化処理を繰り返す。MPEG−4−ビデオ−Decoderの処理において、マクロブロック(MB)毎の画像の復号化処理がアプリケーションスライス(AS)となる。従ってQCIFサイズのMBは99ブロック存在するので、99回、アプリケーションスライス(AS)を実施する事になる。
なお、画像フォーマット(FMT)が縦96画素、横144画素であるSub−QCIFの場合はマクロブロック数が48となるので、ASの数は48となる。また、MPEG−AACやMP3のDecoderの場合、アプリケーションスライス(AS)の数は例えばチャネル数に相当する。ステレオ再生ならばASの数は2回である。言い換えれば、音声音響復号化処理であるMP3−Decoderプログラムの場合は、チャンネル単位のDecode処理がASとなる。
図15は、図1の情報処理装置を用いたアプリケーション処理の中で、図29の電力制御チェックポイントの動作を行う場合の処理の一例を示すフロー図である。電力制御チェックポイント(CP)は、余裕時間計測処理(S1501)、動作周波数予測処理(S1502)、電力制御処理(S1503)の順に処理を実施する。なお、アプリケーションプログラム開始(S2901)の時点でシステムコール(SC)にて、タイマ(TMU)の時刻をタスク開始時刻(STIM)として記録する。
図16は、図15の余裕時間計測処理の一例を示すフロー図である。余裕時間計測処理(S1501)は、サブWCET算出処理(S1601)、実行時間補正処理(S1602)、余裕時間算出処理(S1603)の順に処理を実施する。サブWCET算出処理(S1601)は、第1サブWCET算出処理(S1601a)と第2サブWCET算出処理(S1601b)の2種類がある。両方とも前述したAV再生機に限らず情報処理装置のコンセプトによって使い分ける事が有効である。
図17は、図16におけるサブWCET処理の内の第1サブWCET算出処理の一例を示す説明図である。第1サブWCET算出処理(S1601a)は、電力制御を実施する前に、予め割り込み時間つまり遅延時間(DTIM)を見越し、タスク開始時刻(STIM)からデッドライン(DL)までの時間幅であるWCETよりも短い時間幅である仮想WCET(WCET_X)と、全アプリケーションスライス数により、チェックポイント時間間隔(CPTIM_X)を設定し、そのチェックポイント時間間隔(CPTIM_X)とアプリケーションスライス処理経過管理部(ASCU)に格納の値、つまり現時点のアプリケーションスライスの繰り返し数に1加算した値の積算を施して、サブWCET(S_WCET)を求める。AV再生機が流通する前の製造及び生産の段階で予め、チェックポイント時間間隔(CPTIM)をAV再生機に内蔵しておく事になる。
図18は、図16におけるサブWCET処理の内の第2サブWCET算出処理の一例を示す説明図である。第2サブWCET算出処理(S1601b)は、電力制御を実施する前に予め、タスク開始時刻(STIM)からデッドライン(DL)までの時間幅であるWCETと、全アプリケーションスライス数により、チェックポイント時間間隔(CPTIM)を設定し、そのチェックポイント時間間隔(CPTIM)とアプリケーションスライス処理経過管理部(ASCU)に格納の値、つまり現時点のアプリケーションスライス(AS)の繰り返し数に1加算した値の積算を施して得たサブWCET(S_WCET)を求める。そして割り込みからディスパッチされる毎に、前述したようなRTMタスク(TSKa)により算出した遅延時間(DTIM)を引き算し、この引き算した時間幅である補正サブWCET(S_WCET_X)をサブWCET(S_WCET)として使用する。
以上を実施する事により、前述した第二及び第三の課題を解決する事が可能となる。すなわち、割り込みに伴う遅延時間(DTIM)が発生した場合にも、デットライン(DL)を確実に遵守することが可能となり、情報処理装置の消費電力の最適化、または処理の安定化を図ることが可能となる。
図19は、図16における実行時間補正処理の一例を示す説明図である。実行時間補正処理(S1602)は、先ずシステムコール(SC)により、TMUから現時刻を記録し、この現時刻からアプリケーションプログラム開始点(S2901)時に記録したタスク開始時刻(STIM)を引き算し、この引き算して得た時間を実行時間(RTIM)として算出する。更に、実行時間(RTIM)から、前述したようなRTMタスク(TSKa)で求めた割り込み時間格納メモリ(RAMa)に格納の遅延時間(DTIM)を引いて補正実行時間(RTIM_X)を算出する。
このように補正実行時間(RTIM_X)を算出し、RTIM_Xを次の余裕時間算出処理(S1603)で実行時間として使用する事により、前述した第一の課題を解決する事が可能となる。そして、これによって、情報処理装置の省電力化を測ることが可能となる。
図16の余裕時間算出処理(S1603)は、サブWCET算出処理(S1601)で求めたサブWCET(S_WCET)または補正サブWCET(S_WCET_X)から、実行時間補正処理(S1602)で求めた補正実行時間(RTIM_X)を引き算する。そして、この引き算した結果は余裕時間(後述する図34におけるMTIM)となる。
図20は、図15における動作周波数予測処理の動作の一例を示すフロー図である。図34は、図16および図20の処理で算出する時間を説明するための図である。本明細書では、動作周波数予測処理(S1502)の説明を容易にする為、可変に出来る動作周波数を30[MHz]、60[MHz]、120[MHz]の3段階とするが、他の動作周波数でも、更に可変に出来る動作周波数の数を増減しても本発明の実施は可能である。
図20の動作周波数倍率初期化処理(S2001)では、動作周波数を予測する為に仮に設定する予測動作周波数倍率が設定される。動作周波数倍率とは、最高動作周波数の逆数である最短クロック周期時間を基準に1とした場合の各動作周波数のクロック周期時間の倍率の事を指す。ここでは120[MHz]の動作周波数が最短クロック周期時間となるので動作周波数倍率を1とする。従って60[MHz]では2、30[MHz]では4という事になる。動作周波数倍率初期化処理(S2001)では先ず、最低動作周波数である30[MHz]の動作周波数倍率である4に1を加算した値を予測動作周波数倍率として設定する。
動作周波数倍率減算処理(S2002)は、予測動作周波数倍率を1減算する。閾値時間算出処理(S2003)は、動作周波数倍率減算処理(S2002)の結果である予測動作周波数倍率と、サブWCET算出処理(S1601)で用いたチェックポイント時間間隔(CPTIM)の掛け算を行う。そして、この掛け算で求まった値を閾値時間(図34のSDTIM)とする。
時間比較処理(S2004)では、余裕時間算出処理(S1603)で求めた余裕時間(MTIM)と、閾値時間算出処理(S2003)で求めた閾値時間(SDTIM)とを比較する。具体的には、図34に示す余裕時間(MTIM)よりも小さくなるまで、閾値時間(SDTIM)を小さく(すなわち動作周波数倍率を下げ動作周波数を高く)していく。
動作周波数予測処理(S1502)では、余裕時間が閾値時間よりも小さい間は図20のフローチャートに記載のLoopに従って処理を繰り返し、余裕時間が閾値時間よりも大きくなった所で初めて、Loopを抜け、自身の処理を終了する。その時の予測動作周波数倍率は電力制御処理(S1503)に引き渡される。
図21は、図15における電力制御処理の動作の一例を示すフロー図である。電力モード判別処理(S2101a〜c)は、動作周波数予測処理(S1502)から引き渡された予測動作周波数倍率と、電力モードを比較する。電力モードとは、情報処理装置で設定可能なクロックパルス(FRQ)、電源電圧(VDD)、基板バイアス電圧(VBB)の数値の組合せを数値で表したものである。そして電力モードは予め、予測動作周波数倍率と対応付けする必要がある。本明細書の場合の電力モードは、30[MHz]、60[MHz]、120[MHz]に対し、それぞれ、4、2、1となる。
電力モード設定処理(S2102a〜c)は、電力モード判別処理(S2101a〜c)で電力モードと予測動作周波数倍率が合致した場合に有効となり、電力モード設定処理(S2102a〜c)毎に個々の電力モードに対応したクロックパルス(FRQ)、電源電圧(VDD)ないし基板バイアス電圧(VBB)が供給されるようにCPG、VDDCU、VTHCUに対して命令する。
以上を実施すると、安定な動作を実施しながら、従来技術よりも20%以上の低消費電力及び省エネルギー効果を発揮出来る。
図22は、図1の情報処理装置を変形した構成の一例を示すブロック図である。図22に示す情報処理装置は、例えば、1プロセッサ構成の情報処理装置となっており、特に1プロセッサ構成の携帯電話を想定したものとなっている。
図22において、図1のCPUに相当する部分は、ベースバンドプロセッサ(BB_PRC)である。通常、BB_PRCは、CPUとクロックパルス発生器(CPG)とタイマ(TMU)を混載している事が多い。ここで、低消費電力効果を引き伸ばす為に、閾値電圧制御回路(VTHCU)を混載することが望ましい。BB_PRCは、主にディジタル通信処理及び通信プロトコル処理を実施するが、主に通信処理を行っていない時にはアプリケーション処理も行う。BB_PRCの端子は直接、アンテナ(AT)に繋がれたアナログ無線回路(RF)、通話する為のマイクロフォン(MF)、通話と音楽を再生する為のスピーカー(SPKR)及びバス(BUS)と接続する。
図1の入出力部(I/O)は、図22ではCMOSまたはCCDカメラ(以下、CAMという)や液晶または有機ELのディスプレイ(DPY)などに該当する。フラッシュメモリ(FLMEM)は、不揮発メモリの一種であり、図1のプログラムメモリ(MEM)に相当し、プログラム命令の本体と固定変数等の静的プログラムデータを格納する。つまり、図1の電力管理制御ソフトウェア(PMCS)、アプリケーションプログラム(APL)、およびリアルタイムオペレーティングシステム(RTOS)などに加えて、必要となる静的データ等も格納する。また、SRAMは、揮発メモリであり、図1のワーキングメモリ(RAM1)に相当し、プログラム命令によって読み書きされる動的変数の実現の為に使用する。つまり図1のPMCS、RTOS、およびAPLの動的メモリエリアを具備する事になる。
図23は、図1の情報処理装置を更に変形した構成の一例を示すブロック図である。図23に示す情報処理装置は、例えば、2プロセッサ構成の情報処理装置となっている。前述した図22の情報処理装置では、通信信号処理及び通信プロトコル処理とマルチメディア処理を同時に処理する必要が起こった場合、BB_PRCにかかる負荷が非常に重い。そこで、図23においては、通信処理用途のBB_PRCとマルチメディア処理用途のアプリケーションプロセッサ(AP_PRC)を情報処理装置に搭載する。この場合、BB_PRCとAP_PRCの両者に本願発明を適用することが可能である。
図24は、図1の情報処理装置を更に変形した構成の一例を示すブロック図である。図24に示す情報処理装置は、例えば、不揮発メモリを混載したプロセッサの構成例を示すものである。この場合、この不揮発メモリに、図1のPMCS、APL、およびRTOSを搭載すれば、外付けのフラッシュメモリは不要となる。
なお、昨今、半導体の微細化が進むにつれ、チップ毎に閾値電圧のバラツキが目立ってきている。そこで、電源電圧制御回路(VDDCU)を外付け実装にすることで、PMCSでチップ毎に異なる閾値電圧に適した電源電圧(VDD)を外から制御、供給することが可能となる。
図25は、図1の情報処理装置を更に変形した構成の一例を示すブロック図である。図25に示す情報処理装置は、例えば、VTHCU及び不揮発メモリを混載したプロセッサの構成例を示すものである。昨今、半導体の微細化が進むにつれ、耐圧の関係上、電源電圧(VDD)は低くなってきているが、閾値電圧との兼ね合いで、電源電圧を低くする事が難しくなってきた。従って、電源電圧(VDD)はある程度の値を確保しなければならない。このような場合、低消費電力化は、基板バイアス電圧を操作して閾値電圧のみを制御する事でも実現可能である。
図26は、図1の情報処理装置を更に変形した構成の一例を示すブロック図である。図26に示す情報処理装置は、例えば、VDDCU、VTHCU及び不揮発メモリを混載したプロセッサの構成例を示すものである。
昨今、半導体の微細化が進むにつれ、処理性能を上げる為に動作周波数を高くするように閾値電圧を低くしてきた。しかしリーク電流の指数的増加に伴って電源電圧も閾値電圧も下げることが低消費電力実現の点で難しくなってきた。リーク電流は、処理を実施していなくても電源を印加するだけで大きく電力を消費する、厄介な電流である。しかし性能毎、つまり動作周波数毎に低消費電力を最適にする電源電圧と閾値電圧の組合せが存在することが知られている。従って、PMCSで時間的処理負荷の計測する事で、最適な動作周波数、電源電圧、閾値電圧を設定する事が実現可能である。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、バッテリを備えたモバイル機器などの情報処理装置に適用して特に有益な技術であり、これに限らず、マルチタスク実装のアプリケーションを備えた情報処理装置およびそのオペレーティングシステムなどに対して広く適用可能である。
本発明の一実施の形態による情報処理装置において、その構成の一例を示すブロック図である。 図1の情報処理装置において、そのソフトウェアの詳細を含めた構成の一例を示すブロック図である。 図2におけるメッセージのフォーマットの一例を示す説明図である。 図2のソフトウェア部において、そのミドルウェアプログラムの詳細を含めた構成の一例を示すブロック図である。 図1の情報処理装置において、そのソフトウェアの一つである電力管理制御ソフトウェア(PMCS)の詳細な構成の一例を示すブロック図である。 アプリケーションタスクフレームワーク動作のフローチャートを説明する図である。 スリープタスク動作のフローチャートを説明する図である。 RTMタスク動作のフローチャートを説明する図である。 図8におけるPUSH処理の動作を説明する図である。 図8におけるPOP処理の動作を説明する図である。 図8におけるPOP処理およびPUSH処理にリンクリストを用いた場合のRTMタスクの初期化動作の一例を示す説明図である。 図8におけるPUSH処理にリンクリストを用いた場合の動作の一例を示す説明図である。 図8におけるPOP処理にリンクリストを用いた場合の動作の一例を示す説明図である。 図1の情報処理装置をMPEG−4−ビデオ−Decoderとした場合のアプリケーションスライスの処理の一例を示す説明図である。 図1の情報処理装置を用いたアプリケーション処理の中で、図29の電力制御チェックポイントの動作を行う場合の処理の一例を示すフロー図である。 図15の余裕時間計測処理の一例を示すフロー図である。 図16におけるサブWCET処理の内の第1サブWCET算出処理の一例を示す説明図である。 図16におけるサブWCET処理の内の第2サブWCET算出処理の一例を示す説明図である。 図16における実行時間補正処理の一例を示す説明図である。 図15における動作周波数予測処理の動作の一例を示すフロー図である。 図15における電力制御処理の動作の一例を示すフロー図である。 図1の情報処理装置を変形した構成の一例を示すブロック図である。 図1の情報処理装置を更に変形した構成の一例を示すブロック図である。 図1の情報処理装置を更に変形した構成の一例を示すブロック図である。 図1の情報処理装置を更に変形した構成の一例を示すブロック図である。 図1の情報処理装置を更に変形した構成の一例を示すブロック図である。 従来技術の電力制御装置及びその電力制御方法並びにそのプログラムを示す構成図である。 RTOSのタスク状態遷移を説明する図である。 アプリケーションスライシングを説明する図である。 従来技術の電力制御装置を使用するに当たって作成した電力制御方法の概念図である。 割り込みを受けた低タスク優先度のタスクの処理遅延を説明する図である。 低タスク優先度のタスクに割り込まれて生じたサブWCETの遅延を説明する図である。 ジッタによって生じたサブWCETの遅延を説明する図である。 図16および図20の処理で算出する時間を説明するための図である。
符号の説明
MEM プログラムメモリ
APL アプリケーションプログラム
RTOS,OS オペレーティングシステム
PMCS 電力管理制御ソフトウェア
RAM1 ワーキングメモリ
CPU プロセッサ
I/O 入出力部
BUS バス
REG,REGa〜e レジスタ
TMU タイマ
VTHCU 閾値電圧制御回路
CPG クロックパルス発生器
VDDCU 電源電圧制御回路
BAT バッテリパック
PWR 電池電圧
VBBCS,FRQCS,VDDCS,CS 制御信号
VBB 基板バイアス電圧
VDD 電源電圧
FRQ クロックパルス
TSK,TSKa〜g タスク
SC システムコール
API,PMCPI,RI,MI,DI プログラムインターフェース
PMCP 電力管理制御プログラム
MW,MWa ミドルウェア
HW ハードウェア
SW ソフトウェア
MSG,MSGa,MSGb メッセージ
RSMP 実行準備状態管理プログラム
DD デバイスドライバ
ST_RAMa,ST_RAMb スタックメモリ
RAMa,RAMb 格納メモリ
SPa,SPb スタックポインタ
ADDa,ADDb メモリ番地
LK_LTa,LK_LTb リンクリスト
LLPa〜d リンクリストポインタ
STLa,STLb 番兵
LTa,LTb リスト
MB マクロブロック
FMT 画像フォーマット
WCET 最悪実行時間
WCET_X 仮想WCET
S_WCET サブWCET
S_WCET_X 補正サブWCET
DTIM 遅延時間
STIM タスク開始時刻
DL デットライン
CPTIM,CPTIM_X チェックポイント時間間隔
RTIM 実行時間
RTIM_X 補正実行時間
ZTIM ジッタ
MTIM 余裕時間
SDTIM 閾値時間
AS アプリケーションスライス
CP チェックポイント
ASCU アプリケーションスライス経過管理部
AT アンテナ
MF マイクロフォン
SPKR スピーカー
RF アナログ無線回路
CAM CMOSまたはCCDカメラ
DPY ディスプレイ
FLMEM フラッシュメモリ
BB_PRC ベースバンドプロセッサ
AP_PRC アプリケーションプロセッサ
PWCU 電力制御回路
VCU 電源電圧/閾値電圧制御回路
C コマンド
TCB タスクコントロールブロック

Claims (6)

  1. RTOSからの命令、ならびに前記RTOSで管理され且つアプリケーションプログラムを実施するアプリケーションタスクからの命令に従って動作する中央処理装置と、
    前記中央処理装置の内部又は外部に設けられるタイマと、
    前記中央処理装置が所望する動作周波数のクロックパルスを前記中央処理装置及び前記タイマに供給するクロックパルス発生器と、
    前記中央処理装置に電源電圧を供給し且つ前記電源電圧の値を調整可能な電源供給器とを備えた情報処理装置であって、
    前記アプリケーションタスクは、複数の処理単位からなる第1のアプリケーションタスクと前記第1のアプリケーションタスクよりも優先度が高い第2のアプリケーションタスクとを含み、
    前記第2のアプリケーションタスクが前記第1のアプリケーションタスクに対して割り込んだ期間に相当する前記第1のアプリケーションタスクに生じる遅延時間を前記タイマを用いて計測する機能と、
    前記第1のアプリケーションタスクの前記複数の処理単位毎に予め実行時間の計画値を設定する機能と、
    前記第1のアプリケーションタスクの前記複数の処理単位毎に実際の実行時間を前記タイマを用いて計測する機能と、
    前記複数の処理単位毎の実際の実行時間から前記計測した遅延時間を引き算することで補正実行時間を算出する機能と、
    前記実行時間の計画値と前記補正実行時間とを比較し、前記比較結果に応じて、前記クロックパルス発生器および/または前記電源供給器に対し、前記動作周波数および/または前記電源電圧を変更するための制御信号を発生する機能とを有することを特徴とする情報処理装置。
  2. 請求項1記載の情報処理装置において、さらに、
    前記中央処理装置に基板バイアスを供給し且つ前記基板バイアスの値を調整可能な基板バイアス電圧調整器と、
    前記実行時間の計画値と前記補正実行時間との比較結果に応じて、前記基板バイアス電圧調整器に対し、前記基板バイアスを変更するための制御信号を発生する機能とを有することを特徴とする情報処理装置。
  3. 請求項1記載の情報処理装置において、
    前記遅延時間を計測する機能は、さらに、前記第2のアプリケーションタスクの継続実行によって前記第1のアプリケーションタスクに生じるジッタを遅延時間とみなして計測することを特徴とする情報処理装置。
  4. 請求項1記載の情報処理装置において、
    前記遅延時間を計測する機能は、PUSH処理とPOP処理を用いて実現されることを特徴とする情報処理装置。
  5. 請求項1記載の情報処理装置において
    記実行時間の計画値を設定する機能は、予め設定されたチェックポイント時間間隔に基づいて、前記第1のアプリケーションタスクの前記複数の処理単位のそれぞれが実行を開始または終了する毎に、前記複数の処理単位の実行経過に対応した前記チェックポイント時間間隔の合計を算出し、前記算出した合計に対して次に実行する処理単位に対応したチェックポイント時間間隔を更に加算した値を算出し、前記加算によって算出した値を前記実行時間の計画値として設定し、
    前記実際の実行時間を計測する機能は、前記複数の処理単位の実行経過に対応した実際の実行時間を、前記第1のアプリケーションタスクの実行の開始の時点から前記タイマを用いて計測し、
    前記補正実行時間を算出する機能は、前記補正実行時間を算出し、
    前記制御信号を発生する機能は、前記設定した前記実行時間の計画値から前記補正実行時間を引いた余裕時間を算出し、前記中央処理装置で駆動可能な最低動作周波数に対する動作周波数倍率と前記チェックポイント時間間隔を掛けた計画余裕時間を算出し、前記余裕時間が前記計画余裕時間以上であれば前記クロックパルス発生器に対し前記動作周波数倍率を下げる制御信号を発生し、前記余裕時間が前記計画余裕時間よりも小さければ前記クロックパルス発生器に対し前記動作周波数倍率を上げる制御信号を発生することを特徴とする情報処理装置。
  6. 請求項5記載の情報処理装置において、
    前記実行時間の計画値を設定する機能は、さらに、前記第1のアプリケーションタスクに生じる遅延時間に基づいて前記チェックポイント時間間隔を短くし、前記短くしたチェックポイント時間間隔を用いて前記実行時間の計画値を設定することを特徴とする情報処理装置。
JP2005048593A 2005-02-24 2005-02-24 情報処理装置 Expired - Fee Related JP4445410B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005048593A JP4445410B2 (ja) 2005-02-24 2005-02-24 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005048593A JP4445410B2 (ja) 2005-02-24 2005-02-24 情報処理装置

Publications (2)

Publication Number Publication Date
JP2006235907A JP2006235907A (ja) 2006-09-07
JP4445410B2 true JP4445410B2 (ja) 2010-04-07

Family

ID=37043497

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005048593A Expired - Fee Related JP4445410B2 (ja) 2005-02-24 2005-02-24 情報処理装置

Country Status (1)

Country Link
JP (1) JP4445410B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009220459A (ja) 2008-03-17 2009-10-01 Ricoh Co Ltd 機器の制御装置、画像形成装置、プログラム
US8881157B2 (en) 2009-09-11 2014-11-04 Empire Technology Development Llc Allocating threads to cores based on threads falling behind thread completion target deadline
US9569270B2 (en) 2009-04-21 2017-02-14 Empire Technology Development Llc Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts
US9189282B2 (en) 2009-04-21 2015-11-17 Empire Technology Development Llc Thread-to-core mapping based on thread deadline, thread demand, and hardware characteristics data collected by a performance counter
JP2013162239A (ja) 2012-02-02 2013-08-19 Sharp Corp 抑止装置、抑止装置の制御方法、被制御装置、電子機器、制御プログラム、および記録媒体
JP6225844B2 (ja) * 2014-06-30 2017-11-08 株式会社デンソー 対象物検出装置
KR101513398B1 (ko) 2014-07-02 2015-04-17 연세대학교 산학협력단 소모전력을 감소시킬 수 있는 단말장치 및 이의 제어방법
JP7025966B2 (ja) * 2018-03-20 2022-02-25 日立Astemo株式会社 車両制御装置

Also Published As

Publication number Publication date
JP2006235907A (ja) 2006-09-07

Similar Documents

Publication Publication Date Title
JP4445410B2 (ja) 情報処理装置
US8762755B2 (en) Methods and systems for power management in a data processing system
US7146513B2 (en) System for adjusting a clock frequency based on comparing a required process times and a worst case execution times and adjusting a voltage and clock frequency based on a number of ready state application tasks
JP5097251B2 (ja) 同時マルチスレッディングプロセッサを用いてバッファ型アプリケーションのエネルギー消費を低減する方法
US6834354B1 (en) Method and apparatus for assigning tasks in an information processing system to optimize power consumption versus performance of the system
US20040205757A1 (en) Performance scheduling using multiple constraints
JP4977774B2 (ja) データ処理装置
US20040153867A1 (en) Dynamic performance and resource management in a processing system
AU2010350737A1 (en) Opportunistic multitasking
US20140164661A1 (en) Methods and Systems for Time Keeping in a Data Processing System
US9632566B2 (en) Dynamically controlling power based on work-loop performance
WO2022206227A1 (zh) 系统启动方法、设备、系统及存储介质
JP2004135067A (ja) 動画像再生処理方法、動画像再生装置および動画像再生処理プログラム
AU2011218741A1 (en) Methods and systems for power management in a data processing system
AU2013205570A1 (en) Opportunistic multitasking

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091124

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140122

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees