(57)【要約】【課題】セレクタに接続されている複数の上流側のクロック信号のうち、現在の動作モードに応じてセレクタで選択されていない上流側の全てのクロック信号の供給を停止すると、動作モードを切り替えたとき、その切替えに即座に対処できない。【解決手段】  互いに異なる周波数の複数のクロック信号を生成するクロック生成部と、複数の機能を実現する複数の機能処理部と、クロック生成部により生成されたクロック信号を、複数の機能処理手段のそれぞれに供給する経路の少なくとも上流側と下流側に配置された複数のクロックゲートを有する。複数のクロックゲートの開閉を指示する設定値と、当該設定値を使用した論理式をレジスタに保持し、そのレジスタに保持された設定値及び論理式に基づく論理演算結果に基づいて、複数のクロックゲートの開閉を制御する。【選択図】  図１
2017117231.tif 000002
【特許請求の範囲】
【請求項１】
互いに異なる周波数の複数のクロック信号を生成する生成手段と、
複数の機能を実現する複数の機能処理手段と、
前記生成手段により生成されたクロック信号を前記複数の機能処理手段のそれぞれに供給する経路の少なくとも上流側と下流側に配置された複数のクロックゲートと、
前記複数のクロックゲートの開閉を指示する設定値と、当該設定値を使用した論理式を保持する保持手段と、
前記保持手段に保持された設定値及び前記論理式に基づく論理演算結果に基づいて、前記複数のクロックゲートの開閉を制御する論理演算手段と、
を有することを特徴とする電子機器。
【請求項２】
実行する機能に応じて、前記保持手段に保持する設定値を変更するように制御する制御手段を、更に有することを特徴とする請求項１に記載の電子機器。
【請求項３】
前記複数のクロック信号のうちの少なくとも２つクロック信号を入力し、前記論理演算手段の論理演算結果に基づいて、前記少なくとも２つのクロック信号のいずれかを選択して出力するセレクタを、さらに有することを特徴とする請求項１又は２に記載の電子機器。
【請求項４】
前記制御手段は、前記電子機器の初期化時に前記保持手段に前記論理式を保持するように制御することを特徴とする請求項２に記載の電子機器。
【請求項５】
前記論理式は、実行する機能で使用するクロック信号以外のクロック信号が、上流側のクロックゲートを通過しない論理演算結果となるように構成されていることを特徴とする請求項１乃至４のいずれか１項に記載の電子機器。
【請求項６】
前記保持手段は、前記電子機器の動作モードに応じた設定値を更に保持し、前記論理演算手段は、前記動作モードに応じた設定値と、前記複数のクロックゲートの開閉を指示する設定値及び前記論理式に基づく論理演算結果に基づいて、前記複数のクロックゲートの開閉を制御することを特徴とする請求項１乃至５のいずれか１項に記載の電子機器。
【請求項７】
前記複数の機能処理手段は、スキャン画像処理、プリント画像処理及びＰＤＬ処理の少なくともいずれかを含むことを特徴とする請求項１乃至６のいずれか１項に記載の電子機器。
【請求項８】
互いに異なる周波数の複数のクロック信号を生成する生成部と、複数の機能を実現する複数の機能処理部と、前記生成部により生成されたクロック信号を前記複数の機能処理部のそれぞれに供給する経路の少なくとも上流側と下流側に配置された複数のクロックゲートと、前記複数のクロックゲートの開閉を指示する設定値と、当該設定値を使用した論理式を保持するレジスタと、前記レジスタに保持された設定値及び前記論理式に基づく論理演算結果に基づいて、前記複数のクロックゲートの開閉を制御する論理演算部とを有する電子機器を制御する制御方法であって、
実行する機能に応じて、前記レジスタに保持する設定値を変更するように制御することを特徴とする制御方法。
【請求項９】
コンピュータを、請求項１乃至７のいずれか１項に記載の電子機器の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器とその制御方法、及びプログラムに関する。
【背景技術】
【０００２】
画像形成装置等においてＬＳＩの消費電力を削減する技術として、クロック信号路の途中に配置したクロックゲーティングセルにより、その下流側へのクロック信号の供給を停止させて消費電力を抑えるクロックゲートの技術がある。これには例えば、クロック信号で動作するフリップフロップの動作を停止したり、クロックツリーを構成するバッファやＰＬＬ等の動作を停止することにより、それら回路で消費される電力を削減するものである。
【０００３】
近年、クロックツリーの大規模化に伴って、クロックゲーティングセルをクロックツリーの下流から上流まで階層的に配置することがある。その構成によれば、下流側へのクロック信号の供給を個別に停止するだけではなく、下流側へのクロック信号の供給を全て停止したときに上流側からのクロック信号の供給も停止することにより、より消費電力を削減する技術が提案されている。例えば、特許文献１を参照されたい。これは下流側へのクロック信号の供給を全て停止している間に、下流側のクロックゲーティングセルまでの間に存在するバッファやＰＬＬ等の動作を停止することで、その分の消費電力を削減するものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２５８８３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、下流側のクロック信号から見たとき、上流側のクロック信号は必ずしも一つだけとは限らず、上流の複数のクロック信号のいずれかがセレクタで選択されて下流側に供給される場合がある。例えば、セレクタで上流側から供給される複数のクロック信号の一つを選択することにより、下流側のクロック信号を変更して、画像形成装置の動作を動的に変えることが考えられる。
【０００６】
一般的に、画像形成装置が用途別に異なる構成で動作するように選択できる場合、それぞれの用途向けの構成を動作モードと呼ぶ。前述の複数のクロック信号のいずれかをセレクタで選択して下流側に供給する場合、そのセレクタで用途別に異なるクロック信号を選択し、その選択したクロック信号に対応する動作モードを実現できる。
【０００７】
このような構成で、かつ複数の動作モードを有する画像形成装置では、セレクタを介したクロック信号も含めた全ての下流側クロック信号の供給が停止している場合にのみ、上流側からのクロック信号の供給を停止できることになる。このため、セレクタに接続されている複数の上流側のクロック信号のうち、現在の動作モードに応じてセレクタで選択されていない上流側の全てのクロック信号の供給を停止すると、動作モードを切り替えたとき、その切替えに即座に対処できない。即ち、動作モードを切り替えることにより新たなクロック信号が必要になったとしても、そのクロック信号は上流側で供給が遮断されているため、下流側でセレクタを切り替えても、その必要とするクロック信号をその動作モードで必要とする箇所に供給できない。
【０００８】
本発明の目的は、上記従来技術の課題を解決することにある。
【０００９】
本発明の特徴は、クロック信号の供給を制御することにより、機器の消費電力を、より効率良く削減する技術を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明の一態様に係る電子機器は以下のような構成を備える。即ち、
互いに異なる周波数の複数のクロック信号を生成する生成手段と、
複数の機能を実現する複数の機能処理手段と、
前記生成手段により生成されたクロック信号を前記複数の機能処理手段のそれぞれに供給する経路の少なくとも上流側と下流側に配置された複数のクロックゲートと、
前記複数のクロックゲートの開閉を指示する設定値と、当該設定値を使用した論理式を保持する保持手段と、
前記保持手段に保持された設定値及び前記論理式に基づく論理演算結果に基づいて、前記複数のクロックゲートの開閉を制御する論理演算手段と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、クロック信号の供給を制御することにより、機器の消費電力を、より効率良く削減することができる。
【００１２】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１３】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態に係る画像形成装置の構成を説明するブロック図。
【図２】実施形態に係るクロックゲート制御部の状態を説明するブロック図。
【図３】実施形態に係るクロックゲート制御部の状態を説明するブロック図。
【図４】実施形態に係るクロックゲート制御部の実際の回路の模式図。
【図５】実施形態に係る画像形成装置のＣＰＵがクロックゲート制御部の動作を設定する処理を説明するフローチャート（Ａ）と、実施形態に係るクロックゲート制御部の処理を説明するフローチャート（Ｂ）。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、以下の実施形態では、本発明の電子機器の一例を画像形成装置１００を例に説明するが、本発明の電子機器は画像形成装置に限らず、通信装置や情報処理装置等にも適用できる。
【００１５】
図１は、本発明の実施形態に係る画像形成装置１００の構成を説明するブロック図である。
【００１６】
ＣＰＵ１０１は、ＨＤＤ１０３に格納されているプログラムを、例えばＲＡＭ等のメモリ１０２に展開し、その展開したプログラムを実行することにより、この画像形成装置１００の動作を制御している。メモリ１０２は、ＣＰＵ１０１のワークメモリとして使用され、また受信した画像データや印刷ジョブなどを一時的に保存するのに使用される。ＨＤＤ１０３はハードディスクドライブで、ＯＳや各種プログラム等を記憶している。尚、このＨＤＤ１０３に代えて、大容量のメモリカード等を使用しても良い。操作・表示部１０４は、タッチパネル機能を備えた表示部とハードキー等を備え、ユーザによる各種操作を受付け、またユーザへのメッセージなどを表示するユーザインターフェースを提供している。スキャン画像処理部１０５は、ＣＰＵ１０１の制御の下に、スキャナ１１２から入力した画像データに各種画像処理を実行し、その画像処理がなされた画像データをメモリ１０２に転送して記憶する。プリント画像処理部１０６は、ＣＰＵ１０１の制御の下に、メモリ１０２に記憶された画像データをバス１１１を介して受信し、その画像データに対して画像処理を行ってプリンタ１１３に転送して印刷させる。ＰＤＬ処理部１０７は、ＣＰＵ１０１の制御の下に、メモリ１０２に記憶されたＰＤＬデータをバス１１１を介して受信し、レンダリング処理によって画像データを生成してメモリ１０２に転送する。ネットワークＩ／Ｆ部１０８は、ＣＰＵ１０１の制御の下に、ネットワーク１１４を介してＰＤＬデータを受信し、バス１１１を介してメモリ１０２に転送して記憶させる。またネットワークＩ／Ｆ部１０８は、このときにＰＤＬ処理部１０７の利用を要求する信号をＣＰＵ１０１に対して送信する。クロック生成部１０９は、互いに異なる周波数の２種類のクロック信号を生成してクロックゲート制御部１１０に供給している。クロックゲート制御部１１０は、ＣＰＵ１０１の制御の下に、クロック生成部１０９が生成した２種類のクロック信号、即ち、クロック０とクロック１とを受け取り、スキャン画像処理部１０５、プリント画像処理部１０６及びＰＤＬ処理部１０７に供給する。
【００１７】
ここで、この画像形成装置１００は２つの動作モード、動作モード０と動作モード１とを有している。尚、ここで画像形成装置１００が、用途別に異なるクロック信号を選択することにより、クロック信号に応じた動作モードで動作する。ここで用途別とは、例えばスキャンやプリントといった機能別、プリント機能だけを持つプリンタ製品や、スキャン機能も併せ持つ製品といった製品種別、等が含まれるが、ここでは動作モードに応じてＰＤＬ機能の処理速度の高低を切り替えるものとする。この画像形成装置１００は、上述のクロック０（２６６ＭＨｚ）とクロック１（３３３ＭＨｚ）のいずれかを選択することにより、２つの動作モードを切り替えるものとする。
【００１８】
表１は、実施形態に係る画像形成装置１００が有する２つの動作モード、即ち、動作モード０と動作モード１における、各機能処理部に供給するクロック信号を説明する表である。ここでは上述のスキャン画像処理部１０５、プリント画像処理部１０６及びＰＤＬ処理部１０７は、この画像形成装置１００の複数の機能に対応する機能処理部として説明する。
【００１９】
【表１】
2017117231.tif 000003
【００２０】
動作モード０は、通常のＰＤＬ処理の動作モードである。この動作モード０では、スキャン画像処理部１０５、プリント画像処理部１０６、及びＰＤＬ処理部１０７を駆動するクロック信号の周波数はいずれも２６６ＭＨｚ（クロック０）である。また動作モード１は、高速なＰＤＬ処理の動作モードである。この動作モード１では、スキャン画像処理部１０５及びプリント画像処理部１０６を駆動するクロック周波数はいずれも２６６ＭＨｚで、ＰＤＬ処理部１０７を駆動するクロック周波数は３３３ＭＨｚ（クロック１）である。
【００２１】
動作モード０と動作モード１では、各部に供給するクロック信号は表１に示すように一部異なっているため、クロックゲート制御部１１０は、ＣＰＵ１０１の制御の下で、動作モードに合わせたクロック信号を選択して出力する。具体的には、ＣＰＵ１０１はバス１１１を介してクロックゲート制御部１１０に対して動作モードを設定し、クロックゲート制御部１１０は、その設定された動作モードに合わせてクロック信号の供給状態を切り替える。またクロックゲート制御部１１０は、ＣＰＵ１０１がバス１１１を介して設定したクロックゲートの設定に応じてクロック信号のゲート制御を行って、各部に供給するクロック信号を決める。その詳細は後述する。尚、画像形成装置１００の各処理部は全てクロック信号に同期して動作するため、１つ以上のクロック信号が入力されている。しかし、説明を簡単にするため本実施形態では、クロックゲート制御部１１０の動作を説明するための２種類のクロック信号のゲート制御のみを説明し、その他のクロック信号に関する説明を省略する。
【００２２】
図２及び図３は、実施形態に係るクロックゲート制御部１１０の状態を説明するブロック図である。
【００２３】
図２（Ａ）のレジスタ部１１０１は、ＣＰＵ１０１からバス１１１を介してセットされるデータを保持する。論理演算部１１０２は、レジスタ部１１０１に設定された設定値、及び論理式に応じた論理演算結果を出力する。これら出力信号は、クロックゲーティングセル１１０４〜１１０９の開閉を制御する信号と、セレクタ１１０３に入力０，１のいずれかを選択させる選択信号を含んでいる。各セレクタ１１０３は、論理演算部１１０２のＦ出力に応じて、クロック０或いはクロック１を選択してクロックゲーティングセルＣ１１０６に出力する。クロックゲーティングセルＡ〜Ｅ１１０４〜１１０８はそれぞれ、論理演算部１１０２の出力（ゲート信号）に応じてクロック信号を出力するか、或いはクロック信号を出力しない（遮断する）ように制御する。表２は、レジスタ部１１０１の構成と、各レジスタの設定値の意味を説明する表である。
【００２４】
【表２】
2017117231.tif 000004
【００２５】
ここでレジスタ部１１０１は、レジスタａ〜ｆと、レジスタ論理式Ａ〜論理式Ｆからなる１２個のレジスタを有している。レジスタａ〜ｆに設定可能な値は「０」或いは「１」である。またレジスタ論理式Ａ〜論理式Ｆに設定可能な値は、定数「０」又は「１」と、レジスタ名ａ〜ｆを使った論理式である。ここで論理式とは、前述の定数とレジスタ名の他に、ａｎｄ、ｏｒ、ｎｏｔなどの論理演算子と、演算順序を表す括弧を使って表した式を文字列で表現したものである。この論理式は、実行対象の機能で使用するクロック信号以外のクロック信号が、できるだけ上流側のクロックゲーティングセルを通過しない論理演算結果となるように構成されている。また、各レジスタには一意のアドレスが割り振られており、ＣＰＵ１０１は、そのアドレスと設定データとを組みにした設定コマンドをバス１１１を介してクロックゲート制御部１１０に転送することで、各レジスタへの設定や更新を行うことができる。
【００２６】
論理演算部１１０２は、レジスタ部１１０１から供給される設定値と論理式とを受信して、レジスタ論理式Ａ〜論理式Ｆで設定された論理式の論理演算を実施する。そして、その論理演算の結果を、セレクタ１１０３、及び、クロックゲーティングセルＡ１１０４〜Ｅ１１０８のそれぞれに出力する。レジスタ論理式Ａ〜論理式Ｆの各論理式の演算結果の値は、それぞれ論理演算部１１０２の出力Ａ〜出力Ｆから出力される。
【００２７】
セレクタ１１０３は、入力０のクロック０と入力１のクロック１の２つのクロック信号を入力し、論理演算部１１０２が出力する出力Ｆの値が「０」のときはクロック０を、「１」のときはクロック１を選択する。こうして選択されたクロック信号は、クロックゲーティングセルＣ１１０６に供給され、前述の動作モードに合わせたクロック信号をＰＤＬ処理部１０７に出力する。
【００２８】
クロックゲーティングセルＡ１１０４は、論理演算部１１０２の出力Ａの値に応じて、スキャン画像処理部１０５に供給するクロック信号を制御する。即ち、出力Ａの値が「１」のときはクロック信号（クロック０）を通過させ、「０」のときはクロック信号（クロック０）を通過させないようにゲート動作を行う。同様に、クロックゲーティングセルＢ１１０５は、論理演算部１１０２の出力Ｂが「１」のときはクロック信号（クロック０）をプリント画像処理部１０６に通過させる。また「０」のときはクロック信号（クロック０）をプリント画像処理部１０６に通過させないようにゲート動作を行う。またクロックゲーティングセルＣ１１０６は、論理演算部１１０２の出力Ｃが「１」のときは、セレクタ１１０３で選択されたクロック信号をＰＤＬ処理部１０７に通過させる。また「０」のときはセレクタ１１０３で選択されたクロック信号をＰＤＬ処理部１０７に通過させないようにゲート動作を行う。またクロックゲーティングセルＤ１１０７は、論理演算部１１０２の出力Ｄの値に応じて、クロック信号（クロック０）を通過させるかどうか制御するゲート動作を行う。クロックゲーティングセルＤ１１０７を通過したクロック信号（クロック０）は、他のクロックゲーティングセルやセレクタを経由して、スキャン画像処理部１０５、プリント画像処理部１０６、及びＰＤＬ処理部１０７に供給される可能性がある。同様に、クロックゲーティングセルＥ１１０８は、論理演算部１１０２の出力Ｅの値に応じて、クロック信号（クロック１）を通過させるかどうか制御するゲート動作を行う。クロックゲーティングセルＥ１１０８を通過したクロック信号（クロック１）は、他のクロックゲーティングセルやセレクタを経由して、ＰＤＬ処理部１０７に供給される可能性がある。
【００２９】
ここで、実施形態における、前述の各レジスタの設定値の運用方針とその用途を表３に示す。
【００３０】
【表３】
2017117231.tif 000005
【００３１】
ＣＰＵ１０１は、スキャン画像処理部１０５にクロック信号を供給する場合、即ち、スキャン画像処理部１０５を使用する場合はレジスタａに「１」を、そうでない場合はレジスタａに「０」を設定する。同様にＣＰＵ１０１は、プリント画像処理部１０６とＰＤＬ処理部１０７をそれぞれ使用する場合、各対応するレジスタｂとｃに「１」を、これらを使用しない場合は、各対応するレジスタｂとｃに「０」を設定する。ここでレジスタｄとレジスタｅは使用しない。ＣＰＵ１０１は、画像形成装置１００の現在の動作モードをレジスタｆに設定する。以上のレジスタａ、ｂ、ｃ、ｆは、画像形成装置１００の動作に応じてＣＰＵ１０１が随時設定するレジスタである。
【００３２】
それに対してＣＰＵ１０１は、画像形成装置１００の初期化時に一度だけ、レジスタに論理式Ａ、論理式Ｂ、論理式Ｃ、論理式Ｄ、論理式Ｅ、論理式Ｆを設定する。表３では、レジスタ論理式Ａの設定値は「ａ」であり、これはレジスタａの設定値がそのまま論理演算部１１０２の出力Ａの値になることを意味している。つまり、ＣＰＵ１０１がスキャン画像処理部１０５にクロック信号を供給したい場合にレジスタａに「１」を設定すると、論理演算部１１０２の出力Ａが「１」となる。これにより、クロックゲーティングセルＡ１１０４を通してクロック信号（クロック０）がスキャン画像処理部１０５に供給される。
【００３３】
同様に、レジスタ論理式Ｂと論理式Ｃと論理式Ｆの設定値は「ｂ」と「ｃ」と「ｆ」であり、これはレジスタｂとｃとｆの設定値が、そのまま論理演算部１１０２の出力Ｂと出力Ｃと出力Ｆの値になることを意味している。つまり、ＣＰＵ１０１がプリント画像処理部１０６にクロック信号を供給したい場合、レジスタｂに「１」を設定すると、論理演算部１１０２の出力Ｂが「１」となる。これにより、クロックゲーティングセルＢ１１０５を通してクロック信号（クロック０）がプリント画像処理部１０６に供給される。また、ＣＰＵ１０１がＰＤＬ処理部１０７にクロック信号を供給したい場合はレジスタｃに「１」を設定すると、論理演算部１１０２の出力Ｃが「１」となる。これにより、クロックゲーティングセルＣ１１０６を通って、セレクタ１１０３で選択されたクロック信号がＰＤＬ処理部１０７に供給される。またＣＰＵ１０１が動作モードを変更する場合は、レジスタｆに「０」又は「１」を設定すると、論理演算部１１０２の出力Ｆの出力も「ｆ」となり、それに応じてセレクタ１１０３が、クロック０或いはクロック１を選択することになる。
【００３４】
次に、レジスタ論理式Ｄの設定値は「ａ  ｏｒ  ｂ  ｏｒ（（ｎｏｔ  ｆ）ａｎｄ  ｃ）」、レジスタ論理式Ｅの設定値は「ｆ  ａｎｄ  ｃ」である。この場合、ＣＰＵ１０１が設定したレジスタａ、ｂ、ｃの値だけではなく、動作モードを示すレジスタｆの値に依存して論理演算部１１０２の出力Ｄと出力Ｅの値が決定されることがわかる。つまりクロックゲーティングセルＤ１１０７とクロックゲーティングセルＥ１１０８は、ＣＰＵ１０１が、直接、各ゲートの動作を指示するのではなく、動作モードと各処理部の有効・無効の状況に応じて論理演算部１１０２が制御することになる。
【００３５】
次にレジスタａ、ｂ、ｃ、ｆの設定値に応じて、各論理式の演算結果がどのようになるのかを確認するために、実際の設定例を表４に示す。表４は、前述の動作モード０で、ＰＤＬ処理部１０７のみを動作させる設定の場合を示している。
【００３６】
【表４】
2017117231.tif 000006
【００３７】
表４において、スキャン画像処理部１０５を使用しないため、ＣＰＵ１０１はレジスタａの設定値を「０」とする。またプリント画像処理部１０６を使用しないため、ＣＰＵ１０１は、レジスタｂの設定値を「０」にする。更に、ＰＤＬ処理部１０７を使用するため、ＣＰＵ１０１は、レジスタｃの設定値を「１」にする。更に、動作モード０とするために、ＣＰＵ１０１はレジスタｆの設定値を「０」にする。レジスタ論理式Ａ〜論理式Ｆの設定値は前述したものと同じである。
【００３８】
レジスタ論理式Ａの設定値は「ａ」であるため演算結果は「０」となり、クロックゲーティングセルＡ１１０４は、クロック信号を通過させないようにゲート動作を行う。これにより、スキャン画像処理部１０５にはクロック信号が供給されなくなる。またレジスタ論理式Ｂの設定値は「ｂ」であるためその演算結果は「０」となり、クロックゲーティングセルＢ１１０５はクロック信号を通過させないゲート動作を行う。これによりプリント画像処理部１０６にクロック信号が供給されなくなる。またレジスタ論理式Ｃの設定値は「ｃ」であるため演算結果は「１」となり、クロックゲーティングセルＣ１１０６は、クロック信号を通過させてＰＤＬ処理部１０７にクロック信号が供給される。
【００３９】
次にレジスタ論理式Ｄの設定値は「ａ  ｏｒ  ｂ  ｏｒ（（ｎｏｔ  ｆ）ａｎｄ  ｃ）」であるため、その演算結果は「１」となる。これによりクロックゲーティングセルＤ１１０７はクロック信号（クロック０）を通過させて、クロックゲーティングセルＡ１１０４及びＢ１１０５、セレクタ１１０３の入力０にクロック信号（クロック０）が供給される。またレジスタ論理式Ｅの設定値は「ｆ  ａｎｄ  ｃ」であるため演算結果は「０」となり、クロックゲーティングセルＥ１１０８は、クロック信号（クロック１）を通過させないゲート動作を行う。これにより、セレクタ１１０３の入力１にクロック信号が供給されない。更にレジスタ論理式Ｆの設定値は「ｆ」で、その演算結果は０となり、セレクタ１１０３のクロック信号の選択を入力０（クロック０）に切り替える。この状態を図示したのが図２（Ｂ）で、供給が停止されたクロック信号を破線で示してある。
【００４０】
ここでは、動作モード０で、ＰＤＬ処理部１０７による処理のみを実行させ、その他の不要なクロック信号は、その供給を遮断している。特に、セレクタ１１０３に接続されている上流のクロックゲーティングセルＤ１１０７とクロックゲーティングセルＥ１１０８のうち、クロック信号を遮断するためにクロックゲーティングセルＥ１１０８を動作モードに応じて制御している。この制御により、クロックゲーティングセルＥ１１０８からセレクタ１１０３にクロック信号（クロック１）が供給されなくなるため、そのクロック経路における消費電力が削減できる。
【００４１】
次に、動作モードを変えることでどのような変化があるのかを確認するために、レジスタｆに異なる値を設定した設定例を表５に示す。表５は、前述の動作モード１で、ＰＤＬ処理部１０７のみを動作させる設定例を示している。
【００４２】
【表５】
2017117231.tif 000007
【００４３】
レジスタａ、ｂ、ｃの設定値は表４の場合と同じである。レジスタｆの設定値は「１」で、ＣＰＵ１０１は、ＰＤＬ処理部１０７を高速で動作させる動作モード１を設定している。レジスタ論理式Ａ〜論理式Ｆの設定値は、前述の表４と同じである。レジスタ論理式Ａ〜論理式Ｆの中で表４と異なる演算結果となるものは、レジスタ論理式Ｄ、論理式Ｅ、論理式Ｆである。レジスタ論理式Ｄの設定値は「ａ  ｏｒ  ｂ  ｏｒ（（ｎｏｔ  ｆ）ａｎｄ  ｃ）」であるため、演算結果は「０」となる。よって、クロックゲーティングセルＤ１１０７は、クロック信号（クロック０）を通過させないゲート動作を行う。これにより、クロックゲーティングセルＡ１１０４，Ｂ１１０５、及びセレクタ１１０３の入力クロック０にクロック信号（クロック０）が供給されない。またレジスタ論理式Ｅの設定値は「ｆ  ａｎｄ  ｃ」で、その演算結果は「１」となる。これによりクロックゲーティングセルＥ１１０８は、クロック信号（クロック１）を通過させてセレクタ１１０３の入力クロック１にクロック信号（クロック１）が供給される。更に、レジスタ論理式Ｆの設定値は「ｆ」で、その演算結果は１となる。これにより、セレクタ１１０３は入力１、即ち、クロック信号（クロック１）を選択する。この状態を図示したのが図３（Ａ）で、供給されないクロック信号を破線で示している。
【００４４】
図３（Ａ）から明らかなように、動作モード１でＰＤＬ処理部１０７を高速で動作させるのに不要なクロック信号は全てゲートされている。特に、セレクタ１１０３に接続されている上流のクロックゲーティングセルＤ１１０７とクロックゲーティングセルＥ１１０８のうち、クロック信号を通過させないクロックゲーティングセルＤ１１０７を、動作モードに応じてゲートしている。この制御により、クロックゲーティングセルＤ１１０７から、クロックゲーティングセルＡ１１０４、クロックゲーティングセルＢ１１０５及びセレクタ１１０３までのクロック信号の経路における消費電力を大幅に削減できる。
【００４５】
次に、全ての処理部を使わない初期状態を確認するために、レジスタａ〜ｃに０を設定した設定例を表６に示す。表６は、前述の動作モード１で、スキャン画像処理部１０５、プリント画像処理部１０６、ＰＤＬ処理部１０７の全てを動作させない設定の例を示している。
【００４６】
【表６】
2017117231.tif 000008
【００４７】
表６において、レジスタａ、ｂ、ｃの設定値はともに「０」で、ＣＰＵ１０１は初期設定時にこのように設定する。レジスタｆの設定値は「１」で、ＣＰＵ１０１は動作モード１を設定している。レジスタ論理式Ａ〜論理式Ｆの設定値は、前述したものと同じである。ここでレジスタ論理式Ａ〜論理式Ｅの演算結果は全て「０」となり、全てのクロックゲーティングセルは、クロック信号を通過させないようにゲート動作を行う。またレジスタ論理式Ｆの設定値は「ｆ」であるため、その演算結果は「１」となり、セレクタ１１０３は入力１を選択する。この状態を図示したのが図３（Ｂ）で、供給されていないクロック信号を破線で示している。これは例えば、スキャン画像処理部１０５、プリント画像処理部１０６、ＰＤＬ処理部１０７のいずれも使用しない設定の初期状態で、全てのクロックゲーティングセルがクロック信号を通過させないようにゲート動作を行う。
【００４８】
図４は、実施形態に係るクロックゲート制御部１１０の実際の回路の模式図である。ここではクロック信号の経路のみを図示し、またクロック信号の経路中のバッファ１１１１を三角形で示している。クロック信号の経路中の消費電力は、これらバッファを駆動するための電力によるところが大きいため、以下、各クロックゲーティングセルをゲート制御した場合に削減できる電力を、バッファの数に基づいて説明する。ここで、クロックゲーティングセルＤ１１０７を起点としたクロック信号（クロック０）の経路中のバッファの数が異なるのは意図したものであり、バッファによるクロック信号の遅延が、ほぼ等しくなるようにバッファを挿入している。
【００４９】
具体的には、クロックゲーティングセルＤ１１０７から、クロックゲーティングセルＡ１１０４に到達するのに１０個のバッファを経由しており、またクロックゲーティングセルＢ１１０５に対しても１０個のバッファを経由している。また同様に、クロックゲーティングセルＣ１１０６に対しても９個のバッファと１個のセレクタ１１０３を経由している。これにより、各経路でのクロック信号の遅延時間がほぼ等しくなるようにしている。尚、このように遅延時間をほぼ等しくしているのは、各部をクロック信号に同期して動作させるためである。またバッファは、クロック信号の品質を保つ役割、即ち、クロック信号の波形品質を保つ働きもしている。またクロック０に比較してクロック１の経路のバッファの数が多いのは、クロック１の方が周波数が高いためである。
【００５０】
以上の構成で、クロックゲーティングセルのゲート制御によって削減できる消費電力をバッファの数で表現すると、クロックゲーティングセルＤ１１０７のゲート制御で削減できるバッファの数は１９個である。またクロックゲーティングセルＥ１１０８のクロックゲート制御で削減できるバッファの数は７個である。これはいずれも、他のクロックゲーティングセルやセレクタに到達するまでのクロック信号の経路に含まれるバッファの数である。
【００５１】
図５（Ａ）は、実施形態に係る画像形成装置１００のＣＰＵ１０１がクロックゲート制御部１１０の動作を設定する処理を説明するフローチャートである。この処理をＣＰＵ１０１に実行させるプログラムはＨＤＤ１０３にインストールされており、実行時にメモリ１０２に展開されてＣＰＵ１０１の制御の下に実行される。
【００５２】
この処理は、画像形成装置１００の初期化時にリセット信号による初期化が実行されて、そのリセットが解除された後に開始される。まずＳ５０１でＣＰＵ１０１は、クロックゲート制御部１１０のレジスタ部１１０１の全レジスタの設定値を、各レジスタに対応するアドレスとともにバス１１１に出力してレジスタ部１１０１の全レジスタを設定する。このときＣＰＵ１０１は、動作モード０或いは動作モード１の何れで処理するかを判定し、それに応じてレジスタｆの設定を決定する。次にＳ５０２に進みＣＰＵ１０１は、スキャンジョブの開始、或いは終了かどうか判定し、スキャンジョブの開始或いは終了の場合はＳ５０３に進み、そうでない場合はＳ５０４に進む。Ｓ５０３でＣＰＵ１０１は、スキャンジョブを開始するときはクロックゲート制御部１１０のレジスタａに「１」を設定し、終了のときは「０」を設定してＳ５０４に進む。これにより、クロックゲーティングセルＡ１１０４のゲート制御、即ち、クロック信号（クロック０）を通過させるか、させないかが決定される。
【００５３】
Ｓ５０４でＣＰＵ１０１は、プリントジョブ開始或いは終了かどうか判定し、開始又は終了の場合はＳ５０５に進み、そうでない場合はＳ５０６に進む。Ｓ５０５でＣＰＵ１０１は、プリントジョブを開始するときはクロックゲート制御部１１０のレジスタｂに「１」を設定し、プリントジョブを終了するときは「０」を設定してＳ５０６に進む。これにより、クロックゲーティングセルＢ１１０５のゲート制御、即ち、クロック信号（クロック０）を通過させるか、させないかが決定される。
【００５４】
Ｓ５０６でＣＰＵ１０１は、ＰＤＬジョブ開始或いは終了かどうか判定し、開始又は終了の場合はＳ５０７に進み、そうでない場合はＳ５０２に進む。Ｓ５０７でＣＰＵ１０１は、ＰＤＬジョブを開始するときはクロックゲート制御部１１０のレジスタｃに「１」を設定し、ＰＤＬジョブを終了するときは「０」を設定してＳ５０２に進む。これにより、クロックゲーティングセルＣ１１０６のゲート制御、即ち、ＰＤＬ処理部１０７へクロック信号（クロック１又はクロック０）を供給させるか、させないかが決定される。
【００５５】
図５（Ｂ）は、実施形態に係るクロックゲート制御部１１０の処理を説明するフローチャートである。
【００５６】
前述の通り、クロックゲート制御部１１０はＣＰＵ１０１の制御によって動作するが、このフローチャートは、ＣＰＵ１０１の制御であるレジスタ設定を受信したときの処理の流れを示すもので、予めハードウェアとして組み込まれているものである。クロックゲート制御部１１０は、画像形成装置１００の初期化時にリセット信号による初期化が実行されて、リセットが解除された後にクロックゲート制御部１１０は予め組み込まれている処理の流れに基づいて、Ｓ５１０から処理を開始する。
【００５７】
Ｓ５１０でクロックゲート制御部１１０は、バス１１１を介してＣＰＵ１０１からのレジスタの設定値を受信したかどうか判定し、受信した場合はＳ５１１に進み、そうでない場合はＳ５１０に進む。Ｓ５１１でクロックゲート制御部１１０は、受信した設定を各対応するレジスタに設定してＳ５１２に進む。Ｓ５１２でクロックゲート制御部１１０は、レジスタ論理式Ａから論理式Ｆまでの論理式と、各レジスタの設定値とに基づいて演算を行い、論理演算部１１０２の出力Ａから出力Ｆの値を出力してＳ５１０に進む。
【００５８】
以上の構成に基づいて、例えば、ＣＰＵ１０１が動作モード１でＰＤＬジョブを実行するときの手順を説明する。
【００５９】
ＣＰＵ１０１は図５（Ａ）に示すフローチャートに従い、Ｓ５０１で、レジスタ部１１０１の全てのレジスタを設定する。このとき、表６に示した動作モード１の初期値を使用して、実際には、バス１１１を介して、各レジスタのアドレスと設定値を出力してクロックゲート制御部１１０に対する設定を行う。
【００６０】
これによりクロックゲート制御部１１０は、図５（Ｂ）のフローチャートに従い、Ｓ５１０〜Ｓ５１２の処理を、レジスタの個数である１２回繰り返して、レジスタ部１１０１の１２個のレジスタへの設定を行う。ここまででクロックゲート制御部１１０の初期化動作は完了し、クロックゲート制御部１１０のレジスタの設定値の状態は、前述の表６の状態となり、また、クロック信号の供給状態は図３（Ｂ）に示す状態となる。
【００６１】
次に、ネットワークＩ／Ｆ部１０８が、ネットワーク１１４から転送されるＰＤＬデータを受信すると、前述したように、ネットワークＩ／Ｆ部１０８は、ＰＤＬ処理部１０７の利用を要求する信号をＣＰＵ１０１に対して送信する。この要求を受けてＣＰＵ１０１は、Ｓ５０６でＰＤＬジョブ開始であると判定したＳ５０７に進む。Ｓ５０７でＣＰＵ１０１は、バス１１１を介してクロックゲート制御部１１０のレジスタ部１１０１のレジスタｃに「１」を設定する。これにより、クロックゲート制御部１１０のレジスタの設定状態は、前述の表５の状態となり、またクロック信号の供給状態は図３（Ａ）に示す状態となる。
【００６２】
図３（Ａ）では、セレクタ１１０３の上流のクロックゲーティングセルＤ１１０７は、クロック信号の通過を遮断した状態であり、クロックゲート制御部１１０内部のクロック信号の経路における消費電力を低減させていることがわかる。また、上述の図２（Ｂ）で説明したように、同じ条件で、かつ動作モード０の場合、クロック信号（クロック０）がクロックゲーティングセルＤ１１０７を通過しセレクタ１１０３を介してＰＤＬ処理部１０７に供給されている。その場合、セレクタ１１０３の上流のクロックゲーティングセルＥ１１０８が閉じられた状態であるため、クロックゲート制御部１１０のクロック信号経路における消費電力を削減することができる。
【００６３】
以上説明したように実施形態によれば、動作モードに応じて、クロック信号の経路の上流側のゲートと下流側のゲートの開閉を制御することにより、クロック信号経路における消費電力を削減することができる。特に上流側のゲートを制御することにより、上流からのクロック信号の供給を遮断して、より消費電力を削減できるという効果がある。
【００６４】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６５】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００６６】
１００…画像形成装置、１０１…ＣＰＵ、１０２…メモリ、１０５…スキャン画像処理部、１０６…プリント画像処理部、１０７…ＰＤＬ処理部、１０９…クロック生成部、１１０…クロックゲート制御部、１１０１…レジスタ部、１１０２…論理演算部、１１０４〜１１０８…クロックゲーティングセル、１１０３…セレクタ
【図１】
2017117231.tif 000009
【図２】
2017117231.tif 000010
【図３】
2017117231.tif 000011
【図４】
2017117231.tif 000012
【図５】
2017117231.tif 000013