(57)【要約】【課題】ソフトウェアの構成を変更することなく、プロセッサ及びバスの動作クロック周波数を処理単位に関わらずに最適に制御することにより、情報処理装置の省電力化又は高性能化を実現する。【解決手段】プロセッサ２０のメモリ５０へのアクセス調停を行なうバスＩ／Ｆ３０と、クロックをプロセッサ２０へ供給する可変処理クロック発生器１０５と、クロックをバスＩ／Ｆ３０へ供給する可変バスクロック発生器１０６と、プロセッサ２０の動作の忙閑を識別する処理忙閑状態識別部１０３と、バスＩ／Ｆ３０の動作の忙閑を識別するバス忙閑状態識別部１０４と、処理忙閑情報及びバス忙閑情報と、プロセッサ２０及びバスＩ／Ｆ３０を最適に動作させる為のクロック調整ルール１０１とに基づいて、可変処理クロック発生部１０５及び可変バスクロック発生部１０６に対してクロック発生指令を出すクロック調節部１０２とを備える。【選択図】図１
2007257363.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
メモリと、
前記プロセッサの前記メモリへのアクセス調停を行なうバスインターフェースと、
前記プロセッサの動作に必要な動作クロックを前記プロセッサへ供給する可変処理クロック発生器と、
前記バスインターフェースの動作に必要な動作クロックを前記バスインターフェースへ供給する可変バスクロック発生器と、
前記プロセッサの動作の忙閑を識別する処理忙閑状態識別部と、
前記バスインターフェースの動作の忙閑を識別するバス忙閑状態識別部と、
前記プロセッサ及び前記バスインターフェースの各々の忙閑に応じて前記プロセッサ及び前記バスインターフェースを最適に動作させる為の複数のクロック制御情報が記載されているクロック調整ルールが格納されているルール格納部と、
前記クロック調整ルールの中の、前記処理忙閑状態識別部及び前記バス忙閑状態識別部によって得られた結果を示す処理忙閑情報及びバス忙閑情報に対応するクロック制御情報を、前記可変処理クロック発生部及び前記可変バスクロック発生部に出力するクロック調節部とを備え、
前記可変処理クロック発生部及び前記可変バスクロック発生部は、前記クロック調節部からのクロック制御情報に従って動作クロックを発生する
情報処理装置。
【請求項２】
前記プロセッサはキャッシュを有しており、
前記処理忙閑状態識別部は、前記キャッシュに対するアクセス状態に基づいて、前記プロセッサの動作の忙閑を識別する
請求項１に記載の情報処理装置。
【請求項３】
前記プロセッサはアキュムレータを有しており、
前記処理忙閑状態識別部は、前記アキュムレータの使用頻度に基づいて、前記プロセッサの動作の忙閑を識別する
請求項１に記載の情報処理装置。
【請求項４】
前記バス忙閑状態識別部は、前記バスインターフェースが前記メモリに発するストローブ信号の単位時間当たりの発生回数に基づいて、前記バスインターフェースの動作の忙閑を識別する
請求項１に記載の情報処理装置。
【請求項５】
前記クロック調節部は、前記プロセッサ内のソフトウェアにより構成される
請求項１に記載の情報処理装置。
【請求項６】
前記クロック調節ルールは、前記プロセッサ内に格納されている
請求項１に記載の情報処理装置。
【請求項７】
前記クロック調節ルールは、前記プロセッサにより書き換え可能である
請求項６に記載の情報処理装置。
【請求項８】
更に、
前記処理忙閑状態識別部による前記プロセッサの動作の忙閑の識別、及び前記バス忙閑状態識別部による前記バスインターフェースの動作の忙閑の識別の開始の際の前記プロセッサにおけるソフトウェアの実行位置と、前記識別の結果から算出されて前記可変処理クロック発生部及び前記可変バスクロック発生部に発せられたクロック制御情報とを記憶するクロック調節記憶部と、
現在のソフトウェアの実行位置と、前記クロック調節記憶部に記憶されたソフトウェアの実行位置とを比較し、両者が一致した際に前記クロック調節部に対して実行位置一致信号を発するソフトウェア実行位置比較部とを備え、
前記クロック調節部は、前記実行位置一致信号が発せられた場合、前記クロック調節記憶部に記憶されたクロック制御情報を発する
請求項１に記載の情報処理装置。
【請求項９】
更に、ソフトウェアの割り込み処理の発生を検出する割り込み検出部を備え、
前記クロック調節部は、前記割り込み検出部からのソフトウェアの割り込み発生通知を受けた場合、特定のクロック制御情報を発する
請求項１に記載の情報処理装置。
【請求項１０】
前記割り込み検出部は、前記割り込み処理の終了を検出した場合、前記クロック調節部に対して割り込み終了通知を発し、
前記クロック調節部は、前記割り込み検出部から前記割り込み終了通知を受けた場合、前記クロック調整ルールの中の、前記処理忙閑情報及び前記バス忙閑情報に対応するクロック制御情報を、前記可変処理クロック発生部及び前記可変バスクロック発生部に出力する
請求項９に記載の情報処理装置。
【請求項１１】
更に、前記プロセッサ上で動作するソフトウェアの切り替わりを検出し、切り替わり時刻及び次に実行されるソフトウェアの識別情報を前記クロック調節部に通知する切替検出部を備え、
前記クロック調節部は、前記切替検出部から通知を受けた場合、前記次に実行されるソフトウェアに対応する前記クロック調整ルールの中の、前記処理忙閑情報及び前記バス忙閑情報に対応するクロック制御情報を、前記可変処理クロック発生部及び前記可変バスクロック発生部に出力する
請求項１に記載の情報処理装置。
【請求項１２】
更に、前記プロセッサ上で動作するソフトウェア毎の観測周期値が蓄積される蓄積部を備え、
前記処理忙閑状態識別部及び前記バス忙閑状態識別部の少なくとも一方は、ソフトウェアの切り替わり毎に前記観測周期値に基づいて観測周期を変更して、動作の忙閑を識別する
請求項１１に記載の情報処理装置。
【請求項１３】
プロセッサの動作に必要な動作クロックを前記プロセッサへ供給する可変処理クロック発生ステップと、
前記プロセッサのメモリへのアクセス調停を行なうバスインターフェースの動作に必要な動作クロックを前記バスインターフェースへ供給する可変バスクロック発生ステップと、
前記プロセッサの動作の忙閑を識別する処理忙閑状態識別ステップと、
前記バスインターフェースの動作の忙閑を識別するバス忙閑状態識別ステップと、
前記プロセッサ及び前記バスインターフェースの各々の忙閑に応じて前記プロセッサ及び前記バスインターフェースを最適に動作させる為の複数のクロック制御情報が記載されているクロック調整ルールの中の、前記処理忙閑状態識別ステップ及び前記バス忙閑状態識別ステップにおいて得られた結果を示す処理忙閑情報及びバス忙閑情報に対応するクロック制御情報を出力するクロック調節ステップとを含み、
前記可変処理クロック発生ステップ及び前記可変バスクロック発生ステップでは、前記クロック調節ステップにおいて出力されたクロック制御情報に従って動作クロックを発生する
クロック制御方法。
【請求項１４】
プロセッサのメモリへのアクセス調停を行なうバスインターフェースと、
前記プロセッサの動作に必要な動作クロックを前記プロセッサへ供給する可変処理クロック発生器と、
前記バスインターフェースの動作に必要な動作クロックを前記バスインターフェースへ供給する可変バスクロック発生器と、
前記プロセッサの動作の忙閑を識別する処理忙閑状態識別部と、
前記バスインターフェースの動作の忙閑を識別するバス忙閑状態識別部と、
前記プロセッサ及び前記バスインターフェースの各々の忙閑に応じて前記プロセッサ及び前記バスインターフェースを最適に動作させる為の複数のクロック制御情報が記載されているクロック調整ルールが格納されているルール格納部と、
前記クロック調整ルールの中の、前記処理忙閑状態識別部及び前記バス忙閑状態識別部によって得られた結果を示す処理忙閑情報及びバス忙閑情報に対応するクロック制御情報を、前記可変処理クロック発生部及び前記可変バスクロック発生部に出力するクロック調節部とを備え、
前記可変処理クロック発生部及び前記可変バスクロック発生部は、前記クロック調節部からのクロック制御情報に従って動作クロックを発生する
集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理負荷の変化に伴いプロセッサ及びバスインターフェースに最適な周波数のクロックを供給する情報処理装置に関する。
【背景技術】
【０００２】
従来、プロセッサの動作周波数の変更が、該プロセッサにて動作するソフトウェア処理内に、処理負荷を判断する為の何らかの処理を付加することにより実現されている技術がある（例えば、特許文献１参照）。また、プロセッサの動作クロック周波数の変更が該プロセッサにて動作するソフトウェアの構成単位毎に行なわれる技術がある（例えば、特許文献２参照）。
【特許文献１】特開２００２−２７８６４３号公報
【特許文献２】特開２００２−４１１７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来技術ではソフトウェアの構成単位（以下、「処理単位」と表する）毎に、プロセッサの動作周波数の設定が行なわれている。しかしながら、ビットレートの変化によって処理負荷が変化するＭＰＥＧ復号処理のような、処理単位における処理の条件が都度変化し、その度に処理負荷が変わるような場合や、単一処理単位内において時系列で処理負荷が変わる場合、細やかな動作周波数設定を行なうことは不可能である。
【０００４】
また、処理単位内に処理条件が変更されることをプロセッサに通知する処理を埋め込み、その処理が実行される度にプロセッサの動作クロック周波数や外部バス動作クロック周波数などの動作条件を変更する従来技術では、プロセッサを含むハードウェア構成が変更される度に既存のソフトウェアに対して修正が必要になるという課題を有している。
【０００５】
本発明は、ソフトウェアの構成を変更することなく、プロセッサ及びバスの動作クロック周波数などの動作状態を処理単位に関わらずに最適に制御することにより、情報処理装置の省電力化又は高性能化を実現することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の情報処理装置は、プロセッサと、メモリと、前記プロセッサの前記メモリへのアクセス調停を行なうバスインターフェースと、前記プロセッサの動作に必要な動作クロックを前記プロセッサへ供給する可変処理クロック発生器と、前記バスインターフェースの動作に必要な動作クロックを前記バスインターフェースへ供給する可変バスクロック発生器と、前記プロセッサの動作の忙閑を識別する処理忙閑状態識別部と、前記バスインターフェースの動作の忙閑を識別するバス忙閑状態識別部と、前記プロセッサ及び前記バスインターフェースの各々の忙閑に応じて前記プロセッサ及び前記バスインターフェースを最適に動作させる為の複数のクロック制御情報が記載されているクロック調整ルールが格納されているルール格納部と、前記クロック調整ルールの中の、前記処理忙閑状態識別部及び前記バス忙閑状態識別部によって得られた結果を示す処理忙閑情報及びバス忙閑情報に対応するクロック制御情報を、前記可変処理クロック発生部及び前記可変バスクロック発生部に出力するクロック調節部とを備え、前記可変処理クロック発生部及び前記可変バスクロック発生部は、前記クロック調節部からのクロック制御情報に従って動作クロックを発生する。
【０００７】
この構成により、ソフトウェア処理単位に拘らずにプロセッサ及びバスインターフェースの忙閑状態よりプロセッサ上の処理負荷を判断し、処理に対してバスアクセスが少ない場合はバスインターフェースの動作クロック周波数を下げ、処理に対してバスアクセスが多い場合はプロセッサ動作クロック周波数を下げるなどの振舞いが可能になる。
【０００８】
すなわち、プロセッサ及びバスインターフェースを必要最低限の動作周波数で動作させることができ、情報処理装置の高性能化と省電力化とが実現される。
【０００９】
本発明は、本発明の情報処理装置の特徴的な構成手段をステップとするクロック制御方法として実現したり、上記特徴的な構成手段を含む集積回路として実現することもできる。
【発明の効果】
【００１０】
本発明によれば、実動作時のプロセッサ及びバスの忙閑状態を元に処理負荷を判断してプロセッサ及びバスの動作クロック周波数を調節する事が可能となり、ソフトウェアの構成に関わらずに処理負荷に対応したより精密な動作状態制御が可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明の実施の形態を説明する。
【００１２】
尚、各図は、本発明が理解出来る程度に各構成成分を概略的に示してあるに過ぎず、従って、本発明を図示例に限定するものではない。
【００１３】
（第一の実施形態）
図１は、本発明の第一の実施形態における情報処理装置の構成及び使用形態の説明図である。
【００１４】
図１において、クロック制御部１０は、クロック調節部１０２と、クロック調節ルール１０１を保持するルール格納部１０９とを有する。プロセッサ２０は、情報処理装置において主となる演算処理機能を有する部位であり、メモリバスインターフェース３０は、プロセッサ２０から、情報の読み書きが可能であってメモリバス４０に接続されたメモリ５０へのアクセス調停を行なう部位である。クロック調節ルール１０１は、処理忙閑状態識別部１０３からの処理忙閑状態情報１１１と、バス忙閑状態識別部１０４からのバス忙閑状態情報１１２とに基づき、プロセッサ２０及びメモリバスインターフェース３０を最適に動作させるための動作クロック周波数を制御するための規則である。クロック調節部１０２は、プロセッサ２０及びメモリバスインターフェース３０の忙閑状態の情報を入力とし、その忙閑状態に応じて、プロセッサ２０及びメモリバスインターフェース３０の各々へ供給されるクロックの変更指示を出力する。処理忙閑状態識別部１０３は、プロセッサ２０の忙閑状態を識別し、その結果をクロック調節部１０２へ出力する機能を有する装置であり、バス忙閑状態識別部１０４は、メモリバスインターフェース３０の忙閑状態を識別し、その結果をクロック調節部１０２へ出力する機能を有する装置である。
【００１５】
可変処理クロック発生器１０５は、プロセッサ２０へ供給する動作クロック周波数を決定する制御信号である処理クロック制御情報１１３に基づいた周波数の動作クロックをプロセッサ２０へ供給する制御装置である。可変バスクロック発生器１０６は、メモリバスインターフェース３０へ供給する動作クロック周波数を決定する制御信号であるバスクロック制御情報１１４に基づいた周波数の動作クロックをメモリバスインターフェース３０へ供給する制御装置である。
【００１６】
処理忙閑状態情報１１１はプロセッサ２０の動作に必要十分なクロックの周波数を判断するために必要なプロセッサ２０の忙閑状態を観測した結果を示す信号である。バス忙閑状態情報１１２はメモリバスインターフェース３０の動作に必要十分なクロックの周波数を判断するために必要なメモリバスインターフェース３０の忙閑状態を観測した結果を示す信号である。処理クロック制御情報１１３は、クロック調節部１０２から可変処理クロック発生器１０５へ通知される、プロセッサ供給クロック１１５の変更を制御するための処理クロック制御信号である。バスクロック制御情報１１４は、クロック調節部１０２から可変バスクロック発生器１０６へ通知される、バス供給クロック１１６の変更を制御するためのバスクロック制御信号である。プロセッサ供給クロック１１５は可変処理クロック発生器１０５よりプロセッサ２０に供給される動作クロックであり、バス供給クロック１１６は可変バスクロック発生器１０６よりメモリバスインターフェース３０に供給される動作クロックである。
【００１７】
以上のように構成された本実施形態の情報処理装置の動作を以下に説明する。
【００１８】
処理忙閑状態識別部１０３は、プロセッサ２０の忙閑状態を観測し、観測結果である処理忙閑状態情報１１１をクロック調節部１０２に対して出力する。処理忙閑状態識別部１０３は、例えばプロセッサ２０が有する内部レジスタの単位時間当たりの使用回数を計数し、予め保持している基準値と比較することによりプロセッサ２０の処理の忙閑を識別する。処理忙閑状態情報１１１は、処理忙閑状態識別部１０３より出力されるプロセッサ２０の処理の忙閑の度合いを二値又は多値で表す情報である。
【００１９】
バス忙閑状態識別部１０４は、メモリバスインターフェース３０の忙閑状態を観測し、観測結果であるバス忙閑状態情報１１２をクロック調節部１０２に対して出力する。バス忙閑状態識別部１０４は、例えばメモリバスインターフェース３０とメモリ５０との間で通信される単位時間当たりのデータの量を計測し、予め保持している基準値と比較することによりメモリバスインターフェース３０の処理の忙閑を識別する。バス忙閑状態情報１１２は、バス忙閑状態識別部１０４より出力されるメモリバスインターフェース３０の処理の忙閑の度合いを二値又は多値で表す情報である。
【００２０】
クロック調節部１０２は、処理忙閑状態情報１１１、バス忙閑状態情報１１２及びクロック調節ルール１０１に基づいて、可変処理クロック発生器１０５に対して動作クロックの発生を指示する処理クロック制御情報１１３を出力するとともに、可変バスクロック発生器１０６に対して動作クロックの発生を指示するバスクロック制御情報１１４を出力する。
【００２１】
図２にクロック調節ルール１０１の一例を示す。本例では、処理忙閑状態情報１１１及びバス忙閑状態情報１１２により示される忙閑の度合いは、高中低の三値で例示されている。プロセッサ忙閑度合い２０１は処理忙閑状態情報１１１により示されるプロセッサ２０の忙閑の度合いであり、バス忙閑度合い２０２はバス忙閑状態情報１１２により示されるメモリバスインターフェース３０の忙閑の度合いである。処理クロック制御情報出力２０３は、クロック調節部１０２から可変処理クロック発生器１０５へ出力される処理クロック制御情報１１３の内容である。バスクロック制御情報出力２０４は、クロック調節部１０２から可変バスクロック発生器１０６へ出力されるバスクロック制御情報１１４の内容である。
【００２２】
クロック調節ルール１０１は、処理忙閑状態情報１１１及びバス忙閑状態情報１１２により示されるプロセッサ忙閑度合い２０１及びバス忙閑度合い２０２と、処理クロック制御情報出力２０３及びバスクロック制御情報出力２０４との対応関係を示す情報である。
【００２３】
可変処理クロック発生器１０５は、クロック調節部１０２からの処理クロック制御情報１１３に基づき、プロセッサ２０の動作に必要なプロセッサ供給クロック１１５の周波数を調節する。例えば、可変処理クロック発生器１０５は、元の発振周波数に対して処理クロック制御情報１１３に基づいた乗数を乗じる周波数逓倍回路である。
【００２４】
可変バスクロック発生器１０６は、クロック調節部１０２からのバスクロック制御情報１１４に基づき、メモリバスインターフェース３０の動作に必要なバス供給クロック１１６の周波数を調節する。例えば、可変バスクロック発生器１０６は、元の発振周波数に対してバスクロック制御情報１１４に基づいた乗数を乗じる周波数逓倍回路である。
【００２５】
以上の動作により、プロセッサ２０にて実行されるソフトウェアの処理単位にかかわらずに、プロセッサ２０及びメモリバスインターフェース３０の動作状態の最適な制御が実現される。
【００２６】
尚、処理忙閑状態識別部１０３は、プロセッサ２０が有するメモリキャッシュへのアクセス頻度に基づいてプロセッサ２０の忙閑状態を識別しても良い。プロセッサ２０が有するキャッシュへのアクセス頻度が高いという事は、プロセッサ２０の処理量も多い。また、プロセッサ２０が有するキャッシュがライトバックキャッシュである場合、キャッシュへのアクセス頻度とメモリ５０へのアクセス頻度とが一致しているとは限らないことは周知である。
【００２７】
上記構成では、処理忙閑状態識別部１０３は、プロセッサ２０内のキャッシュへのアクセス頻度を観測することでプロセッサ２０の忙閑状態を得ることが可能である。バス忙閑状態識別部１０４は、キャッシュからメモリ５０へのデータ転送の頻度を観測することでプロセッサ２０内のキャッシュが使用するメモリバスインターフェース３０の忙閑状態を得ることが可能である。
【００２８】
従って、クロック調節部１０２は、処理忙閑状態識別部１０３からのキャッシュへのアクセス頻度を含む処理忙閑状態情報１１１と、バス忙閑状態識別部１０４からのキャッシュからメモリ５０へのデータ転送の頻度を含むバス忙閑状態情報１１２とを入力とし、クロック調節ルール１０１を用いることにより、プロセッサ２０及びメモリバスインターフェース３０の各々に対して最適なクロックが供給されるように制御値を導出することが可能となる。
【００２９】
本構成とすることで、プロセッサ内蔵レジスタの使用頻度を計測する場合に比べて、より単純な構成でプロセッサ２０及びメモリバスインターフェース３０に対し、最適な周波数のクロックを供給することができるという効果を得ることが可能となる。
【００３０】
また、上記の構成では、処理忙閑状態識別部１０３は、プロセッサ２０が有するアキュムレータのアクセス頻度を観測して、プロセッサ２０の忙閑状態を識別しても良い。プロセッサ２０の計算量が多い場合、プロセッサ２０内のアキュムレータの使用頻度も高いことは周知である。プロセッサ２０が有するアキュムレータのアクセス頻度を観測する場合、一般的に複数個存在するプロセッサ内蔵レジスタの使用頻度を計測する場合に比べて、より単純な構成でプロセッサ２０及びメモリバスインターフェース３０に対し、最適な周波数のクロックを供給することができるという効果を得ることが可能となる。
【００３１】
更に、上記では、プロセッサ２０の構成について述べているが、プロセッサ２０の構成は上記の内容に限定されるものではない。
【００３２】
メモリバスインターフェース３０からメモリ５０へのアクセス時には、ストローブ信号が出力される事は周知である。そのためメモリバスインターフェース３０が発するストローブ信号の単位時間当たりの発生回数を測定し、ストローブ信号の発生比率が低い場合は、メモリ５０へのアクセスが少なく、ストローブ信号の発生比率が高い場合は、メモリ５０へのアクセスが多いと判別出来る事を用いて、バス忙閑状態識別部１０４はメモリバスインターフェース３０の忙閑状態を識別しても良い。本構成とすることで、メモリバス４０を流れるデータの流量を計測する場合に比べて、より単純な構成でプロセッサ２０及びメモリバスインターフェース３０に対し、最適な周波数のクロックを供給することができるという効果を得ることが可能となる。
【００３３】
また、上記の構成において、クロック調節部１０２の処理をプロセッサ２０で実行されるソフトウェアにて実現しても良い。クロック調節部１０２の動作は一般的なプロセッサにおけるソフトウェア処理としてプログラムに記述することが可能である。クロック調節部１０２の処理をプロセッサ２０で実行されるソフトウェアにて実現する場合、クロック調節部１０２をプロセッサ２０の外部に配する場合に比べて、より平易な構成で、クロック調節部１０２をプロセッサ２０の外部に配する場合に得られる効果と同等の効果を得ることが可能となる。
【００３４】
また、上記の構成において、クロック調節ルール１０１は、メモリ５０内に、プロセッサ２０内に、又はその他の情報の読み書きが可能なメモリに記録されても良い。プロセッサ２０にて実行されるソフトウェアの処理構成が変更された際に、クロック調節ルール１０１もあわせて変更することにより、より精密なプロセッサ２０及びメモリバスインターフェース３０の動作状態制御が可能となる。
【００３５】
図１の構成において、プロセッサ２０及びメモリバスインターフェース３０の忙閑状態の観測を開始する際のプロセッサ２０におけるソフトウェアの実行位置と、観測結果から算出した可変処理クロック発生器１０５及び可変バスクロック発生器１０６に発したクロック制御情報とを記憶し、記憶したクロック制御情報を元にクロック制御値を設定することで観測周期分待たずにクロック調節が可能となる。
【００３６】
尚以下では、「プロセッサ２０及びメモリバスインターフェース３０の忙閑状態」を「処理及びバスの忙閑状態」ともいう。
【００３７】
（第二の実施形態）
以下に図３〜図７を参照して第二の実施形態を説明する。
【００３８】
クロック調節記憶部３０２は、処理及びバスの忙閑状態の観測を開始する際のプロセッサ２０におけるソフトウェアの実行位置と、観測の結果から算出されて可変処理クロック発生器１０５及び可変バスクロック発生器１０６に発せられたクロック制御情報とを含むクロック制御情報３０３を記憶する。ソフトウェア実行位置比較部４０１は、現在のソフトウェアの実行位置と前述の記憶されたソフトウェアの実行位置とを比較し、両者が一致した際にクロック調節部１０２に対して実行位置一致信号４１２を発する。クロック調節部１０２は、実行位置一致信号４１２を契機に、処理クロック制御情報１１３を可変処理クロック発生器１０５に通知するとともに、バスクロック制御情報１１４を可変バスクロック発生器１０６に通知する機能を有する装置である。
【００３９】
現在のソフトウェアの実行位置３１１はプログラムカウンタ３０１を参照することで得ることができる。クロック制御情報３１２は、クロック調節部１０２から出力された処理及びバスの忙閑状態の観測を開始する際のプロセッサ２０におけるソフトウェアの実行位置と、観測の結果から算出されて可変処理クロック発生器１０５及び可変バスクロック発生器１０６に発せられたクロック制御情報１１３、１１４とを含む情報である。クロック制御情報３１２は、ソフトウェアの先頭実行位置や、観測時の処理及びバスの忙閑状態を含んでも良い。実行位置一致信号４１２は、現在のソフトウェアの実行位置と前述の記憶されたソフトウェアの実行位置とが一致した際に、クロック調節部１０２に対してソフトウェア実行位置比較部４０１が発する信号である。
【００４０】
以上のように構成された本実施形態の情報処理装置の動作を以下に説明する。
【００４１】
クロック調節部１０２は、処理忙閑状態識別部１０３からの処理忙閑状態情報１１１と、バス忙閑状態識別部１０４からのバス忙閑状態情報１１２と、クロック調節ルール１０１とに基づいて、クロック制御情報１１３、１１４を算出する（Ｓ４０１）。そして、クロック調節部１０２は、処理及びバスの忙閑状態の観測を開始する際のプロセッサ２０におけるソフトウェアの実行位置と、観測の結果から算出されて可変処理クロック発生器１０５及び可変バスクロック発生器１０６に発せられたクロック制御情報１１３、１１４とを含むクロック制御情報３１２をクロック調節記憶部３０２に対して出力する（Ｓ４０２）。クロック調節記憶部３０２はクロック調節部１０２からのクロック制御情報３１２を元にクロック制御情報３０３を生成し記憶する（Ｓ４０３）。
【００４２】
ソフトウェア実行位置比較部４０１は、現在のソフトウェアの実行位置と前述の記憶されたソフトウェアの実行位置とを比較し（Ｓ５０１）、両者が一致した際にクロック調節部１０２に対して実行位置一致信号４１２を発する（Ｓ５０２）。
【００４３】
クロック調節部１０２は、実行位置一致信号４１２の有無を判断し（Ｓ６０１）、実行位置一致信号４１２が発生された場合（Ｓ６０１でＹｅｓ）、前述の記憶されたクロック制御情報１１３、１１４を可変処理クロック発生器１０５及び可変バスクロック発生器１０６に通知する（Ｓ６０２）。
【００４４】
また、クロック調節部１０２は、現在の処理及びバスの忙閑状態が記憶されている処理及びバスの忙閑状態と異なる場合（Ｓ６０３でＮｏ）、新たに観測された結果から得られた処理忙閑状態情報１１１及びバス忙閑状態情報１１２とクロック調節ルール１０１とからクロック制御値を算出し、可変処理クロック発生器１０５及び可変バスクロック発生器１０６それぞれに通知する（Ｓ６０４）。
【００４５】
図７に記憶されたクロック制御情報３０３の一例を示す。本例は、プロセッサ２０におけるソフトウェアの実行位置の先頭５０１と、クロック変更時のソフトウェア実行位置５０２と、クロック変更時の処理忙閑状態５０３及びバス忙閑状態５０４と、クロック変更時の処理クロック制御値５０５及びバスクロック制御値５０６とを示している。本例は、クロック変更時の処理忙閑状態５０３及びバス忙閑状態５０４の度合いを高中低の三値で示し、クロック変更時の処理クロック制御値５０５及びバスクロック制御値５０６をＸＹＺの三値で例示している。記憶されたクロック制御情報３０３は、クロック切替時のソフトウェア実行位置５０２における処理忙閑状態５０３及びバス忙閑状態５０４と、処理クロック制御値５０５及びバスクロック制御値５０６との対応関係を示す情報である。また、ソフトウェアの実行位置の先頭５０１を付加することにより、ソフトウェアの実行位置と前述の記憶されたソフトウェアの実行位置を比較する処理の削減が可能となる。
【００４６】
以上の動作により、前回実行時と忙閑状態観測結果が同じ場合は、観測周期分遅延することなくクロック制御が可能となる。また、前回実行時と忙閑状態観測結果が異なる場合、新たに算出したクロック制御値でクロックを調節する。そのため、実動作時のプロセッサ２０及びメモリバスインターフェース３０の繁忙状態を元に処理負荷を判断してプロセッサ周波数を調節する事が可能となり、ソフトウェアの構成に関わらずにプロセッサ２０及びメモリバスインターフェース３０の処理負荷に対応した省電力制御が可能となる。
【００４７】
図１の構成において、ソフトウェアの割り込み処理の発生をクロック調節部１０２へ通知することで、割り込み処理を遅らせることなく、実動作時のプロセッサ２０及びメモリバスインターフェース３０の繁忙状態を元に処理負荷を判断してプロセッサ２０の周波数を調節する事が可能となり、ソフトウェアの構成に関わらずにプロセッサ２０及びメモリバスインターフェース３０の処理負荷に対応した省電力制御が可能となる。
【００４８】
（第三の実施形態）
以下に図８〜図１３を参照して第三の実施形態を説明する。
【００４９】
割り込み検出部９０１はソフトウェア割り込みの発生を検知する。また、割り込み検出部９０１は、ＯＳの割り込み処理部やプロセッサのｒｔｉ命令などから処理完了を検出すると、クロック調節部１０２へ割り込み処理完了を通知する機能を有する装置である。クロック調節部１０２は、割り込み処理の発生を検出する割り込み検出部９０１から割り込み発生の信号を受けると、クロック調節ルール１０１を特定のクロック調節ルール１０１ａに切り替えてクロック制御情報を発する機能を有する装置である。
【００５０】
割り込み情報９１１は、ソフトウェア割り込み処理の発生が検知された場合、クロック調節部１０２へ通知される、発生した割り込みの種類を示す情報である。また、割り込み情報９１１は、ソフトウェア割り込み処理完了が検知された場合、クロック調節部１０２へ通知される、終了した割り込みの種類を示す情報である。
【００５１】
以上のように構成された本実施形態の情報処理装置の動作を以下に説明する。
【００５２】
割り込み検出部９０１はソフトウェア割り込み処理の発生を検知する（Ｓ９０１）と、割り込み情報９１１をクロック調節部１０２へ通知する（Ｓ９０２）。クロック調節部１０２は割り込み処理が発生しているか否かを判定し（Ｓ１００１）、割り込み処理が発生していた場合（Ｓ１００１でＹｅｓ）、割り込み情報９１１を元にクロック調節ルール１０１を特定のクロック調節ルール１０１ａに変更する。クロック調節部１０２は、特定のクロック調節ルール１０１ａと処理及びバスの忙閑状態とからクロック制御値を決定して（Ｓ１００２）、可変処理クロック発生器１０５と可変バスクロック発生器１０６とにクロック制御情報１１３、１１４それぞれを通知する（Ｓ１００４）。割り込み処理が発生していなかった場合（Ｓ１００１でＮｏ）、クロック調節部１０２は通常のクロック調節ルール１０１と処理及びバスの忙閑状態とからクロック制御値を決定して（Ｓ１００３）、可変処理クロック発生器１０５と可変バスクロック発生器１０６とにクロック制御情報１１３、１１４それぞれを通知する（Ｓ１００４）。
【００５３】
特定のクロック調節ルール１０１ａは割り込みの種類毎に定義することも可能である。割り込みの種類毎に特定のクロック調節ルール１０１ａを定義することで、必要以上の電力消費を防ぐことができる。
【００５４】
図１１に特定のクロック調節ルール１０１ａの一例を示す。本例は図２のクロック調節ルール１０１の例において、プロセッサ忙閑度合い２０１又はバス忙閑度合い２０２の値が中又は低である場合に、処理クロック制御情報出力２０３及びバスクロック制御情報出力２０４の値を「クロック周波数を上げる」設定に変更したものである。
【００５５】
以上の動作により、割り込み処理を遅らせることなく、実動作時のプロセッサ２０及びメモリバスインターフェース３０の繁忙状態を元に処理負荷を判断してプロセッサ２０の周波数を調節する事が可能となり、ソフトウェアの構成に関わらずにプロセッサ２０及びメモリバスインターフェース３０の処理負荷に対応した省電力制御が可能となる。
【００５６】
また、割り込み処理完了をクロック調節部１０２へ通知することで割り込み処理のみ特定のクロック調節を実施することが可能となる。
【００５７】
割り込み検出部９０１は、割り込み処理完了を検出する（Ｓ１２０１でＹｅｓ）と、クロック調節部１０２へ割り込み情報９１１を通知する（Ｓ１２０２）。クロック調節部１０２は、割り込み処理が完了したか否かを判定し（Ｓ１３０３）、割り込み処理が完了していて、割り込み検出部９０１から割り込み処理完了を示す割り込み情報９１１を得ると（Ｓ１３０３でＹｅｓ）、特定のクロック調節ルール１０１ａを通常のクロック調節ルール１０１に変更する。クロック調節部１０２は、通常のクロック調節ルール１０１と処理及びバスの忙閑状態とからクロック制御値を決定して（Ｓ１３０４）、可変処理クロック発生器１０５と可変バスクロック発生器１０６とにクロック制御情報１１３、１１４それぞれを通知する（Ｓ１３０５）。
【００５８】
以上の動作により、ソフトウェア割り込み処理が発生した場合、割り込み処理のみ特定のクロック制御値に設定することが可能となり、割り込み処理を遅らせることなく、実動作時のプロセッサ２０及びメモリバスインターフェース３０の繁忙状態を元に処理負荷を判断してプロセッサ２０の周波数を調節する事が可能となり、ソフトウェアの構成に関わらずにプロセッサ２０及びメモリバスインターフェース３０の処理負荷に対応した省電力制御が可能となる。
【００５９】
図１の構成において、ソフトウェア切替情報とクロック調節ルールとに対してソフトウェア毎に優先度を設定することで優先度に応じたクロック制御が可能となり、一定時間内に処理を完了しなければならないソフトウェアがあった場合、動作保証することができる。
【００６０】
（第四の実施形態）
以下に図１４〜図１６を参照して第四の実施形態を説明する。
【００６１】
ソフトウェアモジュール切替検出部１３０１は、プロセッサ２０上で動作するソフトウェア単位の切り替わりを検出し、検出した識別情報１３１１をクロック調節部１０２に通知する。また、ソフトウェアモジュール切替検出部１３０１は、クロック調節ルール１０１に対してソフトウェア毎に優先度を設定した優先度付きクロック調節ルールを定義する。クロック調節部１０２は、ソフトウェア識別情報１３１１から次に実行するソフトウェアに対応した優先度付きクロック調節ルールと、処理及びバスの忙閑状態とからクロック制御値を決定する機能を有する装置である。
【００６２】
ソフトウェア識別情報１３１１は、プロセッサ２０上で動作するソフトウェアの切り替わり時刻（切り替ったタイミング）と、次に実行されるソフトウェア単位とを示す情報である。
【００６３】
以上のように構成された本実施形態の情報処理装置の動作を以下に説明する。
【００６４】
ソフトウェアモジュール切替検出部１３０１は、ＯＳのスケジューラからプロセッサ２０上で動作するソフトウェア単位の切り替わりを検出し（Ｓ１５０１でＹｅｓ）、切り替わり時刻（切り替ったタイミング）と、次に実行されるソフトウェア単位とを示す識別情報１３１１をクロック調節部１０２に通知する（Ｓ１５０２）。また、ソフトウェアモジュール切替検出部１３０１は、クロック調節ルール１０１に対してソフトウェア毎に優先度を設定した優先度付きクロック調節ルールを定義する（Ｓ１５０２）。クロック調節部１０２は、ソフトウェア識別情報１３１１から次に実行するソフトウェアに対応したクロック調節ルールを検索し（Ｓ１５０３）、優先度付きクロック調節ルールに記載されているソフトウェアがソフトウェア識別情報１３１１が示すソフトウェアと一致する場合（Ｓ１５０３でＹｅｓ）、優先度付きクロック調節ルールと処理及びバスの忙閑状態とからクロック制御値を決定して（Ｓ１５０４）、可変処理クロック発生器１０５と可変バスクロック発生器１０６とにクロック制御情報１１３、１１４それぞれを通知する。他方、優先度付きクロック調節ルールに記載されているソフトウェアがソフトウェア識別情報１３１１が示すソフトウェアと一致しない場合（Ｓ１５０３でＮｏ）、通常のクロック調節ルールと処理及びバスの忙閑状態とからクロック制御値を決定して（Ｓ１５０５）、可変処理クロック発生器１０５と可変バスクロック発生器１０６とにクロック制御情報１１３、１１４それぞれを通知する。
【００６５】
ソフトウェアモジュール切替検出部１３０１から通知されたソフトウェアが優先度付きクロック調節ルールになければ、通常のクロック調節ルールを適応する機能を設けることで、優先度付きクロック調節ルールを格納するためのメモリ削減が可能となる。
【００６６】
上記構成は多重割り込みなどが発生した場合、割り込みの優先度に応じたクロック調節が可能となる。例えば優先度の高い割り込み処理の場合、クロックを高く設定することで高速に処理することができる。
【００６７】
図１６に優先度付きクロック調節ルールの一例を示す。本例は、ソフトウェア又は処理名１４０１をＡ，Ｂの二値で定義し、ソフトウェア又は処理の優先度１４０２を中高の二値で定義し、ソフトウェア毎のプロセッサ忙閑度合い２０１及びバス忙閑度合い２０２と、処理クロック制御情報出力２０３及びバスクロック制御情報出力２０４との対応関係を示す情報である。
【００６８】
以上の動作により、ソフトウェア切替情報とクロック調節ルールに対してソフトウェア毎に優先度を設定することとで優先度に応じたクロック制御が可能となり、一定時間内に処理を完了しなければならないソフトウェアがあった場合、動作保証することができる。
【００６９】
図１４の構成において、クロック調節は処理及びバスの忙閑状態観測周期が短い程、滑らかに行なうことができる。しかし忙閑状態観測周期を短くすると、観測回路を高速で動作させないといけないため、忙閑状態観測のために電力消費が必要となってしまう。よって、ソフトウェアの特性に合った観測周期を設けることで、滑らかなクロック制御が可能となる。
【００７０】
（第五の実施形態）
以下に図１７〜図１９を参照して第五の実施形態を説明する。
【００７１】
ソフトウェアモジュール毎の観測周期ルール１６０１はプロセッサ２０上で動作するソフトウェア単位毎の処理観測周期値及びバス観測周期値を定義している。処理忙閑状態識別部１０３若しくはバス忙閑状態識別部１０４、又はその両方はソフトウェアの切り替わり毎に前述の観測周期を変更して観測する機能を有する装置である。
【００７２】
以上のように構成された本実施形態の情報処理装置の動作を以下に説明する。
【００７３】
ソフトウェアモジュール毎の観測周期ルール１６０１はプロセッサ２０上で動作するソフトウェア単位毎の処理観測周期値及びバス観測周期値を定義している。ソフトウェアモジュール切替検出部１３０１は、ＯＳのスケジューラからソフトウェアの切替が発生したか否かを判断し（Ｓ１８０１）、ソフトウェアの切替が発生した場合（Ｓ１８０１でＹｅｓ）、ソフトウェア識別情報１３１１をクロック調節部１０２へ通知する（Ｓ１８０２）。処理忙閑状態識別部１０３又はバス忙閑状態識別部１０４は、ソフトウェアモジュール切替検出部１３０１から通知されたソフトウェア識別情報１３１１が示すソフトウェアがソフトウェア毎の観測周期ルール１６０１に記載されているか否かを判断する（Ｓ１８０３）。処理忙閑状態識別部１０３又はバス忙閑状態識別部１０４は、通知されたソフトウェア識別情報１３１１が示すソフトウェアが観測周期ルール１６０１に記載されている場合（Ｓ１８０３でＹｅｓ）、観測周期ルールで定義された観測周期に従って処理やバスの忙閑状態を観測する（Ｓ１８０４）。
【００７４】
ソフトウェアモジュール切替検出部１３０１から通知されたソフトウェア識別情報１３１１が示すソフトウェアがソフトウェア毎の観測周期ルール１６０１になかった場合（Ｓ１８０３でＮｏ）、通常の観測周期で処理やバスの忙閑状態を観測する（Ｓ１８０５）。これにより、ソフトウェア毎の観測周期ルールを定義するために使用するメモリを削減することができる。
【００７５】
図１９にソフトウェア毎の処理及びバスの忙閑状態観測周期ルールの一例を示す。本例はソフトウェアの種類１９０１に対する処理及びバスの観測周期１９０２をＸＹＺの三値で例示している。処理忙閑状態観測用の観測周期ルールと、バス忙閑状態観測用の観測周期ルールとを個別に定義してもよい。
【００７６】
以上の動作により、滑らかなクロック制御を行ないながら、実動作時のプロセッサ２０及びメモリバスインターフェース３０の繁忙状態を元に処理負荷を判断してプロセッサ２０の周波数を調節する事が可能となり、ソフトウェアの構成に関わらずにプロセッサ２０及びメモリバスインターフェース３０の処理負荷に対応した電力消費が可能となる。
【産業上の利用可能性】
【００７７】
本発明の情報処理装置は、ＭＰＥＧ復号処理のような画像処理を行なう装置として有用である。
【図面の簡単な説明】
【００７８】
【図１】第一の実施形態における情報処理装置の構成図
【図２】クロック調節ルール１０１の説明図
【図３】第二の実施形態における情報処理装置の構成図
【図４】クロック制御情報記憶時のクロック制御値算出フロー説明図
【図５】ソフトウェア実行位置一致信号発生時のフロー説明図
【図６】記憶されたクロック制御情報読出し時のクロック制御値算出フロー説明図
【図７】記憶されたクロック制御情報３０３の一例を示す図
【図８】第三の実施形態における情報処理装置の構成図
【図９】割り込み発生検出時のクロック制御値算出フローの第１説明図
【図１０】割り込み発生検出時のクロック制御値算出フローの第２説明図
【図１１】特定のクロック調節ルール１０１ａの一例を示す図
【図１２】割り込み完了検出時のクロック制御値算出フローの第１説明図
【図１３】割り込み完了検出時のクロック制御値算出フローの第２説明図
【図１４】第四の実施形態における情報処理装置の構成図
【図１５】ソフトウェア切替検出時のクロック制御値算出フロー説明図
【図１６】優先度付きクロック調節ルールの一例を示す図
【図１７】第五の実施形態における情報処理装置の構成図
【図１８】ソフトウェア毎の処理及びのバス忙閑状態観測周期設定時の観測周期値算出フロー説明図
【図１９】ソフトウェア毎の処理及びバスの忙閑状態観測周期ルールの一例を示す図
【符号の説明】
【００７９】
１０  クロック制御部
２０  プロセッサ
３０  メモリバスインターフェース
４０  メモリバス
５０  メモリ
１０１  クロック調節ルール
１０２  クロック調節部
１０３  処理忙閑状態識別部
１０４  バス忙閑状態識別部
１０５  可変処理クロック発生器
１０６  可変バスクロック発生器
１１１  処理忙閑状態情報
１１２  バス忙閑状態情報
１１３  処理クロック制御情報
１１４  バスクロック制御情報
１１５  プロセッサ供給クロック
１１６  バス供給クロック
３０１  プログラムカウンタ
３０２  クロック調節記憶部
３０３  記憶されたクロック制御情報
４０１  ソフトウェア実行位置比較部
３１１  現在のソフトウェアの実行位置
３１２  クロック制御情報
４１２  ソフトウェア実行位置一致情報
９０１  割り込み検出部
９１１  割り込み情報
１３０１  ソフトウェアモジュール切替検出部
１６０１  ソフトウェアモジュール毎の観測周期ルール
１３１１  ソフトウェア識別情報
２０１  プロセッサ忙閑度合い
２０２  バス忙閑度合い
２０３  処理クロック制御情報出力
２０４  バスクロック制御情報出力
５０１  ソフトウェアの実行位置の先頭
５０２  クロック変更時のソフトウェア実行位置
５０３  計測された処理忙閑度合い
５０４  計測されたバス忙閑度合い
５０５  処理クロック制御値
５０６  バスクロック制御値
１４０１  ソフトウェア又は処理名
１４０２  ソフトウェア又は処理の優先度
１９０１  ソフトウェアの種類
１９０２  観測周期
【図１】
2007257363.tif 000003
【図２】
2007257363.tif 000004
【図３】
2007257363.tif 000005
【図４】
2007257363.tif 000006
【図５】
2007257363.tif 000007
【図６】
2007257363.tif 000008
【図７】
2007257363.tif 000009
【図８】
2007257363.tif 000010
【図９】
2007257363.tif 000011
【図１０】
2007257363.tif 000012
【図１１】
2007257363.tif 000013
【図１２】
2007257363.tif 000014
【図１３】
2007257363.tif 000015
【図１４】
2007257363.tif 000016
【図１５】
2007257363.tif 000017
【図１６】
2007257363.tif 000018
【図１７】
2007257363.tif 000019
【図１８】
2007257363.tif 000020
【図１９】
2007257363.tif 000021