(57)【要約】【課題】処理命令および内部状態に応じてパイプライン演算の実行サイクル数を最適化し、ＣＰＵの電源電圧を制御することで情報処理速度および消費電力を制御する。【解決手段】パイプライン演算によって命令を処理するＣＰＵ１０１と、装置の内部状態を計測し、内部状態信号Ｓ２を生成する内部状態計測部１０３とを備え、ＣＰＵは、読み込んだ命令を解読し、命令解読情報信号Ｓ１を生成する命令解読部１０４と、命令解読部からの命令解読情報信号に基づいて演算制御信号Ｓ３を生成するとともに、命令解読情報信号と内部状態信号とに基づいてパイプライン演算の実行サイクル数の情報を含むパイプライン制御信号Ｓ４を生成する演算制御部１０５と、演算制御部からのパイプライン制御信号が示す実行サイクル数で演算制御信号に対応した種類のパイプライン演算を実行する演算部１０６とを備える。【選択図】  図１
2004240537.tif 000002
【特許請求の範囲】
【請求項１】
パイプライン演算によって命令を処理するＣＰＵと、
装置の内部状態を計測し、内部状態信号を生成出力する内部状態計測手段とを備え、
前記ＣＰＵは、
読み込んだ命令を解読し、命令解読情報信号を生成出力する命令解読部と、
前記命令解読部からの前記命令解読情報信号に基づいて演算制御信号を生成出力するとともに、前記命令解読情報信号と前記内部状態計測手段からの前記内部状態信号とに基づいてパイプライン演算の実行サイクル数の情報を含むパイプライン制御信号を生成出力する演算制御部と、
前記演算制御部からの前記パイプライン制御信号が示す前記実行サイクル数で前記演算制御信号に対応した種類のパイプライン演算を実行する演算部とを備えて構成されている情報処理装置。
【請求項２】
前記内部状態計測手段は、前記ＣＰＵに供給される電源電圧を計測し、その計測した電源電圧値を示す信号を前記内部状態信号として出力する電源電圧計測手段である請求項１に記載の情報処理装置。
【請求項３】
前記内部状態計測手段は、前記ＣＰＵの内部温度を計測し、その計測した内部温度値を示す信号を前記内部状態信号として出力する内部温度計測手段である請求項１に記載の情報処理装置。
【請求項４】
前記内部状態計測手段は、前記ＣＰＵのサンプル用データをサンプリングし、検出した動作速度情報を前記内部状態信号として出力する動作速度判定手段である請求項１に記載の情報処理装置。
【請求項５】
さらに、前記ＣＰＵに電源電圧を供給し、かつ前記ＣＰＵが命令により前記電源電圧を変更可能なレギュレータを備える請求項１から請求項４までのいずれかに記載の情報処理装置。
【請求項６】
さらに、前記ＣＰＵに電源電圧を供給するレギュレータと、
割り込み状態に応じて前記電源電圧を制御する割り込み制御手段とを備える請求項１から請求項４までのいずれかに記載の情報処理装置。
【請求項７】
前記割り込み制御手段は、割り込みの本数に応じて前記レギュレータを制御する請求項６に記載の情報処理装置。
【請求項８】
前記割り込み制御手段は、割り込みの優先順位に応じて前記レギュレータを制御する請求項６に記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パイプライン演算を行うＣＰＵを内蔵した情報処理装置に関するものである。
【０００２】
【従来の技術】
近年、情報処理装置においては電池駆動を長時間行うために動作時の消費電力の削減が必須となっている。情報処理装置の消費電力を削減するために、命令の最低動作電圧をテーブルにより求めて、命令群を実行するときにＣＰＵの電源電圧を前記命令群の最低動作電圧に切り替える技術が存在する（例えば特願平１４−１５９４０２号参照）。
【０００３】
また近年、動作状態に応じて情報処理速度を制御する機能が求められている。情報処理速度を制御するために、命令によって電源電圧およびシステムのクロック周波数を切り替え可能とする情報処理速度制御技術が存在する（例えば特許文献１参照）。
【０００４】
【特許文献１】
特開昭６０−１０３１８号公報（第２頁、第１図）
【０００５】
【発明が解決しようとする課題】
しかしながら、上記の従来の消費電力削減方法では、ＣＰＵの動作電圧は、ＣＰＵが実行する命令群の中で最も処理が重い命令に律速され、その重い命令を実行するに足りる電源電圧に制約されてしまう。また、上記の従来の情報処理速度制御技術では、ＣＰＵの動作電圧を変更する場合に全ての命令に対して一様に情報処理速度を制御してしまう。そのため、無駄な電力消費を招いている。
【０００６】
本発明は、このような事情に鑑みて創作されたものであり、各命令のパイプライン演算を、装置の内部状態および処理命令に応じて最適な情報処理速度で実行するようにして、ＣＰＵの低消費電力化を図り、併せて情報処理速度の適正化を図ることを目的としている。
【０００７】
【課題を解決するための手段】
本発明は、上記の課題を解決するために次のような手段を講じる。
【０００８】
第１の解決手段として、本発明による情報処理装置は、パイプライン演算によって命令を処理するＣＰＵと、装置の内部状態を計測し、内部状態信号を生成出力する内部状態計測手段とを備えたものであって、前記ＣＰＵは、次のような機能を有する構成要素、すなわち、命令解読部、演算制御部および演算部を備えている。前記命令解読部は、読み込んだ命令を解読し、命令解読情報信号を生成し、演算制御部に出力するものである。前記演算制御部は、前記命令解読部からの前記命令解読情報信号に基づいて演算制御信号を生成出力するとともに、前記命令解読情報信号と前記内部状態計測手段からの前記内部状態信号とに基づいてパイプライン演算の実行サイクル数の情報を含むパイプライン制御信号を生成し、生成した前記演算制御信号と前記パイプライン制御信号を前記演算部に出力するものである。前記演算部は、前記演算制御部からの前記パイプライン制御信号が示す前記実行サイクル数で前記演算制御信号に対応した種類のパイプライン演算を実行するものである。
【０００９】
この構成によれば、命令内容に対応するパイプライン演算の種類と内部状態との組み合わせに応じて、パイプライン演算の実行サイクル数を変更するので、ＣＰＵは各命令のパイプライン演算を内部状態に応じて最適な情報処理速度で実行することができる。その結果、ＣＰＵの低消費電力化および情報処理速度の適正化を図ることができる。
【００１０】
上記において好ましい態様として、前記内部状態計測手段を、前記ＣＰＵに供給される電源電圧を計測し、その計測した電源電圧値を示す信号を前記内部状態信号として出力する電源電圧計測手段とすることがある。
【００１１】
この場合、命令内容に対応するパイプライン演算の種類と電源電圧値との組み合わせに応じて、パイプライン演算の実行サイクル数を変更するので、ＣＰＵは各命令のパイプライン演算を電源電圧値に応じて最適な情報処理速度で実行することができる。
【００１２】
また、上記において別の好ましい態様として、前記内部状態計測手段を、前記ＣＰＵの内部温度を計測し、その計測した内部温度値を示す信号を前記内部状態信号として出力する内部温度計測手段とすることがある。
【００１３】
この場合、命令内容に対応するパイプライン演算の種類と内部温度値との組み合わせに応じて、パイプライン演算の実行サイクル数を変更するので、ＣＰＵは各命令のパイプライン演算を内部温度値に応じて最適な情報処理速度で実行することができる。
【００１４】
また、上記において別の好ましい態様として、前記内部状態計測手段を、前記ＣＰＵのサンプル用データをサンプリングし、検出した動作速度情報を前記内部状態信号として出力する動作速度判定手段とすることがある。
【００１５】
この場合、命令内容に対応するパイプライン演算の種類と動作速度との組み合わせに応じて、パイプライン演算の実行サイクル数を変更するので、ＣＰＵは各命令のパイプライン演算を動作速度に応じて最適な情報処理速度で実行することができる。
【００１６】
第２の解決手段として、本発明による情報処理装置は、上記第１の解決手段において、さらに、前記ＣＰＵに電源電圧を供給し、かつ前記ＣＰＵが命令により前記電源電圧を変更可能なレギュレータを備えた構成とするものである。
【００１７】
この構成によれば、レギュレータを制御することで情報処理速度を制御することができ、各動作電圧において各処理命令を最適な情報処理速度で演算することができ、クロック周波数を変えることなく、消費電力および情報処理量を制御することが可能である。
【００１８】
第３の解決手段として、本発明による情報処理装置は、上記第１の解決手段において、さらに、前記ＣＰＵに電源電圧を供給するレギュレータと、割り込み状態に応じて前記電源電圧を制御する割り込み制御手段とを備えた構成とするものである。
【００１９】
この構成によれば、割り込み制御手段がレギュレータを制御することにより、受理している割り込みの状態に応じて、クロック周波数を変えることなく、消費電力および情報処理量を制御することが可能である。
【００２０】
なお、上記において、前記割り込み制御手段としては、割り込みの本数に応じて前記レギュレータを制御するように構成するのでもよいし、割り込みの優先順位に応じて前記レギュレータを制御するように構成するのでもよい。
【００２１】
【発明の実施の形態】
以下、本発明にかかわる情報処理装置の実施の形態を図面に基づいて詳細に説明する。
【００２２】
（実施の形態１）
図１は本発明の実施の形態１における情報処理装置の構成を示すブロック図である。
【００２３】
本発明の実施の形態１にかかわる情報処理装置１００は、ＣＰＵ１０１、記憶装置１０２および電源電圧計測部１０３から構成されている。
【００２４】
ＣＰＵ１０１は、記憶装置１０２から読み込んだ命令を解読し、命令解読情報信号Ｓ１を出力する命令解読部１０４と、命令解読部１０４から入力した命令解読情報信号Ｓ１に基づいて演算制御信号Ｓ３を生成出力するとともに、命令解読情報信号Ｓ１と電源電圧計測部１０３から入力した内部状態信号Ｓ２とに基づいてパイプライン制御信号Ｓ４を生成出力する演算制御部１０５と、演算制御部１０５からの演算制御信号Ｓ３およびパイプライン制御信号Ｓ４に基づいて所要の演算処理を行う演算部１０６から構成されている。このＣＰＵ１０１は、命令解読部１０４による命令解読ステージ（以下ではＤＥＣステージとする）と、演算制御部１０５および演算部１０６による実行ステージ（以下ではＥＸステージとする）との２つ以上のパイプラインステージからなるパイプライン処理を行う。
【００２５】
図２は演算制御部１０５の詳しい構成を示すブロック図である。演算制御部１０５は、命令解読部１０４からの命令解読情報信号Ｓ１に基づいて演算の種類を示す演算制御信号Ｓ３を生成出力する演算制御信号生成回路１５０と、命令解読情報信号Ｓ１に基づいて第１状態制御信号Ｓ４ａを生成出力する第１状態制御信号生成回路１５１と、命令解読情報信号Ｓ１に基づいて第２状態制御信号Ｓ４ｂを生成出力する第２状態制御信号生成回路１５２と、命令解読情報信号Ｓ１に基づいて第３状態制御信号Ｓ４ｃを生成出力する第３状態制御信号生成回路１５３および電源電圧計測部１０３からの内部状態信号Ｓ２に基づいて前記３つのパイプライン制御信号Ｓ４ａ，Ｓ４ｂ，Ｓ４ｃから対応するものを選択出力するセレクタ１５４から構成されている。
【００２６】
図３はＥＸステージの処理を担当する演算部１０６の詳しい構成を示すブロック図である。ここでのＥＸステージは、加算演算および比較演算の実行であるとする。演算部１０６は、後述するマスク後クロック信号ＣＬＫｍの立ち上がりエッジで入力データＤｉｎをラッチする前段パイプラインラッチ２０１と、前段パイプラインラッチ２０１からの出力データＤ１について加算演算を行う加算回路２０２と、前段パイプラインラッチ２０１からの出力データＤ１について比較演算を行う比較回路２０３と、演算制御信号生成回路１５０からの演算制御信号Ｓ３の制御により加算回路２０２の出力データＤ２と比較回路２０３の出力データＤ３のいずれかを選択するセレクタ２０４と、マスク後クロック信号ＣＬＫｍの立ち上がりエッジでセレクタ２０４の出力データＤ４をラッチし出力データＤｏｕｔを出力する後段パイプラインラッチ２０５と、クロック信号ＣＬＫとパイプライン制御信号Ｓ４との論理積を演算してマスク後クロック信号ＣＬＫｍを生成出力するＡＮＤ回路２０６から構成されている。
【００２７】
電源電圧計測部１０３は、図１に示すように、電源電圧計測回路１０７と内部状態レジスタ１０８から構成されている。
【００２８】
次に、上記のように構成された本実施の形態の情報処理装置の動作を説明する。
【００２９】
記憶装置１０２は命令をＣＰＵ１０１における命令解読部１０４に供給する。一方、電源電圧計測部１０３における電源電圧計測回路１０７は情報処理装置１００に供給される電源電圧を計測する。電源電圧計測回路１０７における内部状態レジスタ１０８は計測した電源電圧値が２Ｖ以上３Ｖ未満の場合は、第１状態として“００”の値を保持し、３Ｖ以上４Ｖ未満の場合は、第２状態として“０１”の値を保持し、４Ｖ以上の場合は、第３状態として“１０”の値を保持し、その保持状態を２ビットの内部状態信号Ｓ２としてＣＰＵ１０１における演算制御部１０５に出力し、内部状態を伝達する。
【００３０】
ＣＰＵ１０１における命令解読部１０４は、ＤＥＣステージの処理として、記憶装置１０２から命令を読み込み、命令を解読した結果を命令解読情報信号Ｓ１として演算制御部１０５に出力する。演算制御部１０５は命令解読部１０４からの命令解読情報信号Ｓ１と内部状態レジスタ１０８からの内部状態信号Ｓ２を入力し、演算制御信号Ｓ３とパイプライン制御信号Ｓ４を生成し、演算部１０６に出力する。
【００３１】
演算制御部１０５における演算制御信号生成回路１５０は入力した命令解読情報信号Ｓ１に基づいて演算制御信号Ｓ３を生成し、演算部１０６に出力する。この演算制御信号Ｓ３は演算部１０６において使用する演算回路を指定するための信号であり、ここでは加算回路２０２、比較回路２０３のいずれか一方を指定するものである。
【００３２】
一方、演算制御部１０５における第１状態制御信号生成回路１５１は、入力した命令解読情報信号Ｓ１に基づいて、第１状態におけるパイプライン演算の実行サイクル数を制御するための第１状態制御信号Ｓ４ａを生成出力する。同様に、第２状態制御信号生成回路１５２は、命令解読情報信号Ｓ１に基づいて、第２状態におけるパイプライン演算の実行サイクル数を制御するための第２状態制御信号Ｓ４ｂを生成出力し、第３状態制御信号生成回路１５３は、命令解読情報信号Ｓ１に基づいて、第３状態におけるパイプライン演算の実行サイクル数を制御するための第３状態制御信号Ｓ４ｃを生成出力する。第１状態制御信号生成回路１５１、第２状態制御信号生成回路１５２および第３状態制御信号生成回路１５３は、命令の種類に応じてあらかじめ決められているパターンの状態制御信号を生成出力する。
【００３３】
そして、演算制御部１０５におけるセレクタ１５４は、内部状態レジスタ１０８からの内部状態信号Ｓ２が第１状態を示す場合は第１状態制御信号Ｓ４ａを選択し、第２状態を示す場合は第２状態制御信号Ｓ４ｂを選択し、第３状態を示す場合は第３状態制御信号Ｓ４ｃを選択し、選択したものをパイプライン制御信号Ｓ４として演算部１０６に出力する。パイプライン制御信号Ｓ４は演算部１０６においてパイプライン演算の実行サイクル数を制御する。
【００３４】
ＥＸステージを実行する演算部１０６において、ＡＮＤ回路２０６は、ＣＰＵ１０１に供給されているクロック信号ＣＬＫと演算制御部１０５で選択されたパイプライン制御信号Ｓ４との論理積を演算してマスク後クロック信号ＣＬＫｍを生成し、前段パイプラインラッチ２０１および後段パイプラインラッチ２０５に供給する。前段パイプラインラッチ２０１はマスク後クロック信号ＣＬＫｍの立ち上がりエッジで入力データＤｉｎをラッチする。入力データＤｉｎは前段パイプラインステージの出力である。加算回路２０２は前段パイプラインラッチ２０１の出力データＤ１に対して加算演算を行う。比較回路２０３は前段パイプラインラッチ２０１の出力データＤ１に対して比較演算を行う。セレクタ２０４は演算制御信号Ｓ３の制御により加算回路２０２の出力データＤ２と比較回路２０３の出力データＤ３のいずれか一方を選択し、出力データＤ４として後段パイプラインラッチ２０５に出力する。後段パイプラインラッチ２０５はマスク後クロック信号ＣＬＫｍの立ち上がりエッジでセレクタ２０４の出力データＤ４をラッチし、出力データＤｏｕｔとして、後段パイプラインステージに出力する。
【００３５】
次に、本実施の形態の情報処理装置１００が、加算命令を演算する場合の具体的な動作と比較命令を演算する場合の具体的な動作を順次に説明する。
【００３６】
（１）加算命令を演算する場合
図４のタイミングチャートは加算命令を演算する場合のクロック信号ＣＬＫ、パイプライン制御信号Ｓ４、マスク後クロック信号ＣＬＫｍ、前段パイプラインラッチ２０１の出力データＤ１、後段パイプラインラッチ２０５の入力データＤ４および後段パイプラインラッチ２０５の出力データＤｏｕｔおよびパイプラインステージについて、第１状態、第２状態、第３状態それぞれの様子を示す。
【００３７】
時刻Ｔ０から時刻Ｔ１のＤＥＣステージにおいて、命令解読部１０４は加算命令を解読し、加算命令に対応した命令解読情報信号Ｓ１を出力する。命令解読部１０４から入力した命令解読情報信号Ｓ１が加算命令を示す場合、演算制御部１０５における演算制御信号生成回路１５０は加算命令を示す命令解読情報信号Ｓ１に基づいて、加算演算を選択する演算制御信号Ｓ３を生成し、演算部１０６におけるセレクタ２０４に出力する。その結果、セレクタ２０４は加算回路２０２の出力データＤ２を選択する状態となる。
【００３８】
命令解読情報信号Ｓ１が加算命令を示すとき、第１状態制御信号生成回路１５１はパイプライン演算の実行サイクル数を２クロックサイクルとする第１状態制御信号Ｓ４ａを出力し、第２状態制御信号生成回路１５２も２クロックサイクルとする第２状態制御信号Ｓ４ｂを出力し、第３状態制御信号生成回路１５３は１クロックサイクルとする第３状態制御信号Ｓ４ｃを出力する。
【００３９】
以下に、第１状態、第２状態、第３状態に分けて電源電圧計測部１０３、演算制御部１０５および演算部１０６の動作を説明する。
【００４０】
（１−１）第１状態
時刻Ｔ１から時刻Ｔ５までのＥＸステージにおいて、電源電圧計測部１０３における電源電圧計測回路１０７は電源電圧を計測する。その電源電圧値が２Ｖ以上３Ｖ未満の第１状態となっており、内部状態レジスタ１０８は第１状態として“００”の値を保持し、第１状態を示す内部状態信号Ｓ２がＣＰＵ１０１における演算制御部１０５に出力される。内部状態信号Ｓ２が第１状態を示していることから、セレクタ１５４は第１状態制御信号Ｓ４ａを選択し、パイプライン制御信号Ｓ４として演算部１０６におけるＡＮＤ回路２０６に出力する。ＡＮＤ回路２０６は、第１状態制御信号Ｓ４ａであるパイプライン制御信号Ｓ４をマスク信号としてクロック信号ＣＬＫを通し、前段パイプラインラッチ２０１および後段パイプラインラッチ２０５に供給する。このときのパイプライン制御信号Ｓ４は、パイプライン演算の実行サイクル数を２クロックサイクルとするものである。
【００４１】
時刻Ｔ１において、前段パイプラインラッチ２０１はマスク後クロック信号ＣＬＫｍの立ち上がりエッジで入力データＤｉｎをラッチする。時刻Ｔ２においてパイプライン制御信号Ｓ４が立ち下がる。時刻Ｔ３においてはパイプライン制御信号Ｓ４がネゲートされているため、ＡＮＤ回路２０６の出力であるマスク後クロック信号ＣＬＫｍは変化せず、後段パイプラインラッチ２０５は動作しない。時刻Ｔ４においてパイプライン制御信号Ｓ４が立ち上がる結果、時刻Ｔ５においてマスク後クロック信号ＣＬＫｍが立ち上がり、後段パイプラインラッチ２０５はセレクタ２０４の出力データＤ４をラッチし、出力データＤｏｕｔとして出力する。
【００４２】
以上の動作により、第１状態において加算命令の演算に対する演算部１０６のＥＸステージは、第１状態制御信号Ｓ４ａであるパイプライン制御信号Ｓ４によって、２クロックサイクルで実行される。第１状態の場合、電源電圧値が２Ｖ以上３Ｖ未満と低く、高速動作がむずかしいので、実行サイクル数を２クロックサイクルとして処理し、動作の安定性を確保している。
【００４３】
（１−２）第２状態
時刻Ｔ１から時刻Ｔ５までのＥＸステージにおいて、電源電圧計測回路１０７が計測した電源電圧値が３Ｖ以上４Ｖ未満の第２状態となっており、内部状態レジスタ１０８は第２状態として“０１”の値を保持し、第２状態を示す内部状態信号Ｓ２が演算制御部１０５に出力される。内部状態信号Ｓ２が第２状態を示していることから、セレクタ１５４は第２状態制御信号Ｓ４ｂを選択し、パイプライン制御信号Ｓ４としてＡＮＤ回路２０６に出力する。ＡＮＤ回路２０６は、第２状態制御信号Ｓ４ｂであるパイプライン制御信号Ｓ４をマスク信号としてクロック信号ＣＬＫを通し、前段パイプラインラッチ２０１および後段パイプラインラッチ２０５に供給する。このときのパイプライン制御信号Ｓ４は、パイプライン演算の実行サイクル数を２クロックサイクルとするものである。
【００４４】
第２状態において加算命令の演算に対する演算部１０６のＥＸステージは、第２状態制御信号Ｓ４ｂであるパイプライン制御信号Ｓ４によって、２クロックサイクルで実行される。この第２状態での動作は、電源電圧値が少し高い分だけ、後段パイプラインラッチ２０５への入力データＤ４のタイミングが少し早くなっている点を除けば、基本的に第１状態での動作と同一である。第２状態の場合、電源電圧値が３Ｖ以上４Ｖ未満とやや低く、高速動作はややむずかしいので、実行サイクル数をやはり２クロックサイクルとして処理し、動作の安定性を優先している。
【００４５】
（１−３）第３状態
時刻Ｔ１から時刻Ｔ３までのＥＸステージにおいて、電源電圧計測回路１０７が計測した電源電圧値が４Ｖ以上の第３状態となっており、内部状態レジスタ１０８は第３状態として“１０”の値を保持し、第３状態を示す内部状態信号Ｓ２が演算制御部１０５に出力される。内部状態信号Ｓ２が第３状態を示していることから、セレクタ１５４は第３状態制御信号Ｓ４ｃを選択し、パイプライン制御信号Ｓ４として演算部１０６におけるＡＮＤ回路２０６に出力する。ＡＮＤ回路２０６は、第３状態制御信号Ｓ４ｃであるパイプライン制御信号Ｓ４をマスク信号としてクロック信号ＣＬＫを通し、前段パイプラインラッチ２０１および後段パイプラインラッチ２０５に供給する。このときのパイプライン制御信号Ｓ４は、パイプライン演算の実行サイクル数を１クロックサイクルとするものである。
【００４６】
時刻Ｔ１において、前段パイプラインラッチ２０１はマスク後クロック信号ＣＬＫｍの立ち上がりエッジで入力データＤｉｎをラッチする。時刻Ｔ２においてパイプライン制御信号Ｓ４が立ち下がる。ラッチ時刻Ｔ３においてマスク後クロック信号ＣＬＫｍが立ち上がり、後段パイプラインラッチ２０５はセレクタ２０４の出力データＤ４をラッチし、出力データＤｏｕｔとして出力する。
【００４７】
以上の動作により、第３状態において加算命令の演算に対する演算部１０６のＥＸステージは、第３状態制御信号Ｓ４ｃであるパイプライン制御信号Ｓ４によって、１クロックサイクルで実行される。第３状態の場合、電源電圧値が４Ｖ以上と高く、高速動作が可能であるので、実行サイクル数を１クロックサイクルとして処理することが可能である。
【００４８】
（２）比較命令を演算する場合
図５は比較命令を演算する場合の図４相当のタイミングチャートである。
【００４９】
時刻Ｔ０から時刻Ｔ１のＤＥＣステージにおいて、命令解読部１０４は比較命令を解読し、比較命令に対応した命令解読情報信号Ｓ１を出力する。命令解読部１０４から入力した命令解読情報信号Ｓ１が比較命令を示す場合、演算制御部１０５における演算制御信号生成回路１５０は比較命令を示す命令解読情報信号Ｓ１に基づいて、比較演算を選択する演算制御信号Ｓ３を生成し、演算部１０６におけるセレクタ２０４に出力する。その結果、セレクタ２０４は比較回路２０３の出力データＤ３を選択する状態となる。
【００５０】
命令解読情報信号Ｓ１が比較命令を示すとき、第１状態制御信号生成回路１５１、第２状態制御信号生成回路１５２および第３状態制御信号生成回路１５３のいずれもがパイプライン演算の実行サイクル数を１クロックサイクルとする第１状態制御信号Ｓ４ａ、第２状態制御信号Ｓ４ｂ、第３状態制御信号Ｓ４ｃを出力する。比較命令の場合は、比較処理の負荷が加算処理に比べて小さいので、電源電圧状態のいかんにかかわらず、パイプライン演算の実行サイクル数は基準の１クロックサイクルでよく、パイプライン制御信号Ｓ４は常にアサートされたものになる。
【００５１】
以下に、第１状態、第２状態、第３状態に分けて電源電圧計測部１０３、演算制御部１０５および演算部１０６の動作を説明する。
【００５２】
（２−１）第１状態
時刻Ｔ１から時刻Ｔ３までのＥＸステージにおいて、電源電圧計測部１０３における電源電圧計測回路１０７は電源電圧を計測する。その電源電圧値が２Ｖ以上３Ｖ未満の第１状態となっており、内部状態レジスタ１０８は第１状態として“００”の値を保持し、第１状態を示す内部状態信号Ｓ２がＣＰＵ１０１における演算制御部１０５に出力される。内部状態信号Ｓ２が第１状態を示していることから、セレクタ１５４は第１状態制御信号Ｓ４ａを選択し、パイプライン制御信号Ｓ４として演算部１０６におけるＡＮＤ回路２０６に出力する。ＡＮＤ回路２０６は、第１状態制御信号Ｓ４ａであるパイプライン制御信号Ｓ４をマスク信号としてクロック信号ＣＬＫを通し、前段パイプラインラッチ２０１および後段パイプラインラッチ２０５に供給する。このときのパイプライン制御信号Ｓ４は、パイプライン演算の実行サイクル数を１クロックサイクルとするものである。
【００５３】
時刻Ｔ１において、前段パイプラインラッチ２０１はマスク後クロック信号ＣＬＫｍの立ち上がりエッジで入力データＤｉｎをラッチする。時刻Ｔ１から時刻Ｔ３において、パイプライン制御信号Ｓ４は常にアサートされている。時刻Ｔ３においてマスク後クロック信号ＣＬＫｍが立ち上がり、後段パイプラインラッチ２０５はセレクタ２０４の出力データＤ４をラッチし、出力データＤｏｕｔとして出力する。
【００５４】
以上の動作により、第１状態において比較命令の演算に対する演算部１０６のＥＸステージは、第１状態制御信号Ｓ４ａであるパイプライン制御信号Ｓ４によって、１クロックサイクルで実行される。
【００５５】
（２−２）第２状態
時刻Ｔ１から時刻Ｔ３までのＥＸステージにおいて、電源電圧計測回路１０７が計測した電源電圧値が３Ｖ以上４Ｖ未満の第２状態となっており、内部状態レジスタ１０８は第２状態として“０１”の値を保持し、第２状態を示す内部状態信号Ｓ２が演算制御部１０５に出力される。内部状態信号Ｓ２が第２状態を示していることから、セレクタ１５４は第２状態制御信号Ｓ４ｂを選択し、パイプライン制御信号Ｓ４としてＡＮＤ回路２０６に出力する。このときのパイプライン制御信号Ｓ４も、パイプライン演算の実行サイクル数を１クロックサイクルとするものである。
【００５６】
したがって、第２状態においても第１状態のときと同様に、比較命令の演算に対する演算部１０６のＥＸステージは１クロックサイクルで実行される。この第２状態での動作は、電源電圧値が少し高い分だけ、後段パイプラインラッチ２０５に対する入力データＤ４の入力タイミングが第１状態よりも少し早くなっている。この点を除けば、基本的に第１状態での動作と同一である。
【００５７】
（２−３）第３状態
時刻Ｔ１から時刻Ｔ３までのＥＸステージにおいて、電源電圧計測回路１０７が計測した電源電圧値が４Ｖ以上の第３状態となっており、内部状態レジスタ１０８は第３状態として“１０”の値を保持し、第３状態を示す内部状態信号Ｓ２が演算制御部１０５に出力される。内部状態信号Ｓ２が第３状態を示していることから、セレクタ１５４は第３状態制御信号Ｓ４ｃを選択し、パイプライン制御信号Ｓ４として演算部１０６におけるＡＮＤ回路２０６に出力する。このときのパイプライン制御信号Ｓ４も、パイプライン演算の実行サイクル数を１クロックサイクルとするものである。
【００５８】
したがって、第３状態においても第１状態、第２状態のときと同様に、比較命令の演算に対する演算部１０６のＥＸステージは１クロックサイクルで実行される。この第３状態での動作は、電源電圧値がさらに高い分だけ、後段パイプラインラッチ２０５に対する入力データＤ４の入力タイミングが第２状態よりも少し早くなっている。この点を除けば、基本的に第１状態、第２状態での動作と同一である。
【００５９】
以上の動作により、比較演算は負荷が小さいので、電源電圧状態が第１状態であるか第２状態であるか第３状態であるかに関係なく、実行サイクル数を１クロックサイクルとしても充分対応でき、動作は安定性したものとなる。
【００６０】
以上のように本実施形態によれば、電源電圧計測回路１０７で電源電圧を計測し、内部状態レジスタ１０８の値を判定し、ＣＰＵ１０１は、内部状態レジスタ１０８から伝達される電源電圧値を示す内部状態信号Ｓ２および命令解読部１０４からの命令解読情報信号Ｓ１に応じてパイプライン演算の実行サイクル数を制御することにより、各命令および各電源電圧状態に応じて最適な実行サイクル数でパイプライン演算を処理することができる。
【００６１】
（実施の形態２）
実施の形態１では電源電圧計測部が電源電圧を計測することにより内部状態を判定したが、本発明の実施の形態２では内部温度計測部が内部温度を計測することにより内部状態を判定する。
【００６２】
図６は本発明の実施の形態２における情報処理装置の構成を示すブロック図である。
【００６３】
本発明の実施の形態２にかかわる情報処理装置３００は、実施の形態１の電源電圧計測部１０３に代えて、内部温度計測部３０３を備えたものである。内部温度計測部３０３は、情報処理装置３００の内部温度を計測する内部温度計測回路３１１と、計測結果を保持する内部状態レジスタ３１２から構成されている。内部状態レジスタ３１２は、内部温度計測回路３１１が計測した内部温度の値が７０℃以上の場合は、第１状態として“００”の値を保持し、５０℃以上７０℃未満の場合は、第２状態として“０１”の値を保持し、５０℃未満の場合は、第３状態として“１０”の値を保持する。その他の構成については、実施の形態１で説明したものと同様であるので、同一構成要素に同一符号を付すにとどめ、説明を省略する。動作についても、基本的には同様のものであり、電源電圧値を内部温度値と置き換えて解釈すればよい。
【００６４】
本実施形態によれば、内部温度計測回路３１１で内部温度を計測し、内部状態レジスタ３１２の値を判定し、ＣＰＵ１０１は、内部状態レジスタ３１２から伝達される内部温度値を示す内部状態信号Ｓ１２および命令解読部１０４からの命令解読情報信号Ｓ１に応じてパイプライン演算の実行サイクル数を制御することにより、各命令および各内部温度状態に応じて最適な実行サイクル数でパイプライン演算を処理することができる。
【００６５】
（実施の形態３）
実施の形態１では電源電圧計測部が電源電圧を計測することにより内部状態を判定していたが、本発明の実施の形態３ではサンプリング回路によって動作速度を判定することにより内部状態を判定する。
【００６６】
図７は本発明の実施の形態３における情報処理装置の構成を示すブロック図である。
【００６７】
本発明の実施の形態３にかかわる情報処理装置４００は、実施の形態１の電源電圧計測部１０３に代えて、動作速度判定部４０３を備えたものである。動作速度判定部４０３は、サンプリング回路４１１と内部状態レジスタ４１２から構成されている。
【００６８】
図８はサンプリング回路４１１の詳しい構成を示すブロック図である。サンプリング回路４１１は、入力フリップフロップ４５１、第１論理回路４５２、第２論理回路４５３、第３論理回路４５４、第１出力フリップフロップ４５５、第２出力フリップフロップ４５６、第３出力フリップフロップ４５７から構成されている。
【００６９】
入力フリップフロップ４５１は、情報処理装置４００に供給されているクロック信号ＣＬＫの立ち上がりエッジでサンプル用データＤ２０をラッチし、第１論理回路４５２に出力する。第１出力フリップフロップ４５５は、クロック信号ＣＬＫの立ち上がりエッジで第１論理回路４５２の出力をラッチし、第１出力データＤ２１を出力する。第１論理回路４５２の出力は第２論理回路４５３に入力される。第２出力フリップフロップ４５６は、クロック信号ＣＬＫの立ち上がりエッジで第２論理回路４５３の出力をラッチし、第２出力データＤ２２を出力する。第２論理回路４５３の出力は第３論理回路４５４に入力される。第３出力フリップフロップ４５７は、クロック信号ＣＬＫの立ち上がりエッジで第３論理回路４５４の出力をラッチし、第３出力データＤ２３を出力する。
【００７０】
サンプリング回路４１１では定期的にサンプル用データＤ２０を入力し、第１出力フリップフロップ４５５、第２出力フリップフロップ４５６、第３出力フリップフロップ４５７にサンプル用データが到達するクロック数を計測する。内部状態レジスタ４１２は、その到達に要した時間の情報すなわち動作速度の情報を保持する。
【００７１】
具体的には、内部状態レジスタ４１２は、サンプル用データＤ２０の入力タイミングから１クロックサイクルで第１出力データＤ２１が有効となり、２クロックサイクルで第２出力データＤ２２および第３出力データＤ２３が有効となる場合に、第１状態として“００”の値を保持し、１クロックサイクルで第１出力データＤ２１および第２出力データＤ２２が有効となり、２クロックサイクルで第３出力データＤ２３が有効となる場合に、第２状態として“０１”の値を保持し、１クロックサイクルで第１出力データＤ２１、第２出力データＤ２２および第３出力データＤ２３が有効となる場合に、第３状態として“１０”の値を保持する。その他の構成については、実施の形態１で説明したものと同様であるので、同一構成要素に同一符号を付すにとどめ、説明を省略する。動作についても、基本的には同様のものであり、電源電圧値を動作速度と置き換えて解釈すればよい。
【００７２】
本実施形態によれば、サンプリング回路４１１が動作速度を判定し、内部状態レジスタ４１２の値を判定し、ＣＰＵ１０１は、内部状態レジスタ４１２から伝達される動作速度を示す内部状態信号Ｓ２２および命令解読部１０４からの命令解読情報信号Ｓ１に応じてパイプライン演算の実行サイクル数を制御することにより、各命令および各動作速度（電源電圧値および内部温度値等を考慮した各内部状態）に応じて最適な実行サイクル数でパイプライン演算を処理することができる。
【００７３】
（実施の形態４）
本発明の実施の形態４は実施の形態１の情報処理装置にＣＰＵに供給する電源電圧を制御するレギュレータとＣＰＵがレギュレータを制御する手段とを追加したものである。
【００７４】
図９は本発明の実施の形態４における情報処理装置の構成を示すブロック図である。
【００７５】
本発明の実施の形態４にかかわる情報処理装置５００は、実施の形態１の場合の構成要素に加えて、ＣＰＵ１０１によって書き換え可能な電源電圧制御レジスタ５０２を有するレギュレータ５０１と、外部から与えられた電源電圧をレギュレータ５０１に供給するレギュレータ入力端子５０３と、レギュレータ５０１から出力された電圧を出力するレギュレータ出力端子５０４と、レギュレータ出力端子５０４からの調整済みの電源電圧を情報処理装置５００に供給する電源入力端子５０５と、ＣＰＵ１０１と電源電圧制御レジスタ５０２とをつなぐアドレスバス５０６およびデータバス５０７とを備えている。その他の構成については、実施の形態１で説明したものと同様であるので、同一構成要素に同一符号を付すにとどめ、説明を省略する。
【００７６】
ＣＰＵ１０１は、情報処理速度を高めに設定する命令を演算すると、電源電圧制御レジスタ５０２の値を“１０”に書き換え、情報処理速度を標準に設定する命令を演算すると電源電圧制御レジスタ５０２の値を“０１”に書き換え、情報処理速度を低めに設定する命令を演算すると電源電圧制御レジスタ５０２の値を“００”に書き換える。
【００７７】
レギュレータ５０１は、電源電圧制御レジスタ５０２が“００”の場合に出力を低く（ここでは２Ｖとする）制御し、“０１”の場合に出力を標準（ここでは３Ｖとする）に制御し、“１０”の場合に出力を高く（ここでは４Ｖとする）制御する。
【００７８】
以下に、（１）情報処理速度を高めに設定する命令を演算する場合、（２）情報処理速度を標準に設定する命令を演算する場合、（３）情報処理速度を低めに設定する場合について動作を説明する。
【００７９】
（１）情報処理速度を高めに設定する命令を演算する場合
ＣＰＵ１０１は、情報処理速度を高めに設定する命令を演算すると、アドレスバス５０６およびデータバス５０７を介して電源電圧制御レジスタ５０２の値を“１０”に書き換え、レギュレータ５０１の出力電圧を４Ｖとする。
【００８０】
（２）情報処理速度を標準に設定する命令を演算する場合
ＣＰＵ１０１は、情報処理速度を標準に設定する命令を演算すると、電源電圧制御レジスタ５０２の値を“０１”に書き換え、レギュレータ５０１の出力電圧を３Ｖとする。
【００８１】
（３）情報処理速度を低めに設定する命令を演算する場合
ＣＰＵ１０１は、情報処理速度を低めに設定する命令を演算すると、電源電圧制御レジスタ５０２の値を“００”に書き換え、レギュレータ５０１の出力電圧を２Ｖとする。
【００８２】
その他の動作については、実施の形態１で説明したものと同様である。
【００８３】
以上のように本実施形態によれば、ＣＰＵ１０１は情報処理速度を設定する命令を処理することによってレギュレータ５０１の出力電圧を制御し、電源電圧値および命令に応じて最適なパイプライン演算の実行サイクル数を決定することにより、クロック周波数を変えることなく、ＣＰＵ１０１の情報処理速度および消費電力を制御することができる。
【００８４】
（実施の形態５）
実施の形態４ではＣＰＵが特定の命令を処理することでレギュレータの出力電圧を制御したが、本発明の実施の形態５では割り込み制御部が割り込みの受理状態に応じてレギュレータの出力電圧を制御する。
【００８５】
図１０は本発明の実施の形態５における情報処理装置の構成を示すブロック図である。
【００８６】
本発明の実施の形態５にかかわる情報処理装置６００は、実施の形態１の場合の構成要素に加えて、割り込み受理本数レジスタ６０２を有する割り込み制御部６０１と、外部から与えられた電源電圧をレギュレータ６０１に供給するレギュレータ入力端子５０３と、レギュレータ５０１から出力された電圧を出力するレギュレータ出力端子５０４と、レギュレータ出力端子５０４からの調整済みの電源電圧を情報処理装置６００に供給する電源入力端子５０５とを備えている。その他の構成については、実施の形態１で説明したものと同様であるので、同一構成要素に同一符号を付すにとどめ、説明を省略する。
【００８７】
割り込み受理本数レジスタ６０２は、割り込み制御部６０１が受理している割り込みの本数が０本の場合に“００”の値を保持し、１本の場合に“０１”の値を保持し、２本以上の場合に“１０”の値を保持する。
【００８８】
レギュレータ６０３は、割り込み受理本数レジスタ６０２が“００”の場合に出力を低く（ここでは２Ｖとする）制御し、“０１”の場合に出力を標準（ここでは３Ｖとする）に制御し、“１０”の場合に出力を高く（ここでは４Ｖとする）制御する。
【００８９】
次に、上記のように構成された本実施の形態の情報処理装置の動作を説明する。
【００９０】
割り込み制御部６０１が受理している割り込みの本数は、新たに割り込みを受理したり、割り込み処理を終了することにより増減する。（１）受理している割り込みの本数が０本になった場合、（２）受理している割り込みの本数が１本になった場合、（３）受理している割り込みの本数が２本以上になった場合に分けて動作を説明する。
【００９１】
（１）受理している割り込みの本数が０になった場合
受理している割り込みの本数が０本になると、割り込み制御部６０１は割り込み受理本数レジスタ６０２の値を“００”に書き換え、レギュレータ６０３の出力電圧を２Ｖとする。
【００９２】
（２）受理している割り込みの本数が１本になった場合
受理している割り込みの本数が１本になると、割り込み制御部６０１は割り込み受理本数レジスタ６０２の値を“０１”に書き換え、レギュレータ６０３の出力電圧を３Ｖとする。
【００９３】
（３）受理している割り込みの本数が２本以上になった場合
受理している割り込みの本数が２本以上になると、割り込み制御部６０１は割り込み受理本数レジスタ６０２の値を“１０”に書き換え、レギュレータ６０３の出力電圧を４Ｖとする。
【００９４】
その他の動作については、実施の形態１で説明したものと同様である。
【００９５】
以上のように本実施形態によれば、割り込み制御部６０１は受理している割り込みの状態に応じてレギュレータ６０３の出力電圧を制御することにより、割り込みの受理状態に応じてＣＰＵ６０１の情報処理速度および消費電力をクロック周波数を変えることなく制御することができる。
【００９６】
なおここでは、割り込み制御部６０１は受理している割り込みの本数に応じてレギュレータ６０３の出力電圧を制御したが、受理している割り込みの中での優先順位に応じてレギュレータ６０３の出力電圧を制御しても同様の効果が得られる。
【００９７】
【発明の効果】
本発明によれば、命令内容に対応するパイプライン演算の種類と内部状態（電源電圧値、内部温度値、動作速度など）との組み合わせに応じて、パイプライン演算の実行サイクル数を変更するので、各命令のパイプライン演算を内部状態に応じて最適な情報処理速度で実行でき、ＣＰＵの低消費電力化および情報処理速度の適正化を図ることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１における情報処理装置の構成を示すブロック図
【図２】本発明の実施の形態１における情報処理装置の演算制御部の詳しい構成を示すブロック図
【図３】本発明の実施の形態１における情報処理装置の演算部の詳しい構成を示すブロック図
【図４】本発明の実施の形態１における情報処理装置のＥＸステージの加算命令を演算する場合の信号波形図
【図５】本発明の実施の形態１における情報処理装置のＥＸステージの比較命令を演算する場合の信号波形図
【図６】本発明の実施の形態２における情報処理装置の構成を示すブロック図
【図７】本発明の実施の形態３における情報処理装置の構成を示すブロック図
【図８】本発明の実施の形態３における情報処理装置のサンプリング回路の詳しい構成を示すブロック図
【図９】本発明の実施の形態４における情報処理装置の構成を示すブロック図
【図１０】本発明の実施の形態５における情報処理装置の構成を示すブロック図
【符号の説明】
１００，３００，４００，５００，６００  情報処理装置
１０１  ＣＰＵ
１０２  記憶装置
１０３  電源電圧計測部
１０４  命令解読部
１０５  演算制御部
１０６  演算部
１０７  電源電圧計測回路
１０８，３１２，４１２  内部状態レジスタ
１５０  演算制御信号生成回路
１５１  第１状態制御信号生成回路
１５２  第２状態制御信号生成回路
１５３  第３状態制御信号生成回路
１５４  セレクタ
２０１  前段パイプラインラッチ
２０２  加算回路
２０３  比較回路
２０４  セレクタ
２０５  後段パイプラインラッチ
２０６  ＡＮＤ回路
３０３  内部温度計測部
３１１  内部温度計測回路
４０３  動作速度判定部
４１１  サンプリング回路
５０１，６０３  レギュレータ
５０２  電源電圧制御レジスタ
５０３  レギュレータ入力端子
５０４  レギュレータ出力端子
５０５  電源入力端子
５０６  アドレスバス
５０７  データバス
６０１  割り込み制御部
６０２  割り込み受理本数レジスタ
Ｓ１  命令解読情報信号
Ｓ２，Ｓ１２，Ｓ２２  内部状態信号
Ｓ３  演算制御信号
Ｓ４  パイプライン制御信号
Ｓ４ａ  第１状態制御信号
Ｓ４ｂ  第２状態制御信号
Ｓ４ｃ  第３状態制御信号
ＣＬＫ  クロック信号
ＣＬＫｍ  マスク後クロック信号
Ｄｉｎ  入力データ
Ｄｏｕｔ  出力データ
【図１】
2004240537.tif 000003
【図２】
2004240537.tif 000004
【図３】
2004240537.tif 000005
【図４】
2004240537.tif 000006
【図５】
2004240537.tif 000007
【図６】
2004240537.tif 000008
【図７】
2004240537.tif 000009
【図８】
2004240537.tif 000010
【図９】
2004240537.tif 000011
【図１０】
2004240537.tif 000012