(57)【要約】【課題】複数の周辺回路を備えたプロセッサ、半導体集積回路装置及びプロセッサシステムの処理能力を低下させることなく、消費電流を低減するプロセッサ、半導体集積回路装置及びプロセッサシステムを提供する。【解決手段】プロセッサコア２と、プロセッサコア２からの命令に応答して所定の処理を実行する周辺回路３−１，３−２とを備えるプロセッサ７において、各周辺回路３−１，３−２は、プロセッサコア２からの命令に基づいて第１の全処理サイクル数を算出する算出部１００と、比較部３００からの分周比に基づいて、クロック信号を分周して出力するクロック発生部４００と、第１の全処理サイクル数を、他の周辺回路の算出部１００によって算出される上記他の周辺回路の第２の全処理サイクル数と比較して、当該比較結果に基づいて、当該周辺回路の処理終了時刻が上記他の周辺回路の処理終了時刻に近づくように上記分周比を発生する比較部３００とを備えて構成される。【選択図】図２
2012058897.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサコアと、当該プロセッサコアからの命令に応答して所定の処理を実行する複数の周辺回路とを備えるプロセッサにおいて、
上記各周辺回路は、
上記プロセッサコアからの命令に基づいて実行すべき処理のサイクル数を示す第１の処理サイクル数を算出する算出部と、
所定の制御信号に基づいて、当該制御信号に対応するクロック周波数のクロック信号を発生して当該周辺回路に出力して当該周辺回路を動作させるクロック発生部と、
上記第１の処理サイクル数を、他の周辺回路の算出部によって算出される上記他の周辺回路が実行すべき処理のサイクル数を示す第２の処理サイクル数と比較して、当該比較結果に基づいて、当該周辺回路の処理終了時刻が上記他の周辺回路の処理終了時刻に近づくように上記制御信号を発生する比較部とを備えたことを特徴とするプロセッサ。
【請求項２】
上記比較部は、上記第１の処理サイクル数を上記第２の処理サイクル数と比較し、上記第１の処理サイクル数が上記第２の処理サイクル数以上のとき、当該周辺回路の最高クロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力する一方、上記第１の処理サイクル数が上記第２の処理サイクル数未満のとき、当該周辺回路の最高クロック周波数よりも低い第１のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力することを特徴とする請求項１記載のプロセッサ。
【請求項３】
上記比較部は、上記第１の処理サイクル数を上記第２の処理サイクル数と比較し、上記第１の処理サイクル数が上記第２の処理サイクル数以上のとき、当該周辺回路の現在のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力する一方、上記第１の処理サイクル数が上記第２の処理サイクル数未満のとき、当該周辺回路の現在のクロック周波数よりも低い第２のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力することを特徴とする請求項１記載のプロセッサ。
【請求項４】
上記比較部は、上記第１の処理サイクル数を上記第２の処理サイクル数と比較し、上記第１の処理サイクル数が上記第２の処理サイクル数以上のとき、当該周辺回路の現在のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力する一方、上記第１の処理サイクル数が上記第２の処理サイクル数未満のとき、当該周辺回路の現在のクロック周波数よりも低い第３のクロック周波数及び所定の第４のクロック周波数のうちの高い方のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力することを特徴とする請求項１記載のプロセッサ。
【請求項５】
上記算出部は、当該周辺回路が処理を開始する前に、上記プロセッサコアからの命令によって指定された各処理について、
（Ａ）処理対象のデータの数と当該処理を実行するために必要なサイクル数とを乗算して各乗算結果を算出した後、当該各乗算結果を加算することにより、当該周辺回路が実行すべき処理に必要なサイクル数である全処理サイクル数を上記第１の処理サイクル数として算出し、若しくは、
（Ｂ）当該各処理を実行するために必要な各サイクル数を加算することにより、当該周辺回路が実行すべき処理に必要なサイクル数である全処理サイクル数を上記第１の処理サイクル数として算出することを特徴とする請求項１乃至４のうちのいずれか１つに記載のプロセッサ。
【請求項６】
上記算出部は、当該周辺回路によって実行された処理のサイクル数を計数し、上記計算された全処理サイクル数から上記計数した処理のサイクル数を周期的に減算することにより、当該周辺回路が実行すべき処理のうちの未実行である処理に必要なサイクル数である残サイクル数を上記第１の処理サイクル数として周期的に算出することを特徴とする請求項５記載のプロセッサ。
【請求項７】
上記クロック発生部は、所定の基準クロック周波数を有する基準クロック信号を発生し、上記制御信号に応答して所定の逓倍数で逓倍し、若しくは所定の分周比で分周して、当該制御信号に対応するクロック周波数のクロック信号を発生することを特徴とする請求項１乃至６のうちのいずれか１つに記載のプロセッサ。
【請求項８】
上記比較部は、上記第２の処理サイクル数を上記第１の処理サイクル数で除算し、当該除算結果である分周比を示す制御信号を出力し、
上記クロック発生部は、所定の基準クロック周波数を有する基準クロック信号を発生し、上記制御信号により示される分周比で分周して、当該制御信号に対応するクロック周波数のクロック信号を発生することを特徴とする請求項１乃至６のうちのいずれか１つに記載のプロセッサ。
【請求項９】
上記比較部は、上記第２の処理サイクル数から上記第１の処理サイクル数を減算し、当該減算結果である差を示す制御信号を出力し、
上記クロック発生部は、上記制御信号により示される差に対応するクロック周波数であって、上記差が大きくなるにつれてより低いクロック周波数を有するクロック信号を発生することを特徴とする請求項１乃至６のうちのいずれか１つに記載のプロセッサ。
【請求項１０】
上記周辺回路はさらに、上記プロセッサコアからの選択信号に基づいて、上記複数の他の周辺回路からの上記各第２の処理サイクル数のうちの１つを選択して、上記比較部に出力する選択部を備えたことを特徴とする請求項１乃至９のうちのいずれか１つに記載のプロセッサ。
【請求項１１】
上記周辺回路はさらに、上記複数の他の周辺回路からの上記各第２の処理サイクル数のうちの最大値を有する第２の処理サイクル数を選択して、上記比較部に出力する選択部を備えたことを特徴とする請求項１乃至９のうちのいずれか１つに記載のプロセッサ。
【請求項１２】
プロセッサコアと、当該プロセッサコアからの命令に応答して所定の処理を実行する複数の周辺回路とを備えるプロセッサにおいて、
上記各周辺回路は、
上記プロセッサコアからの命令に基づいて実行した処理のサイクル数を示す第１の処理サイクル数を算出する算出部と、
所定の制御信号に基づいて、当該制御信号に対応するクロック周波数のクロック信号を発生して当該周辺回路に出力して当該周辺回路を動作させるクロック発生部と、
上記第１の処理サイクル数を、他の周辺回路の算出部によって算出される上記他の周辺回路が実行した処理のサイクル数を示す第２の処理サイクル数と比較して、当該比較結果に基づいて、当該周辺回路の処理終了時刻が上記他の周辺回路の処理終了時刻に近づくように上記制御信号を発生する比較部とを備えたことを特徴とするプロセッサ。
【請求項１３】
上記比較部は、上記第１の処理サイクル数を上記第２の処理サイクル数と比較し、上記第１の処理サイクル数が上記第２の処理サイクル数以下のとき、当該周辺回路の最高クロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力する一方、上記第１の処理サイクル数が上記第２の処理サイクル数より大きいとき、当該周辺回路の最高クロック周波数よりも低い第１のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力することを特徴とする請求項１２記載のプロセッサ。
【請求項１４】
上記比較部は、上記第１の処理サイクル数を上記第２の処理サイクル数と比較し、上記第１の処理サイクル数が上記第２の処理サイクル数以下のとき、当該周辺回路の現在のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力する一方、上記第１の処理サイクル数が上記第２の処理サイクル数より大きいとき、当該周辺回路の現在のクロック周波数よりも低い第２のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力することを特徴とする請求項１２記載のプロセッサ。
【請求項１５】
上記比較部は、上記第１の処理サイクル数を上記第２の処理サイクル数と比較し、上記第１の処理サイクル数が上記第２の処理サイクル数以下のとき、当該周辺回路の現在のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力する一方、上記第１の処理サイクル数が上記第２の処理サイクル数より大きいとき、当該周辺回路の現在のクロック周波数よりも低い第３のクロック周波数及び所定の第４のクロック周波数のうちの高い方のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力することを特徴とする請求項１２記載のプロセッサ。
【請求項１６】
上記算出部は、当該周辺回路によって実行された処理のサイクル数を計数することにより、当該周辺回路によって実行された処理のサイクル数である実行サイクル数を上記第１の処理サイクル数として周期的に算出することを特徴とする請求項１２乃至１５のうちのいずれか１つに記載のプロセッサ。
【請求項１７】
上記クロック発生部は、所定の基準クロック周波数を有する基準クロック信号を発生し、上記制御信号に応答して所定の逓倍数で逓倍し、若しくは所定の分周比で分周して、当該制御信号に対応するクロック周波数のクロック信号を発生することを特徴とする請求項１２乃至１６のうちのいずれか１つに記載のプロセッサ。
【請求項１８】
上記比較部は、上記第１の処理サイクル数を上記第２の処理サイクル数で除算し、当該除算結果である分周比を示す制御信号を出力し、
上記クロック発生部は、所定の基準クロック周波数を有する基準クロック信号を発生し、上記制御信号により示される分周比で分周して、当該制御信号に対応するクロック周波数のクロック信号を発生することを特徴とする請求項１２乃至１６のうちのいずれか１つに記載のプロセッサ。
【請求項１９】
上記比較部は、上記第１の処理サイクル数から上記第２の処理サイクル数を減算し、当該減算結果である差を示す制御信号を出力し、
上記クロック発生部は、上記制御信号により示される差に対応するクロック周波数であって、上記差が大きくなるにつれてより低いクロック周波数を有するクロック信号を発生することを特徴とする請求項１２乃至１６のうちのいずれか１つに記載のプロセッサ。
【請求項２０】
上記周辺回路はさらに、上記プロセッサコアからの選択信号に基づいて、上記複数の他の周辺回路からの上記各第２の処理サイクル数のうちの１つを選択して、上記比較部に出力する選択部を備えたことを特徴とする請求項１２乃至１９のうちのいずれか１つに記載のプロセッサ。
【請求項２１】
上記周辺回路はさらに、上記複数の他の周辺回路からの上記各第２の処理サイクル数のうちの最小値を有する第２の処理サイクル数を選択して、上記比較部に出力する選択部を備えたことを特徴とする請求項１２乃至１９のうちのいずれか１つに記載のプロセッサ。
【請求項２２】
請求項１乃至２１のうちのいずれか１つに記載のプロセッサを備えたことを特徴とする半導体集積回路装置。
【請求項２３】
請求項１乃至２１のうちのいずれか１つに記載のプロセッサを備えたことを特徴とするプロセッサシステム。
【請求項２４】
請求項２２記載の半導体集積回路装置を備えたことを特徴とするプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の周辺回路を備えたプロセッサ、半導体集積回路装置、及びプロセッサシステムに関する。
【背景技術】
【０００２】
半導体製造技術の進歩に伴い、半導体システムの高集積化、及び高周波数化が進んでいる。プロセッサシステムにおいても、プロセッサユニットの複数搭載、周辺回路ユニットの高機能化並びに複数搭載、及びプロセッサシステム全体のクロック周波数（動作周波数）の向上などにより、ますますの高性能化を実現しており、今後もこの流れは続くと予想される。一方、このような高性能化とトレードオフの関係として、プロセッサシステムにおける消費電流の増大が問題となっており、プロセッサシステム全体の処理性能はできるだけ低下させることなく、消費電流をいかに削減するかが重要な課題となっている。
【０００３】
例えば、特許文献１は、複数の電力制御情報を備えたパワーテーブルを有し、プロセッサが当該情報のいずれの状態であるかを判定し、プロセッサ全体の電力制御を適切に行うプロセッサのための電力制御装置を開示している。
【０００４】
また、特許文献２は、定期的に消費電力を予測してプロセッサの動作周波数を決定する電力管理手段と、タスクが提供するサービスの満足度を評価する手段とを備え、それぞれから得られる情報を基に適切にプロセッサの動作周波数を決定する情報処理システムを開示している。
【０００５】
さらに、特許文献３は、オペレーションシステムによって複数のタスクを実行させる順序を決定するタスク実行情報を生成し、このタスク実行情報にしたがってプロセッサの動作周波数と電源電圧とを決定する電力管理方法を開示している。
【０００６】
またさらに、特許文献４は、複数のプロセッサユニットを有するマルチプロセッサシステムにおいて、入力プログラムをコンパイルする際に自動的に並列性を持つタスクを抽出し、各プロセッサユニットの特性に合わせて当該タスクを割り当てる。その際に各プロセッサユニットの処理量を見積もり、システムが有している動作周波数と電源電圧とを設定するレジスタを適切に書き換えるためのコードを加えることで、消費電流を低減している。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
複数の周辺回路のクロック周波数を変更してプロセッサシステムの消費電流を低減する場合、各周辺回路における処理量及び処理時間に基づいて各周辺回路のクロック周波数を変更しなければ、プロセッサシステムとしての処理性能が低下することがある。
【０００８】
例えば、プロセッサユニットと周辺回路Ａと周辺回路Ｂとを備えるプロセッサシステムがあり、プロセッサユニットが周辺回路Ａ及び周辺回路Ｂの両方の処理結果を次の処理で使用し、周辺回路Ａの処理量が周辺回路Ｂの処理量よりも多く、周辺回路Ａの処理時間が周辺回路Ｂの処理時間よりも長いと予測される場合を考える。このとき、周辺回路Ａのクロック周波数を低下させると、周辺回路Ａの処理時間が長くなり、プロセッサシステムとしての処理性能が低下してしまう。一方、周辺回路Ｂのクロック周波数を低下させると、周辺回路Ａの処理終了時刻と周辺回路Ｂの処理終了時刻がおおよそ揃うようになり、プロセッサシステムの処理性能に対する影響を抑えて、プロセッサシステムの消費電流を低下させることができる。
【０００９】
したがって、周辺回路のクロック周波数を設定するときには、複数の周辺回路の処理量を参照して、それぞれの周辺回路が処理を終了する時刻をできるだけ正確に予測する必要がある。また、ストール及びクロックウエイトなどが挿入されるような周辺回路では、上記予測はより困難である。特許文献１乃至４では、上述したような制御は実行されていない。
【００１０】
本発明の目的は以上の問題を解決し、複数の周辺回路を備えたプロセッサ、半導体集積回路装置、及びプロセッサシステムの処理能力を低下させることなく、消費電流を低減するプロセッサ、半導体集積回路装置、及びプロセッサシステムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明に係るプロセッサは、プロセッサコアと、当該プロセッサコアからの命令に応答して所定の処理を実行する複数の周辺回路とを備えるプロセッサにおいて、
上記各周辺回路は、
上記プロセッサコアからの命令に基づいて実行すべき処理のサイクル数を示す第１の処理サイクル数を算出する算出部と、
所定の制御信号に基づいて、当該制御信号に対応するクロック周波数のクロック信号を発生して当該周辺回路に出力して当該周辺回路を動作させるクロック発生部と、
上記第１の処理サイクル数を、他の周辺回路の算出部によって算出される上記他の周辺回路が実行すべき処理のサイクル数を示す第２の処理サイクル数と比較して、当該比較結果に基づいて、当該周辺回路の処理終了時刻が上記他の周辺回路の処理終了時刻に近づくように上記制御信号を発生する比較部とを備えたことを特徴とする。
【００１２】
また、上記プロセッサにおいて、上記比較部は、上記第１の処理サイクル数を上記第２の処理サイクル数と比較し、上記第１の処理サイクル数が上記第２の処理サイクル数以上のとき、当該周辺回路の最高クロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力する一方、上記第１の処理サイクル数が上記第２の処理サイクル数未満のとき、当該周辺回路の最高クロック周波数よりも低い第１のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力することを特徴とする。
【００１３】
さらに、上記プロセッサにおいて、上記比較部は、上記第１の処理サイクル数を上記第２の処理サイクル数と比較し、上記第１の処理サイクル数が上記第２の処理サイクル数以上のとき、当該周辺回路の現在のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力する一方、上記第１の処理サイクル数が上記第２の処理サイクル数未満のとき、当該周辺回路の現在のクロック周波数よりも低い第２のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力することを特徴とする。
【００１４】
またさらに、上記プロセッサにおいて、上記比較部は、上記第１の処理サイクル数を上記第２の処理サイクル数と比較し、上記第１の処理サイクル数が上記第２の処理サイクル数以上のとき、当該周辺回路の現在のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力する一方、上記第１の処理サイクル数が上記第２の処理サイクル数未満のとき、当該周辺回路の現在のクロック周波数よりも低い第３のクロック周波数及び所定の第４のクロック周波数のうちの高い方のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力することを特徴とする。
【００１５】
また、上記プロセッサにおいて、上記算出部は、当該周辺回路が処理を開始する前に、上記プロセッサコアからの命令によって指定された各処理について、
（Ａ）処理対象のデータの数と当該処理を実行するために必要なサイクル数とを乗算して各乗算結果を算出した後、当該各乗算結果を加算することにより、当該周辺回路が実行すべき処理に必要なサイクル数である全処理サイクル数を上記第１の処理サイクル数として算出し、若しくは、
（Ｂ）当該各処理を実行するために必要な各サイクル数を加算することにより、当該周辺回路が実行すべき処理に必要なサイクル数である全処理サイクル数を上記第１の処理サイクル数として算出することを特徴とする。
【００１６】
さらに、上記プロセッサにおいて、上記算出部は、当該周辺回路によって実行された処理のサイクル数を計数し、上記計算された全処理サイクル数から上記計数した処理のサイクル数を周期的に減算することにより、当該周辺回路が実行すべき処理のうちの未実行である処理に必要なサイクル数である残サイクル数を上記第１の処理サイクル数として周期的に算出することを特徴とする。
【００１７】
またさらに、上記プロセッサにおいて、上記クロック発生部は、所定の基準クロック周波数を有する基準クロック信号を発生し、上記制御信号に応答して所定の逓倍数で逓倍し、若しくは所定の分周比で分周して、当該制御信号に対応するクロック周波数のクロック信号を発生することを特徴とする。
【００１８】
また、上記プロセッサにおいて、上記比較部は、上記第２の処理サイクル数を上記第１の処理サイクル数で除算し、当該除算結果である分周比を示す制御信号を出力し、
上記クロック発生部は、所定の基準クロック周波数を有する基準クロック信号を発生し、上記制御信号により示される分周比で分周して、当該制御信号に対応するクロック周波数のクロック信号を発生することを特徴とする。
【００１９】
さらに、上記プロセッサにおいて、上記比較部は、上記第２の処理サイクル数から上記第１の処理サイクル数を減算し、当該減算結果である差を示す制御信号を出力し、
上記クロック発生部は、上記制御信号により示される差に対応するクロック周波数であって、上記差が大きくなるにつれてより低いクロック周波数を有するクロック信号を発生することを特徴とする。
【００２０】
またさらに、上記プロセッサにおいて、上記周辺回路はさらに、上記プロセッサからの選択信号に基づいて、上記複数の他の周辺回路からの上記各第２の処理サイクル数のうちの１つを選択して、上記比較部に出力する選択部を備えたことを特徴とする。
【００２１】
また、上記プロセッサにおいて、上記周辺回路はさらに、上記複数の他の周辺回路からの上記各第２の処理サイクル数のうちの最大値を有する第２の処理サイクル数を選択して、上記比較部に出力する選択部を備えたことを特徴とする。
【００２２】
本発明に係るプロセッサは、プロセッサコアと、当該プロセッサコアからの命令に応答して所定の処理を実行する複数の周辺回路とを備えるプロセッサにおいて、
上記各周辺回路は、
上記プロセッサコアからの命令に基づいて実行した処理のサイクル数を示す第１の処理サイクル数を算出する算出部と、
所定の制御信号に基づいて、当該制御信号に対応するクロック周波数のクロック信号を発生して当該周辺回路に出力して当該周辺回路を動作させるクロック発生部と、
上記第１の処理サイクル数を、他の周辺回路の算出部によって算出される上記他の周辺回路が実行した処理のサイクル数を示す第２の処理サイクル数と比較して、当該比較結果に基づいて、当該周辺回路の処理終了時刻が上記他の周辺回路の処理終了時刻に近づくように上記制御信号を発生する比較部とを備えたことを特徴とする。
【００２３】
また、上記プロセッサにおいて、上記比較部は、上記第１の処理サイクル数を上記第２の処理サイクル数と比較し、上記第１の処理サイクル数が上記第２の処理サイクル数以下のとき、当該周辺回路の最高クロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力する一方、上記第１の処理サイクル数が上記第２の処理サイクル数より大きいとき、当該周辺回路の最高クロック周波数よりも低い第１のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力することを特徴とする。
【００２４】
さらに、上記プロセッサにおいて、上記比較部は、上記第１の処理サイクル数を上記第２の処理サイクル数と比較し、上記第１の処理サイクル数が上記第２の処理サイクル数以下のとき、当該周辺回路の現在のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力する一方、上記第１の処理サイクル数が上記第２の処理サイクル数より大きいとき、当該周辺回路の現在のクロック周波数よりも低い第２のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力することを特徴とする。
【００２５】
またさらに、上記プロセッサにおいて、上記比較部は、上記第１の処理サイクル数を上記第２の処理サイクル数と比較し、上記第１の処理サイクル数が上記第２の処理サイクル数以下のとき、当該周辺回路の現在のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力する一方、上記第１の処理サイクル数が上記第２の処理サイクル数より大きいとき、当該周辺回路の現在のクロック周波数よりも低い第３のクロック周波数及び所定の第４のクロック周波数のうちの高い方のクロック周波数を有するクロック信号を発生させる上記制御信号を上記クロック発生部に出力することを特徴とする。
【００２６】
また、上記プロセッサにおいて、上記算出部は、当該周辺回路によって実行された処理のサイクル数を計数することにより、当該周辺回路によって実行された処理のサイクル数である実行サイクル数を上記第１の処理サイクル数として周期的に算出することを特徴とする。
【００２７】
さらに、上記プロセッサにおいて、上記クロック発生部は、所定の基準クロック周波数を有する基準クロック信号を発生し、上記制御信号に応答して所定の逓倍数で逓倍し、若しくは所定の分周比で分周して、当該制御信号に対応するクロック周波数のクロック信号を発生することを特徴とする。
【００２８】
またさらに、上記プロセッサにおいて、上記比較部は、上記第１の処理サイクル数を上記第２の処理サイクル数で除算し、当該除算結果である分周比を示す制御信号を出力し、
上記クロック発生部は、所定の基準クロック周波数を有する基準クロック信号を発生し、上記制御信号により示される分周比で分周して、当該制御信号に対応するクロック周波数のクロック信号を発生することを特徴とする。
【００２９】
また、上記プロセッサにおいて、上記比較部は、上記第１の処理サイクル数から上記第２の処理サイクル数を減算し、当該減算結果である差を示す制御信号を出力し、
上記クロック発生部は、上記制御信号により示される差に対応するクロック周波数であって、上記差が大きくなるにつれてより低いクロック周波数を有するクロック信号を発生することを特徴とする。
【００３０】
さらに、上記プロセッサにおいて、上記周辺回路はさらに、上記プロセッサからの選択信号に基づいて、上記複数の他の周辺回路からの上記各第２の処理サイクル数のうちの１つを選択して、上記比較部に出力する選択部を備えたことを特徴とする。
【００３１】
またさらに、上記プロセッサにおいて、上記周辺回路はさらに、上記複数の他の周辺回路からの上記各第２の処理サイクル数のうちの最小値を有する第２の処理サイクル数を選択して、上記比較部に出力する選択部を備えたことを特徴とする。
【００３２】
本発明に係る半導体集積回路装置は、プロセッサを備えたことを特徴とする。
【００３３】
本発明に係るプロセッサシステムは、プロセッサを備えたことを特徴とする。
【００３４】
また、本発明に係るプロセッサシステムは、半導体集積回路装置を備えたことを特徴とする。
【発明の効果】
【００３５】
本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、当該周辺回路の処理サイクル数を他の周辺回路の処理サイクル数と比較して、当該比較結果に基づいて、当該周辺回路の処理終了時刻が他の周辺回路の処理終了時刻に近づくようなクロック周波数のクロック信号に基づいて動作するので、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【００３６】
また、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、当該周辺回路の処理時間が他の周辺回路の処理時間と等しい又はより長い場合、当該周辺回路の最高クロック周波数を有するクロック信号に基づいて動作し、当該周辺回路の処理時間が他の周辺回路の処理時間よりも短い場合、当該周辺回路の最高クロック周波数よりも低いクロック周波数を有するクロック信号に基づいて動作するので、複数の周辺回路の処理終了時刻が近づくように、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【００３７】
さらに、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、当該周辺回路の処理時間が他の周辺回路の処理時間と等しい又はより長い場合、当該周辺回路の現在のクロック周波数を有するクロック信号に基づいて動作し、当該周辺回路の処理時間が他の周辺回路の処理時間よりも短い場合、当該周辺回路の現在のクロック周波数よりも低いクロック周波数を有するクロック信号に基づいて動作するので、複数の周辺回路の処理終了時刻が近づくように、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【００３８】
またさらに、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、当該周辺回路の処理時間が他の周辺回路の処理時間と等しい又はより長い場合、当該周辺回路の現在のクロック周波数を有するクロック信号に基づいて動作し、当該周辺回路の処理時間が他の周辺回路の処理時間よりも短い場合、当該周辺回路の現在のクロック周波数よりも低いクロック周波数及び所定のクロック周波数のうちの高い方のクロック周波数を有するクロック信号に基づいて動作するので、複数の周辺回路の処理終了時刻が近づくように、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【００３９】
また、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、当該周辺回路の処理サイクル数を周期的に算出して、当該算出した処理サイクル数を他の周辺回路の処理サイクル数と周期的に比較することによりクロック周波数を周期的に変更するので、処理実行中にストールが発生する、又はクロックウエイトが挿入されるなどによって、処理に遅延が発生した場合にも、遅延発生後の処理サイクル数に基づいてクロック周波数を設定することができ、複数の周辺回路の処理終了時刻が近づくように、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【００４０】
さらに、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、比較部によって実行される除算の商に基づいて他の周辺回路に対する相対的な処理時間を予測して、当該周辺回路の処理終了時刻が最も長い処理時間を有する周辺回路の処理終了時刻よりも遅くならない範囲でクロック周波数を設定するので、複数の周辺回路の処理終了時刻が最も長い処理時間を有する周辺回路の処理終了時刻よりも遅くならない範囲で、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【００４１】
またさらに、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、比較部によって実行される減算の結果に基づいて他の周辺回路に対する相対的な処理時間を予測して、当該周辺回路の処理終了時刻が最も長い処理時間を有する周辺回路の処理終了時刻よりも遅くならない範囲でクロック周波数を設定するので、複数の周辺回路の処理終了時刻が最も長い処理時間を有する周辺回路の処理終了時刻よりも遅くならない範囲で、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【００４２】
また、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、プロセッサからの選択信号に基づいて、複数の他の周辺回路からの各処理サイクル数のうちの１つを選択する選択部を備えたので、３つ以上の周辺回路を備えるプロセッサシステムにおいて、複数の周辺回路の処理終了時刻が近づくように、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【００４３】
さらに、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、複数の他の周辺回路からの各処理サイクル数から最も長い処理時間を示す処理サイクル数を選択する選択部を備えたので、３つ以上の周辺回路を備えるプロセッサシステムにおいて、複数の周辺回路の処理終了時刻が最も長い処理時間を有する周辺回路の処理終了時刻に近づくように、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の第１の実施形態に係るプロセッサシステム１の構成を示すブロック図である。
【図２】図１の周辺回路３−１，３−２の構成を示すブロック図である。
【図３】本発明の第２の実施形態に係る周辺回路３−１ａ，３−２ａの構成を示すブロック図である。
【図４】本発明の第３の実施形態に係る周辺回路３−１ｂ，３−２ｂの構成を示すブロック図である。
【図５】本発明の第４の実施形態に係る周辺回路３−１ｃ，３−２ｃ，３−３ｃの構成を示すブロック図である。
【図６】本発明の第５の実施形態に係る周辺回路３−１ｄ，３−２ｄ，３−３ｄの構成を示すブロック図である。
【図７】本発明の第６の実施形態に係る周辺回路３−１ｅ，３−２ｅ，３−２ｅの構成を示すブロック図である。
【図８】本発明の第７の実施形態に係る周辺回路３−１ｆ，３−２ｆ，３−３ｆの構成を示すブロック図である。
【図９】本発明の第８の実施形態に係る周辺回路３−１ｇ，３−２ｇ，３−３ｇの構成を示すブロック図である。
【図１０】本発明の第９の実施形態に係る周辺回路３−１ｈ，３−２ｈ，３−３ｈの構成を示すブロック図である。
【発明を実施するための形態】
【００４５】
第１の実施形態．
図１は、本発明の第１の実施形態に係るプロセッサシステム１の構成を示すブロック図である。図１に示すように、プロセッサシステム１は、プロセッサコア２と、周辺回路３−１，３−２と、メモリ４−１，４−２とを備えて構成される。また、プロセッサ７は、プロセッサコア２と、周辺回路３−１，３−２とを備えて構成される。なお、プロセッサ７は、例えばＬＳＩなどの半導体集積回路装置によって構成されてもよい。
【００４６】
第１の実施形態に係るプロセッサ７は、プロセッサコア２と、プロセッサコア２からの命令に応答して所定の処理を実行する周辺回路３−１，３−２とを備え、周辺回路３−１，３−２は以下のことを特徴とする。
【００４７】
周辺回路３−１は、プロセッサコア２からの命令に基づいて実行すべき処理のサイクル数を示す全処理サイクル数ＮＡ１を算出する算出部１００と、所定の分周比を示す制御信号に基づいてクロック信号を分周し、当該制御信号に対応するクロック周波数のクロック信号ＣＫを発生して周辺回路３−１に出力して周辺回路３−１を動作させるクロック発生部４００と、全処理サイクル数ＮＡ１を、周辺回路３−２の算出部１００によって算出される周辺回路３−２が実行すべき処理のサイクル数を示す全処理サイクル数ＮＡ２と比較して、当該比較結果に基づいて、周辺回路３−１の処理終了時刻が周辺回路３−２の処理終了時刻に近づくように上記分周比を示す制御信号を発生する比較部３００とを備えたことを特徴とする。
【００４８】
また、周辺回路３−２は、プロセッサコア２からの命令に基づいて実行すべき処理のサイクル数を示す全処理サイクル数ＮＡ２を算出する算出部１００と、所定の分周比を示す制御信号に基づいてクロック信号を分周し、当該制御信号に対応するクロック周波数のクロック信号ＣＫを発生して周辺回路３−２に出力して周辺回路３−２を動作させるクロック発生部４００と、全処理サイクル数ＮＡ２を、周辺回路３−１の算出部１００によって算出される周辺回路３−１が実行すべき処理のサイクル数を示す全処理サイクル数ＮＡ１と比較して、当該比較結果に基づいて、周辺回路３−２の処理終了時刻が周辺回路３−１の処理終了時刻に近づくように上記分周比を示す制御信号を発生する比較部３００とを備えたことを特徴とする。
【００４９】
図１において、プロセッサコア２は、画像処理に適したＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ−ｓｔｒｅａｍ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ−ｓｔｒｅａｍ）形式で構成され、グローバルプロセッサ５と、画素データなどの複数のデータを同時に処理するためのプロセッサエレメントアレイ６とを備えて構成される。
【００５０】
グローバルプロセッサ５は、プロセッサコア２の全体の動作、プロセッサエレメントアレイ６の動作、及び周辺回路３−１，３−２の動作を制御する。グローバルプロセッサ５が周辺回路３−１，３−２の動作を制御する場合、グローバルプロセッサ５はまず、周辺回路３−１，３−２に対して処理内容を指定する命令（以下、処理内容命令という。）を送信し、次いで処理開始を指示する命令（以下、処理開始命令という。）を送信する。その後、グローバルプロセッサ５は、周辺回路３−１，３−２から処理が終了したことを表すメッセージ（以下、処理終了メッセージという。）を受信する。処理内容命令は、周辺回路３−１，３−２が実行する処理の種類、及びその処理を適用するべきデータの数並びにデータが格納されているレジスタアレイ６１のアドレス又はメモリ４−１，４−２のアドレスなどを含む。
【００５１】
プロセッサエレメントアレイ６は、複数のデータを格納するためのレジスタアレイ６１と、複数のデータを処理するための演算アレイ６２とを備えて構成されており、グローバルプロセッサ５からの制御信号にしたがって動作する。また、レジスタアレイ６１は周辺回路３−１，３−２に接続されており、周辺回路３−１，３−２はレジスタアレイ６１に対して読み出し処理及び書き込み処理を実行する。
【００５２】
周辺回路３−１は、例えばメモリコントローラ又はデータ転送装置などであり、グローバルプロセッサ５から処理内容命令を受信すると、詳細後述するように周辺回路３−１自身のクロック信号のクロック周波数を設定し（以下、クロック周波数設定処理という。）、その後、グローバルプロセッサ５から処理開始命令を受信すると、設定したクロック周波数を有するクロック信号に基づいてレジスタアレイ６１及びメモリ４−１との間でデータを送受信して指定された処理を実行する。周辺回路３−１は、指定された処理が終了すると、処理終了メッセージをグローバルプロセッサ５に送信する。なお、周辺回路３−１は、クロック周波数設定処理を実行する前は、周辺回路３−１が動作可能な最高のクロック周波数（以下、最高クロック周波数という。）を有するクロック信号に基づいて動作する。
【００５３】
周辺回路３−２は、例えばメモリコントローラ又はデータ転送装置などであり、グローバルプロセッサ５から処理内容命令を受信すると、詳細後述するようにクロック周波数設定処理を実行し、その後、グローバルプロセッサ５から処理開始命令を受信すると、設定したクロック周波数を有するクロック信号に基づいてレジスタアレイ６１及びメモリ４−２との間でデータを送受信して指定された処理を実行する。周辺回路３−２は、指定された処理が終了すると、処理終了メッセージをグローバルプロセッサ５に送信する。なお、周辺回路３−３は、クロック周波数設定処理を実行する前は、周辺回路３−２の最高クロック周波数を有するクロック信号に基づいて動作する。上述したように、周辺回路３−２は、周辺回路３−１と同様に動作する。
【００５４】
メモリ４−１，４−２は、例えばＤＤＲＳＤＲＡＭ（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などであるメモリであり、周辺回路３−１，３−２によって読み出し処理及び書き込み処理が実行される。
【００５５】
以上のように構成されたプロセッサシステム１では、並列性の高い処理をプロセッサエレメントアレイ６で実行し、並列性の低い処理、例えば逐次処理などが必要な処理を周辺回路３−１，３−２で実行するように、処理が分担して実行される。
【００５６】
図２は、図１の周辺回路３−１，３−２の構成を示すブロック図である。まず、図２参照して、周辺回路３−１について説明する。図２に示すように、周辺回路３−１は、テーブルメモリ１０１ｍを備えたシーケンスユニット１０１と、例えば８ビット又は１６ビットの全処理サイクル数格納レジスタ１０２と、比較回路３０１と、クロック発生回路４０１とを備えて構成される。ここで、シーケンスユニット１０１と全処理サイクル数格納レジスタ１０２とは算出部１００を構成し、比較回路３０１は比較部３００を構成し、クロック発生回路４０１はクロック発生部４００を構成する。
【００５７】
なお、図２では図示していないが、周辺回路３−１は、レジスタアレイ６１及びメモリ４−１に対する読み出し処理及び書き込み処理を実行するための回路なども備えており、これらの回路は、シーケンスユニット１０１によって制御される。以下、周辺回路３−１によって実行されるクロック周波数設定処理について説明する。
【００５８】
シーケンスユニット１０１は、グローバルプロセッサ５から処理内容命令を受信すると、後述するように、テーブルメモリ１０１ｍを参照して、処理内容命令によって指定された処理を実行するために必要な処理サイクル数（以下、全処理サイクル数という。）ＮＡ１を算出し、全処理サイクル数ＮＡ１を示すデータを全処理サイクル数格納レジスタ１０２に格納する。全処理サイクル数ＮＡ１は、周辺回路３−１が実行すべき処理のサイクル数、すなわち処理の量（以下、処理量という。）を表している。したがって、全処理サイクル数ＮＡ１が大きくなるほど、周辺回路３−１の処理量が多くなり、周辺回路３−１が処理を実行するために必要な時間（以下、処理時間という。）が長くなる。
【００５９】
テーブルメモリ１０１ｍは、周辺回路３−１によって実行される処理毎に１つのデータを処理するために必要な処理サイクル数を格納している。シーケンスユニット１０１は、グローバルプロセッサ５からの処理内容命令を参照して、各処理について処理対象となっているデータの数と当該処理の１データ当たりの処理サイクル数とを乗算した後、乗算結果のすべてを加算することによって全処理サイクル数ＮＡ１を算出する。
【００６０】
なお、周辺回路３−１によって実行される処理の種類が１種類である場合、シーケンスユニット１０１は、テーブルメモリ１０１ｍを備えずに構成され、処理対象となっているデータの数と定数とを乗算することによって全処理サイクル数ＮＡ１を算出してもよい。また、周辺回路３−１によって実行される処理の内容が複雑であり、データ数と１データ当たりの処理サイクル数との乗算によって処理サイクル数を算出できない場合、テーブルメモリ１０１ｍがそれぞれの処理に対応する処理サイクル数を格納してもよい。
【００６１】
全処理サイクル数格納レジスタ１０２は、シーケンスユニット１０１から出力される全処理サイクル数ＮＡ１を示すデータを格納し、全処理サイクル数ＮＡ１を示すデータを比較回路３０１及び周辺回路３−２の比較回路３０１に出力する。
【００６２】
比較回路３０１は、周辺回路３−１の全処理サイクル数ＮＡ１及び周辺回路３−２の全処理サイクル数ＮＡ２が算出されたときに、全処理サイクル数格納レジスタ１０２からのデータによって示される全処理サイクル数ＮＡ１を、周辺回路３−２の全処理サイクル数格納レジスタ１０２からのデータによって示される全処理サイクル数ＮＡ２と比較して、下記のように分周比を設定し、当該分周比を示す制御信号をクロック発生回路４０１に出力する。
（１）全処理サイクル数ＮＡ１が全処理サイクル数ＮＡ２以上の場合：周辺回路３−１の処理時間が、周辺回路３−２の処理時間と等しい又はより長いと予測できる。このとき、比較回路３０１は、分周比を１に設定する。
（２）全処理サイクル数ＮＡ１が全処理サイクル数ＮＡ２未満の場合：周辺回路３−１の処理時間が、周辺回路３−２の処理時間よりも短いと予測できる。このとき、比較回路３０１は、分周比を２に設定する。なお、このとき、比較回路３０１は、分周比を１より大きい所定の実数値に設定してもよい。
【００６３】
クロック発生回路４０１は、基準クロック発生器４０２と、分周器４０３とを備えて構成される。基準クロック発生器４０２は、周辺回路３−１の最高クロック周波数を有するクロック信号を発生して分周器４０３に出力する。分周器４０３は、比較回路３０１からの分周比を示す制御信号に基づいて、基準クロック発生器４０２によって発生されるクロック信号を分周して、周辺回路３−１の各回路に出力する。
【００６４】
次に、図２を参照して、周辺回路３−２について説明する。図２に示すように、周辺回路３−２は、テーブルメモリ１０１ｍを備えたシーケンスユニット１０１と、例えば８ビット又は１６ビットの全処理サイクル数格納レジスタ１０２と、比較回路３０１と、クロック発生回路４０１とを備えて構成される。
【００６５】
なお、図２では図示していないが、周辺回路３−２は、レジスタアレイ６１及びメモリ４−２に対する読み出し処理及び書き込み処理を実行するための回路なども備えており、これらの回路は、シーケンスユニット１０１によって制御される。以下、周辺回路３−２によって実行されるクロック周波数設定処理について説明する。
【００６６】
シーケンスユニット１０１は、グローバルプロセッサ５から処理内容命令を受信すると、テーブルメモリ１０１ｍを参照して、全処理サイクル数ＮＡ２を算出し、全処理サイクル数ＮＡ２を示すデータを全処理サイクル数格納レジスタ１０２に格納する。ここで、テーブルメモリ１０１ｍは、上述した周辺回路３−１のテーブルメモリ１０１ｍと同様の情報を記憶している。
【００６７】
全処理サイクル数格納レジスタ１０２は、シーケンスユニット１０１から出力される全処理サイクル数ＮＡ２を示すデータを格納し、全処理サイクル数ＮＡ２を示すデータを比較回路３０１及び周辺回路３−１の比較回路３０１に出力する。
【００６８】
比較回路３０１は、周辺回路３−２の全処理サイクル数ＮＡ２及び周辺回路３−１の全処理サイクル数ＮＡ１が算出されたときに、全処理サイクル数格納レジスタ１０２からのデータによって示される全処理サイクル数ＮＡ２を、周辺回路３−１の全処理サイクル数格納レジスタ１０２からのデータによって示される全処理サイクル数ＮＡ１と比較して、下記のように分周比を設定し、当該分周比を示す制御信号をクロック発生回路４０１に出力する。
（１）全処理サイクル数ＮＡ２が全処理サイクル数ＮＡ１以上の場合：周辺回路３−２の処理時間が、周辺回路３−１の処理時間と等しい又はより長いと予測できる。このとき、比較回路３０１は、分周比を１に設定する。
（２）全処理サイクル数ＮＡ２が全処理サイクル数ＮＡ１未満の場合：周辺回路３−２の処理時間が、周辺回路３−１の処理時間よりも短いと予測できる。このとき、比較回路３０１は、分周比を２に設定する。なお、このとき、比較回路３０１は、分周比を１より大きい所定の実数値に設定してもよい。
【００６９】
クロック発生回路４０１は、基準クロック発生器４０２と、分周器４０３とを備えて構成される。基準クロック発生器４０２は、周辺回路３−２の最高クロック周波数を有するクロック信号を発生して分周器４０３に出力する。分周器４０３は、比較回路３０１からの分周比を示す制御信号に基づいて、基準クロック発生器４０２によって発生されるクロック信号を分周して、周辺回路３−１の各回路に出力する。上述したように、周辺回路３−２は、上述した周辺回路３−１と同様に構成され、同様に動作する。
【００７０】
上述したように周辺回路３−１，３−２を構成したので、周辺回路３−１，３−２はそれぞれ、自身の全処理サイクル数ＮＡ１，ＮＡ２を算出し、より長い処理時間を有する周辺回路は最高クロック周波数を有するクロック信号に基づいて動作し、より短い処理時間を有する周辺回路は最高クロック周波数の１／２のクロック周波数を有するクロック信号に基づいて動作する。より短い処理時間を有する周辺回路のクロック周波数が、より長い処理時間を有する周辺回路のクロック周波数よりも低く設定されるので、プロセッサシステム１の処理性能に対する影響が抑えられる。
【００７１】
以上説明したように、第１の実施形態によれば、周辺回路３−１は、グローバルプロセッサ５から処理内容命令を受信した後にクロック周波数設定処理を実行して、自身の全処理サイクル数ＮＡ１が周辺回路３−２の全処理サイクル数ＮＡ２以上の場合、最高クロック周波数を有するクロック信号に基づいて動作し、自身の全処理サイクル数ＮＡ１が周辺回路３−２の全処理サイクル数ＮＡ２未満の場合、最高クロック周波数の１／２のクロック周波数を有するクロック信号に基づいて動作し、周辺回路３−２も同様に動作する。したがって、周辺回路３−１の処理終了時刻と周辺回路３−２の処理終了時刻とがおおよそ揃うように、周辺回路３−１又は周辺回路３−２のクロック周波数が低下して、プロセッサシステム１の処理性能に対する影響を抑えて、プロセッサシステム１の消費電流を低減させることができる。
【００７２】
第２の実施形態．
第２の実施形態に係るプロセッサシステムは、第１の実施形態に係るプロセッサシステムと比較して、周辺回路３−１，３−２に代えて、周辺回路３−１ａ，３−２ａを備えることを特徴とし、その他の構成要素及び動作は第１の実施形態と同様であり、その説明を省略する。
【００７３】
図３は、本発明の第２の実施形態に係る周辺回路３−１ａ，３−２ａの構成を示すブロック図である。図２の周辺回路３−１，３−２は、全処理サイクル数に基づいてクロック周波数を設定するが、図３の周辺回路３−１ａ，３−２ａは、後述する実行サイクル数に基づいて周期的にクロック周波数を設定する。
【００７４】
まず、図３を参照して、周辺回路３−１ａについて説明する。図３に示すように、周辺回路３−１ａは、シーケンスユニット１０１ａと、例えば８ビット又は１６ビットの実行サイクル数格納レジスタ１０２ａと、実行サイクル数カウンタ回路１０３ａと、比較回路３０１ａと、クロック発生回路４０１とを備えて構成される。ここで、シーケンスユニット１０１ａと実行サイクル数格納レジスタ１０２ａと実行サイクル数カウンタ回路１０３ａとは、算出部１００ａを構成し、比較回路３０１ａは比較部３００ａを構成し、クロック発生回路４０１はクロック発生部４００を構成する。
【００７５】
なお、図３には図示していないが、周辺回路３−１ａは、レジスタアレイ６１及びメモリ４−１に対する読み出し処理及び書き込み処理を実行するための回路なども備えており、これらの回路は、シーケンスユニット１０１ａによって制御される。以下、周辺回路３−１ａによって実行されるクロック周波数設定処理について説明する。
【００７６】
シーケンスユニット１０１ａは、グローバルプロセッサ５から処理開始命令を受信すると、実行サイクル数カウンタ回路１０３ａをゼロにリセットし、処理を実行する毎に実行サイクル数カウンタ回路１０３ａをインクリメントする。ここで、シーケンスユニット１０１ａは、クロック信号が入力される毎に処理を実行する。また、シーケンスユニット１０１ａは、グローバルプロセッサ５から処理開始命令を受信した後、所定の周期Ｔで書き込み信号を実行サイクル数格納レジスタ１０２ａに送信し、実行サイクル数カウンタ回路１０３ａに格納された値（以下、実行サイクル数という。）ＮＥ１を実行サイクル数格納レジスタ１０２ａに格納させる。実行サイクル数ＮＥ１は、周辺回路３−１ａによって実行された処理のサイクル数、すなわち処理の進捗程度を表している。実行サイクル数は、周辺回路３−１ａ及び周辺回路３−２ａが同一の処理を実行するときなどに使用される。したがって、時間が経過すると、実行サイクル数ＮＥ１は増大し、周辺回路３−１ａの処理が進行して実行すべき処理の量（以下、処理量という。）が減少し、周辺回路３−１ａが処理を実行するために必要な時間（以下、処理時間という。）が短くなる。
【００７７】
実行サイクル数格納レジスタ１０２ａは、シーケンスユニット１０１ａからの書き込み信号に応答して、実行サイクル数カウンタ回路１０３ａからの実行サイクル数ＮＥ１を示すデータを格納し、実行サイクル数ＮＥ１を示すデータを比較回路３０１ａ及び周辺回路３−２ａの比較回路３０１ａに出力する。
【００７８】
比較回路３０１ａは、周辺回路３−１ａの実行サイクル数ＮＥ１並びに周辺回路３−２ａの実行サイクル数ＮＥ２が算出されたとき、及び実行サイクル数ＮＥ１又は実行サイクル数ＮＥ２のうちの少なくとも一方が更新される毎に、実行サイクル数格納レジスタ１０２ａからのデータによって示される実行サイクル数ＮＥ１を周辺回路３−２ａの実行サイクル数格納レジスタ１０２ａからのデータによって示される実行サイクル数ＮＥ２と比較して、下記のように分周比を設定し、当該分周比を示す制御信号をクロック発生回路４０１に出力する。
（１）実行サイクル数ＮＥ１が実行サイクル数ＮＥ２より大きい場合：周辺回路３−１ａの処理時間が、周辺回路３−２ａの処理時間よりも短いと予測できる。このとき、比較回路３０１ａは、分周比を２に設定する。なお、このとき、比較回路３０１ａは、分周比を１より大きい所定の実数値に設定してもよい。
（２）実行サイクル数ＮＥ１が実行サイクル数ＮＥ２以下の場合：周辺回路３−１ａの処理時間が、周辺回路３−２ａの処理時間と等しい又はより長いと予測できる。このとき、比較回路３０１ａは、分周比を１に設定する。
【００７９】
クロック発生回路４０１は、図２のクロック発生回路４０１と同様の構成であり、同様に動作する。また、周辺回路３−２ａは、上述した周辺回路３−１ａと同様に構成され、同様に動作する。
【００８０】
上述したように周辺回路３−１ａ，３−２ａを構成したので、周辺回路３−１ａ，３−２ａの実行サイクル数が周期的に比較されて、より短い処理時間を有する周辺回路は最高クロック周波数の１／２のクロック周波数を有するクロック信号に基づいて動作し、より長い処理時間を有する周辺回路は最高クロック周波数を有するクロック信号に基づいて動作する。
【００８１】
以上説明したように、第２の実施形態によれば、周辺回路３−１ａは、グローバルプロセッサ５から処理開始命令を受信した後にクロック周波数設定処理を周期的に実行して、自身の実行サイクル数ＮＥ１が周辺回路３−２ａの実行サイクル数ＮＥ２より大きい場合、最高クロック周波数の１／２のクロック周波数を有するクロック信号に基づいて動作し、自身の実行サイクル数ＮＥ１が周辺回路３−２ａの実行サイクル数ＮＥ２以下の場合、最高クロック周波数を有するクロック信号に基づいて動作し、周辺回路３−２ａも同様に動作する。したがって、周辺回路３−１ａの処理終了時刻と周辺回路３−２ａの処理終了時刻とがおおよそ揃うように、周辺回路３−１ａ又は周辺回路３−２ａのクロック周波数が低下して、第２の実施形態に係るプロセッサシステムの処理性能に対する影響を抑えて、第２の実施形態に係るプロセッサシステムの消費電流を低減させることができる。
【００８２】
また、第２の実施形態によれば、全処理サイクル数を用いて処理開始前に一度だけクロック周波数を設定する場合と比較して、周辺回路３−１ａ，３−２ａは、周期的に実行サイクル数を比較するので、処理実行中にストールが発生する、又はクロックウエイトが挿入されるなどによって、処理に遅延が発生した場合にも、遅延発生後の処理時間に基づいてクロック周波数を設定することができ、第２の実施形態に係るプロセッサシステムの処理性能は低下させずに、第２の実施形態に係るプロセッサシステムの消費電流を低減させることができる。
【００８３】
第３の実施形態．
第３の実施形態に係るプロセッサシステムは、第１の実施形態に係るプロセッサシステムと比較して、周辺回路３−１，３−２に代えて、周辺回路３−１ｂ，３−２ｂを備えることを特徴とし、その他の構成要素及び動作は第１の実施形態と同様であり、その説明を省略する。
【００８４】
図４は、本発明の第３の実施形態に係る周辺回路３−１ｂ，３−２ｂの構成を示すブロック図である。図２の周辺回路３−１，３−２は、全処理サイクル数に基づいてクロック周波数を設定するが、図４の周辺回路３−１ｂ，３−２ｂは、後述する残サイクル数に基づいてクロック周波数を設定する。
【００８５】
まず、図４を参照して、周辺回路３−１ｂについて説明する。図４に示すように、周辺回路３−１ｂは、テーブルメモリ１０１ｂｍを備えたシーケンスユニット１０１ｂと、例えば８ビット又は１６ビットの残サイクル数格納レジスタ１０２ｂと、実行サイクル数カウンタ回路１０３ｂと、減算器１０４ｂと、比較回路３０１ｂと、クロック発生回路４０１とを備えて構成される。シーケンスユニット１０１ｂと残サイクル数格納レジスタ１０２ｂと実行サイクル数カウンタ回路１０３ｂと減算器１０４ｂとは算出部１００を構成し、比較回路３０１ｂは比較部３００ｂを構成し、クロック発生回路４０１はクロック発生部４００を構成する。
【００８６】
なお、図４には図示していないが、周辺回路３−１ｂは、レジスタアレイ６１及びメモリ４−１に対する読み出し処理及び書き込み処理を実行するための回路なども備えており、これらの回路は、シーケンスユニット１０１ｂによって制御される。以下、周辺回路３−１ｂによって実行されるクロック周波数設定処理について説明する。
【００８７】
シーケンスユニット１０１ｂは、グローバルプロセッサ５から処理内容命令を受信すると、第１の実施形態で述べたように、テーブルメモリ１０１ｂｍを参照して、全処理サイクル数を算出して、当該全処理サイクル数を示すデータを減算器１０４ｂに出力する。ここで、テーブルメモリ１０１ｂｍは、図２のテーブルメモリ１０１ｍと同様の情報が格納されている。また、シーケンスユニット１０１ｂは、グローバルプロセッサ５から処理開始命令を受信すると、実行サイクル数カウンタ回路１０３ｂをゼロにリセットし、処理を実行する毎に実行サイクル数カウンタ回路１０３ｂをインクリメントする。ここで、シーケンスユニット１０１ｂは、クロック信号が入力される毎に処理を実行する。実行サイクル数カウンタ回路１０３ｂは、格納している実行サイクル数を示すデータを減算器１０４ｂに出力する。また、シーケンスユニット１０１ｂは、グローバルプロセッサ５から処理開始命令を受信した後、所定の周期Ｔで書き込み信号を残サイクル数格納レジスタ１０２ｂに送信し、全処理サイクル数から実行サイクル数カウンタ回路１０３ｂに格納されたデータによって示される実行サイクル数を減算した値（以下、残サイクル数という。）ＮＲ１を残サイクル数格納レジスタ１０２ｂに格納させる。上述したように、残サイクル数ＮＲ１は、周辺回路３−１ｂが実行すべき処理の残りのサイクル数を表している。したがって、処理開始前において、残サイクル数ＮＲ１は全処理サイクル数と等しく、時間が経過すると、残サイクル数ＮＲ１は減少し、周辺回路３−１ｂが実行すべき処理の量（以下、処理量という。）が減少し、周辺回路３−１ｂが処理を実行するために必要な時間（以下、処理時間という。）が短くなる。
【００８８】
残サイクル数格納レジスタ１０２ｂは、シーケンスユニット１０１ｂから書き込み信号に応答して、減算器１０４ｂからの残サイクル数ＮＲ１を示すデータを格納し、残サイクル数ＮＲ１を示すデータを比較回路３０１ｂ及び周辺回路３−２ｂの比較回路３０１ｂに出力する。
【００８９】
比較回路３０１ｂは、周辺回路３−１ｂの残サイクル数ＮＲ１及び周辺回路３−２ｂの残サイクル数ＮＲ２が算出されたとき、及び残サイクル数ＮＲ１又は残サイクル数ＮＲ２のうちの少なくとも一方が更新される毎に、残サイクル数格納レジスタ１０２ｂからのデータによって示される残サイクル数ＮＲ１を周辺回路３−２ｂの残サイクル数格納レジスタ１０２ｂからのデータによって示される残サイクル数ＮＲ２と比較して、下記のように分周比を設定し、当該分周比を示す制御信号をクロック発生回路４０１に出力する。
（１）残サイクル数ＮＲ１が残サイクル数ＮＲ２以上の場合：周辺回路３−１ｂの処理時間が、周辺回路３−２ｂの処理時間と等しい又はより長いと予測できる。このとき、比較回路３０１ｂは、分周比を１に設定する。
（２）残サイクル数ＮＲ１が残サイクル数ＮＲ２未満の場合：周辺回路３−１ｂの処理時間が、周辺回路３−２ｂの処理時間よりも短いと予測できる。このとき、比較回路３０１ｂは、分周比を２に設定する。なお、このとき、比較回路３０１ｂは、分周比を１より大きい所定の実数値に設定してもよい。
【００９０】
クロック発生回路４０１は、図２のクロック発生回路４０１と同様の構成であり、同様に動作する。また、周辺回路３−２ｂは、上述した周辺回路３−１ｂと同様に構成され、同様に動作する。
【００９１】
上述したように周辺回路３−１ｂ，３−２ｂを構成したので、周辺回路３−１ｂ，３−２ｂの残サイクル数が周期的に比較されて、より長い処理時間を有する周辺回路は最高クロック周波数で動作し、より短い処理時間を有する周辺回路は最高クロック周波数の１／２のクロック周波数で動作することとなる。
【００９２】
以上説明したように、第３の実施形態によれば、周辺回路３−１ｂは、グローバルプロセッサ５から処理開始命令を受信した後にクロック周波数設定処理を周期的に実行して、自身の残サイクル数ＮＲ１が周辺回路３−２ｂの残サイクル数ＮＲ２以上の場合、最高クロック周波数を有するクロック信号に基づいて動作し、自身の残サイクル数ＮＲ１が周辺回路３−２ｂの残サイクル数ＮＲ２未満の場合、最高クロック周波数の１／２のクロック周波数を有するクロック信号に基づいて動作し、周辺回路３−２ｂも同様に動作する。したがって、周辺回路３−１ｂの処理終了時刻と周辺回路３−１ｂの処理終了時刻とがおおよそ揃うように、周辺回路３−１ｂ又は周辺回路３−２ｂのクロック周波数が低下して、第３の実施形態に係るプロセッサシステムの処理性能に対する影響を抑えて、第３の実施形態に係るプロセッサシステムの消費電流が低減する。
【００９３】
また、第３の実施形態によれば、全処理サイクル数を用いて処理開始前に一度だけクロック周波数を設定する場合と比較して、周辺回路３−１ｂ，３−２ｂは、周期的に残サイクル数を比較するので、処理実行中にストールが発生する、又はクロックウエイトが挿入されるなどによって、処理に遅延が発生した場合にも、遅延発生後の処理時間に基づいてクロック周波数を設定することができ、第３の実施形態に係るプロセッサシステムの処理性能は低下させずに、第３の実施形態に係るプロセッサシステムの消費電流を低減させることができる。また、残サイクル数は、周辺回路における全処理サイクル数及び実行サイクル数の両方を考慮した値であるので、全処理サイクル数又は実行サイクル数のいずれか一方のみを考慮する場合よりも、詳細に周辺回路の実行時間を予測することができ、より効果的にクロック周波数を決定することができる。
【００９４】
第４の実施形態．
第４の実施形態に係るプロセッサシステムは、第１の実施形態に係るプロセッサシステムと比較して、周辺回路３−１，３−２に代えて、周辺回路３−１ｃ，３−２ｃ，３−３ｃを備えることを特徴とし、その他の構成要素及び動作は第１の実施形態と同様であり、その説明を省略する。
【００９５】
図５は、本発明の第４の実施形態に係る周辺回路３−１ｃ，３−２ｃ，３−３ｃの構成を示すブロック図である。第１の実施形態に係るプロセッサシステム１は、２つの周辺回路３−１，３−２を備えて構成されたが、本実施形態に係るプロセッサシステムは、３つの周辺回路３−１ｃ，３−２ｃ，３−３ｃを備えて構成される。
【００９６】
まず、図５を参照して、周辺回路３−１ｃについて説明する。図５の周辺回路３−１ｃは、図２の周辺回路３−１と比較して、マルチプレクサ２０１をさらに備えること、及び全処理サイクル数格納レジスタ１０２が全処理サイクル数ＮＡ１を示すデータを比較回路３０１と周辺回路３−２ｃのマルチプレクサ２０１と周辺回路３−３ｃのマルチプレクサ２０１とに出力することを特徴とし、その他の構成要素は図２の周辺回路３−１と同様でありその説明を省略する。ここで、マルチプレクサ２０１は選択部２００を構成する。
【００９７】
マルチプレクサ２０１は、グローバルプロセッサ５からの選択信号に基づいて、周辺回路３−２ｃの全処理サイクル数格納レジスタ１０２からの全処理サイクル数ＮＡ２を示すデータ、及び周辺回路３−３ｃの全処理サイクル数格納レジスタ１０２からの全処理サイクル数ＮＡ３を示すデータのうちのいずれか一方を比較回路３０１に出力する。ここで、グローバルプロセッサ５からの選択信号は、グローバルプロセッサ５によって実行される処理などに基づいて予めユーザによって決定されてグローバルプロセッサ５に格納されている。また、周辺回路３−２ｃ，３−３ｃは、上述した周辺回路３−１ｃと同様に構成され、同様に動作する。
【００９８】
以上説明したように、第４の実施形態によれば、３つの周辺回路３−１ｃ，３−２ｃ，３−３ｃを備えるプロセッサシステムに対して、第１の実施形態と同様の作用効果を有する。
【００９９】
なお、第４の実施形態では、３つの周辺回路３−１ｃ，３−２ｃ，３−３ｃを備えてプロセッサシステムを構成したが、本発明はこれに限らず、マルチプレクサ２０１及びグローバルプロセッサ５からの選択信号を４つ以上の入力データに対応できるように変更して、４つ以上の周辺回路を備えてプロセッサシステムを構成してもよい。
【０１００】
また、第４の実施形態では、周辺回路３−１ｃ，３−２ｃ，３−３ｃは全処理サイクル数に基づいてクロック周波数を設定するが、実行サイクル数又は残サイクル数に基づいてクロック周波数を設定してもよい。
【０１０１】
第５の実施形態．
第５の実施形態に係るプロセッサシステムは、第４の実施形態に係るプロセッサシステムと比較して、周辺回路３−１ｃ，３−２ｃ，３−３ｃに代えて、周辺回路３−１ｄ，３−２ｄ，３−３ｄを備えることを特徴とし、その他の構成要素及び動作は第４の実施形態と同様であり、その説明を省略する。
【０１０２】
図６は、本発明の第５の実施形態に係る周辺回路３−１ｄ，３−２ｄ，３−３ｄの構成を示すブロック図である。図５の周辺回路３−１ｃ，３−２ｃ，３−３ｃは、グローバルプロセッサ５からの選択信号に基づいて、比較回路３０１に入力される全処理サイクル数を示すデータを選択するが、図６の周辺回路３−１ｄ，３−２ｄ，３−３ｄは、比較回路２０２の比較結果によって比較回路３０１に入力される全処理サイクル数を示すデータを選択する。
【０１０３】
まず、図６を参照して、周辺回路３−１ｄについて説明する。図６の周辺回路３−１ｄは、図５の周辺回路３−１ｃと比較して、比較回路２０２をさらに備えること、及び全処理サイクル数格納レジスタ１０２が全処理サイクル数ＮＡ１を示すデータを比較回路３０１と周辺回路３−２ｃのマルチプレクサ２０１及び比較回路２０２と周辺回路３−３ｃのマルチプレクサ２０１及び比較回路２０２とに出力することを特徴とし、その他の構成要素は図５の周辺回路３−１ｃと同様でありその説明を省略する。ここで、マルチプレクサ２０１と比較回路２０２とは選択部２００Ａを構成する。
【０１０４】
比較回路２０２は、周辺回路３−２ｄの全処理サイクル数格納レジスタ１０２からのデータによって示される全処理サイクル数ＮＡ２を周辺回路３−３ｄの全処理サイクル数格納レジスタ１０２からのデータによって示される全処理サイクル数ＮＡ３と比較して、大きい方の値、すなわちより長い処理時間を有する周辺回路の全処理サイクル数を示すデータを選択するための選択信号をマルチプレクサ２０１に出力する。また、周辺回路３−２ｄ，３−３ｄは、上述した周辺回路３−１ｄと同様に構成され、同様に動作する。
【０１０５】
以上説明したように、第５の実施形態によれば、第４の実施形態と同様の作用効果を有する。また、周辺回路３−１ｄは、自身の全処理サイクル数ＮＡ１の比較対象として、周辺回路３−２ｄの全処理サイクル数ＮＡ２及び周辺回路３−３ｄの全処理サイクル数ＮＡ３のうちの大きい方の全処理サイクル数ＮＡ４を選択するので、周辺回路３−１ｄは、処理に最も時間がかかると予測される周辺回路に応じて、自身のクロック周波数を設定することができる。また、周辺回路３−２ｄ，３−３ｄも同様に動作する。したがって、周辺回路３−１ｄ，３−２ｄ，３−３ｄの処理終了時刻が処理に最も時間がかかると予測される周辺回路の処理終了時刻におおよそ揃うように、周辺回路３−１ｄ、周辺回路３−２ｄ、又は周辺回路３−３ｄのクロック周波数が低下して、第５の実施形態に係るプロセッサシステムの処理性能に対する影響を抑えて、第５の実施形態に係るプロセッサシステムの消費電流を低減させることができる。
【０１０６】
なお、第５の実施形態では、３つの周辺回路３−１ｄ，３−２ｄ，３−３ｄを備えてプロセッサシステムを構成したが、本発明はこれに限らず、マルチプレクサ２０１及び比較回路２０２を４つ以上の入力データに対応できるように変更して、４つ以上の周辺回路を備えてプロセッサシステムを構成してもよい。
【０１０７】
また、第５の実施形態では、周辺回路３−１ｄ，３−２ｄ，３−３ｄは全処理サイクル数に基づいてクロック周波数を設定するが、実行サイクル数又は残サイクル数に基づいてクロック周波数を設定してもよい。
【０１０８】
第６の実施形態．
第６の実施形態に係るプロセッサシステムは、第５の実施形態に係るプロセッサシステムと比較して、周辺回路３−１ｄ，３−２ｄ，３−３ｄに代えて、周辺回路３−１ｅ，３−２ｅ，３−３ｅを備えることを特徴とし、その他の構成要素及び動作は第５の実施形態と同様であり、その説明を省略する。
【０１０９】
図７は、本発明の第６の実施形態に係る周辺回路３−１ｅ，３−２ｅ，３−３ｅの構成を示すブロック図である。図６の周辺回路３−１ｄ，３−２ｄ，３−３ｄは、比較回路３０１の比較結果に基づいて、クロック周波数を設定していたが、図７の周辺回路３−１ｅ，３−２ｅ，３−３ｅは、除算回路３０２によって実行される除算の結果基づいて、クロック周波数を設定する。
【０１１０】
まず、図７を参照して、周辺回路３−１ｅについて説明する。図７の周辺回路３−１ｅは、図６の周辺回路３−１ｄと比較して、比較回路３０１に代えて除算回路３０２を備えることを特徴とし、その他の構成要素は図６の周辺回路３−１ｄと同様でありその説明を省略する。ここで、除算回路３０２は比較部３００Ａを構成する。
【０１１１】
除算回路３０２は、周辺回路３−１ｅの全処理サイクル数ＮＡ１、周辺回路３−２ｅの全処理サイクル数ＮＡ２、及び周辺回路３−３ｅの全処理サイクル数ＮＡ３が算出されたときに、マルチプレクサ２０１から出力されるデータによって示される全処理サイクル数ＮＡ２及び全処理サイクル数ＮＡ３のうちの大きい方の全処理サイクル数ＮＡ４を、全処理サイクル数格納レジスタ１０２からのデータによって示される全処理サイクル数ＮＡ１で除算した商に基づいて、下記のように分周比を設定し、当該分周比を示す制御信号をクロック発生回路４０１に出力する。
（１）商が０の場合：周辺回路３−１ｅの全処理サイクル数ＮＡ１は、全処理サイクル数ＮＡ４より大きいので、周辺回路３−１ｅの処理時間は、他のどの周辺回路の処理時間よりも長いと予測できる。このとき、除算回路３０２は、分周比を１に設定する。
（２）商がＭ（Ｍは自然数である。）の場合：周辺回路３−１ｅの全処理サイクル数ＮＡ１は、上記全処理サイクル数ＮＡ４の１／Ｍ倍以下であるので、周辺回路３−１ｅの処理時間は、最も処理量が多い周辺回路の処理時間の１／Ｍ倍以下であると予測できる。このとき、除算回路３０２は、分周比をＭに設定する。
【０１１２】
周辺回路３−２ｅ，３−３ｅは、上述した周辺回路３−１ｅと同様に構成され、同様に動作する。
【０１１３】
以上説明したように、第６の実施形態によれば、第５の実施形態と同様の作用効果を有する。また、周辺回路３−１ｅは、除算回路３０２の商に基づいて他の周辺回路に対する相対的な処理時間を予測して、最も大きい全処理サイクル数を有する周辺回路の処理終了時刻よりも遅くならない範囲でクロック周波数を設定するので、比較回路に基づいてクロック周波数を設定する場合よりもより詳細にクロック周波数を設定することができる。また、周辺回路３−２ｅ，３−３ｅも同様に動作する。したがって、周辺回路３−１ｅ，３−２ｅ，３−３ｅの処理終了時刻が最も大きい全処理サイクル数を有する周辺回路の処理終了時刻よりも遅くならない範囲で、周辺回路３−１ｅ、周辺回路３−２ｅ、又は周辺回路３−３ｅのクロック周波数が低下して、第６の実施形態に係るプロセッサシステムの処理性能に対する影響を抑えて、第６の実施形態に係るプロセッサシステムの消費電流を低減させることができる。
【０１１４】
なお、第６の実施形態では、３つの周辺回路３−１ｅ，３−２ｅ，３−３ｅを備えてプロセッサシステムを構成したが、本発明はこれに限らず、マルチプレクサ２０１及び比較回路２０２を４つ以上の入力データに対応できるように変更して、４つ以上の周辺回路を備えてプロセッサシステムを構成してもよい。
【０１１５】
また、第６の実施形態では、比較回路２０２を備えて周辺回路３−１ｅ，３−２ｅ，３−３ｅを構成したが、本発明はこれに限らず、比較回路２０２を備えず、グローバルプロセッサ５からの選択信号をマルチプレクサ２０１に入力するように周辺回路３−１ｅ，３−２ｅ，３−３ｅを構成してもよい。
【０１１６】
また、第６の実施形態では、３つの周辺回路３−１ｅ，３−２ｅ，３−３ｅを備えてプロセッサシステムを構成したが、本発明はこれに限らず、マルチプレクサ２０１及び比較回路２０２を備えずに周辺回路を構成し、２つの周辺回路を備えてプロセッサシステムを構成してもよい。
【０１１７】
また、第６の実施形態では、周辺回路３−１ｅ，３−２ｅ，３−３ｅは全処理サイクル数に基づいてクロック周波数を設定するが、実行サイクル数又は残サイクル数に基づいてクロック周波数を設定してもよい。ここで、実行サイクル数に基づいてクロック周波数を設定するときは、除算回路３０２は、上述した場合の除数と被除数とを入れ替えて除算を実行する。
【０１１８】
第７の実施形態．
第７の実施形態に係るプロセッサシステムは、第１の実施形態に係るプロセッサシステムと比較して、周辺回路３−１，３−２に代えて、周辺回路３−１ｆ，３−２ｆ，３−３ｆを備えることを特徴とし、その他の構成要素及び動作は第１の実施形態と同様であり、その説明を省略する。
【０１１９】
図８は、本発明の第７の実施形態に係る周辺回路３−１ｆ，３−２ｆ，３−３ｆの構成を示すブロック図である。周辺回路３−１ｆ，３−２ｆ，３−３ｆは、実行サイクル数に基づいてクロック周波数を設定するが、最高クロック周波数に対してではなく現在設定されているクロック周波数に対して分周比を設定する。また、分周比の上限値が設定されており、クロック周波数が所定のしきい値以上に設定されるように構成される。
【０１２０】
まず、図８を参照して、周辺回路３−１ｆについて説明する。図８に示すように、周辺回路３−１ｆは、シーケンスユニット１０１ａと、例えば８ビット又は１６ビットの実行サイクル数格納レジスタ１０２ａと、実行サイクル数カウンタ回路１０３ａと、マルチプレクサ２０１と、比較回路２０２ａと、除算回路３０２ａと、乗算回路３０４と、比較回路３０５と、上限値格納レジスタ３０６と、分周比格納レジスタ３０７と、マルチプレクサ３０９と、クロック発生回路４０１とを備えて構成される。ここで、シーケンスユニット１０１ａと実行サイクル数格納レジスタ１０２ａと実行サイクル数カウンタ回路１０３ａとは算出部１００ａを構成し、マルチプレクサ２０１と比較回路２０２ａとは選択部２００Ａａを構成し、除算回路３０２ａと乗算回路３０４と比較回路３０５と上限値格納レジスタ３０６と分周比格納レジスタ３０７とマルチプレクサ３０９とは比較部３００Ｂａを構成し、クロック発生回路４０１はクロック発生部４００を構成する。
【０１２１】
シーケンスユニット１０１ａと、実行サイクル数格納レジスタ１０２ａと、実行サイクル数カウンタ回路１０３ａとは、第２の実施形態と同様の構成であり、周辺回路３−１ｆの実行サイクル数ＮＥ１を示すデータが周期的に、実行サイクル数格納レジスタ１０２ａに格納され、かつ除算回路３０２ａと周辺回路３−２ｆのマルチプレクサ２０１及び比較回路２０２ａと周辺回路３−３ｆのマルチプレクサ２０１及び比較回路２０２ａとに出力される。
【０１２２】
比較回路２０２ａは、周辺回路３−２ｆの実行サイクル数格納レジスタ１０２ａからのデータによって示される実行サイクル数ＮＥ２と周辺回路３−３ｆの実行サイクル数格納レジスタ１０２ａからのデータによって示される実行サイクル数ＮＥ３とのうちの小さい方の値を選択するための選択信号をマルチプレクサ２０１に出力する。
【０１２３】
マルチプレクサ２０１は、比較回路２０２ａからの選択信号に基づいて、周辺回路３−２ｆの実行サイクル数格納レジスタ１０２ａからの実行サイクル数ＮＥ２を示すデータと周辺回路３−３ｆの実行サイクル数格納レジスタ１０２ａからの実行サイクル数ＮＥ３を示すデータとのうちの小さい方の実行サイクル数ＮＥ４を示すデータを除算回路３０２ａに出力する。
【０１２４】
除算回路３０２ａは、周辺回路３−１ｆの実行サイクル数ＮＥ１、周辺回路３−２ｆの実行サイクル数ＮＥ２、並びに周辺回路３−１ｆの実行サイクル数ＮＥ３が算出されたとき、及び実行サイクル数格納レジスタ１０２ａからの実行サイクル数ＮＥ１又はマルチプレクサ２０１からの実行サイクル数ＮＥ４のうちの少なくとも一方が更新される毎に、実行サイクル数ＮＥ１を実行サイクル数ＮＥ４で除算し、その商に基づいて、下記のように分周比を設定し、当該分周比を示す制御信号を乗算回路３０４に出力する。
（１）商が０の場合：周辺回路３−１ｆの実行サイクル数ＮＥ１は、上記実行サイクル数ＮＥ４未満であるので、周辺回路３−１ｆの処理時間は、他のどの周辺回路の処理時間よりも長いと予測できる。このとき、除算回路３０２ａは、分周比を１に設定する。
（２）商がＭ（Ｍは自然数である。）の場合：周辺回路３−１ｆの実行サイクル数ＮＥ１は、上記実行サイクル数ＮＥ４のＭ倍以上であるので、周辺回路３−１ｆの処理時間は、最も処理量が多い周辺回路の処理時間の１／Ｍ倍以下であると予測できる。このとき、除算回路３０２ａは、分周比をＭに設定する。
【０１２５】
乗算回路３０４は、除算回路３０２ａからの制御信号によって示される分周比Ｎが更新される毎に、分周比Ｎを分周比格納レジスタ３０７からの分周比ＮＲと乗算して、その積を分周比格納レジスタ３０７に格納する。分周比格納レジスタ３０７は、シーケンスユニット１０１ａがグローバルプロセッサ５から処理内容命令を受信したときに１にリセットされ、上述したように乗算回路３０４からの分周比を格納する。上限値格納レジスタ３０６は、ユーザによって設定される上限の分周比ＮＵを格納している。
【０１２６】
比較回路３０５は、分周比格納レジスタ３０７からの分周比ＮＲが更新される毎に、分周比ＮＲを上限値格納レジスタ３０６からの分周比ＮＵと比較することによって、下記の選択信号をマルチプレクサ３０９に出力する。
（１）分周比ＮＲが分周比ＮＵ以上の場合：分周比ＮＲを用いてクロック周波数を設定するとクロック周波数が所定のしきい値以下になるので、比較回路３０５は、上限値格納レジスタ３０６からの分周比ＮＵを選択する信号をマルチプレクサ３０９に出力する。
（２）分周比ＮＲが分周比ＮＵ未満の場合：分周比ＮＲを用いてクロック周波数を設定するとクロック周波数が所定のしきい値より高くなるので、比較回路３０５は、分周比格納レジスタ３０７からの分周比ＮＲを選択する信号をマルチプレクサ３０９に出力する。
【０１２７】
マルチプレクサ３０９は、比較回路３０５からの選択信号に基づいて、上限値格納レジスタ３０６に格納された分周比ＮＵ又は分周比格納レジスタ３０７に格納された分周比ＮＲのうちのいずれかを示す制御信号をクロック発生回路４０１に出力する。
【０１２８】
クロック発生回路４０１は、図２のクロック発生回路４０１と同様の構成であり、同様に動作する。また、周辺回路３−２ｆ，３−３ｆは、上述した周辺回路３−１ｆと同様に構成され、同様に動作する。
【０１２９】
以上説明したように、第７の実施形態によれば、周辺回路３−１ｆは、グローバルプロセッサ５から処理開始命令を受信した後にクロック周波数設定処理を周期的に実行して、他の周辺回路に対する相対的な処理時間を予測して、最も小さい実行サイクル数を有する周辺回路の処理終了時刻よりも遅くならない範囲でかつ所定のしきい値以上のクロック周波数を設定し、周辺回路３−２ｆ，３−３ｆも同様に動作する。したがって、周辺回路３−１ｆ，３−２ｆ，３−３ｆの処理終了時刻が最も小さい実行サイクル数を有する周辺回路の処理終了時刻よりも遅くならない範囲でかつ所定のしきい値以上で、周辺回路３−１ｅ、周辺回路３−２ｅ、又は周辺回路３−３ｅのクロック周波数が低下して、第７の実施形態に係るプロセッサシステムの処理性能に対する影響を抑えて、第７の実施形態に係るプロセッサシステムにおける消費電流を低減させることができる。
【０１３０】
また、第７の実施形態によれば、分周比の上限値を設定することによりクロック周波数の下限値を設定しているので、クロック周波数設定処理が実行される毎に最小の実行サイクル数を有する周辺回路が異なる場合などでもクロック周波数が著しく低下することを防止することができる。
【０１３１】
なお、第７の実施形態では、３つの周辺回路３−１ｆ，３−２ｆ，３−３ｆを備えてプロセッサシステムを構成したが、本発明はこれに限らず、マルチプレクサ２０１及び比較回路２０２を４つ以上の入力データに対応できるように変更して、４つ以上の周辺回路を備えてプロセッサシステムを構成してもよい。
【０１３２】
また、第７の実施形態では、比較回路２０２を備えて周辺回路３−１ｆ，３−２ｆ，３−３ｆを構成したが、本発明はこれに限らず、比較回路２０２を備えず、グローバルプロセッサ５からの選択信号をマルチプレクサ２０１に入力するように周辺回路３−１ｆ，３−２ｆ，３−３ｆを構成してもよい。
【０１３３】
さらに、第７の実施形態では、３つの周辺回路３−１ｆ，３−２ｆ，３−３ｆを備えてプロセッサシステムを構成したが、本発明はこれに限らず、マルチプレクサ２０１及び比較回路２０２を備えずに周辺回路を構成し、２つの周辺回路を備えてプロセッサシステムを構成してもよい。
【０１３４】
またさらに、第７の実施形態では、周辺回路３−１ｆ，３−２ｆ，３−３ｆは除算回路３０２ａを備えて構成されたが、除算回路３０２ｂに代えて第２の実施形態で述べた比較回路３０１ａ備えて構成されてもよい。
【０１３５】
第８の実施形態．
第８の実施形態に係るプロセッサシステムは、第７の実施形態に係るプロセッサシステムと比較して、周辺回路３−１ｆ，３−２ｆ，３−３ｆに代えて、周辺回路３−１ｇ，３−２ｇ，３−３ｇを備えることを特徴とし、その他の構成要素及び動作は第７の実施形態と同様であり、その説明を省略する。
【０１３６】
図９は、本発明の第８の実施形態に係る周辺回路３−１ｇ，３−２ｇ，３−３ｇの構成を示すブロック図である。図８の周辺回路３−１ｆ，３−２ｆ，３−３ｆは、実行サイクル数に基づいてクロック周波数を設定したが、図９の周辺回路３−１ｇ，３−２ｆ，３−３ｆは、残サイクル数に基づいてクロック周波数を設定する。
【０１３７】
まず、図９を参照して、周辺回路３−１ｇについて説明する。図９の周辺回路３−１ｇは、図８の周辺回路３−１ｆと比較して、シーケンスユニット１０１ａと実行サイクル数格納レジスタ１０２ａと実行サイクル数カウンタ回路１０３ａとに代えて、シーケンスユニット１０１ｂと残サイクル数格納レジスタ１０２ｂと実行サイクル数カウンタ回路１０３ｂと減算器１０４ｂとを備えること、比較回路２０２ａに代えて比較回路２０２ｂを備えること、及び除算回路３０２ａに代えて除算回路３０２ｂを備えることを特徴とし、その他の構成要素は図８の周辺回路３−１ｆと同様でありその説明を省略する。ここで、シーケンスユニット１０１ｂと残サイクル数格納レジスタ１０２ｂと実行サイクル数カウンタ回路１０３ｂと減算器１０４ｂとは算出部１００ｂを構成し、マルチプレクサ２０１と比較回路２０２ｂとは選択部２００Ａｂを構成し、除算回路３０２ｂと乗算回路３０４と比較回路３０５と上限値格納レジスタ３０６と分周比格納レジスタ３０７とマルチプレクサ３０９とは比較部３００Ｂｂを構成する。
【０１３８】
シーケンスユニット１０１ｂと、実行サイクル数格納レジスタ１０２ｂと、残サイクル数カウンタ回路１０３ｂと減算器１０４ｂとは、第６の実施形態と同様の構成であり、周辺回路３−１ｇの残サイクル数ＮＲ１を示すデータが周期的に、残サイクル数格納レジスタ１０２ｂに格納され、かつ除算回路３０２ｂと周辺回路３−２ｇのマルチプレクサ２０１及び比較回路２０２ｂと周辺回路３−３ｇのマルチプレクサ２０１及び比較回路２０２ｂとに出力される。
【０１３９】
比較回路２０２ｂは、周辺回路３−２ｇの残サイクル数格納レジスタ１０２ｂからのデータによって示される残サイクル数ＮＲ２を周辺回路３−３ｇの残サイクル数格納レジスタ１０２ｂからのデータによって示される残サイクル数ＮＲ３と比較して、大きい方の残サイクル数ＮＲ４を選択するための選択信号をマルチプレクサ２０１に出力する。
【０１４０】
除算回路３０２ｂは、周辺回路３−１ｇの残サイクル数ＮＲ１、周辺回路３−２ｇの残サイクル数ＮＲ２、並びに周辺回路３−１ｇの残サイクル数ＮＲ３が算出されたとき、及びマルチプレクサ２０１からの残サイクル数ＮＲ４又は残サイクル数格納レジスタ１０２ｂからの残サイクル数ＮＲ１のうちの少なくとも一方が更新される毎に、残サイクル数ＮＲ４を残サイクル数ＮＲ１で除算し、その商に基づいて、下記のように分周比を設定し、当該分周比を示す制御信号を乗算回路３０４に出力する。
（１）商が０の場合：周辺回路３−１ｇの残サイクル数ＮＲ１は、残サイクル数ＮＲ４より大きいので、周辺回路３−１ｇの処理時間は、他のどの周辺回路の処理時間よりも長いと予測できる。このとき、除算回路３０２ｂは、分周比を１に設定する。
（２）商がＭ（Ｍは自然数である。）の場合：周辺回路３−１ｇの残サイクル数ＮＲ１は、上記残サイクル数ＮＲ４の１／Ｍ倍以下であるので、周辺回路３−１ｇの処理時間は、最も処理量が多い周辺回路の処理時間の１／Ｍ倍以下であると予測できる。このとき、除算回路３０２ｂは、分周比をＭに設定する。
【０１４１】
周辺回路３−２ｇ，３−３ｇは、上述した周辺回路３−１ｇと同様に構成され、同様に動作する。
【０１４２】
以上説明したように、第８の実施形態によれば、周辺回路３−１ｇは、グローバルプロセッサ５から処理開始命令を受信した後にクロック周波数設定処理を周期的に実行して、他の周辺回路に対する相対的な処理時間を予測して、最も大きい残サイクル数を有する周辺回路の処理終了時刻よりも遅くならない範囲でかつ所定のしきい値以上のクロック周波数を設定し、周辺回路３−２ｇ，３−３ｇも同様に動作する。したがって、周辺回路３−１ｇ，３−２ｇ，３−３ｇの処理終了時刻が最も大きい残サイクル数を有する周辺回路の処理終了時刻よりも遅くならない範囲でかつ所定のしきい値以上で、周辺回路３−１ｇ、周辺回路３−２ｇ、又は周辺回路３−３ｇのクロック周波数が低下して、第８の実施形態に係るプロセッサシステムの処理性能に対する影響を抑えて、第８の実施形態に係るプロセッサシステムにおける消費電流を低減させることができる。
【０１４３】
また、第８の実施形態によれば、分周比の上限値を設定することによりクロック周波数の下限値を設定しているので、クロック周波数設定処理が実行される毎に最大の残サイクル数を有する周辺回路が異なる場合などでもクロック周波数が著しく低下することを防止することができる。
【０１４４】
なお、第８の実施形態では、３つの周辺回路３−１ｇ，３−２ｇ，３−３ｇを備えてプロセッサシステムを構成したが、本発明はこれに限らず、マルチプレクサ２０１及び比較回路２０２を４つ以上の入力データに対応できるように変更して、４つ以上の周辺回路を備えてプロセッサシステムを構成してもよい。
【０１４５】
また、第８の実施形態では、比較回路２０２を備えて周辺回路３−１ｇ，３−２ｇ，３−３ｇを構成したが、本発明はこれに限らず、比較回路２０２を備えず、グローバルプロセッサ５からの選択信号をマルチプレクサ２０１に入力するように周辺回路３−１ｇ，３−２ｇ，３−３ｇを構成してもよい。
【０１４６】
さらに、第８の実施形態では、３つの周辺回路３−１ｇ，３−２ｇ，３−３ｇを備えてプロセッサシステムを構成したが、本発明はこれに限らず、マルチプレクサ２０１及び比較回路２０２を備えずに周辺回路を構成し、２つの周辺回路を備えてプロセッサシステムを構成してもよい。
【０１４７】
またさらに、第８の実施形態では、周辺回路３−１ｇ，３−２ｇ，３−３ｇは除算回路３０２ｂを備えて構成されたが、除算回路３０２ｂに代えて第３の実施形態で述べた比較回路３０１ｂ備えて構成されてもよい。
【０１４８】
さらに、第８の実施形態では、周辺回路３−１ｇ，３−２ｇ，３−３ｇは残サイクル数に基づいてクロック周波数を設定するが、全処理サイクル数に基づいてクロック周波数を設定してもよい。
【０１４９】
第９の実施形態．
第９の実施形態に係るプロセッサシステムは、第５の実施形態に係るプロセッサシステムと比較して、周辺回路３−１ｄ，３−２ｄ，３−３ｄに代えて、周辺回路３−１ｈ，３−２ｈ，３−３ｈを備えることを特徴とし、その他の構成要素及び動作は第５の実施形態と同様であり、その説明を省略する。
【０１５０】
図１０は、本発明の第９の実施形態に係る周辺回路３−１ｈ，３−２ｈ，３−３ｈの構成を示すブロック図である。図６の周辺回路３−１ｄ，３−２ｄ，３−３ｄは、比較回路３０１によって出力される分周比を示す制御信号に基づいて分周器４０３でクロック信号を分周してクロック信号を発生していたが、図１０の周辺回路３−１ｈ，３−２ｈ，３−３ｈは、減算回路３０３の結果に基づいて電圧制御発振器（ＶＣＯ：Ｖｏｌｔａｇｅ  Ｃｏｎｔｒｏｌｌｅｄ  Ｏｓｃｉｌｌａｔｏｒ）の制御電圧を発生してクロック信号を発生する。
【０１５１】
まず、図１０を参照して、周辺回路３−１ｈについて説明する。図１０の周辺回路３−１ｈは、図６の周辺回路３−１ｄと比較して、比較回路３０１に代えて減算回路３０３とｎビット（例えば８ビット、又は１６ビット）のＤＡ変換器（ＤＡＣ：Ｄｉｇｉｔａｌ  ｔｏ  Ａｎａｌｏｇ  Ｃｏｎｖｅｒｔｅｒ）３１０を備えること、及びクロック発生回路４０１に代えて電圧制御発振器４０５を備えることを特徴とし、その他の構成要素は図６の周辺回路３−１ｄと同様でありその説明を省略する。なお、ＤＡ変換器３１０のビット数は、全処理サイクル数格納レジスタ１０２のビット数と等しい又はそれ以上である。ここで、減算回路３０３とＤＡ変換器３１０とは比較部３００Ｃを構成し、電圧制御発振器４０５はクロック発生部４００Ａを構成する。
【０１５２】
マルチプレクサ２０１は、比較回路２０２ｂからの選択信号に基づいて、周辺回路３−２ｈからの全処理サイクル数ＮＡ２を示すデータと周辺回路３−３ｈからの全処理サイクル数ＮＡ３を示すデータとのうちの大きい方の全処理サイクル数ＮＡ４を示すデータを減算回路３０３に出力する。減算回路３０３は、周辺回路３−１ｈの全処理サイクル数ＮＡ１、周辺回路３−２ｈの全処理サイクル数ＮＡ２、並びに周辺回路３−１ｈの全処理サイクル数ＮＡ３が算出されたときに、マルチプレクサ２０１からのデータによって示される全処理サイクル数ＮＡ４から、全処理サイクル数格納レジスタ１０２からのデータによって示される全処理サイクル数ＮＡ１を減算し、その差に基づいて、下記のように減算値を設定し、当該減算値を示すデータをＤＡ変換器３１０に出力する。
（１）差が０以下の場合：減算回路３０３は、０である減算値を示すデータをＤＡ変換器３１０に出力する。このとき、周辺回路３−１ｈの処理時間は、他のどの周辺回路の処理時間よりも長いと予測できる。
（２）差がＭ（Ｍ＞０）の場合：減算回路３０３は、Ｍである減算値を示すデータをＤＡ変換器３１０に出力する。このとき、周辺回路３−１ｈの処理時間は、最も処理量が多い周辺回路の処理時間と比較して、減算値であるＭに対応する時間だけ短いと予測できる。
【０１５３】
ＤＡ変換器３１０は、減算回路３０３からの減算値を示すデータに基づいて、下記の制御電圧を発生して、電圧制御発振器４０５に出力する。ＤＡ変換器３１０は、減算回路３０３からのデータによって示される減算値が大きくなるにつれて電圧制御発振器４０５によって発生されるクロック信号のクロック周波数が減少するように制御電圧を発生する。ここで、減算値が０の場合、ＤＡ変換器３１０は、電圧制御発振器４０５が周辺回路３−１ｈの最高クロック周波数を有するクロック信号を発生する制御電圧を発生し、減算値が２ｎ−１の場合、ＤＡ変換器３１０は、電圧制御発振器４０５が最高クロック周波数よりも低い所定のクロック周波数を有するクロック信号を発生する制御電圧を発生する。
【０１５４】
電圧制御発振器４０５は、ＤＡ変換器３１０からの制御電圧に対応するクロック周波数を有するクロック信号を周辺回路３−１ｈの各回路に出力する。また、周辺回路３−２ｈ，３−３ｈは、上述した周辺回路３−１ｈと同様に構成され、同様に動作する。
【０１５５】
以上説明したように、第９の実施形態によれば、周辺回路３−１ｈは、自身の全処理サイクル数ＮＡ１が、周辺回路３−２ｈの全処理サイクル数ＮＡ２及び周辺回路３−３ｈの全処理サイクル数ＮＡ３のうちのいずれか大きい方の全処理サイクル数ＮＡ４以上の場合、最高クロック周波数を有するクロック信号に基づいて動作し、自身の全処理サイクル数ＮＡ１が全処理サイクル数ＮＡ４未満の場合、全処理サイクル数ＮＡ４と全処理サイクル数ＮＡ１との差に対応する最高クロック周波数よりも低いクロック周波数を有するクロック信号に基づいて動作し、周辺回路３−２ｈ，３−３ｈも同様に動作する。したがって、周辺回路３−１ｈ，３−２ｈ，３−３ｈの処理終了時刻が最も大きい全処理サイクル数を有する周辺回路の処理終了時刻よりも遅くならない範囲で、周辺回路３−１ｈ、周辺回路３−２ｈ、又は周辺回路３−３ｈのクロック周波数が低下して、第９の実施形態に係るプロセッサシステムの処理性能に対する影響を抑えて、第９の実施形態に係るプロセッサシステムの消費電流を低減させることができる。
【０１５６】
また、第９の実施形態によれば、電圧制御発振器４０５を用いてクロック周波数を設定するので、第１の実施形態乃至第８の実施形態のように分周器４０３を用いてクロック周波数を最高クロック周波数の整数分の１に設定する場合よりも高い精度でクロック周波数を設定することができ、より効果的に周辺回路における消費電流を低減させることができる。
【０１５７】
なお、第９の実施形態では、３つの周辺回路３−１ｈ，３−２ｈ，３−３ｈを備えてプロセッサシステムを構成したが、本発明はこれに限らず、マルチプレクサ２０１及び比較回路２０２を４つ以上の入力データに対応できるように変更して、４つ以上の周辺回路を備えてプロセッサシステムを構成してもよい。
【０１５８】
また、第９の実施形態では、比較回路２０２を備えて周辺回路３−１ｈ，３−２ｈ，３−３ｈを構成したが、本発明はこれに限らず、比較回路２０２を備えず、グローバルプロセッサ５からの選択信号をマルチプレクサ２０１に入力するように周辺回路３−１ｈ，３−２ｈ，３−３ｈを構成してもよい。
【０１５９】
また、第９の実施形態では、３つの周辺回路３−１ｈ，３−２ｈ，３−３ｈを備えてプロセッサシステムを構成したが、本発明はこれに限らず、マルチプレクサ２０１及び比較回路２０２を備えずに周辺回路を構成し、２つの周辺回路を備えてプロセッサシステムを構成してもよい。
【０１６０】
また、第９の実施形態では、周辺回路３−１ｈ，３−２ｈ，３−３ｈは全処理サイクル数に基づいてクロック周波数を設定するが、実行サイクル数又は残サイクル数に基づいてクロック周波数を設定してもよい。
【０１６１】
なお、第１の実施形態乃至第８の実施形態では、分周器４０３を用いてクロック発生回路４０１を構成したが、本発明はこれに限らず、分周器４０３に代えてクロック周波数逓倍器を用いてクロック発生回路４０１を構成してもよい。この場合、基準クロック発生器４０２は、周辺回路が動作可能な最低のクロック周波数を有するクロック信号を発生し、比較回路又は除算回路は、他の周辺回路と比較して処理時間が長い場合に、他の周辺回路の逓倍数よりも大きい逓倍数を示す制御信号をクロック周波数逓倍器に出力する。
【０１６２】
また、第１の実施形態乃至第８の実施形態では、クロック発生回路４０１は、比較回路又は除算回路から出力される分周比を示す制御信号に基づいてクロック信号を分周するように構成したが、本発明はこれに限らず、クロック発生回路４０１が、比較回路又は除算回路から出力される制御信号に示された分周比に対して設定すべきクロック周波数の値を記憶したメモリを備え、メモリに記憶された値にしたがってクロック周波数を設定してもよい。
【０１６３】
さらに、第１の実施形態乃至第８の実施形態では、周辺回路の内部でクロック信号を発生するように構成したが、本発明はこれに限らず、外部回路から様々なクロック周波数を有するクロック信号を周辺回路に入力し、比較回路若しくは除算回路から出力される分周比を示す制御信号に基づいて当該周辺回路の最高クロック周波数を有するクロック信号を分周したときのクロック周波数に最も近いクロック周波数を有するクロック信号を選択するように構成してもよい。
【０１６４】
またさらに、第１の実施形態乃至第６の実施形態では、最高クロック周波数を有するクロック信号に対して分周比を設定しているが、本発明はこれに限らず、第７及び第８の実施形態と同様に、現在設定されているクロック周波数に対して分周比を設定するように構成してもよい。
【産業上の利用可能性】
【０１６５】
以上詳述したように、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、当該周辺回路の処理サイクル数を他の周辺回路の処理サイクル数と比較して、当該比較結果に基づいて、当該周辺回路の処理終了時刻が他の周辺回路の処理終了時刻に近づくようなクロック周波数のクロック信号に基づいて動作するので、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【０１６６】
また、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、当該周辺回路の処理時間が他の周辺回路の処理時間と等しい又はより長い場合、当該周辺回路の最高クロック周波数を有するクロック信号に基づいて動作し、当該周辺回路の処理時間が他の周辺回路の処理時間よりも短い場合、当該周辺回路の最高クロック周波数よりも低いクロック周波数を有するクロック信号に基づいて動作するので、複数の周辺回路の処理終了時刻が近づくように、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【０１６７】
さらに、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、当該周辺回路の処理時間が他の周辺回路の処理時間と等しい又はより長い場合、当該周辺回路の現在のクロック周波数を有するクロック信号に基づいて動作し、当該周辺回路の処理時間が他の周辺回路の処理時間よりも短い場合、当該周辺回路の現在のクロック周波数よりも低いクロック周波数を有するクロック信号に基づいて動作するので、複数の周辺回路の処理終了時刻が近づくように、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【０１６８】
またさらに、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、当該周辺回路の処理時間が他の周辺回路の処理時間と等しい又はより長い場合、当該周辺回路の現在のクロック周波数を有するクロック信号に基づいて動作し、当該周辺回路の処理時間が他の周辺回路の処理時間よりも短い場合、当該周辺回路の現在のクロック周波数よりも低いクロック周波数又は所定のクロック周波数のうちの高い方のクロック周波数を有するクロック信号に基づいて動作するので、複数の周辺回路の処理終了時刻が近づくように、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【０１６９】
また、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、当該周辺回路の処理サイクル数を周期的に算出して、当該算出した処理サイクル数を他の周辺回路の処理サイクル数と周期的に比較することによりクロック周波数を周期的に変更するので、処理実行中にストールが発生する、又はクロックウエイトが挿入されるなどによって、処理に遅延が発生した場合にも、遅延発生後の処理サイクル数に基づいてクロック周波数を設定することができ、複数の周辺回路の処理終了時刻が近づくように、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【０１７０】
さらに、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、比較部によって実行される除算の商に基づいて他の周辺回路に対する相対的な処理時間を予測して、当該周辺回路の処理終了時刻が最も長い処理時間を有する周辺回路の処理終了時刻よりも遅くならない範囲でクロック周波数を設定するので、複数の周辺回路の処理終了時刻が最も長い処理時間を有する周辺回路の処理終了時刻よりも遅くならない範囲で、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【０１７１】
またさらに、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、比較部によって実行される減算の結果に基づいて他の周辺回路に対する相対的な処理時間を予測して、当該周辺回路の処理終了時刻が最も長い処理時間を有する周辺回路の処理終了時刻よりも遅くならない範囲でクロック周波数を設定するので、複数の周辺回路の処理終了時刻が最も長い処理時間を有する周辺回路の処理終了時刻よりも遅くならない範囲で、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【０１７２】
また、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、プロセッサからの選択信号に基づいて、複数の他の周辺回路からの各処理サイクル数のうちの１つを選択する選択部を備えたので、３つ以上の周辺回路を備えるプロセッサシステムにおいて、複数の周辺回路の処理終了時刻が近づくように、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【０１７３】
さらに、本発明に係るプロセッサ、半導体集積回路装置、及びプロセッサシステムによれば、各周辺回路は、複数の他の周辺回路からの各処理サイクル数から最長の処理時間を示す処理サイクル数を選択する選択部を備えたので、３つ以上の周辺回路を備えるプロセッサシステムにおいて、複数の周辺回路の処理終了時刻が最も長い処理時間を有する周辺回路の処理終了時刻に近づくように、複数の周辺回路のクロック周波数が低下して、プロセッサ、半導体集積回路装置、及びプロセッサシステムの処理性能に対する影響を抑えて、プロセッサ、半導体集積回路装置、及びプロセッサシステムの消費電流を低減させることができる。
【符号の説明】
【０１７４】
１…プロセッサシステム、
２…プロセッサコア、
３−１，３−１ａ〜３−１ｈ，３−２，３−２ａ〜３−２ｈ，３−３ｃ〜３−３ｈ…周辺回路、
４−１，４−２…メモリ、
５…グローバルプロセッサ、
６…プロセッサエレメントアレイ、
６１…レジスタアレイ、
６２…演算アレイ、
７…プロセッサ、
１００，１００ａ、１００ｂ…算出部、
１０１，１０１ａ，１０１ｂ…シーケンスユニット、
１０１ｍ，１０１ｂｍ…テーブルメモリ、
１０２…全処理サイクル数格納レジスタ、
１０２ａ…実行サイクル数格納レジスタ、
１０２ｂ…残サイクル数格納レジスタ、
１０３ａ，１０３ｂ…実行サイクル数カウンタ回路、
１０４ｂ…減算器、
２００，２００Ａ，２００Ａａ，２００Ａｂ…選択部、
２０１…マルチプレクサ、
２０２，２０２ａ，２０２ｂ…比較回路、
３００，３００ａ，３００ｂ、３００Ａ，３００Ｂａ，３００Ｂｂ，３００Ｃ…比較部、
３０１，３０１ａ，３０１ｂ，３０５…比較回路、
３０２，３０２ａ，３０２ｂ…除算回路、
３０３…減算回路、
３０４…乗算回路、
３０６…上限値格納レジスタ、
３０７…分周比格納レジスタ、
３０９…マルチプレクサ、
３１０…ＤＡ変換器（ＤＡＣ）、
４００，４００Ａ…クロック発生部、
４０１…クロック発生回路、
４０２…基準クロック発生器、
４０３…分周器、
４０５…電圧制御発振器（ＶＣＯ）。
【先行技術文献】
【特許文献】
【０１７５】
【特許文献１】特許３８７７５１８号公報。
【特許文献２】特許４１２３６４０号公報。
【特許文献３】特開２００３−２０２９３５号公報。
【特許文献４】特開２００７−３０５１４８号公報。
【図１】
2012058897.tif 000003
【図２】
2012058897.tif 000004
【図３】
2012058897.tif 000005
【図４】
2012058897.tif 000006
【図５】
2012058897.tif 000007
【図６】
2012058897.tif 000008
【図７】
2012058897.tif 000009
【図８】
2012058897.tif 000010
【図９】
2012058897.tif 000011
【図１０】
2012058897.tif 000012