(57)【要約】【課題】本発明は、実行単位ごとに処理すべきデータを格納するための記憶領域を備えたプロセッサであって、消費電力を削減することが可能なプロセッサを提供することを目的とする。【解決手段】ある実行単位が処理すべきデータを記憶する記憶手段と、この記憶手段が記憶するデータ量を検出するデータ量検出手段と、この検出結果から供給すべきクロック周波数を決定するクロック周波数決定手段と、決定したクロック周波数に従って供給するクロックを発生するクロック発生手段とを備えることを特徴とするプロセッサとする。【選択図】  図１
2004295450.tif 000002
【特許請求の範囲】
【請求項１】
あるデータ処理を少なくとも１以上に分割した処理の１つに当たる実行単位が
処理すべきデータを、該実行単位別に記憶する１以上の記憶手段と、
少なくとも１以上の前記記憶手段が記憶するデータ量を検出するデータ量検出手段と、
前記データ量検出手段の検出結果から供給すべきクロック周波数を決定するクロック周波数決定手段と、
前記クロック周波数決定手段が決定したクロック周波数に従って、供給するクロックを発生するクロック発生手段と
を備えることを特徴とするプロセッサ。
【請求項２】
前記データ量検出手段は、検出する前記記憶手段のうち予め定めた実行単位が処理すべきデータを記憶する記憶手段を対象に、データ量を検出することを特徴とするプロセッサ。
【請求項３】
ある実行単位の以降実行すべき順位を示す優先度を予め記憶する実行優先度記憶手段をさらに備え、
前記クロック周波数決定手段は、前記実行優先度記憶手段に記憶した優先度が低い順に１以上の実行単位を選択し、前記データ量検出手段の検出結果のうち該選択した実行単位が処理すべきデータを記憶する記憶手段についての検出結果を対象に、供給すべきクロック周波数を決定することを特徴とする請求項１に記載のプロセッサ。
【請求項４】
前記クロック周波数決定手段は、前記データ量検出手段の検出結果に含まれるデータ量に対し、供給すべきクロック周波数が一意に定まるテーブルをさらに備え、該テーブルを参照することにより供給すべきクロック周波数を決定することを特徴とする請求項１に記載のプロセッサ。
【請求項５】
前記クロック周波数決定手段は、前記データ量検出手段の検出結果に含まれるデータ量に対し、供給すべきクロック周波数を増減すべきクロック周波数が一意に定まるテーブルと、
最後に決定した供給すべきクロック周波数を保持するクロック周波数保持手段と、
前記テーブルから求めた増減すべきクロック周波数と前記クロック周波数保持手段が保持する最後に決定したクロック周波数との和を求める加算手段とをさらに備え、
該加算手段の出力を供給すべきクロック周波数として決定することを特徴とする請求項１に記載のプロセッサ。
【請求項６】
ある実行単位が予め想定した状態になったかどうかを検出する実行単位検出手段と、
前記状態になったことを前記実行単位検出手段が検出した場合に新たに計時を開始するタイマーと、
前記タイマーが計時する経過時間が長いほど、前記テーブルから得られた増減すべきクロック周波数の絶対値が小さくなるように該クロック周波数を変更するクロック周波数変更手段とをさらに備え、
前記加算手段は、前記クロック周波数変更手段により変更したクロック周波数を、前記最後に決定したクロック周波数との和に用いることを特徴とする請求項５に記載のプロセッサ。
【請求項７】
前記データ量検出手段が検出した検出結果に含まれるデータ量の情報のうち、複数の記憶手段のデータ量それぞれに基づいて提供すべきクロック周波数を求める場合であって、
前記クロック周波数決定手段は、それぞれのデータ量から求めた複数のクロック周波数のうちもっとも高いクロック周波数を供給すべきクロック周波数として決定することを特徴とする請求項１に記載のプロセッサ。
【請求項８】
前記クロック周波数決定手段が決定した供給するクロック周波数に従って、供給する電源電圧を制御する電源電圧制御手段をさらに備えることを特徴とする請求項１に記載のプロセッサ。
【請求項９】
あるデータ処理を少なくとも１以上に分割した処理の１つに当たる実行単位が処理すべきデータを、該実行単位別に記憶する記憶部を備えたプロセッサにおける、
少なくとも１以上の前記記憶部に記憶するデータ量を検出するステップと、
前記検出の結果から供給すべきクロック周波数を決定するステップと、
前記決定したクロック周波数に従って、供給するクロックを発生するステップと
を有することを特徴とする、該プロセッサに供給するクロックのクロック周波数を決定する方法。
【請求項１０】
あるデータ処理を少なくとも１以上に分割した処理の１つに当たる実行単位が処理すべきデータを、該実行単位別に記憶する記憶部を備えたプロセッサにおける、
少なくとも１以上の前記記憶部に記憶するデータ量を検出するステップと、
前記検出の結果から供給すべきクロック周波数を決定するステップと、
前記決定したクロック周波数に従って、供給する電源電圧を制御するステップと
を有することを特徴とする、該プロセッサに供給する電源電圧を決定する方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理を行うプロセッサの消費する電力を削減することができるプロセッサ、クロック決定方法及び駆動電圧決定方法に関する。特に、実行単位ごとに処理すべきデータを格納するための記憶領域を備えたプロセッサに関する。
【０００２】
【従来の技術】
データ処理を行う通常のプロセッサでは、データ処理を行うためにプロセッサに設けられた各部の処理の同期を取るための基準となるクロックが必要となる。プロセッサ内の各部の同期を取るための基準となるクロック周波数が、より高いものを用いると、プロセッサ全体の処理速度が向上し単位時間あたりの処理量が増加する（スループットの向上）。
【０００３】
しかしながらクロックが高くなるとプロセッサの内部配線等を流れる信号がその速度に追従できなくなるため、プロセッサに供給する電圧を上げなければならなくなる。このようなある電圧に対する流れる信号の速度に上限があるのは、プロセッサ内部の浮遊容量や電気抵抗によるものである。半導体により構成するプロセッサの構造からして、これらの弊害を完全に排除することは困難である。
【０００４】
プロセッサの駆動電圧の増加は、プロセッサ内で消費する電力量を増加させる。これは電力消費量の増加のみならず、プロセッサ自身の発熱量をも増加させ、ひいてはプロセッサの集積度にも影響を与えかねない。
【０００５】
上記した理由から、プロセッサ自身の消費電力を低く抑えるには動作時のクロック周波数を低く抑えることが重要である。
【０００６】
電力消費を抑えるため、プロセッサを管理するオペレーティングシステムが優先順位の低い実行単位に低いクロックを選択する方法（たとえば特許文献１）や、処理時間に余裕のある場合にはクロックの供給を止める方法（たとえば特許文献２）といった方法も提案されている。
【０００７】
【特許文献１】
特開２００１−２０２１５５公報
【特許文献２】
特開２００２−３５８１３９公報
【０００８】
【発明が解決しようとする課題】
通常のデータ処理用のプロセッサでは、駆動用のクロック周波数が高いほど処理効率が向上する。しかしながら結果としてプロセッサの消費電力が増加し、発熱量も増加してしまう。
【０００９】
本発明は上記問題を緩和することを目的とし、特に実行単位ごとに処理すべきデータを格納するための記憶領域を備えたプロセッサの消費する電力を削減するプロセッサ、このプロセッサのクロック決定方法及び駆動電圧決定方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明のプロセッサによれば、
あるデータ処理を少なくとも１以上に分割した処理の１つに当たる実行単位が処理すべきデータを、該実行単位別に記憶する１以上の記憶手段と、少なくとも１以上の前記記憶手段が記憶するデータ量を検出するデータ量検出手段と、前記データ量検出手段の検出結果から供給すべきクロック周波数を決定するクロック周波数決定手段と、前記クロック周波数決定手段が決定したクロック周波数に従って、供給するクロックを発生するクロック発生手段とを備えることを特徴とするプロセッサが提供される。
【００１１】
また、あるデータ処理を少なくとも１以上に分割した処理の１つに当たる実行単位が処理すべきデータを、該実行単位別に記憶する記憶部を備えたプロセッサにおける、少なくとも１以上の前記記憶部に記憶するデータ量を検出するステップと、前記検出の結果から供給すべきクロック周波数を決定するステップと、前記決定したクロック周波数に従って、供給するクロックを発生するステップとを有することを特徴とする、該プロセッサに供給するクロックのクロック周波数を決定する方法が提供される。
【００１２】
さらに、上記クロック周波数を決定する方法によって得られたクロック周波数に従って供給する電源電圧を決定する方法が提供される。
【００１３】
【発明の実施の形態】
以下に本発明の実施形態について図面を用いながら説明する。
【００１４】
（第１の実施形態）
図１に本実施形態にかかるプロセッサのブロック構成図の一例を示す。図１には、処理すべきデータを１つの処理内容を細分化した実行単位ごとに記憶する記憶部１０１、演算処理部１０２、外部記憶部１０３、データ量監視部１０４、実行条件判定部１０５、実行優先度記憶部１０６、実行単位決定部１０７、クロック周波数決定部１０８、クロック発生部１０９及び制御部１１０が示されている。
【００１５】
記憶部１０１は、本実施形態のプロセッサが実行する実行単位のそれぞれに対応した、１以上の記憶領域に分かれている。それぞれの記憶領域には、対応する実行単位が処理すべきデータが記憶されている。この記憶領域と実行単位との対応は、たとえば制御部１１０によって管理されている。
【００１６】
また記憶部１０１は、記憶する各記憶領域内のデータ量の情報をデータ量監視部１０４に通知する機能を備えている。通知の方法としてはたとえばデータ量監視部１０４からの要請により、または記憶部１０１が自発的にデータ量監視部１０４に通知するようにしても良い。
【００１７】
演算処理部１０２は、実行単位に相当する外部記憶部１０３に予め記憶されたプログラムコードを実行する機能を備えている。実行単位であるプログラムコードを実行するとき、その実行単位が割り当てられた記憶部１０１の記憶領域からこの実行単位が処理すべきデータを読み出す。また、読み出して処理が完了したデータについては、読み出した記憶領域から削除する、または処理の終わったデータとして処理すべきデータから除かれる。
【００１８】
外部記憶部１０３は、主に演算処理部１０２が実行するプログラムコードを記憶する。その他にも、プログラムコードの実行に必要なデータや処理途中のデータの一時退避領域等にも使用される。
【００１９】
データ量監視部１０４は、記憶部１０１に記憶されているデータの記憶量を監視する。データの記憶量の監視は記憶部１０１全体の記憶量を監視するものでも良いし、必要に応じて記憶部１０１内の各実行単位に対応する記憶領域全部あるいは一部について記憶領域別に監視するものであっても良い。監視結果は次の実行条件判定部１０５やクロック周波数決定部１０８に通知される。
【００２０】
実行条件判定部１０５は、データ量監視部１０４から通知された情報を用いて以降実行すべき実行単位を判定する。実行中または待機中の実行単位と、データ量監視部１０４から通知された記憶部１０１の各記憶領域との対応は、たとえば制御部１１０から取得するようにすれば良い。あるいは実行条件判定部１０５が対応関係を予め記憶した対応テーブルを持ち、このテーブルから取得するようにしても良い。
【００２１】
実行条件判定部１０５が行う、ある実行単位が実行可能かどうかの条件、すなわち実行条件の判定方法は、たとえば記憶部１０１内に処理すべきデータが予め設定した以上の量が記憶されている実行単位について実行可能と判定する方法が考えられる。
【００２２】
各実行単位について判定した実行可能かどうかの判断結果は、実行単位決定部１０７へ通知される。
【００２３】
実行優先度記憶部１０６は、実行中または待機中の実行単位について、いずれの実行単位を優先的に実行すべきかを示す優先度を記憶する。高い優先度が与えられた実行単位は、本実施形態のプロセッサによって実行される可能性が高いものとして扱われるものとする。実行単位の優先度は、実行前に予め与えられていても良いし、実行単位ごとに決まった優先度を持つようにしても良い。記憶する各実行単位の優先度は、次の実行単位決定部１０７の実行する実行単位の決定の際に利用される。
【００２４】
実行単位決定部１０７は、実行条件判定部１０５の実行可能情報及び実行優先度記憶部１０６の優先度情報を用いて、以降実行すべき実行単位を決定する。ここでいう以降実行すべき実行単位の決定とは、たとえば実行可能な実行単位の中からもっとも優先度が高い実行単位を選択することを言う。
【００２５】
実行単位決定部１０７が行う以降実行すべき実行単位の決定は、同時に複数の実行単位を実行するマルチタスク処理が可能なプロセッサであっても、このプロセッサにおける次に実行すべき実行単位を決定することとなんら変わりがない。
【００２６】
クロック周波数決定部１０８は、データ量監視部１０４が監視した記憶部１０１に記憶されたデータ量の情報をもとに、本実施形態のプロセッサに供給されるクロック周波数を決定する。データ量監視部１０４から通知される記憶部１０１が記憶するデータ量の情報は、記憶部１０１全体の記憶量を監視した結果でも良いし、必要に応じて記憶部１０１内の各実行単位に対応する記憶領域別に監視した結果であっても良い。
【００２７】
図２はクロック周波数決定部１０８の内部構成の一例を示す図である。
【００２８】
図２（ａ）は、クロック発生部１０９に通知するクロック周波数を、データ量監視部１０４が通知したデータ量に対応する予め作成したクロック周波数テーブル２０１を参照して求める場合である。
【００２９】
図３は記憶するデータ量に対するクロック周波数の関係を示したグラフ３０１の一例である。図３の例ではクロック周波数はデータ量に応じて最大クロック周波数（Φ−Ｈ）から最小クロック周波数（Φ−Ｌ）までの間で変化する。このグラフ３０１の各点の値に基づいて構成したクロック周波数テーブル２０１から、データ量監視部１０４が通知するデータ量に対応するクロック周波数を求め、クロック発生部１０９への通知とする。
【００３０】
図２（ｂ）は、クロック発生部１０９に通知した最後のクロック周波数に、データ量監視部１０４が通知したデータ量に対応する、予め設定しておいた変化量を加算して次に通知するクロック周波数を求めるものである。
【００３１】
図２（ｂ）には、クロック変化量テーブル２０２、クロック周波数出力部２０３及び加算器２０４が示されている。クロック変化量テーブル２０２は記憶しているデータ量に対するクロックの変化量を記憶したテーブルである。クロック周波数出力部２０３は、一度出力したクロック周波数の情報を保持する機能を持ち、また加算器２０４は二つの値を加算する機能を持つ。
【００３２】
図４はクロック変化量テーブル２０２の内容の一例をグラフ化したものである。
【００３３】
グラフ４０１の場合、記憶するデータ量がゼロ付近になると処理すべきデータがほとんど存在しないと判断し、本実施形態のプロセッサを駆動するクロック周波数が下がるようにマイナスの変化量を示すようになっている。変化量がマイナスの状態が続くと加算器２０４によってクロック周波数出力部２０３が出力するクロック周波数が減りつづけ、クロック発生部１０９に通知するクロック周波数が徐々に低い値となる。クロック周波数が低くなった分だけ、プロセッサが消費する電力が削減できる。
【００３４】
逆に記憶するデータ量が大量にある場合は早急な処理が必要と判断し、クロック周波数が上がるようにプラスの変化量を示すようにする。するとクロック発生部１０９に通知するクロック周波数が徐々に高い値になり、プロセッサの処理能力不足を補うことができる。
【００３５】
グラフ４０２の場合は、クロック周波数の決定についてはグラフ４０１とは逆の作用関係となる。これは本実施形態のプロセッサの処理出力を一定量に保ちたいときなどに適用される。たとえば音声出力やビデオ出力といったストリーム状の処理結果を次段の装置に安定して供給する場合などが考えられる。
【００３６】
プロセッサの出力段にあたる実行単位に割り当てられた記憶部１０１の記憶領域を考える。ここに記憶するデータ量がゼロに近づくと、出力するデータが不足しアンダーラン（データ不足）してしまう可能性が高くなる。このためクロック発生部１０９に通知するクロック周波数が高くなるように、クロック変化量をプラスにする。すると徐々にクロック周波数が上がりプロセッサの処理効率が高まることでアンダーランを防止することができる。
【００３７】
逆に記憶するデータ量が大量にある場合はオーバーラン（データ溢れ）しないように、クロック変化量をマイナスにする。これによりクロック発生部１０９に通知するクロック周波数が徐々に低くなり、よってプロセッサの処理能力が下がることでオーバーランを防止することができる。また下がったクロック周波数に相当する余剰能力分の電力消費も抑えることが可能となる。
【００３８】
ここで、記憶部１０１内の記憶領域が記憶する、複数の記憶領域のデータ量情報をもとにクロック周波数を決定するクロック周波数決定部１０８とすることも可能である。
【００３９】
図５に比較器を備えたクロック周波数決定部１０８のブロック構成図の一例を示す。
【００４０】
図５では図２（ａ）、（ｂ）に示した構成に、さらに比較器５０１を加えたものである。記憶部１０１の２つの記憶領域のそれぞれに対応した、図２（ａ）の場合と同様の、クロック周波数テーブル２０１−ａ及びクロック周波数テーブル２０１−ｂという２つのテーブルを備えている。さらに別の１の記憶領域に対応した、図２（ｂ）の場合と同様のクロック変化量テーブルを備えている。
【００４１】
そして記憶部１０１内に複数設けられた記憶領域のうちの３つの記憶領域が記憶するデータ量の情報からそれぞれの方法で個別にクロック周波数を決定し、その後比較器５０１を用いてクロック発生部１０９に通知する１つのクロック周波数を決定する。たとえば比較器５０１に入力されている３つの値から、もっとも高いクロック周波数を示すものを選択する方法が考えられる。ここで決定するクロック周波数はプロセッサに供給されすべての実行単位に適用されることから、少なくとももっとも高いクロック周波数を選択すれば、ある実行単位で処理能力不足が発生するといった事態は避けることができる。
【００４２】
図５では図２（ａ）、（ｂ）を組み合わせて３つの記憶領域のデータ量をもとにクロック周波数を決定する例を示したが、２以上の記憶領域に記憶されたデータ量をもとに決定する場合にも同様の構成で適用可能である。また、図２（ａ）、（ｂ）の組み合わせについても本実施形態に限定されるものではなく、必要に応じて組み合わせは適宜変更することができる。あるいは図２（ａ）、（ｂ）の決定方法に限らず、記憶領域のデータ量をもとにクロック周波数を決定する方法であれば、本実施形態に示した以外の方法であっても本発明を適用可能である。
【００４３】
クロック発生部１０９は、クロック周波数決定部１０８が決定したクロック周波数に従って、本実施形態にかかるプロセッサを駆動するクロックを発生する。発生したクロックは制御部１１０に入力され、プロセッサ内の各部の制御が成される。
【００４４】
（第２の実施形態）
図６に本実施形態にかかるプロセッサのブロック構成図の一例を示す。図１に示した第１の実施形態のブロック構成図との相違は、クロック周波数決定部１１８と演算処理部１０２からクロック周波数決定部１１８へ延びる信号線が追加されていることである。他の構成は第１の実施形態と同じである。
【００４５】
本実施形態の演算処理部１０２は、第１の実施形態のところで説明した機能に加え、現在実行中の実行単位の状況をクロック周波数決定部１０８に通知する。
【００４６】
クロック周波数決定部１１８は、データ量監視部１０４が監視した記憶部１０１に記憶されたデータ量の情報と演算処理部１０２よりもたらされた実行中の実行単位の状況をもとに、本実施形態のプロセッサに供給されるクロック周波数を決定する。データ量監視部１０４から通知される記憶部１０１が記憶するデータ量の情報は、記憶部１０１全体の記憶量を監視した結果でも良いし、必要に応じて記憶部１０１内の各実行単位に対応する記憶領域別に監視した結果であっても良い。
【００４７】
図７にクロック周波数決定部１１８の内部構成の一例を示す。図７には、実行状況判別部７０１、タイマー７０２、クロック変化量基準テーブル７０３、クロック変化量決定部２０３及び加算器２０４が示されている。クロック変化量決定部２０３及び加算器２０４については第１の実施形態と同じである。
【００４８】
実行状況判別部７０１は、演算処理部１０２から通知された実行中の実行単位が予め想定していた状況になったかどうかを判別する。ここでいう予め想定していた状況とは、たとえば所定の実行単位が新たに実行されるようになった場合が考えられる。さらに、実行単位の実行順序パターンが変わったような場合もこれに含まれる。たとえば実行単位Ａ、Ｂ、Ｃとある場合に、Ａ−Ｂ−Ａ−Ｂ−・・・と繰り返し実行されていた状況から、Ａ−Ｂ−Ｃ−Ａ−Ｂ−Ｃ−・・・のような実行順序パターンに変化したような場合である。あるいは実行単位自身がその実行によって所定の信号を生成したりあるいはある設定値を変更したような場合も、ここでいう予め想定した状況に含まれる。上記したような状況が判明したときは、実行状況判別部７０１はタイマー７０２の計時をリセットする。
【００４９】
タイマー７０２は、実行状況判別部７０１からリセットの要求があったときからの経過時間の計時を続ける。リセットが掛かると計時結果をゼロにリセットし、このリセット時点から再び経過時間の計時を続ける。計時した経過時間はクロック変化量決定部７０４に通知される。
【００５０】
クロック変化量基準テーブル７０３は、データ量監視部１０４から通知されるデータ量に対応するクロック変化量の基準値を記憶している。ここでいうクロック変化量の基準値とは、タイマー７０２の計時がリセットされた直後における第１の実施形態の図４に示したクロック変化量と同じである。
【００５１】
クロック変化量決定部７０４は、タイマー７０２が計時した経過時間と、クロック変化量基準テーブル７０３から得られた記憶するデータ量に対するクロックの変化量とから、現在クロック周波数出力部２０３が出力するクロック周波数の情報を変化させるかを決定する。
【００５２】
図８にクロック周波数決定部１１８の、タイマー７０２が計時した経過時間に対するクロック変化量との関係の一例をグラフ化したものを示す。図中に示したΦ−０ｔが、データ量監視部１０４から通知されたデータ量に対してクロック変化量基準テーブル７０３から得られたクロック変化量の基準値となる。
【００５３】
クロック変化量決定部７０４はグラフ８０１に示すように、タイマー７０２が計時する経過時間が長いほど、Φ−０ｔの値がより小さくなるように決定する。
【００５４】
具体的には、たとえばクロック変化量基準テーブル７０３から得られたクロック周波数を、タイマー７０２が計時中の経過時間で除算する方法が考えられる。
【００５５】
このように構成すると同じ実行単位が比較的長い期間実行を続ける場合に、本実施形態のプロセッサに供給されるクロック周波数が大きく変化することを抑えることができる。よって同じ処理を継続して行っているにも関わらずデータ処理のスループットが大きく変動してしまう危険性を緩和することができる。
【００５６】
（第３の実施形態）
図９に本実施形態にかかるプロセッサのブロック構成図の一例を示す。図１に示した第１の実施形態のブロック構成図との相違は、さらに駆動電圧制御部１１１が追加されていることである。他の構成は第１の実施形態と同じである。
【００５７】
駆動電圧制御部１１１は、本実施形態のプロセッサに供給される電源電圧を制御する機能を有する。駆動電圧制御部１１１によって電源電圧が制御される範囲は、プロセッサの全体に供給される電源電圧であっても良いし、またはプロセッサの一部であっても良い。本実施形態のプロセッサは、クロック周波数を低下することにより消費する電力を削減するものであるから、好ましくはクロック周波数の増減に密接に関係する演算処理を行う部分を含むプロセッサのコア部分への適用が望ましい。
【００５８】
駆動電圧制御部１１１が電源電圧を制御するための情報として、クロック周波数決定部１０８がクロック発生部１０９に通知する信号を用いる。これはクロック周波数の高低と、プロセッサコアに必要となる電源電圧の高低とが正比例の関係にあるからである。一般にクロックが高い時には高い駆動電圧が必要となる。
【００５９】
図１０に駆動電圧制御部１１１の、プロセッサが稼動するクロック周波数に対する制御する駆動電圧との関係の一例をグラフ化したものを示す。グラフ１００１に示すように、クロック周波数と駆動電圧は正比例の関係になるように制御する。このとき、プロセッサに供給されるクロック周波数も駆動電圧もゼロになることは無いので、それぞれΦ−ＬからΦ−Ｈ、Ｖ−ＬからＶ−Ｈの間で変化するグラフとなっている。
【００６０】
このように構成することで、プロセッサに供給するクロック周波数だけでなく可能な範囲で電源電圧を下げることにより、より低消費電力なプロセッサとすることができる。
【００６１】
（第４の実施形態）
図１１に本実施形態にかかるプロセッサのブロック構成図の一例を示す。図１に示した第１の実施形態のブロック構成図との相違は、さらに実行単位選択部１１２が追加されていることである。他の構成は第１の実施形態と同じである。
【００６２】
実行単位選択部１１２は、実行条件判定部１０５が判定した実行可能な状態にある実行単位の情報と、実行優先度記憶部１０６に記憶された各実行単位の優先度情報とから、本実施形態のプロセッサに供給するクロック周波数をどの実行単位を見て決定するかを選択する機能を有する。
【００６３】
実行優先度記憶部１０６には、実行単位それぞれの以降実行する優先度が記憶されている。このうち、優先度が高い実行単位については実行される可能性も高く、処理すべきデータの量も危機的な量になる危険性は少ないと考えられる。しかしながら優先度が低い実行単位については実行されることが少なく、処理すべきデータの量もある程度蓄積されなければ実行されることはない。
【００６４】
このとき優先度の高い実行単位に対応する記憶部１０１の記憶領域を見て余裕があると判断し、クロック発生部１０９に通知するクロック周波数を低く決定してしまうと、優先度の低い実行単位は実行される機会が少ないことから決められた時間内に処理が完了できない可能性がある。
【００６５】
そこで上記のような危険性を緩和する意味で、本実施形態では実行条件判定部１０５が実行可能な状態にあると判断した実行単位の中から、実行優先度記憶部１０６に記憶された各実行単位の優先度のもっとも低い実行単位を選択し、この選択した実行単位の状況に基づいてクロック周波数を決定するようにする。
【００６６】
このように構成するとすべての実行単位について取りこぼし無く実行することが可能となる。またクロック周波数決定の際、実行可能な状態にない実行単位を考慮する必要がなくなり決定に要する時間を短縮できる可能性がある。
【００６７】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【００６８】
【発明の効果】
本発明によれば、実行単位ごとに処理すべきデータを格納するための記憶領域を備えたプロセッサにおいて、処理すべきデータの格納状況から現在の処理に必要な能力に見合うクロック周波数を決定し、余剰の能力がある場合には供給するクロック周波数を下げることにより消費する電力を削減するプロセッサを提供することができる。
【図面の簡単な説明】
【図１】第１の実施形態におけるプロセッサのブロック構成図の一例を示す図である。
【図２】第１の実施形態におけるクロック周波数決定部の構成図の一例を示す図である。
【図３】第１の実施形態におけるクロック周波数テーブルの内容の一例を示すグラフである。
【図４】第１の実施形態におけるクロック変化量テーブルの内容の一例を示すグラフである。
【図５】第１の実施形態におけるクロック周波数決定部の構成図の一例を示す図である。
【図６】第２の実施形態におけるプロセッサのブロック構成図の一例を示す図である。
【図７】第２の実施形態におけるクロック周波数決定部の構成図の一例を示す図である。
【図８】第２の実施形態におけるクロック変化量決定部の出力の一例を示すグラフである。
【図９】第３の実施形態におけるプロセッサのブロック構成図の一例を示す図である。
【図１０】第３の実施形態における駆動電圧制御部の出力の一例を示すグラフである。
【図１１】第４の実施形態におけるプロセッサのブロック構成図の一例を示す図である。
【符号の説明】
１０１・・・記憶部
１０２・・・演算処理部
１０３・・・外部記憶部
１０４・・・データ量監視部
１０５・・・実行条件判定部
１０６・・・実行優先度記憶部
１０７・・・実行単位決定部
１０８・・・クロック周波数決定部
１０９・・・クロック発生部
１１０・・・制御部
１１１・・・電源電圧制御部
１１２・・・実行単位選択部
１１８・・・クロック周波数決定部
２０１・・・クロック周波数テーブル
２０２・・・クロック変化量テーブル
７０１・・・実行状況判定部
７０２・・・タイマー
７０３・・・クロック変化量基準テーブル
７０４・・・クロック変化量決定部
【図１】
2004295450.tif 000003
【図２】
2004295450.tif 000004
【図３】
2004295450.tif 000005
【図４】
2004295450.tif 000006
【図５】
2004295450.tif 000007
【図６】
2004295450.tif 000008
【図７】
2004295450.tif 000009
【図８】
2004295450.tif 000010
【図９】
2004295450.tif 000011
【図１０】
2004295450.tif 000012
【図１１】
2004295450.tif 000013