(57)【要約】【課題】  外部同期システムにより要求される処理性能を保証しつつ、消費電力を低減できる半導体集積回路を提供する。【解決手段】  論理回路１の演算が終了したことを終了検出回路３により検出し、終了信号を生成する。終了信号はフリップフロップ２へ供給され、論理回路１に次の入力が与えられる。終了信号はまた速度比較器８に供給される。速度比較器は、終了信号の生成速度と外部から供給されるシステムクロックの速度とを比較し、比較結果を動作条件制御回路４へ供給する。動作条件制御回路４は、比較結果に基づいて論理回路１の演算処理速度を制御すべく動作条件を制御する。こうして、論理回路１の平均演算処理速度はシステムクロック速度に一致し、外部回路からの要求性能を実現しつつ、待ち時間をなくして消費電力を低減することができる。【選択図】図３
2008192040.tif 000002
【特許請求の範囲】
【請求項１】
所定の演算を行う論理回路と、
該論理回路の出力に基づいて前記所定の演算が終了したことを検知し、終了信号を生成し出力する終了検出回路と、
外部から供給されるシステムクロックのクロック速度と前記終了信号の生成速度とを比較する比較器と、
該比較器の比較結果に基づいて前記論理回路の演算処理速度を制御する制御回路と、
を備えることを特徴とする半導体集積回路。
【請求項２】
前記論理回路の出力に基づいて演算エラーの発生を検知し、エラー信号を生成し出力するエラー検出回路と、
前記終了信号と前記エラー信号とのＯＲを求め、ＯＲ信号を出力するＯＲ回路と、をさらに備え、
前記終了信号に代えて前記ＯＲ信号を前記比較器に供給するようにしたことを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記比較器に入力される前記終了信号又は前記ＯＲ信号及び前記システムクロックを所定の分周比で夫々分周する一対の分周器を備え、
該一対の分周器からの分周された前記終了信号又は前記ＯＲ信号及び分周された前記システムクロックを前記比較器において比較するようにしたことを特徴とする請求項１又は２に記載の半導体集積回路。
【請求項４】
前記一対の分周器の分周比を可変としたことを特徴とする請求項３に記載の半導体集積回路。
【請求項５】
前記比較器が、入力される前記終了信号又は前記ＯＲ信号及び前記システムクロックとを夫々カウントする一対のカウンタと、
該一対のカウンタの一方が設定値に達したときに前記一対のカウンタのカウント値の差分を求める差分器とを備え、
前記制御回路が前記差分に基づいて前記論理回路の演算処理速度を制御するようにしたことを特徴とする請求項１又は２に記載の半導体集積回路。
【請求項６】
前記一対のカウンタの設定値を可変としたことを特徴とする請求項５に記載の半導体集積回路。
【請求項７】
前記制御回路が前記論理回路の電源電圧を制御することにより前記演算処理速度を制御することを特徴とする請求項１乃至６のいずれか一つに記載の半導体集積回路。
【請求項８】
前記制御回路が前記論理回路の基板電圧を制御することにより前記演算処理速度を制御することを特徴とする請求項１乃至６のいずれか一つに記載の半導体集積回路。
【請求項９】
所定の演算を行う論理回路の演算処理速度を制御するための動作条件制御方法において、
前記論理回路の出力に基づいて前記所定の演算が終了したことを検知して終了信号を生成し、
外部から供給されるシステムクロックのクロック速度と前記終了信号の生成速度とを比較し、
比較結果に基づいて前記論理回路の演算処理速度を制御する
ことを特徴とする動作条件制御方法。
【請求項１０】
前記論理回路の出力に基づいて演算エラーの発生を検知してエラー信号を生成し、
前記終了信号と前記エラー信号とのＯＲを求めてＯＲ信号を生成し、
前記終了信号に代えて前記ＯＲ信号の生成速度を前記システムクロックのクロック速度と比較するようにした
ことを特徴とする請求項１に記載の動作条件制御方法。
【請求項１１】
前記システムクロックの複数周期に１度の割合で、前記終了信号又は前記ＯＲ信号の生成速度と前記システムクロックのクロック速度とを比較するようにしたことを特徴とする請求項９又は１０に記載の動作条件制御方法。
【請求項１２】
前記終了信号又は前記ＯＲ信号と前記システムクロックとを所定の分周比で夫々分周し、分周された前記終了信号又は前記ＯＲ信号と分周された前記システムクロックとに基づいて、前記終了信号又は前記ＯＲ信号の生成速度と前記システムクロックのクロック速度とを比較するようにしたことを特徴とする請求項１１に記載の動作条件制御方法。
【請求項１３】
前記分周比を動作中に変更することを特徴とする請求項１２に記載の動作条件制御方法。
【請求項１４】
前記終了信号又は前記ＯＲ信号と前記システムクロックとを夫々カウントし、いずれかのカウント値が設定値に達したときに前記終了信号又は前記ＯＲ信号をカウントした値と前記外部システムクロックとをカウントした値との差分を求め、該差分を前記比較結果とすることを特徴とする請求項１１に記載の動作条件制御方法。
【請求項１５】
前記設定値を動作中に変更することを特徴とする請求項１４に記載の動作条件制御方法。
【請求項１６】
前記論理回路の電源電圧を制御することによって前記演算処理速度を制御することを特徴とする請求項９乃至１５のいずれか一つに記載の動作条件制御方法。
【請求項１７】
前記論理回路の基板電圧を制御することによって前記演算処理速度を制御することを特徴とする請求項９乃至１５のいずれか一つに記載の動作条件制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部同期システムより要求される処理性能を保証しつつ、消費電力を低減することができる半導体集積回路及びそのための動作条件制御方法に関する。
【背景技術】
【０００２】
従来の半導体集積回路は、外部から供給される一定周期のシステムクロックに同期して動作するように構成されている。つまり、従来の半導体集積回路は、最小のクリティカルパス遅延時間に必要なマージンを加えた時間が、システムクロック周期以下となるように構成されている。
【０００３】
また、消費電力を低減するため、モジュールごとに供給するクロック及び電源電圧を制御するようにした半導体集積回路も存在する（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開平１０−１８７３００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の半導体集積回路は、最長のクリティカルパス遅延時間が外部から供給されるシステムクロックの周期よりも短くなるように構成されている。このため、最長クリティカルパスよりも短いパスを通る演算処理が行なわれた場合には、次のクロックが入力されるまでの間、待ち時間が発生する。
【０００６】
また、従来の半導体集積回路は、正常な動作を保証するため、製造ばらつき等による特性変動を考慮して、最長のクリティカルパス遅延時間にマージンを加えた時間がクロック周期よりも短くなるように構成されている。したがって、従来の半導体集積回路は、最長クリティカルパスを通る演算処理が行なわれた場合であっても、通常、次のクロックが入力されるまでの間に待ち時間が発生する。
【０００７】
図１１は、従来の半導体集積回路における演算処理サイクルと各サイクルにおける処理に要する時間との関係の一例を示すグラフである。
【０００８】
図１１において、各サイクルは実線で示すクロック周期に等しい。クロック周期は、破線で示す最大遅延パスにおける処理時間に必要なマージンを加えたものに等しい。各サイクルにおけるグラフ（ハッチ部分）の上方のクロック周期までの時間が、各処理サイクルにおいて発生する待ち時間である。図１１から容易に理解されるように、従来の半導体装置における待ち時間の合計は無視できない長さである。従来の半導体集積回路は、この待ち時間の間、無駄に電力を消費しているという問題点がある。
【０００９】
また、特許文献１に記載された半導体集積回路は、各モジュールの前段にＦＩＦＯメモリを設け、このＦＩＦＯメモリのデータ記憶量に基づいて対応するモジュールの動作周波数と電源電圧とを定めるようにしている。つまり、この半導体集積回路は、モジュールにおいて実際の処理に要する時間に基づいて動作周波数を定めるものではない。それゆえ、設定された動作周期と処理に要する時間との間には必然的に差が生じる。この差は、半導体集積回路が正常に動作するためには、設定された動作周期の方が実際の処理に要する時間よりも長くなければならないために発生する。こうして、この半導体集積回路においても、待ち時間が生じ、無駄な電力消費がなされることになる。
【００１０】
そこで、本発明は、外部同期システムより要求される処理性能を保証しつつ、マージンを含む待ち時間をなくすことで、消費電力をより低減させることができる半導体装置を提供することを目的とする。
【００１１】
また、本発明は、半導体集積回路の消費電力をより低減するための、論理回路の演算処理速度を制御するための動作条件制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の要旨に係る半導体集積回路は、所定の演算を行う論理回路と、該論理回路の出力に基づいて前記所定の演算が終了したことを検知し、終了信号を生成し出力する終了検出回路と、外部から供給されるシステムクロックのクロック速度と前記終了信号の生成速度とを比較する比較器と、該比較器の比較結果に基づいて前記論理回路の演算処理速度を制御する制御回路と、を備えることを特徴とする。
【００１３】
本発明の第２の要旨に係る半導体集積回路は、第１の要旨に係る半導体集積回路において、前記論理回路の出力に基づいて演算エラーの発生を検知し、エラー信号を生成し出力するエラー検出回路と、前記終了信号と前記エラー信号とのＯＲを求め、ＯＲ信号を出力するＯＲ回路と、をさらに備え、前記終了信号に代えて前記ＯＲ信号を前記比較器に供給するようにしたことを特徴とする。
【００１４】
本発明の第３の要旨に係る半導体集積回路は、第１又は第２の要旨に係る半導体集積回路において、前記比較器に入力される前記終了信号又は前記ＯＲ信号及び前記システムクロックを所定の分周比で夫々分周する一対の分周器を備え、該一対の分周器からの分周された前記終了信号又は前記ＯＲ信号及び分周された前記システムクロックを前記比較器において比較するようにしたことを特徴とする。
【００１５】
本発明の第４の要旨に係る半導体集積回路は、第３の要旨に係る半導体集積回路において、前記一対の分周器の分周比を可変としたことを特徴とする。
【００１６】
本発明の第５の要旨に係る半導体集積回路は、第１又は第２の要旨に係る半導体集積回路において、前記比較器が、入力される前記終了信号又は前記ＯＲ信号及び前記システムクロックとを夫々カウントする一対のカウンタと、該一対のカウンタの一方が設定値に達したときに前記一対のカウンタのカウント値の差分を求める差分器とを備え、前記制御回路が前記差分に基づいて前記論理回路の演算処理速度を制御するようにしたことを特徴とする。
【００１７】
本発明の第６の要旨に係る半導体集積回路は、第５の要旨に係る半導体集積回路において、前記一対のカウンタの設定値を可変としたことを特徴とする。
【００１８】
本発明の第７の要旨に係る半導体集積回路は、第１乃至第６のいずれかの要旨に係る半導体集積回路において、前記制御回路が前記論理回路の電源電圧を制御することにより前記演算処理速度を制御することを特徴とする。
【００１９】
本発明の第８の要旨に係る半導体集積回路は、第１乃至第６の要旨に係る半導体集積回路において、前記制御回路が前記論理回路の基板電圧を制御することにより前記演算処理速度を制御することを特徴とする。
【００２０】
本発明の第９の要旨に係る動作条件制御方法は、所定の演算を行う論理回路の演算処理速度を制御するための動作条件制御方法である。この動作条件制御方法は、前記論理回路の出力に基づいて前記所定の演算が終了したことを検知して終了信号を生成し、外部から供給されるシステムクロックのクロック速度と前記終了信号の生成速度とを比較し、比較結果に基づいて前記論理回路の演算処理速度を制御することを特徴とする。
【００２１】
本発明の第１０の要旨に係る動作条件制御方法は、第９の要旨に係る動作条件制御方法において、前記論理回路の出力に基づいて演算エラーの発生を検知してエラー信号を生成し、前記終了信号と前記エラー信号とのＯＲを求めてＯＲ信号を生成し、前記終了信号に代えて前記ＯＲ信号の生成速度を前記システムクロックのクロック速度と比較するようにしたことを特徴とする。
【００２２】
本発明の第１１の要旨に係る動作条件制御方法は、第９又は第１０の要旨に係る動作条件制御方法において、前記システムクロックの複数周期に１度の割合で、前記終了信号又は前記ＯＲ信号の生成速度と前記システムクロックのクロック速度とを比較するようにしたことを特徴とする。
【００２３】
本発明の第１２の要旨に係る動作条件制御方法は、第１１の要旨に係る動作条件制御方法において、前記終了信号又は前記ＯＲ信号と前記システムクロックとを所定の分周比で夫々分周し、分周された前記終了信号又は前記ＯＲ信号と分周された前記システムクロックとに基づいて、前記終了信号又は前記ＯＲ信号の生成速度と前記システムクロックのクロック速度とを比較するようにしたことを特徴とする。
【００２４】
本発明の第１３の要旨に係る動作条件制御方法は、第１２の要旨に係る動作条件制御方法において、前記分周比を動作中に変更することを特徴とする。
【００２５】
本発明の第１４の要旨に係る動作条件制御方法は、第１１の要旨に係る動作条件制御方法において、前記終了信号又は前記ＯＲ信号と前記システムクロックとを夫々カウントし、いずれかのカウント値が設定値に達したときに前記終了信号又は前記ＯＲ信号をカウントした値と前記外部システムクロックとをカウントした値との差分を求め、該差分を前記比較結果とすることを特徴とする。
【００２６】
本発明の第１５の要旨に係る動作条件制御方法は、第１４の要旨に係る動作条件制御方法において、前記設定値を動作中に変更することを特徴とする。
【００２７】
本発明の第１６の要旨に係る動作条件制御方法は、第９乃至第１５の要旨のいずれかに係る動作条件制御方法において、前記論理回路の電源電圧を制御することによって前記演算処理速度を制御することを特徴とする。
【００２８】
本発明の第１７の要旨に係る動作条件制御方法は、第９乃至第１５の要旨のいずれかに係る動作条件制御方法において、前記論理回路の基板電圧を制御することによって前記演算処理速度を制御することを特徴とする。
【発明の効果】
【００２９】
本発明によれば、外部の同期システムから要求される処理性能を満たしつつ、待ち時間のない動作が実現可能であり、回路の消費電力を低減することができる。
【発明を実施するための最良の形態】
【００３０】
以下、図面を参照して本発明の実施の形態について詳細に説明する。
【００３１】
まず、本発明が適用される半導体集積回路について図１および図２を参照して説明する。
【００３２】
図１の半導体集積回路は、論理回路１と、その入力側に設けられたフリップフロップ２と、論理回路１の出力側に設けられた終了検出回路３と、論理回路１の動作条件を制御する動作条件制御回路４とを備えている。
【００３３】
論理回路１は、入力信号を受けて所定の演算処理を実行し、その結果を出力する。
【００３４】
終了検出回路３は、論理回路１の全てのパスについてその出力をモニタし、演算処理が終了したか否か判定する。論理回路１の演算が終了したと判定したならば、終了検出回路３は終了信号を出力する。
【００３５】
終了検出回路３による終了検出を可能にするため、論理回路１として、例えばＤＣＶＳＬ（Differential Cascode Voltage Switch Logic）のような回路方式を用いることができる。ＤＣＶＳＬは、Proceeding of International Solid-State Circuits Conference 1984, pp.16-17に掲載されている論文“Cascode voltage switch logic: A differential CMOS logic family”に示されているように、相補信号出力のロジックである。
【００３６】
ＤＣＶＳＬでは、論理ハイ及びローを夫々“１０”及び“０１”（もしくは“０１”及び“１０”）で表現する。そこで、予めＤＣＶＳＬの出力（相補信号出力）を“１１”（もしくは“００”）の状態にしておくことで、処理の終了を検出することが可能になる。つまり、ロジックの出力が“１１”のときは未だ処理が終了しておらず、出力が“１０”または“０１”になれば処理が終了したことになる。出力が“００”（もしくは“１１”）のときは、演算エラーが生じたことを示している。
【００３７】
終了検出回路３は、論理回路１の全てのパスの出力が“１０”または“０１”に変化したことを検出することにより、そのサイクルでの論理回路１での演算処理が終了したことを検知することが可能となる。
【００３８】
フリップフロップ２は、終了検出回路３からの終了検出信号に応じて論理回路１の出力をラッチし、論理回路１へ出力する。これにより、論理回路１は、次の演算を開始する。こうして、論理回路１は、一つの演算処理を終了すると直ちに次の演算処理を開始する。即ち、図１の半導体集積回路は、待ち時間のない演算処理が可能である。
【００３９】
なお、ここでは、論理回路１からの出力をフリップフロップ２がラッチするものとしているが、通常、論理回路１からの出力は後段の論理回路または外部回路へ出力され、フリップフロップ２は前段の論理回路又は外部回路からの出力信号をラッチする。図１の構成の場合、初期状態において外部から入力信号とスタート信号（ラッチ信号）を与える必要がある。
【００４０】
図２に示す半導体集積回路は、図１の構成に加え、エラー検出回路５、エラー処理回路６及びＯＲ回路７を備えている。
【００４１】
エラー検出回路５は、論理回路１の出力をモニターし、論理回路１の演算結果のエラー判定を行なう。例えば、論理回路１が上述したようなＤＣＶＳＬ方式を採用しているのであれば、いずれかのパスの出力が“００”（もしくは“１１”）になったこと検出することにより、エラー発生を検出することができる。エラー検出回路５は、エラーを検出するとエラー信号を生成し、エラー処理回路６及びＯＲ回路７へ供給する。ＯＲ回路７は、終了検出回路３からの終了信号及びエラー検出回路５からのエラー信号をフリップフロップ２へ出力する。
【００４２】
論理回路１が正常に演算処理を終了するならば、図２の半導体集積回路の動作は図１の半導体集積回路と同様である。論理回路１が誤った演算処理を行い、エラー検出回路５がそれを検出した場合は、エラー検出回路５からのエラー信号が出力される。エラー信号を受けたエラー処理回路６は論理回路１における次の演算処理に関与し、エラー処理を施した結果が論理回路１より出力される。
【００４３】
エラー処理回路６は、例えば、前回の入力データを保存しておき、エラー検出回路５からエラー信号を受けとると、保存しておいた前回の入力を用いて論理回路１に演算をやり直させる。
【００４４】
上記構成により、図２の半導体集積回路は、演算エラーが発生した場合であっても待ち時間のない演算処理が可能である。
【００４５】
図１及び図２の半導体集積回路において、動作条件制御回路４により、論理回路１の動作要件、例えば電源電圧、を変更すると、その演算時間が変化する。その結果、終了検出回路３あるいはエラー検出回路５から出力される終了信号あるいはエラー信号の出力タイミングも変化し、結果として次の演算処理が始まるタイミングも変化する。こうして、図１及び図２の半導体集積回路は、その動作速度を変えることができる。
【００４６】
以上のように、図１や図２に示す半導体集積回路は、論理回路１の演算処理が終了したことを示す終了信号もしくはエラー信号を合図として次の演算処理を始める。つまり、最大クリティカルパス遅延ではなく、実動作パスに応じた動作を行なう。これにより、待ち時間をなくすことができる。また、電源電圧等の動作条件を変更することにより論理回路の動作速度を変更することができるので、製造ばらつき等による動作速度の相違を考慮する必要がない。つまり、正常な動作を保障するためのマージン（時間）を不要とすることができる。
【００４７】
本発明は、以上のような半導体集積回路に適用されるものであって、外部同期回路から要求される処理性能を満たすように、動作条件制御回路４をフィードバック制御するものである。
【００４８】
図３に、本発明の第１の実施の形態に係る半導体集積回路の構成を示す。
【００４９】
図示の半導体集積回路は、図１の半導体集積回路の構成に加え速度比較器８を有している。
【００５０】
速度比較器８は、終了検出回路３からの終了信号の生成速度（生成周期又は生成タイミング）と、外部から供給されるシステムクロックのクロック速度（クロック周期又は入力タイミング）とを比較する。速度比較器８は、終了信号の生成速度とシステムクロックの速度とを比較し、どちらが早いかを動作条件制御回路４へ伝える。
【００５１】
動作条件制御回路４は、終了信号の生成速度がシステムクロックのクロック速度よりも速い場合は論理回路１の動作速度を低めるように論理回路１の動作条件を制御する。逆に、終了信号の生成速度がシステムクロックの速度よりも遅い場合は論理回路１の動作速度を高めるように論理回路１の動作条件を制御する。つまり、動作条件制御回路４は、終了信号の生成速度（または半導体集積回路が１回の処理に要する時間）の平均値がシステムクロックのクロック速度（または周期）に一致するように、論理回路１の動作条件を制御する。
【００５２】
動作条件制御回路４として、例えば、ＤＣ−ＤＣコンバータを用いることができる。この場合、動作条件制御回路４は、速度比較器８の出力が終了信号の生成速度の方がシステムクロックのクロック速度よりも早いと判定した場合は論理回路１の電源電圧を下げ、終了信号の生成速度の方がシステムクロックのクロック速度よりも遅いと判定した場合は論理回路１の電源電圧を上げるように制御する。あるいは、動作条件制御回路４は、論理回路１のバックバイアス電圧を制御するものでもよい。即ち、速度比較器８の出力が終了信号の生成速度の方がシステムクロックのクロック速度よりも早いと判定した場合は回路のバックバイアス電圧を下げ、終了信号の生成速度の方がシステムクロックのクロック速度よりも遅いと判定した場合は回路のバックバイアス電圧を上げるように制御する。こうして、電源電圧あるいはバックバイアス電圧を制御して論理回路１の動作速度を適切に制御することにより、マージンを設定する必要性をなくスト共に、待ち時間をなくし消費電力を低減することができる。
【００５３】
ここで、システムクロックのクロック速度（周期）が従来の同期方式のときと同じであるとすると、本実施の形態に係る半導体集積回路では、最長クリティカルパス遅延を考慮する必要性及びマージンを設ける必要性が無い分だけ、従来よりも平均動作速度を遅くすることができる。つまり、論理回路１の電源電圧を低減することができ、外部システムから要求される処理性能を満たしつつ、消費電力を低減することができる。
【００５４】
また、この半導体集積回路の平均処理速度が従来と同じであるとすると、その平均処理速度は図４に示すように、従来のシステムクロックに比べ著しく低くなる。つまり、システムクロックを高速化することができるならば、処理時間を短縮することができる。その結果、消費電力を低減するこことができる。
【００５５】
いずれにしても、図３の半導体集積回路は、長時間での平均で見た場合に、外部システムから要求される処理性能を満たしつつ、待ち時間（マージンを含む）のない動作を実現可能で、消費電力を低減することができる。
【００５６】
図５に、本発明の第２の実施の形態に係る半導体集積回路の構成を示す。この半導体集積回路は、図２の半導体集積回路に、第１の実施の形態の半導体集積回路と同様、速度比較器８を設けたものである。
【００５７】
速度比較器８は、第１の実施の形態のものと同様に動作する。ただし、本実施の形態では、ＯＲ回路７からのＯＲ信号、即ち、終了信号とエラー信号の両方が速度比較器８に供給される。これにより、本実施の形態では、論理回路１においてエラーが生じ、終了信号が得られない場合であっても、動作条件制御回路４による論理回路１の動作速度制御が可能となる。
【００５８】
本実施の形態に係る半導体集積回路においても、終了信号及びエラー信号の生成速度の平均値がシステムクロックのクロック速度に一致するように、論理回路１の動作速度制御が行なわれる。その結果、マージンを必要とせず、待ち時間の無い低消費電力動作が可能になる。
【００５９】
なお、上述した第１または第２の実施の形態に係る半導体集積回路が、システムクロックに同期して動作する外部同期式回路とデータを送受信するように構成されている場合には、半導体集積回路の処理毎の動作速度変化が問題となる。そのような場合には、図６に示すように、半導体集積回路（又はモジュール）１５と外部の同期式回路１７との間にＦＩＦＯ（First In First Out）メモリを設け、処理速度差を吸収するようにすればよい。本実施の形態に係る半導体集積回路の平均動作速度は、システムクロックのクロック速度と一致しているので、半導体集積回路の実際の動作速度とシステムクロックのクロック速度との差は比較的小さい。それゆえ、ＦＩＦＯメモリ１６の容量は比較的小さくてよい。
【００６０】
次に、本発明の第３の実施の形態に係る半導体集積回路を図７を参照して説明する。
【００６１】
図７の半導体集積回路は、パイプライン処理を実行するように構成されている。具体的には、図１の構成に加え、フリップフロップ２の前段に設けられた論理回路８１及びフリップフロップ回路８２と、さらにその前段に設けられた論理回路８３と、論理回路８１，８３の演算終了を夫々検出する終了検出回路８４，８５と、終了検出回路３，８４間および終了検出回路８４，８５間に夫々設けられるとともに、フリップフロップ２，８２に夫々接続されたハンドシェイク回路８６，８７とを備えている。なお、図示しないが論理回路８３の前段にもフリップフロップ等が設けられている。
【００６２】
論理回路１，８１，８３の各々における待ち時間をなくすためには、全ての論理回路の処理時間が互いに一致していることが望ましい。しかしながら、論理回路１，８，８３における実際の処理時間は各々異なる。それゆえ、後段の演算回路（１または８１）が演算を終了して次の演算を始められる状態となっても、前段の演算回路が（８１または８３）が演算を終了しておらず、処理を開始できないということが起こりえる。したがって、これら論理回路１，８１，８３の間の入出力タイミングを互いに調整する必要がある。ハンドシェイク回路８６，８７は、論理回路１，８１，８３の間の入出力タイミングを互いに調整するために設けられている。
【００６３】
詳述すると、ハンドシェイク回路８６は、論理回路１，８１の演算が共に終了したことを検知する。論理回路、１，８１が共に演算を終了したならば、論理回路１が次の演算を開始できる状態になったと判断し、ハンドシェイク回路８６は、フリップフロップ２にスタート信号を供給する。これにより、論理回路８１の出力が論理回路１に供給され、論理回路１は次の演算を開始する。同様に、ハンドシェイク回路８７は、論理回路８１，８３の演算が共に終了したことを検知し、フリップフロップ８２にスタート信号を供給する。これにより、論理回路８３の出力が論理回路８１に供給され、論理回路８１は次の演算を開始する。
【００６４】
図７の半導体集積回路は、回路全体の平均動作速度が外部システムクロックのクロック速度と一致するように、フィードバック制御を行なう。即ち、最終段の論理回路１の演算終了を検出する終了検出回路３からの終了信号の生成速度と外部システムクロックのクロック速度とを速度比較器８にて比較し、その比較結果に基づいて動作条件制御回路４が論理回路１，８１，８２の演算処理速度を制御すべく動作条件を制御する。
【００６５】
なお、本実施の形態に係る半導体集積回路においても、各論理回路１，８１，８３の演算エラーを夫々検出するエラー検出回路、各エラー検出回路からのエラー信号に基づいてエラー処理を夫々行なうエラー処理回路、各段の終了検出回路からの終了信号とエラー検出回路からのエラー信号とのＯＲを夫々求めるＯＲ回路とを設けるようにしてもよい。
【００６６】
以上のように、パイプライン処理を行なうよう構成された半導体集積回路においても、外部システムから要求される処理性能を満たしつつ、（マージンを含む）待ち時間のない動作を実現することができ、消費電力を低減することができる。
【００６７】
図８に、本発明の第４の実施の形態に係る半導体集積回路の構成を示す。
【００６８】
図示の半導体集積回路は、図３の構成に加え、分周器９及び１０を有している。分周器９及び１０は、あらかじめ定められた数の終了信号あるいはシステムクロックが入力される毎に、１度だけ終了信号あるいはシステムクロックを速度比較器８へ出力する。例えば、一方の分周器がＮ分周、他方がＭ分周するように構成されているとして、Ｎ＝Ｍであれば、半導体集積回路の平均動作速度をシステムクロックの速度に一致させることができる。また、Ｎ＝２Ｍとすれば、半導体集積回路の平均動作速度をシステムクロックの速度の１／２倍又は２倍に一致させることができる。
【００６９】
速度比較器８は、分周器９，１０で分周された終了信号とシステムクロックとを比較し、終了信号の生成速度がシステムクロックのクロック速度より早いか遅いかを判定し、その結果を動作条件制御回路４へ出力する。
【００７０】
動作条件制御回路４は、速度比較器８の出力に基づき、論理回路１の演算処理速度を制御すべく動作条件を制御する。
【００７１】
本実施の形態では、論理回路１の動作条件の制御を、システムクロックの複数周期に一度の割合で行なうようにしたことで（あるいは、演算処理が終了する毎に行なわず、複数回の演算処理を終了する毎に行なうようにしたことで）、動作条件を頻繁に変更する必要がなく、より安定した制御を行なうことができる。こうして、本実施の形態に係る半導体処理装置は、長期的に見て、外部システムクロックと同期しているかのように動作する。
【００７２】
図９に、本発明の第５の実施の形態に係る半導体集積回路の構成を示す。図示の半導体集積回路は、図８の構成における動作条件制御回路４と速度比較器８を構成の異なる別の動作条件制御回路１０４と速度比較器１０８とに置き換えたものである。
【００７３】
速度比較器１０８は、分周器９からの終了信号と分周器１０からのシステムクロックとを夫々カウントする２つのカウンタと、これら２つのカウンタのカウント値の差分を求める差分器とを備えている。また、速度比較器１０８は、少なくとも一方のカウンタの最大カウント値を設定する設定器を備える。
【００７４】
速度比較器１０８は、いずれか一方のカウンタのカウント値が設定器により設定された値に達すると、２つのカウンタのカウント値の差分を求め、動作条件制御回路４へ出力する。
【００７５】
動作条件制御回路１０４は、速度比較器１０８からの差分に応じて論理回路１の動作条件を制御する。即ち、差分が大きければ動作条件を大きく変化させ、差分が小さければ動作条件を少しだけ変化させる。こうして、本実施の形態に係る半導体集積回路では、論理回路１の動作速度を目標速度に素早く収束させるとともに、その後安定した動作を実現することができる。
【００７６】
なお、図１０に示すように、固定の分周比を持つ分周器９及び１０に代えて可変分周比を持つ分周器１０９，１１０を設けてもよい。分周器１０９及び１１０の分周比を動作中に変更することにより、論理回路１の動作条件を変更制御する周期を動作中に容易に変更することができる。例えば、動作開始直後は比較的分周比を小さくして論理回路１の演算処理速度の目標速度への収束を早め、その後分周比を比較的大きくすることにより安定した動作を実現するこができる。また、速度比較器１０８の設定数を動作中に変更することによっても、論理回路１の動作条件を変更制御する周期を動作中に容易に変更することができる。
【００７７】
以上本発明について、いくつかの実施の形態に即して説明したが、本発明がこれら実施の形態に限られるものではない。例えば、第４あるいは第５の実施の形態に係る半導体集積回路に、第２の実施の形態と同様にエラー検出回路、ＯＲ回路及びエラー処理回路を設けるようにしてもよい。また、第４あるいは第５の実施の形態に係る半導体集積回路、あるいはそれにエラー処理回路等を加えた構成を利用して、第３の実施の形態のようなパイプライン処理を行なう半導体集積回路を構成するようにしてもよい。さらに、第５の実施の形態に係る半導体集積回路において、分周器９及び１０が無い構成としてもよい。
【図面の簡単な説明】
【００７８】
【図１】本発明が適用され得る半導体集積回路の一構成例を示すブロック図である。
【図２】本発明が適用され得る半導体集積回路の他の構成例を示すブロック図である。
【図３】本発明の第１の実施の形態に係る半導体集積回路の構成を示すブロック図である。
【図４】処理能力が従来と同じとした場合に、演算回路が処理に要する時間の平均を説明するためのグラフである。
【図５】本発明の第２の実施の形態に係る半導体集積回路の構成を示すブロック図である。
【図６】図３または図５の半導体集積回路の外部の同期式回路との処理速度の差を吸収するための構成例を示すブロック図である。
【図７】本発明の第３の実施の形態に係る半導体集積回路の構成を示すブロック図である。
【図８】本発明の第４の実施の形態に係る半導体集積回路の構成を示すブロック図である。
【図９】本発明の第５の実施の形態に係る半導体集積回路の構成を示すブロック図である。
【図１０】図９の半導体集積回路の変形例を示すブロック図である。
【図１１】従来の半導体集積回路における論理回路の処理に要する時間と外部から供給されるシステムクロックの周期との関係を示すグラフである。
【符号の説明】
【００７９】
１，８１，８３    論理回路
２，８２    フリップフロップ
３，８４，８５    終了検出回路
４，１０４    動作条件制御回路
５    エラー検出回路
６    エラー処理回路
７    ＯＲ回路
８，１０８    速度比較器
９，１０，１０９，１１０    分周器
１５    第１又は第２の実施の形態に係る半導体集積回路
１６    ＦＩＦＯ
１７    外部同期式回路
８６，８７    ハンドシェイク回路
【図１】
2008192040.tif 000003
【図２】
2008192040.tif 000004
【図３】
2008192040.tif 000005
【図４】
2008192040.tif 000006
【図５】
2008192040.tif 000007
【図６】
2008192040.tif 000008
【図７】
2008192040.tif 000009
【図８】
2008192040.tif 000010
【図９】
2008192040.tif 000011
【図１０】
2008192040.tif 000012
【図１１】
2008192040.tif 000013