(57)【特許請求の範囲】
【請求項１】
マスタデバイスと、
データを受信するインタフェース部と前記インタフェース部を介して受信したデータを処理するコア部とを有するスレーブデバイスと、を有し、前記マスタデバイスと複数の前記スレーブデバイスがリングバスで通信可能に接続された情報処理装置であって、
前記スレーブデバイスへのクロック信号の供給を制御するクロック信号制御部、を有し、
前記クロック信号制御部は、
前記マスタデバイスが前記リングバスを介して前記スレーブデバイスに発行するリクエストを検知する検知手段と、
前記検知手段による前記リクエストの検知に基づいて、前記複数のスレーブデバイスの各インタフェース部にクロック信号を供給する第１クロック信号供給手段と、
前記検知手段によって検知された前記リクエストで指定されたスレーブデバイスを前記複数のスレーブデバイスから選択する選択手段と、
前記選択手段により選択された前記スレーブデバイスのコア部にクロック信号を供給する第２クロック信号供給手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記第２クロック信号供給手段は、前記複数のスレーブデバイスのうち前記選択手段により選択されていないスレーブデバイスにクロック信号を供給しないことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２クロック信号供給手段は、前記選択手段により選択されたスレーブデバイス以外のスレーブデバイスを介することなく、クロック信号を前記選択手段により選択されたスレーブデバイスのコア部に供給することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、
前記リクエストで指定されたスレーブデバイスが前記リクエストに応じて発行したレスポンスを受信する受信手段と、
前記マスタデバイスから発行されたリクエストの数と、前記受信手段により受信されたレスポンスの数とを比較する比較手段と、をさらに備え、
前記第１クロック信号供給手段は、前記比較手段による比較結果に基づいて、前記複数のスレーブデバイスへのクロック信号の供給を停止することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１クロック信号供給手段は、前記比較手段により前記マスタデバイスの発行したリクエストの数と前記マスタデバイスが受信したレスポンスの数が一致したという比較結果に基づいて、前記複数のスレーブデバイスへのクロック信号の供給を停止することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記第２クロック信号供給手段は、前記比較手段による比較結果に基づいて、前記リクエストで指定されたスレーブデバイスのコア部へのクロック信号の供給を停止することを特徴とする請求項４または５に記載の情報処理装置。
【請求項７】
前記第２クロック信号供給手段は、前記比較手段により前記マスタデバイスが発行したリクエストの数と前記マスタデバイスが受信したレスポンスの数が一致したという比較結果に基づいて、前記リクエストで指定されたスレーブデバイスのコア部へのクロック信号の供給を停止することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記マスタデバイスは、前記リングバス上のプロトコルに準ずるリクエストを発行し、前記複数のスレーブデバイスのうち、前記リクエストで指定されるスレーブデバイスから、前記リングバス上のプロトコルに準ずるレスポンスを受信することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記スレーブデバイスは、前記マスタデバイスから受信された前記リクエストに対応する処理の実行後、前記マスタデバイスに対して前記リングバス上のプロトコルに準ずるレスポンスを発行することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記リクエストは、前記複数のスレーブデバイスから前記マスタデバイスのアクセス対象となるスレーブデバイスを選択するための情報を含むことを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記マスタデバイスと前記複数のスレーブデバイスはリング状に繋がれており、
前記インタフェース部は、前記マスタデバイスから受信された前記リクエストで指定されたスレーブデバイスが当該スレーブデバイスと異なるスレーブデバイスである場合、前記リクエストを次のスレーブデバイスへ転送することを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記コア部は、前記マスタデバイスから発行されたリクエストをデコードし、受信した前記リクエストが当該コア部を有するスレーブデバイスに対するアクセス対象であるか否かを判定し、当該アクセス対象であると判定した場合、当該リクエストに対応する処理を実行する機能を有する回路であることを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記レスポンスは、少なくとも前記リクエストの送信先として指定されたスレーブデバイスのアドレスを含むことを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記情報処理装置において、
前記マスタデバイスが発行されたリクエストと前記スレーブデバイスが発行したレスポンスは、前記リングバスを同一方向に転送されることを特徴とする請求項１乃至１３のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リングバスで構成されたシステムを有する情報処理装置に関する。
【背景技術】
【０００２】
近年、半導体集積回路装置において、機能拡張、パフォーマンス向上に伴い、回路規模が増大し、数多くの周辺回路が使用されている。一方、環境への配慮や、各種省電力規制を満たすために、有効な消費電力の削減方法もますます注目されている。例えば、動作時に不要な周辺回路へのクロック信号の供給を停止して全体の消費電力を削減するという方法（クロックゲート）が使用される。
【０００３】
特許文献１には、１つのマスタデバイスと複数のスレーブデバイスとが接続されている場合、マスタデバイスのアクセス対象のスレーブデバイスのみにクロック信号を供給する構成が記載されている。また、アクセス対象ではないスレーブデバイスにはクロック信号を供給しない構成も記載されている。また、スレーブデバイスが１つのアクセス要求（リクエスト）に対して発行したレスポンス信号が検出された時に、アクセスが終了したと判定され、全てのデバイスへのクロック信号の供給を停止するという構成が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−２３７１３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載のクロックゲート方法を、リングバスを使用するシステムに使用すると、アクセス先のスレーブデバイスにしかクロック信号を供給しないことになり、アクセス対象ではないスレーブデバイスが動作することができない。その結果、リングバス上にあるアクセス対象でないスレーブデバイスを介して、リクエストとレスポンスのデータをリングバス上に巡回させることができなくなってしまう。そのため、特許文献１の構成は、リングバスを使用するシステムには適用することができない。
【０００６】
本発明の目的は、このような従来の問題点を解決することにある。上記の点に鑑み、本発明は、リングバスを使用するシステムにおいて、リングバス上のデバイスへのクロック信号の供給を適切に制御する仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明に係る情報処理装置は、マスタデバイスと、データを受信するインタフェース部と前記インタフェース部を介して受信したデータを処理するコア部とを有するスレーブデバイスと、を有し、前記マスタデバイスと複数の前記スレーブデバイスがリングバスで通信可能に接続された情報処理装置であって、前記スレーブデバイスへのクロック信号の供給を制御するクロック信号制御部、を有し、前記クロック信号制御部は、前記マスタデバイスが前記リングバスを介して前記スレーブデバイスに発行するリクエストを検知する検知手段と、前記検知手段による前記リクエストの検知に基づいて、前記複数のスレーブデバイスの各インタフェース部にクロック信号を供給する第１クロック信号供給手段と、前記検知手段によって検知された前記リクエストで指定されたスレーブデバイスを前記複数のスレーブデバイスから選択する選択手段と、前記選択手段により選択された前記スレーブデバイスのコア部にクロック信号を供給する第２クロック信号供給手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、リングバスを使用するシステムにおいて、リングバス上のデバイスへのクロック信号の供給を適切に制御することができる。
【図面の簡単な説明】
【０００９】
【図１】印刷装置の構成を示す図である。
【図２】リングバスプロトコルに従うタイミングチャートを示す図である。
【図３】リングバスを使用する半導体集積回路装置のブロック図である。
【図４】マスタデバイスの構成を示すブロック図である。
【図５】スレーブデバイスの構成を示すブロック図である。
【図６】クロック制御ユニットの構成を示すブロック図である。
【図７】クロック制御ユニットの構成を示すブロック図である。
【図８】クロック信号の供給を制御する処理を示すフローチャートである。
【図９】クロック信号の供給を制御する処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１１】
［第１の実施形態］
図１は、リングバスを使用する印刷装置の構成を示す図である。印刷装置１００は、印刷装置１００を統括的に制御するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、プリント装置１０２、スキャン装置１０３、画像処理装置１０４、記憶装置１０５、クロック発生装置１０７を含んで構成される。印刷装置１００は、他の構成を含んでも良い。また、不図示であるが、汎用的なＲＯＭやＲＡＭ等も含まれる。本実施形態の動作は、例えば、ＣＰＵ１０１が記憶装置１０５やＲＯＭ等に記憶されたプログラムを読み出して実行することにより実現される。
【００１２】
画像処理装置１０４は、例えば半導体集積回路で構成され、内部にリングバスが構成されている。１つのマスタデバイス３０１と複数のスレーブデバイス３０２、３０３は、リング状（環状）に相互に接続され、マスタデバイス３０１から発行されたリクエスト１０５は、リング状のバス（以下、リングバスという）上に巡回される。そして、リクエスト１０５は、スレーブデバイス３０２、３０３に順次、到達し、最終的にマスタデバイス３０１に戻る。以下、スレーブデバイス３０２及び３０３を総称する場合は、単にスレーブデバイスという。
【００１３】
スレーブデバイスは、リクエスト１０５を受けると、直ちにそのリクエストを次のスレーブデバイス或いはマスタデバイス３０１に送信する。同時に、そのリクエストをデコードし、デコードを行ったスレーブ自身が該当リクエストのアクセス対象であるか否かを判定する。ここで、アクセス対象であると判定した場合、本判定を行ったスレーブデバイスは、リクエストに応じて、データのリード／ライトの動作を行い、レスポンス信号１０６を発行する。一方、アクセス対象でないと判定した場合、本判定を行ったスレーブデバイスは、リクエストの内容を無視する。その場合には、スレーブデバイスは、受信したリクエストをリングバス上の次のデバイスにそのまま転送する。
【００１４】
本実施形態におけるリングバスは、以下の二つの点を特徴として有する。一つは、リングバスに接続されるデバイスは、リクエストとレスポンスをリングバス上で巡回させる機能を有していないか或いはその機能が動作していない場合、リングバス上のデータ通信を行うことができない。また、一つは、リングバスに接続されるスレーブデバイスが複数あるので、マスタデバイスは、それぞれのスレーブデバイスに対するリクエストを連続的に発行可能である。そして、各スレーブデバイスは、受信したリクエストをデコードして、自デバイスがそのリクエストを処理すべきか否かを判定し、処理すべきと判定した場合には、そのリクエストに従って処理を実行する。
【００１５】
図２は、リングバス上のデータ通信プロトコルに従い、データのライト動作のタイミングチャートを示す図である。リングバスプロトコルの一例を示すタイミングチャート２００は、クロック信号２０１、リード／ライト選択信号２０２、リクエスト信号２０３の各信号のタイミングチャートを示している。また、タイミングチャート２００は、リクエストデータ信号２０４、レスポンス信号２０５、レスポンスデータ信号２０６の各信号のタイミングチャートを示している。
【００１６】
クロック信号２０１は、リングバスの動作を保障するために必要なクロック信号である。リード／ライト選択信号２０２は、マスタデバイス３０１が発行したリクエストの種類を示す信号である。例えば、リードの場合、１＿ｒｅａｄ＿０＿ｗｒｉｔｅ＝１のレベルが設定され、ライトの場合、１＿ｒｅａｄ＿０＿ｗｒｉｔｅ＝０のレベルが設定される。図２は、ライトリクエストの場合を示している。
【００１７】
リクエスト信号２０３は、マスタデバイス３０１がリクエストを発行しようとする際、或いは、スレーブデバイスがリクエストを次のデバイスに送信しようとする際に、アサートされる（有効にされる）信号である。リクエストデータ２０４は、リクエスト対象であるスレーブデバイスを特定する情報であるアドレス２０７とライトデータ２０８とを含む。リクエストデータ２０４は、マスタデバイス３０１から発行され、リングバス上を巡回する。
【００１８】
レスポンス信号２０５は、スレーブデバイスが処理の実行を終了した（即ち、ライトが成功した）ことをマスタデバイス３０１に通知する際に、アサートされる信号である。レスポンスデータ２０６は、リクエストの対象であるスレーブデバイスを特定する情報であるアドレス２０９を含む。スレーブデバイスによる処理の実行後に、レスポンスデータ２０６を発行し、マスタデバイス３０１に返す。レスポンスデータ２０６のアドレス２０９と、リクエストデータ２０４のアドレス２０７は一致している。
【００１９】
以上説明したリングバスに用いられる信号及びデータ２０１〜２０６は、リングバスプロトコルの一例であり、リングバスは、他の信号やデータ体系により実現されても良い。
【００２０】
図３は、リングバスを使用する画像処理装置１０４の構成を示すブロック図である。画像処理装置１０４は、マスタデバイス３０１、スレーブデバイス３０２、スレーブデバイス３０３、クロック制御ユニット３０５を含んで構成されている。
【００２１】
マスタデバイス３０１、スレーブデバイス３０２とスレーブデバイス３０３は、リングバス３０４に接続されている。また、スレーブデバイス３０２、３０３の動作に必要なクロック信号３０７、３０８、３０９は、クロック制御ユニット３０５からスレーブデバイス３０２及び３０３に供給されている。クロック制御ユニット３０５は、クロック発生装置１０６から供給されるクロック信号３０６から、クロック信号３０７〜３０９を生成する。
【００２２】
クロック制御ユニット３０５は、リングバス３０４上のマスタデバイス３０１が発行したリクエストとスレーブデバイスが返したレスポンスとを監視し、スレーブデバイス３０２、３０３にクロック信号を供給すべきか否かを判定する。
【００２３】
図４は、マスタデバイス３０１の構成を示すブロック図である。マスタデバイス３０１は、制御部４０１、記憶部４０２、リングバス発信部４０３、リングバス受信部４０４を含んで構成されている。
【００２４】
制御部４０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）或いは専用回路装置を含み、マスタデバイス３０１の動作を制御する。記憶部４０２は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の大容量記憶装置を含む。また、記憶部４０２は、マスタデバイス３０１を動作させるプログラムや、スレーブデバイス３０２、３０３へのライトデータや、スレーブデバイス３０２、３０３からのリードデータ等を格納する。
【００２５】
リングバス発信部４０３は、制御部４０１により制御され、リングバス３０４のプロトコルに従い、スレーブデバイス３０２、３０３に対してリクエストを発行する回路装置である。リングバス受信部４０４は、リングバス３０４上のプロトコルに従い、スレーブデバイス３０２、３０３からのレスポンスを受信する回路装置である。
【００２６】
制御部４０１と記憶部４０２には、クロック信号４０５が供給され、リングバス発信部４０３とリングバス受信部４０４には、クロック信号４０６が供給される。クロック信号４０５は、クロック発生装置１０６から供給され、マスタデバイス３０１のコア部分を動作させるためのクロック信号である。また、クロック信号４０６は、クロック発生装置１０６から供給され、マスタデバイス３０１のバスインタフェース部分（Ｉ／Ｆ）を動作させるためのクロック信号である。また、クロック信号４０５とクロック信号４０６は、同一であっても良い。
【００２７】
図５は、スレーブデバイス３０２及び３０３の構成を示すブロック図である。スレーブデバイス３０２とスレーブデバイス３０３の構成は同じであるので、以下、スレーブデバイス３０２をスレーブデバイスの代表例として説明する。スレーブデバイス３０２は、リングバス受信部５０１、リングバス発信部５０２、デコーダ部５０３、リード／ライト部５０４、レスポンス生成部５０５、記憶部５０６を含む。
【００２８】
リングバス受信部５０１は、リングバス３０４のプロトコルに従い、マスタデバイス３０１或いはスレーブデバイスからのデータ（リクエストデータ２０４／レスポンスデータ２０６）を受信する。そして、受信したデータをリングバス発信部５０２とデコーダ部５０３に渡す。
【００２９】
リングバス発信部５０２は、リングバス３０４上のプロトコルに従い、マスタデバイス３０１或いはスレーブデバイスにデータ（リクエストデータ２０４／レスポンスデータ２０６）を送信する。ここで、送信されるデータは、リングバス受信部５０１から渡されるデータ（リクエストデータ２０４／レスポンスデータ２０６）か、或いは、リード／ライト部５０４、レスポンス生成部５０５から渡されるデータである。
【００３０】
デコーダ部５０３は、リングバス受信部５０１から渡されたデータをデコードし、リクエストであるか若しくはレスポンスであるかを判定し、リクエストであると判定された場合、更に、自スレーブデバイスに対するリクエストであるか否かを判定する。また、デコード部５０３は、自スレーブデバイスへのリードリクエストであるか若しくはライトリクエストであるかを判定する。ここで、リードリクエストであると判定された場合、リード／ライト部５０４にリード命令を出力し、ライトリクエストであると判定された場合、リード／ライト部５０４にライト命令とライトデータを出力する。
【００３１】
リード／ライト部５０４は、デコーダ部５０３からの命令に従い、記憶部５０６に対し、リード／ライト動作を行う。また、リード／ライト部５０４は、リード／ライト動作が完了した旨をレスポンス生成部５０５に通知する。レスポンス生成部５０５は、リード／ライト部５０４からの通知を受けると、リングバス３０４上のプロトコルに従い、レスポンス信号２０５を生成し、リングバス発信部５０２に出力する。
【００３２】
記憶部５０６は、ＲＡＭやレジスタ等の記憶装置を含み、リード／ライト部５０４からのリード命令に従い、記憶装置の所定のアドレスに格納されたデータを読み出す。また、記憶部５０６は、リード／ライト部５０４からのライト命令に従い、記憶装置の所定のアドレスにライトデータを格納する。
【００３３】
リングバス受信部５０１とリングバス発信部５０２には、クロック信号５０７が供給され、デコーダ部５０３、リード／ライト部５０４、レスポンス生成部５０５、記憶部５０６には、クロック信号５０８が供給される。クロック信号５０７は、スレーブデバイス３０２のバスＩ／Ｆ部分を動作させるためのクロック信号であり、図３のクロック信号３０７に相当する。また、クロック信号５０８は、スレーブデバイス３０２のコア部分を動作させるためのクロック信号であり、図３のクロック信号３０８、３０９に相当する。
【００３４】
本実施形態では、説明上、以下のように参照符号を区別する。つまり、スレーブデバイス３０２は、リングバス受信部５０１、リングバス発信部５０２、デコーダ部５０３、リード／ライト部５０４、レスポンス生成部５０５、記憶部５０６を含んで構成される。そして、バスＩ／Ｆ部分にはクロック信号５０７が供給され、コア部分にはクロック信号５０８が供給される。また、スレーブデバイス３０３は、不図示であるが、リングバス受信部５０９、リングバス発信部５１０、デコーダ部５１１、リード／ライト部５１２、レスポンス生成部５１３、記憶部５１４を含んで構成される。そして、バスＩ／Ｆ部分にはクロック信号５１５が供給され、コア部分にはクロック信号５１６が供給される。
【００３５】
図６は、クロック制御ユニット３０５の構成を示すブロック図である。クロック制御ユニット３０５は、リクエスト受信部６０１、デコーダ部６０２、レスポンス受信部６０３、カウンタ部６０４、比較部６０５、クロック信号制御部６０６を含んで構成される。
【００３６】
リクエスト受信部６０１は、マスタデバイス３０１が発行したリクエスト信号６０７を検出し、デコーダ部６０２に出力する。また、リクエスト受信部６０１は、リクエスト信号６０７をカウンタ部６０４にも出力し、リクエスト信号の数をカウントする。デコーダ部６０２は、リクエスト受信部６０１から受けたリクエストをデコードし、アクセス対象であるスレーブデバイスを特定し、クロック信号制御部６０６に命令を送信する。クロック信号制御部６０６は、適切なクロック信号を生成し、スレーブデバイス３０２、３０３に供給する。
【００３７】
レスポンス受信部６０３は、スレーブデバイス３０２、３０３が発行したレスポンス信号６０８を検出し、カウンタ部６０４に出力し、レスポンス信号の数をカウントする。カウンタ部６０４は、リクエスト受信部６０１とレスポンス受信部６０３からの命令を受けて、発行したリクエスト信号の数と、返信されたレスポンス信号の数とのそれぞれをカウントする。そして、カウント部６０４は、そのカウント結果を、比較部６０５に出力する。
【００３８】
比較部６０５は、カウンタ部６０４からのカウント結果を受け、リクエストの数とレスポンスの数とを比較し、一致するか否かを判定する。ここで、一致すると判定した場合、比較部６０５は、クロック信号制御部６０６に命令を出力する。クロック信号制御部６０６は、適切にクロック信号の供給を停止する。一方、一致しないと判定した場合、比較部６０５は、クロック信号制御部６０６に命令を出力しない。
【００３９】
クロック信号制御部６０６は、デコーダ部６０２、比較部６０５からの命令を受け、入力されているクロック信号６０９のうち、供給すべきクロック信号６１０を特定し、特定したクロック信号６１０をスレーブデバイス３０２、３０３に供給する。図６において、クロック信号６０９は、図３のクロック信号３０６に相当する。また、クロック信号６１０は、図３のクロック信号３０７、３０８、３０９に相当する。
【００４０】
図８は、本実施形態におけるクロック信号の供給を制御する処理を示すフローチャートである。本実施形態では、一例として、マスタデバイス３０１がスレーブデバイス３０３に対し、リクエスト信号を一回発行し、スレーブデバイス３０３が該当のリクエスト信号を受け、ライト動作終了後にレスポンス信号を返すという動作について説明する。また、図８は、クロック制御ユニット３０５がそのリクエスト信号とレスポンス信号を検出し、クロック信号の供給を制御する処理を示すフローチャートである。図８の各処理は、例えば、ＣＰＵ１０１がＲＯＭに記憶された画像処理装置１０４を制御するプログラムをＲＡＭに読み出して実行することにより実現する。
【００４１】
Ｓ７０１〜Ｓ７０４は、マスタデバイス３０１がスレーブデバイス３０３に対して、ライトコマンドを１回発行し、レスポンス信号を検出する動作を示す。マスタデバイス３０１の制御部４０１は、記憶部４０２に格納されているプログラムを実行し、リクエスト信号を発行するか否かを判定する（Ｓ７０１）。ここで、リクエスト信号を発行すると判定された場合、Ｓ７０２に進み、リクエスト信号を発行しないと判定された場合、Ｓ７０１の処理を繰り返す。
【００４２】
マスタデバイス３０１の制御部４０１は、リングバス発信部４０３を介して、アクセス対象のスレーブデバイスに対して、ライトリクエスト信号を発行する（Ｓ７０２）。マスタデバイス３０１の制御部４０１は、リングバス受信部４０４を介して、スレーブデバイス３０３からレスポンス信号が返信されたか否かを判定する（Ｓ７０３）。ここで、レスポンス信号が返信されたと判定された場合、Ｓ７０４に進み、レスポンス信号が返信されていないと判定された場合、Ｓ７０３の処理を繰り返す。マスタデバイス３０１の制御部４０１は、リングバス受信部４０４を介して、スレーブデバイス３０３からのレスポンス信号を受信する（Ｓ７０４）。
【００４３】
Ｓ７０５〜Ｓ７０９は、クロック制御ユニット３０５がマスタデバイス３０１の発行したリクエスト信号を検知し、スレーブデバイス３０２、３０３に供給すべきクロック信号を、スレーブデバイス３０２、３０３に供給する動作を示す。
【００４４】
クロック制御ユニット３０５のリクエスト受信部６０１は、マスタデバイス３０１からのリクエスト信号を検出したか否かを判定する（Ｓ７０５）。ここで、リクエスト信号を検出したと判定された場合、Ｓ７０６に進み、リクエスト信号を検出していないと判定された場合、Ｓ７０５の処理を繰り返す。
【００４５】
クロック制御ユニット３０５のデコーダ部６０２は、リクエスト信号をデコードし、マスタデバイス３０１のアクセス対象であるスレーブデバイス３０３のアドレスを特定し、クロック信号制御部６０６に制御信号を出力する（Ｓ７０６）。クロック制御ユニット３０５のクロック信号制御部６０６は、入力されたクロック信号６０９のうち、スレーブデバイス３０２、３０３（つまり、全てのスレーブデバイス）のバスＩ／Ｆ部分のクロック信号をイネーブルとする（有効とする）。そして、クロック信号制御部６０６は、イネーブルとしたクロック信号をスレーブデバイス３０２、３０３に供給する（Ｓ７０７）。
【００４６】
クロック制御ユニット３０５のクロック信号制御部６０６は、入力されたクロック信号６０９のうち、アクセス対象のスレーブデバイス３０３のコア部分のクロック信号をイネーブルとし、スレーブデバイス３０３に供給する（Ｓ７０８）。つまり、スレーブデバイス３０２のコア部分へはクロック信号は供給されない。クロック制御ユニット３０５のカウンタ部６０４は、ＲＡＭ等に変数領域として確保されたリクエスト数を＋１インクリメントする（Ｓ７０９）。Ｓ７０９の後、Ｓ７０５からの処理を繰り返す。
【００４７】
Ｓ７１０〜Ｓ７１３では、クロック制御ユニット３０５は、スレーブデバイスの発行したレスポンス信号を検出する。そして、クロック制御ユニット３０５は、検出したレスポンス信号の数をカウントし、全てのリクエスト信号によるアクセスが終了したと判定した場合、スレーブデバイスへのクロック信号の供給を停止する。
【００４８】
クロック制御ユニット３０５のレスポンス受信部６０３は、スレーブデバイス３０３からのレスポンス信号を検出したか否かを判定する（Ｓ７１０）。ここで、レスポンス信号を検出したと判定された場合、Ｓ７１１に進み、レスポンス信号を検出していないと判定された場合、Ｓ７１０の処理を繰り返す。クロック制御ユニット３０５のカウンタ部６０４は、ＲＡＭ等に変数領域として確保されたレスポンス数を＋１インクリメントする（Ｓ７１１）。
【００４９】
クロック制御ユニット３０５の比較部６０５は、その時点のリクエスト数とレスポンス数とを比較し、リクエスト数とレスポンス数とが等しいか否かを判定する（Ｓ７１２）。そして、比較部６０５は、その比較結果をクロック信号制御部６０６に出力する。
【００５０】
クロック制御ユニット３０５のクロック信号制御部６０６は、比較結果を受信し、リクエスト数とレスポンス数とが一致している場合、全てのリクエスト信号によるアクセスが終了したと判定する。そして、クロック信号制御部６０６は、スレーブデバイス３０２、３０３それぞれのバスＩ／Ｆ部とコア部の両方へのクロック信号の供給を停止する（Ｓ７１３）。一方、一致していない場合、Ｓ７１０に戻り、レスポンス信号の検出を判定する状態に遷移する。
【００５１】
以上のように、クロック制御ユニット３０５の制御により、マスタデバイス３０１からのリクエスト信号によるアクセスが発生した場合、全てのスレーブデバイスのバスＩ／Ｆ部分にクロック信号が供給され、バスの動作が保障される。また、アクセス対象であるスレーブデバイス（例えばスレーブデバイス３０３）については、そのコア部分にクロック信号が供給されるので、スレーブデバイスの正常動作も保障される。かつ、アクセス対象のスレーブデバイス以外のスレーブデバイスについて、そのコア部分にはクロック信号が供給されないので、消費電力の低減が実現される。クロック制御ユニット３０５は、アクセス対象であるスレーブデバイス（例えばスレーブデバイス３０３）からの全てのレスポンス信号を検出すると、全てのアクセスが正常に終了したと判定し、スレーブデバイスへの全てのクロック信号の供給を停止する。その結果、消費電力をさらに低減することができる。
【００５２】
また、本実施形態では、マスタデバイス３０１がリクエスト信号を１回発行した場合のシステムの動作を説明した。しかしながら、リクエスト信号を複数回発行する場合でも、クロック制御ユニット３０５のカウンタ部６０４のカウント動作を利用することにより同様の動作を実現することができる。
【００５３】
［第２の実施形態］
次に、第２の実施形態について、第１の実施形態と異なる点について説明する。
【００５４】
図７は、本実施形態におけるクロック制御ユニット３０５の構成を示すブロック図である。クロック制御ユニット３０５は、リクエスト受信部６０１、デコーダ部６０２、レスポンス受信部６０３、カウンタ部６０４、比較部６０５、クロック信号制御部６０６を含んで構成される。
【００５５】
リクエスト受信部６０１は、マスタデバイス３０１が発行したリクエスト信号６０７を検出し、デコーダ部６０２に出力する。レスポンス受信部６０３は、スレーブデバイス３０２、３０３が発行したレスポンス信号６０８を検出し、デコーダ部６０２に出力する。デコーダ部６０２は、リクエスト信号或いはレスポンス信号をデコードし、アクセス対象であるスレーブデバイスを特定し、クロック信号制御部６０６に命令を出力する。クロック信号制御部６０６は、デコーダ部６０２から命令を受けると、適切なクロック信号を生成し、生成したクロック信号をスレーブデバイス３０２、３０３に供給する。また、デコーダ部６０２は、特定したアクセス対象であるスレーブデバイス関連のリクエスト信号或いはレスポンス信号を検出したことをカウンタ部６０４に通知する。
【００５６】
カウンタ部６０４は、全てのスレーブデバイスに対する総リクエスト数と全てのスレーブデバイスからの総レスポンス数をカウントする。また、カウンタ部６０４は、スレーブデバイス毎のリクエスト数とレスポンス数をカウントする。カウンタ部６０４は、そのカウント結果を比較部６０５に出力する。比較部６０５は、カウンタ部６０４からカウント結果を受信し、総リクエスト数と総レスポンス数とを比較し、一致するか否かを判定する。ここで、一致すると判定された場合、比較部６０５は、クロック信号制御部６０６に命令を出力し、クロック信号制御部６０６は、スレーブデバイスに対する全てのクロック信号の供給を停止する。一方、一致しないと判定された場合、比較部６０５は、更にスレーブデバイス毎のリクエスト数とレスポンス数とが一致しているか否かを判定する。ここで、一致していると判定された場合、この判定に対応するスレーブデバイスのコア部分へのクロック信号を停止する命令をクロック信号制御部６０６に出力する。
【００５７】
クロック信号制御部６０６は、デコーダ部６０２、比較部６０５からの命令を受信し、入力されているクロック信号６０９のうち、供給すべきクロック信号６１０を特定し、その特定したクロック信号６１０をスレーブデバイス３０２、３０３に供給する。図７において、クロック信号６０９は、図３のクロック信号３０６に相当する。また、クロック信号６１０は、図３のクロック信号３０７、３０８、３０９に相当する。
【００５８】
図９は、本実施形態におけるクロック信号の供給を制御する処理を示すフローチャートである。本実施形態では、一例として、マスタデバイス３０１がスレーブデバイス３０３に対し、リクエスト信号を１回発行した後、スレーブデバイス３０２に対してリクエスト信号を４回発行した場合について説明する。以下、第１の実施形態と異なる点について説明する。
【００５９】
Ｓ８０１〜Ｓ８０８は、マスタデバイス３０１がスレーブデバイス３０２、スレーブデバイス３０３に対し、リクエスト信号を複数回発行し、スレーブデバイスから返信されたレスポンス信号を受信する動作を示す。リクエスト信号とレスポンス信号の数以外は第１の実施形態の動作と同じであるので、ここでは、その説明を省略する。
【００６０】
Ｓ８０９〜Ｓ８１４は、クロック制御ユニット３０５がマスタデバイス３０１からのリクエスト信号を検出し、スレーブデバイス３０２、３０３に供給すべきクロック信号を、スレーブデバイス３０２、３０３に供給する動作を示す。
【００６１】
クロック制御ユニット３０５のリクエスト受信部６０１は、マスタデバイス３０１からのリクエスト信号を検知したか否かを判定する（Ｓ８０９）。ここで、マスタデバイス３０１からのリクエスト信号を検知したと判定された場合、Ｓ８１０に進み、検知していないと判定された場合、Ｓ８０９の処理を繰り返す。
【００６２】
クロック制御ユニット３０５のデコーダ部６０２は、リクエスト信号をデコードし、マスタデバイス３０１のアクセス対象のスレーブデバイスのアドレスを特定し、クロック信号制御部６０６に制御信号を出力する（Ｓ８１０）。
【００６３】
クロック制御ユニット３０５のクロック信号制御部６０６は、入力されたクロック信号６０９のうち、スレーブデバイス３０２、３０３のバスＩ／Ｆ部分のクロック信号をイネーブルとしてスレーブデバイス３０２、３０３に供給する（Ｓ８１１）。また、クロック制御ユニット３０５のクロック信号制御部６０６は、入力されたクロック信号６０９のうち、Ｓ８１０で特定されたスレーブデバイスのコア部分のクロック信号をイネーブルとして、特定されたスレーブデバイスに供給する（Ｓ８１２）。
【００６４】
クロック制御ユニット３０５のカウンタ部６０４は、ＲＡＭ等に変数領域として確保された総リクエスト数を＋１インクリメントする（Ｓ８１３）。クロック制御ユニット３０５のカウンタ部６０４は、ＲＡＭ等に変数領域として確保されＳ８１０で特定されたスレーブデバイスのリクエスト数を＋１インクリメントする（Ｓ８１４）。
【００６５】
マスタデバイス３０１がスレーブデバイス３０３に対して、リクエスト信号を１回発行すると、クロック制御ユニット３０５は、上記手順で、スレーブデバイス３０２、３０３のバスＩ／Ｆ部分とスレーブデバイス３０３のコア部分とにクロック信号を供給する。そして、マスタデバイス３０１がスレーブデバイス３０２に対して、リクエスト信号を１回発行すると、クロック制御ユニット３０５は、スレーブデバイス３０２のコア部分にもクロック信号を供給し始める。つまり、マスタデバイス３０１がスレーブデバイス３０２に対して、残りの３回リクエストを発行する時には、スレーブデバイス３０２のコア部分には既にクロック信号が供給されている。
【００６６】
Ｓ８１５〜Ｓ８２２は、クロック制御ユニット３０５が、スレーブデバイスからのレスポンス信号を検出し、そのレスポンス数をカウントし、適切なタイミングでクロック信号の供給を停止する動作を示す。
【００６７】
クロック制御ユニット３０５のレスポンス受信部６０３は、スレーブデバイスからのレスポンス信号を検出したか否かを判定する（Ｓ８１５）。ここで、スレーブデバイスからのレスポンス信号を検出したと判定された場合、Ｓ８１６へ進み、検出していないと判定された場合、Ｓ８１５の処理を繰り返す。
【００６８】
クロック制御ユニット３０５のデコーダ部６０２は、受信したレスポンスデータをデコードし、そのレスポンス信号を発行したスレーブデバイスを特定する（Ｓ８１６）。クロック制御ユニット３０５のカウンタ部６０４は、ＲＡＭ等に変数領域として確保された総レスポンス数を＋１インクリメントする（Ｓ８１７）。また、クロック制御ユニット３０５のカウンタ部６０４は、ＲＡＭ等に変数領域として確保されＳ８１６で特定されたスレーブデバイスからのレスポンス数を＋１インクリメントする（Ｓ８１８）。
【００６９】
クロック制御ユニット３０５の比較部６０５は、その時点の総リクエスト数と総レスポンス数とを比較する（Ｓ８１９）。ここで、総リクエスト数と総レスポンス数とが一致している場合、比較部６０５は、スレーブデバイスに対する全てのクロック信号の供給を停止する命令をクロック信号制御部６０６に送信し、Ｓ８２０へ進む。一方、一致していない場合、Ｓ８２１へ進む。
【００７０】
Ｓ８２０において、クロック制御ユニット３０５のクロック信号制御部６０６は、比較部６０５からの停止命令を受けると、スレーブデバイスへの全てのクロック信号の供給を停止する。その後、図９の処理を終了する。
【００７１】
Ｓ８２１において、クロック制御ユニット３０５の比較部６０５は、この時点で、Ｓ８１６で特定されたスレーブデバイスについて発行されたリクエスト数とそのレスポンス数とを比較する。ここで、リクエスト数とレスポンス数とが一致している場合、比較部６０５は、対応するスレーブデバイスのコア部分のクロック信号の供給を停止する命令をクロック信号制御部６０６に送信し、Ｓ８２２へ進む。一方、一致していない場合、Ｓ８１５からの処理を繰り返す。
【００７２】
Ｓ８２２において、クロック制御ユニット３０５のクロック信号制御部６０６は、比較部６０５からの停止命令を受けると、Ｓ８１６で特定されたスレーブデバイスのコア部分へのクロック信号の供給を停止する。
【００７３】
以上のように、スレーブデバイス３０３は、マスタデバイス３０１からのリクエストを受信し、対応する処理の実行終了後、レスポンス信号を返信する。クロック制御ユニット３０５は、そのレスポンス信号を検出した時点で、例えば、総リクエスト数が５、総レスポンス数が１である場合、スレーブデバイス３０２、３０３のバスＩ／Ｆ部分へのクロック信号の供給を停止しない。また、上記時点で、スレーブデバイス３０３へのリクエスト数が１、スレーブデバイス３０３からのレスポンス数が１であれば、クロック制御ユニット３０５は、スレーブデバイス３０３へのアクセスが全て終了したと判定する。そして、クロック制御ユニット３０５は、クロックスレーブデバイス３０３のコア部分へのクロック信号（即ち、供給される全てのクロック信号のうちの一部）の供給を他のスレーブデバイスより優先的に停止する。
【００７４】
その後、スレーブデバイス３０２がレスポンス信号を４回返信すると、総リクエスト数と総レスポンス数は両方ともに５となる。クロック制御ユニット３０５は、その時点で、スレーブデバイスへの全てのアクセスが終了したと判定し、スレーブデバイスへの全てのクロック信号の供給を停止する。従って、特定のスレーブデバイスに対してアクセスが頻繁に発生する場合でも、不要なクロック動作を優先的に停止することができ、消費電力を削減することができる。
【００７５】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７６】
１００  印刷装置：  １０１  ＣＰＵ：  １０４  画像処理装置：  ３０５  クロック制御ユニット：  ３０１  マスタデバイス：  ３０２、３０３  スレーブデバイス
【図１】
0006546479.tif 000002
【図２】
0006546479.tif 000003
【図３】
0006546479.tif 000004
【図４】
0006546479.tif 000005
【図５】
0006546479.tif 000006
【図６】
0006546479.tif 000007
【図７】
0006546479.tif 000008
【図８】
0006546479.tif 000009
【図９】
0006546479.tif 000010