(57)【要約】【課題】複数のプロセッサを備えたプロセッサシステムの消費電力を処理能力を低下させることなく低減する。【解決手段】命令解析部４０２は記憶部１００に記憶されている所定量の一連の命令コードを先読みして解析し、各命令がＣＰＵ１０３とＨＷＥ１０４で並列に実行可能な場合に、標準実行時間推定部４０３、換算実行時間算出部４０４が標準実行時間の推定、換算実行時間の算出をし、割り当て・クロック周波数決定部４０５はＣＰＵ１０３およびＨＷＥ１０４を最高クロック周波数で動作させた場合に待ち時間が生じる方に最高クロック周波数よりも低い周波数のクロック信号を供給することにより消費電力が最小になるようにプロセッサの割り当て、クロック周波数を決定し、クロック制御部１０６は出力するクロック信号の周波数を切り替え、命令割り当て制御部１０２は命令コードをＣＰＵ１０３等に転送して実行させる。【選択図】図１３
2011129147.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサを備えたプロセッサシステムであって、
上記プロセッサに実行させる命令を読み込んで、上記命令が実行される上記プロセッサの割り当てを制御する割り当て制御手段と、
上記割り当てにより各上記プロセッサに実行される上記命令に応じて、上記各プロセッサに供給するクロック信号の周波数を制御するクロック制御手段と、
を備え、
上記割り当て制御手段は、
上記命令が、上記各プロセッサによって実行可能かどうか、および上記命令の実行タイミングの制約を解析する命令解析手段と、
上記命令が上記各プロセッサによって実行される場合に要する実行時間を推定する実行時間推定手段と、
上記解析結果、および上記推定された実行時間に基づいて、上記命令が実行される上記プロセッサの割り当てを決定する割り当て決定手段とを備え、
上記割り当て決定手段による決定に応じて、上記命令が実行される上記プロセッサの割り当てを制御するように構成されたことを特徴とするプロセッサシステム。
【請求項２】
請求項１のプロセッサシステムであって、
上記クロック制御手段は、
上記推定された実行時間、および上記決定されたプロセッサの割り当てに基づいて、上記各プロセッサをそれぞれ所定の基準の周波数のクロック信号で動作させた場合に待ち時間が生じる上記プロセッサに、上記所定の基準の周波数よりも低い周波数のクロック信号を供給するように決定するクロック周波数決定手段を備え、
上記クロック周波数決定手段による決定に応じて、上記各プロセッサに供給するクロック信号の周波数を制御するように構成されたことを特徴とするプロセッサシステム。
【請求項３】
請求項１または請求項２の何れか１つのプロセッサシステムであって、
上記割り当て決定手段は、上記解析結果、および上記推定された実行時間に基づいて、上記命令が複数の上記プロセッサによって実行可能である場合に、上記命令の実行時間が最も短い上記プロセッサに対して、上記割り当てを決定するように構成されたことを特徴とするプロセッサシステム。
【請求項４】
請求項１または請求項２の何れか１つのプロセッサシステムであって、
上記割り当て決定手段は、上記解析結果、および上記推定された実行時間に基づいて、所定数の一連の上記命令の実行に要する時間が最も短くなるように、上記割り当てを決定するように構成されたことを特徴とするプロセッサシステム。
【請求項５】
請求項２のプロセッサシステムであって、
上記割り当て決定手段は、所定数の一連の上記命令についての、上記各命令と、上記各命令が実行される上記各プロセッサとの割り当ての複数種類の組み合わせのうち、上記各プロセッサをそれぞれ所定の基準の周波数のクロック信号で動作させた場合に待ち時間が生じる上記プロセッサを、上記所定の基準の周波数よりも低い周波数のクロック信号で動作させたときに、上記所定数の一連の命令の実行に要する消費電力が最も小さい組み合わせを上記割り当てとして決定する一方、
上記クロック周波数決定手段は、上記割り当てについての、上記所定の基準の周波数よりも低い周波数のクロック信号を、上記プロセッサに供給するクロック信号の周波数として決定するように構成されたことを特徴とするプロセッサシステム。
【請求項６】
請求項３から請求項５の何れか１つのプロセッサシステムであって、
さらに、上記各プロセッサによる上記命令の合計実行時間の比率の範囲を設定可能な処理比率設定手段を備え、
上記割り当て決定手段は、上記設定された合計実行時間の比率の範囲内で、上記割り当てを決定するように構成されたことを特徴とするプロセッサシステム。
【請求項７】
請求項１から請求項６の何れか１つのプロセッサシステムであって、
さらに、上記クロック制御手段による上記クロック信号の周波数の制御に対応して、上記各プロセッサに供給する電源電圧、および上記各プロセッサを構成するトランジスタの基板ノードに供給する電圧のうちの少なくとも何れか１つを制御する電圧制御手段を備えたことを特徴とするプロセッサシステム。
【請求項８】
請求項１から請求項７の何れか１つのプロセッサシステムであって、
さらに、上記クロック信号の周波数、または上記クロック信号の周波数および上記電圧制御手段によって制御される電圧に応じて、冷却手段の動作を制御する冷却制御手段を備えたことを特徴とするプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば中央処理装置（ＣＰＵ）や、ハードウェア演算エンジン（ＨＷＥ）、コプロセッサなどと称される処理演算装置等の複数のプロセッサを備えたプロセッサシステムにおける消費電力の低減に関する技術に属するものである。
【背景技術】
【０００２】
従来より、ＣＰＵの消費電力を低減するために、ＣＰＵの処理負荷が軽いときにクロック信号の周波数を低下させる技術が知られている（例えば、特許文献１参照）。また、ＣＰＵやコプロセッサなどの複数のユニットを有するプロセッサシステムにおいて、デコードされた命令がno-operationであるときに、対応するユニットの電源をオフとすることにより、システム全体の消費電力や発熱量の低減を図る技術も知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−３４５９９号公報
【特許文献２】特開２０００−１１２７５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のように単にクロック信号の周波数を低下させる手法は、処理負荷が軽いときには用いることができるものの、高い処理能力が必要とされる場合には適用することができないため、システム全体として必ずしも大幅に消費電力を低減させることはできない。
【０００５】
また、処理を行わないユニットの電源をオフにする手法では、処理が行われる際の消費電力自体は低減されないため、やはり、必ずしも大幅に消費電力を低減させることはできない。
【０００６】
上記の問題点に鑑み、本発明は、特に複数のプロセッサを備えたプロセッサシステムの消費電力を大幅に低減することができ、しかも、処理能力と消費電力との両立を図ることも可能にすることを課題とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、請求項１の発明が講じた解決手段は、
複数のプロセッサを備えたプロセッサシステムであって、
上記プロセッサに実行させる命令を読み込んで、上記命令が実行される上記プロセッサの割り当てを制御する割り当て制御手段と、
上記割り当てにより各上記プロセッサに実行される上記命令に応じて、上記各プロセッサに供給するクロック信号の周波数を制御するクロック制御手段と、
を備え、
上記割り当て制御手段は、
上記命令が、上記各プロセッサによって実行可能かどうか、および上記命令の実行タイミングの制約を解析する命令解析手段と、
上記命令が上記各プロセッサによって実行される場合に要する実行時間を推定する実行時間推定手段と、
上記解析結果、および上記推定された実行時間に基づいて、上記命令が実行される上記プロセッサの割り当てを決定する割り当て決定手段とを備え、
上記割り当て決定手段による決定に応じて、上記命令が実行される上記プロセッサの割り当てを制御するように構成されたことを特徴とする。
【０００８】
これにより、命令の解析に基づいてプロセッサの割り当てが決定されるので、特にプロセッサの割り当てを示す情報が含まれていないような命令コードの命令を実行させる場合でも、消費電力を低減し得るように割り当てを制御することができる。ここで、上記解析の際に参照する命令の数が多いほど、命令の実行タイミングの制約や各命令の実行時間の相互関係などが適切に判断でき、より確実に消費電力が低減されるようにすることが容易にできるが、一方上記命令の数を多くすることは、解析をする回路の規模を増大させることになるので、プロセッサシステムに必要とされる処理能力や消費電力などに応じた数の命令が解析の対象となるようにすればよい。また、プロセッサに割り当てる命令の単位は、１命令ごとに限らず、例えばまとまりを持った処理内容の一連の命令が何れかのプロセッサで高いクロック効率で実行できる場合などには、そのような一連の命令を単位として割り当てするようにしてもよい。また、上記実行時間は、文字通り時間の単位の値に限らず、例えばクロック数のように時間を種々換算して得られる値など、実質的に実行時間に対応する値であればよい。
【０００９】
また、請求項２の発明は、
請求項１のプロセッサシステムであって、
上記クロック制御手段は、
上記推定された実行時間、および上記決定されたプロセッサの割り当てに基づいて、上記各プロセッサをそれぞれ所定の基準の周波数のクロック信号で動作させた場合に待ち時間が生じる上記プロセッサに、上記所定の基準の周波数よりも低い周波数のクロック信号を供給するように決定するクロック周波数決定手段を備え、
上記クロック周波数決定手段による決定に応じて、上記各プロセッサに供給するクロック信号の周波数を制御するように構成されたことを特徴とする。
【００１０】
これにより、上記待ち時間に応じてクロック信号の周波数を低くすることによって、確実に、処理能力を低下させることなく消費電力を低減することができる。しかも、命令の解析に基づいてクロック周波数が決定されるので、特にクロック周波数を示す情報が含まれていないような命令コードの命令を実行させる場合でも、消費電力を低減し得るようにクロック周波数を制御することができる。
【００１１】
また、請求項３の発明は、
請求項１または請求項２の何れか１つのプロセッサシステムであって、
上記割り当て決定手段は、上記解析結果、および上記推定された実行時間に基づいて、上記命令が複数の上記プロセッサによって実行可能である場合に、上記命令の実行時間が最も短い上記プロセッサに対して、上記割り当てを決定するように構成されたことを特徴とする。
【００１２】
これにより、各命令を実行時間が最も短いプロセッサで実行させることができるので、処理効率を高くして、プロセッサを構成する素子の無駄なスイッチング回数を減少させることができ、クロック周波数を制御することによる効果に加えて、より消費電力を低減することができる。
【００１３】
また、請求項４の発明は、
請求項１または請求項２の何れか１つのプロセッサシステムであって、
上記割り当て決定手段は、上記解析結果、および上記推定された実行時間に基づいて、所定数の一連の上記命令の実行に要する時間が最も短くなるように、上記割り当てを決定するように構成されたことを特徴とする。
【００１４】
これにより、前記のようにクロック周波数の制御によって消費電力を低減するとともに、各プロセッサによる命令実行の並列度を高くして全体の処理能力を向上させることもできる。
【００１５】
また、請求項５の発明は、
請求項２のプロセッサシステムであって、
上記割り当て決定手段は、所定数の一連の上記命令についての、上記各命令と、上記各命令が実行される上記各プロセッサとの割り当ての複数種類の組み合わせのうち、上記各プロセッサをそれぞれ所定の基準の周波数のクロック信号で動作させた場合に待ち時間が生じる上記プロセッサを、上記所定の基準の周波数よりも低い周波数のクロック信号で動作させたときに、上記所定数の一連の命令の実行に要する消費電力が最も小さい組み合わせを上記割り当てとして決定する一方、
上記クロック周波数決定手段は、上記割り当てについての、上記所定の基準の周波数よりも低い周波数のクロック信号を、上記プロセッサに供給するクロック信号の周波数として決定するように構成されたことを特徴とする。
【００１６】
これにより、プロセッサの割り当てを最適化して、大幅に消費電力を低減することができる。すなわち、プロセッサの割り当て方によって、各プロセッサに生じる待ち時間が異なり、その待ち時間に応じてクロック周波数を低くすることによる消費電力の低減程度が異なるので、上記のように割り当ておよびクロック周波数が決定されるようにすることによって、より確実に消費電力を低減することができる。
【００１７】
また、請求項６の発明は、
請求項３から請求項５の何れか１つのプロセッサシステムであって、
さらに、上記各プロセッサによる上記命令の合計実行時間の比率の範囲を設定可能な処理比率設定手段を備え、
上記割り当て決定手段は、上記設定された合計実行時間の比率の範囲内で、上記割り当てを決定するように構成されたことを特徴とする。
【００１８】
これにより、１つのまたは少数のプロセッサに極端に多くの命令が割り当てられないようにすることができるので、各プロセッサによる処理の並列度が大幅に低下してプログラム全体の実行時間が長くなるのを防止することができる。また、一連の命令の実行に要する時間が短くなるような割り当てや消費電力が小さくなるような割り当てを決定するために考慮する場合分け（割り当ての組み合わせ）の数を少なく抑えることができるので、割り当て等をするための回路規模を低減することもできる。
【００１９】
また、請求項７の発明は、
請求項１から請求項６の何れか１つのプロセッサシステムであって、
さらに、上記クロック制御手段による上記クロック信号の周波数の制御に対応して、上記各プロセッサに供給する電源電圧、および上記各プロセッサを構成するトランジスタの基板ノードに供給する電圧のうちの少なくとも何れか１つを制御する電圧制御手段を備えたことを特徴とする。
【００２０】
このように電源電圧や基板電圧を制御することにより、さらに消費電力を低減することができる。すなわち、前記のようにクロック周波数が所定の基準の周波数より低く設定されると、回路の遅延マージンが大きくなるので、電源電圧を低くしたり、プロセッサを構成する素子の閾値電圧を高くするように基板電圧を制御することができる。そして、電源電圧を低くすると、消費電力は電源電圧の２乗に比例して小さくなり、また、閾値電圧を高くすると素子のリーク電流が小さくなる。それゆえ、クロック周波数を低くして無駄なスイッチング回数を減少させることによる消費電力低減効果に加えて、一層、消費電力を小さくすることができる。
【００２１】
また、請求項８の発明は、
請求項１から請求項７の何れか１つのプロセッサシステムであって、
さらに、上記クロック信号の周波数、または上記クロック信号の周波数および上記電圧制御手段によって制御される電圧に応じて、冷却手段の動作を制御する冷却制御手段を備えたことを特徴とする。
【００２２】
これにより、必要充分な冷却を行って、プロセッサシステムの熱暴走などを確実に防止するとともに、冷却のために要する消費電力も小さく抑えることができる。
【００２３】
上記の課題を解決するために、第１の例が講じた解決手段は、
複数のプロセッサを備えたプロセッサシステムであって、
上記プロセッサに実行させる命令を読み込んで、上記命令が実行される上記プロセッサの割り当てを制御する割り当て制御手段と、
上記割り当てにより各上記プロセッサに実行される上記命令に応じて、上記各プロセッサに供給するクロック信号の周波数を制御するクロック制御手段と、
を備えたことを特徴とする。
【００２４】
これにより、命令の実行時間に余裕のあるプロセッサ、すなわち他のプロセッサによる命令の実行が終了するまで待ち時間が生じるようなプロセッサに供給するクロック信号の周波数を低くすることができ、プロセッサシステム全体の処理能力を低下させることなく消費電力を低減することができる。
【００２５】
また、第２の例は、
第１の例のプロセッサシステムであって、
上記割り当て制御手段は、
上記命令が、上記各プロセッサによって実行可能かどうか、および上記命令の実行タイミングの制約を解析する命令解析手段と、
上記命令が上記各プロセッサによって実行される場合に要する実行時間を推定する実行時間推定手段と、
上記解析結果、および上記推定された実行時間に基づいて、上記命令が実行される上記プロセッサの割り当てを決定する割り当て決定手段とを備え、
上記割り当て決定手段による決定に応じて、上記命令が実行される上記プロセッサの割り当てを制御するように構成されたことを特徴とする。
【００２６】
これにより、命令の解析に基づいてプロセッサの割り当てが決定されるので、特にプロセッサの割り当てを示す情報が含まれていないような命令コードの命令を実行させる場合でも、消費電力を低減し得るように割り当てを制御することができる。ここで、上記解析の際に参照する命令の数が多いほど、命令の実行タイミングの制約や各命令の実行時間の相互関係などが適切に判断でき、より確実に消費電力が低減されるようにすることが容易にできるが、一方上記命令の数を多くすることは、解析をする回路の規模を増大させることになるので、プロセッサシステムに必要とされる処理能力や消費電力などに応じた数の命令が解析の対照となるようにすればよい。また、プロセッサに割り当てる命令の単位は、１命令ごとに限らず、例えばまとまりを持った処理内容の一連の命令が何れかのプロセッサで高いクロック効率で実行できる場合などには、そのような一連の命令を単位として割り当てするようにしてもよい。また、上記実行時間は、文字通り時間の単位の値に限らず、例えばクロック数のように時間を種々換算して得られる値など、実質的に実行時間に対応する値であればよい。
【００２７】
また、第３の例は、
第２の例のプロセッサシステムであって、
上記クロック制御手段は、
上記推定された実行時間、および上記決定されたプロセッサの割り当てに基づいて、上記各プロセッサをそれぞれ所定の基準の周波数のクロック信号で動作させた場合に待ち時間が生じる上記プロセッサに、上記所定の基準の周波数よりも低い周波数のクロック信号を供給するように決定するクロック周波数決定手段を備え、
上記クロック周波数決定手段による決定に応じて、上記各プロセッサに供給するクロック信号の周波数を制御するように構成されたことを特徴とする。
【００２８】
これにより、上記待ち時間に応じてクロック信号の周波数を低くすることによって、確実に、処理能力を低下させることなく消費電力を低減することができる。しかも、命令の解析に基づいてクロック周波数が決定されるので、特にクロック周波数を示す情報が含まれていないような命令コードの命令を実行させる場合でも、消費電力を低減し得るようにクロック周波数を制御することができる。
【００２９】
また、第４の例は、
第２の例または第３の例の何れか１つのプロセッサシステムであって、
上記割り当て決定手段は、上記解析結果、および上記推定された実行時間に基づいて、上記命令が複数の上記プロセッサによって実行可能である場合に、上記命令の実行時間が最も短い上記プロセッサに対して、上記割り当てを決定するように構成されたことを特徴とする。
【００３０】
これにより、各命令を実行時間が最も短いプロセッサで実行させることができるので、処理効率を高くして、プロセッサを構成する素子の無駄なスイッチング回数を減少させることができ、クロック周波数を制御することによる効果に加えて、より消費電力を低減することができる。
【００３１】
また、第５の例は、
第２の例または第３の例の何れか１つのプロセッサシステムであって、
上記割り当て決定手段は、上記解析結果、および上記推定された実行時間に基づいて、所定数の一連の上記命令の実行に要する時間が最も短くなるように、上記割り当てを決定するように構成されたことを特徴とする。
【００３２】
これにより、前記のようにクロック周波数の制御によって消費電力を低減するとともに、各プロセッサによる命令実行の並列度を高くして全体の処理能力を向上させることもできる。
【００３３】
また、第６の例は、
第３の例の命令列最適化装置であって、
上記割り当て決定手段は、所定数の一連の上記命令についての、上記各命令と、上記各命令が実行される上記各プロセッサとの割り当ての複数種類の組み合わせのうち、上記各プロセッサをそれぞれ所定の基準の周波数のクロック信号で動作させた場合に待ち時間が生じる上記プロセッサを、上記所定の基準の周波数よりも低い周波数のクロック信号で動作させたときに、上記所定数の一連の命令の実行に要する消費電力が最も小さい組み合わせを上記割り当てとして決定する一方、
上記クロック周波数決定手段は、上記割り当てについての、上記所定の基準の周波数よりも低い周波数のクロック信号を、上記プロセッサに供給するクロック信号の周波数として決定するように構成されたことを特徴とする。
【００３４】
これにより、プロセッサの割り当てを最適化して、大幅に消費電力を低減することができる。すなわち、プロセッサの割り当て方によって、各プロセッサに生じる待ち時間が異なり、その待ち時間に応じてクロック周波数を低くすることによる消費電力の低減程度が異なるので、上記のように割り当ておよびクロック周波数が決定されるようにすることによって、より確実に消費電力を低減することができる。
【００３５】
また、第７の例は、
第４の例から第６の例の何れか１つのプロセッサシステムであって、
さらに、上記各プロセッサによる上記命令の合計実行時間の比率の範囲を設定可能な処理比率設定手段を備え、
上記割り当て決定手段は、上記設定された合計実行時間の比率の範囲内で、上記割り当てを決定するように構成されたことを特徴とする。
【００３６】
これにより、１つのまたは少数のプロセッサに極端に多くの命令が割り当てられないようにすることができるので、各プロセッサによる処理の並列度が大幅に低下してプログラム全体の実行時間が長くなるのを防止することができる。また、一連の命令の実行に要する時間が短くなるような割り当てや消費電力が小さくなるような割り当てを決定するために考慮する場合分け（割り当ての組み合わせ）の数を少なく抑えることができるので、割り当て等をするための回路規模を低減することもできる。
【００３７】
また、第８の例は、
第１の例のプロセッサシステムであって、
上記割り当て制御手段は、上記命令に含まれる割り当て制御情報に基づいて、上記割り当てを制御するとともに、
上記クロック制御手段は、上記命令が上記各プロセッサによって実行される場合に要する実行時間を推定するとともに、上記推定された実行時間、および上記割り当て制御情報によって示されるプロセッサの割り当てに基づいて、上記各プロセッサをそれぞれ所定の基準の周波数のクロック信号で動作させた場合に待ち時間が生じる上記プロセッサに、上記所定の基準の周波数よりも低い周波数のクロック信号を供給するように決定するクロック周波数決定手段を備え、上記クロック周波数決定手段による決定に応じて、上記各プロセッサに供給するクロック信号の周波数を制御するように構成されたことを特徴とする。
【００３８】
このように、前記第１の例について説明したように、クロック周波数を制御することによる消費電力の低減効果が得られるとともに、割り当て制御情報に基づいてプロセッサの割り当てが制御されるようにすることにより、割り当てのために命令の解析回路等を設ける必要がないので、小さな回路規模で消費電力を低減することができる。
【００３９】
また、第９の例は、
第１の例のプロセッサシステムであって、
上記割り当て制御手段は、上記命令に含まれる割り当て制御情報に基づいて、上記割り当てを制御するとともに、
上記クロック制御手段は、上記命令に含まれるクロック制御情報に基づいて、上記クロック信号の周波数を制御することを特徴とする。
【００４０】
このように、プロセッサの割り当て制御と共にクロック周波数の制御もクロック制御情報に基づいて行われるようにすることにより、一層、回路規模を小さく抑えることができる。
【００４１】
また、第１０の例は、
第１の例から第９の例の何れか１つのプロセッサシステムであって、
さらに、上記クロック制御手段による上記クロック信号の周波数の制御に対応して、上記各プロセッサに供給する電源電圧、および上記各プロセッサを構成するトランジスタの基板ノードに供給する電圧のうちの少なくとも何れか１つを制御する電圧制御手段を備えたことを特徴とする。
【００４２】
このように電源電圧や基板電圧を制御することにより、さらに消費電力を低減することができる。すなわち、前記のようにクロック周波数が所定の基準の周波数より低く設定されると、回路の遅延マージンが大きくなるので、電源電圧を低くしたり、プロセッサを構成する素子の閾値電圧を高くするように基板電圧を制御することができる。そして、電源電圧を低くすると、消費電力は電源電圧の２乗に比例して小さくなり、また、閾値電圧を高くすると素子のリーク電流が小さくなる。それゆえ、クロック周波数を低くして無駄なスイッチング回数を減少させることによる消費電力低減効果に加えて、一層、消費電力を小さくすることができる。
【００４３】
また、第１１の例は、
第１の例から第１０の例の何れか１つのプロセッサシステムであって、
さらに、上記クロック信号の周波数、または上記クロック信号の周波数および上記電圧制御手段によって制御される電圧に応じて、冷却手段の動作を制御する冷却制御手段を備えたことを特徴とする。
【００４４】
これにより、必要充分な冷却を行って、プロセッサシステムの熱暴走などを確実に防止するとともに、冷却のために要する消費電力も小さく抑えることができる。
【００４５】
また、第１２の例は、
複数のプロセッサを備えたプロセッサシステムによって実行される命令列を最適化する命令列最適化装置であって、
上記命令列における各命令が、各上記プロセッサによって実行可能かどうか、および上記各命令の実行タイミングの制約を解析する命令解析手段と、
上記各命令が上記各プロセッサによって実行される場合に要する実行時間を推定する実行時間推定手段と、
上記解析結果、および上記推定された実行時間に基づいて、上記各命令が実行される上記プロセッサの割り当てを決定する割り当て決定手段と、
上記割り当て決定手段による決定に応じて、割り当て制御情報を上記命令列に付加する割り当て制御情報付加手段と、
を備えたことを特徴とする。
【００４６】
また、第２０の例は、
複数のプロセッサを備えたプロセッサシステムによって実行される命令列を最適化する命令列最適化プログラムであって、
上記命令列における各命令が、各上記プロセッサによって実行可能かどうか、および上記各命令の実行タイミングの制約を解析する命令解析ステップと、
上記各命令が上記各プロセッサによって実行される場合に要する実行時間を推定する実行時間推定ステップと、
上記解析結果、および上記推定された実行時間に基づいて、上記各命令が実行される上記プロセッサの割り当てを決定する割り当て決定ステップと、
上記割り当て決定ステップによる決定に応じて、割り当て制御情報を上記命令列に付加する割り当て制御情報付加ステップと、
をコンピュータに実行させることを特徴とする。
【００４７】
これにより、前記第８の例について説明したような、小さな回路規模でプロセッサの割り当てを制御し、消費電力を低減し得るプロセッサシステムによって実行可能な命令列を容易に生成することができる。
【００４８】
また、第１３の例は、
第１２の例の命令列最適化装置であって、さらに、
上記割り当てにより上記各プロセッサに実行される上記命令に応じて、上記各プロセッサに供給するクロック信号の周波数を決定するクロック周波数決定手段と、
上記クロック周波数決定手段による決定に応じて、クロック制御情報を上記命令列に付加するクロック制御情報付加手段と、
を備えたことを特徴とする。
【００４９】
また、第２１の例は、
第２０の例の命令列最適化プログラムであって、さらに、
上記割り当てにより上記各プロセッサに実行される上記命令に応じて、上記各プロセッサに供給するクロック信号の周波数を決定するクロック周波数決定ステップと、
上記クロック周波数決定ステップによる決定に応じて、クロック制御情報を上記命令列に付加するクロック制御情報付加ステップと、
をコンピュータに実行させることを特徴とする。
【００５０】
これにより、前記第９の例について説明したような、より小さな回路規模でプロセッサの割り当ておよびクロック周波数を制御し、消費電力を低減し得るプロセッサシステムによって実行可能な命令列を容易に生成することができる。
【００５１】
また、第１４の例は、
第１３の例の命令列最適化装置であって、
上記クロック周波数決定手段は、上記推定された実行時間、および上記決定されたプロセッサの割り当てに基づいて、上記各プロセッサをそれぞれ所定の基準の周波数のクロック信号で動作させた場合に待ち時間が生じる上記プロセッサに、上記所定の基準の周波数よりも低い周波数のクロック信号を供給するように決定するように構成されたことを特徴とする。
【００５２】
また、第２２の例は、
第２１の例の命令列最適化プログラムであって、
上記クロック周波数決定ステップは、上記推定された実行時間、および上記決定されたプロセッサの割り当てに基づいて、上記各プロセッサをそれぞれ所定の基準の周波数のクロック信号で動作させた場合に待ち時間が生じる上記プロセッサに、上記所定の基準の周波数よりも低い周波数のクロック信号を供給するように決定することを特徴とする。
【００５３】
これにより、生成された命令列を前記第９の例について説明したようなプロセッサシステムによって実行させる際に、上記待ち時間に応じてクロック信号の周波数が低くされることによって、確実に、プロセッサシステムの処理能力を低下させることなく消費電力を低減することができる。
【００５４】
また、第１５の例は、
第１２の例から第１４の例の何れか１つの命令列最適化装置であって、
上記割り当て決定手段は、上記解析結果、および上記推定された実行時間に基づいて、上記命令が複数の上記プロセッサによって実行可能である場合に、上記命令の実行時間が最も短い上記プロセッサに対して、上記割り当てを決定するように構成されたことを特徴とする。
【００５５】
また、第２３の例は、
第２０の例から第２２の例の何れか１つの命令列最適化プログラムであって、
上記割り当て決定ステップは、上記解析結果、および上記推定された実行時間に基づいて、上記命令が複数の上記プロセッサによって実行可能である場合に、上記命令の実行時間が最も短い上記プロセッサに対して、上記割り当てを決定することを特徴とする。
【００５６】
これにより、生成された命令列を前記第８の例または第９の例について説明したようなプロセッサシステムによって実行させる際に、各命令を実行時間が最も短いプロセッサで実行させることができるので、クロック効率を高くして、プロセッサを構成する素子の無駄なスイッチング回数を減少させることができ、クロック周波数を制御することによる効果に加えて、より消費電力を低減することができる。
【００５７】
また、第１６の例は、
第１２の例から第１４の例の何れか１つの命令列最適化装置であって、
上記割り当て決定手段は、上記解析結果、および上記推定された実行時間に基づいて、所定数の一連の上記命令の実行に要する時間が最も短くなるように、上記割り当てを決定するように構成されたことを特徴とする。
【００５８】
また、第２４の例は、
第２０の例から第２２の例の何れか１つの命令列最適化プログラムであって、
上記割り当て決定ステップは、上記解析結果、および上記推定された実行時間に基づいて、所定数の一連の上記命令の実行に要する時間が最も短くなるように、上記割り当てを決定することを特徴とする。
【００５９】
これにより、生成された命令列を前記第８の例または第９の例について説明したようなプロセッサシステムによって実行させる際に、前記のようにクロック周波数の制御によって消費電力を低減するとともに、各プロセッサによる命令実行の並列度を高くして全体の処理能力を向上させることもできる。
【００６０】
また、第１７の例は、
第１３の例または第１４の例の何れか１つの命令列最適化装置であって、
上記割り当て決定手段は、所定数の一連の上記命令についての、上記各命令と、上記各命令が実行される上記各プロセッサとの割り当ての複数種類の組み合わせのうち、上記各プロセッサをそれぞれ所定の基準の周波数のクロック信号で動作させた場合に待ち時間が生じる上記プロセッサを、上記所定の基準の周波数よりも低い周波数のクロック信号で動作させたときに、上記所定数の一連の命令の実行に要する消費電力が最も小さい組み合わせを上記割り当てとして決定する一方、
上記クロック周波数決定手段は、上記割り当てについての、上記所定の基準の周波数よりも低い周波数のクロック信号を、上記プロセッサに供給するクロック信号の周波数として決定するように構成されたことを特徴とする。
【００６１】
また、第２５の例は、
第２１の例または第２２の例の何れか１つの命令列最適化プログラムであって、
上記割り当て決定ステップは、所定数の一連の上記命令についての、上記各命令と、上記各命令が実行される上記各プロセッサとの割り当ての複数種類の組み合わせのうち、上記各プロセッサをそれぞれ所定の基準の周波数のクロック信号で動作させた場合に待ち時間が生じる上記プロセッサを、上記所定の基準の周波数よりも低い周波数のクロック信号で動作させたときに、上記所定数の一連の命令の実行に要する消費電力が最も小さい組み合わせを上記割り当てとして決定する一方、
上記クロック周波数決定ステップは、上記割り当てについての、上記所定の基準の周波数よりも低い周波数のクロック信号を、上記プロセッサに供給するクロック信号の周波数として決定することを特徴とする。
【００６２】
これにより、生成された命令列を前記第８の例または第９の例について説明したようなプロセッサシステムによって実行させる際に、プロセッサの割り当てが最適化されるようにして、大幅に消費電力を低減することができる。すなわち、プロセッサの割り当て方によって、各プロセッサに生じる待ち時間が異なり、その待ち時間に応じてクロック周波数を低くすることによる消費電力の低減程度が異なるので、上記のように割り当ておよびクロック周波数が決定されるようにすることによって確実に消費電力を低減することができる。
【００６３】
また、第１８の例は、
第１５の例から第１７の例の何れか１つの命令列最適化装置であって、
さらに、上記各プロセッサによる上記命令の合計実行時間の比率の範囲を設定可能な処理比率設定手段を備え、
上記割り当て決定手段は、上記設定された合計実行時間の比率の範囲内で、上記割り当てを決定するように構成されたことを特徴とする。
【００６４】
また、第２６の例は、
第２３の例から第２５の例の何れか１つの命令列最適化プログラムであって、
さらに、上記各プロセッサによる上記命令の合計実行時間の比率の範囲を設定可能な処理比率設定ステップをコンピュータに実行させるとともに、
上記割り当て決定ステップは、上記設定された合計実行時間の比率の範囲内で、上記割り当てを決定することを特徴とする。
【００６５】
これにより、生成された命令列を前記第８の例または第９の例について説明したようなプロセッサシステムによって実行させる際に、１つのまたは少数のプロセッサに極端に多くの命令が割り当てられないようにすることができるので、各プロセッサによる処理の並列度が大幅に低下してプログラム全体の実行時間が長くなるのを防止することができる。また、プロセッサシステムにおいて一連の命令の実行に要する時間が短くなるような割り当てや消費電力が小さくなるような割り当てを決定するために考慮する場合分け（割り当ての組み合わせ）の数を少なく抑えることができるので、割り当て等をするための処理時間を低減することもでき、割り当て制御情報等の付加を高速に行わせることができる。
【００６６】
また、第１９の例は、
第１２の例から第１８の例の何れか１つの命令列最適化装置であって、
上記命令列における各命令の順序を並べ替えて、上記命令列が上記プロセッサシステムによって実行される際の消費電力が並べ替える前よりも小さくなる順序に並べ替える並べ替え手段を備えたことを特徴とする。
【００６７】
また、第２７の例は、
第２０の例から第２６の例の何れか１つの命令列最適化プログラムであって、
上記命令列における各命令の順序を並べ替えて、上記命令列が上記プロセッサシステムによって実行される際の消費電力が並べ替える前よりも小さくなる順序に並べ替える並べ替えステップをコンピュータに実行させることを特徴とする。
【００６８】
これにより、命令の実行順序を最適化して生成された命令列を前記第８の例または第９の例について説明したようなプロセッサシステムによって実行させる際に、大幅に消費電力を低減することができる。すなわち、命令の実行順序によって、各プロセッサに生じる待ち時間が異なることがあり、その待ち時間に応じてクロック周波数を低くすることによる消費電力の低減程度が異なるので、待ち時間を有効に利用してクロック周波数を低くすることができ、したがって、一層、消費電力を低減することが容易にできる。
【発明の効果】
【００６９】
以上のように本発明によると、プロセッサごとに、実行される命令に応じてクロック周波数を制御することにより、処理能力を低下させることなく、消費電力を低減することができる。さらに、上記クロック周波数の制御と対応させて、各プロセッサに供給される電源電圧や基板電圧を制御することにより、一層、消費電力を低減することができる。
【図面の簡単な説明】
【００７０】
【図１】実施の形態１のプロセッサシステムの要部の構成を示すブロック図である。
【図２】命令コードの例を示す説明図である。
【図３】命令コードに付加されたクロック制御フラグの例を示す説明図である。
【図４】実施の形態１のプロセッサシステムの動作を示すフローチャートである。
【図５】実施の形態１のプロセッサシステムの動作状態を示す説明図である。
【図６】実施の形態２の命令列最適化装置の構成を示すブロック図である。
【図７】実施の形態２の命令列最適化装置によるプロセッサへの命令への割り当てとクロック周波数と実行時間との関係の例を示す説明図である。
【図８】実施の形態２の命令列最適化装置の動作を示すフローチャートである。
【図９】実施の形態２の変形例の命令列最適化装置の構成を示すブロック図である。
【図１０】実施の形態２の変形例の命令列最適化装置の動作を示すフローチャートである。
【図１１】実施の形態２の他の変形例の命令列最適化装置の動作を示すフローチャートである。
【図１２】図１２（ａ）〜（ｅ）は、命令の実行順序とクロック周波数と実行時間との関係の例を示す説明図である。
【図１３】実施の形態３のプロセッサシステムの要部の構成を示すブロック図である。
【図１４】実施の形態３のプロセッサシステムの動作を示すフローチャートである。
【図１５】実施の形態３の変形例のプロセッサシステムの要部の構成を示すブロック図である。
【図１６】実施の形態３の変形例のプロセッサシステムの動作を示すフローチャートである。
【図１７】実施の形態４のプロセッサシステムの要部の構成を示すブロック図である。
【図１８】実施の形態４のプロセッサシステムの動作を示すフローチャートである。
【図１９】実施の形態５の命令列最適化装置の構成を示すブロック図である。
【図２０】実施の形態５の命令列最適化装置の動作を示すフローチャートである。
【図２１】実施の形態６のプロセッサシステムの要部の構成を示すブロック図である。
【図２２】実施の形態７のプロセッサシステムの要部の構成を示すブロック図である。
【図２３】実施の形態８のプロセッサシステムの要部の構成を示すブロック図である。
【図２４】実施の形態９のプロセッサシステムの要部の構成を示すブロック図である。
【発明を実施するための形態】
【００７１】
（本発明の概要、および消費電力等とクロック周波数等との関係）
まず、本発明によって消費電力が低減されるメカニズムに関連する消費電力等とクロック周波数等との関係について説明する。
【００７２】
（消費電力と、クロック周波数、電源電圧との関係）
ＣＭＯＳトランジスタ回路の消費電力と、クロック周波数および電源電圧との間には、リーク電流を無視すれば、概ね次のような関係がある。
【００７３】
Ｐ  ∝  Ｋ×Ｃ×Ｖｄｄ２×ｆ                                  （１）
ここで、
Ｐ    ：消費電力
Ｋ    ：トランジスタのスイッチング確率
Ｃ    ：駆動される負荷容量
Ｖｄｄ：電源電圧
ｆ    ：クロック周波数（トランジスタの動作周波数）である。
【００７４】
上式から解るように、電源電圧やクロック周波数を低くすることによって、消費電力を小さくすることができる。すなわち、一定の処理（処理内容とデータとの組み合わせによる処理）を行うために必要な実行サイクル数は一定なので、所定の時間内において、あるクロック周波数での実行サイクル数が上記一定の処理に必要な実行サイクル数よりも多い場合には、無駄なトランジスタのトグル（オン、オフスイッチング）が行われることになる。そこで、クロック周波数を低くして上記所定の時間内での実行サイクル数を少なくすることにより、無駄なトグル回数を減らして消費電力を低減することができる。
【００７５】
しかも、クロック周波数を低くすると、回路遅延マージンが大きくなるため、以下に説明するように電源電圧を低下させることができ、したがって消費電力（上記のように電源電圧の２乗に比例する）を一層小さく抑えることができる。
【００７６】
（回路の遅延時間と、電源電圧、トランジスタの閾値電圧との関係）
回路の遅延時間（ゲート遅延時間）と、電源電圧およびトランジスタの閾値電圧との間には、次のような関係がある。
【００７７】
ｔｄ  ∝  Ｖｄｄ×Ｃ／（Ｖｄｄ−Ｖｔ）２                      （２）
ここで、
ｔｄ  ：回路の遅延時間
Ｃ    ：駆動される負荷容量
Ｖｄｄ：電源電圧
Ｖｔ  ：トランジスタの閾値電圧である。
【００７８】
すなわち、遅延時間は、駆動される負荷容量が一定だとすれば、電源電圧と閾値電圧とによって定まる。具体的には、例えば、閾値電圧が０．４Ｖの場合、
電源電圧が２．５  Ｖのときの遅延時間をｔｄ１、
電源電圧が１．７５Ｖのときの遅延時間をｔｄ２とすると、
ｔｄ２／ｔｄ１≒１．６９となる。つまり、電源電圧が２．５Ｖから１．７５Ｖに低下すると、遅延時間は約１．６９倍になる。そこで、電源電圧が２．５Ｖでクロック周波数がｆのときに適切に動作する回路は、電源電圧が１．７５Ｖに低下しても、クロック周波数が約ｆ／１．６９≒０．５９×ｆであれば動作させることができ、逆に、約０．５９×ｆのクロック周波数で動作させる場合には、電源電圧を１．７５Ｖに低下させることができる。したがって、前記式（１）に示したように、クロック周波数を低くすることによって、そのこと自体による消費電力の低減効果に加えて、電源電圧を低下させることによる消費電力の低減効果が得られる。
【００７９】
また、クロック周波数を低くすることによって回路遅延マージンが大きくなると、上記のように電源電圧を低くできるのと同様に、閾値電圧を高くすることによってリーク電流を小さくすることができる。すなわち、例えば、電源電圧が２．５Ｖの場合に閾値電圧を０．４Ｖから０．５Ｖにしたとすると、上記式（２）によれば遅延時間は１．１０２５倍になるが、このとき、リーク電流は、約一桁小さくなる。したがって、やはり、クロック周波数を低くすることによって、リーク電流を小さくすることによる消費電力の低減効果も得ることができる。
【００８０】
上記のような閾値電圧の設定は、具体的には、半導体基板電圧を制御することによって、すなわち、トランジスタの基板ノード（ウェルが形成されている場合には、そのウェル）とソースノードとに対して逆バイアス電圧を印加することによって行うことができる。すなわち、近年の半導体プロセスにおける回路の微細化に伴って、閾値電圧を低く（スケーリング）することや、大容量のメモリを半導体チップ内に搭載することによる回路規模の増大などに応じてリーク電流の増大が顕在化しがちであるのに対して、逆に、クロック周波数を低くして遅延時間の増大を許容し得るようにすることにより、閾値電圧が高くなるように基板電圧を制御して消費電力を低減することができる。
【００８１】
本発明においては、上記のようなクロック周波数、電源電圧、および基板電圧と、消費電力との関係を利用して、複数のプロセッサにそれぞれ実行される命令を割り当てるとともに、各プロセッサの処理内容（実行される命令の処理時間）に応じて、プロセッサごとにクロック周波数等を制御することにより、全体の処理能力の低下を招くことなく、大幅な低消費電力化が実現される。
【００８２】
以下、本発明の具体的な実施の形態について説明する。
【００８３】
（実施の形態１）
実施の形態１として、半導体集積回路で構成されたプロセッサシステムにおいて、命令に付加されたフラグに基づいて、命令をＣＰＵとハードウェアエンジン（ＨＷＥ）との何れのモジュール（機能ブロック）に実行させるかの割り当て、およびクロック周波数の制御が行われる例について説明する。
【００８４】
図１は、プロセッサシステムの要部の構成を示すブロック図である。このプロセッサシステムは、記憶部１００と、フラグ検出部１０１と、命令割り当て制御部１０２と、ＣＰＵ１０３と、ＨＷＥ１０４と、ＳＲＡＭ１０５と、クロック制御部１０６とを備えている。（上記フラグ検出部１０１と命令割り当て制御部１０２によって割り当て制御手段が構成され、フラグ検出部１０１とクロック制御部１０６によってクロック制御手段が構成される。）
上記記憶部１００は、実行される命令の命令コードが格納されるもので、例えばあらかじめ命令コードが記憶されたＲＯＭや、ハードディスクに記憶された命令コードがロードされるＲＡＭなどによって構成される。上記命令コードには、ＣＰＵ１０３およびＨＷＥ１０４のクロック周波数に関する動作モードを示す情報が含まれている。具体的には、例えば図２に示すように、命令コードは、命令の内容を示す命令コード本体に、その命令がＣＰＵ１０３またはＨＷＥ１０４の何れで実行されるかを示す割り当て制御フラグと、ＣＰＵ１０３またはＨＷＥ１０４をそれぞれ動作させるクロック信号の周波数を示すクロック制御フラグとが付加されて成っている。上記クロック制御フラグは、より詳しくは、例えば図３に示すように、上位２ビットがＣＰＵ１０３に供給されるクロック信号の周波数を示し、下位２ビットがＨＷＥ１０４に供給されるクロック信号の周波数を示すようになっている。このようなフラグは、例えばプログラム設計者が付加することなどもできるが、後述する命令列最適化装置によって自動的に付加させることもできる。なお、必ずしも上記のようにＣＰＵ１０３とＨＷＥ１０４とで独立に全てのクロック周波数を指定し得るようにするのに限らず、所定のクロック周波数の組み合わせを指定し得るようにしてもよい。また、特にクロック周波数の指定がない場合に、最高のクロック周波数になるようにしてもよい。
【００８５】
フラグ検出部１０１は、記憶部１００から読み出された命令コードと、その命令コードに含まれる割り当て制御フラグに基づいた割り当て制御信号とを命令割り当て制御部１０２に出力するとともに、クロック制御フラグに基づくクロック制御信号をクロック制御部１０６に出力するようになっている。
【００８６】
命令割り当て制御部１０２は、上記フラグ検出部１０１から出力された割り当て制御信号に応じて、ＣＰＵ１０３またはＨＷＥ１０４に命令コードを転送するようになっている。
【００８７】
ＣＰＵ１０３は、内部に有する演算リソースやＳＲＡＭ１０５等を用いて、一般的な種々の命令を実行する汎用のプロセッサである。（なお、このＣＰＵ１０３には半導体集積回路全体の種々の動作を制御する機能を持たせるようにしてもよい。）
一方、ＨＷＥ１０４は、例えば、１つのまたは一連の命令によるＭＰＥＧ−４演算やビタビ復号演算等の特定の演算処理（定型処理）を高速に（少ない処理サイクル数で）、かつ、ＣＰＵ１０３の処理とは独立して（いわゆる突き放しで）行うプロセッサである。（ここでは説明の簡単のために、例えば図２に示すアドレス００００〜０００３のようなループ処理を高速に行えるとして説明する。）
ＳＲＡＭ１０５は、ＣＰＵ１０３やＨＷＥ１０４の処理における一時的なデータなどが格納される共有メモリである。なお、このようなメモリとしては、通常、高速な動作が可能なＳＲＡＭ（Static RAM）が用いられるが、これに限るものではない。
【００８８】
クロック制御部１０６は、前記フラグ検出部１０１から出力されるクロック制御信号に応じた周波数のクロック信号を、ＣＰＵ１０３、ＨＷＥ１０４およびＳＲＡＭ１０５に供給するものである。
【００８９】
次に、上記のように構成されたプロセッサシステムの動作について説明する。図４は、記憶部１００に格納された命令が実行されるときの制御動作を示すフローチャートである。なお、同図は、プロセッサシステムの制御動作を模式的に示すもので、実際には、必ずしも同図に示す各ステップが順に行われるのではなく、通常、前記各部の動作が並行して行われる。
【００９０】
（Ｓ１００）  フラグ検出部１０１は、記憶部１００に記憶されている命令コード（または命令コード群）を先読みし、その命令コードに含まれる割り当て制御フラグ、およびクロック制御フラグを検出する。
【００９１】
（Ｓ１０１）〜（Ｓ１０３）  フラグ検出部１０１は、次に、上記割り当て制御フラグの検出結果に基づいたＣＰＵ１０３またはＨＷＥ１０４を示す割り当て制御信号と、上記命令コードとを命令割り当て制御部１０２に出力する。ここで、上記命令コードは、上記フラグが付加されたままでもよいし、またはフラグを除去してもよい。
【００９２】
（Ｓ１０４）  さらに、フラグ検出部１０１は、クロック制御フラグの検出結果に基づいて、クロック制御信号をクロック制御部１０６に出力する。
【００９３】
（Ｓ１０５）  クロック制御部１０６は、上記クロック制御信号に応じて、ＣＰＵ１０３、およびＨＷＥ１０４に出力するクロック信号の周波数を切り替える。具体的には、図２のプログラムの例では、ＨＷＥ１０４には、アドレス００００〜０００４の命令コードが実行される際に周波数ｆのクロック信号が供給される。一方、ＣＰＵ１０３には、アドレス０００５〜０００８の命令コードが実行される際に周波数ｆ／２のクロック信号が供給され、アドレス０００９の命令コードが実行される際に周波数ｆのクロック信号が供給される。また、ＳＲＡＭ１０５へは、ＣＰＵ１０３またはＨＷＥ１０４に供給されるクロック信号の周波数のうち、高い方の周波数のクロック信号が供給される。
【００９４】
（Ｓ１０６）  命令割り当て制御部１０２は、上記フラグ検出部１０１から出力された割り当て制御信号に応じて、命令コードをＣＰＵ１０３またはＨＷＥ１０４に転送する。例えば図２に示したプログラムの例では、アドレス００００〜０００４の命令コードはＨＷＥ１０４に転送されて実行され、アドレス０００５〜０００９の命令コードはＣＰＵ１０３に転送されて実行される。
【００９５】
ここで、図２に示したプログラム例の内容について簡単に説明すると、アドレス００００〜０００３の命令コードは、アドレス０００１〜０００２の命令コードの実行が４回繰り返されるループ演算が行われることを示している。アドレス０００４の命令コードは、上記ループ演算が行われた結果、ＨＷＥ１０４のレジスタ（Ａ）に保持されたデータが、ＳＲＡＭ１０５におけるアドレスｘｘｘｘの領域に格納されることを示している。また、アドレス０００９の命令コードは、ＣＰＵ１０３によってアドレス０００５〜０００８の処理が行われた後、レジスタ（Ａ）に保持されているデータに、上記ＨＷＥ１０４によってＳＲＡＭ１０５に格納されたデータが加算されることを示している。
【００９６】
このようなプログラムが実行される場合、図５に示すように、まず、アドレス００００〜０００４の命令コードがＨＷＥ１０４に転送され、実行される。一方、アドレス０００５〜０００８の命令コードは、上記ＨＷＥ１０４による実行と並行して、順次転送されながら実行される。
【００９７】
そこで、例えば、ＨＷＥ１０４によるアドレス００００〜０００３の命令コード（ループ演算）の実行がＣＰＵ１０３の２倍の効率で１ループあたり２クロックで行われ、アドレス０００４の命令コードの実行が１クロックで行われるとすると、合計で２クロック×４ループ＋１クロックで９クロック要することになる。一方、ＣＰＵ１０３によるアドレス０００５〜０００８の命令コードの実行が４クロックで行われるとすると、この所要クロック数は上記ＨＷＥ１０４によるループ演算の所要クロック数の約１／２にあたることになる。
【００９８】
そこで、もし、ＣＰＵ１０３およびＨＷＥ１０４に同じ周波数ｆのクロック信号が供給されるとすると、ＣＰＵ１０３はＨＷＥ１０４の約１／２の時間でアドレス０００８までの命令コードの実行を完了することになる。そして、この場合、次のアドレス０００９の命令コードは、ＨＷＥ１０４によるループ演算の演算結果を参照しているので、上記ループ演算が終了するまで実行することができず、その間、ＣＰＵ１０３では無駄に電力が消費されることになってしまう。すなわち、ＣＰＵ１０３とＨＷＥ１０４の処理内容の統合が必要な場合には、どちらかが（相対的に過剰な演算処理性能を有し処理能力が高いなどのために）処理を早く完了したとしても、他方の演算結果が出るまでの間、内部状態を維持したまま待つ必要があり、その間アイドル状態で動作して不要なトグルによる電力を消費し続けることになる。
【００９９】
ところが、本実施の形態のプロセッサシステムでは、前記のように、ＣＰＵ１０３でアドレス０００５〜０００９の命令コードが実行される際には、クロック制御フラグに基づいて、ｆ／２の周波数のクロック信号がＣＰＵ１０３に供給される。このため、ＣＰＵ１０３の消費電力を約１／２に抑えられるとともに、ＣＰＵ１０３の処理は、周波数ｆのクロック信号が供給されるＨＷＥ１０４の処理とほぼ同時に終了する（処理時間が等価になる）ので、プロセッサシステム全体の処理能力の低下を招くことがない。すなわち、処理能力と消費電力とを両立させ得るクロック周波数の組み合わせを最適化した動作モードで種々の処理を行わせることができる。しかも、上記のように命令コードに付加されたフラグに基づいて、プロセッサの割り当てやクロック周波数の制御をすることにより、複雑なデコード回路等を設ける必要がないので、回路規模を小さく抑えることもできる。
【０１００】
なお、命令の所要クロック数と供給可能な周波数によっては、必ずしも待ち時間が全くなくならなくても、最高周波数より低い周波数にして少しでも待ち時間が短くなれば、処理能力を低下させることなく消費電力を低減できることになる。
【０１０１】
また、ＣＰＵ１０３またはＨＷＥ１０４の一方が動作しないとき、すなわち実行する命令が割り当てられないときや、各プロセッサで実行される命令の終了タイミングが正確には一致せずに多少の待ち時間が生じるときなどには、クロック信号の供給を停止（または入力されるクロック信号をディスエイブル状態に）するようにしてもよい。
【０１０２】
（実施の形態２）
次に、上記のような、各プロセッサの割り当ておよびクロック周波数を制御するためのフラグが付加された命令コードを生成する命令列最適化装置の例について説明する。
【０１０３】
この命令列最適化装置は、例えば、コンパイラやオプティマイザなどと称されるプログラムが実行されるコンピュータによって構成され、機能的な構成としては、図６に示すような構成を有している。
【０１０４】
同図において、記憶装置２０１は、フラグが付加される前後のソースプログラムおよびオブジェクトプログラムを記憶するものである。上記ソースプログラムとしては、例えば命令コード列から成る実行形式の機械語プログラムや、アセンブラプログラム、また、抽象度の高いＣ言語プログラムなどを用いることができる。ここで、アセンブラプログラムやＣ言語プログラムなどの場合には、機械語プログラムへの展開が行われるとともにフラグが付加されるようにしてもよいし、一旦、命令コードの付加を示す情報が埋め込まれた中間プログラムが生成された後に、フラグが付加された機械語プログラムが生成されるようにしてもよい。
【０１０５】
命令解析部２０２（命令解析手段）は、ソースプログラムを解析し、ソースプログラムに含まれる各命令（一連の命令から成る命令群を含む）が、何れのプロセッサで実行可能かを判定するとともに、各命令の相互関係（処理内容の依存関係）、すなわち、例えばある命令Ｉ１の実行結果が他の命令Ｉ２の実行にあたって参照される場合には、命令Ｉ１の実行が完了しなければ命令Ｉ２は実行できないなどの実行タイミングの制約を判定するようになっている。
【０１０６】
標準実行時間推定部２０３（実行時間推定手段）は、各命令が各プロセッサによって所定の基準のクロック周波数（例えば最高周波数：以下、「標準クロック周波数」と呼ぶ。）で実行される場合の標準実行時間を推定するようになっている。上記標準実行時間は、具体的には、例えば、各プロセッサごとに種々の命令の実行に要する所要クロック数が登録されたテーブルを参照し、これに標準クロック周波数の逆数（１／ｆ）を乗算することによって得ることができる。なお、上記所要クロック数に関しては、何れかの基準とするプロセッサによって実行される際の所要クロック数を上記のようにして求め、これに他のプロセッサで実行される場合の効率（基準とするプロセッサとの処理能力の比）を乗算することによって、他のプロセッサによって実行される場合の所要クロック数を簡易に推定することもできる。また、プログラム中にループ演算や条件分岐が含まれている場合などには、必ずしも正確な所要クロック数を求められるとは限らないが、そのような場合には、例えばサンプルデータを用いたシミュレーションやプログラム設計者による指定などによってループ回数や分岐条件等を設定することにより、妥当な推定値や最悪値を所要クロック数として求めることなどができる。
【０１０７】
換算実行時間算出部２０４は、各命令が各プロセッサによって種々のクロック周波数で実行される場合に要する換算実行時間を算出するようになっている。具体的には、標準実行時間×（標準クロック周波数／各クロック周波数）によって換算実行時間が求められる。なお、例えば、標準実行時間と種々のクロック周波数との組み合わせに対応して、あらかじめ上記換算実行時間が登録されたテーブルを参照することによって求めるなどしてもよい。
【０１０８】
ここで、上記標準実行時間や換算実行時間としては、文字通り時間の単位の値を用いてもよいが、クロック数を用いるようにしてもよい。すなわち、標準実行時間として所要クロック数を用い、各クロック周波数に応じた換算実行時間として、所要クロック数×（標準クロック周波数／各クロック周波数）を用いるなどしてもよい。
【０１０９】
割り当て・クロック周波数決定部２０５（割り当て決定手段、クロック周波数決定手段）は、上記命令解析部２０２によって判定された、各命令を実行可能なプロセッサおよび実行タイミングの制約を示す情報と、換算実行時間算出部２０４によって算出された各命令の換算実行時間とに基づいて、消費電力が最も小さくなるように、各命令を実行させるプロセッサの割り当て、および各命令が実行される際に供給するクロック信号の周波数を決定するようになっている。具体的には、例えば、図７（ａ）（ｂ）に示すように、命令ａ、ｂがプロセッサＡ、Ｂによって実行される場合において、クロック周波数がｆのときに、命令ａはプロセッサＡ、Ｂの何れで実行されても実行時間が同じである一方、命令ｂがプロセッサＡで実行される実行時間はプロセッサＢで実行される実行時間の１／２であるとし、また、命令ａ、ｂの実行が共に完了した後でなければ次の命令の実行が可能でないとした場合、命令ｂがプロセッサＡによって実行されるようにすれば、プロセッサＡの処理には余裕があることになる。そこで、プロセッサＡのクロック周波数をｆ／２にすることにより、全体の処理時間に影響を与えることなく、消費電力を低減することができる。
【０１１０】
フラグ付加部２０６（割り当て制御情報付加手段、クロック制御情報付加手段）は、上記割り当て・クロック周波数決定部２０５によって決定された割り当て、および周波数に基づいて、前記図２に示したように、各命令の命令コードに割り当て制御フラグおよびクロック制御フラグを付加するようになっている。
【０１１１】
次に、上記命令列最適化装置の動作について、図８に基づいて説明する。
【０１１２】
（Ｓ１０００）  まず、ソースプログラムが解析され、各命令を実行可能なプロセッサが判別される。また、複数の命令が並行して実行される場合に、何れの命令も実行が完了しなければ他の命令が実行できないような命令などの実行タイミングの制約が検出される。
【０１１３】
（Ｓ１００１）  次に、ソースプログラムに含まれる全ての命令が、ある１つのプロセッサだけによって実行可能であるかどうかが判定され、判定結果がＹｅｓであれば、上記全ての命令は上記１つのプロセッサによって例えば最高クロック周波数で実行させればよいので、処理は後述する（Ｓ１００６）に移行する。
【０１１４】
（Ｓ１００２）  上記（Ｓ１００１）の判定結果がＮｏであれば、各命令が各プロセッサによって標準クロック周波数で実行される場合の標準実行時間が推定される。
【０１１５】
（Ｓ１００３）  さらに、各命令が各プロセッサによって種々のクロック周波数で実行される場合に要する換算実行時間が算出される。
【０１１６】
（Ｓ１００４）  上記のようにして算出された換算実行時間、および（Ｓ１０００）で検出された命令間の相互関係（命令の実行タイミングの制約）に基づいて、消費電力が最も小さくなるように、各命令を実行させるプロセッサの割り当て、および各命令の実行時に供給するクロック信号の周波数が決定される。
【０１１７】
具体的には、例えば、まず各命令を実行可能なプロセッサへの割り当ての全ての組み合わせに対して、それぞれ、前記図７で説明したように、全てのプロセッサを例えば標準クロック周波数で動作させたときに処理に余裕のあるプロセッサ、すなわち、他のプロセッサの処理が終了するまで待ちが生じるプロセッサを求める。次に、上記余裕のあるプロセッサに対する、全体の処理時間に影響を与えることがない最も低いクロック周波数、つまり、後続する命令によって演算結果を参照される演算処理が、他のプロセッサによる演算処理よりも遅くなることなく終了し得る最も低い周波数（またはそのような周波数と標準クロック周波数との比など）を求める。（なお、実際には、標準実行時間と各換算実行時間とを比較して、標準実行時間以下の換算実行時間のうちで最も長い換算実行時間に対応する周波数を求めるなどしてもよい。）
これによって、各割り当ての組み合わせごとに、各プロセッサによる各命令の実行に対して、その実行の際のクロック周波数が対応付けられるので、各割り当ての組み合わせについての消費電力（実際には各命令の実行に必要なクロック数の合計などでもよい）がそれぞれ求められる。
【０１１８】
そこで、上記消費電力が最も小さい割り当ての組み合わせを求めれば、処理能力を低下させることなく消費電力を低減できる各命令の割り当て、およびクロック周波数が決定される。
【０１１９】
（Ｓ１００５）  上記命令の割り当て、およびクロック周波数の決定に基づいた割り当て制御フラグとクロック制御フラグとが、ソースプログラムに含まれる命令の命令コードに付加され、オブジェクトプログラムとして記憶装置２０１に格納される。
【０１２０】
（Ｓ１００６）  一方、前記（Ｓ１００１）で、ソースプログラムに含まれる全ての命令が、ある１つのプロセッサだけによって実行可能であると判定された場合には、前記のように全ての命令は上記１つのプロセッサによって例えば最高クロック周波数で実行させればよいので、ソースプログラムに含まれる命令の命令コードに、そのプロセッサへの割り当てを示す割り当てフラグと、最高クロック周波数を示すクロック制御フラグとが付加される。
【０１２１】
（Ｓ１００７）  ソースプログラムの全ての命令についての処理が終わるまで、上記（Ｓ１００２）〜（Ｓ１００５）の処理が繰り返される。
【０１２２】
上記のようにして割り当て制御フラグおよびクロック制御フラグが付加された命令コードを生成することによって、前記実施の形態１に示したような複数のプロセッサを有するプロセッサシステムで、処理能力を低下させることなく大幅に小さな消費電力で実行させることのできるプログラムが得られる。
【０１２３】
なお、上記（Ｓ１００４）において、全ての割り当ての組み合わせの数が多くなるなどの場合には、少数のプロセッサに極端に多くの命令が割り当てられるような組み合わせについての考慮を省略することによって、最適化装置の処理負荷を軽減し得るようにしてもよい。すなわち、例えば、プロセッサの割り当てが決定される際に、図６、８に破線で示すように、あらかじめ設定された処理比率設定情報などに基づいて各プロセッサによる処理量（処理時間や所要クロック数の合計）の比率を所定の範囲に制限し（処理比率設定手段）、その範囲の割り当ての組み合わせのうちで消費電力が最も小さい組み合わせを求めるようにすることにより、上記のようなフラグの付加を高速に行わせることができる。この場合、各プロセッサによる命令実行の並列度も高くなるので命令全体の実行速度が速くなることにもなる。特に上記処理比率を種々設定し得るようにすることにより、プロセッサシステムの消費電力および命令実行速度と、最適化装置によるフラグ付加処理の負荷とをプロセッサシステムの使用目的などに応じて調整することなどもできる。また、上記のような処理を、ソースプログラムの全ての命令について一括して行わず、所定の一連の命令ごとに行うなどしてもよい。この場合でも、上記一連の命令の長さを適切に設定して局所的な消費電力を小さくすれば、全体の消費電力も大幅に低減することができるとともに、割り当ての組み合わせの数が少なく抑えられるので、やはり、最適化装置の処理負荷を軽減することができる。
【０１２４】
また、上記消費電力を算出する際には、各プロセッサにおける消費電力の相違を考慮して所定の係数をかけるなどして、より確実に消費電力を低減し得るようにしてもよい。
【０１２５】
また、上記の例では、処理に余裕のあるプロセッサや、全体の処理時間に影響を与えない最低クロック周波数を求める際に換算実行時間を用いる例を示したが、これに限らず、標準実行時間を用いるようにしてもよい。すなわち、例えば標準実行時間の差によって余裕の有無を判別したり、標準実行時間の比などに基づいて、上記最低クロック周波数等を求めるなどしてもよい。
【０１２６】
（実施の形態２の変形例）
上記実施の形態２の命令列最適化装置と同様に、命令コードにフラグを付加する、他の命令列最適化装置について説明する。なお、以下、前記実施の形態１、２等と同様の機能を有する構成要素については同一の符号を付して説明を省略する。
【０１２７】
この命令列最適化装置は、複数のプロセッサによって実行可能な命令が標準実行時間の最も短いプロセッサによって実行されるようにプロセッサへの命令の割り当てを決定し、その割り当てのもとに、消費電力が小さくなるようにクロック周波数が決定されるようになっている。具体的には、この装置は、例えば図９に示すように、前記実施の形態２（図６）と比べて、割り当て・クロック周波数決定部２０５に代えて割り当て決定部３１１とクロック周波数決定部３１２とを備えている点が異なる。
【０１２８】
上記割り当て決定部３１１は、複数のプロセッサによって実行可能な命令が、標準実行時間推定部２０３によって算出された標準実行時間の最も短い（所要クロック数が最も少ない）プロセッサによって実行されるように、割り当てを決定するようになっている。
【０１２９】
また、クロック周波数決定部３１２は、上記のように決定された割り当てに対して、全てのプロセッサを標準クロック周波数で動作させたときに処理に余裕のあるプロセッサを、全体の処理時間に影響を与えることがない最も低いクロック周波数で動作させるように（待ち時間が最も短くなるように）、クロック周波数を決定するようになっている。
【０１３０】
上記のように構成された命令列最適化装置の動作は、図１０に示すように、実施の形態２（図８）と以下の点が異なっている。
【０１３１】
（Ｓ１１５１）  標準実行時間の算出（Ｓ１００２）がなされた後、複数のプロセッサによって実行可能な命令が、それぞれ最も標準実行時間の短いプロセッサで実行されるように、プロセッサの割り当てが決定される。
【０１３２】
（Ｓ１１０４）  図８の（Ｓ１００４）と異なり、クロック周波数の決定だけがなされる。すなわち、各命令が上記（Ｓ１１５１）で割り当てられたプロセッサによって標準クロック周波数で実行される際に、他のプロセッサの処理が終了するまで待ち時間が生じる（余裕がある）プロセッサに対して、上記待ち時間が短くなり、かつ、全体の処理時間に影響を与えることがない最も低い周波数のクロック信号が供給されるように決定される。これによって、上記のようなプロセッサの割り当ての範囲内で、プロセッサシステムの処理能力を低下させることなく、消費電力を低減することができる。
【０１３３】
上記のようにしてプロセッサの割り当ておよびクロック周波数が決定されると、実施の形態２と同様に（Ｓ１００５）で上記決定に応じた割り当て制御フラグおよびクロック制御フラグが命令コードに付加される。
【０１３４】
上記のように、各命令が標準実行時間の最も短いプロセッサによって実行されるようにすることにより、命令コードの実行効率を高くして合計の所要クロック数を低減することができるうえ、やはり、実行時間に余裕のあるプロセッサに供給されるクロック信号の周波数を低くすることによって、無駄なトランジスタのトグルを減少させることができるので、大幅に消費電力を低減することができる。しかも、クロック周波数の決定処理は、１組のプロセッサの割り当ての組み合わせに対してなされるだけなので、最適化装置の処理負荷を軽減し、高速にフラグの付加を行わせるようにすることもできる。
【０１３５】
なお、上記のように各命令が標準実行時間の最も短いプロセッサで実行されるように割り当てられる場合、同種の命令が多く含まれるプログラムなどの場合には、単一の、または少数のプロセッサへの割り当てが集中することも考えられる。この場合、消費電力は小さく抑えられるが、各プロセッサによる処理の並列度が低下して、プログラム全体の実行に要する時間が長くかかることになる。そこで、消費電力が多少増えてもプログラム全体の実行時間を短く抑えるためには、実施の形態２で説明したのと同様、図９、１０に破線で示すように、処理比率設定情報などに基づいて、各プロセッサによる処理量の比率を所定の範囲に制限するなどすればよい。
【０１３６】
また、各命令を最も標準実行時間の短いプロセッサで実行されるように割り当てるのに代えて、例えば全てのプロセッサが標準クロック周波数で動作する場合にプログラム全体（または所定の一連の命令列全体）の実行時間が最も短くなるように、プロセッサを割り当てるようにしてもよい。すなわち、複数のプロセッサで実行可能な命令については、標準実行時間が最も短いプロセッサでなくても、そのプロセッサと並行して実行させ得る他のプロセッサに割り当て、各プロセッサによる処理の並列度を高くすることによって、プログラム全体の実行時間等を短くすることができる。そして、その場合でも、実行時間に余裕のあるプロセッサに供給されるクロック信号の周波数を低くすることによって、無駄なトランジスタのトグルを減少させて消費電力を低減することができる。また、この場合にも、前記のように各プロセッサによる処理量の比率を所定の範囲に制限するなどして、その範囲内で、実行時間が短くなるように割り当てを決定するようにすれば、最適化装置の処理負荷を軽減することもできる。
【０１３７】
また、さらに、例えば、割り当て決定部３１１（並べ替え手段）でプロセッサの割り当てが決定される際に命令の実行順序の並べ替えが行われるようにしてもよい。すなわち、例えば図１１に示すように、前記図１０の各ステップに加えて、（Ｓ１２５１）で命令の並べ替え処理が行われるようにしてもよい。
【０１３８】
具体的には、例えば図１２（ａ）に示すような命令ａ〜ｄがソースプログラムに記述されている場合において、命令ａ、ｃは、それぞれプロセッサＡで４クロックで逐次実行可能である一方、命令ｂはプロセッサＢに転送後、プロセッサＡの動作とは独立して１２クロックで実行可能であり、これらの命令ａ〜ｃの実行終了後に命令ｄの実行が可能であるとすると、ソースプログラムに記述された通りの順序で演算処理がなされる場合には、図１２（ｂ）および以下に示すように各命令が実行されることになる。
【０１３９】
（１）  命令ａが、プロセッサＡに順次転送されながら、クロック周波数ｆ、所要クロック数４クロックで実行される。
【０１４０】
（２）  命令ａの終了後、命令ｂが、プロセッサＢにまとめて転送された後、クロック周波数ｆ、所要クロック数１２クロックで実行される。
【０１４１】
（３）  上記命令ｂの実行と並行して、命令ｃが、順次転送されながら、クロック周波数ｆ／３、所要クロック数４クロック（クロック周波数がｆとした場合の換算実行時間は１２クロック分）で実行される。
【０１４２】
これに対して、命令の順序が図１２（ｃ）に示すように並べ替えられる場合には、図１２（ｄ）および以下に示すように実行させることができる。
【０１４３】
（１）  命令ｂが、プロセッサＢにまとめて転送された後、クロック周波数ｆ×３／４、所要クロック数１２クロック（換算実行時間は１６クロック分）で実行される。
【０１４４】
（２）  上記命令ｂの実行と並行して、命令ａが、プロセッサＡに順次転送されながら、クロック周波数ｆ／２、所要クロック数４クロック（換算実行時間は８クロック分）で実行される。
【０１４５】
（３）  続いて、命令ｃも、クロック周波数ｆ／２、所要クロック数４クロック（換算実行時間は８クロック分）で実行される。
【０１４６】
つまり、命令の実行順序を入れ替えることによって、プロセッサによる処理の並列度を高くして実行時間の余裕を大きくすることができる。それゆえ、命令ａ〜ｃの何れも低いクロック周波数で実行させることができ、消費電力を大幅に低減することができる。また、クロック周波数を低くすると、後述するように電源電圧も低くすることなどによってさらに消費電力を低減することもできるが、元の実行順序で命令ｃについてだけクロック周波数をｆ／３にするよりも、並べ替え後のように命令ａ、ｃについて共にｆ／２にする方が、より大きな消費電力低減効果を得ることができる。なお、上記のように命令の実行順序を並べ替えた場合でも、図１２（ｅ）に示すように、命令ｂはクロック周波数ｆで実行させ、命令ａ、ｂはｆ×２／３で実行させるようにしてもよい。この場合には、全体の処理速度を向上させることができるとともに、消費電力も、命令の実行順序を並べ替える前よりは小さくすることができる。
【０１４７】
（実施の形態３）
次に、前記実施の形態１のように命令コードに付加されたフラグに基づいてクロック周波数等を制御するのではなく、フラグを有しない通常の命令コードを用いても、同様に消費電力を低減できるプロセッサシステムの例を説明する。すなわち、このプロセッサシステムは、命令コードに付加されたフラグを検出する代わりに、実施の形態２の命令列最適化装置のような命令の割り当ておよびクロック周波数を決定する機能を持たせて、その決定に基づいて、命令の割り当ておよびクロック周波数を制御するようになっている。
【０１４８】
具体的には、例えば図１３に示すように、実施の形態１（図１）のフラグ検出部１０１に代えて、命令解析部４０２（命令解析手段）、標準実行時間推定部４０３（実行時間推定手段）、換算実行時間算出部４０４、および割り当て・クロック周波数決定部４０５（割り当て決定手段、クロック周波数決定手段）が設けられている。これらの各部は、それぞれ、実施の形態２（図６）の命令解析部２０２、標準実行時間推定部２０３、換算実行時間算出部２０４、または割り当て・クロック周波数決定部２０５と同じような機能を有するものである。ただし、通常、実施の形態２のような命令列最適化装置ではソフトウェアとコンピュータによって上記のような機能がもたらされるのに対し、本実施の形態のプロセッサシステムは、ＣＰＵ１０３やＨＷＥ１０４による命令の実行速度に応じたタイミングで制御を行うためにハードウェアによって構成される。（ただし、これに限るものではなく、例えばＣＰＵ１０３等よりも上位のプロセッサなどによって制御されるようにしてもよい。）
このプロセッサシステムの動作は、図１４に示すように、概ね実施の形態１、２（図４、８）の動作を組み合わせたものと同様である。
【０１４９】
（Ｓ１３００）  まず、命令解析部４０２が、記憶部１００に記憶されている所定量の一連の命令コードを先読みし、命令コードが解析される。この命令コードの解析の内容は、基本的に実施の形態２の（Ｓ１０００）で行われるものと同様であるが、命令解析部４０２がハードウェアによって構成される場合には、必ずしも全ての命令コードについてまとめて解析されずに、そのハードウェア規模に応じた上記所定量の一連の命令コードごとに解析が行われるようにしてもよい。
【０１５０】
（Ｓ１３０１）  次に、上記先読みされた一連の命令コード中に含まれる各命令が、何れも同一の一方のＣＰＵ１０３またはＨＷＥ１０４の一方でだけ実行可能なものであり、かつ、その実行可能な方のＣＰＵ１０３またはＨＷＥ１０４が動作状態（他の命令の実行を完了しない状態）である場合には、後述する（Ｓ１３０６）に移行して、上記各命令が実行可能なＣＰＵ１０３またはＨＷＥ１０４を示す割り当て信号と、例えば最高クロック周波数を示すクロック制御信号とが出力される。すなわち、上記のような場合にはＣＰＵ１０３とＨＷＥ１０４とで並列処理を行うことができず、したがって上記一連の全体の処理能力は各命令の実行時間に依存することになるので、割り当ておよびクロック周波数は上記のように設定されればよい。
【０１５１】
（Ｓ１００２）〜（Ｓ１００４）  一方、一連の命令コード中に含まれる各命令が、ＣＰＵ１０３またはＨＷＥ１０４のうち互いに異なる方で実行可能である場合や、他の命令を実行中ではない方のＣＰＵ１０３またはＨＷＥ１０４で実行可能である場合には、並列処理を行わせることができるので、実施の形態２（図８）で説明したのと同じように、標準実行時間の推定、換算実行時間の算出がなされた後、先読みされた一連の命令コードの範囲内での実行に関して消費電力が最小になるようにプロセッサの割り当ておよびクロック周波数の決定がなされる。
【０１５２】
（Ｓ１３０５）  上記命令の割り当て、およびクロック周波数の決定に基づいた割り当て制御信号とクロック制御信号とが、命令割り当て制御部１０２およびクロック制御部１０６に出力される。
【０１５３】
（Ｓ１３０６）  一方、前記（Ｓ１３０１）で説明したように、先読みされた一連の命令コード中に含まれる各命令が、何れも同一の一方のＣＰＵ１０３またはＨＷＥ１０４でだけ実行可能なものであり、かつ、その実行可能なＣＰＵ１０３またはＨＷＥ１０４が他の命令の実行を完了しない状態であると判定された場合には、上記各命令が実行可能なＣＰＵ１０３またはＨＷＥ１０４を示す割り当て信号と、最高クロック周波数を示すクロック制御信号とが出力される。
【０１５４】
（Ｓ１０５）〜（Ｓ１０６）  クロック制御部１０６は、上記クロック制御信号に応じて、ＣＰＵ１０３、ＨＷＥ１０４、およびＳＲＡＭ１０５に出力するクロック信号の周波数を切り替え、命令割り当て制御部１０２は、上記割り当て制御信号に応じて、命令コードをＣＰＵ１０３またはＨＷＥ１０４に転送し、命令の実行がなされる。
【０１５５】
上記のように、実行時に命令コードを解析してプロセッサの割り当ておよびクロック周波数を決定するようにすることによって、フラグが付加されていないような通常の命令コードが用いられる場合であっても、消費電力を低減することができる。
【０１５６】
なお、本実施の形態のプロセッサシステムにおいても、図１３、１４に破線で示すように、処理比率設定情報などに基づき、各プロセッサによる処理量の比率を所定の範囲に制限するなどして（処理比率設定手段）、その範囲の割り当ての組み合わせのうちで消費電力が最も小さい組み合わせを求めるようにすることにより、消費電力が最小となる割り当ての組み合わせを求めるためのハードウェア規模の低減を図ったり、ＣＰＵ１０３およびＨＷＥ１０４の処理の並列度を高めて一連の命令全体の実行速度を速くしたりすることができる。
【０１５７】
（実施の形態３の変形例）
上記実施の形態３のプロセッサシステムと同様に、フラグを有しない通常の命令コードを用いても消費電力を低減できる、他のプロセッサシステムについて説明する。
【０１５８】
このプロセッサシステムは、前記実施の形態３のプロセッサシステム（図１３）が実施の形態２の命令列最適化装置（図６）のような命令の割り当ておよびクロック周波数の決定機能を有するのに対し、実施の形態２の変形例（図９）と同様の機能を有して命令の割り当ておよびクロック周波数を制御するようにしたものである。すなわち、ＣＰＵ１０３またはＨＷＥ１０４の何れのプロセッサによっても実行可能な命令が、標準実行時間の短い方のプロセッサによって実行されるように命令の割り当てを決定し、その割り当てのもとに、消費電力が小さくなるようにクロック周波数を決定して、割り当ておよび周波数の制御を行うようになっている。より具体的には、例えば図１５に示すように、実施の形態３（図１３）と比べて、割り当て・クロック周波数決定部４０５に代えて、割り当て決定部５１１とクロック周波数決定部５１２とを備えている点が異なる。
【０１５９】
上記割り当て決定部５１１およびクロック周波数決定部５１２は、それぞれ、実施の形態２の変形例（図９）の割り当て決定部３１１またはクロック周波数決定部３１２と同様の機能を有するものである。すなわち、割り当て決定部５１１は、各命令が、双方のプロセッサによって実行可能な場合、標準実行時間推定部４０３によって算出された標準実行時間に基づいて、上記標準実行時間が短い（所要クロック数が少ない）方のプロセッサによって実行されるように、割り当てを決定するようになっている。
【０１６０】
また、クロック周波数決定部５１２は、上記のように決定された割り当てに対して、両方のプロセッサを例えば標準クロック周波数で動作させたときに処理に余裕のある方のプロセッサを、全体の処理時間に影響を与えることがない最も低いクロック周波数で動作させるように、クロック周波数を決定するようになっている。
【０１６１】
上記のように構成されたプロセッサシステムの動作は、図１６に示すように、実施の形態３（図１４）と以下の点が異なっている。（この相違点は、実施の形態２の命令列最適化装置の動作（図８）に対する、その変形例の動作（図１０）の相違点と同様である。）
（Ｓ１１５１）  標準実行時間の算出（Ｓ１００２）がなされた後、上記標準実行時間に基づいて、双方のプロセッサによって実行可能な命令が、それぞれ標準実行時間の短い方のプロセッサで実行されるように、割り当てが決定される。
【０１６２】
（Ｓ１１０４）  図１４の（Ｓ１００４）と異なり、クロック周波数の決定だけがなされる。すなわち、各命令が上記（Ｓ１１５１）で割り当てられたプロセッサによって標準クロック周波数で実行される際に、他のプロセッサの処理が終了するまで待ち時間が生じる（余裕がある）プロセッサに対して、上記待ち時間が短くなり、かつ、全体の処理時間に影響を与えることがない最も低い周波数のクロック信号が供給されるように決定される。これによって、上記のようなプロセッサの割り当ての範囲内で、プロセッサシステムの処理能力を低下させることなく、消費電力を低減することができる。
【０１６３】
上記のようにしてプロセッサの割り当て、およびクロック周波数が決定されると、実施の形態３と同様に（Ｓ１３０５）で上記決定に応じた割り当て制御信号とクロック制御信号とが、命令割り当て制御部１０２およびクロック制御部１０６に出力され、（Ｓ１０５）〜（Ｓ１０６）で、クロック制御部１０６によるＣＰＵ１０３、ＨＷＥ１０４、およびＳＲＡＭ１０５に出力するクロック信号の周波数の切り替え、および命令割り当て制御部１０２による命令コードのＣＰＵ１０３またはＨＷＥ１０４への転送がなされ、これらの命令が実行される。
【０１６４】
上記のように、各命令が標準実行時間の短い方のプロセッサによって実行されるようにすることにより、命令コードの実行効率を高くして合計の所要クロック数を低減することができるうえ、実行時間に余裕のあるプロセッサに供給されるクロック信号の周波数を低くすることによって、無駄なトランジスタのトグルを減少させることができるので、やはり、大幅に消費電力を低減することができる。しかも、実施の形態３のように種々の割り当ての組み合わせのうちで消費電力が最も小さい組み合わせを求めるのに比べて、標準実行時間の短いプロセッサを求める方が処理は単純であり、また、クロック周波数の決定は、１組のプロセッサの割り当ての組み合わせに対してなされるだけなので、割り当て決定部５１１およびクロック周波数決定部５１２の回路規模を小さく抑えることもできる。
【０１６５】
なお、本実施の形態３の変形例においても、標準実行時間の短いプロセッサを求めるためのハードウェア規模の低減を図ったり、消費電力が多少増えても各プロセッサによる処理の並列度を高めて一連の命令コード全体の実行時間を短く抑えたりするためには、図１５、１６に破線で示すように、処理比率設定情報などに基づいて、各プロセッサによる処理量の比率を所定の範囲に制限するなどすればよい。
【０１６６】
また、やはり、各命令が最も標準実行時間の短いプロセッサで実行されるように割り当てるのに代えて、例えば全てのプロセッサが標準クロック周波数で動作する場合に全体の実行時間が最も短くなるように、プロセッサを割り当てるようにすることもできる。さらに、各プロセッサによる処理量の比率を所定の範囲に制限するなどし、その範囲内で実行時間が短くなるように割り当てを決定するようにして、プロセッサの割り当てを決定するためのハードウェアの規模を低減することもできる。
【０１６７】
（実施の形態４）
前記実施の形態１では、プロセッサの割り当て、およびクロック周波数の制御が共に命令コードに付加されたフラグに基づいて行われる一方、実施の形態３では、共にプロセッサシステムによる命令コードの解析に基づいて行われる例を示したが、プロセッサの割り当てだけをフラグに基づいて行い、クロック周波数の制御は解析に基づいて行うようにしてもよい。
【０１６８】
本実施の形態のプロセッサシステムは、例えば図１７に示すように、実施の形態３（図１３）の命令解析部４０２、および割り当て・クロック周波数決定部４０５に代えて、フラグ検出部６０１、命令解析部６０２、およびクロック周波数決定部５１２を備えている点が異なっている。
【０１６９】
上記フラグ検出部６０１は、命令コード含まれる割り当て制御フラグだけを検出する点が実施の形態１（図１）のフラグ検出部１０１と異なり、記憶部１００から読み出された命令コードを命令割り当て制御部１０２に出力するとともに、割り当て制御フラグを検出して、これに応じた割り当て制御信号を命令割り当て制御部１０２およびクロック周波数決定部５１２に出力するようになっている。
【０１７０】
また、命令解析部６０２は、実施の形態２の変形例（図９）の命令解析部２０２が有する機能のうち、クロック周波数の決定に必要な内容、すなわち各命令の相互関係（処理内容の依存関係）や実行タイミングの制約を解析するようになっている。
【０１７１】
クロック周波数決定部５１２は、実施の形態３の変形例（図１５）と同じもので、フラグ検出部６０１から出力される割り当て制御信号に基づいて、ＣＰＵ１０３およびＨＷＥ１０４を例えば標準クロック周波数で動作させたときに処理に余裕のある方のプロセッサを、全体の処理時間に影響を与えることがない最も低いクロック周波数で動作させるように、クロック周波数を決定するようになっている。
【０１７２】
以下、上記のように構成されたプロセッサシステムの動作について、図１８に基づいて説明する。
【０１７３】
（Ｓ１４００）  フラグ検出部６０１は、記憶部１００に記憶されている命令コード（または命令コード群）を先読みし、その命令コードに含まれる割り当て制御フラグを検出する。また、命令解析部６０２は、先読みされた命令コードにおける実行タイミングの制約等を解析する。
【０１７４】
（Ｓ１０１）〜（Ｓ１０３）  フラグ検出部６０１は、次に、上記割り当て制御フラグの検出結果に基づいて、ＣＰＵ１０３またはＨＷＥ１０４を示す割り当て制御信号を命令割り当て制御部１０２に出力する。また、上記命令コードを、上記フラグが付加されたまま、またはフラグを除去して、命令割り当て制御部１０２に出力する。
【０１７５】
（Ｓ１００２）  標準実行時間推定部４０３は、各命令が各プロセッサによって標準クロック周波数で実行される場合の標準実行時間を推定する。
【０１７６】
（Ｓ１００３）  換算実行時間算出部４０４は、各命令が各プロセッサによって種々のクロック周波数で実行される場合に要する換算実行時間を算出する。
【０１７７】
（Ｓ１４０４）  クロック周波数決定部５１２は、フラグ検出部６０１から出力される、割り当て制御フラグに応じた割り当て制御信号に基づいて、各プロセッサに供給されるクロック信号の周波数を決定する。すなわち、各命令が上記フラグに応じたプロセッサによって標準クロック周波数で実行される際に、他のプロセッサの処理が終了するまで待ち時間が生じる（余裕がある）プロセッサに対して、上記待ち時間が短くなり、かつ、全体の処理時間に影響を与えることがない最も低い周波数のクロック信号が供給されるように決定される。これによって、上記のようなプロセッサの割り当ての範囲内で、プロセッサシステムの処理能力を低下させることなく、消費電力を低減することができる。
【０１７８】
（Ｓ１４０５）  クロック周波数決定部５１２は、上記クロック周波数の決定に基づいたクロック制御信号をクロック制御部１０６に出力する。
【０１７９】
（Ｓ１０５）〜（Ｓ１０６）  クロック制御部１０６は、上記クロック制御信号に応じて、ＣＰＵ１０３、ＨＷＥ１０４、およびＳＲＡＭ１０５に出力するクロック信号の周波数を切り替え、命令割り当て制御部１０２は、上記割り当て制御信号に応じて、命令コードをＣＰＵ１０３またはＨＷＥ１０４に転送し、命令の実行がなされる。
【０１８０】
上記のようにプロセッサの割り当て、およびクロック周波数の制御がなされることにより、やはり、処理能力の低下を招くことなく消費電力を低減することができる。しかも、プロセッサの割り当ては割り当て制御フラグに基づいて行われるので、命令解析部６０２はクロック周波数の決定に必要な実行タイミングの制約等を解析するだけでよく、また、クロック周波数決定部５１２は１組のプロセッサの割り当ての組み合わせに対してクロック周波数を決定するだけでよいので、実施の形態３のプロセッサシステムに比べて、命令解析部６０２およびクロック周波数決定部５１２の回路規模を小さく抑えることができる。
【０１８１】
（実施の形態５）
上記実施の形態４のような、各プロセッサの割り当てを制御するためのフラグだけが付加された命令コードは、例えば図１９に示すような命令列最適化装置によって生成することができる。
【０１８２】
すなわち、実施の形態２の変形例（図９）の命令列最適化装置に対して、割り当て制御フラグの付加に必要な機能だけを持たせたもので、フラグ付加部７０６は、割り当て決定部３１１の決定に応じて割り当て制御フラグだけを命令コードに付加するようになっている。
【０１８３】
この命令列最適化装置の動作は、図２０に示すように、実施の形態２の変形例（図１０）と比べて、クロック周波数を決定するための動作（Ｓ１００３）（Ｓ１１０４）が実行されない点と、（Ｓ１５０５）（Ｓ１５０６）で割り当て制御フラグの付加だけが行われる点のみ異なる。
【０１８４】
なお、本実施の形態においても、実施の形態２の変形例で説明したのと同様、図１９、２０に破線で示すように、処理比率設定情報などに基づいて各プロセッサによる処理量の比率を所定の範囲に制限するようにしたり、一連の全体の実行時間が最も短くなるようにプロセッサを割り当てるようにしたり、また、命令の実行順序を並べ替えるようにしたりしてもよい。
【０１８５】
（実施の形態６）
上記のようにクロック周波数が制御されるとともに、さらに、ＣＰＵ１０３等に供給される電源電圧が制御されるプロセッサシステムの例について説明する。すなわち、クロック周波数が低くなると、回路の遅延マージンが大きくなるため、回路の遅延時間を長くすることができ、したがって、電源電圧を低くすることができる。そして、消費電力は電源電圧の２乗に比例するので、大幅な低消費電力化が可能になる。
【０１８６】
具体的には、本実施の形態のプロセッサシステムでは、例えば図２１に示すように、実施の形態１（図１）の構成に加えて、電源電圧制御部７０１（電圧制御手段）が設けられている。上記電源電圧制御部７０１は、フラグ検出部１０１から出力されるクロック制御信号に応じて、あらかじめクロック周波数と対応させて設定された電源電圧、すなわち、クロック周波数が低いほど、定格電圧よりも低い電源電圧をＣＰＵ１０３、ＨＷＥ１０４、およびＳＲＡＭ１０５に供給するようになっている。このプロセッサシステムの動作は、クロック制御部１０６によりクロック周波数が切り替えられるのに応じて、電源電圧制御部７０１から出力される電源電圧が切り替えられる点を除いて、実施の形態１（図４）と同じである。
【０１８７】
上記のようにクロック周波数を低くするとともに電源電圧を低くすることにより、プロセッサシステムの動作や処理能力に影響を与えることなく、一層、消費電力を小さくすることができる。
【０１８８】
なお、上記のようにしてＣＰＵ１０３等に供給される電源電圧は、互いに同一である必要はなく、各回路特性等に応じて設定するようにしてもよい。
【０１８９】
また、電源電圧を高く切り替えるタイミングは、クロック周波数を高く切り替えるタイミングよりも早くなるようにして、クロック周波数切り替え時の回路遅延マージンが十分に確保されるようにしてもよい。
【０１９０】
また、実施の形態１で説明したように、クロック信号の供給を停止してＣＰＵ１０３またはＨＷＥ１０４の動作を停止させる際には、電源電圧の供給も停止させるようにしてもよいし、例えばＨＷＥ１０４に対してだけ、そのような電源電圧の供給停止がなされるようにしてもよい。また、停止された電源電圧の供給が開始されるタイミングも、クロック信号の供給開始タイミングよりも早くなるようにしてもよい。さらに、プロセッサシステム全体への電源投入時やリセット時などに、最初の命令コードがプリフェッチされてフラグの検出がなされるまでの間は、定格電圧が供給されるようにして、上記最初の命令コードを実行するプロセッサの確実な動作を容易に確保できるようにしてもよい。
【０１９１】
（実施の形態７）
上記のように電源電圧を制御するのに代えて、ＣＰＵ１０３等が形成される半導体基板の基板電圧を制御するようにしてもよい。すなわち、半導体基板上に形成されたトランジスタの閾値電圧が高くなるように基板電圧を制御すると、回路の遅延時間は長くなる一方、トランジスタのリーク電流が小さくなる。そこで、クロック周波数が低くなって回路の遅延マージンが大きくなる際には、これに応じて閾値電圧が高くなるように基板電圧を制御することによって消費電力を低減することができる。
【０１９２】
具体的には、本実施の形態のプロセッサシステムでは、例えば図２２に示すように、実施の形態１（図１）の構成に加えて、基板電圧制御部８０１（電圧制御手段）が設けられている。上記基板電圧制御部８０１は、フラグ検出部１０１から出力されるクロック制御信号に応じて、あらかじめクロック周波数と対応させて設定された基板電圧、すなわち、クロック周波数が低いほど、閾値電圧が高くなるような基板電圧（逆バイアス電圧）をＣＰＵ１０３等に供給するようになっている。
【０１９３】
このプロセッサシステムの動作は、クロック制御部１０６によりクロック周波数が切り替えられるのに応じて、基板電圧制御部８０１から出力される基板電圧が切り替えられる点を除いて、実施の形態１（図４）と同じである。
【０１９４】
上記のようにクロック周波数を低くするとともに基板電圧を制御することにより、やはり、プロセッサシステムの動作や処理能力に影響を与えることなく、一層、消費電力を小さくすることができる。
【０１９５】
なお、上記基板電圧に関しても、実施の形態６で電源電圧について説明したのと同様に、ＣＰＵ１０３等に供給される基板電圧を互いに異ならせるようにしたりしてもよい。また、クロック信号の供給が停止される際には、例えば電源電圧と同レベルの電圧を基板電圧として印加するなどしてもよい。
【０１９６】
（実施の形態８）
また、例えば図２３に示すように、電源電圧制御部７０１と基板電圧制御部８０１とを両方とも設けて、電源電圧および基板電圧を共にクロック周波数に応じて制御するようにしてもよい。この場合、電源電圧制御部７０１および基板電圧制御部８０１にクロック周波数と対応して設定される電源電圧と基板電圧との組み合わせを半導体集積回路の特性等に応じて最適化することができる。
【０１９７】
具体的には、例えば、クロック周波数が標準クロック周波数よりも低い場合に、リーク電流が比較的大きい場合には、クロック周波数に応じて許容される遅延時間の範囲内で電源電圧を低くするとともに閾値電圧が高くなるように基板に逆バイアス電圧を印加して（何れも遅延時間は長くなり、消費電力は小さくなる）、両者による消費電力の低減効果が得られるようにしてもよい。一方、リーク電流が比較的小さい場合には、電源電圧を大幅に低くする（遅延時間は長くなり、消費電力は小さくなる）一方、閾値電圧は低くなるように基板に順バイアス電圧を印加して（遅延時間は短くなり、リーク電流は大きくなる）、総じてクロック周波数に応じて許容される遅延時間を満足し、かつ、電源電圧を低くすることによる消費電力の低減効果が大きく得られるようにしてもよい。
【０１９８】
なお、本実施の形態においても、実施の形態６、７で説明したように、ＣＰＵ１０３等に供給される電源電圧や基板電圧をそれぞれ互いに異ならせるようにしたりしてもよい。また、クロック信号の供給が停止されても電源電圧は供給される場合には、例えば電源電圧と同レベルの電圧を基板電圧として印加するなどしてもよい。さらに、クロック信号の供給が停止されて電源電圧の供給も停止される際には基板電圧の供給も停止されるようにしたりしてもよい。
【０１９９】
（実施の形態９）
上記のようにクロック周波数が決定されると、消費電力およびプロセッサシステムの発熱量もほぼ定まることになる。そこで、例えば、図２４に示すように半導体集積回路９００を冷却する冷却ファンなどを有するクーリング装置９０１（冷却手段、冷却制御手段）をクロック制御信号に基づいて制御するようにしてもよい。より詳しくは、上記クーリング装置９０１は、例えばクロック周波数と対応させて所定の制御値が登録されたテーブルを参照して、冷却ファンの回転速度を制御することにより、クロック周波数、電源電圧（これは上記のようにクロック周波数に応じて決定される。）、およびリーク電流（これはクロック周波数に応じて決定された基板電圧によって定まる。）に応じた冷却能力で半導体集積回路９００を冷却するようになっている。これにより、半導体集積回路９００の熱暴走を確実に防止し、かつ、冷却のために要する消費電力を小さく抑えることができる。
【０２００】
なお、上記各実施の形態においては、それぞれ１つずつのＣＰＵ１０３とＨＷＥ１０４とが設けられる例を示したが、これに限らず、同一のまたは異なる機能を有するＨＷＥ１０４やＣＰＵ１０３等が複数設けられるなど、種々の複数のプロセッサが設けられる場合でも同様の効果を得ることができる。
【０２０１】
また、実施の形態１等においては、命令コードにおけるプロセッサの割り当てやクロック周波数を示す情報として命令コードに付加されたフラグが用いられる例を示したが、これに限らず、例えば、命令コード自体によってＣＰＵ１０３またはＨＷＥ１０４の何れで実行される命令かが判別されるようにするなど、実質的にプロセッサの割り当て等を示す情報が命令コードに含まれていればよい。
【０２０２】
また、上記実施の形態６〜９ではクロック制御信号に基づいて直接電源電圧制御部７０１等が制御される例を示したが、これに限らず、クロック周波数に対応して電源電圧等を適切に設定し得る制御信号に基づいて制御されるように構成されていればよい。
【０２０３】
また、上記各実施の形態で説明した各構成要素は、論理的に可能な範囲で種々組み合わせてもよい。具体的には、例えば、実施の形態６〜９で説明したような電源電圧や基板電圧を制御する構成や、冷却手段を制御する構成は、実施の形態３、４（図１３、１５、１７）に示したような、命令コードを解析してプロセッサの割り当てやクロック周波数を制御するプロセッサシステムに適用するなどしてもよい。また、例えば、実施の形態１（図１）のフラグ検出部１０１と実施の形態３（図１３）の命令解析部４０２等を共に設けて各実施の形態の機能を併せ持つようにし、実行する命令のフラグ等の有無に係らず、プロセッサの割り当てやクロック周波数の制御を行えるようにしてもよい。
【産業上の利用可能性】
【０２０４】
本発明にかかるプロセッサシステムは、プロセッサごとに、実行される命令に応じてクロック周波数を制御することにより、処理能力を低下させることなく、消費電力を低減することができる。さらに、上記クロック周波数の制御と対応させて、各プロセッサに供給される電源電圧や基板電圧を制御することにより、一層、消費電力を低減することができる効果を有し、例えば中央処理装置（ＣＰＵ）や、ハードウェア演算エンジン（ＨＷＥ）、コプロセッサなどと称される処理演算装置等の複数のプロセッサを備えたプロセッサシステムにおける消費電力の低減等として有用である。
【符号の説明】
【０２０５】
１００      記憶部
１０１      フラグ検出部
１０２      制御部
１０３      ＣＰＵ
１０４      ＨＷＥ
１０５      ＳＲＡＭ
１０６      クロック制御部
２０１      記憶装置
２０２      命令解析部
２０３      標準実行時間推定部
２０４      換算実行時間算出部
２０５      割り当て・クロック周波数決定部
２０６      フラグ付加部
３１１      割り当て決定部
３１２      クロック周波数決定部
４０２      命令解析部
４０３      標準実行時間推定部
４０４      換算実行時間算出部
４０５      割り当て・クロック周波数決定部
５１１      割り当て決定部
５１２      クロック周波数決定部
６０１      フラグ検出部
６０２      命令解析部
７０１      電源電圧制御部
７０６      フラグ付加部
８０１      基板電圧制御部
９００      半導体集積回路
９０１      クーリング装置
【図１】
2011129147.tif 000003
【図２】
2011129147.tif 000004
【図３】
2011129147.tif 000005
【図４】
2011129147.tif 000006
【図５】
2011129147.tif 000007
【図６】
2011129147.tif 000008
【図７】
2011129147.tif 000009
【図８】
2011129147.tif 000010
【図９】
2011129147.tif 000011
【図１０】
2011129147.tif 000012
【図１１】
2011129147.tif 000013
【図１２】
2011129147.tif 000014
【図１３】
2011129147.tif 000015
【図１４】
2011129147.tif 000016
【図１５】
2011129147.tif 000017
【図１６】
2011129147.tif 000018
【図１７】
2011129147.tif 000019
【図１８】
2011129147.tif 000020
【図１９】
2011129147.tif 000021
【図２０】
2011129147.tif 000022
【図２１】
2011129147.tif 000023
【図２２】
2011129147.tif 000024
【図２３】
2011129147.tif 000025
【図２４】
2011129147.tif 000026