(57)【要約】【課題】  ブロック化されるメモリモジュールの一部へのクロック信号の供給を停止したり、再開したりしてブロック毎に節電状態を自在に設定できる。【解決手段】  CG３００からクロック信号をSystem Clock Domain４１６、４１７、４１８、Local Clock Domain４１９、４２０、４２１により供給する。そして、CPU１０８との間で所定の処理を行う装置において、System Clock Domain４１６、４１７、４１８からの要求に基づいてゲート信号を生成する。そして、生成されるゲート信号により、Local Clock Domain４１９、４２０、４２１に対するクロック信号の供給または停止をClock Gating Box３０８で制御する構成を特徴とする。【選択図】  図３
2007052525.tif 000002
【特許請求の範囲】
【請求項１】
クロック源からクロック信号を複数のモジュールにより供給して制御部との間で所定の処理を行うデータ処理装置であって、
複数のモジュール中の第１のモジュールからの要求に基づいて生成されるゲート信号により、複数のモジュール中の第２のモジュールに対する前記クロック信号の供給または停止を制御する第１のゲート手段を有することを特徴とするデータ処理装置。
【請求項２】
前記第２のモジュールへのクロック信号が停止中に、前記第１のモジュールに対する所定のアクセス要求に応じて前記第２のモジュールへのアクセス要求が発生した場合、前記第２のモジュールが応答すべき疑似応答信号を要求元のモジュールに出力する第２のゲート手段を有することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
第１のモジュールに対する所定のアクセス要求に応じて第２のモジュールとを複数備えてモジュールがブロック化して前記制御部とアクセス可能に接続することを特徴とする請求項１記載のデータ処理装置。
【請求項４】
前記第２のゲート手段は、前記ゲート信号を反転して前記第２のモジュールが応答すべき疑似応答信号を要求元のモジュールに出力することを特徴とする請求項１記載のデータ処理装置。
【請求項５】
前記制御部は、ＣＰＵ、ＤＭＡＣを含むことを特徴とする請求項１記載のデータ処理装置。
【請求項６】
前記制御部が実行する所定の処理は、印刷部の制御、スキャナ部の制御、複合機器の制御であることを特徴とする請求項１記載のデータ処理装置。
【請求項７】
クロック源からクロック信号を複数のモジュールにより供給して制御部との間で所定の処理を行うデータ処理装置におけるデータ処理方法であって、
前記複数のモジュール中の第１のモジュールからの要求に基づいて生成されるゲート信号により、複数のモジュール中の第２のモジュールに対する前記クロック信号の供給または停止を制御する制御ステップを有することを特徴とするデータ処理方法。
【請求項８】
前記第２のモジュールへのクロック信号が停止中に、前記第１のモジュールに対する所定のアクセス要求に応じて前記第２のモジュールへのアクセス要求が発生した場合、前記第２のモジュールが応答すべき疑似応答信号を要求元のモジュールに出力する出力ステップを有することを特徴とする請求項７記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック源からクロック信号を複数のモジュールにより供給して制御部との間で所定の処理を行うデータ処理装置、データ処理方法、コンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラムに関するものである。
【背景技術】
【０００２】
従来、データ処理装置、例えば画像形成装置には、ホストコンピュータや外部デバイス（例えばスキャナ、プリンタエンジン）との間の通信や、データ処理を制御するコントローラ部を備える。
【０００３】
そして、このコントローラ部には、各種のデータ処理を実行するために記憶されるメモリモジュールに対して、所定周波数のシステムクロックを供給して、データやプログラムの読み出しを制御している（下記特許文献１参照）。
【０００４】
そして、システムクロックの供給と停止を制御することにより、あるいは供給するシステムクロックの動作周波数を決定することにより、メモリスロットに装着されるメモリモジュールの動作環境に自在に適応してメモリアクセス環境を構築します。
【０００５】
また、メモリモジュールに対する無駄なシステムクロックの供給を停止して、消費電力の損失を低減できる。さらに、メモリモジュールへのシステムクロック 供給による放射ノイズを低減でき、また、動作環境の異なるメモリモジュールによる動作不良の発生を防止している。
【特許文献１】特開平１０−０５６６１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、複数のメモリモジュールが主従関係をもって複数個ブロック化されて構成されるようなコントローラ部を備えるデータ処理装置においては、次の課題がある。それは、データアクセスの要求に応じて、主従関係のメモリモジュールの一部へのクロック信号の供給を停止したり、再開したりする回路構成が複雑となる課題である。
【０００７】
さらに、主従関係のメモリモジュールの一部へのクロック信号の供給を停止中に、その停止しているメモリモジュールへのアクセス要求がＣＰＵから発生した場合にも課題がある。それは、クロック信号が供給されていないメモリモジュールからは応答信号が生成されないため、システムとしてハングアップしてしまう等の課題である。
【０００８】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、簡単な回路構成で、メモリモジュールの一部へのクロック信号の供給を停止した場合でもシステムとしてハングアップを防止できる仕組みを提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成する本発明のデータ処理装置は以下に示す構成を備える。
【００１０】
クロック源からクロック信号を複数のモジュールにより供給して制御部との間で所定の処理を行うデータ処理装置であって、複数のモジュール中の第１のモジュールからの要求に基づいて生成されるゲート信号により、複数のモジュール中の第２のモジュールに対する前記クロック信号の供給または停止を制御する第１のゲート手段を有することを特徴とする。
【００１１】
上記目的を達成する本発明のデータ処理方法は以下に示す構成を備える。
【００１２】
クロック源からクロック信号を複数のモジュールにより供給して制御部との間クロック源からクロック信号を複数のモジュールにより供給して制御部との間で所定の処理を行うデータ処理装置におけるデータ処理方法であって、前記複数のモジュール中の第１のモジュールからの要求に基づいて生成されるゲート信号により、複数のモジュール中の第２のモジュールに対する前記クロック信号の供給または停止を制御する制御ステップを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、簡単な回路構成で、データアクセスの要求に応じて、メモリモジュールの一部へのクロック信号の供給を停止したり、再開したりできる。また、メモリモジュールの一部へのクロック信号の供給を停止中に、その停止しているメモリモジュールへのアクセス要求がＣＰＵから発生した場合には、該クロック信号が供給されていないメモリモジュールからは応答信号が生成されない。このため、システムとしてハングアップしてしまう事態を確実に回避して、システム安定性に優れたデータ処理を行える。
【発明を実施するための最良の形態】
【００１４】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００１５】
＜システム構成の説明＞
〔第１実施形態〕
以下、図面を参照して本発明の実施の形態を説明する。
【００１６】
図１は、本発明の第１実施形態を示すデータ処理装置を適用可能な画像処理装置のコントローラ部の構成を説明するブロック図である。
【００１７】
なお、本実施形態では、データ処理装置として、例えばＭＦＰ（マルチ・ファンクション・プリンタ）のコントローラ部を例とする。本画像処理装置のコントローラ部は、後述するインタフェース部（Ｉ／Ｆ部）を介してホストコンピュータ１１３、スキャナ１１４、プリンタエンジン１１５と通信可能に構成されている。
【００１８】
図１において、１００はコントローラ部であり、主にホストコンピュータ１１３から受信した印刷データをビットマップデータに展開してプリンタエンジン１１５に出力する処理を行う。また、コントローラ部１００は、スキャナ１１４で読み取ったスキャンデータ画像データをプリンタエンジン１１５に出力するといった処理を行う。
【００１９】
１０１はホストインタフェース（ホストＩ／Ｆ部）で、ホストコンピュータ１１３との通信を行ない、プリンタ固有の言語で記述された印刷コードデータ（ＰＤＬデータ）やイメージデータを受ける。
【００２０】
１０２はスキャナＩ／Ｆ部で、スキャナ１１４から入力されるスキャン画像データを受信する。１０４は画像識別部であり、画像の種類すなわちカラー画像かモノクロ画像か、テキスト画像かイメージ画像か、或いは図形データかなどの判別を行う。
【００２１】
１０５はＲＯＭであり、ＣＰＵ１０８はＲＯＭ１０５に格納されたプログラムをＲＯＭコントローラ１１７を介して読み出し、読み出したプログラムに従ってコントローラ１００全体の制御を行っている。
【００２２】
１０６はＲＡＭであり、ＣＰＵ１０８が各種処理をする際のワークメモリとして利用したり、あるいは画像データを格納するためのバッファ等として利用したりされる。ＲＡＭ１０６へのアクセスはＲＡＭコントローラ１１８を介して行われる。
【００２３】
１０７は操作パネルであり、コピー動作やプリント動作をする際の、各種設定や指示を与えるだけでなく、その表示部にプリント枚数やステータスといった各種情報が表示される。
【００２４】
１０８はＣＰＵであり、後述するシステムクロックに従いＲＯＭ１０５に格納されたプログラムに従ってコントローラ１００全体の各種制御や画像処理などを行う。
【００２５】
１０９は圧縮・伸張部であり、スキャナ１１４から読み取った画像データを圧縮・伸張したり、或いはホストＩ／Ｆ部１０１を介してホストコンピュータ１１３から受信した画像データを展開する過程で一時的にデータを圧縮・伸張したりする。１１０は画像データの回転器であり、例えばスキャナ１１４で読み取った画像データを、９０度、１８０度、２７０度回転することが出来る。
【００２６】
１１１はエンジンＩ／Ｆ部で、プリンタエンジン１１５に対して印刷画像データを出力する。１１６はコントローラのシステムバスで、後述するシステムクロックに応じて各デバイスとのデータアクセスを可能としている。
【００２７】
１２１は外部記憶装置であり、外部記憶装置コントローラ１２０によって制御される。外部記憶装置１２１は各種のメモリデバイス、例えばハードディスク等で構成される。
【００２８】
１４０はＣｌｏｃｋ制御部であり、水晶発振器１６０から発振されるリファレンスＣｌｏｃｋをベースに、コントローラ部１００で使用可能な周波数はタイミングが異なる複数のクロックからなるＳｙｓｔｅｍ  Ｃｌｏｃｋ１５０を生成する。
【００２９】
図２は、図１に示したＣｌｏｃｋ制御部１４０の動作を説明する回路ブロック図である。なお、図１と同一のものには同一の符号を付してある。
【００３０】
図２において、水晶発振器１６０からリファレンスＣｌｏｃｋとなる、例えば６６ＭＨｚのＣｌｏｃｋ３０３をＣｌｏｃｋ  Ｇｅｎｅｒａｔｏｒ（ＣＧ）３００に入力する。Ｃｌｏｃｋ  Ｇｅｎｅｒａｔｏｒ３００内のＰＬＬ発振器３０１は、リファレンスの入力Ｃｌｏｃｋ３０３を元にＰＬＬ（Phase Locked Loop）処理で周波数を４逓倍した上で位相をロックする。そして、Ｓｙｓｔｅｍ  ＣｌｏｃｋのベースＣｌｏｃｋ３０４としてＣｌｏｃｋ分周器３０５に出力する。
【００３１】
Ｃｌｏｃｋ分周器３０５は入力されたＣｌｏｃｋ３０４（例えば２６６ＭＨｚ）を２分周し、Ｓｙｓｔｅｍ  Ｃｌｏｃｋのベースとなる、例えば１３３ＭＨｚのＣｌｏｃｋ３０９を出力する。
【００３２】
なお、Ｃｌｏｃｋ分周器３０５で入力Ｃｌｏｃｋを２分周することによって、ＣｌｏｃｋのＤｕｔｙを確保している。
【００３３】
Ｃｌｏｃｋ３０９は、Ｃｌｏｃｋ  Ｇａｔｉｎｇ  Ｂｏｘ３０８内のＡＮＤゲート３１０によってＧａｔｅ制御され、Ｇａｔｅ制御されたＳｙｓｔｅｍ  Ｃｌｏｃｋ１５０としてＣｌｏｃｋ４０１〜４０３を出力する。
【００３４】
ここで、Ｃｌｏｃｋ  Ｇａｔｉｎｇ制御部３０７からの出力信号が'０'の時はＣｌｏｃｋ３０９はマスクされ、'１'のときはＣｌｏｃｋ３０９がＣｌｏｃｋ１５０としてそのまま出力される。
【００３５】
このＳｙｓｔｅｍ  Ｃｌｏｃｋ１５０はＣｌｏｃｋ  Ｇａｔｉｎｇ  Ｂｏｘ３０８内でそれぞれ独立にＧａｔｅ制御が可能となっており、必要に応じて特定のブロックのみＣｌｏｃｋを停止させたり動かしたりすることが出来るよう構成されている。
【００３６】
このように構成されたデータ処理装置は、水晶発振器１６０からクロック信号を複数のモジュールにより供給してＣＰＵ１０８との間で所定の処理を行うデータ処理装置である。
【００３７】
そして、データ処理装置は、ＣＧ３００からクロック信号を後述するＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９、４２０、４２１により供給してＣＰＵ１０８との間で所定の処理を行う。また、データ処理装置は、Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８からの要求に基づいて生成されるゲート信号を制御する構成を備える。その構成とは、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９、４２０、４２１に対するクロック信号の供給または停止をＣｌｏｃｋ  Ｇａｔｉｎｇ  Ｂｏｘ３０８で制御する構成である。
【００３８】
また、データ処理装置は、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９、４２０、４２１へのクロック信号が停止中に、以下が発生した場合のためのＡｃｋ信号制御用Ｇａｔｅ４１３、４１４、４１５を備えている。発生するのは、Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８に対する所定のアクセス要求に応じて発生するＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９、４２０、４２１へのアクセス要求である。そして、Ａｃｋ信号制御用Ｇａｔｅ４１３、４１４、４１５は、前記第２のモジュールが応答すべき疑似応答信号を要求元のモジュールに出力する第２のゲート手段として機能する。
【００３９】
なお、Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９、４２０、４２１は、それぞれ主従の関係となって、１つのブロックを構成している。
【００４０】
また、Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９、４２０、４２１には、内部に図示しないレジスタを備えている。
【００４１】
図３は、図２に示したＳｙｓｔｅｍ  Ｃｌｏｃｋ４０１〜４０３が供給される各機能モジュールとの対応を説明する第１の回路ブロック図である。なお、図１と同一のものには同一の符号を付してある。
【００４２】
図３において、４１６、４１７、４１８はそれぞれＭｏｄｕｌｅ  Ａ、Ｍｏｄｕｌｅ  Ｂ、Ｍｏｄｕｌｅ  ＣのＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎである。Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎは、ＣＧ（Ｃｌｏｃｋ  Ｇｅｎｅｒａｔｏｒ）３００から出力される常に発振しているＦｒｅｅ  ＲｕｎのＳｙｓｔｅｍ  Ｃｌｏｃｋ信号４２５をＢａｓｅ  Ｃｌｏｃｋとして動作している。
【００４３】
一方、４１９、４２０、４２１はそれぞれＭｏｄｕｌｅ  Ａ、Ｍｏｄｕｌｅ  Ｂ、Ｍｏｄｕｌｅ  ＣのＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎである。Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎは、それぞれＣｌｏｃｋ  Ｇａｔｅ  Ｂｏｘ３０８内でＧａｔｅ制御されたＣｌｏｃｋ４０１、４０２、４０３をＢａｓｅ  Ｃｌｏｃｋとして動作している。
【００４４】
４２２、４２３、４２４はそれぞれＭｏｄｕｌｅ  Ａ、Ｍｏｄｕｌｅ  Ｂ、Ｍｏｄｕｌｅ  ＣのＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎに対応したＣｌｏｃｋ  Ｇａｔｉｎｇ信号である。Ｃｌｏｃｋ  Ｇａｔｉｎｇ信号は、各Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９、４２０、４２１に供給されるＢａｓｅ  Ｃｌｏｃｋ４０１、４０２、４０３を発振停止させるか否かを制御する信号として機能する。
【００４５】
ＣＰＵ１０８からのアクセス要求が発生すると、各Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８はＣＰＵ１０８のアドレスをデコードし、自分のモジュールへのアクセスか否かを判断する。
【００４６】
ここで当該アクセスが自分のＭｏｄｕｌｅへのアクセスであったと判断した場合には、ＣＰＵ１０８からのアクセス要求に対して応答する。
【００４７】
ここで図４を用いてＣＰＵ１０８とＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８間の信号接続について説明する。
【００４８】
図４は、図３に示したＣＰＵ１０８とＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６とのインタフェース信号を説明する図である。
【００４９】
図４において、ＣＰＵ１０８からＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８内部のモジュールにアクセスする際は、以下を用いる。即ち、バストランザクション開始を意味するＴＳ信号７００、およびリードトランザクションか、ライトトランザクションかを示すＷ＿ｎＲ信号７０２、Ａｄｄｒｅｓｓ信号７０１、データ信号７０３である。
【００５０】
図５は、図３に示したＣＰＵ１０８とＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８とのライトトランザクションの動作を説明するタイミングチャートである。
【００５１】
図５に示すＴ１サイクルにおいて、ＣＰＵ１０８はトランザクションの開始を示すＴＳ信号４００をアサートすると共に、Ａｄｄｒｅｓｓ信号４０１、リードかライトかを示すＷ＿ｎＲ信号４０２をデータバス１１６上にドライブする。
【００５２】
続く、Ｔ２サイクルでは書き込みデータ４０３をデータバス１１６上にドライブする。この時、Ｔ２、Ｔ３、Ｔ４期間ではＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８からのＲＤＹ信号４０４がアサートされない。そのため、ＣＰＵ１０８は書き込みデータを保持したままＷＡＩＴ状態となっている。
【００５３】
Ｔ５サイクルにおいて、Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８はＲＤＹ信号４０４をアサートしてライトデータを受信可能であることを示す。そして、Ｔ５サイクルの終わりでライトデータ４０３を取り込み、ライトトランザクションサイクルを終了する。
【００５４】
次に、ＣＰＵ１０８からＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８へのリードトランザクションのタイミングチャートを図６に示す。
【００５５】
図６は、図３に示したＣＰＵ１０８とＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８とのリードトランザクションの動作を説明するタイミングチャートである。
【００５６】
図６に示すＴ１サイクルにおいて、ＣＰＵ１０８はトランザクションの開始を示すＴＳ信号４００をアサートすると共に、Ａｄｄｒｅｓｓ信号４０１、リードかライトかを示すＷ＿ｎＲ信号４０２をドライブする。
【００５７】
続くＴ２、Ｔ３、Ｔ４期間ではＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８かのＲＤＹ信号４０４がアサートされないため、ＣＰＵ１０８は書き込みデータを保持したままＷＡＩＴ状態となっている。
【００５８】
そして、Ｔ５サイクルにおいて、Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８はリードデータをデータバス上に出力すると共に、ＲＤＹ信号４０４をアサートしてデータバス上に有効なリードデータがドライブされていることを示す。ＣＰＵ１０８はＴ５サイクルの終わりでリードデータ４０３を取り込み、リードランザクションサイクルを終了する。
【００５９】
各Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８において、Ｃｌｏｃｋの動作状態に関わらず常に動作している必要のある部分がある。その部分とは、ＣｌｏｃｋをＧａｔｉｎｇするか否かを設定するレジスタである。また、その部分とは、ＣＰＵ１０８からのレジスタアクセスに応答する制御回路である。それらの常に動作している必要のある部分だけがＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８内にあり、それ以外の回路は全てＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９、４２０、４２１内にある。
【００６０】
この様な構成を取ることで、必要なときだけＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９、４２０、４２１の各モジュールに供給するＣｌｏｃｋを発振させ、それ以外のときには供給Ｃｌｏｃｋの発振を停止させることで省電力化を図っている。
【００６１】
これにより、ゲートＢ０ｘ３０８を備えるという簡単な構成で構成で、特定のブロック毎に、かつ、主従関係を持つモジュール間の一部にクロック供給を停止、再開可能となる。
【００６２】
以上の様な構成を持ったＭＦＰ用のコントローラ部において、例えばＣＰＵ１０８からＭｏｄｕｌｅ  ＡのＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９内部のレジスタにライトアクセスする場合を考える。この場合、ＣＰＵバスサイクルが発生すると、トランザクション開始を意味するＴＳ信号４００がアサートされた時のアドレス信号４０１をＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８の各モジュールがそれぞれデコードする。そして、自分のモジュールに割り当てられたレジスタ空間へのアクセスか否かを判断する。
【００６３】
その結果、Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６が自分のモジュールに割り当てられたレジスタ空間へのアクセス要求であると判断する。更にＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６は当該アクセス要求がＣｌｏｃｋのＧａｔｅ制御レジスタに対するものか、それ以外のレジスタ（Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９内に存在するレジスタ）に対するものかを判断する。そして、それがＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６内にあるＣｌｏｃｋのＧａｔｅ制御レジスタに対するものであった場合には、図５に示すＴ５サイクルでＤａｔａバスからデータを取り込む。更に、ＣｌｏｃｋのＧａｔｅ制御レジスタに書き込むと共に、ＲＤＹ信号をアサートする。
【００６４】
この時、Ｍｏｄｕｌｅ  ＡのＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９のブロックへのアクセスのフォワードは行わない。すなわちＲｅｑｕｅｓｔ信号４０４はアサートされない。
【００６５】
一方、当該アクセス要求がＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９内に存在するレジスタに対するものであった場合には、以下の動作を行う。すなわち、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９に対してＲｅｑｕｅｓｔ信号４０４をアサートすると共に図示しないＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９へのデータバス上に書き込みデータをドライブする。そして、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９からのＡｃｋ信号４０７を待つ。
【００６６】
Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９は、レジスタへのデータの書き込みが終了するとＡｃｋ信号４２２をアサートし、Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６に知らせる。Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９はＡｃｋ信号４２２を受け取ると、ＲＤＹ信号４０４をアサートし、ＣＰＵバスサイクルを終了させる。
【００６７】
しかしながら、以上に述べた様なアクセス例では、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９への供給Ｃｌｏｃｋ４０１の発振が停止した状態では問題がある。すなわち、ＣＰＵ１０８がＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９内部にあるレジスタにリード、またはライトアクセスしようとした場合の問題である。即ち、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９からのＡｃｋ信号４０７がアサートされないため、Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６はずっとＡｃｋ信号を待ちつづけたままバスサイクルを終了することが出来ない。その結果、ＣＰＵ１０８はレジスタアクセス要求を発行したままハングアップ状態となってしまう問題がある。
【００６８】
図７は、図２に示したＳｙｓｔｅｍ  Ｃｌｏｃｋ４０１〜４０３が供給される各機能モジュールとの対応を説明する第２の回路ブロック図である。なお、図１と同一のものには同一の符号を付してある。図７に示すとおり、図３に示すコントローラ部１００との構成上の差異は、以下にある。すなわち、Ａｃｋ信号４２２、４２３、４２４を反転して各Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８に出力するゲート手段としてのＧａｔｅ４１３、４１４、４１５を備える点である。
【００６９】
なお、Ｇａｔｅ４１３、４１４、４１５は、Ａｃｋ信号４２２、４２３、４２４がアサートされていない状態中、すなわち、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９、４２０、４２１に対するクロック供給が停止して省電力中に、以下の動作を行う。すなわち、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９、４２０、４２１に対するアクセス要求がある場合に、Ａｃｋ信号４１０、４１１、４１２に代えて、次のものを出力する。すなわち、Ａｃｋ信号４２２、４２３、４２４を反転して、Ａｃｋ信号４０７、４０８、４０９を各Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８に対して強制的に出力する。
【００７０】
これにより、各Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８がＡｃｋ信号待ちの状態が継続されてしまうことを防止して、ＣＰＵ１０８がレジスタアクセス要求を発行したままハングアップすることを回避することができる。
【００７１】
例えばＣＰＵ１０８からＭｏｄｕｌｅ  ＡのＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９内部のレジスタにライトアクセスする場合、ＣＰＵバスサイクルが発生すると、以下を実行する。すなわち、トランザクション開始を意味するＴＳ信号４００がアサートされた時のアドレス信号４０１をＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８の各モジュールがそれぞれデコードする。更に、自分のモジュールに割り当てられたレジスタ空間へのアクセスか否かを判断する。
【００７２】
その結果、Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６が自分のモジュールに割り当てられたレジスタ空間へのアクセス要求であると判断する。更にＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６は当該アクセス要求がＣｌｏｃｋのＧａｔｅ制御レジスタに対するものか、それ以外のレジスタ（Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９内に存在するレジスタ）に対するものかを判断する。そして、それがＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６内にあるＣｌｏｃｋのＧａｔｅ制御レジスタに対するものであった場合には、図５に示すＴ５サイクルでＤａｔａバスからデータを取り込み、ＣｌｏｃｋのＧａｔｅ制御レジスタに書き込む。また、ＲＤＹ信号をアサートする。
【００７３】
この時、Ｍｏｄｕｌｅ  ＡのＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９のブロックへのアクセスのフォワードは行わない。すなわちＲｅｑｕｅｓｔ信号４０４はアサートされない。
【００７４】
一方、当該アクセス要求がＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９内に存在するレジスタに対するものであった場合で、且つＭｏｄｕｌｅ  ＡのＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９へのＣｌｏｃｋ信号４０１が発振している時がある。すなわちＭｏｄｕｌｅ  ＡのＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６からのＣｌｏｃｋ  Ｅｎａｂｌｅ信号４２２が'Ｈ'にアサートされているときには、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９に対してＲｅｑｕｅｓｔ信号４０４をアサートする。更にそれと共に図示しないＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９へのデータバス上に書き込みデータをドライブする。そして、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９からのＡｃｋ信号４０７を待つ。
【００７５】
Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９は、レジスタへのデータの書き込みが終了するとＡｃｋ信号４２２をアサートし、Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６に知らせる。Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９はＡｃｋ信号４２２を受け取ると、ＲＤＹ信号４０４をアサートし、ＣＰＵバスサイクルを終了させる。
【００７６】
次に、当該アクセス要求がＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９内に存在するレジスタに対するものであった場合で、且つＭｏｄｕｌｅ  ＡのＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９へのＣｌｏｃｋ信号４０１が発振停止している時がある。すなわちＭｏｄｕｌｅ  ＡのＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６からのＣｌｏｃｋ  Ｅｎａｂｌｅ信号４２２が'Ｌ'にデアサートされている場合にも同様である。すなわち、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９に対してＲｅｑｕｅｓｔ信号４０４をアサートすると共に図示しないＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９へのデータバス上に書き込みデータをドライブする。Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９からのＡｃｋ信号４０７を待つ。
【００７７】
Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９に供給されているＣｌｏｃｋ信号４０１は発振を停止しているため、Ｍｏｄｕｌｅ  ＡのＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９はＲｅｑｕｅｓｔ信号４０４がアサートされても一切反応することが出来ない。
【００７８】
しかしこの場合はＭｏｄｕｌｅ  ＡのＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６から出力されるＭｏｄｕｌｅ  ＡのＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ用Ｃｌｏｃｋに対するＥｎａｂｌｅ信号４２２が'Ｌ'になっている。そのため、Ｇａｔｅ４１３によってＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６へのＡｃｋ信号４０７がドライブされる。
【００７９】
このようにして、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９へのＣｌｏｃｋが発振停止している場合は、強制的にＡｃｋ信号４０７をドライブする。それは、Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６からのＣｌｏｃｋ  Ｅｎａｂｌｅ信号４２２をＧａｔｅ４１３によってドライブされる。このことで、Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６はバスサイクルを終了させることが出来る。
【００８０】
このとき、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９へのデータ書き込みは正常に行われず、書き込みデータは破棄されるが、ＣＰＵ１０８がレジスタアクセスに行ったままハングアップするという状況は回避される。
【００８１】
本実施形態では、Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８に対する所定のアクセス要求に応じてＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９、４２０、４２１とを複数備えてモジュールをブロック化する。そうして前記制御部とアクセス可能に接続している。そして、各ブロックごとに、クロック供給の停止・再開を行える。
【００８２】
また、Ａｃｋ信号制御用Ｇａｔｅ４１３、４１４、４１５は、前記ゲート信号を反転する。そうして、Ｌｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９、４２０、４２１が応答すべき疑似応答信号を要求元のモジュールであるＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８に出力する。
【００８３】
これにより、Ｃｌｏｃｋ  Ｇａｔｉｎｇ信号４２２、４２３、４２４がネガティブ状態である「Ｌ」中であっても、その反転信号がＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１６、４１７、４１８に出力される。
【００８４】
本実施形態によれば、必要なときだけＬｏｃａｌ  Ｃｌｏｃｋ  Ｄｏｍａｉｎ４１９、４２０、４２１の各モジュールに供給するＣｌｏｃｋを発振させ、それ以外のときには供給Ｃｌｏｃｋの発振を停止させることで省電力化を図っている。
【００８５】
また、アクセス先のモジュールのＣｌｏｃｋ信号が停止している期間に、ブロックにアクセス要求が発生した際には、ＣｌｏｃｋのＧａｔｅ信号を使って強制的にＡｃｋ信号を返すことで、システムがハングアップすることを回避出来るようにしたものである。
【００８６】
これにより、簡単な回路構成で、データアクセスの要求に応じて、メモリモジュールの一部へのクロック信号の供給を停止したり、再開したりできる。また、メモリモジュールの一部へのクロック信号の供給を停止中に、その停止しているメモリモジュールへのアクセス要求がＣＰＵから発生した場合には、該クロック信号が供給されていないメモリモジュールからは応答信号が生成されない。このため、システムとしてハングアップしてしまう事態を確実に回避して、システム安定性に優れたデータ処理を行える。
【００８７】
〔第２実施形態〕
上記実施形態では、ＭＦＰのコントローラ部に本発明を適用する場合について説明したが、他の画像形成装置、プリンタ装置等が備えるコントローラ部にも本発明を適用可能である。
【００８８】
〔第３実施形態〕
上記実施形態では、モジュール間へのアクセスをＣＰＵが行う場合について説明したが、ＣＰＵに代えてＤＭＡＣ等のメモリアクセスコントローラを備えるシステムにも本発明を適用可能である。
【図面の簡単な説明】
【００８９】
【図１】本発明の第１実施形態を示す画像処理装置のコントローラ部の構成を説明するブロック図である。
【図２】図１に示したＣｌｏｃｋ制御部の動作を説明する回路ブロック図である。
【図３】図２に示したＳｙｓｔｅｍ  Ｃｌｏｃｋが供給される各機能モジュールとの対応を説明する第１の回路ブロック図である。
【図４】図３に示したＣＰＵとＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎとのインタフェース信号を説明する図である。
【図５】図３に示したＣＰＵとＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎとのライトトランザクションの動作を説明するタイミングチャートである。
【図６】図３に示したＣＰＵとＳｙｓｔｅｍ  Ｃｌｏｃｋ  Ｄｏｍａｉｎとのリードトランザクションの動作を説明するタイミングチャートである。
【図７】図２に示したＳｙｓｔｅｍ  Ｃｌｏｃｋが供給される各機能モジュールとの対応を説明する第２の回路ブロック図である。
【符号の説明】
【００９０】
１００  コントローラ部
１０５  ＲＯＭ
１０６  ＲＡＭ
１０７  操作パネル
１０８  ＣＰＵ
１６０  水晶発振器
１４０  Ｃｌｏｃｋ制御部
【図１】
2007052525.tif 000003
【図２】
2007052525.tif 000004
【図３】
2007052525.tif 000005
【図４】
2007052525.tif 000006
【図５】
2007052525.tif 000007
【図６】
2007052525.tif 000008
【図７】
2007052525.tif 000009