(57)【要約】【課題】動作性能を損なうことなく、消費電力を低減することが可能な半導体集積回路を提供する。【解決手段】実施形態の半導体集積回路は、アクセス要求を出力するバスマスタ１０と、アクセス要求を受け取り、アクセス要求に対する応答をバスマスタ１０へ返すバススレーブ２０と、バススレーブ２０へのクロックの供給を遮断するクロックゲーティング回路３０とを備える。バススレーブ２０は、アクセス要求に応答して第１信号及び第２信号を出力するバス応答制御回路２１と、第１信号がアサートされたとき、クロックゲーティング回路３０から供給されるクロックに応答して、第１信号を出力するフリップフロップ２２と、フリップフロップ２２から出力された第１信号と、第２信号とを受け取り、第２信号がアサートされたとき、アクセス要求に対する応答として第１信号をバスマスタ１０へ出力する論理積回路２３とを有する。【選択図】図１
2019056964.tif 000002
【特許請求の範囲】
【請求項１】
アクセス要求を出力するバスマスタと、
前記アクセス要求を受け取り、前記アクセス要求に対する応答を前記バスマスタへ返すバススレーブと、
前記バススレーブへのクロックの供給を遮断するクロックゲーティング回路と、
を具備し、
前記バススレーブは、
前記アクセス要求に応答して第１信号及び第２信号を出力する制御回路と、
前記第１信号がアサートされたとき、前記クロックゲーティング回路から供給されるクロックに応答して、前記第１信号を出力する第１回路と、
前記第１回路から出力された前記第１信号と、前記第２信号とを受け取り、前記第２信号がアサートされたとき、前記アクセス要求に対する前記応答として前記第１信号を前記バスマスタへ出力する第２回路と、を有する半導体集積回路。
【請求項２】
前記クロックゲーティング回路は論理積回路を含む請求項１に記載の半導体集積回路。
【請求項３】
アクセス要求を出力するバスマスタと、
前記アクセス要求を受け取り、前記アクセス要求に対する応答を前記バスマスタへ返すバススレーブと、
前記バススレーブへのクロックの供給を遮断する第１及び第２クロックゲーティング回路と、
前記第１クロックゲーティング回路を開状態及び閉状態のいずれの状態にするかを選択する第１調整信号と、前記第２クロックゲーティング回路を開状態及び閉状態のいずれの状態にするかを選択する第２調整信号とを出力する調整回路と、
を具備し、
前記バススレーブは、
前記アクセス要求に応答して第１信号及び第２信号を出力する制御回路と、
前記第１信号、または前記第１及び第２調整信号がアサートされたとき、前記第１及び第２クロックゲーティング回路から供給されるクロックに応答して、前記第１信号を出力する第１回路と、
前記第１回路から出力された前記第１信号と、前記第２信号とを受け取り、前記第２信号がアサートされたとき、前記アクセス要求に対する前記応答として前記第１信号を前記バスマスタへ出力する第２回路と、を有する半導体集積回路。
【請求項４】
前記第１及び第２クロックゲーティング回路は論理積回路を含む請求項３に記載の半導体集積回路。
【請求項５】
前記調整回路と前記第１クロックゲーティング回路との間に配置された第１論理和回路と、前記調整回路と前記第２クロックゲーティング回路との間に配置された第２論理和回路とをさらに備え、
前記第１調整信号が前記第１論理和回路に入力され、前記第２調整信号が前記第２論理和回路に入力され、前記第１信号が前記第１及び第２論理和回路に入力される請求項３または４に記載の半導体集積回路。
【請求項６】
前記調整回路は、前記アクセス要求及び前記応答を受け取り、前記アクセス要求と前記応答とを受け取る時間差に基づいて、前記第１及び第２調整信号を前記第１及び第２論理和回路にそれぞれ出力する請求項５に記載の半導体集積回路。
【請求項７】
第１及び第２クロックゲーティング回路は、前記バススレーブへ供給されるクロックの伝送経路に、クロック供給側から順に直列に配置され、
前記第１クロックゲーティング回路が閉状態にあり、前記アクセス要求が入力されたとき、前記アクセス要求と前記応答とを受け取る時間差が第１値より大きい場合、前記調整回路は、前記第１クロックゲーティング回路を開状態とし、前記第２クロックゲーティング回路を閉状態とする請求項３乃至６のいずれかに記載の半導体集積回路。
【請求項８】
前記第１回路は、クロック入力端子、入力端子、及び出力端子を持つフリップフロップを含み、
前記フリップフロップは、前記クロック入力端子にクロックが供給されたとき、前記入力端子に供給されている前記第１信号を前記出力端子から出力する請求項１乃至７のいずれかに記載の半導体集積回路。
【請求項９】
前記第２信号は、前記クロックの供給の有無に係わらず、前記バススレーブが応答可能な状態であるとき、アサートされる請求項１乃至８のいずれかに記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、バスマスタ及びバススレーブを有する半導体集積回路に関するものである。
【背景技術】
【０００２】
半導体集積回路、例えばシステムＬＳＩは、バスマスタ、バススレーブ、及びバスマスタとバススレーブを接続するバスを構成要素として備える。このような半導体集積回路において、消費電力を低減する手法として、クロックゲーティングが広く利用されている。
【０００３】
クロックゲーティングは、例えばバススレーブへ供給するクロックを遮断して消費電力を低減する手法である。クロックゲーティングは、通常状態と低電力状態との状態遷移時間が比較的短く、ダイナミック電流の大半を占めるクロックツリー電力を抑止することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２１７９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
動作性能を損なうことなく、消費電力を低減することが可能な半導体集積回路を提供する。
【課題を解決するための手段】
【０００６】
実施形態の半導体集積回路は、アクセス要求を出力するバスマスタと、前記アクセス要求を受け取り、前記アクセス要求に対する応答を前記バスマスタへ返すバススレーブと、前記バススレーブへのクロックの供給を遮断するクロックゲーティング回路とを具備する。前記バススレーブは、前記アクセス要求に応答して第１信号及び第２信号を出力する制御回路と、前記第１信号がアサートされたとき、前記クロックゲーティング回路から供給されるクロックに応答して、前記第１信号を出力する第１回路と、前記第１回路から出力された前記第１信号と、前記第２信号とを受け取り、前記第２信号がアサートされたとき、前記アクセス要求に対する前記応答として前記第１信号を前記バスマスタへ出力する第２回路とを有する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１実施形態の半導体集積回路の構成を示す図である。
【図２】図２は、第１実施形態の半導体集積回路の動作を示す第１例のタイミングチャートである。
【図３】図３は、第１実施形態の半導体集積回路の動作を示す第２例のタイミングチャートである。
【図４】図４は、第１実施形態の半導体集積回路の動作を示す第３例のタイミングチャートである。
【図５】図５は、第２実施形態の半導体集積回路の構成を示す図である。
【図６】図６は、第２実施形態の半導体集積回路の動作を示すタイミングチャートである。
【発明を実施するための形態】
【０００８】
以下、図面を参照して実施形態について説明する。以下の説明において、同一の機能及び構成を有する構成要素については同一符号を付す。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、構成部品の材質、形状、構造、配置等を下記のものに特定するものではない。
【０００９】
各機能ブロックが以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
【００１０】
［１］第１実施形態
第１実施形態の半導体集積回路について説明する。
【００１１】
［１−１］半導体集積回路の構成
図１は、第１実施形態の半導体集積回路の構成を示す図である。半導体集積回路１００は、バスマスタ１０、バススレーブ２０、及びクロックゲーティング回路３０を備える。バスマスタ１０、バススレーブ２０、及びクロックゲーティング回路３０は、相互に信号の送受信が可能なようにバスにより電気的に接続されている。
【００１２】
バスマスタ１０は、バス要求（またはバス要求信号）をバススレーブ２０へ発行する。バスマスタ１０は、バス要求信号を出力するためのフリップフロップ１１を含む。バスマスタ１０は、例えば、ＣＰＵ（central processing unit）、ＤＭＡＣ（direct memory access controller）などから構成される。
【００１３】
バススレーブ２０は、バス要求に対して、バス応答可能であること（またはバス応答可能信号）をバスマスタ１０へ返答する。バススレーブ２０は、バス応答制御回路２１、フリップフロップ２２、及び論理積回路（ＡＮＤ回路）２３を含む。バススレーブ２０は、例えば、メモリなどから構成される。
【００１４】
クロックゲーティング回路３０は、バススレーブ２０へのクロックの供給を制御する。具体的には、半導体集積回路１００内のクロック発生回路（図示しない）から発生されたクロック、または外部から入力されたクロックを遮断する、あるいは前記クロックをバススレーブ２０へ供給する。クロックゲーティング回路３０は、例えばＡＮＤ回路を含む。
【００１５】
次に、半導体集積回路１００の回路接続について説明する。バスマスタ１０が含むフリップフロップ１１は、バススレーブ２０内のバス応答制御回路２１に接続される。バス応答制御回路２１の第１出力端子は、クロックゲーティング回路３０の第１入力端子及びバススレーブ２０内のフリップフロップ２２の入力端子に接続される。
【００１６】
クロックゲーティング回路３０の第２入力端子には、クロック（以降、ゲート前クロックと記す）ＣＬＫ１が入力される。このゲート前クロックＣＬＫ１は半導体集積回路１００内のクロック発生回路から供給されてもよいし、半導体集積回路１００の外部から供給されてもよい。
【００１７】
クロックゲーティング回路３０の出力端子は、バススレーブ２０内のフリップフロップ２２のクロック入力端子に接続される。クロックゲーティング回路３０が開いているとき、クロックゲーティング回路３０の出力端子からゲート前クロックＣＬＫ１が出力される。以降、クロックゲーティング回路３０から出力されるゲート前クロックＣＬＫ１を、ゲート後クロックＣＬＫ２と表記する。バススレーブ２０に供給されたゲート後クロックＣＬＫ２は、バススレーブ２０における回路動作（例えば、メモリの場合、データの書き込み及び読み出し等）で同期クロックとして利用される。
【００１８】
フリップフロップ２２の出力端子は、ＡＮＤ回路２３の第１入力端子に接続される。ＡＮＤ回路２３の第２入力端子には、バス応答制御回路２１の第２出力端子が接続される。さらに、ＡＮＤ回路２３の出力端子はバスマスタ１０に接続されている。
【００１９】
［１−２］半導体集積回路の動作
バスマスタ１０内のフリップフロップ１１からバススレーブ２０内のバス応答制御回路２１までの信号伝播時間と、バススレーブ２０内のバス応答制御回路２１からクロックゲーティング回路３０までの信号伝播時間と、クロックゲーティング回路３０からバススレーブ２０内のフリップフロップ２２までのクロック伝播時間との合計を、合計遅延時間と表記する。
【００２０】
次に、図２、図３及び図４を用いて、第１実施形態の半導体集積回路１００の動作を説明する。図２、図３及び図４は、半導体集積回路１００の動作を示すタイミングチャートである。図２は、合計遅延時間が１サイクル以内の場合を示し、図３は合計遅延時間が２サイクルより大きく３サイクル以内の場合を示す。
【００２１】
図２及び図３において、バスマスタ１０からバス要求信号ＢＲＥＱがバススレーブ２０内のバス応答制御回路２１へ出力される。具体的には、バス要求信号ＢＲＥＱがアサートされ、例えば“Ｈ”がバス応答制御回路２１へ出力される（時刻Ｔ１）。バス要求信号ＢＲＥＱは、バスマスタ１０からバススレーブ２０へアクセスを要求する信号である。なお、“Ｈ”はハイレベルの電圧であることを示す。
【００２２】
バス応答制御回路２１は、バス要求信号ＢＲＥＱに応答して、バス転送信号ＢＴＲをクロックゲーティング回路３０の第１入力端子に出力する。具体的には、バス転送信号ＢＴＲがアサートされ、例えば“Ｈ”がクロックゲーティング回路３０へ出力される。バス転送信号ＢＴＲは、クロックゲーティング回路３０の開状態／閉状態を制御する信号であり、バス要求信号ＢＲＥＱに応じてアサートされ、バススレーブ２０の動作が終了するまで“Ｈ”が維持される。
【００２３】
クロックゲーティング回路３０の第２入力端子には、ゲート前クロックＣＬＫ１が入力されている。クロックゲーティング回路３０にバス転送信号ＢＴＲ（“Ｈ”）が入力されると、クロックゲーティング回路３０が開き、クロックゲーティング回路３０の出力端子からゲート後クロックＣＬＫ２が出力される。
【００２４】
合計遅延時間がゲート前クロックＣＬＫ１の１サイクル以内の場合は、図２に示すように、バス要求信号ＢＲＥＱ（またはバス転送信号ＢＴＲ）の立ち上がりから１サイクル後にゲート後クロックＣＬＫ２が出力される（時刻Ｔ２）。合計遅延時間が２サイクルより大きく３サイクル以内の場合は、図３に示すように、バス要求信号ＢＲＥＱ（またはバス転送信号ＢＴＲ）の立ち上がりから３サイクル後にゲート後クロックＣＬＫ２が出力される（時刻Ｔ３）。
【００２５】
ゲート後クロックＣＬＫ２は、フリップフロップ２２のクロック入力端子に供給される。クロック入力端子にゲート後クロックＣＬＫ２が供給されると、フリップフロップ２２の入力端子に供給されているバス転送信号ＢＴＲが、フリップフロップ２２の出力端子からバス応答マスク信号ＢＲＭ（“Ｈ”）として出力される。バス応答マスク信号ＢＲＭは、ゲート後クロックＣＬＫ２がバススレーブ２０に到達したことを示す信号である。
【００２６】
バス応答マスク信号ＢＲＭは、ＡＮＤ回路２３の第１入力端子に供給される。ＡＮＤ回路２３の第２入力端子には、バス応答制御回路２１からバス応答可能信号ＢＲＥ１（“Ｈ”）が供給される。バス応答可能信号ＢＲＥ１は、バススレーブ２０の状態を示し、バスマスタ１０からのアクセス要求が実行可能か否かを示す信号である。バス応答可能信号ＢＲＥ１が“Ｈ”であるとき、アクセス要求が実行可能であることを示す。
【００２７】
そして、ＡＮＤ回路２３の出力端子からバス応答可能信号ＢＲＥ２（“Ｈ”）がバスマスタ１０へ出力される。バス応答可能信号ＢＲＥ２は、ゲート後クロックＣＬＫ２がバススレーブ２０に到達し、かつバススレーブ２０の状態がバスマスタ１０からのアクセス要求を実行可能であることを示す信号である。バス応答可能信号ＢＲＥ２（“Ｈ”）をバスマスタ１０に出力することで、バススレーブ２０がバスマスタ１０からのアクセス要求を実行可能であることを知らせる。
【００２８】
その後、バスマスタ１０とバススレーブ２０との間で信号及びデータの送信及び受信が行われる。
【００２９】
次に、図４を用いて、バス要求が連続した場合の動作を説明する。図４は、バス要求信号が連続した場合であり、合計遅延時間が２サイクルより大きく３サイクル以内の場合を示す。
【００３０】
図３に示したのと同様に、１度目のバス要求信号ＢＲＥＱが入力されると、バス応答可能信号ＢＲＥ２が時刻Ｔ３に出力される。その後、２度目のバス要求信号ＢＲＥＱが入力される（時刻Ｔ４）。この場合、バス要求信号ＢＲＥＱが時刻Ｔ４に入力されると、バス転送信号ＢＴＲが“Ｈ”を維持しているため、遅延することなくバス応答可能信号ＢＲＥ２が時刻Ｔ４に出力される。
【００３１】
１度目のバス要求では、図３に示したのと同様に、バス要求信号ＢＲＥＱの出力からバス応答可能信号ＢＲＥ２の返答まで、バスマスタ１０が待機（または停止）する時間が生じる。しかし、２度目のバス要求では、クロック（ゲート後クロック）が既に供給されているため、バスマスタ１０が待機する時間は発生しない。
【００３２】
［１−３］第１実施形態の効果
第１実施形態によれば、動作性能を損なうことなく、消費電力を低減することが可能な半導体集積回路を提供できる。
【００３３】
以下、第１実施形態の効果について詳述する。クロックゲーティング回路３０からバススレーブ２０へクロックを供給する場合、バスマスタ１０からバス要求が発行されてから、クロックがバススレーブ２０に供給されるまでに遅延（合計遅延時間）が生じる。この遅延は、クロックの伝送経路を構成する回路素子に供給される電圧条件、温度条件、及び回路素子の製造ばらつき等により変動する。
【００３４】
例えば、比較例として、合計遅延時間の許容最大値を予め定め、起こりえる動作条件においては合計遅延時間が許容最大値より小さくなるように物理的に設計するとともに、許容最大値以内であれば正常に動作するように、バスマスタを予め定めたサイクル数だけ停止させる場合がある。この場合は、前述したように合計遅延時間が変動するため、バスマスタの停止時間を許容最大値に設定する必要がある。しかし、バスマスタ及びバススレーブを含む半導体集積回路の動作環境は、大半がより伝播遅延が小さくなる条件であることが多いため、合計遅延時間が許容最大値になることは少なく、バスマスタを無駄に停止させることになってしまう。
【００３５】
本実施形態では、バスマスタ１０の待機時間（または停止時間）を、予め定めておく必要がなく、前述した電圧条件、温度条件、及び製造ばらつきにより変動する合計遅延時間に合わせて、バスマスタ１０にバス応答を返答でき、バスマスタ１０の待機時間を低減できる。これにより、クロックゲーティング回路３０により消費電力を低減できると共に、バスマスタ１０の不要な待機時間を削減できるため、半導体集積回路の動作性能を損なうことがない。
【００３６】
また、本実施形態では、バス要求が連続する場合、バスマスタ１０の待機時間が生じるのは１度目のバス要求だけである。２度目以降のバス要求では、クロック（ゲート後クロック）が既に供給されているため、バスマスタ１０に待機時間は発生しない。このため、半導体集積回路の動作性能を損なわずに済む。
【００３７】
［２］第２実施形態
次に、第２実施形態の半導体集積回路について説明する。第２実施形態では、クロックの伝送経路にクロックゲーティング回路を複数配置し、これらクロックゲーティング回路の開状態／閉状態を調整するゲーティング調整回路を備える。ここでは、クロックゲーティング回路が３個配置された例を示す。
【００３８】
［２−１］半導体集積回路の構成
図５は、第２実施形態の半導体集積回路の構成を示す図である。半導体集積回路２００は、バスマスタ１０、バススレーブ２０、クロックゲーティング回路３１、３２、３３、論理和回路（ＯＲ回路）３４、３５、及びゲーティング調整回路４０を備える。バスマスタ１０、バススレーブ２０、クロックゲーティング回路３１〜３３、及びゲーティング調整回路４０は、相互に信号の送受信が可能なようにバスにより電気的に接続されている。
【００３９】
クロックゲーティング回路は、クロックＣＬＫ１の供給側から順に３１、３２、３３の順序で配置される。クロックゲーティング回路３１〜３３は、バススレーブ２０へのクロックの供給を制御する回路であり、バススレーブ２０へクロックを供給あるいは遮断する。クロックゲーティング回路３１〜３３の各々は、例えばＡＮＤ回路を含む。
【００４０】
ゲーティング調整回路４０は、バスマスタ１０の待機時間を監視し、その待機時間に基づいてクロックゲーティング回路３１、３２の開状態／閉状態を調整する。ゲーティング調整回路４０は、例えば、フリップフロップ４１、４２を含む。
【００４１】
次に、半導体集積回路２００の回路接続について説明する。バスマスタ１０のフリップフロップ１１は、バススレーブ２０内のバス応答制御回路２１及びゲーティング調整回路４０に接続される。バス応答制御回路２１の第１出力端子は、クロックゲーティング回路３３の第１入力端子、ＯＲ回路３４の第１入力端子、ＯＲ回路３５の第１入力端子、及びバススレーブ２０内のフリップフロップ２２の入力端子に接続される。
【００４２】
ＯＲ回路３４の第２入力端子には、ゲーティング調整回路４０内のフリップフロップ４１の出力端子が接続される。フリップフロップ４１の出力端子からゲーティング制御信号ＧＣＬ１がＯＲ回路３４の第２入力端子へ出力される。同様に、ＯＲ回路３５の第２入力端子には、ゲーティング調整回路４０内のフリップフロップ４２の出力端子が接続される。フリップフロップ４２の出力端子からゲーティング制御信号ＧＣＬ２がＯＲ回路３５の第２入力端子へ出力される。
【００４３】
ＯＲ回路３４の出力端子は、クロックゲーティング回路３１の第１出力端子に接続される。クロックゲーティング回路３１の第２入力端子には、ゲート前クロックＣＬＫ１が供給される。ＯＲ回路３５の出力端子は、クロックゲーティング回路３２の第１出力端子に接続される。クロックゲーティング回路３２の第２入力端子には、クロックゲーティング回路３１の出力端子が接続される。クロックゲーティング回路３２の出力端子は、クロックゲーティング回路３３の第２入力端子に接続される。
【００４４】
クロックゲーティング回路３３の出力端子は、バススレーブ２０内のフリップフロップ２２のクロック入力端子に接続される。クロックゲーティング回路３１〜３３が開いているとき、クロックゲーティング回路３３の出力端子からゲート後クロックＣＬＫ２が出力される。バススレーブ２０に供給されたゲート後クロックＣＬＫ２は、バススレーブ２０における回路動作（例えば、メモリの場合、データの書き込み及び読み出し等）で同期クロックとして利用される。
【００４５】
フリップフロップ２２の入力端子には、バス応答制御回路２１の第１出力端子が接続される。フリップフロップ２２の出力端子は、ＡＮＤ回路２３の第１入力端子に接続される。ＡＮＤ回路２３の第２入力端子には、バス応答制御回路２１の第２出力端子が接続される。さらに、ＡＮＤ回路２３の出力端子はバスマスタ１０に接続されている。
【００４６】
その他の構成は前述した第１実施形態と同様である。
【００４７】
［２−２］半導体集積回路の動作
図６は、第２実施形態の半導体集積回路２００の動作を示すタイミングチャートである。図６には、断続的にバス要求が発生し、ゲーティング調整回路が合計遅延時間に適応して動作する場合を示す。ここで、クロックゲーティング回路３１を使用した場合の合計遅延時間を合計遅延（３１）とし、クロックゲーティング回路３２を使用した場合の合計遅延時間を合計遅延（３２）とし、クロックゲーティング回路３３を使用した場合の合計遅延時間を合計遅延（３３）とする。
【００４８】
まず、初期状態では、ゲーティング調整回路４０から出力される制御信号ＧＣＬ１、ＧＣＬ２は共に“Ｌ”に設定される。このとき、クロックゲーティング回路３１がゲート前クロックＣＬＫ１を遮断している。続いて、バスマスタ１０から１度目のバス要求信号ＢＲＥＱが出力されて、バス応答制御回路２１からバス転送信号ＢＴＲが出力される（時刻Ｔ１１）。すると、クロックゲーティング回路３１〜３３が開き、クロックゲーティング回路３１からフリップフロップ２２へゲート後クロックＣＬＫ２が供給される（時刻Ｔ１２）。このとき、バス要求信号ＢＲＥＱの出力からゲート後クロックＣＬＫ２がフリップフロップ２２に到達するまでの遅延が合計遅延（３１）である。
【００４９】
合計遅延（３１）が大きく、バスマスタ１０の待機時間（または停止時間）が許容範囲より長い場合、ゲーティング調整回路４０は制御信号ＧＣＬ１を“Ｈ”、制御信号ＧＣＬ２を“Ｌ”とする。このとき、クロックゲーティング回路３２がゲート前クロックＣＬＫ１を遮断している。続いて、バスマスタ１０から２度目のバス要求信号ＢＲＥＱが出力されて、バス応答制御回路２１からバス転送信号ＢＴＲが出力される（時刻Ｔ１４）。すると、クロックゲーティング回路３２、３３が開き、クロックゲーティング回路３２からフリップフロップ２２へゲート後クロックＣＬＫ２が供給される（時刻Ｔ１５）。このとき、バス要求信号ＢＲＥＱの出力からゲート後クロックＣＬＫ２がフリップフロップ２２に到達するまでの遅延が合計遅延（３２）である。
【００５０】
さらに、合計遅延（３２）も大きく、バスマスタ１０の待機時間が許容範囲より長い場合、ゲーティング調整回路４０は制御信号ＧＣＬ１、ＧＣＬ２を共に“Ｈ”とする。このとき、クロックゲーティング回路３３がゲート前クロックＣＬＫ１を遮断している。続いて、バスマスタ１０から３度目のバス要求信号ＢＲＥＱが出力されて、バス応答制御回路２１からバス転送信号ＢＴＲが出力される（時刻Ｔ１７）。すると、クロックゲーティング回路３３が開き、クロックゲーティング回路３３からフリップフロップ２２へゲート後クロックＣＬＫ２が供給される（時刻Ｔ１８）。このとき、バス要求信号ＢＲＥＱの出力からゲート後クロックＣＬＫ２がフリップフロップ２２に到達するまでの遅延が合計遅延（３１）である。
【００５１】
このように、ゲーティング調整回路４０は、バスマスタ１０の待機時間を監視し、待機時間に応じて、クロックＣＬＫ１を遮断するクロックゲーティング回路３１、３２を調整する。これにより、バスマスタ１０の待機時間が許容範囲内となり、半導体集積回路２００は正常に動作する。
【００５２】
なお、遅延時間の大小関係は、合計遅延（３１）＞合計遅延（３２）＞合計遅延（３３）である。これら合計遅延（３１）、合計遅延（３２）及び合計遅延（３３）は、バスマスタ１０の待機時間（バス要求の発行からバス応答可能の受信まで）として観測が可能である。クロックゲーティング回路３１〜３３をそれぞれ使用した場合の消費電力の大小関係は、クロックの伝播経路のうち、ゲーティングによって停止する部分の割合が多いほど消費電力は小さくなるから、クロックゲーティング回路３１＜クロックゲーティング回路３２＜クロックゲーティング回路３３となる。さらに、１度目のバス要求によるアクセスでは６クロックサイクル（時刻Ｔ１１−Ｔ１３）を要したのに対し、２度目のバス要求によるアクセスでは５クロックサイクル（時刻Ｔ１４−Ｔ１６）を要し、３度目のバス要求によるアクセスでは４クロックサイクル（時刻Ｔ１７−Ｔ１９）を要するものとなっている。
【００５３】
また、前述の動作によって、待機時間に応じてクロックゲーティング回路３１、３２を調整した後、所定時間が経過したら、クロックゲーティング回路３１、３２を初期状態（クロック供給停止状態）に戻し、再度、待機時間に応じてクロックゲーティング回路３１、３２を調整してもよい。このように、所定時間経過後に、クロックゲーティング回路を初期状態に戻し再度調整することにより、その時点での使用環境及び状況に応じて、適するクロックゲーティング回路を選択することが可能である。なお、所定時間の計測には、タイマやソフトウェアを用いることができる。
【００５４】
［２−３］第２実施形態の効果
第２実施形態では、第１実施形態と同様に、半導体集積回路の動作環境において変動する合計遅延時間に適応するように、半導体集積回路ごとに最適なバスマスタ１０の待機時間を設定できる。これにより、クロックゲーティング回路により消費電力を低減できると共に、バスマスタ１０の不要な待機時間を削減できるため、半導体集積回路の動作性能を損なうことがない。
【００５５】
さらに、第２実施形態では、選択されたクロックゲーティング回路によって生じるバスマスタ１０の待機時間が許容範囲内か否かに応じて、クロックＣＬＫ１を遮断するクロックゲーティング回路を選択できる。このため、待機時間が許容範囲内でかつ最も電力削減効果の高いクロックゲーティング回路（クロック伝送経路における位置）を適応的に選択することができる。
【００５６】
また、図５に示した構成では、クロックゲーティング回路を３重に配置したが、３重に限定するものではなく、２重でもよく、さらに４重以上であってもよい。また、図５において、最後段のクロックゲーティング回路にはＯＲ回路及びその制御信号を供給していないが、ＯＲ回路及びその制御信号を供給する構成としてもよい。
【００５７】
その他の効果は前述した第１実施形態と同様である。
【００５８】
［３］その他変形例等
第１、第２実施形態において、判断論理や制御論理は、しきい値による実装、またはスイッチによる実装など様々な形態が考えられ、どのような形態であっても適用可能である。第１、第２実施形態は、マスタとスレーブの関係を有する様々な種類の半導体集積回路に適用可能であり、例えば、システムＬＳＩ、ＡＳＩＣ、汎用ＬＳＩ等に適用可能である。
【００５９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６０】
１０…バスマスタ、１１…フリップフロップ、２０…バススレーブ、２１…バス応答制御回路、２２…フリップフロップ、２３…論理積回路（ＡＮＤ回路）、３０…クロックゲーティング回路、３１，３２，３３…クロックゲーティング回路、３４，３５…論理和回路（ＯＲ回路）、４０…ゲーティング調整回路、４１，４２…フリップフロップ、１００，２００…半導体集積回路。
【図１】
2019056964.tif 000003
【図２】
2019056964.tif 000004
【図３】
2019056964.tif 000005
【図４】
2019056964.tif 000006
【図５】
2019056964.tif 000007
【図６】
2019056964.tif 000008