(57)【要約】      （修正有）【課題】所望の処理性能を満足した上で、低消費電力化を図ることができるようにする。【解決手段】各ロジック部１１における許容処理時間と各ロジック部１１の処理時間を比較し、その比較結果を参照して、複数のロジック部１１間の接続箇所毎に、挿入されているフリップフロップ１２を省いて、その接続箇所における前段のロジック部１１と後段のロジック部１１を直結するか否かを判定するパス長判定部を設け、セレクタ１３がパス長判定部により直結する旨の判定がなされた接続箇所では、挿入されているフリップフロップ１２を省いて、その接続箇所における前段のロジック部１１と後段のロジック部１１を直結する。【選択図】図２
2011108020.tif 000002
【特許請求の範囲】
【請求項１】
演算命令及びデータ転送指令を発行する処理制御部と、演算処理に用いるデータを格納しているデータメモリと、上記処理制御部により発行されたデータ転送指令にしたがって上記データメモリにより格納されているデータを転送するデータ転送部と、演算処理を行う複数のロジック部の間に、クロックに同期して前段のロジック部の演算結果を入力し、次のクロックに同期して上記演算結果を後段のロジック部に転送するフリップフロップが挿入されてパイプラインが構成されており、上記処理制御部により発行された演算命令にしたがって上記データ転送部により転送されたデータに対する演算をパイプライン処理で行うデータパス部とを備えた信号処理装置において、上記データパス部を構成している複数のロジック部が演算処理に要する処理時間を格納している処理時間格納部と、上記処理制御部から発行された演算命令に対応する演算処理の各ロジック部における許容処理時間と上記処理時間格納部により格納されている処理時間を比較し、上記許容処理時間と上記処理時間の比較結果を参照して、上記データパス部を構成している複数のロジック部間の接続箇所毎に、挿入されているフリップフロップを省いて、その接続箇所における前段のロジック部と後段のロジック部を直結するか否かを判定する直結判定部と、上記直結判定部により直結する旨の判定がなされた接続箇所では、挿入されているフリップフロップを省いて、その接続箇所における前段のロジック部と後段のロジック部を直結するセレクタとを設けたことを特徴とする信号処理装置。
【請求項２】
直結判定部は、演算処理に要する処理時間が許容処理時間を超えるロジック部と、演算処理に要する処理時間が許容処理時間を越えないロジック部とが接続されている箇所があるとき、その接続箇所における前段のロジック部と後段のロジック部における合計の処理時間が合計の許容処理時間を越えなければ、その接続箇所に挿入されているフリップフロップを省いて、その接続箇所における前段のロジック部と後段のロジック部を直結する旨の判定を行うことを特徴とする請求項１記載の信号処理装置。
【請求項３】
データパス部を構成している複数のロジック部毎に、演算処理の許容処理時間から演算処理に要する処理時間を減算して遅延余裕時間を算出する遅延余裕時間算出部を設け、
直結判定部は、上記遅延余裕時間算出部により算出された遅延余裕時間が正値であるロジック部と遅延余裕時間が負値であるロジック部が接続されている箇所があるとき、その接続箇所における前段のロジック部と後段のロジック部の合計の遅延余裕時間が正値であれば、その接続箇所に挿入されているフリップフロップを省いて、その接続箇所における前段のロジック部と後段のロジック部を直結する旨の判定を行うことを特徴とする請求項１記載の信号処理装置。
【請求項４】
処理制御部から発行された演算命令に対応する演算処理の各ロジック部における許容処理時間と処理時間格納部により格納されている処理時間を比較し、上記許容処理時間と上記処理時間の比較結果を参照して、データパス部に供給するクロックの周波数を決定する周波数決定部と、上記周波数決定部により決定された周波数のクロックを上記データパス部に供給するクロック供給部とを設けたことを特徴とする請求項１から請求項３のうちのいずれか１項記載の信号処理装置。
【請求項５】
処理制御部、データ転送部、データパス部、処理時間格納部、直結判定部及びセレクタからなる処理ユニットが複数個並列に接続されて、複数の処理ユニットが並列に動作することを特徴とする請求項１記載の信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、演算命令にしたがって演算をパイプライン処理で行う信号処理装置に関するものである。
【背景技術】
【０００２】
近年、システムＬＳＩは、低消費電力化と高性能化の両方が要求されている。
以下の特許文献１では、上記の要求を満たすために、クロック周波数に応じて、パイプラインの段数を変更する信号処理装置が開示されている。
即ち、高速処理が必要な場合には、各ステージでの処理時間の差が小さくなる高段数の高クロック周波数を使用して演算処理を実施し、高速処理が必要でない場合には、分岐インタロックによるペナルティの少ない低段数の低クロック周波数を使用して演算処理を実施する信号処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−３１９５７８号公報（段落番号［００１０］、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の信号処理装置は以上のように構成されているので、高速処理が必要でない場合には、低段数の低クロック周波数を使用することで、消費電力を低減することができる。しかし、クロックを可変する動作モード（高クロック周波数モード、低クロック周波数モード）の数だけパイプラインを設ける必要があるため、構成が複雑で回路の大型化を招き、また、必ずしも実行する処理の目的とする性能を満足するとは限らない。また、消費電力の削減は設置しているパイプライン間の差分のみであり、それ以上の消費電力の削減を図るには、性能とのトレードオフになる。さらに、製造バラつきが生じている場合、性能が劣化してしまって、動作モードを変更しても所望の性能が得られず、適正な動作を確保することが困難であるなどの課題があった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、所望の処理性能を満足した上で、低消費電力化を図ることができる信号処理装置を得ることを目的とする。
また、この発明は、製造バラつきによる性能劣化が生じても、適正な動作を確保することができる信号処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る信号処理装置は、データパス部を構成している複数のロジック部が演算処理に要する処理時間を格納している処理時間格納部と、処理制御部から発行された演算命令に対応する演算処理の各ロジック部における許容処理時間と処理時間格納部により格納されている処理時間を比較し、その許容処理時間と処理時間の比較結果を参照して、データパス部を構成している複数のロジック部間の接続箇所毎に、挿入されているフリップフロップを省いて、その接続箇所における前段のロジック部と後段のロジック部を直結するか否かを判定する直結判定部とを設け、セレクタが直結判定部により直結する旨の判定がなされた接続箇所では、挿入されているフリップフロップを省いて、その接続箇所における前段のロジック部と後段のロジック部を直結するようにしたものである。
【発明の効果】
【０００７】
この発明によれば、データパス部を構成している複数のロジック部が演算処理に要する処理時間を格納している処理時間格納部と、処理制御部から発行された演算命令に対応する演算処理の各ロジック部における許容処理時間と処理時間格納部により格納されている処理時間を比較し、その許容処理時間と処理時間の比較結果を参照して、データパス部を構成している複数のロジック部間の接続箇所毎に、挿入されているフリップフロップを省いて、その接続箇所における前段のロジック部と後段のロジック部を直結するか否かを判定する直結判定部とを設け、セレクタが直結判定部により直結する旨の判定がなされた接続箇所では、挿入されているフリップフロップを省いて、その接続箇所における前段のロジック部と後段のロジック部を直結するように構成したので、所望の処理性能を満足した上で、低消費電力化を図ることができる効果がある。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１による信号処理装置を示す構成図である。
【図２】この発明の実施の形態１による信号処理装置のデータパス部４を示す構成図である。
【図３】この発明の実施の形態１による信号処理装置のデータパス制御部５を示す構成図である。
【図４】データパス部４を構成しているロジック部１１が４段であるパイプラインの例を示す説明図である。
【図５】クロックの周波数とロジック部１１が演算処理に要する処理時間ＤＴの対応関係を示す説明図である。
【図６】処理制御部１から発行された演算命令ＣＯに対応する演算処理Ｘ，Ｙ，Ｚと、データパス部４における許容処理時間ＰＤＴ及びロジックＡ〜Ｄにおける許容処理時間ＰＤＴLとの対応関係を示す説明図である。
【図７】パス長判定部２２から出力されたデータパス長設定信号Ｓdplにしたがってセレクタ１３が動作した後のデータパス部４を示す説明図である。
【図８】処理制御部１から発行された演算命令ＣＯに対応する演算処理Ｘ，Ｙ，Ｚと、データパス部４における許容処理時間ＰＤＴ及びロジックＡ〜Ｄにおける許容処理時間ＰＤＴLとの対応関係を示す説明図である。
【図９】フリップフロップ１２が挿入されている状態が維持されているデータパス部４を示す説明図である。
【図１０】この発明の実施の形態２による信号処理装置のデータパス制御部５を示す構成図である。
【図１１】単位処理時間格納部２４における処理時間ＤＴの格納例を示す説明図である。
【図１２】処理制御部１から発行された演算命令ＣＯに対応する演算処理と、ロジックＡ〜Ｄが行う演算処理（単位処理）と、許容処理時間ＰＤＴとの対応関係を示す説明図である。
【図１３】パス長判定部２６から出力されたデータパス長設定信号Ｓdplにしたがってセレクタ１３が動作した後のデータパス部４を示す説明図である。
【図１４】この発明の実施の形態３による信号処理装置を示す構成図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
図１はこの発明の実施の形態１による信号処理装置を示す構成図である。
図１において、処理制御部１は演算順序制御時に必要なパラメータの算出処理や、比較演算などの単一演算（例えば、加算、減算、乗算などの演算）を行うほか、データパス部４に対する演算命令ＣＯ（例えば、演算内容、各演算の実行順序など）の発行や、データ転送部３に対するデータ転送指令（例えば、転送対象のデータ、データの転送先／転送元、転送データのサイズなどを特定する命令）を発行する処理を実施する。
また、処理制御部１は演算命令ＣＯに対応する演算処理のデータパス部４における許容処理時間ＰＤＴをデータパス制御部５に出力する処理を実施する。
【００１０】
データメモリ２は演算処理に用いるデータや、処理制御部１及びデータパス部４の演算結果などを格納している記録媒体である。
データ転送部３は処理制御部１により発行されたデータ転送指令にしたがってデータメモリ２により格納されているデータをバス７経由でデータパス部４に転送する処理のほか、処理制御部１により発行されたデータ転送指令にしたがってデータパス部４の演算結果をバス７経由でデータメモリ２や処理制御部１に転送する処理などを実施する。
【００１１】
データパス部４は演算処理を行う複数のロジック部１１の間に、クロック供給部６から供給されるクロックに同期して前段のロジック部１１の演算結果を入力し、次のクロックに同期して前段のロジック部１１の演算結果を後段のロジック部１１に転送するフリップフロップ１２が挿入されてパイプラインが構成されており（図２を参照）、処理制御部１により発行された演算命令ＣＯにしたがってデータ転送部３により転送されたデータに対する演算をパイプライン処理で行う。
【００１２】
データパス制御部５はデータパス部４のパス長を決定するとともに、データパス部４に供給するクロックの周波数を決定する処理を実施する。
クロック供給部６はデータパス制御部５により決定された周波数のクロックをデータパス部４に供給する処理を実施する。
バス７はデータ転送部３が演算処理に用いるデータや演算結果を転送する際に使用する伝送路である。
【００１３】
図２はこの発明の実施の形態１による信号処理装置のデータパス部４を示す構成図である。
図２において、ロジック部１１は各種の演算処理を行う演算回路である。
フリップフロップ１２は２つのロジック部１１間に挿入され、クロック供給部６から供給されるクロックに同期して前段のロジック部１１の演算結果を入力し、次のクロックに同期して前段のロジック部１１の演算結果を後段のロジック部１１に転送する処理を実施する。
セレクタ１３はデータパス制御部５のパス長判定部２２（図３を参照）から出力されたデータパス長設定信号Ｓdplにしたがって前段のロジック部１１と後段のロジック部１１の間にフリップフロップ１２を挿入し、あるいは、前段のロジック部１１と後段のロジック部１１を直結する処理を実施する。
【００１４】
図３はこの発明の実施の形態１による信号処理装置のデータパス制御部５を示す構成図である。
図３において、処理時間格納部２１はクロック供給部６から供給されるクロックの周波数毎に、データパス部４を構成している複数のロジック部１１が演算処理に要する処理時間ＤＴを格納している記録媒体である。
【００１５】
パス長判定部２２は処理制御部１から発行された演算命令ＣＯと、処理制御部１から出力されたデータパス部４における許容処理時間ＰＤＴと、データパス部４を構成している複数のロジック部１１の処理性能とから、データパス部４を構成しているロジック部１１毎の許容処理時間ＰＤＴLを算出し、ロジック部１１毎の許容処理時間ＰＤＴLと処理時間格納部２１により格納されている処理時間ＤＴを比較する処理を実施する。
また、パス長判定部２２はロジック部１１毎の許容処理時間ＰＤＴLと処理時間ＤＴの比較結果を参照して、データパス部４を構成している複数のロジック部１１間の接続箇所毎に、挿入されているフリップフロップ１２を省いて、その接続箇所における前段のロジック部１１と後段のロジック部１１を直結するか否かを判定し、その判定結果を示すデータパス長設定信号Ｓdplをデータパス部４に出力する処理を実施する。なお、パス長判定部２２は直結判定部を構成している。
【００１６】
周波数決定部２３はロジック部１１毎の許容処理時間ＰＤＴLと処理時間ＤＴの比較結果を参照して、データパス部４に供給するクロックの周波数を決定し、その周波数を示す周波数設定信号ＦＳをクロック供給部６に出力する処理を実施する。
【００１７】
次に動作について説明する。
この実施の形態１では、図４に示すように、データパス部４を構成しているロジック部１１が４段であるパイプラインの例を説明する。
また、説明の便宜上、パイプラインにおける１番目のロジック部１１は「ロジックＡ」と称し、２番目のロジック部１１は「ロジックＢ」と称し、３番目のロジック部１１は「ロジックＣ」と称し、４番目のロジック部１１は「ロジックＤ」と称する。
【００１８】
クロック供給部６は、データパス制御部５が指示する周波数のクロックをデータパス部４に供給するが、初期動作時においては、信号処理装置の最高動作周波数のクロックをデータパス部４に供給するものとする。
この実施の形態１では、最高動作周波数として、２００ＭＨｚのクロックをデータパス部４に供給するものとする。
ここで、データパス制御部５の処理時間格納部２１には、図５に示すように、クロック供給部６から供給されるクロックの周波数毎に、データパス部４を構成している複数のロジック部１１が演算処理に要する処理時間ＤＴを格納している。
ただし、図５では、説明の簡単化のため、フリップフロップ１２間のデータパスで考慮すべきセットアップ時間、ホールド時間、クロックスキューなどを考慮しておらず、以降の説明においても考慮しない。
【００１９】
まず、処理制御部１は、データパス部４に対する演算命令ＣＯを発行するとともに、データ転送部３に対するデータ転送指令（例えば、転送対象のデータ、データの転送先／転送元、転送データのサイズなどを特定する命令）を発行する。
また、処理制御部１は、その演算命令ＣＯに対応する演算処理のデータパス部４における許容処理時間ＰＤＴをデータパス制御部５に出力する。
データ転送部３は、処理制御部１から発行されたデータ転送指令を受けると、そのデータ転送指令にしたがってデータメモリ２により格納されているデータをバス７経由でデータパス部４に転送する。
【００２０】
データパス制御部５のパス長判定部２２は、処理制御部１から発行された演算命令ＣＯとデータパス部４における許容処理時間ＰＤＴを受けると、ロジック部１１毎の許容処理時間ＰＤＴLを算出する。
即ち、パス長判定部２２は、処理制御部１から発行された演算命令ＣＯから、各ロジック部１１が実行する演算内容や各演算の実行順序を把握することで、各ロジック部１１の演算負荷を認識し、各ロジック部１１の演算負荷と各ロジック部１１の処理性能（処理性能は予め与えられているものとする）に応じて、データパス部４における許容処理時間ＰＤＴを各ロジック部１１に分配することで、ロジック部１１毎の許容処理時間ＰＤＴLを算出する。
【００２１】
例えば、データパス部４における許容処理時間ＰＤＴが４０ｎｓであるとき、ロジックＡ、ロジックＢ、ロジックＣ及びロジックＤの演算負荷が同一であり、ロジックＡ，Ｃの処理性能がロジックＢ，Ｄの処理性能の３倍であれば、ロジックＡの許容処理時間ＰＤＴLを５ｎｓ、ロジックＢの許容処理時間ＰＤＴLを１５ｎｓ、ロジックＣの許容処理時間ＰＤＴLを５ｎｓ、ロジックＤの許容処理時間ＰＤＴLを１５ｎｓのように算出する。
図６は処理制御部１から発行された演算命令ＣＯに対応する演算処理Ｘ，Ｙ，Ｚと、データパス部４における許容処理時間ＰＤＴ及びロジックＡ〜Ｄにおける許容処理時間ＰＤＴLとの対応関係を示す説明図である。
【００２２】
ここでは、パス長判定部２２がデータパス部４における許容処理時間ＰＤＴからロジック部１１毎の許容処理時間ＰＤＴLを算出するものについて示したが、処理制御部１がデータパス部４における許容処理時間ＰＤＴをパス長判定部２２に出力する代わりに、ロジック部１１毎の許容処理時間ＰＤＴLをパス長判定部２２に出力するようにすれば、パス長判定部２２において、ロジック部１１毎の許容処理時間ＰＤＴLを算出する処理が不要になる。
【００２３】
パス長判定部２２は、データパス部４を構成しているロジック部１１毎の許容処理時間ＰＤＴLを算出すると、ロジック部１１毎の許容処理時間ＰＤＴLと処理時間格納部２１により格納されている処理時間ＤＴを比較し、その比較結果を参照して、データパス部４を構成している複数のロジック部１１間の接続箇所毎に、挿入されているフリップフロップ１２を省いて、その接続箇所における前段のロジック部１１と後段のロジック部１１を直結するか否かを判定する。
具体的には、以下のようにして、前段のロジック部１１と後段のロジック部１１を直結するか否かを判定する。
【００２４】
例えば、処理制御部１から発行された演算命令ＣＯに対応する演算処理がＹである場合、図６に示すように、ロジックＡの許容処理時間ＰＤＴLが３ｎｓ、ロジックＢの許容ＰＤＴLが７ｎｓ、ロジックＣの許容処理時間ＰＤＴLが６ｎｓ、ロジックＤの許容処理時間ＰＤＴLが４ｎｓであり、処理時間格納部２１に格納されている処理時間ＤＴ（２００ＭＨｚのクロックで、ロジック部１１が演算処理する際の処理時間ＤＴ）が５ｎｓである。
この場合の許容処理時間ＰＤＴLと処理時間ＤＴの比較結果は、下記のようになり、ロジックＡの演算処理に要する処理時間ＤＴが許容処理時間ＰＤＴLを２ｎｓだけ超えて、ロジックＢの演算処理に要する処理時間ＤＴが２ｎｓの余裕をもって許容処理時間ＰＤＴLを超えない。
また、ロジックＣの演算処理に要する処理時間ＤＴが１ｎｓの余裕をもって許容処理時間ＰＤＴLを超えず、ロジックＤの演算処理に要する処理時間ＤＴが許容処理時間ＰＤＴLを１ｎｓだけ超える。
【００２５】
許容処理時間ＰＤＴL  処理時間ＤＴ
・ロジックＡ          ３ｎｓ      ＜    ５ｎｓ
・ロジックＢ          ７ｎｓ      ＞    ５ｎｓ
・ロジックＣ          ６ｎｓ      ＞    ５ｎｓ
・ロジックＤ          ３ｎｓ      ＜    ５ｎｓ
【００２６】
したがって、ロジックＡの演算処理は１クロック（１クロック＝５ｎｓ）以内では処理できないが、ロジックＡの後段であるロジックＢの演算処理は２ｎｓの余裕をもって１クロック以内に処理することができ、その２ｎｓの余裕をロジックＡの演算処理に貸し出せば（タイム・ボローイング）、ロジックＡとロジックＢの合計の許容処理時間が１０ｎｓ（＝３ｎｓ＋７ｎｓ）になる。
このとき、ロジックＡとロジックＢの合計の処理時間は１０ｎｓ（＝５ｎｓ＋５ｎｓ）であり、合計の許容処理時間を越えないので、ロジックＡとロジックＢの接続箇所に挿入されているフリップフロップ１２を省いて、ロジックＡとロジックＢを直結すれば、ロジックＡとロジックＢの演算処理を２クロック（２クロック＝１０ｎｓ）で処理することが可能になる。
そこで、パス長判定部２２は、ロジックＡとロジックＢの接続箇所に挿入されているフリップフロップ１２を省いて、ロジックＡとロジックＢを直結する旨の判定を行い、その判定結果を示すデータパス長設定信号Ｓdplをデータパス部４に出力する。
【００２７】
同様に、ロジックＤの演算処理は１クロック以内では処理できないが、ロジックＣの前段であるロジックＢの演算処理は１ｎｓの余裕をもって１クロック以内に処理することができ、その１ｎｓの余裕をロジックＤの演算処理に貸し出せば（タイム・ボローイング）、ロジックＣとロジックＤの合計の許容処理時間が１０ｎｓ（＝６ｎｓ＋４ｎｓ）となる。
このとき、ロジックＣとロジックＤの合計の処理時間は１０ｎｓ（＝５ｎｓ＋５ｎｓ）であり、合計の許容処理時間を越えないので、ロジックＣとロジックＤの接続箇所に挿入されているフリップフロップ１２を省いて、ロジックＣとロジックＤを直結すれば、ロジックＣとロジックＤの演算処理を２クロックで処理することが可能になる。
そこで、パス長判定部２２は、ロジックＣとロジックＤの接続箇所に挿入されているフリップフロップ１２を省いて、ロジックＣとロジックＤを直結する旨の判定を行い、その判定結果を示すデータパス長設定信号Ｓdplをデータパス部４に出力する。
【００２８】
データパス部４のセレクタ１３は、データパス制御部５のパス長判定部２２からデータパス長設定信号Ｓdplを受けると、そのデータパス長設定信号Ｓdplにしたがって、前段のロジック部１１と後段のロジック部１１の間にフリップフロップ１２を挿入し、あるいは、前段のロジック部１１と後段のロジック部１１を直結する。
上述したように、処理制御部１から発行された演算命令ＣＯに対応する演算処理がＹである場合、図７（ａ）に示すように、ロジックＡとロジックＢの接続箇所に挿入されているフリップフロップ１２を省いて、ロジックＡとロジックＢを直結し、また、ロジックＣとロジックＤの接続箇所に挿入されているフリップフロップ１２を省いて、ロジックＣとロジックＤを直結する。
【００２９】
ここでは、処理制御部１から発行された演算命令ＣＯに対応する演算処理がＹである例を示したが、例えば、クロック供給部６から供給されるクロックの周波数が１００ＭＨｚである場合において、処理制御部１から発行された演算命令ＣＯに対応する演算処理がＸであれば、ロジックＡ，Ｃの演算処理に要する処理時間ＤＴが許容処理時間ＰＤＴLを５ｎｓだけ超えて、ロジックＢ，Ｄの演算処理に要する処理時間ＤＴが５ｎｓの余裕をもって許容処理時間ＰＤＴLを超えないので、図７（ａ）に示すように、ロジックＡとロジックＢの接続箇所に挿入されているフリップフロップ１２を省いて、ロジックＡとロジックＢを直結し、また、ロジックＣとロジックＤの接続箇所に挿入されているフリップフロップ１２を省いて、ロジックＣとロジックＤを直結する。
【００３０】
また、クロック供給部６から供給されるクロックの周波数が５０ＭＨｚである場合において、処理制御部１から発行された演算命令ＣＯに対応する演算処理がＺであれば、ロジックＣの演算処理に要する処理時間ＤＴが許容処理時間ＰＤＴLを１５ｎｓだけ超えて、ロジックＡ，Ｂの演算処理に要する処理時間ＤＴがそれぞれ１０ｎｓ，５ｎｓの余裕をもって許容処理時間ＰＤＴLを超えないので、図７（ｂ）に示すように、ロジックＡとロジックＢとロジックＣの接続箇所に挿入されているフリップフロップ１２を省いて、ロジックＡとロジックＢとロジックＣを直結する。
【００３１】
データパス制御部５の周波数決定部２３は、パス長判定部２２と同様にして、ロジック部１１毎の許容処理時間ＰＤＴLと処理時間ＤＴを比較し、その比較結果を参照して、データパス部４に供給するクロックの周波数を決定し、その周波数を示す周波数設定信号ＦＳをクロック供給部６に出力する。
例えば、処理制御部１から発行された演算命令ＣＯに対応する演算処理がＹであれば、上述したように、ロジックＡとロジックＢを直結し、ロジックＣとロジックＤを直結するが、この場合、前段ロジック（ロジックＡ＋ロジックＢ）の処理時間が５ｎｓになり、後段ロジック（ロジックＣ＋ロジックＤ）の処理時間が５ｎｓになる。
【００３２】
このため、クロック供給部６から供給されるクロックの周波数を２００ＭＨｚから１００ＭＨｚに変更しても、前段ロジック（ロジックＡ＋ロジックＢ）及び後段ロジック（ロジックＣ＋ロジックＤ）の処理時間のそれぞれが１０ｎｓ（＝５ｎｓ×２）になり、周波数が１００ＭＨｚであるときのロジック部１１の処理時間ＤＴ（図５を参照：１０ｎｓ）を超えない。
したがって、前段ロジック（ロジックＡ＋ロジックＢ）及び後段ロジック（ロジックＣ＋ロジックＤ）のそれぞれが１クロック（１クロック＝１０ｎｓ）で処理することが可能であり、データパス部４の全体で、２クロック（２クロック＝２０ｎｓ）で処理することができるため、処理制御部１から出力されたデータパス部４における許容処理時間ＰＤＴである２０ｎｓを超えずに、その許容処理時間ＰＤＴを満足する。
【００３３】
そこで、周波数決定部２３は、クロック供給部６から供給されるクロックの周波数を２００ＭＨｚから１００ＭＨｚに変更しても、処理制御部１から出力されたデータパス部４における許容処理時間ＰＤＴを満足するので、データパス部４に供給するクロックの周波数を１００ＭＨｚに決定し、その周波数を示す周波数設定信号ＦＳをクロック供給部６に出力する。
【００３４】
なお、クロック供給部６から供給されるクロックの周波数を２００ＭＨｚから５０ＭＨｚに変更すると、データパス部４の全体の処理時間が４０ｎｓとなり、処理制御部１から出力されたデータパス部４における許容処理時間ＰＤＴである２０ｎｓを超えてしまって、その許容処理時間ＰＤＴを満足しない。
そのため、周波数決定部２３は、データパス部４に供給するクロックの周波数を５０ＭＨｚには決定しない。
【００３５】
以上で明らかなように、この実施の形態１によれば、データパス部４を構成している複数のロジック部１１が演算処理に要する処理時間ＤＴを格納している処理時間格納部２１と、処理制御部１から発行された演算命令ＣＯに対応する演算処理の各ロジック部１１における許容処理時間ＰＤＴLと処理時間格納部２１により格納されている処理時間ＤＴを比較し、その許容処理時間ＰＤＴLと処理時間ＤＴの比較結果を参照して、データパス部４を構成している複数のロジック部１１間の接続箇所毎に、挿入されているフリップフロップ１２を省いて、その接続箇所における前段のロジック部１１と後段のロジック部１１を直結するか否かを判定するパス長判定部２２とを設け、セレクタ１３がパス長判定部２２により直結する旨の判定がなされた接続箇所では、挿入されているフリップフロップ１２を省いて、その接続箇所における前段のロジック部１１と後段のロジック部１１を直結するように構成したので、所望の処理性能を満足した上で、低消費電力化を図ることができる効果を奏する。
【００３６】
また、この実施の形態１によれば、処理制御部１から発行された演算命令ＣＯに対応する演算処理の各ロジック部１１における許容処理時間ＰＤＴLと処理時間格納部２１により格納されている処理時間ＤＴを比較し、その許容処理時間ＰＤＴと処理時間ＤＴの比較結果を参照して、データパス部４に供給するクロックの周波数を決定する周波数決定部２３を設け、クロック供給部６が周波数決定部２３により決定された周波数のクロックをデータパス部４に供給するように構成したので、クロックの周波数を必要に応じて下げることが可能になり、更なる消費電力の削減を図ることができる効果を奏する。
【００３７】
なお、この実施の形態１では、ロジックＡ〜Ｄにおける許容処理時間ＰＤＴLが異なっているものについて示したが（図６を参照）、図８に示すように、ロジックＡ〜Ｄにおける許容処理時間ＰＤＴLが同一である場合、全てのロジックＡ〜Ｄにおける演算処理の余裕が同一になるため、他のロジック部１１に演算処理の余裕を貸し出す余地がない。
そこで、ロジックＡ〜Ｄにおける許容処理時間ＰＤＴLが同一である場合、パス長判定部２２がデータパス長を変更せずに、周波数決定部２３がデータパス部４における許容処理時間ＰＤＴのみを考慮して、データパス部４に供給するクロックの周波数を決定するようにする。
【００３８】
例えば、処理制御部１から発行された演算命令ＣＯに対応する演算処理がＺである場合、データパス部４における許容処理時間ＰＤＴが８０ｎｓであり、ロジックＡ〜Ｄが演算処理に要する処理時間ＤＴが２０ｎｓでも、その許容処理時間ＰＤＴを満足するので、データパス部４に供給するクロックの周波数を５０ＭＨｚに決定する（図５を参照する）。
この場合、パス長判定部２２は、前段のロジック部と後段のロジック部を直結するか否かを判定しないので、図９に示すように、フリップフロップ１２が挿入されている状態が維持される。
【００３９】
実施の形態２．
図１０はこの発明の実施の形態２による信号処理装置のデータパス制御部５を示す構成図であり、図において、図３と同一符号は同一又は相当部分を示すので説明を省略する。
単位処理時間格納部２４はデータパス部４を構成している複数のロジック部１１が演算処理（単位処理：例えば、加算、減算、乗算、減算）を実行する際に要する処理時間ＤＴを格納している記録媒体である。
なお、単位処理時間格納部２４により格納される処理時間ＤＴは、例えば、信号処理装置の初期動作時に各ロジック部１１が演算処理（単位処理：例えば、加算、減算、乗算、減算）を一度実行することで得られる。
【００４０】
遅延余裕時間算出部２５は処理制御部１から発行された演算命令ＣＯ（例えば、演算内容、各演算の実行順序など）から、データパス部４を構成している各ロジック部１１が行う演算処理を特定し、単位処理時間格納部２４から各ロジック部１１が行う演算処理に要する処理時間ＤＴを取得する処理を実施する。
また、遅延余裕時間算出部２５はデータパス部４を構成している複数のロジック部１１毎に、当該ロジック部１１における許容処理時間ＰＤＴL（＝処理制御部１から出力されたデータパス部４における許容処理時間ＰＤＴ／データパス部４を構成しているロジック部１１の個数）から処理時間ＤＴ（当該ロジック部１１が演算する単位処理の処理時間）を減算して遅延余裕時間ＤＳＴを算出する処理を実施する。
【００４１】
パス長判定部２６は遅延余裕時間算出部２５により算出された遅延余裕時間ＤＳＴが正値であるロジック部１１と遅延余裕時間が負値であるロジック部１１が接続されている箇所があるとき、その接続箇所における前段のロジック部１１と後段のロジック部１１の合計の遅延余裕時間ＤＳＴが正値であれば、その接続箇所に挿入されているフリップフロップ１２を省いて、その接続箇所における前段のロジック部１１と後段のロジック部１１を直結する旨の判定を行い、その判定結果を示すデータパス長設定信号Ｓdplをデータパス部４に出力する処理を実施する。なお、パス長判定部２６は直結判定部を構成している。
周波数決定部２７は遅延余裕時間算出部２５により算出された遅延余裕時間ＤＳＴを参照して、データパス部４に供給するクロックの周波数を決定し、その周波数を示す周波数設定信号ＦＳをクロック供給部６に出力する処理を実施する。
【００４２】
次に動作について説明する。
この実施の形態２でも、上記実施の形態１と同様に、データパス部４を構成しているロジック部１１が４段であるパイプラインの例を説明する。
データパス制御部５の単位処理時間格納部２４には、データパス部４を構成しているロジックＡ〜Ｄが演算処理（単位処理：例えば、加算、減算、乗算、減算）を実行する際に要する処理時間ＤＴが格納されている。
図１１は単位処理時間格納部２４における処理時間ＤＴの格納例を示す説明図である。
図１１では、例えば、単位処理が“加算”である場合、ロジックＡ，Ｂの処理時間ＤＴが５ｎｓ、ロジックＣの処理時間ＤＴが７．５ｎｓ、ロジックＤの処理時間ＤＴが１０ｎｓである例を示している。
【００４３】
クロック供給部６は、データパス制御部５が指示する周波数のクロックをデータパス部４に供給するが、初期動作時においては、信号処理装置の最高動作周波数のクロックをデータパス部４に供給するものとする。
この実施の形態２では、最高動作周波数として、２００ＭＨｚのクロックをデータパス部４に供給するものとする。
【００４４】
まず、処理制御部１は、データパス部４に対する演算命令ＣＯ（例えば、演算内容、各演算の実行順序など）を発行するとともに、データ転送部３に対するデータ転送指令を発行する。
また、処理制御部１は、その演算命令ＣＯに対応する演算処理のデータパス部４における許容処理時間ＰＤＴをデータパス制御部５に出力する。
データ転送部３は、処理制御部１から発行されたデータ転送指令を受けると、そのデータ転送指令にしたがってデータメモリ２により格納されているデータをバス７経由でデータパス部４に転送する。
【００４５】
データパス制御部５の遅延余裕時間算出部２５は、処理制御部１から発行された演算命令ＣＯ（例えば、演算内容、各演算の実行順序など）と許容処理時間ＰＤＴを受けると、その演算命令ＣＯを参照して、データパス部４を構成しているロジックＡ〜Ｄが行う演算処理を特定する。
ここで、図１２は処理制御部１から発行された演算命令ＣＯに対応する演算処理と、ロジックＡ〜Ｄが行う演算処理（単位処理）と、許容処理時間ＰＤＴとの対応関係を示す説明図である。
図１２では、例えば、演算命令ＣＯに対応する演算処理がＸである場合、ロジックＡが加算処理、ロジックＢが乗算処理、ロジックＣが減算処理、ロジックＤが加算処理を行う例を示している。
【００４６】
遅延余裕時間算出部２５は、ロジックＡ〜Ｄが行う演算処理を特定すると、単位処理時間格納部２４からロジックＡ〜Ｄが行う演算処理に要する処理時間ＤＴを取得する。
演算命令ＣＯに対応する演算処理がＸである場合、ロジックＡが加算処理、ロジックＢが乗算処理、ロジックＣが減算処理、ロジックＤが加算処理を行うので、ロジックＡの処理時間ＤＴは５ｎｓ、ロジックＢの処理時間ＤＴは１０ｎｓ、ロジックＣの処理時間ＤＴは７．５ｎｓ、ロジックＤの処理時間ＤＴは１０ｎｓとなる。
【００４７】
演算命令ＣＯに対応する演算処理がＹである場合、ロジックＡが乗算処理、ロジックＢが減算処理、ロジックＣが加算処理、ロジックＤが除算処理を行うので、ロジックＡの処理時間ＤＴは１０ｎｓ、ロジックＢの処理時間ＤＴは５ｎｓ、ロジックＣの処理時間ＤＴは７．５ｎｓ、ロジックＤの処理時間ＤＴは３０ｎｓとなる。
また、演算命令ＣＯに対応する演算処理がＺである場合、ロジックＡが減算処理、ロジックＢが乗算処理、ロジックＣが乗算処理、ロジックＤが減算処理を行うので、ロジックＡの処理時間ＤＴは５ｎｓ、ロジックＢの処理時間ＤＴは１０ｎｓ、ロジックＣの処理時間ＤＴは１５ｎｓ、ロジックＤの処理時間ＤＴは１０ｎｓとなる。
【００４８】
また、遅延余裕時間算出部２５は、処理制御部１から出力されたデータパス部４における許容処理時間ＰＤＴから、ロジックＡ〜Ｄにおける許容処理時間ＰＤＴLを算出する。
例えば、処理制御部１から出力されたデータパス部４における許容処理時間ＰＤＴをロジックＡ〜Ｄの個数（＝４）で除算することで、ロジックＡ〜Ｄにおける許容処理時間ＰＤＴLを算出する。
図１２の例では、演算命令ＣＯに対応する演算処理がＸである場合、データパス部４における許容処理時間ＰＤＴが４０ｎｓであるため、ロジックＡ〜Ｄにおける許容処理時間ＰＤＴLが１０ｎｓ（＝４０ｎｓ／４）になっている。
また、演算命令ＣＯに対応する演算処理がＹである場合、データパス部４における許容処理時間ＰＤＴが６０ｎｓであるため、ロジックＡ〜Ｄにおける許容処理時間ＰＤＴLが１５ｎｓ（＝６０ｎｓ／４）になっている。
また、演算命令ＣＯに対応する演算処理がＺである場合、データパス部４における許容処理時間ＰＤＴが８０ｎｓであるため、ロジックＡ〜Ｄにおける許容処理時間ＰＤＴLが２０ｎｓ（＝８０ｎｓ／４）になっている。
【００４９】
遅延余裕時間算出部２５は、単位処理時間格納部２４からロジックＡ〜Ｄが行う演算処理に要する処理時間ＤＴを取得し、ロジックＡ〜Ｄにおける許容処理時間ＰＤＴLを算出すると、ロジックＡ〜Ｄにおける許容処理時間ＰＤＴLから処理時間ＤＴを減算して遅延余裕時間ＤＳＴを算出する。
（１）演算命令ＣＯに対応する演算処理がＸである場合
ロジックＡの遅延余裕時間ＤＳＴ＝１０ｎｓ−    ５ｎｓ＝    ５ｎｓ
ロジックＢの遅延余裕時間ＤＳＴ＝１０ｎｓ−  １０ｎｓ＝    ０ｎｓ
ロジックＣの遅延余裕時間ＤＳＴ＝１０ｎｓ−７．５ｎｓ＝２．５ｎｓ
ロジックＤの遅延余裕時間ＤＳＴ＝１０ｎｓ−  １０ｎｓ＝    ０ｎｓ
【００５０】
（２）演算命令ＣＯに対応する演算処理がＹである場合
ロジックＡの遅延余裕時間ＤＳＴ＝１５ｎｓ−  １０ｎｓ＝    ５ｎｓ
ロジックＢの遅延余裕時間ＤＳＴ＝１５ｎｓ−    ５ｎｓ＝  １０ｎｓ
ロジックＣの遅延余裕時間ＤＳＴ＝１５ｎｓ−７．５ｎｓ＝７．５ｎｓ
ロジックＤの遅延余裕時間ＤＳＴ＝１５ｎｓ−  ３０ｎｓ＝−１５ｎｓ
【００５１】
（３）演算命令ＣＯに対応する演算処理がＺである場合
ロジックＡの遅延余裕時間ＤＳＴ＝２０ｎｓ−  ５ｎｓ＝１５ｎｓ
ロジックＢの遅延余裕時間ＤＳＴ＝２０ｎｓ−１０ｎｓ＝１０ｎｓ
ロジックＣの遅延余裕時間ＤＳＴ＝２０ｎｓ−１５ｎｓ＝  ５ｎｓ
ロジックＤの遅延余裕時間ＤＳＴ＝２０ｎｓ−１０ｎｓ＝１０ｎｓ
【００５２】
パス長判定部２６は、遅延余裕時間算出部２５がロジックＡ〜Ｄの遅延余裕時間ＤＳＴを算出すると、その遅延余裕時間ＤＳＴが正値であるロジック部１１と遅延余裕時間が負値であるロジック部１１が接続されている箇所がある場合、その接続箇所における前段のロジック部１１と後段のロジック部１１の合計の遅延余裕時間ＤＳＴが正値であれば、その接続箇所に挿入されているフリップフロップ１２を省いて、前段のロジック部１１と後段のロジック部１１を直結する旨の判定を行う。
具体的には、以下のようにして、前段のロジック部１１と後段のロジック部１１を直結するか否かを判定する。
【００５３】
処理制御部１から発行された演算命令ＣＯに対応する演算処理がＸである場合、ロジックＡ〜Ｄの遅延余裕時間ＤＳＴの全てが正値（プラスの値：許容処理時間ＰＤＴL≧処理時間ＤＴ）であり、ロジックＡ〜Ｄの演算処理に余裕があるので、データパス長を変更する必要がない。
このため、パス長判定部２６は、パイプラインに挿入されている全てのフリップフロップ１２の挿入を維持する旨の判定を行い、その判定結果を示すデータパス長設定信号Ｓdplをデータパス部４に出力する。
これにより、データパス部４のセレクタ１３は、図１３（ａ）に示すように、全てのフリップフロップ１２の挿入を維持する。
【００５４】
なお、周波数決定部２７は、遅延余裕時間算出部２５により算出されたロジックＡ〜Ｄの遅延余裕時間ＤＳＴを参照して、データパス部４に供給するクロックの周波数を決定し、その周波数を示す周波数設定信号ＦＳをクロック供給部６に出力するが、演算命令ＣＯに対応する演算処理がＸである場合、上述したように、ロジックＡ〜Ｄの演算処理の全てに余裕があるものの、データパス部４に供給するクロックの周波数を２００ＭＨｚから１００ＭＨｚに下げると、データパス部４の処理時間が全体の処理許容時間ＰＤＴを越えてしまうので、周波数の変更は行わない。
【００５５】
処理制御部１から発行された演算命令ＣＯに対応する演算処理がＹである場合、ロジックＡ〜Ｃの遅延余裕時間ＤＳＴが正値であるが、ロジックＤの遅延余裕時間ＤＳＴが負値（マイナスの値：許容処理時間ＰＤＴL＜処理時間ＤＴ）であり、ロジックＡ〜Ｃの遅延余裕時間ＤＳＴ（２２．５ｎｓ＝５ｎｓ＋１０ｎｓ＋７．５）をロジックＤの演算処理に貸し出せば、ロジックＤの演算処理が可能になるので、ロジックＡ〜Ｄの接続箇所に挿入されているフリップフロップ１２を省いて、ロジックＡ〜Ｄを直結する旨の判定を行い、その判定結果を示すデータパス長設定信号Ｓdplをデータパス部４に出力する。
これにより、データパス部４のセレクタ１３は、図１３（ｂ）に示すように、ロジックＡ〜Ｄの接続箇所に挿入されているフリップフロップ１２を省いて、ロジックＡ〜Ｄを直結している。
【００５６】
なお、周波数決定部２７は、データパス部４のセレクタ１３がロジックＡ〜Ｄを直結することで、ロジックＤの演算処理を可能にしているが、データパス部４に供給するクロックの周波数を２００ＭＨｚから１００ＭＨｚに下げると、データパス部４の処理時間が全体の処理許容時間ＰＤＴを越えてしまうので、周波数の変更は行わない。
【００５７】
処理制御部１から発行された演算命令ＣＯに対応する演算処理がＺである場合、ロジックＡ〜Ｄの遅延余裕時間ＤＳＴの全てが正値であり、ロジックＡ〜Ｄの演算処理に余裕があるので、データパス長を変更する必要がない。
ただし、ロジックＣの遅延余裕時間ＤＳＴ（＝５ｎｓ）が、ロジックＡ，Ｂ，Ｄの遅延余裕時間ＤＳＴ（＝１５ｎｓ，１０ｎｓ，１０ｎｓ）より少ないので、ロジックＡ〜Ｃの接続箇所に挿入されているフリップフロップ１２を省いて、ロジックＡ〜Ｄの演算処理における遅延を均等にするようにしてもよい。
この場合、ロジックＡ〜Ｃの接続箇所に挿入されているフリップフロップ１２を省いて、ロジックＡ〜Ｃを直結する旨の判定を行い、その判定結果を示すデータパス長設定信号Ｓdplをデータパス部４に出力する。
これにより、データパス部４のセレクタ１３は、図１３（ｃ）に示すように、ロジックＡ〜Ｃの接続箇所に挿入されているフリップフロップ１２を省いて、ロジックＡ〜Ｃを直結し、ロジックＣ〜Ｄ間のフリップフロップ１２の挿入を維持する。
【００５８】
なお、周波数決定部２７は、データパス部４のセレクタ１３がロジックＡ〜Ｃを直結することで、ロジックＡ〜Ｄの演算処理における遅延を均等にしているが、データパス部４に供給するクロックの周波数を２００ＭＨｚから１００ＭＨｚに下げても、データパス部４の処理時間（８０ｎｓ＝４０ｎｓ×２）が全体の処理許容時間ＰＤＴ（＝８０ｎｓ）を越えないので、データパス部４に供給するクロックの周波数を１００ＭＨｚに設定し、その周波数を示す周波数設定信号ＦＳをクロック供給部６に出力する。
これにより、データパス部４は、１００ＭＨｚのクロックに同期して演算処理を実施するようになる。
【００５９】
以上で明らかなように、この実施の形態２によれば、データパス部４を構成している複数のロジック部１１毎に、当該ロジック部１１における許容処理時間ＰＤＴLから、当該ロジック部１１が演算する単位処理の処理時間ＤＴを減算して遅延余裕時間ＤＳＴを算出する遅延余裕時間算出部２５を設け、パス長判定部２６が、遅延余裕時間算出部２５により算出された遅延余裕時間ＤＳＴが正値であるロジック部１１と遅延余裕時間が負値であるロジック部１１が接続されている箇所があるとき、その接続箇所における前段のロジック部１１と後段のロジック部１１の合計の遅延余裕時間ＤＳＴが正値であれば、その接続箇所に挿入されているフリップフロップ１２を省いて、その接続箇所における前段のロジック部１１と後段のロジック部１１を直結する旨の判定を行うように構成したので、製造バラつきによる性能劣化が生じても、適正な動作を確保することができる効果を奏する。
また、規定電圧による初期動作を想定して設計し、実際に初期動作をさせてから低電圧で動作させるような場合に生じる低電圧バラつきの影響も抑えることが可能である。
【００６０】
実施の形態３．
上記実施の形態１，２では、信号処理装置が処理制御部１、データメモリ２、データ転送部３、データパス部４、データバス制御部５及びクロック供給部６から構成されているものを示したが、図１４に示すように、処理制御部１、データメモリ２、データ転送部３、データパス部４、データバス制御部５及びクロック供給部６から構成されている処理ユニット３０をバス７に対して複数個並列に接続し、複数の処理ユニット３０が並列に動作するようにしてもよい。
これにより、多様な演算処理を並列に実行することが可能になる。
【００６１】
図１４の例では、データメモリ２が処理ユニット３０内に含まれているものを示しているが、データメモリ２を処理ユニット３０内に実装せずに、バス７に接続されている全ての処理ユニット３０のデータ転送部３がアクセス可能な１以上のデータメモリ２をバス７に接続するようにしてもよい。
【符号の説明】
【００６２】
１  処理制御部、２  データメモリ、３  データ転送部、４  データパス部、５  データパス制御部、６  クロック供給部、７  バス、１１  ロジック部、１２  フリップフロップ、１３  セレクタ、２１  処理時間格納部、２２  パス長判定部（直結判定部）、２３  周波数決定部、２４  単位処理時間格納部、２５  遅延余裕時間算出部、２６  パス長判定部（直結判定部）、２７  周波数決定部、３０  処理ユニット。
【図１】
2011108020.tif 000003
【図２】
2011108020.tif 000004
【図３】
2011108020.tif 000005
【図４】
2011108020.tif 000006
【図５】
2011108020.tif 000007
【図６】
2011108020.tif 000008
【図７】
2011108020.tif 000009
【図８】
2011108020.tif 000010
【図９】
2011108020.tif 000011
【図１０】
2011108020.tif 000012
【図１１】
2011108020.tif 000013
【図１２】
2011108020.tif 000014
【図１３】
2011108020.tif 000015
【図１４】
2011108020.tif 000016