(57)【要約】【課題】トランザクションを単位として扱うバスシステムにおいて消費電力を低減する。【解決手段】クロックゲーティング回路は、クロックイネーブル信号生成部とマスククロック生成部とを備える。クロックイネーブル信号生成部は、バスシステムを複数のリージョンに分割した各々においてアウトスタンディングトランザクションの数を計数することにより複数のリージョンの各々のためのクロックイネーブル信号を生成する。マスククロック生成部は、複数のリージョンの各々のためのクロックイネーブル信号によってクロックをマスクしてマスククロックを生成する。【選択図】図１
2013106166.tif 000002
【特許請求の範囲】
【請求項１】
バスシステムを複数のリージョンに分割した各々においてアウトスタンディングトランザクションの数を計数することにより前記複数のリージョンの各々のためのクロックイネーブル信号を生成するクロックイネーブル信号生成部と、
前記複数のリージョンの各々のためのクロックイネーブル信号によってクロックをマスクしてマスククロックを生成するマスククロック生成部と
を具備するクロックゲーティング回路。
【請求項２】
前記クロックイネーブル信号生成部は、前記複数のリージョンの各々に対してリクエストが入力された時点で前記アウトスタンディングトランザクションの数を加算し、前記リクエストに対するレスポンスが出力された時点で前記アウトスタンディングトランザクションの数を減算することにより前記アウトスタンディングトランザクションの数を計数し、
前記マスククロック生成部は、前記アウトスタンディングトランザクションの数が０であれば前記クロックをマスクして前記マスククロックを出力し、前記アウトスタンディングトランザクションの数が１以上であれば前記クロックをそのまま前記マスククロックとして出力する
請求項１記載のクロックゲーティング回路。
【請求項３】
前記クロックイネーブル信号生成部は、前記複数のリージョンの各々に対してリクエストが入力された時点で前記アウトスタンディングトランザクションの数を加算し、前記リクエストに対するレスポンスが出力された時点で前記アウトスタンディングトランザクションの数を減算することにより前記アウトスタンディングトランザクションの数を計数するカウンタを備え、
前記マスククロック生成部は、前記アウトスタンディングトランザクションの数が０であれば前記クロックをマスクして前記マスククロックを出力し、前記アウトスタンディングトランザクションの数が１以上であれば前記クロックをそのまま前記マスククロックとして出力するクロックイネーブラを備える
請求項１記載のクロックゲーティング回路。
【請求項４】
複数のマスタの各々に対応して設けられ、対応するマスタからのリクエストをデコードする複数のリクエストデコーダと、
複数のスレーブの各々に対応して設けられ、前記複数のリクエストデコーダによってデコードされたリクエストを調停して対応するスレーブに出力する複数のリクエストアービタと、
前記複数のスレーブの各々に対応して設けられ、対応するスレーブからのレスポンスをデコードする複数のレスポンスデコーダと、
前記複数のマスタの各々に対応して設けられ、前記複数のレスポンスデコーダによってデコードされたレスポンスを調停して対応するマスタに出力する複数のレスポンスアービタと、
前記複数のリクエストデコーダおよび前記複数のレスポンスアービタのうち同じマスタに対応するリクエストデコーダおよびレスポンスアービタまたは複数のリクエストアービタおよび複数のレスポンスデコーダのうち同じスレーブに対応するリクエストアービタおよびレスポンスデコーダが同じリージョンとなるよう複数のリージョンに分類した各々においてアウトスタンディングトランザクションの数を計数することにより前記複数のリージョンの各々のためのクロックイネーブル信号を生成するクロックイネーブル信号生成部と、
前記複数のリージョンの各々のためのクロックイネーブル信号によってクロックをマスクしてマスククロックを生成するマスククロック生成部と
を具備するバスシステム。
【請求項５】
前記クロックイネーブル信号生成部は、前記複数のリージョンの各々に対してリクエストが入力された時点で前記アウトスタンディングトランザクションの数を加算し、前記リクエストに対するレスポンスが出力された時点で前記アウトスタンディングトランザクションの数を減算することにより前記アウトスタンディングトランザクションの数を計数し、
前記マスククロック生成部は、前記アウトスタンディングトランザクションの数が０であれば前記クロックをマスクして前記マスククロックを出力し、前記アウトスタンディングトランザクションの数が１以上であれば前記クロックをそのまま前記マスククロックとして出力する
請求項４記載のバスシステム。
【請求項６】
前記クロックイネーブル信号生成部は、前記複数のリージョンの各々に対してリクエストが入力された時点で前記アウトスタンディングトランザクションの数を加算し、前記リクエストに対するレスポンスが出力された時点で前記アウトスタンディングトランザクションの数を減算することにより前記アウトスタンディングトランザクションの数を計数するカウンタを備え、
前記マスククロック生成部は、前記アウトスタンディングトランザクションの数が０であれば前記クロックをマスクして前記マスククロックを出力し、前記アウトスタンディングトランザクションの数が１以上であれば前記クロックをそのまま前記マスククロックとして出力するクロックイネーブラを備える
請求項４記載のバスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、バスシステムに関し、特にバスシステムのためのクロックゲーティング回路に関する。
【背景技術】
【０００２】
バスシステムでは、接続されるマスタおよびスレーブの増加や、スプリットバスプロトコルの導入等によるゲート規模の増大に伴い、消費電力も増大する傾向にある。そこで、従来よりバスシステムにおいて消費電力を抑制するために、クロックの供給を制御する技術が提案されている。例えば、複数のバスを用いた計算機システムにおいて、データが通るバスのみにクロックを供給するようにした技術が提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−３０５２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の従来技術では、前段からのリクエスト信号とクロックの論理積を生成することにより各段にクロックを供給している。すなわち、データ入力が行われるタイミングのみクロックが供給されるように構成している。しかしながら、近年のバスシステムにおいて採用されるスプリットバスプロトコルでは、１つのトランザクションにおいてリクエストとそのリクエストに対するレスポンスとが分離して非同期に実行されるため、それぞれを個別に扱うのは非効率である。
【０００５】
本技術はこのような状況に鑑みて生み出されたものであり、トランザクションを単位として扱うバスシステムにおいて消費電力を低減することを目的とする。
【課題を解決するための手段】
【０００６】
本技術は、上述の問題点を解消するためになされたものであり、その第１の側面は、バスシステムを複数のリージョンに分割した各々においてアウトスタンディングトランザクションの数を計数することにより上記複数のリージョンの各々のためのクロックイネーブル信号を生成するクロックイネーブル信号生成部と、上記複数のリージョンの各々のためのクロックイネーブル信号によってクロックをマスクしてマスククロックを生成するマスククロック生成部とを具備するクロックゲーティング回路である。これにより、トランザクション単位で各リージョンのクロックを制御させるという作用をもたらす。
【０００７】
また、この第１の側面において、上記クロックイネーブル信号生成部は、上記複数のリージョンの各々に対してリクエストが入力された時点で上記アウトスタンディングトランザクションの数を加算し、上記リクエストに対するレスポンスが出力された時点で上記アウトスタンディングトランザクションの数を減算することにより上記アウトスタンディングトランザクションの数を計数し、上記マスククロック生成部は、上記アウトスタンディングトランザクションの数が０であれば上記クロックをマスクして上記マスククロックを出力し、上記アウトスタンディングトランザクションの数が１以上であれば上記クロックをそのまま上記マスククロックとして出力するように構成してもよい。これにより、アウトスタンディングトランザクションの数に応じて各リージョンのクロックを制御させるという作用をもたらす。
【０００８】
また、この第１の側面において、上記クロックイネーブル信号生成部は、上記複数のリージョンの各々に対してリクエストが入力された時点で上記アウトスタンディングトランザクションの数を加算し、上記リクエストに対するレスポンスが出力された時点で上記アウトスタンディングトランザクションの数を減算することにより上記アウトスタンディングトランザクションの数を計数するカウンタを備え、上記マスククロック生成部は、上記アウトスタンディングトランザクションの数が０であれば上記クロックをマスクして上記マスククロックを出力し、上記アウトスタンディングトランザクションの数が１以上であれば上記クロックをそのまま上記マスククロックとして出力するクロックイネーブラを備えてもよい。これにより、カウンタにより計数されたアウトスタンディングトランザクションの数に応じて各リージョンのクロックを制御させるという作用をもたらす。
【０００９】
また、本技術の第２の側面は、複数のマスタの各々に対応して設けられ、対応するマスタからのリクエストをデコードする複数のリクエストデコーダと、複数のスレーブの各々に対応して設けられ、上記複数のリクエストデコーダによってデコードされたリクエストを調停して対応するスレーブに出力する複数のリクエストアービタと、上記複数のスレーブの各々に対応して設けられ、対応するスレーブからのレスポンスをデコードする複数のレスポンスデコーダと、上記複数のマスタの各々に対応して設けられ、上記複数のレスポンスデコーダによってデコードされたレスポンスを調停して対応するマスタに出力する複数のレスポンスアービタと、上記複数のリクエストデコーダおよび上記複数のレスポンスアービタのうち同じマスタに対応するリクエストデコーダおよびレスポンスアービタまたは複数のリクエストアービタおよび複数のレスポンスデコーダのうち同じスレーブに対応するリクエストアービタおよびレスポンスデコーダが同じリージョンとなるよう複数のリージョンに分類した各々においてアウトスタンディングトランザクションの数を計数することにより上記複数のリージョンの各々のためのクロックイネーブル信号を生成するクロックイネーブル信号生成部と、上記複数のリージョンの各々のためのクロックイネーブル信号によってクロックをマスクしてマスククロックを生成するマスククロック生成部と
を具備するバスシステムである。これにより、バスシステムにおいて、トランザクション単位で各リージョンのクロックを制御させるという作用をもたらす。
【００１０】
また、この第２の側面において、上記クロックイネーブル信号生成部は、上記複数のリージョンの各々に対してリクエストが入力された時点で上記アウトスタンディングトランザクションの数を加算し、上記リクエストに対するレスポンスが出力された時点で上記アウトスタンディングトランザクションの数を減算することにより上記アウトスタンディングトランザクションの数を計数し、上記マスククロック生成部は、上記アウトスタンディングトランザクションの数が０であれば上記クロックをマスクして上記マスククロックを出力し、上記アウトスタンディングトランザクションの数が１以上であれば上記クロックをそのまま上記マスククロックとして出力するように構成してもよい。これにより、バスシステムにおいて、アウトスタンディングトランザクションの数に応じて各リージョンのクロックを制御させるという作用をもたらす。
【００１１】
また、この第２の側面において、上記クロックイネーブル信号生成部は、上記複数のリージョンの各々に対してリクエストが入力された時点で上記アウトスタンディングトランザクションの数を加算し、上記リクエストに対するレスポンスが出力された時点で上記アウトスタンディングトランザクションの数を減算することにより上記アウトスタンディングトランザクションの数を計数するカウンタを備え、上記マスククロック生成部は、上記アウトスタンディングトランザクションの数が０であれば上記クロックをマスクして上記マスククロックを出力し、上記アウトスタンディングトランザクションの数が１以上であれば上記クロックをそのまま上記マスククロックとして出力するクロックイネーブラを備えてもよい。これにより、バスシステムにおいて、カウンタにより計数されたアウトスタンディングトランザクションの数に応じて各リージョンのクロックを制御させるという作用をもたらす。
【発明の効果】
【００１２】
本技術によれば、トランザクションを単位として扱うバスシステムにおいて消費電力を低減することができるという優れた効果を奏し得る。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態におけるバスシステムの全体構成例を示す図である。
【図２】本発明の実施の形態におけるインターコネクト３００の構成例を示す図である。
【図３】本発明の実施の形態におけるリージョンの分類例を示す図である。
【図４】本発明の実施の形態における各リージョンの動作遷移例を示す図である。
【図５】本発明の実施の形態のクロック制御部におけるクロックゲーティング部４０の基本構成例を示す図である。
【図６】本発明の実施の形態のクロックゲーティング部４０における対象リージョンの入力開始および出力完了の契機となるイベント例を示す図である。
【図７】本発明の実施の形態におけるクロック制御部４００の一構成例を示す図である。
【図８】本発明の実施の形態におけるクロックゲーティング部４１０の一構成例を示す図である。
【図９】本発明の実施の形態におけるクロックイネーブル信号生成部４３０の一構成例を示す図である。
【図１０】本発明の実施の形態におけるマスククロック生成部４７０の一構成例を示す図である。
【図１１】本発明の実施の形態におけるクロック制御部４００の変形例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．実施の形態（トランザクションを単位とした各リージョンのクロック制御）
２．変形例
【００１５】
＜１．実施の形態＞
［バスシステムの全体構成］
図１は、本発明の実施の形態におけるバスシステムの全体構成例を示す図である。このバスシステムでは、バスとして機能するインターコネクト３００に、複数の接続機器が接続される。複数の接続機器は、Ｍ台のマスタ１００とＳ台のスレーブ２００とに分類される。マスタ１００はデータ転送を主導する接続機器であり、スレーブ２００は受動的に動作する接続機器である。マスタとなる接続機器としては、例えばプロセッサが想定される。スレーブとなる接続機器としては、例えばメモリが想定される。なお、ＭおよびＳは１以上の整数である。
【００１６】
図２は、本発明の実施の形態におけるインターコネクト３００の構成例を示す図である。ここでは、マスタ１００およびスレーブ２００がそれぞれ２台ずつのバスシステムを想定して説明する。
【００１７】
また、ここでは、データ転送の要求と実際のデータ転送とをそれぞれ独立して制御する（スプリットトランザクション）バスの代表例として、ＡＸＩ（Advanced eXtensible Interface）プロトコルを想定する。このＡＸＩプロトコルでは、リード動作のためのパスとして、リードアドレスチャネルおよびリードデータチャネルが用意されている。マスタ１００からリードアドレスチャネルを介してスレーブ２００にリードアドレスを含むリクエストが転送されると、これに応答してリードデータチャネルを介してスレーブ２００からマスタ１００にリードデータが転送されるようになっている。また、ＡＸＩプロトコルでは、ライト動作のためのパスとして、ライトアドレスチャネル、ライトデータチャネルおよびライトレスポンスチャネルが用意されている。マスタ１００からライトアドレスチャネルおよびライトデータチャネルを介してスレーブ２００にライトリクエストが転送されると、これに応答してスレーブ２００においてライト動作が行われる。そして、そのライト動作の結果が、ライトレスポンスチャネルを介してスレーブ２００からマスタ１００に転送されるようになっている。このようなスプリットトランザクションバスでは、リクエストが発行されてからレスポンスがされていない未解決なトランザクションをアウトスタンディングトランザクションと称する。
【００１８】
インターコネクト３００は、アドレスチャネルバスマトリックス３１０と、レスポンスチャネルバスマトリックス３２０とを備えている。アドレスチャネルバスマトリックス３１０は、リードアドレスチャネルまたはライトアドレスチャネルおよびライトデータチャネルの伝送を行うチャネルである。レスポンスチャネルバスマトリックス３２０は、リードデータチャネルまたはライトレスポンスチャネルの伝送を行うチャネルである。
【００１９】
アドレスチャネルバスマトリックス３１０は、デコーダ３１１および３１２と、アービタ３１３および３１４とを備えている。デコーダ３１１は、信号線３０１によるマスタ＃１からのリクエストをデコードして、スレーブ＃１宛であれば信号線３１５に、スレーブ＃２宛であれば信号線３１６に、それぞれリクエストを出力するものである。デコーダ３１２は、信号線３０５によるマスタ＃２からのリクエストをデコードして、スレーブ＃１宛であれば信号線３１７に、スレーブ＃２宛であれば信号線３１８に、それぞれリクエストを出力するものである。アービタ３１３は、信号線３１５または３１６によるデコーダ３１１または３１２からのリクエストを調停して信号線３０３に出力するものである。アービタ３１４は、信号線３１７または３１８によるデコーダ３１１または３１２からのリクエストを調停して信号線３０７に出力するものである。なお、デコーダ３１１および３１２は、特許請求の範囲に記載のリクエストデコーダの一例である。また、アービタ３１３および３１４は、特許請求の範囲に記載のリクエストアービタの一例である。
【００２０】
レスポンスチャネルバスマトリックス３２０は、アービタ３２１および３２２と、デコーダ３２３および３２４とを備えている。デコーダ３２３は、信号線３０４によるスレーブ＃１からのレスポンスをデコードして、マスタ＃１宛であれば信号線３２５に、マスタ＃２宛であれば信号線３２７に、それぞれリクエストを出力するものである。デコーダ３２４は、信号線３０８によるスレーブ＃２からのレスポンスをデコードして、マスタ＃１宛であれば信号線３２６に、マスタ＃２宛であれば信号線３２８に、それぞれリクエストを出力するものである。アービタ３２１は、信号線３２５または３２６によるデコーダ３２３または３２４からのレスポンスを調停して信号線３０２に出力するものである。アービタ３２２は、信号線３２７または３２８によるデコーダ３２３または３２４からのレスポンスを調停して信号線３０６に出力するものである。なお、アービタ３２１および３２２は、特許請求の範囲に記載のレスポンスアービタの一例である。また、デコーダ３２３および３２４は、特許請求の範囲に記載のレスポンスデコーダの一例である。
【００２１】
すなわち、デコーダ３１１はマスタ＃１に対応して設けられ、デコーダ３１２はマスタ＃２に対応して設けられている。アービタ３１３はスレーブ＃１に対応して設けられ、アービタ３１４はスレーブ＃２に対応して設けられている。デコーダ３２３はスレーブ＃１に対応して設けられ、デコーダ３２４はスレーブ＃２に対応して設けられている。アービタ３２１はマスタ＃１に対応して設けられ、アービタ３２２はマスタ＃２に対応して設けられている。
【００２２】
ＡＸＩにおいて、リードアドレスチャネルおよびリードデータチャネルの組が１つのトランザクションを形成し、また、ライトアドレスチャネル、ライトデータチャネルおよびライトレスポンスチャネルの組が１つのトランザクションを形成する。
【００２３】
ＡＸＩプロトコルでは、それぞれのチャネルにおいてバリッド信号（ＶＡＬＩＤ）およびレディ信号（ＲＥＡＤＹ）がともにアサートされているときに情報の伝達（例えば、データ転送）が行われる。例えば、リードアドレスチャネルの場合、送信元であるマスタ１００はリードアドレス等をセットするとともに、バリッド信号（ＡＲＶＡＬＩＤ）を「１」にアサートする。このとき、受信側であるスレーブ２００は、受信可能となるタイミングにおいてレディ信号（ＡＲＲＥＡＤＹ）を「１」にアサートする。これにより、バリッド信号（ＡＲＶＡＬＩＤ）およびレディ信号（ＡＲＲＥＡＤＹ）がともに「１」にアサートされているときに、リードアドレス等が伝達される。
【００２４】
［リージョン］
図３は、本発明の実施の形態におけるリージョンの分類例を示す図である。アドレスチャネルバスマトリックス３１０およびレスポンスチャネルバスマトリックス３２０は、クロックの制御を行う単位として４つのリージョンに分割される。リージョン＃１（３１）およびリージョン＃２（３２）はイニシエータ（Initiator）が接続されるインターフェースにある領域で、主にイニシエータからのデータの転送先をデコードする機能を有する。リージョン＃３（３３）およびリージョン＃４（３４）はターゲット（Target）が接続されるインターフェースにある領域で、主に複数のイニシエータからのデータを調停してその順番通りにターゲットに対して転送する機能を有する。ここで、イニシエータとは転送を開始するマスタまたはスレーブを、ターゲットとは転送を受信するマスタまたはスレーブを、それぞれ意味する。つまり、アドレスのイニシエータはマスタ、ターゲットはスレーブで、レスポンスのイニシエータはスレーブ、ターゲットはマスタである。
【００２５】
この例では、デコーダ３１１およびアービタ３２１がリージョン＃１（３１）に分類され、デコーダ３１２およびアービタ３２２がリージョン＃２（３２）に分類される。また、デコーダ３２３およびアービタ３１３がリージョン＃３（３３）に分類され、デコーダ３２４およびアービタ３１４がリージョン＃４（３４）に分類される。
【００２６】
各リージョンには、後述するクロック制御部によって独立したクロックが供給される。したがって、あるリージョンに属するデコーダまたはアービタは、他のリージョンに属するデコーダまたはアービタとは異なるクロックにより動作する。すなわち、各リージョンに対するクロックを制御することにより、各リージョンにおいて消費される電力を制御することができる。
【００２７】
なお、リージョンの分類の際には、リージョン毎のフリップフロップの数の均衡を保つように分類されることが望ましい。
【００２８】
図４は、本発明の実施の形態における各リージョンの動作遷移例を示す図である。例えば、マスタ＃１からスレーブ＃２への転送が開始された場合、同図（ａ）のように、まずマスタ＃１からのアドレス入力信号によりリージョン＃１のみへのクロック供給が開始される。このとき、デコーダ３１１のみならず、アービタ３２１にもクロックが供給される。
【００２９】
デコーダ３１１においてアドレスはデコードされ、次にクロックを投入する領域がリージョン＃４であることが後述のクロック制御部に通知される。これにより、同図（ｂ）のように、アドレスがリージョン＃４に到着する前に、リージョン＃４に対するクロック供給が開始される。このとき、アービタ３１４のみならず、デコーダ３２４にもクロックが供給される。
【００３０】
この例ではアドレスチャネルバスマトリックス３１０およびレスポンスチャネルバスマトリックス３２０内のリージョンを共通化したため、レスポンスがスレーブから発行される際には、既に使用するリージョン＃１および＃４にはクロックが供給されている。レスポンスは、同図（ｃ）のようにデコーダ３２４およびアービタ３２１を経由してマスタへ伝送される。その後、マスタへのレスポンスが完了し、かつ、リージョン＃１および＃４を使用しているトランザクションが他にない場合、クロック供給は停止する。
【００３１】
［クロックゲーティング］
図５は、本発明の実施の形態のクロック制御部におけるクロックゲーティング部４０の基本構成例を示す図である。このクロックゲーティング部４０は、リージョン毎に設けられ、それぞれクロックイネーブル信号生成部４１と、マスククロック生成部４２とを備えている。
【００３２】
クロックイネーブル信号生成部４１は、対応するリージョンにおけるアウトスタンディングトランザクションの数を計数することにより対応するリージョンのためのクロックイネーブル信号を生成するものである。クロックイネーブル信号生成部４１には、入力開始信号および出力完了信号が入力される。入力開始信号は、対応するリージョンへリクエストが入力されたことを示す信号である。出力完了信号は、対応するリージョンへのリクエストに対するレスポンスが出力されたことを示す信号である。クロックイネーブル信号生成部４１は、カウンタを保持し、対応するリージョンへリクエストが入力された時点でこのリージョンにおけるアウトスタンディングトランザクションの数を加算（インクリメント）する。そして、クロックイネーブル信号生成部４１は、対応するリージョンへのリクエストに対するレスポンスが出力された時点でこのリージョンにおけるアウトスタンディングトランザクションの数を減算（デクリメント）する。
【００３３】
このようにして計数されたアウトスタンディングトランザクションの数が０の場合、そのリージョンにはアウトスタンディングトランザクションが存在しないことになるため、クロックイネーブル信号を無効にする。一方、アウトスタンディングトランザクションの数が１以上の場合、そのリージョンにアウトスタンディングトランザクションが少なくとも１つ存在しないことになるため、クロックイネーブル信号を有効にする。
【００３４】
マスククロック生成部４２は、クロックイネーブル信号生成部４１によって生成されたクロックイネーブル信号によりクロックをマスクして、マスククロックを生成するものである。すなわち、クロックイネーブル信号が有効である場合には、マスククロック生成部４２はクロックをそのままマスククロックとして出力する。一方、クロックイネーブル信号が無効である場合には、マスククロック生成部４２はクロックをマスクしてマスククロックを出力する。したがって、後者の場合、対応するリージョンには有効なクロックが供給されず、そのリージョンに属する回路はクロックに同期した動作を停止する。
【００３５】
図６は、本発明の実施の形態のクロックゲーティング部４０における対象リージョンの入力開始および出力完了の契機となるイベント例を示す図である。
【００３６】
リージョン＃１では、マスタ＃１からリクエストが発行されることによりトランザクションが開始され、これが入力開始の条件となる。すなわち、マスタ＃１からのトランザクションが開始したことを示す信号が入力されると、アウトスタンディングトランザクションの数が加算される。また、リージョン＃１では、マスタ＃１へレスポンスが到達することによりトランザクションが完了し、これが出力完了の条件となる。すなわち、マスタ＃１からのトランザクションが完了したことを示す信号が入力されると、アウトスタンディングトランザクションの数が減算される。このように、リージョン＃１では、マスタ＃１からのトランザクションのうち開始から完了までの状態にあるものを計数して、これが１つ以上あればリージョン＃１のクロックを有効にする。
【００３７】
リージョン＃２では、マスタ＃２からリクエストが発行されることによりトランザクションが開始され、これが入力開始の条件となる。すなわち、マスタ＃２からのトランザクションが開始したことを示す信号が入力されると、アウトスタンディングトランザクションの数が加算される。また、リージョン＃２では、マスタ＃２へレスポンスが到達することによりトランザクションが完了し、これが出力完了の条件となる。すなわち、マスタ＃２からのトランザクションが完了したことを示す信号が入力されると、アウトスタンディングトランザクションの数が減算される。このように、リージョン＃２では、マスタ＃２からのトランザクションのうち開始から完了までの状態にあるものを計数して、これが１つ以上あればリージョン＃２のクロックを有効にする。
【００３８】
リージョン＃３では、マスタ＃１からスレーブ＃１へのコマンドが発行されることにより動作が開始され、これが入力開始の条件となる。すなわち、マスタ＃１からスレーブ＃１へのコマンドが発行されたことを示す信号が入力されると、アウトスタンディングトランザクションの数が加算される。また、リージョン＃３では、マスタ＃１からスレーブ＃１へのコマンドが完了することにより動作が完了し、これが出力完了の条件となる。すなわち、マスタ＃１からスレーブ＃１へのコマンドが完了したことを示す信号が入力されると、アウトスタンディングトランザクションの数が減算される。このように、リージョン＃３では、１つ目の条件として、マスタ＃１からスレーブ＃１へのコマンドのうち発行から完了までの状態にあるものを計数して、これが１つ以上あればリージョン＃３のクロックを有効にする。
【００３９】
また、リージョン＃３では、マスタ＃２からスレーブ＃１へのコマンドが発行されることにより動作が開始され、これが入力開始の条件となる。すなわち、マスタ＃２からスレーブ＃１へのコマンドが発行されたことを示す信号が入力されると、アウトスタンディングトランザクションの数が加算される。また、リージョン＃３では、マスタ＃２からスレーブ＃１へのコマンドが完了することにより動作が完了し、これが出力完了の条件となる。すなわち、マスタ＃２からスレーブ＃１へのコマンドが完了したことを示す信号が入力されると、アウトスタンディングトランザクションの数が減算される。このように、リージョン＃３では、２つ目の条件として、マスタ＃２からスレーブ＃１へのコマンドのうち発行から完了までの状態にあるものを計数して、これが１つ以上あればリージョン＃３のクロックを有効にする。
【００４０】
リージョン＃３では、スレーブ＃１に対してマスタ＃１および＃２の２つからアクセスが発行される可能性がある。そのため、上述の２つの条件が存在するが、何れか一方の条件が成立すれば、すなわち何れか一方のアウトスタンディングトランザクションが存在すれば、リージョン＃３のクロックを有効にする。
【００４１】
リージョン＃４では、マスタ＃１からスレーブ＃２へのコマンドが発行されることにより動作が開始され、これが入力開始の条件となる。すなわち、マスタ＃１からスレーブ＃２へのコマンドが発行されたことを示す信号が入力されると、アウトスタンディングトランザクションの数が加算される。また、リージョン＃４では、マスタ＃１からスレーブ＃２へのコマンドが完了することにより動作が完了し、これが出力完了の条件となる。すなわち、マスタ＃１からスレーブ＃２へのコマンドが完了したことを示す信号が入力されると、アウトスタンディングトランザクションの数が減算される。このように、リージョン＃４では、１つの条件として、マスタ＃１からスレーブ＃２へのコマンドのうち発行から完了までの状態にあるものを計数して、これが１つ以上あればリージョン＃４のクロックを有効にする。
【００４２】
また、リージョン＃４では、マスタ＃２からスレーブ＃２へのコマンドが発行されることにより動作が開始され、これが入力開始の条件となる。すなわち、マスタ＃２からスレーブ＃２へのコマンドが発行されたことを示す信号が入力されると、アウトスタンディングトランザクションの数が加算される。また、リージョン＃４では、マスタ＃２からスレーブ＃２へのコマンドが完了することにより動作が完了し、これが出力完了の条件となる。すなわち、マスタ＃２からスレーブ＃２へのコマンドが完了したことを示す信号が入力されると、アウトスタンディングトランザクションの数が減算される。このように、リージョン＃４では、２つ目の条件として、マスタ＃２からスレーブ＃２へのコマンドのうち発行から完了までの状態にあるものを計数して、これが１つ以上あればリージョン＃４のクロックを有効にする。
【００４３】
リージョン＃４では、スレーブ＃１に対してマスタ＃１および＃２の２つからアクセスが発行される可能性がある。そのため、上述の２つの条件が存在するが、何れか一方の条件が成立すれば、すなわち何れか一方のアウトスタンディングトランザクションが存在すれば、リージョン＃４のクロックを有効にする。
【００４４】
［クロック制御部の構成］
図７は、本発明の実施の形態におけるクロック制御部４００の一構成例を示す図である。クロック制御部４００は、インターコネクト３００の内部または外部に存在し、インターコネクト３００の内部から必要な情報を取得して、各リージョンのためのクロックを制御するものである。
【００４５】
クロック制御部４００は、クロックゲーティング部４１０、４２０と、クロックイネーブル信号生成部４３０、４４０、４５０、４６０と、マスククロック生成部４７０、４８０とを備える。
【００４６】
クロックゲーティング部４１０は、リージョン＃１のためのクロックを供給するものである。クロックゲーティング部４１０の基本的な構成は図５により説明したクロックゲーティング部４０と同様である。クロックゲーティング部４１０は、マスタ＃１からのトランザクションが開始したことを示す信号が信号線３０１により入力されると、アウトスタンディングトランザクションの数を加算する。また、クロックゲーティング部４１０は、マスタ＃１からのトランザクションが完了したことを示す信号が信号線３０２により入力されると、アウトスタンディングトランザクションの数を減算する。アウトスタンディングトランザクションの数が１以上の場合、信号線４０１から入力されたソースクロックをそのままリージョン＃１のためのクロックとして出力する。アウトスタンディングトランザクションの数が０の場合、信号線４０１から入力されたソースクロックがマスクされ、有効なクロックは供給されない。クロックゲーティング部４１０の詳細構成については図面を参照して後述する。
【００４７】
クロックゲーティング部４２０は、リージョン＃２のためのクロックを供給するものである。クロックゲーティング部４２０の構成は上述のクロックゲーティング部４１０に準ずるものとなる。クロックゲーティング部４２０は、マスタ＃２からのトランザクションが開始したことを示す信号が信号線３０５により入力されると、アウトスタンディングトランザクションの数を加算する。また、クロックゲーティング部４２０は、マスタ＃２からのトランザクションが完了したことを示す信号が信号線３０６により入力されると、アウトスタンディングトランザクションの数を減算する。アウトスタンディングトランザクションの数が１以上の場合、信号線４０１から入力されたソースクロックをそのままリージョン＃２のためのクロックとして出力する。アウトスタンディングトランザクションの数が０の場合、信号線４０１から入力されたソースクロックがマスクされ、有効なクロックは供給されない。
【００４８】
クロックイネーブル信号生成部４３０および４５０と、マスククロック生成部４７０とは、リージョン＃３のためのクロックを供給するものである。これらを合わせた基本的な構成は図５により説明したクロックゲーティング部４０と同様である。すなわち、クロックイネーブル信号生成部４３０および４５０がクロックイネーブル信号生成部４１に対応し、マスククロック生成部４７０がマスククロック生成部４２に対応する。
【００４９】
クロックイネーブル信号生成部４３０は、信号線３１５によりマスタ＃１からスレーブ＃１へのコマンドが発行されたことを示す信号が入力されると、アウトスタンディングトランザクションの数を加算する。また、クロックイネーブル信号生成部４３０は、信号線３２５によりマスタ＃１からスレーブ＃１へのコマンドが完了したことを示す信号が入力されると、アウトスタンディングトランザクションの数を減算する。アウトスタンディングトランザクションの数が０の場合、クロックイネーブル信号を無効にする。一方、アウトスタンディングトランザクションの数が１以上の場合、クロックイネーブル信号を有効にする。
【００５０】
クロックイネーブル信号生成部４５０は、信号線３１７によりマスタ＃２からスレーブ＃１へのコマンドが発行されたことを示す信号が入力されると、アウトスタンディングトランザクションの数を加算する。また、クロックイネーブル信号生成部４５０は、信号線３２７によりマスタ＃２からスレーブ＃１へのコマンドが完了したことを示す信号が入力されると、アウトスタンディングトランザクションの数を減算する。アウトスタンディングトランザクションの数が０の場合、クロックイネーブル信号を無効にする。一方、アウトスタンディングトランザクションの数が１以上の場合、クロックイネーブル信号を有効にする。
【００５１】
マスククロック生成部４７０は、クロックイネーブル信号生成部４３０または４５０によって生成されたクロックイネーブル信号の何れかが有効であれば、信号線４０１から入力されたソースクロックをそのままリージョン＃３のためのクロックとして出力する。一方、クロックイネーブル信号生成部４３０および４５０によって生成されたクロックイネーブル信号の何れもが無効を示している場合には、信号線４０１から入力されたソースクロックがマスクされ、有効なクロックは供給されない。
【００５２】
クロックイネーブル信号生成部４４０および４６０と、マスククロック生成部４８０とは、リージョン＃４のためのクロックを供給するものである。これらを合わせた基本的な構成は図５により説明したクロックゲーティング部４０と同様である。すなわち、クロックイネーブル信号生成部４４０および４６０がクロックイネーブル信号生成部４１に対応し、マスククロック生成部４８０がマスククロック生成部４２に対応する。
【００５３】
クロックイネーブル信号生成部４４０は、信号線３１６によりマスタ＃１からスレーブ＃２へのコマンドが発行されたことを示す信号が入力されると、アウトスタンディングトランザクションの数を加算する。また、クロックイネーブル信号生成部４４０は、信号線３２６によりマスタ＃１からスレーブ＃２へのコマンドが完了したことを示す信号が入力されると、アウトスタンディングトランザクションの数を減算する。アウトスタンディングトランザクションの数が０の場合、クロックイネーブル信号を無効にする。一方、アウトスタンディングトランザクションの数が１以上の場合、クロックイネーブル信号を有効にする。
【００５４】
クロックイネーブル信号生成部４６０は、信号線３１８によりマスタ＃２からスレーブ＃２へのコマンドが発行されたことを示す信号が入力されると、アウトスタンディングトランザクションの数を加算する。また、クロックイネーブル信号生成部４６０は、信号線３２８によりマスタ＃２からスレーブ＃２へのコマンドが完了したことを示す信号が入力されると、アウトスタンディングトランザクションの数を減算する。アウトスタンディングトランザクションの数が０の場合、クロックイネーブル信号を無効にする。一方、アウトスタンディングトランザクションの数が１以上の場合、クロックイネーブル信号を有効にする。
【００５５】
マスククロック生成部４８０は、クロックイネーブル信号生成部４４０または４６０によって生成されたクロックイネーブル信号の何れかが有効であれば、信号線４０１から入力されたソースクロックをそのままリージョン＃４のためのクロックとして出力する。一方、クロックイネーブル信号生成部４４０および４６０によって生成されたクロックイネーブル信号の何れもが無効を示している場合には、信号線４０１から入力されたソースクロックがマスクされ、有効なクロックは供給されない。
【００５６】
図８は、本発明の実施の形態におけるクロックゲーティング部４１０の一構成例を示す図である。このクロックゲーティング部４１０は、論理積ゲート４１１、４１２、４１４と、カウンタ４１３と、ＳＲフリップフロップ４１５と、論理和ゲート４１６と、クロックイネーブラ４１７とを備えている。
【００５７】
論理積ゲート４１１は、マスタ＃１からのリクエストについて、マスタ側からのバリッド信号（ＶＡＬＩＤ）とスレーブ側からのレディ信号（ＲＥＡＤＹ）の論理積を生成するＡＮＤゲートである。ＡＸＩプロトコルでは、それぞれのチャネルにおいてバリッド信号およびレディ信号がともにアサートされているときに情報の伝達が行われるため、トランザクションの開始を検出するために両者の論理積が生成される。この論理積ゲート４１１の出力はカウンタ４１３の加算（ＩＮＣ）端子に入力される。
【００５８】
論理積ゲート４１２は、マスタ＃１からのリクエストに対するレスポンスについて、スレーブ側からのバリッド信号（ＲＶＡＬＩＤ）とマスタ側からのレディ信号（ＲＲＥＡＤＹ）の論理積を生成するＡＮＤゲートである。この論理積ゲート４１２の出力はカウンタ４１３の減算（ＤＥＣ）端子に入力される。
【００５９】
カウンタ４１３は、入力された指示に従って計数を行うカウンタである。このカウンタ４１３は、入力端子として加算（ＩＮＣ）端子および減算（ＤＥＣ）端子を有する。加算端子がアサートされると内部に保持する計数値を１つ加算する。減算端子がアサートされると内部に保持する計数値を１つ減算する。これら加減算の動作は、クロック（ＣＬＫ）端子に入力されるクロックと同期して行われる。カウンタ４１３は、現在のタイミングにおいて内部に保持する計数値が０でない場合、非ゼロ（ＸＥＭＰＴＹ）端子をアサートする。また、カウンタ４１３は、次のタイミングにおいて内部に保持する計数値が０でない場合、次非ゼロ（ＮＥＸＴ＿ＸＥＭＰＴＹ）端子をアサートする。
【００６０】
論理積ゲート４１４は、カウンタ４１３の次非ゼロ端子の反転値と非ゼロ端子の値との論理積を生成するＡＮＤゲートである。すなわち、この論理積ゲート４１４の出力は、現在のタイミングにおいて内部に保持する計数値が１であって、次のタイミングにおいて内部に保持する計数値が０になるタイミングを示している。
【００６１】
ＳＲフリップフロップ４１５は、マスタ＃１からのリクエストが有効になったタイミングでセットされ、カウンタ４１３における計数値が１から０に変化するタイミングでリセットされるフリップフロップである。このＳＲフリップフロップ４１５は、クロック（ＣＬＫ）端子に入力されるクロックと同期して動作して、出力（Ｑ）端子にその状態を出力する。
【００６２】
論理和ゲート４１６は、カウンタ４１３の非ゼロ端子の値とＳＲフリップフロップ４１５の出力端子の値との論理和を生成するＯＲゲートである。すなわち、この論理和ゲート４１６は、カウンタ４１３の内部に保持する計数値が非ゼロであるか、または、ＳＲフリップフロップ４１５がセットされている状態であれば、クロックイネーブル信号を有効にしてクロックイネーブラ４１７に供給する。
【００６３】
クロックイネーブラ４１７は、論理和ゲート４１６から供給されたクロックイネーブル信号に従って、ソースクロックをマスクするものである。すなわち、このクロックイネーブラ４１７は、クロックイネーブル信号が有効であればソースクロックをそのままリージョン＃１のためのクロックとして供給し、クロックイネーブル信号が無効であれば供給しない。
【００６４】
なお、ここではクロックゲーティング部４１０の構成例を示したが、クロックゲーティング部４２０も同様に構成される。
【００６５】
図９は、本発明の実施の形態におけるクロックイネーブル信号生成部４３０の一構成例を示す図である。このクロックイネーブル信号生成部４３０は、カウンタ４３１を備えている。
【００６６】
カウンタ４３１は、入力された指示に従って計数を行うカウンタである。このカウンタ４３１は、入力端子として加算（ＩＮＣ）端子および減算（ＤＥＣ）端子を有する。加算端子がアサートされると内部に保持する計数値を１つ加算する。減算端子がアサートされると内部に保持する計数値を１つ減算する。これら加減算の動作は、クロック（ＣＬＫ）端子に入力されるクロックと同期して行われる。クロック端子にはクロックゲーティング部４１０から供給されたリージョン＃１のためのクロックが入力される。信号線３１５または３２５がアクティブになるときにはリージョン＃１もアクティブであるため、これによりクロックイネーブル信号生成部４３０自身の消費電力を低減することができる。カウンタ４３１は、現在のタイミングにおいて内部に保持する計数値が０でない場合、非ゼロ（ＸＥＭＰＴＹ）端子をアサートする。
【００６７】
このクロックイネーブル信号生成部４３０においては、カウンタ４３１は、マスタ＃１からスレーブ＃１へのコマンドが発行されたことを示す信号が加算端子に入力されると、アウトスタンディングトランザクションの数を加算する。また、カウンタ４３１は、マスタ＃１からスレーブ＃１へのコマンドが完了したことを示す信号が減算端子に入力されると、アウトスタンディングトランザクションの数を減算する。これらの動作の結果、カウンタ４３１の内部の計数値が０でない場合、リージョン＃３のためのクロックイネーブル信号の一つを有効にする。なお、リージョン＃３のためのクロックイネーブル信号はクロックイネーブル信号生成部４５０においても生成され、マスククロック生成部４７０においてそれらの論理和が生成される。
【００６８】
なお、ここではクロックイネーブル信号生成部４３０の構成例を示したが、他のクロックイネーブル信号生成部４４０、４５０、４６０も同様に構成される。
【００６９】
図１０は、本発明の実施の形態におけるマスククロック生成部４７０の一構成例を示す図である。このマスククロック生成部４７０は、論理和ゲート４７１と、クロックイネーブラ４７２とを備えている。
【００７０】
論理和ゲート４７１は、クロックイネーブル信号生成部４３０および４５０によって生成されたクロックイネーブル信号の論理和を生成するＯＲゲートである。この論理和ゲート４７１の出力はリージョン＃３のためのクロックイネーブル信号としてクロックイネーブラ４７２のクロックイネーブル端子に供給される。
【００７１】
クロックイネーブラ４７２は、論理和ゲート４７１から供給されたクロックイネーブル信号に従って、ソースクロックをマスクするものである。すなわち、このクロックイネーブラ４７２は、クロックイネーブル信号が有効であればソースクロックをそのままリージョン＃３のためのクロックとして供給し、クロックイネーブル信号が無効であれば供給しない。
【００７２】
なお、ここではマスククロック生成部４７０の構成例を示したが、マスククロック生成部４８０も同様に構成される。
【００７３】
このように、本技術の実施の形態によれば、インターコネクト３００の内部をリージョンに分割して、各リージョンに供給するクロックをトランザクション単位で制御することができる。すなわち、マスタからのバスアクセスをトリガにして、トランザクションが必要とするパスのみに対してクロックを動的に供給することにより、バスシステムの消費電力の低減を図ることができる。この手法では、必要最低限の回路部分に対してトランザクションの生存期間のみクロックを供給するため、クロック起因の消費電力を最小限に抑えることができる。
【００７４】
＜２．変形例＞
図１１は、本発明の実施の形態におけるクロック制御部４００の変形例を示す図である。上述の図７のクロック制御部４００では、クロックイネーブル信号生成部４３０および４４０にはリージョン＃１のクロックを入力し、クロックイネーブル信号生成部４５０および４６０にはリージョン＃２のクロックを入力していた。これに対し、この変形例では、クロックイネーブル信号生成部４３０、４４０、４５０、４６０に供給されるクロックを信号線４０１のソースクロックに統一している。これにより、クロックイネーブル信号生成部４３０、４４０、４５０、４６０自体の消費電力を要するおそれはあるが、チップ上の回路配置を柔軟に行うことができるようになるという利点がある。
【００７５】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【００７６】
なお、本技術は以下のような構成もとることができる。
（１）バスシステムを複数のリージョンに分割した各々においてアウトスタンディングトランザクションの数を計数することにより前記複数のリージョンの各々のためのクロックイネーブル信号を生成するクロックイネーブル信号生成部と、
前記複数のリージョンの各々のためのクロックイネーブル信号によってクロックをマスクしてマスククロックを生成するマスククロック生成部と
を具備するクロックゲーティング回路。
（２）前記クロックイネーブル信号生成部は、前記複数のリージョンの各々に対してリクエストが入力された時点で前記アウトスタンディングトランザクションの数を加算し、前記リクエストに対するレスポンスが出力された時点で前記アウトスタンディングトランザクションの数を減算することにより前記アウトスタンディングトランザクションの数を計数し、
前記マスククロック生成部は、前記アウトスタンディングトランザクションの数が０であれば前記クロックをマスクして前記マスククロックを出力し、前記アウトスタンディングトランザクションの数が１以上であれば前記クロックをそのまま前記マスククロックとして出力する
前記（１）に記載のクロックゲーティング回路。
（３）前記クロックイネーブル信号生成部は、前記複数のリージョンの各々に対してリクエストが入力された時点で前記アウトスタンディングトランザクションの数を加算し、前記リクエストに対するレスポンスが出力された時点で前記アウトスタンディングトランザクションの数を減算することにより前記アウトスタンディングトランザクションの数を計数するカウンタを備え、
前記マスククロック生成部は、前記アウトスタンディングトランザクションの数が０であれば前記クロックをマスクして前記マスククロックを出力し、前記アウトスタンディングトランザクションの数が１以上であれば前記クロックをそのまま前記マスククロックとして出力するクロックイネーブラを備える
前記（１）または（２）に記載のクロックゲーティング回路。
（４）複数のマスタの各々に対応して設けられ、対応するマスタからのリクエストをデコードする複数のリクエストデコーダと、
複数のスレーブの各々に対応して設けられ、前記複数のリクエストデコーダによってデコードされたリクエストを調停して対応するスレーブに出力する複数のリクエストアービタと、
前記複数のスレーブの各々に対応して設けられ、対応するスレーブからのレスポンスをデコードする複数のレスポンスデコーダと、
前記複数のマスタの各々に対応して設けられ、前記複数のレスポンスデコーダによってデコードされたレスポンスを調停して対応するマスタに出力する複数のレスポンスアービタと、
前記複数のリクエストデコーダおよび前記複数のレスポンスアービタのうち同じマスタに対応するリクエストデコーダおよびレスポンスアービタまたは複数のリクエストアービタおよび複数のレスポンスデコーダのうち同じスレーブに対応するリクエストアービタおよびレスポンスデコーダが同じリージョンとなるよう複数のリージョンに分類した各々においてアウトスタンディングトランザクションの数を計数することにより前記複数のリージョンの各々のためのクロックイネーブル信号を生成するクロックイネーブル信号生成部と、
前記複数のリージョンの各々のためのクロックイネーブル信号によってクロックをマスクしてマスククロックを生成するマスククロック生成部と
を具備するバスシステム。
（５）前記クロックイネーブル信号生成部は、前記複数のリージョンの各々に対してリクエストが入力された時点で前記アウトスタンディングトランザクションの数を加算し、前記リクエストに対するレスポンスが出力された時点で前記アウトスタンディングトランザクションの数を減算することにより前記アウトスタンディングトランザクションの数を計数し、
前記マスククロック生成部は、前記アウトスタンディングトランザクションの数が０であれば前記クロックをマスクして前記マスククロックを出力し、前記アウトスタンディングトランザクションの数が１以上であれば前記クロックをそのまま前記マスククロックとして出力する
前記（４）に記載のバスシステム。
（６）前記クロックイネーブル信号生成部は、前記複数のリージョンの各々に対してリクエストが入力された時点で前記アウトスタンディングトランザクションの数を加算し、前記リクエストに対するレスポンスが出力された時点で前記アウトスタンディングトランザクションの数を減算することにより前記アウトスタンディングトランザクションの数を計数するカウンタを備え、
前記マスククロック生成部は、前記アウトスタンディングトランザクションの数が０であれば前記クロックをマスクして前記マスククロックを出力し、前記アウトスタンディングトランザクションの数が１以上であれば前記クロックをそのまま前記マスククロックとして出力するクロックイネーブラを備える
前記（４）または（５）に記載のバスシステム。
【符号の説明】
【００７７】
４０  クロックゲーティング部
４１  クロックイネーブル信号生成部
４２  マスククロック生成部
１００  マスタ
２００  スレーブ
３００  インターコネクト
３１０  アドレスチャネルバスマトリックス
３１１、３１２、３２３、３２４  デコーダ
３１３、３１４、３２１、３２２  アービタ
３２０  レスポンスチャネルバスマトリックス
４００  クロック制御部
４１０  クロックゲーティング部
４１１、４１２、４１４  論理積ゲート
４１３  カウンタ
４１５  フリップフロップ
４１６、４７１  論理和ゲート
４１７  クロックイネーブラ
４２０  クロックゲーティング部
４３０、４４０、４５０、４６０  クロックイネーブル信号生成部
４３１  カウンタ
４７０、４８０  マスククロック生成部
４７２  クロックイネーブラ
【図１】
2013106166.tif 000003
【図２】
2013106166.tif 000004
【図３】
2013106166.tif 000005
【図４】
2013106166.tif 000006
【図５】
2013106166.tif 000007
【図６】
2013106166.tif 000008
【図７】
2013106166.tif 000009
【図８】
2013106166.tif 000010
【図９】
2013106166.tif 000011
【図１０】
2013106166.tif 000012
【図１１】
2013106166.tif 000013