(57)【特許請求の範囲】
【請求項１】
１又は複数の処理手段と、
前記１又は複数の処理手段の電源ＯＮおよび電源ＯＦＦを制御する電源制御手段と、
前記１又は複数の処理手段へアクセスするコントローラ手段と、を有し、
前記電源制御手段は、使用されていない処理手段を電源ＯＦＦにし、また、前記コントローラ手段から電源ＯＦＦの処理手段にアクセスされる場合に前記処理手段を電源ＯＮにするとともに制御信号を前記コントローラ手段に対して出力するものであり、
前記コントローラ手段は、前記処理手段へのアクセス後に、タイムアウト時間を経過しても前記アクセスした処理手段からの応答がない場合にエラーと判断するものであって、前記制御信号が入力されている時には前記タイムアウト時間が経過しても前記アクセスした処理手段からの応答がなくてもエラーと判断しない、ことを特徴とする情報処理装置。
【請求項２】
前記コントローラ手段は、中央処理手段と、前記中央処理手段にクロックを供給するクロック供給手段とを有し、
前記中央処理手段は、前記タイムアウト時間に対応する数だけ前記クロック供給手段から供給されるクロックに基づいて前記タイムアウト時間の経過を判断するものであり、
前記クロック供給手段は、前記制御信号が入力されていない時には、第１の周波数のクロックを前記中央処理手段に供給し、一方、前記制御信号が入力されている時には、前記第１の周波数よりも周波数の小さい第２の周波数のクロックを前記中央処理手段に供給する、又は、前記中央処理手段へのクロックの供給を停止する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記コントローラ手段は、中央処理手段と、前記中央処理手段にクロックを供給するクロック供給手段とを有し、
前記中央処理手段は、前記制御信号が入力されていない時には、前記クロック供給手段から供給されるクロックに基づいて前記タイムアウト時間の経過を判断し、一方、前記制御信号が入力されている時には、前記クロック供給手段から供給されるクロックを分周したクロックに基づいて前記タイムアウト時間の経過を判断する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記電源制御手段は、前記処理手段を電源ＯＮにした時から所定時間、前記制御信号を出力する、ことを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記コントローラ手段は、前記制御信号をハードウェア割り込みとして認識するものであり、前記制御信号が入力された場合、割り込み処理を行う、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記割り込み処理は、実行に所定時間かかる処理であることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記割り込み処理は、前記所定時間を計時する処理である、ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記所定時間は、少なくとも、電源ＯＮされた処理手段が立ち上げ完了までに要する時間と、前記タイムアウト時間との差分時間とする、ことを特徴とする請求項４又は６に記載の情報処理装置。
【請求項９】
前記コントローラ手段及び前記電源制御手段は、ソフトウェアによる電力制御に従って電源ＯＮ，電源ＯＦＦされ、
前記１又は複数の処理手段は、前記ソフトウェアによる電力制御には従わず、前記電源制御手段によるハードウェア制御により電源ＯＮ，電源ＯＦＦされる、
ことを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記ソフトウェアによる電力制御は、ＡＣＰＩに基づく電力制御である、ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
１又は複数の処理手段と、前記１又は複数の処理手段の電源ＯＮおよび電源ＯＦＦを制御する電源制御手段と、前記１又は複数の処理手段へアクセスするコントローラ手段とを有する情報処理装置の制御方法であって、
前記電源制御手段が、使用されていない処理手段を電源ＯＦＦにするステップと、
前記電源制御手段が、前記コントローラ手段から電源ＯＦＦの処理手段にアクセスされる場合に前記処理手段を電源ＯＮにするとともに制御信号を前記コントローラ手段に対して出力するステップと、
前記コントローラ手段が、前記処理手段へのアクセス後に、タイムアウト時間を経過しても前記アクセスした処理手段からの応答がない場合にエラーと判断する判断ステップと、を有し、
前記判断ステップでは、前記制御信号が入力されている時には、前記コントローラ手段は、前記タイムアウト時間が経過しても前記アクセスした処理手段からの応答がなくてもエラーと判断しない、ことを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法に関するものである。
【背景技術】
【０００２】
現在、各種情報処理装置等に用いられるＡＳＩＣ（Application Specific Integrated Circuit）では消費電力を抑える為に、ＡＳＩＣ内の電源分離技術として、使用していないモジュールに対して、電源を落とすという制御が可能となってきている。
【０００３】
従来から、特許文献１にあるように、ＣＰＵによって、各モジュールのアクセス情報を基に、各モジュールの電源のＯＮ、ＯＦＦ状態を把握したうえでのアクセス制御が行われている。
【０００４】
しかし、ＣＰＵによるＡＳＩＣ内の複数モジュールの電源のＯＮ、ＯＦＦの管理や、各モジュールの電源状況を考慮したレジスタやＳＲＡＭ等のアクセスを行うには、複雑なソフトウェア制御が必要となり、実装は容易ではない。
【０００５】
なお、電力制御システムの実装、特にソフトウェア制御の容易化のために、ＡＣＰＩ(Advanced Configuration and Power Interface)のように、電源制御をＯＳレベルで行う仕組みがある。
【０００６】
ＡＣＰＩにおける電源制御は、簡単なコマンドで、面倒なステートの遷移手順を自動で実行出来る仕組となっている。但し、ステートの遷移手順を自動で実行させるために守るべき決まりことが諸々存在する。
【０００７】
また、構成するハードウェアに関しては、稼働状態（Ｓ０ステート）では、全てのハードウェアの電源をＯＮ状態にする必要があり、スタンバイ状態（Ｓ３ステート）では、全てのハードウェアの電源をＯＦＦ状態とする必要がある。
【０００８】
まず、稼働状態（Ｓ０ステート）からスタンバイ状態（Ｓ３ステート）に遷移する場合、図１３に示すシーケンス（Ｓ１０１〜Ｓ１０５）が必要となる。
図１３は、ＡＣＰＩ制御のＳ０ステートからＳ３ステートへの遷移を示した図である。
図１３に示すように、Ｓ０ステート（Ｓ１０１）でＳ３ステートへの移行指示があると（Ｓ１０２）、電源を切る直前のハードウェアの状態（レジスタ設定やＳＲＡＭ内のデータ等）を不揮発性のメモリやハードディスクドライブ等の記録デバイスに全て保存する（Ｓ１０３）。その後、全てのハードウェアの電源をＯＦＦにして（Ｓ１０４）、システムを省電力モードに移行する（Ｓ１０５）、というシーケンスが必要となる。
【０００９】
同様に、スタンバイ状態（Ｓ３ステート）から稼働状態（Ｓ０ステート）に遷移する場合、図１４に示すシーケンス（Ｓ２０１〜Ｓ２０５）が必要となる。
図１４は、ＡＣＰＩ制御のＳ３ステートからＳ０ステートへの遷移を示した図である。
図１４に示すように、Ｓ３ステート（Ｓ２０１）でＳ０ステートへの移行指示があると（Ｓ２０２）、電源制御を行う全てのデバイスの電源をＯＮする（Ｓ２０３）。その後、前記保存してある電源を切る直前の状態を、記録デバイスから読み出す（Ｓ２０４）ことによって、電源を切る直前の状態に戻す（Ｓ２０５）。
【００１０】
ＡＣＰＩに基づいた電源制御を行おうとすると、前記のようなハードウェア構成、図１３及び図１４に示したような、ステートの推移に関する手順等の遵守が必須となる。
【００１１】
次に、スキャン、プリント、コピー等を行うデジタル複合機システム（以下、ＭＦＰと称する）について、説明を行う。
図１５は、一般的なＭＦＰの全体構成の一例を示すブロック図である。
図１５に示すように、ＭＦＰ制御部３０１は、システム全体を制御するプロセッサであるＣＰＵ３０５及び、各種画像処理を行うデータ処理部３０９を有する。ＭＦＰ制御部３０１は、画像入力デバイスであるスキャナ部３０２や画像出力デバイスであるプリンタ部３０３と接続し、一方ではＬＡＮや公衆回線（ＷＡＮ）等外部ネットワークと接続されているネットワークインタフェース３０４と接続することで、画像情報やデバイス情報の入出力、ＰＤＬデータのイメージ展開を行うための制御を行う。
【００１２】
メモリ３０６は、ＣＰＵ３０５が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＨＤＤ記憶部３０７は、ハードディスクドライブで、システムソフトウェア、画像データを格納する。
【００１３】
ユーザインタフェース３０８は、ＭＦＰの状態や画像データの表示を行うディスプレイや、ユーザが本ＭＦＰを使用するにあたって各種設定を行うボタンやスイッチ、テンキー、また前記ディスプレイやボタン等を兼ねた、タッチパネルなどを含む。
【００１４】
図１６は、図１５に示したＭＦＰ制御部３０１の内部構成の一例を示した図である。
ＣＰＵ３０５は、本ＭＦＰのシステム全体の制御を行うとともに、データ処理部３０９に対するレジスタ設定や、ＳＲＡＭ等を使用したルックアップテーブル等の各種設定及び、画像データの入出力制御等を行う。
【００１５】
例えば、コピー動作を行う場合は、ユーザインタフェース３０８からの設定に基づき、ＣＰＵ３０５によって、各種画像処理の設定が、データ処理部３０９に行われる。この設定が完了した時点で、スキャナ部３０２が稼働し、原稿を読み取り、アナログ・デジタル変換等を行った後、スキャンデータとしてＭＦＰ制御部３０１に入力される。ＭＦＰ制御部３０１では、ＣＰＵ３０５を介して、データ処理部３０９に、上記スキャンデータが入力される。データ処理部３０９では、予めＣＰＵ３０５により設定された各種係数に従って、上記スキャンデータに対して画像処理を行い、プリント出力用の画像データを生成する。ＭＦＰ制御部３０１内のデータ処理部３０９から出力されたプリント出力用の画像データは、プリンタ部３０３に入力され、予め用意されている出力用紙へとプリントが行われる。
【００１６】
また、ネットワークインタフェース３０４からは、外部ネットワークに接続されたＰＣ等の外部装置から、プリント動作の要求や、現状のＭＦＰの動作状況の確認を行う信号等が入力される。プリント動作の要求の場合は、外部ネットワークから、ネットワークインタフェース３０４を介してＭＦＰ制御部３０１に対して、プリント時の各種設定及び、プリント用の画像データが入力される。ＭＦＰ制御部３０１内のＣＰＵ３０５は、入力された設定に応じて、データ処理部３０９の各種設定を行った後、入力されたプリント用の画像データをデータ処理部３０９に入力する。データ処理部３０９では、ＣＰＵ３０５により設定された各種係数に従って、画像処理を行い、プリント出力用の画像データを生成する。ＭＦＰ制御部３０１内のデータ処理部３０９から出力されたプリント出力用の画像データは、プリンタ部３０３に入力され、予め用意されている出力用紙へとプリントが行われる。
【００１７】
また、ネットワークインタフェース３０４からＭＦＰ制御部３０１に、現状のＭＦＰの動作状況の確認を行う信号が入力される場合もある。その場合には、ＭＦＰ制御部３０１内のＣＰＵ３０５は、ＭＦＰシステムの状態を外部ネットワークに出力する。その場合のＭＦＰシステムの状態とは、プリント動作中であったり、プリンタやスキャナの調整中、データ受け入れ待ち等の状態を含む。
【００１８】
以下、ＭＦＰ制御部３０１に対して、ソフトウェアでの電源制御の簡略化を実現するために、ＡＣＰＩに基づいた電源制御を行う場合の動作を説明する。
ＡＣＰＩによる電源制御において、ＭＦＰシステムとして使用するステートはＳ０ステートとＳ３ステートの２つとなる。
図１７〜図１９は、ＭＦＰ制御部３０１の状態を示した図である。
Ｓ０ステートは、フル稼働状態で、図１７のように、ＭＦＰ制御部３０１内の全てのハードウェアの電源がＯＮの状態である。つまり、Ｓ０ステートでは、ＣＰＵ３０５及びデータ処理部３０９の両方の電源がＯＮの状態となり、ネットワークとの通信や、ＣＰＵ３０５とデータ処理部３０９間での設定やデータの受け渡しも可能な状態である。
【００１９】
Ｓ３ステートは、スタンバイ状態で、図１８のように、全てのハードウェアの電源がＯＦＦの状態である。つまり、Ｓ３ステートでは、ＣＰＵ３０５及びデータ処理部３０９の両方の電源がＯＦＦの状態となり、ネットワークとの通信や、ＣＰＵ３０５とデータ処理部３０９間での設定やデータの受け渡しが出来ない状態である。
【００２０】
図２０は、ＡＣＰＩに基づいてＳ０ステートとＳ３ステートの２つのステートによってＭＦＰ制御部３０１の電源制御を行った場合の状態の変化を示した図である。
図２０において、一番上の状態は、データ処理時の状態で、スキャナ部３０２や外部インタフェースから、画像データの入力を行い、ＣＰＵ３０５を介してデータ処理部３０９によって処理を行った画像の出力を行っている状態である。この場合は、ＭＦＰ制御部３０１はＳ０ステートとなり、ＣＰＵ３０５及びデータ処理部３０９の電源はＯＮの状態で、所定の処理を行う。
【００２１】
図２０において、二番目の状態は、スタンバイ状態である。通常は、上記のデータ処理の完了後、一定時間何の処理も行わない状態が続くと、ＭＦＰ制御部３０１はスタンバイ状態へと入る。この場合は、ＭＦＰ制御部３０１は、Ｓ３ステートとなり、ＣＰＵ３０５及びデータ処理部３０９の電源はＯＦＦの状態となり、ＭＦＰシステムが稼働していない時の消費電力の削減を行う。
【００２２】
この時、ＡＣＰＩの規定により、Ｓ３ステートに入る場合には、Ｓ０ステートに復帰した場合に、電源をＯＦＦとする直前の状態に戻れるように、電源をＯＦＦとする前の状態をハードディスク等の記録媒体に格納する必要がある。そのため、ＣＰＵ３０５の状態や、データ処理部３０９の各種設定値を全て記録媒体に格納することとなる。
【００２３】
上記スタンバイ状態中に、ネットワークインタフェース３０４を介して、何らかの入力があった場合、それに対応するために、三番目のＳ０ステートの状態となる。
この時の外部ネットワークからの入力が、プリント動作の要求であった場合には、Ｓ０ステートのまま、一番下の状態となり、引き続き、ＣＰＵ３０５からデータ処理部３０９への各種設定を行うこととなる。そして、データ処理部３０９への各種設定完了後、処理すべき画像データの入力及び、データ処理を行うこととなる。
【００２４】
また、三番目のＳ０ステートの状態時の外部ネットワークからの入力が、ＭＦＰシステムの動作状況の確認を行う信号が入力された場合には、ＣＰＵ３０５はその時のＭＦＰシステムの状況の認識を行い、その結果を外部ネットワークへ出力を行う。前記外部ネットワークからの入力がＭＦＰシステムの動作状況の確認の場合には、ＣＰＵ３０５からのＭＦＰシステムの状態の出力が完了した時点で、再び、二番目のスタンバイ状態へと戻ることとなる。
【００２５】
このように、外部ネットワークからの入力がＭＦＰシステムの動作状況の確認の場合には、ＣＰＵ３０５による処理のみで、応答が完結し、画像データの処理は行われないため、データ処理部３０９の電源はＯＦＦの状態でもよい。しかし、ＡＣＰＩの規定により、Ｓ０ステートでは全てのハードウェアの電源をＯＮにする必要があるため、本来は必要としていないデータ処理部３０９まで電源をＯＮとする必要がある。よって、ネットワーク応答のみの対応時にも、全てのハードウェアの電源がＯＮとなることにより、省電力の効果が著しく低下することとなる。
【００２６】
また、Ｓ３ステートから復帰する際には、先に説明を行ったように、電源がＯＮとなった後に、ハードディスク等の記録媒体に格納されたＣＰＵ３０５の状態や、データ処理部３０９の各種設定値を全て読み込む必要がある。その為、電源復帰後にネットワークに対して応答するまでに時間がかかってしまう。データ処理部３０９の設定や変換テーブル等、データ処理部の処理が複雑化している場合には、応答までに掛る時間は、膨大なものとなる。
【００２７】
次に、省電力のために、ＭＦＰ制御部３０１で、本来実施したい電源制御を行う場合の動作を説明する。
ここで、使用すべきステートは、Ｓ−Ｆｕｌｌステート、Ｓ−ＳｔｂステートとＳ−Ｎｅｔステート３つとなる。
Ｓ−Ｆｕｌｌステートは、フル稼働状態で、図１７のように、全てのハードウェアの電源がＯＮの状態である。つまり、ＣＰＵ３０５及びデータ処理部３０９の両方の電源がＯＮの状態となり、ネットワークとの通信や、ＣＰＵ３０５とデータ処理部３０９間での設定やデータの受け渡しも可能な状態となる。
【００２８】
Ｓ−Ｓｔｂステートは、スタンバイ状態で、図１８のように、全てのハードウェアの電源がＯＦＦの状態である。つまり、ＣＰＵ３０５及びデータ処理部３０９の両方の電源がＯＦＦの状態となり、ネットワークとの通信や、ＣＰＵ３０５とデータ処理部３０９間での設定やデータの受け渡しが出来ない状態となる。
【００２９】
Ｓ−Ｎｅｔステートは、ネットワーク応答の状態で、図１９のように、ＣＰＵ３０５の電源はＯＮ、データ処理部３０９の電源がＯＦＦの状態である。つまり、ＣＰＵ３０５によって、外部ネットワークとの通信は行えるが、画像データの処理等は行わない状態となる。
【００３０】
図２１は、図１７〜図１９に示した３つのステート（Ｓ−Ｆｕｌｌステート、Ｓ−Ｓｔｂステート、Ｓ−Ｎｅｔステート）によってＭＦＰ制御部３０１の電源制御を行った場合の状態の変化を示した図である。
【００３１】
図２１において、一番上の状態はデータ処理時の状態であり、スキャナ部３０２や外部インタフェースから画像データの入力を行い、ＣＰＵ３０５を介してデータ処理部３０９によって処理を行った画像の出力を行っている状態である。この場合は、ＭＦＰ制御部３０１は、Ｓ−Ｆｕｌｌステートとなり、ＣＰＵ３０５及びデータ処理部３０９の電源はＯＮの状態で、所定の処理を行うこととなる。
【００３２】
図２１において、二番目の状態は、スタンバイ状態である。通常は、前記データ処理の完了後、一定時間何の処理も行わない状態が続くと、ＭＦＰシステムはスタンバイ状態へと移行することとなる。この場合は、ＭＦＰ制御部３０１は、Ｓ−Ｓｔｂステートとなり、ＣＰＵ３０５及びデータ処理部３０９の電源はＯＦＦの状態となり、ＭＦＰシステムが稼働していない時の消費電力の削減を行うこととなる。
【００３３】
上記スタンバイ状態中に、ネットワークを介して、何らかの入力があった場合、三番目のＳ−Ｎｅｔステートの状態となる。
このＳ−Ｎｅｔステートの状態での外部ネットワークからの入力が、プリント動作の要求であった場合には、Ｓ−Ｆｕｌｌステートとなり、一番下の状態となり、引き続き、外部インタフェースからの入力データの処理を行うため、ＣＰＵ３０５からデータ処理部３０９への各種設定を行うこととなる。そして、データ処理部３０９への各種設定完了後、処理すべき画像データの入力及び、データ処理を行うこととなる。
【００３４】
また、三番目のＳ−Ｎｅｔステートの状態時の外部ネットワークからの入力が、ＭＦＰシステムの動作状況の確認を行う信号が入力された場合には、Ｓ−Ｎｅｔステートの状態のまま、ＣＰＵ３０５はその時のＭＦＰシステムの状況の認識を行い、その結果を外部ネットワークへ出力を行う。そして、ＣＰＵ３０５からのＭＦＰシステムの状態の出力が完了した時点で、再び、二番目のスタンバイ状態へと戻ることとなる。
【００３５】
ここでは、ＡＣＰＩによる制御とは異なり、Ｓ−Ｎｅｔステートでは、本来は必要としていないデータ処理部３０９に関しては、電源をＯＮにすることなく対応が可能となる。よって、ネットワーク応答のみの対応時にも全てのハードウェアの電源を入れることなく、省電力の効果を得ることが可能となる。
【００３６】
またこの場合、ＡＣＰＩによる制御とは異なり、Ｓ−Ｓｔｂステートから復帰する際には、先に説明を行ったように、電源がＯＮとなった後に、ハードディスク等の記録媒体に格納された、データ処理部３０９の各種設定値を読み込む必要がない。その為、電源復帰後に外部ネットワークに対して応答するまでの時間も短くて済むこととなり、より電力の消費を抑えることが可能となる。
【００３７】
以上のような電源制御を行うことにより、ネットワーク応答のみの対応時には、ＣＰＵ３０５のみ電源をＯＮにすることにより、省電力の効果が得られる。また、スリープ状態に移行する場合や、復帰する場合に、データ処理部３０９の状態を記録デバイスへ受け渡す必要が無いため、スリープ状態からの復帰も短時間で可能となる。
【００３８】
現在、ＭＦＰシステムの開発を行うに当たり、ソフトウェアとしては、制御の容易化の為、ＡＣＰＩの規格に基づいた制御を行いたい、つまりＳ０ステート、Ｓ３ステートの２つのステートに基づいた処理を行いたいという要望がある。
【００３９】
しかし、消費電力を抑える為には、ネットワーク応答のみの時のように、必要のない時には、データ処理部の電源をＯＮしない制御、つまりＳ−Ｆｕｌｌステート、Ｓ−Ｓｔｂステート、Ｓ−Ｎｅｔステートの３つのステートに基づいた処理を行いたいという要望がある。
【００４０】
そこで、前記２つの要望を両立するような電源制御方法が必要となる。
上記の２つの要望を両立する制御方法を実現するための対応策として、以下に示すような、ステート数の違いをハードの処理でまかなうということが考えられる。
即ち、ソフトウェアとしては、ＭＦＰ制御部３０１内のＣＰＵ３０５をＡＣＰＩでの電源制御の対象とし、データ処理部３０９の電源を意識しない処理を実施する。そして、データ処理部３０９の電源制御に関しては、ハードウェアでの制御を実施するという電源制御方法である。
【００４１】
以下、図２２を参照して、上述のソフトウェアとしてはＡＣＰＩに基づいた２つのステートでの制御、ハード構成としては省電力の為の３つのステートの制御を両立する場合のシステム動作について説明する。
【００４２】
図２２は、ＡＣＰＩに基づいた２つのステートでの制御とハード構成として省電力の為の３つのステートの制御を両立する場合のシステム動作を行った場合のＭＦＰ制御部３０１の状態変化を示した図である。
【００４３】
この構成では、ＭＦＰ制御部３０１内のＣＰＵ３０５をＡＣＰＩでの電源制御の対象とし、データ処理部３０９の電源制御に関してはハードウェアでの制御を実施する。
図２２において、一番上の状態は、データ処理時の状態で、スキャナ部３０２や外部インタフェースから、画像データの入力を行い、ＣＰＵ３０５を介してデータ処理部３０９によって処理を行った画像の出力を行っている状態である。この場合は、ＭＦＰ制御部３０１内のＣＰＵ３０５は、Ｓ０ステートとなり、ＣＰＵ３０５の電源は、ＯＮの状態となっている。
【００４４】
また、この場合、データ処理部３０９の電源もＯＮの状態で、所定の処理を行うこととなり、ＭＦＰ制御部３０１としてはＳ−Ｆｕｌｌステートの状態となる。この場合のデータ処理部３０９の電源は、ＣＰＵ３０５からのアクセスをハードウェアで検知し、電源をＯＮとすることとする。
【００４５】
図２２において、二番目の状態は、スタンバイ状態である。通常は、前記データ処理の完了後、一定時間何の処理も行わない状態が続くと、ＭＦＰ制御部３０１はスタンバイ状態へと入ることとなる。この場合は、ＣＰＵ３０５の電源はＯＦＦ、及び、データ処理部３０９の電源もＯＦＦの状態となり、ＭＦＰ制御部３０１としては、Ｓ−Ｓｔｂステートとなり、ＭＦＰシステムが稼働していない時の消費電力の削減を行うこととなる。
【００４６】
上記スタンバイ状態中に、ネットワークインタフェース３０４を介して、何らかの入力があった場合、三番目の状態、つまりネットワーク応答時の状態となる。
この時、ＣＰＵ３０５はＳ０ステートとなり、電源がＯＮの状態、データ処理部３０９に関しては電源ＯＦＦのままの状態となり、ＭＦＰ制御部３０１としては、Ｓ−Ｎｅｔステートの状態となる。
【００４７】
この時の外部ネットワークからの入力が、プリント動作の要求であった場合には、ＣＰＵ３０５からデータ処理部３０９へ、レジスタ設定等のアクセスが行われる。そのアクセスをデータ処理部３０９では、ハードウェアで検知し、電源をＯＮすることとなり、一番下のデータ処理時の状態となる。
【００４８】
この場合は、ＭＦＰ制御部３０１内のＣＰＵ３０５は、Ｓ０ステートとなり、ＣＰＵ３０５の電源は、ＯＮの状態となっている。また、データ処理部３０９の電源もＯＮの状態で、所定の処理を行うこととなり、ＭＦＰ制御部３０１としてはＳ−Ｆｕｌｌステートの状態となる。その後、ＣＰＵ３０５からデータ処理部３０９への各種設定を行い、引き続き、処理すべき画像データの入力及び、データ処理を行うこととなる。
【００４９】
また、三番目のＳ−Ｎｅｔステートの状態時の外部ネットワークからの入力が、ＭＦＰシステムの動作状況の確認を行う信号が入力された場合には、Ｓ−Ｎｅｔステートの状態のまま、ＣＰＵ３０５はその時のＭＦＰシステムの状況の認識を行い、その結果を外部ネットワークへ出力を行う。このように、外部ネットワークからの入力がＭＦＰシステムの動作状況の確認の場合には、ＣＰＵ３０５からのＭＦＰシステムの状態の出力が完了した時点で、再び、二番目のスタンバイ状態へと戻ることとなる。
【００５０】
以上のように、ＭＦＰ制御部３０１内のＣＰＵ３０５をＡＣＰＩでの電源制御の対象とし、データ処理部３０９の電源制御に関しては、ハードウェアでの制御を実施することにより、ソフトウェアとしては、ＡＣＰＩに基づいた制御を行いつつ、省電力の効果を得ることのできる３つのステートのシステム制御が可能となる。
【先行技術文献】
【特許文献】
【００５１】
【特許文献１】特開２０００−２２７８９３号公報
【発明の概要】
【発明が解決しようとする課題】
【００５２】
しかし、上述のように、ソフトウェアとしてはＡＣＰＩに基づいた２つのステートでの制御、ＭＦＰ制御部３０１としては省電力の為の３つのステートの制御を両立する場合のシステム動作を行わせる場合に、以下のような問題が起こる。
【００５３】
ネットワーク応答時から、データ処理実行時に移行する時、データ処理部３０９内のデータ処理モジュールの電源が落ちた状態である。ＣＰＵ３０５からデータ処理部３０９内のデータ処理モジュールにアクセスがあると、データ処理部３０９内で、ＣＰＵ３０５からのアクセスの検知を行い、アクセスに対応するデータ処理モジュールの電源のスイッチをＯＮにする。なお、データ処理モジュールの電源立ち上げ途中の状態で、ＣＰＵ３０５からのレジスタアクセスを行っても、該データ処理モジュールの電源が完全に立ち上がるまでの間、データ処理部３０９からＣＰＵ３０５へは何の応答もなされない。
【００５４】
例えば、９０ｎｍプロセスの１００万ゲートの回路規模のＡＳＩＣに関して、電源が立ち上がるまでの時間は、約「２８μｓｅｃ」掛ってしまう。このため、ＣＰＵ３０５はタイムアウトエラーとの認識してしまう。以下、このタイムアウトエラーに関して図２３を用いて説明する。
【００５５】
図２３は、ＣＰＵ３０５のタイムアウトエラーを説明するための図である。
ネットワーク応答時の状態は、図２２の三段目のような状態で、ＣＰＵ３０５の電源はＯＮ、データ処理部３０９の電源はＯＦＦとなっている。
そして、ネットワーク応答時から、データ処理実行時に移行を開始した直後の状態は、図２３のようになる。つまり、ＣＰＵ３０５の電源はＯＮ、データ処理部３０９の電源はＯＦＦもしくはＯＮの指示は出ているが、電源が立ち上がっている途中の状態となっている。
【００５６】
この時、上述したように、ソフトウェアに関してはＡＣＰＩに基づいた制御を行っているため、この状態がＳ０ステートつまり、全てのハードウェアの電源がＯＮとなっているという認識で処理を行っていることとなる。よって、ネットワーク応答時からデータ処理実行時に移行する際、ＣＰＵ３０５は、実際のデータ処理部３０９の電源状態（電源ＯＮ、電源ＯＦＦ）に関わらず、電源ＯＮと認識して、データ処理部３０９内の設定用のレジスタやＳＲＡＭのアクセスを実行することとなる。
【００５７】
しかし、実際には、データ処理部３０９側は電源が完全に立ち上がっていないため、ＣＰＵ３０５は、予め設定されるタイムアウトエラーの時間内に、データ処理部３０９へのアクセスに対する応答を受けることができず、タイムアウトエラーと認識してしまうといった問題点があった。
【００５８】
よって、このタイムアウトエラーを防止するため、データ処理部３０９では、レジスタ・ＳＲＡＭアクセスがあったデータ処理モジュールの電源制御及び電源立ち上げ時のタイムアウトエラー抑止が必要となる。
【００５９】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、ソフトウェアによる制御としてＡＣＰＩに基づいた簡単な電源制御を行いつつ、ハードウェアによる制御により必要なモジュールのみ電源ＯＮにしつつ各モジュールの電源ＯＦＦ時及び電源立ち上げ時のアクセスエラーを防ぐことを可能とする仕組みを提供することである。
【課題を解決するための手段】
【００６０】
本発明は、１又は複数の処理手段と、前記１又は複数の処理手段の電源ＯＮおよび電源ＯＦＦを制御する電源制御手段と、前記１又は複数の処理手段へアクセスするコントローラ手段と、を有し、前記電源制御手段は、使用されていない処理手段を電源ＯＦＦにし、また、前記コントローラ手段から電源ＯＦＦの処理手段にアクセスされる場合に前記処理手段を電源ＯＮにするとともに所定の制御信号を前記コントローラ手段に対して出力するものであり、前記コントローラ手段は、前記処理手段へのアクセス後に、タイムアウト時間を経過しても前記アクセスした処理手段からの応答がない場合にエラーと判断するものであって、前記制御信号が入力されている時には前記タイムアウト時間が経過しても前記アクセスした処理手段からの応答がない場合にエラーと判定せずに、前記タイムアウト時間より長い時間が経過しても前記アクセスした処理手段からの応答がない場合にエラーと判定する、ことを特徴とする。
【発明の効果】
【００６１】
本発明によれば、各処理手段の電源ＯＮ，電源ＯＦＦ状態や電源ＯＮ時の立ち上げ状況などを意識しないソフトウェアによる簡単な電源制御を行いつつ、ハードウェアによる制御により必要な処理手段のみ電源ＯＮにしつつ各処理手段の電源ＯＦＦ時及び電源立ち上げ時のアクセスエラーを防ぐことを可能とする。
【図面の簡単な説明】
【００６２】
【図１】本発明の情報処理装置の実施例１を示す複合機（ＭＦＰ）の制御部（ＭＦＰ制御部）の構成の一例を示す図である。
【図２】電源制御部１２０６の構成の一例を示すブロック図である。
【図３】電源制御部１２０６における電源のＯＦＦ制御の一例を示すフローチャートである。
【図４】データ処理部１２０２内の各モジュールのアドレスマップを示す図である。
【図５】電源制御部１２０６における電源のＯＮ制御の一例を示すフローチャートである。
【図６】コントローラ部制御信号１２０９の切り替えによる、コントローラ部１２０１の動作の一例を示すフローチャートである。
【図７】本発明の情報処理装置の実施例２を示す複合機（ＭＦＰ）の制御部（ＭＦＰ制御部）の構成の一例を示す図である。
【図８】実施例２におけるＣＰＵ・２（１８０１）の構成の一例を示すブロック図である。
【図９】実施例２におけるコントローラ部１２０１の動作の一例を示すフローチャートである。
【図１０】本発明の情報処理装置の実施例３を示す複合機（ＭＦＰ）の制御部（ＭＦＰ制御部）の構成の一例を示す図である。
【図１１】実施例３におけるＣＰＵ・３（２１０１）の構成の一例を示すブロック図である。
【図１２】実施例３におけるコントローラ部１２０１の動作の一例を示すフローチャートである。
【図１３】ＡＣＰＩ制御のＳ０ステートからＳ３ステートへの遷移を示した図である。
【図１４】ＡＣＰＩ制御のＳ３ステートからＳ０ステートへの遷移を示した図である。
【図１５】一般的なＭＦＰの全体構成の一例を示すブロック図である。
【図１６】図１５に示したＭＦＰ制御部３０１の内部構成の一例を示した図である。
【図１７】ＭＦＰ制御部３０１の状態を示した図である。
【図１８】ＭＦＰ制御部３０１の状態を示した図である。
【図１９】ＭＦＰ制御部３０１の状態を示した図である。
【図２０】ＡＣＰＩに基づいてＳ０ステートとＳ３ステートの２つのステートによってＭＦＰ制御部３０１の電源制御を行った場合の状態の変化を示した図である。
【図２１】図１７〜図１９に示した３つのステート（Ｓ−Ｆｕｌｌステート、Ｓ−Ｓｔｂステート、Ｓ−Ｎｅｔステート）によってＭＦＰ制御部３０１の電源制御を行った場合の状態の変化を示した図である。
【図２２】ＡＣＰＩに基づいた２つのステートでの制御とハード構成として省電力の為の３つのステートの制御を両立する場合のシステム動作を行った場合のＭＦＰ制御部３０１の状態変化を示した図である。
【図２３】ＣＰＵ３０５のタイムアウトエラーを説明するための図である。
【発明を実施するための形態】
【００６３】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００６４】
図１は、本発明の情報処理装置の実施例１を示す複合機（ＭＦＰ）の制御部（ＭＦＰ制御部）の構成の一例を示す図である。なお、ここでは、本発明に関連のある部分のみを図示している。また、ＭＦＰ制御部以外のＭＦＰの構成は、図１５に示したものと同様とする。
【００６５】
図１において、１２００は、本発明の情報処理装置としてのＭＦＰ制御部であり、図１５に示したような複合機（ＭＦＰ）を制御する。
１２０１はコントローラ部であり、ＣＰＵ（中央処理装置）１２０７を有し、図示は行わないが、外部インタフェースとのデータの受け渡しや、データ処理部１２０２の処理内容の設定や、処理を行うデータの入力等の制御を行う。
【００６６】
また、コントローラ部１２０１内には、ＣＰＵ１２０７を駆動するクロックの供給を行うクロック供給部１２０８が備えられている。
クロック供給部１２０８は、後述するコントローラ部制御信号１２０９の入力によって、ＣＰＵ１２０７に供給するクロックの周波数を切り替える機能を有する。
データ処理部１２０２は、内部に複数のデータ処理モジュール（Ｍｏｄｕｌｅ-Ａ（１２０３）、Ｍｏｄｕｌｅ-Ｂ（１２０４）、Ｍｏｄｕｌｅ-Ｃ（１２０５））及び、電源制御部１２０６を備えるものとする。なお、データ処理部１２０２のデータ処理モジュールは、Ｍｏｄｕｌｅ-Ａ（１２０３）、Ｍｏｄｕｌｅ-Ｂ（１２０４）、Ｍｏｄｕｌｅ-Ｃ（１２０５）の３つに限定されるものではなく、３つ未満でも４つ以上でもよい。
【００６７】
これら各データ処理モジュールは、組み合わせ回路やテーブル変換を行う為のＳＲＡＭなどから構成されている。また、各データ処理モジュール内には、電源のＯＮ／ＯＦＦを切り替える電源スイッチが設けられており、後述する電源制御部１２０６の制御により、各データ処理モジュールの電源のＯＮ／ＯＦＦが制御される。
【００６８】
さらに、各データ処理モジュールは、レジスタバスによりコントローラ部１２０１と接続されており、コントローラ部１２０１からのレジスタアクセスや、ＳＲＡＭへのデータの設定等により、所定のデータ処理を行う。
【００６９】
また、各データ処理モジュールは、詳細な図示は行わないが、データ入出力端子を持っており、それぞれの入出力端子を接続することにより、システムとして所定の処理を行う。
【００７０】
本実施例では、各データ処理モジュールが直列に接続され、Ｍｏｄｕｌｅ−Ａ（１２０３）がコントローラ部１２０１からのデータ入力、Ｍｏｄｕｌｅ−Ｃ（１２０５）が処理データ出力となっている例をあげている。しかし、各データ処理モジュールの出力が分岐して複数のデータ処理モジュールの入力端子に接続されていて、選択的に処理を行わせたり、並列で処理を行わせるような構成を取っていてもよい。
【００７１】
各データ処理モジュールは、コントローラ部１２０１からのレジスタバスを介したレジスタやＳＲＡＭ設定を完了した後に、入力データバスから、処理を行うべき入力データの入力が行われると、所定の処理を実行し、出力データバスから処理データ出力を行う。
【００７２】
電源制御部１２０６は、データ処理部１２０２内の各データ処理モジュールの電源制御（電源ＯＮ，電源ＯＦＦ）を行う。
なお、コントローラ部１２０１、及び、データ処理部１２０２内の電源制御部１２０６は、ＡＣＰＩに基づくソフトウェアによる電力制御に従って電源ＯＮ，電源ＯＦＦされる。なお、データ処理部１２０２内の各データ処理モジュールは、ＡＣＰＩに基づくソフトウェアによる電力制御には従わず、電源制御部１２０６によるハードウェア制御により電源ＯＮ，電源ＯＦＦされる。
【００７３】
また、コントローラ部１２０１のＣＰＵ１２０７は、ＡＣＰＩによる電力制御に従って動作するため、各データ処理モジュールの電源状態（電源ＯＮ、電源ＯＦＦ）に関わらず各データ処理モジュールへアクセスを行う。そして、ＣＰＵ１２０７は、データ処理モジュールへのアクセス後に、タイムアウト時間を経過してもアクセスしたデータ処理モジュールからの応答がない場合にエラーと認識する。
【００７４】
図２は、電源制御部１２０６の構成の一例を示すブロック図である。
電源制御部１２０６には、制御信号生成部１３０１、タイマ・１（１３０２）、アドレスデコーダ１３０３、タイマ・２（１３０４）が含まれている。
制御信号生成部１３０１からは、電源制御信号が出力されており、電源制御部１２０６から各データ処理モジュール（１２０３、１２０４、１２０５）内の電源スイッチのＯＮ／ＯＦＦ制御を行う。
【００７５】
また、電源制御部１２０６にはレジスタバスも接続されており、電源制御部１２０６自体の設定が可能となっているとともに、内部のアドレスデコーダ１３０３によって、どのデータ処理モジュールに対するアクセスが発生しているか、認識できる。
【００７６】
タイマ・１（１３０２）には、不図示のクロック（一定の周波数のクロック）が供給されており、クロックのカウントにより、時間の測定（計時）が可能となっている。
データ処理部１２０２の処理が完了し、タイマ・１（１３０２）に予め設定してある時間を経過しても、その後のレジスタアクセスや、データ入力が起こらない時、制御信号生成部１３０１は、電源制御信号の切り替えにより、データ処理部１２０２内の全ての処理モジュールの電源をＯＦＦとする。
【００７７】
タイマ・２（１３０４）にも、不図示のクロック（一定の周波数のクロック）が供給されており、クロックのカウントにより、時間の測定（計時）が可能となっている。なお、タイマ・２（１３０４）の使用については後述する。
【００７８】
以下、図３を参照して、電源制御部１２０６における電源のＯＦＦの制御について説明する。
図３は、電源制御部１２０６における電源のＯＦＦ制御の一例を示すフローチャートである。
電源制御部１２０６の制御信号生成部１３０１は、データ処理部１２０２で処理を行っている状態（Ｓ１５０１）から、データ処理が完了したかどうかの判定を行う（Ｓ１５０２）。ここで、制御信号生成部１３０１は、以下のような方法によりデータ処理の完了を判定する。
【００７９】
例えば、各データ処理モジュールが、データ処理の終了時に自身のレジスタ領域に所定の値をセットする構成の場合、制御信号生成部１３０１は、各データ処理モジュールのレジスタ領域の値をチェックすることにより、データ処理部１２０２で処理が完了したかどうかを判定する。また、各データ処理モジュールが、データ処理の実行中に所定の信号を制御信号生成部１３０１に対して出力する構成の場合、制御信号生成部１３０１は、その信号をチェックすることにより、データ処理部１２０２で処理が完了したかどうかを判定する等の構成でもよい。
【００８０】
そして、未だデータ処理が完了していないと判定した場合（Ｓ１５０２でＮｏの場合）、制御信号生成部１３０１は、Ｓ１５０２において、再度、データ処理完了の判定を行う。
【００８１】
一方、データ処理が完了していると判定した場合（Ｓ１５０２でＹｅｓの場合）、制御信号生成部１３０１は、タイマ・１（１３０２）のカウントアップを開始させる（Ｓ１５０３）。
【００８２】
そして、予めタイマ・１（１３０２）に設定されている時間（設定時間）が経過したか否かを判定し（Ｓ１５０４）、未だ経過していないと判定した場合（Ｓ１５０４でＮｏの場合）、制御信号生成部１３０１は、再度、設定時間経過の判定を行う。
【００８３】
一方、設定時間が経過したと判定した場合（Ｓ１５０４でＹｅｓの場合）、制御信号生成部１３０１は、Ｓ１５０５に処理を進める。
Ｓ１５０５では、制御信号生成部１３０１は、タイマ・１（１３０２）のカウント値をリセットした後、Ｓ１５０６において、データ処理部１２０２内の全てのデータ処理モジュールの電源をＯＦＦにするように電源御信号の出力を行う。
【００８４】
以上のように、電源制御部１２０６は、使用されていないデータ処理モジュールを電源ＯＦＦにするように制御する。
次に、電源制御部１２０６における電源のＯＮの制御について説明する。
上述したように、全てのデータ処理モジュールの電源がＯＦＦの状態の時に、次のデータ処理を行う為に、コントローラ部１２０１からのレジスタ設定があった場合、電源制御部１２０６はそれを認識して、処理に必要な処理モジュールの電源をＯＮにする。その制御は、以下のように行われる。
【００８５】
まず、コントローラ部１２０１からのレジスタバスを介したアクセスが電源制御部１２０６内のアドレスデコーダ１３０３に入力されると、アドレスデコーダ１３０３は、アクセスされたアドレスを認識して制御信号生成部１３０１に出力する。
【００８６】
制御信号生成部１３０１は、アドレスデコーダ１３０３から入力されるアドレス情報により、どのデータ処理モジュールへのアクセスなのか認識し、アクセス対象となっている処理モジュールの電源をＯＮにする電源制御信号を出力する。
【００８７】
図４は、データ処理部１２０２内の各モジュールのアドレスマップを示す図である。なお、本実施例では、アドレスバスのビット幅は、０〜１３の１４ビットとする。
Ｍｏｄｕｌｅ−Ａ（１２０３）のレジスタに使用しているアドレスの領域は、アドレス「０ｘ００００」〜「０ｘ０ＦＦＦ」とする。
Ｍｏｄｕｌｅ−Ｂ（１２０４）のレジスタに使用しているアドレスの領域は、アドレス「０ｘ１０００」〜「０ｘ１ＦＦＦ」とする。
Ｍｏｄｕｌｅ−Ｃ（１２０５）のレジスタに使用しているアドレスの領域は、アドレス「０ｘ２０００」〜「０ｘ２ＦＦＦ」とする。
また、電源制御部１２０６自身のレジスタに使用しているアドレスの領域は、アドレス「０ｘ３０００」〜「０ｘ３ＦＦＦ」とする。
【００８８】
図４に示すようなアドレスマップの場合、電源制御部１２０６内のアドレスデコーダ１３０３は、入力されたアドレスのデコードを行い、デコードされたアドレス情報を制御信号生成部１３０１に渡す。制御信号生成部１３０１は、アドレスデコーダ１３０３から受け取ったアドレス情報の１２ビット及び１３ビットの情報から、どのデータ処理モジュールに対するアクセスであるかを認識する。例えば、１２ビットが「０」且つ１３ビットが「０」の場合、Ｍｏｄｕｌｅ−Ａ（１２０３）に対するアクセスがあると認識する。また、１２ビットが「０」且つ１３ビットが「１」の場合、Ｍｏｄｕｌｅ−Ｂ（１２０４）に対するアクセスがあると認識する。また、１２ビットが「１」且つ１３ビットが「０」の場合、Ｍｏｄｕｌｅ−Ｃ（１２０４）に対するアクセスがあると認識する。また、１２ビットが「１」且つ１３ビットが「１」の場合、電源制御部１２０６自身に対するアクセスがあると認識する。
【００８９】
このようなアドレスデコーダ１３０３からのアドレス情報により、制御信号生成部１３０１は、コントローラ部１２０１からのアクセスがどのデータ処理モジュールであるかを認識する。そして、制御信号生成部１３０１は、その認識を基に、アクセスが発生した処理モジュールの電源をＯＮとする電源制御信号を、各データ処理モジュールに出力する。
【００９０】
以上のように、電源制御部１２０６は、コントローラ部１２０１からのレジスタアクセスの検知を行い、アクセス対象のデータ処理モジュールの認識を行う。そして、電源制御部１２０６は、認識したアクセス対象のデータ処理モジュールの電源を電源制御信号によりＯＮとして、データ処理モジュールに対するコントローラ部１２０１からのアクセスが可能な状態とする。
【００９１】
なお、レジスタアクセスが検知され、アクセス対象となっているデータ処理モジュールの電源が完全に立ち上がるまでは、そのデータ処理モジュールからの応答はない。
通常、コントローラ部１２０１では、データ処理部１２０２にアクセスを行った後、一定時間を経過しても、そのアクセスに対する応答がない場合には、アクセスが成立しなかったとの判断を行い、タイムアウトエラーとして処理を停止してしまう。
【００９２】
そこで、本実施例では、上記のタイムアウトエラーが発生することを抑止するために、電源制御部１２０６内の制御信号生成部１３０１から、コントローラ部１２０１に対して、コントローラ部制御信号１２０９を発生する。
【００９３】
このコントローラ部制御信号１２０９は、通常「０」である状態から予め設定された期間では「１」に変化する。コントローラ部制御信号１２０９は、コントローラ部１２０１内のＣＰＵ１２０７にクロックの供給を行っているクロック供給部１２０８の制御を行う信号である。
【００９４】
コントローラ部制御信号１２０９が「０」の場合には、クロック供給部１２０８からは、通常処理を行う周波数でＣＰＵ１２０７にクロックが供給される。一方、コントローラ部制御信号が「１」になっている間、クロック供給部１２０８からは、周波数を落とした状態のクロックがＣＰＵ１２０７に供給される。これにより、ＣＰＵ１２０７の動作は、前記予め設定された一定時間においては遅くなる。これにより、ＣＰＵ１２０７によるタイムアウトエラーの判断が、通常の設定より遅くなるため、アクセスしたモジュールの電源が完全に立ち上がり、応答が返るまで、タイムアウトエラーが発生する可能性を抑えることができる。
【００９５】
なお、タイマ・２（１３０４）は、コントローラ部制御信号１２０９が「１」となっている時間を計測する。制御信号生成部１３０１は、コントローラ部制御信号１２０９が「１」となった時点から、予めタイマ・２（１３０４）に設定されている時間が経過したか否かを判断する。そして、予め設定されている時間が経過した場合、制御信号生成部１３０１は、コントローラ部制御信号１２０９を「０」に戻す。
【００９６】
以下、図５を参照して、電源制御部１２０６における電源のＯＮの制御について説明する。
図５は、電源制御部１２０６における電源のＯＮ制御の一例を示すフローチャートである。
全てのデータ処理モジュールの電源がＯＦＦ状態の時（Ｓ１６０１）に、コントローラ部１２０１内のＣＰＵ１２０７からのレジスタアクセスがあると（Ｓ１６０２でＹｅｓの場合）、電源制御部１２０６のアドレスデコーダ１３０３は、入力されたアドレスのデコードを行い（Ｓ１６０３）、アドレス情報を制御信号生成部１３０１に渡す。
【００９７】
アドレスデコーダ１３０３からアドレス情報を受けとった制御信号生成部１３０１は、該アドレス情報に基づいて、どのデータ処理モジュールへのアクセスであるかを認識する（Ｓ１６０４）。
【００９８】
次に、制御信号生成部１３０１は、上記Ｓ１６０４の認識処理により、アクセス対象となっているデータ処理モジュールの電源が立ち上がっている（電源ＯＮ状態）か否かを判定する（Ｓ１６０５）。
【００９９】
そして、アクセス対象となっているデータ処理モジュールが電源ＯＮ状態と判定した場合（Ｓ１６０５でＹｅｓの場合）、制御信号生成部１３０１は、コントローラ部制御信号１２０９の出力値を「０」のままとし（Ｓ１６１０）、Ｓ１６１１に処理を進める。
【０１００】
一方、アクセス対象となっているデータ処理モジュールが電源ＯＦＦ状態と判定した場合（Ｓ１６０５でＮｏの場合）、制御信号生成部１３０１は、Ｓ１６０６に処理を進める。
【０１０１】
Ｓ１６０６では、制御信号生成部１３０１は、アクセス対象となっている処理モジュールの電源をＯＮにする電源所制御信号を出力する（Ｓ１６０６）。この時、タイムアウトエラーが発生することを抑止する為に、制御信号生成部１３０１は、コントローラ部１２０１に対して、コントローラ部制御信号１２０９の出力値を「０」から「１」にする（Ｓ１６０７）。なお、制御信号生成部１３０１は、コントローラ部制御信号１２０９が「１」になっている間、コントローラ部１２０１内のクロック供給部１２０８からＣＰＵ１２０７に供給されるクロックは、周波数を落とした状態となる。これにより、ＣＰＵ１２０７の動作が、前記予め設定された一定時間遅くなる。よって、ＣＰＵ１２０７を動作させるソフトウェア等に特別の変更を加えることなく、ＣＰＵのタイムアウトまでの時間を実質的に延長することができ、タイムアウトエラーの発生を抑えることができる。
【０１０２】
さらに、上記Ｓ１６０７でコントローラ部制御信号を「０」から「１」とした後、制御信号生成部１３０１は、タイマ・２（１３０４）のカウントアップをスタートさせる（Ｓ１６０８）。
【０１０３】
次に、制御信号生成部１３０１は、タイマ・２（１３０４）のカウントが、予め設定されている時間に到達したか否かを判定する（Ｓ１６０９）。
そして、タイマ・２（１３０４）のカウントが、まだ予め設定されている時間に到達していないと判定した場合（Ｓ１６０９でＮｏの場合）、制御信号生成部１３０１は、再度、時間到達の判定を行う。
【０１０４】
一方、タイマ・２（１３０４）のカウントが、予め設定されている時間に到達したと判定した場合（Ｓ１６０９でＹｅｓの場合）、制御信号生成部１３０１は、コントローラ部制御信号１２０９の出力値を「０」とし（Ｓ１６１０）、Ｓ１６１１に処理を進める。
【０１０５】
Ｓ１６１１では、制御信号生成部１３０１は、タイマ・２（１３０４）のカウント値のリセットを行う。
その後、コントローラ部１２０１内のＣＰＵ１２０７からのレジスタアクセスがあると（Ｓ１６１２でＹｅｓの場合）、電源制御部１２０６のアドレスデコーダ１３０３は、入力されたアドレスのデコードを行い（Ｓ１６０３）、アドレス情報を制御信号生成部１３０１に渡す。そして、アドレスデコーダ１３０３からアドレス情報を受けとった制御信号生成部１３０１は、上述のＳ１６０４〜Ｓ１６１１の処理を実行する。
【０１０６】
なお、上記Ｓ１６１１の処理の後、コントローラ部１２０１内のＣＰＵ１２０７からのレジスタアクセスが無ければ（Ｓ１６１２でＮｏの場合）、レジスタアクセスによる各データ処理モジュールの設定が完了したこととなる。そして、入力データバスを介してＣＰＵ１２０７から処理用データの入力が行われることとなり、データ処理モジュールによりデータ処理が実行されることとなる（Ｓ１６１３）。
【０１０７】
以上のように、電源制御部１２０６は、コントローラ部１２０１からアクセスされたデータ処理モジュールを電源ＯＮにするとともに、コントローラ部制御信号１２０９の値を「１」としてコントローラ部１２０１に対して出力する。なお、電源制御部１２０６は、データ処理モジュールを電源ＯＮにした時から所定時間だけコントローラ部制御信号１２０９の値を「１」として出力する。なお、後述するが、コントローラ部制御信号１２０９の値を「１」とする上記所定時間は、少なくとも、電源ＯＮされたデータ処理モジュールが立ち上げ完了までに要する時間と、ＣＰＵ１２０７のタイムアウト時間との差分時間とする。
【０１０８】
次に、図６を参照して、コントローラ部制御信号１２０９の切り替えによる、コントローラ部１２０１の動作を説明する。
図６は、コントローラ部制御信号１２０９の切り替えによる、コントローラ部１２０１の動作の一例を示すフローチャートである。
コントローラ部制御信号１２０９は、通常のデフォルト状態は「０」であり、その時はクロック供給部１２０８からは、通常の周波数（第１の周波数）でクロックの供給が行われる（Ｓ１７０１）。
【０１０９】
そして、クロック供給部１２０８は、コントローラ部制御信号が「０」の間（Ｓ１７０２でＮｏの場合）、そのまま通常の周波数でクロックの供給を行う（１７０１）。
そして、コントローラ部制御信号が「１」になると（Ｓ１７０２でＹｅｓの場合）、クロック供給部１２０８は、出力を行うクロックを切り替え、通常より遅い周波数（前記第１の周波数よりも周波数の小さい第２の周波数）でクロックの供給を行う（１７０３）。
【０１１０】
そして、クロック供給部１２０８は、コントローラ部制御信号が「１」の間（Ｓ１７０４でＮｏの場合）、そのまま通常より遅い周波数でクロックの供給を行う（１７０３）。
そして、クロック供給部１２０８は、コントローラ部制御信号が「０」に戻ると（Ｓ１７０４でＹｅｓの場合）、再び出力を行うクロックを切り替え、通常の周波数でクロックの供給を行う（１７０１）。
【０１１１】
なお、ＣＰＵ１２０７は、タイムアウト時間に対応する数だけクロック供給部１２０８から供給されるクロックをカウントすることによりタイムアウト時間を計時する。このため、コントローラ部１２０１に入力されるコントローラ部制御信号１２０９の値が「１」の時には、ＣＰＵ１２０７の前記計時の動作が遅延し、タイムアウトエラーの認識が遅延することとなる。
【０１１２】
以上のような構成にて、実際に電源制御を行う場合のタイマ・２（１３０４）にセットする値の具体例を以下に示す。
コントローラ部１２０１内のクロック供給部１２０８からＣＰＵ１２０７に対して、通常動作時は「２００ＭＨｚ」のクロック、遅い動作をさせる場合には「５０ＭＨｚ」のクロックを出力することとする。また、データ処理部１２０２内の電源制御部１２０６内には、「２００ＭＨｚ」のクロック（不図示）が入力され、該クロックが各タイマ（タイマ・１（１３０２）、タイマ・２（１３０４））へ入力されていることとする。
【０１１３】
Ｍｏｄｕｅ−Ａ（１２０３）の回路規模は、約１００万ゲートで、電源の立ち上げ時間は「２８μｓｅｃ」かかるものとする。また、Ｍｏｄｕｅ−Ｂ（１２０４）の回路規模は、約１５０万ゲートで、電源の立ち上げ時間は「４２μｓｅｃ」かかるものとする。また、Ｍｏｄｕｅ−Ｃ（１２０５）の回路規模は、約２００万ゲートで、電源の立ち上げ時間は「５６μｓｅｃ」かかるものとする。
【０１１４】
通常のＣＰＵ１２０７からのアクセスに対するタイムアウトエラーは、アクセスを行ってから「１５μｓｅｃ」経過しても応答がない場合に認識するものとする。つまり、通常ＣＰＵ１２０７を動作させている「２００ＭＨｚ」のクロックで、「３０００サイクル」のカウントを行っても、応答がない場合に、タイムアウトエラーとの認識を行っていることとなる。
【０１１５】
前記の条件にて、本実施例における各データ処理モジュールの電源立ち上げ時間を考慮した電源制御を行うことによって、タイムアウトエラーの抑止を行う為には、以下のように行うこととなる。
【０１１６】
Ｍｏｄｕｅ−Ａ（１２０４）に関しては、電源の立ち上げ時間が２８μｓｅｃとなっているので、タイムアウトエラーと認識するまでの時間を、３０μｓｅｃとなるようにすることとする。つまり、ＣＰＵ１２０７内の３０００サイクルのカウントのうち、２０００サイクルを、通常の２００ＭＨｚつまり、１サイクルが５ｎｓｅｃのクロックで、残りの１０００サイクルを、遅い５０ＭＨｚつまり１サイクルが２０ｎｓｅｃのクロックにて、カウントを行うことにより、タイムアウトエラー認識まで、３０μｓｅｃの時間を作ることとなる。よって、電源制御部１２０６からのコントローラ部制御信号を「１」とする時間は、１０００サイクルを遅い５０ＭＨｚつまり１サイクルが２０ｎｓｅｃのクロックにてカウントを行う「２０μｓｅｃ」となる。よって、電源制御部１２０６内のタイマ・２（１３０４）のカウンタ値を、２００ＭＨｚつまり、１サイクルが５ｎｓｅｃのクロックに対して４０００サイクルと設定し、２０μｓｅｃの時間だけコントローラ部制御信号１２０９に「１」を出力するようにする。
【０１１７】
同様にして、Ｍｏｄｕｅ−Ｂ（１２０４）に関しては、電源の立ち上げ時間が４２μｓｅｃとなっているので、タイムアウトエラーと認識するまでの時間を、４５μｓｅｃとなるようにする。つまり、ＣＰＵ１２０７内の３０００サイクルのカウントのうち、１０００サイクルを、通常の２００ＭＨｚつまり、１サイクルが５ｎｓｅｃのクロックで、残りの２０００サイクルを、遅い５０ＭＨｚつまり１サイクルが２０ｎｓｅｃのクロックにて、カウントを行うことにより、タイムアウトエラー認識まで、４５μｓｅｃの時間を作ることとなる。よって、電源制御部１２０６からのコントローラ部制御信号を「１」とする時間は、２０００サイクルを、遅い５０ＭＨｚつまり１サイクルが２０ｎｓｅｃのクロックにて、カウントを行う４０μｓｅｃとなる。よって、電源制御部１２０６内のタイマ・２（１３０４）のカウンタ値を、２００ＭＨｚつまり、１サイクルが５ｎｓｅｃのクロックに対して８０００サイクルと設定し、４０μｓｅｃの時間だけコントローラ部制御信号１２０９に「１」を出力するようにする。
【０１１８】
同様にして、Ｍｏｄｕｅ−Ｃ（１２０５）に関しては、電源の立ち上げ時間が５６μｓｅｃとなっているので、タイムアウトエラーと認識するまでの時間を、６０μｓｅｃとするものとする。つまり、ＣＰＵ１２０７内の３０００サイクルのカウントのうち、全てを遅い５０ＭＨｚつまり１サイクルが２０ｎｓｅｃのクロックにて、カウントを行うことにより、タイムアウトエラー認識まで、６０μｓｅｃの時間を作ることとなる。よって、電源制御部１２０６からのコントローラ部制御信号を「１」とする時間は、３０００サイクルを、遅い５０ＭＨｚつまり１サイクルが２０ｎｓｅｃのクロックにて、カウントを行う６０μｓｅｃとなる。よって、電源制御部１２０６内のタイマ・２（１３０４）のカウンタ値を、２００ＭＨｚつまり、１サイクルが５ｎｓｅｃのクロックに対して１２０００サイクルと設定し、６０μｓｅｃの時間だけコントローラ部制御信号１２０９に「１」を出力するようにする。
【０１１９】
電源制御部１２０６では、アクセスされたアドレスバスの情報から、どのデータ処理モジュールの電源を入れるべきかの判断を行い、電源制御信号の制御を行うとともに、電源をＯＮとするデータ処理モジュールの電源立ち上げ時間に応じたコントローラ部制御信号１２０９の生成を行う。コントローラ部制御信号１２０９により、ＣＰＵ１２０７のクロックが切り替えられるため、タイムアウトエラーの認識が電源立ち上げ時間よりも遅く制御されることとなる。
【０１２０】
なお、上記の説明では、アクセス対象のデータ処理モジュールごとに、タイマ・２（１３０４）のカウンタ値を変更する構成を示した。しかし、アクセス対象がどのデータ処理モジュールであっても、電源の立ち上げ時間が一番長いデータ処理モジュール（上記の例ではＭｏｄｕｅ−Ｃ（１２０５））に合わせてタイマ・２（１３０４）のカウンタ値を一定に設定する構成としてもよい。
【０１２１】
このように、コントローラ部制御信号１２０９の値を「１」とするタイマ・２（１３０４）への設定時間は、少なくとも、電源ＯＮされたデータ処理モジュールが立ち上げ完了までに要する時間と、ＣＰＵ１２０７のタイムアウト時間との差分時間とする。
【０１２２】
また、上記の説明では、コントローラ部制御信号が「１」になったことを、クロック供給部１２０８が認識した場合、クロック供給部１２０８から供給するクロックの供給が、「通常より遅い周波数でクロックの供給が行われる」としているが、「通常より遅い周波数でクロックの供給が行われる」というのは、「クロック供給を停止する」という動作も含むこととする。即ち、クロック供給部１２０８は、コントローラ部制御信号が「１」の間、クロック供給を停止する構成も本実施例に含むものとする。
【０１２３】
以上のように、本実施例では、コントローラ部１２０１内のＣＰＵ１２０７へ供給されているクロックの制御を行うことにより、ＣＰＵ１２０７のタイムアウトエラーの認識を遅らせることとした。これにより、データ処理部１２０２内の電源制御部１２０６で行う電源制御や、電源の立ち上げ時に対するレジスタアクセスの遅延によるタイムアウトエラーの発生を防ぐことが可能となる。このため、ソフトウェアでは、データ処理部の電源状態を意識することなく、アクセスが可能となる。
【実施例２】
【０１２４】
上述した実施例１では、コントローラ部内のクロック供給部からＣＰＵに供給されるクロックの周波数をコンロトール部制御信号によって制御することによって、ＣＰＵのタイムアウトエラーの認識を遅らせる構成について示した。
【０１２５】
実施例２では、クロック供給部からＣＰＵに供給されるクロックを遅くすることなく、ＣＰＵ内でタイムアウトエラーの認識を行うためのカウンタへ供給されているクロックの制御を行うことにより、ＣＰＵのタイムアウトエラーの認識を遅らせることとする。
【０１２６】
図７は、本発明の情報処理装置の実施例２を示す複合機（ＭＦＰ）の制御部（ＭＦＰ制御部）の構成の一例を示す図である。なお、ここでは、本発明に関連のある部分のみを図示している。また、ＭＦＰ制御部以外のＭＦＰの構成は、図１５に示したものと同様とする。また、実施例１で説明を行った部分に関しては、図１と同様の番号を付けることにより、本実施例２での詳細な説明は省略する。さらに、本実施例２では、コントローラ部１２０１内の構成が特徴となるため、データ処理部１２０２内についての詳細な説明は省略する。
【０１２７】
クロック供給部・２（１８０２）は、ＣＰＵ・２（１８０１）に対して、駆動用のクロックの供給を行う部分で、本実施例２では、周波数の切り替え機能は持たず、一定の周波数のクロックをＣＰＵ・２（１８０１）に対して供給する。以下、ＣＰＵ・２（１８０１）の構成について説明する。
【０１２８】
図８は、実施例２におけるＣＰＵ・２（１８０１）の構成の一例を示すブロック図である。
図８に示すように、ＣＰＵ・２（１８０１）は、カウンタ・１（１９０１）、タイムアウトエラー認識部１９０２と、データ処理制御部１９０３、システム制御部１９０４を有する。
【０１２９】
カウンタ・１（１９０１）は、クロック供給部・２（１８０２）からのクロックの入力を行い、カウントを行う。タイムアウトエラー認識部１９０２は、カウンタ・１（１９０１）のからのカウント値を基に、タイムアウトエラーの認識を行う。データ処理制御部１９０３は、データ処理部１２０２とのデータの受け渡し等を行う。システム制御部１９０４は、ＣＰＵ・２（１８０１）内を含む、その他のシステム全体の制御を行う。
【０１３０】
本実施例２では、データ処理部１２０２内の電源制御部１２０６から出力されるコントローラ部制御信号１２０９は、コントローラ部１２０１のＣＰＵ・２（１８０１）内のカウンタ・１（１９０１）に入力されることとなる。
【０１３１】
カウンタ・１（１９０１）では、クロックの分周回路（不図示）を有する。カウンタ・１（１９０１）は、コントローラ部制御信号１２０９が「０」の場合、クロック供給部・２（１８０２）から入力されるクロックを基にカウントアップを行う通常動作モードで動作する。また、カウンタ・１（１９０１）は、コントローラ部制御信号１２０９が「１」の場合、クロック供給部・２（１８０２）から入力されるクロックを分周することにより、通常動作より遅い周波数によってカウンタを動作させる分周動作モードで動作する。
【０１３２】
即ち、コントローラ部制御信号が「０」の時には、カウンタ・１（１９０１）は、クロック供給部・２（１８０２）から供給されるクロックを基に、通常動作モードでのカウントアップ（計時）を行う。一方、コントローラ部制御信号が「１」の時には、カウンタ・１（１９０１）は、クロック供給部・２（１８０２）から入力されるクロックに分周を行った、遅い周波数のクロックによる、分周動作でのカウントアップ（計時）を行う。
【０１３３】
タイムアウトエラー認識部１９０２は、カウンタ・１（１９０１）のカウント値を基に、予め設定されている値までカウントされた時に、タイムアウト時間を経過したと判断し、タイムアウトエラーとの認識を行う。
【０１３４】
本実施例２では、前記カウンタ・１（１９０１）に、予め設定しておく値は、データ処理部内の各処理モジュール中で、最も電源の立ち上げ時間が長く掛る処理モジュールの電源立ち上げ時間を分周動作でカウントすることを考慮して、設定を行っておくこととする。
【０１３５】
以下、図９を参照して、本実施例２におけるコントローラ部１２０１の動作について説明する。
図９は、実施例２におけるコントローラ部１２０１の動作の一例を示すフローチャートである。
システム制御部１９０４がデータ処理制御部１９０３によるレジスタバスからのデータ処理部１２０２へのアクセスを実行すると（Ｓ２００１）、タイムアウトエラー認識部１９０２が、カウンタ・１（１９０１）の値のリセットを行う（２００２）。
【０１３６】
その後、タイムアウトエラー認識部１９０２は、カウンタ・１（１９０１）のカウントアップをスタートさせる（Ｓ２００４又はＳ２００８）。
カウンタ・１（１９０１）では、コントローラ部制御信号１２０９の値が「０」の時は（Ｓ２００３でＮｏの場合）、通常の周波数でカウントアップを行う（２００４）。一方、コントローラ部制御信号１２０９の値が「１」の時は（Ｓ２００３でＹｅｓの場合）、データ処理部１２０２では、レジスタバスによるアクセスに対応して、電源の立ち上げ制御を行っているため、ＣＰＵ・２（１８０１）内では、カウンタ・１（１９０１）のカウントアップを遅らせることによって、タイムアウトエラーの認識を遅らせる。この場合、カウンタ・１（１９０１）では、不図示の分周回路によって分周された遅い周波数でカウントアップを行う（２００８）。
【０１３７】
そして、タイムアウトエラー認識部１９０２は、カウンタ・１（１９０１）のカウント値が、予め設定を行っている値になったか否か判定する（Ｓ２００５又はＳ２００９）。
そして、カウンタ・１（１９０１）のカウントアップ値が、予め設定を行っている値になったと判定した場合（Ｓ２００５又はＳ２００９でＹｅｓの場合）、タイムアウトエラー認識部１９０２は、タイムアウトエラー発生との認識を行う（Ｓ２００６又はＳ２０１０）。
【０１３８】
一方、カウンタ・１（１９０１）のカウント値が、まだ予め設定を行っている値になっていないと判定した場合（Ｓ２００５又はＳ２００９でＮｏの場合）、タイムアウトエラー認識部１９０２は、レジスタバスからのアクセスに対する応答の有無を確認する（Ｓ２００７又はＳ２０１１）。
【０１３９】
そして、まだレジスタバスからのアクセスに対する応答がない場合（Ｓ２００７又はＳ２０１１でＮｏの場合）、タイムアウトエラー認識部１９０２は、再度、カウント値の判定を行う（Ｓ２００５又はＳ２００９）。
【０１４０】
一方、レジスタバスからのアクセスに対する応答があった場合（Ｓ２００７又はＳ２０１１でＹｅｓの場合）、タイムアウトエラー認識部１９０２は、タイムアウトエラーがなかったと認識する。
【０１４１】
そして、システム制御部１９０４は、次のレジスタに対するアクセスの有無を確認し（Ｓ２０１２）、次のレジスタに対するアクセスがある場合（Ｓ２０１２でＹｅｓの場合）、データ処理制御部１９０３からレジスタバスのアクセスを行う（Ｓ２００１）。
【０１４２】
一方、次のレジスタに対するアクセスがない場合（Ｓ２０１２でＮｏの場合）、システム制御部１９０４は、レジスタ設定が全て完了したと判断し、データ処理制御部１９０３を用いて入力データバスから処理用データの出力を行う（Ｓ２０１３）。
【０１４３】
以上のような構成にて、実際に電源制御を行う場合のタイマ・２（１３０４）にセットする値の具体例を以下に示す。
ＣＰＵ・２（１８０１）内のカウンタ・１（１９０１）では、通常動作時は２００ＭＨｚのクロック、遅い動作をさせる場合には、１／４に分周を行った５０ＭＨｚのクロックを使用することとする。
【０１４４】
Ｍｏｄｕｅ−Ａ（１２０３）の回路規模は約１００万ゲートで、電源の立ち上げ時間は２８μｓｅｃの時間がかかる。また、Ｍｏｄｕｅ−Ｂ（１２０４）の回路規模は約１５０万ゲートで、電源の立ち上げ時間は４２μｓｅｃの時間がかかる。また、Ｍｏｄｕｅ−Ｃ（１２０５）の回路規模は約５０万ゲートで、電源の立ち上げ時間は１４μｓｅｃの時間がかかる。
【０１４５】
よって、本実施例では、電源立ち上げに最も時間のかかるＭｏｄｕｅ−Ｂ（１２０４）の立ち上げ時間を満たせるように、４５μｓｅｃまで、タイムアウトエラーの認識を遅らせる。
【０１４６】
通常のＣＰＵ・２（１８０１）からのアクセスに対するタイムアウトエラーは、アクセスを行ってから、１５μｓｅｃ経過しても応答がない場合、でエラーと認識することとする。つまり、カウンタ・１（１９０１）において、通常ＣＰＵ・２（１８０１）を動作させている２００ＭＨｚのクロックで、３０００サイクルのカウントを行っても、応答がない場合に、タイムアウトエラーとの認識を行っている。
【０１４７】
前記の条件にて、本実施例における各データ処理モジュールの電源立ち上げ時間を考慮した電源制御を行うことによって、タイムアウトエラーの抑止を行う為には、以下のように行うこととなる。
【０１４８】
コントローラ部制御信号１２０９から「１」を入力してから、タイムアウトエラーと認識するまでの時間を、４５μｓｅｃにする場合、次のように行う。カウンタ・１（１９０１）での３０００サイクルのカウントのうち、１０００サイクルを、通常の２００ＭＨｚつまり、１サイクルが５ｎｓｅｃのクロックで行う。さらに、残りの２０００サイクルを、遅い５０ＭＨｚつまり１サイクルが２０ｎｓｅｃのクロックにてカウントを行う。このようにカウントを行うことにより、タイムアウトエラー認識まで、４５μｓｅｃの時間を作ることができる。
【０１４９】
よって、電源制御部１２０６からのコントローラ部制御信号１２０９を「１」とする時間は、２０００サイクルを、遅い５０ＭＨｚつまり１サイクルが２０ｎｓｅｃのクロックにて、カウントを行う「４０μｓｅｃ」となる。
【０１５０】
よって、電源制御部１２０６内のタイマ・２（１３０４）のカウンタ値を、２００ＭＨｚつまり、１サイクルが５ｎｓｅｃのクロックに対して８０００サイクルと設定し、４０μｓｅｃの時間だけコントローラ部制御信号１２０９に「１」を出力するようにする。
【０１５１】
以上のように、電源制御部１２０６では、コントローラ部１２０１でアクセスされたアドレスバスの情報から、どのデータ処理モジュールの電源を入れるべきかの判断を行い、電源制御信号の制御を行うとともに、コントローラ部制御信号１２０９の生成を行う。
【０１５２】
コントローラ部制御信号１２０９により、ＣＰＵ・２（１８０１）のカウンタ・１（１９０１）内で使用するクロックが切り替えられるため、タイムアウトエラーの認識が電源立ち上げ時間よりも遅く制御されることとなる。
【０１５３】
なお、上記の説明では、コントローラ部制御信号が「１」になった時、「分周された遅い周波数のクロックを使用してカウンタ・１（１９０１）のカウントアップを行う」としているが、遅いクロックの生成は必ずしも「分周」に限るものではない。また、遅い周波数のクロックを使用するということは、「カウンタ・１（１９０１）へのクロック供給を停止する」という動作も含むものとする。
【０１５４】
以上のように、本実施例２では、ＣＰＵ・２（１８０１）内でタイムアウトエラーの認識を行うためのカウンタへ供給されているクロックの制御を行うことにより、ＣＰＵ・２（１８０１）のタイムアウトエラーの認識を遅らせることができる。
【０１５５】
この構成では、クロック供給部・２（１８０２）のクロック周波数は変更することなく、カウンタ・１（１９０１）でカウントアップするクロックのみが周波数の遅いクロックとするだけである。このため、クロック供給部・２（１８０２）から供給されるクロックで動作する他の動作への影響を排除することができる。即ち、ＣＰＵ・２（１８０１）が行っている他のシステムの制御のパフォーマンスへの影響を防ぐことができる。
【０１５６】
また、クロック供給部・２（１８０２）も、制御用のハードウェアの付加やソフト制御の必要がない。
【実施例３】
【０１５７】
上述した実施例２では、コントロール部内のＣＰＵ内でクロックの周波数をコンロトール部制御信号によって制御して（遅くさせて）カウントすることによって、ＣＰＵのタイムアウトエラーの認識を遅らせる構成を示した。
【０１５８】
なお、実施例２のように、ＣＰＵ内で特別な処理を行わせるには、ＣＰＵのハードウェアに対して、通常のＣＰＵからの修正が必要となってくる。
そこで、本実施例３では、通常、ＣＰＵの処理として行われている割り込み処理を使用することにより、ＣＰＵ内でタイムアウトエラーの認識を遅らせるように構成する。
【０１５９】
図１０は、本発明の情報処理装置の実施例３を示す複合機（ＭＦＰ）の制御部（ＭＦＰ制御部）の構成の一例を示す図である。なお、ここでは、本発明に関連のある部分のみを図示している。また、ＭＦＰ制御部以外のＭＦＰの構成は、図１５に示したものと同様とする。また、実施例１で説明を行った部分に関しては、図１と同様の番号を付けることにより、本実施例２での詳細な説明は省略する。さらに、本実施例３では、コントローラ部１２０１内の構成が特徴となるため、データ処理部１２０２内についての詳細な説明は省略する。
【０１６０】
クロック供給部・３（２１０２）は、ＣＰＵ・３（２１０１）に対して、駆動用のクロックの供給を行う部分で、本実施例３では、周波数の切り替え機能は持たず、一定の周波数のクロックをＣＰＵ・３（２１０１）に対して供給する。以下、ＣＰＵ・３（２１０１）の構成について説明する。
【０１６１】
図１１は、実施例３におけるＣＰＵ・３（２１０１）の構成の一例を示すブロック図である。
図１１に示すように、ＣＰＵ・３は、カウンタ・２（２２０１）、タイムアウトエラー認識部２２０２、データ処理制御部２２０３、カウンタ・３（２２０４）、システム制御部２２０５を備えている。
【０１６２】
カウンタ・２（２２０１）は、クロック供給部・３（２１０２）からのクロックの入力を行い、該クロックを基にカウントアップを行う。タイムアウトエラー認識部２２０２は、カウンタ・２（２２０１）のからのカウント値を基に、予め設定されている値までカウントされた時に、タイムアウト時間が経過したと判断し、タイムアウトエラーと認識する。
【０１６３】
データ処理制御部２２０３は、データ処理部１２０２の各処理モジュールに対するレジスタアクセス等の設定や、データ処理部１２０２にて処理すべき入力データの出力等を行う。カウンタ・３（２２０４）は、タイムアウト認識遅延用の割り込み処理時に使用可能である。なお、カウンタ・３（２２０４）では、クロック供給部・３（２１０２）からのクロックの入力を行い、タイムアウト認識遅延用の割り込み処理が発生した場合には、予め設定された値までカウントアップを行う処理（所定時間の計時処理）を実行する。システム制御部２２０５は、ＣＰＵ・３（２１０１）内を含む、その他のシステム全体の制御を行う。なお、タイムアウト認識遅延用の割り込みは、システム制御部２２０５における、予めいくつか設定されている割り込み処理の１つとして取り扱うこととする。
【０１６４】
本実施例３では、データ処理部１２０２の電源制御部１２０６から出力されるコントローラ部制御信号１２０９は、コントローラ部１２０１のＣＰＵ・３（２１０１）のシステム制御部２２０５に割り込み信号（ハードウェア割り込み）として入力される。
【０１６５】
コントローラ部制御信号１２０９が「０」の時は、割り込み処理が入らない状態を表しており、システム制御部２２０５は、通常のシステム制御やデータ処理部１２０２へのアクセス、データ処理用データの出力等を行っている。一方、コントローラ部制御信号が「１」の時は、タイムアウト認識遅延用の割り込み処理が発生した状態を表しており、システム制御部２２０５は、通常の処理を中断してタイムアウト認識遅延用の割り込みカウンタである、カウンタ・３（２２０４）のカウントアップ処理を行う。
【０１６６】
本実施例では、カウンタ・３（２２０４）に、予め設定しておく値は、データ処理部内の各処理モジュール中で、最も電源の立ち上げ時間が長く掛る処理モジュールの電源立ち上げ時間をクロック供給部・３（２１０２）から供給されるクロックでカウントすることを考慮して、設定を行っておくこととする。
【０１６７】
以下、図１２を参照して、本実施例３におけるコントローラ部１２０１の動作について説明する。
図１２は、実施例３におけるコントローラ部１２０１の動作の一例を示すフローチャートである。
システム制御部２２０５がデータ処理制御部２２０３によるレジスタバスからのデータ処理部１２０２へのアクセスを実行すると（Ｓ２３０１）、タイムアウトエラー認識部２２０２が、カウンタ・２（２２０１）の値のリセットを行う（Ｓ２３０２）。
【０１６８】
そして、タイムアウトエラー認識部２２０２では、コントローラ部制御信号１２０９の値が「０」の時は（Ｓ２３０３でＮｏの場合）、クロック供給部・３（２１０２）からのクロックでカウンタ・２（２２０１）のカウントアップをスタートさせる（Ｓ２３０４）。
【０１６９】
なお、システム制御部２２０５では、コントローラ部制御信号１２０９の値が「０」の時は（Ｓ２３０３でＮｏの場合）、通常の処理（Ｓ２３０４〜Ｓ２３０９）を実行するように制御する。以下、通常の処理（Ｓ２３０４〜Ｓ２３０９）について説明する。
【０１７０】
通常の処理では、まず、タイムアウトエラー認識部２２０２が、クロック供給部・３（２１０２）からのクロックでカウンタ・２（２２０１）のカウントアップをスタートさせる（Ｓ２３０４）。
【０１７１】
次に、タイムアウトエラー認識部２２０２が、カウンタ・２（２２０１）のカウント値が、予め設定を行っている値になったか否か判定する（Ｓ２３０５）。
そして、カウンタ・２（２２０１）のカウントアップ値が、予め設定を行っている値になったと判定した場合（Ｓ２３０５でＹｅｓの場合）、タイムアウトエラー認識部２２０２は、タイムアウトエラー発生との認識を行う（Ｓ２３０６）。
【０１７２】
一方、カウンタ・２（２２０１）のカウント値が、まだ予め設定を行っている値になっていないと判定した場合（Ｓ２３０５でＮｏの場合）、タイムアウトエラー認識部２２０２は、レジスタバスからのアクセスに対する応答の有無を確認する（Ｓ２３０７）。
【０１７３】
そして、まだレジスタバスからのアクセスに対する応答がない場合（Ｓ２３０７でＮｏの場合）、タイムアウトエラー認識部２２０２は、再度、カウント値の判定を行う（Ｓ２３０５）。
【０１７４】
一方、レジスタバスからのアクセスに対する応答があった場合（Ｓ２３０７でＹｅｓの場合）、タイムアウトエラー認識部２２０２は、タイムアウトエラーがなかったと認識する。
【０１７５】
そして、システム制御部１９０４は、次のレジスタに対するアクセスの有無を確認し（Ｓ２３０８）、次のレジスタに対するアクセスがある場合（Ｓ２３０８でＹｅｓの場合）、データ処理制御部２２０３からレジスタバスのアクセスを行う（Ｓ２３０１）。
【０１７６】
一方、次のレジスタに対するアクセスがない場合（Ｓ２３０８でＮｏの場合）、システム制御部２２０５は、レジスタ設定が全て完了したと判断し、データ処理制御部２２０３を用いて入力データバスから処理用データの出力を行う（Ｓ２３０９）。
【０１７７】
なお、システム制御部２２０５では、コントローラ部制御信号１２０９の値が「１」の時は（Ｓ２３０３でＹｅｓの場合）、割り込みが発生したと認識し（Ｓ２３１０）、通常の処理を中断し、タイムアウト認識遅延用の割り込み処理（Ｓ２３１１〜Ｓ２３１３）を実行するように制御する。なお、コントローラ部制御信号１２０９の値が「１」の時は、データ処理部１２０２では、レジスタバスによるアクセスに対応して電源の立ち上げ制御を行っている。よって、ＣＰＵ・３（２１０１）内では、タイムアウト認識遅延用の割り込み処理（Ｓ２３１１〜Ｓ２３１３）により、通常の処理（Ｓ２３０４〜Ｓ２３０９）の実行を中断させることによってタイムアウトエラーの認識を遅らせる。
【０１７８】
以下、上述のタイムアウト認識遅延用の割り込み処理（Ｓ２３１１〜Ｓ２３１３）について詳細に示す。
タイムアウト認識遅延用の割り込み処理では、まず、システム制御部２２０５は、カウンタ・３（２２０４）の値のリセットを行う（Ｓ２３１１）。次に、システム制御部２２０５は、クロック供給部・３（２１０２）からのクロックでカウンタ・３（２２０４）のカウントアップをスタートさせる（Ｓ２３１２）。
【０１７９】
そして、システム制御部２２０５は、カウンタ・３（２２０４）のカウント値が、予め設定を行っている値になったか否か判定する（Ｓ２３１３）。
そして、カウンタ・３（２２０４）のカウント値が、まだ予め設定を行っている値になっていないと判定した場合（Ｓ２３１３でＮｏの場合）、システム制御部２２０５は、再度、カウント値の判定を行う（Ｓ２３１３）。
【０１８０】
一方、カウンタ・３（２２０４）のカウントアップ値が、予め設定を行っている値になったと判定した場合（Ｓ２３１３でＹｅｓの場合）、システム制御部２２０５は、タイムアウト認識遅延用の割り込み処理が完了して、通常の処理（Ｓ２３０４〜Ｓ２３０９）を行うように制御する。
【０１８１】
この時点で、タイムアウト認識遅延用の割り込み処理によって、データ処理部１２０２内の処理モジュールの電源が立ち上がり、コントローラ部１２０１からのレジスタアクセスに対する応答が返って来るまでの時間が経過していることとなる。よって、レジスタバスからの応答が到達している状態となっているため、電源立ち上げに関するタイムアウトエラーは、起こらないようになる（Ｓ２３０７でＹｅｓとなる）。
【０１８２】
そして、システム制御部１９０４は、次のレジスタに対するアクセスの有無を確認し（Ｓ２３０８）、次のレジスタに対するアクセスがある場合（Ｓ２３０８でＹｅｓの場合）、データ処理制御部２２０３からレジスタバスのアクセスを行う（Ｓ２３０１）。
【０１８３】
一方、次のレジスタに対するアクセスがない場合（Ｓ２３０８でＮｏの場合）、システム制御部２２０５は、レジスタ設定が全て完了したと判断し、データ処理制御部２２０３を用いて入力データバスから処理用データの出力を行う（Ｓ２３０９）。
【０１８４】
なお、本実施例では、タイムアウト認識遅延用の割り込み処理が発生した場合の割り込み処理として、予め設定された値までカウントアップを行う処理（所定時間を計時する処理）を実行する構成を示した。しかし、タイムアウト認識遅延用の割り込み処理が発生した場合の割り込み処理は、上述のような所定時間を計時するためのカウントアップ処理に限定されるものではなく、実行に所定時間かかる処理であればよい。
【０１８５】
以上のような構成にて、実際に電源制御を行う場合のカウンタ・３（２２０４）でカウントする値の具体例を以下に示す。
ＣＰＵ・３（２１０１）内のカウンタ・２（２２０１）及びカウンタ・３（２２０４）には、通常動作時は２００ＭＨｚのクロックが供給されている。
例えば、Ｍｏｄｕｅ−Ａ（１２０３）の回路規模は約１００万ゲートで、電源の立ち上げ時間は、２８μｓｅｃの時間がかかる。また、Ｍｏｄｕｅ−Ｂ（１２０４）の回路規模は約１５０万ゲートで、電源の立ち上げ時間は４２μｓｅｃの時間がかかる。また、Ｍｏｄｕｅ−Ｃ（１２０５）の回路規模は約５０万ゲートで、電源の立ち上げ時間は１４μｓｅｃの時間がかかる。
【０１８６】
よって、本実施例では、電源立ち上げに最も時間のかかるＭｏｄｕｅ−Ｂ（１２０４）の立ち上げ時間を満たせるように、４５μｓｅｃまで、タイムアウトエラーの認識を遅らせることとする。
【０１８７】
通常のＣＰＵ・３（２１０１）からのアクセスに対するタイムアウトエラーは、アクセスを行ってから、１５μｓｅｃ経過しても応答がない場合、でエラーと認識することとする。つまり、カウンタ・２（２２０１）において、通常ＣＰＵ・３（２１０１）を動作させている２００ＭＨｚのクロックで、３０００サイクルのカウントを行っても、応答がない場合に、タイムアウトエラーとの認識を行っている。
【０１８８】
上記の条件にて、本実施例における各データ処理モジュールの電源立ち上げ時間を考慮した電源制御を行うことによって、タイムアウトエラーの抑止を行う為には、以下のように行うこととなる。
【０１８９】
コントローラ部制御信号１２０９から「１」を入力してから、タイムアウトエラーと認識するまでの時間を、４５μｓｅｃと遅らせる場合、カウンタ・２（２２０１）のカウントに掛る１５μｓｅｃの残りの３０μｓｅｃを、カウンタ・３（２２０４）にて、カウントを行うことにより作る。
【０１９０】
よって、カウンタ・３（２２０４）のカウンタ値を、２００ＭＨｚつまり、１サイクルが５ｎｓｅｃのクロックに対して６０００サイクルと設定し、３０μｓｅｃの時間、割り込み処理を行う時間として設定すればよいこととなる。
【０１９１】
このように、カウンタ・３（２２０４）に設定するカウンタ値は、少なくとも、電源ＯＮされたデータ処理モジュールが立ち上げ完了までに要する時間と、ＣＰＵ１２０７のタイムアウト時間との差分時間に対応するカウント値とする。
【０１９２】
本実施例３では、タイムアウトエラーを判断する為の時間の遅延量は、ＣＰＵ・３（２１０１）内のカウンタ・３（２２０４）によって設定する為、コントローラ部制御信号１２０９を「１」とする時間は、特に制御する必要はない。
【０１９３】
以上のように、電源制御部１２０６では、アクセスされたアドレスバスの情報から、どのデータ処理モジュールの電源を入れるべきかの判断を行い、電源制御信号の制御を行うとともに、コントローラ部制御信号１２０９の生成を行う。
【０１９４】
コントローラ部制御信号１２０９により、ＣＰＵ・３（１２０１）内では、通常の処理（タイムアウトのカウントを行う処理）を中断して、データ処理モジュールの電源立ち上げに対応した時間にあわせた割り込み処理が実行される。このため、タイムアウトエラーの認識が電源立ち上げ時間よりも遅く制御されることとなる。
【０１９５】
以上のように、本実施例３では、ＣＰＵ内でタイムアウトエラーの認識を遅らせる為に、割り込み処理を使用することにより、ＣＰＵのタイムアウトエラーの認識を遅らせるように構成する。このような構成により、通常のＣＰＵからの修正を必要とせずに、データ処理部１２０２の電源制御や電源立ち上げに対する、ＣＰＵのタイムアウトエラーの認識を遅らせることができる。
【０１９６】
以上示したように、ＣＰＵでは、データ処理部１２０２内の各データ処理モジュールの電源ＯＮ／ＯＦＦ状態や、電源ＯＮ時の立ち上げ状況などを意識しない、ＡＣＰＩの規格に基づいたソフトウェアによる簡単な電源制御を可能にするとともに、各データ処理モジュールの電源ＯＦＦ時及び電源立ち上げ時のアクセスエラーの発生を抑えることを可能にすることができる。
【０１９７】
なお、上記各実施例では、本発明をＭＦＰの制御部に適用する構成について説明したが、本発明の適用はＭＦＰに限定されるものではなく、各種電子機器等の情報処理装置に適用可能である。
【０１９８】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【０１９９】
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０２００】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０２０１】
１２０１    コントローラ部
１２０２    データ処理部
１２０３〜１２０５    データ処理モジュール
１２０６    電源制御部
１２０７    ＣＰＵ
１２０８    クロック供給部
１２０９    コントローラ部制御信号
【図１】
0005818505.tif 000002
【図２】
0005818505.tif 000003
【図３】
0005818505.tif 000004
【図４】
0005818505.tif 000005
【図５】
0005818505.tif 000006
【図６】
0005818505.tif 000007
【図７】
0005818505.tif 000008
【図８】
0005818505.tif 000009
【図９】
0005818505.tif 000010
【図１０】
0005818505.tif 000011
【図１１】
0005818505.tif 000012
【図１２】
0005818505.tif 000013
【図１３】
0005818505.tif 000014
【図１４】
0005818505.tif 000015
【図１５】
0005818505.tif 000016
【図１６】
0005818505.tif 000017
【図１７】
0005818505.tif 000018
【図１８】
0005818505.tif 000019
【図１９】
0005818505.tif 000020
【図２０】
0005818505.tif 000021
【図２１】
0005818505.tif 000022
【図２２】
0005818505.tif 000023
【図２３】
0005818505.tif 000024