(57)【要約】【課題】プログラムが本当に必要としている性能を満足しつつ、不要な電力消費を抑えることが可能なプロセッサを提供する。【解決手段】プロセッサの特定の回路部分（命令の並列発行機能やキャッシュメモリ）はプロセッサの平均性能と消費電力の異なる複数の動作モードを有し、プロセッサが発揮する性能を計測して動作中のプログラムが必要とする目標性能と比較し、比較結果に応じて、その目標性能を実現ながら消費電力を削減した状態で動作する様に動作モードの切り替え制御を行う。【選択図】    図１
2006059068.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行して処理を行うプロセッサ装置であって、
前記プロセッサ装置の処理性能と消費電力に対してそれぞれ異なった影響を与える複数の動作モードを持つ実行回路と、
前記プロセッサ装置の処理実行性能と実行消費電力の少なくとも一方を計測する計測手段と、
前記計測手段の計測結果と目標値とを比較し比較結果に応じて動作モードを切り替える制御部とを備えることを特徴とするプロセッサ装置。
【請求項２】
請求項１記載のプロセッサ装置であって、
前記実行回路は、命令を実行する複数の命令実行パイプライン部と、同時に複数の命令を複数の命令実行パイプライン部に発行する命令発行部とを備え、
前記計測手段は、前記複数の命令実行パイプラインで処理される一定時間当たりの命令数に基づいて、処理実行性能と実行消費電力の少なくとも一方を計測する
ことを特徴とするプロセッサ装置。
【請求項３】
請求項２記載のプロセッサ装置であって、
前記命令発行部は、前記命令実行パイプライン部に対して同時に発行することが許可される命令の最大許可数の異なる複数の動作モードを有し、
前記計測手段は、前記プロセッサ装置の処理実行性能として前記命令数を計測し、
前記制御手段は、前記計測手段に計測された処理実行性能が目標処理性能を満たす場合には、命令発行部を最大許可数のより少ない動作モードに切り替え、前記計測手段に計測された処理実行性能が前記目標処理性能に不足する場合には、命令発行部を最大許可数のより多い動作モードに切り替える
ことを特徴とするプロセッサ装置。
【請求項４】
請求項３記載のプロセッサ装置であって、
前記計測手段は一定期間毎に前記命令実行パイプライン部において実行を完了した命令数を計測し、その数を前記処理実行性能として示すことを特徴とするプロセッサ装置。
【請求項５】
請求項３記載のプロセッサ装置であって、
前記目標処理性能が設定される書き換え可能なレジスタを備えることを特徴とするプロセッサ装置。
【請求項６】
請求項３記載のプロセッサ装置であって、
前記命令発行部はさらに前記命令実行パイプライン部に対して投機的に前記命令を発行することが出来る動作モードを有し、
前記制御手段は、前記計測手段が示す前記処理実行性能が前記目標処理性能に不足する場合には、前記命令発行部を投機的に前記命令を発行することが出来る前記動作モードにまで切り替えることを特徴とするプロセッサ装置。
【請求項７】
請求項２記載のプロセッサ装置であって、
前記命令発行部は、前記命令実行パイプライン部に対して同時に発行することが許可される命令の最大許可数の異なる複数の動作モードを有し、
前記計測手段は、前記プロセッサ装置の実行消費電力として前記命令数を計測し、
前記制御手段は、前記計測手段が示す前記実行消費電力が目標消費電力を下回る場合には、前記命令発行部を同時に発行することが出来る前記命令の最大許可数のより多い前記動作モードに切り替え、前記実行消費電力が目標消費電力を上回る場合には、前記命令発行部を同時に発行することが出来る前記命令の最大許可数のより少ない前記動作モードに切り替えて動作することを特徴とするプロセッサ装置。
【請求項８】
請求項７記載のプロセッサ装置であって、
前記計測手段は一定期間毎に前記命令実行パイプライン部に対して発行される命令数を計測し、その数を前記実行消費電力として示すことを特徴とするプロセッサ装置。
【請求項９】
請求項７記載のプロセッサ装置であって、
前記目標消費電力が設定される書き換え可能なレジスタを備えることを特徴とするプロセッサ装置。
【請求項１０】
請求項７記載のプロセッサ装置であって、
前記命令発行部はさらに前記命令実行パイプライン部に対して投機的に前記命令を発行することが出来る動作モードを有し、
前記制御手段は、前記計測手段が示す前記実行消費電力が前記目標消費電力を下回る場合には、前記命令発行部を投機的に前記命令を発行することが出来る前記動作モードにまで切り替えて動作することを特徴とするプロセッサ装置。
【請求項１１】
請求項２記載のプロセッサ装置は、Ｎ個のウェイを有するＮウェイセットアソシアティブ構成で１ラインが複数ワードからなるキャッシュメモリを備え、
前記キャッシュメモリを構成するデータメモリアレイが複数の前記ワード幅で同時に読み出される構成であり、
前記データメモリアレイは、異ウェイの同ラインの同ワードが異なる前記ワード位置で同時に読み出し可能であり、かつ同ウェイの同ラインの複数の前記ワードも異なる前記ワード位置で同時に読み出し可能な配置に格納される構成であり、
前記キャッシュメモリは、前記データメモリアレイから複数の前記ウェイの同ラインの同ワードを読み出して、ヒットした前記ウェイの前記ワードを選択して出力する第１の動作モードと、前記ヒットが予測される前記ウェイの同ラインの複数の前記ワードを読み出して、同ウェイが前記ヒットした場合にはその前記ワードを順次選択して出力し、予測した前記ウェイと異なる前記ウェイが前記ヒットした場合には前記ヒットした前記ウェイの同ラインの複数の前記ワードを読み出して順次選択して出力する第２の動作モードを有し、
前記計測手段は、前記プロセッサ装置の処理実行性能として前記命令数を計測し、
前記制御手段は、前記計測手段が示す前記処理実行性能が目標処理性能を満たす場合には、前記第２の動作モードに切り替え、前記計測手段が示す前記処理実行性能が前記目標処理性能に不足する場合には、前記第１の動作モードに切り替えることを特徴とするプロセッサ装置。
【請求項１２】
請求項１１記載のプロセッサ装置であって、
前記計測手段は、一定期間毎に前記命令実行パイプライン部において実行を完了する命令数を計測し、その数を前記処理実行性能として示すことを特徴とするプロセッサ装置。
【請求項１３】
請求項１１記載のプロセッサ装置であって、
前記目標処理性能が設定される書き換え可能なレジスタを備えることを特徴とするプロセッサ装置。
【請求項１４】
請求項１１記載のプロセッサ装置であって、
前記データメモリアレイは、前記ワード幅で読み出し可能な複数のＳＲＡＭメモリにより構成されることを特徴とするプロセッサ装置。
【請求項１５】
請求項１１記載のプロセッサ装置であって、
前記データメモリアレイは、複数の前記ワード幅で読み出し可能な１または複数のＳＲＡＭメモリにより構成され、
前記ＳＲＡＭメモリは複数コラム構成であって、
さらに前記ＳＲＡＭメモリは前記コラムの選択を制御する信号を前記ワード毎に独立して入力することを特徴とするプロセッサ装置。
【請求項１６】
請求項２記載のプロセッサ装置は、Ｎ個のウェイを有するＮウェイセットアソシアティブ構成で１ラインが複数ワードからなるキャッシュメモリを備え、
前記キャッシュメモリを構成するデータメモリアレイが複数の前記ワード幅で同時に読み出される構成であり、
前記データメモリアレイには、異ウェイの同ラインの同ワードが異なる前記ワード位置で同時に読み出し可能であり、かつ同ウェイの同ラインの複数の前記ワードも異なる前記ワード位置で同時に読み出し可能な配置に格納される構成であり、
前記キャッシュメモリのアクセス時には、前記データメモリアレイから複数の前記ウェイの同ラインの同ワードを読み出して、ヒットした前記ウェイの前記ワードを選択して出力する第１の動作モードと、前記ヒットが予測される前記ウェイの同ラインの複数の前記ワードを読み出して、同ウェイが前記ヒットした場合にはその前記ワードを順次選択して出力し、予測した前記ウェイと異なる前記ウェイが前記ヒットした場合には前記ヒットした前記ウェイの同ラインの複数の前記ワードを読み出して順次選択して出力する第２の動作モードを備え、
前記計測手段は、前記プロセッサ装置の実行消費電力として前記命令数を計測し、
前記制御手段は、前記計測手段が示す前記実行消費電力が目標消費電力を下回る場合には、前記第１の動作モードに切り替え、ま記実行消費電力が目標消費電力を上回る場合には、前記第２の動作モードに切り替えることを特徴とするプロセッサ装置。
【請求項１７】
請求項１６記載のプロセッサ装置であって、
前記計測手段は一定期間毎に前記データメモリアレイの読み出しを行わせたメモリアクセス命令の個数を計測し、その数を前記実行消費電力として示すことを特徴とするプロセッサ装置。
【請求項１８】
請求項１６記載のプロセッサ装置であって、
前記目標消費電力が設定される書き換え可能なレジスタを備えることを特徴とするプロセッサ装置。
【請求項１９】
請求項１６記載のプロセッサ装置であって、
前記データメモリアレイが前記ワード幅で読み出し可能な複数のＳＲＡＭメモリにより構成されることを特徴とするプロセッサ装置。
【請求項２０】
請求項１６記載のプロセッサ装置であって、
前記データメモリアレイが複数の前記ワード幅で読み出し可能な１または複数のＳＲＡＭメモリにより構成され、
前記ＳＲＡＭメモリは複数コラム構成であって、
さらに前記ＳＲＡＭメモリは前記コラムの選択を制御する信号を前記ワード毎に独立して入力することを特徴とするプロセッサ装置。
【請求項２１】
請求項１記載のプロセッサ装置であって、
前記計測手段は、前記プロセッサ装置の前記処理性能を計測して処理実行性能として示し、
前記制御手段は、前記計測手段が示す前記処理実行性能が目標処理性能を満たす場合には、前記実行回路を前記処理性能のより高い前記動作モードに切り替え、また前記処理実行性能が前記目標処理性能に不足する場合には、前記実行回路を前記処理性能のより低い前記動作モードに切り替えることを特徴とするプロセッサ装置。
【請求項２２】
請求項１記載のプロセッサ装置であって、
前記計測手段は、前記プロセッサ装置の前記消費電力を計測して実行消費電力として示し、
前記計測手段が示す前記実行消費電力が目標消費電力を下回る場合には、前記実行回路を前記処理性能のより高い前記動作モードに切り替え、また前記消費電力が目標消費電力を上回る場合には、前記実行回路を前記処理性能のより低い前記動作モードに切り替えることを特徴とするプロセッサ装置。
【請求項２３】
請求項１記載のプロセッサ装置であって、
前記実行回路は、キャッシュメモリを有する複数のＣＰＵを備え、
前記キャッシュメモリはＮ個のウェイを有するＮウェイセットアソシアティブ構成で１ラインが複数ワードからなる構成であり、
前記キャッシュメモリを構成するデータメモリアレイが複数の前記ワード幅で同時に読み出される構成であり、
前記データメモリアレイには、異ウェイの同ラインの同ワードが異なる前記ワード位置で同時に読み出し可能であり、かつ同ウェイの同ラインの複数の前記ワードも異なる前記ワード位置で同時に読み出し可能な配置に格納される構成であり、
前記データメモリアレイから複数の前記ウェイの同ラインの同ワードを読み出してヒットした前記ウェイの前記ワードを選択して出力する第１の読み出しモードと、前記ウェイの同ラインの複数の前記ワードを読み出して出力する第２の読み出しモードを備え、
前記キャッシュメモリのアクセスを行う場合には第１の読み出しモードで動作し、
複数の前記ＣＰＵの前記キャッシュメモリの間でデータを転送する場合には第２の読み出しモードで動作することを特徴とするプロセッサ装置。
【請求項２４】
請求項２３記載のプロセッサ装置であって、
前記データメモリアレイが前記ワード幅で読み出し可能な複数のＳＲＡＭメモリにより構成されることを特徴とするプロセッサ装置。
【請求項２５】
請求項２４記載のプロセッサ装置であって、
前記データメモリアレイが複数の前記ワード幅で読み出し可能な１または複数のＳＲＡＭメモリにより構成され、
前記ＳＲＡＭメモリは複数コラム構成であって、
さらに前記ＳＲＡＭメモリは前記コラムの選択を制御する信号を前記ワード毎に独立して入力することを特徴とするプロセッサ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロプロセッサ等のＬＳＩに用いられるプロセッサ装置に関する。
【背景技術】
【０００２】
近年、マイクロプロセッサやデジタルシグナルプロセッサ（ＤＳＰ）等のプロセッサ装置は年々その性能が向上している。特に高性能マイクロプロセッサにおいては、大容量のキャッシュメモリ、スーパースカラー構成や投機的な命令実行機構といった付加的な回路要素および機能を加えることによってその処理能力の向上を実現させているが、一方そういった付加的な回路要素を加えたことによる消費電力の増大がＬＳＩやＬＳＩを搭載したシステムにおいて問題となってきている。したがって、マイクロプロセッサの開発においては、必要な性能を実現しつつ消費電力を抑制することが課題となっている。
【０００３】
このような課題に対して、従来のマイクロプロセッサでは、例えば、特許文献１のような技術が用いられてきた。すなわち、プロセッサ内部に置かれ非常に高速に命令を供給する命令キャッシュと、予測される分岐ターゲットアドレスおよびヒストリビットのようなデータを保持する分岐ターゲットバッファと、命令キャッシュから供給される命令を命令デコーダでデコードするために保持するプリフェッチバッファを備える。このマイクロプロセッサにおいては、分岐命令を実行した場合に命令キャッシュへの不必要なプリフェッチ・アクセスを減らすことによりプロセッサによって消費される電力を減少させる方法を備える。すなわち、実行される各分岐命令に対して、予測される分岐ターゲットアドレスの命令がプリフェッチバッファ内にあった場合には、プリフェッチバッファのロック制御とプリフェッチの禁止制御を行い、分岐ターゲットアドレスの命令を命令キャッシュではなくプリフェッチバッファから供給することにより、命令キャッシュへのアクセスを省き電力の消費を減少する構成となっている。
【特許文献１】特開平８−７７０００号公報（第２−４頁、第４図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記のように構成された従来のプロセッサ回路においては、不必要な命令キャッシュへのプリフェッチを禁止することによってプロセッサの消費電力を削減することを実現している。しかしながら、プロセッサが実際に使用される状況においては、そのプロセッサに対して必要とされる処理内容すなわちプロセッサの処理性能と、プロセッサの動作時に許される電力消費量の上限が定められる。そのような使用状況においては、従来の不必要なプリフェッチを禁止する方法によっては、必要な処理性能については十分に発揮することが可能であるが、消費電力については十分な削減効果が得られず許される電力消費量を下回ることが出来ない場合がある。
【０００５】
さらに消費電力を削減する方法として、プロセッサ(CPU)に供給されるCPUクロックのサイクル時間を延ばす方法があるが、プロセッサの実行するプログラムの内容および実行される状況によっては必要な処理性能が得られない場合が生じる。
【０００６】
本発明の目的は、そのプロセッサに対して必要とされるプロセッサの処理性能が定められた場合に、必要な処理性能を発揮しつつ最大限消費電力を削減することが可能なプロセッサ回路を提供することである。
【０００７】
また、本発明の目的は、そのプロセッサに対して許される消費電力が定められた場合に、消費電力を限度内に抑えつつ最大限処理性能を発揮することが可能なプロセッサ回路を提供することである。
【０００８】
さらに、本発明の目的は、必要な処理性能を発揮しつつ最大限消費電力を削減することが可能なプロセッサであって、さらに回路面積を削減したプロセッサ回路を提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明に係るプロセッサ装置は、プログラムを実行して処理を行うプロセッサ装置であって、前記プロセッサ装置の処理性能と消費電力に対してそれぞれ異なった影響を与える複数の動作モードを持つ実行回路と、前記プロセッサ装置の処理実行性能と実行消費電力の少なくとも一方を計測する計測手段と、前記計測手段の計測結果と目標値とを比較し比較結果に応じて動作モードを切り替える制御部とを備える。この構成によれば、
プロセッサに対して許される消費電力が定められた場合に、消費電力を限度内に抑えつつ最大限処理性能を発揮することができる。また、必要な処理性能を発揮しつつ最大限消費電力を削減することができる。
【００１０】
上記目的を達成するために、本発明に係るプロセッサ回路は、命令を実行する命令実行パイプラインを複数備えて、同時に複数の命令を命令実行パイプラインに発行することが可能なプロセッサ装置であって、命令実行パイプラインに対して同時に発行することが出来る命令の最大数の異なる複数の動作モードを備えた命令発行部を有し、プロセッサ装置の処理性能を計測して処理実行性能として示す計測手段を有し、計測手段が示す処理実行性能が目標処理性能を満たす場合には、命令発行部を同時に発行することが出来る命令の最大数のより少ない動作モードに切り替え、計測手段が示す処理実行性能が目標処理性能に不足する場合には、命令発行部を同時に発行することが出来る命令の最大数のより多い動作モードに切り替えて動作する。また、このプロセッサ回路は、計測手段は一定期間毎に命令実行パイプラインにおいて実行を完了する命令数を計測し、その数を処理実行性能として示す。また、このプロセッサ回路は、目標処理性能が設定される書き換え可能なレジスタを持つ。また、このプロセッサ回路は、命令発行部はさらに命令実行パイプラインに対して投機的に命令を発行することが出来る動作モードを備えた命令発行部を有し、計測手段が示す処理実行性能が目標処理性能に不足する場合には、命令発行部を投機的に命令を発行することが出来る動作モードにまで切り替えて動作する。
【００１１】
さらに本発明に係るプロセッサ回路は、命令を実行する命令実行パイプラインを複数備えて、同時に複数の命令を命令実行パイプラインに発行することが可能なプロセッサ装置において、命令実行パイプラインに対して同時に発行することが出来る命令の最大数の異なる複数の動作モードを備えた命令発行部を有し、プロセッサ装置の消費電力を計測して実行消費電力として示す計測手段を有し、計測手段が示す実行消費電力が目標消費電力を下回る場合には、命令発行部を同時に発行することが出来る命令の最大数のより多い動作モードに切り替え、また実行消費電力が目標消費電力を上回る場合には、命令発行部を同時に発行することが出来る命令の最大数のより少ない動作モードに切り替えて動作する。また、このプロセッサ回路は、計測手段は一定期間毎に命令実行パイプラインに対して発行される命令数を計測し、その数を実行消費電力として示す。また、このプロセッサ回路は、目標消費電力が設定される書き換え可能なレジスタを持つ。また、このプロセッサ回路は、命令発行部はさらに命令実行パイプラインに対して投機的に命令を発行することが出来る動作モードを備えた命令発行部を有し、計測手段が示す実行消費電力が目標消費電力を下回る場合には、命令発行部を投機的に命令を発行することが出来る動作モードにまで切り替えて動作する。
【００１２】
さらに本発明に係るプロセッサ回路は、Ｎ個のウェイを有するＮウェイセットアソシアティブ構成で１ラインが複数ワードからなるキャッシュメモリを備えたプロセッサ装置において、キャッシュメモリを構成するデータメモリアレイが複数のワード幅で同時に読み出される構成であり、データメモリアレイには、異ウェイの同ラインの同ワードが異なるワード位置で同時に読み出し可能であり、かつ同ウェイの同ラインの複数のワードも異なるワード位置で同時に読み出し可能な配置に格納される構成であり、キャッシュメモリのアクセス時には、データメモリアレイから複数のウェイの同ラインの同ワードを読み出して、ヒットしたウェイのワードを選択して出力する第１の動作モードと、ヒットが予測されるウェイの同ラインの複数のワードを読み出して、同ウェイがヒットした場合にはそのワードを順次選択して出力し、予測したウェイと異なるウェイがヒットした場合にはヒットしたウェイの同ラインの複数のワードを読み出して順次選択して出力する第２の動作モードを備え、さらに、プロセッサ装置の処理性能を計測して処理実行性能として示す計測手段を有し、計測手段が示す処理実行性能が目標処理性能を満たす場合には、第２の動作モードに切り替え、計測手段が示す処理実行性能が目標処理性能に不足する場合には、第１の動作モードに切り替えて動作する。また、このプロセッサ回路は、計測手段は一定期間毎に命令実行パイプラインにおいて実行を完了する命令数を計測し、その数を処理実行性能として示す。また、このプロセッサ回路は、目標処理性能が設定される書き換え可能なレジスタを備えることを特徴とするプロセッサ装置。また、このプロセッサ回路は、データメモリアレイがワード幅で読み出し可能な複数のＳＲＡＭメモリにより構成される。また、このプロセッサ回路は、データメモリアレイが複数のワード幅で読み出し可能な１または複数のＳＲＡＭメモリにより構成され、ＳＲＡＭメモリは複数コラム構成であって、さらにＳＲＡＭメモリはコラムの選択を制御する信号をワード毎に独立して入力する。
【００１３】
さらに本発明に係るプロセッサ回路は、Ｎ個のウェイを有するＮウェイセットアソシアティブ構成で１ラインが複数ワードからなるキャッシュメモリを備えたプロセッサ装置において、キャッシュメモリを構成するデータメモリアレイが複数のワード幅で同時に読み出される構成であり、データメモリアレイには、異ウェイの同ラインの同ワードが異なるワード位置で同時に読み出し可能であり、かつ同ウェイの同ラインの複数のワードも異なるワード位置で同時に読み出し可能な配置に格納される構成であり、キャッシュメモリのアクセス時には、データメモリアレイから複数のウェイの同ラインの同ワードを読み出して、ヒットしたウェイのワードを選択して出力する第１の動作モードと、ヒットが予測されるウェイの同ラインの複数のワードを読み出して、同ウェイがヒットした場合にはそのワードを順次選択して出力し、予測したウェイと異なるウェイがヒットした場合にはヒットしたウェイの同ラインの複数のワードを読み出して順次選択して出力する第２の動作モードを備え、さらにプロセッサ装置の消費電力を計測して実行消費電力として示す計測手段を有し、計測手段が示す実行消費電力が目標消費電力を下回る場合には、第１の動作モードに切り替え、また実行消費電力が目標消費電力を上回る場合には、第２の動作モードに切り替えて動作する。また、このプロセッサ回路は、計測手段は一定期間毎にキャッシュメモリのデータメモリアレイの読み出しが行われた回数を計測し、その数を実行消費電力として示す。また、このプロセッサ回路は、目標消費電力が設定される書き換え可能なレジスタを持つ。また、このプロセッサ回路は、データメモリアレイがワード幅で読み出し可能な複数のＳＲＡＭメモリにより構成される。また、このプロセッサ回路は、データメモリアレイが複数のワード幅で読み出し可能な１または複数のＳＲＡＭメモリにより構成され、ＳＲＡＭメモリは複数コラム構成であって、さらにＳＲＡＭメモリはコラムの選択を制御する信号をワード毎に独立して入力する。
【００１４】
さらに本発明に係るプロセッサ回路は、プログラムを実行して処理を行うプロセッサ装置において、プロセッサ装置の処理性能と消費電力に対してそれぞれ異なった影響を与える複数の動作モードを持つ実行回路と、プロセッサ装置の処理性能を計測して処理実行性能として示す計測手段を有し、計測手段が示す処理実行性能が目標処理性能を満たす場合には、実行回路を処理性能のより高い動作モードに切り替えて動作し、また処理実行性能が目標処理性能に不足する場合には、実行回路を処理性能のより低い動作モードに切り替えて動作する。
【００１５】
さらに本発明に係るプロセッサ回路は、プログラムを実行して処理を行うプロセッサ装置において、プロセッサ装置全体の処理性能と消費電力に対してそれぞれ異なった影響を与える複数の動作モードを持つ実行回路と、プロセッサ装置の消費電力を計測して実行消費電力として示す計測手段を有し、計測手段が示す実行消費電力が目標消費電力を下回る場合には、実行回路を処理性能のより高い動作モードに切り替えて動作し、また消費電力が目標消費電力を上回る場合には、実行回路を処理性能のより低い動作モードに切り替えて動作する。
【００１６】
さらに本発明に係るプロセッサ回路は、キャッシュメモリを有する複数のＣＰＵを備え、前記キャッシュメモリはＮ個のウェイを有するＮウェイセットアソシアティブ構成で１ラインが複数ワードからなる構成であり、前記キャッシュメモリを構成するデータメモリアレイが複数の前記ワード幅で同時に読み出される構成であり、前記データメモリアレイには、異ウェイの同ラインの同ワードが異なる前記ワード位置で同時に読み出し可能であり、かつ同ウェイの同ラインの複数の前記ワードも異なる前記ワード位置で同時に読み出し可能な配置に格納される構成であり、前記データメモリアレイから複数の前記ウェイの同ラインの同ワードを読み出してヒットした前記ウェイの前記ワードを選択して出力する第１の読み出しモードと、前記ウェイの同ラインの複数の前記ワードを読み出して出力する第２の読み出しモードを備え、前記キャッシュメモリのアクセスを行う場合には第１の読み出しモードで動作し、複数の前記ＣＰＵの前記キャッシュメモリ間でデータを転送する場合には第２の読み出しモードで動作する。また、このプロセッサ装置では、前記データメモリアレイが前記ワード幅で読み出し可能な複数のＳＲＡＭメモリにより構成される。また、このプロセッサ装置では、前記データメモリアレイが複数の前記ワード幅で読み出し可能な１または複数のＳＲＡＭメモリにより構成され、前記ＳＲＡＭメモリは複数コラム構成であって、さらに前記ＳＲＡＭメモリは前記コラムの選択を制御する信号を前記ワード毎に独立して入力する。
【発明の効果】
【００１７】
本発明のプロセッサ回路によれば、プログラムが必要とする処理性能とＣＰＵが発揮する刻々の処理性能の状況に応じて、動機的命令発行の有無もしくは同時に発行可能な命令数もしくはキャッシュのデータアレイのアクセス方法と切り替えることによって、プログラムが必要とする目標性能を発揮しながら、消費電力を最大限抑えたＣＰＵ動作を行うことが実現される。
【００１８】
また、本発明のプロセッサ回路によれば、プログラムに許される消費電力とＣＰＵが消費する刻々の消費電力の状況に応じて、動機的命令発行の有無もしくは同時に発行可能な命令数もしくはキャッシュのデータアレイのアクセス方法と切り替えることによって、プログラムに許される消費電力を維持しつながら、最大限の処理性能を発揮する動作を行うことが実現される。
【００１９】
また、本発明のプロセッサ回路によれば、キャッシュのデータアレイを読み出しワード毎にコラム選択を制御可能なＳＲＡＭを使用して複数のウェイをまとめた構成とすることにより、目標性能を発揮しながら消費電力を最大限抑えたＣＰＵ動作を実現したプロセッサ回路において、回路面積を削減することが可能となる。
【００２０】
また、本発明のプロセッサ回路によれば、各ＣＰＵにキャッシュメモリを備えたマルチプロセッサ構成において、キャッシュメモリのウェイのラインを構成するワードを、データメモリアレイの異なったワードに格納して同時に読み出し可能な構成とすることによって、キャッシュメモリ間でラインに記憶された命令もしくはデータの転送を行う場合のデータメモリアレイの読み出しアクセス回数を最小に抑えることができ、通常のキャッシュメモリアクセスを阻害する要因を減らすことが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態について、図面を参照しながら説明する。
（実施の形態１）
図１に、本発明の第１の実施の形態のプロセッサ回路の構成図を示す。このプロセッサ回路は、大容量のキャッシュ、分岐ターゲットバッファおよび投機的実行機構を備えたスーパースカラ構成の高性能プロセッサである。
【００２２】
図１において、１０１はＣＰＵで命令キャッシュ１０２から命令バス１０４を通じて供給される命令を実行し処理を行う。ＣＰＵ１０１は、また、命令の実行においてデータバス１０５を通してデータキャッシュ１０３をアクセスし、その内容に対して読出しおよび書き込みを行う。また、１１１はクロック生成回路でありＣＰＵ１０１、キャッシュ１０２、１０３をはじめプロセッサ回路の各部に高速クロック（４００ＭＨｚ）を供給し、プロセッサ回路はこのクロックに同期して動作する。
【００２３】
命令キャッシュ１０２およびデータキャッシュ１０３は、ＢＣＵ１０６を通して接続された外部メモリ（ＲＯＭ１１２およびＳＤＲＡＭ１１３）の内容の一部を保持する高速なメモリであり、命令／データキャッシュ１０２／１０３に保持された内容に対してはＣＰＵ１０１は高速にアクセスすることが可能である。
【００２４】
ＣＰＵ１０１の必要な命令もしくはデータがそれぞれ命令キャッシュ１０２およびデータキャッシュ１０３に保持されていない場合（キャッシュミス）には、必要な命令／データをキャッシュバス１０７、ＢＣＵ１０６およびシステムバスインタフェース１０７、ＳＤＲＡＭインタフェース１０８を通して、ＲＯＭ１０９もしくはＳＤＲＡＭ１１０から各キャッシュへ転送する。ＣＰＵ１０１の必要な命令もしくはデータがそれぞれ命令キャッシュ１０２およびデータキャッシュ１０３に保持されている場合（キャッシュヒット）には、ＣＰＵの命令キャッシュ１０２およびデータキャッシュ１０３へのアクセスは１クロックサイクルで実行を完了するが、キャッシュミスの場合には低速なメモリ（ＲＯＭ１０９、ＳＤＲＡＭ１１０）へのアクセスを伴うためにそのアクセスに数十から数百クロックサイクルを必要とする。
【００２５】
図２にＣＰＵ１０１の内部の詳細な構成を示す。２０１は命令フェッチ手段であり、命令バス１０４を通じて命令キャッシュ１０２に対してフェッチアドレスを出力し、命令フェッチの要求を行う。命令キャッシュ１０２はフェッチアドレスに対応する命令を命令バス１０４を通じてプリフェッチ命令レジスタ２０２に供給する。命令キャッシュ１０２は、通常一回の命令フェッチにおいて４命令分の命令を供給することが可能な構成となっており、プリフェッチ命令レジスタ２０２はこれを受けて同時に４命令を保持する構成となっている。プリフェッチ命令レジスタ２０２に保持された命令は、命令発行手段２０３に入力し、命令実行パイプライン１〜４（２０４〜２０７）に対して発行される。命令発行手段２０３は、命令をデコードすることで判別される命令の種類、その実行に必要とされる演算資源およびデータなどの要因を判断し、実行可能な命令をその処理が可能なものを命令処理パイプラン１〜４から選択して発行する。特に、命令処理パイプラン１はデータバス１０５を通してデータキャッシュ１０３と接続されておりデータアクセスの処理を実行することが可能なことから、データアクセスを伴う命令を優先的に発行する。命令発行手段２０３は、各命令実行パイプラインに１命令ずつ、したがって１クロックサイクルに最大４命令を発行することが可能である。また、各命令実行パイプライン１〜４（２０４〜２０７）は、命令発行手段２０３から発行された命令を１クロックサイクル毎に１命令で連続的に処理することが可能ある。ただし、データアクセスの処理を実行中にデータキャッシュ１０３がキャッシュミスが発生した場合には、低速なメモリ（ＲＯＭ１０９、ＳＤＲＡＭ１１０）へアクセスを行う期間（数十〜数百クロックサイクル）処理が滞ることとなる、ＣＰＵ１０１の処理が停止することとなる。
【００２６】
２０８は分岐ターゲットバッファであり、命令フェッチ手段２０１から入力するプログラムカウンタ２０９の値から分岐ターゲットのアドレス２１０と命令２１１をそれぞれ命令フェッチ手段２０１および分岐命令レジスタ２１２に供給する。分岐ターゲットバッファ２０８は、内部に過去実行した分岐命令のアドレスとそれに対応する分岐ターゲットアドレスと分岐ターゲットの命令（４命令分）および過去の分岐履歴（ヒストリビット）を６４エントリ分保持する構成を持ち、命令フェッチ手段２０１から入力するプログラムカウンタ２０９の値といずれかのエントリの分岐命令アドレスとの一致が検出されると、そのエントリの分岐ターゲットアドレスおよび分岐ターゲット命令をそれぞれ分岐ターゲットアドレス２１０と分岐ターゲット命令２１１に出力する。また、そのエントリのヒストリビットを用いて、その分岐命令の分岐条件が成立するか否かの予測（分岐予測）を行う。
【００２７】
分岐ターゲットアドレス２１０は命令フェッチ手段２０１に入力し、分岐ターゲットバッファ２０８が分岐成立を予測した場合には、そのアドレスを用いて命令キャッシュへのアクセスを行う。分岐ターゲットバッファ２０８が分岐不成立を予測した場合には、分岐条件が確定するまでそのアドレスを保留し、分岐成立が確定した場合には分岐ターゲットアドレス２１０への命令フェッチを実行する。分岐ターゲット命令２１１には、分岐ターゲットバッファ２０８のエントリから４命令が供給され、分岐命令レジスタ２１２に入力し保持される。したがって、分岐命令レジスタ２１２に保持された命令は、命令発行手段２０３に入力し、１クロックサイクルに最大４命令を命令実行パイプライン１〜４（２０４〜２０７）に対して発行することが可能である。
【００２８】
上記の様に、このプロセッサ回路は命令発行手段２０３に対して、プリフェッチ命令レジスタ２０２から４命令と分岐命令レジスタ２１２から４命令を入力し、それらの内最大４命令を命令実行パイプライン１〜４（２０４〜２０７）に対して同サイクルに発行することが可能なスーパースカラ構成となっている。また、分岐ターゲットバッファ２０８からは分岐条件が確定する以前の段階で分岐ターゲットの命令が分岐命令レジスタ２１２に供給されることから、命令発行手段２０３は分岐確定前に分岐先命令を命令実行パイプライン１〜４（２０４〜２０７）に対して投機的に発行することが可能な構成となっている。すなわち、分岐ターゲットバッファ２０１で分岐命令が検出された場合、その分岐条件が確定する以前に、分岐不成立の場合に引き続き実行される命令をプリフェッチ命令レジスタ２０２から発行することに加えて、分岐成立の場合の分岐ターゲット命令を分岐命令レジスタ２１２から命令実行パイプライン１〜４（２０４〜２０７）に発行する。この場合、分岐条件が確定した後実行されない命令については、各命令が命令実行パイプライン１〜４（２０４〜２０７）で実行中に中断されるが、同サイクルに発行された分岐成立・不成立のいずれかの側の命令については最後まで実行される。一般に１クロックサイクルに４命令を発行可能なスーパースカラ構成であっても、プロセッサが実際のプログラムを実行する上では、１クロックサイクルに２命令以上の命令を実行することは難しいが、上記のような分岐ターゲットバッファおよび投機的命令実行機構を設けて発行可能な命令数を増すことにより、平均的に１クロックサイクルに２命令以上の命令の実行を可能としている。
【００２９】
このように命令発行手段２０３は、プリフェッチ命令レジスタ２０２と分岐命令レジスタ２１２から１クロックサイクルに最大で４命令を命令実行パイプライン１〜４（２０４〜２０７）に発行できる構成となっているが、いずれの命令を最高何命令まで発行するかは、電力制御手段２１３の制御にしたがって決められる。すなわち、命令発行手段２０３における命令発行の方式には３つのモード（モードＡ、モードＢ、モードＣ） があり、モードＡにおいては、投機的命令実行機構を用いて最大限の命令発行を行う。モードＢにおいては、投機的命令実行機構を用いず、分岐命令が検出された場合には分岐ターゲットバッファ２０８において分岐予測された側の命令のみを発行する。モードＣにおいては、投機的命令実行機構を用いず、かつ１クロックサイクルに最大１命令のみ発行を行う。したがって、モードＡにおいては平均的に１クロックサイクル当り２命令の以上の実行が期待され、モードＣにおいては平均的に１クロックサイクル当り１命令の未満の以上の実行が期待される。モードＢにおいて平均的に１クロックサイクル当りに実行される命令数は、プログラム実行時の分岐予測の精度などによって変化し、１〜２命令の中間の値となる。そして、このいずれの動作を行うかが電力制御手段２１３の制御によって決定される構成となっている。
【００３０】
モードＡ、Ｂ、Ｃは上記に様なその動作の違いによって、命令発行手段２０３が平均的に命令実行パイプライン１〜４（２０４〜２０７）に発行できる命令数に違いが生じるわけであるが、同時にプロセッサ回路が消費する電力にも差が生じる。すなわち、命令実行パイプライン１〜４（２０４〜２０７）は発行される命令がない場合にはその消費電力がほぼ０となるように構成されていることから、モードＡでは、分岐命令の実行に際しては分岐条件の確定により中断される命令についても一旦命令実行パイプライン１〜４（２０４〜２０７）に対して発行され電力を消費するのに対して、モードＢでは、分岐予測された命令のみが発行され、空いた命令実行パイプラインでは電力消費を抑制することが可能となる。分岐予測が外れた場合には、後のクロックサイクルに命令の再発行が必要となるため、性能的・電力的な無駄が生じるが、一般のプログラムにおいては分岐ターゲットバッファ２０８のヒストリビットを用いた分岐予測の精度が高いことも合わせて平均的な消費電力は抑制される。モードＣにおいては、常時命令実行パイプライン１〜４（２０４〜２０７）のいずれかに１つにのみ命令を発行されることから消費電力が大きく削減されることは明らかである。
【００３１】
電力制御手段２１３は命令発行手段２０３の命令発行の３つのモードのいずれかを選択するために、目標性能レジスタ２１４の出力する目標性能値２１５と、計測手段２１６の出力する実行性能値２１７を入力する。目標性能値２１５および実行性能値２１７は、いずれも２の１４乗クロックサイクルの当りに実行される命令数で表わされる。
【００３２】
図３Ａは処理性能計測手段２１６の詳細な内部構成を示している。図３Ｂはそのタイムチャートを示している。３００はクロックをカウントするクロックカウンタであり、１４ビットの２進カウンダにより構成されている。クロックカウンタ３００によるクロックのカウントが、１×（２の１２乗）、２×（２の１２乗）、３×（２の１２乗）に達したサイクルおよび１４ビットカウンタがオーバーフローしたサイクルに、それぞれカウンタリセット信号３０１〜３０４を出力する。
【００３３】
３０５〜３０８は命令実行パイプライン１〜４（２０４〜２０７）で実行された命令数をカウントする命令カウンタ１〜４である。このために、処理性能計測手段２１６は、命令実行パイプライン１〜４（２０４〜２０７）から命令の実行を完了したことを示す命令完了信号２１８を入力する。各命令実行パイプラインから入力した命令完了信号２１８は加算回路３０９に入力し、その出力を命令カウンタ１〜４（３０５〜３０８）においてカウントする。ここで、命令カウンタ１〜４（３０５〜３０８）においてカウントされる命令には、命令実行パイプライン１〜４（２０４〜２０７）に対して投機的に発行された後、分岐条件の確定により実行が中断された命令は含まれない。命令実行パイプライン１〜４（２０４〜２０７）は１クロックサイクルに１命令を実行する可能性があるため、命令カウンタ１〜４（３０５〜３０８）は１クロックサイクルに最大４命令を加算できる１６ビットカウンタで構成されている。命令カウンタ１〜４（３０５〜３０８）はそれぞれカウンタリセット信号３０１〜３０４を接続し、この信号を入力する時点のカウントの値を実行性能レジスタ３１０に設定すると同時にカウンタを０にリセットする。この構成により、実行性能レジスタ３１０には、２の１２乗クロックサイクル毎に過去２の１４乗クロックサイクル期間に実行された命令数で更新され、実行性能値２１７に出力されることとなる。
【００３４】
目標性能レジスタ２１４はＣＰＵ１０１が実行するプログラムにより書き換え可能なレジスタであり、プログラムがその処理を実行するために必要とする性能を２の１４乗クロックサイクルの当りに実行される命令数として設定する。
【００３５】
電力制御手段２１３は、上記の目標性能レジスタ２１４の出力する目標性能値２１５と処理性能計測手段２１６の出力する実行性能値２１７から、ＣＰＵ１０１の処理性能がほぼ目標性能値と一致するように命令発行手段２０３のモードの選択を制御する。すなわち、目標性能値２１５と２の１２乗クロックサイクル毎に更新される実行性能値２１７を比較して、実行性能値２１７が目標性能値２１５を下回っている場合には、１クロックサイクル当りにより多くの命令が実行できる命令発行手段２０３のモードへの切り替え（モードＣからモードＢへ、もしくはモードＢからモードＡへ）を行い、逆に実行性能値２１７が目標性能値２１５を上回っている場合には、１クロックサイクル当りにより少ない命令が実行できる命令発行手段２０３のモードへの切り替え（モードＡからモードＢへ、もしくはモードＢからモードＣへ）を行うよう制御を行う構成となっている。
【００３６】
上記のように構成されたプロセッサ回路において、その動作を説明する。
プログラムは目標性能レジスタ２１４にプログラムが必要とする性能を設定してプログラムの処理を開始する。電力制御手段２１３は、プログラムを実行している期間中、ＣＰＵ１０１の実行性能値２１７と設定された目標性能値２１５を比較し、実行性能値２１７と設定された目標性能値２１５が近づくようにＣＰＵ１０１の命令発行手段２０３に対する制御を継続して行う。その結果、命令発行手段２０３は、プログラムが必要とする目標性能を実現しつながら、消費電力が抑えられるモードでの動作が選択される。
【００３７】
プログラムによっては、その部分毎の処理内容により必要とされる性能が異なる場合があるが、目標性能レジスタ２１４をその実行に必要な性能値に書き換えることにより、プロセッサ回路は処理内容に応じた処理性能で動作することができ、消費電力を抑えることができる。また、プログラム実行時には、分岐予測の確度の低下や、キャッシュメモリのヒット率の低下などのためにＣＰＵ１０１の実行性能値２１７が一時的に低下することがあるが、そのことを電力制御手段２１３が検出した時点で、命令発行手段２０３の動作を１クロックサイクル当りに最大数の命令を発行できるモード（モードＡ）へ切り替りかえることにより、性能の低下は抑えられる。
【００３８】
以上の様に、上記構成のプロセッサ回路においては、プログラムが必要とする処理性能とＣＰＵ１０１の動作状況に応じて、命令発行手段２０３の命令発行のモードを切り替えることによって、プログラムが必要とする目標性能を実現しつながら、消費電力を最大限抑えた動作を行うことが実現される。
【００３９】
（実施の形態２）
本発明の第２の実施の形態のプロセッサ回路の主要な構成は、第1の実施の形態の図１と同様であり、このプロセッサ回路も、大容量のキャッシュ、分岐ターゲットバッファおよび投機的実行機構を備えたスーパースカラ構成の高性能プロセッサである。
【００４０】
図４に第２の実施の形態のＣＰＵ１０１の内部の詳細な構成を示す。
ここで、命令フェッチ手段２０１、プリフェッチ命令レジスタ２０２、分岐ターゲットバッファ２０８、分岐命令レジスタ２１２および各命令実行パイプライン１〜４（２０４〜２０７）は第1の実施の形態のそれと同様である。また、命令発行手段２０３についても、プリフェッチ命令レジスタ２０２と分岐命令レジスタ２１２から１クロックサイクルに最大で４命令を命令実行パイプライン１〜４（２０４〜２０７）に発行できる構成となっているおり、いずれの命令を最高何命令まで発行するかについて３つのモード（モードＡ、モードＢ、モードＣ）を持つことは第1の実施の形態と同様である。命令発行手段２０３がいずれのモードで命令発行を行うかは、電力制御手段４０１の制御にしたがって決められる。
【００４１】
電力制御手段４０１は命令発行手段２０３の命令発行の３つのモードのいずれかを選択するために、目標電力レジスタ４０２の出力する目標電力値４０３と、消費電力計測手段４０４の出力する実行電力値４０５を入力する。目標電力値４０３および実行電力値４０５は、いずれも２の１４乗クロックサイクルの当りに各命令実行パイプライン１〜４（２０４〜２０７）が活性化される回数で表わされる。
【００４２】
図５は消費電力計測手段４０４の詳細な内部構成を示している。
５００はクロックをカウントするクロックカウンタであり、１４ビットの２進カウンダにより構成されている。クロックカウンタ３００によるクロックのカウントが、１×（２の１２乗）、２×（２の１２乗）、３×（２の１２乗）に達したサイクルおよび１４ビットカウンタがオーバーフローしたサイクルに、それぞれカウンタリセット信号５０１〜５０４を出力する。
【００４３】
５０５〜５０８は命令実行パイプライン１〜４（２０４〜２０７）で対して発行された命令数をカウントする電力カウンタ１〜４である。このために、消費電力計測手段４０４は、命令発行手段２０３から命令実行パイプライン１〜４（２０４〜２０７）に対して命令が発行されたことを示す命令発行信号４０６を入力する。各命令実行パイプライン１〜４（２０４〜２０７）から入力した命令発行信号４０６は加算回路５０９に入力し、その出力を電力カウンタ１〜４（５０５〜５０８）においてカウントする。ここで、電力カウンタ１〜４（５０５〜５０８）においてカウントされる命令には、命令実行パイプライン１〜４（２０４〜２０７）に対して投機的に発行された後、分岐条件の確定により実行が中断された命令も含まれる。
【００４４】
命令実行パイプライン１〜４（２０４〜２０７）は１クロックサイクルに１命令を実行する可能性があるため、電力カウンタ１〜４（５０５〜５０８）は１クロックサイクルに最大４命令を加算できる１６ビットカウンタで構成されている。電力カウンタ１〜４（５０５〜５０８）はそれぞれカウンタリセット信号５０１〜５０４を接続し、この信号を入力する時点のカウントの値を実行電力レジスタ５１０に設定すると同時にカウンタを０にリセットする。この構成により、実行電力レジスタ５１０には、２の１２乗クロックサイクル毎に過去２の１４乗クロックサイクル期間に発行された命令数で更新され、実行電力値４０５に出力されることとなる。
【００４５】
目標電力レジスタ４０２はＣＰＵ１０１が実行するプログラムにより書き換え可能なレジスタであり、プログラムがその処理を実行する際に許される消費電力を２の１４乗クロックサイクルの当りに命令実行パイプライン１〜４（２０４〜２０７）が活性化される回数、すなわち、各命令実行パイプラインに発行される命令数として設定する。
【００４６】
電力制御手段４０１は、上記の目標性能レジスタ４０２の出力する目標電力値４０３と消費電力計測手段４０４の出力する実行電力値４０５から、ＣＰＵ１０１の消費電力がほぼ目標電力値と一致するように命令発行手段２０３のモードの選択を制御する。すなわち、目標電力値４０３と２の１２乗クロックサイクル毎に更新される実行電力値４０５を比較して、実行電力値４０５が目標電力値４０３を上回っている場合には、１クロックサイクル当りにより少ない命令が実行できる命令発行手段２０３のモードへの切り替え（モードＡからモードＢへ、もしくはモードＢからモードＣへ）を行い、逆に実行電力値４０５が目標電力値４０３を下回っている場合には、１クロックサイクル当りにより多くの命令が実行できる命令発行手段２０３のモードへの切り替え（モードＣからモードＢへ、もしくはモードＢからモードＡへ）を行うよう制御を行う構成となっている。
【００４７】
上記のように構成されたプロセッサ回路において、その動作を説明する。
プログラムは目標性能レジスタ２１４にそのプログラムの処理を実行する際に許される消費電力を設定する。一般にプロセッサ回路の消費電力は命令実行パイプライン１〜４（２０４〜２０７）の消費する部分と、それ以外の回路要素が消費する部分の合計と考えることができるが、本構成のプロセッサ回路においては、命令実行パイプライン１〜４（２０４〜２０７）の消費電力がその大部分を占め、かつ各命令実行パイプライン１〜４（２０４〜２０７）の消費する電力は命令発行の有無により大きく変動することから、プロセッサ回路の消費する電力を２の１４乗クロックサイクルの当りに命令実行パイプライン１〜４（２０４〜２０７）に発行される命令数として設定することは適当である。
【００４８】
電力制御手段４０１は、プログラムを実行している期間中、ＣＰＵ１０１の実行電力値４０５と設定された目標電力値４０３を比較し、実行電力値４０５と設定された目標電力値４０３が近づくようにＣＰＵ１０１の命令発行手段２０３に対する制御を継続して行う。その結果、命令発行手段２０３は、プログラムの実行に許される目標電力を維持しながら、最大限の処理性能が得られるモードでの動作が選択される。
【００４９】
プログラムによっては、その部分毎の処理内容により許される電力が異なる場合があるが、目標電力レジスタ２１４をその実行に許される電力値に書き換えることにより、プロセッサ回路は処理内容に応じた消費電力で動作することができ、消費電力を抑えることができる。また、プログラム実行時には、分岐命令の連続した場合など実行電力値４０５が一時的に向上することがあるが、そのことを電力制御手段４０１が検出した時点で、命令発行手段２０３の動作を１クロックサイクル当りに最大１命令のみ発行できるモード（モードＣ）へ切り替りかえることにより、電力の過大な消費は抑えられる。
【００５０】
また、プログラム実行時には、キャッシュメモリのヒット率の低下などのためにＣＰＵ１０１の各命令実行パイプライン１〜４（２０４〜２０７）への命令発行数が減り処理性能が一時的に低下する場合があるが、この場合、実行電力値４０５も同時に低下し、そのことを電力制御手段２１３が検出した時点で、命令発行手段２０３の動作を１クロックサイクル当りに最大数の命令を発行できるモード（モードＡ）へ切り替りかえることにより、許される消費電力の範囲で最大限性能の回復が図られる。
【００５１】
以上の様に、上記構成のプロセッサ回路においては、プログラムに許される消費電力とＣＰＵ１０１の動作状況に応じて、命令発行手段２０３の命令発行のモードを切り替えることによって、プログラムに許される消費電力を維持しつながら、最大限の処理性能を発揮する動作を行うことが実現される。
【００５２】
なお、上記構成では命令実行パイプライン１〜４（２０４〜２０７）に命令が発行され動作する際に消費する電力はすべて等しいものとして取り扱われているが、命令実行パイプライン１〜４（２０４〜２０７）および発行される命令の種類などに応じて、消費電力計測手段４０４で加算を行う際に重みをつけることで消費電力値４０５の精度が向上することは明らかである。
【００５３】
（実施の形態３）
本発明の第３の実施の形態のプロセッサ回路の主要な構成は、第1の実施の形態の図１と同様であり、このプロセッサ回路も、大容量のキャッシュ、分岐ターゲットバッファおよび投機的実行機構を備えたスーパースカラ構成の高性能プロセッサである。
【００５４】
図６に第３の実施の形態のＣＰＵ１０１の内部の詳細な構成を示す。
ここで、命令フェッチ手段２０１、プリフェッチ命令レジスタ２０２、分岐ターゲットバッファ２０８、分岐命令レジスタ２１２および各命令実行パイプライン１〜４（２０４〜２０７）は第1の実施の形態のそれと同様である。命令発行手段６０１については、プリフェッチ命令レジスタ２０２と分岐命令レジスタ２１２から１クロックサイクルに最大で４命令を命令実行パイプライン１〜４（２０４〜２０７）に発行できる構成は同じで、発行可能な最高数の命令をマイクロックサイクル各命令実行パイプライン１〜４（２０４〜２０７）に対して発行する構成となっている。
【００５５】
また、目標性能レジスタ２１４と処理性能計測手段２１６の構成も第1の実施の形態のそれと同様であり、電力制御手段６０１がそれらから目標性能値２１５と実行性能値２１７を入力するも同様であるが、本実施の形態では電力制御手段６０１は命令発行手段６０１ではなく、命令キャッシュ１０２に対して制御を行う点が異なっている。
【００５６】
図７に第３の実施の形態の命令キャッシュ１０２の内部の詳細な構成を示す。
この命令キャッシュ１０２は、２ウェイセットアソシアティブ構成のキャッシュメモリで、各ウェイは５１２ラインから構成されている。また、命令キャッシュの１回のアクセスでの読み出し単位（４命令）を１ワードとして、１ラインは２ワードからなる構成となっている。したがって、この命令キャッシュの容量は、１ウェイあたり１Ｋ（１０２４）ワードであり、全体では２Ｋ（２０４８）ワードである。
【００５７】
７０１と７０２は命令キャッシュのタグを構成するＳＲＡＭのタグメモリアレイＡとＢであり、それぞれウェイ０とウェイ１のタグアドレスを格納する構成となっている。命令フェッチにより命令キャッシュがアクセスされるときには、タグメモリアレイＡ７０１、Ｂ７０２に対して命令フェッチアドレスの第９〜１ビットをＳＲＡＭのアドレスとして入力することで対応するラインのタグアドレスを読み出し、それぞれアドレス比較回路Ａ７０３、Ｂ７０４に入力する。アドレス比較回路Ａ７０３、Ｂ７０４においては、命令フェッチアドレスの上位（第１０ビット以上）とタグアドレスの比較（ヒット判定）が行われ、各ウェイについてのヒット信号Ａ７０５、Ｂ７０６が生成されるが、このタグメモリアレイおよびアドレス比較回路の構成は一般的なキャッシュメモリの構成と同様である。
【００５８】
一方、７０７と７０８は命令キャッシュに登録された命令を保持するためのＳＲＡＭのデータメモリアレイＡとＢである。本実施の形態においては、データメモリアレイＡ７０７とＢ７０８に対してそれぞれウェイ０およびウェイ１のデータが記憶されるのではなく、データメモリアレイＡ７０７に対しては、ウェイ０のワード０のデータが偶数番のアドレスに、ウェイ１のワード１のデータが奇数版のアドレスに記憶され、データメモリアレイＢ７０８に対しては、ウェイ１のワード０のデータが偶数番のアドレスに、ウェイ０のワード１のデータが奇数番のアドレスに記憶される構成となっている。
【００５９】
命令フェッチにより命令キャッシュがアクセスされるときには、データメモリアレイＡ７０７とＢ７０８に対して、命令フェッチアドレスの第９〜１ビットに加えて、アドレス生成回路７１０が出力するアドレスＡ７１１およびアドレスＢ７１２をＳＲＡＭのアドレスの最下位ビットとしてデータメモリアレイＡ７０７とＢ７０８に入力する。データメモリアレイＡ７０７とＢ７０８ではこのアドレスを使用して対応するワードを読み出してデータ選択回路７０９に入力し、データ選択回路７０９は、そのいずれか選択してＣＰＵ１０１に対して命令を供給る構成となっている。
【００６０】
データメモリアレイＡ７０７とＢ７０８の読み出しアクセスについては、アドレス生成回路７１０の出力するアドレスＡ７１１、Ｂ７１２の値、およびデータ選択回路７０９の選択動作によって２つのアクセスモード（モードＡ、モードＢ）が可能である。モードＡにおいては、アドレス生成回路７１０はアドレスＡ７１１、Ｂ７１２に対して命令フェッチアドレスの第０ビットの値を出力し、その結果、データメモリアレイＡ７０７とＢ７０８は命令フェッチアドレスの第９〜０ビットを用いて読み出される。その結果、命令フェッチアドレスが偶数の場合にはデータメモリアレイＡ７０７にウエイ０、データメモリアレイＢ７０８にウエイ１の命令が読み出され、命令フェッチアドレスが奇数の場合にはデータメモリアレイＡ７０７にウエイ１、データメモリアレイＢ７０８にウエイ０の命令が読み出される。そして、データ選択回路７０９では、ヒット信号Ａ７０５、Ｂ７０６と命令フェッチアドレスの第０ビットの値に基づいてデータの選択が行われ、命令フェッチアドレスが偶数かつヒット信号Ａ７０５がヒット判定、もしくは命令フェッチアドレスが奇数かつヒット信号Ｂ７０６がヒット判定の場合にはデータメモリアレイＡ７０７の出力が、命令フェッチアドレスが奇数かつヒット信号Ａ７０５がヒット判定、もしくは命令フェッチアドレスが偶数かつヒット信号Ｂ７０６がヒット判定の場合にはデータメモリアレイＢ７０８の出力が選択される動作を行う。その結果、モードＡの動作においては、データメモリアレイおよびデータ選択回路７０９の内部構成は異なるが、データメモリアレイもしくは命令キャッシュとしての読み出し動作は一般的なキャッシュメモリと同様のアクセスが実現される。
【００６１】
一方、モードＢにおいては、一般的なキャッシュメモリの読み出しアクセスとは異なり、特定のウェイの２ワード分の読み出しを１回のアクセスで行う動作となる。すなわち、ヒット予測手段７１３が予測したウェイに対して、アドレス生成回路７１０は、アドレスＡ７１１に対してはその予測したウェイの番号を、アドレスＢ７１２に対してはその予測したウェイ番号に１を加えた値（この場合はアドレスＢ７１２は１ビットのアドレスであるので反転した値となる）を出力し、命令フェッチアドレスの第９〜１ビットと合わせてデータメモリアレイＡ７０７とＢ７０８の読み出しが行われる。その結果、ヒット予測手段７１３が予測したウェイの番号が偶数の場合にはデータメモリアレイＡ７０７にそのウエイのワード０、データメモリアレイＢ７０８にワード１の命令が読み出され、ウェイの番号が奇数の場合にはデータメモリアレイＡ７０７にそのウエイのワード１、データメモリアレイＢ７０８にワード０の命令が読み出される。
【００６２】
そして、データ選択回路７０９では、命令フェッチアドレスの第０ビットの値とヒット予測手段７１３が予測したウェイの番号に基づいてデータの選択が行われ、命令フェッチアドレスが偶数かつヒット予測手段７１３が予測したウェイの番号が偶数、もしくは命令フェッチアドレスが奇数かつ予測したウェイの番号が奇数の場合にはデータメモリアレイＡ７０７の出力が選択され、命令フェッチアドレスが偶数かつヒット予測手段７１３が予測したウェイの番号が奇数、もしくは命令フェッチアドレスが奇数かつ予測したウェイの番号が偶数の場合にはデータメモリアレイＢ７０８の出力が選択される動作を行う。
【００６３】
モードＢの動作においても、タグメモリアレイＡ７０１、Ｂ７０２に対してはモードＡの場合と同様のアクセスが行われ、ヒット信号Ａ７０５、Ｂ７０６が生成される。ここで、ヒット予測手段７１３がヒットを予測したウェイとヒット信号Ａ７０５、Ｂ７０６の結果が一致した場合には、上記のデータメモリアレイＡ７０７、Ｂ７０８へのアクセスにおいて、データ選択回路７０９で選択した命令をＣＰＵ１０１に対して出力することで命令フェッチアクセスを完了するが、ヒット予測手段７１３のヒット予測とタグメモリアレイＡ７０１、Ｂ７０２に対するアクセスの結果が一致しなかった場合には、ヒット予測手段７１３においてヒット予測を訂正して再度データメモリアレイＡ７０７、Ｂ７０８へのアクセスを行い、データ選択回路７０９で選択した命令をＣＰＵ１０１に対して出力する制御が行われる。この場合、データメモリアレイへのアクセスを再実行するため、ＣＰＵ１０１への命令の供給に遅れ（１クロックサイクル）が生じることとなる。
【００６４】
さらに、モードＢの動作においては、引き続く命令フェッチアクセスが、上記アクセスの同ライン内の隣接するワードであった場合には、データメモリアレイＡ７０７、Ｂ７０８へのアクセスを行うことなくＣＰＵ１０１に命令を供給する。すなわち、モードＢの動作においては、同ラインの２ワード分の命令がデータメモリアレイＡ７０７、Ｂ７０８から同時に読み出される。そして、連続した命令フェッチアクセスによってこの２ワードの命令が要求される場合には、データ選択回路７０９における選択を切り替えることによってデータメモリアレイＡ７０７、Ｂ７０８を再度アクセスすることなく命令を供給する。
【００６５】
このように、モードＡの動作においては、命令フェッチアクセス毎にタグメモリアレイＡ７０１、Ｂ７０２およびデータメモリアレイＡ７０７、Ｂ７０８のアクセスを行いＣＰＵ１０１に命令を供給するのに対して、モードＢの動作においては連続する命令フェッチアクセスに同ライン内のワードが要求された場合には、そのアクセスにおいては命令フェッチアクセス毎にタグメモリアレイＡ７０１、Ｂ７０２とデータメモリアレイＡ７０７、Ｂ７０８のいずれのアクセスも行うことなくＣＰＵ１０１に命令を供給する。ここで、プロセッサ回路の特に命令フェッチアクセスにおいては連続アドレスに対するアクセスの割合が高いこと、また、タグメモリアレイＡ７０１、Ｂ７０２およびデータメモリアレイＡ７０７、Ｂ７０８の読み出しアクセスには命令キャッシュの電力の大部分を消費されることから、モードＢ動作において命令キャッシュが消費する電力は、モードＡ動作で消費する電力の最大半分程度まで削減される。ただし、モードＢでの動作においては、上記のようにヒット予測手段７１３においてヒット予測（ウェイ）が誤った場合にはＣＰＵ１０１に対する命令の供給に遅延が生じ、これがＣＰＵ１０１の性能の低下要因となる。
【００６６】
電力制御手段６０２は命令キャッシュ１０２の２つの動作モードのいずれかを選択するために、目標性能レジスタ２１４の出力する目標性能値２１５と、処理性能計測手段２１６の出力する実行性能値２１７を入力する。目標性能値２１５および実行性能値２１７は、いずれも２の１４乗クロックサイクルの当りに実行される命令数で表わされる。ここで、目標性能レジスタ２１４と処理性能計測手段２１６の構成は第1の実施の形態と同様である。
【００６７】
電力制御手段６０２は、上記の目標性能レジスタ２１４の出力する目標性能値２１５と処理性能計測手段２１６の出力する実行性能値２１７から、ＣＰＵ１０１の処理性能がほぼ目標性能値と一致するように命令キャッシュ１０２のモードの選択を制御する。すなわち、目標性能値２１５と２の１２乗クロックサイクル毎に更新される実行性能値２１７を比較して、実行性能値２１７が目標性能値２１５を下回っている場合には、ＣＰＵ１０１に対して遅延なく命令が供給されるように命令キャッシュ１０２の動作をモードＡへ切り替え、逆に実行性能値２１７が目標性能値２１５を上回っている場合には、ＣＰＵ１０１に対する命令の供給に遅延が生じる場合があっても命令キャッシュ１０２の消費電力が削減される動作モードＢへの切り替えを行うよう制御を行う構成となっている。
【００６８】
上記のように構成されたプロセッサ回路において、その動作を説明する。
プログラムは目標性能レジスタ２１４にプログラムが必要とする性能を設定してプログラムの処理を開始する。電力制御手段６０２は、プログラムを実行している期間中、ＣＰＵ１０１の実行性能値２１７と設定された目標性能値２１５を比較し、実行性能値２１７と設定された目標性能値２１５が近づくように命令キャッシュ１０２に対する制御を継続して行う。その結果、ＣＰＵ１０１はプログラムが必要とする目標性能を実現しつながら、消費電力が抑えられるモードでの動作が選択される。
【００６９】
以上の様に、上記構成のプロセッサ回路においては、プログラムが必要とする処理性能とＣＰＵ１０１の動作状況に応じて、命令キャッシュ１０２の動作モードを切り替えることによって、プログラムが必要とする目標性能を実現しつながら、消費電力を最大限抑えた動作を行うことが実現される。
【００７０】
なお、上記構成における処理性能計測手段２１６を目標性能レジスタに換えて、命令キャッシュのタグメモリアレイおよびデータメモリアレイの動作状況から消費電力値を推定する消費電力計測手段と電力目標レジスタを備えた構成とし、第２の実施の形態と同様に、プログラムに許される消費電力と命令キャッシュ１０２の動作状況に応じて、命令キャッシュの１０２の動作モードを切り替えることによって、プログラムに許される消費電力を維持しつながら、最大限の処理性能を発揮する動作を行うことが可能なことは明らかである。
【００７１】
また、上記では電力制御手段６０２が命令キャッシュの動作モードを制御する構成としているが、データキャッシュについても同様に動作モードを持った構成とし、さらに電力制御手段６０２がデータキャッシュの動作モードを制御する構成としても同様の効果が実現できることは明らかである。
【００７２】
（実施の形態４）
本発明の第４の実施の形態のプロセッサ回路の主要な構成およびＣＰＵ１０１の内部の構成は、第1の実施の形態の図１および第３の実施の形態の第６図と同様である。
【００７３】
図８に第４の実施の形態の命令キャッシュ１０２の内部の詳細な構成を示す。この命令キャッシュの構成は、第３の実施の形態と同じく、２ウェイセットアソシアティブ構成のキャッシュメモリで、各ウェイは５１２ラインから構成されている。第３の実施の形態と異なっているのは、命令キャッシュに登録された命令を保持するためのＳＲＡＭのデータメモリアレイ８０１の構成であり、第３の実施の形態においてはデータメモリアレイＡ７０７とＢ７０８の２つのＳＲＡＭアレイにより構成されていたものが、ここでは、２ワードの読み出しを同時に行うことが可能な１つのＳＲＡＭアレイにより構成されている。また、データメモリアレイ８０１を構成するＳＲＡＭは内部的に２コラム（２組のビットラインから選択してセンスアンプに接続する回路構成）のメモリとなっている。
【００７４】
図９にデータメモリアレイ８０１の内部の回路構成を示す。この図では、中央のアドレスでコード回路９０１を挟んで両側に内部の読み出し回路の各ワードの１ビットずつを模式的に示している。実際にはこの読み出し回路がワードを構成するビット数分並んでいる。ここでアドレスデコード回路９０１は命令フェッチアドレスの第９〜１ビットをデコードしてワードライン９０２を生成する。ワードライン９０２は両ワードに対して共通に生成される構成となっている。
【００７５】
ワードライン９０２は、メモリセルとビットライン９０３〜９０６を繋ぐＮチャンネルトランジスタのゲートに接続する。ビットライン９０３〜９０６は、それぞれ、偶数ウェイのワード０、奇数ウェイのワード１、奇数ウェイのワード０、偶数ウェイのワード１のメモリセルが接続される。ビットライン９０３、ビットライン９０４は、コラム選択回路Ａ９０７に入力して、アドレス生成回路７１０が出力するアドレスＡ７１１により制御されるＮチャンネルトランジスタからなる選択回路によって選択される。ここでは、アドレスＡ７１１が０の時にはビットライン９０３すなわち偶数ウェイのワード０が、１の時にはビットライン９０４すなわち奇数ウェイのワード１が選択され、その値がセンスアンプで増幅された出力される。一方、ビットライン９０５、ビットライン９０６は、コラム選択回路Ｂ９０８に入力して、アドレス生成回路７１０が出力するアドレスＢ７１２により制御されるＮチャンネルトランジスタからなる選択回路によって選択される。ここでは、アドレスＢ７１２が０の時にはビットライン９０５すなわち奇数ウェイのワード０が、１の時にはビットライン９０６すなわち偶数ウェイのワード１が選択され出力される構成となっている。
【００７６】
したがって、データメモリアレイ８０１は、第３の実施の形態におけるデータメモリアレイＡ７０７とＢ７０８と同じ動作を行うことが可能である。このことから命令キャッシュとして２つの動作モード（モードＡ、モードＢ）を行う構成となっており、またこの構成のプロセッサ回路においては、プログラムが必要とする処理性能とＣＰＵ１０１の動作状況に応じて、命令キャッシュ１０２の動作モードを切り替えることによって、プログラムが必要とする目標性能を実現しつながら、消費電力を最大限抑えた動作を行うことが実現される。
【００７７】
さらに、この構成においては、データメモリアレイ８０１をワード毎に独立に制御することが可能なコラム選択回路をもったひとつのＳＲＡＭ メモリの構成とすることでアドレスデコード回路９０１を共通とした構成をとることが可能となり、命令キャッシュに必要な回路面積の削減が実現される。
【００７８】
（実施の形態５）
図１０に、本発明の第１０の実施の形態のプロセッサ回路の構成図を示す。このプロセッサ回路は、２ＣＰＵの共有メモリ方式のマルチプロセッサ構成の高性能プロセッサである。
【００７９】
図１０において、ＣＰＵ１０１、命令キャッシュ１０２、データキャッシュ１０３、ＢＣＵ１０６、システムバスインタフェース１０７、ＳＤＲＡＭインタフェース１０８、ＲＯＭ１０９およびＳＤＲＡＭ１１０は第１の実施の形態におけるそれと同様である。また、第１の実施の形態の構成に加えて、ＣＰＵ１１１、命令キャッシュ１１２、データキャッシュ１１３を備えるが、それらはそれぞれＣＰＵ１０１、命令キャッシュ１０２、データキャッシュ１０３と同様のである。また、ＣＰＵ１０１およびＣＰＵ１１１とＢＣＵ１０６を接続するキャッシュバス１０７、１１７は２ワード幅を有する構成となっている。
【００８０】
また、命令キャッシュ１０２、データキャッシュ１０３、命令キャッシュ１１２、データキャッシュ１１３の内部の構成については、図７に示した第３の実施の形態の命令キャッシュと同様の構成となっており、データメモリアレイＡ７０７に対しては、ウェイ０のワード０のデータが偶数番のアドレスに、ウェイ１のワード１のデータが奇数版のアドレスに記憶され、データメモリアレイＢ７０８に対しては、ウェイ１のワード０のデータが偶数番のアドレスに、ウェイ０のワード１のデータが奇数番のアドレスに記憶される構成となっている。
【００８１】
上記のように構成されたプロセッサ回路において、ＣＰＵ１０１とＣＰＵ１１１はメモリを共有して動作する構成であり、それぞれのキャッシュメモリの内容の一貫性を保障するために各ＣＰＵのキャッシュメモリの特定のウェイのラインに記憶された命令もしくはデータをＢＣＵ１０６を通じて転送する動作がある。この場合、転送元となるキャッシュメモリにおいては、アドレス生成回路７１０は、アドレスＡ７１１に対しては転送するウェイの番号を、アドレスＢ７１２に対してはその予測したウェイ番号に１を加えた値（この場合はアドレスＢ７１２は１ビットのアドレスであるので反転した値となる）を出力し、転送するラインの番号と合わせてデータメモリアレイＡ７０７とＢ７０８の読み出しが行われる。その結果、転送するウェイの番号が偶数の場合にはデータメモリアレイＡ７０７にそのウエイのワード０、データメモリアレイＢ７０８にワード１の命令が読み出され、ウェイの番号が奇数の場合にはデータメモリアレイＡ７０７にそのウエイのワード１、データメモリアレイＢ７０８にワード０の命令が読み出される。すなわち、この１回のアクセスによって転送を行う特定のウェイのラインの２ワードの読み出しが実行される。読み出された命令もしくはデータはキャッシュバス１０７、１１７に出力され、ＢＣＵ１０６を通じて転送先のキャッシュメモリに転送される。
【００８２】
以上の様に、上記構成のプロセッサ回路においては、キャッシュメモリのウェイのラインを構成する２ワードを、データメモリアレイの異なったワードに格納して同時に読み出し可能な構成とすることによって、キャッシュメモリ間でラインに記憶された命令もしくはデータの転送を行う場合のデータメモリアレイの読み出しアクセス回数を最小に抑えることができ、通常のキャッシュメモリアクセスを阻害する要因を減らすことが可能となる。
【産業上の利用可能性】
【００８３】
本発明のプロセッサ装置は、プログラムが必要とする処理性能とＣＰＵが発揮する刻々の処理性能の状況に応じて、動機的命令発行の有無もしくは同時に発行可能な命令数もしくはキャッシュのデータアレイのアクセス方法と切り替えることによって、プログラムが必要とする目標性能を発揮しながら、消費電力を最大限抑えたＣＰＵ動作を行うことが実現できるという効果を有し、マイクロプロセッサ等のＬＳＩに用いられるプロセッサ装置として有用である。
【図面の簡単な説明】
【００８４】
【図１】本発明の第１の実施の形態のプロセッサ回路の構成図
【図２】同実施の形態におけるＣＰＵの内部構成図
【図３Ａ】同実施の形態における処理性能計測手段の内部構成図
【図３Ｂ】同実施の形態における処理性能計測手段のタイムチャート図
【図４】本発明の第２の実施の形態におけるＣＰＵの内部構成図
【図５】同実施の形態における消費電力計測手段の内部構成図
【図６】本発明の第２の実施の形態におけるＣＰＵの内部構成図
【図７】同実施の形態における命令キャッシュの内部構成図
【図８】本発明の第４の実施の形態における命令キャッシュの内部構成図
【図９】同実施の形態におけるデータメモリアレイの内部構成図
【図１０】本発明の第５の実施の形態のプロセッサ回路の構成図
【符号の説明】
【００８５】
１０１    ＣＰＵ
１０２    命令キャッシュ
２０１    命令フェッチ手段
２０８    分岐ターゲットバッファ
２０３    命令発行手段
２０４    命令処理パイプラン１
２０５    命令処理パイプラン２
２０６    命令処理パイプラン３
２０７    命令処理パイプラン４
２１３    電力制御手段
２１４    目標性能レジスタ
２１６    処理性能計測手段
【図１】
2006059068.tif 000003
【図２】
2006059068.tif 000004
【図３Ａ】
2006059068.tif 000005
【図３Ｂ】
2006059068.tif 000006
【図４】
2006059068.tif 000007
【図５】
2006059068.tif 000008
【図６】
2006059068.tif 000009
【図７】
2006059068.tif 000010
【図８】
2006059068.tif 000011
【図９】
2006059068.tif 000012
【図１０】
2006059068.tif 000013