(57)【要約】【課題】  クロック供給の停止された回路に対して、発行され得る復帰要求の回数分だけの複数のカウンタが必要であるので、回路規模が大きくなるという問題がある。【解決手段】  制御回路は、制御手段と、クロック供給を要求する供給要求を生成する第１生成手段と、供給要求が生成されると第１時間の計測を開始し、該第１時間が経過した後にクロック供給を指示する第１信号を生成する第１計測手段と、クロック供給の停止を要求する停止要求を生成する第２生成手段と、前記第１計測手段が前記第１時間を計測している間に、供給要求が新たに生成されると第２時間の計測を開始する第２計測手段と、前記第２時間が経過した後の場合に、前記停止要求が生成されるとクロック供給の停止を指示する第２信号を生成し、前記第２計測手段が前記第２時間を計測している間の場合は、前記第２信号の生成を制限する第３生成手段と、を有することを特徴とする。【選択図】  図３
2018084932.tif 000002
【特許請求の範囲】
【請求項１】
対象回路に対してクロックを供給させ、又は前記対象回路に対するクロック供給を停止させる制御手段と、
前記対象回路が所定処理を開始する前に、前記対象回路へのクロック供給を要求する供給要求を生成する第１生成手段と、
前記第１生成手段によって前記供給要求が生成されると、第１時間の計測を開始し、該第１時間が経過した後に、クロック供給を指示する第１信号を生成し、前記制御手段に出力する第１計測手段と、
前記対象回路が前記所定処理を完了した後に、前記対象回路へのクロック供給の停止を要求する停止要求を生成する第２生成手段と、
前記第１計測手段が前記第１時間を計測している間に、前記第１生成手段によって供給要求が新たに生成されると、第２時間の計測を開始する第２計測手段と、
前記第２時間が経過した後の場合に、前記第２生成手段によって前記停止要求が生成されると、前記対象回路へのクロック供給の停止を指示する第２信号を生成し、前記制御手段に出力し、前記第２計測手段が前記第２時間を計測している間の場合は、前記第２信号の生成を制限する第３生成手段と、を有し、
前記制御手段は、前記第１信号を受信すると、前記対象回路に対してクロックを供給させ、前記第２信号を受信すると、前記対象回路に対するクロック供給を停止させるように制御することを特徴とする制御回路。
【請求項２】
前記第２計測手段が前記第２時間を計測している間において、前記第１生成手段によって供給要求が生成された場合、前記第２計測手段は、既に計測した前記第２時間の値をリセットして、前記第２時間を新たに計測することを特徴とする請求項１に記載の制御回路。
【請求項３】
前記第１計測手段は、直列に接続する複数のカウンタによって構成され、
前記第２計測手段は、前記複数のカウンタにおける初段のカウンタが時間を計測している間に前記第１生成手段によって供給要求が新たに生成された場合、前記第２時間を計測し、前記複数のカウンタにおける後段のカウンタが時間を計測している間に前記第１生成手段によって新たに供給要求が生成された場合、前記第２時間を計測しないことを特徴とする請求項１又は２に記載の制御回路。
【請求項４】
前記複数のカウンタのそれぞれが計測する時間の合計は、前記第１時間であることを特徴とする請求項３に記載の制御回路。
【請求項５】
前記第１計測手段及び前記第２計測手段は、それぞれカウンタによって構成されることを特徴とする請求項１乃至４の何れか１項に記載の制御回路。
【請求項６】
対象回路と、請求項１乃至５の何れか１項に記載の制御回路と、前記対象回路に対してクロックを供給し、又は前記対象回路に対するクロック供給を停止する供給手段と、を有し、
前記制御手段は、前記第１信号を受信すると、前記対象回路に対してクロックを供給するように前記供給手段を制御し、前記第２信号を受信すると、前記対象回路に対するクロック供給を停止するように前記供給手段を制御することを特徴とする画像処理装置。
【請求項７】
転送された入力データに対して所定の演算処理を行って、前記対象回路に対して前記演算処理の出力データを出力する演算回路と、前記演算回路に前記入力データを転送する転送手段と、をさらに有し、
前記第１生成手段は、前記転送手段が前記演算回路へのデータ転送を開始するタイミングで、前記対象回路へのクロック供給を要求する供給要求を生成することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記演算回路の内部状態を示す信号を受信し、受信した該信号に基づいて前記演算回路の演算処理においてストールを確認し、前記ストールが発生している場合は、通知信号を前記第１計測手段及び前記第２計測手段に出力する通知手段をさらに有し、
前記第１計測手段及び前記第２計測手段は、前記通知信号を受信している間、時間の計測を中断することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記第１時間は、前記演算回路による前記演算処理の開始から終了までの時間の最小値に基づいて設定され、
前記第２時間は、前記演算回路による前記演算処理の開始から終了までの時間の最大値に基づいて設定されることを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記演算回路による前記演算処理の開始から終了までの時間の最大値及び最小値を計測する計測手段をさらに有することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記第１時間は、発生確率が所定値以下の前記最小値に基づいて設定されない、
前記第２時間は、発生確率が所定値以下の前記最大値に基づいて設定されないことを特徴とする請求項９又は１０に記載の画像処理装置。
【請求項１２】
前記演算回路による前記演算処理の出力データを記憶する記憶手段をさらに有し、
前記対象回路は、前記記憶手段に前記演算処理の前記出力データを転送することを特徴とする請求項６乃至１１の何れか１項に記載の画像処理装置。
【請求項１３】
前記対象回路は、ＷｒｉｔｅＤＭＡＣであることを特徴とする請求項６乃至１２の何れか１項に記載の画像処理装置。
【請求項１４】
対象回路に対して電源を供給させ、又は前記対象回路に対する電源供給を停止させる制御手段と、
前記対象回路が所定処理を開始する前に、前記対象回路への電源供給を要求する供給要求を生成する第１生成手段と、
前記第１生成手段によって前記供給要求が生成されると、第１時間の計測を開始し、該第１時間が経過した後に、電源供給を指示する第１信号を生成し、前記制御手段に出力する第１計測手段と、
前記対象回路が前記所定処理を完了した後に、前記対象回路への電源供給の停止を要求する停止要求を生成する第２生成手段と、
前記第１計測手段が前記第１時間を計測している間に、前記第１生成手段によって供給要求が新たに生成されると、第２時間の計測を開始する第２計測手段と、
前記第２時間が経過した後の場合に、前記第２生成手段によって前記停止要求が生成されると、前記対象回路への電源供給の停止を指示する第２信号を生成し、前記制御手段に出力し、前記第２計測手段が前記第２時間を計測している間の場合は、前記第２信号の生成を制限する第３生成手段と、を有し、
前記制御手段は、前記第１信号を受信すると、前記対象回路に対して電源を供給させ、前記第２信号を受信すると、前記対象回路に対する電源供給を停止させるように制御することを特徴とする制御回路。
【請求項１５】
対象回路に対してクロックを供給させ、又は前記対象回路に対するクロック供給を停止させる制御手段を有する制御回路の制御方法であって、
前記対象回路が所定処理を開始する前に、第１生成手段が前記対象回路へのクロック供給を要求する供給要求を生成する第１生成工程と、
前記第１生成工程において前記供給要求が生成されると、第１計測手段が第１時間の計測を開始し、該第１時間が経過した後に、クロック供給を指示する第１信号を生成し、前記制御手段に出力する第１計測工程と、
前記対象回路が前記所定処理を完了した後に、第２生成手段が前記対象回路へのクロック供給の停止を要求する停止要求を生成する第２生成工程と、
前記第１計測工程において前記第１計測手段が前記第１時間を計測している間に、前記第１生成工程において供給要求が新たに生成されると、第２計測手段が第２時間の計測を開始する第２計測工程と、
前記第２時間が経過した後の場合に、前記第２生成手段によって前記停止要求が生成されると、第３生成手段が前記対象回路へのクロック供給の停止を指示する第２信号を生成し、前記制御手段に出力し、前記第２計測工程において前記第２計測手段が前記第２時間を計測している間の場合は、前記第２信号の生成を制限する第３生成工程と、
前記制御手段は、前記第１信号を受信すると、前記対象回路に対してクロックを供給させ、前記第２信号を受信すると、前記対象回路に対するクロック供給を停止させるように制御する制御工程を有することを特徴とする方法。
【請求項１６】
対象回路に対して電源を供給させ、又は前記対象回路に対する電源供給を停止させる制御手段を有する制御回路の制御方法であって、
前記対象回路が所定処理を開始する前に、第１生成手段が前記対象回路への電源供給を要求する供給要求を生成する第１生成工程と、
前記第１生成工程において前記供給要求が生成されると、第１計測手段が第１時間の計測を開始し、該第１時間が経過した後に、電源供給を指示する第１信号を生成し、前記制御手段に出力する第１計測工程と、
前記対象回路が前記所定処理を完了した後に、第２生成手段が前記対象回路への電源供給の停止を要求する停止要求を生成する第２生成工程と、
前記第１計測工程において前記第１計測手段が前記第１時間を計測している間に、前記第１生成工程において供給要求が新たに生成されると、第２計測手段が第２時間の計測を開始する第２計測工程と、
前記第２時間が経過した後の場合は、前記第２生成手段によって前記停止要求が生成されると、第３生成手段が前記対象回路への電源供給の停止を指示する第２信号を生成し、前記制御手段に出力し、前記第２計測工程において前記第２計測手段が前記第２時間を計測している間の場合は、前記第２信号の生成を制限する第３生成工程と、
前記制御手段は、前記第１信号を受信すると、前記対象回路に対して電源を供給させ、前記第２信号を受信すると、前記対象回路に対する電源供給を停止させるように制御する制御工程を有することを特徴とする方法。
【請求項１７】
対象回路に対してクロックを供給させ、又は前記対象回路に対するクロック供給を停止させる制御手段を有する制御回路の制御プログラムであって、
前記対象回路が所定処理を開始する前に、第１生成手段は、前記対象回路へのクロック供給を要求する供給要求を生成する第１生成ステップと、
前記第１生成工程において前記供給要求が生成されると、第１計測手段は、第１時間の計測を開始し、該第１時間が経過した後に、クロック供給を指示する第１信号を生成し、前記制御手段に出力する第１計測ステップと、
前記対象回路が前記所定処理を完了した後に、第２生成手段は、前記対象回路へのクロック供給の停止を要求する停止要求を生成する第２生成ステップと、
前記第１計測ステップにおいて前記第１計測手段が前記第１時間を計測している間に、前記第１生成ステップにおいて供給要求が新たに生成されると、第２計測手段は、第２時間の計測を開始する第２計測ステップと、
前記第２時間が経過した後の場合に、前記第２生成手段によって前記停止要求が生成されると、第３生成手段は、前記対象回路へのクロック供給の停止を指示する前記第２信号を生成し、前記制御手段に出力し、前記第２計測ステップにおいて前記第２計測手段が前記第２時間を計測している間の場合は、前記第２信号の生成を制限する第３生成ステップと、
前記制御手段は、前記第１信号を受信すると、前記対象回路に対してクロックを供給させ、前記第２信号を受信すると、前記対象回路に対するクロック供給を停止させるように制御する制御ステップと、
をコンピュータに実行させることを特徴とするプログラム。
【請求項１８】
対象回路に対して電源を供給させ、又は前記対象回路に対する電源供給を停止させる制御手段を有する制御回路の制御プログラムであって、
前記対象回路が所定処理を開始する前に、第１生成手段は、前記対象回路への電源供給を要求する供給要求を生成する第１生成ステップと、
前記第１生成工程において前記供給要求が生成されると、第１計測手段は、第１時間の計測を開始し、該第１時間が経過した後に、電源供給を指示する第１信号を生成し、前記制御手段に出力する第１計測ステップと、
前記対象回路が前記所定処理を完了した後に、第２生成手段は、前記対象回路への電源供給の停止を要求する停止要求を生成する第２生成ステップと、
前記第１計測ステップにおいて前記第１計測手段が前記第１時間を計測している間に、前記第１生成ステップにおいて供給要求が新たに生成されると、第２計測手段は、第２時間の計測を開始する第２計測ステップと、
前記第２時間が経過した後の場合に、前記第２生成手段によって前記停止要求が生成されると、第３生成手段は、前記対象回路への電源供給の停止を指示する前記第２信号を生成し、前記制御手段に出力し、前記第２計測ステップにおいて前記第２計測手段が前記第２時間を計測している間の場合は、前記第２信号の生成を制限する第３生成ステップと、
前記制御手段は、前記第１信号を受信すると、前記対象回路に対して電源を供給させ、前記第２信号を受信すると、前記対象回路に対する電源供給を停止させるように制御する制御ステップと、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置の省電力制御を行う制御回路、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年の半導体集積回路の集積度の向上や処理能力の向上は消費電力の増大を招き、消費電力の削減対策が必須となっており、クロックゲーティングと呼ばれる、対象回路のクロックを停止して電力を削減する手法が存在している。
【０００３】
クロックゲーティング制御手法は大きく２つに大別される。１つは、クロックゲーティング対象回路の使用・未使用が静的に分かる場合に、ソフトウェアでクロックの供給・停止の制御を実施する手法である。もう１つは、より細かくクロックゲーティング制御を実施するために、ハードウェアで実施する方法である。
【０００４】
ハードウェアによるクロックゲーティングの制御手法として、特許文献１の方法がある。特許文献１の方法では、対象回路のクロック制御要求の発生から対象回路が実際に動作可能になるまでに時間差がある等の理由から、何らかのイベント・トリガの発生を検知し、時間差をおいてからクロックや電力を供給するように制御する。例えば、特許文献１では、スレーブデバイスが転送を受理する間隔を予測し、転送完了から次の転送が発生するまでの間、スレーブのクロックを停止させ、次のトランザクションを処理するのに間に合うように、電力状態を元に戻す、という技術が開示されている。
【０００５】
しかしながら、クロックゲーティング対象回路の復帰要求が発生してから、一定時間の計測後に、時間差をおいてクロックゲーティング対象回路のクロックを供給するケースにおいて、特許文献１の技術を適用すると、次のような問題があった。特許文献１の技術では、１個のカウンタのみを使用して時間差でクロック制御を行っている。しかしながら、短い時間の間に、複数回のクロックゲーティング対象回路の復帰要求が発生する場合に適用すると、１個のカウンタでは、全ての復帰要求に対してクロック制御のためのフラグ管理ができない点である。
【０００６】
一方で上記問題に対する解決策として、特許文献２に示す、複数の異なる、同時並行的に発生する複数のクロック制御要求イベントに対して、複数のカウンタを使用してクロック停止処理を行う、という先行技術を利用する方法がある。即ち、特許文献２の手法を適用すると、複数回の復帰要求に対応する複数のカウンタのそれぞれが全ての復帰要求に対してクロック制御のためのフラグ管理を行う。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第４８３７７８０号公報
【特許文献２】特公平０６−０４８４５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１及び特許文献２の方法では、クロックゲーティング対象回路に対して、クロックゲーティング対象回路に対して発行され得る復帰要求の最大回数（例えば、最大アウトスタンディング数）の分だけの複数のカウンタが必要となる。クロック供給を含む電力制御のための回路規模が大きくなるという問題がある。
【０００９】
本発明は上記の課題に鑑みてなされたものであり、クロックゲーティング対象回路に対して複数回の復帰要求が発生する場合でも、小さな回路規模でクロック供給の制御を含む電力制御を実現する制御回路を提供することを目的とする。また、その制御回路の制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明に係る制御回路は、以下の構成を備える。対象回路に対してクロックを供給させ、又は前記対象回路に対するクロック供給を停止させる制御手段と、前記対象回路が所定処理を開始する前に、前記対象回路へのクロック供給を要求する供給要求を生成する第１生成手段と、前記第１生成手段によって前記供給要求が生成されると、第１時間の計測を開始し、該第１時間が経過した後に、クロック供給を指示する第１信号を生成し、前記制御手段に出力する第１計測手段と、前記対象回路が前記所定処理を完了した後に、前記対象回路へのクロック供給の停止を要求する停止要求を生成する第２生成手段と、前記第１計測手段が前記第１時間を計測している間に、前記第１生成手段によって供給要求が新たに生成されると、第２時間の計測を開始する第２計測手段と、前記第２時間が経過した後の場合に、前記第２生成手段によって前記停止要求が生成されると、前記対象回路へのクロック供給の停止を指示する第２信号を生成し、前記制御手段に出力し、前記第２計測手段が前記第２時間を計測している間の場合は、前記第２信号の生成を制限する第３生成手段と、を有し、前記制御手段は、前記第１信号を受信すると、前記対象回路に対してクロックを供給させ、前記第２信号を受信すると、前記対象回路に対するクロック供給を停止させるように制御することを特徴とする制御回路。
【発明の効果】
【００１１】
本発明によれば、クロックゲーティング対象回路に対して複数回の復帰要求が発生する場合でも、小さな回路規模でクロック供給を含む電力制御を実現することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態の画像処理用システムオンチップ１００の構成例である。
【図２】第１の実施形態の画像処理モジュール１１の構成例である。
【図３】第１の実施形態のＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３の構成例である。
【図４】第１の実施形態のクロックイネーブル生成カウンタ４００の動作フロー図である。
【図５】第１の実施形態のクロック停止要求マスク期間カウンタ４０１の動作フロー図である。
【図６】第１の実施形態の単発の転送が発行された場合のクロック停止処理の波形図である。
【図７】第１の実施形態の十分に長い間隔で２連続の転送が発行された場合のクロック停止処理の波形図である。
【図８】第１の実施形態のケース１の短い間隔で２連続の転送が発行された場合のクロック停止処理の波形図である。
【図９】第１の実施形態のケース２の短い間隔で２連続の転送が発行された場合のクロック停止処理の波形図である。
【図１０】第１の実施形態の短い間隔で３連続の転送が発行された場合のクロック停止処理の波形図である。
【図１１】第２の実施形態のＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３の構成例である。
【図１２】第２の実施形態の短い間隔で２連続の転送が発行された場合のクロック停止処理の波形図である。
【図１３】第３の実施形態のクロックイネーブル生成カウンタ４００の構成例である。
【図１４】第３の実施形態の分割クロックイネーブル生成カウンタＡ７００の動作フロー図である。
【図１５】第３の実施形態の分割クロックイネーブル生成カウンタＢ７０１の動作フロー図である。
【図１６】第３の実施形態の分割クロックイネーブル生成カウンタＤ７０３の動作フロー図である。
【図１７】第３の実施形態の短い間隔で２連続の転送が発行された場合のクロック停止処理の波形図である。
【図１８】第４の実施形態の画像処理演算に３５０サイクル（最小値）要する場合の波形図である。
【図１９】第４の実施形態の画像処理演算に４００サイクル（中央値）要する場合の波形図である。
【図２０】第４の実施形態の画像処理演算に４５０サイクル（最大値）要する場合の波形図である。
【図２１】第５の実施形態のＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３の構成例である。
【図２２】第５の実施形態のカウント対象時間計測回路９０１の構成例である。
【図２３】第５の実施形態のカウント対象時間計測回路９０１および測定モード切替回路９００の動作フロー図である。
【発明を実施するための形態】
【００１３】
以下、本発明にかかる実施形態の制御回路に関して、図面を参照して詳細に説明する。なお、以下の実施形態は例示であり、本発明の範囲を限定するものではない。
【００１４】
（第１の実施形態）
［装置の構成例］
図１のブロック図に本実施形態の画像処理用システムオンチップ１００の構成例を示す。
【００１５】
画像処理用のシステムオンチップ１００は、情報処理を行うＣＰＵ１０、画像処理を行う画像処理モジュール１１、画像処理モジュール１１のクロックの供給・非供給等の制御を行う供給モジュール２１を備える。画像処理用のシステムオンチップ１００は、本実施形態の画像処理装置を構成するシステムオンチップである。
【００１６】
本実施形態では、供給モジュール２１は、ＷｒｉｔｅＤＭＡＣ３０２のクロックの供給・停止などを制御し、ＷｒｉｔｅＤＭＡＣ３０２の省電力化を図ることを例に詳細に説明するが、これに限定するわけではない。供給モジュール２１は、ＷｒｉｔｅＤＭＡＣ３０２のクロックの供給・停止だけではなく、ＷｒｉｔｅＤＭＡＣ３０２の電源供給又は電源供給の停止を制御してもよい。また、供給モジュール２１は、ＷｒｉｔｅＤＭＡＣ３０２のクロック周波数を変更し、またはＷｒｉｔｅＤＭＡＣ３０２の電源電圧を変更するように制御してもよい。また、システムオンチップ１００は、非図示の各モジュールが接続され、データ転送を司るバスモジュール３０、揮発性の一時記憶装置であるＤＲＡＭ２００、ＤＲＡＭ２００の制御を行うメモリコントローラであるＭＥＭＣ２０を備える。また、画像処理用システムオンチップ１００は、各モジュールへのクロック信号を生成するクロックジェネレータやリセット信号を生成するリセットジェネレータ等を備えるが、図１では省略している。
【００１７】
［画像処理モジュール１１の構成例］
図２のブロック図に本実施形態の画像処理モジュール１１の構成例を示す。画像処理モジュール１１は、ＲｅａｄＤＭＡＣ３００、画像処理モジュール内の演算回路３０１、ＷｒｉｔｅＤＭＡＣ３０２、ＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３を備える。ＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３は、本実施形態において、省電力制御を行う制御回路である。
【００１８】
以下に、画像処理モジュール１１内の各モジュールの動作に関して、基本的なデータ処理フローにそって説明する。
【００１９】
まず、ＲｅａｄＤＭＡＣ３００は、バスモジュール３０を介してＭＥＭＣ２０にリードリクエストを発行し、ＤＲＡＭ２００上の所定のアドレス領域のデータを読み込む。そして、ＲｅａｄＤＭＡＣ３００は、画像処理モジュール内の演算回路３０１に対してＤＲＡＭ２００より受信したデータを転送する。このデータ転送の開始タイミングで、ＲｅａｄＤＭＡＣ内部バスデータ転送発生信号（パルス信号）がアサートされる。
【００２０】
次に、演算回路３０１は、ＲｅａｄＤＭＡＣ３００から転送された入力データに対して画像処理演算などの所定の演算処理を行う。この演算回路３０１での画像処理演算などの所定の演算処理には４００サイクルの時間を要するとする。画像処理モジュール内の演算回路３０１の処理が完了すると、演算回路３０１は、ＷｒｉｔｅＤＭＡＣ３０２に対して画像処理を行ったデータの転送を行う。
【００２１】
ＷｒｉｔｅＤＭＡＣ３０２は、演算回路３０１より出力データを受信した後、バスモジュール３０を介してＭＥＭＣ２０にライトリクエストを発行し、ＤＲＡＭ２００上の所定のアドレス領域にデータを書き込む。このデータ書き込みが完了したタイミングで、ＷｒｉｔｅＤＭＡＣ外部バスデータ転送完了信号（パルス信号）がアサートされる。また、ＷｒｉｔｅＤＭＡＣ動作状態を示す信号は、ＷｒｉｔｅＤＭＡＣ３０２が動作中の期間は常にアサートされ、非動作中の期間は常にネゲートされる。
【００２２】
また、ＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３は、画像処理モジュール１１内のデータ処理状況に応じて、供給モジュール２１に対して、ＷｒｉｔｅＤＭＡＣ３０２のクロック制御指示信号を送信することができる。本実施形態において、ＷｒｉｔｅＤＭＡＣ３０２は、供給モジュール２１によって、クロックの供給を制御されるクロックゲーティング対象回路である。なお、本実施形態では、クロックゲーティング対象回路の例として、ＷｒｉｔｅＤＭＡＣ３０２について説明するが、所定処理を行う回路であれば、ＷｒｉｔｅＤＭＡＣ３０２に限定されない。
【００２３】
［ＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３の構成例］
図３のブロック図に本実施形態のＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３の構成例を示す。
【００２４】
ＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３は、クロックイネーブル生成カウンタ４００、クロック停止要求マスク期間カウンタ４０１、クロックイネーブルネゲート指示生成回路４０３及びクロックイネーブル制御回路４０２を備える。第１計測部であるクロックイネーブル生成カウンタ４００の計測対象は第一の所定時間５００であり、第２計測部であるクロック停止要求マスク期間カウンタ４０１の計測対象は第二の所定時間５０１である。本実施形態では、第一の所定時間５００及び第二の所定時間５０１の計測は、それぞれ設定されたクロック数を計測することによって実現する。本実施形態では、簡単のために、クロックイネーブル生成カウンタ４００およびクロック停止要求マスク期間カウンタ４０１とＷｒｉｔｅＤＭＡＣ３０２のクロック周波数は同一であるとして説明する。しかし、これらのカウンタとＷｒｉｔｅＤＭＡＣ３０２のクロック周波数は異なる周波数で動作していても構わない。例えば、これらのカウンタの周波数をＷｒｉｔｅＤＭＡＣ３０２のクロック周波数の１／２に設定することで、クロック制御の精度は低下するが、同じ期間を測定する場合に、カウンタを構成するＦＦの個数を半分にすることができる。そうすると、カウンタの回路規模は約１／２になり、回路規模が１／２かつ周波数が１／２のため、カウンタの動作電力は約１／４に低下させることが可能になる。また、第１計測部及び第２計測部は、時間（サイクル数）を計測する回路であれば、カウンタに限らず、例えばレジスタによって構成することも可能である。
【００２５】
本実施形態では、図２に示すように、クロックゲーティング対象回路の一例として、ＷｒｉｔｅＤＭＡＣ３０２について説明したが、所定処理を行う回路であれば本実施形態を適用することができる。また、クロックゲーティング対象回路が複数存在する場合は、クロックイネーブル生成カウンタ４００とクロック停止要求マスク期間カウンタ４０１を、各クロックゲーティング対象回路の１個につき１組ずつ用意すればよい。各クロックゲーティング対象回路とクロックイネーブル生成カウンタ４００とクロック停止要求マスク期間カウンタ４０１の関係は同様であるので、詳細な説明を省略する。
【００２６】
また、ＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３は、ＷｒｉｔｅＤＭＡＣクロック供給要求信号生成回路３０４（第１生成回路）及びＷｒｉｔｅＤＭＡＣクロック停止要求信号生成回路３０５（第２生成回路）を備える。この二つのモジュールは、ＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３に対して、ＷｒｉｔｅＤＭＡＣ３０２へのクロック供給又はクロック供給停止を要求する信号を受信する。
【００２７】
これらのモジュールの動作詳細は、以下のフローチャートおよび波形を用いた動作説明の項で説明する。
【００２８】
［クロックイネーブル生成カウンタ４００の動作フロー］
図４に本実施形態のクロックイネーブル生成カウンタ４００の動作フローのフローチャートを示す。
【００２９】
まず、ステップＳ１１において、クロックイネーブル生成カウンタ４００は、非カウント状態である。そして、ステップＳ１２において、クロックイネーブル生成カウンタ４００は、ＷｒｉｔｅＤＭＡＣクロック供給要求信号が１の値であるかどうか、を毎サイクル判定する。ＷｒｉｔｅＤＭＡＣクロック供給要求信号が０の場合は、クロックイネーブル生成カウンタ４００は、ステップＳ１１の非カウント状態を継続する。ＷｒｉｔｅＤＭＡＣクロック供給要求信号が１の場合は、ステップＳ１３に進み、クロックイネーブル生成カウンタ４００は、カウント状態に移行する。そして、次のサイクルで、ステップＳ１４において、クロックイネーブル生成カウンタ４００は、クロックイネーブル生成カウンタ４００の値を１にセットする。その後、ステップＳ１５において、クロックイネーブル生成カウンタ４００は、クロックイネーブル生成カウンタ４００の値が第一の所定時間５００の値と等しいかどうかを、毎サイクル判定する。クロックイネーブル生成カウンタ４００の値が第一の所定時間５００の値と等しくなければ、ステップＳ１６において、クロックイネーブル生成カウンタ４００は値を＋１し、次のサイクルに再度ステップＳ１５の判定を行う。クロックイネーブル生成カウンタ４００の値が第一の所定時間５００の値と等しければ、ステップＳ１７において、クロックイネーブル生成カウンタ４００は、クロックイネーブルアサート指示信号（第１信号）の値を１に変更する。そして、クロックイネーブル生成カウンタ４００は、ステップＳ１１の非カウント状態に戻る。
【００３０】
［クロック停止要求マスク期間カウンタ４０１の動作フロー］
図５に本実施形態のクロック停止要求マスク期間カウンタ４０１の動作フローのフローチャートを示す。
【００３１】
まず、ステップＳ２１において、クロック停止要求マスク期間カウンタ４０１は、非カウント状態である。そして、ステップＳ２２において、クロック停止要求マスク期間カウンタ４０１は、ＷｒｉｔｅＤＭＡＣクロック供給要求信号が１の値であるかどうか、を毎サイクル判定する。ＷｒｉｔｅＤＭＡＣクロック供給要求信号が０の場合は、クロック停止要求マスク期間カウンタ４０１は、ステップＳ２１の非カウント状態を継続する。ＷｒｉｔｅＤＭＡＣクロック供給要求信号が１の場合は、クロック停止要求マスク期間カウンタ４０１は、ステップＳ２２と同一サイクルにおいて、次のステップＳ２３に移る。
【００３２】
ステップＳ２３では、クロック停止要求マスク期間カウンタ４０１は、クロックイネーブル生成カウンタ４００がカウント状態であるかどうかを判定する。クロックイネーブル生成カウンタ４００が、カウント状態でない場合は、クロック停止要求マスク期間カウンタ４０１は、ステップＳ２１の非カウント状態を継続する。クロックイネーブル生成カウンタ４００が、カウント状態の場合は、クロック停止要求マスク期間カウンタ４０１は、ステップＳ２４のカウント状態に移行する。ステップＳ２５では、ステップＳ２４と同一サイクルにおいて、クロック停止要求マスク期間カウンタ４０１は、ＷｒｉｔｅＤＭＡＣクロック停止要求信号の無効化を開始する。具体的に、クロック停止要求マスク期間カウンタ４０１のカウント状態では、クロック停止要求マスク期間カウンタ４０１はクロックイネーブルネゲート指示生成回路４０３に対して、カウント中を示す信号を出力する。クロックイネーブルネゲート指示生成回路４０３は、クロック停止要求マスク期間カウンタ４０１のカウント中を示す信号を受信すると、クロックイネーブルネゲート指示信号を出力しないように、クロックイネーブルネゲート指示信号の生成を制限する。クロックイネーブルネゲート指示信号の生成が制限されるので、ＷｒｉｔｅＤＭＡＣクロック停止要求信号が発生されても、クロックイネーブルネゲート指示信号が生成されず、ＷｒｉｔｅＤＭＡＣクロック停止要求信号が無効化される。
【００３３】
そして、ステップＳ２６では、次のサイクルで、クロック停止要求マスク期間カウンタ４０１は、クロック停止要求マスク期間カウンタ４０１の値を１にセットする。ステップＳ２７では、ステップＳ２６と同一サイクルで、クロック停止要求マスク期間カウンタ４０１は、ＷｒｉｔｅＤＭＡＣクロック供給要求信号が１の値であるかどうか、を判定する。ＷｒｉｔｅＤＭＡＣクロック供給要求信号が１の場合は、次のサイクルでステップＳ２６に戻ることで、クロック停止要求マスク期間カウンタ４０１は値を再度１にセットし、カウンタ値のリセットを行う。これは、クロック停止要求マスク期間カウンタ４０１がカウント状態時にＷｒｉｔｅＤＭＡＣクロック供給要求信号がアサートされた場合に、カウンタのカウント期間を延長し、カウンタを何度も再利用するためである。ＷｒｉｔｅＤＭＡＣクロック供給要求信号が０の場合は、ステップＳ２７と同一サイクルにおいて、次のステップＳ２８に移る。
【００３４】
ステップＳ２８では、クロック停止要求マスク期間カウンタ４０１は、クロック停止要求マスク期間カウンタ４０１の値が第二の所定時間５０１と等しいかどうかを判定する。クロック停止要求マスク期間カウンタ４０１の値が第二の所定時間５０１と等しくなければ、ステップＳ２９では、クロック停止要求マスク期間カウンタ４０１は値を＋１し、次のサイクルに再度ステップＳ２７の判定を行う。ステップＳ３０において、クロック停止要求マスク期間カウンタ４０１の値が第二の所定時間５０１と等しければ、クロック停止要求マスク期間カウンタ４０１は、ＷｒｉｔｅＤＭＡＣクロック停止要求信号の無効化を終了する。そして、クロック停止要求マスク期間カウンタ４０１は、ステップＳ２１の非カウント状態に戻る。
【００３５】
●単発の転送が発行された場合
図６に、本実施形態において単発の転送が発行された場合の、画像処理モジュール１１のデータ処理およびＷｒｉｔｅＤＭＡＣ３０２のクロック停止処理に関して波形を用いて説明する。
【００３６】
まず、ＲｅａｄＤＭＡＣ３００は、バスモジュール３０を介してＭＥＭＣ２０にリードリクエストを発行し、ＤＲＡＭ２００上の所定のアドレス領域のデータを読み込む（Ｔ０）。その際にＲｅａｄＤＭＡＣ外部バスデータ転送完了信号がアサートされる（Ｔ０）。そしてＲｅａｄＤＭＡＣ３００は、画像処理モジュール内演算回路３０１に対してＤＲＡＭ２００より受信したデータを転送する（Ｔ２）。その際にＲｅａｄＤＭＡＣ内部バスデータ転送発生信号がアサートされる（Ｔ２）。それと同時にＷｒｉｔｅＤＭＡＣクロック供給要求信号生成回路３０４は、ＷｒｉｔｅＤＭＡＣクロック供給要求信号をアサートする（Ｔ２）。
【００３７】
ＷｒｉｔｅＤＭＡＣクロック供給要求信号のアサートを受け、クロックイネーブル生成カウンタ４００は、時刻Ｔ３より第一の所定時間５００の間、時間計測を行う（Ｔ３→Ｔ３９７）。本実施形態では第一の所定時間５００は、３９５サイクルである。また、図３に示したクロックイネーブル生成カウンタのカウント中を示す信号（図６では不図示）は、クロックイネーブル生成カウンタ４００がカウント中の期間（Ｔ３→Ｔ３９７）はアサートされ、非カウント中の期間はネゲートされる。図６の、クロックイネーブル生成カウンタ４００がカウントを行っているサイクルにおいて、クロックイネーブル生成カウンタのカウント中を示す信号は常にアサートされている。
【００３８】
次に、画像処理モジュール内の演算回路３０１は、ＲｅａｄＤＭＡＣ３００から転送されたデータに対して画像処理演算を行う（Ｔ３→Ｔ４０２）。この画像処理モジュール内演算回路３０１内部での画像処理演算には４００サイクルの時間を要するとする。
【００３９】
Ｔ３９７において、クロックイネーブル生成カウンタ４００の第一の所定時間５００の時間計測が完了し、クロックイネーブル制御回路４０２に対してクロックイネーブルアサート指示信号がアサートされる。
【００４０】
ＷｒｉｔｅＤＭＡＣ３０２のクロックが供給され、ＷｒｉｔｅＤＭＡＣ３０２が実際に動作を開始するのは、クロックイネーブルアサート指示信号のアサート後、５サイクルの後であるとする。Ｔ４０２において、ＷｒｉｔｅＤＭＡＣ３０２のクロックが供給され、ＷｒｉｔｅＤＭＡＣ３０２の動作が開始される。
【００４１】
Ｔ４０２において、画像処理モジュール内演算回路３０１の処理が完了し、画像処理モジュール内演算回路３０１は、ＷｒｉｔｅＤＭＡＣ３０２に対して画像処理を行ったデータの転送を行う（Ｔ４０２）。
【００４２】
ＷｒｉｔｅＤＭＡＣ３０２は、画像処理モジュール内演算回路３０１より出力データを受信した後、バスモジュール３０を介してＭＥＭＣ２０にライトリクエストを発行し、ＤＲＡＭ２００上の所定のアドレス領域にデータを書き込む（Ｔ４０８）。その際にＷｒｉｔｅＤＭＡＣ外部バスデータ転送完了信号がアサートされる（Ｔ４０８）。それと同時にＷｒｉｔｅＤＭＡＣクロック停止要求信号生成回路３０５は、ＷｒｉｔｅＤＭＡＣクロック停止要求信号をアサートする（Ｔ４０８）。また、ＷｒｉｔｅＤＭＡＣ３０２がデータ処理を行っている間（Ｔ４０３→Ｔ４０８）、図３に示したＷｒｉｔｅＤＭＡＣ動作状態を示す信号（図６では不図示）はアサートされる。図６では、ＷｒｉｔｅＤＭＡＣ動作状態が動作中となっているサイクルにおいて、ＷｒｉｔｅＤＭＡＣ動作状態を示す信号は常にアサートされている。
【００４３】
ＷｒｉｔｅＤＭＡＣ３０２とＭＥＭＣ２０間のデータ転送が完了すると、ＷｒｉｔｅＤＭＡＣ３０２内に転送情報は存在しなくなり、ＷｒｉｔｅＤＭＡＣ３０２をクロック停止状態に置くことができる。そのため、時刻Ｔ４０８において、ＷｒｉｔｅＤＭＡＣ３０２とＭＥＭＣ２０間のデータ転送の完了と同時に、ＷｒｉｔｅＤＭＡＣクロック停止要求信号生成回路３０５は、ＷｒｉｔｅＤＭＡＣクロック停止要求信号をアサートする。同時に、クロックイネーブルネゲート指示生成回路４０３（第３生成回路）は、クロックイネーブル制御回路４０２に対して出力するクロックイネーブルネゲート指示信号（第２信号）をアサートする。即ち、クロックイネーブルネゲート指示生成回路４０３は、クロックイネーブルネゲート指示信号を生成し、クロックイネーブル制御回路４０２に出力する。
【００４４】
ＷｒｉｔｅＤＭＡＣ３０２のクロックが停止され、ＷｒｉｔｅＤＭＡＣ３０２が実際に動作を停止するのは、クロックイネーブルネゲート指示信号のアサート後、５サイクル後であるとする。Ｔ４１３において、ＷｒｉｔｅＤＭＡＣ３０２のクロックが停止され、ＷｒｉｔｅＤＭＡＣ３０２の動作が停止される。
【００４５】
なお、図６では、クロック停止要求マスク期間カウンタ４０１は、図５に示したカウンタの起動要件を満たさないため、全サイクル期間において非カウント状態を継続する。
【００４６】
●十分に長い間隔で、２連続の転送が発行された場合
十分に長い間隔で、２連続の転送が発行された場合は、それらの転送の間のＷｒｉｔｅＤＭＡＣ３０２が転送の処理を行っていない期間、ＷｒｉｔｅＤＭＡＣ３０２のクロックを停止させることができる。
【００４７】
上記の『十分に長い間隔』という文言は、先行の転送によりクロックイネーブル生成カウンタ４００が使用されていない状態で後行の転送が発行され、後行の転送によりクロックイネーブル生成カウンタ４００が使用可能な状態を意味する。
【００４８】
図７に、十分に長い間隔で、本実施形態において２連続の転送が発行された場合の、画像処理モジュール１１のデータ処理およびＷｒｉｔｅＤＭＡＣ３０２のクロック停止処理に関して波形を用いて説明する。
【００４９】
図７において、転送Ａが先行の転送、転送Ｂが後行の転送であるとする。
【００５０】
転送ＡのＴ４０８までの処理内容は、先述した図６の『単発の転送が発行された場合』の説明内容と同一処理であるため、詳細な説明は省略する。Ｔ４０８においてＷｒｉｔｅＤＭＡＣ３０２における転送Ａの処理が完了した結果、Ｔ４１３より、ＷｒｉｔｅＤＭＡＣ３０２のクロックは停止される。
【００５１】
Ｔ４１８において、転送Ｂが発行され、ＲｅａｄＤＭＡＣ３００がＭＥＭＣ２０にリードリクエストを発行し、ＤＲＡＭ２００上の所定のアドレス領域のデータを読み込む。そして、ＲｅａｄＤＭＡＣ３００は、画像処理モジュール内演算回路３０１に対してＤＲＡＭ２００より受信したデータを転送する（Ｔ４２０）。それと同時にＷｒｉｔｅＤＭＡＣクロック供給要求信号生成回路３０４は、ＷｒｉｔｅＤＭＡＣクロック供給要求信号をアサートする（Ｔ４２０）。
【００５２】
そして、クロックイネーブル生成カウンタ４００は、Ｔ４２１から第一の所定時間５００（３９５サイクル）経過した後のＴ８１５において、クロックイネーブルアサート指示信号をアサートする。そして、さらに５サイクル後のＴ８２０にＷｒｉｔｅＤＭＡＣ３０２のクロックが供給される。
【００５３】
その結果、転送Ａの処理が完了しＷｒｉｔｅＤＭＡＣ３０２のクロックが停止されるＴ４１３から、転送Ｂが発行されてＷｒｉｔｅＤＭＡＣ３０２のクロックが供給されるＴ８１９までの期間、ＷｒｉｔｅＤＭＡＣ３０２のクロックは停止する。その期間、ＷｒｉｔｅＤＭＡＣ３０２の電力を削減することができる。
【００５４】
またＴ８３１では、ＷｒｉｔｅＤＭＡＣ３０２における転送Ｂの処理完了に伴い、ＷｒｉｔｅＤＭＡＣ３０２のクロックは停止する。
【００５５】
なお、図７では、クロック停止要求マスク期間カウンタ４０１は、図５に示したカウンタの起動要件を満たさないため、全サイクル期間において非カウント状態を継続する。
【００５６】
●短い間隔で、２連続の転送が発行された場合（ケース１）
短い間隔で、２連続の転送が発行された場合（ケース１）は、それらの転送の間のＷｒｉｔｅＤＭＡＣ３０２が転送の処理を行っていない期間でも、ＷｒｉｔｅＤＭＡＣ３０２のクロックは停止されない。
【００５７】
上記の『短い間隔』という文言は、先行の転送によりクロックイネーブル生成カウンタ４００が使用されている状態で後行の転送が発行され、後行の転送によりクロックイネーブル生成カウンタ４００が使用不可能な状態を意味する。
【００５８】
本実施形態では、クロック停止要求マスク期間カウンタ４０１を利用して、後行の転送の発生から所定時間、ＷｒｉｔｅＤＭＡＣクロック停止要求信号のアサートを無効化させる。こうすることで、ＷｒｉｔｅＤＭＡＣ３０２のクロックが停止状態で、ＷｒｉｔｅＤＭＡＣ３０２に後行の転送が到達することを防ぐ。
【００５９】
図８に、本実施形態において短い間隔で、２連続の転送が発行された場合（ケース１）の、画像処理モジュール１１のデータ処理およびＷｒｉｔｅＤＭＡＣ３０２のクロック停止処理に関して波形を用いて説明する。
【００６０】
図８において、転送Ａが先行の転送、転送Ｂが後行の転送であるとする。
【００６１】
転送ＡのＴ４０８までの処理内容は、先述した『単発の転送が発行された場合』の説明内容と同一処理であるため、詳細な説明は省略する。
【００６２】
Ｔ８において、転送Ｂが発行され、ＲｅａｄＤＭＡＣ３００がＭＥＭＣ２０にリードリクエストを発行し、ＤＲＡＭ２００上の所定のアドレス領域のデータを読み込む。そしてＲｅａｄＤＭＡＣ３００は、画像処理モジュール内演算回路３０１に対してＤＲＡＭ２００より受信したデータを転送する（Ｔ１０）。それと同時にＷｒｉｔｅＤＭＡＣクロック供給要求信号生成回路３０４は、ＷｒｉｔｅＤＭＡＣクロック供給要求信号をアサートする（Ｔ１０）。
【００６３】
しかしながら、転送Ｂに関するＷｒｉｔｅＤＭＡＣクロック供給要求信号がアサートされるＴ１０の時点では、転送Ａに関するクロックイネーブル生成カウンタ４００の時間計測が実行中である。そのため、Ｔ１０の時点では、転送Ｂに関するクロックイネーブル生成カウンタ４００の時間計測を実行できない。
【００６４】
クロックイネーブル生成カウンタ４００の時間計測が実行中に、新しくＷｒｉｔｅＤＭＡＣクロック供給要求信号がアサートされたため、クロック停止要求マスク期間カウンタ４０１が動作を開始する（Ｔ１１）。具体的には、クロックイネーブル生成カウンタのカウント中を示す信号（図８では不図示）がアサート期間中（Ｔ１１→Ｔ４１０）にＷｒｉｔｅＤＭＡＣクロック供給要求信号がアサートされたことで、本カウンタの動作が開始される（Ｔ１１）。
【００６５】
クロック停止要求マスク期間カウンタ４０１は、時刻Ｔ１１より第二の所定時間５０１の間、時間計測を行う（Ｔ１１→Ｔ４１０）。本実施形態では第二の所定時間５０１は、４００サイクルである。また、図３に示したクロック停止要求マスク期間カウンタのカウント中を示す信号（図８では不図示）は、クロック停止要求マスク期間カウンタ４０１がカウント中の期間（Ｔ１１→Ｔ４１０）はアサートされ、非カウント中の期間はネゲートされる。図８の、クロック停止要求マスク期間カウンタ４０１がカウントを行っているサイクルにおいて、クロック停止要求マスク期間カウンタのカウント中を示す信号は常にアサートされている。
【００６６】
Ｔ４０８において、ＷｒｉｔｅＤＭＡＣ３０２における転送Ａの処理が完了し、ＷｒｉｔｅＤＭＡＣクロック停止要求信号がアサートされる。しかしながら、Ｔ４０８の時点では転送Ｂによりクロック停止要求マスク期間カウンタ４０１が時間計測中である。そのため、クロックイネーブルネゲート指示生成回路４０３は、ＷｒｉｔｅＤＭＡＣクロック停止要求信号のアサートを無視し、クロックイネーブルネゲート指示信号をアサートしない。即ち、クロックイネーブルネゲート指示信号の生成は、クロック停止要求マスク期間カウンタ４０１が計測中であることを示す信号によって制限される。そのため、転送Ａの処理完了に伴う、ＷｒｉｔｅＤＭＡＣ３０２のクロック停止要求は無効化される（Ｔ４０８）。その結果、ＷｒｉｔｅＤＭＡＣ３０２が転送Ｂを処理しているＴ４１３以降も、ＷｒｉｔｅＤＭＡＣ３０２のクロックは供給され続ける。
【００６７】
具体的には、クロックイネーブルネゲート指示生成回路４０３は、クロック停止要求マスク期間カウンタのカウント中を示す信号、またはＷｒｉｔｅＤＭＡＣ動作状態を示す信号（図８では不図示）のいずれかがアサートされていない期間、以下の制御を行う。クロックイネーブルネゲート指示生成回路４０３は、当該期間はＷｒｉｔｅＤＭＡＣクロック停止要求信号のアサートを無視し、クロックイネーブルネゲート指示信号の生成を制限し、クロックイネーブルネゲート指示信号をアサートしない。クロックイネーブルネゲート指示生成回路４０３は、ＷｒｉｔｅＤＭＡＣ３０２が動作時に、ＷｒｉｔｅＤＭＡＣ３０２のクロックを不用意に停止させることを防止する機構である。なお、ＷｒｉｔｅＤＭＡＣ３０２のクロック供給時の狭間の時間で、クロックを停止させないために、第１の実施形態に以下の構成を加えてもよい。クロックイネーブルアサート指示信号のアサートから、ＷｒｉｔｅＤＭＡＣが動作を開始するまでの期間は、クロックイネーブルネゲート指示信号を無効化する。
【００６８】
このように、転送Ａと転送Ｂの発生間隔が短い場合は、以下のことがいえる。２つの転送間でＷｒｉｔｅＤＭＡＣ３０２のクロックを停止させないが、ＷｒｉｔｅＤＭＡＣ３０２のクロックが停止状態時において、ＷｒｉｔｅＤＭＡＣ３０２に転送Ｂが到達することを防止できる。
【００６９】
このように、本実施形態では、クロックイネーブル生成カウンタ４００およびクロック停止要求マスク期間カウンタ４０１の２つのカウンタを用いてクロック制御を行っており、クロック制御に必要な回路規模を小さく構成することができる。
【００７０】
また、Ｔ４２１では、ＷｒｉｔｅＤＭＡＣ３０２における転送Ｂの処理完了に伴い、ＷｒｉｔｅＤＭＡＣ３０２のクロックは停止する。
【００７１】
●短い間隔で、２連続の転送が発行された場合（ケース２）
図９に、短い間隔で、２連続の転送が発行された場合（ケース２）の、画像処理モジュール１１のデータ処理およびＷｒｉｔｅＤＭＡＣ３０２のクロック停止処理に関して波形を用いて説明する。
【００７２】
上記の『短い間隔』という文言は、先行の転送によりクロックイネーブル生成カウンタ４００が使用されている状態で後行の転送が発行され、後行の転送によりクロックイネーブル生成カウンタ４００が使用不可能な状態を意味する。
【００７３】
図９において、転送Ａが先行の転送、転送Ｂが後行の転送であるとする。
【００７４】
図８では転送Ａと転送Ｂの間隔は８サイクルとかなり短かったが、図９では転送Ａと転送Ｂの間隔は１０３サイクルとなる。図９での転送間隔（１０３サイクル）は図８のケース（８サイクル）よりも長いが、第一の所定時間５００の３９５サイクルよりも短くなっている。
【００７５】
図９において図８との違いは、転送Ａと転送Ｂの間隔が８サイクル→１０３サイクルに変更されているだけであり、個々の処理内容は違いがない。そのため、詳細な説明は省略する。
【００７６】
図９では、Ｔ１０５において、転送ＢによりＷｒｉｔｅＤＭＡＣクロック供給要求信号がアサートされるが、転送Ａによりクロックイネーブル生成カウンタ４００が使用されている。そのため、Ｔ１０６→Ｔ４１０の期間、クロック停止要求マスク期間カウンタ４０１が動作する。
【００７７】
Ｔ４０８で、ＷｒｉｔｅＤＭＡＣ３０２における転送Ａの処理が完了し、ＷｒｉｔｅＤＭＡＣクロック停止要求信号がアサートされる。しかしながら、Ｔ４０８の時点では転送Ｂによりクロック停止要求マスク期間カウンタ４０１が時間計測中である。そのためクロックイネーブルネゲート指示生成回路４０３は、ＷｒｉｔｅＤＭＡＣクロック停止要求信号のアサートを無視し、クロックイネーブルネゲート指示信号をアサートしない。
【００７８】
その結果、転送Ａの処理が完了後のＴ４１３から、転送ＢがＷｒｉｔｅＤＭＡＣ３０２に到達する直前のＴ５０４までの期間、ＷｒｉｔｅＤＭＡＣ３０２のクロックは供給され続ける。そのため、２つの転送間でＷｒｉｔｅＤＭＡＣ３０２のクロックを停止させないが、ＷｒｉｔｅＤＭＡＣ３０２のクロックが停止状態時において、ＷｒｉｔｅＤＭＡＣ３０２に転送Ｂが到達することを防止できる。
【００７９】
●短い間隔で、３連続以上の転送が発行された場合
図１０に、短い間隔で、３連続の転送が発行された場合の、画像処理モジュール１１のデータ処理およびＷｒｉｔｅＤＭＡＣ３０２のクロック停止処理（第１の実施形態）に関して波形を用いて説明する。
【００８０】
上記の『短い間隔』という文言は、先行の転送によりクロックイネーブル生成カウンタ４００が使用されている状態で後行の転送が発行され、後行の転送によりクロックイネーブル生成カウンタ４００が使用不可能な状態を意味する。
【００８１】
図１０において、１つ目の転送を転送Ａ、２つ目の転送を転送Ｂ，３つ目の転送を転送Ｃとする。３つの転送による個々の処理内容は、図６や図８の説明内容と同様であり、詳細な説明は省略する。
【００８２】
短い間隔で、３連続以上で転送が発行された場合、すなわちクロック停止要求マスク期間カウンタ４０１の時間計測中に、後行の転送によりＷｒｉｔｅＤＭＡＣクロック供給要求信号がアサートされた場合（Ｔ１０）は、次の動作を行う。クロック停止要求マスク期間カウンタ４０１は現在の値をリセットし（Ｔ１１）、再度第二の所定時間５０１の間、時間を計測する（Ｔ１１→Ｔ４１０）。これにより、短い間隔で、３連続以上の転送が発行された場合でも、クロック停止要求マスク期間カウンタ４０１の計測時間をその都度延長させ、本カウンタを再利用することができる。このため、クロック停止要求マスク期間カウンタ４０１を複数用意しなくても、ＷｒｉｔｅＤＭＡＣ３０２のクロックが停止状態で、ＷｒｉｔｅＤＭＡＣ３０２に後行の転送が到達することを防ぐことができる。
【００８３】
なお、Ｔ４１２において、ＷｒｉｔｅＤＭＡＣ３０２における転送Ｂの処理完了に伴いＷｒｉｔｅＤＭＡＣクロック停止要求信号がアサートされている。この際にクロック停止要求マスク期間カウンタ４０１が非カウント状態にも関わらず、クロックイネーブルネゲート指示信号がアサートされていない。これはＴ４１２の時点で、転送ＣによりＷｒｉｔｅＤＭＡＣが使用されているため、この時点ではＷｒｉｔｅＤＭＡＣのクロックを停止させることができないためである。具体的には、Ｔ４１２ではＷｒｉｔｅＤＭＡＣ３０２が転送Ｃを処理しており、ＷｒｉｔｅＤＭＡＣ動作状態を示す信号（図１０では不図示）がアサートされている。そのため、クロックイネーブルネゲート指示生成回路４０３は、ＷｒｉｔｅＤＭＡＣクロック停止要求信号のアサートを無視し、クロックイネーブルネゲート指示信号をアサートしない。
【００８４】
（第２の実施形態）
［装置の構成例］
第２の実施形態では、第１の実施形態の構成のうち、一部の構成のみが異なる。そのため、第１の実施形態と同じ構成部分に関しては説明を省略し、主に第２の実施形態が第１の実施形態と異なる部分を詳細に説明する。
【００８５】
第２の実施形態の画像処理モジュール１１の基本構成は、第１の実施形態の画像処理モジュール１１の基本構成と同じであるので、その説明を省略する。本実施形態のＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３の構成は第１の実施形態と異なり、図１１のブロック図に、本実施形態のＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３の構成例を示す。
【００８６】
第２の実施形態では、第１の実施形態の構成に加えて、画像処理モジュール内演算回路３０１のデータのストール状態の発生を通知するデータストール状態通知手段６００を備える。また、データストール状態通知手段６００は、画像処理モジュール内演算回路３０１の内部状態を示す演算回路内部状態信号を受信する。
【００８７】
データストール状態通知手段６００は、演算回路内部状態信号の状態を確認して画像処理モジュール内演算回路３０１内部でデータ処理のストールが発生している期間を特定し、その期間の間、データストール状態通知信号をアサートする。
【００８８】
クロックイネーブル生成カウンタ４００およびクロック停止要求マスク期間カウンタ４０１は、データストール状態通知信号がアサートされている期間は、これらのカウンタの時間計測を中断させることができる。データ処理のストールが解消され、データストール状態通知信号がネゲートされると、クロックイネーブル生成カウンタ４００およびクロック停止要求マスク期間カウンタ４０１は時間計測を再開する。
【００８９】
これにより、データのストール状態の発生により、画像処理モジュール１１内での処理時間が遅延する場合でも、ＷｒｉｔｅＤＭＡＣ３０２のクロック制御を正しく行うことができる。
【００９０】
●短い間隔で、２連続の転送が発行された場合
図１２に、短い間隔で、２連続の転送が発行された場合の、画像処理モジュール１１のデータ処理およびＷｒｉｔｅＤＭＡＣ３０２のクロック停止処理（第２の実施形態）に関して波形を用いて説明する。
【００９１】
上記の『短い間隔』という文言は、先行の転送によりクロックイネーブル生成カウンタ４００が使用されている状態で後行の転送が発行され、後行の転送によりクロックイネーブル生成カウンタ４００が使用不可能な状態を意味する。
【００９２】
図１２において、転送Ａが先行の転送、転送Ｂが後行の転送であるとする。
【００９３】
２つの転送による個々の処理内容は、図６や図８の説明内容と同様であり、詳細な説明は省略する。
【００９４】
Ｔ３９５において、画像処理モジュール内演算回路３０１のデータのストール状態が発生し、データストール状態通知信号のアサートが開始される。データストール状態通知信号のアサートは、Ｔ３９５からＴ３９８まで発生している。これに伴い、Ｔ３９６からＴ３９９までの期間は、クロックイネーブル生成カウンタ４００およびクロック停止要求マスク期間カウンタ４０１は、時間計測を中断し、現在の値を保持する。時刻Ｔ３９９に、データのストール状態が解消され、データストール状態通知信号がネゲートされる。これにより、クロックイネーブル生成カウンタ４００およびクロック停止要求マスク期間カウンタ４０１は、Ｔ４００より時間計測を再開する。
【００９５】
本実施形態としては、第１の実施形態との差分という形で説明したが、本実施形態を第１の実施形態以外の実施形態と合わせて実施することが可能であることは、容易に理解できよう。
【００９６】
（第３の実施形態）
［装置の構成例］
第３の実施形態では、第１の実施形態の構成のうち、一部の構成のみが異なる。そのため、第１の実施形態と同じ構成部分に関しては説明を省略し、主に第３の実施形態が第１の実施形態と異なる部分を、詳細に説明する。
【００９７】
第３の実施形態では、クロックイネーブル生成カウンタ４００の内部構成のみが第１の実施形態と異なる。図１３のブロック図に、第３の実施形態のクロックイネーブル生成カウンタ４００の構成例を示す。
【００９８】
第３の実施形態では、第１の実施形態のＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３内の構成のうち、クロックイネーブル生成カウンタ４００を、直列的に接続された複数のカウンタで分割構成する。本実施形態では、クロックイネーブル生成カウンタ４００を４つのカウンタで分割構成する。分割したカウンタはそれぞれ、分割クロックイネーブル生成カウンタＡ７００、分割クロックイネーブル生成カウンタＢ７０１、分割クロックイネーブル生成カウンタＣ７０２、分割クロックイネーブル生成カウンタＤ７０３と名称する。
【００９９】
また、このように分割した４つのカウンタは、それぞれ所定時間Ａ８００、所定時間Ｂ８０１、所定時間Ｃ８０２、所定時間Ｄ８０３を計測する。このように分割した上記４つの所定時間を合計すると、第１の実施形態の第一の所定時間５００と等しくなる。
【０１００】
このとき、初段の所定時間Ａ８００の値は、後段の所定時間Ｂ８０１、所定時間Ｃ８０２、所定時間Ｄ８０３と等しいか、より大きな値である必要がある。これは後述するように、初段の分割クロックイネーブル生成カウンタＡ７００の時間計測中に、ＷｒｉｔｅＤＭＡＣクロック供給要求信号がアサートされた場合のみ、クロック停止要求マスク期間カウンタ４０１を動作させるからである。
【０１０１】
上記分割した４つのカウンタの動作は、以下の通りである。
【０１０２】
まず、ＷｒｉｔｅＤＭＡＣクロック供給要求信号がアサートされると、分割クロックイネーブル生成カウンタＡ７００が所定時間Ａ８００の時間計測を開始する。分割クロックイネーブル生成カウンタＡ７００の時間計測が終了すると、分割クロックイネーブル生成カウンタＢ７０１が所定時間Ｂ８０１の時間計測を開始する。
【０１０３】
同様に、分割クロックイネーブル生成カウンタＢ７０１の時間計測が終了すると、分割クロックイネーブル生成カウンタＣ７０２が所定時間Ｃ８０２の時間計測を開始する。
【０１０４】
同様に、分割クロックイネーブル生成カウンタＣ７０２の時間計測が終了すると、分割クロックイネーブル生成カウンタＤ７０３が所定時間Ｄ８０３の時間計測を開始する。
【０１０５】
最後に、分割クロックイネーブル生成カウンタＤ７０３の時間計測が終了すると、クロックイネーブル制御回路４０２に対してクロックイネーブルアサート指示信号がアサートされる。その後、ＷｒｉｔｅＤＭＡＣ３０２のクロックが供給され、ＷｒｉｔｅＤＭＡＣ３０２の動作が開始される。
【０１０６】
第３の実施形態では、初段の分割クロックイネーブル生成カウンタＡ７００が時間計測中に、ＷｒｉｔｅＤＭＡＣクロック供給要求信号がアサートされた場合のみ、クロック停止要求マスク期間カウンタ４０１を動作させる。すなわち、第３の実施形態では、クロックイネーブル生成カウンタのカウント中を示す信号は、初段の分割クロックイネーブル生成カウンタＡ７００がカウント中の期間はアサートされ、非カウント中の期間はネゲートされる。
【０１０７】
一方で、第１の実施形態では、クロックイネーブル生成カウンタ４００全体が時間計測中に、ＷｒｉｔｅＤＭＡＣクロック供給要求信号がアサートされると、クロック停止要求マスク期間カウンタ４０１を動作させる。
【０１０８】
第３の実施形態のカウンタ４分割の例では、所定時間Ａ８００は第一の所定時間５００の１／４程度の値に構成することができる。このクロックイネーブル生成カウンタ４００を分割構成することで、カウンタを分割構成しない場合（第１の実施形態）と比較して、より短い発行間隔の転送間でもクロックを停止できるようになる。
【０１０９】
第１の実施形態の第一の所定時間５００は３９５サイクルであり、第３の実施形態のカウンタ４分割の例では、各分割した計測時間は以下のように設定される。所定時間Ａ８００は１００サイクル、所定時間Ｂ８０１は１００サイクル、所定時間Ｃ８０２は１００サイクル、所定時間Ｄ８０３は９５サイクルである。
【０１１０】
そのため、第１の実施形態では各転送間隔が３９５サイクル以下の場合、転送間にＷｒｉｔｅＤＭＡＣ３０２のクロックは停止しなくなる。その一方で第３の実施形態では各転送間隔が１００サイクル以下の場合に、転送間にＷｒｉｔｅＤＭＡＣ３０２のクロックは停止しなくなり、カウンタ分割によりクロックが停止する時間粒度をより細かくできる。
【０１１１】
［分割クロックイネーブル生成カウンタＡ７００の動作フロー］
図１４に、第３の実施形態の分割クロックイネーブル生成カウンタＡ７００の動作フローのフローチャートを示す。
【０１１２】
まず、ステップＳ４１において、分割クロックイネーブル生成カウンタＡ７００は、非カウント状態である。そして、ステップＳ４２において、分割クロックイネーブル生成カウンタＡ７００は、ＷｒｉｔｅＤＭＡＣクロック供給要求信号が１の値であるかどうか、を毎サイクル判定する。ＷｒｉｔｅＤＭＡＣクロック供給要求信号が０の場合は、分割クロックイネーブル生成カウンタＡ７００は、ステップＳ４１の非カウント状態を継続する。ＷｒｉｔｅＤＭＡＣクロック供給要求信号が１の場合は、分割クロックイネーブル生成カウンタＡ７００は、ステップＳ４３のカウント状態に移行する。
【０１１３】
そして、ステップＳ４４において、次のサイクルで、分割クロックイネーブル生成カウンタＡ７００は、分割クロックイネーブル生成カウンタＡ７００の値を１にセットする。その後、ステップＳ４５において、分割クロックイネーブル生成カウンタＡ７００は、分割クロックイネーブル生成カウンタＡ７００の値が所定時間Ａ８００の値と等しいかどうかを、毎サイクル判定する。分割クロックイネーブル生成カウンタＡ７００の値が所定時間Ａ８００の値と等しくなければ、ステップＳ４６において、分割クロックイネーブル生成カウンタＡ７００が値を＋１し、次のサイクルに再度ステップＳ４５の判定を行う。分割クロックイネーブル生成カウンタＡ７００の値が所定時間Ａ８００の値と等しければ、ステップＳ４７において、分割クロックイネーブル生成カウンタＡ７００は、後段のカウンタである分割クロックイネーブル生成カウンタＢ７０１の起動指示を行う。そして、分割クロックイネーブル生成カウンタＡ７００は、ステップＳ４１の非カウント状態に戻る。
【０１１４】
なお、クロックイネーブル生成カウンタ４００の分割数が４から変化した場合でも、初段のカウンタに関しては、図１４の動作説明が適用できる。
【０１１５】
［分割クロックイネーブル生成カウンタＢ７０１の動作フロー］
図１５に、第３の実施形態の分割クロックイネーブル生成カウンタＢ７０１の動作フローのフローチャートを示す。
【０１１６】
まず、ステップＳ５１において、分割クロックイネーブル生成カウンタＢ７０１は、非カウント状態である。そして、ステップＳ５２において、前段のカウンタである分割クロックイネーブル生成カウンタＡ７００のカウント状態が完了し、前段のカウンタがカウント状態から非カウント状態に移行したかどうか、を毎サイクル判定する。前段のカウンタがカウント状態から非カウント状態に移行していない場合は、分割クロックイネーブル生成カウンタＢ７０１は、ステップＳ５１の非カウント状態を継続する。前段のカウンタがカウント状態から非カウント状態に移行した場合は、分割クロックイネーブル生成カウンタＢ７０１は、ステップＳ５３のカウント状態に移行する。
【０１１７】
そして、ステップＳ５４において、次のサイクルで、分割クロックイネーブル生成カウンタＢ７０１は、分割クロックイネーブル生成カウンタＢ７０１の値を１にセットする。その後、ステップＳ５５において、分割クロックイネーブル生成カウンタＢ７０１は、分割クロックイネーブル生成カウンタＢ７０１の値が所定時間Ｂ８０１の値と等しいかどうかを、毎サイクル判定する。分割クロックイネーブル生成カウンタＢ７０１の値が所定時間Ｂ８０１の値と等しくなければ、ステップＳ５６において、分割クロックイネーブル生成カウンタＢ７０１は値を＋１し、次のサイクルに再度ステップＳ５５の判定を行う。分割クロックイネーブル生成カウンタＢ７０１の値が所定時間Ｂ８０１の値と等しければ、ステップＳ５７において、分割クロックイネーブル生成カウンタＢ７０１は、後段のカウンタである分割クロックイネーブル生成カウンタＣ７０２の起動指示を行う。そして、分割クロックイネーブル生成カウンタＢ７０１は、ステップＳ５１の非カウント状態に戻る。
【０１１８】
なお、クロックイネーブル生成カウンタ４００の分割数が４から変化した場合でも、初段と最終段を除く中段のカウンタに関しては、図１５の動作説明が適用できる。分割クロックイネーブル生成カウンタＣ７０２の動作フローは、分割クロックイネーブル生成カウンタＢ７０１の動作フローと同一であるので、詳細な説明は省略する。
【０１１９】
［分割クロックイネーブル生成カウンタＤ７０３の動作フロー］
図１６に、第３の実施形態の分割クロックイネーブル生成カウンタＤ７０３の動作フローのフローチャートを示す。
【０１２０】
まず、ステップＳ７１において、分割クロックイネーブル生成カウンタＤ７０３は、非カウント状態である。そして、ステップＳ７２において、前段のカウンタである分割クロックイネーブル生成カウンタＣ７０２のカウント状態が完了し、前段のカウンタがカウント状態から非カウント状態に移行したかどうか、を毎サイクル判定する。前段のカウンタがカウント状態から非カウント状態に移行していない場合は、分割クロックイネーブル生成カウンタＤ７０３は、ステップＳ７１の非カウント状態を継続する。前段のカウンタがカウント状態から非カウント状態に移行した場合は、ステップＳ７３において、分割クロックイネーブル生成カウンタＤ７０３は、カウント状態に移行する。
【０１２１】
そして、次のサイクルで、ステップＳ７４において、分割クロックイネーブル生成カウンタＤ７０３は、分割クロックイネーブル生成カウンタＤ７０３の値を１にセットする。その後、ステップＳ７５において、分割クロックイネーブル生成カウンタＤ７０３は、分割クロックイネーブル生成カウンタＤ７０３の値が所定時間Ｄ８０３の値と等しいかどうかを、毎サイクル判定する。分割クロックイネーブル生成カウンタＤ７０３の値が所定時間Ｄ８０３の値と等しくなければ、ステップＳ７６において、分割クロックイネーブル生成カウンタＤ７０３は値を＋１し、次のサイクルに再度ステップＳ７５の判定を行う。分割クロックイネーブル生成カウンタＤ７０３の値が所定時間Ｄ８０３の値と等しければ、ステップＳ７７において、分割クロックイネーブル生成カウンタＤ７０３は、クロックイネーブルアサート指示信号の値を１に変更する。そして、分割クロックイネーブル生成カウンタＤ７０３は、ステップＳ７１の非カウント状態に戻る。
【０１２２】
なお、クロックイネーブル生成カウンタ４００の分割数が４から変化した場合でも、最終段のカウンタに関しては、図１６の動作説明が適用できる。
【０１２３】
本実施形態のクロック停止要求マスク期間カウンタ４０１の基本的な動作は、図５の第１の実施形態のクロック停止要求マスク期間カウンタ４０１の動作フローと同一なので、第１の実施形態と違いがある箇所に関してのみ詳細に説明する。
【０１２４】
図５のステップＳ２３では、クロックイネーブル生成カウンタ４００が、カウント状態であるかどうかを判定し、その後、ステップＳ２４に移行してクロック停止要求マスク期間カウンタ４０１をカウント状態にしていた。一方で、本実施形態では、分割したクロックイネーブル生成カウンタ４００の初段のカウンタである、分割クロックイネーブル生成カウンタＡ７００が、カウント状態であるかどうかを判定している。
【０１２５】
第１の実施形態では、クロックイネーブル生成カウンタ４００全体の計測対象である第一の所定時間５００は、３９５サイクルである。一方で、本実施形態では、分割クロックイネーブル生成カウンタＡ７００の計測対象である分割第一の時間Ａ８００は、１００サイクルである。このため、クロックイネーブル生成カウンタ４００を分割構成することで、各転送間でクロックが停止する時間粒度をより細かくできる。
【０１２６】
●短い間隔で、２連続の転送が発行されるが、クロックが停止する場合
図１７に、短い間隔で、２連続の転送が発行された場合の、第３の実施形態の画像処理モジュール１１のデータ処理およびＷｒｉｔｅＤＭＡＣ３０２のクロック停止処理に関して波形を用いて説明する。
【０１２７】
図１７において、転送Ａが先行の転送、転送Ｂが後行の転送であるとする。
【０１２８】
図１７では、第１の実施形態の図９の例と同じ間隔で転送Ａと転送Ｂが発行されており、各転送が処理されるタイミングは、図１７と図９の例で同一である。しかし、図９では単一構成のクロックイネーブル生成カウンタ４００が、図１７では４つのカウンタに分割構成されている点が異なる。
【０１２９】
このため、図１７と図９では、以下のような違いが生じている。
【０１３０】
図９の時刻Ｔ１０５では、クロックイネーブル生成カウンタ４００の時間計測が実行中に、新しくＷｒｉｔｅＤＭＡＣクロック供給要求信号がアサートされる。そのため、転送Ｂに関してクロックイネーブル生成カウンタ４００を動作させることができず、クロック停止要求マスク期間カウンタ４０１が動作を開始している。その結果、Ｔ４１３→Ｔ５０４の転送Ａと転送Ｂの間に、ＷｒｉｔｅＤＭＡＣ３０２のクロックを停止させることができない。
【０１３１】
一方で、図１７の時刻Ｔ１０５では、分割クロックイネーブル生成カウンタＡ７００の時間計測が完了後に、新しくＷｒｉｔｅＤＭＡＣクロック供給要求信号がアサートされる。そのため、転送Ｂに関して分割クロックイネーブル生成カウンタＡ７００を動作させることができ、クロック停止要求マスク期間カウンタ４０１は動作を開始しない。その結果、Ｔ４１３→Ｔ５０４の転送Ａと転送Ｂの間に、ＷｒｉｔｅＤＭＡＣ３０２のクロックを停止させることができる。
【０１３２】
図１７の時刻Ｔ１０５での転送Ｂの発生により、時刻Ｔ１０６から分割クロックイネーブル生成カウンタＡ７００がカウントを開始し、３９４サイクル後のＴ５００（非図示）において、分割クロックイネーブル生成カウンタＤ７０３のカウントが完了する。そして、クロックイネーブル制御回路４０２に対してクロックイネーブルアサート指示信号がアサートされる。さらに５サイクル後の時刻Ｔ５０５に、クロック供給が停止されていたＷｒｉｔｅＤＭＡＣ３０２に対して、クロックが供給される。
【０１３３】
本実施形態としては、第１の実施形態との差分という形で説明したが、本実施形態を、第１の実施形態以外の実施形態と合わせて実施することが可能であることは、容易に理解できよう。
【０１３４】
（第４の実施形態）
第４の実施形態では、第１の実施形態と同一構成において、各カウンタが適切な値の設定する方法を説明する。
【０１３５】
第１の実施形態では、クロックイネーブル生成カウンタ４００が第一の所定時間５００を、クロック停止要求マスク期間カウンタ４０１が第二の所定時間５０１を計測することで、ＷｒｉｔｅＤＭＡＣ３０２のクロック制御を行っている。
【０１３６】
本実施形態では、これらのカウンタの計測すべき時間の値が変動する場合に、第一の所定時間５００および第二の所定時間５０１に適切な値を設定する方法の一例について述べる。
【０１３７】
本実施形態では、画像処理モジュール内の演算回路３０１内部での画像処理演算に、最小で３５０サイクル、最大で４５０サイクルの時間を要し、この範囲内で処理時間が変動するものとする。一方でＷｒｉｔｅＤＭＡＣ３０２のクロックが供給され、ＷｒｉｔｅＤＭＡＣ３０２が実際に動作を開始するのは、クロックイネーブルアサート指示信号のアサート後、第１の実施形態と同じく５サイクル後であるとする。
【０１３８】
この場合、ＷｒｉｔｅＤＭＡＣクロック供給要求信号のアサートから、ＷｒｉｔｅＤＭＡＣ３０２に転送が到達するまでの時間は、最小で３５０サイクル、最大で４５０サイクルとなる。
【０１３９】
一方で、ＷｒｉｔｅＤＭＡＣ３０２のクロック供給からＷｒｉｔｅＤＭＡＣ３０２の動作開始までの時間差（５サイクル）を考慮すると、以下のことがいえる。すなわち、ＷｒｉｔｅＤＭＡＣクロック供給要求信号のアサートから、クロックイネーブルアサート指示信号のアサートまでの時間は、最小で３４５サイクル、最大で４４５サイクルを設定するのが適切である。
【０１４０】
クロックイネーブル生成カウンタ４００は、ＷｒｉｔｅＤＭＡＣ３０２のクロックの供給制御を行っている。
【０１４１】
そのため、確実なクロック制御という観点では、本カウンタの計測対象の時間が変動する場合は、早めにクロックを供給させるように制御することが好ましい。そのため、第４の実施形態では、第一の所定時間５００として、ＷｒｉｔｅＤＭＡＣクロック供給要求信号のアサートから、クロックイネーブルアサート指示信号のアサートまでの時間の最小値である、３４５サイクルを設定する。
【０１４２】
一方でクロック停止要求マスク期間カウンタ４０１は、短い間隔で転送が発生した場合に、後行の転送に関して、ＷｒｉｔｅＤＭＡＣ３０２のクロックが停止状態時にＷｒｉｔｅＤＭＡＣ３０２に転送が到達することを防ぐことを目的としている。クロック停止要求マスク期間カウンタ４０１は、短い間隔で転送が発生した場合に、所定時間、ＷｒｉｔｅＤＭＡＣクロック停止要求信号のアサートを無効化し、ＷｒｉｔｅＤＭＡＣ３０２のクロックが不用意に停止しないように制御する。
【０１４３】
そのため、確実なクロック制御という観点では、本カウンタの計測対象の時間が変動する場合は、できるだけ長くＷｒｉｔｅＤＭＡＣ３０２のクロックが停止しないように制御することが好ましい。そのため第４の実施形態では、第二の所定時間５０１として、ＷｒｉｔｅＤＭＡＣクロック供給要求信号のアサートから、ＷｒｉｔｅＤＭＡＣ３０２に転送が到達するまでの時間の最大値である、４５０サイクルを設定する。
【０１４４】
このように、データ処理時間が変動する等して、これらのカウンタの計測すべき時間の値が変動する場合には、以下の対策が有効である。クロックイネーブル生成カウンタ４００の計測対象の第一の所定時間５００には変動値のうち最小値を、クロック停止要求マスク期間カウンタ４０１の計測対象の第二の所定時間５０１には変動値のうち最大値を使用する。
【０１４５】
こうすることで、ＷｒｉｔｅＤＭＡＣ３０２のクロックが停止状態時にＷｒｉｔｅＤＭＡＣ３０２に転送が到達することを防ぐように、ＷｒｉｔｅＤＭＡＣ３０２のクロック制御を堅実に行うことができる。
【０１４６】
●カウンタの計測すべき時間の値が変動する場合
以下に、本実施形態において、カウンタの計測すべき時間の値が変動する場合の、画像処理モジュール１１のデータ処理およびＷｒｉｔｅＤＭＡＣ３０２のクロック停止処理に関して波形を用いて説明する。
【０１４７】
前述した通り、画像処理モジュール内演算回路３０１内部での画像処理演算に、最小で３５０サイクル、最大で４５０サイクルの時間を要するとする。またクロックイネーブル生成カウンタ４００の計測対象の第一の所定時間５００には最小値の３４５サイクルを、クロック停止要求マスク期間カウンタ４０１の計測対象の第二の所定時間５０１には最大値の４５０サイクルを使用する。
【０１４８】
以下に、画像処理モジュール内演算回路３０１内部での画像処理演算に、それぞれ、３５０サイクル（最小値）、４００サイクル（中央値）、４５０サイクル（最大値）要する場合の動作に関して、個別に説明する。
【０１４９】
・画像処理演算に３５０サイクル（最小値）要する場合
図１８に、第４の実施形態の画像処理演算に３５０サイクル（最小値）要する場合の処理に関して波形を用いて説明する。
【０１５０】
図１８において、転送Ａが先行の転送、転送Ｂが後行の転送であるとする。
【０１５１】
図１８では、Ｔ３において転送Ａによりクロックイネーブル生成カウンタ４００が時間計測を開始し、Ｔ３５２でＷｒｉｔｅＤＭＡＣ３０２に転送Ａが到達する。
【０１５２】
クロックイネーブル生成カウンタ４００の計測対象の第一の所定時間５００に最小値の３４５サイクルを設定したので、Ｔ３５２でＷｒｉｔｅＤＭＡＣ３０２に転送Ａが到達する時点のＴ３５２にはクロックを供給することができている。
【０１５３】
また、Ｔ１１において転送Ｂによりクロック停止要求マスク期間カウンタ４０１が時間計測を開始し、Ｔ３６０でＷｒｉｔｅＤＭＡＣ３０２に転送Ｂが到達する。
【０１５４】
クロック停止要求マスク期間カウンタ４０１の計測対象の第二の所定時間５０１に最大値の４５０サイクルを設定したので、転送Ａと転送Ｂの間では、ＷｒｉｔｅＤＭＡＣ３０２のクロックは停止しない。
【０１５５】
・画像処理演算に４００サイクル（中央値）要する場合
図１９に、第４の実施形態の画像処理演算に４００サイクル（中央値）要する場合の処理に関して波形を用いて説明する。
【０１５６】
図１９において、転送Ａが先行の転送、転送Ｂが後行の転送であるとする。
【０１５７】
図１９では、Ｔ３において転送Ａによりクロックイネーブル生成カウンタ４００が時間計測を開始し、Ｔ４０２でＷｒｉｔｅＤＭＡＣ３０２に転送Ａが到達する。
【０１５８】
クロックイネーブル生成カウンタ４００の計測対象の第一の所定時間５００に最小値の３４５サイクルを設定したので、Ｔ４０２でＷｒｉｔｅＤＭＡＣ３０２に転送Ａが到達するより前のＴ３５２にはクロックを供給することができている。
【０１５９】
また、Ｔ１１において転送Ｂによりクロック停止要求マスク期間カウンタ４０１が時間計測を開始し、Ｔ４１０でＷｒｉｔｅＤＭＡＣ３０２に転送Ｂが到達する。
【０１６０】
クロック停止要求マスク期間カウンタ４０１の計測対象の第二の所定時間５０１に最大値の４５０サイクルを設定したので、転送Ａと転送Ｂの間では、ＷｒｉｔｅＤＭＡＣ３０２のクロックは停止しない。
【０１６１】
・画像処理演算に４５０サイクル（最大値）要する場合
図２０に、第４の実施形態の画像処理演算に４５０サイクル（最大値）要する場合の処理に関して波形を用いて説明する。
【０１６２】
図２０において、転送Ａが先行の転送、転送Ｂが後行の転送であるとする。
【０１６３】
図２０では、Ｔ３において転送Ａによりクロックイネーブル生成カウンタ４００が時間計測を開始し、Ｔ４５２でＷｒｉｔｅＤＭＡＣ３０２に転送Ａが到達する。
【０１６４】
クロックイネーブル生成カウンタ４００の計測対象の第一の所定時間５００に最小値の３４５サイクルを設定したので、Ｔ４５２でＷｒｉｔｅＤＭＡＣ３０２に転送Ａが到達するより前のＴ３５２にはクロックを供給することができている。
【０１６５】
また、Ｔ１１において転送Ｂによりクロック停止要求マスク期間カウンタ４０１が時間計測を開始し、Ｔ４６０でＷｒｉｔｅＤＭＡＣ３０２に転送Ｂが到達する。
【０１６６】
クロック停止要求マスク期間カウンタ４０１の計測対象の第二の所定時間５０１に最大値の４５０サイクルを設定したので、転送Ａと転送Ｂの間では、ＷｒｉｔｅＤＭＡＣ３０２のクロックは停止しない。
【０１６７】
・クロックを停止させる機会を増やすための機構の組み込み
本実施形態では、第二の所定時間５０１に変動値のうち最大値を使用して、クロック停止要求マスク期間カウンタ４０１の制御を行っている。
【０１６８】
そのため、ＷｒｉｔｅＤＭＡＣクロック停止要求信号がアサートされても、クロック停止要求マスク期間カウンタ４０１がカウント中のために、ＷｒｉｔｅＤＭＡＣ３０２のクロックが停止しないケースが発生し得る。この現象は、図１８のＴ３６６や図１９のＴ４１６で発生している。
【０１６９】
そのため、第４の実施形態において、ＷｒｉｔｅＤＭＡＣ３０２の非動作状態をより積極的に感知して、クロックを停止させる機会を増やすための機構を組み込むことができる。
【０１７０】
第４の実施形態において、クロック停止要求マスク期間カウンタ４０１が非カウント状態、かつＷｒｉｔｅＤＭＡＣ３０２の動作状態が非動作時に、ＷｒｉｔｅＤＭＡＣ３０２のクロックを常に停止させるという処理を行ってもよい。
【０１７１】
また、上記のＷｒｉｔｅＤＭＡＣ３０２のクロックを常に停止させるという処理を、別途カウンタ等を用意して、時間を遅らせて制御を行ってもよい。
【０１７２】
さらに、ＷｒｉｔｅＤＭＡＣ３０２のクロック供給時の狭間の時間で、クロックを停止させないために、以下の処理を加えてもよい。クロックイネーブルアサート指示信号のアサートから、ＷｒｉｔｅＤＭＡＣが動作を開始するまでの期間は、ＷｒｉｔｅＤＭＡＣ３０２のクロックを停止させない。
【０１７３】
第１の実施形態における第一の所定時間５００は、クロックイネーブル生成カウンタ４００がＷｒｉｔｅＤＭＡＣ３０２のクロックの供給制御を行うのに用いる時間である。第１の実施形態では、第一の所定時間５００の一例として３９５サイクルという値を用いたが、第５の実施形態では最適な第一の所定時間５００の値を、計算で求める手法を説明する。
【０１７４】
ＷｒｉｔｅＤＭＡＣ３０２のクロック供給開始は、ＷｒｉｔｅＤＭＡＣ３０２に転送が到達し、ＷｒｉｔｅＤＭＡＣ３０２の処理が開始される直前のタイミングに行うことで、以下の効果が期待できる。ＷｒｉｔｅＤＭＡＣ３０２のクロック停止期間を長くし、ＷｒｉｔｅＤＭＡＣ３０２の省電力効果をより高めることができる。
【０１７５】
そのため、第一の所定時間５００としては、以下の値を設定するのが望ましい。
【０１７６】
第一の所定時間５００は、第三の所定時間１０００−第四の所定時間１００１で計算し、第三の所定時間１０００が４００サイクル、第四の所定時間１００１が５サイクルであるとすると、第一の所定時間５００は３９５サイクルである。
【０１７７】
第三の所定時間１０００は、ＷｒｉｔｅＤＭＡＣクロック供給要求信号のアサートから、ＷｒｉｔｅＤＭＡＣ３０２に転送が到達するまでの時間であって、本実施形態では４００サイクルであるとする。第四の所定時間１００１は、ＷｒｉｔｅＤＭＡＣ３０２のクロックが供給され、ＷｒｉｔｅＤＭＡＣ３０２が実際に動作を開始するまでの時間までを差し引いた時間であって、本実施形態では５サイクルであるとする。
【０１７８】
また、第二の所定時間５０１としては、後行の転送がＷｒｉｔｅＤＭＡＣ３０２に到達する際に、ＷｒｉｔｅＤＭＡＣ３０２のクロックの停止を防止するという観点より、以下の値を設定するのが望ましい。即ち、第二の所定時間５０１は、第三の時間１０００と同じ、４００サイクルとするのが望ましい。
【０１７９】
このように、以下のようにクロック制御を行うことで、クロックゲーティング対象回路であるＷｒｉｔｅＤＭＡＣ３０２のクロック停止期間を長くし、ＷｒｉｔｅＤＭＡＣ３０２の省電力効果をより高めることができる。
【０１８０】
ＷｒｉｔｅＤＭＡＣ３０２に転送が到達して回路が使用開始されるまでの時間（第三の時間１０００）から、ＷｒｉｔｅＤＭＡＣ３０２のクロック供給処理に必要な時間（第四の時間１００１）を差し引いた値を第一の所定時間５００に設定する。
【０１８１】
また、第４の実施形態のように、第三の時間１０００の値が変動する場合では、ＷｒｉｔｅＤＭＡＣ３０２のクロックを確実に制御するという観点からは、以下のような値を設定することが望ましい。
【０１８２】
即ち、第一の所定時間５００は、第三の時間１０００の最小値−第四の時間１００１で計算し、第三の時間１０００が３５０サイクル、第四の時間１００１が５サイクルであるとすると、第一の所定時間５００は３４５サイクルである。
【０１８３】
第二の所定時間５０１は、第三の時間１０００の最大値と同じ、４５０サイクルである。
【０１８４】
本実施形態としては、第１の実施形態との差分という形で説明したが、本実施形態を、第１の実施形態以外の実施形態と合わせて実施することが可能であることは、容易に理解できよう。
【０１８５】
（第５の実施形態）
第５の実施形態では、第４の実施形態の構成のうち、一部の構成のみが異なる。そのため、第４の実施形態と同じ構成部分に関しては説明を省略し、主に本実施形態が第４の実施形態と異なる部分を詳細に説明する。
【０１８６】
第５の実施形態では、各カウンタの計測対象である第一の所定時間５００と第二の所定時間５０１に関して、これらの値を実機上で自動的に測定および決定する手法に関して述べる。本手法は、第４の実施形態のように、各カウンタの計測対象の時間が変動する場合にも適用可能な手法である。
【０１８７】
本実施形態の画像処理モジュール１１のハードウェアの構成は、第１の実施形態の画像処理モジュール１１のハードウェアの構成と同じであるので、その説明を省略する。本実施形態のＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３の構成は第１の実施形態と異なり、図２１のブロック図に、本実施形態のＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール３０３の構成例を示す。
【０１８８】
本実施形態では、第１の実施形態のハードウェア構成に加えて、測定モード切替回路９００とカウント対象時間計測回路９０１を備える。また、ＷｒｉｔｅＤＭＡＣ内部バスデータ転送発生信号と測定モード切替要求信号を備える。
【０１８９】
ＷｒｉｔｅＤＭＡＣ内部バスデータ転送発生信号は、画像処理モジュール内演算回路３０１が処理を完了させ、ＷｒｉｔｅＤＭＡＣ３０２に対して画像処理を行ったデータの転送を開始した際に、アサートされる（パルス信号）。
【０１９０】
測定モード切替回路９００は、測定モード切替要求信号がＣＰＵ１０等により制御されることにより、カウント対象時間計測モードのＯＮ／ＯＦＦの切り替えを行う。
【０１９１】
カウント対象時間計測回路９０１は、測定モード切替回路９００により切り替えられる、カウント対象時間計測モードがＯＮの時に、画像処理モジュール内演算回路３０１内部での画像処理演算に要する時間の最大値と最小値を測定する。この値は、第５の実施形態における第三の時間１０００の最大値と最小値を測定することで得られる。第三の時間１０００は、ＷｒｉｔｅＤＭＡＣクロック供給要求信号のアサートから、ＷｒｉｔｅＤＭＡＣ３０２に転送が到達するまでの時間である。
【０１９２】
カウント対象時間計測モードがＯＮの際は、クロックイネーブル生成カウンタ４００およびクロック停止要求マスク期間カウンタ４０１は、それらの動作を停止させることができる。同様にカウント対象時間計測モードがＯＦＦの際は、カウント対象時間計測回路９０１は、その動作を停止させることができる。また、これらのモジュールの動作が停止している際は、これらのモジュールのクロックや電源を停止させ、これらのモジュールを省電力状態におくことができる。
【０１９３】
カウント対象時間計測回路９０１が第三の時間１０００の最大値と最小値を測定後、カウント対象時間計測モードをＯＦＦにする。するとクロックイネーブル生成カウンタ４００およびクロック停止要求マスク期間カウンタ４０１は、カウント対象時間計測回路９０１が測定した第三の時間１０００の最大値と最小値を用いて第一の所定時間５００と第二の所定時間５０１を設定する。
【０１９４】
カウント対象時間計測回路９０１が第三の時間１０００の最大値として４５０サイクル、第三の時間１０００の最小値として３５０サイクルを得たとすると、第一の所定時間５００と第二の所定時間５０１は以下のように設定できる。
【０１９５】
第一の所定時間５００は、測定された第三の時間１０００の最小値−第四の時間１００１で計算し、第三の時間１０００が３５０サイクル、第四の時間１００１が５サイクルであるとすると、第一の所定時間５００は３４５サイクルである。
【０１９６】
第二の所定時間５０１は、測定された第三の時間１０００の最大値と同じ、４５０サイクルである。
【０１９７】
また、図２２のブロック図に、カウント対象時間計測回路９０１の構成例を示す。カウント対象時間計測回路９０１には、カウント対象時間カウンタ９０２、カウント対象時間最小値記憶回路９０３、カウント対象時間最大値記憶回路９０４を備える。これらのモジュールの詳細動作は、以下に示すフローチャート図を用いて説明する。
［カウント対象時間計測回路９０１の動作フロー］
図２３に、本実施形態のカウント対象時間計測回路９０１および測定モード切替回路９００の動作フローのフローチャートを示す。
【０１９８】
まず、ステップＳ１０１において、カウント対象時間計測回路９０１は、非動作状態である。そして、ステップＳ１０２において、カウント対象時間カウンタ９０２は、カウント対象時間計測モードがＯＮであるかどうかを判定する。カウント対象時間計測モードのＯＮ／ＯＦＦ制御は、測定モード切替回路９００の測定モード切替要求信号がＣＰＵ１０等により制御され、測定モード切替指示信号の値が変化することで行われる。カウント対象時間計測モードがＯＦＦの場合、カウント対象時間計測回路９０１は、ステップＳ１０１の非動作状態を維持する。カウント対象時間計測モードがＯＮの場合、カウント対象時間計測回路９０１は、ステップＳ１０３に移行し、カウント対象時間計測回路９０１が動作状態に移行する。
【０１９９】
次に、ステップＳ１０４において、カウント対象時間カウンタ９０２は、ＷｒｉｔｅＤＭＡＣクロック供給要求信号が１の値であるかどうか判定する。ＷｒｉｔｅＤＭＡＣクロック供給要求信号が０の場合は、次のサイクルに再度ステップＳ１０４で値の判定を行う。ＷｒｉｔｅＤＭＡＣクロック供給要求信号が１の場合は、ステップＳ１０５において、カウント対象時間カウンタ９０２は、次のサイクルにカウント対象時間カウンタ９０２の値を１にセットする。その後同一サイクルで、ステップＳ１０６において、カウント対象時間カウンタ９０２は、ＷｒｉｔｅＤＭＡＣ内部バスデータ転送発生信号が１の値であるかどうかを判定する。ＷｒｉｔｅＤＭＡＣ内部バスデータ転送発生信号が０の場合は、ステップＳ１０７において、カウント対象時間カウンタ９０２は、カウント対象時間カウンタの値を＋１し、次のサイクルに再度ステップＳ１０６の判定を行う。ＷｒｉｔｅＤＭＡＣ内部バスデータ転送発生信号が１の場合は、次に、ステップＳ１０８において、カウント対象時間カウンタ９０２は、カウント対象時間カウンタ９０２による計測が１回目の計測かどうか、を判定する。
【０２００】
カウント対象時間カウンタ９０２による計測が１回目の計測の場合は、ステップＳ１０９において、カウント対象時間カウンタ９０２は、カウント対象時間カウンタ９０２の値をカウント対象時間最大値記憶回路９０４にコピーする。ステップＳ１１０において、同様に、カウント対象時間カウンタ９０２は、カウント対象時間カウンタ９０２の値をカウント対象時間最小値記憶回路９０３にコピーする。その後、ステップＳ１０４に戻り、カウント対象時間カウンタ９０２は、カウント対象時間カウンタ９０２は２回目の計測を開始する。ステップＳ１０８において、カウント対象時間カウンタ９０２による計測が１回目の計測でない場合は、ステップＳ１１１の判定に進む。
【０２０１】
ステップＳ１１１では、カウント対象時間カウンタ９０２は、カウント対象時間カウンタ９０２の値が、カウント対象時間最大値記憶回路９０４の現在値を上回っているかどうか、の判定を行う。カウント対象時間カウンタ９０２の値が、カウント対象時間最大値記憶回路９０４の現在値を上回っていない場合は、ステップＳ１１２のステップをスキップし、カウント対象時間カウンタ９０２は、ステップＳ１１３の判定を行う。カウント対象時間カウンタ９０２の値が、カウント対象時間最大値記憶回路９０４の現在値を上回っている場合は、ステップＳ１１２に進む。ステップＳ１１２において、カウント対象時間カウンタ９０２は、カウント対象時間カウンタ９０２の値をカウント対象時間最大値記憶回路９０４にコピーし、次に、ステップＳ１１３の判定を行う。
【０２０２】
ステップＳ１１３では、カウント対象時間カウンタ９０２は、カウント対象時間カウンタ９０２の値が、カウント対象時間最小値記憶回路９０３の現在値を下回っているかどうか、の判定を行う。カウント対象時間カウンタ９０２の値が、カウント対象時間最小値記憶回路９０３の現在値を下回っていない場合は、ステップＳ１１４のステップをスキップし、カウント対象時間カウンタ９０２は、ステップＳ１１５の判定を行う。カウント対象時間カウンタ９０２の値が、カウント対象時間最小値記憶回路９０３の現在値を下回っている場合は、ステップＳ１１４に進む。ステップＳ１１４において、カウント対象時間カウンタ９０２は、カウント対象時間カウンタ９０２の値をカウント対象時間最小値記憶回路９０３にコピーし、次に、ステップＳ１１５の判定を行う。
【０２０３】
ステップＳ１１５において、カウント対象時間カウンタ９０２は、カウント対象時間計測モードがＯＮであるかどうかを判定する。カウント対象時間計測モードがＯＮの場合、ステップＳ１０４に戻り、カウント対象時間カウンタ９０２は次の回の計測を開始する。カウント対象時間計測モードがＯＦＦの場合、ステップＳ１１６において、カウント対象時間計測回路９０１は、非動作状態に戻り、カウント対象時間の計測は完了する。
【０２０４】
本実施形態としては、第４の実施形態との差分という形で説明したが、本実施形態を、第４の実施形態以外の実施形態と合わせて実施することが可能であることは、容易に理解できよう。
【０２０５】
第４の実施形態では、第１の実施形態と同一構成において、各カウンタが適切な値の設定する方法を説明する。
【０２０６】
（第６の実施形態）
第６の実施形態では、第４の実施形態又は第５の実施形態と同一構成において、各カウンタが適切な値を設定する方法を説明する。
【０２０７】
第４の実施形態では、データ処理時間が変動する等して、クロック制御用のカウンタの計測すべき時間の値が変動する場合には、以下の対策が有効であるとした。クロックイネーブル生成カウンタ４００の計測対象の第一の所定時間５００には変動値のうち最小値を、クロック停止要求マスク期間カウンタ４０１の計測対象の第二の所定時間５０１には変動値のうち最大値を使用する。
【０２０８】
一方で、第４の実施形態において、カウンタの計測すべき時間の値は変動するが、値の変動の傾向に偏りがある場合は、必ずしも最大値・最小値を用いて制御せず、より適切な値をカウンタに計測させてもいい。
【０２０９】
具体的には、画像処理モジュール内演算回路３０１内部での画像処理演算の時間（第三の時間１０００）が３５０−４５０サイクルまで変動するが、時間の変動に以下のような偏りがあったとする。
【０２１０】
３７５−４２５サイクル：発生確率９０％。
４２５−４５０サイクル：発生確率５％。
３５０−３７５サイクル：発生確率５％。
【０２１１】
この場合は、第三の時間１０００の最大値・最小値の設定として、真の最大値・最小値（それぞれ３５０・４５０サイクル）を使用するのではなく、時間の変動の偏りを考慮して最大値・最小値を設定した方がクロックの制御性が良くなる場合がある。
【０２１２】
真の最大値は４５０サイクルであるが、その発生確率は所定値以下（例えば５％以下）であるので使用されない。同様に、真の最小値は３５０サイクルであるが、その発生確率は所定値以下（例えば５％以下）であるので使用されない。本実施形態では、第三の時間１０００の最大値として４２５サイクルを、第三の時間１０００の最小値として３７５サイクルを使用するとする。
【０２１３】
その場合、第一の所定時間５００と第二の所定時間５０１は、以下のように設定できる。
【０２１４】
第一の所定時間５００は、第三の時間１０００の最小値−第四の時間１００１で計算し、第三の時間１０００の最小値が３７５サイクル、第四の時間１００１が５サイクルであるとすると、第一の所定時間５００は３７０サイクルである。
【０２１５】
第二の所定時間５０１は、第三の時間１０００の最大値と同じ、４２５サイクルである。
【０２１６】
ただし、本実施形態では、発生確率は小さいものの、第三の時間１０００に関して、第一の所定時間５００と第二の所定時間５０１の設定値から外れるケースが生じる（本例では４２５−４５０サイクル、および３５０−３７５サイクルの期間）。
【０２１７】
このため、本実施形態では、ＷｒｉｔｅＤＭＡＣ３０２のクロックが停止中に、転送がＷｒｉｔｅＤＭＡＣ３０２に到達してしまった場合でも、転送の情報を失わせることなく、ＷｒｉｔｅＤＭＡＣ３０２のクロックを供給させる機構を組み込むことができる。例えば、ＷｒｉｔｅＤＭＡＣ３０２とのインターフェースに、Ｖａｌｉｄ−Ｒｅａｄｙタイプの転送プロトコルを採用する方法がある。この場合は、ＷｒｉｔｅＤＭＡＣ３０２のクロック停止中は、ＷｒｉｔｅＤＭＡＣ３０２からのＲｅａｄｙ信号をネゲートしておくことで、アクセスペナルティは発生するが、転送の情報が失われることは防止できる。
【０２１８】
本実施形態としては、第４の実施形態との差分という形で説明したが、本実施形態を、第４の実施形態以外の本明細書に記載の実施形態と合わせて実施することが可能であることは、容易に理解できよう。
【０２１９】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出して実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０２２０】
１０  ＣＰＵ
１１  画像処理モジュール
２０  ＭＥＭＣ
２１  供給モジュール
３０  バスモジュール
１００  画像処理用システムオンチップ
２００  ＤＲＡＭ
３００  ＲｅａｄＤＭＡＣ
３０１  演算回路
３０２  ＷｒｉｔｅＤＭＡＣ
３０３  ＷｒｉｔｅＤＭＡＣクロックイネーブル制御モジュール
３０４  ＷｒｉｔｅＤＭＡＣクロック供給要求信号生成回路
３０５  ＷｒｉｔｅＤＭＡＣクロック停止要求信号生成回路
４００  クロックイネーブル生成カウンタ
４０１  クロック停止要求マスク期間カウンタ
４０２  クロックイネーブル制御回路
４０３  クロックイネーブルネゲート指示生成回路
【図１】
2018084932.tif 000003
【図２】
2018084932.tif 000004
【図３】
2018084932.tif 000005
【図４】
2018084932.tif 000006
【図５】
2018084932.tif 000007
【図６】
2018084932.tif 000008
【図７】
2018084932.tif 000009
【図８】
2018084932.tif 000010
【図９】
2018084932.tif 000011
【図１０】
2018084932.tif 000012
【図１１】
2018084932.tif 000013
【図１２】
2018084932.tif 000014
【図１３】
2018084932.tif 000015
【図１４】
2018084932.tif 000016
【図１５】
2018084932.tif 000017
【図１６】
2018084932.tif 000018
【図１７】
2018084932.tif 000019
【図１８】
2018084932.tif 000020
【図１９】
2018084932.tif 000021
【図２０】
2018084932.tif 000022
【図２１】
2018084932.tif 000023
【図２２】
2018084932.tif 000024
【図２３】
2018084932.tif 000025