(57)【要約】【課題】  クロックゲーティングにおける無駄なダイナミック電力の消費を抑制する。【解決手段】  クロック供給回路11は、回路ブロックの内部においてクロックゲーティングを行うクロック制御部15を有する複数の回路ブロックにクロックを供給する。クロック制御部103、104は、クロック制御部15から入力される制御信号に基づき、クロック供給部106、107を制御して、複数の回路ブロックへのクロックの供給と供給停止を行う。供給期間取得部101は、複数の回路ブロックそれぞれのクロック制御部15がクロックの供給および供給停止を行う期間を示す供給情報を取得する。経路指示部102は、供給情報に基づき、クロック制御部15による制御信号の送信先としてクロック制御部103、104の何れかを指示する。【選択図】  図1
2017004269.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置の回路ブロックの内部においてクロックゲーティングを行う第一の供給手段を有する複数の回路ブロックに前記クロックを供給するクロック供給回路であって、
前記クロックの供給路に直列に配置され、前記複数の回路ブロックそれぞれの第一の供給手段から入力される制御信号に基づき、前記複数の回路ブロックへの前記クロックの供給と供給停止を行う複数の第二の供給手段と、
前記複数の回路ブロックそれぞれの第一の供給手段が前記クロックの供給および供給停止を行う期間を示す供給情報を取得する取得手段と、
前記供給情報に基づき、前記第一の供給手段による制御信号の送信先として前記複数の第二の供給手段の何れかを指示する指示手段とを有するクロック供給回路。
【請求項２】
前記指示手段は、前記複数の第二の供給手段ごとに、前記複数の回路ブロックそれぞれの第一の供給手段から当該第二の供給手段へ送信される前記制御信号の遅延量に基づき前記供給情報を修正した修正供給情報を生成する請求項1に記載されたクロック供給回路。
【請求項３】
前記指示手段は、前記供給情報に基づき前記複数の回路ブロックにおいて前記クロックの供給停止が行われる第一の期間を取得し、前記修正供給情報ごとに、当該修正供給情報に基づき前記複数の回路ブロックの少なくとも一つにおいて前記クロックの供給が行われる第二の期間を取得し、前記第一の期間および前記修正供給情報ごとの第二の期間に基づき前記制御信号の送信先を指示する請求項2に記載されたクロック供給回路。
【請求項４】
前記指示手段は、前記修正供給情報ごとに、前記第一の期間および当該修正供給情報に対応する第二の期間に共通する期間における前記クロックのサイクル数を取得し、前記サイクル数に基づき前記制御信号の送信先を指示する請求項3に記載されたクロック供給回路。
【請求項５】
前記複数の第二の供給手段の間の前記クロックの供給路、および、前記第二の供給手段と前記複数の回路ブロックそれぞれの第一の供給手段の間の前記クロックの供給路には、クロックバッファが配置されている請求項1から請求項4の何れか一項に記載されたクロック供給回路。
【請求項６】
前記取得手段は、前記第一の供給手段から前記供給情報を取得する請求項1から請求項5の何れか一項に記載されたクロック供給回路。
【請求項７】
半導体装置の回路ブロックの内部においてクロックゲーティングを行う第一の供給手段を有する複数の回路ブロックに前記クロックを供給するクロック供給回路の制御方法であって、
前記クロック供給回路は、前記クロックの供給路に直列に配置され、前記複数の回路ブロックそれぞれの第一の供給手段から入力される制御信号に基づき、前記複数の回路ブロックへの前記クロックの供給と供給停止を行う複数の第二の供給手段を有し、
前記複数の回路ブロックそれぞれの第一の供給手段が前記クロックの供給および供給停止を行う期間を示す供給情報を取得し、
前記供給情報に基づき、前記第一の供給手段による制御信号の送信先として前記複数の第二の供給手段の何れかを指示する制御方法。
【請求項８】
コンピュータに請求項7に記載された制御方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置の回路ブロックにクロックを供給するクロック供給回路に関する。
【背景技術】
【０００２】
近年、プロセス技術の進化によりLSIのリーク電力を削減する技術が確立しつつある。一方、素子の微細化による膨大な数のトランジスタの集積とクロックの高周波数化によって、LSIのダイナミック電力が増大している。LSIの動作電圧を低電圧化してダイナミック電力を削減する手法もあるが、LSIの回路規模の増大や高周波数化が進んでいるためダイナミック電力が増大する問題は依然として残っている。
【０００３】
LSIにおいて、ダイナミック電力を最も多く消費する回路は、通常、クロック供給回路である。クロック供給回路のダイナミック電力を削減する方法として、クロックゲーティング手法が用いられる。クロックゲーティングは、LSI内部の回路がクロック信号の供給を必要とする時だけ当該回路にクロック信号を供給する手法である。
【０００４】
LSI内部の二つ以上の回路ブロックに供給するクロックをゲーティングする場合、各回路ブロックに搭載されたゲーティング回路を制御する。これにより、ゲーティング回路以降のダイナミック電力を削減することができる。しかし、ゲーティング回路に達するまでのクロックパスに配置されたクロックバッファは、依然、ダイナミック電力を消費する。
【０００５】
クロックバッファの動作も停止するには、クロックパスの前段にゲーティング回路を追加した多段構成のクロックゲーティングを使用する。後段のクロックゲーティングをすべて有効にする場合、前段のクロックゲーティングを有効にしてクロックの供給を停止する。これにより、上流のクロックバッファの動作を停止して、クロック供給回路におけるダイナミック電力を効果的に削減することができる。
【０００６】
微細化プロセスにおいては、LSI内部の遅延量のばらつきが問題になる。そのため、多段構成のクロックゲーティングを用いる場合、クロックゲーティングセルに入力するイネーブル信号のセットアップタイミングの保証が難しくなってきた。このような状況から、クロックゲーティングセルに入力するイネーブル信号のセットアップタイミングを解析する機構を設けた多段構成のクロックゲーティング手法が提案されている（特許文献1参照）。特許文献1の手法は、遅延量のばらつきが小さい場合に前段のクロックゲーティングを有効にすることで、消費電力の削減を行う。
【０００７】
しかし、後段のクロックゲーティングをすべて有効にする際、前段のクロックゲーティングを有効にするタイミングが遅れると、クロックバッファを無駄に動作させる期間が生じ、無駄なダイナミック電力の消費が発生する。さらに、ゲーティングの有効化と無効化の頻度が増加すれば、無駄なダイナミック電力の消費が増大する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開2008-204152号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、クロックゲーティングにおける無駄なダイナミック電力の消費を抑制することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１１】
本発明にかかるクロック供給回路は、半導体装置の回路ブロックの内部においてクロックの供給と供給停止を行う第一の供給手段を有する複数の回路ブロックに前記クロックを供給するクロック供給回路であって、前記クロックの供給路に直列に配置され、前記複数の回路ブロックそれぞれの第一の供給手段から入力される制御信号に基づき、前記複数の回路ブロックへの前記クロックの供給と供給停止を行う複数の第二の供給手段と、前記複数の回路ブロックそれぞれの第一の供給手段が前記クロックの供給および供給停止を行う期間を示す供給情報を取得する取得手段と、前記供給情報に基づき、前記第一の供給手段による制御信号の送信先として前記複数の第二の供給手段の何れかを指示する指示手段とを有する。
【発明の効果】
【００１２】
本発明によれば、クロックゲーティングにおける無駄なダイナミック電力の消費を抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】実施例1の半導体装置の構成例を示すブロック図。
【図２】供給情報の一例を示す図。
【図３】クロック制御部によるクロック制御信号などの送信動作を説明するフローチャート。
【図４】経路指示部の処理を説明するフローチャート。
【図５】経路指示部の内部で生成される修正供給情報の一例を示す図。
【図６】経路指示部の内部動作を示すタイミングチャート。
【図７】経路指示部の内部動作を示すタイミングチャート。
【図８】実施例2の半導体装置の構成例を示すブロック図。
【図９】供給期間取得部による供給情報の取得処理を説明するフローチャート。
【発明を実施するための形態】
【００１４】
以下、本発明にかかる実施例の半導体装置のクロック供給回路と、その制御方法を図面を参照して詳細に説明する。なお、実施例は特許請求の範囲にかかる本発明を限定するものではなく、また、実施例において説明する構成の組み合わせのすべてが本発明の解決手段に必須とは限らない。
【実施例１】
【００１５】
［装置の構成］
図1のブロック図により実施例1の半導体装置の構成例を示す。図1に示す半導体装置は、クロック供給回路11、並びに、回路ブロック12、13および14を有す。各回路ブロックはクロック制御部15、クロック供給部16、クロックCLKに同期してデータ転送を行う複数のフリップフロップ(FF)17を有す。なお、クロック制御部15とクロック供給部16は、前述した後段のクロックゲーティングを行う部分である。
【００１６】
各回路ブロックやクロック供給回路11のクロックCLKの供給路（クロックパス）には、クロックスキューやクロックの分配を考慮して、クロックCLKを駆動するクロックバッファ18が適宜配置されている。回路ブロックの詳細や数は任意であり、以下では、回路ブロック12について説明を行い、他の回路ブロックの説明を省略する場合がある。
【００１７】
クロック供給回路11は、供給期間取得部101、経路指示部102、クロック制御部103、104、クロック供給部106、107を有す。なお、図1には、クロック供給回路11がクロック制御部とクロック供給部の組を二つ備える例を示すが、その数は限定されるものではなく、実装形態に応じて数が変化する。なお、クロック制御部103とクロック供給部106、および、クロック制御部104とクロック供給部108は、前述した前段のクロックゲーティングを行う部分である。
【００１８】
クロック供給回路11は、外部からクロックCLKを受信し、受信したクロックCLKを各回路ブロックに供給し、供給停止するクロックの供給制御を行う。また、クロック供給回路11は、図示しないCPUからレジスタアクセスを要求する信号（以下、レジスタアクセス要求信号）115を受信する。なお、CPUは、クロック供給回路11の外部または内部のどちらにあってもよい。また、レジスタアクセス要求信号は、CPUによるFF107へのデータ書込またはデータ読出の要求を示す信号である。
【００１９】
供給期間取得部101は、例えばSRAMのような記憶部に取得した供給情報を保持する。供給情報は、各回路ブロックのクロック制御部15がクロックCLKを供給/停止する期間を示す。供給期間取得部101は、クロックCLKを受信すると、供給情報を経路指示部102に送信する。
【００２０】
経路指示部102は、クロック制御信号の送信経路を示す信号（以下、経路指示信号）116を各回路ブロックのクロック制御部15に送信する。各回路ブロックのクロック制御部15は、CPUからレジスタアクセス要求信号115を受信し、経路指示部102から経路指示信号116を受信する。
【００２１】
クロック制御部15は、経路指示信号116がクロック制御信号111の送信を示す場合、クロック制御信号111をクロック制御部103に送信する。また、経路指示信号116がクロック制御信号112の送信を示す場合、クロック制御信号112をクロック制御部104に送信する。クロック制御信号111、112は、クロック制御部15の制御状態（クロックの供給または停止）を示す。
【００２２】
クロック制御部15は、クロックCLKの供給または停止を切り替える信号（以下、供給/停止信号）113をクロック供給部16に送信する。クロック供給部16は、供給信号113を受信するとFF17へのクロック供給を開始し、停止信号113を受信するとFF17へのクロック供給を停止する。
【００２３】
クロック制御部103は、各回路ブロックのクロック制御部15からクロック制御信号111を入力し、それらクロック制御信号111に基づき、クロックCLKの供給/停止信号107をクロック供給部106に送信する。同様に、クロック制御部104は、各回路ブロックのクロック制御部15からクロック制御信号112を入力し、それらクロック制御信号112に基づき、クロックCLKの供給/停止信号109をクロック供給部108に送信する。なお、クロック制御部103、104は、供給/停止信号107、109の初期値として‘0’（クロックゲーティング無効）を保持する。
【００２４】
クロック供給部106と108は、図1に示すように、クロックCLKの供給路に直列に配置される。クロック供給部106は、クロック制御部103の制御によりクロックゲーティングを行う。クロックCLKの供給路の、クロック供給部106よりもクロックCLKのソース側に配置されたクロック供給部108は、クロック制御部104の制御によりクロックゲーティングを行う。
【００２５】
つまり、クロック制御部103は、各回路ブロックから受信したクロック制御信号111のすべてがクロック供給の停止を示す場合、クロック供給部106によるクロック供給を停止してクロックゲーティングを有効にする。あるいは、クロック制御部104は、各回路ブロックから受信したクロック制御信号112のすべてがクロック供給の停止を示す場合、クロック供給部108によるクロック供給を停止してクロックゲーティングを有効にする。勿論、クロック制御信号111または112の一つがクロック供給を示す場合、クロックゲーティングが有効になることはない。
【００２６】
クロック供給部106は、供給信号107を受信するとクロック供給を開始し、停止信号107を受信するとクロック供給を停止する。同様に、クロック供給部108は、供給信号109を受信するとクロック供給を開始し、停止信号109を受信するとクロック供給を停止する。
【００２７】
●供給情報
図2により供給情報の一例を示す。なお、供給情報は、上述したように、各回路ブロックのクロック制御部15がクロックCLKを供給/停止する期間を示す。例えば、図2に示すGCLK1は回路ブロック11のクロック制御部15のクロック供給に対応し、同様に、GCLK2とGCLK3は回路ブロック12と13のクロック制御部15のクロック供給に対応する。
【００２８】
GCLK1-GCLK3について、カラム1はタイミングの初期値「0」を示し、カラム2はクロック供給の開始タイミングを、カラム3はクロック供給の停止タイミングをそれぞれ示す。同様に、カラム4はクロック供給の開始タイミングを、カラム5はクロック供給の停止タイミングをそれぞれ示す。例えば、半導体装置に対するクロックCLKの供給が開始されたタイミングを「0」として、以降のクロックサイクル数Tcを十進数で表したタイミングを供給情報が示す。
【００２９】
例えば、回路ブロック11のクロック制御部15は、タイミングTc=10においてクロック供給を開始し、Tc=100においてクロック供給を停止し、Tc=400においてクロック供給を開始し、Tc=500においてクロック供給を停止する。
【００３０】
なお、図2には三つの回路ブロック分の供給情報と、五つのカラム分のクロックの供給と停止しか示さないが、回路ブロック分の供給情報が存在し、かつ、クロックの供給と停止の回数に相当する数分のカラムが存在する。また、図2に示す設定値は一例であり、回路ブロックの仕様に応じて供給情報が設定されることは言うまでもない。
【００３１】
●クロック制御部15
図3のフローチャートによりクロック制御部15によるクロック制御信号などの送信動作を説明する。クロック制御部15は、レジスタアクセス要求信号115の受信を行い(S301)、受信したレジスタアクセス要求信号115にレジスタへの書込要求があるか否かを判定する(S302)。レジスタへの書込要求がある場合はレジスタアクセス要求信号115の受信(S301)に戻る。
【００３２】
レジスタへの書込要求がない場合、クロック制御部15は、経路指示部102から経路指示信号116を受信する(S303)。そして、経路指示信号116に従いクロック制御信号111または112を送信し(S304)、略同時に、クロック供給部105へ供給/停止信号113を送信し(S305)、レジスタアクセス要求信号115の受信(S301)に戻る。
【００３３】
●経路指示部
図4のフローチャートにより経路指示部102の処理を説明する。また、図5により経路指示部102の内部で生成される修正供給情報の一例を示す。また、図6、図7のタイミングチャートにより経路指示部102の内部動作を示す。
【００３４】
経路指示部102は、供給期間取得部101から図2に示す供給情報を受信する(S401)。図6、図7において、供給情報が示すクロック供給/停止はCEN_OUT1、CEN_OUT2、CEN_OUT3として示され、それらのハイレベル期間（論理値‘1’）が供給期間に相当する。経路指示部102は、CEN_OUT1、CEN_OUT2、CEN_OUT3のすべてが論理値‘0’（全回路ブロックにおいてクロック供給が停止）になる理想停止期間（以下、期間A）を取得する(S402)。
【００３５】
次に、経路指示部102は、クロック制御部15にクロック制御信号111の送信を指示し(S403)、クロック制御信号111の信号遅延に基づき図5(a)に示す供給情報を生成する(S404)。つまり、経路指示部102は、ステップS401で受信した供給情報（以下、基本供給情報）に、クロック制御信号111の信号遅延量を加算した図5(a)に示す修正供給情報（以下、供給情報A）を生成する。この場合の信号遅延量は、クロック制御信号111をクロック制御部15からクロック制御部103まで送信する際の信号遅延に相当する。図6において、供給情報AはCEN_IN1、CEN_IN2、CEN_IN3として示される。
【００３６】
次に、経路指示部102は、供給情報Aが示すCEN_IN1、CEN_IN2、CEN_IN3の少なくとも一つが論理値‘1’（少なくとも一つの回路ブロックのクロックが供給状態）になっている実供給期間（以下、期間B）を取得する(S405)。そして、理想停止期間においてクロックが供給される期間、言い替えれば、期間Aと期間Bに共通する期間（以下、期間C）において、クロック供給部106が供給するクロックのサイクル数N1を取得する(S406)。サイクル数N1は、図6にGCLK4として示すクロックの部位601と602のサイクル数の合計に相当する。図6に示す例においてサイクル数N1は「16」である。
【００３７】
次に、経路指示部102は、クロック制御部15にクロック制御信号112の送信を指示し(S407)、クロック制御信号112の信号遅延に基づき、図5(b)に示す供給情報を生成する(S408)。つまり、経路指示部102は、基本供給情報に、クロック制御信号112の信号遅延量を加算した図5(b)に示す修正供給情報（以下、供給情報B）を生成する。この場合の信号遅延量は、クロック制御信号112をクロック制御部15からクロック制御部104まで送信する際の信号遅延に相当する。図7において、供給情報BはCEN_IN1、CEN_IN2、CEN_IN3として示される。
【００３８】
次に、経路指示部102は、供給情報Bが示すCEN_IN1、CEN_IN2、CEN_IN3の少なくとも一つが論理値‘1’（少なくとも一つの回路ブロックのクロックが供給状態）になっている実供給期間（以下、期間B'）を取得する(S409)。そして、理想停止期間においてクロックが供給される期間、言い替えれば、期間Aと期間B'に共通する期間（以下、期間C'）において、クロック供給部108が供給するクロックのサイクル数N2を取得する(S410)。サイクル数N2は、図7にGCLK4として示すクロックの部位603と604のサイクル数の合計に相当する。図6に示す例においてサイクル数N2は「9」である。
【００３９】
次に、経路指示部102は、サイクル数N1とN2を比較し(S411)、N1≦N2の場合はクロック制御信号111の送信を指示する経路指示信号116をクロック制御部15に送信する(S412)。また、N1＞N2の場合はクロック制御信号112の送信を指示する経路指示信号116をクロック制御部15に送信する(S413)。
【００４０】
なお、図4には、ステップS403-S406の処理に続いてステップS407-S410の処理を行うように記載したが、ステップS407-S410の処理、ステップS403-S406の処理の順でも構わないし、それら処理を略同時に実行してもよい。
【００４１】
図6、図7に示す例においてはN1＞N2であり、経路指示部102は、ステップS413の処理（クロック制御信号112の送信指示）を実行し、クロック制御部104とクロック供給部108によって前段のクロックゲーティングの有効化が行われる。また、N1≦N2の場合、経路指示部102は、ステップS412の処理（クロック制御信号111の送信指示）を実行し、クロック制御部103とクロック供給部106によって前段のクロックゲーティングの有効化が行われる。言い替えれば、期間CまたはC'におけるクロック供給の期間（クロックサイクル数）が短くなるクロック制御情報の送信経路（送信先）が指示される。
【００４２】
経路指示部102は、供給期間取得部101から供給情報を受信し、クロック制御信号111、112の信号遅延に基づき修正した修正供給情報に基づき、クロック制御情報の送信経路（送信先）を各回路ブロックのクロック制御部15に指示する。言い替えれば、後段のクロックゲーティング（クロック供給部16）の制御信号が切り替わる動作に応じて、前段のクロックゲーティング（クロック供給部106または108）を有効にする制御信号の送信先を変更する。このように、クロック供給回路11を構成することにより、前段のクロックゲーティングが有効になる期間が増え、前段のクロックバッファ18を無駄に動作させる期間を従来の手法よりも減らすことができる。それにより、前段のクロックバッファ18が消費するダイナミック電力の削減が可能になる。
【実施例２】
【００４３】
以下、本発明にかかる実施例2の半導体装置のクロック供給回路と、その制御方法を説明する。なお、実施例2において、実施例1と略同様の構成については、同一の符号を付して、その詳細な説明を省略する場合がある。
【００４４】
実施例1では、供給期間取得部101が供給情報を保持する例を示した。実施例2では、クロック供給回路11を動作させてクロック供給部16がクロック供給を行う期間を供給期間取得部101が取得する例を説明する。
【００４５】
図8のブロック図により実施例2の半導体装置の構成例を示す。従って、実施例2の半導体装置において、供給期間取得部101が各回路ブロックのクロック制御部15から受信する供給/停止信号113bに基づき供給情報を取得する部分が実施例1と異なり、他の構成は実施例1と同様である。
【００４６】
各回路ブロックのクロック制御部15は、対応するクロック供給部16に供給/停止信号113aを送信するとともに、供給期間取得部101に同様の供給/停止信号113bを送信する。供給/停止信号113bを受信した供給期間取得部101は、図2に示す供給情報を生成し、生成した供給情報を経路指示部102に送信する。供給期間取得部101は、クロックサイクル数を計測するクロックカウンタを備え、供給情報を書き込むカラム番号Nを内部で保持する。
【００４７】
図9のフローチャートにより供給期間取得部101による供給情報の取得処理を説明する。なお、図9には、一回路ブロックに対応する供給情報の取得処理を示すが、クロック制御部11がクロックCLKを供給する全回路ブロックについての供給情報の取得処理が並列的に実行される。
【００４８】
供給期間取得部101は、クロックカウンタのカウント値を初期化してクロックカウンタの動作を開始し(S801)、内部で保持するカラム番号Nを1に初期化する(S802)。そして、クロック制御部15から受信する供給/停止信号113bが変化（供給信号から停止信号、または、停止信号から供給信号に変化）したか否かを判定する(S803)。
【００４９】
供給/停止信号が変化した場合、供給期間取得部101は、クロックカウンタを一時停止し(S804)、一時停止したクロックカウンタのカウント値を供給情報のカラムNに書き込む(S805)。続いて、供給期間取得部101は、クロックカウンタのカウント値を初期化してクロックカウンタの動作を再開し(S806)、カラム番号Nをインクリメントする(S807)。
【００５０】
次に、供給期間取得部101は、経路指示部102から供給情報の要求があるか否かを判定し(S808)、供給情報の要求がない場合は処理をステップS803に戻す。また、供給情報の要求がある場合、供給期間取得部101は、供給情報を経路指示部102に送信する(S809)。
【００５１】
このように、供給期間取得部101が外部から供給情報を取得したり保持しない場合も、供給情報の取得が可能になり、実施例1において説明したクロックの供給制御が可能になる。
【００５２】
［その他の実施例］
本発明は、上述の実施形態の一以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける一以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、一以上の機能を実現する回路（例えば、ASIC）によっても実現可能である。
【符号の説明】
【００５３】
11 … クロック供給回路、15 … クロック制御部、103、104 … クロック制御部、106、107 … クロック供給部、101 … 供給期間取得部、102 … 経路指示部
【図１】
2017004269.tif 000003
【図２】
2017004269.tif 000004
【図３】
2017004269.tif 000005
【図４】
2017004269.tif 000006
【図５】
2017004269.tif 000007
【図６】
2017004269.tif 000008
【図７】
2017004269.tif 000009
【図８】
2017004269.tif 000010
【図９】
2017004269.tif 000011