(57)【要約】【課題】周波数の切換が可能な動作クロックを生成する動作クロック生成装置、及び、その動作クロック生成装置が生成する動作クロックによって動作する回路を複数備えた処理装置において、グリッジによって余分な動作クロックが出力されるのを抑制すること。【解決手段】カウンタ７は、カウンタ値が所定数に設定された後、基準クロックＰＳ０を１つ計数する毎に１つカウンタ値を減算し、カウンタ値が「０」になると、ｃａｒｒｙ端子７ｄからＨレベルのキャリー信号Ｃ−ＳＥＬ（基準クロックＰＳ０の１周期分）を出力する共に、前記カウンタ値を前記所定数にリセットする。また、前記所定数は、カウンタ７のｖａｌ＿ｍａｘ端子７ｃに切換値が入力されると、その値に変更される。クロックゲーティングセル９は、キャリー信号Ｃ−ＳＥＬがＨレベルのときに立ち上がった基準クロックＰＳ０のみを、動作クロックＢＣＬＫとして出力する。【選択図】図１
2012141730.tif 000002
【特許請求の範囲】
【請求項１】
基準クロックを計数し、所定数の前記基準クロックを計数する毎にキャリー信号を出力するカウンタ部と、
前記カウンタ部の前記所定数を設定する設定部と、
前記基準クロック及び前記キャリー信号が入力され、前記キャリー信号に同期した前記基準クロックを通過させて他の前記基準クロックを間引くことにより動作クロックを生成するクロックゲーティングセルと、
を備えたことを特徴とする動作クロック生成装置。
【請求項２】
前記カウンタ部は、計数値が前記所定数に設定された後、前記基準クロックを１つ計数する毎に１つ計数値を減算し、当該計数値が０になると、前記キャリー信号を出力すると共に前記計数値を前記所定数にリセットすることを特徴とする請求項１に記載の動作クロック生成装置。
【請求項３】
前記クロックゲーティングセルは、前記キャリー信号の出力中に立ち上がった前記基準クロック、または、前記キャリー信号の出力中に立ち下がった前記基準クロックを通過させ、他の前記基準クロックを間引くことを特徴とする請求項１または２に記載の動作クロック生成装置。
【請求項４】
複数の回路を備えた処理装置であって、
請求項１〜３のいずれか１項に記載の動作クロック生成装置が前記各回路毎に設けられ、
前記各回路は、自身に対して設けられた前記動作クロック生成装置が生成する動作クロックによって動作することを特徴とする処理装置。
【請求項５】
前記複数の回路のうちの少なくとも２つが、互いに通信を行うことを特徴とする請求項４に記載の処理装置。
【請求項６】
前記２つの回路のうちの一方がＣＰＵで、他方がメモリコントローラであることを特徴とする請求項５に記載の処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、周波数の切換が可能な動作クロックを生成する動作クロック生成装置、及び、その動作クロック生成装置が生成する動作クロックによって動作する回路を複数備えた処理装置に関する。
【背景技術】
【０００２】
従来、ＣＰＵ等のように、入力された動作クロックによって動作する回路を備えた処理装置では、消費電力を低減するために動作クロックの周波数を切り換えることが提案されている。例えば、画像形成装置，画像読取装置等に内蔵されてそれらの制御を行う処理装置では、画像の形成や読取が長い間実行されない場合はスリープモードへ移行し、表示部等への通電を中止すると共に、ＣＰＵ等に入力される動作クロックの周波数を低くすることが提案されている。
【０００３】
ここで、複数の回路に周波数の異なる動作クロックを切り換えて入力する場合、前記周波数の異なる複数の動作クロックを各回路に対して出力し、各回路毎に設けたセレクタにより所望の周波数の動作クロックを選択して対応する回路に入力することが考えられる。ところが、その場合、前記複数の回路に入力される動作クロックを同期させるためには、各周波数の動作クロックに対してクロック信号供給用の信号線の長さを調整する必要が生じるなど、回路構成が複雑化する可能性がある。
【０００４】
そこで、基準クロックを計数するバイナリ・カウンタが、桁上がり時に出力するキャリー信号を用いて基準クロックをゲーティングすることにより、複数の回路に周波数の異なる動作クロックを切り換えて入力することが提案されている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２２９６６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、特許文献１記載の処理装置では、動作クロックの周波数をセレクタを用いて切り換えているため、その切換時にいわゆるグリッジと言われる小幅パルスの影響が出る場合があった。すると、そのグリッジの発生タイミングによっては、当該グリッジに同期した基準クロック等が余分な動作クロックとして出力されてしまう可能性がある。
【０００７】
そこで、本発明は、周波数の切換が可能な動作クロックを生成する動作クロック生成装置、及び、その動作クロック生成装置が生成する動作クロックによって動作する回路を複数備えた処理装置において、グリッジによって余分な動作クロックが出力されるのを抑制することを目的としてなされた。
【課題を解決するための手段】
【０００８】
前記目的を達するためになされた本発明の動作クロック生成装置は、基準クロックを計数し、所定数の前記基準クロックを計数する毎にキャリー信号を出力するカウンタ部と、前記カウンタ部の前記所定数を設定する設定部と、前記基準クロック及び前記キャリー信号が入力され、前記キャリー信号に同期した前記基準クロックを通過させて他の前記基準クロックを間引くことにより動作クロックを生成するクロックゲーティングセルと、を備えたことを特徴としている。
【０００９】
このように構成された本発明の動作クロック生成装置では、カウンタ部は、基準クロックを計数し、所定数の前記基準クロックを計数する毎にキャリー信号を出力する。すると、クロックゲーティングセルは、前記キャリー信号に同期した前記基準クロックを通過させて他の前記基準クロックを間引くことにより動作クロックを生成する。このため、動作クロックは、前記カウンタ部が前記所定数を計数する毎に出力される。また、設定部は、前記カウンタ部の前記所定数を設定する。このため、設定部によって前記所定数を変更すれば、前記動作クロックの周波数を切り換えることができる。
【００１０】
このように、本発明では、セレクタによってではなく、カウンタ部の前記所定数を設定することによって動作クロックの周波数を切り換えている。このため、グリッジによって余分な動作クロックが出力されるのを良好に抑制することができる。
【００１１】
なお、前記カウンタ部は、計数値が前記所定数に設定された後、前記基準クロックを１つ計数する毎に１つ計数値を減算し、当該計数値が０になると、前記キャリー信号を出力すると共に前記計数値を前記所定数にリセットするものであってもよい。
【００１２】
また、前記クロックゲーティングセルは、前記キャリー信号の出力中に立ち上がった前記基準クロック、または、前記キャリー信号の出力中に立ち下がった前記基準クロックを通過させ、他の前記基準クロックを間引くものであってもよい。
【００１３】
また、本発明の処理装置は、複数の回路を備えた処理装置であって、前記いずれかの動作クロック生成装置が前記各回路毎に設けられ、前記各回路は、自身に対して設けられた前記動作クロック生成装置が生成する動作クロックによって動作することを特徴としている。このため、前記各回路に入力される動作クロックには、前述のようにグリッジによる余分な動作クロックが含まれることがなく、各回路は正確に動作することができる。
【００１４】
そして、その場合、前記複数の回路のうちの少なくとも２つが、互いに通信を行ってもよい。その場合、グリッジによる余分な動作クロックの出力を抑制できるといった前述の効果が、次のように一層顕著に表れる。すなわち、２つの回路で通信を行う場合、各回路に同様のタイミングで同数の動作クロックが入力される必要がある。本発明では、前述のように、グリッジによる余分な動作クロックの出力を抑制することができるので、前記２つの回路の間の通信を良好に行うことができる。
【００１５】
そして、更にその場合、前記２つの回路のうちの一方がＣＰＵで、他方がメモリコントローラであってもよい。ＣＰＵとメモリコントローラとの間では頻繁に通信が行われるが、各々に入力される動作クロックが同様に変更されるのであれば、その周波数を変更しても殆ど動作に影響がない。従って、この場合、本発明の効果が一層顕著に表れる。
【図面の簡単な説明】
【００１６】
【図１】本発明を適用した動作クロック生成装置の構成を表すブロック図である。
【図２】その動作クロック生成装置のクロックゲーティングセルの構成を模式的に表す等価回路図（Ａ）及びその動作を表すタイムチャート（Ｂ）である。
【図３】前記動作クロック生成装置の動作を表すタイムチャートである。
【図４】その動作クロック生成装置を応用した処理装置を表すブロック図である。
【図５】参考例の処理装置の構成を表すブロック図である。
【図６】その処理装置の動作及び課題を表すタイムチャートである。
【発明を実施するための形態】
【００１７】
（動作クロック生成装置の構成及び動作）
次に、本発明の実施の形態を図面と共に説明する。図１は、本発明を適用した動作クロック生成装置１の構成を表すブロック図である。図１に示すように、動作クロック生成装置１は、次のように、発振回路３，ＰＬＬ回路５，カウンタ７（カウンタ部の一例），クロックゲーティングセル９を備えている。発振回路３は、動作クロックの元となる発振信号を生成してＰＬＬ回路５に入力する。ＰＬＬ回路５は、発振回路３が出力する発振信号に位相が同期し、周波数が逓倍された基準クロックＰＳ０（任意の周波数でよいが、本例では仮に４８ＭＨｚとする）を出力する。
【００１８】
この基準クロックＰＳ０は、カウンタ７のｃｌｋ端子７ａに入力されると共に、クロックゲーティングセル９にも入力されている。カウンタ７は、バイナリ・カウンタとして構成され、カウンタ値（計数値）が所定数に設定された後、基準クロックＰＳ０を１つ計数する毎に１つカウンタ値を減算し、そのカウンタ値をｃｏｕｎｔ端子７ｂからｎビットのデータとして出力する。また、カウンタ７の前記所定数は、カウンタ７のｖａｌ＿ｍａｘ端子７ｃ（設定部の一例）に、図示省略した制御部から切換値が入力されると、その値に変更される。そして、カウンタ７は、前記カウンタ値が「０」になると、ｃａｒｒｙ端子７ｄからＨレベルのキャリー信号Ｃ−ＳＥＬを出力する共に、前記カウンタ値を前記所定数にリセットする。
【００１９】
クロックゲーティングセル９には、前述の基準クロックＰＳ０と共に前述のキャリー信号Ｃ−ＳＥＬも入力され、次のように動作クロックＢＣＬＫを出力する。図２（Ａ）は、クロックゲーティングセル９の構成を模式的に表す等価回路図であり、図２（Ｂ）はその動作を表すタイムチャートである。なお、実際のクロックゲーティングセル９は、図２（Ａ）に示すようにラッチ回路９１，ＡＮＤ回路９３等を配線で接続した構成とは異なり、一体のセルとして構成されている。
【００２０】
図２（Ａ）に示すように、この等価回路は、ラッチ回路９１とＡＮＤ回路９３とを備えている。ラッチ回路９１には、前述のキャリー信号Ｃ−ＳＥＬと基準クロックＰＳ０の反転とが入力され、基準クロックＰＳ０はＡＮＤ回路９３へも入力されている。ラッチ回路９１は、図２（Ｂ）に示すように、反転後の基準クロックＰＳ０がＨレベルのとき（基準クロックＰＳ０がＬレベルのとき）はキャリー信号Ｃ−ＳＥＬの値をそのまま信号ＬＣＥＮとして出力し、反転後の基準クロックＰＳ０の値がＬレベルのときは信号ＬＣＥＮの値を保持する。
【００２１】
この信号ＬＣＥＮが基準クロックＰＳ０と共にＡＮＤ回路９３に入力され、両者の論理積が動作クロックＢＣＬＫとして出力される。このため、Ｈレベルのキャリー信号Ｃ−ＳＥＬの出力中に立ち上がった基準クロックＰＳ０が、動作クロックＢＣＬＫとして出力されることになる。すなわち、クロックゲーティングセル９は、キャリー信号Ｃ−ＳＥＬがＨレベルのときに立ち上がった基準クロックＰＳ０を通過させ、キャリー信号Ｃ−ＳＥＬがＬレベルのときに立ち上がった基準クロックＰＳ０を間引くことにより、動作クロックＢＣＬＫを生成する。
【００２２】
次に、図３は、動作クロック生成装置１の全体の動作を表すタイムチャートである。図３に示すように、例えば、切換値が「３」に設定されている場合、カウンタ値が「３」に設定された後、カウンタ７は基準クロックＰＳ０を１つ計数する毎に１つカウンタ値を減算する。そして、カウンタ値が「０」となると、次に基準クロックＰＳ０が立ち上がったタイミングＴ１にて、カウンタ７はカウンタ値を前記切換値にリセットし、基準クロックＰＳ０の１周期分のパルス幅を有するＨレベルのキャリー信号Ｃ−ＳＥＬを出力する。すると、そのキャリー信号Ｃ−ＳＥＬの出力中に立ち上がった基準クロックＰＳ０が、動作クロックＢＣＬＫとして出力される。
【００２３】
ここで、切換値が「３」から「７」に切り換えられたとすると、その切換後にカウンタ値が「０」となった後に基準クロックＰＳ０が立ち上がったタイミングＴ２にて、カウンタ７はカウンタ値を新たな切換値「７」にリセットする。このときも、前述のように、キャリー信号Ｃ−ＳＥＬが出力され、その出力中に立ち上がった基準クロックＰＳ０が、動作クロックＢＣＬＫとして出力される。
【００２４】
そして、このようにカウンタ値が「７」に設定された後、カウンタ７は基準クロックＰＳ０を１つ計数する毎に１つカウンタ値を減算する。そして、カウンタ値が「０」となると、次に基準クロックＰＳ０が立ち上がったタイミングＴ３にて、カウンタ７はカウンタ値を前記切換値「７」にリセットし、キャリー信号Ｃ−ＳＥＬを出力する。すると、そのキャリー信号Ｃ−ＳＥＬの出力中に立ち上がった基準クロックＰＳ０が、動作クロックＢＣＬＫとして出力される。
【００２５】
従って、動作クロック生成装置１では、切換値を入力して前記所定数を変更することによって、動作クロックＢＣＬＫの周波数を切り換えることができる。また、動作クロック生成装置１では、セレクタによってではなく、カウンタ７の前記所定数を設定することによって動作クロックＢＣＬＫの周波数を切り換えている。このため、グリッジによって余分な動作クロックが出力されるのを良好に抑制することができる。なお、セレクタによって動作クロックＢＣＬＫの周波数を切り換える参考例は、後に詳述する。
【００２６】
（処理装置への応用）
図４は、前述の動作クロック生成装置１を応用した処理装置２１の構成を表すブロック図である。図４に示すように、この処理装置２１は、タイマ２３と、ＣＰＵ２５（回路の一例）と、メモリコントローラ２７（回路の一例）とを備えている。タイマ２３には、前述の４８ＭＨｚの基準クロックＰＳ０が常時入力される。
【００２７】
これに対して、ＣＰＵ２５，メモリコントローラ２７には、前述のカウンタ７，クロックゲーティングセル９が個々に設けられ、対応するクロックゲーティングセル９からの動作クロックＢＣＬＫが入力される。このため、切換値として「０」を入力すれば、Ｈレベルのキャリー信号Ｃ−ＳＥＬが常時出力され、クロックゲーティングセル９からは基準クロックＰＳ０と同様の４８ＭＨｚの動作クロックＢＣＬＫが出力される。一方、切換値として「１」を入力すれば、Ｈレベルのキャリー信号Ｃ−ＳＥＬが基準クロックＰＳ０の１周期置きに出力され、クロックゲーティングセル９からは２４ＭＨｚの動作クロックＢＣＬＫが出力される。
【００２８】
ＣＰＵ２５は、図示省略したインタフェースを介してデータの読み出し命令または書き込み命令を受信した場合、メモリコントローラ２７と互いに通信（メモリアクセス）を行い、そのメモリコントローラ２７を介して図示省略したメモリにデータの読み出しまたは書き込みを行う。この処理装置２１が、画像形成装置，画像読取装置等に内蔵されてそれらの制御を行うものである場合、画像の形成や読取が長い間実行されない場合はスリープモードへ移行し、前述のようなデータの読み出し，書き込みも実行されなくなる。そこで、そのような場合には、前述のように動作クロックＢＣＬＫの周波数を稼働時の４８ＭＨｚから２４ＭＨｚに切り換えて、処理装置２１の全体としての消費電力を低減するのが望ましい。
【００２９】
処理装置２１は、前述のようにグリッジによる余分な動作クロックの出力を抑制可能な動作クロック生成装置１を応用している。このため、切換値を各カウンタ７に同時に入力すれば、前記周波数の切換時にもＣＰＵ２５とメモリコントローラ２７とに入力される動作クロックＢＣＬＫの数が良好に一致する。従って、前記周波数の切換時にも、ＣＰＵ２５とメモリコントローラ２７との通信を良好に行うことができる。
【００３０】
すなわち、ＣＰＵ２５とメモリコントローラ２７との間では頻繁に通信が行われるが、本実施の形態では各々に入力される動作クロックＢＣＬＫが同様に変更されるので、その周波数を変更しても殆ど動作に影響がない。
【００３１】
（従来技術との効果の比較）
これに対して、前述の特許文献１に開示された構成を応用して処理装置２１と同様の処理装置を構成すると、次のような課題が生じる。図５は、そのような構成を応用した参考例としての処理装置５１の構成を表すブロック図である。図５に示すように、処理装置５１は、前述の発振回路３，ＰＬＬ回路５と同様の発振回路５３，ＰＬＬ回路５５を備えており、ＰＬＬ回路５５は前述のように基準クロックＰＳ０（図５の例では４８ＭＨｚ）を出力する。
【００３２】
この基準クロックＰＳ０は、回路Ａに直接入力されると共に、一対のカウンタ５７に入力されている。各カウンタ５７は、バイナリ・カウンタとして構成され、下位の桁から上位の桁に対して桁上がりが発生する場合にＨレベルとなるキャリー信号ＣＴ１，ＣＴ２，…，ＣＴｘを出力する。各カウンタ５７に対して、セレクタ５８がそれぞれ設けられており、各カウンタ５７が出力する各キャリー信号ＣＴは、常時Ｈレベルである信号ＶＤＤと共に、対応するセレクタ５８に入力されている。
【００３３】
各セレクタ５８は、図示省略した制御部から入力される切換信号に基づいて前記いずれかの入力を選択し、信号Ｃ−ＳＥＬとして出力する。各セレクタ５８に対して、クロックゲート５９がそれぞれ設けられており、そのクロックゲート５９には基準クロックＰＳ０も入力されている。各クロックゲート５９は、信号Ｃ−ＳＥＬがＨレベルであるときに立ち上がった基準クロックＰＳ０を動作クロックＢＣＬＫとして通過させ、他の基準クロックＰＳ０を間引く。
【００３４】
その結果、例えば、信号Ｃ−ＳＥＬとして信号ＶＤＤが選択されている場合は、基準クロックＰＳ０（図５の例では４８ＭＨｚ）がそのまま動作クロックＢＣＬＫとしてクロックゲート５９から出力される。また、信号Ｃ−ＳＥＬとしてキャリー信号ＣＴ１が選択されている場合は、基準クロックＰＳ０が１つ置きにクロックゲート５９を通過し、図５の例では２４ＭＨｚの動作クロックＢＣＬＫとして出力される。図５の例では、各クロックゲート５９が出力する動作クロックＢＣＬＫを、前述の回路Ａとは別体に設けられた回路Ｂ，Ｃに入力している。
【００３５】
ところが、図５に示した処理装置５１では、動作クロックＢＣＬＫの周波数をセレクタ５８を用いて切り換えているため、次のようにグリッジの影響が出る場合があった。図６は、その処理装置５１の動作及び課題を表すタイムチャートである。図６に示すように、切換信号がキャリー信号ＣＴ２を指示しているときには、基準クロックＰＳ０の４クロック毎に当該基準クロックＰＳ０の１周期分のパルス幅を有するキャリー信号ＣＴ２が信号Ｃ−ＳＥＬとして出力される。また、切換信号がキャリー信号ＣＴ３を指示しているときには、基準クロックＰＳ０の８クロック毎に当該基準クロックＰＳ０の１周期分のパルス幅を有するキャリー信号ＣＴ３が信号Ｃ−ＳＥＬとして出力される。そして、図６に破線の矢印で示すように、信号Ｃ−ＳＥＬがＨレベルであるときに立ち上がった基準クロックＰＳ０が動作クロックＢＣＬＫとして出力される。
【００３６】
ところが、前述のようにセレクタ５８を用いて切換を行う場合、その切換時に、図６に示すようにグリッジＧが信号Ｃ−ＳＥＬに重畳する場合がある。すると、そのグリッジＧの発生タイミングによっては、当該グリッジＧに同期して立ち上がった基準クロックＰＳ０が余分な動作クロックＢＣＬＫｇとして出力されてしまう。
【００３７】
これに対して、本実施の形態の動作クロック生成装置１では、前述のように、セレクタ５８によってではなく、切換値を入力してカウンタ７の所定数を設定することによって動作クロックＢＣＬＫの周波数を切り換えている。このため、グリッジによって余分な動作クロックが出力されるのを良好に抑制することができ、ひいては、ＣＰＵ２５とメモリコントローラ２７との通信を良好に行うことができる。
【００３８】
なお、本発明は前記実施の形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の形態で実施することができる。例えば、前記実施の形態では、各信号を正論理で構成したが、各信号を負論理で構成してもよいことは言うまでもない。また、カウンタ部としては、計数値が０に設定された後、前記基準クロックを１つ計数する毎に１つ計数値を加算し、当該計数値が前記所定数になるとキャリー信号を出力すると共に計数値を０にリセットするものなど、種々のものが使用できる。
【符号の説明】
【００３９】
１…動作クロック生成装置    ３…発振回路            ５…ＰＬＬ回路
７…カウンタ                ７ａ…ｃｌｋ端子        ７ｂ…ｃｏｕｎｔ端子
７ｃ…ｖａｌ＿ｍａｘ端子    ７ｄ…ｃａｒｒｙ端子    ９…クロックゲーティングセル
２１…処理装置              ２３…タイマ            ２７…メモリコントローラ
【図１】
2012141730.tif 000003
【図２】
2012141730.tif 000004
【図３】
2012141730.tif 000005
【図４】
2012141730.tif 000006
【図５】
2012141730.tif 000007
【図６】
2012141730.tif 000008