(57)【要約】【課題】定期的に起動する特定処理などの情報処理の省電力制御を向上させる。【解決手段】定期的に起動する特定処理を実行する情報処理装置（２）であって、ＣＰＵパフォーマンスを設定する制御部（クロック制御部８）を備える。この制御部（クロック制御部８）が、特定処理の処理開始前に履歴情報から前記特定処理の処理量を予測し、該処理量が処理間隔の一定割合内に抑えられるようにＣＰＵパフォーマンスを設定する。この制御部（クロック制御部８）の制御にはＣＰＵパフォーマンスの漸減が含まれる。【選択図】図１
2015225389.tif 000002
【特許請求の範囲】
【請求項１】
定期的に起動する特定処理を実行する情報処理装置であって、
特定処理の処理開始前に履歴情報から前記特定処理の処理量を予測し、該処理量が処理間隔の一定割合内に抑えられるようにＣＰＵパフォーマンスを設定する制御部を備えることを特徴とする情報処理装置。
【請求項２】
前記制御部は、前記ＣＰＵパフォーマンスを漸減させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特定処理の処理量が前記処理間隔の一定割合以上である場合、予測される処理時間に応じた処理クロックを算出し、この処理クロックに制御することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
コンピュータに実行させるためのクロック制御プログラムであって、
定期的に起動する特定処理の開始前に履歴情報から前記特定処理の処理量を予測し、該処理量が処理間隔の一定割合内に抑えられるようにクロック制御を行う
処理を前記コンピュータに実行させるためのクロック制御プログラム。
【請求項５】
前記クロック制御は、ＣＰＵパフォーマンスを漸減させる制御を含むことを特徴とする請求項４に記載のクロック制御プログラム。
【請求項６】
定期的に起動する特定処理の開始前に履歴情報から前記特定処理の処理量を予測し、該処理量が処理間隔の一定割合内に抑えられるようにクロック制御を行うことを特徴とするクロック制御方法。
【請求項７】
前記クロック制御は、ＣＰＵパフォーマンスを漸減させる制御を含むことを特徴とする請求項６に記載のクロック制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、定期的に起動する処理などを実行する情報処理技術に関する。
【背景技術】
【０００２】
モバイルデバイスやパーソナルコンピュータ（ＰＣ）などの情報処理に用いられるＣＰＵ（Central Processing Unit ）は複数のＣｏｒｅ（コア）で構成される。各コアには処理がたとえば、対称型（Ｓｙｍｍｅｔｒｉｃ）またはＡｓｙｍｍｅｔｒｉｃ（非対称型）に割り当てられる。各コアには処理負荷に応じて最適なＣｌｏｃｋ（クロック）や電圧が設定され、消費電力の低減および処理速度の向上を両立させる省電力制御の実施が一般的である。この省電力制御はたとえば、ＯＳ（Operating System）が定期的に（割り込みなどを使って）ＯＳ上で動作するｔｈｒｅａｄ（スレッド）を監視し、コアが輻輳（１００〔％〕の稼働状態化）することなく、処理を行える最も低い消費電力になるようにクロック速度およびコア数を制御する。
【０００３】
斯かる処理に関し、発生する処理ごとに必要な処理量を算出し、これに基づき、ＣＰＵのクロックを決定することが知られている（たとえば、特許文献１）。処理履歴からクロックを算出し、処理ごとに決められたデッドライン内に処理を抑えられる最低限のクロックに再調整することが知られている（たとえば、特許文献２）。また、処理の予測電力値をもとにクロックの設定を行い、デッドラインを超えて処理が継続した際には処理を間引くことが知られている（たとえば、特許文献３）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１９８０７２号公報
【特許文献２】特開２００４−１６４６４３号公報
【特許文献３】特開２０００−３５７０２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、複数のコアで構成されるＣＰＵについて、各コアは共通であるから、ひとつのコアの処理を見ると、各処理を担当する（発生イベントの処理を担当する）コア動作量〔ＭＨｚ秒〕は、コア〔ＭＨｚ〕と動作時間〔秒〕で求められる。つまり、コア動作量＝クロック〔ＭＨｚ〕×動作時間〔秒〕である。このコアのクロックを決定する処理は一定時間ごとたとえば、０．０２〔秒〕ごとに行われる。
【０００６】
情報処理装置の一例としてスマートフォンにおける地上波デジタル放送の視聴ケースを例に取ると、図２１は、斯かる放送受信処理の処理を示している。地上波デジタル放送では３３〔Ｍｂｐｓ〕のデータを受信し、デスクランブル処理、ｄｅｍｕｘ処理（Ｔｕｎｅｒ）、デコード処理および表示処理が含まれる。図２１のＡはデスクランブル処理、図２１のＢはｄｅｍｕｘ処理（チューナ）、図２１のＣはデコード処理、図２１のＤは表示処理を示している。
【０００７】
この放送受信処理では、１〔Ｍｂｙｔｅ〕のバッファを用意し、３３〔Ｍｂｐｓ〕＝４．１２５〔Ｍｂｙｔｅ／ｓｅｃ〕（以下単純化のため４Ｍｂｙｔｅ／ｓｅｃとする）の処理が行われている。この処理には、少なくとも４回分のバッファ処理が必要である。
【０００８】
チューナモジュールでは、２００〔ｋｂｙｔｅ〕のバッファを備えていれば、２０回分の処理が発生する。また、３０〔ｆｐｓ〕の表示処理は、０．０３３３．．．〔ｓｅｃ〕ごとに発生する（単純化のため０．０３〔ｓｅｃ〕とする）。
【０００９】
ところで、コンテンツ保護などの目的で従来のＯＳとは異なる動作空間（ＴｒｕｓｔＺｏｎｅ空間：アーキテクチャ拡張機能空間）を同一のＣＰＵ上で動作させることが可能である。斯かる空間では従来のＯＳにおけるクロック制御を行うことができない。ＴｒｕｓｔＺｏｎｅが多用されると処理速度の低下（クロックの上昇不可）を招いたり、クロックの高止まりにより、クロック制御による低消費電力制御の効果が得られない。
【００１０】
コンテンツ再生にＤＲＭ（Digital Rights Management）を必要とするマルチメディアコンテンツ再生では、ＤＲＭ処理をＴｒｕｓｔＺｏｎｅで行う、コンテンツ再生のような定期的に起動し、定量処理を余儀なくされる場合には、処理開始後、ＣＰＵ性能の低下状態の継続や、ｃｌｏｃｋの高止まりによる電力消費の発生が懸念される。
【００１１】
斯かる処理では、クロックおよび電圧は比例関係にあり、電力は電圧の２乗に比例するので、発生処理量に対して許容可能な時間内に抑えられるクロック設定を必要とする課題がある。
【００１２】
そこで、本開示の技術の目的は上記課題に鑑み、定期的に起動する特定処理などの情報処理の省電力制御を向上させることにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本開示の技術の一側面によれば、定期的に起動する特定処理を実行する情報処理装置であって、ＣＰＵパフォーマンスを設定する制御部を備える。この制御部が、特定処理の処理開始前に履歴情報から前記特定処理の処理量を予測し、該処理量が処理間隔の一定割合内に抑えられるようにＣＰＵ（Central Processing Unit ）パフォーマンスを設定する。
【発明の効果】
【００１４】
本開示の技術によれば、定期的に起動する特定処理または該特定処理を含む情報処理の省電力制御を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態に係る情報処理装置およびその処理手順を示す図である。
【図２】情報処理装置の処理を示す図である。
【図３】クロックに対する減衰処理の有無を説明するための図である。
【図４】クロックに対する減衰処理の効果を説明するための図である。
【図５】第１の実施の形態に係る情報処理装置のハードウェア構成例を示す図である。
【図６】中央制御部のハードウェア構成例を示す図である。
【図７】特定処理の処理情報テーブルの一例を示す図である。
【図８】地上波デジタルＴＶ放送受信の処理手順を示すフローチャートである。
【図９】クロック制御の処理手順を示すフローチャートである。
【図１０】処理情報テーブルの更新の処理手順を示すフローチャートである。
【図１１】初期化後または更新後の処理情報テーブルを示す図である。
【図１２】数回の更新後の処理情報テーブルを示す図である。
【図１３】特定処理開始前の処理情報テーブルを示す図である。
【図１４】特定処理終了後の処理情報テーブルを示す図である。
【図１５】処理情報テーブルのシミュレーションを示す図である。
【図１６】処理情報テーブルのシミュレーションを示す図である。
【図１７】処理情報テーブルのシミュレーションを示す図である。
【図１８】処理の発生状態を示す図である。
【図１９】クロック制御の収束状態を示す図である。
【図２０】クロック制御の処理の比較例を示す図である。
【図２１】地上波デジタルＴＶ放送受信処理を示す図である。
【発明を実施するための形態】
【００１６】
〔第１の実施の形態〕
【００１７】
図１のＡは、第１の実施の形態に係る情報処理装置を示している。図１に示す構成は一例であり、斯かる構成に本開示の技術が限定されるものではない。
【００１８】
この情報処理装置２は、スマートフォン、携帯電話機、タブレットＰＣ（パーソナルコンピュータ）、デジタルカメラ、ゲーム装置などの移動端末や、ノートＰＣ、タブレット端末などのモバイル機器であってもよいし、据置き型のＰＣであってもよい。
【００１９】
この情報処理装置２には一例としてＣＰＵ（Central Processing Unit ）４、クロック生成部６、クロック制御部８が備えられる。
【００２０】
この情報処理装置２は定期的に起動する特定処理を含む各種の情報処理を実行する。ＣＰＵ４は、プログラムの実行により情報処理を実行し、この情報処理には既述の特定処理が含まれる。
【００２１】
クロック生成部６はクロックを生成する。このクロック生成部６はたとえば、ＴＣＸＯ（Temperature Compensated Xtal Oscillator：温度補償型水晶発振器）を用いて、周波数安定度の高い、温度に依存しない高安定度のクロックを生成する。
【００２２】
クロック制御部８では、特定処理の処理開始前に履歴情報から特定処理の処理量を予測し、該処理量が処理間隔の一定割合内に抑えられるようにＣＰＵパフォーマンスを設定する。この場合、クロック制御部８はクロック周波数を基準クロックの逓倍などの周波数制御を行う。このクロック制御にはＣＰＵパフォーマンスを漸減させる制御が含まれる。
【００２３】
図１のＢは、クロック制御の処理手順の一例を示している。この処理手順は、定期的に起動する特定処理を実行する情報処理装置２の情報処理の一例である。この処理手順では、処理が定期的に起動する特定処理かを判定する（Ｓ１）。定期的に起動する特定処理であれば（Ｓ１のＹＥＳ）、実行する特定処理の処理量を予測する（Ｓ２）。この処理量の予測には、その特定処理の処理開始前に履歴情報から特定処理の処理量を求めればよい。
【００２４】
そして、ＣＰＵパフォーマンスの一例として、特定処理の処理量が処理間隔の一定割合内に抑えられるようにクロック制御を行う（Ｓ３）。
【００２５】
また、Ｓ１において、処理が定期的に起動する特定処理でなければ（Ｓ１のＮＯ）、Ｓ２、Ｓ３をスキップし、通常のクロック設定を行う（Ｓ４）。このクロック設定つまり、特定処理を除く通常処理におけるクロック設定では、実行すべき処理によるＣＰＵ４の占有率に応じたクロック制御を行えばよい。
【００２６】
そして、クロック制御の処理には、履歴対象区間の算出処理、減衰値の設定などの付随的な処理を含んでもよい。
【００２７】
＜履歴対象区間の算出処理＞
【００２８】
図２は、特定処理の一例として、継続する周期的な繰り返し処理を示している。たとえば、処理Ｐ１は時点ｔ１から開始され、時点ｔ２で終了する。時点ｔ１は、処理Ｐ１を要求された時点で識別できる。時点ｔ２は、処理Ｐ１の終了時点で識別することができる。これら時点ｔ１、ｔ２を記録すればよい。
【００２９】
次の処理Ｐ２が開始される時点ｔ３で、処理Ｐ１の開始時点ｔ１からの処理間隔時間Ｔａがあらかじめ設定していた最大許容間隔Ｔｍ未満であれば、各処理Ｐが継続していると判断し継続処理を行う。この継続処理とはこれまでに発生した仕事量の移動平均を使って次回発生の仕事量を予測することである。非継続の場合は前回データを初回値として移動平均対象とすればよい。処理間隔時間Ｔａが最大許容間隔Ｔｍ以上に到達すれば、それまでの情報を前回の履歴情報とし、これを記録し継続処理を中止する。この履歴情報を特定処理の処理量の予測に用いる。
【００３０】
＜減衰値の設定＞
【００３１】
動画処理などコンテンツにより処理量が動的に変動する処理では、前回履歴に基づいて処理量を予測し、その処理量に応じてクロック制御を行う。この場合、負荷が軽いコンテンツなどの処理に重負荷のクロックを設定すれば、その処理に対し必要以上の高クロックになる場合がある。このような不都合を回避するには、クロック制御で得られるクロックを減衰値によって減衰させ、高クロック化を防止すればよい。
【００３２】
図３のＡは、クロックに対する減衰無しの場合を示している。図３のＡでは横軸に時間、縦軸にクロックを示している。前回の処理１０−１の後、今回の処理１０−２が実行され、処理１０−２では減衰無しの処理を行っている。この処理では、クロックに対し予測設定が行われ、今回の処理１０−２ではその処理量に大きな空き１２−１が生じている。
【００３３】
これに対し、図３のＢは、クロックに対する減衰の有りの場合を示している。この図３のＢにおいても、図３のＡと同様に横軸に時間、縦軸にクロックを示している。この場合、前回の処理１０−１が行われ、この処理の処理量は図３のＡに示す処理１０−１と同様である。前回の処理１０−１を履歴情報とし、今回の処理１０−３ではクロックに減衰処理を施し、予測設定されたクロックが用いられている。この結果、図３のＡの処理１０−２に比較し、クロックが低減されて処理量が少なくなり、しかも、生じた空き１２−２は図３のＡに示す処理１０−２より小さくなっている。
【００３４】
このように、前回の処理１０−１の処理量より少ない処理量の処理１０−２が発生した場合には、減衰なしでは図３のＡに示すように、必要以上の高クロック処理に突入することになる。そこで、クロックに減衰値をかけると、処理１０−２に比較して処理１０−３の処理時間が延びるが、この処理１０−３ではクロックが抑制されるので、電圧上昇を抑制でき、処理に対する消費電力を低減できる。
【００３５】
＜処理割合の算出とクロック制御＞
【００３６】
単位時間のすべてを特定処理のたとえば、動画処理に割り当てると、ＵＩ（User Interface）処理など速やかに実行できない。これを回避するため、単位時間当たりの一定の割合で処理が済むようなクロックを設定し、他の処理を速やかに処理できるようにする。
【００３７】
処理量の減衰により徐々にクロックが下がっていくと、前回生じた処理係る処理量が今回も発生した場合のＣＰＵ４の推定占有率が上がってくる。スマートフォンなどの情報処理装置２では、動画処理だけでなく、他の処理も並行して処理するため、ＵＩ処理やその操作などの即応性を確保するには、動画処理などによるＣＰＵ４の占有率を一定の処理量に抑える必要がある。そこで、動画処理などの特定処理によるＣＰＵ４の占有率が一定値以上になると予測した場合つまり、前回発生した処理の処理量と減衰したクロックから予測し、特定処理の処理量が一定割合に収まるようにクロックの引き上げを行う。
【００３８】
具体的にはたとえば、図４に示すように、クロック制御を行う。図４には、横軸に時間、縦軸にクロックをとっている。図４において、ＭＣは設定可能なクロックでの可能処理量、Ｔ１は変更前の推定占有時間、Ｔ２は変更後の推定占有時間である。クロックに対して推定占有時間Ｔ１となると判断した場合には、推定占有時間Ｔ２になるようにクロックの引き上げを行い、このクロックによって処理量を抑制する。変更前の推定占有時間Ｔ１では他の処理が可能な空きＥ１であるのに対し、変更後の推定占有時間Ｔ２では他の処理が可能な空きＥ２に拡大している。つまり、クロックを引き上げることにより、他の処理が可能な空き容量が増加する。
【００３９】
＜第１の実施の形態の効果＞
【００４０】
以上説明した第１の実施の形態によれば、次のような効果が得られる。
【００４１】
(1) 放送受信処理などの定期的に起動する特定処理について、処理開始前に処理量を履歴をもとに予測し、処理間隔に対し一定割合内に処理を押さえられるようにＣＰＵパフォーマンスを設定するので、省電力制御を向上させることができる。
【００４２】
(2) 既述のＣＰＵパフォーマンスの設定では、定期的に起動する特定処理または該特定処理を含む情報処理を実行する際に特定処理の処理量が処理間隔の一定割合内に抑えられるようにクロック制御を行うので、情報処理装置２の省電力制御を向上させることができる。
【００４３】
(3) 特定処理のクロック制御により特定処理以外の他の処理の処理量を増加させ、ＣＰＵ４の処理量を特定処理とそれ以外の処理量に効率的に配分することができる。
【００４４】
(4) 定期的に発生する電力制御対象外の処理たとえば、トラストゾーン（ＴｒｕｓｔＺｏｎｅ：アーキテクチャ拡張機能）上の処理に、あらかじめ処理履歴を用いて計算して予測したクロックを実行してもよい。この場合、発生処理量に対し許容可能な時間内で最低限のクロックを設定すれば、ＣＰＵ４を適切に使用でき、消費電流を低減できる。
【００４５】
(5) 特定処理などの処理を処理間隔の一定割合内に抑えることで、ユーザインターフェース（ＵＩ）処理などの不規則な処理に対しても適切なクロック処理を行うことができる。
【００４６】
〔第２の実施の形態〕
【００４７】
図５は、第２の実施の形態に係る情報処理装置２のハードウェア構成例を示している。図５において、図１と同一部分には同一符号を付してある。
【００４８】
情報処理装置２はたとえば、スマートフォンのハードウェア構成例である。この情報処理装置２は、中央制御部１４および記憶部１６が備えられる。中央制御部１４には既述のＣＰＵ４が含まれる。記憶部１６には、プログラムや処理情報が格納される。プログラムにはＯＳ（Operating System）やクロック制御などの各種の情報処理プログラムが含まれる。処理情報はたとえば、処理情報テーブルによって格納される。この記憶部１６にはメモリなどの記憶装置や、ハードディスクなどの補助記憶装置を含んでもよい。
【００４９】
さらに、情報処理装置２には、ＲＦ（Radio Frequency ）部１８、モデム部２０、音声入出力部２２、キー制御部２４、チューナー部２６、表示制御部２８、タッチパネル制御部３０、ＳＤ制御部３２、ＴＣＸＯ３４が備えられる。
【００５０】
ＲＦ部１８はアンテナ３６を備えて中央制御部１４の制御により基地局との無線通信を行う。モデム部２０はＲＦ部１８により無線通信を行い、データ信号を送信する無線信号の変調処理を含む生成処理や、無線信号からデータ信号の復調処理を行う。
【００５１】
音声入出力部２２は、中央制御部１４の制御により音声の入出力を行う。この音声の入力にはマイクロフォン、音声の出力にはスピーカが用いられる。
【００５２】
キー制御部２４はキーボードなどを備え、キー入力の制御を行う。チューナー部２６は放送受信用アンテナ４２を備え、テレビ放送などの受信を行う。表示制御部２８は表示パネル４４を用いて可視情報の表示制御を行う。タッチパネル制御部３０はタッチパネル４６を備え、ユーザの指やスタイラスペンのタッチ制御を行う。ＳＤ制御部３２は外部メモリであるＳＤメモリカード４８のデータの書込み、読出しなどの処理を行う。ＴＣＸＯ３４はクロック生成部６の一例であり、クロック生成を行う。
【００５３】
中央制御部１４はたとえば、図６に示すように、ＡＳＩＣ（Application Specific Integrated Circuit ：特定用途向け専用ＩＣ）で構成し、既述のＣＰＵ４が含まれる。
【００５４】
この中央制御部１４には複数のコア４−１、４−２、４−３、４−４および逓倍器５０−１、５０−２、５０−３、５０−４が備えられる。コア４−１、４−２、４−３、４−４は既述のＣＰＵ４の一例である。
【００５５】
逓倍器５０−１、５０−２、５０−３、５０−４はコア４−１、４−２、４−３、４−４に対応しており、ＴＣＸＯ３４が生成するクロックを逓倍し、対応するコア４−１、４−２、４−３、４−４に供給する。
【００５６】
この中央制御部１４では、コア４−１、４−２、４−３、４−４および逓倍器５０−１、５０−２、５０−３、５０−４を以て、コア４−１、４−２、４−３、４−４にクロック制御部５２−１、５２−２、５２−３、５２−４が形成されている。
【００５７】
＜処理情報テーブル６０＞
【００５８】
図７は、特定処理に用いられる処理情報テーブル６０の一例を示している。この処理情報テーブル６０は、記憶部１６に構築され、特定処理の実行により格納情報が更新されて維持される。
【００５９】
この処理情報テーブル６０にはＮｏ、処理ＩＤ、初期間隔Ｉｓ〔ｓｅｃ〕、減衰係数ａ、割合ｂ、前回処理開始時間Ｔｄ〔ｓｅｃ〕、処理クロックＣｐ〔ＧＨｚ〕、実行回数ｎ、処理時間Ｔ〔ｓｅｃ〕、移動平均間隔Ｉｓｍａ〔ｓｅｃ〕、移動平均クロックＣｓｍａ〔ＧＨｚ〕、移動平均処理時間Ｔｓｍａ〔ｓｅｃ〕が格納される。
【００６０】
Ｎｏは、処理単位に付された項番号である。処理ＩＤは各処理を識別するための情報である。したがって、この処理情報テーブル６０には処理毎に上記データが更新可能に格納される。
【００６１】
＜地上デジタルＴＶ放送受信処理＞
【００６２】
図８は、地上デジタルＴＶ放送受信の処理手順を示している。この処理手順では、電源ＯＮを受け、特定処理の処理情報テーブル６０の初期化を行う（Ｓ１１）。
【００６３】
この初期化の後、特定処理か特定処理以外の処理かの処理切替え要求を受ける（Ｓ１２）。この処理切替えの後、特定処理かを判定する（Ｓ１３）。特定処理でなければ（Ｓ１３のＮＯ）、待機状態となる。
【００６４】
特定処理であれば（Ｓ１３のＹＥＳ）、この特定処理の処理情報テーブル６０は登録済かを判断する（Ｓ１４）。
【００６５】
選択されている特定処理について、処理情報テーブル６０が登録済であれば（Ｓ１４のＹＥＳ）、クロック設定処理を行う（Ｓ１５）。このクロック設定処理では、時間測定開始を契機に、処理時間Ｔに現在時刻を設定し（Ｓ１６）、その特定処理を開始する（Ｓ１７）。
【００６６】
この特定処理終了後、処理時間Ｔの測定停止と処理情報テーブル６０の更新を行い、Ｓ１２に戻る。特定処理が継続している限り、Ｓ１２〜Ｓ１８の処理を継続して行う。
【００６７】
Ｓ１４の判断において、実行しようとする特定処理の処理情報テーブル６０が登録されていなければ（Ｓ１４のＮＯ）、処理情報テーブル６０への新規の登録処理を行う（Ｓ１９）。この処理には、処理情報テーブル６０の初期化（クロックの初期設定、実行回数ｎの初期化、開始時間Ｔｄに現在時刻を設定する）と、クロックの設定などの処理が含まれる。
【００６８】
この登録処理の後、特定処理を実行し（Ｓ２０）、処理時間Ｔの測定停止により処理情報テーブル６０の更新を行い（Ｓ２１）、Ｓ１２に戻る。そして、この特定処理が継続している限り、既に処理情報テーブル６０は登録済となるので、Ｓ１２〜Ｓ１８の処理を継続して行う。
【００６９】
＜クロック制御＞
【００７０】
図９は、既述のクロック設定処理（Ｓ１５）の処理手順の一例を示している。この処理手順では、クロック設定処理（Ｓ１５）に移行すると、現在時刻（nowtime ）を取得し、間隔（Ｉ）を算出する（Ｓ２１）。前回の開始時間はＴｄなので、処理間隔Ｉは、
Ｉ＝nowtime −Ｔｄ                    ・・・(1) 
から算出される。つまり、間隔Ｉは取得した現在時刻nowtime から前回処理開始時間Ｔｄを引くことにより求められる。
【００７１】
この場合、算出した間隔Ｉが初期間隔Ｉｓ未満であれば、移動平均を求めて平均間隔Ｉｓｍａを更新する。間隔Ｉが初期間隔Ｉｓ以上であれば、データを破棄し、移動平均間隔Ｉｓｍａは更新しない。このため、算出した間隔Ｉと初期間隔Ｉｓと比較する（Ｓ２２）。Ｉ＜Ｉｓであれば（Ｓ２２のＹＥＳ）、処理情報テーブル６０にある移動平均間隔Ｉｓｍａおよび実行回数ｎを（ｎ＋１）に更新する（Ｓ２３）。この場合、移動平均間隔Ｉｓｍａは、
Ｉｓｍａ＝（Ｉｓｍａ×ｎ＋１）／（ｎ＋１）      ・・・(2) 
から求められる。
【００７２】
Ｉ＜Ｉｓでなければ（Ｓ２２のＮＯ）、実行回数ｎの更新を行い、この場合、ｎ＝１に更新する（Ｓ２４）。
【００７３】
このようなステップを経て、期待処理時間Ｔｔの算出を行う（Ｓ２５）。この期待処理時間Ｔｔの算出には、処理情報テーブル６０から前回処理クロックＣｐ、減衰係数ａ、移動平均処理時間Ｔｓｍａ、移動平均クロックＣｓｍａを読み出し、次の演算を行う。この演算では、処理クロックＣｐを減衰係数ａで減衰させたクロックＣｔと、期待平均仕事量を求め、これらを用いて期待処理時間Ｔｔを算出する。
Ｃｔ＝ａ×Ｃｐ                              ・・・(3) 
期待平均仕事量＝Ｔｓｍａ×Ｃｓｍａ                    ・・・(4) 
により、期待処理時間Ｔｔは、
Ｔｔ＝Ｔｓｍａ×Ｃｓｍａ／Ｃｔ                ・・・(5) 
となる。
【００７４】
このＴｔを（ｂ×Ｉｓｍａ）と比較する（Ｓ２６）。（ｂ×Ｉｓｍａ）は、移動平均間隔Ｉｓｍａに割合ｂを乗ずることにより、移動平均間隔Ｉｓｍａの割合ｂを示す。この時間以内に処理を終え、他処理の動作時間を確保することを目的とする。
【００７５】
Ｔｔ＜（ｂ×Ｉｓｍａ）であれば（Ｓ２６のＹＥＳ）、クロックＣｔをクロックに設定し、処理クロックＣｐをクロックＣｔに更新し（Ｓ２７）、処理手順（図８）のＳ１５にリターンする。
【００７６】
また、Ｓ２６において、Ｔｔ≧（ｂ×Ｉｓｍａ）であれば（Ｓ２６のＮＯ）、時間内に処理が終わらないため、クロックＣｔを再設定する（Ｓ２８）。このクロックＣｔは、
Ｃｔ＝Ｔｓｍａ×Ｃｓｍａ／（ｂ×Ｉｓｍａ）        ・・・(6) 
から求める。この処理の後、Ｓ２７に移行し、処理手順（図８）のＳ１５にリターンする。
【００７７】
斯かる処理に求められたクロックＣｔは、特定処理が動作するＣＰＵコア群のクロックに設定するとともに処理クロックＣｐをクロックＣｔに更新し、特定処理を実施する。
【００７８】
図１０は、既述の処理情報テーブル６０の更新処理（Ｓ１８、Ｓ２１）の一例を示している。
【００７９】
この更新処理では、処理時間Ｔを測定し、この処理時間Ｔに前回処理開始時間Ｔｄを更新する（Ｓ３１）。現在時刻（nowtime ）を取得し、処理時間Ｔを算出する（Ｓ３２）。この処理時間Ｔは、Ｔ＝nowtime −Ｔから算出すればよい。
【００８０】
次に、処理時間Ｔを用いて移動平均処理時間Ｔｓｍａを算出する（Ｓ３３）。この移動平均処理時間Ｔｓｍａは、
Ｔｓｍａ＝｛Ｔｓｍａ×（ｎ−１）＋Ｔ｝／ｎ            ・・・(7) 
から算出される。ただし、Ｔは処理時間であり、ｎは実行回数である。
【００８１】
次に、クロックＣｔを用いて移動平均クロックＣｓｍａを算出し（Ｓ３４）、この処理を終了する。Ｓ３４において、移動平均クロックＣｓｍａは、
Ｃｓｍａ＝｛Ｃｓｍａ×（ｎ−１）＋Ｃｔ｝／ｎ          ・・・(8) 
から算出される。ただし、クロックＣｔは式(6) から求められたクロックである。
【００８２】
＜処理情報テーブル６０のデータ変化＞
【００８３】
図１１のＡは、初期化後の処理情報テーブル６０を示している。図１１のＢは、１回目の更新後の処理情報テーブル６０を示している。処理情報テーブル６０の更新により、図１１のＢに示す処理情報テーブル６０では項番号Ｎｏ＝２が加わり、更新情報が格納されている。
【００８４】
図１２のＡは、２回目の更新後の処理情報テーブル６０を示している。処理情報テーブル６０の２回目の更新により、項番号Ｎｏ＝３が加わり、その更新情報が格納されている。そして、連続した更新処理を経て、図１２のＢは、７回目の更新後の処理情報テーブル６０を示している。項番号Ｎｏ＝４〜７が加わり、これらの更新情報が格納されている。
【００８５】
そして、図１３は、一定時間処理が停止した後、特定処理の開始前の処理情報テーブル６０を示している。これに対し、図１４は、特定処理の終了後の処理情報テーブル６０を示している。
【００８６】
特定処理の終了前の処理情報テーブル６０では、項番号Ｎｏ＝７で実行回数がｎ＝７であるのに対し、項番号Ｎｏ＝２００で実行回数ｎ＝１となり、移動平均クロックが再スタートする。この再スタートでは、前回処理の項番号Ｎｏ＝７の処理クロックＣｐを読み出し、クロックＣｔ、期待処理時間Ｔｔを算出し、これを項番号Ｎｏ＝７のＩｓｍａを読み出して割合ｂで減算した値と比較し、クロックＣｔの補正有無判断を行ってクロックの設定を行う。特定処理の終了後、ｎ＝１を用いてＩｓｍａ、Ｃｓｍａ、Ｔｓｍａを求める。図１４は、これらＩｓｍａ、Ｃｓｍａ、Ｔｓｍａの値を示している。
【００８７】
＜特定処理のシミュレーション＞
【００８８】
図１５、図１６および図１７は、特定処理のシミュレーション結果を示している。
【００８９】
このシミュレーションでは、前提条件として最大クロックＣｍａｘ＝１．５〔ＧＨｚ〕とする。仕事は０．０５〔ｓｅｃ〕毎に処理量０．３（クロック〔ＧＨｚ〕×時間〔ｓｅｃ〕）でランダムに３０〔％〕以内で変動しながら発生する。処理は０．２５〔ｓｅｃ〕毎に行われる。そして、処理後に移動平均を用いて計算を行う。この場合、減衰係数ａ＝０．９、当該処理の割合ｂ＝３０〔％〕とした。
【００９０】
＜処理の概要＞
【００９１】
図１８は、特定処理を含む処理Ｐ１、Ｐ２・・・Ｐｎのばらつき状況を示している。  上記実施の形態で示したクロック制御は、このようなばらついた複数の処理が不連続に発生する場合に適用すればよい。
【００９２】
図１９は、各処理のクロックの収束状況を示している。当初変動したクロックは、０．８〜１．０の最適値に収束している。
【００９３】
＜第２の実施の形態の機能および効果＞
【００９４】
以上説明した第２の実施の形態における機能および効果は以下の通りである。
【００９５】
(1) ＣＰＵ４はコア４−１、４−２、４−３、４−４を含み、各コアクロックを独立して変更可能であり、各コア４−１、４−２、４−３、４−４では特定処理の実行時のクロックと処理時間が測定可能である。
【００９６】
(2) 処理を特定可能であって、処理ごとに情報としてクロックおよび処理時間を保持することができる。電源ＯＮの後、初めて処理を実行したことを判別することができる。
【００９７】
(3) 特定処理の開始前にＣＰＵ使用率とクロックを読み出し可能である。そして、初めて処理を実行するときに、その処理で最も最適なクロックが設定可能である。
【００９８】
(4) 処理時間を計測でき、実行時のクロックと処理時間を記録可能で、かつ、クロックと処理時間の移動平均値を記録可能である。特定処理の開始間隔を測定可能で予め決めた時間間隔を超えた場合、その値は破棄でき、かつ、移動平均を算出し、その値が記録可能である。
【００９９】
(5) 移動平均をとったクロックと処理時間の積を前回実行時のクロックにあらかじめ設定した減衰係数をかけて算出した処理クロックで割って、期待処理時間を算出可能である。この場合、移動平均で算出した開始間隔に対し、期待処理時間が予め設定した割合との比較処理が可能である。
【０１００】
(6) 予め設定した割合以上の場合、移動平均で算出した開始間隔にあらかじめ設定した割合をかけて算出した期待処理時間で移動平均のクロックと処理時間の積を割って新たな処理クロックを算出することが可能である。
【０１０１】
(7) 定期的に起動する特定処理について、処理開始前に処理量を過去の履歴をもとに予測し処理開始時にクロックを設定する（たとえば、Ｔｒｕｓｔ  Ｚｏｎｅに遷移する前に設定する）。電源ＯＮ後の履歴データがない場合はクロックを最高に設定し、コンテンツ再生などのように定期的にデータを処理する場合には、あらかじめ最大許容間隔を設定することで、間隔を超えた場合処理が終了したと判断できる。そして、自動的に再生開始と終了を検出し次回開始時のクロックを計算でき、算出したクロックにあらかじめ決めた減衰値をかけることにより、低負荷なコンテンツの再生などの処理では必要最低限のクロックで処理を開始できる。
【０１０２】
(8) 単位時間当たりの処理時間の割合を決めておき、過去の移動平均単位処理時間と移動平均クロックから算出した値を設定クロックで割り、これにより求めた期待時間の単位時間当たりの割合があらかじめ決めた値を下回った場合にはクロック再設定する。この場合、クロックの周波数を高くする。これにより、クロックが徐々に低下し、処理時間が伸びることを防止でき、常に必要なクロックに維持できる。つまり、電源ＯＮ後もっとも高いクロックで測定し、あらかじめ減衰係数、処理間隔、処理割合を設定し利用することで最適な状態に自動的に漸近させることができる。これにより、必要な処理を遅延なく効率よく実行できる。
【０１０３】
＜比較例との対比＞
【０１０４】
図２０のＡは、上記実施の形態の仕事量の変化を示している。上記実施の形態では既述したように、特定処理はたとえば、マルチメディアのデコード処理などの周期的な繰り返し処理である特定処理に対してクロック制御を行う。
【０１０５】
電源ＯＮ後、初めての特定処理を実行する際、ＣＰＵ４で取り得る最大のクロック（Ｃｍａｘとする）を設定して処理を行い処理時間Ｔを測定し、その特定処理と処理時間Ｔを記録する。この特定処理の処理間隔Ｉを計測し、この処理間隔Ｉが履歴情報から想定される初期間隔Ｉｓを超えた場合、これまでのクロックおよび処理時間から前回処理量として期待処理時間、処理間隔を移動平均から計算して更新し、これらの値を移動平均処理時間Ｔｓｍａ、移動平均間隔Ｉｓｍａとして記録する。
【０１０６】
特定処理の移動平均クロックＣｓｍａは、特定処理が起動したとき、移動平均で算出した処理量であり、クロックと時間の積で求められる。期待処理時間Ｔｔは、移動平均クロックＣｓｍａと移動平均処理時間Ｔｓｍａの積（Ｃｓｍａ×Ｔｓｍａ）を突入クロック：Ｃｔで割って求められる。Ｃｔは、前回処理のクロック：Ｃｐに対して予め設定した減衰させる係数ａ（たとえば、ａ＝０．９など）をかけた値である。
【０１０７】
この期待処理時間Ｔｔが予め決めた繰り返し間隔に対する割合ｂ（たとえば、ｂ＝０．２など）未満になるか（Ｔｔ／Ｉｓｍａ＜ｂ）を判断し、割合ｂ以上の場合、割合ｂ未満になる最低のクロックを使用する（処理割合の算出とクロック再設定）。
【０１０８】
図２０のＢは、比較例１（たとえば、特開２００４−１６４６４３号公報）のＣＰＵの動作状態を示している。負荷１の処理でアイドル（以下「ＩＤＬ」と称する）が増えたので、デッドライン値増（２）、クロック（タスクワーク値）減（１）になる。
【０１０９】
負荷２を処理時、デッドライン値を超えると、ＣＰＵのクロックが上がり（１⇒３⇒５）、タスク実行間隔内に処理が終わる。この場合、ＩＤＬが少ないことからデッドライン値は増えず、クロック（タスクワーク値）の減衰も行われない。
【０１１０】
負荷３を処理すると、ＩＤＬが増え、デッドライン値増、クロック（タスクワーク値）減となり、負荷４が処理される。負荷４の処理でＩＤＬが減り、デッドライン値減、クロック増で負荷５が処理される。負荷５の処理でＩＤＬが増え、デッドライン値増、クロック減となり、負荷６が処理される。
【０１１１】
図２０のＣは、比較例２（特開２００４−１６４６４３号公報）のＴｒｕｓｔＺｏｎｅのＣＰＵ動作状態を示している。処理中にクロックが変更できない場合には、デッドライン値を超えてもクロックが変更できない。上記実施の形態では、処理中に中断が可能であり、処理中のみクロックが引き上げが可能である。
【０１１２】
図２０のＤは、上記実施の形態の一例であるＴｒｕｓｔＺｏｎｅのＣＰＵ動作状態を示している。既述したように、一定時間内（周期の一定割合内）に処理を終了するので、処理中にクロックを変更できない場合にもオーバーフローを生じない。
【０１１３】
〔他の実施の形態〕
【０１１４】
ａ）上記実施の形態では情報処理装置としてスマートフォンを例示したが、スマートフォン以外の情報処理機器であってもよい。
【０１１５】
ｂ）特定処理の一例として地上デジタルＴＶ放送受信処理を例示したが、対象とする特定処理は放送受信以外の周期的に繰り返されるゲームなどの処理であってもよい。
【０１１６】
以上説明したように、本発明の技術の最も好ましい実施の形態などについて説明した。本発明は、上記記載に限定されるものではない。特許請求の範囲に記載され、または発明を実施するための形態に開示された発明の要旨に基づき、当業者において様々な変形や変更が可能である。斯かる変形や変更が、本発明の範囲に含まれることは言うまでもない。
【符号の説明】
【０１１７】
２  情報処理装置
４  ＣＰＵ
４−１、４−２、４−３、４−４  コア
６  クロック生成部
８  クロック制御部
１０−１  前回の処理
１０−２  今回の処理
１０−３  今回の処理
１２−１  空き
１２−２  空き
１４  中央制御部
１６  記憶部
１８  ＲＦ（Radio Frequency ）部
２０  モデム部
２２  音声入出力部
２４  キー制御部
２６  チューナー部
２８  表示制御部
３０  タッチパネル制御部
３２  ＳＤ制御部
３４  ＴＣＸＯ
３６  アンテナ
４２  放送受信用アンテナ
４４  表示パネル
４６  タッチパネル
４８  ＳＤメモリカード
５０−１、５０−２、５０−３、５０−４  逓倍器
５２−１、５２−２、５２−３、５２−４  クロック制御部
６０  処理情報テーブル
【図１】
2015225389.tif 000003
【図２】
2015225389.tif 000004
【図３】
2015225389.tif 000005
【図４】
2015225389.tif 000006
【図５】
2015225389.tif 000007
【図６】
2015225389.tif 000008
【図７】
2015225389.tif 000009
【図８】
2015225389.tif 000010
【図９】
2015225389.tif 000011
【図１０】
2015225389.tif 000012
【図１１】
2015225389.tif 000013
【図１２】
2015225389.tif 000014
【図１３】
2015225389.tif 000015
【図１４】
2015225389.tif 000016
【図１５】
2015225389.tif 000017
【図１６】
2015225389.tif 000018
【図１７】
2015225389.tif 000019
【図１８】
2015225389.tif 000020
【図１９】
2015225389.tif 000021
【図２０】
2015225389.tif 000022
【図２１】
2015225389.tif 000023