(57)【要約】  【課題】周波数性能を向上させ、かつ面積コストを低減し、さらに低消費電力が可能なプロセッサ回路を提供する。  【解決手段】パイプライン処理により複数の命令を並列的に処理するプロセッサ回路は、命令を取得する命令取得回路１１と、命令取得回路１１により取得された命令をデコードする命令判定部１２と、命令判定部１２によりデコードされた命令に基づきデータを取得する読み取り制御回路１と、読み取り制御回路１により取得されたデータに対して演算を実行する演算部３と、演算部３による演算結果を書き込む記憶装置４とを有する。命令判定部１２は、命令取得回路１１により取得された命令に応じて基準クロックの周波数を変更することにより動作クロックを生成し、各部に供給し、各部を動作クロックで駆動させる。【選択図】図１
2008108049.tif 000002
【特許請求の範囲】
【請求項１】
命令を取得する第１のステージと、
上記第１のステージにより取得された命令をデコードする第２のステージと、
上記第２のステージによりデコードされた命令に基づきデータを取得する第３のステージと、
上記第３のステージにより取得されたデータに対して演算を実行する第４のステージと、
上記第４のステージによる演算結果を書き込む第５のステージと
を有し、上記第１〜第５のステージをパイプライン処理により並列的に処理する処理実行部と、
上記第１のステージにより取得された命令に応じて基準クロックの周波数を変更することにより、動作クロックを生成する動作クロック生成部と
を備え、
上記処理実行部を上記動作クロックで駆動することを特徴とするプロセッサ回路。
【請求項２】
上記動作クロック生成部は、所定のステージを対象として上記基準クロックの周波数を変更することを特徴とする請求項１記載のプロセッサ回路。
【請求項３】
上記命令と同期信号制御値とが関係付けられたテーブルをさらに備え、
上記動作クロック生成部は、上記テーブルを参照して、上記第１のステージにより取得された命令に対応する同期信号制御値に基づき上記基準クロックの周波数を変更することを特徴とする請求項１記載のプロセッサ回路。
【請求項４】
上記命令には同期信号制御値が付加されており、
上記動作クロック生成部は、上記命令に付加された同期信号制御値に基づき、上記基準クロックの周波数を変更することを特徴とする請求項１記載のプロセッサ回路。
【請求項５】
上記動作クロック生成部は、上記命令に応じた同期制御信号を生成し、該同期制御信号により基準クロックをマスクして上記動作クロックを生成することを特徴とする請求項１記載のプロセッサ回路。
【請求項６】
上記同期信号制御値が同一のステージを構成する回路毎に経路が指定されていることを特徴とする請求項１記載のプロセッサ回路。
【請求項７】
上記ステージを構成する回路が上記同期信号制御値に応じて分離されていることを特徴とする請求項１記載のプロセッサ回路。
【請求項８】
上記動作クロック生成部は、上記基準クロックの周期を整数倍して上記動作クロックを生成することを特徴とする請求項１記載のプロセッサ回路。
【請求項９】
命令を取得する第１のステップと、
上記第１のステップにより取得された命令をデコードする第２のステップと、
上記第２のステップによりデコードされた命令に基づきデータを取得する第３のステップと、
上記第３のステップにより取得されたデータに対して演算を実行する第４のステップと、
上記第４のステップによる演算結果を書き込む第５のステップと
を有し、
上記第１〜第５のステップをパイプライン処理により並列的に処理するプロセッサ回路の制御方法において、
上記第１のステップにより取得された命令に応じて基準クロックの周波数を変更することにより、動作クロックを生成し、該動作クロックに基づき上記第１〜第５のステップの処理を行うことを特徴とするプロセッサ回路の制御方法。
【請求項１０】
命令を取得する第１のステージと、
上記第１のステージにより取得された命令をデコードする第２のステージと、
上記第２のステージによりデコードされた命令に基づきデータを取得する第３のステージと、
上記第３のステージにより取得されたデータに対して演算を実行する第４のステージと、
上記第４のステージによる演算結果を書き込む第５のステージと
を有し、上記第１〜第５のステージをパイプライン処理により並列的に処理する処理実行部と
上記第１のステージにより取得された命令に応じて基準クロックの周波数を変更することにより、動作クロックを生成する動作クロック生成部と
を備え、
上記処理実行部を上記動作クロックで駆動するプロセッサ回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プロセッサ回路およびその制御方法、ならびにプロセッサ回路の設計方法に関する。詳しくは、パイプライン処理を用いて命令を実行するプロセッサ回路に関する。
【背景技術】
【０００２】
まず、図１９を参照しながら、従来のプロセッサ回路の概略について説明する。このプロセッサ回路は、図１９に示すように、読み取り制御回路１０１、動作制御回路１０２、演算部１０３および記憶装置１０４を備える。動作制御回路１０２は、命令取得回路１１１および命令判定部１１２を備え、命令判定部１１２は命令判定回路１１３を備える。演算部１０３は、演算器１０３1〜１０３4を備える。なお、図１９に付した符号Ｆ、Ｄ、Ｒ、Ｅ、Ｗはそれぞれ、各部で処理される命令フェッチステージ、デコードステージ、データ読み込みステージ、命令実行ステージ、データ書き戻しステージを示す。
【０００３】
命令取得回路１１１は、メインメモリより命令を取得し、その命令を命令判定回路１１３に供給する。命令判定回路１１３は、命令取得回路１１１から供給された命令を判定し、各種制御信号を各部に供給して各部を制御する。読み取り制御回路１０１は、必要なデータを取得し、そのデータを演算部１０３に供給する。演算部１０３は、読み取り制御回路１０１から供給されたデータに基づき必要な演算を行い、演算結果を記憶装置１０４に記憶する。
【０００４】
図２０は、従来のプロセッサ回路のタイミングチャートである。図２０では、例として、Ｅステージの処理を示している。上述の構成を有するプロセッサ回路では、最大遅延が１／ｆの場合、最大動作周波数はｆで定義される。この場合、従来のプロセッサ回路は、図２０に示すように一定の周波数ｆで動作することとなり、その際の処理量は処理の種別によらず一定である。
【０００５】
次に、図２１を参照して、同期制御信号を生成する際の従来のプロセッサ回路の動作について説明する。上述の構成を有するプロセッサ回路では、処理の区別は命令（命令コード）で実現される。まず、命令取得回路１１１が、メインメモリから命令１１４をフェッチし、命令判定回路１１３に供給する。次に、命令判定回路１１３が、命令取得回路１１１から供給された命令をデコードし、デコード結果に基づいて各制御信号を生成し、制御対象の回路に供給する。
【０００６】
ところで、上述のようなプロセッサ回路に要求される処理能力は、年々高いものとなっており、動作周波数は、より高いものへと変化する傾向にある。例えば、特許文献１では、プログラムのソースコードにより特定の命令が検出された場合、そのソースコードに所定命令を付加し、その所定命令に従って、複数の周波数のクロック信号より選択した特定のクロック信号でＣＰＵ（Central Processing Unit）を動作させることで、コンピュータシステムの実行性能を犠牲にすることなく、最大限の低消費電力効果を得ることが記載されている。
【０００７】
また、プロセッサ回路では、その回路構成を変更することなく設計周波数をより高く設定するプロセッサ設計を行なう場合、一般的に目標周波数を得るために回路内のセルサイズが比較的に大きいものでマッピングされることになる。
【０００８】
ここで、例として、図２２に示す回路構成を有するプロセッサ回路を設計する場合について説明する。なお、設計周波数ｆで設計実績のあるプロセッサ回路の周波数を２ｆに向上させて再設計することを想定する。また、同期信号のずれは考慮しないものとする。
【０００９】
周波数を２ｆに再設計する場合、第１の順序回路１２１から第２の順序回路１２４へのあらゆる経路を信号が１／２ｆで通過するように設計する必要がある。例えば、再設計前の第１の組合せ回路１２２は回路段数が比較的少なく、周波数ｆの設計においても第１の組合せ回路１２２を信号が通過する時間は１／（２ｘｆ）程度であり、再設計前の第２の組合せ回路１２３は回路段数が比較的多く、周波数ｆの設計において第２の組合せ回路１２２を信号が通過する時間は１／ｆ程度であるとする。
【００１０】
【特許文献１】特開平１１−２９６２５２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述の第１の組合せ回路１２２および第２の組合せ回路１２３において、すべての経路を１／２ｆで信号が通過するためには、第２の組合せ回路１２３は、更にドライブ能力の大きなセルで構成する必要があり、回路規模は増加する方向となるのに対して、第１の組合せ回路１２２は、周波数に対して余裕があり設計周波数を倍の２ｆとしても、回路規模は変わらない。すなわち、再設計する対象回路が、第１の組合せ回路１２２のように周波数に対して余裕のある回路を備えている場合、周波数を高く設定する設計をしても面積は変わらないが、第２の組合せ回路１２３のような周波数に対して余裕の無い回路を備えている場合、その量と度合いに応じて面積は増加する。
【００１２】
上述のように、設計周波数の高速化に伴って回路規模は増大し、コスト面でのデメリットが発生してしまう傾向にある。また、周波数増加の要素に加えて、回路規模が増大することによる負荷容量の増大の要素も加わり、消費電力はより高いものとなることが考えられる。
【００１３】
また、従来のプロセッサ回路では、設計段階において、各回路の使用頻度を考慮しないため、第１の組合せ回路１２２のような回路も第２の組合せ回路１２３のような回路も使用頻度は等価として扱われる。しかしながら、仕様形態によっては、第１の組合せ回路１２２のような論理段数の少ない回路を使用することがほとんどで、第２の組合せ回路１２３のような論理段数の多い回路をほとんど使用しない場合があるが、このような場合でも従来の設計では両回路は同一の周波数で設計がされる。このような設計を行った場合、面積増加量の違いから回路規模のコストは、第１の組合せ回路１２２よりも第２の組合せ回路１２３の方が多くかかっており、コスト効率が悪くなってしまう。また、周波数性能も第２の組合せ回路１２３のような論理段数の多い回路の方で決定されることが大多数で、処理時間の多くは第１の組合せ回路１２２を使用しているにもかかわらず、第２の組合せ回路１２３の周波数性能で全体の周波数性能が決定されてしまう。
【００１４】
したがって、この発明の目的は、周波数性能を向上させ、かつ面積コストを低減し、さらに低消費電力化が可能なプロセッサ回路およびその制御方法、ならびにプロセッサ回路の設計方法を提供することにある。
【課題を解決するための手段】
【００１５】
上述の課題を解決するために、第１の発明は、命令を取得する第１のステージと、
第１のステージにより取得された命令をデコードする第２のステージと、
第２のステージによりデコードされた命令に基づきデータを取得する第３のステージと、
第３のステージにより取得されたデータに対して演算を実行する第４のステージと、
第４のステージによる演算結果を書き込む第５のステージと
を有し、第１〜第５のステージをパイプライン処理により並列的に処理する処理実行部と、
第１のステージにより取得された命令に応じて基準クロックの周波数を変更することにより、動作クロックを生成する動作クロック生成部と
を備え、
処理実行部を動作クロックで駆動することを特徴とするプロセッサ回路である。
【００１６】
第２の発明は、命令を取得する第１のステップと、
第１のステップにより取得された命令をデコードする第２のステップと、
第２のステップによりデコードされた命令に基づきデータを取得する第３のステップと、
第３のステップにより取得されたデータに対して演算を実行する第４のステップと、
第４のステップによる演算結果を書き込む第５のステップと
を有し、
第１〜第５のステップをパイプライン処理により並列的に処理するプロセッサ回路の制御方法において、
第１のステップにより取得された命令に応じて基準クロックの周波数を変更することにより、動作クロックを生成し、該動作クロックに基づき第１〜第５のステップの処理を行うことを特徴とするプロセッサ回路の制御方法である。
【００１７】
第３の発明は、命令を取得する第１のステージと、
第１のステージにより取得された命令をデコードする第２のステージと、
第２のステージによりデコードされた命令に基づきデータを取得する第３のステージと、
第３のステージにより取得されたデータに対して演算を実行する第４のステージと、
第４のステージによる演算結果を書き込む第５のステージと
を有し、第１〜第５のステージをパイプライン処理により並列的に処理する処理実行部と
第１のステージにより取得された命令に応じて基準クロックの周波数を変更することにより、動作クロックを生成する動作クロック生成部と
を備え、
処理実行部を動作クロックで駆動するプロセッサ回路の設計方法である。
【００１８】
この発明では、第１のステップにより取得された命令に応じて基準クロックの周波数を変更することにより、動作クロックを生成し、該動作クロックに基づき第１〜第５のステージの処理を行うので、プロセッサ回路の周波数性能を向上させる場合、周波数に対して余裕がなく面積増大が予測される回路経路では、動作クロックの周波数を低く設定することができる。したがって、周波数に対して余裕がない回路経路の面積増大を抑えることができ、周波数特性の向上に伴うプロセッサ回路の面積増加を抑えることができる。また、回路経路が周波数に対して余裕がある場合、該回路経路の動作クロックの周波数をより高く設定することができる。したがって、プロセッサ回路の周波数性能を向上することができる。
【発明の効果】
【００１９】
以上説明したように、この発明によれば、命令に応じて基準クロックの周波数を変更し、変更した基準クロックに基づきプロセッサ回路の各部を駆動させるので、プロセッサ回路の周波数性能を向上させ、かつ面積コストを低減し、さらに低消費電力化することができる。
【発明を実施するための最良の形態】
【００２０】
（１）第１の実施形態
（プロセッサ回路の構成）
図１は、この発明の第１の実施形態によるプロセッサ回路の構成の一例を示す。プロセッサ回路は、図１に示すように、読み取り制御回路１、動作制御回路２、演算部３および記憶装置４を備える。なお、以下では、プロセッサ回路に含まれる順序回路の同期信号のずれを考慮しない場合を考える。
【００２１】
プロセッサ回路における処理の区別は命令により実現されるようになっている。命令で行われる一連の回路動作は、パイプライン処理で行われ、各命令は、分岐ペナルティなどの特殊な場合を除き、１サイクルで完了するようになっている。プロセッサ回路におけるパイプラインは、例えば、命令フェッチステージ、デコードステージ、データ読み込みステージ、命令実行ステージ、およびデータ書き戻しステージの５段パイプラインであり、パイプライン処理は、例えば、命令フェッチステージ、デコードステージ、データ読み込みステージ、命令実行ステージ、データ書き戻しステージの順番で行われる。以下では、命令フェッチステージをＦ（Fetch）ステージ、デコードステージをＤ（Decode）ステージ、データ読み込みステージをＲ（Read）ステージ、命令実行ステージをＥ（Execute）ステージ、データ書き戻しステージをＷ（Write）ステージと称する。Ｆステージ、Ｄステージ、Ｒステージ、Ｅステージ、Ｗステージの処理はそれぞれ、命令取得回路１１、命令判定部１２、読み取り制御回路１、演算部３、記憶装置４に割り当てられている。なお、図１に付した符号Ｆ、Ｄ、Ｒ、Ｅ、Ｗはそれぞれ、各部で処理されるステージのステージ名を示す。
【００２２】
動作制御回路２は、命令取得回路１１および命令判定部１２を備え、命令判定部１２は、命令判定回路１３、同期信号制御回路１４および同期信号判定テーブル（図示省略）を備える。命令取得回路１１は、例えばメインメモリより命令を取得し、その命令を命令判定回路１３に供給する。命令判定回路１３は、命令取得回路１１から供給された命令を判定し、その判定結果に応じて各種制御信号を読み取り制御回路１、命令取得回路１１、同期信号制御回路１４、同期信号判定テーブル、演算部３および記憶装置４に供給し、これらの各部を制御する。例えば、命令判定回路１３は、命令取得回路１１から供給された命令に基づき命令を識別する命令ＩＤを生成し、生成した命令ＩＤを同期信号判定テーブルに供給し、この命令ＩＤに応じた同期信号制御値を受け取る。
【００２３】
同期信号判定テーブルには、例えば、命令ＩＤと、対象ステージおよび同期信号制御値の設定値とが関係付けられており、同期信号判定テーブルは、命令判定回路１３から供給された命令ＩＤに基づき同期信号制御値を生成し、命令判定回路１３に供給する。
【００２４】
同期信号制御回路１４には、例えばＰＬＬ（Phase Locked Loop）回路から基準クロックが供給される。同期信号制御回路１４は、同期信号判定テーブルから供給された同期信号制御値に基づき同期制御信号を生成し、この同期制御信号をマスク信号として、基準クロックから動作クロックを生成する。例えば、同期信号制御回路１４は、図２Ａに示すように、ＡＮＤ回路１５を備え、このＡＮＤ回路１５に基準クロックと同期信号制御信号とを入力し、動作クロックを生成する。同期信号制御回路１４は、生成した動作クロックをプロセッサ回路内の順序回路などに供給する。したがって、プロセッサ回路において同期信号制御回路以外の各部は、命令に応じた周波数で動作することとなる。
【００２５】
読み取り制御回路１は、例えばメインメモリからレジスタを介して必要なデータを取得し、そのデータを演算部３に供給する。演算部３は、例えば演算器３1〜３4を備え、読み取り制御回路１から供給されるデータに基づき必要な演算を行い、演算結果を記憶装置４に供給する。記憶装置４は、演算部３から供給される演算結果を記憶する。
【００２６】
なお、この第１の実施形態では、同期信号制御回路１４において動作クロックを生成する構成について説明するが、動作クロックを同期信号制御回路１４以外で生成するようにしてもよい。例えば、図２Ｂに示すように、同期制御信号を回路内順序回路１７に供給した後に、論理合成時に低消費電力回路を挿入し、図２Ｃのような回路構成で、同期信号制御回路１４とプロセッサ回路の各部に設けられた順序回路１６，１６，・・・，１６との間にＡＮＤ回路１５，１５，・・・，１５を備え、このＡＮＤ回路１５，１５，・・・，１５に同期信号制御回路１４から同期制御信号と基準クロックとを入力して動作クロックを生成し、順序回路１６，１６，・・・，１６に供給する構成をとってもよい。
【００２７】
図３は、Ｅステージにおける処理の一例を示すタイミングチャートである。同期信号制御回路１４は、同期制御信号をマスク信号として、基準クロックから動作クロックを生成する。具体的には、同期制御信号がＬｏｗ区間では、基準クロックがマスクされ、基準クロックが一時的に停止したようになり、同期制御信号がＨｉｇｈ区間では、基準クロックが動作クロックとなる。この動作クロックが同期信号制御回路１４以外の各回路に供給される。各回路は、同期信号制御回路１４から供給される動作クロックに基づき動作する。例えば、演算部３は、パイプラインＥステージの処理１、３、４、６では、基準クロック周波数であるｆで動作し、処理２、５では、基準クロック周波数の半分であるｆ／２で動作する。
【００２８】
（プロセッサ回路の動作）
図４に、この発明の第１の実施形態によるプロセッサ回路の動作を説明するための機能ブロック図を示す。まず、命令取得回路１１が、例えばメインメモリからレジスタを介して命令（命令コード）１８をフェッチし、命令判定回路１３に供給する。命令判定回路１３は、命令取得回路１１から供給された命令１８をデコードし、デコードされた情報に基づき各制御信号を制御対象の回路に供給する。また、命令判定回路１３は、デコードされた情報に基づき同期信号判定テーブル１９に命令ＩＤを発行し、この命令ＩＤに対応した同期信号制御値を同期信号判定テーブル１９から受け取り、この同期信号制御値を同期信号制御回路１４に供給する。同期信号制御値は、基準クロックより動作クロックまたは同期制御信号を生成するための情報であり、例えば基準クロックをマスクするサイクル数の情報を含んでいる。同期信号制御回路１４は、同期信号制御値に応じた同期制御信号を生成し、その同期制御信号を各回路に供給し、または動作クロックを生成し、各回路に供給する。
【００２９】
図５に、同期信号制御値と動作クロックとの関係の一例を示す。同期信号制御回路１４は、例えば、同期信号制御値が「ｎ」の場合、基準クロックをｎサイクルの間マスクして、動作クロックとして出力する。具体的には、同期信号制御値が「０」の場合、基準クロックをマスクすることなく動作クロックとして出力する。同期信号制御値が「２」の場合、基準クロックを２サイクルの間マスクし３サイクル目を通過させて、動作クロックとして出力する。このような動作クロックが出力された場合、動作クロックに従って動作する命令判定回路１３および同期信号判定テーブル１９は、基準クロックがマスクされる２サイクルの間動作しないことになる。したがって、同期信号制御値が「２」と判定された命令の処理を行った後、次の命令を処理することが可能となる。なお、同期信号制御回路１４が同期信号制御値を得てから同期制御信号を生成するまでのサイクル数は、調整可能であり、これにより、プロセッサ回路のどのステージを基準に基準クロックをマスクするか制御可能である。
【００３０】
図６に、命令と、対象ステージおよび同期信号制御値の設定値との関係の一例を示す。図６に示すように、プロセッサ回路では、命令と対象ステージおよび同期信号制御値の設定値とが関係付けられている。例えば、命令ＭＶとＥステージおよび設定値「０」とが関係付けられ、命令ＡＤＤおよび命令ＳＵＢとＥステージおよび設定値「１」とが関係付けられ、命令ＭＵＬとＥステージおよび設定値「３」とが関係付けられている。同期信号判定テーブル１９は、例えば、対象ステージと同期信号制御値の設定値に基づき、同期信号制御値を出力するようになっている。また、対象ステージに記載されていないステージは、基準クロックで処理可能なようになっている。
【００３１】
図７に、図６で示された命令の時間列でのパイプライン処理の一例を示す。斜線を付した部分が、同期信号制御値により基準クロックがマスクされ、動作クロックが基準クロックと異なるステージである。図７では、Ｅステージのみ基準クロックがマスクされており、Ｅステージ以外の処理時間は、その他命令がＥステージに隠れるため、十分に実行命令数が多く、分岐ペナルティを考えない場合、実質Ｅステージ時の実行周波数が、その命令の実効周波数と考えられる。なお、上述したように、この第１の実施形態では、同期信号制御値に応じて基準クロックをマスクするため、それぞれの命令で実行周波数が異なることになる。例えば、図６および図７に示す例では、基準クロック周波数をｆとしており、この場合、命令ＭＶでは実行周波数ｆ、命令ＡＤＤおよび命令ＳＵＢでは実行周波数ｆ／２、命令ＭＵＬでは実行周波数ｆ／４となる。したがって、図７に示す５命令の実行中の平均動作周波数Ｆは、十分に実行命令数が多く、分岐ペナルティを考えない場合、下記の（１）式により算出される。
Ｆ＝(１／５)×ｆ＋(３／５)×(ｆ／２)＋(１／５)×(ｆ／４)＝０．５５ｆ  ・・・（１）
【００３２】
次に、図８を参照しながら、この発明の第１の実施形態によるプロセッサ回路の設計方法の一例について説明する。なお、読み取り制御回路１および記憶装置４は、例えば順序回路を備え、演算器３1および演算器３2は、例えば組合せ回路を備えるものとする。演算器３1および演算器３2にはそれぞれ、演算器３1、演算器３2を制御するための制御信号が動作制御回路２から供給される。第１の回路経路２１は、読み取り制御回路１から演算器３1を介して記憶装置４に至る回路経路であり、第２の回路経路２２は、読み取り制御回路１から演算器３2を介して記憶装置４に至る回路経路である。
【００３３】
このプロセッサ回路の設計方法では、例えば、命令に応じて設定された動作クロックの周波数に基づき演算器を構成する。また、周波数性能に影響する回路経路に対しては、経路を指定できる構成にする。さらに、同期信号制御値に応じて活用される回路を分離する構成にする。
【００３４】
ここでは、基準クロックの周波数はｆであり、演算器３1は、回路段数が比較的少なく、周波数ｆに対して余裕のかる回路であり、例えば周波数をｆ／２からｆに向上させる設計をしても回路規模は同様であるのに対して、演算器３2は、回路段数が比較的多い回路であり、例えば周波数をｆ／２からｆに向上させる設計をすると回路規模は増加するものとする。
【００３５】
この第１の実施形態によるプロセッサ回路では、周波数性能に影響する回路経路に対しては、同期信号制御値が同一であるもので、論理階層を持つなどの区別を行い、経路を指定できる構造にしておくものとする。以下の説明では、演算部３が周波数性能に影響するものとし、演算器３1、演算器３2それぞれは同期信号制御値で分類されるものとする。
【００３６】
同期信号制御値が「０」で定義される命令を実行する場合、演算器３1が活用され、演算器３2は活用されないように構成し、同期信号制御値が「１」で定義される命令を実行する場合、演算器３2が活用され、演算器３1は活用されないように設計する。すなわち、同期信号制御値が「０」で定義される命令を実行する場合、記憶装置内の順序回路に到達する信号が必ず第１の回路経路２１を通過し、同期信号制御値が「１」で定義される命令を実行する場合、記憶装置内の順序回路に到達する信号が必ず第２の回路経路２２を通過するように設計する。このように、同期信号制御値に応じて活用される回路を分離することで、各同期信号制御値に応じた周波数設計を行うことができる。
【００３７】
そして、第１の回路経路２１を周波数ｆで設計し、同期信号制御値が「０」で定義される命令を実行する場合、第１の回路経路２１に周波数ｆの動作クロックが供給されるようにする。また、第２の回路経路２２を周波数ｆ／２で設計し、同期信号制御値が「１」で定義される命令を実行する場合、第２の回路経路２２に周波数ｆ／２の動作クロックが供給されるようにする。
【００３８】
従来のプロセッサ回路では、命令毎の周波数区別は無いため、第１の回路経路２１および第２の回路経路２２の両方が同一の周波数で設計される。したがって、従来のプロセッサ回路では、第１の回路経路２１および第２の回路経路２２の両方を周波数ｆで設計した場合、上述の構成を有するプロセッサ回路と比較して、演算器３2の回路が大きくなる可能性がある。
【００３９】
また、第１の回路経路２１および第２の回路経路２２の両方を周波数ｆ／２で設計した場合、第２の回路経路２２を通過する回路の規模は、上述の構成を有するプロセッサ回路と比較して同等となるが、第１の回路経路の実行周波数がｆ／２となり、上述の構成を有するプロセッサ回路と比較して周波数性能が劣ることとなる。
【００４０】
図９に、この第１の実施形態によるプロセッサ回路の効果を説明するためのグラフを示す。なお、図９に示すグラフにおいて、横軸は設計周波数であり、縦軸は回路規模である。一般に設計周波数を高速にした場合、回路規模は増大し、回路規模の増大率は、より高周波数になるほど大きくなる。また、ある一定周波数を超えた場合、トランジスタの能力を超えるため、実現は不可能となる。
【００４１】
従来ではプロセッサ回路を周波数ｆで設計した場合、回路面積がＡ３となるとする。この従来のプロセッサ回路と同一機能の回路を、上述の第１の実施形態によるプロセッサ回路により構成し、従来のプロセッサ回路の最大遅延経路を含む命令に対して、同期信号制御値ｎmaxを割り当てる。そして、一度、回路全体を周波数ｆ／(ｎmax＋１)で設計し、そこで得られる回路面積をＡ１とする。次に、各命令に対して、回路面積がＡ１から増加しないように、同期信号制御値ｎを割り当てていく。この結果、回路規模は大きく増加すること無く、理想的には回路面積Ａ１近傍で設計がなされることになる。この場合の平均動作周波数Ｆは、十分に実行命令数が多く、分岐ペナルティを考えない場合、下記の式（２）で表され、ｆ／(ｎmax＋１)よりも高速となる。
Ｆ＝Σ｛ｇ（ｎ）×ｆ／（ｎ＋１）｝  ・・・（２）
但し、ｆ：基準周波数
ｎ：同期信号制御値
ｇ（ｎ）：ｎを持つ命令の発生確率（Σｇ（ｎ）＝１）
【００４２】
仮に、従来回路においては周波数Ｆを得るためには、回路全体が周波数Ｆで設計されるため、回路面積はＡ２となることが予測される。これに対して、この第１の実施形態による回路においては、例えば周波数Ｆによる同一の周波数性能を維持しながら、回路面積はＡ１近傍で実現可能である。さらに基準クロックをより高速にし、同期信号制御値をより細分化すれば、回路面積をＡ１で維持させた状態で、基準クロック周波数ｆに平均動作周波数Ｆを近づけることが可能である。結果として、回路規模が少なく、必要最小限のクロックパルスで回路が実現できるため、低消費電力化も可能となる。
【００４３】
上述したように、この発明の第１の実施形態によれば、従来のプロセッサ回路と比べて、同一周波数性能であっても回路規模を少なく実現可能である。また、従来のプロセッサ回路と比べて、周波数性能に余裕がある処理では、高速に処理可能である。また、周辺の周波数を落とすこと無く、低速な記憶装置の組み込みも可能である。また、演算器を複雑にした場合でも、汎用レジスタ数もしくは、中間順序回路を削減可能であり、従来のプロセッサ回路と比較して回路規模を少なくすることが可能である。また、従来回路と比較して低消費電力が実現可能である。
【００４４】
（変形例１）
図１０に、この発明の第１の実施形態によるプロセッサ回路の変形例を説明するための機能ブロック図を示す。このプロセッサ回路は、図１０に示すように、命令と同時に同期信号制御値をプロセッサ回路に供給することで、同期信号判定テーブルを持たない構成としたものである。例えば、命令に対して同期信号制御値を付加しておくようにする。
【００４５】
まず、命令取得回路１１が、例えばメインメモリからレジスタを介して命令１８および同期信号制御値２０をフェッチし、命令１８、同期信号制御値２０をそれぞれ命令判定回路１３、同期信号制御回路１４に供給する。同期信号制御回路１４は、命令取得回路１１から供給された同期信号制御値に基づき同期制御信号を生成し、この同期制御信号と基準クロックとから動作クロックを生成し、プロセッサ回路の各部に供給する。命令判定回路１３は、同期信号制御回路１４から供給された同期制御信号に従って動作し、例えば、命令取得回路１１から供給される命令１８をデコードし、デコードされた情報に基づき各制御信号を制御対象の回路に供給する。なお、このプロセッサ回路では、同期信号制御値の対象ステージを複数有することも可能である。
【００４６】
なお、図２Ｂに示すように、同期制御信号を回路内順序回路に供給した後に、論理合成時に低消費電力回路を挿入し、図２Ｃのような回路構成で、同期信号制御回路１４とプロセッサ回路の各部に設けられた順序回路１６，１６，・・・，１６との間にＡＮＤ回路１５，１５，・・・１５を備え、このＡＮＤ回路１５，１５，・・・，１５に同期信号制御回路１４から同期制御信号と基準クロックとを入力して動作クロックを生成し、順序回路１６，１６，・・・，１６に供給するようにしてもよい。
【００４７】
（変形例２）
上述の第１の実施形態ではＥステージを対象ステージとする場合について説明したが、この発明はこの例に限定されるものではなく、同期信号制御値を取得後のステージであれば、任意のステージを対象ステージとして選択可能である。
【００４８】
例えば、図４に示すように同期信号判定テーブルを用いて同期信号制御値を得る構成とする場合において、Ｗステージが対象ステージであるときには、設定値を次の時刻にずらし、同期信号制御値とする設定回路を同期信号判定テーブルにさらに付加するようにする。このような構成は、例えば、Ｗステージ（書き込みステージ）で非常に低速な素子にアクセスする場合に適用して好適なものである。
【００４９】
図１１に、Ｗステージを対象ステージとした場合の同期信号制御値の設定方法の一例を示す。対象ステージがＷステージである場合、上述の設定回路が、図１１に示すように、ＭＶ  ＭｅｍＲ０、ＭＶ  ＭｅｍＲ１、ＭＶ  Ｒ３  Ｒ２、ＭＶ  ＭｅｍＲ３、ＭＶ  ＭｅｍＲ４・・・の設定値「１」、「１」、「０」、「１」、「１」・・・をそれぞれ次の時刻にずらして、「０」、「１」、「１」、「０」、「１」・・・を同期信号制御値とする。したがって、ＭＶ  ＭｅｍＲ０、ＭＶ  ＭｅｍＲ１、ＭＶ  Ｒ３  Ｒ２、ＭＶ  ＭｅｍＲ３、ＭＶ  ＭｅｍＲ４・・・の実行周波数はそれぞれ、ｆ、ｆ／２、ｆ／２、ｆ、ｆ／２・・・となる。
【００５０】
図１２に、図１１で示された命令の時間列でのパイプライン処理の一例を示す。斜線を付した部分が、同期制御信号により基準クロックがマスクされ、動作クロックが基準クロックと異なるＷステージである。Ｗステージ以外の処理時間は、その他命令がＷステージに隠れるため、十分に実行命令数が多く、分岐ペナルティを考えない場合、実質Ｗステージ時の実行周波数が、その命令の実効周波数と考えられる。したがって、図１２に示す５命令の実行中の平均動作周波数Ｆは、十分に実行命令数が多く、分岐ペナルティを考えない場合、下記の（３）式により算出される。
Ｆ＝（２／５）×ｆ＋（３／５）×（ｆ／２）・・・（３）
【００５１】
（変形例３）
上述の第１の実施形態では１つのステージを対象ステージとする場合について説明したが、この発明はこの例に限定されるものではなく、同期信号制御値を取得後のステージであれば、複数のステージを対象ステージとして選択可能である。
【００５２】
この変形例では、例えば、以下のようにして同期信号制御値を得るようにする。すなわち、Ｅステージであれば、設定値を時間的にずらさず同一時刻のものを同期信号制御値とし、Ｅステージの次のステージであるＷステージであれば、設定値を次の時刻にずらして同期信号制御値とする設定回路をさらに備えるようにする。ここで、対象となる設定値が複数存在する場合は、大きい値を同期信号制御値とするものとする。
【００５３】
上述の変形例２のように対象ステージが１種類の場合には、同期信号判定テーブルを用いて同期信号制御値を設定することが可能であるが、この変形例３では、複数ステージを対象ステージとするため、同期信号制御値を生成する際に、命令の依存関係がある。したがって、図１０で示すように命令コードと共に同期信号制御値をフェッチし、同期信号制御値を同期信号制御回路１４に供給するような構成とする必要がある。
【００５４】
図１３に、ＥステージとＷステージとを混合した場合の同期信号制御値の設定方法の一例を示す。対象ステージがＥステージである場合、図１３に示すように、ＡＤＤ  Ｒ１  Ｒ０、ＡＤＤ  Ｒ２  Ｒ１、ＭＵＬ  Ｒ４  Ｒ３、ＳＵＢ  Ｒ０  Ｒ４・・・の設定値「１」、「１」、「３」、「１」・・・をそれぞれ時間的にずらさずに同一時刻のものを用いて、同期信号制御値「１」、「１」、「３」、「１」・・・とし、対象ステージがＥステージの次ステージであるＷステージの場合、図１３に示すように、ＭＶ  ＭｅｍＲ２・・・の設定値「１」を次の時刻にそれぞれずらして、例えば、設定値「１」および「３」の２つの設定値のうち、大きい値の設定値「３」を同期信号制御値とする設定回路を備えるようにする。このように、設定値が複数ある場合でも、大きい値を同期信号制御値とすることで、小さい方の設定値も満足することが可能である。
【００５５】
図１４に、図１３で示された命令の時間列でのパイプライン処理の一例を示す。斜線を付した部分が、同期制御信号により基準クロックがマスクされ、動作クロックが基準クロックと異なるＥステージおよびＷステージである。
【００５６】
（変形例４）
この第１の実施形態の変形例４では、対象ステージおよび設定値が複数である場合について説明する。
【００５７】
図１５に、ＥステージおよびＷステージを対象ステージとした場合の同期信号制御値の設定方法の一例を示す。対象ステージがＥ，Ｗステージである場合には、Ｅステージに対応する設定値「１」をずらさずに同一時刻のものを用いて、同期信号制御値「１」とし、Ｗステージに対応する設定値「１」を次の時刻にそれぞれずらして、設定値「１」および「３」の２つの設定値のうち、大きい値の設定値「３」を同期信号制御値とする設定回路を備えるようにする。
【００５８】
図１６に、図１５で示された命令の時間列でのパイプライン処理の一例を示す。斜線を付した部分が、同期信号制御値により基準クロックがマスクされ、動作クロックが基準クロックと異なるＥステージおよびＷステージである。
【００５９】
（２）第２の実施形態
図１７に、この発明の第２の実施形態によるプロセッサ回路の構成の一例を示す。読み取り制御回路３２に対して演算器ＭＵＬ３３1、演算器ＡＤＤ３３2、演算器ＡＤＤ３３3、演算器ＳＵＢ３３4、演算器ＳＨＩＦＴ３３5および演算器ＳＨＩＦＴ３３6が接続されている。切替制御回路３４は、演算器ＭＵＬ３３1、演算器ＡＤＤ３３2、演算器ＡＤＤ３３3、演算器ＳＵＢ３３4、演算器ＳＨＩＦＴ３３5および演算器ＳＨＩＦＴ３３6の入出力を任意に切替可能となっている。図１７の例では、演算器ＭＵＬ３３1および演算器ＡＤＤ３３2を用いた積和演算が行えるようになっている。書き込み制御回路３５は、演算器ＭＵＬ３３1、演算器ＡＤＤ３３2、演算器ＡＤＤ３３3、演算器ＳＵＢ３３4、演算器ＳＨＩＦＴ３３5および演算器ＳＨＩＦＴ３３6の出力をレジスタ群３６のうちの任意のレジスタに書き込み可能となっている。動作制御回路３１から出力された動作クロックや制御信号が読み取り制御回路３２、演算器３３および書き込み制御回路３５などに供給される。なお、動作制御回路３１は、上述の第１の実施形態による動作制御回路２に対応するものである。
【００６０】
このプロセッサ回路では、切替制御回路３４で、書き込み制御回路３５へのデータ転送もしくは、中間順序回路へラッチすることなく、任意の演算器３３に値を戻すことができるようになっており、書き込み制御回路３５では、演算結果を任意の汎用レジスタに書き込むことができるようになっている。これにより、ＤＳＰ（Digital Signal Processor）などに多用される積和演算と通常の加算、乗算演算の切り替えが行える構成となっている。
【００６１】
図１８に、積和演算の演算部の構成例を示す。読み取り制御回路３２により取得されたデータは、演算器ＭＵＬ３３1を経由し、ラッチされることなく、演算器ＡＤＤ３３2に入力され、演算結果が、汎用レジスタ３６に書き込まれる。従来のプロセッサ回路においては、一律の周波数で設計がなされるため、積和演算などの回路段数が多くなる演算器により、プロセッサ回路全体の周波数性能を落とす可能性がある。また、周波数性能を落とさず設計を行う場合は、回路規模が増大する可能性がある。このことから積和演算器の回路規模増大を抑え、設計周波数を高速にしたい場合、切替制御回路に中間順序回路を用いることで、実現可能である。しかしながら、パイプラインハザードを解消するために制御が複雑になり、その分回路規模が増大してしまう。また、命令を複数実行して、積和演算を行う場合は、回路規模は増大しないが、汎用レジスタに命令毎に演算結果を書き戻す必要があり、場合によっては、汎用レジスタ数を増やす必要が発生する。
【００６２】
この第２の実施形態によるプロセッサ回路では、例えば命令別にＥステージの周波数を可変にすることが可能であるため、積和演算などの複合演算を個別に分け、切替制御回路３４’のような回路経路を特定可能な構成にすることで同期信号制御値を割り当てることが可能である。例えば、基準クロック周波数をｆとし、各演算器３３を最適な周波数ｆ／ｎで設計する。この場合、ｎは各演算器３３で異なってもよい。例えば、図１８に示す演算回路３３の場合、各ｎの値が、演算器ＭＵＬ３３1がｎ１、演算器ＡＤＤ３３2がｎ２で設計されているとすれば、積和演算の同期信号制御値は、ｎ１＋ｎ２で定義されることとなる。この同期信号制御値は、図４に示すように同期信号判定テーブル１９から命令判定回路１３に発行されるようにする、または、図１０に示すように命令と同時にラッチされ、同期信号制御回路１４に供給されるようにする。
【００６３】
この発明の第２の実施形態では、汎用レジスタ数や回路規模を増大させることなく、積和演算などの特殊な演算器を構成可能であり、回路規模縮小や低消費電力に貢献可能となる。
【００６４】
以上、この発明の実施形態について具体的に説明したが、この発明は、上述の実施形態に限定されるものではなく、この発明の技術的思想に基づく各種の変形が可能である。
【００６５】
例えば、上述の実施形態において挙げた数値はあくまでも例に過ぎず、必要に応じてこれと異なる数値を用いてもよい。
【００６６】
また、上述の実施形態では、５段パイプラインのプロセッサ回路にこの発明を適用した場合を例として説明したが、５段を越える段数、または５段未満の段数のパイプラインのプロセッサ回路にもこの発明は適用可能である。
【図面の簡単な説明】
【００６７】
【図１】この発明の第１の実施形態によるプロセッサ回路の構成の一例を示すブロック図である。
【図２】この発明の第１の実施形態によるプロセッサ回路における動作クロックの生成方法を説明するためのブロック図である。
【図３】Ｅステージにおける処理の一例を示すタイミングチャートである。
【図４】この発明の第１の実施形態によるプロセッサ回路の動作を説明するための機能ブロック図である。
【図５】同期信号制御値と動作クロックとの関係の一例を示すタイミングチャートである。
【図６】命令と、対象ステージおよび同期信号制御値との関係の一例を示す略線図である。
【図７】図６で示された命令の時間列でのパイプライン処理の一例を示す略線図である。
【図８】この発明の第１の実施形態によるプロセッサ回路の設計方法の一例を説明するためのブロック図である。
【図９】この発明の第１の実施形態によるプロセッサ回路の効果を説明するためのグラフである。
【図１０】この発明の第１の実施形態によるプロセッサ回路の変形例を説明するための機能ブロック図である。
【図１１】この発明の第１の実施形態によるプロセッサ回路の変形例を説明するための略線図である。
【図１２】この発明の第１の実施形態によるプロセッサ回路の変形例を説明するための略線図である。
【図１３】この発明の第１の実施形態によるプロセッサ回路の変形例を説明するための略線図である。
【図１４】この発明の第１の実施形態によるプロセッサ回路の変形例を説明するための略線図である。
【図１５】この発明の第１の実施形態によるプロセッサ回路の変形例を説明するための略線図である。
【図１６】この発明の第１の実施形態によるプロセッサ回路の変形例を説明するための略線図である。
【図１７】この発明の第２の実施形態によるプロセッサ回路の構成の一例を示すブロック図である。
【図１８】この発明の第２の実施形態によるプロセッサ回路の構成の一例を示すブロック図である。
【図１９】従来のプロセッサ回路の構成を示すブロック図である。
【図２０】従来のプロセッサ回路の動作を説明するためのタイミングチャートである。
【図２１】従来のプロセッサ回路の動作を説明するための機能ブロック図である。
【図２２】従来のプロセッサ回路の設計方法を説明するためのブロック図である。
【符号の説明】
【００６８】
１  読み取り制御回路
２  動作制御回路
３  演算器
４  記憶装置
１１  命令取得回路
１２  命令判定部
１３  命令判定回路
１４  同期信号制御回路
１５  ＡＮＤ回路
１６，１７  順序回路
１８  命令コード
１９  同期信号判定テーブル
２０  同期信号制御値
２１  第１の回路経路
２２  第２の回路経路
【図１】
2008108049.tif 000003
【図２】
2008108049.tif 000004
【図３】
2008108049.tif 000005
【図４】
2008108049.tif 000006
【図５】
2008108049.tif 000007
【図６】
2008108049.tif 000008
【図７】
2008108049.tif 000009
【図８】
2008108049.tif 000010
【図９】
2008108049.tif 000011
【図１０】
2008108049.tif 000012
【図１１】
2008108049.tif 000013
【図１２】
2008108049.tif 000014
【図１３】
2008108049.tif 000015
【図１４】
2008108049.tif 000016
【図１５】
2008108049.tif 000017
【図１６】
2008108049.tif 000018
【図１７】
2008108049.tif 000019
【図１８】
2008108049.tif 000020
【図１９】
2008108049.tif 000021
【図２０】
2008108049.tif 000022
【図２１】
2008108049.tif 000023
【図２２】
2008108049.tif 000024